@returnflows/shop-overlay 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (149) hide show
  1. package/README.md +976 -0
  2. package/dist/index.esm.css +3 -0
  3. package/dist/index.esm.js +12494 -0
  4. package/dist/index.esm.js.map +1 -0
  5. package/dist/messages/da.json +1 -0
  6. package/dist/messages/de.json +1 -0
  7. package/dist/messages/en.json +1 -0
  8. package/dist/messages/es.json +1 -0
  9. package/dist/messages/fi.json +1 -0
  10. package/dist/messages/fr.json +1 -0
  11. package/dist/messages/it.json +1 -0
  12. package/dist/messages/nb.json +1 -0
  13. package/dist/messages/nl.json +1 -0
  14. package/dist/messages/pl.json +1 -0
  15. package/dist/messages/sv.json +1 -0
  16. package/dist/types/api/index.d.ts +6 -0
  17. package/dist/types/api/state-bridge.d.ts +37 -0
  18. package/dist/types/api/storefront-cart.d.ts +3 -0
  19. package/dist/types/api/types.d.ts +402 -0
  20. package/dist/types/api/widget-api.d.ts +20 -0
  21. package/dist/types/index.d.ts +2 -0
  22. package/dist/types/widget/components/dialog/common/dialog-backdrop.d.ts +6 -0
  23. package/dist/types/widget/components/dialog/common/dialog-button.d.ts +6 -0
  24. package/dist/types/widget/components/dialog/common/dialog-modal.d.ts +9 -0
  25. package/dist/types/widget/components/dialog/common/dialog-subtitle.d.ts +2 -0
  26. package/dist/types/widget/components/dialog/common/dialog-title.d.ts +2 -0
  27. package/dist/types/widget/components/dialog/common/index.d.ts +10 -0
  28. package/dist/types/widget/components/dialog/return-decision-dialog.d.ts +2 -0
  29. package/dist/types/widget/components/drawer/adjustments/exchange-adjustments.d.ts +2 -0
  30. package/dist/types/widget/components/drawer/adjustments/exchange-banner.d.ts +2 -0
  31. package/dist/types/widget/components/drawer/adjustments/table/adjustments-table-skeleton.d.ts +2 -0
  32. package/dist/types/widget/components/drawer/adjustments/table/adjustments-table.d.ts +2 -0
  33. package/dist/types/widget/components/drawer/annoucement-bar.d.ts +2 -0
  34. package/dist/types/widget/components/drawer/error-screen.d.ts +6 -0
  35. package/dist/types/widget/components/drawer/exchange-confirmation.d.ts +2 -0
  36. package/dist/types/widget/components/drawer/exchange-drawer.d.ts +5 -0
  37. package/dist/types/widget/components/drawer/exchange-header.d.ts +2 -0
  38. package/dist/types/widget/components/drawer/exchange-placeholder.d.ts +2 -0
  39. package/dist/types/widget/components/drawer/product/product-actions.d.ts +8 -0
  40. package/dist/types/widget/components/drawer/product/product-attributes.d.ts +14 -0
  41. package/dist/types/widget/components/drawer/product/product-errors.d.ts +2 -0
  42. package/dist/types/widget/components/drawer/product/product-image.d.ts +7 -0
  43. package/dist/types/widget/components/drawer/product/product-list.d.ts +2 -0
  44. package/dist/types/widget/components/drawer/product/product.d.ts +9 -0
  45. package/dist/types/widget/components/drawer/product/quantity-picker.d.ts +20 -0
  46. package/dist/types/widget/components/drawer/return/return-product-actions.d.ts +10 -0
  47. package/dist/types/widget/components/drawer/return/return-product-badge.d.ts +7 -0
  48. package/dist/types/widget/components/drawer/return/return-product-list.d.ts +2 -0
  49. package/dist/types/widget/components/drawer/return/return-product-skeleton.d.ts +2 -0
  50. package/dist/types/widget/components/drawer/return/return-product.d.ts +14 -0
  51. package/dist/types/widget/components/drawer/scroll-indicator.d.ts +5 -0
  52. package/dist/types/widget/components/handlers/dialog-handler.d.ts +2 -0
  53. package/dist/types/widget/components/handlers/initialization-handler.d.ts +2 -0
  54. package/dist/types/widget/components/icons/arrow-down.d.ts +2 -0
  55. package/dist/types/widget/components/icons/arrow-left.d.ts +2 -0
  56. package/dist/types/widget/components/icons/arrow-right.d.ts +2 -0
  57. package/dist/types/widget/components/icons/bag.d.ts +2 -0
  58. package/dist/types/widget/components/icons/banner/action.d.ts +2 -0
  59. package/dist/types/widget/components/icons/banner/info.d.ts +2 -0
  60. package/dist/types/widget/components/icons/cart.d.ts +2 -0
  61. package/dist/types/widget/components/icons/chevron.d.ts +2 -0
  62. package/dist/types/widget/components/icons/giftcard.d.ts +2 -0
  63. package/dist/types/widget/components/icons/icon.d.ts +17 -0
  64. package/dist/types/widget/components/icons/spinner.d.ts +2 -0
  65. package/dist/types/widget/components/icons/star.d.ts +2 -0
  66. package/dist/types/widget/components/icons/warning.d.ts +2 -0
  67. package/dist/types/widget/components/icons/x.d.ts +2 -0
  68. package/dist/types/widget/components/is-mounted.d.ts +4 -0
  69. package/dist/types/widget/components/providers/error-provider.d.ts +4 -0
  70. package/dist/types/widget/components/providers/return-context-provider.d.ts +17 -0
  71. package/dist/types/widget/components/providers/root-provider.d.ts +2 -0
  72. package/dist/types/widget/components/providers/widget-context-provider.d.ts +6 -0
  73. package/dist/types/widget/components/return-avatar-stack.d.ts +2 -0
  74. package/dist/types/widget/components/summary/back-button.d.ts +2 -0
  75. package/dist/types/widget/components/summary/exchange-summary.d.ts +2 -0
  76. package/dist/types/widget/components/summary/exchange-total-skeleton.d.ts +2 -0
  77. package/dist/types/widget/components/summary/exchange-total.d.ts +2 -0
  78. package/dist/types/widget/components/toast/toast-container.d.ts +2 -0
  79. package/dist/types/widget/components/toast/toast-provider.d.ts +4 -0
  80. package/dist/types/widget/components/toast/toast.d.ts +16 -0
  81. package/dist/types/widget/components/ui/avatar/avatar-stack-skeleton.d.ts +2 -0
  82. package/dist/types/widget/components/ui/avatar/avatar-stack.d.ts +12 -0
  83. package/dist/types/widget/components/ui/avatar/avatar.d.ts +10 -0
  84. package/dist/types/widget/components/ui/banner/banner-skeleton.d.ts +2 -0
  85. package/dist/types/widget/components/ui/banner/banner.d.ts +13 -0
  86. package/dist/types/widget/components/ui/button.d.ts +11 -0
  87. package/dist/types/widget/components/ui/expander.d.ts +8 -0
  88. package/dist/types/widget/components/ui/image.d.ts +5 -0
  89. package/dist/types/widget/components/ui/link.d.ts +7 -0
  90. package/dist/types/widget/components/ui/price.d.ts +7 -0
  91. package/dist/types/widget/components/ui/skeleton/skeleton-container.d.ts +6 -0
  92. package/dist/types/widget/components/ui/skeleton/skeleton.d.ts +2 -0
  93. package/dist/types/widget/components/widget-container.d.ts +3 -0
  94. package/dist/types/widget/components/widget.d.ts +2 -0
  95. package/dist/types/widget/lib/constants.d.ts +13 -0
  96. package/dist/types/widget/lib/context/dialog-context.d.ts +3 -0
  97. package/dist/types/widget/lib/context/error-context.d.ts +10 -0
  98. package/dist/types/widget/lib/context/return-context.d.ts +12 -0
  99. package/dist/types/widget/lib/context/root-context.d.ts +2 -0
  100. package/dist/types/widget/lib/context/toast-context.d.ts +13 -0
  101. package/dist/types/widget/lib/context/widget-context.d.ts +9 -0
  102. package/dist/types/widget/lib/hooks/common/use-array.d.ts +14 -0
  103. package/dist/types/widget/lib/hooks/common/use-async-state.d.ts +40 -0
  104. package/dist/types/widget/lib/hooks/common/use-dialog.d.ts +11 -0
  105. package/dist/types/widget/lib/hooks/common/use-is-mounted.d.ts +2 -0
  106. package/dist/types/widget/lib/hooks/common/use-once.d.ts +3 -0
  107. package/dist/types/widget/lib/hooks/common/use-value-state.d.ts +7 -0
  108. package/dist/types/widget/lib/hooks/common/use-y-scrollable.d.ts +10 -0
  109. package/dist/types/widget/lib/hooks/context/use-calculation.d.ts +12 -0
  110. package/dist/types/widget/lib/hooks/context/use-cart-items.d.ts +9 -0
  111. package/dist/types/widget/lib/hooks/context/use-currency.d.ts +12 -0
  112. package/dist/types/widget/lib/hooks/context/use-errors.d.ts +2 -0
  113. package/dist/types/widget/lib/hooks/context/use-navigation.d.ts +6 -0
  114. package/dist/types/widget/lib/hooks/context/use-return-context.d.ts +2 -0
  115. package/dist/types/widget/lib/hooks/context/use-root.d.ts +2 -0
  116. package/dist/types/widget/lib/hooks/context/use-theme.d.ts +5 -0
  117. package/dist/types/widget/lib/hooks/context/use-toast.d.ts +2 -0
  118. package/dist/types/widget/lib/hooks/context/use-widget-context.d.ts +2 -0
  119. package/dist/types/widget/lib/hooks/feature/use-api-bridge.d.ts +6 -0
  120. package/dist/types/widget/lib/hooks/feature/use-cart-activator.d.ts +2 -0
  121. package/dist/types/widget/lib/hooks/feature/use-external-events.d.ts +2 -0
  122. package/dist/types/widget/lib/hooks/feature/use-fetch-interceptor.d.ts +4 -0
  123. package/dist/types/widget/lib/hooks/feature/use-override-scroll-blocking.d.ts +2 -0
  124. package/dist/types/widget/lib/types.d.ts +382 -0
  125. package/dist/types/widget/lib/utils/api.d.ts +26 -0
  126. package/dist/types/widget/lib/utils/cart-provider-store.d.ts +3 -0
  127. package/dist/types/widget/lib/utils/cart.d.ts +17 -0
  128. package/dist/types/widget/lib/utils/custom-events.d.ts +48 -0
  129. package/dist/types/widget/lib/utils/dom.d.ts +2 -0
  130. package/dist/types/widget/lib/utils/errors.d.ts +6 -0
  131. package/dist/types/widget/lib/utils/helpers.d.ts +24 -0
  132. package/dist/types/widget/lib/utils/i18n.d.ts +8 -0
  133. package/dist/types/widget/lib/utils/initialization/dataset.d.ts +5 -0
  134. package/dist/types/widget/lib/utils/initialization/font.d.ts +7 -0
  135. package/dist/types/widget/lib/utils/initialization/index.d.ts +6 -0
  136. package/dist/types/widget/lib/utils/initialization/styles.d.ts +4 -0
  137. package/dist/types/widget/lib/utils/initialization/types.d.ts +51 -0
  138. package/dist/types/widget/lib/utils/interceptor/fetch.d.ts +5 -0
  139. package/dist/types/widget/lib/utils/interceptor/index.d.ts +26 -0
  140. package/dist/types/widget/lib/utils/interceptor/xhr.d.ts +5 -0
  141. package/dist/types/widget/lib/utils/logger.d.ts +13 -0
  142. package/dist/types/widget/lib/utils/navigation.d.ts +7 -0
  143. package/dist/types/widget/lib/utils/session.d.ts +54 -0
  144. package/dist/types/widget/lib/utils/shopify.d.ts +6 -0
  145. package/dist/types/widget/lib/utils/storage.d.ts +33 -0
  146. package/dist/variables.css +1 -0
  147. package/dist/widget.css +3 -0
  148. package/dist/widget.js +12006 -0
  149. package/package.json +112 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/widget/lib/types.ts","../src/widget/lib/utils/cart-provider-store.ts","../node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.mjs","../node_modules/.pnpm/tailwind-merge@3.3.0/node_modules/tailwind-merge/dist/bundle-mjs.mjs","../src/widget/lib/utils/storage.ts","../src/widget/lib/utils/logger.ts","../src/widget/lib/utils/helpers.ts","../src/widget/lib/utils/shopify.ts","../src/widget/lib/utils/cart.ts","../src/api/storefront-cart.ts","../src/api/state-bridge.ts","../src/api/widget-api.ts","../node_modules/.pnpm/preact@10.26.9/node_modules/preact/dist/preact.module.js","../src/widget/lib/constants.ts","../src/widget/lib/utils/custom-events.ts","../src/widget/lib/utils/i18n.ts","../src/widget/lib/utils/api.ts","../src/widget/lib/utils/session.ts","../src/widget/lib/utils/initialization/dataset.ts","../src/widget/lib/utils/initialization/font.ts","../src/widget/lib/utils/initialization/styles.ts","../src/widget/lib/utils/initialization/index.ts","../node_modules/.pnpm/@rollup+plugin-typescript@12.1.2_rollup@4.29.1_tslib@2.8.1_typescript@5.6.3/node_modules/tslib/tslib.es6.js","../node_modules/.pnpm/@formatjs+fast-memoize@2.2.7/node_modules/@formatjs/fast-memoize/lib/index.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/error.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/types.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.8.14/node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.8.14/node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","../node_modules/.pnpm/@formatjs+icu-skeleton-parser@1.8.14/node_modules/@formatjs/icu-skeleton-parser/lib/number.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/time-data.generated.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/date-time-pattern-generator.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","../node_modules/.pnpm/@formatjs+icu-messageformat-parser@2.11.2/node_modules/@formatjs/icu-messageformat-parser/lib/index.js","../node_modules/.pnpm/intl-messageformat@10.7.16/node_modules/intl-messageformat/lib/src/error.js","../node_modules/.pnpm/intl-messageformat@10.7.16/node_modules/intl-messageformat/lib/src/formatters.js","../node_modules/.pnpm/intl-messageformat@10.7.16/node_modules/intl-messageformat/lib/src/core.js","../node_modules/.pnpm/preact@10.26.9/node_modules/preact/hooks/dist/hooks.module.js","../node_modules/.pnpm/preact@10.26.9/node_modules/preact/compat/dist/compat.module.js","../node_modules/.pnpm/use-intl@4.1.0_react@18.3.1/node_modules/use-intl/dist/esm/production/initializeConfig-zfMDfl5R.js","../node_modules/.pnpm/use-intl@4.1.0_react@18.3.1/node_modules/use-intl/dist/esm/production/react.js","../src/widget/lib/hooks/common/use-value-state.ts","../src/widget/lib/hooks/common/use-dialog.ts","../src/widget/lib/hooks/common/use-once.ts","../src/widget/lib/context/widget-context.ts","../src/widget/lib/hooks/context/use-widget-context.ts","../src/widget/lib/utils/navigation.ts","../src/widget/lib/context/return-context.ts","../src/widget/lib/hooks/context/use-return-context.ts","../src/widget/components/ui/image.tsx","../src/widget/components/ui/skeleton/skeleton-container.tsx","../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.mjs","../src/widget/components/ui/avatar/avatar.tsx","../src/widget/components/ui/skeleton/skeleton.tsx","../src/widget/components/ui/avatar/avatar-stack-skeleton.tsx","../src/widget/components/ui/avatar/avatar-stack.tsx","../src/widget/components/return-avatar-stack.tsx","../src/widget/lib/context/dialog-context.ts","../src/widget/lib/hooks/common/use-is-mounted.ts","../src/widget/lib/context/root-context.ts","../src/widget/lib/hooks/context/use-root.ts","../src/widget/components/dialog/common/dialog-backdrop.tsx","../src/widget/components/dialog/common/dialog-modal.tsx","../src/widget/components/dialog/common/dialog-title.tsx","../src/widget/components/dialog/common/dialog-subtitle.tsx","../src/widget/components/icons/arrow-right.tsx","../src/widget/components/icons/x.tsx","../src/widget/components/icons/spinner.tsx","../src/widget/components/ui/button.tsx","../src/widget/components/dialog/common/dialog-button.tsx","../src/widget/components/dialog/common/index.ts","../src/widget/components/dialog/return-decision-dialog.tsx","../src/widget/components/handlers/dialog-handler.tsx","../src/widget/lib/context/toast-context.ts","../src/widget/lib/hooks/context/use-toast.ts","../src/widget/lib/hooks/feature/use-api-bridge.ts","../src/widget/lib/hooks/feature/use-external-events.ts","../src/widget/lib/utils/errors.ts","../src/widget/lib/utils/interceptor/fetch.ts","../src/widget/lib/utils/interceptor/xhr.ts","../src/widget/lib/utils/interceptor/index.ts","../src/widget/lib/context/error-context.ts","../src/widget/lib/hooks/context/use-errors.ts","../src/widget/lib/hooks/feature/use-fetch-interceptor.tsx","../src/widget/lib/hooks/feature/use-override-scroll-blocking.ts","../src/widget/lib/utils/dom.ts","../src/widget/lib/hooks/feature/use-cart-activator.ts","../src/widget/components/handlers/initialization-handler.tsx","../src/widget/components/is-mounted.tsx","../src/widget/lib/hooks/common/use-array.ts","../src/widget/components/providers/error-provider.tsx","../src/widget/lib/hooks/common/use-async-state.ts","../src/widget/components/providers/return-context-provider.tsx","../src/widget/lib/hooks/context/use-theme.ts","../src/widget/components/providers/root-provider.tsx","../src/widget/components/providers/widget-context-provider.tsx","../src/widget/components/toast/toast-provider.tsx","../src/widget/components/icons/banner/action.tsx","../src/widget/components/icons/banner/info.tsx","../src/widget/components/icons/giftcard.tsx","../src/widget/components/icons/warning.tsx","../src/widget/components/ui/banner/banner-skeleton.tsx","../src/widget/components/ui/banner/banner.tsx","../src/widget/components/drawer/adjustments/exchange-banner.tsx","../src/widget/lib/hooks/context/use-currency.ts","../src/widget/lib/hooks/context/use-calculation.ts","../src/widget/components/icons/star.tsx","../src/widget/components/ui/price.tsx","../src/widget/components/drawer/adjustments/table/adjustments-table-skeleton.tsx","../src/widget/components/drawer/adjustments/table/adjustments-table.tsx","../src/widget/components/drawer/adjustments/exchange-adjustments.tsx","../src/widget/components/drawer/annoucement-bar.tsx","../src/widget/components/drawer/error-screen.tsx","../src/widget/lib/hooks/context/use-navigation.ts","../src/widget/components/drawer/exchange-confirmation.tsx","../src/widget/components/icons/icon.tsx","../src/widget/components/drawer/exchange-header.tsx","../src/widget/components/icons/cart.tsx","../src/widget/components/drawer/exchange-placeholder.tsx","../src/widget/components/drawer/product/product-errors.tsx","../src/widget/lib/hooks/context/use-cart-items.ts","../src/widget/components/drawer/product/quantity-picker.tsx","../src/widget/components/drawer/product/product-actions.tsx","../src/widget/components/ui/link.tsx","../src/widget/components/drawer/product/product-attributes.tsx","../src/widget/components/drawer/product/product-image.tsx","../src/widget/components/drawer/product/product.tsx","../src/widget/components/drawer/product/product-list.tsx","../src/widget/components/icons/arrow-down.tsx","../src/widget/components/icons/chevron.tsx","../src/widget/components/ui/expander.tsx","../src/widget/components/drawer/return/return-product-badge.tsx","../src/widget/components/drawer/return/return-product-actions.tsx","../src/widget/components/drawer/return/return-product.tsx","../src/widget/components/drawer/return/return-product-skeleton.tsx","../src/widget/components/drawer/return/return-product-list.tsx","../src/widget/lib/hooks/common/use-y-scrollable.ts","../src/widget/components/drawer/scroll-indicator.tsx","../src/widget/components/drawer/exchange-drawer.tsx","../src/widget/components/icons/bag.tsx","../src/widget/components/toast/toast.tsx","../src/widget/components/toast/toast-container.tsx","../src/widget/components/icons/arrow-left.tsx","../src/widget/components/summary/back-button.tsx","../src/widget/components/summary/exchange-total-skeleton.tsx","../src/widget/components/summary/exchange-total.tsx","../src/widget/components/summary/exchange-summary.tsx","../src/widget/components/widget.tsx","../src/widget/components/widget-container.tsx"],"sourcesContent":["// This file is used to declare the global types for the Shopify object.\n// This is necessary because globals.d.ts is not automatically included in the build process.\n\ntype GlobalShopify = {\n\tshop: string;\n\tlocale: string;\n\tcurrency: {\n\t\tactive: string;\n\t\trate: string;\n\t};\n\tcountry: string;\n\ttheme: {\n\t\tname: string;\n\t\tid: number;\n\t\tschema_name: string;\n\t\tschema_version: string;\n\t\ttheme_store_id?: number;\n\t\trole: string;\n\t\thandle: string;\n\t\tstyle: {\n\t\t\tid?: string | null;\n\t\t\thandle?: string | null;\n\t\t};\n\t};\n\tcdnHost: string;\n\troutes: {\n\t\troot: string;\n\t};\n\tce_forms: {\n\t\tq: Array<unknown>;\n\t};\n\tcaptcha: unknown;\n\tPaymentButton: {\n\t\tisStorefrontPortableWallets: boolean;\n\t};\n\tanalytics: {\n\t\treplayQueue: Array<unknown>;\n\t\tinitialized: boolean;\n\t};\n\tmodules: boolean;\n\tfeatureAssets: {\n\t\t\"shop-js\": unknown;\n\t};\n};\n\ntype InterceptionProperties = {\n\trf_interception?: boolean;\n};\n\ndeclare global {\n\tinterface Window {\n\t\t__rf_original_fetch?: typeof fetch;\n\t\tfetch: typeof fetch & InterceptionProperties;\n\n\t\t__rf_original_xhr?: typeof XMLHttpRequest;\n\t\tXMLHttpRequest: typeof XMLHttpRequest & InterceptionProperties;\n\n\t\t__rf_original_search?: string;\n\t\tShopify: GlobalShopify;\n\t}\n}\n\nexport type ReturnAction = \"swap\" | \"exchange\" | \"giftcard\" | \"refund\";\n\nexport type ProductRule = {\n\tid: string;\n\ttype: \"NO_RETURN\" | \"NO_REFUND\" | \"EXTEND_PERIOD\" | \"NO_EXCHANGE_TO\";\n\textendedBy: number;\n\tmarketId: string;\n\tupdatedAt: string;\n\tcreatedAt: string;\n\tproducts: Array<{\n\t\ttitle: string;\n\t\timage: string;\n\t\tid: string;\n\t\truleId: string;\n\t\tshopifyProductId: string;\n\t\tcreatedAt: string;\n\t}>;\n};\n\nexport interface ShopOverlayData {\n\tid: string;\n\torderId: string;\n\torderName: string;\n\tinstantExchange: boolean;\n\tfreeExchangeLabel: boolean;\n\tproductsToExchange: Array<OrderProduct>;\n\ttotalPrice: number;\n\tproductRules: Array<ProductRule>;\n\treturnWindows: {\n\t\texchangeReturnWindow: boolean;\n\t\trefundReturnWindow: boolean;\n\t};\n}\n\nexport interface OrderProduct {\n\tid: string;\n\tshopifyLineId: string;\n\ttitle: string;\n\tvariantTitle: string;\n\timage: string;\n\thandle: string;\n\tprice: number;\n\tquantity: number;\n}\n\nexport interface ShopifyCartAddResponse {\n\tid: number;\n\tproperties: Record<string, unknown>;\n\tquantity: number;\n\tvariant_id: number;\n\tkey: string;\n\ttitle: string;\n\tproduct_title: string;\n\tvariant_title: string;\n\tprice: number;\n\toriginal_price: number;\n\tdiscounted_price: number;\n\tline_price: number;\n\toriginal_line_price: number;\n\tpresentment_price: number;\n\ttotal_discount: number;\n\tdiscounts: Array<unknown>;\n\tsku: string;\n\tgrams: number;\n\tvendor: string;\n\ttaxable: boolean;\n\tproduct_id: number;\n\tproduct_has_only_default_variant: boolean;\n\tgift_card: boolean;\n\tfinal_price: number;\n\tfinal_line_price: number;\n\turl: string;\n\tfeatured_image: {\n\t\talt: string;\n\t\taspect_ratio: number;\n\t\theight: number;\n\t\turl: string;\n\t\twidth: number;\n\t};\n\timage: string;\n\thandle: string;\n\trequires_shipping: boolean;\n\tproduct_type: string;\n\tuntranslated_product_title: string;\n\tproduct_description: string;\n\tuntranslated_variant_title: string;\n\tvariant_options: Array<string>;\n\toptions_with_values: Array<{\n\t\tname: string;\n\t\tvalue: string;\n\t}>;\n\tline_level_discount_allocations: Array<unknown>;\n\tline_level_total_discount: number;\n\tsections: {\n\t\t\"cart-notification-product\": string;\n\t\t\"cart-notification-button\": string;\n\t\t\"cart-icon-bubble\": string;\n\t};\n}\n\nexport interface ShopifyCart {\n\titems: Array<ShopifyCartItem>;\n\titem_count: number;\n\ttoken?: string;\n\tnote?: string;\n\tattributes?: Record<string, unknown>;\n\toriginal_total_price?: number;\n\ttotal_price?: number;\n\ttotal_discount?: number;\n\ttotal_weight?: number;\n\trequires_shipping?: boolean;\n\tcurrency?: string;\n\titems_subtotal_price?: number;\n\tcart_level_discount_applications?: Array<unknown>;\n\tdiscount_codes?: Array<unknown>;\n}\n\nexport interface ShopifyCartChangeResponse extends ShopifyCart {\n\titems_added: Array<ShopifyCartItem>;\n\titems_removed: Array<ShopifyCartItem>;\n}\n\nexport interface ShopifyCartItem {\n\tvariant_id: number;\n\tquantity: number;\n\ttitle: string;\n\tprice: number;\n\tproduct_id: number;\n\tproduct_title: string;\n\thandle: string;\n\timage: string;\n\tgrams: number;\n\tline_price: number;\n\tfinal_price: number;\n\tfinal_line_price: number;\n\n\t// Optional fields\n\tid?: number;\n\tline_id?: string;\n\tmerchandise_id?: string;\n\tproperties?: Record<string, unknown>;\n\tkey?: string;\n\tvariant_title?: string;\n\tquantity_rule?: {\n\t\tmin: number | null;\n\t\tmax: number | null;\n\t\tincrement: number | null;\n\t};\n\toriginal_price?: number;\n\tpresentment_price?: number;\n\tdiscounted_price?: number;\n\toriginal_line_price?: number;\n\ttotal_discount?: number;\n\tdiscounts?: Array<unknown>;\n\tsku?: string;\n\tvendor?: string;\n\ttaxable?: boolean;\n\tproduct_has_only_default_variant?: boolean;\n\tgift_card?: boolean;\n\turl?: string;\n\tfeatured_image?: {\n\t\taspect_ratio: number;\n\t\talt: string;\n\t\theight: number;\n\t\turl: string;\n\t\twidth: number;\n\t};\n\trequires_shipping?: boolean;\n\tproduct_type?: string;\n\tproduct_description?: string;\n\tvariant_options?: Array<string>;\n\toptions_with_values?: Array<{\n\t\tname: string;\n\t\tvalue: string;\n\t}>;\n\tline_level_discount_allocations?: Array<unknown>;\n\tline_level_total_discount?: number;\n\thas_components?: boolean;\n}\n\nexport interface ShopifyErrorResponse {\n\tstatus: string;\n\tmessage: string;\n\tdescription: string;\n}\n\nexport interface CalculationExchangeProduct {\n\tvariantId: string | undefined; // Undefined if product is deleted\n\tproductId: string;\n\tproductTitle: string;\n\tprice: number;\n\tcompareAtPrice: number | null;\n\tcoverage: {\n\t\toriginalProductId: string;\n\t\toriginalVariantId: string;\n\t\tquantityCovered: number;\n\t\toriginalUnitPrice: number;\n\t\texchangeUnitPrice: number;\n\t\tcoveredAmount: number;\n\t} | null;\n}\n\nexport interface CalculationLineItem {\n\tid: string;\n\tlineItemId: string;\n\tvariantId: string;\n\tproductId: string;\n\tquantity: number;\n\tlineItemDistributionKey: number;\n\taction: \"NOT_DECIDED\" | \"REFUND\" | \"EXCHANGE\" | \"SWAP\" | \"GIFTCARD\";\n\toriginalPrice: number;\n\tprice: number;\n\tdiscountedPrice: number;\n\toriginalTotal: number;\n\ttotal: number;\n\tdiscountedTotal: number;\n\tmetafield: {\n\t\tnamespace: unknown;\n\t\tkey: unknown;\n\t\tvalue: unknown;\n\t};\n}\n\nexport interface CalculationResponse {\n\tpercentageOfReturn: number;\n\treturnLabelPrice: number;\n\tgiftCardBonusAmount: number;\n\trefundMethods: {\n\t\trefund: number;\n\t\tgiftcard: number;\n\t\texchange: number;\n\t};\n\tdistributionKeysByAction: {\n\t\tREFUND: number;\n\t\tEXCHANGE: number;\n\t\tGIFTCARD: number;\n\t};\n\tshipping: {\n\t\tamount: number;\n\t\tamountInCurrency: number;\n\t\toriginalOrderShipping: number;\n\t};\n\torderDiscounts: Array<unknown>;\n\tdiscountSummary: {\n\t\toriginalDiscountTotal: number;\n\t\tadjustedDiscountTotal: number;\n\t\tappliedToReturnSubtotal: number;\n\t\thasDiscounts: boolean;\n\t\thasAdjustedDiscounts: boolean;\n\t\tdiscountAppliedToExchange: boolean;\n\t\tdiscountAddedToReturnSubtotal: boolean;\n\t\tshippingRefundAppliedToReturnSubtotal: boolean;\n\t};\n\tlineItems: Array<CalculationLineItem>;\n\texchange: {\n\t\toriginalTotal: number;\n\t\tnewTotal: number;\n\t\tpriceDifference: number;\n\t\tisUpsell: boolean;\n\t\tadditionalCharge: number;\n\t\ttotalCoveredAmount: number;\n\t\tdiscountSummary: {\n\t\t\toriginalDiscountTotal: number;\n\t\t\tadjustedDiscountTotal: number;\n\t\t\tappliedToReturnSubtotal: number;\n\t\t\thasDiscounts: boolean;\n\t\t\thasAdjustedDiscounts: boolean;\n\t\t\tdiscountAppliedToExchange: boolean;\n\t\t\tdiscountAddedToReturnSubtotal: boolean;\n\t\t\tshippingRefundAppliedToReturnSubtotal: boolean;\n\t\t};\n\t\texchangeDetails: Array<CalculationExchangeProduct>;\n\t};\n\tcurrency: {\n\t\tlocalCurrency: string;\n\t\tshopCurrency: string;\n\t\texchangeRate: number;\n\t};\n\toptions: {\n\t\tcoverPriceChange: boolean;\n\t\torderDiscountMatch: boolean;\n\t\tproductDiscountMatch: boolean;\n\t\tgiftCardBonusPercentage: number;\n\t\trefundOriginalShippingType: string;\n\t};\n\treturnSubtotal: number;\n\torderSubtotal: number;\n\tpreferedLabelDeduction: string;\n\ttotal: number;\n\tcalculatedAt: string;\n\tdetailedBreakdown: {\n\t\toriginalOrder: {\n\t\t\tsubtotal: number;\n\t\t\tshipping: number;\n\t\t\tdiscounts: Array<unknown>;\n\t\t\ttotal: number;\n\t\t};\n\t\treturn: {\n\t\t\tsubtotal: {\n\t\t\t\titems: number;\n\t\t\t\treturnLabelPrice: number;\n\t\t\t\tshippingRefund: number;\n\t\t\t\tdiscounts: Array<unknown>;\n\t\t\t\ttotal: number;\n\t\t\t};\n\t\t\trefundMethods: {\n\t\t\t\trefund: {\n\t\t\t\t\tamount: number;\n\t\t\t\t\tdescription: string;\n\t\t\t\t};\n\t\t\t\tgiftcard: {\n\t\t\t\t\tbaseAmount: number;\n\t\t\t\t\tbonusAmount: number;\n\t\t\t\t\tbonusPercentage: number;\n\t\t\t\t\ttotalAmount: number;\n\t\t\t\t};\n\t\t\t\texchange: {\n\t\t\t\t\tamount: number;\n\t\t\t\t\tpriceDifference: number;\n\t\t\t\t\tfinalAmount: number;\n\t\t\t\t};\n\t\t\t};\n\t\t\ttotal: number;\n\t\t};\n\t\tpreferedLabelDeduction: string;\n\t\tcurrency: {\n\t\t\tlocalCurrency: string;\n\t\t\tshopCurrency: string;\n\t\t\texchangeRate: number;\n\t\t};\n\t};\n}\n\nexport enum WidgetViewState {\n\tCollapsed = \"COLLAPSED\",\n\tOpen = \"OPEN\"\n}\n\nexport enum ReturnViewState {\n\tCollapsed = \"COLLAPSED\",\n\tOpen = \"OPEN\"\n}\n","import type { CartInput, CartProvider, ShopifyCart } from \"../../../api/types\";\n\ninterface ReturnflowsGlobal {\n\t_cartProvider?: CartProvider | null;\n}\n\nexport function getInternalCartProvider<\n\tT extends CartInput = ShopifyCart\n>(): CartProvider<T> | null {\n\tif (typeof window === \"undefined\") {\n\t\treturn null;\n\t}\n\treturn ((window as unknown as { Returnflows?: ReturnflowsGlobal }).Returnflows\n\t\t?._cartProvider ?? null) as CartProvider<T> | null;\n}\n\nexport function hasCartProvider(): boolean {\n\tif (typeof window === \"undefined\") {\n\t\treturn false;\n\t}\n\treturn (\n\t\t(window as unknown as { Returnflows?: ReturnflowsGlobal }).Returnflows\n\t\t\t?._cartProvider != null\n\t);\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","const CLASS_PART_SEPARATOR = '-';\nconst createClassGroupUtils = config => {\n const classMap = createClassMap(config);\n const {\n conflictingClassGroups,\n conflictingClassGroupModifiers\n } = config;\n const getClassGroupId = className => {\n const classParts = className.split(CLASS_PART_SEPARATOR);\n // Classes like `-inset-1` produce an empty string as first classPart. We assume that classes for negative values are used correctly and remove it from classParts.\n if (classParts[0] === '' && classParts.length !== 1) {\n classParts.shift();\n }\n return getGroupRecursive(classParts, classMap) || getGroupIdForArbitraryProperty(className);\n };\n const getConflictingClassGroupIds = (classGroupId, hasPostfixModifier) => {\n const conflicts = conflictingClassGroups[classGroupId] || [];\n if (hasPostfixModifier && conflictingClassGroupModifiers[classGroupId]) {\n return [...conflicts, ...conflictingClassGroupModifiers[classGroupId]];\n }\n return conflicts;\n };\n return {\n getClassGroupId,\n getConflictingClassGroupIds\n };\n};\nconst getGroupRecursive = (classParts, classPartObject) => {\n if (classParts.length === 0) {\n return classPartObject.classGroupId;\n }\n const currentClassPart = classParts[0];\n const nextClassPartObject = classPartObject.nextPart.get(currentClassPart);\n const classGroupFromNextClassPart = nextClassPartObject ? getGroupRecursive(classParts.slice(1), nextClassPartObject) : undefined;\n if (classGroupFromNextClassPart) {\n return classGroupFromNextClassPart;\n }\n if (classPartObject.validators.length === 0) {\n return undefined;\n }\n const classRest = classParts.join(CLASS_PART_SEPARATOR);\n return classPartObject.validators.find(({\n validator\n }) => validator(classRest))?.classGroupId;\n};\nconst arbitraryPropertyRegex = /^\\[(.+)\\]$/;\nconst getGroupIdForArbitraryProperty = className => {\n if (arbitraryPropertyRegex.test(className)) {\n const arbitraryPropertyClassName = arbitraryPropertyRegex.exec(className)[1];\n const property = arbitraryPropertyClassName?.substring(0, arbitraryPropertyClassName.indexOf(':'));\n if (property) {\n // I use two dots here because one dot is used as prefix for class groups in plugins\n return 'arbitrary..' + property;\n }\n }\n};\n/**\n * Exported for testing only\n */\nconst createClassMap = config => {\n const {\n theme,\n classGroups\n } = config;\n const classMap = {\n nextPart: new Map(),\n validators: []\n };\n for (const classGroupId in classGroups) {\n processClassesRecursively(classGroups[classGroupId], classMap, classGroupId, theme);\n }\n return classMap;\n};\nconst processClassesRecursively = (classGroup, classPartObject, classGroupId, theme) => {\n classGroup.forEach(classDefinition => {\n if (typeof classDefinition === 'string') {\n const classPartObjectToEdit = classDefinition === '' ? classPartObject : getPart(classPartObject, classDefinition);\n classPartObjectToEdit.classGroupId = classGroupId;\n return;\n }\n if (typeof classDefinition === 'function') {\n if (isThemeGetter(classDefinition)) {\n processClassesRecursively(classDefinition(theme), classPartObject, classGroupId, theme);\n return;\n }\n classPartObject.validators.push({\n validator: classDefinition,\n classGroupId\n });\n return;\n }\n Object.entries(classDefinition).forEach(([key, classGroup]) => {\n processClassesRecursively(classGroup, getPart(classPartObject, key), classGroupId, theme);\n });\n });\n};\nconst getPart = (classPartObject, path) => {\n let currentClassPartObject = classPartObject;\n path.split(CLASS_PART_SEPARATOR).forEach(pathPart => {\n if (!currentClassPartObject.nextPart.has(pathPart)) {\n currentClassPartObject.nextPart.set(pathPart, {\n nextPart: new Map(),\n validators: []\n });\n }\n currentClassPartObject = currentClassPartObject.nextPart.get(pathPart);\n });\n return currentClassPartObject;\n};\nconst isThemeGetter = func => func.isThemeGetter;\n\n// LRU cache inspired from hashlru (https://github.com/dominictarr/hashlru/blob/v1.0.4/index.js) but object replaced with Map to improve performance\nconst createLruCache = maxCacheSize => {\n if (maxCacheSize < 1) {\n return {\n get: () => undefined,\n set: () => {}\n };\n }\n let cacheSize = 0;\n let cache = new Map();\n let previousCache = new Map();\n const update = (key, value) => {\n cache.set(key, value);\n cacheSize++;\n if (cacheSize > maxCacheSize) {\n cacheSize = 0;\n previousCache = cache;\n cache = new Map();\n }\n };\n return {\n get(key) {\n let value = cache.get(key);\n if (value !== undefined) {\n return value;\n }\n if ((value = previousCache.get(key)) !== undefined) {\n update(key, value);\n return value;\n }\n },\n set(key, value) {\n if (cache.has(key)) {\n cache.set(key, value);\n } else {\n update(key, value);\n }\n }\n };\n};\nconst IMPORTANT_MODIFIER = '!';\nconst MODIFIER_SEPARATOR = ':';\nconst MODIFIER_SEPARATOR_LENGTH = MODIFIER_SEPARATOR.length;\nconst createParseClassName = config => {\n const {\n prefix,\n experimentalParseClassName\n } = config;\n /**\n * Parse class name into parts.\n *\n * Inspired by `splitAtTopLevelOnly` used in Tailwind CSS\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v3.2.2/src/util/splitAtTopLevelOnly.js\n */\n let parseClassName = className => {\n const modifiers = [];\n let bracketDepth = 0;\n let parenDepth = 0;\n let modifierStart = 0;\n let postfixModifierPosition;\n for (let index = 0; index < className.length; index++) {\n let currentCharacter = className[index];\n if (bracketDepth === 0 && parenDepth === 0) {\n if (currentCharacter === MODIFIER_SEPARATOR) {\n modifiers.push(className.slice(modifierStart, index));\n modifierStart = index + MODIFIER_SEPARATOR_LENGTH;\n continue;\n }\n if (currentCharacter === '/') {\n postfixModifierPosition = index;\n continue;\n }\n }\n if (currentCharacter === '[') {\n bracketDepth++;\n } else if (currentCharacter === ']') {\n bracketDepth--;\n } else if (currentCharacter === '(') {\n parenDepth++;\n } else if (currentCharacter === ')') {\n parenDepth--;\n }\n }\n const baseClassNameWithImportantModifier = modifiers.length === 0 ? className : className.substring(modifierStart);\n const baseClassName = stripImportantModifier(baseClassNameWithImportantModifier);\n const hasImportantModifier = baseClassName !== baseClassNameWithImportantModifier;\n const maybePostfixModifierPosition = postfixModifierPosition && postfixModifierPosition > modifierStart ? postfixModifierPosition - modifierStart : undefined;\n return {\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n };\n };\n if (prefix) {\n const fullPrefix = prefix + MODIFIER_SEPARATOR;\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => className.startsWith(fullPrefix) ? parseClassNameOriginal(className.substring(fullPrefix.length)) : {\n isExternal: true,\n modifiers: [],\n hasImportantModifier: false,\n baseClassName: className,\n maybePostfixModifierPosition: undefined\n };\n }\n if (experimentalParseClassName) {\n const parseClassNameOriginal = parseClassName;\n parseClassName = className => experimentalParseClassName({\n className,\n parseClassName: parseClassNameOriginal\n });\n }\n return parseClassName;\n};\nconst stripImportantModifier = baseClassName => {\n if (baseClassName.endsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(0, baseClassName.length - 1);\n }\n /**\n * In Tailwind CSS v3 the important modifier was at the start of the base class name. This is still supported for legacy reasons.\n * @see https://github.com/dcastil/tailwind-merge/issues/513#issuecomment-2614029864\n */\n if (baseClassName.startsWith(IMPORTANT_MODIFIER)) {\n return baseClassName.substring(1);\n }\n return baseClassName;\n};\n\n/**\n * Sorts modifiers according to following schema:\n * - Predefined modifiers are sorted alphabetically\n * - When an arbitrary variant appears, it must be preserved which modifiers are before and after it\n */\nconst createSortModifiers = config => {\n const orderSensitiveModifiers = Object.fromEntries(config.orderSensitiveModifiers.map(modifier => [modifier, true]));\n const sortModifiers = modifiers => {\n if (modifiers.length <= 1) {\n return modifiers;\n }\n const sortedModifiers = [];\n let unsortedModifiers = [];\n modifiers.forEach(modifier => {\n const isPositionSensitive = modifier[0] === '[' || orderSensitiveModifiers[modifier];\n if (isPositionSensitive) {\n sortedModifiers.push(...unsortedModifiers.sort(), modifier);\n unsortedModifiers = [];\n } else {\n unsortedModifiers.push(modifier);\n }\n });\n sortedModifiers.push(...unsortedModifiers.sort());\n return sortedModifiers;\n };\n return sortModifiers;\n};\nconst createConfigUtils = config => ({\n cache: createLruCache(config.cacheSize),\n parseClassName: createParseClassName(config),\n sortModifiers: createSortModifiers(config),\n ...createClassGroupUtils(config)\n});\nconst SPLIT_CLASSES_REGEX = /\\s+/;\nconst mergeClassList = (classList, configUtils) => {\n const {\n parseClassName,\n getClassGroupId,\n getConflictingClassGroupIds,\n sortModifiers\n } = configUtils;\n /**\n * Set of classGroupIds in following format:\n * `{importantModifier}{variantModifiers}{classGroupId}`\n * @example 'float'\n * @example 'hover:focus:bg-color'\n * @example 'md:!pr'\n */\n const classGroupsInConflict = [];\n const classNames = classList.trim().split(SPLIT_CLASSES_REGEX);\n let result = '';\n for (let index = classNames.length - 1; index >= 0; index -= 1) {\n const originalClassName = classNames[index];\n const {\n isExternal,\n modifiers,\n hasImportantModifier,\n baseClassName,\n maybePostfixModifierPosition\n } = parseClassName(originalClassName);\n if (isExternal) {\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n let hasPostfixModifier = !!maybePostfixModifierPosition;\n let classGroupId = getClassGroupId(hasPostfixModifier ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);\n if (!classGroupId) {\n if (!hasPostfixModifier) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n classGroupId = getClassGroupId(baseClassName);\n if (!classGroupId) {\n // Not a Tailwind class\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n continue;\n }\n hasPostfixModifier = false;\n }\n const variantModifier = sortModifiers(modifiers).join(':');\n const modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;\n const classId = modifierId + classGroupId;\n if (classGroupsInConflict.includes(classId)) {\n // Tailwind class omitted due to conflict\n continue;\n }\n classGroupsInConflict.push(classId);\n const conflictGroups = getConflictingClassGroupIds(classGroupId, hasPostfixModifier);\n for (let i = 0; i < conflictGroups.length; ++i) {\n const group = conflictGroups[i];\n classGroupsInConflict.push(modifierId + group);\n }\n // Tailwind class not in conflict\n result = originalClassName + (result.length > 0 ? ' ' + result : result);\n }\n return result;\n};\n\n/**\n * The code in this file is copied from https://github.com/lukeed/clsx and modified to suit the needs of tailwind-merge better.\n *\n * Specifically:\n * - Runtime code from https://github.com/lukeed/clsx/blob/v1.2.1/src/index.js\n * - TypeScript types from https://github.com/lukeed/clsx/blob/v1.2.1/clsx.d.ts\n *\n * Original code has MIT license: Copyright (c) Luke Edwards <luke.edwards05@gmail.com> (lukeed.com)\n */\nfunction twJoin() {\n let index = 0;\n let argument;\n let resolvedValue;\n let string = '';\n while (index < arguments.length) {\n if (argument = arguments[index++]) {\n if (resolvedValue = toValue(argument)) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n}\nconst toValue = mix => {\n if (typeof mix === 'string') {\n return mix;\n }\n let resolvedValue;\n let string = '';\n for (let k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (resolvedValue = toValue(mix[k])) {\n string && (string += ' ');\n string += resolvedValue;\n }\n }\n }\n return string;\n};\nfunction createTailwindMerge(createConfigFirst, ...createConfigRest) {\n let configUtils;\n let cacheGet;\n let cacheSet;\n let functionToCall = initTailwindMerge;\n function initTailwindMerge(classList) {\n const config = createConfigRest.reduce((previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig), createConfigFirst());\n configUtils = createConfigUtils(config);\n cacheGet = configUtils.cache.get;\n cacheSet = configUtils.cache.set;\n functionToCall = tailwindMerge;\n return tailwindMerge(classList);\n }\n function tailwindMerge(classList) {\n const cachedResult = cacheGet(classList);\n if (cachedResult) {\n return cachedResult;\n }\n const result = mergeClassList(classList, configUtils);\n cacheSet(classList, result);\n return result;\n }\n return function callTailwindMerge() {\n return functionToCall(twJoin.apply(null, arguments));\n };\n}\nconst fromTheme = key => {\n const themeGetter = theme => theme[key] || [];\n themeGetter.isThemeGetter = true;\n return themeGetter;\n};\nconst arbitraryValueRegex = /^\\[(?:(\\w[\\w-]*):)?(.+)\\]$/i;\nconst arbitraryVariableRegex = /^\\((?:(\\w[\\w-]*):)?(.+)\\)$/i;\nconst fractionRegex = /^\\d+\\/\\d+$/;\nconst tshirtUnitRegex = /^(\\d+(\\.\\d+)?)?(xs|sm|md|lg|xl)$/;\nconst lengthUnitRegex = /\\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\\b(calc|min|max|clamp)\\(.+\\)|^0$/;\nconst colorFunctionRegex = /^(rgba?|hsla?|hwb|(ok)?(lab|lch))\\(.+\\)$/;\n// Shadow always begins with x and y offset separated by underscore optionally prepended by inset\nconst shadowRegex = /^(inset_)?-?((\\d+)?\\.?(\\d+)[a-z]+|0)_-?((\\d+)?\\.?(\\d+)[a-z]+|0)/;\nconst imageRegex = /^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\\(.+\\)$/;\nconst isFraction = value => fractionRegex.test(value);\nconst isNumber = value => !!value && !Number.isNaN(Number(value));\nconst isInteger = value => !!value && Number.isInteger(Number(value));\nconst isPercent = value => value.endsWith('%') && isNumber(value.slice(0, -1));\nconst isTshirtSize = value => tshirtUnitRegex.test(value);\nconst isAny = () => true;\nconst isLengthOnly = value =>\n// `colorFunctionRegex` check is necessary because color functions can have percentages in them which which would be incorrectly classified as lengths.\n// For example, `hsl(0 0% 0%)` would be classified as a length without this check.\n// I could also use lookbehind assertion in `lengthUnitRegex` but that isn't supported widely enough.\nlengthUnitRegex.test(value) && !colorFunctionRegex.test(value);\nconst isNever = () => false;\nconst isShadow = value => shadowRegex.test(value);\nconst isImage = value => imageRegex.test(value);\nconst isAnyNonArbitrary = value => !isArbitraryValue(value) && !isArbitraryVariable(value);\nconst isArbitrarySize = value => getIsArbitraryValue(value, isLabelSize, isNever);\nconst isArbitraryValue = value => arbitraryValueRegex.test(value);\nconst isArbitraryLength = value => getIsArbitraryValue(value, isLabelLength, isLengthOnly);\nconst isArbitraryNumber = value => getIsArbitraryValue(value, isLabelNumber, isNumber);\nconst isArbitraryPosition = value => getIsArbitraryValue(value, isLabelPosition, isNever);\nconst isArbitraryImage = value => getIsArbitraryValue(value, isLabelImage, isImage);\nconst isArbitraryShadow = value => getIsArbitraryValue(value, isLabelShadow, isShadow);\nconst isArbitraryVariable = value => arbitraryVariableRegex.test(value);\nconst isArbitraryVariableLength = value => getIsArbitraryVariable(value, isLabelLength);\nconst isArbitraryVariableFamilyName = value => getIsArbitraryVariable(value, isLabelFamilyName);\nconst isArbitraryVariablePosition = value => getIsArbitraryVariable(value, isLabelPosition);\nconst isArbitraryVariableSize = value => getIsArbitraryVariable(value, isLabelSize);\nconst isArbitraryVariableImage = value => getIsArbitraryVariable(value, isLabelImage);\nconst isArbitraryVariableShadow = value => getIsArbitraryVariable(value, isLabelShadow, true);\n// Helpers\nconst getIsArbitraryValue = (value, testLabel, testValue) => {\n const result = arbitraryValueRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return testValue(result[2]);\n }\n return false;\n};\nconst getIsArbitraryVariable = (value, testLabel, shouldMatchNoLabel = false) => {\n const result = arbitraryVariableRegex.exec(value);\n if (result) {\n if (result[1]) {\n return testLabel(result[1]);\n }\n return shouldMatchNoLabel;\n }\n return false;\n};\n// Labels\nconst isLabelPosition = label => label === 'position' || label === 'percentage';\nconst isLabelImage = label => label === 'image' || label === 'url';\nconst isLabelSize = label => label === 'length' || label === 'size' || label === 'bg-size';\nconst isLabelLength = label => label === 'length';\nconst isLabelNumber = label => label === 'number';\nconst isLabelFamilyName = label => label === 'family-name';\nconst isLabelShadow = label => label === 'shadow';\nconst validators = /*#__PURE__*/Object.defineProperty({\n __proto__: null,\n isAny,\n isAnyNonArbitrary,\n isArbitraryImage,\n isArbitraryLength,\n isArbitraryNumber,\n isArbitraryPosition,\n isArbitraryShadow,\n isArbitrarySize,\n isArbitraryValue,\n isArbitraryVariable,\n isArbitraryVariableFamilyName,\n isArbitraryVariableImage,\n isArbitraryVariableLength,\n isArbitraryVariablePosition,\n isArbitraryVariableShadow,\n isArbitraryVariableSize,\n isFraction,\n isInteger,\n isNumber,\n isPercent,\n isTshirtSize\n}, Symbol.toStringTag, {\n value: 'Module'\n});\nconst getDefaultConfig = () => {\n /**\n * Theme getters for theme variable namespaces\n * @see https://tailwindcss.com/docs/theme#theme-variable-namespaces\n */\n /***/\n const themeColor = fromTheme('color');\n const themeFont = fromTheme('font');\n const themeText = fromTheme('text');\n const themeFontWeight = fromTheme('font-weight');\n const themeTracking = fromTheme('tracking');\n const themeLeading = fromTheme('leading');\n const themeBreakpoint = fromTheme('breakpoint');\n const themeContainer = fromTheme('container');\n const themeSpacing = fromTheme('spacing');\n const themeRadius = fromTheme('radius');\n const themeShadow = fromTheme('shadow');\n const themeInsetShadow = fromTheme('inset-shadow');\n const themeTextShadow = fromTheme('text-shadow');\n const themeDropShadow = fromTheme('drop-shadow');\n const themeBlur = fromTheme('blur');\n const themePerspective = fromTheme('perspective');\n const themeAspect = fromTheme('aspect');\n const themeEase = fromTheme('ease');\n const themeAnimate = fromTheme('animate');\n /**\n * Helpers to avoid repeating the same scales\n *\n * We use functions that create a new array every time they're called instead of static arrays.\n * This ensures that users who modify any scale by mutating the array (e.g. with `array.push(element)`) don't accidentally mutate arrays in other parts of the config.\n */\n /***/\n const scaleBreak = () => ['auto', 'avoid', 'all', 'avoid-page', 'page', 'left', 'right', 'column'];\n const scalePosition = () => ['center', 'top', 'bottom', 'left', 'right', 'top-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-top', 'top-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-top', 'bottom-right',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'right-bottom', 'bottom-left',\n // Deprecated since Tailwind CSS v4.1.0, see https://github.com/tailwindlabs/tailwindcss/pull/17378\n 'left-bottom'];\n const scalePositionWithArbitrary = () => [...scalePosition(), isArbitraryVariable, isArbitraryValue];\n const scaleOverflow = () => ['auto', 'hidden', 'clip', 'visible', 'scroll'];\n const scaleOverscroll = () => ['auto', 'contain', 'none'];\n const scaleUnambiguousSpacing = () => [isArbitraryVariable, isArbitraryValue, themeSpacing];\n const scaleInset = () => [isFraction, 'full', 'auto', ...scaleUnambiguousSpacing()];\n const scaleGridTemplateColsRows = () => [isInteger, 'none', 'subgrid', isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartAndEnd = () => ['auto', {\n span: ['full', isInteger, isArbitraryVariable, isArbitraryValue]\n }, isInteger, isArbitraryVariable, isArbitraryValue];\n const scaleGridColRowStartOrEnd = () => [isInteger, 'auto', isArbitraryVariable, isArbitraryValue];\n const scaleGridAutoColsRows = () => ['auto', 'min', 'max', 'fr', isArbitraryVariable, isArbitraryValue];\n const scaleAlignPrimaryAxis = () => ['start', 'end', 'center', 'between', 'around', 'evenly', 'stretch', 'baseline', 'center-safe', 'end-safe'];\n const scaleAlignSecondaryAxis = () => ['start', 'end', 'center', 'stretch', 'center-safe', 'end-safe'];\n const scaleMargin = () => ['auto', ...scaleUnambiguousSpacing()];\n const scaleSizing = () => [isFraction, 'auto', 'full', 'dvw', 'dvh', 'lvw', 'lvh', 'svw', 'svh', 'min', 'max', 'fit', ...scaleUnambiguousSpacing()];\n const scaleColor = () => [themeColor, isArbitraryVariable, isArbitraryValue];\n const scaleBgPosition = () => [...scalePosition(), isArbitraryVariablePosition, isArbitraryPosition, {\n position: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleBgRepeat = () => ['no-repeat', {\n repeat: ['', 'x', 'y', 'space', 'round']\n }];\n const scaleBgSize = () => ['auto', 'cover', 'contain', isArbitraryVariableSize, isArbitrarySize, {\n size: [isArbitraryVariable, isArbitraryValue]\n }];\n const scaleGradientStopPosition = () => [isPercent, isArbitraryVariableLength, isArbitraryLength];\n const scaleRadius = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', 'full', themeRadius, isArbitraryVariable, isArbitraryValue];\n const scaleBorderWidth = () => ['', isNumber, isArbitraryVariableLength, isArbitraryLength];\n const scaleLineStyle = () => ['solid', 'dashed', 'dotted', 'double'];\n const scaleBlendMode = () => ['normal', 'multiply', 'screen', 'overlay', 'darken', 'lighten', 'color-dodge', 'color-burn', 'hard-light', 'soft-light', 'difference', 'exclusion', 'hue', 'saturation', 'color', 'luminosity'];\n const scaleMaskImagePosition = () => [isNumber, isPercent, isArbitraryVariablePosition, isArbitraryPosition];\n const scaleBlur = () => [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeBlur, isArbitraryVariable, isArbitraryValue];\n const scaleRotate = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleScale = () => ['none', isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleSkew = () => [isNumber, isArbitraryVariable, isArbitraryValue];\n const scaleTranslate = () => [isFraction, 'full', ...scaleUnambiguousSpacing()];\n return {\n cacheSize: 500,\n theme: {\n animate: ['spin', 'ping', 'pulse', 'bounce'],\n aspect: ['video'],\n blur: [isTshirtSize],\n breakpoint: [isTshirtSize],\n color: [isAny],\n container: [isTshirtSize],\n 'drop-shadow': [isTshirtSize],\n ease: ['in', 'out', 'in-out'],\n font: [isAnyNonArbitrary],\n 'font-weight': ['thin', 'extralight', 'light', 'normal', 'medium', 'semibold', 'bold', 'extrabold', 'black'],\n 'inset-shadow': [isTshirtSize],\n leading: ['none', 'tight', 'snug', 'normal', 'relaxed', 'loose'],\n perspective: ['dramatic', 'near', 'normal', 'midrange', 'distant', 'none'],\n radius: [isTshirtSize],\n shadow: [isTshirtSize],\n spacing: ['px', isNumber],\n text: [isTshirtSize],\n 'text-shadow': [isTshirtSize],\n tracking: ['tighter', 'tight', 'normal', 'wide', 'wider', 'widest']\n },\n classGroups: {\n // --------------\n // --- Layout ---\n // --------------\n /**\n * Aspect Ratio\n * @see https://tailwindcss.com/docs/aspect-ratio\n */\n aspect: [{\n aspect: ['auto', 'square', isFraction, isArbitraryValue, isArbitraryVariable, themeAspect]\n }],\n /**\n * Container\n * @see https://tailwindcss.com/docs/container\n * @deprecated since Tailwind CSS v4.0.0\n */\n container: ['container'],\n /**\n * Columns\n * @see https://tailwindcss.com/docs/columns\n */\n columns: [{\n columns: [isNumber, isArbitraryValue, isArbitraryVariable, themeContainer]\n }],\n /**\n * Break After\n * @see https://tailwindcss.com/docs/break-after\n */\n 'break-after': [{\n 'break-after': scaleBreak()\n }],\n /**\n * Break Before\n * @see https://tailwindcss.com/docs/break-before\n */\n 'break-before': [{\n 'break-before': scaleBreak()\n }],\n /**\n * Break Inside\n * @see https://tailwindcss.com/docs/break-inside\n */\n 'break-inside': [{\n 'break-inside': ['auto', 'avoid', 'avoid-page', 'avoid-column']\n }],\n /**\n * Box Decoration Break\n * @see https://tailwindcss.com/docs/box-decoration-break\n */\n 'box-decoration': [{\n 'box-decoration': ['slice', 'clone']\n }],\n /**\n * Box Sizing\n * @see https://tailwindcss.com/docs/box-sizing\n */\n box: [{\n box: ['border', 'content']\n }],\n /**\n * Display\n * @see https://tailwindcss.com/docs/display\n */\n display: ['block', 'inline-block', 'inline', 'flex', 'inline-flex', 'table', 'inline-table', 'table-caption', 'table-cell', 'table-column', 'table-column-group', 'table-footer-group', 'table-header-group', 'table-row-group', 'table-row', 'flow-root', 'grid', 'inline-grid', 'contents', 'list-item', 'hidden'],\n /**\n * Screen Reader Only\n * @see https://tailwindcss.com/docs/display#screen-reader-only\n */\n sr: ['sr-only', 'not-sr-only'],\n /**\n * Floats\n * @see https://tailwindcss.com/docs/float\n */\n float: [{\n float: ['right', 'left', 'none', 'start', 'end']\n }],\n /**\n * Clear\n * @see https://tailwindcss.com/docs/clear\n */\n clear: [{\n clear: ['left', 'right', 'both', 'none', 'start', 'end']\n }],\n /**\n * Isolation\n * @see https://tailwindcss.com/docs/isolation\n */\n isolation: ['isolate', 'isolation-auto'],\n /**\n * Object Fit\n * @see https://tailwindcss.com/docs/object-fit\n */\n 'object-fit': [{\n object: ['contain', 'cover', 'fill', 'none', 'scale-down']\n }],\n /**\n * Object Position\n * @see https://tailwindcss.com/docs/object-position\n */\n 'object-position': [{\n object: scalePositionWithArbitrary()\n }],\n /**\n * Overflow\n * @see https://tailwindcss.com/docs/overflow\n */\n overflow: [{\n overflow: scaleOverflow()\n }],\n /**\n * Overflow X\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-x': [{\n 'overflow-x': scaleOverflow()\n }],\n /**\n * Overflow Y\n * @see https://tailwindcss.com/docs/overflow\n */\n 'overflow-y': [{\n 'overflow-y': scaleOverflow()\n }],\n /**\n * Overscroll Behavior\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n overscroll: [{\n overscroll: scaleOverscroll()\n }],\n /**\n * Overscroll Behavior X\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-x': [{\n 'overscroll-x': scaleOverscroll()\n }],\n /**\n * Overscroll Behavior Y\n * @see https://tailwindcss.com/docs/overscroll-behavior\n */\n 'overscroll-y': [{\n 'overscroll-y': scaleOverscroll()\n }],\n /**\n * Position\n * @see https://tailwindcss.com/docs/position\n */\n position: ['static', 'fixed', 'absolute', 'relative', 'sticky'],\n /**\n * Top / Right / Bottom / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n inset: [{\n inset: scaleInset()\n }],\n /**\n * Right / Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-x': [{\n 'inset-x': scaleInset()\n }],\n /**\n * Top / Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n 'inset-y': [{\n 'inset-y': scaleInset()\n }],\n /**\n * Start\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n start: [{\n start: scaleInset()\n }],\n /**\n * End\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n end: [{\n end: scaleInset()\n }],\n /**\n * Top\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n top: [{\n top: scaleInset()\n }],\n /**\n * Right\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n right: [{\n right: scaleInset()\n }],\n /**\n * Bottom\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n bottom: [{\n bottom: scaleInset()\n }],\n /**\n * Left\n * @see https://tailwindcss.com/docs/top-right-bottom-left\n */\n left: [{\n left: scaleInset()\n }],\n /**\n * Visibility\n * @see https://tailwindcss.com/docs/visibility\n */\n visibility: ['visible', 'invisible', 'collapse'],\n /**\n * Z-Index\n * @see https://tailwindcss.com/docs/z-index\n */\n z: [{\n z: [isInteger, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------------\n // --- Flexbox and Grid ---\n // ------------------------\n /**\n * Flex Basis\n * @see https://tailwindcss.com/docs/flex-basis\n */\n basis: [{\n basis: [isFraction, 'full', 'auto', themeContainer, ...scaleUnambiguousSpacing()]\n }],\n /**\n * Flex Direction\n * @see https://tailwindcss.com/docs/flex-direction\n */\n 'flex-direction': [{\n flex: ['row', 'row-reverse', 'col', 'col-reverse']\n }],\n /**\n * Flex Wrap\n * @see https://tailwindcss.com/docs/flex-wrap\n */\n 'flex-wrap': [{\n flex: ['nowrap', 'wrap', 'wrap-reverse']\n }],\n /**\n * Flex\n * @see https://tailwindcss.com/docs/flex\n */\n flex: [{\n flex: [isNumber, isFraction, 'auto', 'initial', 'none', isArbitraryValue]\n }],\n /**\n * Flex Grow\n * @see https://tailwindcss.com/docs/flex-grow\n */\n grow: [{\n grow: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Flex Shrink\n * @see https://tailwindcss.com/docs/flex-shrink\n */\n shrink: [{\n shrink: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Order\n * @see https://tailwindcss.com/docs/order\n */\n order: [{\n order: [isInteger, 'first', 'last', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Grid Template Columns\n * @see https://tailwindcss.com/docs/grid-template-columns\n */\n 'grid-cols': [{\n 'grid-cols': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Column Start / End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start-end': [{\n col: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Column Start\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-start': [{\n 'col-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Column End\n * @see https://tailwindcss.com/docs/grid-column\n */\n 'col-end': [{\n 'col-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Template Rows\n * @see https://tailwindcss.com/docs/grid-template-rows\n */\n 'grid-rows': [{\n 'grid-rows': scaleGridTemplateColsRows()\n }],\n /**\n * Grid Row Start / End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start-end': [{\n row: scaleGridColRowStartAndEnd()\n }],\n /**\n * Grid Row Start\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-start': [{\n 'row-start': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Row End\n * @see https://tailwindcss.com/docs/grid-row\n */\n 'row-end': [{\n 'row-end': scaleGridColRowStartOrEnd()\n }],\n /**\n * Grid Auto Flow\n * @see https://tailwindcss.com/docs/grid-auto-flow\n */\n 'grid-flow': [{\n 'grid-flow': ['row', 'col', 'dense', 'row-dense', 'col-dense']\n }],\n /**\n * Grid Auto Columns\n * @see https://tailwindcss.com/docs/grid-auto-columns\n */\n 'auto-cols': [{\n 'auto-cols': scaleGridAutoColsRows()\n }],\n /**\n * Grid Auto Rows\n * @see https://tailwindcss.com/docs/grid-auto-rows\n */\n 'auto-rows': [{\n 'auto-rows': scaleGridAutoColsRows()\n }],\n /**\n * Gap\n * @see https://tailwindcss.com/docs/gap\n */\n gap: [{\n gap: scaleUnambiguousSpacing()\n }],\n /**\n * Gap X\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-x': [{\n 'gap-x': scaleUnambiguousSpacing()\n }],\n /**\n * Gap Y\n * @see https://tailwindcss.com/docs/gap\n */\n 'gap-y': [{\n 'gap-y': scaleUnambiguousSpacing()\n }],\n /**\n * Justify Content\n * @see https://tailwindcss.com/docs/justify-content\n */\n 'justify-content': [{\n justify: [...scaleAlignPrimaryAxis(), 'normal']\n }],\n /**\n * Justify Items\n * @see https://tailwindcss.com/docs/justify-items\n */\n 'justify-items': [{\n 'justify-items': [...scaleAlignSecondaryAxis(), 'normal']\n }],\n /**\n * Justify Self\n * @see https://tailwindcss.com/docs/justify-self\n */\n 'justify-self': [{\n 'justify-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n /**\n * Align Content\n * @see https://tailwindcss.com/docs/align-content\n */\n 'align-content': [{\n content: ['normal', ...scaleAlignPrimaryAxis()]\n }],\n /**\n * Align Items\n * @see https://tailwindcss.com/docs/align-items\n */\n 'align-items': [{\n items: [...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Align Self\n * @see https://tailwindcss.com/docs/align-self\n */\n 'align-self': [{\n self: ['auto', ...scaleAlignSecondaryAxis(), {\n baseline: ['', 'last']\n }]\n }],\n /**\n * Place Content\n * @see https://tailwindcss.com/docs/place-content\n */\n 'place-content': [{\n 'place-content': scaleAlignPrimaryAxis()\n }],\n /**\n * Place Items\n * @see https://tailwindcss.com/docs/place-items\n */\n 'place-items': [{\n 'place-items': [...scaleAlignSecondaryAxis(), 'baseline']\n }],\n /**\n * Place Self\n * @see https://tailwindcss.com/docs/place-self\n */\n 'place-self': [{\n 'place-self': ['auto', ...scaleAlignSecondaryAxis()]\n }],\n // Spacing\n /**\n * Padding\n * @see https://tailwindcss.com/docs/padding\n */\n p: [{\n p: scaleUnambiguousSpacing()\n }],\n /**\n * Padding X\n * @see https://tailwindcss.com/docs/padding\n */\n px: [{\n px: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Y\n * @see https://tailwindcss.com/docs/padding\n */\n py: [{\n py: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Start\n * @see https://tailwindcss.com/docs/padding\n */\n ps: [{\n ps: scaleUnambiguousSpacing()\n }],\n /**\n * Padding End\n * @see https://tailwindcss.com/docs/padding\n */\n pe: [{\n pe: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Top\n * @see https://tailwindcss.com/docs/padding\n */\n pt: [{\n pt: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Right\n * @see https://tailwindcss.com/docs/padding\n */\n pr: [{\n pr: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Bottom\n * @see https://tailwindcss.com/docs/padding\n */\n pb: [{\n pb: scaleUnambiguousSpacing()\n }],\n /**\n * Padding Left\n * @see https://tailwindcss.com/docs/padding\n */\n pl: [{\n pl: scaleUnambiguousSpacing()\n }],\n /**\n * Margin\n * @see https://tailwindcss.com/docs/margin\n */\n m: [{\n m: scaleMargin()\n }],\n /**\n * Margin X\n * @see https://tailwindcss.com/docs/margin\n */\n mx: [{\n mx: scaleMargin()\n }],\n /**\n * Margin Y\n * @see https://tailwindcss.com/docs/margin\n */\n my: [{\n my: scaleMargin()\n }],\n /**\n * Margin Start\n * @see https://tailwindcss.com/docs/margin\n */\n ms: [{\n ms: scaleMargin()\n }],\n /**\n * Margin End\n * @see https://tailwindcss.com/docs/margin\n */\n me: [{\n me: scaleMargin()\n }],\n /**\n * Margin Top\n * @see https://tailwindcss.com/docs/margin\n */\n mt: [{\n mt: scaleMargin()\n }],\n /**\n * Margin Right\n * @see https://tailwindcss.com/docs/margin\n */\n mr: [{\n mr: scaleMargin()\n }],\n /**\n * Margin Bottom\n * @see https://tailwindcss.com/docs/margin\n */\n mb: [{\n mb: scaleMargin()\n }],\n /**\n * Margin Left\n * @see https://tailwindcss.com/docs/margin\n */\n ml: [{\n ml: scaleMargin()\n }],\n /**\n * Space Between X\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x': [{\n 'space-x': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between X Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-x-reverse': ['space-x-reverse'],\n /**\n * Space Between Y\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y': [{\n 'space-y': scaleUnambiguousSpacing()\n }],\n /**\n * Space Between Y Reverse\n * @see https://tailwindcss.com/docs/margin#adding-space-between-children\n */\n 'space-y-reverse': ['space-y-reverse'],\n // --------------\n // --- Sizing ---\n // --------------\n /**\n * Size\n * @see https://tailwindcss.com/docs/width#setting-both-width-and-height\n */\n size: [{\n size: scaleSizing()\n }],\n /**\n * Width\n * @see https://tailwindcss.com/docs/width\n */\n w: [{\n w: [themeContainer, 'screen', ...scaleSizing()]\n }],\n /**\n * Min-Width\n * @see https://tailwindcss.com/docs/min-width\n */\n 'min-w': [{\n 'min-w': [themeContainer, 'screen', /** Deprecated. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'none', ...scaleSizing()]\n }],\n /**\n * Max-Width\n * @see https://tailwindcss.com/docs/max-width\n */\n 'max-w': [{\n 'max-w': [themeContainer, 'screen', 'none', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n 'prose', /** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n {\n screen: [themeBreakpoint]\n }, ...scaleSizing()]\n }],\n /**\n * Height\n * @see https://tailwindcss.com/docs/height\n */\n h: [{\n h: ['screen', 'lh', ...scaleSizing()]\n }],\n /**\n * Min-Height\n * @see https://tailwindcss.com/docs/min-height\n */\n 'min-h': [{\n 'min-h': ['screen', 'lh', 'none', ...scaleSizing()]\n }],\n /**\n * Max-Height\n * @see https://tailwindcss.com/docs/max-height\n */\n 'max-h': [{\n 'max-h': ['screen', 'lh', ...scaleSizing()]\n }],\n // ------------------\n // --- Typography ---\n // ------------------\n /**\n * Font Size\n * @see https://tailwindcss.com/docs/font-size\n */\n 'font-size': [{\n text: ['base', themeText, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Font Smoothing\n * @see https://tailwindcss.com/docs/font-smoothing\n */\n 'font-smoothing': ['antialiased', 'subpixel-antialiased'],\n /**\n * Font Style\n * @see https://tailwindcss.com/docs/font-style\n */\n 'font-style': ['italic', 'not-italic'],\n /**\n * Font Weight\n * @see https://tailwindcss.com/docs/font-weight\n */\n 'font-weight': [{\n font: [themeFontWeight, isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Font Stretch\n * @see https://tailwindcss.com/docs/font-stretch\n */\n 'font-stretch': [{\n 'font-stretch': ['ultra-condensed', 'extra-condensed', 'condensed', 'semi-condensed', 'normal', 'semi-expanded', 'expanded', 'extra-expanded', 'ultra-expanded', isPercent, isArbitraryValue]\n }],\n /**\n * Font Family\n * @see https://tailwindcss.com/docs/font-family\n */\n 'font-family': [{\n font: [isArbitraryVariableFamilyName, isArbitraryValue, themeFont]\n }],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-normal': ['normal-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-ordinal': ['ordinal'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-slashed-zero': ['slashed-zero'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-figure': ['lining-nums', 'oldstyle-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-spacing': ['proportional-nums', 'tabular-nums'],\n /**\n * Font Variant Numeric\n * @see https://tailwindcss.com/docs/font-variant-numeric\n */\n 'fvn-fraction': ['diagonal-fractions', 'stacked-fractions'],\n /**\n * Letter Spacing\n * @see https://tailwindcss.com/docs/letter-spacing\n */\n tracking: [{\n tracking: [themeTracking, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Line Clamp\n * @see https://tailwindcss.com/docs/line-clamp\n */\n 'line-clamp': [{\n 'line-clamp': [isNumber, 'none', isArbitraryVariable, isArbitraryNumber]\n }],\n /**\n * Line Height\n * @see https://tailwindcss.com/docs/line-height\n */\n leading: [{\n leading: [/** Deprecated since Tailwind CSS v4.0.0. @see https://github.com/tailwindlabs/tailwindcss.com/issues/2027#issuecomment-2620152757 */\n themeLeading, ...scaleUnambiguousSpacing()]\n }],\n /**\n * List Style Image\n * @see https://tailwindcss.com/docs/list-style-image\n */\n 'list-image': [{\n 'list-image': ['none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * List Style Position\n * @see https://tailwindcss.com/docs/list-style-position\n */\n 'list-style-position': [{\n list: ['inside', 'outside']\n }],\n /**\n * List Style Type\n * @see https://tailwindcss.com/docs/list-style-type\n */\n 'list-style-type': [{\n list: ['disc', 'decimal', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Alignment\n * @see https://tailwindcss.com/docs/text-align\n */\n 'text-alignment': [{\n text: ['left', 'center', 'right', 'justify', 'start', 'end']\n }],\n /**\n * Placeholder Color\n * @deprecated since Tailwind CSS v3.0.0\n * @see https://v3.tailwindcss.com/docs/placeholder-color\n */\n 'placeholder-color': [{\n placeholder: scaleColor()\n }],\n /**\n * Text Color\n * @see https://tailwindcss.com/docs/text-color\n */\n 'text-color': [{\n text: scaleColor()\n }],\n /**\n * Text Decoration\n * @see https://tailwindcss.com/docs/text-decoration\n */\n 'text-decoration': ['underline', 'overline', 'line-through', 'no-underline'],\n /**\n * Text Decoration Style\n * @see https://tailwindcss.com/docs/text-decoration-style\n */\n 'text-decoration-style': [{\n decoration: [...scaleLineStyle(), 'wavy']\n }],\n /**\n * Text Decoration Thickness\n * @see https://tailwindcss.com/docs/text-decoration-thickness\n */\n 'text-decoration-thickness': [{\n decoration: [isNumber, 'from-font', 'auto', isArbitraryVariable, isArbitraryLength]\n }],\n /**\n * Text Decoration Color\n * @see https://tailwindcss.com/docs/text-decoration-color\n */\n 'text-decoration-color': [{\n decoration: scaleColor()\n }],\n /**\n * Text Underline Offset\n * @see https://tailwindcss.com/docs/text-underline-offset\n */\n 'underline-offset': [{\n 'underline-offset': [isNumber, 'auto', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Text Transform\n * @see https://tailwindcss.com/docs/text-transform\n */\n 'text-transform': ['uppercase', 'lowercase', 'capitalize', 'normal-case'],\n /**\n * Text Overflow\n * @see https://tailwindcss.com/docs/text-overflow\n */\n 'text-overflow': ['truncate', 'text-ellipsis', 'text-clip'],\n /**\n * Text Wrap\n * @see https://tailwindcss.com/docs/text-wrap\n */\n 'text-wrap': [{\n text: ['wrap', 'nowrap', 'balance', 'pretty']\n }],\n /**\n * Text Indent\n * @see https://tailwindcss.com/docs/text-indent\n */\n indent: [{\n indent: scaleUnambiguousSpacing()\n }],\n /**\n * Vertical Alignment\n * @see https://tailwindcss.com/docs/vertical-align\n */\n 'vertical-align': [{\n align: ['baseline', 'top', 'middle', 'bottom', 'text-top', 'text-bottom', 'sub', 'super', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Whitespace\n * @see https://tailwindcss.com/docs/whitespace\n */\n whitespace: [{\n whitespace: ['normal', 'nowrap', 'pre', 'pre-line', 'pre-wrap', 'break-spaces']\n }],\n /**\n * Word Break\n * @see https://tailwindcss.com/docs/word-break\n */\n break: [{\n break: ['normal', 'words', 'all', 'keep']\n }],\n /**\n * Overflow Wrap\n * @see https://tailwindcss.com/docs/overflow-wrap\n */\n wrap: [{\n wrap: ['break-word', 'anywhere', 'normal']\n }],\n /**\n * Hyphens\n * @see https://tailwindcss.com/docs/hyphens\n */\n hyphens: [{\n hyphens: ['none', 'manual', 'auto']\n }],\n /**\n * Content\n * @see https://tailwindcss.com/docs/content\n */\n content: [{\n content: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // -------------------\n // --- Backgrounds ---\n // -------------------\n /**\n * Background Attachment\n * @see https://tailwindcss.com/docs/background-attachment\n */\n 'bg-attachment': [{\n bg: ['fixed', 'local', 'scroll']\n }],\n /**\n * Background Clip\n * @see https://tailwindcss.com/docs/background-clip\n */\n 'bg-clip': [{\n 'bg-clip': ['border', 'padding', 'content', 'text']\n }],\n /**\n * Background Origin\n * @see https://tailwindcss.com/docs/background-origin\n */\n 'bg-origin': [{\n 'bg-origin': ['border', 'padding', 'content']\n }],\n /**\n * Background Position\n * @see https://tailwindcss.com/docs/background-position\n */\n 'bg-position': [{\n bg: scaleBgPosition()\n }],\n /**\n * Background Repeat\n * @see https://tailwindcss.com/docs/background-repeat\n */\n 'bg-repeat': [{\n bg: scaleBgRepeat()\n }],\n /**\n * Background Size\n * @see https://tailwindcss.com/docs/background-size\n */\n 'bg-size': [{\n bg: scaleBgSize()\n }],\n /**\n * Background Image\n * @see https://tailwindcss.com/docs/background-image\n */\n 'bg-image': [{\n bg: ['none', {\n linear: [{\n to: ['t', 'tr', 'r', 'br', 'b', 'bl', 'l', 'tl']\n }, isInteger, isArbitraryVariable, isArbitraryValue],\n radial: ['', isArbitraryVariable, isArbitraryValue],\n conic: [isInteger, isArbitraryVariable, isArbitraryValue]\n }, isArbitraryVariableImage, isArbitraryImage]\n }],\n /**\n * Background Color\n * @see https://tailwindcss.com/docs/background-color\n */\n 'bg-color': [{\n bg: scaleColor()\n }],\n /**\n * Gradient Color Stops From Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from-pos': [{\n from: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops Via Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via-pos': [{\n via: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops To Position\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to-pos': [{\n to: scaleGradientStopPosition()\n }],\n /**\n * Gradient Color Stops From\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-from': [{\n from: scaleColor()\n }],\n /**\n * Gradient Color Stops Via\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-via': [{\n via: scaleColor()\n }],\n /**\n * Gradient Color Stops To\n * @see https://tailwindcss.com/docs/gradient-color-stops\n */\n 'gradient-to': [{\n to: scaleColor()\n }],\n // ---------------\n // --- Borders ---\n // ---------------\n /**\n * Border Radius\n * @see https://tailwindcss.com/docs/border-radius\n */\n rounded: [{\n rounded: scaleRadius()\n }],\n /**\n * Border Radius Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-s': [{\n 'rounded-s': scaleRadius()\n }],\n /**\n * Border Radius End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-e': [{\n 'rounded-e': scaleRadius()\n }],\n /**\n * Border Radius Top\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-t': [{\n 'rounded-t': scaleRadius()\n }],\n /**\n * Border Radius Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-r': [{\n 'rounded-r': scaleRadius()\n }],\n /**\n * Border Radius Bottom\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-b': [{\n 'rounded-b': scaleRadius()\n }],\n /**\n * Border Radius Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-l': [{\n 'rounded-l': scaleRadius()\n }],\n /**\n * Border Radius Start Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ss': [{\n 'rounded-ss': scaleRadius()\n }],\n /**\n * Border Radius Start End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-se': [{\n 'rounded-se': scaleRadius()\n }],\n /**\n * Border Radius End End\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-ee': [{\n 'rounded-ee': scaleRadius()\n }],\n /**\n * Border Radius End Start\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-es': [{\n 'rounded-es': scaleRadius()\n }],\n /**\n * Border Radius Top Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tl': [{\n 'rounded-tl': scaleRadius()\n }],\n /**\n * Border Radius Top Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-tr': [{\n 'rounded-tr': scaleRadius()\n }],\n /**\n * Border Radius Bottom Right\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-br': [{\n 'rounded-br': scaleRadius()\n }],\n /**\n * Border Radius Bottom Left\n * @see https://tailwindcss.com/docs/border-radius\n */\n 'rounded-bl': [{\n 'rounded-bl': scaleRadius()\n }],\n /**\n * Border Width\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w': [{\n border: scaleBorderWidth()\n }],\n /**\n * Border Width X\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-x': [{\n 'border-x': scaleBorderWidth()\n }],\n /**\n * Border Width Y\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-y': [{\n 'border-y': scaleBorderWidth()\n }],\n /**\n * Border Width Start\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-s': [{\n 'border-s': scaleBorderWidth()\n }],\n /**\n * Border Width End\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-e': [{\n 'border-e': scaleBorderWidth()\n }],\n /**\n * Border Width Top\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-t': [{\n 'border-t': scaleBorderWidth()\n }],\n /**\n * Border Width Right\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-r': [{\n 'border-r': scaleBorderWidth()\n }],\n /**\n * Border Width Bottom\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-b': [{\n 'border-b': scaleBorderWidth()\n }],\n /**\n * Border Width Left\n * @see https://tailwindcss.com/docs/border-width\n */\n 'border-w-l': [{\n 'border-l': scaleBorderWidth()\n }],\n /**\n * Divide Width X\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x': [{\n 'divide-x': scaleBorderWidth()\n }],\n /**\n * Divide Width X Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-x-reverse': ['divide-x-reverse'],\n /**\n * Divide Width Y\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y': [{\n 'divide-y': scaleBorderWidth()\n }],\n /**\n * Divide Width Y Reverse\n * @see https://tailwindcss.com/docs/border-width#between-children\n */\n 'divide-y-reverse': ['divide-y-reverse'],\n /**\n * Border Style\n * @see https://tailwindcss.com/docs/border-style\n */\n 'border-style': [{\n border: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Divide Style\n * @see https://tailwindcss.com/docs/border-style#setting-the-divider-style\n */\n 'divide-style': [{\n divide: [...scaleLineStyle(), 'hidden', 'none']\n }],\n /**\n * Border Color\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color': [{\n border: scaleColor()\n }],\n /**\n * Border Color X\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-x': [{\n 'border-x': scaleColor()\n }],\n /**\n * Border Color Y\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-y': [{\n 'border-y': scaleColor()\n }],\n /**\n * Border Color S\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-s': [{\n 'border-s': scaleColor()\n }],\n /**\n * Border Color E\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-e': [{\n 'border-e': scaleColor()\n }],\n /**\n * Border Color Top\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-t': [{\n 'border-t': scaleColor()\n }],\n /**\n * Border Color Right\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-r': [{\n 'border-r': scaleColor()\n }],\n /**\n * Border Color Bottom\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-b': [{\n 'border-b': scaleColor()\n }],\n /**\n * Border Color Left\n * @see https://tailwindcss.com/docs/border-color\n */\n 'border-color-l': [{\n 'border-l': scaleColor()\n }],\n /**\n * Divide Color\n * @see https://tailwindcss.com/docs/divide-color\n */\n 'divide-color': [{\n divide: scaleColor()\n }],\n /**\n * Outline Style\n * @see https://tailwindcss.com/docs/outline-style\n */\n 'outline-style': [{\n outline: [...scaleLineStyle(), 'none', 'hidden']\n }],\n /**\n * Outline Offset\n * @see https://tailwindcss.com/docs/outline-offset\n */\n 'outline-offset': [{\n 'outline-offset': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Outline Width\n * @see https://tailwindcss.com/docs/outline-width\n */\n 'outline-w': [{\n outline: ['', isNumber, isArbitraryVariableLength, isArbitraryLength]\n }],\n /**\n * Outline Color\n * @see https://tailwindcss.com/docs/outline-color\n */\n 'outline-color': [{\n outline: scaleColor()\n }],\n // ---------------\n // --- Effects ---\n // ---------------\n /**\n * Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow\n */\n shadow: [{\n shadow: [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-shadow-color\n */\n 'shadow-color': [{\n shadow: scaleColor()\n }],\n /**\n * Inset Box Shadow\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-shadow\n */\n 'inset-shadow': [{\n 'inset-shadow': ['none', themeInsetShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Inset Box Shadow Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-shadow-color\n */\n 'inset-shadow-color': [{\n 'inset-shadow': scaleColor()\n }],\n /**\n * Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-a-ring\n */\n 'ring-w': [{\n ring: scaleBorderWidth()\n }],\n /**\n * Ring Width Inset\n * @see https://v3.tailwindcss.com/docs/ring-width#inset-rings\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-w-inset': ['ring-inset'],\n /**\n * Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-ring-color\n */\n 'ring-color': [{\n ring: scaleColor()\n }],\n /**\n * Ring Offset Width\n * @see https://v3.tailwindcss.com/docs/ring-offset-width\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-w': [{\n 'ring-offset': [isNumber, isArbitraryLength]\n }],\n /**\n * Ring Offset Color\n * @see https://v3.tailwindcss.com/docs/ring-offset-color\n * @deprecated since Tailwind CSS v4.0.0\n * @see https://github.com/tailwindlabs/tailwindcss/blob/v4.0.0/packages/tailwindcss/src/utilities.ts#L4158\n */\n 'ring-offset-color': [{\n 'ring-offset': scaleColor()\n }],\n /**\n * Inset Ring Width\n * @see https://tailwindcss.com/docs/box-shadow#adding-an-inset-ring\n */\n 'inset-ring-w': [{\n 'inset-ring': scaleBorderWidth()\n }],\n /**\n * Inset Ring Color\n * @see https://tailwindcss.com/docs/box-shadow#setting-the-inset-ring-color\n */\n 'inset-ring-color': [{\n 'inset-ring': scaleColor()\n }],\n /**\n * Text Shadow\n * @see https://tailwindcss.com/docs/text-shadow\n */\n 'text-shadow': [{\n 'text-shadow': ['none', themeTextShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Text Shadow Color\n * @see https://tailwindcss.com/docs/text-shadow#setting-the-shadow-color\n */\n 'text-shadow-color': [{\n 'text-shadow': scaleColor()\n }],\n /**\n * Opacity\n * @see https://tailwindcss.com/docs/opacity\n */\n opacity: [{\n opacity: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Mix Blend Mode\n * @see https://tailwindcss.com/docs/mix-blend-mode\n */\n 'mix-blend': [{\n 'mix-blend': [...scaleBlendMode(), 'plus-darker', 'plus-lighter']\n }],\n /**\n * Background Blend Mode\n * @see https://tailwindcss.com/docs/background-blend-mode\n */\n 'bg-blend': [{\n 'bg-blend': scaleBlendMode()\n }],\n /**\n * Mask Clip\n * @see https://tailwindcss.com/docs/mask-clip\n */\n 'mask-clip': [{\n 'mask-clip': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }, 'mask-no-clip'],\n /**\n * Mask Composite\n * @see https://tailwindcss.com/docs/mask-composite\n */\n 'mask-composite': [{\n mask: ['add', 'subtract', 'intersect', 'exclude']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image-linear-pos': [{\n 'mask-linear': [isNumber]\n }],\n 'mask-image-linear-from-pos': [{\n 'mask-linear-from': scaleMaskImagePosition()\n }],\n 'mask-image-linear-to-pos': [{\n 'mask-linear-to': scaleMaskImagePosition()\n }],\n 'mask-image-linear-from-color': [{\n 'mask-linear-from': scaleColor()\n }],\n 'mask-image-linear-to-color': [{\n 'mask-linear-to': scaleColor()\n }],\n 'mask-image-t-from-pos': [{\n 'mask-t-from': scaleMaskImagePosition()\n }],\n 'mask-image-t-to-pos': [{\n 'mask-t-to': scaleMaskImagePosition()\n }],\n 'mask-image-t-from-color': [{\n 'mask-t-from': scaleColor()\n }],\n 'mask-image-t-to-color': [{\n 'mask-t-to': scaleColor()\n }],\n 'mask-image-r-from-pos': [{\n 'mask-r-from': scaleMaskImagePosition()\n }],\n 'mask-image-r-to-pos': [{\n 'mask-r-to': scaleMaskImagePosition()\n }],\n 'mask-image-r-from-color': [{\n 'mask-r-from': scaleColor()\n }],\n 'mask-image-r-to-color': [{\n 'mask-r-to': scaleColor()\n }],\n 'mask-image-b-from-pos': [{\n 'mask-b-from': scaleMaskImagePosition()\n }],\n 'mask-image-b-to-pos': [{\n 'mask-b-to': scaleMaskImagePosition()\n }],\n 'mask-image-b-from-color': [{\n 'mask-b-from': scaleColor()\n }],\n 'mask-image-b-to-color': [{\n 'mask-b-to': scaleColor()\n }],\n 'mask-image-l-from-pos': [{\n 'mask-l-from': scaleMaskImagePosition()\n }],\n 'mask-image-l-to-pos': [{\n 'mask-l-to': scaleMaskImagePosition()\n }],\n 'mask-image-l-from-color': [{\n 'mask-l-from': scaleColor()\n }],\n 'mask-image-l-to-color': [{\n 'mask-l-to': scaleColor()\n }],\n 'mask-image-x-from-pos': [{\n 'mask-x-from': scaleMaskImagePosition()\n }],\n 'mask-image-x-to-pos': [{\n 'mask-x-to': scaleMaskImagePosition()\n }],\n 'mask-image-x-from-color': [{\n 'mask-x-from': scaleColor()\n }],\n 'mask-image-x-to-color': [{\n 'mask-x-to': scaleColor()\n }],\n 'mask-image-y-from-pos': [{\n 'mask-y-from': scaleMaskImagePosition()\n }],\n 'mask-image-y-to-pos': [{\n 'mask-y-to': scaleMaskImagePosition()\n }],\n 'mask-image-y-from-color': [{\n 'mask-y-from': scaleColor()\n }],\n 'mask-image-y-to-color': [{\n 'mask-y-to': scaleColor()\n }],\n 'mask-image-radial': [{\n 'mask-radial': [isArbitraryVariable, isArbitraryValue]\n }],\n 'mask-image-radial-from-pos': [{\n 'mask-radial-from': scaleMaskImagePosition()\n }],\n 'mask-image-radial-to-pos': [{\n 'mask-radial-to': scaleMaskImagePosition()\n }],\n 'mask-image-radial-from-color': [{\n 'mask-radial-from': scaleColor()\n }],\n 'mask-image-radial-to-color': [{\n 'mask-radial-to': scaleColor()\n }],\n 'mask-image-radial-shape': [{\n 'mask-radial': ['circle', 'ellipse']\n }],\n 'mask-image-radial-size': [{\n 'mask-radial': [{\n closest: ['side', 'corner'],\n farthest: ['side', 'corner']\n }]\n }],\n 'mask-image-radial-pos': [{\n 'mask-radial-at': scalePosition()\n }],\n 'mask-image-conic-pos': [{\n 'mask-conic': [isNumber]\n }],\n 'mask-image-conic-from-pos': [{\n 'mask-conic-from': scaleMaskImagePosition()\n }],\n 'mask-image-conic-to-pos': [{\n 'mask-conic-to': scaleMaskImagePosition()\n }],\n 'mask-image-conic-from-color': [{\n 'mask-conic-from': scaleColor()\n }],\n 'mask-image-conic-to-color': [{\n 'mask-conic-to': scaleColor()\n }],\n /**\n * Mask Mode\n * @see https://tailwindcss.com/docs/mask-mode\n */\n 'mask-mode': [{\n mask: ['alpha', 'luminance', 'match']\n }],\n /**\n * Mask Origin\n * @see https://tailwindcss.com/docs/mask-origin\n */\n 'mask-origin': [{\n 'mask-origin': ['border', 'padding', 'content', 'fill', 'stroke', 'view']\n }],\n /**\n * Mask Position\n * @see https://tailwindcss.com/docs/mask-position\n */\n 'mask-position': [{\n mask: scaleBgPosition()\n }],\n /**\n * Mask Repeat\n * @see https://tailwindcss.com/docs/mask-repeat\n */\n 'mask-repeat': [{\n mask: scaleBgRepeat()\n }],\n /**\n * Mask Size\n * @see https://tailwindcss.com/docs/mask-size\n */\n 'mask-size': [{\n mask: scaleBgSize()\n }],\n /**\n * Mask Type\n * @see https://tailwindcss.com/docs/mask-type\n */\n 'mask-type': [{\n 'mask-type': ['alpha', 'luminance']\n }],\n /**\n * Mask Image\n * @see https://tailwindcss.com/docs/mask-image\n */\n 'mask-image': [{\n mask: ['none', isArbitraryVariable, isArbitraryValue]\n }],\n // ---------------\n // --- Filters ---\n // ---------------\n /**\n * Filter\n * @see https://tailwindcss.com/docs/filter\n */\n filter: [{\n filter: [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Blur\n * @see https://tailwindcss.com/docs/blur\n */\n blur: [{\n blur: scaleBlur()\n }],\n /**\n * Brightness\n * @see https://tailwindcss.com/docs/brightness\n */\n brightness: [{\n brightness: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Contrast\n * @see https://tailwindcss.com/docs/contrast\n */\n contrast: [{\n contrast: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Drop Shadow\n * @see https://tailwindcss.com/docs/drop-shadow\n */\n 'drop-shadow': [{\n 'drop-shadow': [\n // Deprecated since Tailwind CSS v4.0.0\n '', 'none', themeDropShadow, isArbitraryVariableShadow, isArbitraryShadow]\n }],\n /**\n * Drop Shadow Color\n * @see https://tailwindcss.com/docs/filter-drop-shadow#setting-the-shadow-color\n */\n 'drop-shadow-color': [{\n 'drop-shadow': scaleColor()\n }],\n /**\n * Grayscale\n * @see https://tailwindcss.com/docs/grayscale\n */\n grayscale: [{\n grayscale: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Hue Rotate\n * @see https://tailwindcss.com/docs/hue-rotate\n */\n 'hue-rotate': [{\n 'hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Invert\n * @see https://tailwindcss.com/docs/invert\n */\n invert: [{\n invert: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Saturate\n * @see https://tailwindcss.com/docs/saturate\n */\n saturate: [{\n saturate: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Sepia\n * @see https://tailwindcss.com/docs/sepia\n */\n sepia: [{\n sepia: ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Filter\n * @see https://tailwindcss.com/docs/backdrop-filter\n */\n 'backdrop-filter': [{\n 'backdrop-filter': [\n // Deprecated since Tailwind CSS v3.0.0\n '', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Blur\n * @see https://tailwindcss.com/docs/backdrop-blur\n */\n 'backdrop-blur': [{\n 'backdrop-blur': scaleBlur()\n }],\n /**\n * Backdrop Brightness\n * @see https://tailwindcss.com/docs/backdrop-brightness\n */\n 'backdrop-brightness': [{\n 'backdrop-brightness': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Contrast\n * @see https://tailwindcss.com/docs/backdrop-contrast\n */\n 'backdrop-contrast': [{\n 'backdrop-contrast': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Grayscale\n * @see https://tailwindcss.com/docs/backdrop-grayscale\n */\n 'backdrop-grayscale': [{\n 'backdrop-grayscale': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Hue Rotate\n * @see https://tailwindcss.com/docs/backdrop-hue-rotate\n */\n 'backdrop-hue-rotate': [{\n 'backdrop-hue-rotate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Invert\n * @see https://tailwindcss.com/docs/backdrop-invert\n */\n 'backdrop-invert': [{\n 'backdrop-invert': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Opacity\n * @see https://tailwindcss.com/docs/backdrop-opacity\n */\n 'backdrop-opacity': [{\n 'backdrop-opacity': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Saturate\n * @see https://tailwindcss.com/docs/backdrop-saturate\n */\n 'backdrop-saturate': [{\n 'backdrop-saturate': [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Backdrop Sepia\n * @see https://tailwindcss.com/docs/backdrop-sepia\n */\n 'backdrop-sepia': [{\n 'backdrop-sepia': ['', isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n // --------------\n // --- Tables ---\n // --------------\n /**\n * Border Collapse\n * @see https://tailwindcss.com/docs/border-collapse\n */\n 'border-collapse': [{\n border: ['collapse', 'separate']\n }],\n /**\n * Border Spacing\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing': [{\n 'border-spacing': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing X\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-x': [{\n 'border-spacing-x': scaleUnambiguousSpacing()\n }],\n /**\n * Border Spacing Y\n * @see https://tailwindcss.com/docs/border-spacing\n */\n 'border-spacing-y': [{\n 'border-spacing-y': scaleUnambiguousSpacing()\n }],\n /**\n * Table Layout\n * @see https://tailwindcss.com/docs/table-layout\n */\n 'table-layout': [{\n table: ['auto', 'fixed']\n }],\n /**\n * Caption Side\n * @see https://tailwindcss.com/docs/caption-side\n */\n caption: [{\n caption: ['top', 'bottom']\n }],\n // ---------------------------------\n // --- Transitions and Animation ---\n // ---------------------------------\n /**\n * Transition Property\n * @see https://tailwindcss.com/docs/transition-property\n */\n transition: [{\n transition: ['', 'all', 'colors', 'opacity', 'shadow', 'transform', 'none', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Behavior\n * @see https://tailwindcss.com/docs/transition-behavior\n */\n 'transition-behavior': [{\n transition: ['normal', 'discrete']\n }],\n /**\n * Transition Duration\n * @see https://tailwindcss.com/docs/transition-duration\n */\n duration: [{\n duration: [isNumber, 'initial', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Timing Function\n * @see https://tailwindcss.com/docs/transition-timing-function\n */\n ease: [{\n ease: ['linear', 'initial', themeEase, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Transition Delay\n * @see https://tailwindcss.com/docs/transition-delay\n */\n delay: [{\n delay: [isNumber, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Animation\n * @see https://tailwindcss.com/docs/animation\n */\n animate: [{\n animate: ['none', themeAnimate, isArbitraryVariable, isArbitraryValue]\n }],\n // ------------------\n // --- Transforms ---\n // ------------------\n /**\n * Backface Visibility\n * @see https://tailwindcss.com/docs/backface-visibility\n */\n backface: [{\n backface: ['hidden', 'visible']\n }],\n /**\n * Perspective\n * @see https://tailwindcss.com/docs/perspective\n */\n perspective: [{\n perspective: [themePerspective, isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Perspective Origin\n * @see https://tailwindcss.com/docs/perspective-origin\n */\n 'perspective-origin': [{\n 'perspective-origin': scalePositionWithArbitrary()\n }],\n /**\n * Rotate\n * @see https://tailwindcss.com/docs/rotate\n */\n rotate: [{\n rotate: scaleRotate()\n }],\n /**\n * Rotate X\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-x': [{\n 'rotate-x': scaleRotate()\n }],\n /**\n * Rotate Y\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-y': [{\n 'rotate-y': scaleRotate()\n }],\n /**\n * Rotate Z\n * @see https://tailwindcss.com/docs/rotate\n */\n 'rotate-z': [{\n 'rotate-z': scaleRotate()\n }],\n /**\n * Scale\n * @see https://tailwindcss.com/docs/scale\n */\n scale: [{\n scale: scaleScale()\n }],\n /**\n * Scale X\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-x': [{\n 'scale-x': scaleScale()\n }],\n /**\n * Scale Y\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-y': [{\n 'scale-y': scaleScale()\n }],\n /**\n * Scale Z\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-z': [{\n 'scale-z': scaleScale()\n }],\n /**\n * Scale 3D\n * @see https://tailwindcss.com/docs/scale\n */\n 'scale-3d': ['scale-3d'],\n /**\n * Skew\n * @see https://tailwindcss.com/docs/skew\n */\n skew: [{\n skew: scaleSkew()\n }],\n /**\n * Skew X\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-x': [{\n 'skew-x': scaleSkew()\n }],\n /**\n * Skew Y\n * @see https://tailwindcss.com/docs/skew\n */\n 'skew-y': [{\n 'skew-y': scaleSkew()\n }],\n /**\n * Transform\n * @see https://tailwindcss.com/docs/transform\n */\n transform: [{\n transform: [isArbitraryVariable, isArbitraryValue, '', 'none', 'gpu', 'cpu']\n }],\n /**\n * Transform Origin\n * @see https://tailwindcss.com/docs/transform-origin\n */\n 'transform-origin': [{\n origin: scalePositionWithArbitrary()\n }],\n /**\n * Transform Style\n * @see https://tailwindcss.com/docs/transform-style\n */\n 'transform-style': [{\n transform: ['3d', 'flat']\n }],\n /**\n * Translate\n * @see https://tailwindcss.com/docs/translate\n */\n translate: [{\n translate: scaleTranslate()\n }],\n /**\n * Translate X\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-x': [{\n 'translate-x': scaleTranslate()\n }],\n /**\n * Translate Y\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-y': [{\n 'translate-y': scaleTranslate()\n }],\n /**\n * Translate Z\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-z': [{\n 'translate-z': scaleTranslate()\n }],\n /**\n * Translate None\n * @see https://tailwindcss.com/docs/translate\n */\n 'translate-none': ['translate-none'],\n // ---------------------\n // --- Interactivity ---\n // ---------------------\n /**\n * Accent Color\n * @see https://tailwindcss.com/docs/accent-color\n */\n accent: [{\n accent: scaleColor()\n }],\n /**\n * Appearance\n * @see https://tailwindcss.com/docs/appearance\n */\n appearance: [{\n appearance: ['none', 'auto']\n }],\n /**\n * Caret Color\n * @see https://tailwindcss.com/docs/just-in-time-mode#caret-color-utilities\n */\n 'caret-color': [{\n caret: scaleColor()\n }],\n /**\n * Color Scheme\n * @see https://tailwindcss.com/docs/color-scheme\n */\n 'color-scheme': [{\n scheme: ['normal', 'dark', 'light', 'light-dark', 'only-dark', 'only-light']\n }],\n /**\n * Cursor\n * @see https://tailwindcss.com/docs/cursor\n */\n cursor: [{\n cursor: ['auto', 'default', 'pointer', 'wait', 'text', 'move', 'help', 'not-allowed', 'none', 'context-menu', 'progress', 'cell', 'crosshair', 'vertical-text', 'alias', 'copy', 'no-drop', 'grab', 'grabbing', 'all-scroll', 'col-resize', 'row-resize', 'n-resize', 'e-resize', 's-resize', 'w-resize', 'ne-resize', 'nw-resize', 'se-resize', 'sw-resize', 'ew-resize', 'ns-resize', 'nesw-resize', 'nwse-resize', 'zoom-in', 'zoom-out', isArbitraryVariable, isArbitraryValue]\n }],\n /**\n * Field Sizing\n * @see https://tailwindcss.com/docs/field-sizing\n */\n 'field-sizing': [{\n 'field-sizing': ['fixed', 'content']\n }],\n /**\n * Pointer Events\n * @see https://tailwindcss.com/docs/pointer-events\n */\n 'pointer-events': [{\n 'pointer-events': ['auto', 'none']\n }],\n /**\n * Resize\n * @see https://tailwindcss.com/docs/resize\n */\n resize: [{\n resize: ['none', '', 'y', 'x']\n }],\n /**\n * Scroll Behavior\n * @see https://tailwindcss.com/docs/scroll-behavior\n */\n 'scroll-behavior': [{\n scroll: ['auto', 'smooth']\n }],\n /**\n * Scroll Margin\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-m': [{\n 'scroll-m': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin X\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mx': [{\n 'scroll-mx': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Y\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-my': [{\n 'scroll-my': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Start\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ms': [{\n 'scroll-ms': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin End\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-me': [{\n 'scroll-me': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Top\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mt': [{\n 'scroll-mt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Right\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mr': [{\n 'scroll-mr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Bottom\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-mb': [{\n 'scroll-mb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Margin Left\n * @see https://tailwindcss.com/docs/scroll-margin\n */\n 'scroll-ml': [{\n 'scroll-ml': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-p': [{\n 'scroll-p': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding X\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-px': [{\n 'scroll-px': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Y\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-py': [{\n 'scroll-py': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Start\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-ps': [{\n 'scroll-ps': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding End\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pe': [{\n 'scroll-pe': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Top\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pt': [{\n 'scroll-pt': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Right\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pr': [{\n 'scroll-pr': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Bottom\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pb': [{\n 'scroll-pb': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Padding Left\n * @see https://tailwindcss.com/docs/scroll-padding\n */\n 'scroll-pl': [{\n 'scroll-pl': scaleUnambiguousSpacing()\n }],\n /**\n * Scroll Snap Align\n * @see https://tailwindcss.com/docs/scroll-snap-align\n */\n 'snap-align': [{\n snap: ['start', 'end', 'center', 'align-none']\n }],\n /**\n * Scroll Snap Stop\n * @see https://tailwindcss.com/docs/scroll-snap-stop\n */\n 'snap-stop': [{\n snap: ['normal', 'always']\n }],\n /**\n * Scroll Snap Type\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-type': [{\n snap: ['none', 'x', 'y', 'both']\n }],\n /**\n * Scroll Snap Type Strictness\n * @see https://tailwindcss.com/docs/scroll-snap-type\n */\n 'snap-strictness': [{\n snap: ['mandatory', 'proximity']\n }],\n /**\n * Touch Action\n * @see https://tailwindcss.com/docs/touch-action\n */\n touch: [{\n touch: ['auto', 'none', 'manipulation']\n }],\n /**\n * Touch Action X\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-x': [{\n 'touch-pan': ['x', 'left', 'right']\n }],\n /**\n * Touch Action Y\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-y': [{\n 'touch-pan': ['y', 'up', 'down']\n }],\n /**\n * Touch Action Pinch Zoom\n * @see https://tailwindcss.com/docs/touch-action\n */\n 'touch-pz': ['touch-pinch-zoom'],\n /**\n * User Select\n * @see https://tailwindcss.com/docs/user-select\n */\n select: [{\n select: ['none', 'text', 'all', 'auto']\n }],\n /**\n * Will Change\n * @see https://tailwindcss.com/docs/will-change\n */\n 'will-change': [{\n 'will-change': ['auto', 'scroll', 'contents', 'transform', isArbitraryVariable, isArbitraryValue]\n }],\n // -----------\n // --- SVG ---\n // -----------\n /**\n * Fill\n * @see https://tailwindcss.com/docs/fill\n */\n fill: [{\n fill: ['none', ...scaleColor()]\n }],\n /**\n * Stroke Width\n * @see https://tailwindcss.com/docs/stroke-width\n */\n 'stroke-w': [{\n stroke: [isNumber, isArbitraryVariableLength, isArbitraryLength, isArbitraryNumber]\n }],\n /**\n * Stroke\n * @see https://tailwindcss.com/docs/stroke\n */\n stroke: [{\n stroke: ['none', ...scaleColor()]\n }],\n // ---------------------\n // --- Accessibility ---\n // ---------------------\n /**\n * Forced Color Adjust\n * @see https://tailwindcss.com/docs/forced-color-adjust\n */\n 'forced-color-adjust': [{\n 'forced-color-adjust': ['auto', 'none']\n }]\n },\n conflictingClassGroups: {\n overflow: ['overflow-x', 'overflow-y'],\n overscroll: ['overscroll-x', 'overscroll-y'],\n inset: ['inset-x', 'inset-y', 'start', 'end', 'top', 'right', 'bottom', 'left'],\n 'inset-x': ['right', 'left'],\n 'inset-y': ['top', 'bottom'],\n flex: ['basis', 'grow', 'shrink'],\n gap: ['gap-x', 'gap-y'],\n p: ['px', 'py', 'ps', 'pe', 'pt', 'pr', 'pb', 'pl'],\n px: ['pr', 'pl'],\n py: ['pt', 'pb'],\n m: ['mx', 'my', 'ms', 'me', 'mt', 'mr', 'mb', 'ml'],\n mx: ['mr', 'ml'],\n my: ['mt', 'mb'],\n size: ['w', 'h'],\n 'font-size': ['leading'],\n 'fvn-normal': ['fvn-ordinal', 'fvn-slashed-zero', 'fvn-figure', 'fvn-spacing', 'fvn-fraction'],\n 'fvn-ordinal': ['fvn-normal'],\n 'fvn-slashed-zero': ['fvn-normal'],\n 'fvn-figure': ['fvn-normal'],\n 'fvn-spacing': ['fvn-normal'],\n 'fvn-fraction': ['fvn-normal'],\n 'line-clamp': ['display', 'overflow'],\n rounded: ['rounded-s', 'rounded-e', 'rounded-t', 'rounded-r', 'rounded-b', 'rounded-l', 'rounded-ss', 'rounded-se', 'rounded-ee', 'rounded-es', 'rounded-tl', 'rounded-tr', 'rounded-br', 'rounded-bl'],\n 'rounded-s': ['rounded-ss', 'rounded-es'],\n 'rounded-e': ['rounded-se', 'rounded-ee'],\n 'rounded-t': ['rounded-tl', 'rounded-tr'],\n 'rounded-r': ['rounded-tr', 'rounded-br'],\n 'rounded-b': ['rounded-br', 'rounded-bl'],\n 'rounded-l': ['rounded-tl', 'rounded-bl'],\n 'border-spacing': ['border-spacing-x', 'border-spacing-y'],\n 'border-w': ['border-w-x', 'border-w-y', 'border-w-s', 'border-w-e', 'border-w-t', 'border-w-r', 'border-w-b', 'border-w-l'],\n 'border-w-x': ['border-w-r', 'border-w-l'],\n 'border-w-y': ['border-w-t', 'border-w-b'],\n 'border-color': ['border-color-x', 'border-color-y', 'border-color-s', 'border-color-e', 'border-color-t', 'border-color-r', 'border-color-b', 'border-color-l'],\n 'border-color-x': ['border-color-r', 'border-color-l'],\n 'border-color-y': ['border-color-t', 'border-color-b'],\n translate: ['translate-x', 'translate-y', 'translate-none'],\n 'translate-none': ['translate', 'translate-x', 'translate-y', 'translate-z'],\n 'scroll-m': ['scroll-mx', 'scroll-my', 'scroll-ms', 'scroll-me', 'scroll-mt', 'scroll-mr', 'scroll-mb', 'scroll-ml'],\n 'scroll-mx': ['scroll-mr', 'scroll-ml'],\n 'scroll-my': ['scroll-mt', 'scroll-mb'],\n 'scroll-p': ['scroll-px', 'scroll-py', 'scroll-ps', 'scroll-pe', 'scroll-pt', 'scroll-pr', 'scroll-pb', 'scroll-pl'],\n 'scroll-px': ['scroll-pr', 'scroll-pl'],\n 'scroll-py': ['scroll-pt', 'scroll-pb'],\n touch: ['touch-x', 'touch-y', 'touch-pz'],\n 'touch-x': ['touch'],\n 'touch-y': ['touch'],\n 'touch-pz': ['touch']\n },\n conflictingClassGroupModifiers: {\n 'font-size': ['leading']\n },\n orderSensitiveModifiers: ['*', '**', 'after', 'backdrop', 'before', 'details-content', 'file', 'first-letter', 'first-line', 'marker', 'placeholder', 'selection']\n };\n};\n\n/**\n * @param baseConfig Config where other config will be merged into. This object will be mutated.\n * @param configExtension Partial config to merge into the `baseConfig`.\n */\nconst mergeConfigs = (baseConfig, {\n cacheSize,\n prefix,\n experimentalParseClassName,\n extend = {},\n override = {}\n}) => {\n overrideProperty(baseConfig, 'cacheSize', cacheSize);\n overrideProperty(baseConfig, 'prefix', prefix);\n overrideProperty(baseConfig, 'experimentalParseClassName', experimentalParseClassName);\n overrideConfigProperties(baseConfig.theme, override.theme);\n overrideConfigProperties(baseConfig.classGroups, override.classGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroups, override.conflictingClassGroups);\n overrideConfigProperties(baseConfig.conflictingClassGroupModifiers, override.conflictingClassGroupModifiers);\n overrideProperty(baseConfig, 'orderSensitiveModifiers', override.orderSensitiveModifiers);\n mergeConfigProperties(baseConfig.theme, extend.theme);\n mergeConfigProperties(baseConfig.classGroups, extend.classGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroups, extend.conflictingClassGroups);\n mergeConfigProperties(baseConfig.conflictingClassGroupModifiers, extend.conflictingClassGroupModifiers);\n mergeArrayProperties(baseConfig, extend, 'orderSensitiveModifiers');\n return baseConfig;\n};\nconst overrideProperty = (baseObject, overrideKey, overrideValue) => {\n if (overrideValue !== undefined) {\n baseObject[overrideKey] = overrideValue;\n }\n};\nconst overrideConfigProperties = (baseObject, overrideObject) => {\n if (overrideObject) {\n for (const key in overrideObject) {\n overrideProperty(baseObject, key, overrideObject[key]);\n }\n }\n};\nconst mergeConfigProperties = (baseObject, mergeObject) => {\n if (mergeObject) {\n for (const key in mergeObject) {\n mergeArrayProperties(baseObject, mergeObject, key);\n }\n }\n};\nconst mergeArrayProperties = (baseObject, mergeObject, key) => {\n const mergeValue = mergeObject[key];\n if (mergeValue !== undefined) {\n baseObject[key] = baseObject[key] ? baseObject[key].concat(mergeValue) : mergeValue;\n }\n};\nconst extendTailwindMerge = (configExtension, ...createConfig) => typeof configExtension === 'function' ? createTailwindMerge(getDefaultConfig, configExtension, ...createConfig) : createTailwindMerge(() => mergeConfigs(getDefaultConfig(), configExtension), ...createConfig);\nconst twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);\nexport { createTailwindMerge, extendTailwindMerge, fromTheme, getDefaultConfig, mergeConfigs, twJoin, twMerge, validators };\n//# sourceMappingURL=bundle-mjs.mjs.map\n","function hoursToMilliseconds(hours: number): number {\n\treturn hours * 60 * 60 * 1000;\n}\nfunction minutesToMilliseconds(minutes: number): number {\n\treturn minutes * 60 * 1000;\n}\n\nexport type StorageType = \"sessionStorage\" | \"localStorage\";\n\ninterface StorageData<T = unknown> {\n\tvalue: T;\n\texpiration?: number; // Timestamp in milliseconds\n}\n\nexport interface StorageKey {\n\tkey: string;\n\ttype: StorageType;\n\texpiration?: number; // Expiration time in milliseconds\n}\n\n// Storage keys and expiration times\nexport const STORAGE_SESSION_KEY = {\n\tkey: \"session_id\",\n\ttype: \"sessionStorage\",\n\texpiration: hoursToMilliseconds(1)\n} satisfies StorageKey;\n\nexport const STORAGE_OVERLAY_DIALOG_EXPIRY_KEY = {\n\tkey: \"dialog_expiration\",\n\ttype: \"sessionStorage\"\n} satisfies StorageKey;\n\nexport const STORAGE_OVERLAY_DIALOG_EXPIRATION = minutesToMilliseconds(10);\n\nexport const STORAGE_CART_KEY = {\n\tkey: \"cart\",\n\ttype: \"sessionStorage\",\n\texpiration: minutesToMilliseconds(5) // 5 minutes\n} satisfies StorageKey;\n\nexport const STORAGE_DEBUG_MODE_KEY = {\n\tkey: \"debug_mode\",\n\ttype: \"sessionStorage\"\n} satisfies StorageKey;\n\nexport const STORAGE_PREFIX = \"rflows_\";\n\nfunction getStorageKey(key: string): string {\n\treturn `${STORAGE_PREFIX}${key}`;\n}\n\nexport default {\n\tset: <T>({ key, type, expiration }: StorageKey, value: T) => {\n\t\tconst data: StorageData = {\n\t\t\tvalue,\n\t\t\texpiration: expiration ? Date.now() + expiration : undefined\n\t\t};\n\t\tconst storage = getStorage(type);\n\t\tstorage.setItem(getStorageKey(key), JSON.stringify(data));\n\t},\n\n\tget: <T>({ key, type }: StorageKey): T | null => {\n\t\tconst storage = getStorage(type);\n\n\t\tconst storageItem = storage.getItem(getStorageKey(key));\n\n\t\tif (!storageItem) return null;\n\n\t\ttry {\n\t\t\tconst parsedData = JSON.parse(storageItem) as StorageData<T>;\n\t\t\tif (parsedData.expiration && Date.now() > parsedData.expiration) {\n\t\t\t\t// Expired\n\t\t\t\tstorage.removeItem(getStorageKey(key));\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn parsedData.value;\n\t\t} catch (_) {\n\t\t\treturn null;\n\t\t}\n\t},\n\n\thas: ({ key, type }: StorageKey): boolean => {\n\t\treturn Boolean(getStorage(type).getItem(getStorageKey(key)));\n\t},\n\n\tremove: ({ key, type }: StorageKey) => {\n\t\tgetStorage(type).removeItem(getStorageKey(key));\n\t}\n};\n\nfunction getStorage(type: StorageType): Storage {\n\tif (type === \"sessionStorage\") {\n\t\treturn sessionStorage;\n\t} else if (type === \"localStorage\") {\n\t\treturn localStorage;\n\t} else {\n\t\tthrow new Error(`Invalid storage type: ${type}`);\n\t}\n}\n","/* eslint-disable no-restricted-syntax */\nimport storage, { STORAGE_DEBUG_MODE_KEY } from \"./storage\";\n\nconst LOG_PREFIX = \"[RF]\";\n\nenum LogLevel {\n\tDEBUG = 0,\n\tINFO = 1,\n\tWARN = 2,\n\tERROR = 3\n}\n\nclass Logger {\n\tprivate static instance: Logger;\n\n\tprivate constructor() {}\n\n\tpublic static getInstance(): Logger {\n\t\tif (!Logger.instance) {\n\t\t\tLogger.instance = new Logger();\n\t\t}\n\t\treturn Logger.instance;\n\t}\n\n\tprivate checkDebugMode(): boolean {\n\t\tconst storedDebugModeValue = storage.get<boolean>(STORAGE_DEBUG_MODE_KEY);\n\t\treturn Boolean(storedDebugModeValue);\n\t}\n\n\tprivate log(level: LogLevel, message: string, ...args: unknown[]): void {\n\t\tif (!this.checkDebugMode()) {\n\t\t\treturn; // Skip logs if the script data attribute is not set\n\t\t}\n\t\tswitch (level) {\n\t\t\tcase LogLevel.DEBUG:\n\t\t\t\tconsole.debug(`${LOG_PREFIX} ${message}`, ...args);\n\t\t\t\tbreak;\n\t\t\tcase LogLevel.INFO:\n\t\t\t\tconsole.info(`${LOG_PREFIX} ${message}`, ...args);\n\t\t\t\tbreak;\n\t\t\tcase LogLevel.WARN:\n\t\t\t\tconsole.warn(`${LOG_PREFIX} ${message}`, ...args);\n\t\t\t\tbreak;\n\t\t\tcase LogLevel.ERROR:\n\t\t\t\tconsole.error(`${LOG_PREFIX} ${message}`, ...args);\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tdebug(message: string, ...args: unknown[]): void {\n\t\tthis.log(LogLevel.DEBUG, message, ...args);\n\t}\n\n\tinfo(message: string, ...args: unknown[]): void {\n\t\tthis.log(LogLevel.INFO, message, ...args);\n\t}\n\n\twarn(message: string, ...args: unknown[]): void {\n\t\tthis.log(LogLevel.WARN, message, ...args);\n\t}\n\n\terror(message: string, ...args: unknown[]): void {\n\t\tthis.log(LogLevel.ERROR, message, ...args);\n\t}\n}\n\nexport const logger = Logger.getInstance();\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nimport { logger } from \"./logger\";\n\nexport function cn(...inputs: ClassValue[]) {\n\treturn twMerge(clsx(inputs));\n}\n\nexport function assert(variable: unknown, message: string): asserts variable {\n\tif (isNil(variable) || variable === \"\") {\n\t\tthrow new Error(message);\n\t}\n}\n\nexport async function wait(ms: number) {\n\treturn new Promise(resolve => setTimeout(resolve, ms));\n}\n\nexport function isNil(value: unknown): value is null | undefined {\n\treturn value === null || value === undefined;\n}\n\nexport function ensureHttpUrl(url: string, secure: boolean = true): string {\n\tif (!url.startsWith(\"http://\") && !url.startsWith(\"https://\")) {\n\t\tif (secure) {\n\t\t\treturn `https://${url}`;\n\t\t}\n\t\treturn `http://${url}`;\n\t}\n\treturn url;\n}\n\nexport function isNumber(value: unknown): value is number {\n\tif (typeof value === \"number\") {\n\t\treturn true;\n\t}\n\treturn !isNaN(Number(value)) && isFinite(Number(value));\n}\n\nexport function hexToHsl(hex: string): string {\n\t// Remove the hash if present\n\thex = hex.replace(\"#\", \"\");\n\n\t// Parse hex values\n\tconst r = parseInt(hex.substring(0, 2), 16) / 255;\n\tconst g = parseInt(hex.substring(2, 4), 16) / 255;\n\tconst b = parseInt(hex.substring(4, 6), 16) / 255;\n\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst diff = max - min;\n\n\t// Calculate lightness\n\tconst l = (max + min) / 2;\n\n\tlet h = 0;\n\tlet s = 0;\n\n\tif (diff !== 0) {\n\t\t// Calculate saturation\n\t\ts = l > 0.5 ? diff / (2 - max - min) : diff / (max + min);\n\n\t\t// Calculate hue\n\t\tswitch (max) {\n\t\t\tcase r:\n\t\t\t\th = ((g - b) / diff + (g < b ? 6 : 0)) / 6;\n\t\t\t\tbreak;\n\t\t\tcase g:\n\t\t\t\th = ((b - r) / diff + 2) / 6;\n\t\t\t\tbreak;\n\t\t\tcase b:\n\t\t\t\th = ((r - g) / diff + 4) / 6;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Convert to degrees and percentages\n\tconst hDeg = Math.round(h * 360);\n\tconst sPercent = Math.round(s * 100);\n\tconst lPercent = Math.round(l * 100);\n\n\treturn `${hDeg}, ${sPercent}%, ${lPercent}%`;\n}\n\nexport function isOnCartPage(): boolean {\n\tconst path = window.location.pathname;\n\treturn path.includes(\"/cart\") || path.includes(\"/checkout\");\n}\n\ninterface WrapperOptions {\n\tshouldThrow?: boolean;\n\tlogError?: boolean;\n\tfallbackValue?: unknown;\n}\n\nexport function attempt<T, TThrow extends boolean = false>(\n\tfn: () => T,\n\terrorMessage: string,\n\toptions: WrapperOptions & { shouldThrow?: TThrow } = {}\n): TThrow extends true ? T : T | undefined {\n\tconst {\n\t\tshouldThrow = false as TThrow,\n\t\tlogError = true,\n\t\tfallbackValue\n\t} = options;\n\n\ttry {\n\t\treturn fn() as TThrow extends true ? T : T | undefined;\n\t} catch (err) {\n\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\n\t\tif (logError) {\n\t\t\tlogger.error(`${errorMessage} (${error.message})`);\n\t\t}\n\n\t\tif (shouldThrow) {\n\t\t\tthrow error;\n\t\t}\n\n\t\treturn ((fallbackValue as T) ?? undefined) as TThrow extends true\n\t\t\t? T\n\t\t\t: T | undefined;\n\t}\n}\n\nexport function parseToNumber(\n\tvalue: string | number | null | undefined,\n\tfallback = 0\n): number {\n\tif (isNil(value) || value === \"\") return fallback;\n\tif (typeof value !== \"number\") value = parseFloat(value);\n\tif (isNaN(value) || value.toString() === \"Infinity\") return fallback;\n\treturn value;\n}\n\n// Conversion functions for time units to milliseconds\nexport function daysToMilliseconds(days: number): number {\n\treturn days * 24 * 60 * 60 * 1000;\n}\nexport function secondsToMilliseconds(seconds: number): number {\n\treturn seconds * 1000;\n}\n\nexport function setNestedValue<T>(\n\tobj: Record<string, unknown>,\n\tpath: string,\n\tvalue: T\n): T {\n\tconst keys = path.split(\".\");\n\tconst lastKey = keys.pop();\n\n\tif (!lastKey) {\n\t\tthrow new Error(\"Invalid path\");\n\t}\n\n\tconst target = keys.reduce(\n\t\t(current: unknown, key: string): Record<string, unknown> => {\n\t\t\tif (current && typeof current === \"object\" && key in current) {\n\t\t\t\tconst next = (current as Record<string, unknown>)[key];\n\t\t\t\tif (next && typeof next === \"object\") {\n\t\t\t\t\treturn next as Record<string, unknown>;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthrow new Error(`Cannot access property '${key}' on path '${path}'`);\n\t\t},\n\t\tobj\n\t);\n\n\ttarget[lastKey] = value;\n\treturn value;\n}\n\nexport function getResolvedSearchParams(): URLSearchParams {\n\tlet searchString = window.__rf_original_search;\n\tsearchString ||= window.location.search;\n\treturn new URLSearchParams(searchString);\n}\n\nexport function resolveSetStateAction<T>(\n\taction: React.SetStateAction<T>,\n\tcurrentState: T\n): T {\n\tif (typeof action === \"function\") {\n\t\t// TypeScript needs a type assertion here because SetStateAction<T>\n\t\t// could be T | ((prevState: T) => T), and TS can't narrow the function type automatically\n\t\treturn (action as (prevState: T) => T)(currentState);\n\t}\n\treturn action;\n}\n","import { ShopifyErrorResponse } from \"../types\";\nimport { assert, ensureHttpUrl, isNil } from \"./helpers\";\nimport storage, {\n\tSTORAGE_CART_KEY,\n\tSTORAGE_DEBUG_MODE_KEY,\n\tSTORAGE_OVERLAY_DIALOG_EXPIRY_KEY,\n\tSTORAGE_SESSION_KEY\n} from \"./storage\";\n\nexport function constructShopifyUrl(\n\tendpoint: string,\n\tqueryParams?: Record<string, string>\n) {\n\tconst root = ensureHttpUrl(window.location.host);\n\n\tassert(root, \"Shopify root URL is not defined\");\n\n\tconst searchParams = new URLSearchParams();\n\n\tif (queryParams) {\n\t\tObject.entries(queryParams).forEach(([key, value]) => {\n\t\t\tsearchParams.set(key, value);\n\t\t});\n\t}\n\n\tlet url = root;\n\n\tif (!endpoint.startsWith(\"/\")) {\n\t\turl += \"/\";\n\t}\n\turl += endpoint;\n\n\tif (searchParams.toString()) {\n\t\turl += `?${searchParams.toString()}`;\n\t}\n\n\treturn url;\n}\n\nexport async function handleShopifyFetch<T = unknown>(\n\tendpoint: string,\n\tinit?: RequestInit\n): Promise<T> {\n\tconst fetchUrl = constructShopifyUrl(endpoint, {\n\t\trf: \"true\"\n\t});\n\tconst response = await fetch(fetchUrl, {\n\t\tmethod: init?.method ?? (init?.body ? \"POST\" : \"GET\"),\n\t\tcache: \"no-cache\",\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\"\n\t\t},\n\t\t...init\n\t});\n\n\tif (!response.ok) {\n\t\tconst errorResponse = (await response.json()) as ShopifyErrorResponse;\n\t\tif (errorResponse && \"message\" in errorResponse) {\n\t\t\tthrow errorResponse;\n\t\t}\n\t\tthrow new Error(\"Unknown error\");\n\t}\n\n\tconst json = (await response.json()) as T;\n\treturn json;\n}\n\nexport function clearSession() {\n\tstorage.remove(STORAGE_CART_KEY);\n\tstorage.remove(STORAGE_SESSION_KEY);\n\tstorage.remove(STORAGE_OVERLAY_DIALOG_EXPIRY_KEY);\n\tstorage.remove(STORAGE_DEBUG_MODE_KEY);\n}\n\nexport function normalizeShopifyPrice(\n\tvalue: number | null | undefined\n): number {\n\tif (isNil(value)) {\n\t\treturn 0;\n\t}\n\treturn value / 100;\n}\n\nexport function formatShopifyId(id: number | string, type: string): string {\n\tif (typeof id === \"string\" && id.startsWith(\"gid://\")) return id;\n\treturn `gid://shopify/${type}/${id}`;\n}\n\nexport function stripShopifyId(id: string | number | null | undefined): string {\n\tif (!id) return \"\";\n\n\tconst segment = id.toString().split(\"/\").pop();\n\tif (!segment) return \"\";\n\n\treturn segment;\n}\n","import { ProductRule, ShopifyCart, ShopifyCartChangeResponse } from \"../types\";\nimport {\n\tgetInternalCartProvider,\n\thasCartProvider\n} from \"./cart-provider-store\";\nimport { isNil, parseToNumber } from \"./helpers\";\nimport { logger } from \"./logger\";\nimport { formatShopifyId, handleShopifyFetch, stripShopifyId } from \"./shopify\";\nimport storage, { STORAGE_CART_KEY } from \"./storage\";\n\nfunction toMerchandiseGid(variantId: number | string): string {\n\treturn formatShopifyId(variantId, \"ProductVariant\");\n}\n\nexport function getRuleProductIds(\n\trules: ProductRule[],\n\ttype: ProductRule[\"type\"]\n) {\n\treturn rules\n\t\t.filter(rule => rule.type === type)\n\t\t.flatMap(rule =>\n\t\t\trule.products.map(product =>\n\t\t\t\tNumber(stripShopifyId(product.shopifyProductId))\n\t\t\t)\n\t\t);\n}\n\n// Normalizes the cart by merging items with the same variant_id\nexport function normalizeCart<T extends ShopifyCart>(\n\tcart: T,\n\trules: ProductRule[]\n): T {\n\tconst noExchangeTo = getRuleProductIds(rules, \"NO_EXCHANGE_TO\");\n\n\tconst { items, itemCount } = (cart.items || []).reduce<{\n\t\titems: ShopifyCart[\"items\"];\n\t\titemCount: number;\n\t}>(\n\t\t(acc, item) => {\n\t\t\t// Blocked product id exclusion\n\t\t\tif (noExchangeTo.includes(item.product_id)) {\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\t// Bundle product exclusion\n\t\t\tif (item.has_components) {\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\t// Find existing item in the accumulated items\n\t\t\tconst existingItem = acc.items.find(\n\t\t\t\ti => i.variant_id === item.variant_id\n\t\t\t);\n\n\t\t\tacc.itemCount += item.quantity || 0;\n\n\t\t\tif (existingItem) {\n\t\t\t\t// If the item already exists, merge the quantities\n\t\t\t\texistingItem.quantity += item.quantity;\n\t\t\t\treturn acc;\n\t\t\t}\n\t\t\t// If the item does not exist, add it to the list\n\t\t\tacc.items.push({ ...item });\n\n\t\t\treturn acc;\n\t\t},\n\t\t{\n\t\t\titems: [],\n\t\t\titemCount: 0\n\t\t}\n\t);\n\n\tconst normalizedCart: T = {\n\t\t...cart,\n\t\titems,\n\t\titem_count: itemCount\n\t};\n\n\treturn normalizedCart;\n}\n\n// Compares two Shopify carts to see if they are the same\nexport function compareCarts(\n\tcart1: ShopifyCart,\n\tcart2: ShopifyCart,\n\trules: ProductRule[]\n): boolean {\n\tconst normalizedCart1 = normalizeCart(cart1, rules);\n\tconst normalizedCart2 = normalizeCart(cart2, rules);\n\n\tconst itemCount1 = normalizedCart1.item_count || 0;\n\tconst itemCount2 = normalizedCart2.item_count || 0;\n\n\tif (itemCount1 !== itemCount2) {\n\t\tlogger.info(\"Carts have different item counts\");\n\t\treturn false; // Different item counts\n\t}\n\n\tconst variantIds1 = normalizedCart1.items?.map(item => item.variant_id) || [];\n\tconst variantIds2 = normalizedCart2.items?.map(item => item.variant_id) || [];\n\n\tvariantIds1.sort((a, b) => a - b);\n\tvariantIds2.sort((a, b) => a - b);\n\n\tif (!variantIds1.every((id, index) => id === variantIds2[index])) {\n\t\tlogger.info(\"Carts have different variant IDs\");\n\t\treturn false; // Different variant IDs\n\t}\n\n\treturn true; // Carts are the same\n}\n\nexport async function getCart(\n\tpreferStorage: boolean = true\n): Promise<ShopifyCart> {\n\tlet cart: ShopifyCart | undefined = undefined;\n\tlet usedStore: boolean = false;\n\tlet usedProvider: boolean = false;\n\n\tif (preferStorage) {\n\t\tconst storedCart = getCartStorage();\n\t\tif (storedCart) {\n\t\t\tusedStore = true;\n\t\t\tcart = storedCart;\n\t\t}\n\t}\n\n\tif (!cart) {\n\t\t// Use cart provider if configured (for headless/external setups)\n\t\tif (hasCartProvider()) {\n\t\t\tconst provider = getInternalCartProvider();\n\t\t\tif (provider) {\n\t\t\t\tlogger.info(\"[CartProvider] Using provider.getCart()\");\n\t\t\t\tcart = await provider.getCart();\n\t\t\t\tusedProvider = true;\n\t\t\t}\n\t\t}\n\n\t\t// Fall back to direct Shopify fetch if no provider\n\t\tif (!cart) {\n\t\t\tlogger.info(\"[CartProvider] No provider, falling back to /cart.js\");\n\t\t\tcart = await handleShopifyFetch<ShopifyCart>(\"/cart.js\");\n\t\t}\n\n\t\tupdateCartStorage(cart);\n\t}\n\n\tconst source = usedStore ? \"Storage\" : usedProvider ? \"Provider\" : \"API\";\n\tlogger.info(`Fetched cart (${source})`, cart);\n\n\treturn cart;\n}\n\nexport async function clearCart(): Promise<ShopifyCart> {\n\t// Use cart provider if configured and has clearCart method\n\tif (hasCartProvider()) {\n\t\tconst provider = getInternalCartProvider();\n\t\tif (provider?.clearCart) {\n\t\t\tlogger.info(\"[CartProvider] Using provider.clearCart()\");\n\t\t\tconst cart = await provider.clearCart();\n\t\t\tupdateCartStorage(cart);\n\t\t\treturn cart;\n\t\t}\n\t\tlogger.info(\n\t\t\t\"[CartProvider] Provider exists but clearCart not implemented, falling back to /cart/clear.js\"\n\t\t);\n\t}\n\n\t// Fall back to direct Shopify fetch\n\tconst cart = await handleShopifyFetch<ShopifyCart>(\"/cart/clear.js\", {\n\t\tmethod: \"POST\"\n\t});\n\tupdateCartStorage(cart);\n\treturn cart;\n}\n\nexport async function setCartItems(\n\titems: Array<{\n\t\tid: number;\n\t\tquantity: number;\n\t}>\n): Promise<ShopifyCart> {\n\tconst clearedCart = await clearCart();\n\n\tif (items.length === 0) {\n\t\treturn clearedCart;\n\t}\n\n\t// Use cart provider if configured and has addItems method\n\tif (hasCartProvider()) {\n\t\tconst provider = getInternalCartProvider();\n\t\tif (provider?.addItems) {\n\t\t\tconst cartItems = items.map(item => {\n\t\t\t\tconst merchandiseId = toMerchandiseGid(item.id);\n\t\t\t\treturn {\n\t\t\t\t\tmerchandiseId,\n\t\t\t\t\tquantity: item.quantity\n\t\t\t\t};\n\t\t\t});\n\t\t\tlogger.info(\n\t\t\t\t\"[CartProvider] Using provider.addItems() (setCartItems)\",\n\t\t\t\tcartItems\n\t\t\t);\n\t\t\tconst cart = await provider.addItems(cartItems);\n\t\t\tupdateCartStorage(cart);\n\t\t\treturn cart;\n\t\t}\n\t\tlogger.info(\n\t\t\t\"[CartProvider] Provider exists but addItems not implemented, falling back to /cart/add.js\"\n\t\t);\n\t}\n\n\t// Fall back to direct Shopify fetch\n\tawait handleShopifyFetch<ShopifyCartChangeResponse>(\"/cart/add.js\", {\n\t\tmethod: \"POST\",\n\t\tbody: JSON.stringify({\n\t\t\titems\n\t\t})\n\t});\n\n\treturn getCart(false);\n}\n\nexport async function updateCartItemQuantity({\n\tvariantId,\n\tquantity,\n\tisRetry = false\n}: {\n\tvariantId: number;\n\tquantity: number;\n\tisRetry?: boolean;\n}): Promise<ShopifyCartChangeResponse | ShopifyCart> {\n\ttry {\n\t\tif (isNil(quantity)) {\n\t\t\tthrow new Error(\"Quantity cannot be null or undefined\");\n\t\t}\n\n\t\t// Use cart provider if configured\n\t\tif (hasCartProvider()) {\n\t\t\tconst provider = getInternalCartProvider();\n\t\t\tif (provider) {\n\t\t\t\t// Get current cart (storage is synced by wrapped provider)\n\t\t\t\t// On retry, bypass storage to get fresh cart data\n\t\t\t\tconst currentCart = await getCart(!isRetry);\n\t\t\t\tconst item = currentCart.items.find(i => i.variant_id === variantId);\n\n\t\t\t\tif (!item) {\n\t\t\t\t\tlogger.warn(\n\t\t\t\t\t\t`[CartProvider] Item with variantId ${variantId} not found in cart`\n\t\t\t\t\t);\n\t\t\t\t\t// If first attempt and item not found, retry with fresh cart\n\t\t\t\t\tif (!isRetry) {\n\t\t\t\t\t\tlogger.info(\"[CartProvider] Retrying with fresh cart data...\");\n\t\t\t\t\t\treturn updateCartItemQuantity({\n\t\t\t\t\t\t\tvariantId,\n\t\t\t\t\t\t\tquantity,\n\t\t\t\t\t\t\tisRetry: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\treturn updateCartItemQuantityViaShopify(variantId, quantity);\n\t\t\t\t}\n\n\t\t\t\tconst lineId = item.line_id;\n\t\t\t\tconst merchandiseId =\n\t\t\t\t\titem.merchandise_id || toMerchandiseGid(variantId);\n\n\t\t\t\tif (!lineId) {\n\t\t\t\t\tlogger.warn(\"[CartProvider] No line_id on cart item\");\n\t\t\t\t\t// If first attempt and no line_id, retry with fresh cart\n\t\t\t\t\tif (!isRetry) {\n\t\t\t\t\t\tlogger.info(\"[CartProvider] Retrying with fresh cart data...\");\n\t\t\t\t\t\treturn updateCartItemQuantity({\n\t\t\t\t\t\t\tvariantId,\n\t\t\t\t\t\t\tquantity,\n\t\t\t\t\t\t\tisRetry: true\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tlogger.warn(\n\t\t\t\t\t\t\"[CartProvider] Still no line_id after retry, falling back to /cart/change.js\"\n\t\t\t\t\t);\n\t\t\t\t\treturn updateCartItemQuantityViaShopify(variantId, quantity);\n\t\t\t\t}\n\n\t\t\t\tlet cart: ShopifyCart;\n\n\t\t\t\tif (quantity === 0 && provider.removeItems) {\n\t\t\t\t\tlogger.info(`[CartProvider] Using provider.removeItems([${lineId}])`);\n\t\t\t\t\tcart = await provider.removeItems([lineId]);\n\t\t\t\t} else if (provider.updateItems) {\n\t\t\t\t\tconst updateItem = { id: lineId, merchandiseId, quantity };\n\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\"[CartProvider] Using provider.updateItems()\",\n\t\t\t\t\t\tupdateItem\n\t\t\t\t\t);\n\t\t\t\t\tcart = await provider.updateItems([updateItem]);\n\t\t\t\t} else {\n\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\"[CartProvider] Provider exists but removeItems/updateItems not implemented, falling back to /cart/change.js\"\n\t\t\t\t\t);\n\t\t\t\t\treturn updateCartItemQuantityViaShopify(variantId, quantity);\n\t\t\t\t}\n\t\t\t\tupdateCartStorage(cart);\n\t\t\t\treturn cart;\n\t\t\t}\n\t\t}\n\n\t\t// Fall back to direct Shopify fetch\n\t\treturn updateCartItemQuantityViaShopify(variantId, quantity);\n\t} catch (err) {\n\t\tconst error = err as Error | { status: number; message: string };\n\t\tlogger.error(\"Error updating cart item quantity:\", error);\n\t\tif (\"status\" in error) {\n\t\t\tthrow new Error(error.status.toString());\n\t\t}\n\t\tthrow new Error(error.message);\n\t}\n}\n\n/**\n * Internal: Update cart item quantity via direct Shopify API calls.\n * Used when no cart provider is configured.\n */\nasync function updateCartItemQuantityViaShopify(\n\tvariantId: number,\n\tquantity: number\n): Promise<ShopifyCartChangeResponse | ShopifyCart> {\n\tif (quantity === 0) {\n\t\t// If quantity is 0, remove the item from the cart\n\t\tconst cart = await handleShopifyFetch<ShopifyCartChangeResponse>(\n\t\t\t\"/cart/change.js\",\n\t\t\t{\n\t\t\t\tbody: JSON.stringify({\n\t\t\t\t\tid: String(variantId), // Shopify expects variantId as a string\n\t\t\t\t\tquantity\n\t\t\t\t})\n\t\t\t}\n\t\t);\n\t\tupdateCartStorage(cart);\n\t\treturn cart;\n\t}\n\n\t// This calculation is necessary to handle cases where there are multiple identical items in the cart.\n\tconst existingCart = await getCart();\n\n\tconst existingItems = existingCart.items || [];\n\n\tconst itemsWtihSameVariantId = existingItems.filter(\n\t\titem => item.variant_id === variantId\n\t);\n\tconst totalQuantity = itemsWtihSameVariantId.reduce(\n\t\t(acc, item) => acc + (item.quantity || 0),\n\t\t0\n\t);\n\tconst existingItemIndex = existingItems.findIndex(\n\t\titem => item.variant_id === variantId\n\t);\n\n\tconst increment = quantity - totalQuantity;\n\n\tconst existingQuantity = parseToNumber(\n\t\texistingItems[existingItemIndex]?.quantity\n\t);\n\tconst calculatedQuantity = existingQuantity + increment;\n\n\tif (existingItemIndex !== -1) {\n\t\tconst cartChange = {\n\t\t\tline: String(existingItemIndex + 1), // Shopify uses 1-based index\n\t\t\tquantity: calculatedQuantity\n\t\t};\n\t\tconst cart = await handleShopifyFetch<ShopifyCartChangeResponse>(\n\t\t\t\"/cart/change.js\",\n\t\t\t{\n\t\t\t\tbody: JSON.stringify(cartChange)\n\t\t\t}\n\t\t);\n\t\tupdateCartStorage(cart);\n\t\treturn cart;\n\t}\n\n\treturn existingCart;\n}\n\nexport function updateCartStorage(cart: ShopifyCart | null): void {\n\tif (cart) {\n\t\tstorage.set(STORAGE_CART_KEY, cart);\n\t\treturn;\n\t}\n\tstorage.remove(STORAGE_CART_KEY);\n}\n\nexport function getCartStorage(): ShopifyCart | null {\n\treturn storage.get<ShopifyCart>(STORAGE_CART_KEY);\n}\n","import { updateCartStorage } from \"../widget/lib/utils/cart\";\nimport { stripShopifyId } from \"../widget/lib/utils/shopify\";\nimport type {\n\tCartInput,\n\tCartProvider,\n\tConnection,\n\tShopifyCart,\n\tShopifyCartItem,\n\tStorefrontCart,\n\tStorefrontCartLine\n} from \"./types\";\n\nfunction resolveConnection<T extends object>(connections: Connection<T>): T[] {\n\tif (\"edges\" in connections) {\n\t\treturn connections.edges.map(edge => edge.node);\n\t}\n\treturn connections.map(edge => {\n\t\tif (\"node\" in edge) {\n\t\t\treturn edge.node;\n\t\t}\n\t\treturn edge;\n\t});\n}\n\nfunction isStorefrontCart(cart: CartInput): cart is StorefrontCart {\n\tif (!(\"lines\" in cart)) return false;\n\tconst lines = (cart as StorefrontCart).lines;\n\treturn (\n\t\tArray.isArray(lines) ||\n\t\t(lines != null && typeof lines === \"object\" && \"edges\" in lines)\n\t);\n}\n\nfunction toCents(amount: string): number {\n\tconst parsed = parseFloat(amount);\n\treturn Number.isNaN(parsed) ? 0 : Math.round(parsed * 100);\n}\n\nfunction resolveLineImage(line: StorefrontCartLine): string {\n\tif (line.merchandise.image?.url) {\n\t\treturn line.merchandise.image.url;\n\t}\n\tif (line.merchandise.product.featuredImage?.url) {\n\t\treturn line.merchandise.product.featuredImage.url;\n\t}\n\tconst productImages = resolveConnection(\n\t\tline.merchandise.product.images ?? []\n\t);\n\tif (productImages.length > 0) {\n\t\treturn productImages[0].url;\n\t}\n\treturn \"\";\n}\n\nfunction normalizeStorefrontLine(line: StorefrontCartLine): ShopifyCartItem {\n\tconst { merchandise, quantity } = line;\n\tconst { product } = merchandise;\n\n\tconst variantId = Number(stripShopifyId(merchandise.id));\n\tconst productId = Number(stripShopifyId(product.id));\n\n\t// Prefer line.cost, fall back to merchandise.price\n\tlet unitPrice: number;\n\tlet lineTotal: number;\n\n\tif (line.cost?.amountPerQuantity) {\n\t\tunitPrice = toCents(line.cost.amountPerQuantity.amount);\n\t\tlineTotal = line.cost.totalAmount\n\t\t\t? toCents(line.cost.totalAmount.amount)\n\t\t\t: unitPrice * quantity;\n\t} else if (merchandise.price) {\n\t\tunitPrice = toCents(merchandise.price.amount);\n\t\tlineTotal = unitPrice * quantity;\n\t} else {\n\t\tunitPrice = 0;\n\t\tlineTotal = 0;\n\t}\n\n\tconst variantTitle = merchandise.title;\n\tconst productTitle = product.title;\n\n\tconst isDefaultVariant =\n\t\t!variantTitle ||\n\t\tvariantTitle === \"Default Title\" ||\n\t\tvariantTitle === \"Default\";\n\n\tconst title = isDefaultVariant\n\t\t? productTitle\n\t\t: `${productTitle} - ${variantTitle}`;\n\n\treturn {\n\t\tvariant_id: variantId,\n\t\tquantity,\n\t\ttitle,\n\t\tprice: unitPrice,\n\t\tproduct_id: productId,\n\t\tproduct_title: productTitle,\n\t\thandle: product.handle,\n\t\timage: resolveLineImage(line),\n\t\tgrams: 0,\n\t\tline_price: lineTotal,\n\t\tfinal_price: unitPrice,\n\t\tfinal_line_price: lineTotal,\n\t\tline_id: line.id,\n\t\tmerchandise_id: merchandise.id,\n\t\tvariant_title: isDefaultVariant ? undefined : variantTitle,\n\t\tsku: merchandise.sku,\n\t\tvendor: product.vendor,\n\t\tproduct_type: product.productType,\n\t\trequires_shipping: merchandise.requiresShipping\n\t};\n}\n\nfunction normalizeStorefrontCart(cart: StorefrontCart): ShopifyCart {\n\tconst lines = resolveConnection(cart.lines);\n\tconst items = lines.map(normalizeStorefrontLine);\n\tconst itemCount =\n\t\tcart.totalQuantity ?? items.reduce((sum, i) => sum + i.quantity, 0);\n\n\treturn {\n\t\titems,\n\t\titem_count: itemCount,\n\t\ttoken: cart.id,\n\t\tnote: cart.note ?? \"\"\n\t};\n}\n\nexport function normalizeCartInput(cart: CartInput): ShopifyCart {\n\tif (isStorefrontCart(cart)) {\n\t\treturn normalizeStorefrontCart(cart);\n\t}\n\treturn cart;\n}\n\nfunction normalizeAndStore(cart: CartInput): ShopifyCart {\n\tconst normalized = normalizeCartInput(cart);\n\tupdateCartStorage(normalized);\n\treturn normalized;\n}\n\nexport function wrapCartProvider(provider: CartProvider): CartProvider {\n\treturn {\n\t\tasync getCart(): Promise<ShopifyCart | undefined> {\n\t\t\tconst cart = await provider.getCart();\n\t\t\treturn cart ? normalizeAndStore(cart) : undefined;\n\t\t},\n\t\tclearCart: async () => normalizeAndStore(await provider.clearCart()),\n\t\taddItems: async items => normalizeAndStore(await provider.addItems(items)),\n\t\tupdateItems: async items =>\n\t\t\tnormalizeAndStore(await provider.updateItems(items)),\n\t\tremoveItems: async ids => normalizeAndStore(await provider.removeItems(ids))\n\t};\n}\n","import type { IReturnContext } from \"../widget/lib/context/return-context\";\nimport type { IToastContext } from \"../widget/lib/context/toast-context\";\nimport type { ValueState } from \"../widget/lib/hooks/common/use-value-state\";\nimport {\n\tCalculationResponse,\n\tShopifyCart,\n\tWidgetViewState\n} from \"../widget/lib/types\";\nimport {\n\tcompareCarts,\n\tnormalizeCart,\n\tupdateCartStorage\n} from \"../widget/lib/utils/cart\";\nimport type { WidgetConfiguration } from \"../widget/lib/utils/initialization/types\";\nimport { normalizeCartInput, wrapCartProvider } from \"./storefront-cart\";\nimport type {\n\tCartInput,\n\tCartProvider,\n\tEventCallback,\n\tEventName,\n\tOrderData,\n\tSetCartOutput\n} from \"./types\";\n\ninterface StateBridge {\n\twidgetViewState: ValueState<WidgetViewState> | null;\n\tconfig: WidgetConfiguration | null;\n\treturnContext: IReturnContext | null;\n\ttoastContext: IToastContext | null;\n\tcartProvider: CartProvider | null;\n\tisInitialized: boolean;\n\teventListeners: Map<string, Set<EventCallback<EventName>>>;\n}\n\nconst bridge: StateBridge = {\n\twidgetViewState: null,\n\tconfig: null,\n\treturnContext: null,\n\ttoastContext: null,\n\tcartProvider: null,\n\tisInitialized: false,\n\teventListeners: new Map()\n};\n\nexport function registerBridge({\n\twidgetViewState,\n\treturnContext,\n\ttoastContext,\n\tconfig\n}: {\n\twidgetViewState: ValueState<WidgetViewState>;\n\treturnContext: IReturnContext;\n\ttoastContext: IToastContext;\n\tconfig: WidgetConfiguration;\n}): void {\n\tbridge.widgetViewState = widgetViewState;\n\tbridge.returnContext = returnContext;\n\tbridge.toastContext = toastContext;\n\tbridge.config = config;\n\tbridge.isInitialized = true;\n\n\temitEvent(\"ready\");\n}\n\nexport function unregisterBridge(): void {\n\tbridge.widgetViewState = null;\n\tbridge.returnContext = null;\n\tbridge.toastContext = null;\n\tbridge.config = null;\n\tbridge.cartProvider = null;\n\tbridge.isInitialized = false;\n\tbridge.eventListeners.clear();\n}\n\nexport function setCartProvider(provider: CartProvider | null): void {\n\tconst wrapped = provider ? wrapCartProvider(provider) : null;\n\n\tbridge.cartProvider = wrapped;\n\n\tconst rf = (\n\t\twindow as Window & {\n\t\t\tReturnflows?: { _cartProvider?: CartProvider | null };\n\t\t}\n\t).Returnflows;\n\tif (rf) {\n\t\trf._cartProvider = wrapped;\n\t}\n\n\tif (provider) {\n\t\tconsole.info(`[RF] Cart provider registered.`);\n\t} else {\n\t\tconsole.info(\"[RF] Cart provider cleared.\");\n\t}\n}\n\nexport function getCartProvider(): CartProvider | null {\n\treturn bridge.cartProvider;\n}\n\nexport function isInitialized(): boolean {\n\treturn bridge.isInitialized;\n}\n\nexport function getDrawerState(): WidgetViewState | null {\n\treturn bridge.widgetViewState?.value ?? null;\n}\n\nexport function setDrawerState(state: WidgetViewState): void {\n\tif (!bridge.widgetViewState) {\n\t\tconsole.warn(\"[RF] Widget not initialized. Call init() first.\");\n\t\treturn;\n\t}\n\tbridge.widgetViewState.set(state);\n}\n\nexport function isDrawerOpen(): boolean {\n\treturn bridge.widgetViewState?.value === WidgetViewState.Open;\n}\n\nexport function getCart(): ShopifyCart | null {\n\tconst cartState = bridge.returnContext?.cartState;\n\tif (!cartState?.value.data) return null;\n\treturn cartState.value.data.original as ShopifyCart;\n}\n\nexport function getCalculation(): CalculationResponse | null {\n\treturn bridge.returnContext?.calculationState.value.data ?? null;\n}\n\nexport function getOrder(): OrderData | null {\n\tconst orderData = bridge.returnContext?.orderState.value.data?.orderData;\n\tif (!orderData) return null;\n\n\treturn {\n\t\tid: orderData.id,\n\t\torderId: orderData.orderId,\n\t\torderName: orderData.orderName,\n\t\tinstantExchange: orderData.instantExchange,\n\t\tfreeExchangeLabel: orderData.freeExchangeLabel,\n\t\tproductsToExchange: orderData.productsToExchange,\n\t\ttotalPrice: orderData.totalPrice\n\t};\n}\n\nexport function isLoading(): boolean {\n\treturn bridge.returnContext?.isPending ?? true;\n}\n\nexport async function setCart(cart: CartInput): Promise<SetCartOutput> {\n\tconst cartState = bridge.returnContext?.cartState;\n\tconst orderState = bridge.returnContext?.orderState;\n\tconst calculationState = bridge.returnContext?.calculationState;\n\tconst returnState = bridge.config?.data.returnData;\n\n\tif (!cartState || !orderState?.value.data) {\n\t\tconsole.warn(\"[RF] Widget not initialized or order not loaded.\");\n\t\treturn {\n\t\t\tcart: null,\n\t\t\tcalculation: null,\n\t\t\thasChanged: false\n\t\t};\n\t}\n\n\tconst order = orderState.value.data;\n\n\tconst normalizedInput = normalizeCartInput(cart);\n\tconst productRules = order.orderData.productRules || [];\n\n\t// Check if cart has actually changed\n\tconst currentCart = cartState.value.data?.original as ShopifyCart | undefined;\n\tif (currentCart && compareCarts(currentCart, normalizedInput, productRules)) {\n\t\treturn {\n\t\t\tcart: currentCart,\n\t\t\tcalculation: calculationState?.value.data ?? null,\n\t\t\thasChanged: false\n\t\t};\n\t}\n\n\tconst transformedCart = normalizeCart(normalizedInput, productRules);\n\n\tcartState.set({\n\t\tdata: {\n\t\t\toriginal: normalizedInput,\n\t\t\ttransformed: transformedCart\n\t\t},\n\t\tpending: false,\n\t\terror: null\n\t});\n\n\tupdateCartStorage(normalizedInput);\n\n\temitEvent(\"cart:updated\", normalizedInput);\n\n\tconst calculationResponse = await calculationState?.query({\n\t\tcart: transformedCart,\n\t\torderId: order.orderData.id,\n\t\tlineItems: returnState?.items || []\n\t});\n\n\treturn {\n\t\tcart: transformedCart,\n\t\tcalculation: calculationResponse ?? null,\n\t\thasChanged: true\n\t};\n}\n\nexport async function refetchCart(): Promise<SetCartOutput | void> {\n\tconst cartState = bridge.returnContext?.cartState;\n\tconst orderState = bridge.returnContext?.orderState;\n\n\tif (!cartState || !orderState?.value.data) {\n\t\tconsole.warn(\"[RF] Widget not initialized or order not loaded.\");\n\t\treturn;\n\t}\n\n\tif (bridge.cartProvider) {\n\t\ttry {\n\t\t\tconst cart = await bridge.cartProvider.getCart();\n\t\t\tif (!cart) return;\n\t\t\treturn setCart(cart);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[RF] Cart provider getCart failed:\", error);\n\t\t\temitEvent(\n\t\t\t\t\"error\",\n\t\t\t\terror instanceof Error ? error : new Error(String(error))\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tawait cartState.query(orderState.value.data);\n}\n\nexport async function clearCart(): Promise<SetCartOutput | void> {\n\tif (!bridge.isInitialized) {\n\t\tconsole.warn(\"[RF] Widget not initialized. Call init() first.\");\n\t\treturn;\n\t}\n\n\tif (bridge.cartProvider?.clearCart) {\n\t\ttry {\n\t\t\tconst cart = await bridge.cartProvider.clearCart();\n\t\t\treturn setCart(cart);\n\t\t} catch (error) {\n\t\t\tconsole.error(\"[RF] Cart provider clearCart failed:\", error);\n\t\t\temitEvent(\n\t\t\t\t\"error\",\n\t\t\t\terror instanceof Error ? error : new Error(String(error))\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\t}\n\n\tdocument.dispatchEvent(new CustomEvent(\"RF_CART_AND_CALCULATION_REFETCH\"));\n}\n\nexport function showToast(options: {\n\tmessage: string;\n\ttone?: \"info\" | \"tip\" | \"action\" | \"error\" | \"giftcard\";\n\tduration?: number;\n\tonClose?: () => void;\n}): string {\n\tif (!bridge.toastContext) {\n\t\tconsole.warn(\"[RF] Widget not initialized. Call init() first.\");\n\t\treturn \"\";\n\t}\n\n\treturn bridge.toastContext.add({\n\t\tmessage: options.message,\n\t\ttone: options.tone,\n\t\tduration: options.duration,\n\t\tonClose: options.onClose\n\t});\n}\n\nexport function dismissToast(id: string): void {\n\tif (!bridge.toastContext) {\n\t\tconsole.warn(\"[RF] Widget not initialized.\");\n\t\treturn;\n\t}\n\tbridge.toastContext.remove(id);\n}\n\nexport function clearToasts(): void {\n\tif (!bridge.toastContext) {\n\t\tconsole.warn(\"[RF] Widget not initialized.\");\n\t\treturn;\n\t}\n\tbridge.toastContext.clear();\n}\n\nexport function addEventListener<K extends EventName>(\n\tevent: K,\n\tcallback: EventCallback<K>\n): void {\n\tif (!bridge.eventListeners.has(event)) {\n\t\tbridge.eventListeners.set(event, new Set());\n\t}\n\tbridge.eventListeners.get(event)!.add(callback as EventCallback<EventName>);\n}\n\nexport function removeEventListener<K extends EventName>(\n\tevent: K,\n\tcallback: EventCallback<K>\n): void {\n\tbridge.eventListeners\n\t\t.get(event)\n\t\t?.delete(callback as EventCallback<EventName>);\n}\n\nexport function emitEvent<K extends EventName>(\n\tevent: K,\n\t...args: K extends \"error\"\n\t\t? [Error]\n\t\t: K extends \"calculation:updated\"\n\t\t\t? [CalculationResponse]\n\t\t\t: K extends \"cart:updated\"\n\t\t\t\t? [ShopifyCart]\n\t\t\t\t: []\n): void {\n\tconst listeners = bridge.eventListeners.get(event);\n\tif (!listeners) return;\n\n\tlisteners.forEach(callback => {\n\t\ttry {\n\t\t\t// @ts-expect-error - TypeScript can't verify the callback signature matches the args\n\t\t\tcallback(...args);\n\t\t} catch (error) {\n\t\t\tconsole.error(`[RF] Error in ${event} event handler:`, error);\n\t\t}\n\t});\n}\n","import { WidgetViewState } from \"../widget/lib/types\";\nimport * as bridge from \"./state-bridge\";\nimport type {\n\tCartAPI,\n\tCartInput,\n\tCartProvider,\n\tDataAPI,\n\tDrawerAPI,\n\tEventCallback,\n\tEventName,\n\tReturnflowsAPI,\n\tReturnflowsConfig,\n\tToastAPI,\n\tToastOptions\n} from \"./types\";\n\ndeclare const __VERSION__: string;\n\nclass ReturnflowsWidget implements ReturnflowsAPI {\n\tprivate _initPromise: Promise<void> | null = null;\n\n\t/** @internal */\n\t_cartProvider: CartProvider | null = null;\n\n\tpublic readonly version =\n\t\ttypeof __VERSION__ !== \"undefined\" ? __VERSION__ : \"0.0.0\";\n\n\tpublic readonly drawer: DrawerAPI = {\n\t\topen: (): void => {\n\t\t\tthis._ensureInitialized();\n\t\t\tbridge.setDrawerState(WidgetViewState.Open);\n\t\t},\n\n\t\tclose: (): void => {\n\t\t\tthis._ensureInitialized();\n\t\t\tbridge.setDrawerState(WidgetViewState.Collapsed);\n\t\t},\n\n\t\ttoggle: (): void => {\n\t\t\tthis._ensureInitialized();\n\t\t\tconst current = bridge.getDrawerState();\n\t\t\tbridge.setDrawerState(\n\t\t\t\tcurrent === WidgetViewState.Open\n\t\t\t\t\t? WidgetViewState.Collapsed\n\t\t\t\t\t: WidgetViewState.Open\n\t\t\t);\n\t\t},\n\n\t\tisOpen: (): boolean => {\n\t\t\tthis._ensureInitialized();\n\t\t\treturn bridge.isDrawerOpen();\n\t\t}\n\t};\n\n\tpublic readonly data: DataAPI = {\n\t\tgetCart: () => bridge.getCart(),\n\t\tgetCalculation: () => bridge.getCalculation(),\n\t\tgetOrder: () => bridge.getOrder(),\n\t\tisLoading: () => bridge.isLoading()\n\t};\n\n\tpublic readonly cart: CartAPI = {\n\t\tsetCart: async (cart: CartInput): ReturnType<CartAPI[\"setCart\"]> => {\n\t\t\tthis._ensureInitialized();\n\t\t\treturn bridge.setCart(cart);\n\t\t},\n\n\t\trefetch: async (): Promise<void> => {\n\t\t\tthis._ensureInitialized();\n\t\t\tawait bridge.refetchCart();\n\t\t},\n\n\t\tclear: async (): Promise<void> => {\n\t\t\tthis._ensureInitialized();\n\t\t\tawait bridge.clearCart();\n\t\t}\n\t};\n\n\tpublic readonly toast: ToastAPI = {\n\t\tshow: (options: ToastOptions): string => {\n\t\t\tthis._ensureInitialized();\n\t\t\treturn bridge.showToast(options);\n\t\t},\n\n\t\tdismiss: (id: string): void => {\n\t\t\tthis._ensureInitialized();\n\t\t\tbridge.dismissToast(id);\n\t\t},\n\n\t\tclear: (): void => {\n\t\t\tthis._ensureInitialized();\n\t\t\tbridge.clearToasts();\n\t\t}\n\t};\n\n\tasync init(config: ReturnflowsConfig = {}): Promise<void> {\n\t\tif (this._initPromise) {\n\t\t\tconsole.warn(\"[RF] Already initializing. Returning existing promise.\");\n\t\t\treturn this._initPromise;\n\t\t}\n\n\t\tif (bridge.isInitialized()) {\n\t\t\tconsole.warn(\n\t\t\t\t\"[RF] Already initialized. Call destroy() first to reinitialize.\"\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tthis._initPromise = new Promise<void>((resolve, reject) => {\n\t\t\t(async () => {\n\t\t\t\ttry {\n\t\t\t\t\tconst { onReady, onError, cartProvider, ...rest } = config;\n\n\t\t\t\t\tif (cartProvider) {\n\t\t\t\t\t\tbridge.setCartProvider(cartProvider);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst { default: initialize } = await import(\n\t\t\t\t\t\t\"../widget/lib/utils/initialization\"\n\t\t\t\t\t);\n\t\t\t\t\tconst { default: WidgetContainer } = await import(\n\t\t\t\t\t\t\"../widget/components/widget-container\"\n\t\t\t\t\t);\n\t\t\t\t\tconst { h } = await import(\"preact\");\n\n\t\t\t\t\tconst result = await initialize(\n\t\t\t\t\t\twidgetConfig => h(WidgetContainer, widgetConfig),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tnetworkInterceptionMethod: \"none\",\n\t\t\t\t\t\t\t...rest\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\n\t\t\t\t\tif (!result.success) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Widget initialization failed: ${result.message} (${result.reason})`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\tawait this._waitForBridge();\n\t\t\t\t\tconfig.onReady?.();\n\t\t\t\t\tresolve();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst error = err instanceof Error ? err : new Error(String(err));\n\t\t\t\t\tconfig.onError?.(error);\n\t\t\t\t\tbridge.setCartProvider(null);\n\t\t\t\t\tthis._initPromise = null;\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t})();\n\t\t});\n\n\t\treturn this._initPromise;\n\t}\n\n\tdestroy(): void {\n\t\tbridge.setCartProvider(null);\n\t\tbridge.unregisterBridge();\n\n\t\tconst container = document.getElementById(\"rf-overlay-widget\");\n\t\tif (container) {\n\t\t\tcontainer.remove();\n\t\t}\n\n\t\tthis._initPromise = null;\n\t}\n\n\tisInitialized(): boolean {\n\t\treturn bridge.isInitialized();\n\t}\n\n\ton<K extends EventName>(event: K, callback: EventCallback<K>): () => void {\n\t\tbridge.addEventListener(event, callback);\n\t\treturn () => bridge.removeEventListener(event, callback);\n\t}\n\n\toff<K extends EventName>(event: K, callback: EventCallback<K>): void {\n\t\tbridge.removeEventListener(event, callback);\n\t}\n\n\tprivate _ensureInitialized(): void {\n\t\tif (!bridge.isInitialized()) {\n\t\t\tthrow new Error(\"[RF] Widget not initialized. Call init() first.\");\n\t\t}\n\t}\n\n\tprivate async _waitForBridge(timeout = 10000): Promise<void> {\n\t\tconst start = Date.now();\n\t\twhile (!bridge.isInitialized()) {\n\t\t\tif (Date.now() - start > timeout) {\n\t\t\t\tthrow new Error(\"[RF] Initialization timeout\");\n\t\t\t}\n\t\t\tawait new Promise(r => setTimeout(r, 50));\n\t\t}\n\t}\n}\n\nexport const Returnflows = new ReturnflowsWidget();\n\nif (typeof window !== \"undefined\") {\n\t(window as Window & { Returnflows?: ReturnflowsWidget }).Returnflows =\n\t\tReturnflows;\n}\n\nexport default Returnflows;\n","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,z(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_=t&&t.__k||v,m=l.length;for(f=P(u,l,_,f,m),a=0;a<m;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:_[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&q(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),4&y.__u||h.__k===y.__k?f=A(y,f,n):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),B(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=S(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f&&null==n.key||f&&o==f.key&&e==f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e==f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e==f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)g(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=V(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)q(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(N):d({},n)}function V(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function q(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function B(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||q(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,u){return this.constructor(n,u)}function E(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function G(n,l){E(n,l,G)}function J(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,t as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","export function resolveEnvVar<T = undefined>(\n\tvarKey: string,\n\tfallback?: T\n): string | T {\n\tlet value;\n\ttry {\n\t\tvalue = process.env?.[varKey];\n\t} catch (err) {\n\t\tvalue = import.meta.env?.[varKey];\n\t\tvoid err;\n\t}\n\tvalue ??= fallback;\n\treturn value;\n}\n\n// General\nexport const IMAGE_FALLBACK_URL =\n\t\"https://cdn.shopify.com/s/files/1/0849/6526/1638/files/RF-SO-Placeholder2.png?v=1735826638\";\n\n// URLs\nexport const API_URL = resolveEnvVar(\"VITE_API_URL\", \"http://localhost:8080\");\nexport const PLATFORM_URL = resolveEnvVar(\n\t\"VITE_PLATFORM_URL\",\n\t\"http://localhost:3000\"\n);\nexport const WIDGET_BASE_URL = resolveEnvVar(\n\t\"VITE_WIDGET_BASE_URL\",\n\t\"http://localhost:3334\"\n);\n\n/* Consistent Search Params */\nexport const SEARCH_PARAM_ID_NAME = \"rflowsId\";\n\n/* Legacy Search Params */\nexport const LEGACY_PARAMS = [\"lineItems\", \"slug\", \"locale\", \"currency\"];\n\n/* Element Indendifiers */\nexport const ROOT_ELEMENT_ID = \"root\";\nexport const SHADOW_ROOT_ELEMENT_ID = \"shadow-root\";\nexport const CONTAINER_ELEMENT_ID = \"rf-overlay-widget\";\nexport const CUSTOM_CSS_DATA_ATTR = \"rf-custom-css\";\n\nexport const SCRIPT_ID = \"rf-embedded-script\";\nexport const SETTINGS_SCRIPT_ID = \"rf-settings-json\";\n","import { WidgetViewState } from \"../types\";\nimport { WidgetConfiguration } from \"./initialization/types\";\n\n// Define a union of allowed event names\nexport const enum InternalCustomEvent {\n\tFetchInterception = \"RF_FETCH_INTERCEPTION\",\n\tXHRInterception = \"RF_XHR_INTERCEPTION\",\n\tDrawerStateChange = \"RF_DRAWER_STATE_CHANGE\",\n\tWidgetInitialization = \"RF_WIDGET_INITIALIZATION\"\n}\n\nexport const enum ExternalCustomEvent {\n\tDrawerOpen = \"RF_DRAWER_OPEN\",\n\tDrawerClose = \"RF_DRAWER_CLOSE\",\n\tDrawerToggle = \"RF_DRAWER_TOGGLE\",\n\tCalculationRefetch = \"RF_CALCULATION_REFETCH\",\n\tCartRefetch = \"RF_CART_REFETCH\",\n\tCartAndCalculationRefetch = \"RF_CART_AND_CALCULATION_REFETCH\",\n\tDrawerOpenAndRefetch = \"RF_DRAWER_OPEN_AND_REFETCH\"\n}\n\nexport type XHRResponse = string | Record<string, unknown> | undefined;\nexport type FetchResponse = Response | undefined;\n\nexport type InterceptionResponse = XHRResponse | FetchResponse;\n\nexport interface InterceptionPayload {\n\tresponse: InterceptionResponse;\n\trequestUrl: string | URL;\n}\n\n// Define the expected data types for each event\nexport type CustomEventPayloadMap = {\n\t[InternalCustomEvent.FetchInterception]: InterceptionPayload;\n\t[InternalCustomEvent.XHRInterception]: InterceptionPayload;\n\t[InternalCustomEvent.DrawerStateChange]: { state: WidgetViewState };\n\t[InternalCustomEvent.WidgetInitialization]: WidgetConfiguration;\n\t[ExternalCustomEvent.DrawerOpen]: undefined;\n\t[ExternalCustomEvent.DrawerClose]: undefined;\n\t[ExternalCustomEvent.DrawerToggle]: undefined;\n\t[ExternalCustomEvent.CalculationRefetch]: undefined;\n\t[ExternalCustomEvent.CartRefetch]: undefined;\n\t[ExternalCustomEvent.CartAndCalculationRefetch]: undefined;\n\t[ExternalCustomEvent.DrawerOpenAndRefetch]: undefined;\n};\n\n// Subscribe function with typed event name and payload\nfunction subscribe<K extends keyof CustomEventPayloadMap>(\n\teventName: K,\n\tcallback: (event: CustomEvent<CustomEventPayloadMap[K]>) => void\n): () => void {\n\tconst handler = (event: CustomEvent<CustomEventPayloadMap[K]>) =>\n\t\tcallback(event);\n\tdocument.addEventListener(eventName, handler as EventListener);\n\treturn () => {\n\t\tdocument.removeEventListener(eventName, handler as EventListener);\n\t};\n}\n\n// Publish function with typed event name and payload\nfunction publish<K extends InternalCustomEvent>(\n\teventName: K,\n\t...args: K extends keyof CustomEventPayloadMap\n\t\t? [detail: CustomEventPayloadMap[K]]\n\t\t: [detail?: undefined]\n): void {\n\tconst event = new CustomEvent(eventName, {\n\t\tdetail: args[0]\n\t});\n\tdocument.dispatchEvent(event);\n}\n\n// Unsubscribe function\nfunction unsubscribe<K extends keyof CustomEventPayloadMap>(\n\teventName: K,\n\tcallback: (event: CustomEvent<CustomEventPayloadMap[K]>) => void\n): void {\n\tdocument.removeEventListener(eventName, callback as EventListener);\n}\n\n// Exported object\nconst customEvents = {\n\tsubscribe,\n\tpublish,\n\tunsubscribe\n};\n\nexport default customEvents;\n","import { Messages } from \"use-intl\";\nimport { WIDGET_BASE_URL } from \"../constants\";\nimport { logger } from \"./logger\";\n\nexport type Locale = string;\n\nexport const DEFAULT_LOCALE: Locale = \"en\";\nexport const DEFAULT_CURRENCY: string = \"DKK\";\n\nexport async function loadMessages(\n\t...locales: Locale[]\n): Promise<{ messages: Messages; locale: Locale }> {\n\t// If no locales provided, use default\n\tconst localesList = locales.length > 0 ? locales : [DEFAULT_LOCALE];\n\n\tfor (const locale of localesList) {\n\t\ttry {\n\t\t\tconst response = await fetch(\n\t\t\t\t`${WIDGET_BASE_URL}/messages/${locale}.json`\n\t\t\t);\n\t\t\tif (response.ok) {\n\t\t\t\tconst messages = await response.json();\n\t\t\t\treturn { messages, locale };\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogger.error(`Error loading messages for locale ${locale}:`, error);\n\t\t}\n\t}\n\n\t// If all locales fail, throw an error\n\tthrow new Error(\n\t\t`No messages found for any of the locales: ${localesList.join(\", \")}`\n\t);\n}\n","import { CalculationParams } from \"../../components/providers/return-context-provider\";\nimport { API_URL, LEGACY_PARAMS, SEARCH_PARAM_ID_NAME } from \"../constants\";\nimport { CalculationResponse, ShopifyCart, ShopOverlayData } from \"../types\";\nimport { clearCart, setCartItems, updateCartStorage } from \"./cart\";\nimport { WidgetConfiguration } from \"./initialization/types\";\nimport { logger } from \"./logger\";\nimport storage, {\n\tSTORAGE_OVERLAY_DIALOG_EXPIRATION,\n\tSTORAGE_OVERLAY_DIALOG_EXPIRY_KEY,\n\tSTORAGE_SESSION_KEY,\n\tStorageKey\n} from \"./storage\";\n\ninterface APIResponse<T> {\n\tsuccess?: boolean;\n\tresponseObject: T;\n\tmessage?: string;\n\terror?: string;\n\tstatusCode?: number;\n}\n\ntype HttpMethod = \"GET\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"OPTIONS\";\n\ninterface FetchStoreOptions extends StorageKey {\n\tstoreResult?: boolean; // If false, do not store the result\n\tshouldUseCachedResult?: boolean;\n\tlogging?: boolean;\n\texpiration?: number; // in ms\n}\n\ninterface FetchAPIOptions extends Omit<RequestInit, \"body\" | \"method\"> {\n\tmethod?: HttpMethod;\n\tbody?: unknown;\n\tparams?: Record<string, string | number | boolean> | URLSearchParams;\n\tclientStorage?: FetchStoreOptions;\n}\n\nexport async function apiQuery<T>(\n\tpath: string,\n\t{ clientStorage: storageOptions, ...init }: FetchAPIOptions = {}\n): Promise<T> {\n\t// Storage handling\n\tconst isStorageEnabled = !!storageOptions;\n\n\tif (isStorageEnabled && storageOptions.shouldUseCachedResult !== false) {\n\t\tconst { key, type, logging } = storageOptions;\n\t\tconst cachedData = storage.get<T>({\n\t\t\tkey,\n\t\t\ttype\n\t\t});\n\t\tif (cachedData) {\n\t\t\tif (logging !== false) {\n\t\t\t\tlogger.info(`Using cached data for ${key} from ${type}`);\n\t\t\t}\n\t\t\treturn cachedData;\n\t\t}\n\t}\n\n\tconst fetchUrl = new URL(`${API_URL}${path}`);\n\n\t// Append query parameters if provided\n\tif (init?.params) {\n\t\tif (init.params instanceof URLSearchParams) {\n\t\t\tfetchUrl.search = init.params.toString();\n\t\t} else {\n\t\t\tObject.entries(init.params).forEach(([key, value]) => {\n\t\t\t\tfetchUrl.searchParams.set(key, String(value));\n\t\t\t});\n\t\t}\n\t}\n\n\t// Fetch request\n\tconst response = await fetch(fetchUrl.toString(), {\n\t\t...init,\n\t\tbody: init?.body ? JSON.stringify(init.body) : undefined,\n\t\theaders: {\n\t\t\t\"Content-Type\": \"application/json\",\n\t\t\t...init?.headers\n\t\t}\n\t});\n\n\t// JSON parsing\n\tconst data = await parseJsonRes<APIResponse<T>>(response);\n\n\t// Error handling\n\tif (!data || data.error || data.success === false) {\n\t\tconst message =\n\t\t\tdata?.error || data?.message || \"Error fetching calculation data\";\n\t\tthrow new Error(message);\n\t}\n\n\tif (isStorageEnabled && storageOptions.storeResult !== false) {\n\t\tconst { key, type, expiration } = storageOptions;\n\t\t// Store the response in the specified storage\n\t\tstorage.set(\n\t\t\t{\n\t\t\t\tkey,\n\t\t\t\ttype,\n\t\t\t\texpiration\n\t\t\t},\n\t\t\tdata.responseObject\n\t\t);\n\t}\n\n\treturn data.responseObject;\n}\n\nasync function parseJsonRes<T>(response: Response): Promise<T> {\n\ttry {\n\t\treturn (await response.json()) as T;\n\t} catch (error) {\n\t\tlogger.error(\"Error parsing JSON response:\", error);\n\t\tthrow new Error(\"Failed to parse JSON response\");\n\t}\n}\n\n// REST API Queries\nexport async function getCalculation(\n\t{ orderId, cart, lineItems }: CalculationParams,\n\tlabelCount: number\n): Promise<CalculationResponse> {\n\tconst formattedLineItems = (lineItems || []).map(item => {\n\t\tlet action = item.action?.toUpperCase() ?? \"EXCHANGE\";\n\t\tif (action === \"SWAP\") action = \"EXCHANGE\";\n\t\treturn {\n\t\t\tid: item.id,\n\t\t\treturnOrderLineId: item.id,\n\t\t\tlineItemId: item.lineItemId,\n\t\t\tquantity: 1,\n\t\t\taction\n\t\t};\n\t});\n\n\tconst formattedExchangeTo = (cart.items || []).map(item => ({\n\t\tvariantId: `gid://shopify/ProductVariant/${item.variant_id}`,\n\t\tquantity: item.quantity\n\t}));\n\n\treturn apiQuery<CalculationResponse>(`/calculation/${orderId}`, {\n\t\tmethod: \"POST\",\n\t\tbody: {\n\t\t\tlineItems: formattedLineItems,\n\t\t\texchangeTo: formattedExchangeTo,\n\t\t\tnumOfLabels: labelCount\n\t\t}\n\t});\n}\n\nexport async function getShopOverlayData(\n\tisFirstLoad: boolean,\n\tinternalReturnId: string,\n\tlineIds: string\n): Promise<ShopOverlayData> {\n\tconst cacheKey = `${internalReturnId}_${lineIds}`;\n\n\tconst response = await apiQuery<ShopOverlayData>(\"/shop-overlay\", {\n\t\tparams: {\n\t\t\tinternalId: internalReturnId,\n\t\t\torderLines: lineIds\n\t\t},\n\t\tclientStorage: {\n\t\t\tshouldUseCachedResult: !isFirstLoad,\n\t\t\tkey: cacheKey,\n\t\t\ttype: \"sessionStorage\"\n\t\t}\n\t});\n\n\treturn response;\n}\n\nexport type ProcessOrderInitializationReturn = {\n\torderData: ShopOverlayData;\n\tupdatedCart: ShopifyCart | null;\n};\n\nexport async function processOrderInitialization({\n\tisFirstLoad,\n\toptions: { clearCartOnStart },\n\tid: internalId,\n\tdata: cache\n}: WidgetConfiguration): Promise<ProcessOrderInitializationReturn> {\n\tlet updatedCart: ShopifyCart | null = null;\n\n\tif (isFirstLoad) {\n\t\tconst cachedReturnItems = cache.returnItems ?? [];\n\n\t\tif (cachedReturnItems.length > 0) {\n\t\t\tconst mappedItems = cachedReturnItems.map(item => ({\n\t\t\t\tid: item.variantId,\n\t\t\t\tquantity: item.quantity\n\t\t\t}));\n\t\t\tlogger.info(\n\t\t\t\t\"Setting cart items from cached return items on initialization.\",\n\t\t\t\tmappedItems\n\t\t\t);\n\t\t\t// If there are cached return items, set them in the cart\n\t\t\tupdatedCart = await setCartItems(mappedItems);\n\t\t} else if (clearCartOnStart) {\n\t\t\tlogger.info(\"Clearing cart on initialization as per configuration.\");\n\t\t\t// Clear the cart if it's the first load and clearCartOnStart is true\n\t\t\tupdatedCart = await clearCart();\n\t\t}\n\n\t\tupdateCartStorage(updatedCart);\n\n\t\t// Set the dialog expiration in session storage\n\t\tconst dialogExpiration =\n\t\t\tnew Date().getTime() + STORAGE_OVERLAY_DIALOG_EXPIRATION;\n\n\t\tstorage.set(STORAGE_OVERLAY_DIALOG_EXPIRY_KEY, dialogExpiration);\n\n\t\t// Remove the search param from the URL\n\t\tconst url = new URL(window.location.href);\n\n\t\turl.searchParams.delete(SEARCH_PARAM_ID_NAME);\n\n\t\tLEGACY_PARAMS.forEach(param => {\n\t\t\turl.searchParams.delete(param);\n\t\t});\n\n\t\twindow.history.replaceState(null, \"\", url);\n\t}\n\n\tstorage.set(STORAGE_SESSION_KEY, internalId);\n\n\tconst lineIds = cache.returnData?.items?.map(item => item.id).join(\",\") ?? \"\";\n\n\tconst orderData = await getShopOverlayData(isFirstLoad, internalId, lineIds);\n\n\treturn {\n\t\torderData,\n\t\tupdatedCart\n\t};\n}\n","import { ReturnAction } from \"../types\";\nimport { apiQuery } from \"./api\";\nimport { Locale } from \"./i18n\";\nimport { logger } from \"./logger\";\n\ntype FieldValues = {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t[key: string]: any;\n};\n\nexport interface ReturnDataState {\n\titems: Array<{\n\t\tid: string;\n\t\tlineItemId: string;\n\t\thasAvailableVariantsForSale?: boolean;\n\t\treasonId?: string;\n\t\taction?: ReturnAction;\n\t}>;\n\tnumOfLabels?: number;\n\tshippingProductId?: string;\n}\n\nexport interface CacheLineItem {\n\tid: string;\n\tvariantId: string;\n\tquantity: number;\n\taction?: ReturnAction;\n}\n\nexport interface CacheReturnItem {\n\tvariantId: number;\n\thandle: string;\n\tprice: number;\n\ttitle: string;\n\tvariantTitle: string;\n\timage: string;\n\tquantity: number;\n}\n\nexport interface SessionCachePayload {\n\tlastPath?: string;\n\tslug?: string;\n\tlocale?: Locale;\n\tcurrency?: string;\n\treturnData?: ReturnDataState;\n\tformData?: FieldValues;\n\treturnItems?: Array<CacheReturnItem>;\n}\n\nexport interface SessionCacheMetadata {\n\tcreatedAt: string; // ISO date string\n\tupdatedAt: string; // ISO date string\n\tttl: number; // Time to live in seconds\n}\n\nexport interface SessionCache {\n\tid: string;\n\tdata: SessionCachePayload;\n\tmetadata: SessionCacheMetadata;\n}\n\nexport async function updateSessionCache(\n\tinternalId: string,\n\tdata: SessionCachePayload\n) {\n\ttry {\n\t\tlogger.info(\"Setting session cache for internalId:\", internalId, data);\n\t\tconst response = await apiQuery<SessionCache>(\n\t\t\t`/shop-overlay/session/${internalId}`,\n\t\t\t{\n\t\t\t\tmethod: \"PATCH\",\n\t\t\t\tbody: { data }\n\t\t\t}\n\t\t);\n\n\t\tlogger.info(\"Session cache set successfully:\", response);\n\n\t\treturn response;\n\t} catch (error) {\n\t\tlogger.error(\"Error setting session cache:\", error);\n\t\tthrow error;\n\t}\n}\n\nexport async function getSessionCache(\n\tinternalId?: string\n): Promise<SessionCache | null> {\n\tif (!internalId) {\n\t\treturn null;\n\t}\n\ttry {\n\t\tconst response = await apiQuery<SessionCache | null>(\n\t\t\t`/shop-overlay/session/${internalId}`\n\t\t);\n\t\treturn response;\n\t} catch (error) {\n\t\tlogger.error(\"Error getting session cache:\", error);\n\t\treturn null;\n\t}\n}\n\nexport async function clearSessionCache(internalId: string) {\n\ttry {\n\t\tconst response = await apiQuery<null>(\n\t\t\t`/shop-overlay/session/${internalId}`,\n\t\t\t{\n\t\t\t\tmethod: \"DELETE\"\n\t\t\t}\n\t\t);\n\t\treturn response;\n\t} catch (error) {\n\t\tlogger.error(\"Error clearing session cache:\", error);\n\t\tthrow error;\n\t}\n}\n","import { SEARCH_PARAM_ID_NAME, SETTINGS_SCRIPT_ID } from \"../../constants\";\nimport {\n\tgetResolvedSearchParams,\n\tisNil,\n\tisNumber,\n\tsetNestedValue\n} from \"../helpers\";\nimport { DEFAULT_CURRENCY, DEFAULT_LOCALE, loadMessages } from \"../i18n\";\nimport { logger } from \"../logger\";\nimport { getSessionCache } from \"../session\";\nimport storage, {\n\tSTORAGE_DEBUG_MODE_KEY,\n\tSTORAGE_SESSION_KEY\n} from \"../storage\";\nimport {\n\tInitOptions,\n\tInitResult,\n\tWidgetConfiguration,\n\tWidgetSettings\n} from \"./types\";\n\nexport function isDOMStringMap(\n\tvalue: DOMStringMap | InitOptions\n): value is DOMStringMap {\n\treturn (\n\t\tvalue instanceof DOMStringMap ||\n\t\tObject.prototype.toString.call(value) === \"[object DOMStringMap]\"\n\t);\n}\n\n// Get and parse dataset options from the script element\nexport function parseScriptDataset(dataset: DOMStringMap): InitOptions {\n\tconst datasetRecord: Record<PropertyKey, unknown> = {};\n\n\tObject.entries(dataset).forEach(([key, value]) => {\n\t\tif (isNil(value)) return value;\n\n\t\tlet resolvedValue: unknown = value;\n\n\t\tif (value === \"true\") {\n\t\t\tresolvedValue = true;\n\t\t} else if (value === \"false\") {\n\t\t\tresolvedValue = false;\n\t\t} else if (isNumber(value)) {\n\t\t\tresolvedValue = Number(value);\n\t\t} else if (value === \"null\") {\n\t\t\tresolvedValue = null;\n\t\t} else if (value === \"undefined\") {\n\t\t\tresolvedValue = undefined;\n\t\t} else {\n\t\t\ttry {\n\t\t\t\tresolvedValue = JSON.parse(value);\n\t\t\t} catch {\n\t\t\t\t// Keep as string if JSON parsing fails\n\t\t\t}\n\t\t}\n\n\t\tdatasetRecord[key] = resolvedValue;\n\t});\n\n\treturn datasetRecord;\n}\n\n// Get settings from script with application json\nexport function getSettingsFromScript(): WidgetSettings | null {\n\tconst scriptElement = document.getElementById(\n\t\tSETTINGS_SCRIPT_ID\n\t) as HTMLScriptElement | null;\n\n\tif (!scriptElement) {\n\t\treturn null;\n\t}\n\n\ttry {\n\t\tconst settings: WidgetSettings = JSON.parse(scriptElement.innerHTML);\n\t\treturn settings;\n\t} catch (error) {\n\t\tlogger.error(\"Failed to parse widget settings JSON\", error);\n\t\treturn null;\n\t}\n}\n\nexport async function prepareInitializationOptions(\n\tdataset: DOMStringMap | InitOptions\n): Promise<InitResult> {\n\tconst options = isDOMStringMap(dataset)\n\t\t? parseScriptDataset(dataset)\n\t\t: dataset;\n\tconst settings = getSettingsFromScript();\n\n\tconst searchParams = getResolvedSearchParams();\n\n\tconst searchParamsId = searchParams.get(SEARCH_PARAM_ID_NAME);\n\tconst isFirstLoad = Boolean(searchParamsId);\n\n\tconst internalId = searchParamsId || storage.get(STORAGE_SESSION_KEY);\n\n\tif (!internalId) {\n\t\tconst message = \"Session ID is missing from URL and storage\";\n\t\tlogger.warn(message);\n\t\treturn { success: false, reason: \"MISSING_SESSION_ID\", message };\n\t}\n\n\tconst cache = await getSessionCache(internalId);\n\n\tif (!cache) {\n\t\tconst message = `No session cache found for id: ${internalId}`;\n\t\tlogger.warn(message);\n\t\treturn { success: false, reason: \"SESSION_NOT_FOUND\", message };\n\t}\n\n\tconst resolvedCurrency =\n\t\tcache.data.currency || options.defaultCurrency || DEFAULT_CURRENCY;\n\n\tconst isDevEnvironment =\n\t\toptions.env === \"development\" || options.env === \"test\";\n\tconst hasDebugParameter = searchParams.get(\"debug\") === \"true\";\n\n\tconst storedDebugModeValue = storage.get<boolean>(STORAGE_DEBUG_MODE_KEY);\n\n\tif (isDevEnvironment || hasDebugParameter) {\n\t\tstorage.set(STORAGE_DEBUG_MODE_KEY, true);\n\t}\n\n\tconst isDebugModeEnabled = Boolean(\n\t\tstoredDebugModeValue ?? (isDevEnvironment || hasDebugParameter)\n\t);\n\n\tconst localesList = [\n\t\tcache.data.locale,\n\t\toptions.defaultLocale,\n\t\tDEFAULT_LOCALE\n\t].filter(val => val !== undefined);\n\n\tconst { locale: resolvedLocale, messages } = await loadMessages(\n\t\t...localesList\n\t);\n\n\tconst customMessages = settings?.translations?.messages;\n\n\tif (customMessages) {\n\t\tlogger.info(\"Merging custom translations into messages...\");\n\t\tObject.entries(customMessages).forEach(([key, value]) => {\n\t\t\tsetNestedValue(messages, key, value);\n\t\t});\n\t}\n\n\tconst config: WidgetConfiguration = {\n\t\tlocale: resolvedLocale,\n\t\tcurrency: resolvedCurrency,\n\t\tdebugMode: isDebugModeEnabled,\n\t\tisFirstLoad,\n\t\tmessages,\n\t\toptions,\n\t\ttheme: settings?.theme ?? null,\n\t\t...cache\n\t};\n\n\treturn { success: true, config };\n}\n","import { logger } from \"../logger\";\n\ntype InjectFontReturn = Promise<\n\t[HTMLLinkElement, HTMLLinkElement, HTMLLinkElement]\n>;\n\n// Function responsible for injecting font styles into the document head\nexport function injectFont(): InjectFontReturn {\n\treturn new Promise((resolve, reject) => {\n\t\t// Preconnect to the font provider\n\t\tconst preconnect = createSafeLinkElement({\n\t\t\trel: \"preconnect\",\n\t\t\thref: \"https://fonts.googleapis.com\"\n\t\t});\n\n\t\t// Preconnect to the font provider (gstatic)\n\t\tconst preconnect2 = createSafeLinkElement({\n\t\t\trel: \"preconnect\",\n\t\t\thref: \"https://fonts.gstatic.com\",\n\t\t\tcrossOrigin: \"anonymous\"\n\t\t});\n\n\t\tconst fontLink = createSafeLinkElement({\n\t\t\trel: \"stylesheet\",\n\t\t\thref: \"https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap\"\n\t\t});\n\n\t\tfontLink.onload = () => {\n\t\t\tlogger.info(\"Font stylesheet loaded successfully\");\n\t\t\tresolve([preconnect, preconnect2, fontLink]);\n\t\t};\n\t\tfontLink.onerror = () => {\n\t\t\tlogger.error(\"Failed to load font stylesheet\");\n\t\t\treject(new Error(\"Failed to load font stylesheet\"));\n\t\t};\n\n\t\tdocument.head.appendChild(fontLink);\n\t});\n}\n\n// Creates a link element only if a same link does not already exist in the document head\nfunction createSafeLinkElement<T extends Partial<HTMLLinkElement>>(\n\tattributes: T\n): HTMLLinkElement {\n\tconst selector = Object.entries(attributes)\n\t\t.filter(\n\t\t\t([_, value]) => typeof value === \"string\" || typeof value === \"number\"\n\t\t)\n\t\t.map(([key, value]) => `[${key}=\"${value}\"]`)\n\t\t.join(\"\");\n\n\tconst existing = document.querySelector<HTMLLinkElement>(`link${selector}`);\n\n\tif (existing) {\n\t\tlogger.warn(\n\t\t\t`Link element with attributes ${JSON.stringify(attributes)} already exists.`\n\t\t);\n\t\treturn existing;\n\t}\n\n\tconst link = document.createElement(\"link\");\n\tObject.assign(link, attributes);\n\tdocument.head.appendChild(link);\n\n\treturn link;\n}\n","import {\n\tCUSTOM_CSS_DATA_ATTR,\n\tresolveEnvVar,\n\tWIDGET_BASE_URL\n} from \"../../constants\";\nimport { logger } from \"../logger\";\n\n// Lightweight CSS validation without heavy parsing library\nexport function validateCSS(css: string): boolean {\n\t// Basic CSS validation - check for balanced braces and common patterns\n\tconst openBraces = (css.match(/{/g) || []).length;\n\tconst closeBraces = (css.match(/}/g) || []).length;\n\n\tif (openBraces !== closeBraces) {\n\t\treturn false;\n\t}\n\n\t// Check for dangerous patterns (script injection, etc.)\n\tconst dangerousPatterns = [\n\t\t/javascript:/gi,\n\t\t/expression\\s*\\(/gi,\n\t\t/behavior\\s*:/gi,\n\t\t/binding\\s*:/gi,\n\t\t/@import.*url\\s*\\(\\s*[\"']?javascript:/gi\n\t];\n\n\treturn !dangerousPatterns.some(pattern => pattern.test(css));\n}\n\nexport function injectCustomCSS(\n\tcss: string | undefined,\n\tcontainer: HTMLElement = document.head\n) {\n\tif (!css) return;\n\n\tif (!validateCSS(css)) {\n\t\tthrow new Error(\n\t\t\t\"Invalid CSS detected. Please check your CSS syntax and remove any dangerous patterns.\"\n\t\t);\n\t}\n\n\t// Create a style element and inject the custom CSS directly\n\tconst styleElement = document.createElement(\"style\");\n\tstyleElement.setAttribute(`data-${CUSTOM_CSS_DATA_ATTR}`, \"true\");\n\tstyleElement.textContent = css;\n\n\tlogger.info(\"Injecting custom CSS...\");\n\t// Append the style element to parent document body\n\tcontainer.appendChild(styleElement);\n\n\treturn styleElement;\n}\n\n// Function responsible for injecting the styles into the shadow DOM\nexport function injectStyle(shadowRoot: HTMLElement): HTMLLinkElement {\n\tconst link = document.createElement(\"link\");\n\tlink.rel = \"stylesheet\";\n\n\tconst fileName = resolveEnvVar(\"WIDGET_NAME\") || \"widget\";\n\tlink.href = `${WIDGET_BASE_URL}/${fileName}.css`;\n\n\tlink.onload = () => {\n\t\tlogger.info(\"Stylesheet loaded successfully\");\n\t};\n\n\tshadowRoot.appendChild(link);\n\n\treturn link;\n}\n\n// Function responsible for injecting public CSS variables into the document head\nexport function injectPublicVariables(): HTMLLinkElement {\n\tconst link = document.createElement(\"link\");\n\tlink.rel = \"stylesheet\";\n\n\tlink.href = `${WIDGET_BASE_URL}/variables.css`;\n\n\tlink.onload = () => {\n\t\tlogger.info(\"Public CSS variables loaded successfully\");\n\t};\n\n\tlink.onerror = () => {\n\t\tlogger.warn(\"Failed to load public CSS variables\");\n\t};\n\n\tdocument.head.appendChild(link);\n\n\treturn link;\n}\n","import { ComponentChild, render } from \"preact\";\nimport { CONTAINER_ELEMENT_ID, SHADOW_ROOT_ELEMENT_ID } from \"../../constants\";\nimport customEvents, { InternalCustomEvent } from \"../custom-events\";\nimport { logger } from \"../logger\";\nimport { prepareInitializationOptions } from \"./dataset\";\nimport { injectFont } from \"./font\";\nimport { injectCustomCSS, injectPublicVariables, injectStyle } from \"./styles\";\nimport { InitOptions, InitResult, WidgetConfiguration } from \"./types\";\n\ntype ContainerElement = HTMLDivElement;\ntype ShadowRootElement = HTMLDivElement;\ntype ShadowRootResult =\n\t| { success: true; value: [ContainerElement, ShadowRootElement] }\n\t| { success: false; reason: \"CONTAINER_EXISTS\"; message: string };\n\nfunction createShadowRoot(): ShadowRootResult {\n\tconst existingContainer = document.getElementById(CONTAINER_ELEMENT_ID);\n\n\tif (existingContainer) {\n\t\treturn {\n\t\t\tsuccess: false,\n\t\t\treason: \"CONTAINER_EXISTS\",\n\t\t\tmessage: `Container with ID \"${CONTAINER_ELEMENT_ID}\" already exists`\n\t\t};\n\t}\n\n\tconst container = document.createElement(\"div\");\n\tcontainer.id = CONTAINER_ELEMENT_ID;\n\tcontainer.style.display = \"block\";\n\n\tconst shadow = container.attachShadow({ mode: \"closed\" });\n\tconst shadowRoot = document.createElement(\"div\");\n\n\tshadowRoot.className = \"rf-container\";\n\tshadowRoot.id = SHADOW_ROOT_ELEMENT_ID;\n\tshadowRoot.style.display = \"none\";\n\n\tshadow.appendChild(shadowRoot);\n\n\treturn { success: true, value: [container, shadowRoot] };\n}\n\ntype RenderNode = (config: WidgetConfiguration) => ComponentChild;\n\nfunction injectWidget(\n\trenderNode: RenderNode,\n\tshadowRoot: HTMLElement,\n\tconfig: WidgetConfiguration\n) {\n\tlogger.info(\"Injecting widget with options...\", config);\n\trender(renderNode(config), shadowRoot);\n}\n\nasync function initialize(\n\trenderNode: RenderNode,\n\toptions: DOMStringMap | InitOptions\n): Promise<InitResult> {\n\ttry {\n\t\tconst result = await prepareInitializationOptions(options);\n\n\t\tif (!result.success) {\n\t\t\treturn result;\n\t\t}\n\n\t\tconst containerResult = createShadowRoot();\n\t\tif (!containerResult.success) {\n\t\t\treturn containerResult;\n\t\t}\n\n\t\tconst [container, shadowRoot] = containerResult.value;\n\n\t\tconst { config } = result;\n\t\tconst {\n\t\t\toptions: { customCssOverlay, customCssPage }\n\t\t} = config;\n\n\t\tinjectStyle(shadowRoot);\n\t\tinjectPublicVariables();\n\t\tinjectFont();\n\t\tinjectCustomCSS(customCssPage);\n\t\tinjectCustomCSS(customCssOverlay, shadowRoot);\n\t\tinjectWidget(renderNode, shadowRoot, config);\n\n\t\tdocument.body.appendChild(container);\n\t\tcustomEvents.publish(InternalCustomEvent.WidgetInitialization, config);\n\n\t\treturn { success: true, config };\n\t} catch (err) {\n\t\tconst message = err instanceof Error ? err.message : String(err);\n\t\tlogger.error(\"Initialization failed\", err);\n\t\treturn { success: false, reason: \"UNKNOWN_ERROR\", message };\n\t}\n}\n\nexport type { InitResult };\nexport default initialize;\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","//\n// Main\n//\nexport function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer,\n });\n}\n//\n// Strategy\n//\nfunction isPrimitive(value) {\n return (value == null || typeof value === 'number' || typeof value === 'boolean'); // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n return computedValue;\n}\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n}\n//\n// Serializer\n//\nvar serializerDefault = function () {\n return JSON.stringify(arguments);\n};\n//\n// Cache\n//\nvar ObjectWithoutPrototypeCache = /** @class */ (function () {\n function ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n }\n ObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n };\n ObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n };\n return ObjectWithoutPrototypeCache;\n}());\nvar cacheDefault = {\n create: function create() {\n return new ObjectWithoutPrototypeCache();\n },\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic,\n};\n","export var ErrorKind;\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));\n","export var TYPE;\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\nexport var SKELETON_TYPE;\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value,\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style,\n };\n}\n","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;\n","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n case 'E':\n result.weekday = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n case 'a': // AM, PM\n result.hour12 = true;\n break;\n case 'b': // am, pm, noon, midnight\n case 'B': // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n case 'z': // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n case 'O': // 1, 4: milliseconds in day short, long\n case 'v': // 1, 4: generic non-location format\n case 'V': // 1, 2, 3, 4: time zone ID or city\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n case 'x': // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n return '';\n });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;\n","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n }\n // Parse the skeleton\n var stringTokens = skeleton\n .split(WHITE_SPACE_REGEX)\n .filter(function (x) { return x.length > 0; });\n var tokens = [];\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n var stem = stemAndOptions[0], options = stemAndOptions.slice(1);\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n tokens.push({ stem: stem, options: options });\n }\n return tokens;\n}\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\nfunction parseSignificantPrecision(str) {\n var result = {};\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n }\n else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n }\n // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n }\n // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n }\n // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits =\n g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n return '';\n });\n return result;\n}\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto',\n };\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting',\n };\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always',\n };\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting',\n };\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero',\n };\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting',\n };\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never',\n };\n }\n}\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering',\n };\n stem = stem.slice(2);\n }\n else if (stem[0] === 'E') {\n result = {\n notation: 'scientific',\n };\n stem = stem.slice(1);\n }\n if (result) {\n var signDisplay = stem.slice(0, 2);\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n }\n else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n result.minimumIntegerDigits = stem.length;\n }\n return result;\n}\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n if (signOpts) {\n return signOpts;\n }\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n case 'scientific':\n result = __assign(__assign(__assign({}, result), { notation: 'scientific' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'engineering':\n result = __assign(__assign(__assign({}, result), { notation: 'engineering' }), token.options.reduce(function (all, opt) { return (__assign(__assign({}, all), parseNotationOptions(opt))); }, {}));\n continue;\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n case 'rounding-mode-floor':\n result.roundingMode = 'floor';\n continue;\n case 'rounding-mode-ceiling':\n result.roundingMode = 'ceil';\n continue;\n case 'rounding-mode-down':\n result.roundingMode = 'trunc';\n continue;\n case 'rounding-mode-up':\n result.roundingMode = 'expand';\n continue;\n case 'rounding-mode-half-even':\n result.roundingMode = 'halfEven';\n continue;\n case 'rounding-mode-half-down':\n result.roundingMode = 'halfTrunc';\n continue;\n case 'rounding-mode-half-up':\n result.roundingMode = 'halfExpand';\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n }\n else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n }\n else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n return '';\n });\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n }\n // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n }\n // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n }\n else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n return '';\n });\n var opt = token.options[0];\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n if (opt === 'w') {\n result = __assign(__assign({}, result), { trailingZeroDisplay: 'stripIfInteger' });\n }\n else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n continue;\n }\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n var signOpts = parseSign(token.stem);\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n return result;\n}\n","// @generated from time-data-gen.ts\n// prettier-ignore \nexport var timeData = {\n \"001\": [\n \"H\",\n \"h\"\n ],\n \"419\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AD\": [\n \"H\",\n \"hB\"\n ],\n \"AE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"AF\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"AG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"AL\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"AM\": [\n \"H\",\n \"hB\"\n ],\n \"AO\": [\n \"H\",\n \"hB\"\n ],\n \"AR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"AS\": [\n \"h\",\n \"H\"\n ],\n \"AT\": [\n \"H\",\n \"hB\"\n ],\n \"AU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"AW\": [\n \"H\",\n \"hB\"\n ],\n \"AX\": [\n \"H\"\n ],\n \"AZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BD\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"BE\": [\n \"H\",\n \"hB\"\n ],\n \"BF\": [\n \"H\",\n \"hB\"\n ],\n \"BG\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"BH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"BI\": [\n \"H\",\n \"h\"\n ],\n \"BJ\": [\n \"H\",\n \"hB\"\n ],\n \"BL\": [\n \"H\",\n \"hB\"\n ],\n \"BM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BN\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"BO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"BQ\": [\n \"H\"\n ],\n \"BR\": [\n \"H\",\n \"hB\"\n ],\n \"BS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"BT\": [\n \"h\",\n \"H\"\n ],\n \"BW\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"BY\": [\n \"H\",\n \"h\"\n ],\n \"BZ\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CA\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"CC\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CD\": [\n \"hB\",\n \"H\"\n ],\n \"CF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CG\": [\n \"H\",\n \"hB\"\n ],\n \"CH\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"CI\": [\n \"H\",\n \"hB\"\n ],\n \"CK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CL\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"CN\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"CO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CP\": [\n \"H\"\n ],\n \"CR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CU\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"CV\": [\n \"H\",\n \"hB\"\n ],\n \"CW\": [\n \"H\",\n \"hB\"\n ],\n \"CX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"CY\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"CZ\": [\n \"H\"\n ],\n \"DE\": [\n \"H\",\n \"hB\"\n ],\n \"DG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"DJ\": [\n \"h\",\n \"H\"\n ],\n \"DK\": [\n \"H\"\n ],\n \"DM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"DO\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"DZ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"EC\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"EE\": [\n \"H\",\n \"hB\"\n ],\n \"EG\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"EH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ER\": [\n \"h\",\n \"H\"\n ],\n \"ES\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"ET\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"FI\": [\n \"H\"\n ],\n \"FJ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"FM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"FO\": [\n \"H\",\n \"h\"\n ],\n \"FR\": [\n \"H\",\n \"hB\"\n ],\n \"GA\": [\n \"H\",\n \"hB\"\n ],\n \"GB\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GD\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GE\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"GF\": [\n \"H\",\n \"hB\"\n ],\n \"GG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GH\": [\n \"h\",\n \"H\"\n ],\n \"GI\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"GL\": [\n \"H\",\n \"h\"\n ],\n \"GM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GN\": [\n \"H\",\n \"hB\"\n ],\n \"GP\": [\n \"H\",\n \"hB\"\n ],\n \"GQ\": [\n \"H\",\n \"hB\",\n \"h\",\n \"hb\"\n ],\n \"GR\": [\n \"h\",\n \"H\",\n \"hb\",\n \"hB\"\n ],\n \"GT\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"GU\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"GW\": [\n \"H\",\n \"hB\"\n ],\n \"GY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"HK\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"HN\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"HR\": [\n \"H\",\n \"hB\"\n ],\n \"HU\": [\n \"H\",\n \"h\"\n ],\n \"IC\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ID\": [\n \"H\"\n ],\n \"IE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IL\": [\n \"H\",\n \"hB\"\n ],\n \"IM\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IN\": [\n \"h\",\n \"H\"\n ],\n \"IO\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"IQ\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"IR\": [\n \"hB\",\n \"H\"\n ],\n \"IS\": [\n \"H\"\n ],\n \"IT\": [\n \"H\",\n \"hB\"\n ],\n \"JE\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"JM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"JO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"JP\": [\n \"H\",\n \"K\",\n \"h\"\n ],\n \"KE\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"KG\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KH\": [\n \"hB\",\n \"h\",\n \"H\",\n \"hb\"\n ],\n \"KI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KM\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"KN\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KP\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"KW\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"KY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"KZ\": [\n \"H\",\n \"hB\"\n ],\n \"LA\": [\n \"H\",\n \"hb\",\n \"hB\",\n \"h\"\n ],\n \"LB\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"LC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LI\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"LK\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"LR\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"LS\": [\n \"h\",\n \"H\"\n ],\n \"LT\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"LU\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"LV\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"LY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"MC\": [\n \"H\",\n \"hB\"\n ],\n \"MD\": [\n \"H\",\n \"hB\"\n ],\n \"ME\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"MF\": [\n \"H\",\n \"hB\"\n ],\n \"MG\": [\n \"H\",\n \"h\"\n ],\n \"MH\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MK\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ML\": [\n \"H\"\n ],\n \"MM\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"MN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MO\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MP\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MQ\": [\n \"H\",\n \"hB\"\n ],\n \"MR\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"MS\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"MT\": [\n \"H\",\n \"h\"\n ],\n \"MU\": [\n \"H\",\n \"h\"\n ],\n \"MV\": [\n \"H\",\n \"h\"\n ],\n \"MW\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"MX\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"MY\": [\n \"hb\",\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"MZ\": [\n \"H\",\n \"hB\"\n ],\n \"NA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NC\": [\n \"H\",\n \"hB\"\n ],\n \"NE\": [\n \"H\"\n ],\n \"NF\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NG\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NI\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"NL\": [\n \"H\",\n \"hB\"\n ],\n \"NO\": [\n \"H\",\n \"h\"\n ],\n \"NP\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"NR\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NU\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"NZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"OM\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PA\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"PG\": [\n \"h\",\n \"H\"\n ],\n \"PH\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PK\": [\n \"h\",\n \"hB\",\n \"H\"\n ],\n \"PL\": [\n \"H\",\n \"h\"\n ],\n \"PM\": [\n \"H\",\n \"hB\"\n ],\n \"PN\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"PR\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"PS\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"PT\": [\n \"H\",\n \"hB\"\n ],\n \"PW\": [\n \"h\",\n \"H\"\n ],\n \"PY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"QA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"RE\": [\n \"H\",\n \"hB\"\n ],\n \"RO\": [\n \"H\",\n \"hB\"\n ],\n \"RS\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"RU\": [\n \"H\"\n ],\n \"RW\": [\n \"H\",\n \"h\"\n ],\n \"SA\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SB\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SC\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SD\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SE\": [\n \"H\"\n ],\n \"SG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SH\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SI\": [\n \"H\",\n \"hB\"\n ],\n \"SJ\": [\n \"H\"\n ],\n \"SK\": [\n \"H\"\n ],\n \"SL\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"SM\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SN\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"SO\": [\n \"h\",\n \"H\"\n ],\n \"SR\": [\n \"H\",\n \"hB\"\n ],\n \"SS\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ST\": [\n \"H\",\n \"hB\"\n ],\n \"SV\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"SX\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"SY\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"SZ\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"TC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TD\": [\n \"h\",\n \"H\",\n \"hB\"\n ],\n \"TF\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"TG\": [\n \"H\",\n \"hB\"\n ],\n \"TH\": [\n \"H\",\n \"h\"\n ],\n \"TJ\": [\n \"H\",\n \"h\"\n ],\n \"TL\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ],\n \"TM\": [\n \"H\",\n \"h\"\n ],\n \"TN\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"TO\": [\n \"h\",\n \"H\"\n ],\n \"TR\": [\n \"H\",\n \"hB\"\n ],\n \"TT\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"TW\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"TZ\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UA\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"UG\": [\n \"hB\",\n \"hb\",\n \"H\",\n \"h\"\n ],\n \"UM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"US\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"UY\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"UZ\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"VA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"VC\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VE\": [\n \"h\",\n \"H\",\n \"hB\",\n \"hb\"\n ],\n \"VG\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VI\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"VN\": [\n \"H\",\n \"h\"\n ],\n \"VU\": [\n \"h\",\n \"H\"\n ],\n \"WF\": [\n \"H\",\n \"hB\"\n ],\n \"WS\": [\n \"h\",\n \"H\"\n ],\n \"XK\": [\n \"H\",\n \"hB\",\n \"h\"\n ],\n \"YE\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"YT\": [\n \"H\",\n \"hB\"\n ],\n \"ZA\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"ZM\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"ZW\": [\n \"H\",\n \"h\"\n ],\n \"af-ZA\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"ar-001\": [\n \"h\",\n \"hB\",\n \"hb\",\n \"H\"\n ],\n \"ca-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"en-001\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-HK\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"en-IL\": [\n \"H\",\n \"h\",\n \"hb\",\n \"hB\"\n ],\n \"en-MY\": [\n \"h\",\n \"hb\",\n \"H\",\n \"hB\"\n ],\n \"es-BR\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-ES\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"es-GQ\": [\n \"H\",\n \"h\",\n \"hB\",\n \"hb\"\n ],\n \"fr-CA\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gl-ES\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"gu-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"hi-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"it-CH\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"it-IT\": [\n \"H\",\n \"h\",\n \"hB\"\n ],\n \"kn-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"ml-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"mr-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"pa-IN\": [\n \"hB\",\n \"hb\",\n \"h\",\n \"H\"\n ],\n \"ta-IN\": [\n \"hB\",\n \"h\",\n \"hb\",\n \"H\"\n ],\n \"te-IN\": [\n \"hB\",\n \"h\",\n \"H\"\n ],\n \"zu-ZA\": [\n \"H\",\n \"hB\",\n \"hb\",\n \"h\"\n ]\n};\n","import { timeData } from './time-data.generated';\n/**\n * Returns the best matching date time pattern if a date time skeleton\n * pattern is provided with a locale. Follows the Unicode specification:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#table-mapping-requested-time-skeletons-to-patterns\n * @param skeleton date time skeleton pattern that possibly includes j, J or C\n * @param locale\n */\nexport function getBestPattern(skeleton, locale) {\n var skeletonCopy = '';\n for (var patternPos = 0; patternPos < skeleton.length; patternPos++) {\n var patternChar = skeleton.charAt(patternPos);\n if (patternChar === 'j') {\n var extraLength = 0;\n while (patternPos + 1 < skeleton.length &&\n skeleton.charAt(patternPos + 1) === patternChar) {\n extraLength++;\n patternPos++;\n }\n var hourLen = 1 + (extraLength & 1);\n var dayPeriodLen = extraLength < 2 ? 1 : 3 + (extraLength >> 1);\n var dayPeriodChar = 'a';\n var hourChar = getDefaultHourSymbolFromLocale(locale);\n if (hourChar == 'H' || hourChar == 'k') {\n dayPeriodLen = 0;\n }\n while (dayPeriodLen-- > 0) {\n skeletonCopy += dayPeriodChar;\n }\n while (hourLen-- > 0) {\n skeletonCopy = hourChar + skeletonCopy;\n }\n }\n else if (patternChar === 'J') {\n skeletonCopy += 'H';\n }\n else {\n skeletonCopy += patternChar;\n }\n }\n return skeletonCopy;\n}\n/**\n * Maps the [hour cycle type](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Locale/hourCycle)\n * of the given `locale` to the corresponding time pattern.\n * @param locale\n */\nfunction getDefaultHourSymbolFromLocale(locale) {\n var hourCycle = locale.hourCycle;\n if (hourCycle === undefined &&\n // @ts-ignore hourCycle(s) is not identified yet\n locale.hourCycles &&\n // @ts-ignore\n locale.hourCycles.length) {\n // @ts-ignore\n hourCycle = locale.hourCycles[0];\n }\n if (hourCycle) {\n switch (hourCycle) {\n case 'h24':\n return 'k';\n case 'h23':\n return 'H';\n case 'h12':\n return 'h';\n case 'h11':\n return 'K';\n default:\n throw new Error('Invalid hourCycle');\n }\n }\n // TODO: Once hourCycle is fully supported remove the following with data generation\n var languageTag = locale.language;\n var regionTag;\n if (languageTag !== 'root') {\n regionTag = locale.maximize().region;\n }\n var hourCycles = timeData[regionTag || ''] ||\n timeData[languageTag || ''] ||\n timeData[\"\".concat(languageTag, \"-001\")] ||\n timeData['001'];\n return hourCycles[0];\n}\n","var _a;\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE, } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton, } from '@formatjs/icu-skeleton-parser';\nimport { getBestPattern } from './date-time-pattern-generator';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\".concat(SPACE_SEPARATOR_REGEX.source, \"*\"));\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(\"\".concat(SPACE_SEPARATOR_REGEX.source, \"*$\"));\nfunction createLocation(start, end) {\n return { start: start, end: end };\n}\n// #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\nvar hasNativeStartsWith = !!String.prototype.startsWith && '_a'.startsWith('a', 1);\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger\n ? Number.isSafeInteger\n : function (n) {\n return (typeof n === 'number' &&\n isFinite(n) &&\n Math.floor(n) === n &&\n Math.abs(n) <= 0x1fffffffffffff);\n };\n// IE11 does not support y and u.\nvar REGEX_SUPPORTS_U_AND_Y = true;\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n}\ncatch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\nvar startsWith = hasNativeStartsWith\n ? // Native\n function startsWith(s, search, position) {\n return s.startsWith(search, position);\n }\n : // For IE11\n function startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n };\nvar fromCodePoint = hasNativeFromCodePoint\n ? String.fromCodePoint\n : // IE11\n function fromCodePoint() {\n var codePoints = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff)\n throw RangeError(code + ' is not a valid code point');\n elements +=\n code < 0x10000\n ? String.fromCharCode(code)\n : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, (code % 0x400) + 0xdc00);\n }\n return elements;\n };\nvar fromEntries = \n// native\nhasNativeFromEntries\n ? Object.fromEntries\n : // Ponyfill\n function fromEntries(entries) {\n var obj = {};\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i], k = _a[0], v = _a[1];\n obj[k] = v;\n }\n return obj;\n };\nvar codePointAt = hasNativeCodePointAt\n ? // Native\n function codePointAt(s, index) {\n return s.codePointAt(index);\n }\n : // IE 11\n function codePointAt(s, index) {\n var size = s.length;\n if (index < 0 || index >= size) {\n return undefined;\n }\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 ||\n first > 0xdbff ||\n index + 1 === size ||\n (second = s.charCodeAt(index + 1)) < 0xdc00 ||\n second > 0xdfff\n ? first\n : ((first - 0xd800) << 10) + (second - 0xdc00) + 0x10000;\n };\nvar trimStart = hasTrimStart\n ? // Native\n function trimStart(s) {\n return s.trimStart();\n }\n : // Ponyfill\n function trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n };\nvar trimEnd = hasTrimEnd\n ? // Native\n function trimEnd(s) {\n return s.trimEnd();\n }\n : // Ponyfill\n function trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n };\n// Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n}\n// #endregion\nvar matchIdentifierAtIndex;\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n}\nelse {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n while (true) {\n var c = codePointAt(s, index);\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n return fromCodePoint.apply(void 0, match);\n };\n}\nvar Parser = /** @class */ (function () {\n function Parser(message, options) {\n if (options === void 0) { options = {}; }\n this.message = message;\n this.position = { offset: 0, line: 1, column: 1 };\n this.ignoreTag = !!options.ignoreTag;\n this.locale = options.locale;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n return this.parseMessage(0, '', false);\n };\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n while (!this.isEOF()) {\n var char = this.char();\n if (char === 123 /* `{` */) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else if (char === 125 /* `}` */ && nestingLevel > 0) {\n break;\n }\n else if (char === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition()),\n });\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n }\n else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n }\n else if (char === 60 /* `<` */ &&\n !this.ignoreTag &&\n _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n if (result.err) {\n return result;\n }\n elements.push(result.val);\n }\n }\n return { val: elements, err: null };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n var tagName = this.parseTagName();\n this.bumpSpace();\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\".concat(tagName, \"/>\"),\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n if (childrenResult.err) {\n return childrenResult;\n }\n var children = childrenResult.val;\n // Expecting a close tag\n var endTagStartPosition = this.clonePosition();\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition()),\n },\n err: null,\n };\n }\n else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n }\n else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n return this.message.slice(startOffset, this.offset());\n };\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n break;\n }\n var location = createLocation(start, this.clonePosition());\n return {\n val: { type: TYPE.literal, value: value, location: location },\n err: null,\n };\n };\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() &&\n this.char() === 60 /* `<` */ &&\n (this.ignoreTag ||\n // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n return '<';\n }\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39 /* `'` */) {\n return null;\n }\n // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n switch (this.peek()) {\n case 39 /* `'` */:\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n case 35: // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n return null;\n default:\n return null;\n }\n this.bump(); // apostrophe\n var codePoints = [this.char()]; // escaped char\n this.bump();\n // read chars until the optional closing apostrophe is found\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch === 39 /* `'` */) {\n if (this.peek() === 39 /* `'` */) {\n codePoints.push(39);\n // Bump one more time because we need to skip 2 characters.\n this.bump();\n }\n else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n }\n else {\n codePoints.push(ch);\n }\n this.bump();\n }\n return fromCodePoint.apply(void 0, codePoints);\n };\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n var ch = this.char();\n if (ch === 60 /* `<` */ ||\n ch === 123 /* `{` */ ||\n (ch === 35 /* `#` */ &&\n (parentArgType === 'plural' || parentArgType === 'selectordinal')) ||\n (ch === 125 /* `}` */ && nestingLevel > 0)) {\n return null;\n }\n else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n if (this.char() === 125 /* `}` */) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n // argument name\n var value = this.parseIdentifierIfPossible().value;\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125 /* `}` */: {\n this.bump(); // `}`\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n err: null,\n };\n }\n // Argument with options: `{name, format, ...}`\n case 44 /* `,` */: {\n this.bump(); // `,`\n this.bumpSpace();\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return { value: value, location: location };\n };\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a;\n // Parse this range:\n // {name, type, style}\n // ^---^\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n case 'number':\n case 'date':\n case 'time': {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n if (result.err) {\n return result;\n }\n var style = trimEnd(result.val);\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = { style: style, styleLocation: styleLocation };\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_1 = createLocation(openingBracePosition, this.clonePosition());\n // Extract style or skeleton\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n if (result.err) {\n return result;\n }\n return {\n val: { type: TYPE.number, value: value, location: location_1, style: result.val },\n err: null,\n };\n }\n else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n var dateTimePattern = skeleton;\n // Get \"best match\" pattern only if locale is passed, if not, let it\n // pass as-is where `parseDateTimeSkeleton()` will throw an error\n // for unsupported patterns.\n if (this.locale) {\n dateTimePattern = getBestPattern(skeleton, this.locale);\n }\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: dateTimePattern,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons\n ? parseDateTimeSkeleton(dateTimePattern)\n : {},\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: { type: type, value: value, location: location_1, style: style },\n err: null,\n };\n }\n }\n // Regular style or no style.\n return {\n val: {\n type: argType === 'number'\n ? TYPE.number\n : argType === 'date'\n ? TYPE.date\n : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null,\n },\n err: null,\n };\n }\n case 'plural':\n case 'selectordinal':\n case 'select': {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n this.bumpSpace();\n // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n if (result.err) {\n return result;\n }\n // Parse another identifier for option parsing\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n if (optionsResult.err) {\n return optionsResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2,\n },\n err: null,\n };\n }\n else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2,\n },\n err: null,\n };\n }\n }\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125 /* `}` */) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n this.bump(); // `}`\n return { val: true, err: null };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n while (!this.isEOF()) {\n var ch = this.char();\n switch (ch) {\n case 39 /* `'` */: {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n this.bump();\n break;\n }\n case 123 /* `{` */: {\n nestedBraces += 1;\n this.bump();\n break;\n }\n case 125 /* `}` */: {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n }\n else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n }\n break;\n }\n default:\n this.bump();\n break;\n }\n }\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null,\n };\n };\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n }\n catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons\n ? parseNumberSkeleton(tokens)\n : {},\n },\n err: null,\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value, selectorLocation = parsedFirstIdentifier.location;\n // Parse:\n // one {one apple}\n // ^--^\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n if (result.err) {\n return result;\n }\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n }\n else {\n break;\n }\n }\n // Duplicate selector clauses\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n if (selector === 'other') {\n hasOtherClause = true;\n }\n // Parse:\n // one {one apple}\n // ^----------^\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n if (fragmentResult.err) {\n return fragmentResult;\n }\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n if (argCloseResult.err) {\n return argCloseResult;\n }\n options.push([\n selector,\n {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition()),\n },\n ]);\n // Keep track of the existing selectors\n parsedSelectors.add(selector);\n // Prep next selector clause.\n this.bumpSpace();\n (_a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location);\n }\n if (options.length === 0) {\n return this.error(parentArgType === 'select'\n ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR\n : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n return { val: options, err: null };\n };\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n if (this.bumpIf('+')) {\n }\n else if (this.bumpIf('-')) {\n sign = -1;\n }\n var hasDigits = false;\n var decimal = 0;\n while (!this.isEOF()) {\n var ch = this.char();\n if (ch >= 48 /* `0` */ && ch <= 57 /* `9` */) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n }\n else {\n break;\n }\n }\n var location = createLocation(startingPosition, this.clonePosition());\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n decimal *= sign;\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n return { val: decimal, err: null };\n };\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column,\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n var code = codePointAt(this.message, offset);\n if (code === undefined) {\n throw Error(\"Offset \".concat(offset, \" is at invalid UTF-16 code unit boundary\"));\n }\n return code;\n };\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location,\n },\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n var code = this.char();\n if (code === 10 /* '\\n' */) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n }\n else {\n this.position.column += 1;\n // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n return true;\n }\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n }\n else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" must be greater than or equal to the current offset \").concat(this.offset()));\n }\n targetOffset = Math.min(targetOffset, this.message.length);\n while (true) {\n var offset = this.offset();\n if (offset === targetOffset) {\n break;\n }\n if (offset > targetOffset) {\n throw Error(\"targetOffset \".concat(targetOffset, \" is at invalid UTF-16 code unit boundary\"));\n }\n this.bump();\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n return Parser;\n}());\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\nfunction _isAlpha(codepoint) {\n return ((codepoint >= 97 && codepoint <= 122) ||\n (codepoint >= 65 && codepoint <= 90));\n}\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47; /* '/' */\n}\n/** See `parseTag` function docs. */\nfunction _isPotentialElementNameChar(c) {\n return (c === 45 /* '-' */ ||\n c === 46 /* '.' */ ||\n (c >= 48 && c <= 57) /* 0..9 */ ||\n c === 95 /* '_' */ ||\n (c >= 97 && c <= 122) /** a..z */ ||\n (c >= 65 && c <= 90) /* A..Z */ ||\n c == 0xb7 ||\n (c >= 0xc0 && c <= 0xd6) ||\n (c >= 0xd8 && c <= 0xf6) ||\n (c >= 0xf8 && c <= 0x37d) ||\n (c >= 0x37f && c <= 0x1fff) ||\n (c >= 0x200c && c <= 0x200d) ||\n (c >= 0x203f && c <= 0x2040) ||\n (c >= 0x2070 && c <= 0x218f) ||\n (c >= 0x2c00 && c <= 0x2fef) ||\n (c >= 0x3001 && c <= 0xd7ff) ||\n (c >= 0xf900 && c <= 0xfdcf) ||\n (c >= 0xfdf0 && c <= 0xfffd) ||\n (c >= 0x10000 && c <= 0xeffff));\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isWhiteSpace(c) {\n return ((c >= 0x0009 && c <= 0x000d) ||\n c === 0x0020 ||\n c === 0x0085 ||\n (c >= 0x200e && c <= 0x200f) ||\n c === 0x2028 ||\n c === 0x2029);\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\nfunction _isPatternSyntax(c) {\n return ((c >= 0x0021 && c <= 0x0023) ||\n c === 0x0024 ||\n (c >= 0x0025 && c <= 0x0027) ||\n c === 0x0028 ||\n c === 0x0029 ||\n c === 0x002a ||\n c === 0x002b ||\n c === 0x002c ||\n c === 0x002d ||\n (c >= 0x002e && c <= 0x002f) ||\n (c >= 0x003a && c <= 0x003b) ||\n (c >= 0x003c && c <= 0x003e) ||\n (c >= 0x003f && c <= 0x0040) ||\n c === 0x005b ||\n c === 0x005c ||\n c === 0x005d ||\n c === 0x005e ||\n c === 0x0060 ||\n c === 0x007b ||\n c === 0x007c ||\n c === 0x007d ||\n c === 0x007e ||\n c === 0x00a1 ||\n (c >= 0x00a2 && c <= 0x00a5) ||\n c === 0x00a6 ||\n c === 0x00a7 ||\n c === 0x00a9 ||\n c === 0x00ab ||\n c === 0x00ac ||\n c === 0x00ae ||\n c === 0x00b0 ||\n c === 0x00b1 ||\n c === 0x00b6 ||\n c === 0x00bb ||\n c === 0x00bf ||\n c === 0x00d7 ||\n c === 0x00f7 ||\n (c >= 0x2010 && c <= 0x2015) ||\n (c >= 0x2016 && c <= 0x2017) ||\n c === 0x2018 ||\n c === 0x2019 ||\n c === 0x201a ||\n (c >= 0x201b && c <= 0x201c) ||\n c === 0x201d ||\n c === 0x201e ||\n c === 0x201f ||\n (c >= 0x2020 && c <= 0x2027) ||\n (c >= 0x2030 && c <= 0x2038) ||\n c === 0x2039 ||\n c === 0x203a ||\n (c >= 0x203b && c <= 0x203e) ||\n (c >= 0x2041 && c <= 0x2043) ||\n c === 0x2044 ||\n c === 0x2045 ||\n c === 0x2046 ||\n (c >= 0x2047 && c <= 0x2051) ||\n c === 0x2052 ||\n c === 0x2053 ||\n (c >= 0x2055 && c <= 0x205e) ||\n (c >= 0x2190 && c <= 0x2194) ||\n (c >= 0x2195 && c <= 0x2199) ||\n (c >= 0x219a && c <= 0x219b) ||\n (c >= 0x219c && c <= 0x219f) ||\n c === 0x21a0 ||\n (c >= 0x21a1 && c <= 0x21a2) ||\n c === 0x21a3 ||\n (c >= 0x21a4 && c <= 0x21a5) ||\n c === 0x21a6 ||\n (c >= 0x21a7 && c <= 0x21ad) ||\n c === 0x21ae ||\n (c >= 0x21af && c <= 0x21cd) ||\n (c >= 0x21ce && c <= 0x21cf) ||\n (c >= 0x21d0 && c <= 0x21d1) ||\n c === 0x21d2 ||\n c === 0x21d3 ||\n c === 0x21d4 ||\n (c >= 0x21d5 && c <= 0x21f3) ||\n (c >= 0x21f4 && c <= 0x22ff) ||\n (c >= 0x2300 && c <= 0x2307) ||\n c === 0x2308 ||\n c === 0x2309 ||\n c === 0x230a ||\n c === 0x230b ||\n (c >= 0x230c && c <= 0x231f) ||\n (c >= 0x2320 && c <= 0x2321) ||\n (c >= 0x2322 && c <= 0x2328) ||\n c === 0x2329 ||\n c === 0x232a ||\n (c >= 0x232b && c <= 0x237b) ||\n c === 0x237c ||\n (c >= 0x237d && c <= 0x239a) ||\n (c >= 0x239b && c <= 0x23b3) ||\n (c >= 0x23b4 && c <= 0x23db) ||\n (c >= 0x23dc && c <= 0x23e1) ||\n (c >= 0x23e2 && c <= 0x2426) ||\n (c >= 0x2427 && c <= 0x243f) ||\n (c >= 0x2440 && c <= 0x244a) ||\n (c >= 0x244b && c <= 0x245f) ||\n (c >= 0x2500 && c <= 0x25b6) ||\n c === 0x25b7 ||\n (c >= 0x25b8 && c <= 0x25c0) ||\n c === 0x25c1 ||\n (c >= 0x25c2 && c <= 0x25f7) ||\n (c >= 0x25f8 && c <= 0x25ff) ||\n (c >= 0x2600 && c <= 0x266e) ||\n c === 0x266f ||\n (c >= 0x2670 && c <= 0x2767) ||\n c === 0x2768 ||\n c === 0x2769 ||\n c === 0x276a ||\n c === 0x276b ||\n c === 0x276c ||\n c === 0x276d ||\n c === 0x276e ||\n c === 0x276f ||\n c === 0x2770 ||\n c === 0x2771 ||\n c === 0x2772 ||\n c === 0x2773 ||\n c === 0x2774 ||\n c === 0x2775 ||\n (c >= 0x2794 && c <= 0x27bf) ||\n (c >= 0x27c0 && c <= 0x27c4) ||\n c === 0x27c5 ||\n c === 0x27c6 ||\n (c >= 0x27c7 && c <= 0x27e5) ||\n c === 0x27e6 ||\n c === 0x27e7 ||\n c === 0x27e8 ||\n c === 0x27e9 ||\n c === 0x27ea ||\n c === 0x27eb ||\n c === 0x27ec ||\n c === 0x27ed ||\n c === 0x27ee ||\n c === 0x27ef ||\n (c >= 0x27f0 && c <= 0x27ff) ||\n (c >= 0x2800 && c <= 0x28ff) ||\n (c >= 0x2900 && c <= 0x2982) ||\n c === 0x2983 ||\n c === 0x2984 ||\n c === 0x2985 ||\n c === 0x2986 ||\n c === 0x2987 ||\n c === 0x2988 ||\n c === 0x2989 ||\n c === 0x298a ||\n c === 0x298b ||\n c === 0x298c ||\n c === 0x298d ||\n c === 0x298e ||\n c === 0x298f ||\n c === 0x2990 ||\n c === 0x2991 ||\n c === 0x2992 ||\n c === 0x2993 ||\n c === 0x2994 ||\n c === 0x2995 ||\n c === 0x2996 ||\n c === 0x2997 ||\n c === 0x2998 ||\n (c >= 0x2999 && c <= 0x29d7) ||\n c === 0x29d8 ||\n c === 0x29d9 ||\n c === 0x29da ||\n c === 0x29db ||\n (c >= 0x29dc && c <= 0x29fb) ||\n c === 0x29fc ||\n c === 0x29fd ||\n (c >= 0x29fe && c <= 0x2aff) ||\n (c >= 0x2b00 && c <= 0x2b2f) ||\n (c >= 0x2b30 && c <= 0x2b44) ||\n (c >= 0x2b45 && c <= 0x2b46) ||\n (c >= 0x2b47 && c <= 0x2b4c) ||\n (c >= 0x2b4d && c <= 0x2b73) ||\n (c >= 0x2b74 && c <= 0x2b75) ||\n (c >= 0x2b76 && c <= 0x2b95) ||\n c === 0x2b96 ||\n (c >= 0x2b97 && c <= 0x2bff) ||\n (c >= 0x2e00 && c <= 0x2e01) ||\n c === 0x2e02 ||\n c === 0x2e03 ||\n c === 0x2e04 ||\n c === 0x2e05 ||\n (c >= 0x2e06 && c <= 0x2e08) ||\n c === 0x2e09 ||\n c === 0x2e0a ||\n c === 0x2e0b ||\n c === 0x2e0c ||\n c === 0x2e0d ||\n (c >= 0x2e0e && c <= 0x2e16) ||\n c === 0x2e17 ||\n (c >= 0x2e18 && c <= 0x2e19) ||\n c === 0x2e1a ||\n c === 0x2e1b ||\n c === 0x2e1c ||\n c === 0x2e1d ||\n (c >= 0x2e1e && c <= 0x2e1f) ||\n c === 0x2e20 ||\n c === 0x2e21 ||\n c === 0x2e22 ||\n c === 0x2e23 ||\n c === 0x2e24 ||\n c === 0x2e25 ||\n c === 0x2e26 ||\n c === 0x2e27 ||\n c === 0x2e28 ||\n c === 0x2e29 ||\n (c >= 0x2e2a && c <= 0x2e2e) ||\n c === 0x2e2f ||\n (c >= 0x2e30 && c <= 0x2e39) ||\n (c >= 0x2e3a && c <= 0x2e3b) ||\n (c >= 0x2e3c && c <= 0x2e3f) ||\n c === 0x2e40 ||\n c === 0x2e41 ||\n c === 0x2e42 ||\n (c >= 0x2e43 && c <= 0x2e4f) ||\n (c >= 0x2e50 && c <= 0x2e51) ||\n c === 0x2e52 ||\n (c >= 0x2e53 && c <= 0x2e7f) ||\n (c >= 0x3001 && c <= 0x3003) ||\n c === 0x3008 ||\n c === 0x3009 ||\n c === 0x300a ||\n c === 0x300b ||\n c === 0x300c ||\n c === 0x300d ||\n c === 0x300e ||\n c === 0x300f ||\n c === 0x3010 ||\n c === 0x3011 ||\n (c >= 0x3012 && c <= 0x3013) ||\n c === 0x3014 ||\n c === 0x3015 ||\n c === 0x3016 ||\n c === 0x3017 ||\n c === 0x3018 ||\n c === 0x3019 ||\n c === 0x301a ||\n c === 0x301b ||\n c === 0x301c ||\n c === 0x301d ||\n (c >= 0x301e && c <= 0x301f) ||\n c === 0x3020 ||\n c === 0x3030 ||\n c === 0xfd3e ||\n c === 0xfd3f ||\n (c >= 0xfe45 && c <= 0xfe46));\n}\n","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement, } from './types';\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n }\n else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n }\n else if ((isDateElement(el) || isTimeElement(el)) &&\n isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n }\n else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\nexport function parse(message, opts) {\n if (opts === void 0) { opts = {}; }\n opts = __assign({ shouldParseSkeletons: true, requiresOtherClause: true }, opts);\n var result = new Parser(message, opts).parse();\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]);\n // @ts-expect-error Assign to error object\n error.location = result.err.location;\n // @ts-expect-error Assign to error object\n error.originalMessage = result.err.message;\n throw error;\n }\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n return result.val;\n}\nexport * from './types';\n// only for testing\nexport var _Parser = Parser;\nexport { isStructurallySame } from './manipulator';\n","import { __extends } from \"tslib\";\nexport var ErrorCode;\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\";\n // When value supplied is invalid\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\";\n // When we need specific Intl API but it's not available\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\nvar FormatError = /** @class */ (function (_super) {\n __extends(FormatError, _super);\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \".concat(this.code, \"] \").concat(this.message);\n };\n return FormatError;\n}(Error));\nexport { FormatError };\nvar InvalidValueError = /** @class */ (function (_super) {\n __extends(InvalidValueError, _super);\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\".concat(variableId, \"\\\": \\\"\").concat(value, \"\\\". Options are \\\"\").concat(Object.keys(options).join('\", \"'), \"\\\"\"), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueError;\n}(FormatError));\nexport { InvalidValueError };\nvar InvalidValueTypeError = /** @class */ (function (_super) {\n __extends(InvalidValueTypeError, _super);\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\".concat(value, \"\\\" must be of type \").concat(type), ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n return InvalidValueTypeError;\n}(FormatError));\nexport { InvalidValueTypeError };\nvar MissingValueError = /** @class */ (function (_super) {\n __extends(MissingValueError, _super);\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\".concat(variableId, \"\\\" was not provided to the string \\\"\").concat(originalMessage, \"\\\"\"), ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n return MissingValueError;\n}(FormatError));\nexport { MissingValueError };\n","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTagElement, isTimeElement, } from '@formatjs/icu-messageformat-parser';\nimport { ErrorCode, FormatError, InvalidValueError, InvalidValueTypeError, MissingValueError, } from './error';\nexport var PART_TYPE;\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n if (!lastPart ||\n lastPart.type !== PART_TYPE.literal ||\n part.type !== PART_TYPE.literal) {\n all.push(part);\n }\n else {\n lastPart.value += part.value;\n }\n return all;\n }, []);\n}\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n}\n// TODO(skeleton): add skeleton support\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, \n// For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [\n {\n type: PART_TYPE.literal,\n value: els[0].value,\n },\n ];\n }\n var result = [];\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i];\n // Exit early for string parts.\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value,\n });\n continue;\n }\n // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue),\n });\n }\n continue;\n }\n var varName = el.value;\n // Enforce that all required values are provided by the caller.\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n var value = values[varName];\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value =\n typeof value === 'string' || typeof value === 'number'\n ? String(value)\n : '';\n }\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value,\n });\n continue;\n }\n // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n if (isDateElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.date[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.time[el.style]\n : isDateTimeSkeleton(el.style)\n ? el.style.parsedOptions\n : formats.time.medium;\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getDateTimeFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string'\n ? formats.number[el.style]\n : isNumberSkeleton(el.style)\n ? el.style.parsedOptions\n : undefined;\n if (style && style.scale) {\n value =\n value *\n (style.scale || 1);\n }\n result.push({\n type: PART_TYPE.literal,\n value: formatters\n .getNumberFormat(locales, style)\n .format(value),\n });\n continue;\n }\n if (isTagElement(el)) {\n var children = el.children, value_1 = el.value;\n var formatFn = values[value_1];\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) { return p.value; }));\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c,\n };\n }));\n }\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n if (isPluralElement(el)) {\n var opt = el.options[\"=\".concat(value)];\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n var rule = formatters\n .getPluralRules(locales, { type: el.pluralType })\n .select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n return mergeLiteral(result);\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __rest, __spreadArray } from \"tslib\";\nimport { memoize, strategies } from '@formatjs/fast-memoize';\nimport { parse, } from '@formatjs/icu-messageformat-parser';\nimport { formatToParts, PART_TYPE, } from './formatters';\n// -- MessageFormat --------------------------------------------------------\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n return __assign(__assign(__assign({}, (c1 || {})), (c2 || {})), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), (c2[k] || {}));\n return all;\n }, {}));\n}\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\nfunction createFastMemoizeCache(store) {\n return {\n create: function () {\n return {\n get: function (key) {\n return store[key];\n },\n set: function (key, value) {\n store[key] = value;\n },\n };\n },\n };\n}\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) { cache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n }; }\n return {\n getNumberFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic,\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic,\n }),\n getPluralRules: memoize(function () {\n var _a;\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic,\n }),\n };\n}\nvar IntlMessageFormat = /** @class */ (function () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n if (locales === void 0) { locales = IntlMessageFormat.defaultLocale; }\n var _this = this;\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {},\n };\n this.format = function (values) {\n var parts = _this.formatToParts(values);\n // Hot path for straight simple msg translations\n if (parts.length === 1) {\n return parts[0].value;\n }\n var result = parts.reduce(function (all, part) {\n if (!all.length ||\n part.type !== PART_TYPE.literal ||\n typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n }\n else {\n all[all.length - 1] += part.value;\n }\n return all;\n }, []);\n if (result.length <= 1) {\n return result[0] || '';\n }\n return result;\n };\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n this.resolvedOptions = function () {\n var _a;\n return ({\n locale: ((_a = _this.resolvedLocale) === null || _a === void 0 ? void 0 : _a.toString()) ||\n Intl.NumberFormat.supportedLocalesOf(_this.locales)[0],\n });\n };\n this.getAst = function () { return _this.ast; };\n // Defined first because it's used to build the format pattern.\n this.locales = locales;\n this.resolvedLocale = IntlMessageFormat.resolveLocale(locales);\n if (typeof message === 'string') {\n this.message = message;\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n }\n var _a = opts || {}, formatters = _a.formatters, parseOpts = __rest(_a, [\"formatters\"]);\n // Parse string messages into an AST.\n this.ast = IntlMessageFormat.__parse(message, __assign(__assign({}, parseOpts), { locale: this.resolvedLocale }));\n }\n else {\n this.ast = message;\n }\n if (!Array.isArray(this.ast)) {\n throw new TypeError('A message must be provided as a String or AST.');\n }\n // Creates a new object with the specified `formats` merged with the default\n // formats.\n this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats);\n this.formatters =\n (opts && opts.formatters) || createDefaultFormatters(this.formatterCache);\n }\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function () {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale =\n new Intl.NumberFormat().resolvedOptions().locale;\n }\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.resolveLocale = function (locales) {\n if (typeof Intl.Locale === 'undefined') {\n return;\n }\n var supportedLocales = Intl.NumberFormat.supportedLocalesOf(locales);\n if (supportedLocales.length > 0) {\n return new Intl.Locale(supportedLocales[0]);\n }\n return new Intl.Locale(typeof locales === 'string' ? locales : locales[0]);\n };\n IntlMessageFormat.__parse = parse;\n // Default format options used as the prototype of the `formats` provided to the\n // constructor. These are used when constructing the internal Intl.NumberFormat\n // and Intl.DateTimeFormat instances.\n IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0,\n },\n currency: {\n style: 'currency',\n },\n percent: {\n style: 'percent',\n },\n },\n date: {\n short: {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit',\n },\n medium: {\n month: 'short',\n day: 'numeric',\n year: 'numeric',\n },\n long: {\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n full: {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n },\n },\n time: {\n short: {\n hour: 'numeric',\n minute: 'numeric',\n },\n medium: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n },\n long: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n full: {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short',\n },\n },\n };\n return IntlMessageFormat;\n}());\nexport { IntlMessageFormat };\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useState as a,useLayoutEffect as s,useEffect as h,useCallback as v,useContext as d,useDebugValue as m,useId as p,useImperativeHandle as y,useMemo as _,useReducer as b,useRef as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){var e=t(),r=a({t:{__:e,u:t}}),u=r[0].t,o=r[1];return s(function(){u.__=e,u.u=t,x(u)&&o({t:u})},[n,e,t]),h(function(){return x(u)&&o({t:u}),n(function(){x(u)&&o({t:u})})},[n]),e}function x(n){var t,e,r=n.u,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}function R(n){n()}function w(n){return n}function k(){return[!1,R]}var I=s;function N(n,t){this.props=n,this.context=t}function M(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(N.prototype=new n).isPureReactComponent=!0,N.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var T=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),T&&T(n)};var A=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function D(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=A,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var L=function(n,t){return null==n?null:r(r(n).map(t))},O={map:L,forEach:L,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},F=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);F(n,t,e,r)};var U=e.unmount;function V(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c.__e=!0,n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return V(n,t,e)})),n}function W(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return W(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function P(){this.__u=0,this.o=null,this.__b=null}function j(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function z(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function B(){this.i=null,this.l=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),U&&U(n)},(P.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.o&&(r.o=[]),r.o.push(e);var u=j(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=W(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.o.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},P.prototype.componentWillUnmount=function(){this.o=[]},P.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=V(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var H=function(n,t,e){if(++e[1]===e[0]&&n.l.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.l.size))for(e=n.i;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.i=e=e[2]}};function Z(n){return this.getChildContext=function(){return n.context},n.children}function Y(n){var e=this,r=n.h;if(e.componentWillUnmount=function(){o(null,e.v),e.v=null,e.h=null},e.h&&e.h!==r&&e.componentWillUnmount(),!e.v){for(var u=e.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;e.h=r,e.v={nodeType:1,parentNode:r,childNodes:[],__k:{__m:u.__m},contains:function(){return!0},insertBefore:function(n,t){this.childNodes.push(n),e.h.insertBefore(n,t)},removeChild:function(n){this.childNodes.splice(this.childNodes.indexOf(n)>>>1,1),e.h.removeChild(n)}}}o(t(Z,{context:e.context},n.__v),e.v)}function $(n,e){var r=t(Y,{__v:n,h:e});return r.containerInfo=e,r}(B.prototype=new n).__a=function(n){var t=this,e=j(t.__v),r=t.l.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),H(t,n,r)):u()};e?e(o):o()}},B.prototype.render=function(n){this.i=null,this.l=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.l.set(t[e],this.i=[1,0,this.i]);return n.children},B.prototype.componentDidUpdate=B.prototype.componentDidMount=function(){var n=this;this.l.forEach(function(t,e){H(n,e,t)})};var q=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,G=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,J=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,K=/[A-Z0-9]/g,Q=\"undefined\"!=typeof document,X=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function nn(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function tn(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var en=e.event;function rn(){}function un(){return this.cancelBubble}function on(){return this.defaultPrevented}e.event=function(n){return en&&(n=en(n)),n.persist=rn,n.isPropagationStopped=un,n.isDefaultPrevented=on,n.nativeEvent=n};var ln,cn={enumerable:!1,configurable:!0,get:function(){return this.class}},fn=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={},o=-1===e.indexOf(\"-\");for(var i in t){var l=t[i];if(!(\"value\"===i&&\"defaultValue\"in t&&null==l||Q&&\"children\"===i&&\"noscript\"===e||\"class\"===i||\"className\"===i)){var c=i.toLowerCase();\"defaultValue\"===i&&\"value\"in t&&null==t.value?i=\"value\":\"download\"===i&&!0===l?l=\"\":\"translate\"===c&&\"no\"===l?l=!1:\"o\"===c[0]&&\"n\"===c[1]?\"ondoubleclick\"===c?i=\"ondblclick\":\"onchange\"!==c||\"input\"!==e&&\"textarea\"!==e||X(t.type)?\"onfocus\"===c?i=\"onfocusin\":\"onblur\"===c?i=\"onfocusout\":J.test(i)&&(i=c):c=i=\"oninput\":o&&G.test(i)?i=i.replace(K,\"-$&\").toLowerCase():null===l&&(l=void 0),\"oninput\"===c&&u[i=c]&&(i=\"oninputCapture\"),u[i]=l}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",cn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=q,fn&&fn(n)};var an=e.__r;e.__r=function(n){an&&an(n),ln=n.__c};var sn=e.diffed;e.diffed=function(n){sn&&sn(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),ln=null};var hn={ReactCurrentDispatcher:{current:{readContext:function(n){return ln.__n[n.__c].props.value},useCallback:v,useContext:d,useDebugValue:m,useDeferredValue:w,useEffect:h,useId:p,useImperativeHandle:y,useInsertionEffect:I,useLayoutEffect:s,useMemo:_,useReducer:b,useRef:S,useState:a,useSyncExternalStore:C,useTransition:k}}},vn=\"18.3.1\";function dn(n){return t.bind(null,n)}function mn(n){return!!n&&n.$$typeof===q}function pn(n){return mn(n)&&n.type===u}function yn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function _n(n){return mn(n)?f.apply(null,arguments):n}function bn(n){return!!n.__k&&(o(null,n),!0)}function Sn(n){return n&&(n.base||1===n.nodeType&&n)||null}var gn=function(n,t){return n(t)},En=function(n,t){return n(t)},Cn=u,xn=mn,Rn={useState:a,useId:p,useReducer:b,useEffect:h,useLayoutEffect:s,useInsertionEffect:I,useTransition:k,useDeferredValue:w,useSyncExternalStore:C,startTransition:R,useRef:S,useImperativeHandle:y,useMemo:_,useCallback:v,useContext:d,useDebugValue:m,version:\"18.3.1\",Children:O,render:nn,hydrate:tn,unmountComponentAtNode:bn,createPortal:$,createElement:t,createContext:l,createFactory:dn,cloneElement:_n,createRef:c,Fragment:u,isValidElement:mn,isElement:xn,isFragment:pn,isMemo:yn,findDOMNode:Sn,Component:n,PureComponent:N,memo:M,forwardRef:D,flushSync:En,unstable_batchedUpdates:gn,StrictMode:Cn,Suspense:P,SuspenseList:B,lazy:z,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:hn};export{O as Children,N as PureComponent,Cn as StrictMode,P as Suspense,B as SuspenseList,hn as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,_n as cloneElement,dn as createFactory,$ as createPortal,Rn as default,Sn as findDOMNode,En as flushSync,D as forwardRef,tn as hydrate,xn as isElement,pn as isFragment,yn as isMemo,mn as isValidElement,z as lazy,M as memo,nn as render,R as startTransition,bn as unmountComponentAtNode,gn as unstable_batchedUpdates,w as useDeferredValue,I as useInsertionEffect,C as useSyncExternalStore,k as useTransition,vn as version};\n//# sourceMappingURL=compat.module.js.map\n","import{IntlMessageFormat as e}from\"intl-messageformat\";import{isValidElement as t,cloneElement as r}from\"react\";import{memoize as n,strategies as o}from\"@formatjs/fast-memoize\";class a extends Error{constructor(e,t){let r=e;t&&(r+=\": \"+t),super(r),this.code=e,t&&(this.originalMessage=t)}}var s=function(e){return e.MISSING_MESSAGE=\"MISSING_MESSAGE\",e.MISSING_FORMAT=\"MISSING_FORMAT\",e.ENVIRONMENT_FALLBACK=\"ENVIRONMENT_FALLBACK\",e.INSUFFICIENT_PATH=\"INSUFFICIENT_PATH\",e.INVALID_MESSAGE=\"INVALID_MESSAGE\",e.INVALID_KEY=\"INVALID_KEY\",e.FORMATTING_ERROR=\"FORMATTING_ERROR\",e}(s||{});function i(...e){return e.filter(Boolean).join(\".\")}function u(e){return i(e.namespace,e.key)}function c(e){console.error(e)}function m(){return{dateTime:{},number:{},message:{},relativeTime:{},pluralRules:{},list:{},displayNames:{}}}function f(e,t){return n(e,{cache:(r=t,{create:()=>({get:e=>r[e],set(e,t){r[e]=t}})}),strategy:o.variadic});var r}function l(e,t){return f(((...t)=>new e(...t)),t)}function g(e){return{getDateTimeFormat:l(Intl.DateTimeFormat,e.dateTime),getNumberFormat:l(Intl.NumberFormat,e.number),getPluralRules:l(Intl.PluralRules,e.pluralRules),getRelativeTimeFormat:l(Intl.RelativeTimeFormat,e.relativeTime),getListFormat:l(Intl.ListFormat,e.list),getDisplayNames:l(Intl.DisplayNames,e.displayNames)}}function I(e,t,r,n){const o=i(n,r);if(!t)throw new Error(o);let a=t;return r.split(\".\").forEach((t=>{const r=a[t];if(null==t||null==r)throw new Error(o+` (${e})`);a=r})),a}function E(n){const o=function(e,t,r,n=c){try{if(!t)throw new Error(void 0);const n=r?I(e,t,r):t;if(!n)throw new Error(r);return n}catch(e){const t=new a(s.MISSING_MESSAGE,e.message);return n(t),t}}(n.locale,n.messages,n.namespace,n.onError);return function({cache:n,formats:o,formatters:i,getMessageFallback:c=u,locale:m,messagesOrError:l,namespace:g,onError:E,timeZone:S}){const T=l instanceof a;function N(e,t,r){const n=new a(t,r);return E(n),c({error:n,key:e,namespace:g})}function y(a,u,E){if(T)return c({error:l,key:a,namespace:g});const y=l;let A,M;try{A=I(m,y,a,g)}catch(e){return N(a,s.MISSING_MESSAGE,e.message)}if(\"object\"==typeof A){let e,t;return e=Array.isArray(A)?s.INVALID_MESSAGE:s.INSUFFICIENT_PATH,N(a,e,t)}const F=function(e,t){return t?void 0:e}(A,u);if(F)return F;i.getMessageFormat||(i.getMessageFormat=function(t,r){return f(((...t)=>new e(t[0],t[1],t[2],{formatters:r,...t[3]})),t.message)}(n,i));try{M=i.getMessageFormat(A,m,function(t,r,n){const o=e.formats.date,a=e.formats.time,s={...t?.dateTime,...r?.dateTime},i={date:{...o,...s},time:{...a,...s},number:{...t?.number,...r?.number}};return n&&[\"date\",\"time\"].forEach((e=>{const t=i[e];for(const[e,r]of Object.entries(t))t[e]={timeZone:n,...r}})),i}(o,E,S),{formatters:{...i,getDateTimeFormat:(e,t)=>i.getDateTimeFormat(e,{timeZone:S,...t})}})}catch(e){const t=e;return N(a,s.INVALID_MESSAGE,t.message)}try{const e=M.format(u?function(e){const n={};return Object.keys(e).forEach((o=>{let a=0;const s=e[o];let i;i=\"function\"==typeof s?e=>{const n=s(e);return t(n)?r(n,{key:o+a++}):n}:s,n[o]=i})),n}(u):u);if(null==e)throw new Error(void 0);return t(e)||Array.isArray(e)||\"string\"==typeof e?e:String(e)}catch(e){return N(a,s.FORMATTING_ERROR,e.message)}}function A(e,t,r){const n=y(e,t,r);return\"string\"!=typeof n?N(e,s.INVALID_MESSAGE,void 0):n}return A.rich=y,A.markup=(e,t,r)=>y(e,t,r),A.raw=e=>{if(T)return c({error:l,key:e,namespace:g});const t=l;try{return I(m,t,e,g)}catch(t){return N(e,s.MISSING_MESSAGE,t.message)}},A.has=e=>{if(T)return!1;try{return I(m,l,e,g),!0}catch{return!1}},A}({...n,messagesOrError:o})}function S(e,t){return e===t?void 0:e.slice((t+\".\").length)}const T=3600,N=86400,y=7*N,A=2628e3,M=7884e3,F=365*N,R={second:1,seconds:1,minute:60,minutes:60,hour:T,hours:T,day:N,days:N,week:y,weeks:y,month:A,months:A,quarter:M,quarters:M,year:F,years:F};function d(e){const{_cache:t=m(),_formatters:r=g(t),formats:n,locale:o,onError:i=c,timeZone:u}=e;function f(e){return e?.timeZone||(u?e={...e,timeZone:u}:i(new a(s.ENVIRONMENT_FALLBACK,void 0))),e}function l(e,t,r,n,o){let u;try{u=function(e,t,r){let n;if(\"string\"==typeof t){const r=t;if(n=e?.[r],!n){const e=new a(s.MISSING_FORMAT,void 0);throw i(e),e}}else n=t;return r&&(n={...n,...r}),n}(r,e,t)}catch{return o()}try{return n(u)}catch(e){return i(new a(s.FORMATTING_ERROR,e.message)),o()}}function I(e,t,a){return l(t,a,n?.dateTime,(t=>(t=f(t),r.getDateTimeFormat(o,t).format(e))),(()=>String(e)))}function E(){return e.now?e.now:(i(new a(s.ENVIRONMENT_FALLBACK,void 0)),new Date)}return{dateTime:I,number:function(e,t,a){return l(t,a,n?.number,(t=>r.getNumberFormat(o,t).format(e)),(()=>String(e)))},relativeTime:function(e,t){try{let n,a;const s={};t instanceof Date||\"number\"==typeof t?n=new Date(t):t&&(n=null!=t.now?new Date(t.now):E(),a=t.unit,s.style=t.style,s.numberingSystem=t.numberingSystem),n||(n=E());const i=(new Date(e).getTime()-n.getTime())/1e3;a||(a=function(e){const t=Math.abs(e);return t<60?\"second\":t<T?\"minute\":t<N?\"hour\":t<y?\"day\":t<A?\"week\":t<F?\"month\":\"year\"}(i)),s.numeric=\"second\"===a?\"auto\":\"always\";const u=function(e,t){return Math.round(e/R[t])}(i,a);return r.getRelativeTimeFormat(o,s).format(u,a)}catch(t){return i(new a(s.FORMATTING_ERROR,t.message)),String(e)}},list:function(e,t,a){const s=[],i=new Map;let u=0;for(const t of e){let e;\"object\"==typeof t?(e=String(u),i.set(e,t)):e=String(t),s.push(e),u++}return l(t,a,n?.list,(e=>{const t=r.getListFormat(o,e).formatToParts(s).map((e=>\"literal\"===e.type?e.value:i.get(e.value)||e.value));return i.size>0?t:t.join(\"\")}),(()=>String(e)))},dateTimeRange:function(e,t,a,s){return l(a,s,n?.dateTime,(n=>(n=f(n),r.getDateTimeFormat(o,n).formatRange(e,t))),(()=>[I(e),I(t)].join(\" – \")))}}}function h({formats:e,getMessageFallback:t,messages:r,onError:n,...o}){return{...o,formats:e||void 0,messages:r||void 0,onError:n||c,getMessageFallback:t||u}}export{a as I,s as a,g as b,d as c,m as d,E as e,u as f,c as g,h as i,S as r};\n","import{createContext as e,useContext as r,useMemo as o,useState as t,useEffect as n}from\"react\";import{d as a,b as s,i as c,r as i,I as m,a as f,e as l,c as u}from\"./initializeConfig-zfMDfl5R.js\";import{jsx as g}from\"react/jsx-runtime\";const d=e(void 0);function w({children:e,formats:t,getMessageFallback:n,locale:i,messages:m,now:f,onError:l,timeZone:u}){const w=r(d),v=o((()=>w?.cache||a()),[i,w?.cache]),E=o((()=>w?.formatters||s(v)),[v,w?.formatters]),h=o((()=>({...c({locale:i,formats:void 0===t?w?.formats:t,getMessageFallback:n||w?.getMessageFallback,messages:void 0===m?w?.messages:m,now:f||w?.now,onError:l||w?.onError,timeZone:u||w?.timeZone}),formatters:E,cache:v})),[v,t,E,n,i,m,f,l,w,u]);return g(d.Provider,{value:h,children:e})}function v(){const e=r(d);if(!e)throw new Error(void 0);return e}let E=!1;const h=\"undefined\"==typeof window;function p(e){return function(e,r,t){const{cache:n,formats:a,formatters:s,getMessageFallback:c,locale:u,onError:g,timeZone:d}=v(),w=e[t],p=i(r,t);return d||E||!h||(E=!0,g(new m(f.ENVIRONMENT_FALLBACK,void 0))),o((()=>l({cache:n,formatters:s,getMessageFallback:c,messages:w,namespace:p,onError:g,formats:a,locale:u,timeZone:d})),[n,s,c,w,p,g,a,u,d])}({\"!\":v().messages},e?`!.${e}`:\"!\",\"!\")}function Z(){return v().locale}function b(){return new Date}function F(e){const r=e?.updateInterval,{now:o}=v(),[a,s]=t(o||b());return n((()=>{if(!r)return;const e=setInterval((()=>{s(b())}),r);return()=>{clearInterval(e)}}),[o,r]),null==r&&o?o:a}function M(){return v().timeZone}function k(){const e=v();if(!e.messages)throw new Error(void 0);return e.messages}function I(){const{formats:e,formatters:r,locale:t,now:n,onError:a,timeZone:s}=v();return o((()=>u({formats:e,locale:t,now:n,onError:a,timeZone:s,_formatters:r})),[e,r,n,t,a,s])}export{w as IntlProvider,I as useFormatter,Z as useLocale,k as useMessages,F as useNow,M as useTimeZone,p as useTranslations};\n","import { useState } from \"preact/hooks\";\nimport { resolveSetStateAction } from \"../../utils/helpers\";\n\ntype Setter<T> = React.Dispatch<React.SetStateAction<T>>;\n\nexport interface ValueState<T> {\n\tvalue: T;\n\tset: Setter<T>;\n}\n\nconst useValueState = <T>(\n\tinitialState: T,\n\tstateUpdateCallback?: (newValue: T) => void\n): Readonly<ValueState<T>> => {\n\tconst [state, setState] = useState<T>(initialState);\n\n\tconst wrappedSetState = (action: React.SetStateAction<T>) => {\n\t\tif (!stateUpdateCallback) {\n\t\t\treturn setState(action);\n\t\t}\n\t\tsetState(prev => {\n\t\t\tconst resolvedValue = resolveSetStateAction(action, prev);\n\t\t\tstateUpdateCallback(resolvedValue);\n\t\t\treturn resolvedValue;\n\t\t});\n\t};\n\treturn { value: state, set: wrappedSetState } as const;\n};\n\nexport default useValueState;\n","import useValueState, { ValueState } from \"./use-value-state\";\n\nexport interface UseDialogRegisterReturn {\n\tisOpen: boolean;\n\tonClose: () => void;\n}\n\nexport interface UseDialogReturn {\n\tregister: () => UseDialogRegisterReturn;\n\tstate: ValueState<boolean>;\n}\n\nconst useDialog = (initialState: boolean = false): UseDialogReturn => {\n\tconst state = useValueState<boolean>(initialState);\n\n\tconst onClose = () => state.set(false);\n\n\tfunction register() {\n\t\treturn {\n\t\t\tisOpen: state.value,\n\t\t\tonClose\n\t\t};\n\t}\n\n\treturn {\n\t\tregister,\n\t\tstate\n\t} as const;\n};\n\nexport default useDialog;\n","import { Inputs, useEffect, useRef, useState } from \"preact/hooks\";\n\nconst useOnce = (callback: (resolve: () => void) => void, deps?: Inputs) => {\n\tconst state = useState(false);\n\tconst effectRef = useRef(false);\n\n\tuseEffect(() => {\n\t\tif (!effectRef.current) {\n\t\t\tcallback(() => {\n\t\t\t\tstate[1](true);\n\t\t\t\teffectRef.current = true;\n\t\t\t});\n\t\t}\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, deps);\n\n\treturn state;\n};\n\nexport default useOnce;\n","import { createContext } from \"preact\";\nimport { ValueState } from \"../hooks/common/use-value-state\";\nimport { ReturnViewState, WidgetViewState } from \"../types\";\nimport { WidgetConfiguration } from \"../utils/initialization/types\";\n\nexport interface IWidgetContext {\n\twidgetViewState: ValueState<WidgetViewState>;\n\treturnViewState: ValueState<ReturnViewState>;\n\tconfig: WidgetConfiguration;\n}\n\nexport const WidgetContext = createContext<IWidgetContext>(\n\t{} as IWidgetContext\n);\n","import { useContext } from \"preact/hooks\";\nimport { WidgetContext } from \"../../context/widget-context\";\n\nconst useWidgetContext = () => {\n\tconst context = useContext(WidgetContext);\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t\"useWidgetContext must be used within a WidgetContextProvider\"\n\t\t);\n\t}\n\treturn context;\n};\n\nexport default useWidgetContext;\n","import { PLATFORM_URL } from \"../constants\";\nimport { clearCart } from \"./cart\";\nimport { getResolvedSearchParams } from \"./helpers\";\nimport { Locale } from \"./i18n\";\nimport { logger } from \"./logger\";\nimport { clearSession } from \"./shopify\";\n\nexport default {\n\tback: async (locale: Locale, slug: string, fallbackProductId?: string) => {\n\t\tconst constructedPlatformUrl = new URL(`/${locale}`, PLATFORM_URL);\n\n\t\tif (slug) {\n\t\t\tconstructedPlatformUrl.pathname += `/${slug}`;\n\t\t}\n\n\t\tconst searchParams = getResolvedSearchParams();\n\t\tconst lastExchangeProductId = searchParams.get(\"from\") ?? fallbackProductId;\n\n\t\tif (lastExchangeProductId) {\n\t\t\tconst strippedProductId = lastExchangeProductId.split(\"/\").at(-1);\n\n\t\t\tif (strippedProductId) {\n\t\t\t\tconstructedPlatformUrl.pathname += `/${strippedProductId}`;\n\t\t\t\tconstructedPlatformUrl.searchParams.append(\"step\", \"-1\");\n\t\t\t}\n\t\t}\n\n\t\tawait clearCart();\n\t\tclearSession();\n\n\t\twindow.location.href = constructedPlatformUrl.toString();\n\t},\n\tcontinue: (locale: Locale, slug: string) => {\n\t\tconst confirmationUrl = new URL(\n\t\t\t`/${locale}/${slug}/confirmation`,\n\t\t\tPLATFORM_URL\n\t\t);\n\n\t\tconst encodedSlug = encodeURIComponent(window.location.pathname);\n\t\tconfirmationUrl.searchParams.append(\"from\", encodedSlug);\n\n\t\twindow.location.href = confirmationUrl.toString();\n\t},\n\texit: async (clearCartOnExit: boolean = true) => {\n\t\tif (clearCartOnExit) {\n\t\t\ttry {\n\t\t\t\tawait clearCart();\n\t\t\t} catch (err) {\n\t\t\t\tlogger.error(\"Failed to clear cart on exit\", err);\n\t\t\t}\n\t\t}\n\t\tclearSession();\n\t\twindow.location.reload();\n\t}\n};\n","import { createContext } from \"preact\";\nimport {\n\tCalculationParams,\n\tCartState\n} from \"../../components/providers/return-context-provider\";\nimport { IUseAsyncStateReturn } from \"../hooks/common/use-async-state\";\nimport { CalculationResponse } from \"../types\";\nimport { ProcessOrderInitializationReturn } from \"../utils/api\";\n\nexport interface IReturnContext {\n\torderState: IUseAsyncStateReturn<ProcessOrderInitializationReturn>;\n\tcartState: IUseAsyncStateReturn<CartState, ProcessOrderInitializationReturn>;\n\tcalculationState: IUseAsyncStateReturn<\n\t\tCalculationResponse,\n\t\tCalculationParams\n\t>;\n\tisPending: boolean;\n\thasFailed: boolean;\n}\n\nexport const ReturnContext = createContext<IReturnContext>(\n\t{} as IReturnContext\n);\n","import { useContext } from \"preact/hooks\";\nimport { ReturnContext } from \"../../context/return-context\";\n\nconst useReturnContext = () => {\n\tconst context = useContext(ReturnContext);\n\tif (!context) {\n\t\tthrow new Error(\n\t\t\t\"useReturnContext must be used within a ReturnContextProvider\"\n\t\t);\n\t}\n\treturn context;\n};\n\nexport default useReturnContext;\n","import { IMAGE_FALLBACK_URL } from \"../../lib/constants\";\n\ninterface ImageProps\n\textends Omit<React.ImgHTMLAttributes<HTMLImageElement>, \"src\"> {\n\tsrc: string | null | undefined;\n}\n\nconst Image = ({ src, ...props }: ImageProps) => {\n\treturn <img src={src || IMAGE_FALLBACK_URL} {...props} />;\n};\n\nexport default Image;\n","const SkeletonContainer = ({\n\tpending = false,\n\tskeleton,\n\tchildren\n}: {\n\tpending?: boolean;\n\tskeleton: preact.ComponentChildren;\n\tchildren?: preact.ComponentChildren;\n}) => {\n\tswitch (pending) {\n\t\tcase true:\n\t\t\treturn skeleton;\n\t\tdefault:\n\t\t\treturn children;\n\t}\n};\n\nexport default SkeletonContainer;\n","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n","import { cva, VariantProps } from \"class-variance-authority\";\nimport { memo } from \"preact/compat\";\nimport { cn } from \"../../../lib/utils/helpers\";\n\nconst avatarVariants = cva(\n\t\"rf-avatar size-[26px] rounded-full border overflow-hidden\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tlight: \"bg-white text-black border-[#E1E1E1]\",\n\t\t\t\tdark: \"bg-[#555555] text-white border-black\"\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"light\"\n\t\t}\n\t}\n);\n\nexport type AvatarVariants = VariantProps<typeof avatarVariants>;\n\ninterface AvatarProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tAvatarVariants {\n\tchildren: preact.ComponentChildren;\n}\n\nconst Avatar = ({ children, className, variant, ...props }: AvatarProps) => {\n\treturn (\n\t\t<div className={cn(avatarVariants({ variant }), className)} {...props}>\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport default memo(Avatar);\n","import { cn } from \"../../../lib/utils/helpers\";\n\nconst Skeleton = ({\n\tclassName,\n\t...props\n}: Omit<React.HTMLAttributes<HTMLDivElement>, \"children\">) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-skeleton bg-neutral-2 animate-pulse rounded-md h-[1.5em]\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\trole=\"status\"\n\t\t>\n\t\t\t<span className=\"rf-skeleton__sr-text sr-only\">Loading...</span>\n\t\t</div>\n\t);\n};\n\nexport default Skeleton;\n","import Skeleton from \"../skeleton/skeleton\";\n\nconst AvatarStackSkeleton = () => {\n\treturn (\n\t\t<div className=\"rf-avatar-stack-skeleton flex -space-x-1\">\n\t\t\t<div className=\"rf-avatar-stack-skeleton__item relative bg-neutral-2 rounded-full z-[1]\">\n\t\t\t\t<Skeleton className=\"size-[26px] rounded-full\" />\n\t\t\t</div>\n\t\t\t<div className=\"rf-avatar-stack-skeleton__item relative bg-neutral-2 rounded-full z-[2]\">\n\t\t\t\t<Skeleton className=\"size-[26px] rounded-full\" />\n\t\t\t</div>\n\t\t\t<div className=\"rf-avatar-stack-skeleton__item relative bg-neutral-2 rounded-full z-[3]\">\n\t\t\t\t<Skeleton className=\"size-[26px] rounded-full\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default AvatarStackSkeleton;\n","import { cn } from \"../../../lib/utils/helpers\";\nimport Image from \"../image\";\nimport SkeletonContainer from \"../skeleton/skeleton-container\";\nimport Avatar, { AvatarVariants } from \"./avatar\";\nimport AvatarStackSkeleton from \"./avatar-stack-skeleton\";\n\nexport interface AvatarImage {\n\tsrc: string | undefined;\n\talt: string;\n}\n\ninterface AvatarStackProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\">,\n\t\tAvatarVariants {\n\timages: AvatarImage[];\n\tmaxVisibleAvatars?: number | null;\n\tpending?: boolean;\n}\n\nconst AvatarStack = ({\n\timages,\n\tvariant,\n\tmaxVisibleAvatars = 2,\n\tclassName,\n\tpending = false,\n\t...props\n}: AvatarStackProps) => {\n\tconst sliceIndex = maxVisibleAvatars ?? images.length;\n\n\treturn (\n\t\t<SkeletonContainer skeleton={<AvatarStackSkeleton />} pending={pending}>\n\t\t\t{images.length > 0 && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\"rf-avatar-stack flex -space-x-1\", className)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t{images.slice(0, sliceIndex).map(({ src, alt }, index) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\t\tclassName=\"relative\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tzIndex: index + 1\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Image\n\t\t\t\t\t\t\t\t\tclassName=\"rf-avatar-stack__image size-full object-cover\"\n\t\t\t\t\t\t\t\t\tsrc={src}\n\t\t\t\t\t\t\t\t\talt={alt}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t\t);\n\t\t\t\t\t})}\n\t\t\t\t\t{sliceIndex < images.length && (\n\t\t\t\t\t\t<Avatar\n\t\t\t\t\t\t\tvariant={variant}\n\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\tzIndex: sliceIndex + 1\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tclassName=\"flex items-center justify-center\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span className=\"rf-avatar-stack__count text-[10px]\">\n\t\t\t\t\t\t\t\t+{images.length - sliceIndex}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</Avatar>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</SkeletonContainer>\n\t);\n};\n\nexport default AvatarStack;\n","import { useMemo } from \"preact/hooks\";\nimport useReturnContext from \"../lib/hooks/context/use-return-context\";\nimport AvatarStack, { AvatarImage } from \"./ui/avatar/avatar-stack\";\n\nconst ReturnAvatarStack = () => {\n\tconst { orderState } = useReturnContext();\n\n\tconst formattedImages = useMemo(() => {\n\t\tconst exchangeProducts =\n\t\t\torderState.value.data?.orderData.productsToExchange ?? [];\n\t\treturn exchangeProducts.reduce<AvatarImage[]>((acc, product) => {\n\t\t\tfor (let i = 0; i < product.quantity; i++) {\n\t\t\t\tacc.push({\n\t\t\t\t\tsrc: product.image,\n\t\t\t\t\talt: product.title\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn acc;\n\t\t}, []);\n\t}, [orderState.value.data?.orderData.productsToExchange]);\n\n\treturn (\n\t\t<AvatarStack\n\t\t\tpending={orderState.value.pending}\n\t\t\tvariant=\"light\"\n\t\t\timages={formattedImages}\n\t\t/>\n\t);\n};\n\nexport default ReturnAvatarStack;\n","import { createContext } from \"preact\";\nimport { UseDialogRegisterReturn } from \"../hooks/common/use-dialog\";\n\nexport type IDialogContext = UseDialogRegisterReturn;\n\nexport const DialogContext = createContext<IDialogContext | null>(null);\n","import { useEffect, useState } from \"preact/hooks\";\n\nconst useIsMounted = () => {\n\tconst [mounted, setMounted] = useState(false);\n\n\tuseEffect(() => {\n\t\tsetMounted(true);\n\t}, []);\n\n\treturn mounted;\n};\n\nexport default useIsMounted;\n","import { createContext, RefObject } from \"preact\";\n\nexport const RootContext = createContext<RefObject<HTMLDivElement> | null>(\n\tnull\n);\n","import { useContext } from \"preact/hooks\";\nimport { ROOT_ELEMENT_ID } from \"../../constants\";\nimport { RootContext } from \"../../context/root-context\";\n\nconst useRoot = () => {\n\tconst context = useContext(RootContext);\n\tif (!context) {\n\t\tthrow new Error(\"useRoot must be used within a RootProvider\");\n\t}\n\treturn () => {\n\t\tconst rootElement = context.current;\n\t\tif (!rootElement) {\n\t\t\treturn document.getElementById(ROOT_ELEMENT_ID);\n\t\t}\n\t\treturn rootElement;\n\t};\n};\n\nexport default useRoot;\n","import { useRef } from \"preact/hooks\";\nimport { cn } from \"../../../lib/utils/helpers\";\n\ninterface DialogBackdropProps extends React.HTMLAttributes<HTMLElement> {\n\tisVisible?: boolean;\n\tonClick?: () => void;\n}\n\nconst DialogBackdrop = ({\n\tonClick,\n\tclassName,\n\tchildren,\n\tisVisible = true,\n\t...props\n}: DialogBackdropProps) => {\n\tconst elementRef = useRef<HTMLElement>(null);\n\n\tfunction handleClick(event: preact.JSX.TargetedMouseEvent<HTMLElement>) {\n\t\tif (onClick && event.target === elementRef.current) {\n\t\t\tonClick();\n\t\t}\n\t}\n\n\treturn (\n\t\t<aside\n\t\t\tonClick={handleClick}\n\t\t\tref={elementRef}\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-dialog__backdrop fixed inset-0 size-full z-50 flex items-center justify-center p-6\",\n\t\t\t\tisVisible && \"rf-dialog__backdrop--visible bg-black/50\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</aside>\n\t);\n};\n\nexport default DialogBackdrop;\n","import { createPortal } from \"preact/compat\";\nimport { useEffect } from \"preact/hooks\";\nimport {\n\tDialogContext,\n\tIDialogContext\n} from \"../../../lib/context/dialog-context\";\nimport { UseDialogRegisterReturn } from \"../../../lib/hooks/common/use-dialog\";\nimport useIsMounted from \"../../../lib/hooks/common/use-is-mounted\";\nimport useRoot from \"../../../lib/hooks/context/use-root\";\nimport { cn } from \"../../../lib/utils/helpers\";\nimport { logger } from \"../../../lib/utils/logger\";\nimport DialogBackdrop from \"./dialog-backdrop\";\n\nexport interface DialogModalProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"onClose\">,\n\t\tUseDialogRegisterReturn {\n\tfadeIn?: boolean;\n\tshowBackdrop?: boolean;\n\tdismissOnBackdropClick?: boolean;\n\tdismissOnEscape?: boolean;\n}\n\nconst DialogModal = ({\n\tisOpen,\n\tonClose,\n\tfadeIn = true,\n\tshowBackdrop = true,\n\tdismissOnBackdropClick = true,\n\tdismissOnEscape,\n\tclassName,\n\t...props\n}: DialogModalProps) => {\n\tconst getRoot = useRoot();\n\tconst isMounted = useIsMounted();\n\n\tuseEffect(() => {\n\t\tconst handleEscape = (event: KeyboardEvent) => {\n\t\t\tif (event.key === \"Escape\") {\n\t\t\t\tevent.preventDefault();\n\t\t\t\tonClose?.();\n\t\t\t}\n\t\t};\n\n\t\tif (dismissOnEscape) {\n\t\t\tif (isOpen) {\n\t\t\t\tdocument.addEventListener(\"keydown\", handleEscape);\n\t\t\t} else {\n\t\t\t\tdocument.removeEventListener(\"keydown\", handleEscape);\n\t\t\t}\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (dismissOnEscape) {\n\t\t\t\tdocument.removeEventListener(\"keydown\", handleEscape);\n\t\t\t}\n\t\t};\n\t}, [dismissOnEscape, onClose, isOpen]);\n\n\tif (!isOpen || !isMounted) {\n\t\treturn null;\n\t}\n\n\tconst root = getRoot();\n\n\tif (!root) {\n\t\tlogger.error(\"Root element not found\");\n\t\treturn null;\n\t}\n\n\tconst contextValue: IDialogContext = {\n\t\tisOpen,\n\t\tonClose\n\t};\n\n\treturn createPortal(\n\t\t<DialogBackdrop\n\t\t\tclassName={fadeIn ? \"animate-fade-in\" : undefined}\n\t\t\tisVisible={showBackdrop}\n\t\t\tonClick={dismissOnBackdropClick ? onClose : undefined}\n\t\t>\n\t\t\t<DialogContext.Provider value={contextValue}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"rf-dialog m-auto w-full p-8 rounded-lg bg-white shadow-lg max-w-2xl\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t</DialogContext.Provider>\n\t\t</DialogBackdrop>,\n\t\troot\n\t);\n};\n\nexport default DialogModal;\n","import { cn } from \"../../../lib/utils/helpers\";\n\nconst DialogTitle = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLHeadingElement>) => {\n\treturn (\n\t\t<h2\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-dialog__title text-2xl font-medium leading-tight\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport default DialogTitle;\n","import { cn } from \"../../../lib/utils/helpers\";\n\nconst DialogSubtitle = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLParagraphElement>) => {\n\treturn (\n\t\t<p\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-dialog__subtitle text-neutral-3 py-2.5 leading-tight\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport default DialogSubtitle;\n","const ArrowRightIcon = ({\n\tclassName,\n\t...props\n}: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={11}\n\t\theight={9}\n\t\tviewBox=\"0 0 11 9\"\n\t\tfill=\"currentColor\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--arrow-right ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path d=\"M10.273 4.427 6.66.954a.55.55 0 0 0-.387-.153.56.56 0 0 0-.387.153l-.328.316a.52.52 0 0 0 0 .749l2.107 2.03H.973a.524.524 0 0 0-.54.517v.446c0 .29.238.54.54.54H7.69L5.56 7.594a.505.505 0 0 0 0 .74l.327.314c.103.099.24.153.387.153a.56.56 0 0 0 .387-.154l3.612-3.473a.513.513 0 0 0 0-.747\" />\n\t</svg>\n);\nexport default ArrowRightIcon;\n","const XIcon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={11}\n\t\theight={11}\n\t\tviewBox=\"0 0 11 11\"\n\t\tfill=\"currentColor\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--x ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path d=\"M1.45 10.572a.92.92 0 0 1-.655-.221.92.92 0 0 1 0-1.299l7.82-7.82a.921.921 0 0 1 1.344 1.253l-7.865 7.866a.92.92 0 0 1-.645.22\" />\n\t\t<path d=\"M9.26 10.572a.92.92 0 0 1-.645-.267l-7.82-7.82a.921.921 0 0 1 1.299-1.298l7.865 7.82a.92.92 0 0 1 0 1.344.92.92 0 0 1-.7.22\" />\n\t</svg>\n);\nexport default XIcon;\n","const Spinner = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => {\n\treturn (\n\t\t<svg\n\t\t\twidth=\"1.5em\"\n\t\t\theight=\"1.5em\"\n\t\t\tviewBox=\"0 0 24 24\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\tfill=\"currentColor\"\n\t\t\tclassName={`rf-icon rf-icon--spinner ${className || \"\"}`}\n\t\t\t{...props}\n\t\t>\n\t\t\t<g>\n\t\t\t\t<path opacity={0.14} d=\"M11 1h2v5h-2z\" />\n\t\t\t\t<path opacity={0.29} d=\"m16.634 1.974 1.732 1-2.5 4.33-1.732-1z\" />\n\t\t\t\t<path opacity={0.43} d=\"m21.026 5.634 1 1.732-4.33 2.5-1-1.732z\" />\n\t\t\t\t<path opacity={0.57} d=\"M23 11v2h-5v-2z\" />\n\t\t\t\t<path opacity={0.71} d=\"m22.026 16.634-1 1.732-4.33-2.5 1-1.732z\" />\n\t\t\t\t<path opacity={0.86} d=\"m18.366 21.026-1.732 1-2.5-4.33 1.732-1z\" />\n\t\t\t\t<path d=\"M13 23h-2v-5h2z\" />\n\t\t\t\t<animateTransform\n\t\t\t\t\tattributeName=\"transform\"\n\t\t\t\t\ttype=\"rotate\"\n\t\t\t\t\tcalcMode=\"discrete\"\n\t\t\t\t\tdur=\"0.75s\"\n\t\t\t\t\tvalues=\"0 12 12;30 12 12;60 12 12;90 12 12;120 12 12;150 12 12;180 12 12;210 12 12;240 12 12;270 12 12;300 12 12;330 12 12;360 12 12\"\n\t\t\t\t\trepeatCount=\"indefinite\"\n\t\t\t\t/>\n\t\t\t</g>\n\t\t</svg>\n\t);\n};\n\nexport default Spinner;\n","// components/ui/Button.tsx\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { memo } from \"preact/compat\";\nimport { cn } from \"../../lib/utils/helpers\";\nimport Spinner from \"../icons/spinner\";\n\nconst buttonVariants = cva(\n\t\"disabled:cursor-not-allowed h-12 rounded-md text-base font-medium flex items-center justify-center whitespace-nowrap gap-2 px-8 relative transition-all duration-300 ease-in-out [--icon-width:auto] [--icon-height:0.65em] desktop:[--icon-height:0.75em]\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tprimary:\n\t\t\t\t\t\"bg-button-background text-button-foreground disabled:!bg-button-background-disabled disabled:!text-button-foreground-disabled desktop:hover:opacity-80\",\n\t\t\t\toutline:\n\t\t\t\t\t\"border border-neutral-2 text-black bg-transparent disabled:!text-button-foreground-disabled desktop:hover:opacity-80\",\n\t\t\t\tghost:\n\t\t\t\t\t\"text-neutral-3 font-normal gap-1 disabled:!opacity-50 disabled:cursor-not-allowed desktop:hover:opacity-80\"\n\t\t\t}\n\t\t}\n\t}\n);\n\nexport interface ButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tVariantProps<typeof buttonVariants> {\n\ticon?: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;\n\ticonPosition?: \"left\" | \"right\";\n\tpending?: boolean;\n}\n\nconst Button = ({\n\tchildren,\n\tclassName,\n\ticon: Icon,\n\tvariant = \"primary\",\n\tpending = false,\n\tdisabled = false,\n\ticonPosition = \"right\",\n\t...props\n}: ButtonProps) => {\n\treturn (\n\t\t<button\n\t\t\taria-busy={pending}\n\t\t\tdisabled={disabled || pending}\n\t\t\ttype=\"button\"\n\t\t\tclassName={cn(\n\t\t\t\tbuttonVariants({ variant }),\n\t\t\t\t\"rf-button\",\n\t\t\t\t`rf-button--${variant}`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{pending && <Spinner className=\"absolute inset-0 m-auto\" />}\n\t\t\t<span\n\t\t\t\tclassName=\"rf-button__text\"\n\t\t\t\tstyle={{\n\t\t\t\t\tvisibility: pending ? \"hidden\" : \"visible\"\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</span>\n\t\t\t{!!Icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tstyle={{\n\t\t\t\t\t\tvisibility: pending ? \"hidden\" : \"visible\"\n\t\t\t\t\t}}\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"rf-button__icon w-[var(--icon-width)] h-[var(--icon-height)]\",\n\t\t\t\t\t\ticonPosition === \"left\" ? \"-order-1\" : \"order-1\"\n\t\t\t\t\t)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</button>\n\t);\n};\n\nexport default memo(Button);\n","import { cn } from \"../../../lib/utils/helpers\";\nimport ArrowRightIcon from \"../../icons/arrow-right\";\nimport XIcon from \"../../icons/x\";\nimport Button from \"../../ui/button\";\nimport { ButtonProps } from \"../../ui/button\";\n\n// eslint-disable-next-line react-refresh/only-export-components\nconst Accept = ({ className, ...props }: ButtonProps) => {\n\treturn (\n\t\t<Button\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-dialog__button rf-dialog__button--accept w-full\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\ticon={ArrowRightIcon}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n// eslint-disable-next-line react-refresh/only-export-components\nconst Reject = ({ className, ...props }: ButtonProps) => {\n\treturn (\n\t\t<Button\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-dialog__button rf-dialog__button--reject w-full\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tvariant=\"outline\"\n\t\t\ticon={XIcon}\n\t\t\ticonPosition=\"left\"\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport default {\n\tAccept,\n\tReject\n};\n","import DialogModal, { type DialogModalProps } from \"./dialog-modal\";\nimport DialogTitle from \"./dialog-title\";\nimport DialogSubtitle from \"./dialog-subtitle\";\nimport DialogButton from \"./dialog-button\";\n\nexport type { DialogModalProps };\n\nconst Dialog = {\n\tModal: DialogModal,\n\tTitle: DialogTitle,\n\tSubtitle: DialogSubtitle,\n\tAccept: DialogButton.Accept,\n\tReject: DialogButton.Reject\n};\n\nexport default Dialog;\n","import { useState } from \"preact/hooks\";\nimport { useTranslations } from \"use-intl\";\nimport useDialog from \"../../lib/hooks/common/use-dialog\";\nimport useOnce from \"../../lib/hooks/common/use-once\";\nimport useWidgetContext from \"../../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../../lib/types\";\nimport { isOnCartPage } from \"../../lib/utils/helpers\";\nimport navigation from \"../../lib/utils/navigation\";\nimport storage, {\n\tSTORAGE_OVERLAY_DIALOG_EXPIRY_KEY\n} from \"../../lib/utils/storage\";\nimport ReturnAvatarStack from \"../return-avatar-stack\";\nimport Dialog from \"./common\";\n\ntype DecisionState = \"cart_detection\" | \"cookie_detection\";\n\nconst ReturnDecisionDialog = () => {\n\tconst {\n\t\tconfig: { isFirstLoad }\n\t} = useWidgetContext();\n\tconst [decisionState, setDecisionState] = useState<DecisionState | null>(\n\t\tnull\n\t);\n\n\tuseOnce(resolve => {\n\t\tresolve();\n\n\t\tif (isOnCartPage()) {\n\t\t\tsetDecisionState(\"cart_detection\");\n\t\t} else if (!isFirstLoad) {\n\t\t\tconst expiration = storage.get<number>(STORAGE_OVERLAY_DIALOG_EXPIRY_KEY);\n\t\t\tif (expiration && Date.now() > expiration) {\n\t\t\t\tstorage.remove(STORAGE_OVERLAY_DIALOG_EXPIRY_KEY);\n\t\t\t\tsetDecisionState(\"cookie_detection\");\n\t\t\t}\n\t\t}\n\t}, []);\n\n\tif (!decisionState) {\n\t\treturn null;\n\t}\n\n\treturn <DecisionDialog decisionState={decisionState} />;\n};\n\nfunction DecisionDialog({ decisionState }: { decisionState: DecisionState }) {\n\tconst t = useTranslations(`dialog.return_decision.${decisionState}`);\n\tconst { widgetViewState } = useWidgetContext();\n\tconst modal = useDialog(true);\n\n\tconst dialog = modal.register();\n\n\tfunction handleConfirm() {\n\t\tdialog.onClose();\n\t\tif (decisionState === \"cart_detection\") {\n\t\t\twidgetViewState.set(WidgetViewState.Open);\n\t\t}\n\t}\n\n\tfunction handleReject() {\n\t\tnavigation.exit();\n\t}\n\n\treturn (\n\t\t<Dialog.Modal\n\t\t\tclassName=\"text-center flex flex-col gap-2 items-center\"\n\t\t\t{...dialog}\n\t\t>\n\t\t\t<ReturnAvatarStack />\n\t\t\t<Dialog.Title>{t(\"title\")}</Dialog.Title>\n\t\t\t<Dialog.Subtitle>{t(\"subtext\")}</Dialog.Subtitle>\n\t\t\t<Dialog.Accept onClick={handleConfirm}>{t(\"confirm\")}</Dialog.Accept>\n\t\t\t<Dialog.Reject onClick={handleReject}>{t(\"reject\")}</Dialog.Reject>\n\t\t</Dialog.Modal>\n\t);\n}\n\nexport default ReturnDecisionDialog;\n","import ReturnDecisionDialog from \"../dialog/return-decision-dialog\";\n\nconst DialogHandler = () => {\n\treturn (\n\t\t<>\n\t\t\t<ReturnDecisionDialog />\n\t\t</>\n\t);\n};\n\nexport default DialogHandler;\n","import { createContext } from \"preact\";\nimport { ToastOptions, ToastQueue } from \"../../components/toast/toast\";\n\nexport interface ToastConfiguration extends Omit<ToastOptions, \"id\"> {\n\tid?: string; // Make id optional for easier usage\n}\n\nexport const DEFAULT_TOAST_DURATION = 5000; // Default duration in milliseconds\nexport const TOAST_ANIMATION_DURATION = 300; // Default animation duration in milliseconds\n\nexport interface IToastContext {\n\tqueue: ToastQueue[];\n\tadd: (options: ToastConfiguration) => string; // Returns the ID of the added toast\n\tremove: (id: string) => void;\n\tclear: () => void;\n}\n\nexport const ToastContext = createContext<IToastContext>({} as IToastContext);\n","import { useContext } from \"preact/hooks\";\nimport { ToastContext } from \"../../context/toast-context\";\n\nconst useToast = () => {\n\tconst context = useContext(ToastContext);\n\n\tif (!context) {\n\t\tthrow new Error(\"useToast must be used within a ToastProvider\");\n\t}\n\n\treturn context;\n};\n\nexport default useToast;\n","import { useEffect } from \"preact/hooks\";\nimport {\n\temitEvent,\n\tregisterBridge,\n\tunregisterBridge\n} from \"../../../../api/state-bridge\";\nimport { WidgetViewState } from \"../../types\";\nimport useReturnContext from \"../context/use-return-context\";\nimport useToast from \"../context/use-toast\";\nimport useWidgetContext from \"../context/use-widget-context\";\n\n/**\n * Hook that registers the widget's React state with the API bridge.\n * This allows the public API to interact with the widget's internal state.\n */\nconst useApiBridge = () => {\n\tconst { widgetViewState, config } = useWidgetContext();\n\tconst returnContext = useReturnContext();\n\tconst toastContext = useToast();\n\n\t// Register the bridge on mount, unregister on unmount\n\tuseEffect(() => {\n\t\tregisterBridge({ widgetViewState, returnContext, toastContext, config });\n\n\t\treturn () => {\n\t\t\tunregisterBridge();\n\t\t};\n\t}, [widgetViewState, returnContext, toastContext, config]);\n\n\t// Emit drawer state change events\n\tuseEffect(() => {\n\t\tconst state = widgetViewState.value;\n\t\tif (state === WidgetViewState.Open) {\n\t\t\temitEvent(\"drawer:open\");\n\t\t} else {\n\t\t\temitEvent(\"drawer:close\");\n\t\t}\n\t}, [widgetViewState.value]);\n\n\t// Emit cart update events\n\tuseEffect(() => {\n\t\tconst cart = returnContext.cartState.value.data?.original;\n\t\tif (cart) {\n\t\t\temitEvent(\"cart:updated\", cart);\n\t\t}\n\t}, [returnContext.cartState.value.data]);\n\n\t// Emit calculation update events\n\tuseEffect(() => {\n\t\tconst calculation = returnContext.calculationState.value.data;\n\t\tif (calculation) {\n\t\t\temitEvent(\"calculation:updated\", calculation);\n\t\t}\n\t}, [returnContext.calculationState.value.data]);\n};\n\nexport default useApiBridge;\n","import { useEffect, useMemo } from \"preact/hooks\";\nimport { WidgetViewState } from \"../../types\";\nimport { getCart, normalizeCart } from \"../../utils/cart\";\nimport customEvents, { ExternalCustomEvent } from \"../../utils/custom-events\";\nimport useReturnContext from \"../context/use-return-context\";\nimport useWidgetContext from \"../context/use-widget-context\";\n\nconst useExternalEvents = () => {\n\tconst { widgetViewState, config } = useWidgetContext();\n\tconst { cartState, orderState, calculationState } = useReturnContext();\n\n\tconst lineItems = useMemo(\n\t\t() => config.data.returnData?.items ?? [],\n\t\t[config.data.returnData?.items]\n\t);\n\n\tuseEffect(() => {\n\t\t// Drawer state handlers\n\t\tconst handleOpenDrawer = () => {\n\t\t\twidgetViewState.set(WidgetViewState.Open);\n\t\t};\n\n\t\tconst handleCloseDrawer = () => {\n\t\t\twidgetViewState.set(WidgetViewState.Collapsed);\n\t\t};\n\n\t\tconst handleToggleDrawer = () => {\n\t\t\twidgetViewState.set(\n\t\t\t\twidgetViewState.value === WidgetViewState.Collapsed\n\t\t\t\t\t? WidgetViewState.Open\n\t\t\t\t\t: WidgetViewState.Collapsed\n\t\t\t);\n\t\t};\n\n\t\t// Helper to refetch and update cart\n\t\tconst refetchAndUpdateCart = async () => {\n\t\t\tconst order = orderState.value.data;\n\t\t\tif (!order) return null;\n\n\t\t\tconst freshCart = await getCart(false);\n\t\t\tconst transformedCart = normalizeCart(\n\t\t\t\tfreshCart,\n\t\t\t\torder.orderData.productRules\n\t\t\t);\n\n\t\t\tcartState.set({\n\t\t\t\tdata: {\n\t\t\t\t\toriginal: freshCart,\n\t\t\t\t\ttransformed: transformedCart\n\t\t\t\t},\n\t\t\t\tpending: false,\n\t\t\t\terror: null\n\t\t\t});\n\n\t\t\treturn { order, transformedCart };\n\t\t};\n\n\t\t// Helper to trigger calculation\n\t\tconst triggerCalculation = (\n\t\t\torder: NonNullable<typeof orderState.value.data>,\n\t\t\tcart: ReturnType<typeof normalizeCart>\n\t\t) => {\n\t\t\tcalculationState.query({\n\t\t\t\tcart,\n\t\t\t\torderId: order.orderData.id,\n\t\t\t\tlineItems\n\t\t\t});\n\t\t};\n\n\t\t// Calculation handlers\n\t\tconst handleRefetchCalculation = () => {\n\t\t\tconst order = orderState.value.data;\n\t\t\tconst cart = cartState.value.data?.transformed;\n\n\t\t\tif (order && cart) {\n\t\t\t\ttriggerCalculation(order, cart);\n\t\t\t}\n\t\t};\n\n\t\tconst handleRefetchCart = async () => {\n\t\t\tawait refetchAndUpdateCart();\n\t\t};\n\n\t\tconst handleRefetchCartAndCalculation = async () => {\n\t\t\tconst result = await refetchAndUpdateCart();\n\t\t\tif (result) {\n\t\t\t\ttriggerCalculation(result.order, result.transformedCart);\n\t\t\t}\n\t\t};\n\n\t\tconst handleOpenDrawerAndRefetch = async () => {\n\t\t\thandleOpenDrawer();\n\t\t\tconst result = await refetchAndUpdateCart();\n\t\t\tif (result) {\n\t\t\t\ttriggerCalculation(result.order, result.transformedCart);\n\t\t\t}\n\t\t};\n\n\t\t// Subscribe to all events\n\t\tconst unsubscribeOpenDrawer = customEvents.subscribe(\n\t\t\tExternalCustomEvent.DrawerOpen,\n\t\t\thandleOpenDrawer\n\t\t);\n\n\t\tconst unsubscribeCloseDrawer = customEvents.subscribe(\n\t\t\tExternalCustomEvent.DrawerClose,\n\t\t\thandleCloseDrawer\n\t\t);\n\n\t\tconst unsubscribeToggleDrawer = customEvents.subscribe(\n\t\t\tExternalCustomEvent.DrawerToggle,\n\t\t\thandleToggleDrawer\n\t\t);\n\n\t\tconst unsubscribeRefetchCalculation = customEvents.subscribe(\n\t\t\tExternalCustomEvent.CalculationRefetch,\n\t\t\thandleRefetchCalculation\n\t\t);\n\n\t\tconst unsubscribeRefetchCart = customEvents.subscribe(\n\t\t\tExternalCustomEvent.CartRefetch,\n\t\t\thandleRefetchCart\n\t\t);\n\n\t\tconst unsubscribeRefetchCartAndCalculation = customEvents.subscribe(\n\t\t\tExternalCustomEvent.CartAndCalculationRefetch,\n\t\t\thandleRefetchCartAndCalculation\n\t\t);\n\n\t\tconst unsubscribeOpenDrawerAndRefetchCartAndCalculation =\n\t\t\tcustomEvents.subscribe(\n\t\t\t\tExternalCustomEvent.DrawerOpenAndRefetch,\n\t\t\t\thandleOpenDrawerAndRefetch\n\t\t\t);\n\n\t\treturn () => {\n\t\t\tunsubscribeOpenDrawer();\n\t\t\tunsubscribeCloseDrawer();\n\t\t\tunsubscribeToggleDrawer();\n\t\t\tunsubscribeRefetchCalculation();\n\t\t\tunsubscribeRefetchCart();\n\t\t\tunsubscribeRefetchCartAndCalculation();\n\t\t\tunsubscribeOpenDrawerAndRefetchCartAndCalculation();\n\t\t};\n\t}, [orderState, cartState, calculationState, widgetViewState, lineItems]);\n};\n\nexport default useExternalEvents;\n","export enum ProductErrorState {\n\tUnknown = \"unknown_error\",\n\tNetworkError = \"network_error\",\n\tProductLimit = \"product_limit\"\n}\n\nconst PRODUCT_ERROR_CODE_TO_STATE = {\n\t422: ProductErrorState.ProductLimit\n} satisfies Partial<Record<number, ProductErrorState>>;\n\nexport function getErrorStateFromCode(code: number | null): ProductErrorState {\n\tif (code !== null && code in PRODUCT_ERROR_CODE_TO_STATE) {\n\t\treturn PRODUCT_ERROR_CODE_TO_STATE[\n\t\t\tcode as keyof typeof PRODUCT_ERROR_CODE_TO_STATE\n\t\t];\n\t}\n\treturn ProductErrorState.Unknown;\n}\n","import { TimeoutInterceptorHandler } from \".\";\nimport { CustomEventPayloadMap, InternalCustomEvent } from \"../custom-events\";\nimport { logger } from \"../logger\";\n\nexport type FetchInterceptionCallback = (\n\tpayload: CustomEventPayloadMap[InternalCustomEvent.FetchInterception]\n) => void;\n\nfunction createFetchInterceptor(\n\tcallback?: FetchInterceptionCallback\n): TimeoutInterceptorHandler {\n\tlogger.info(\"Initializing fetch interceptor\");\n\n\tconst originalFetch = window.fetch;\n\n\twindow.__rf_original_fetch ??= originalFetch;\n\twindow.fetch.rf_interception = true;\n\n\tconst proxy = new Proxy(originalFetch, {\n\t\tapply: async function (target, arg, argumentsList) {\n\t\t\tconst requestUrl: string | URL = argumentsList[0];\n\n\t\t\t// Call the original fetch and get the response\n\t\t\tconst response = (await Reflect.apply(target, arg, argumentsList)) as\n\t\t\t\t| Response\n\t\t\t\t| undefined;\n\n\t\t\t// Clone the response for our processing (so other scripts can still use the original)\n\t\t\tconst clonedResponse = response?.clone();\n\n\t\t\tcallback?.({\n\t\t\t\tresponse: clonedResponse,\n\t\t\t\trequestUrl\n\t\t\t});\n\n\t\t\treturn response;\n\t\t}\n\t});\n\n\twindow.fetch = proxy;\n\n\t// Return cleanup function\n\treturn (interval: NodeJS.Timeout | undefined) => {\n\t\tif (!window.__rf_original_fetch) return;\n\n\t\tlogger.info(\"Resetting fetch interceptor\");\n\t\twindow.fetch = window.__rf_original_fetch;\n\t\twindow.fetch.rf_interception = false;\n\n\t\tif (interval) {\n\t\t\tclearInterval(interval);\n\t\t}\n\t};\n}\n\nexport default createFetchInterceptor;\n","import { TimeoutInterceptorHandler } from \".\";\nimport {\n\tCustomEventPayloadMap,\n\tInterceptionPayload,\n\tInternalCustomEvent,\n\tXHRResponse\n} from \"../custom-events\";\nimport { logger } from \"../logger\";\n\nexport type XHRInterceptionCallback = (\n\tpayload: CustomEventPayloadMap[InternalCustomEvent.XHRInterception]\n) => void;\n\nfunction createXHRInterceptor(\n\tcallback?: XHRInterceptionCallback\n): TimeoutInterceptorHandler {\n\tlogger.info(\"Initializing XHR interceptor\");\n\n\tconst originalXHR = window.XMLHttpRequest;\n\twindow.__rf_original_xhr ??= originalXHR;\n\n\t// Create a proxy for the XMLHttpRequest constructor\n\tconst XHRProxy = new Proxy(originalXHR, {\n\t\tconstruct: function (target, argumentsList) {\n\t\t\t// Create the original XHR instance\n\t\t\tconst xhr = new target(\n\t\t\t\t...(argumentsList as ConstructorParameters<typeof XMLHttpRequest>)\n\t\t\t);\n\n\t\t\t// Store original methods\n\t\t\tconst originalOpen = xhr.open;\n\t\t\tconst originalSend = xhr.send;\n\n\t\t\t// Track request data\n\t\t\tlet requestUrl: string = \"\";\n\n\t\t\t// Intercept open method to capture URL and method\n\t\t\txhr.open = function (\n\t\t\t\tmethod: string,\n\t\t\t\turl: string,\n\t\t\t\tasync?: boolean,\n\t\t\t\tuser?: string,\n\t\t\t\tpassword?: string\n\t\t\t) {\n\t\t\t\trequestUrl = url;\n\t\t\t\treturn originalOpen.call(\n\t\t\t\t\tthis,\n\t\t\t\t\tmethod,\n\t\t\t\t\turl,\n\t\t\t\t\tasync ?? false,\n\t\t\t\t\tuser,\n\t\t\t\t\tpassword\n\t\t\t\t);\n\t\t\t};\n\n\t\t\t// Intercept send method to capture request body and set up response handling\n\t\t\txhr.send = function (body) {\n\t\t\t\t// Set up event listeners for response handling\n\t\t\t\tconst originalOnReadyStateChange = xhr.onreadystatechange;\n\n\t\t\t\txhr.onreadystatechange = function (event) {\n\t\t\t\t\t// Call original handler first\n\t\t\t\t\tif (originalOnReadyStateChange) {\n\t\t\t\t\t\toriginalOnReadyStateChange.call(this, event);\n\t\t\t\t\t}\n\n\t\t\t\t\t// If request is complete, trigger our callback\n\t\t\t\t\tif (xhr.readyState === XMLHttpRequest.DONE) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcallback?.(resolveXHRPayload(xhr, requestUrl));\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tlogger.error(\"Error in XHR interception callback:\", error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\t// Also handle load event as backup\n\t\t\t\tconst originalOnLoad = xhr.onload;\n\n\t\t\t\txhr.onload = function (event) {\n\t\t\t\t\tif (originalOnLoad) {\n\t\t\t\t\t\toriginalOnLoad.call(this, event);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Trigger callback if onreadystatechange didn't fire\n\t\t\t\t\tif (xhr.readyState === XMLHttpRequest.DONE) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcallback?.(resolveXHRPayload(xhr, requestUrl));\n\t\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t\tlogger.error(\"Error in XHR interception callback:\", error);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn originalSend.call(this, body);\n\t\t\t};\n\n\t\t\treturn xhr;\n\t\t}\n\t});\n\n\t// Mark as intercepted and replace global XMLHttpRequest\n\twindow.XMLHttpRequest.rf_interception = true;\n\twindow.XMLHttpRequest = XHRProxy;\n\n\t// Return cleanup function\n\treturn (interval?: NodeJS.Timeout) => {\n\t\tif (!window.__rf_original_xhr) return;\n\n\t\tlogger.info(\"Resetting XHR interceptor\");\n\t\twindow.XMLHttpRequest = window.__rf_original_xhr;\n\t\twindow.XMLHttpRequest.rf_interception = false;\n\n\t\tif (interval) {\n\t\t\tclearInterval(interval);\n\t\t}\n\t};\n}\n\nfunction resolveXHRPayload(\n\txhr: XMLHttpRequest,\n\turl: string\n): InterceptionPayload {\n\tlet response: XHRResponse;\n\n\tconst isTextResponse = xhr.responseType === \"text\";\n\tconst isJsonResponse =\n\t\txhr.responseType === \"json\" ||\n\t\txhr.getResponseHeader(\"Content-Type\")?.includes(\"application/json\");\n\n\tif (isTextResponse) {\n\t\ttry {\n\t\t\tresponse = JSON.parse(xhr.response);\n\t\t} catch (_) {\n\t\t\t// Ignore JSON parsing errors\n\t\t}\n\t} else if (isJsonResponse) {\n\t\tresponse = xhr.response;\n\t}\n\n\treturn {\n\t\tresponse,\n\t\trequestUrl: url\n\t};\n}\n\nexport default createXHRInterceptor;\n","import { InterceptionResponse } from \"../custom-events\";\nimport {\n\tAutoOpenTriggerEndpoint,\n\tNetworkInterceptionMethod\n} from \"../initialization/types\";\nimport { logger } from \"../logger\";\nimport createFetchInterceptor, { FetchInterceptionCallback } from \"./fetch\";\nimport createXHRInterceptor, { XHRInterceptionCallback } from \"./xhr\";\n\nconst ADD_ENDPOINTS = [\"/cart/add\", \"/cart/add.js\"] as const;\nconst UPDATE_ENDPOINTS = [\"/cart/update\", \"/cart/update.js\"] as const;\nconst CHANGE_ENDPOINTS = [\"/cart/change\", \"/cart/change.js\"] as const;\nconst CLEAR_ENDPOINTS = [\"/cart/clear\", \"/cart/clear.js\"] as const;\n\nconst ENDPOINTS = {\n\tadd: ADD_ENDPOINTS,\n\tupdate: UPDATE_ENDPOINTS,\n\tchange: CHANGE_ENDPOINTS\n} as const satisfies Record<AutoOpenTriggerEndpoint, readonly string[]>;\n\ntype Endpoints = (typeof ENDPOINTS)[keyof typeof ENDPOINTS];\n\nconst ENDPOINTS_TO_INTERCEPT = [\n\t...ADD_ENDPOINTS,\n\t...UPDATE_ENDPOINTS,\n\t...CHANGE_ENDPOINTS,\n\t...CLEAR_ENDPOINTS,\n\t\"/?section_id=cart-drawer\", // Shopify Dawn and other themes use this on item add\n\t\"/api/unstable/graphql.json?operation_name=cartQuery\" // Sometimes Cranks&Coffee calls this on item add\n];\n\ntype InterceptionCallback = FetchInterceptionCallback | XHRInterceptionCallback;\nexport type TimeoutInterceptorHandler = (\n\tinterval?: NodeJS.Timeout | undefined\n) => void;\n\ntype InitializeNetworkOptions = {\n\tmonitor?: boolean;\n\tmethod?: NetworkInterceptionMethod;\n};\n\nexport function initializeNetworkInterceptors(\n\tcallback: InterceptionCallback,\n\topts: InitializeNetworkOptions = {}\n) {\n\tconst { monitor = false, method } = opts;\n\n\tif (method === \"none\") {\n\t\tlogger.warn(\n\t\t\t\"Network interception method set to 'none'; skipping interceptor initialization.\"\n\t\t);\n\t\treturn () => {};\n\t}\n\n\tlet cleanupFetchHandler: TimeoutInterceptorHandler | undefined;\n\tlet cleanupXHRHandler: TimeoutInterceptorHandler | undefined;\n\n\tlet resolvedMethod: Exclude<NetworkInterceptionMethod, \"none\">;\n\n\tswitch (method) {\n\t\tcase \"fetch\": {\n\t\t\tresolvedMethod = \"fetch\";\n\t\t\tcleanupFetchHandler = createFetchInterceptor(callback);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"xhr\": {\n\t\t\tresolvedMethod = \"xhr\";\n\t\t\tcleanupXHRHandler = createXHRInterceptor(callback);\n\t\t\tbreak;\n\t\t}\n\t\tcase \"both\":\n\t\tdefault: {\n\t\t\tresolvedMethod = \"both\";\n\t\t\tcleanupFetchHandler = createFetchInterceptor(callback);\n\t\t\tcleanupXHRHandler = createXHRInterceptor(callback);\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tlogger.info(`Using network interception method: ${resolvedMethod}`);\n\n\tlet interval: NodeJS.Timeout | undefined;\n\n\tif (monitor) {\n\t\tlogger.info(\"Monitoring network interceptors\");\n\n\t\tinterval = setInterval(() => {\n\t\t\tif (cleanupFetchHandler && !window.fetch.rf_interception) {\n\t\t\t\tlogger.info(\"Re-initializing fetch interceptor\");\n\t\t\t\tcleanupFetchHandler(interval);\n\t\t\t\tcleanupFetchHandler = createFetchInterceptor(callback);\n\t\t\t}\n\t\t\tif (cleanupXHRHandler && !window.XMLHttpRequest.rf_interception) {\n\t\t\t\tlogger.info(\"Re-initializing XHR interceptor\");\n\t\t\t\tcleanupXHRHandler(interval);\n\t\t\t\tcleanupXHRHandler = createXHRInterceptor(callback);\n\t\t\t}\n\t\t}, 200);\n\t}\n\n\treturn () => {\n\t\tcleanupFetchHandler?.(interval);\n\t\tcleanupXHRHandler?.(interval);\n\t};\n}\n\nexport interface UrlValidationResult {\n\tisValid: boolean;\n\tisForbidden: boolean;\n\tisTriggerEndpoint: boolean;\n\ttriggerEndpointPaths: Endpoints;\n}\n\nexport function validateInterceptionRequestUrl(\n\trequestUrl: string | undefined | null,\n\ttriggerEndpoint?: AutoOpenTriggerEndpoint\n): UrlValidationResult {\n\tconst triggerEndpointValue = triggerEndpoint ?? \"add\";\n\tconst triggerEndpointPaths = ENDPOINTS[triggerEndpointValue];\n\n\t// Early return for invalid input\n\tif (!requestUrl || typeof requestUrl !== \"string\") {\n\t\treturn {\n\t\t\tisValid: false,\n\t\t\tisForbidden: false,\n\t\t\tisTriggerEndpoint: false,\n\t\t\ttriggerEndpointPaths\n\t\t};\n\t}\n\n\tconst BLOCKED_PATTERNS = [\"?_\", \"rf=true\"];\n\n\t// Check for forbidden patterns\n\tconst isForbidden = BLOCKED_PATTERNS.some(pattern =>\n\t\trequestUrl.includes(pattern)\n\t);\n\n\t// Check if URL matches any intercepted endpoints\n\tconst matchesInterceptedEndpoint = ENDPOINTS_TO_INTERCEPT.some(endpoint =>\n\t\trequestUrl.includes(endpoint)\n\t);\n\n\t// Check if it's an add endpoint (only if valid)\n\tconst isTriggerEndpoint = triggerEndpointPaths.some(endpoint =>\n\t\trequestUrl.includes(endpoint)\n\t);\n\n\tconst isValid = !isForbidden && matchesInterceptedEndpoint;\n\n\t// Early return if not valid\n\tif (!isValid) {\n\t\treturn {\n\t\t\tisValid: false,\n\t\t\tisForbidden,\n\t\t\tisTriggerEndpoint,\n\t\t\ttriggerEndpointPaths\n\t\t};\n\t}\n\n\treturn {\n\t\tisValid: true,\n\t\tisForbidden: false,\n\t\tisTriggerEndpoint,\n\t\ttriggerEndpointPaths\n\t};\n}\n\nexport async function parseInterceptionResponse(\n\tresponse: InterceptionResponse\n): Promise<Record<string, unknown> | undefined> {\n\tif (!response) return undefined;\n\n\tif (response instanceof Response) {\n\t\t// If it's a Response, we need to parse it\n\t\treturn (await response.json().catch(() => undefined)) as\n\t\t\t| Record<string, unknown>\n\t\t\t| undefined;\n\t} else if (typeof response === \"string\") {\n\t\t// If it's a string, attempt to parse as JSON (typically from XHR)\n\t\ttry {\n\t\t\treturn JSON.parse(response);\n\t\t} catch {\n\t\t\treturn undefined;\n\t\t}\n\t}\n\n\treturn response;\n}\n","import { createContext } from \"preact\";\nimport { UseArrayReturn } from \"../hooks/common/use-array\";\n\nexport type CustomError = {\n\tid: string;\n\tmessage: preact.ComponentChildren;\n\tblocking?: boolean; // Indicates if the error is blocking the flow\n};\n\nexport interface IErrorContext\n\textends Omit<UseArrayReturn<CustomError>, \"array\"> {\n\terrors: UseArrayReturn<CustomError>[\"array\"];\n}\n\nexport const ErrorContext = createContext<IErrorContext>({} as IErrorContext);\n","import { useContext } from \"preact/hooks\";\nimport { ErrorContext } from \"../../context/error-context\";\n\nconst useErrors = () => {\n\tconst context = useContext(ErrorContext);\n\tif (!context) {\n\t\tthrow new Error(\"useErrors must be used within an ErrorProvider\");\n\t}\n\treturn context;\n};\n\nexport default useErrors;\n","import { useCallback, useEffect, useState } from \"preact/hooks\";\nimport { useTranslations } from \"use-intl\";\nimport { ReturnViewState, WidgetViewState } from \"../../types\";\nimport {\n\tcompareCarts,\n\tgetCart,\n\tgetRuleProductIds,\n\tnormalizeCart,\n\tupdateCartStorage\n} from \"../../utils/cart\";\nimport customEvents, {\n\tCustomEventPayloadMap,\n\tInternalCustomEvent\n} from \"../../utils/custom-events\";\nimport { getErrorStateFromCode } from \"../../utils/errors\";\nimport {\n\tinitializeNetworkInterceptors,\n\tparseInterceptionResponse,\n\tvalidateInterceptionRequestUrl\n} from \"../../utils/interceptor\";\nimport { logger } from \"../../utils/logger\";\nimport useErrors from \"../context/use-errors\";\nimport useReturnContext from \"../context/use-return-context\";\nimport useToast from \"../context/use-toast\";\nimport useWidgetContext from \"../context/use-widget-context\";\n\nconst useFetchInterceptor = () => {\n\tconst t = useTranslations();\n\tconst { add: addToast } = useToast();\n\tconst { cartState, orderState, calculationState } = useReturnContext();\n\tconst {\n\t\twidgetViewState,\n\t\treturnViewState,\n\t\tconfig: {\n\t\t\tdata: { returnData },\n\t\t\toptions: {\n\t\t\t\tautoOpen,\n\t\t\t\tautoOpenTriggerEndpoint: triggerEndpoint,\n\t\t\t\tautoOpenTriggerMethod: triggerMethod,\n\t\t\t\tmonitorNetworkOverwrites,\n\t\t\t\tnetworkInterceptionMethod\n\t\t\t}\n\t\t}\n\t} = useWidgetContext();\n\tconst errors = useErrors();\n\n\tconst [initialized, setInitialized] = useState(false);\n\n\tuseEffect(() => {\n\t\tif (networkInterceptionMethod !== \"none\") {\n\t\t\tlet resetInterceptor:\n\t\t\t\t| ReturnType<typeof initializeNetworkInterceptors>\n\t\t\t\t| undefined;\n\n\t\t\ttry {\n\t\t\t\t// Initialize the fetch interceptor only once\n\t\t\t\tresetInterceptor = initializeNetworkInterceptors(\n\t\t\t\t\tpayload =>\n\t\t\t\t\t\tcustomEvents.publish(\n\t\t\t\t\t\t\tInternalCustomEvent.FetchInterception,\n\t\t\t\t\t\t\tpayload\n\t\t\t\t\t\t),\n\t\t\t\t\t{\n\t\t\t\t\t\tmonitor: monitorNetworkOverwrites,\n\t\t\t\t\t\tmethod: networkInterceptionMethod\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t\tsetInitialized(true);\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\"Error initializing fetch interceptor:\", error);\n\t\t\t}\n\n\t\t\treturn () => {\n\t\t\t\tresetInterceptor?.();\n\t\t\t};\n\t\t}\n\t\tsetInitialized(false);\n\t}, [monitorNetworkOverwrites, networkInterceptionMethod]);\n\n\ttype FetchInterceptionEvent = CustomEvent<\n\t\tCustomEventPayloadMap[InternalCustomEvent.FetchInterception]\n\t>;\n\n\tconst handleInterceptionEvent = useCallback(\n\t\tasync ({ detail: { response, requestUrl } }: FetchInterceptionEvent) => {\n\t\t\tconst stringifiedUrl =\n\t\t\t\trequestUrl instanceof URL ? requestUrl.toString() : requestUrl;\n\n\t\t\tconst urlValidation = validateInterceptionRequestUrl(\n\t\t\t\tstringifiedUrl,\n\t\t\t\ttriggerEndpoint\n\t\t\t);\n\t\t\tconst { isValid, isForbidden, isTriggerEndpoint } = urlValidation;\n\n\t\t\tif (!isValid || isForbidden) {\n\t\t\t\tlogger.warn(\n\t\t\t\t\t`Intercepted request to ${stringifiedUrl} is invalid or forbidden.`,\n\t\t\t\t\turlValidation\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlogger.info(`Intercepted request to ${stringifiedUrl}`, urlValidation);\n\n\t\t\tlet cartHasChanged = true;\n\n\t\t\tconst order = orderState.value.data;\n\n\t\t\tif (!order) return;\n\n\t\t\tconst originalCart = cartState.value.data?.original;\n\t\t\t// If the order exists, we can proceed with the cart update\n\t\t\tconst newCart = await getCart(false);\n\n\t\t\tconst productRules = order.orderData.productRules;\n\n\t\t\tconst transformedCart = normalizeCart(newCart, productRules);\n\n\t\t\tconst addedItems = newCart.items.filter(item => {\n\t\t\t\tconst existingItem = originalCart?.items.find(\n\t\t\t\t\texistingItem => existingItem.variant_id === item.variant_id\n\t\t\t\t);\n\t\t\t\t// If the item is not in the original cart, it is considered added\n\t\t\t\tif (!existingItem) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// If the item is in the original cart, we check if the quantity has changed\n\t\t\t\treturn existingItem.quantity !== item.quantity;\n\t\t\t});\n\n\t\t\tconst excludedProductIds = getRuleProductIds(\n\t\t\t\tproductRules,\n\t\t\t\t\"NO_EXCHANGE_TO\"\n\t\t\t);\n\n\t\t\tconst matchedExclusions = addedItems.filter(product =>\n\t\t\t\texcludedProductIds.includes(product.product_id)\n\t\t\t);\n\n\t\t\t// Excluded products found from order\n\t\t\tif (matchedExclusions && matchedExclusions.length > 0) {\n\t\t\t\taddToast({\n\t\t\t\t\ttone: \"error\",\n\t\t\t\t\tmessage: t.rich(\"toast.product_exchange_error\", {\n\t\t\t\t\t\tproduct_name: matchedExclusions[0].title,\n\t\t\t\t\t\tb: chunks => (\n\t\t\t\t\t\t\t<span className=\"text-neutral-3 inline-block\">{chunks}</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Bundle products exclusion (exclude products already handled by NO_EXCHANGE_TO)\n\t\t\tconst bundleProducts = addedItems.filter(\n\t\t\t\tproduct =>\n\t\t\t\t\tproduct.has_components &&\n\t\t\t\t\t!matchedExclusions.some(\n\t\t\t\t\t\texcluded => excluded.variant_id === product.variant_id\n\t\t\t\t\t)\n\t\t\t);\n\n\t\t\tif (bundleProducts && bundleProducts.length > 0) {\n\t\t\t\taddToast({\n\t\t\t\t\ttone: \"error\",\n\t\t\t\t\tmessage: t.rich(\"toast.bundle_exchange_error\", {\n\t\t\t\t\t\tproduct_name: bundleProducts[0].title,\n\t\t\t\t\t\tb: chunks => (\n\t\t\t\t\t\t\t<span className=\"text-neutral-3 inline-block\">{chunks}</span>\n\t\t\t\t\t\t)\n\t\t\t\t\t})\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (originalCart && compareCarts(originalCart, newCart, productRules)) {\n\t\t\t\tcartHasChanged = false;\n\t\t\t}\n\n\t\t\tcartState.set({\n\t\t\t\tdata: {\n\t\t\t\t\toriginal: newCart,\n\t\t\t\t\ttransformed: transformedCart\n\t\t\t\t},\n\t\t\t\tpending: false,\n\t\t\t\terror: null\n\t\t\t});\n\n\t\t\tconst responseBody = parseInterceptionResponse(response);\n\n\t\t\tif (cartHasChanged) {\n\t\t\t\tif (responseBody) {\n\t\t\t\t\tlet status: number | undefined;\n\n\t\t\t\t\tif (\"status\" in responseBody) {\n\t\t\t\t\t\tstatus = responseBody.status as number;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (status && !errors.has(status)) {\n\t\t\t\t\t\tconst errState = getErrorStateFromCode(status);\n\t\t\t\t\t\terrors.push({\n\t\t\t\t\t\t\tid: errState,\n\t\t\t\t\t\t\tmessage: t(`product.error.${errState}`)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Trigger calculation with the current cart and return items\n\t\t\t\tcalculationState.query({\n\t\t\t\t\tcart: transformedCart,\n\t\t\t\t\torderId: order.orderData.id,\n\t\t\t\t\tlineItems: returnData?.items || []\n\t\t\t\t});\n\n\t\t\t\tupdateCartStorage(newCart);\n\t\t\t}\n\n\t\t\t// Determine if the widget overlay should be triggered\n\t\t\tswitch (triggerMethod) {\n\t\t\t\tcase \"change\":\n\t\t\t\t\tif (!cartHasChanged) return;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"endpoint\":\n\t\t\t\t\tif (!isTriggerEndpoint) return;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"combination\":\n\t\t\t\tdefault:\n\t\t\t\t\tif (!isTriggerEndpoint || !cartHasChanged) return;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Collapse the return view state\n\t\t\treturnViewState.set(ReturnViewState.Collapsed);\n\t\t\tif (autoOpen !== false) {\n\t\t\t\twidgetViewState.set(WidgetViewState.Open);\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\tt,\n\t\t\treturnData,\n\t\t\tcartState,\n\t\t\torderState,\n\t\t\tcalculationState,\n\t\t\twidgetViewState,\n\t\t\treturnViewState,\n\t\t\tautoOpen,\n\t\t\taddToast,\n\t\t\terrors,\n\t\t\ttriggerEndpoint,\n\t\t\ttriggerMethod\n\t\t]\n\t);\n\n\tuseEffect(() => {\n\t\t// Subscribe to fetch interception events\n\t\tconst unsubsribe = customEvents.subscribe(\n\t\t\tInternalCustomEvent.FetchInterception,\n\t\t\thandleInterceptionEvent\n\t\t);\n\t\treturn () => {\n\t\t\tunsubsribe();\n\t\t};\n\t}, [handleInterceptionEvent]);\n\n\treturn {\n\t\tinitialized\n\t};\n};\n\nexport default useFetchInterceptor;\n","import { useEffect } from \"preact/hooks\";\nimport { logger } from \"../../utils/logger\";\nimport useWidgetContext from \"../context/use-widget-context\";\n\nconst useOverrideScrollBlocking = () => {\n\tconst {\n\t\twidgetViewState,\n\t\tconfig: {\n\t\t\toptions: { overrideScrollBlocking }\n\t\t}\n\t} = useWidgetContext();\n\n\t/* This is a fix for CSM-1094 */\n\tuseEffect(() => {\n\t\tif (!overrideScrollBlocking) return;\n\n\t\tlogger.info(\"Overriding scroll blocking behavior\");\n\n\t\tconst originalPreventDefault = Event.prototype.preventDefault;\n\n\t\t// Override the default preventDefault method\n\t\tEvent.prototype.preventDefault = function () {\n\t\t\tif (\n\t\t\t\tthis.type === \"wheel\" ||\n\t\t\t\tthis.type === \"mousewheel\" ||\n\t\t\t\tthis.type === \"DOMMouseScroll\" ||\n\t\t\t\tthis.type === \"touchmove\"\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\toriginalPreventDefault.call(this);\n\t\t};\n\n\t\treturn () => {\n\t\t\tEvent.prototype.preventDefault = originalPreventDefault;\n\t\t};\n\t}, [overrideScrollBlocking, widgetViewState.value]);\n};\n\nexport default useOverrideScrollBlocking;\n","export const removeInertFromElements = () => {\n\tconst inertElements = document.querySelectorAll(\"[inert]\");\n\tinertElements.forEach(element => {\n\t\telement.removeAttribute(\"inert\");\n\t});\n};\n\nexport function cloneAndReplaceElement<T extends HTMLElement>(element: T): T {\n\tconst parent = element.parentNode;\n\tif (parent) {\n\t\tconst newElement = element.cloneNode(true) as T;\n\t\tparent.replaceChild(newElement, element);\n\t\treturn newElement;\n\t}\n\treturn element;\n}\n","import { useEffect } from \"preact/hooks\";\nimport { WidgetViewState } from \"../../../lib/types\";\nimport { cloneAndReplaceElement } from \"../../../lib/utils/dom\";\nimport { logger } from \"../../../lib/utils/logger\";\nimport useWidgetContext from \"../context/use-widget-context\";\n\nconst useCartActivator = () => {\n\tconst {\n\t\twidgetViewState,\n\t\tconfig: {\n\t\t\toptions: { cartActivatorSelector }\n\t\t}\n\t} = useWidgetContext();\n\n\tuseEffect(() => {\n\t\tif (!cartActivatorSelector) return;\n\n\t\tconst controller = new AbortController();\n\t\tconst processedElements = new WeakSet<Element>();\n\n\t\tconst onActivatorClick = (event: MouseEvent) => {\n\t\t\tlogger.info(\"Cart activator clicked\", event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\twidgetViewState.set(WidgetViewState.Open);\n\t\t};\n\n\t\tconst attachListenersToElements = (elements: NodeListOf<Element>) => {\n\t\t\telements.forEach(element => {\n\t\t\t\t// Skip if we've already processed this element\n\t\t\t\tif (processedElements.has(element)) return;\n\n\t\t\t\ttry {\n\t\t\t\t\t// Clone the element to avoid issues with event listeners\n\t\t\t\t\tconst clone = cloneAndReplaceElement(element as HTMLElement);\n\n\t\t\t\t\t// Remove potential inline onclick attributes\n\t\t\t\t\tclone.removeAttribute(\"onclick\");\n\n\t\t\t\t\t// Add the click event listener to the cloned element\n\t\t\t\t\tclone.addEventListener(\"click\", onActivatorClick, {\n\t\t\t\t\t\tsignal: controller.signal\n\t\t\t\t\t});\n\n\t\t\t\t\t// Mark this element as processed\n\t\t\t\t\tprocessedElements.add(clone);\n\t\t\t\t} catch (error) {\n\t\t\t\t\tlogger.error(\"Failed to attach listener to cart activator\", error);\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\tconst initializeActivators = () => {\n\t\t\ttry {\n\t\t\t\tconst elements = document.querySelectorAll(cartActivatorSelector);\n\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\tlogger.info(\"Attaching click listeners to cart activators\", elements);\n\t\t\t\t\tattachListenersToElements(elements);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.error(\"Failed to set cart activator selector\", error);\n\t\t\t}\n\t\t};\n\n\t\t// Initial setup\n\t\tinitializeActivators();\n\n\t\t// Set up MutationObserver to watch for DOM changes\n\t\tconst observer = new MutationObserver(mutations => {\n\t\t\tlet shouldReinitialize = false;\n\n\t\t\tmutations.forEach(mutation => {\n\t\t\t\t// Check for added nodes\n\t\t\t\tmutation.addedNodes.forEach(node => {\n\t\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t\tconst element = node as Element;\n\n\t\t\t\t\t\t// Check if the added element matches our selector\n\t\t\t\t\t\tif (element.matches?.(cartActivatorSelector)) {\n\t\t\t\t\t\t\tshouldReinitialize = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Check if any children of the added element match our selector\n\t\t\t\t\t\tif (element.querySelectorAll?.(cartActivatorSelector).length > 0) {\n\t\t\t\t\t\t\tshouldReinitialize = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t// Check for removed nodes (optional - helps with cleanup)\n\t\t\t\tmutation.removedNodes.forEach(node => {\n\t\t\t\t\tif (node.nodeType === Node.ELEMENT_NODE) {\n\t\t\t\t\t\tconst element = node as Element;\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\telement.matches?.(cartActivatorSelector) ||\n\t\t\t\t\t\t\telement.querySelectorAll?.(cartActivatorSelector).length > 0\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t// Element was removed - WeakSet will automatically handle cleanup\n\t\t\t\t\t\t\t// since removed elements become unreachable\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tif (shouldReinitialize) {\n\t\t\t\tlogger.info(\"Reinitializing cart activators\");\n\t\t\t\t// Small delay to ensure DOM is fully updated\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tinitializeActivators();\n\t\t\t\t}, 0);\n\t\t\t}\n\t\t});\n\n\t\t// Start observing\n\t\tobserver.observe(document.body, {\n\t\t\tchildList: true, // Watch for added/removed children\n\t\t\tsubtree: true, // Watch the entire subtree\n\t\t\tattributes: false, // We don't need attribute changes\n\t\t\tcharacterData: false // We don't need text content changes\n\t\t});\n\n\t\treturn () => {\n\t\t\t// Cleanup\n\t\t\tcontroller.abort();\n\t\t\tobserver.disconnect();\n\t\t};\n\t}, [cartActivatorSelector, widgetViewState]);\n};\n\nexport default useCartActivator;\n","import useApiBridge from \"../../lib/hooks/feature/use-api-bridge\";\nimport useExternalEvents from \"../../lib/hooks/feature/use-external-events\";\nimport useFetchInterceptor from \"../../lib/hooks/feature/use-fetch-interceptor\";\nimport useOverrideScrollBlocking from \"../../lib/hooks/feature/use-override-scroll-blocking\";\nimport useCartActivator from \"../../lib/hooks/feature/use-cart-activator\";\n\n// Handles the initialization of all necessary interceptors and contexts\n// Note: This is handled as a component, so the context providers can be used within hooks\nconst InitializationHandler = () => {\n\t// Initialize the fetch interceptor to handle incoming HTTP requests\n\tuseFetchInterceptor();\n\n\t// Initialize the cart activator to manage cart-related interactions\n\tuseCartActivator();\n\n\t// Override scroll blocking behavior if configured\n\tuseOverrideScrollBlocking();\n\n\t// Handle external custom events\n\tuseExternalEvents();\n\n\t// Register the API bridge for programmatic control\n\tuseApiBridge();\n\n\treturn null;\n};\n\nexport default InitializationHandler;\n","import useIsMounted from \"../lib/hooks/common/use-is-mounted\";\n\nconst IsMounted = ({ children }: { children: preact.ComponentChildren }) => {\n\tconst mounted = useIsMounted();\n\n\tif (!mounted) return null;\n\n\treturn children;\n};\n\nexport default IsMounted;\n","import { useCallback, useState } from \"preact/hooks\";\n\ntype ArrayId = string | number;\n\ninterface ArrayItem {\n\tid: ArrayId;\n}\n\nexport interface UseArrayReturn<T extends ArrayItem> {\n\tarray: T[];\n\tset: (newArray: T[]) => void;\n\tpush: (item: T) => void;\n\tremove: (id: ArrayId) => void;\n\tclear: () => void;\n\thas: (id: ArrayId) => boolean;\n}\n\nconst useArray = <T extends ArrayItem>(\n\tinitialArray: T[] = []\n): UseArrayReturn<T> => {\n\tconst [array, setArray] = useState<T[]>(initialArray);\n\n\tconst set = useCallback((newArray: T[]) => {\n\t\tsetArray(newArray);\n\t}, []);\n\n\tconst push = useCallback((item: T | T[]) => {\n\t\tsetArray(prev => {\n\t\t\tif (Array.isArray(item)) {\n\t\t\t\tconst filtered = item.filter(i => !prev.some(p => p.id === i.id));\n\t\t\t\treturn [...prev, ...filtered];\n\t\t\t}\n\t\t\tif (prev.some(p => p.id === item.id)) {\n\t\t\t\treturn prev; // Avoid duplicates\n\t\t\t}\n\t\t\treturn [...prev, item];\n\t\t});\n\t}, []);\n\n\tconst remove = useCallback((id: ArrayId) => {\n\t\tsetArray(prev => prev.filter(item => item.id !== id));\n\t}, []);\n\n\tconst clear = useCallback(() => {\n\t\tsetArray([]);\n\t}, []);\n\n\tconst has = useCallback(\n\t\t(id: ArrayId) => {\n\t\t\treturn array.some(item => item.id === id);\n\t\t},\n\t\t[array]\n\t);\n\n\treturn {\n\t\tarray,\n\t\tset,\n\t\tpush,\n\t\tremove,\n\t\tclear,\n\t\thas\n\t};\n};\n\nexport default useArray;\n","import { ReactNode } from \"preact/compat\";\nimport { useMemo } from \"preact/hooks\";\nimport { Fragment } from \"preact/jsx-runtime\";\nimport { useTranslations } from \"use-intl\";\nimport {\n\tCustomError,\n\tErrorContext,\n\tIErrorContext\n} from \"../../lib/context/error-context\";\nimport useArray from \"../../lib/hooks/common/use-array\";\nimport useReturnContext from \"../../lib/hooks/context/use-return-context\";\nimport { getRuleProductIds } from \"../../lib/utils/cart\";\nimport { stripShopifyId } from \"../../lib/utils/shopify\";\n\nconst ErrorProvider = ({\n\tchildren\n}: {\n\tchildren: preact.ComponentChildren;\n}) => {\n\tconst t = useTranslations();\n\tconst { array: errors, ...methods } = useArray<CustomError>();\n\tconst { cartState, orderState, calculationState } = useReturnContext();\n\n\tconst orderData = orderState.value.data?.orderData;\n\tconst calcItems = calculationState.value.data?.lineItems;\n\tconst cartItemCount = cartState.value.data?.transformed.item_count ?? 0;\n\n\t// Combine errors that are pushed from anywhere in within the context with static errors\n\t// These static errors are based on the order data and calculation items\n\tconst resolvedErrors: CustomError[] = useMemo(() => {\n\t\tconst trackedErrors: CustomError[] = [];\n\t\tif (orderData && calcItems && Array.isArray(calcItems)) {\n\t\t\t// Reufund window expired error\n\t\t\tconst { refundReturnWindow = true } = orderData.returnWindows ?? {};\n\n\t\t\tconst errorId = \"refund-window-expired\";\n\n\t\t\tif (!refundReturnWindow && cartItemCount === 0) {\n\t\t\t\tconst message: string | preact.ComponentChildren = t(\n\t\t\t\t\t\"product.error.refund_expired\"\n\t\t\t\t);\n\n\t\t\t\ttrackedErrors.push({\n\t\t\t\t\tid: errorId,\n\t\t\t\t\tmessage,\n\t\t\t\t\tblocking: true\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t// Product rules\n\t\t\tconst noRefundItemIds = getRuleProductIds(\n\t\t\t\torderData.productRules,\n\t\t\t\t\"NO_REFUND\"\n\t\t\t);\n\t\t\tconst noRefundItems = calcItems.filter(item => {\n\t\t\t\tconst strippedId = stripShopifyId(item.productId);\n\t\t\t\tif (!strippedId) return false;\n\t\t\t\treturn noRefundItemIds.includes(Number(strippedId));\n\t\t\t});\n\n\t\t\tif (noRefundItems.length > 0 && cartItemCount === 0) {\n\t\t\t\tconst joinedProductNames = noRefundItems\n\t\t\t\t\t.map(item => {\n\t\t\t\t\t\tconst product = orderData.productsToExchange.find(\n\t\t\t\t\t\t\tp => p.id === item.id\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (!product) return null;\n\n\t\t\t\t\t\tlet title = product.title;\n\t\t\t\t\t\tif (product.variantTitle) {\n\t\t\t\t\t\t\ttitle += ` (${product.variantTitle})`;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn title;\n\t\t\t\t\t})\n\t\t\t\t\t.filter(Boolean)\n\t\t\t\t\t.join(\", \");\n\n\t\t\t\tconst message = t.rich(\"product.error.no_refund\", {\n\t\t\t\t\tproduct_name: joinedProductNames,\n\t\t\t\t\tb: chunks => {\n\t\t\t\t\t\tif (!chunks) return null;\n\t\t\t\t\t\tconst splitChunks = (chunks as NonNullable<ReactNode>)\n\t\t\t\t\t\t\t.toString()\n\t\t\t\t\t\t\t.split(\", \");\n\n\t\t\t\t\t\treturn splitChunks.map((chunk, index) => {\n\t\t\t\t\t\t\tlet dividerString: string | null = null;\n\n\t\t\t\t\t\t\tif (index === splitChunks.length - 2) {\n\t\t\t\t\t\t\t\tdividerString = ` ${t(\"common.and\")} `;\n\t\t\t\t\t\t\t} else if (index < splitChunks.length - 1) {\n\t\t\t\t\t\t\t\tdividerString = \", \";\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Fragment key={index}>\n\t\t\t\t\t\t\t\t\t<span className=\"text-neutral-3\">{chunk}</span>\n\t\t\t\t\t\t\t\t\t{dividerString}\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\ttrackedErrors.push({\n\t\t\t\t\tid: errorId,\n\t\t\t\t\tmessage,\n\t\t\t\t\tblocking: true\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn trackedErrors.concat(errors);\n\t}, [errors, orderData, calcItems, cartItemCount, t]);\n\n\tconst contextValue: IErrorContext = {\n\t\terrors: resolvedErrors,\n\t\t...methods\n\t};\n\n\treturn (\n\t\t<ErrorContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</ErrorContext.Provider>\n\t);\n};\n\nexport default ErrorProvider;\n","import { useCallback, useEffect, useRef, useState } from \"preact/hooks\";\nimport { logger } from \"../../utils/logger\";\n\ntype IAsyncStatePending<T> = {\n\tdata: T | null;\n\tpending: true;\n\terror: null;\n};\n\ntype IAsyncStateResolved<T> = {\n\tdata: T | null;\n\tpending: false;\n\terror: null;\n};\n\ntype IAsyncStateError = {\n\tdata: null;\n\tpending: false;\n\terror: Error;\n};\n\nexport type IAsyncState<T> =\n\t| IAsyncStatePending<T>\n\t| IAsyncStateResolved<T>\n\t| IAsyncStateError;\n\ntype TAsyncStateCommonProps<T> = {\n\tid?: string;\n\tinitialValue?: T | null;\n\tqueryOnInit?: boolean;\n\tstartCount?: number;\n\tonError?: (error: Error) => void;\n};\n\ntype TUseAsyncStatePropsWithoutParams<T> = TAsyncStateCommonProps<T> & {\n\tqueryFn: (count: number) => T | Promise<T>;\n};\n\ntype TUseAsyncStatePropsWithParams<\n\tT,\n\tP = undefined\n> = TAsyncStateCommonProps<T> & {\n\tqueryFn: (count: number, params: P) => T | Promise<T>;\n\tinitialParams?: P;\n};\n\n// Props interface with conditional queryFn and conditional initialParams\ntype TUseAsyncStateProps<T, P = undefined> = P extends undefined\n\t? TUseAsyncStatePropsWithoutParams<T>\n\t: TUseAsyncStatePropsWithParams<T, P>;\n\nexport interface IUseAsyncStateReturn<T, P = undefined> {\n\tvalue: IAsyncState<T>;\n\tset: React.Dispatch<React.SetStateAction<IAsyncState<T>>>;\n\tquery: P extends undefined ? () => Promise<T> : (params: P) => Promise<T>;\n\tinitialFetch: boolean;\n\tcount: number;\n}\n\nconst useAsyncState = <T, Params = undefined>(\n\tprops: TUseAsyncStateProps<T, Params>\n): IUseAsyncStateReturn<T, Params> => {\n\tconst {\n\t\tid,\n\t\tinitialValue = null,\n\t\tqueryFn,\n\t\tqueryOnInit = true,\n\t\tonError,\n\t\tstartCount = 0\n\t} = props;\n\n\tconst [state, setState] = useState<IAsyncState<T>>({\n\t\tdata: initialValue,\n\t\tpending: queryOnInit,\n\t\terror: null\n\t} as IAsyncStatePending<T>);\n\tconst initialRender = useRef(true);\n\n\tconst [countState, setCountState] = useState(startCount);\n\tconst countRef = useRef(countState);\n\n\tconst query = useCallback(\n\t\t(...args: Params extends undefined ? [] : [Params]): Promise<T | null> => {\n\t\t\tconst params = args[0] as Params;\n\n\t\t\t// Increment count at the START and capture it for this request\n\t\t\tconst requestCount = countRef.current + 1;\n\t\t\tcountRef.current = requestCount;\n\t\t\tsetCountState(requestCount);\n\n\t\t\tsetState(prev => ({\n\t\t\t\t...prev,\n\t\t\t\tpending: true,\n\t\t\t\terror: null\n\t\t\t}));\n\n\t\t\tconst run = async () => {\n\t\t\t\ttry {\n\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t`AsyncState Query Started (Count: ${requestCount})`,\n\t\t\t\t\t\tid ? ` (ID: ${id})` : \"\"\n\t\t\t\t\t);\n\t\t\t\t\tconst data = await (args.length === 0\n\t\t\t\t\t\t? (queryFn as (count: number) => T | Promise<T>)(requestCount)\n\t\t\t\t\t\t: (queryFn as (count: number, params: Params) => T | Promise<T>)(\n\t\t\t\t\t\t\t\trequestCount,\n\t\t\t\t\t\t\t\tparams\n\t\t\t\t\t\t\t));\n\n\t\t\t\t\t// Only update state if this is still the latest request\n\t\t\t\t\tif (countRef.current !== requestCount) {\n\t\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t\t`AsyncState Query Stale - Ignoring (Count: ${requestCount}, Current: ${countRef.current})`,\n\t\t\t\t\t\t\tid ? ` (ID: ${id})` : \"\"\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Success handling\n\t\t\t\t\tsetState({\n\t\t\t\t\t\tdata,\n\t\t\t\t\t\tpending: false,\n\t\t\t\t\t\terror: null\n\t\t\t\t\t});\n\t\t\t\t\tlogger.info(\n\t\t\t\t\t\t`AsyncState Query Resolved (Count: ${requestCount})`,\n\t\t\t\t\t\tid ? ` (ID: ${id})` : \"\",\n\t\t\t\t\t\tdata\n\t\t\t\t\t);\n\t\t\t\t\treturn data;\n\t\t\t\t} catch (err) {\n\t\t\t\t\t// Only update state if this is still the latest request\n\t\t\t\t\tif (countRef.current !== requestCount) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Error handling\n\t\t\t\t\tconst error = err as Error;\n\n\t\t\t\t\tlet consoleMessage = `AsyncState Query Failed (Count: ${requestCount})`;\n\n\t\t\t\t\tif (id) {\n\t\t\t\t\t\tconsoleMessage += ` (ID: ${id})`;\n\t\t\t\t\t}\n\n\t\t\t\t\tlogger.error(`${consoleMessage}:`, `[${error}]`, params);\n\n\t\t\t\t\tsetState({\n\t\t\t\t\t\tdata: null,\n\t\t\t\t\t\tpending: false,\n\t\t\t\t\t\terror\n\t\t\t\t\t});\n\t\t\t\t\tonError?.(error);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treturn run();\n\t\t},\n\t\t[queryFn, id, onError]\n\t);\n\n\tuseEffect(() => {\n\t\tif (initialRender.current && queryOnInit) {\n\t\t\tinitialRender.current = false;\n\t\t\tconst initialParams = props as TUseAsyncStatePropsWithParams<T, Params>;\n\t\t\tif (initialParams !== undefined && \"initialParams\" in initialParams) {\n\t\t\t\t(query as (params: Params) => Promise<T>)(\n\t\t\t\t\tinitialParams.initialParams as Params\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\t(query as () => Promise<T>)();\n\t\t\t}\n\t\t}\n\t}, [query, queryOnInit, props]);\n\n\tconst initialFetch = state.pending && state.data === null;\n\n\treturn {\n\t\tvalue: state,\n\t\tset: setState,\n\t\tquery: query as IUseAsyncStateReturn<T, Params>[\"query\"],\n\t\tcount: countState,\n\t\tinitialFetch\n\t};\n};\n\nexport default useAsyncState;\n","import { useMemo } from \"preact/hooks\";\nimport { SEARCH_PARAM_ID_NAME } from \"../../lib/constants\";\nimport {\n\tIReturnContext,\n\tReturnContext\n} from \"../../lib/context/return-context\";\nimport useOnce from \"../../lib/hooks/common/use-once\";\nimport type { IUseAsyncStateReturn } from \"../../lib/hooks/common/use-async-state\";\nimport useAsyncState from \"../../lib/hooks/common/use-async-state\";\nimport useWidgetContext from \"../../lib/hooks/context/use-widget-context\";\nimport {\n\tCalculationResponse,\n\tReturnViewState,\n\tShopifyCart,\n\tShopifyCartChangeResponse\n} from \"../../lib/types\";\nimport {\n\tgetCalculation,\n\tprocessOrderInitialization,\n\tProcessOrderInitializationReturn\n} from \"../../lib/utils/api\";\nimport { getCart, normalizeCart } from \"../../lib/utils/cart\";\nimport { ReturnDataState, updateSessionCache } from \"../../lib/utils/session\";\nimport { normalizeShopifyPrice } from \"../../lib/utils/shopify\";\n\ninterface ReturnContextProviderProps {\n\tchildren: preact.ComponentChildren;\n}\n\nexport interface CalculationParams {\n\tcart: ShopifyCart;\n\torderId: string;\n\tlineItems: ReturnDataState[\"items\"];\n}\n\ntype Cart = ShopifyCart | ShopifyCartChangeResponse;\n\nexport interface CartState {\n\ttransformed: Cart;\n\toriginal: Cart;\n}\n\nconst ReturnContextProvider = ({ children }: ReturnContextProviderProps) => {\n\tconst { returnViewState, config } = useWidgetContext();\n\n\tconst isFirstLoad = config.isFirstLoad;\n\n\tconst cartState = useAsyncState<CartState, ProcessOrderInitializationReturn>({\n\t\tid: \"cart\",\n\t\tqueryOnInit: false,\n\t\tqueryFn: async (\n\t\t\tqueryCount: number,\n\t\t\torderResult: ProcessOrderInitializationReturn\n\t\t) => {\n\t\t\tconst pathname = window.location.pathname;\n\t\t\tconst isCartPage = pathname.startsWith(\"/cart\");\n\n\t\t\tconst isFirstQuery = queryCount === 1;\n\n\t\t\tconst shouldFetchFreshCart = !isFirstQuery || isCartPage;\n\n\t\t\tconst cart = await getCart(!shouldFetchFreshCart);\n\n\t\t\tif (cart.item_count !== 0 && isFirstQuery) {\n\t\t\t\t// If the cart has items and this is the first query, collapse the return view state\n\t\t\t\treturnViewState.set(ReturnViewState.Collapsed);\n\t\t\t}\n\n\t\t\tconst transformedCart = normalizeCart(\n\t\t\t\tcart,\n\t\t\t\torderResult.orderData.productRules\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\ttransformed: transformedCart,\n\t\t\t\toriginal: cart\n\t\t\t};\n\t\t}\n\t});\n\n\t// Initialize the order state & set cookies/storage\n\tconst orderState = useAsyncState<ProcessOrderInitializationReturn>({\n\t\tid: \"order\",\n\t\tqueryFn: async () => {\n\t\t\tconst result = await processOrderInitialization(config);\n\n\t\t\tif (result.updatedCart && isFirstLoad) {\n\t\t\t\tconst normalizedCart = normalizeCart(\n\t\t\t\t\tresult.updatedCart,\n\t\t\t\t\tresult.orderData.productRules\n\t\t\t\t);\n\t\t\t\tcartState.set({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\toriginal: result.updatedCart,\n\t\t\t\t\t\ttransformed: normalizedCart\n\t\t\t\t\t},\n\t\t\t\t\tpending: false,\n\t\t\t\t\terror: null\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcartState.query(result);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\t});\n\n\tconst calculationState = useAsyncState<\n\t\tCalculationResponse,\n\t\tCalculationParams\n\t>({\n\t\tid: \"calculation\",\n\t\tqueryOnInit: false,\n\t\tqueryFn: async (_: unknown, params: CalculationParams) => {\n\t\t\tconst internalId = config.id;\n\t\t\tconst cartItems = params.cart?.items || [];\n\t\t\t// Update session cache with the current cart items\n\t\t\tif (internalId) {\n\t\t\t\tconst { origin, pathname, search } = window.location;\n\n\t\t\t\tconst searchParams = new URLSearchParams(search);\n\n\t\t\t\tsearchParams.set(SEARCH_PARAM_ID_NAME, internalId);\n\n\t\t\t\tconst lastPath = `${origin}${pathname}?${searchParams.toString()}`;\n\n\t\t\t\tconst formattedCartItems = Array.isArray(cartItems)\n\t\t\t\t\t? cartItems.map(item => ({\n\t\t\t\t\t\t\tvariantId: item.variant_id,\n\t\t\t\t\t\t\thandle: item.handle,\n\t\t\t\t\t\t\tprice: normalizeShopifyPrice(item.price), // Convert cents to dollars\n\t\t\t\t\t\t\ttitle: item.product_title,\n\t\t\t\t\t\t\tvariantTitle: item.variant_title ?? \"\",\n\t\t\t\t\t\t\timage: item.image,\n\t\t\t\t\t\t\tquantity: item.quantity || 1\n\t\t\t\t\t\t}))\n\t\t\t\t\t: [];\n\n\t\t\t\tupdateSessionCache(internalId, {\n\t\t\t\t\tlastPath,\n\t\t\t\t\treturnItems: formattedCartItems\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tconst labelCount = config.data.returnData?.numOfLabels ?? 1;\n\t\t\treturn getCalculation(params, labelCount);\n\t\t}\n\t});\n\n\tconst [initialized] = useOnce(\n\t\tresolve => {\n\t\t\tconst order = orderState.value.data;\n\t\t\tconst cart = cartState.value.data?.transformed;\n\t\t\tif (order && cart) {\n\t\t\t\tresolve();\n\t\t\t\tconst lineItems = config.data.returnData?.items ?? [];\n\t\t\t\tcalculationState.query({\n\t\t\t\t\tcart,\n\t\t\t\t\torderId: order.orderData.id,\n\t\t\t\t\tlineItems\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\torderState.value.data,\n\t\t\tcartState.value.data,\n\t\t\tcalculationState.query,\n\t\t\tconfig.data.returnData?.items\n\t\t]\n\t);\n\n\tconst isPending =\n\t\t!initialized || cartState.value.pending || calculationState.value.pending;\n\n\tconst contextError = useMemo(\n\t\t() =>\n\t\t\torderState.value.error ||\n\t\t\tcartState.value.error ||\n\t\t\tcalculationState.value.error,\n\t\t[\n\t\t\torderState.value.error,\n\t\t\tcartState.value.error,\n\t\t\tcalculationState.value.error\n\t\t]\n\t);\n\n\tconst hasFailed = Boolean(contextError);\n\n\tconst contextValue = useMemo(\n\t\t(): IReturnContext => ({\n\t\t\torderState:\n\t\t\t\torderState as IUseAsyncStateReturn<ProcessOrderInitializationReturn>,\n\t\t\tcartState,\n\t\t\tcalculationState,\n\t\t\tisPending,\n\t\t\thasFailed\n\t\t}),\n\t\t[orderState, cartState, calculationState, isPending, hasFailed]\n\t);\n\n\treturn (\n\t\t<ReturnContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</ReturnContext.Provider>\n\t);\n};\n\nexport default ReturnContextProvider;\n","import { useMemo } from \"preact/hooks\";\nimport { hexToHsl } from \"../../utils/helpers\";\nimport useWidgetContext from \"./use-widget-context\";\n\nconst useTheme = () => {\n\tconst {\n\t\tconfig: { theme }\n\t} = useWidgetContext();\n\n\tconst themeVariables = useMemo(() => {\n\t\tif (!theme) return;\n\t\treturn Object.entries(theme).reduce<Record<string, string>>(\n\t\t\t(acc, [key, color]) => {\n\t\t\t\tconst convertedColor = hexToHsl(color);\n\t\t\t\tconst propertyKey = `--${key}`;\n\t\t\t\tacc[propertyKey] = convertedColor;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{} as Record<string, string>\n\t\t) as React.CSSProperties;\n\t}, [theme]);\n\n\treturn {\n\t\ttheme,\n\t\tcssVariables: themeVariables\n\t};\n};\n\nexport default useTheme;\n","import { useRef } from \"preact/hooks\";\nimport { ROOT_ELEMENT_ID } from \"../../lib/constants\";\nimport { RootContext } from \"../../lib/context/root-context\";\nimport useTheme from \"../../lib/hooks/context/use-theme\";\n\nconst RootProvider = (\n\tprops: Omit<\n\t\tReact.HTMLAttributes<HTMLDivElement>,\n\t\t\"id\" | \"style\" | \"className\"\n\t>\n) => {\n\tconst rootRef = useRef<HTMLDivElement | null>(null);\n\tconst { cssVariables } = useTheme();\n\n\treturn (\n\t\t<RootContext.Provider value={rootRef}>\n\t\t\t<div\n\t\t\t\t/* stopPropagation was added to prevent double clicks in ios safari */\n\t\t\t\t/* Fix for CSM-1094 */\n\t\t\t\tonTouchStart={e => e.stopPropagation()}\n\t\t\t\tclassName=\"rf-root\"\n\t\t\t\tref={rootRef}\n\t\t\t\tid={ROOT_ELEMENT_ID}\n\t\t\t\tstyle={cssVariables}\n\t\t\t\t{...props}\n\t\t\t/>\n\t\t</RootContext.Provider>\n\t);\n};\n\nexport default RootProvider;\n","import { useMemo } from \"preact/hooks\";\nimport {\n\tIWidgetContext,\n\tWidgetContext\n} from \"../../lib/context/widget-context\";\nimport useValueState from \"../../lib/hooks/common/use-value-state\";\nimport { ReturnViewState, WidgetViewState } from \"../../lib/types\";\nimport customEvents, {\n\tInternalCustomEvent\n} from \"../../lib/utils/custom-events\";\nimport { removeInertFromElements } from \"../../lib/utils/dom\";\nimport { WidgetConfiguration } from \"../../lib/utils/initialization/types\";\n\ninterface WidgetContextProviderProps extends WidgetConfiguration {\n\tchildren: preact.ComponentChildren;\n}\n\nconst WidgetContextProvider = ({\n\tchildren,\n\t...config\n}: WidgetContextProviderProps) => {\n\t// Drawer state (collapsed, expanded, etc.)\n\tconst widgetViewState = useValueState<WidgetViewState>(\n\t\tWidgetViewState.Collapsed,\n\t\tstate => {\n\t\t\tcustomEvents.publish(InternalCustomEvent.DrawerStateChange, { state });\n\t\t\t// (DEV-1559) Ensure inert is removed from elements when drawer state changes\n\t\t\tremoveInertFromElements();\n\t\t}\n\t);\n\t// Inner drawer state: return product list state (collapsed, expanded, etc.)\n\tconst returnViewState = useValueState<ReturnViewState>(ReturnViewState.Open);\n\n\tconst contextValue = useMemo(\n\t\t(): IWidgetContext => ({\n\t\t\twidgetViewState,\n\t\t\treturnViewState,\n\t\t\tconfig\n\t\t}),\n\t\t[widgetViewState, returnViewState, config]\n\t);\n\n\treturn (\n\t\t<WidgetContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</WidgetContext.Provider>\n\t);\n};\n\nexport default WidgetContextProvider;\n","import { useCallback, useState } from \"preact/hooks\";\nimport {\n\tDEFAULT_TOAST_DURATION,\n\tIToastContext,\n\tTOAST_ANIMATION_DURATION,\n\tToastConfiguration,\n\tToastContext\n} from \"../../lib/context/toast-context\";\nimport { ToastQueue } from \"./toast\";\n\nconst ToastProvider = ({\n\tchildren\n}: {\n\tchildren: preact.ComponentChildren;\n}) => {\n\tconst [queue, setQueue] = useState<ToastQueue[]>([]);\n\n\tconst remove = useCallback((id: string) => {\n\t\tsetQueue(prev =>\n\t\t\tprev.map(toast => {\n\t\t\t\tif (toast.id === id) {\n\t\t\t\t\t// Optionally, you can call the onClose callback if it exists\n\t\t\t\t\ttoast.onClose?.();\n\t\t\t\t}\n\t\t\t\treturn toast.id === id ? { ...toast, isVisible: false } : toast;\n\t\t\t})\n\t\t);\n\t\t// Set a timeout to remove the toast from the queue after the animation duration\n\t\tsetTimeout(() => {\n\t\t\tsetQueue(prev => prev.filter(toast => toast.id !== id));\n\t\t}, TOAST_ANIMATION_DURATION); // Adjust the timeout to match your animation duration\n\t}, []);\n\n\tconst add = useCallback(\n\t\t({ duration = DEFAULT_TOAST_DURATION, ...options }: ToastConfiguration) => {\n\t\t\tconst id = options.id || generateToastId();\n\n\t\t\tsetQueue(prev => {\n\t\t\t\tconst newToast = {\n\t\t\t\t\t...options,\n\t\t\t\t\tid,\n\t\t\t\t\tduration,\n\t\t\t\t\tisVisible: true\n\t\t\t\t};\n\t\t\t\treturn [...prev, newToast];\n\t\t\t});\n\n\t\t\tsetTimeout(() => remove(id), duration);\n\n\t\t\treturn id;\n\t\t},\n\t\t[remove]\n\t);\n\n\tconst clear = useCallback(() => {\n\t\tsetQueue(prev =>\n\t\t\tprev.map(toast => {\n\t\t\t\t// Optionally, you can call the onClose callback for each toast\n\t\t\t\ttoast.onClose?.();\n\t\t\t\treturn { ...toast, isVisible: false };\n\t\t\t})\n\t\t);\n\t\t// Set a timeout to clear the queue after the animation duration\n\t\tsetTimeout(() => {\n\t\t\tsetQueue([]);\n\t\t}, TOAST_ANIMATION_DURATION); // Adjust the timeout to match your animation duration\n\t}, []);\n\n\tconst contextValue: IToastContext = {\n\t\tqueue,\n\t\tadd,\n\t\tremove,\n\t\tclear\n\t};\n\n\treturn (\n\t\t<ToastContext.Provider value={contextValue}>\n\t\t\t{children}\n\t\t</ToastContext.Provider>\n\t);\n};\n\nfunction generateToastId() {\n\treturn `toast-${Math.random().toString(36).substr(2, 9)}`;\n}\n\nexport default ToastProvider;\n","const ActionIcon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={21}\n\t\theight={21}\n\t\tviewBox=\"0 0 21 21\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--action ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<rect\n\t\t\tx={0.5}\n\t\t\ty={0.679}\n\t\t\twidth={20}\n\t\t\theight={20}\n\t\t\trx={10}\n\t\t\tclassName=\"fill-[var(--icon-fill-1,_#000)]\"\n\t\t/>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M11.517 6.04q.088.055.127.157c.025.066.03.14.013.209l-.775 3.13h2.826q.088 0 .16.052a.3.3 0 0 1 .108.14.35.35 0 0 1-.055.348l-4.083 4.822a.3.3 0 0 1-.168.098.27.27 0 0 1-.187-.037.3.3 0 0 1-.127-.156.35.35 0 0 1-.013-.21l.775-3.129H7.292a.27.27 0 0 1-.16-.053.3.3 0 0 1-.108-.14.35.35 0 0 1 .055-.348l4.083-4.821a.3.3 0 0 1 .168-.098.27.27 0 0 1 .187.037\"\n\t\t\tclassName=\"fill-[var(--icon-fill-2,_#fff)]\"\n\t\t/>\n\t</svg>\n);\nexport default ActionIcon;\n","const InfoIcon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={21}\n\t\theight={21}\n\t\tviewBox=\"0 0 21 21\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--info ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\tclassName=\"fill-[var(--icon-fill-2,_#fff)]\"\n\t\t\td=\"M6.856 4.628h7.288v12.226H6.856z\"\n\t\t/>\n\t\t<path\n\t\t\tclassName=\"fill-[var(--icon-fill-1,_#000)]\"\n\t\t\td=\"M17.572 3.67C13.666-.235 7.335-.236 3.429 3.67c-3.905 3.905-3.905 10.237 0 14.143 3.905 3.904 10.237 3.904 14.143 0 3.905-3.906 3.904-10.238 0-14.143m-5.768 11.419a1.304 1.304 0 1 1-2.609 0V9.87a1.304 1.304 0 1 1 2.61 0zm-1.327-7.447c-.752 0-1.252-.532-1.237-1.19-.015-.688.485-1.204 1.252-1.204s1.252.516 1.268 1.205c0 .657-.5 1.189-1.283 1.189\"\n\t\t/>\n\t</svg>\n);\nexport default InfoIcon;\n","const GiftcardIcon = ({\n\tclassName,\n\t...props\n}: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={20}\n\t\theight={15}\n\t\tviewBox=\"0 0 20 15\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--giftcard fill-[var(--icon-fill-1,_currentColor)] ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path d=\"M8.23 3.129c-.288 0-.602.11-.82.37-.284.342-.373 1.362-.363 1.877.48.012 1.4-.001 1.771-.395.39-.411.496-1.13.082-1.568a.9.9 0 0 0-.67-.284m-3.666 0c.288 0 .603.11.82.37.284.342.373 1.362.363 1.877-.48.012-1.399-.001-1.77-.395-.39-.411-.496-1.13-.083-1.568a.9.9 0 0 1 .67-.284\" />\n\t\t<path d=\"M9.806 2.447c.73.773.828 1.99.328 2.929H20V1.948C20 .872 19.178 0 18.165 0H7.038v2.103c.9-.54 2.036-.43 2.768.344.417.44-.732-.775 0 0M4.347 9.21l-.91-.962L4.85 6.74H0v6.312C0 14.128.821 15 1.835 15h3.919V7.71zm3.589-2.47L9.33 8.236l-.912.959-1.38-1.48V15h11.126C19.18 15 20 14.128 20 13.052V6.74zM2.659 5.376c-.5-.939-.403-2.157.327-2.929.732-.775 1.869-.883 2.768-.344V0h-3.92C.822 0 0 .872 0 1.948v3.428z\" />\n\t</svg>\n);\nexport default GiftcardIcon;\n","const WarningIcon = ({\n\tclassName,\n\t...props\n}: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={30}\n\t\theight={27}\n\t\tviewBox=\"0 0 30 27\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--warning fill-[var(--icon-fill-1,_#000)] ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path d=\"M15 18.904c-.81 0-1.49.68-1.49 1.49s.68 1.489 1.49 1.489c.78 0 1.489-.68 1.453-1.454A1.454 1.454 0 0 0 15 18.904\" />\n\t\t<path d=\"M28.784 24.182a5.09 5.09 0 0 0 .012-5.147L19.467 2.88A5.07 5.07 0 0 0 15.006.289c-1.87 0-3.539.97-4.462 2.585l-9.34 16.173a5.13 5.13 0 0 0 .017 5.177 5.1 5.1 0 0 0 4.45 2.555h18.633c1.865 0 3.539-.97 4.48-2.597m-2.025-1.167a2.82 2.82 0 0 1-2.46 1.423H5.665a2.78 2.78 0 0 1-2.43-1.394 2.82 2.82 0 0 1-.006-2.841l9.34-16.167a2.76 2.76 0 0 1 2.437-1.412c1.018 0 1.93.53 2.436 1.417l9.335 16.168c.5.87.494 1.918-.018 2.806\" />\n\t\t<path d=\"M14.63 8.45c-.709.202-1.15.846-1.15 1.626.036.47.066.947.102 1.418l.303 5.343A1.09 1.09 0 0 0 15 17.886c.608 0 1.085-.471 1.114-1.085 0-.369 0-.708.036-1.084.066-1.15.137-2.3.203-3.449.035-.744.101-1.49.137-2.234a1.8 1.8 0 0 0-.137-.744 1.49 1.49 0 0 0-1.722-.84\" />\n\t</svg>\n);\nexport default WarningIcon;\n","import Skeleton from \"../skeleton/skeleton\";\n\nconst BannerSkeleton = () => {\n\treturn <Skeleton className=\"h-12 rounded-lg\" />;\n};\n\nexport default BannerSkeleton;\n","import { cva, VariantProps } from \"class-variance-authority\";\nimport { memo } from \"preact/compat\";\nimport { cn } from \"../../../lib/utils/helpers\";\nimport ActionIcon from \"../../icons/banner/action\";\nimport InfoIcon from \"../../icons/banner/info\";\nimport GiftcardIcon from \"../../icons/giftcard\";\nimport WarningIcon from \"../../icons/warning\";\nimport SkeletonContainer from \"../skeleton/skeleton-container\";\nimport BannerSkeleton from \"./banner-skeleton\";\n\nconst variants = cva(\n\t\"rf-banner text-black rounded-lg flex items-center gap-2.5 p-3 min-h-12 font-medium leading-tight\",\n\t{\n\t\tvariants: {\n\t\t\ttone: {\n\t\t\t\tinfo: \"rf-banner--info bg-banner-info-background [--icon-fill-1:hsl(var(--rf-c-banner-info-foreground))]\",\n\t\t\t\ttip: \"rf-banner--tip bg-banner-tip-background [--icon-fill-1:hsl(var(--rf-c-banner-tip-foreground))]\",\n\t\t\t\taction:\n\t\t\t\t\t\"rf-banner--action bg-banner-action-background [--icon-fill-1:hsl(var(--rf-c-banner-action-foreground))]\",\n\t\t\t\terror:\n\t\t\t\t\t\"rf-banner--error bg-banner-error-background [--icon-fill-1:hsl(var(--rf-c-banner-error-foreground))]\",\n\t\t\t\tgiftcard:\n\t\t\t\t\t\"rf-banner--giftcard bg-[#F1F3FE] [--icon-fill-1:hsl(var(--rf-c-primary))]\"\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tdashed: \"border border-dashed border-[color:var(--icon-fill-1)]\"\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\ttone: \"info\"\n\t\t}\n\t}\n);\n\ntype Variants = VariantProps<typeof variants>;\n\nexport type BannerTone = NonNullable<Variants[\"tone\"]>;\n\ninterface BannerProps extends React.HTMLAttributes<HTMLElement>, Variants {\n\ticon?: BannerTone;\n\tpending?: boolean;\n}\n\nconst Banner = ({\n\tclassName,\n\tchildren,\n\ttone,\n\tborder,\n\ticon,\n\tpending = false,\n\t...props\n}: BannerProps) => {\n\treturn (\n\t\t<SkeletonContainer skeleton={<BannerSkeleton />} pending={pending}>\n\t\t\t<aside className={cn(variants({ tone, border }), className)} {...props}>\n\t\t\t\t{renderIcon(icon ?? tone ?? \"info\")}\n\t\t\t\t<span className=\"rf-banner__text flex-1\">{children}</span>\n\t\t\t</aside>\n\t\t</SkeletonContainer>\n\t);\n};\n\nconst COMMON_ICON_PROPS: React.SVGProps<SVGSVGElement> = {\n\tclassName: \"rf-banner__icon\",\n\twidth: 20,\n\theight: 20\n};\n\nfunction renderIcon(icon: BannerTone) {\n\tswitch (icon) {\n\t\tcase \"action\":\n\t\t\treturn <ActionIcon {...COMMON_ICON_PROPS} />;\n\t\tcase \"error\":\n\t\t\treturn <WarningIcon {...COMMON_ICON_PROPS} />;\n\t\tcase \"giftcard\":\n\t\t\treturn <GiftcardIcon {...COMMON_ICON_PROPS} />;\n\t\tdefault:\n\t\t\treturn <InfoIcon {...COMMON_ICON_PROPS} />;\n\t}\n}\n\nexport default memo(Banner);\n","import { useTranslations } from \"use-intl\";\nimport useReturnContext from \"../../../lib/hooks/context/use-return-context\";\nimport Banner from \"../../ui/banner/banner\";\nimport BannerSkeleton from \"../../ui/banner/banner-skeleton\";\n\nconst ExchangeBanner = () => {\n\tconst t = useTranslations(\"banner\");\n\tconst { orderState, calculationState } = useReturnContext();\n\n\tconst hasInstantExchange =\n\t\torderState.value.data?.orderData.instantExchange ?? false;\n\tconst returnLabelPrice = calculationState.value.data?.returnLabelPrice ?? 0;\n\n\tif (!orderState.value.data || !calculationState.value.data) {\n\t\treturn <BannerSkeleton />;\n\t}\n\n\tif (hasInstantExchange) {\n\t\treturn <Banner tone=\"action\">{t(\"fast_exchange\")}</Banner>;\n\t}\n\n\tif (returnLabelPrice === 0) {\n\t\treturn <Banner tone=\"tip\">{t(\"free_shipping_label\")}</Banner>;\n\t}\n\n\treturn <Banner>{t(\"exchange_info\")}</Banner>;\n};\n\nexport default ExchangeBanner;\n","import { useCallback } from \"preact/hooks\";\nimport { NumberFormatOptions, useFormatter } from \"use-intl\";\nimport { parseToNumber } from \"../../utils/helpers\";\nimport { DEFAULT_CURRENCY } from \"../../utils/i18n\";\nimport useReturnContext from \"./use-return-context\";\nimport useWidgetContext from \"./use-widget-context\";\n\ntype TCurrencyDisplayOptions = NumberFormatOptions[\"currencyDisplay\"] | \"none\";\n\ninterface ICurrencyFormatOptions\n\textends Omit<NumberFormatOptions, \"style\" | \"currencyDisplay\"> {\n\tcurrencyDisplay?: TCurrencyDisplayOptions;\n\tfractionDigits?: number;\n}\n\nconst useCurrency = (hookOptions: ICurrencyFormatOptions = {}) => {\n\tconst { config } = useWidgetContext();\n\tconst { calculationState, cartState } = useReturnContext();\n\n\tconst cartCurrency = cartState.value.data?.transformed.currency;\n\tconst calcCurrency = calculationState.value.data?.currency.localCurrency;\n\n\tconst resolvedCurrencyCode =\n\t\thookOptions.currency ||\n\t\tcalcCurrency ||\n\t\tconfig.currency ||\n\t\tcartCurrency ||\n\t\tDEFAULT_CURRENCY;\n\n\tconst formatter = useFormatter();\n\n\tconst applyExchangeRate = useCallback(\n\t\t(value: number) => {\n\t\t\tconst currencyObject = calculationState.value.data?.currency;\n\t\t\tconst exchangeRate = parseToNumber(currencyObject?.exchangeRate, 1);\n\t\t\treturn value * exchangeRate;\n\t\t},\n\t\t[calculationState.value.data]\n\t);\n\n\tconst format = useCallback(\n\t\t(value: number | string, options?: ICurrencyFormatOptions) => {\n\t\t\tif (typeof value === \"string\") {\n\t\t\t\tvalue = parseFloat(value);\n\t\t\t}\n\n\t\t\tconst { fractionDigits = 2, ...mergedOptions } = {\n\t\t\t\t...hookOptions,\n\t\t\t\t...options\n\t\t\t};\n\t\t\tconst { currencyDisplay, ...formatOptions }: ICurrencyFormatOptions = {\n\t\t\t\tcurrency: resolvedCurrencyCode,\n\t\t\t\tminimumFractionDigits: fractionDigits,\n\t\t\t\tmaximumFractionDigits: fractionDigits,\n\t\t\t\t...mergedOptions\n\t\t\t};\n\n\t\t\tif (currencyDisplay === \"none\") {\n\t\t\t\treturn formatter.number(value, formatOptions);\n\t\t\t}\n\n\t\t\treturn formatter.number(value, {\n\t\t\t\tstyle: \"currency\",\n\t\t\t\tcurrencyDisplay,\n\t\t\t\t...formatOptions\n\t\t\t});\n\t\t},\n\t\t[formatter, hookOptions, resolvedCurrencyCode]\n\t);\n\n\treturn { format, applyExchangeRate, currency: resolvedCurrencyCode };\n};\n\nexport default useCurrency;\n","import { useMemo } from \"preact/hooks\";\nimport { parseToNumber } from \"../../utils/helpers\";\nimport useCurrency from \"./use-currency\";\nimport useReturnContext from \"./use-return-context\";\n\ninterface CalculationComputationResult {\n\torderTotal: number;\n\tcartTotal: number;\n\treturnTotal: number;\n\tgiftcardValue: number;\n\ttotalPriceDiscount: number;\n\tgiftCardBonusAmount: number;\n\treturnLabelPrice: number;\n\tisRefunding: boolean;\n}\n\nconst useCalculation = () => {\n\tconst { applyExchangeRate } = useCurrency();\n\tconst { calculationState, cartState } = useReturnContext();\n\n\tconst cart = cartState.value.data;\n\tconst calculation = calculationState.value.data;\n\n\tconst itemCount = cartState.value.data?.transformed.item_count ?? 0;\n\n\tconst computedTotals: CalculationComputationResult = useMemo(() => {\n\t\tif (!calculation || !cart) {\n\t\t\treturn {\n\t\t\t\torderTotal: 0,\n\t\t\t\tcartTotal: 0,\n\t\t\t\treturnTotal: 0,\n\t\t\t\tgiftcardValue: 0,\n\t\t\t\ttotalPriceDiscount: 0,\n\t\t\t\tgiftCardBonusAmount: 0,\n\t\t\t\treturnLabelPrice: 0,\n\t\t\t\tisRefunding: false\n\t\t\t};\n\t\t}\n\t\tconst {\n\t\t\torderSubtotal: orderTotal,\n\t\t\treturnSubtotal,\n\t\t\ttotal,\n\t\t\trefundMethods,\n\t\t\tdiscountSummary,\n\t\t\tgiftCardBonusAmount,\n\t\t\treturnLabelPrice\n\t\t} = calculation;\n\n\t\t// Exchange coverage + discount applied to return subtotal\n\t\tconst totalPriceDiscount = applyExchangeRate(\n\t\t\tdiscountSummary?.appliedToReturnSubtotal ?? 0\n\t\t);\n\n\t\tconst giftcardValue = parseToNumber(\n\t\t\tapplyExchangeRate(refundMethods?.giftcard)\n\t\t);\n\n\t\tconst cartTotal = applyExchangeRate(returnSubtotal) - giftcardValue;\n\n\t\tconst returnTotal = Math.abs(applyExchangeRate(total));\n\n\t\treturn {\n\t\t\torderTotal: applyExchangeRate(orderTotal),\n\t\t\tcartTotal,\n\t\t\treturnTotal,\n\t\t\tgiftcardValue,\n\t\t\ttotalPriceDiscount,\n\t\t\tgiftCardBonusAmount: applyExchangeRate(giftCardBonusAmount),\n\t\t\treturnLabelPrice: applyExchangeRate(returnLabelPrice),\n\t\t\tisRefunding: total > 0\n\t\t};\n\t}, [calculation, cart, applyExchangeRate]);\n\n\treturn {\n\t\titemCount,\n\t\t...computedTotals\n\t};\n};\n\nexport default useCalculation;\n","const StarIcon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={12}\n\t\theight={12}\n\t\tviewBox=\"0 0 13 13\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--star ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"m6.11 1.06 1.7 3.62 3.8.584-2.75 2.817.65 3.979-3.4-1.88-3.398 1.88.649-3.98L.61 5.265l3.8-.584z\"\n\t\t\tfill=\"currentColor\"\n\t\t\tstroke=\"currentColor\"\n\t\t\tstrokeWidth={1.111}\n\t\t\tstrokeLinecap=\"round\"\n\t\t\tstrokeLinejoin=\"round\"\n\t\t/>\n\t</svg>\n);\nexport default StarIcon;\n","import { memo } from \"preact/compat\";\nimport useCurrency from \"../../lib/hooks/context/use-currency\";\nimport { cn, isNil } from \"../../lib/utils/helpers\";\nimport Skeleton from \"./skeleton/skeleton\";\nimport SkeletonContainer from \"./skeleton/skeleton-container\";\n\ninterface PriceProps\n\textends Omit<React.HTMLAttributes<HTMLSpanElement>, \"children\"> {\n\tvalue?: number;\n\tcompareAtValue?: number;\n\tpending?: boolean;\n}\n\nconst Price = ({\n\tvalue = 0,\n\tcompareAtValue,\n\tpending,\n\tclassName,\n\t...props\n}: PriceProps) => {\n\tconst { format: formatToCurrency } = useCurrency();\n\n\treturn (\n\t\t<SkeletonContainer\n\t\t\tskeleton={<Skeleton className=\"w-20\" />}\n\t\t\tpending={pending}\n\t\t>\n\t\t\t<span\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"rf-price font-medium text-base inline-flex flex-col items-end\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<span className=\"rf-price__value\">{formatToCurrency(value)}</span>\n\t\t\t\t{!isNil(compareAtValue) && compareAtValue > value && (\n\t\t\t\t\t<span className=\"rf-price__compare-at text-affirmative line-through text-xs\">\n\t\t\t\t\t\t{formatToCurrency(compareAtValue)}\n\t\t\t\t\t</span>\n\t\t\t\t)}\n\t\t\t</span>\n\t\t</SkeletonContainer>\n\t);\n};\n\nexport default memo(Price);\n","import Skeleton from \"../../../ui/skeleton/skeleton\";\n\nconst AdjustmentsTableSkeleton = () => {\n\treturn (\n\t\t<div className=\"rf-adjustments-table-skeleton space-y-2\">\n\t\t\t<Skeleton className=\"h-5 w-full\" />\n\t\t\t<Skeleton className=\"h-5 w-full\" />\n\t\t</div>\n\t);\n};\n\nexport default AdjustmentsTableSkeleton;\n","import { useTranslations } from \"use-intl\";\nimport useCalculation from \"../../../../lib/hooks/context/use-calculation\";\nimport useCurrency from \"../../../../lib/hooks/context/use-currency\";\nimport useReturnContext from \"../../../../lib/hooks/context/use-return-context\";\nimport { cn } from \"../../../../lib/utils/helpers\";\nimport GiftcardIcon from \"../../../icons/giftcard\";\nimport StarIcon from \"../../../icons/star\";\nimport Price from \"../../../ui/price\";\nimport AdjustmentsTableSkeleton from \"./adjustments-table-skeleton\";\n\nconst AdjustmentsTable = () => {\n\tconst t = useTranslations();\n\tconst { format: formatToCurrency } = useCurrency();\n\tconst { calculationState } = useReturnContext();\n\n\tconst {\n\t\tcartTotal,\n\t\tgiftcardValue,\n\t\tgiftCardBonusAmount,\n\t\treturnLabelPrice,\n\t\ttotalPriceDiscount\n\t} = useCalculation();\n\n\tconst showDiscountRow = totalPriceDiscount > 0;\n\tconst showGiftcardRow = giftcardValue > 0;\n\tconst showLabelPriceRow = returnLabelPrice > 0;\n\n\tif (!calculationState.value.data) {\n\t\treturn (\n\t\t\t<div className=\"rf-adjustments-table-loading p-base border-t border-neutral-2\">\n\t\t\t\t<AdjustmentsTableSkeleton />\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div className=\"rf-adjustments-table p-base border-t border-neutral-2\">\n\t\t\t<table className=\"rf-adjustments-table__table w-full\">\n\t\t\t\t<tbody className=\"rf-adjustments-table__body\">\n\t\t\t\t\t{showDiscountRow && (\n\t\t\t\t\t\t<Row value={totalPriceDiscount * -1} className=\"text-affirmative\">\n\t\t\t\t\t\t\t{t(\"price_details.price_change\")}\n\t\t\t\t\t\t</Row>\n\t\t\t\t\t)}\n\t\t\t\t\t{showLabelPriceRow && (\n\t\t\t\t\t\t<Row value={returnLabelPrice} className=\"text-neutral-3\">\n\t\t\t\t\t\t\t{t(\"price_details.return_label\")}\n\t\t\t\t\t\t</Row>\n\t\t\t\t\t)}\n\t\t\t\t\t{cartTotal > 0 && (\n\t\t\t\t\t\t<Row value={cartTotal}>{t(\"price_details.products\")}</Row>\n\t\t\t\t\t)}\n\t\t\t\t\t{showGiftcardRow && (\n\t\t\t\t\t\t<Row className=\"text-primary\" value={giftcardValue}>\n\t\t\t\t\t\t\t<span className=\"align-middle\">\n\t\t\t\t\t\t\t\t<GiftcardIcon className=\"inline -mt-1 w-4 h-auto\" />{\" \"}\n\t\t\t\t\t\t\t\t{t(\"price_details.giftcard\")}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t{giftCardBonusAmount > 0 && (\n\t\t\t\t\t\t\t\t<span className=\"text-sm text-reward align-middle\">\n\t\t\t\t\t\t\t\t\t+{formatToCurrency(giftCardBonusAmount)}{\" \"}\n\t\t\t\t\t\t\t\t\t<StarIcon className=\"inline -mt-0.5\" />\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</Row>\n\t\t\t\t\t)}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t);\n};\n\nfunction Row({\n\tvalue,\n\tchildren,\n\tclassName\n}: {\n\tvalue: number;\n} & React.HTMLAttributes<HTMLTableRowElement>) {\n\treturn (\n\t\t<tr className={cn(\"rf-adjustments-table__row h-6 group/row\", className)}>\n\t\t\t<th\n\t\t\t\tscope=\"row\"\n\t\t\t\tclassName=\"rf-adjustments-table__label space-x-2 font-normal text-left group-first/row:pt-0 group-last/row:pb-0 py-0.5\"\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</th>\n\t\t\t<td className=\"rf-adjustments-table__value text-right\">\n\t\t\t\t<Price value={value} />\n\t\t\t</td>\n\t\t</tr>\n\t);\n}\n\nexport default AdjustmentsTable;\n","import { cn } from \"../../../lib/utils/helpers\";\nimport ExchangeBanner from \"./exchange-banner\";\nimport AdjustmentsTable from \"./table/adjustments-table\";\n\nconst ExchangeAdjustments = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-exchange-adjustments border-t border-neutral-2\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"rf-exchange-adjustments__banner p-base\">\n\t\t\t\t<ExchangeBanner />\n\t\t\t</div>\n\t\t\t<AdjustmentsTable />\n\t\t</div>\n\t);\n};\n\nexport default ExchangeAdjustments;\n","import { useMemo } from \"preact/hooks\";\nimport { useTranslations } from \"use-intl\";\nimport useReturnContext from \"../../lib/hooks/context/use-return-context\";\nimport ReturnAvatarStack from \"../return-avatar-stack\";\n\nconst AnnoucementBar = () => {\n\tconst t = useTranslations(\"announcement\");\n\tconst { cartState } = useReturnContext();\n\n\tconst itemCount = cartState.value.data?.transformed.item_count;\n\n\tconst stepSnippet = useMemo(\n\t\t() => (itemCount === 0 ? \"step_1\" : \"step_2\"),\n\t\t[itemCount]\n\t);\n\n\treturn (\n\t\t<div className=\"rf-announcement-bar h-14 bg-announcement-background text-announcement-foreground px-base flex items-center justify-between text-sm\">\n\t\t\t<ReturnAvatarStack />\n\t\t\t<div className=\"rf-announcement-bar__content space-x-1\">\n\t\t\t\t<span className=\"rf-announcement-bar__step-label text-neutral-3\">\n\t\t\t\t\t{t(\"this_step\")}\n\t\t\t\t</span>\n\t\t\t\t<span className=\"rf-announcement-bar__step-text\">{t(stepSnippet)}</span>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default AnnoucementBar;\n","import { cn } from \"../../lib/utils/helpers\";\nimport WarningIcon from \"../icons/warning\";\n\ninterface ErrorScreenProps extends React.HTMLAttributes<HTMLDivElement> {\n\terrorMessage?: string;\n\tinstructionMessage?: string;\n}\n\nconst ErrorScreen = ({\n\tclassName,\n\terrorMessage = \"Der skete en fejl!\",\n\tinstructionMessage = \"Opdater siden og prøv igen.\",\n\t...props\n}: ErrorScreenProps) => {\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\"rf-error-screen p-base flex-1\", className)}\n\t\t\trole=\"alert\"\n\t\t\taria-live=\"assertive\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"rf-error-screen__content bg-[#FEF2F2] rounded-lg p-base flex flex-col items-center justify-center gap-1 text-center size-full\">\n\t\t\t\t<WarningIcon className=\"mb-2 fill-destructive\" aria-hidden=\"true\" />\n\t\t\t\t<p\n\t\t\t\t\tclassName=\"rf-error-screen__message text-neutral-3\"\n\t\t\t\t\tid=\"error-heading\"\n\t\t\t\t>\n\t\t\t\t\t{errorMessage}\n\t\t\t\t</p>\n\t\t\t\t<p className=\"rf-error-screen__instruction\">{instructionMessage}</p>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ErrorScreen;\n","import { useLocale } from \"use-intl\";\nimport { Locale } from \"../../utils/i18n\";\nimport navigation from \"../../utils/navigation\";\nimport useWidgetContext from \"../context/use-widget-context\";\n\nconst useNavigation = () => {\n\tconst locale = useLocale() as Locale;\n\tconst {\n\t\tconfig: {\n\t\t\tdata: { slug }\n\t\t}\n\t} = useWidgetContext();\n\n\tif (!slug) {\n\t\tthrow new Error(\n\t\t\t\"useNavigation must be used within a WidgetContextProvider with a valid slug\"\n\t\t);\n\t}\n\n\treturn {\n\t\tback: (fallbackProductId?: string) =>\n\t\t\tnavigation.back(locale, slug, fallbackProductId),\n\t\tcontinue: () => navigation.continue(locale, slug),\n\t\texit: navigation.exit\n\t};\n};\n\nexport default useNavigation;\n","import { useTranslations } from \"use-intl\";\nimport useCalculation from \"../../lib/hooks/context/use-calculation\";\nimport useErrors from \"../../lib/hooks/context/use-errors\";\nimport useNavigation from \"../../lib/hooks/context/use-navigation\";\nimport useReturnContext from \"../../lib/hooks/context/use-return-context\";\nimport ArrowRightIcon from \"../icons/arrow-right\";\nimport Button from \"../ui/button\";\nimport Price from \"../ui/price\";\n\nconst ExchangeConfirmation = () => {\n\tconst t = useTranslations(\"confirmation\");\n\tconst navigation = useNavigation();\n\n\tconst {\n\t\tcalculationState,\n\t\tisPending: globalPendingState,\n\t\thasFailed\n\t} = useReturnContext();\n\tconst { isRefunding, returnTotal } = useCalculation();\n\tconst { errors } = useErrors();\n\n\tconst blockingErrors = errors.filter(error => error.blocking);\n\n\tconst canContinue =\n\t\t!hasFailed && !globalPendingState && blockingErrors.length === 0;\n\n\tfunction handleContinue() {\n\t\tif (!canContinue) return;\n\t\tnavigation.continue();\n\t}\n\n\treturn (\n\t\t<div className=\"rf-exchange-confirmation rounded-t-2xl bg-neutral-1 p-base pb-safe-offset-base space-y-2\">\n\t\t\t<div className=\"rf-exchange-confirmation__header flex justify-between items-center pb-2\">\n\t\t\t\t<h3 className=\"rf-exchange-confirmation__title font-medium\">\n\t\t\t\t\t{isRefunding ? t(\"title_refund\") : t(\"title_checkout\")}\n\t\t\t\t</h3>\n\t\t\t\t<Price value={returnTotal} pending={calculationState.value.pending} />\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tdisabled={!canContinue}\n\t\t\t\tonClick={handleContinue}\n\t\t\t\tclassName=\"w-full\"\n\t\t\t\ticon={ArrowRightIcon}\n\t\t\t>\n\t\t\t\t<span>{t(\"confirm\")}</span>\n\t\t\t</Button>\n\t\t\t<p className=\"rf-exchange-confirmation__disclaimer text-sm text-neutral-3 text-center mx-auto font-normal\">\n\t\t\t\t{t(\"disclaimer\")}\n\t\t\t</p>\n\t\t</div>\n\t);\n};\n\nexport default ExchangeConfirmation;\n","import { cva, VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/utils/helpers\";\n\nconst iconVariants = cva(\n\t\"rf-icon size-8 rounded-full flex items-center justify-center text-2xl p-[9px]\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tprimary: \"rf-icon--primary border border-neutral-2 text-black\",\n\t\t\t\tsolid: \"rf-icon--solid bg-black text-white\",\n\t\t\t\t\"solid-inverse\": \"rf-icon--solid-inverse bg-neutral-1 text-neutral-3\"\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tsm: \"size-7 p-[8px]\",\n\t\t\t\tmd: \"size-8 p-[9px]\"\n\t\t\t}\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: \"primary\",\n\t\t\tsize: \"md\"\n\t\t}\n\t}\n);\n\ninterface IconAttributesWithChildren {\n\ticon?: never;\n\tchildren: preact.ComponentChildren;\n}\n\ninterface IconAttributesWithoutChildren {\n\ticon: (props: React.SVGProps<SVGSVGElement>) => React.JSX.Element;\n\tchildren?: never;\n}\n\ntype IconAttributes =\n\t| IconAttributesWithChildren\n\t| IconAttributesWithoutChildren;\n\ntype IconProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> &\n\tVariantProps<typeof iconVariants> &\n\tIconAttributes;\n\nconst Icon = ({\n\ticon: IconComponent,\n\tvariant,\n\tsize,\n\tclassName,\n\tchildren,\n\t...props\n}: IconProps) => {\n\treturn (\n\t\t<div className={cn(iconVariants({ variant, size }), className)} {...props}>\n\t\t\t{IconComponent && <IconComponent className=\"size-full\" />}\n\t\t\t{children}\n\t\t</div>\n\t);\n};\n\nexport default Icon;\n","import { useTranslations } from \"use-intl\";\nimport useWidgetContext from \"../../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../../lib/types\";\nimport Icon from \"../icons/icon\";\nimport XIcon from \"../icons/x\";\n\nconst ExchangeHeader = () => {\n\tconst t = useTranslations(\"common\");\n\tconst { widgetViewState } = useWidgetContext();\n\n\treturn (\n\t\t<div className=\"rf-exchange-header border-t border-neutral-3 p-base flex items-center justify-between\">\n\t\t\t<h2 className=\"rf-exchange-header__title text-xl font-semibold\">\n\t\t\t\t{t(\"title\")}\n\t\t\t</h2>\n\t\t\t<button\n\t\t\t\tclassName=\"rf-exchange-header__close-button flex items-center gap-2 group\"\n\t\t\t\tonClick={() => widgetViewState.set(WidgetViewState.Collapsed)}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<span className=\"rf-exchange-header__close-text\">{t(\"close\")}</span>\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"group-hover:bg-neutral-2 transition-colors\"\n\t\t\t\t\ticon={XIcon}\n\t\t\t\t/>\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport default ExchangeHeader;\n","const CartIcon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={28}\n\t\theight={27}\n\t\tviewBox=\"0 0 28 27\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--cart ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"M8.094 20.443c-1.223-.066-1.2-1.856 0-1.919 3.4.013 12.367.004 15.875.006.96 0 1.78-.68 1.996-1.652l1.992-8.979a1.77 1.77 0 0 0-.316-1.46 1.62 1.62 0 0 0-1.293-.653c-1.41 0-13.39-.057-19.525-.082L5.85 1.947C5.617 1.05 4.83.423 3.936.423H.821C.367.423 0 .805 0 1.277s.367.854.82.854h3.116c.154 0 .29.108.33.262L8 16.818a2.5 2.5 0 0 0-1.732.793 2.7 2.7 0 0 0-.738 1.919c.025 1.445 1.174 2.621 2.563 2.621H9.29a3.1 3.1 0 0 0-.278 1.282c0 1.648 1.289 2.99 2.873 2.99s2.872-1.341 2.872-2.99c0-.459-.1-.893-.277-1.282h5.182a3.1 3.1 0 0 0-.277 1.281c0 1.649 1.288 2.99 2.872 2.99s2.873-1.341 2.873-2.99a3.1 3.1 0 0 0-.299-1.326.85.85 0 0 0 .56-.81c0-.47-.368-.853-.822-.853zm5.023 2.99c0 .706-.552 1.281-1.231 1.281-.68 0-1.232-.575-1.232-1.281 0-.707.552-1.281 1.23-1.282h.003c.678 0 1.23.575 1.23 1.282m9.141 1.28c-.678 0-1.23-.574-1.23-1.28 0-.7.54-1.27 1.21-1.282h.04c.67.011 1.212.582 1.212 1.281 0 .707-.553 1.282-1.232 1.282M26.355 7.5q.005.009.003.015l-.84 3.783h-2.842l.484-3.817 3.182.013q.006-.002.013.006m-8.462 9.322v-3.815h2.91l-.483 3.815zm-4.07 0-.488-3.815h2.916v3.815zm-3.779 0h-.002a.45.45 0 0 1-.428-.341l-.9-3.475h2.965l.488 3.816zm3.073-5.524-.494-3.861 3.628.015v3.846zm4.776 0v-3.84l3.612.016-.485 3.824zM10.966 7.43l.495 3.868H8.27L7.267 7.414zm13.003 9.392h-1.993l.483-3.815h2.68l-.773 3.486a.41.41 0 0 1-.397.329\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\nexport default CartIcon;\n","import { useTranslations } from \"use-intl\";\nimport useWidgetContext from \"../../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../../lib/types\";\nimport CartIcon from \"../icons/cart\";\n\nconst ExchangePlaceholder = () => {\n\tconst t = useTranslations(\"exchange_placeholder\");\n\tconst { widgetViewState } = useWidgetContext();\n\n\treturn (\n\t\t<div className=\"rf-exchange-placeholder px-base pb-base\">\n\t\t\t<div className=\"rf-exchange-placeholder__content border border-dashed border-[#DDDDDD] h-36 rounded-md flex items-center justify-center flex-col gap-2 font-medium text-base p-base\">\n\t\t\t\t<CartIcon className=\"text-neutral-3\" />\n\t\t\t\t<span className=\"rf-exchange-placeholder__text\">\n\t\t\t\t\t{t(\"prompt_text\")}\n\t\t\t\t</span>\n\t\t\t\t<button\n\t\t\t\t\tonClick={() => widgetViewState.set(WidgetViewState.Collapsed)}\n\t\t\t\t\tclassName=\"rf-exchange-placeholder__continue text-button-background decoration-[color:hsla(var(--rf-c-button-background),_0.25)] underline-offset-4 underline text-sm cursor-pointer\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t>\n\t\t\t\t\t{t(\"continue\")}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ExchangePlaceholder;\n","import useErrors from \"../../../lib/hooks/context/use-errors\";\nimport Banner from \"../../ui/banner/banner\";\n\nconst ProductErrors = () => {\n\tconst { errors } = useErrors();\n\n\tif (errors.length === 0) {\n\t\treturn null;\n\t}\n\n\treturn (\n\t\t<div className=\"rf-product-view__error-list px-base pb-base space-y-base\">\n\t\t\t{errors.map(({ id, message }) => (\n\t\t\t\t<Banner\n\t\t\t\t\tkey={id}\n\t\t\t\t\tclassName=\"rf-product-view__error animate-slide-up-and-fade-in\"\n\t\t\t\t\ttone=\"error\"\n\t\t\t\t>\n\t\t\t\t\t{message}\n\t\t\t\t</Banner>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default ProductErrors;\n","import { useMemo } from \"preact/hooks\";\nimport { ExtendedShopifyProduct } from \"../../../components/drawer/product/product\";\nimport { CalculationExchangeProduct } from \"../../types\";\nimport { stripShopifyId } from \"../../utils/shopify\";\nimport useReturnContext from \"./use-return-context\";\n\n/**\n * Merges cart items with their corresponding exchange calculation details.\n * Returns cart items enriched with pricing information from the calculation state.\n */\nconst useCartItems = () => {\n\tconst { cartState, calculationState } = useReturnContext();\n\n\tconst transformedCart = cartState.value.data?.transformed;\n\tconst exchangeDetails =\n\t\tcalculationState.value.data?.exchange?.exchangeDetails;\n\n\tconst cartItems: ExtendedShopifyProduct[] = useMemo(() => {\n\t\tconst items = transformedCart?.items;\n\n\t\tif (!items) return [];\n\n\t\treturn items.map(item => {\n\t\t\tlet calculation: Omit<CalculationExchangeProduct, \"coverage\"> | undefined;\n\n\t\t\tconst exchangeDetailItems = exchangeDetails?.filter(exchangeItem => {\n\t\t\t\tif (exchangeItem.variantId) {\n\t\t\t\t\treturn (\n\t\t\t\t\t\tNumber(stripShopifyId(exchangeItem.variantId)) === item.variant_id\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn (\n\t\t\t\t\tNumber(stripShopifyId(exchangeItem.productId)) === item.product_id\n\t\t\t\t);\n\t\t\t});\n\n\t\t\tif (exchangeDetailItems && exchangeDetailItems.length > 0) {\n\t\t\t\t// Aggregate pricing from all matching exchange detail items for this cart item\n\t\t\t\tcalculation = exchangeDetailItems.reduce(\n\t\t\t\t\t(acc, { coverage, ...curr }) => {\n\t\t\t\t\t\tconst resolvedCurrPrice = coverage?.originalUnitPrice ?? curr.price;\n\n\t\t\t\t\t\tconst resolvedCompareAt =\n\t\t\t\t\t\t\tcoverage?.exchangeUnitPrice ?? curr.compareAtPrice ?? null;\n\n\t\t\t\t\t\tif (resolvedCompareAt) {\n\t\t\t\t\t\t\tif (!acc.compareAtPrice) {\n\t\t\t\t\t\t\t\tacc.compareAtPrice = resolvedCompareAt;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tacc.compareAtPrice += resolvedCompareAt;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tacc.price += resolvedCurrPrice;\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...curr,\n\t\t\t\t\t\t\t...acc\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tprice: 0,\n\t\t\t\t\t\tcompareAtPrice: null\n\t\t\t\t\t} as Omit<CalculationExchangeProduct, \"coverage\">\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\t...item,\n\t\t\t\tcalculation\n\t\t\t};\n\t\t});\n\t}, [transformedCart, exchangeDetails]);\n\n\treturn { cartItems };\n};\n\nexport default useCartItems;\n","import { useCallback } from \"preact/hooks\";\nimport { cn } from \"../../../lib/utils/helpers\";\nimport { logger } from \"../../../lib/utils/logger\";\nimport Icon from \"../../icons/icon\";\n\nexport interface QuantityPickerConstraints {\n\tmin: {\n\t\tlimit: number;\n\t\tdisabled: boolean;\n\t};\n\tmax: {\n\t\tlimit: number;\n\t\tdisabled: boolean;\n\t};\n}\n\ninterface QuantityPickerProps extends React.HTMLAttributes<HTMLDivElement> {\n\tonIncrement: (isAtBound: boolean) => void | Promise<void>;\n\tonDecrement: (isAtBound: boolean) => void | Promise<void>;\n\tquantity: number;\n\tconstraints?: QuantityPickerConstraints;\n\tpending?: boolean;\n\tdisabled?: boolean;\n}\n\nconst DEFAULT_CONSTRAINTS: QuantityPickerConstraints = {\n\tmin: { limit: 1, disabled: false },\n\tmax: { limit: 99, disabled: true }\n};\n\nconst QuantityPicker = ({\n\tonIncrement,\n\tonDecrement,\n\tconstraints = DEFAULT_CONSTRAINTS,\n\tquantity,\n\tpending = false,\n\tdisabled = false,\n\tclassName,\n\t...props\n}: QuantityPickerProps) => {\n\tconst isDisabled = pending || disabled;\n\n\tconst isAtMin = quantity === constraints.min.limit;\n\tconst isAtMax = quantity === constraints.max.limit;\n\n\tconst incrementDisabled = (constraints.max.disabled && isAtMax) || isDisabled;\n\tconst decrementDisabled = (constraints.min.disabled && isAtMin) || isDisabled;\n\n\tconst handleIncrement = useCallback(async () => {\n\t\tif (incrementDisabled) return;\n\t\ttry {\n\t\t\tawait onIncrement(isAtMax);\n\t\t} catch (err) {\n\t\t\tlogger.error(\"Increment failed:\", err);\n\t\t}\n\t}, [incrementDisabled, onIncrement, isAtMax]);\n\n\tconst handleDecrement = useCallback(async () => {\n\t\tif (decrementDisabled) return;\n\t\ttry {\n\t\t\tawait onDecrement(isAtMin);\n\t\t} catch (err) {\n\t\t\tlogger.error(\"decrement failed:\", err);\n\t\t}\n\t}, [decrementDisabled, onDecrement, isAtMin]);\n\n\tconst clampedQuantity = Math.max(\n\t\tconstraints.min.limit,\n\t\tMath.min(quantity, constraints.max.limit)\n\t);\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-quantity-picker rounded-full p-1 border border-neutral-1 flex items-center h-min gap-2 transition-opacity\",\n\t\t\t\tisDisabled &&\n\t\t\t\t\t\"rf-quantity-picker--disabled opacity-50 cursor-not-allowed\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName=\"rf-quantity-picker__decrement-button disabled:!opacity-50 desktop:hover:opacity-80 disabled:cursor-not-allowed transition-opacity\"\n\t\t\t\tdisabled={decrementDisabled}\n\t\t\t\tonClick={handleDecrement}\n\t\t\t>\n\t\t\t\t<Icon variant=\"solid-inverse\" size=\"sm\">\n\t\t\t\t\t<span className=\"rf-quantity-picker__decrement-icon text-base leading-none -mt-0.5\">\n\t\t\t\t\t\t-\n\t\t\t\t\t</span>\n\t\t\t\t</Icon>\n\t\t\t</button>\n\t\t\t<div className=\"rf-quantity-picker__quantity px-1.5 flex-1 text-base\">\n\t\t\t\t{clampedQuantity}\n\t\t\t</div>\n\t\t\t<button\n\t\t\t\ttype=\"button\"\n\t\t\t\tclassName=\"rf-quantity-picker__increment-button disabled:!opacity-50 desktop:hover:opacity-80 disabled:cursor-not-allowed transition-opacity\"\n\t\t\t\tdisabled={incrementDisabled}\n\t\t\t\tonClick={handleIncrement}\n\t\t\t>\n\t\t\t\t<Icon variant=\"solid-inverse\" size=\"sm\">\n\t\t\t\t\t<span className=\"rf-quantity-picker__increment-icon text-base leading-none -mt-0.5\">\n\t\t\t\t\t\t+\n\t\t\t\t\t</span>\n\t\t\t\t</Icon>\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport default QuantityPicker;\n","import { memo } from \"preact/compat\";\nimport { useCallback, useState } from \"preact/hooks\";\nimport { useTranslations } from \"use-intl\";\nimport useErrors from \"../../../lib/hooks/context/use-errors\";\nimport useReturnContext from \"../../../lib/hooks/context/use-return-context\";\nimport useWidgetContext from \"../../../lib/hooks/context/use-widget-context\";\nimport { ShopifyCartItem } from \"../../../lib/types\";\nimport { normalizeCart, updateCartItemQuantity } from \"../../../lib/utils/cart\";\nimport {\n\tgetErrorStateFromCode,\n\tProductErrorState\n} from \"../../../lib/utils/errors\";\nimport { isNil } from \"../../../lib/utils/helpers\";\nimport QuantityPicker, { QuantityPickerConstraints } from \"./quantity-picker\";\n\ninterface ProductActionsProps {\n\tvariantId: number;\n\tquantity?: number;\n\tquantityRule: ShopifyCartItem[\"quantity_rule\"];\n}\n\nconst ProductActions = ({\n\tvariantId,\n\tquantity,\n\tquantityRule\n}: ProductActionsProps) => {\n\tconst t = useTranslations(\"product\");\n\tconst [isPending, setIsPending] = useState(false);\n\tconst {\n\t\tcartState,\n\t\torderState,\n\t\tcalculationState,\n\t\tisPending: anyStatePending\n\t} = useReturnContext();\n\tconst {\n\t\tconfig: {\n\t\t\tdata: { returnData }\n\t\t}\n\t} = useWidgetContext();\n\tconst errors = useErrors();\n\n\tconst handleQuantityChange = useCallback(\n\t\tasync (newQuantity: number) => {\n\t\t\tconst order = orderState.value.data;\n\t\t\tif (!order) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetIsPending(true);\n\n\t\t\tconst errorId = ProductErrorState.ProductLimit;\n\n\t\t\ttry {\n\t\t\t\t// Start loading state\n\t\t\t\tcartState.set(prev => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tpending: true,\n\t\t\t\t\terror: null\n\t\t\t\t}));\n\n\t\t\t\tconst updatedCart = await updateCartItemQuantity({\n\t\t\t\t\tvariantId,\n\t\t\t\t\tquantity: newQuantity\n\t\t\t\t});\n\t\t\t\tconst normalizedCart = normalizeCart(\n\t\t\t\t\tupdatedCart,\n\t\t\t\t\torder.orderData.productRules\n\t\t\t\t);\n\n\t\t\t\tcartState.set({\n\t\t\t\t\tdata: {\n\t\t\t\t\t\toriginal: updatedCart,\n\t\t\t\t\t\ttransformed: normalizedCart\n\t\t\t\t\t},\n\t\t\t\t\tpending: false,\n\t\t\t\t\terror: null\n\t\t\t\t});\n\t\t\t\tawait calculationState.query({\n\t\t\t\t\tcart: normalizedCart,\n\t\t\t\t\torderId: order.orderData.id,\n\t\t\t\t\tlineItems: returnData?.items || []\n\t\t\t\t});\n\t\t\t\t// Remove the error if it exists\n\t\t\t\tif (errors.has(errorId)) {\n\t\t\t\t\terrors.remove(errorId);\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tconst error = err as Error;\n\t\t\t\tconst parsed = parseInt(error.message);\n\t\t\t\tconst errorCode = isNaN(parsed) ? null : parsed;\n\n\t\t\t\tcartState.set(prev => ({\n\t\t\t\t\t...prev,\n\t\t\t\t\tpending: false\n\t\t\t\t}));\n\n\t\t\t\terrors.push({\n\t\t\t\t\tid: errorId,\n\t\t\t\t\tmessage: t(`error.${getErrorStateFromCode(errorCode)}`)\n\t\t\t\t});\n\t\t\t} finally {\n\t\t\t\tsetIsPending(false);\n\t\t\t}\n\t\t},\n\t\t[\n\t\t\torderState.value.data,\n\t\t\tcartState,\n\t\t\tcalculationState,\n\t\t\treturnData,\n\t\t\tvariantId,\n\t\t\terrors,\n\t\t\tt\n\t\t]\n\t);\n\n\tif (isNil(quantity)) {\n\t\treturn null;\n\t}\n\n\tconst minQuantity = quantityRule?.min ?? 1;\n\tconst maxQuantity = quantityRule?.max ?? 99;\n\tconst increment = quantityRule?.increment ?? 1;\n\n\tconst constraints: QuantityPickerConstraints = {\n\t\tmin: { limit: minQuantity, disabled: false },\n\t\tmax: { limit: maxQuantity, disabled: true }\n\t};\n\n\treturn (\n\t\t<div className=\"rf-product-actions flex items-center\">\n\t\t\t<QuantityPicker\n\t\t\t\tpending={anyStatePending || isPending}\n\t\t\t\tconstraints={constraints}\n\t\t\t\tonDecrement={isAtBound => {\n\t\t\t\t\tconst newQuantity = isAtBound ? 0 : quantity - increment;\n\t\t\t\t\thandleQuantityChange(newQuantity);\n\t\t\t\t}}\n\t\t\t\tonIncrement={() => {\n\t\t\t\t\tconst newQuantity = quantity + increment;\n\t\t\t\t\thandleQuantityChange(newQuantity);\n\t\t\t\t}}\n\t\t\t\tquantity={quantity}\n\t\t\t/>\n\t\t\t<button\n\t\t\t\tdisabled={anyStatePending || isPending}\n\t\t\t\tclassName=\"rf-product-actions__remove-button underline ml-auto text-sm disabled:cursor-not-allowed disabled:opacity-50 transition-opacity cursor-pointer\"\n\t\t\t\tonClick={() => handleQuantityChange(0)}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t{t(\"remove\")}\n\t\t\t</button>\n\t\t</div>\n\t);\n};\n\nexport default memo(ProductActions);\n","import { cn } from \"../../lib/utils/helpers\";\n\ninterface LinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n\tdisabled?: boolean;\n\tunstyled?: boolean;\n\tonDisabledClick?: (e: React.MouseEvent<HTMLAnchorElement>) => void;\n}\n\nconst Link = ({\n\tclassName,\n\thref,\n\tunstyled = false,\n\tonClick,\n\tonDisabledClick,\n\tdisabled = false,\n\t...props\n}: LinkProps) => {\n\tconst isDisabled = disabled || !href;\n\n\tfunction handleClick(e: React.MouseEvent<HTMLAnchorElement>) {\n\t\tif (disabled) {\n\t\t\te.preventDefault();\n\t\t\tonDisabledClick?.(e);\n\t\t\treturn;\n\t\t}\n\t\tonClick?.(e);\n\t}\n\n\treturn (\n\t\t<a\n\t\t\tonClick={handleClick}\n\t\t\thref={isDisabled ? undefined : href}\n\t\t\taria-disabled={isDisabled}\n\t\t\tclassName={cn(\n\t\t\t\t\"block\",\n\t\t\t\t!unstyled && \"transition-opacity\",\n\t\t\t\tisDisabled\n\t\t\t\t\t? unstyled\n\t\t\t\t\t\t? \"cursor-default\"\n\t\t\t\t\t\t: \"cursor-not-allowed opacity-50\"\n\t\t\t\t\t: \"cursor-pointer\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport default Link;\n","import { memo } from \"preact/compat\";\nimport { useTranslations } from \"use-intl\";\nimport useCurrency from \"../../../lib/hooks/context/use-currency\";\nimport { cn, isNil, parseToNumber } from \"../../../lib/utils/helpers\";\nimport Link from \"../../ui/link\";\nimport Price from \"../../ui/price\";\n\nexport interface ProductAttributesAttributes {\n\ttitle: string;\n\tvariantTitle: string | null | undefined;\n\tpending?: boolean;\n\tprice: number | null | undefined;\n\tcompareAtPrice: number | null | undefined;\n\tquantity: number;\n\thandle?: string;\n}\n\ninterface ProductAttributesProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\" | \"title\">,\n\t\tProductAttributesAttributes {\n\tshowQuantity?: boolean;\n}\n\nconst ProductAttributes = ({\n\ttitle,\n\tvariantTitle,\n\tpending = false,\n\tprice,\n\tcompareAtPrice,\n\tclassName,\n\tquantity = 1,\n\thandle,\n\tshowQuantity = true,\n\t...props\n}: ProductAttributesProps) => {\n\tconst t = useTranslations();\n\tconst { applyExchangeRate } = useCurrency();\n\tconst quantityIsVisible = quantity > 1 && showQuantity;\n\n\tconst resolvedCompareAt = !isNil(compareAtPrice)\n\t\t? applyExchangeRate(compareAtPrice)\n\t\t: undefined;\n\n\tconst resolvedPrice = applyExchangeRate(parseToNumber(price));\n\n\tconst href = handle ? `/products/${handle}` : undefined;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-product-attributes flex justify-between gap-4 text-sm leading-tight\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div className=\"rf-product-attributes__info flex-1 min-w-0\">\n\t\t\t\t<Link unstyled href={href} className=\"rf-product-attributes__link\">\n\t\t\t\t\t<h3 className=\"rf-product-attributes__title text-base font-medium line-clamp-1\">\n\t\t\t\t\t\t{title}\n\t\t\t\t\t</h3>\n\t\t\t\t</Link>\n\t\t\t\t{(variantTitle || quantityIsVisible) && (\n\t\t\t\t\t<h4 className=\"rf-product-attributes__variant text-neutral-3\">\n\t\t\t\t\t\t{variantTitle}{\" \"}\n\t\t\t\t\t\t{quantityIsVisible && (\n\t\t\t\t\t\t\t<span className=\"rf-product-attributes__quantity\">\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t{t(\"piece\", {\n\t\t\t\t\t\t\t\t\tcount: quantity\n\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</h4>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<Price\n\t\t\t\tpending={pending}\n\t\t\t\tvalue={resolvedPrice}\n\t\t\t\tcompareAtValue={resolvedCompareAt}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport default memo(ProductAttributes);\n","import { memo } from \"preact/compat\";\nimport { useCallback } from \"preact/hooks\";\nimport useWidgetContext from \"../../../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../../../lib/types\";\nimport Image from \"../../ui/image\";\n\ninterface ProductImageProps {\n\timageSource: string;\n\ttitle: string;\n\thandle: string;\n}\n\nconst ProductImage = ({ imageSource, title, handle }: ProductImageProps) => {\n\tconst { widgetViewState } = useWidgetContext();\n\n\tconst handleAnchorClick = useCallback(() => {\n\t\twidgetViewState.set(WidgetViewState.Collapsed);\n\t}, [widgetViewState]);\n\n\tconst href = `/products/${handle}`;\n\n\treturn (\n\t\t<a className=\"rf-product-image\" href={href} onClick={handleAnchorClick}>\n\t\t\t<Image\n\t\t\t\tclassName=\"rf-product-image__img w-[70px] h-24 rounded-lg border border-neutral-1 object-cover\"\n\t\t\t\tsrc={imageSource}\n\t\t\t\talt={title}\n\t\t\t/>\n\t\t</a>\n\t);\n};\n\nexport default memo(ProductImage);\n","import {\n\tCalculationExchangeProduct,\n\tShopifyCartItem\n} from \"../../../lib/types\";\nimport { cn } from \"../../../lib/utils/helpers\";\nimport ProductActions from \"./product-actions\";\nimport ProductAttributes from \"./product-attributes\";\nimport ProductImage from \"./product-image\";\n\nexport interface ExtendedShopifyProduct extends ShopifyCartItem {\n\tcalculation: Omit<CalculationExchangeProduct, \"coverage\"> | undefined;\n}\n\ninterface ProductProps\n\textends Omit<\n\t\tReact.HTMLAttributes<HTMLLIElement>,\n\t\t\"children\" | \"title\" | \"id\" | \"key\"\n\t> {\n\tproduct: ExtendedShopifyProduct;\n}\n\nconst Product = ({\n\tproduct: { calculation, ...product },\n\tclassName,\n\t...props\n}: ProductProps) => {\n\treturn (\n\t\t<li\n\t\t\tclassName={cn(\"rf-product flex gap-4 p-base first:pt-0\", className)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<ProductImage\n\t\t\t\timageSource={product.image}\n\t\t\t\ttitle={product.product_title}\n\t\t\t\thandle={product.handle}\n\t\t\t/>\n\t\t\t<div className=\"rf-product__content space-y-2 flex-1\">\n\t\t\t\t<ProductAttributes\n\t\t\t\t\tclassName=\"flex-1\"\n\t\t\t\t\thandle={product.handle}\n\t\t\t\t\ttitle={product.product_title}\n\t\t\t\t\tvariantTitle={product.variant_title}\n\t\t\t\t\tpending={!calculation}\n\t\t\t\t\tprice={calculation?.price}\n\t\t\t\t\tcompareAtPrice={calculation?.compareAtPrice}\n\t\t\t\t\tquantity={product.quantity}\n\t\t\t\t\tshowQuantity={false}\n\t\t\t\t/>\n\t\t\t\t<ProductActions\n\t\t\t\t\tvariantId={product.variant_id}\n\t\t\t\t\tquantity={product.quantity}\n\t\t\t\t\tquantityRule={product.quantity_rule}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</li>\n\t);\n};\n\nexport default Product;\n","import useCartItems from \"../../../lib/hooks/context/use-cart-items\";\nimport Product from \"./product\";\n\nconst ProductList = () => {\n\tconst { cartItems } = useCartItems();\n\n\treturn (\n\t\t<ul className=\"rf-product-list border-neutral-2 divide-y divide-neutral-2\">\n\t\t\t{cartItems.map((product, i) => {\n\t\t\t\tconst key = `${product.id}-${i}`;\n\t\t\t\treturn <Product key={key} product={product} />;\n\t\t\t})}\n\t\t</ul>\n\t);\n};\n\nexport default ProductList;\n","const ArrowDownIcon = ({\n\tclassName,\n\t...props\n}: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={9}\n\t\theight={11}\n\t\tviewBox=\"0 0 9 11\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--arrow-down ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\td=\"m4.92 10.824 3.907-3.972A.6.6 0 0 0 9 6.426.6.6 0 0 0 8.827 6l-.355-.36a.594.594 0 0 0-.842 0L5.346 7.957V.594A.583.583 0 0 0 4.764 0h-.502a.605.605 0 0 0-.608.594v7.39L1.357 5.64a.58.58 0 0 0-.831 0L.172 6A.6.6 0 0 0 0 6.426c0 .161.062.312.173.426l3.907 3.972A.58.58 0 0 0 4.5 11a.58.58 0 0 0 .42-.176\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\n\nexport default ArrowDownIcon;\n","const ChevronIcon = ({\n\tclassName,\n\t...props\n}: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={11}\n\t\theight={7}\n\t\tviewBox=\"0 0 11 7\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--chevron ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M10.632 6.183a.95.95 0 0 1-.673.24.97.97 0 0 1-.652-.288l-3.375-3.49-3.375 3.49a.96.96 0 0 1-.652.287.96.96 0 0 1-.673-.24.9.9 0 0 1-.299-.625.88.88 0 0 1 .25-.646L5.244.71a.97.97 0 0 1 1.375 0l4.062 4.2a.9.9 0 0 1 .25.646.9.9 0 0 1-.3.626\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\nexport default ChevronIcon;\n","import { useEffect, useRef, useState } from \"preact/hooks\";\nimport { cn } from \"../../lib/utils/helpers\";\n\ninterface ExpanderProps\n\textends Omit<React.HTMLAttributes<HTMLDivElement>, \"onToggle\"> {\n\tisOpen: boolean;\n\tcollapseDelay?: number;\n\tautoCloseAfter?: number;\n\tonToggle?: (isOpen: boolean) => void;\n}\n\nconst Expander = ({\n\tisOpen,\n\tclassName,\n\tstyle,\n\tchildren,\n\tcollapseDelay = 300,\n\tautoCloseAfter,\n\tonToggle,\n\t...props\n}: ExpanderProps) => {\n\tconst [isRendered, setIsRendered] = useState(isOpen);\n\tconst [height, setHeight] = useState<number | undefined>(\n\t\tisOpen ? undefined : 0\n\t);\n\tconst containerRef = useRef<HTMLDivElement>(null);\n\tconst collapseTimeoutRef = useRef<NodeJS.Timeout>();\n\tconst autoCloseTimeoutRef = useRef<NodeJS.Timeout>();\n\n\t// Measure height whenever content might change\n\tconst measureHeight = () => {\n\t\tconst container = containerRef.current;\n\t\tif (container) {\n\t\t\tsetHeight(container.scrollHeight);\n\t\t}\n\t};\n\n\t// Handle opening/closing state changes\n\tuseEffect(() => {\n\t\tif (collapseTimeoutRef.current) {\n\t\t\tclearTimeout(collapseTimeoutRef.current);\n\t\t}\n\t\tif (autoCloseTimeoutRef.current) {\n\t\t\tclearTimeout(autoCloseTimeoutRef.current);\n\t\t}\n\n\t\tif (isOpen) {\n\t\t\t// Opening: render first, then measure height\n\t\t\tsetIsRendered(true);\n\n\t\t\t// Set up auto-close timer if specified\n\t\t\tif (autoCloseAfter && onToggle) {\n\t\t\t\tautoCloseTimeoutRef.current = setTimeout(() => {\n\t\t\t\t\tonToggle(false);\n\t\t\t\t}, autoCloseAfter);\n\t\t\t}\n\t\t} else {\n\t\t\t// Closing: set height to 0 immediately, unmount after delay\n\t\t\tsetHeight(0);\n\t\t\tcollapseTimeoutRef.current = setTimeout(() => {\n\t\t\t\tsetIsRendered(false);\n\t\t\t}, collapseDelay);\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (collapseTimeoutRef.current) {\n\t\t\t\tclearTimeout(collapseTimeoutRef.current);\n\t\t\t}\n\t\t\tif (autoCloseTimeoutRef.current) {\n\t\t\t\tclearTimeout(autoCloseTimeoutRef.current);\n\t\t\t}\n\t\t};\n\t}, [isOpen, collapseDelay, autoCloseAfter, onToggle]);\n\n\t// Measure height when rendered and opened\n\tuseEffect(() => {\n\t\tif (isRendered && isOpen) {\n\t\t\t// Use requestAnimationFrame to ensure DOM is updated\n\t\t\tconst frame = requestAnimationFrame(() => {\n\t\t\t\tmeasureHeight();\n\t\t\t});\n\t\t\treturn () => cancelAnimationFrame(frame);\n\t\t}\n\t}, [isRendered, isOpen, children]);\n\n\t// Re-measure height if content changes while open\n\tuseEffect(() => {\n\t\tif (isOpen && isRendered) {\n\t\t\tmeasureHeight();\n\t\t}\n\t}, [children, isOpen, isRendered]);\n\n\tif (!isRendered) return null;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"overflow-hidden transition-all duration-300 ease-in-out\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\tstyle={{\n\t\t\t\theight: height !== undefined ? `${height}px` : \"auto\",\n\t\t\t\t...(typeof style === \"object\" ? style : {})\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t<div ref={containerRef}>{children}</div>\n\t\t</div>\n\t);\n};\n\nexport default Expander;\n","import { useTranslations } from \"use-intl\";\nimport { cn } from \"../../../lib/utils/helpers\";\nimport GiftcardIcon from \"../../icons/giftcard\";\n\nexport type BadgeType = \"giftcard\";\n\nexport interface ProductBadgeProps {\n\ttype: BadgeType | null;\n}\n\ntype ReturnProductBadgeProps = React.HTMLAttributes<HTMLDivElement> &\n\tProductBadgeProps;\n\nconst ReturnProductBadge = ({\n\tclassName,\n\ttype,\n\t...props\n}: ReturnProductBadgeProps) => {\n\tconst t = useTranslations(\"product.badge\");\n\n\tswitch (type) {\n\t\tcase \"giftcard\":\n\t\t\treturn (\n\t\t\t\t<div\n\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\"rf-return-product__badge rf-return-product__badge--giftcard text-base text-primary\",\n\t\t\t\t\t\tclassName\n\t\t\t\t\t)}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<GiftcardIcon className=\"inline -mt-1 w-4 h-auto\" /> {t(\"giftcard\")}\n\t\t\t\t</div>\n\t\t\t);\n\t\tdefault:\n\t\t\treturn null;\n\t}\n};\n\nexport default ReturnProductBadge;\n","import { useTranslations } from \"use-intl\";\nimport Link from \"../../ui/link\";\nimport ReturnProductBadge, { ProductBadgeProps } from \"./return-product-badge\";\n\ninterface ReturnProductActionsProps extends ProductBadgeProps {\n\tpending?: boolean;\n\tdeleted?: boolean;\n\tonDeletedClick?: () => void;\n\thref: string;\n\thandleAnchorClick: () => void;\n}\n\nconst ReturnProductActions = ({\n\tpending = false,\n\tdeleted = false,\n\thref,\n\tonDeletedClick,\n\thandleAnchorClick,\n\t...rest\n}: ReturnProductActionsProps) => {\n\tconst t = useTranslations(\"product\");\n\n\tfunction handleDeletedClick() {\n\t\tif (deleted) {\n\t\t\tonDeletedClick?.();\n\t\t}\n\t}\n\n\treturn (\n\t\t<div className=\"rf-return-product__actions flex justify-between items-center\">\n\t\t\t<Link\n\t\t\t\tonDisabledClick={handleDeletedClick}\n\t\t\t\tdisabled={pending || deleted}\n\t\t\t\tonClick={handleAnchorClick}\n\t\t\t\tclassName=\"rf-return-product__link text-sm underline block\"\n\t\t\t\thref={href}\n\t\t\t>\n\t\t\t\t{t(\"go_to_product\")}\n\t\t\t</Link>\n\t\t\t<ReturnProductBadge {...rest} />\n\t\t</div>\n\t);\n};\n\nexport default ReturnProductActions;\n","import { useMemo, useState } from \"preact/hooks\";\nimport { useTranslations } from \"use-intl\";\nimport useWidgetContext from \"../../../lib/hooks/context/use-widget-context\";\nimport {\n\tCalculationLineItem,\n\tOrderProduct,\n\tWidgetViewState\n} from \"../../../lib/types\";\nimport { cn, isNil } from \"../../../lib/utils/helpers\";\nimport Banner from \"../../ui/banner/banner\";\nimport Expander from \"../../ui/expander\";\nimport Image from \"../../ui/image\";\nimport Link from \"../../ui/link\";\nimport ProductAttributes from \"../product/product-attributes\";\nimport ReturnProductActions from \"./return-product-actions\";\nimport { BadgeType } from \"./return-product-badge\";\n\nexport interface ExtendedCalculationLineItem extends OrderProduct {\n\tcalculation: CalculationLineItem | undefined;\n}\n\nexport interface IReturnProductAttributes {\n\thandle: string;\n\timageSource: string;\n}\n\ninterface ReturnProductProps\n\textends Omit<React.HTMLAttributes<HTMLLIElement>, \"children\" | \"title\"> {\n\tproduct: ExtendedCalculationLineItem;\n\tallProducts: ExtendedCalculationLineItem[];\n}\n\nconst ReturnProduct = ({\n\tproduct: { calculation, ...product },\n\tallProducts,\n\tclassName,\n\t...props\n}: ReturnProductProps) => {\n\tconst t = useTranslations(\"product.error\");\n\tconst [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n\tconst {\n\t\twidgetViewState,\n\t\tconfig: {\n\t\t\tdata: { returnData }\n\t\t}\n\t} = useWidgetContext();\n\n\tconst href = `/products/${product.handle}`;\n\n\tfunction handleAnchorClick() {\n\t\twidgetViewState.set(WidgetViewState.Collapsed);\n\t}\n\n\tconst qty = product?.quantity ?? 1;\n\n\tconst price = (calculation?.discountedPrice ?? calculation?.price ?? 0) * qty;\n\tconst compareAtPrice = (calculation?.originalPrice ?? 0) * qty;\n\n\tconst badgeType: BadgeType | null = useMemo(() => {\n\t\tconst allActions = allProducts\n\t\t\t.flatMap(item => {\n\t\t\t\tif (item.id !== product.id) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\tconst returnItems = returnData?.items.filter(\n\t\t\t\t\treturnItem => returnItem.lineItemId === item.shopifyLineId\n\t\t\t\t);\n\t\t\t\tif (!returnItems || returnItems.length === 0) {\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t\treturn returnItems.map(item => item.action);\n\t\t\t})\n\t\t\t.filter(item => !isNil(item));\n\n\t\tconst multipleTypes = new Set(allActions).size > 1;\n\n\t\tconst action = calculation?.action;\n\n\t\tif (multipleTypes || !action) {\n\t\t\treturn null;\n\t\t}\n\n\t\tswitch (action) {\n\t\t\tcase \"GIFTCARD\":\n\t\t\t\treturn \"giftcard\";\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t}, [calculation?.action, allProducts, product.id, returnData?.items]);\n\n\tconst isDeleted = !calculation?.variantId;\n\n\tfunction handleDeletedClick() {\n\t\tif (!isDeleted) {\n\t\t\treturn;\n\t\t}\n\t\tsetErrorMessage(t(\"product_unavailable\"));\n\t}\n\n\treturn (\n\t\t<li\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-return-product grid grid-cols-[max-content_1fr] gap-x-4 p-base\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Link\n\t\t\t\tdisabled={isDeleted}\n\t\t\t\tonDisabledClick={handleDeletedClick}\n\t\t\t\tclassName=\"rf-return-product__image-link\"\n\t\t\t\tonClick={handleAnchorClick}\n\t\t\t\thref={href}\n\t\t\t\tunstyled\n\t\t\t>\n\t\t\t\t<Image\n\t\t\t\t\tclassName=\"rf-return-product__image size-[70px] rounded-lg border border-neutral-1 object-cover\"\n\t\t\t\t\tsrc={product.image}\n\t\t\t\t\talt={product.title}\n\t\t\t\t/>\n\t\t\t</Link>\n\t\t\t<div className=\"rf-return-product__content flex-1 space-y-1 flex flex-col justify-between\">\n\t\t\t\t<ProductAttributes\n\t\t\t\t\tclassName=\"text-neutral-3\"\n\t\t\t\t\thandle={product.handle}\n\t\t\t\t\ttitle={product.title}\n\t\t\t\t\tvariantTitle={product.variantTitle}\n\t\t\t\t\tpending={!calculation}\n\t\t\t\t\tprice={price}\n\t\t\t\t\tcompareAtPrice={compareAtPrice}\n\t\t\t\t\tquantity={product.quantity}\n\t\t\t\t/>\n\t\t\t\t<ReturnProductActions\n\t\t\t\t\tpending={!calculation}\n\t\t\t\t\tdeleted={isDeleted}\n\t\t\t\t\thref={href}\n\t\t\t\t\tonDeletedClick={handleDeletedClick}\n\t\t\t\t\thandleAnchorClick={handleAnchorClick}\n\t\t\t\t\ttype={badgeType}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<Expander\n\t\t\t\tclassName=\"col-span-full\"\n\t\t\t\tisOpen={!!errorMessage}\n\t\t\t\tautoCloseAfter={5000}\n\t\t\t\tonToggle={bool => setErrorMessage(!bool ? null : errorMessage)}\n\t\t\t>\n\t\t\t\t<div className=\"pt-4\">\n\t\t\t\t\t<Banner tone=\"error\">{errorMessage}</Banner>\n\t\t\t\t</div>\n\t\t\t</Expander>\n\t\t</li>\n\t);\n};\n\nexport default ReturnProduct;\n","import { cn } from \"../../../lib/utils/helpers\";\nimport Skeleton from \"../../ui/skeleton/skeleton\";\n\nconst ReturnProductSkeleton = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLLIElement>) => {\n\treturn (\n\t\t<li\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-return-product-skeleton flex gap-4 p-base text-sm\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Skeleton className=\"size-[70px] rounded-lg\" />\n\t\t\t<div className=\"rf-return-product-skeleton__content flex-1 space-y-1 flex flex-col justify-between\">\n\t\t\t\t<div className=\"rf-return-product-skeleton__info space-y-1\">\n\t\t\t\t\t<Skeleton className=\"w-[16ch]\" />\n\t\t\t\t\t<Skeleton className=\"text-xs w-[12ch]\" />\n\t\t\t\t</div>\n\t\t\t\t<Skeleton className=\"text-xs w-[16ch]\" />\n\t\t\t</div>\n\t\t\t<Skeleton className=\"w-[8ch]\" />\n\t\t</li>\n\t);\n};\n\nexport default ReturnProductSkeleton;\n","import { useMemo } from \"preact/hooks\";\nimport { useTranslations } from \"use-intl\";\nimport useCalculation from \"../../../lib/hooks/context/use-calculation\";\nimport useReturnContext from \"../../../lib/hooks/context/use-return-context\";\nimport useWidgetContext from \"../../../lib/hooks/context/use-widget-context\";\nimport { ReturnViewState } from \"../../../lib/types\";\nimport ArrowDownIcon from \"../../icons/arrow-down\";\nimport ChevronIcon from \"../../icons/chevron\";\nimport Icon from \"../../icons/icon\";\nimport Banner from \"../../ui/banner/banner\";\nimport Price from \"../../ui/price\";\nimport SkeletonContainer from \"../../ui/skeleton/skeleton-container\";\nimport ReturnProduct, { ExtendedCalculationLineItem } from \"./return-product\";\nimport ReturnProductSkeleton from \"./return-product-skeleton\";\n\nconst ReturnProductList = () => {\n\tconst t = useTranslations(\"return_products\");\n\tconst { returnViewState } = useWidgetContext();\n\tconst { orderState, calculationState } = useReturnContext();\n\n\tconst { orderTotal } = useCalculation();\n\n\tconst isPending = calculationState.initialFetch;\n\n\tconst lineItems = calculationState.value.data?.lineItems;\n\tconst exchangeProducts = orderState.value.data?.orderData.productsToExchange;\n\n\tconst extendedLineItems: ExtendedCalculationLineItem[] = useMemo(() => {\n\t\tif (!lineItems || !exchangeProducts) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn exchangeProducts.map(exchangeProduct => {\n\t\t\tconst lineItem = lineItems.find(\n\t\t\t\titem => item.lineItemId === exchangeProduct.shopifyLineId\n\t\t\t);\n\n\t\t\treturn {\n\t\t\t\t...exchangeProduct,\n\t\t\t\tcalculation: lineItem\n\t\t\t};\n\t\t});\n\t}, [lineItems, exchangeProducts]);\n\n\tconst hasGiftcardItem = Boolean(\n\t\textendedLineItems?.some(item => item.calculation?.action === \"GIFTCARD\")\n\t);\n\n\tfunction onToggle() {\n\t\treturnViewState.set(prev =>\n\t\t\tprev === ReturnViewState.Collapsed\n\t\t\t\t? ReturnViewState.Open\n\t\t\t\t: ReturnViewState.Collapsed\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"rf-return-product-list border-b border-neutral-2 relative mb-base group [&[data-state='OPEN']]:mb-[calc(var(--rf-base-spacing)*2)]\"\n\t\t\tdata-state={returnViewState.value}\n\t\t>\n\t\t\t<div className=\"rf-return-product-list__header flex justify-between items-center p-base\">\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"rf-return-product-list__toggle-button flex items-center gap-2 font-medium\"\n\t\t\t\t\tonClick={onToggle}\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t>\n\t\t\t\t\t<span className=\"rf-return-product-list__toggle-text\">\n\t\t\t\t\t\t{t(\"action\")}\n\t\t\t\t\t</span>\n\t\t\t\t\t<ChevronIcon\n\t\t\t\t\t\tclassName={`transition-transform will-change-transform ${\n\t\t\t\t\t\t\treturnViewState.value === ReturnViewState.Open\n\t\t\t\t\t\t\t\t? \"rotate-180\"\n\t\t\t\t\t\t\t\t: \"rotate-0\"\n\t\t\t\t\t\t}`}\n\t\t\t\t\t/>\n\t\t\t\t</button>\n\t\t\t\t<Price value={orderTotal} pending={isPending} />\n\t\t\t</div>\n\t\t\t{/* This is being set with CSS to later support a potential animation */}\n\t\t\t<div className=\"rf-return-product-list__content pb-base group-[&[data-state='COLLAPSED']]:hidden\">\n\t\t\t\t{hasGiftcardItem && (\n\t\t\t\t\t<div className=\"rf-return-product-list__container p-base pt-0\">\n\t\t\t\t\t\t<Banner className=\"rf-return-product-list__banner\" tone=\"giftcard\">\n\t\t\t\t\t\t\t{t(\"banner.giftcard\")}\n\t\t\t\t\t\t</Banner>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<ul className=\"rf-return-product-list__items divide-y divide-neutral-2\">\n\t\t\t\t\t<SkeletonContainer\n\t\t\t\t\t\tpending={isPending}\n\t\t\t\t\t\tskeleton={\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<ReturnProductSkeleton />\n\t\t\t\t\t\t\t\t<ReturnProductSkeleton />\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{extendedLineItems.map(lineItem => (\n\t\t\t\t\t\t\t<ReturnProduct\n\t\t\t\t\t\t\t\tclassName=\"first:pt-0\"\n\t\t\t\t\t\t\t\tkey={lineItem.id}\n\t\t\t\t\t\t\t\tproduct={lineItem}\n\t\t\t\t\t\t\t\tallProducts={extendedLineItems}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</SkeletonContainer>\n\t\t\t\t</ul>\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"absolute inset-x-0 mx-auto bottom-0 translate-y-1/2\"\n\t\t\t\t\tvariant=\"solid\"\n\t\t\t\t\ticon={ArrowDownIcon}\n\t\t\t\t/>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ReturnProductList;\n","import type { RefObject } from \"preact\";\nimport { useEffect, useState } from \"preact/hooks\";\n\ninterface UseYScrollableReturn extends ScrollState {\n\tisYScrollable: boolean;\n}\n\ninterface ScrollState {\n\tisDirty: boolean;\n\tisScrolling: boolean;\n}\n\nconst useYScrollable = <T extends HTMLElement>(\n\tref: RefObject<T>\n): UseYScrollableReturn => {\n\tconst [isYScrollable, setIsYScrollable] = useState(false);\n\tconst [{ isScrolling, isDirty }, setScrollState] = useState<ScrollState>({\n\t\tisDirty: false,\n\t\tisScrolling: false\n\t});\n\n\tuseEffect(() => {\n\t\tconst element = ref.current;\n\t\tif (!element) return;\n\n\t\tconst checkScrollable = () => {\n\t\t\tconst scrollable = element.scrollHeight > element.clientHeight;\n\t\t\tsetIsYScrollable(scrollable);\n\t\t};\n\n\t\tconst handleScroll = () => {\n\t\t\tconst currentScrollTop = element.scrollTop;\n\t\t\tconst hasScrolled = currentScrollTop > 0;\n\t\t\tsetScrollState(prev => ({\n\t\t\t\tisDirty: hasScrolled ? true : prev.isDirty,\n\t\t\t\tisScrolling: hasScrolled\n\t\t\t}));\n\t\t};\n\n\t\t// Initial checks\n\t\tcheckScrollable();\n\t\thandleScroll();\n\n\t\t// Use ResizeObserver for element size changes\n\t\tconst resizeObserver = new ResizeObserver(() => {\n\t\t\tcheckScrollable();\n\t\t});\n\t\tresizeObserver.observe(element);\n\n\t\t// Use MutationObserver to detect content changes (like dropdown visibility)\n\t\tconst mutationObserver = new MutationObserver(() => {\n\t\t\tcheckScrollable();\n\t\t});\n\n\t\tmutationObserver.observe(element, {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t\tattributes: true,\n\t\t\tattributeFilter: [\"style\", \"class\"] // Common attributes that affect visibility\n\t\t});\n\n\t\t// Listen to scroll events\n\t\telement.addEventListener(\"scroll\", handleScroll, { passive: true });\n\n\t\treturn () => {\n\t\t\tresizeObserver.disconnect();\n\t\t\tmutationObserver.disconnect();\n\t\t\telement.removeEventListener(\"scroll\", handleScroll);\n\t\t};\n\t}, [ref]);\n\n\treturn { isYScrollable, isScrolling, isDirty };\n};\n\nexport default useYScrollable;\n","import useYScrollable from \"../../lib/hooks/common/use-y-scrollable\";\nimport ArrowDownIcon from \"../icons/arrow-down\";\n\ninterface ScrollIndicatorProps {\n\tcontainerRef: React.RefObject<HTMLDivElement>;\n}\n\nconst ScrollIndicator = ({ containerRef }: ScrollIndicatorProps) => {\n\tconst { isYScrollable, isDirty } = useYScrollable(containerRef);\n\n\tconst isVisible = !isDirty && isYScrollable;\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"rf-scroll-indicator w-full h-36 bg-gradient-to-t from-white to-transparent absolute bottom-full inset-x-0 flex items-end justify-center p-base transition-all pointer-events-none\"\n\t\t\tstyle={{\n\t\t\t\topacity: isVisible ? 1 : 0,\n\t\t\t\tvisibility: isVisible ? \"visible\" : \"hidden\"\n\t\t\t}}\n\t\t>\n\t\t\t<div className=\"rf-scroll-indicator__content rounded-full py-2.5 w-24 bg-neutral-1 text-center space-x-1 align-middle\">\n\t\t\t\t<span className=\"rf-scroll-indicator__text\">Scroll</span>{\" \"}\n\t\t\t\t<ArrowDownIcon className=\"inline text-neutral-3 -mt-0.5\" />\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nexport default ScrollIndicator;\n","import { useRef } from \"preact/hooks\";\nimport useReturnContext from \"../../lib/hooks/context/use-return-context\";\nimport useWidgetContext from \"../../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils/helpers\";\nimport ExchangeAdjustments from \"./adjustments/exchange-adjustments\";\nimport AnnoucementBar from \"./annoucement-bar\";\nimport ErrorScreen from \"./error-screen\";\nimport ExchangeConfirmation from \"./exchange-confirmation\";\nimport ExchangeHeader from \"./exchange-header\";\nimport ExchangePlaceholder from \"./exchange-placeholder\";\nimport ProductErrors from \"./product/product-errors\";\nimport ProductList from \"./product/product-list\";\nimport ReturnProductList from \"./return/return-product-list\";\nimport ScrollIndicator from \"./scroll-indicator\";\n\ninterface ExchangeDrawerProps {\n\tstate?: boolean;\n}\n\nconst ExchangeDrawer = ({ state }: ExchangeDrawerProps) => {\n\tconst { widgetViewState } = useWidgetContext();\n\tconst { cartState, hasFailed } = useReturnContext();\n\tconst scrollContainerRef = useRef<HTMLDivElement>(null);\n\n\tconst hasItems =\n\t\tcartState.value.data &&\n\t\t!cartState.value.error &&\n\t\tcartState.value.data.transformed.item_count !== 0;\n\n\treturn (\n\t\t<>\n\t\t\t<div\n\t\t\t\taria-hidden\n\t\t\t\tonClick={() => widgetViewState.set(WidgetViewState.Collapsed)}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"max-desktop:hidden transition-[background-color,visibility] inset-0 size-full fixed z-10 duration-300 ease-in-out\",\n\t\t\t\t\tstate\n\t\t\t\t\t\t? \"bg-black/30 visible\"\n\t\t\t\t\t\t: \"bg-black/0 pointer-events-none invisible\"\n\t\t\t\t)}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"rf-drawer bg-background text-foreground transition-[transform,visibility] duration-300 ease-in-out z-20 fixed max-desktop:inset-0 desktop:right-0 desktop:inset-y-0 size-full pt-safe flex flex-col desktop:max-w-[var(--rf-desktop-widget-width)]\",\n\t\t\t\t\tstate\n\t\t\t\t\t\t? \"max-desktop:translate-y-0 desktop:translate-x-0 visible\"\n\t\t\t\t\t\t: \"max-desktop:translate-y-full desktop:translate-x-full pointer-events-none invisible\"\n\t\t\t\t)}\n\t\t\t\taria-hidden={!state}\n\t\t\t\tinert={!state}\n\t\t\t\ttabIndex={!state ? -1 : undefined}\n\t\t\t>\n\t\t\t\t<ExchangeHeader />\n\t\t\t\t<AnnoucementBar />\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"rf-drawer__content flex-1 min-h-0 overflow-y-auto flex flex-col\"\n\t\t\t\t\tref={scrollContainerRef}\n\t\t\t\t>\n\t\t\t\t\t{hasFailed ? (\n\t\t\t\t\t\t<ErrorScreen />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<ReturnProductList />\n\t\t\t\t\t\t\t{hasItems ? <ProductList /> : <ExchangePlaceholder />}\n\t\t\t\t\t\t\t<ProductErrors />\n\t\t\t\t\t\t</>\n\t\t\t\t\t)}\n\t\t\t\t\t<ExchangeAdjustments className=\"rf-drawer__adjustments mt-auto\" />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rf-drawer__footer relative mt-auto\">\n\t\t\t\t\t<ScrollIndicator containerRef={scrollContainerRef} />\n\t\t\t\t\t<ExchangeConfirmation />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n};\n\nexport default ExchangeDrawer;\n","const BagIcon = ({ className, ...props }: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={14}\n\t\theight={17}\n\t\tviewBox=\"0 0 14 17\"\n\t\tfill=\"none\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--bag ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path\n\t\t\tfillRule=\"evenodd\"\n\t\t\tclipRule=\"evenodd\"\n\t\t\td=\"M3.175 4.146H2.103c-.74 0-1.355.589-1.408 1.348l-.691 9.952c-.028.401.107.797.374 1.092A1.4 1.4 0 0 0 1.412 17h11.176a1.4 1.4 0 0 0 1.034-.462c.267-.295.402-.69.374-1.093l-.691-9.95c-.053-.76-.668-1.349-1.408-1.349h-1.065V3.94C10.832 1.763 9.117 0 7 0 4.96 0 3.076 1.67 3.168 3.939zm7.657 1.244V8.5a.614.614 0 0 1-.605.622.614.614 0 0 1-.605-.622V5.39H4.378V8.5a.614.614 0 0 1-.605.622.614.614 0 0 1-.605-.622s.052-1.453.035-3.11h-1.1a.204.204 0 0 0-.2.193l-.692 9.95a.2.2 0 0 0 .053.157.2.2 0 0 0 .148.066h11.176a.2.2 0 0 0 .148-.066.2.2 0 0 0 .053-.156l-.691-9.951a.204.204 0 0 0-.201-.193zm-1.21-1.244V3.94c0-1.49-1.174-2.696-2.622-2.696S4.378 2.45 4.378 3.939v.207z\"\n\t\t\tfill=\"currentColor\"\n\t\t/>\n\t</svg>\n);\nexport default BagIcon;\n","import { TOAST_ANIMATION_DURATION } from \"../../lib/context/toast-context\";\nimport useToast from \"../../lib/hooks/context/use-toast\";\nimport { cn } from \"../../lib/utils/helpers\";\nimport Banner, { BannerTone } from \"../ui/banner/banner\";\n\nexport interface ToastOptions {\n\tid: string;\n\tmessage: preact.ComponentChildren;\n\ttone?: BannerTone;\n\tduration?: number; // Duration in milliseconds\n\tonClose?: () => void; // Callback when the toast is closed\n}\n\nexport interface ToastQueue extends ToastOptions {\n\tisVisible: boolean; // Indicates if the toast is currently visible\n}\n\nexport interface ToastProps extends React.HTMLAttributes<HTMLDivElement> {\n\toptions: ToastQueue;\n}\n\nconst Toast = ({\n\toptions: { id, tone = \"info\", message, isVisible },\n\tclassName,\n\tstyle,\n\t...props\n}: ToastProps) => {\n\tconst { remove } = useToast();\n\n\treturn (\n\t\t<div\n\t\t\tonClick={() => remove(id)}\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-toast animate-slide-up-and-fade-in overflow-hidden shadow-sm max-w-screen-lg mx-auto\",\n\t\t\t\t`rf-toast--${tone}`,\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\t{...props}\n\t\t\tstyle={{\n\t\t\t\tvisibility: isVisible ? \"visible\" : \"hidden\",\n\t\t\t\topacity: isVisible ? 1 : 0,\n\t\t\t\ttransform: !isVisible ? \"translateY(-20px)\" : undefined,\n\t\t\t\ttransition: `all ${TOAST_ANIMATION_DURATION}ms ease-in-out`,\n\t\t\t\t...(typeof style === \"object\" ? style : undefined) // Spread any additional styles\n\t\t\t}}\n\t\t>\n\t\t\t<Banner tone={tone} className=\"font-medium\" border=\"dashed\">\n\t\t\t\t{message}\n\t\t\t</Banner>\n\t\t</div>\n\t);\n};\n\nexport default Toast;\n","import { useContext } from \"preact/hooks\";\nimport { ToastContext } from \"../../lib/context/toast-context\";\nimport Toast from \"./toast\";\n\nconst ToastContainer = () => {\n\tconst { queue } = useContext(ToastContext);\n\n\tif (queue.length === 0) {\n\t\treturn null; // Return null if there are no toasts to display\n\t}\n\n\treturn (\n\t\t<div className=\"rf-toast__container p-base space-y-base\">\n\t\t\t{queue.map(toast => (\n\t\t\t\t<Toast key={toast.id} options={toast} />\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport default ToastContainer;\n","const ArrowLeftIcon = ({\n\tclassName,\n\t...props\n}: React.SVGProps<SVGSVGElement>) => (\n\t<svg\n\t\twidth={11}\n\t\theight={9}\n\t\tviewBox=\"0 0 11 9\"\n\t\tfill=\"currentColor\"\n\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\tclassName={`rf-icon rf-icon--arrow-left ${className || \"\"}`}\n\t\t{...props}\n\t>\n\t\t<path d=\"m.66 5.202 3.61 3.473c.103.1.24.154.387.154a.56.56 0 0 0 .387-.154l.328-.315a.52.52 0 0 0 0-.749l-2.107-2.03H9.96c.301 0 .54-.228.54-.518v-.446c0-.29-.239-.54-.54-.54H3.242l2.131-2.042a.505.505 0 0 0 0-.739L5.045.982a.55.55 0 0 0-.387-.153.56.56 0 0 0-.387.153L.66 4.455a.513.513 0 0 0 0 .747\" />\n\t</svg>\n);\nexport default ArrowLeftIcon;\n","import { useTranslations } from \"use-intl\";\nimport useNavigation from \"../../lib/hooks/context/use-navigation\";\nimport useReturnContext from \"../../lib/hooks/context/use-return-context\";\nimport { cn } from \"../../lib/utils/helpers\";\nimport ArrowLeftIcon from \"../icons/arrow-left\";\nimport Button from \"../ui/button\";\n\nconst BackButton = ({\n\tclassName,\n\t...props\n}: React.ButtonHTMLAttributes<HTMLButtonElement>) => {\n\tconst t = useTranslations(\"summary\");\n\tconst { orderState } = useReturnContext();\n\tconst navigation = useNavigation();\n\n\tconst isPending = orderState.value.pending;\n\n\tasync function handleClick() {\n\t\tif (isPending) return;\n\n\t\tconst lastExchangeProductId =\n\t\t\torderState.value.data?.orderData.productsToExchange?.at(-1)?.id;\n\n\t\tnavigation.back(lastExchangeProductId);\n\t}\n\n\treturn (\n\t\t<Button\n\t\t\tvariant=\"ghost\"\n\t\t\ticon={ArrowLeftIcon}\n\t\t\ticonPosition=\"left\"\n\t\t\tonClick={handleClick}\n\t\t\tdisabled={isPending}\n\t\t\tclassName={cn(\n\t\t\t\t\"rf-back-button desktop:text-black desktop:bg-neutral-2 desktop:hover:opacity-50 desktop:font-semibold max-desktop:text-sm max-desktop:px-0 max-desktop:h-auto\",\n\t\t\t\tclassName\n\t\t\t)}\n\t\t\ttype=\"button\"\n\t\t\t{...props}\n\t\t>\n\t\t\t<span className=\"rf-back-button__text\">{t(\"back\")}</span>\n\t\t</Button>\n\t);\n};\n\nexport default BackButton;\n","import Skeleton from \"../ui/skeleton/skeleton\";\n\nconst ExchangeTotalSkeleton = () => {\n\treturn (\n\t\t<div className=\"rf-exchange-total-skeleton max-desktop:max-w-48 w-full desktop:w-48 space-y-1 text-xs\">\n\t\t\t<Skeleton className=\"w-full rounded-md\" />\n\t\t\t<Skeleton className=\"w-full rounded-md\" />\n\t\t</div>\n\t);\n};\n\nexport default ExchangeTotalSkeleton;\n","import { useTranslations } from \"use-intl\";\nimport useCalculation from \"../../lib/hooks/context/use-calculation\";\nimport useReturnContext from \"../../lib/hooks/context/use-return-context\";\nimport { cn } from \"../../lib/utils/helpers\";\nimport Price from \"../ui/price\";\nimport SkeletonContainer from \"../ui/skeleton/skeleton-container\";\nimport ExchangeTotalSkeleton from \"./exchange-total-skeleton\";\n\nconst ExchangeTotal = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) => {\n\tconst t = useTranslations(\"summary\");\n\tconst { orderState, isPending } = useReturnContext();\n\n\tconst { orderTotal, cartTotal } = useCalculation();\n\n\treturn (\n\t\t<SkeletonContainer skeleton={<ExchangeTotalSkeleton />} pending={isPending}>\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"rf-exchange-total font-normal text-sm max-desktop:max-w-48 w-full desktop:w-48 flex-1\",\n\t\t\t\t\tclassName\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t<div className=\"rf-exchange-total__row flex justify-between\">\n\t\t\t\t\t<span className=\"rf-exchange-total__label text-neutral-3\">\n\t\t\t\t\t\t{t(\"order\")} {orderState.value.data?.orderData.orderName}:\n\t\t\t\t\t</span>\n\t\t\t\t\t<Price className=\"text-sm font-normal\" value={orderTotal} />\n\t\t\t\t</div>\n\t\t\t\t<div className=\"rf-exchange-total__row flex justify-between\">\n\t\t\t\t\t<span className=\"rf-exchange-total__label text-neutral-3\">\n\t\t\t\t\t\t{t(\"cart_contents\")}:\n\t\t\t\t\t</span>\n\t\t\t\t\t<Price\n\t\t\t\t\t\tclassName=\"text-sm font-normal\"\n\t\t\t\t\t\tvalue={Math.max(0, cartTotal)}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</SkeletonContainer>\n\t);\n};\n\nexport default ExchangeTotal;\n","import { useTranslations } from \"use-intl\";\nimport useWidgetContext from \"../../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../../lib/types\";\nimport { cn } from \"../../lib/utils/helpers\";\nimport BagIcon from \"../icons/bag\";\nimport ReturnAvatarStack from \"../return-avatar-stack\";\nimport ToastContainer from \"../toast/toast-container\";\nimport Button from \"../ui/button\";\nimport BackButton from \"./back-button\";\nimport ExchangeTotal from \"./exchange-total\";\n\nconst ExchangeSummary = () => {\n\tconst t = useTranslations(\"summary\");\n\tconst { widgetViewState } = useWidgetContext();\n\n\treturn (\n\t\t<div className=\"rf-summary__container fixed bottom-0 inset-x-0 pb-safe animate-slide-up\">\n\t\t\t<ToastContainer />\n\t\t\t<div className=\"rf-summary h-[var(--rf-summary-height,_auto)] bg-widget-background text-widget-foreground max-desktop:rounded-t-3xl flex max-desktop:flex-col desktop:justify-between desktop:px-5\">\n\t\t\t\t<div className=\"rf-summary__header flex items-center max-desktop:px-5 max-desktop:flex-1 gap-2 desktop:gap-4 text-sm desktop:text-base\">\n\t\t\t\t\t<BackButton className=\"rf-summary__back max-desktop:mr-auto\" />\n\t\t\t\t\t{/* <ExitButton className=\"rf-summary__cancel max-desktop:hidden\" /> */}\n\t\t\t\t\t<Divider className=\"max-desktop:hidden\" />\n\t\t\t\t\t<div className=\"flex items-center gap-2 desktop:flex-row-reverse\">\n\t\t\t\t\t\t<ReturnAvatarStack />\n\t\t\t\t\t\t<span className=\"rf-summary__title font-medium\">{t(\"title\")}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<Divider className=\"desktop:hidden\" />\n\t\t\t\t<div className=\"rf-summary__actions max-desktop:px-5 max-desktop:py-3 gap-4 flex desktop:flex-row-reverse items-end desktop:items-center justify-between\">\n\t\t\t\t\t<Button\n\t\t\t\t\t\tclassName=\"rf-summary__button ![--icon-height:initial]\"\n\t\t\t\t\t\tonClick={() =>\n\t\t\t\t\t\t\twidgetViewState.set(prev =>\n\t\t\t\t\t\t\t\tprev === WidgetViewState.Collapsed\n\t\t\t\t\t\t\t\t\t? WidgetViewState.Open\n\t\t\t\t\t\t\t\t\t: WidgetViewState.Collapsed\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\ticon={BagIcon}\n\t\t\t\t\t>\n\t\t\t\t\t\t{t(\"view_cart\")}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Divider className=\"max-desktop:hidden\" />\n\t\t\t\t\t<ExchangeTotal />\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n\nconst Divider = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n\t<div\n\t\tclassName={cn(\n\t\t\t\"rf-summary__divider max-desktop:h-px w-full desktop:w-px desktop:self-stretch bg-neutral-2 shrink-0\",\n\t\t\tclassName\n\t\t)}\n\t\t{...props}\n\t/>\n);\n\nexport default ExchangeSummary;\n","import useWidgetContext from \"../lib/hooks/context/use-widget-context\";\nimport { WidgetViewState } from \"../lib/types\";\nimport ExchangeDrawer from \"./drawer/exchange-drawer\";\nimport ExchangeSummary from \"./summary/exchange-summary\";\n\nconst Widget = () => {\n\tconst { widgetViewState } = useWidgetContext();\n\n\treturn (\n\t\t<>\n\t\t\t<ExchangeSummary />\n\t\t\t<ExchangeDrawer state={widgetViewState.value === WidgetViewState.Open} />\n\t\t</>\n\t);\n};\n\nexport default Widget;\n","import { IntlProvider } from \"use-intl\";\nimport { WidgetConfiguration } from \"../lib/utils/initialization/types\";\nimport DialogHandler from \"./handlers/dialog-handler\";\nimport InitializationHandler from \"./handlers/initialization-handler\";\nimport IsMounted from \"./is-mounted\";\nimport ErrorProvider from \"./providers/error-provider\";\nimport ReturnContextProvider from \"./providers/return-context-provider\";\nimport RootProvider from \"./providers/root-provider\";\nimport WidgetContextProvider from \"./providers/widget-context-provider\";\nimport ToastProvider from \"./toast/toast-provider\";\nimport Widget from \"./widget\";\n\n// This is the main entry point for the widget.\n// It initializes the widget with the provided options and renders it within the context providers.\nconst WidgetContainer = (config: WidgetConfiguration) => {\n\tconst { locale, messages } = config;\n\n\treturn (\n\t\t<IsMounted>\n\t\t\t<IntlProvider messages={messages} locale={locale}>\n\t\t\t\t<WidgetContextProvider {...config}>\n\t\t\t\t\t<ReturnContextProvider>\n\t\t\t\t\t\t<ErrorProvider>\n\t\t\t\t\t\t\t<RootProvider>\n\t\t\t\t\t\t\t\t<ToastProvider>\n\t\t\t\t\t\t\t\t\t<Widget />\n\t\t\t\t\t\t\t\t\t<DialogHandler />\n\t\t\t\t\t\t\t\t\t<InitializationHandler />\n\t\t\t\t\t\t\t\t</ToastProvider>\n\t\t\t\t\t\t\t</RootProvider>\n\t\t\t\t\t\t</ErrorProvider>\n\t\t\t\t\t</ReturnContextProvider>\n\t\t\t\t</WidgetContextProvider>\n\t\t\t</IntlProvider>\n\t\t</IsMounted>\n\t);\n};\n\nexport default WidgetContainer;\n"],"names":["WidgetViewState","ReturnViewState","getInternalCartProvider","_window$Returnflows$_","_window$Returnflows","window","Returnflows","_cartProvider","hasCartProvider","_window$Returnflows2","r","e","t","f","n","Array","isArray","o","length","clsx","arguments","CLASS_PART_SEPARATOR","createClassGroupUtils","config","classMap","createClassMap","conflictingClassGroups","conflictingClassGroupModifiers","getClassGroupId","className","classParts","split","shift","getGroupRecursive","getGroupIdForArbitraryProperty","getConflictingClassGroupIds","classGroupId","hasPostfixModifier","conflicts","classPartObject","_classPartObject$vali","currentClassPart","nextClassPartObject","nextPart","get","classGroupFromNextClassPart","slice","undefined","validators","classRest","join","find","_ref","validator","arbitraryPropertyRegex","test","arbitraryPropertyClassName","exec","property","substring","indexOf","theme","classGroups","Map","processClassesRecursively","classGroup","forEach","classDefinition","classPartObjectToEdit","getPart","isThemeGetter","push","Object","entries","_ref2","key","path","currentClassPartObject","pathPart","has","set","func","hoursToMilliseconds","hours","minutesToMilliseconds","minutes","STORAGE_SESSION_KEY","type","expiration","STORAGE_OVERLAY_DIALOG_EXPIRY_KEY","STORAGE_OVERLAY_DIALOG_EXPIRATION","STORAGE_CART_KEY","STORAGE_DEBUG_MODE_KEY","STORAGE_PREFIX","getStorageKey","concat","value","data","Date","now","storage","getStorage","setItem","JSON","stringify","storageItem","getItem","parsedData","parse","removeItem","_","_ref3","Boolean","remove","_ref4","sessionStorage","localStorage","Error","LOG_PREFIX","LogLevel","Logger","constructor","getInstance","instance","checkDebugMode","storedDebugModeValue","log","level","message","_len","args","_key","DEBUG","console","debug","INFO","info","WARN","warn","ERROR","error","_len2","_key2","_len3","_key3","_len4","_key4","_len5","_key5","logger","cn","inputs","twMerge","assert","variable","isNil","ensureHttpUrl","url","secure","startsWith","isNumber","isNaN","Number","isFinite","hexToHsl","hex","replace","parseInt","g","b","max","Math","min","diff","l","h","s","hDeg","round","sPercent","lPercent","isOnCartPage","location","pathname","includes","parseToNumber","fallback","parseFloat","toString","setNestedValue","obj","keys","lastKey","pop","target","reduce","current","next","getResolvedSearchParams","searchString","__rf_original_search","search","URLSearchParams","resolveSetStateAction","action","currentState","constructShopifyUrl","endpoint","queryParams","root","host","searchParams","handleShopifyFetch","init","_init$method","fetchUrl","rf","response","fetch","_objectSpread","method","body","cache","headers","ok","errorResponse","json","clearSession","normalizeShopifyPrice","formatShopifyId","id","stripShopifyId","segment","toMerchandiseGid","variantId","getRuleProductIds","rules","filter","rule","flatMap","products","map","product","shopifyProductId","normalizeCart","cart","noExchangeTo","items","itemCount","acc","item","product_id","has_components","existingItem","i","variant_id","quantity","normalizedCart","item_count","compareCarts","cart1","cart2","_normalizedCart1$item","_normalizedCart2$item","normalizedCart1","normalizedCart2","itemCount1","itemCount2","variantIds1","variantIds2","sort","a","every","index","getCart","preferStorage","usedStore","usedProvider","storedCart","getCartStorage","provider","updateCartStorage","source","clearCart","setCartItems","clearedCart","addItems","cartItems","merchandiseId","updateCartItemQuantity","isRetry","currentCart","updateCartItemQuantityViaShopify","lineId","line_id","merchandise_id","removeItems","updateItems","updateItem","err","status","_existingItems$existi","String","existingCart","existingItems","itemsWtihSameVariantId","totalQuantity","existingItemIndex","findIndex","increment","existingQuantity","calculatedQuantity","cartChange","line","resolveConnection","connections","edges","edge","node","isStorefrontCart","lines","toCents","amount","parsed","resolveLineImage","_line$merchandise$ima","_line$merchandise$pro","_line$merchandise$pro2","merchandise","image","featuredImage","productImages","images","normalizeStorefrontLine","_line$cost","productId","unitPrice","lineTotal","cost","amountPerQuantity","totalAmount","price","variantTitle","title","productTitle","isDefaultVariant","product_title","handle","grams","line_price","final_price","final_line_price","variant_title","sku","vendor","product_type","productType","requires_shipping","requiresShipping","normalizeStorefrontCart","_cart$totalQuantity","_cart$note","sum","token","note","normalizeCartInput","normalizeAndStore","normalized","wrapCartProvider","ids","bridge","widgetViewState","returnContext","toastContext","cartProvider","isInitialized","eventListeners","registerBridge","emitEvent","unregisterBridge","clear","setCartProvider","wrapped","getDrawerState","_bridge$widgetViewSta","_bridge$widgetViewSta2","setDrawerState","state","isDrawerOpen","_bridge$widgetViewSta3","Open","_bridge$returnContext","cartState","original","getCalculation","_bridge$returnContext2","_bridge$returnContext3","calculationState","getOrder","_bridge$returnContext4","orderData","orderState","orderId","orderName","instantExchange","freeExchangeLabel","productsToExchange","totalPrice","isLoading","_bridge$returnContext5","_bridge$returnContext6","isPending","setCart","_bridge$returnContext7","_bridge$returnContext8","_bridge$returnContext9","_bridge$config","_cartState$value$data","returnState","returnData","calculation","hasChanged","order","normalizedInput","productRules","_calculationState$val","transformedCart","transformed","pending","calculationResponse","query","lineItems","refetchCart","_bridge$returnContext10","_bridge$returnContext11","_bridge$cartProvider","document","dispatchEvent","CustomEvent","showToast","options","add","tone","duration","onClose","dismissToast","clearToasts","addEventListener","event","callback","Set","removeEventListener","_bridge$eventListener","delete","listeners","ReturnflowsWidget","defineProperty","open","_ensureInitialized","close","Collapsed","toggle","isOpen","refetch","show","dismiss","_initPromise","Promise","resolve","reject","_config$onReady","onReady","onError","rest","_objectWithoutProperties","_excluded","default","initialize","WidgetContainer","result","widgetConfig","networkInterceptionMethod","success","reason","_waitForBridge","call","_config$onError","destroy","container","getElementById","on","off","timeout","start","setTimeout","p","v","y","resolveEnvVar","varKey","_process$env","process","env","_import$meta$env","import","meta","IMAGE_FALLBACK_URL","API_URL","PLATFORM_URL","WIDGET_BASE_URL","SEARCH_PARAM_ID_NAME","LEGACY_PARAMS","ROOT_ELEMENT_ID","SHADOW_ROOT_ELEMENT_ID","CONTAINER_ELEMENT_ID","CUSTOM_CSS_DATA_ATTR","SETTINGS_SCRIPT_ID","InternalCustomEvent","ExternalCustomEvent","subscribe","eventName","handler","publish","detail","unsubscribe","customEvents","DEFAULT_LOCALE","DEFAULT_CURRENCY","loadMessages","locales","localesList","locale","messages","apiQuery","clientStorage","storageOptions","isStorageEnabled","shouldUseCachedResult","logging","cachedData","URL","params","parseJsonRes","storeResult","responseObject","labelCount","formattedLineItems","_item$action$toUpperC","_item$action","toUpperCase","returnOrderLineId","lineItemId","formattedExchangeTo","exchangeTo","numOfLabels","getShopOverlayData","isFirstLoad","internalReturnId","lineIds","cacheKey","internalId","orderLines","processOrderInitialization","_cache$returnData$ite","_cache$returnData","clearCartOnStart","updatedCart","_cache$returnItems","cachedReturnItems","returnItems","mappedItems","dialogExpiration","getTime","href","param","history","replaceState","updateSessionCache","getSessionCache","isDOMStringMap","DOMStringMap","prototype","parseScriptDataset","dataset","datasetRecord","resolvedValue","_unused","getSettingsFromScript","scriptElement","settings","innerHTML","prepareInitializationOptions","_settings$translation","_settings$theme","searchParamsId","resolvedCurrency","currency","defaultCurrency","isDevEnvironment","hasDebugParameter","isDebugModeEnabled","defaultLocale","val","resolvedLocale","customMessages","translations","debugMode","injectFont","preconnect","createSafeLinkElement","rel","preconnect2","crossOrigin","fontLink","onload","onerror","head","appendChild","attributes","selector","existing","querySelector","link","createElement","assign","validateCSS","css","openBraces","match","closeBraces","dangerousPatterns","some","pattern","injectCustomCSS","styleElement","setAttribute","textContent","injectStyle","shadowRoot","fileName","injectPublicVariables","createShadowRoot","existingContainer","style","display","shadow","attachShadow","mode","injectWidget","renderNode","render","containerResult","customCssOverlay","customCssPage","WidgetInitialization","extendStatics","d","setPrototypeOf","__proto__","hasOwnProperty","__extends","TypeError","__","create","__assign","apply","__rest","getOwnPropertySymbols","propertyIsEnumerable","__spreadArray","to","from","pack","ar","SuppressedError","suppressed","name","memoize","fn","cacheDefault","serializer","serializerDefault","strategy","strategyDefault","isPrimitive","monadic","arg","computedValue","variadic","assemble","context","serialize","bind","strategyVariadic","strategyMonadic","ObjectWithoutPrototypeCache","strategies","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","tag","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","len","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","WHITE_SPACE_REGEX","parseNumberSkeletonFromString","stringTokens","x","tokens","_i","stringTokens_1","stringToken","stemAndOptions","stem","_a","options_1","option","icuUnitToEcma","unit","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","str","roundingPriority","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","notation","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens_1","scale","useGrouping","maximumFractionDigits","compactDisplay","all","currencyDisplay","unitDisplay","roundingMode","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","timeData","getBestPattern","skeletonCopy","patternPos","patternChar","charAt","extraLength","hourLen","dayPeriodLen","dayPeriodChar","hourChar","getDefaultHourSymbolFromLocale","hourCycles","languageTag","language","regionTag","maximize","region","SPACE_SEPARATOR_START_REGEX","RegExp","SPACE_SEPARATOR_END_REGEX","createLocation","end","hasNativeStartsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","hasNativeIsSafeInteger","isSafeInteger","floor","abs","REGEX_SUPPORTS_U_AND_Y","re","RE","position","codePoints","elements","code","fromCharCode","entries_1","k","size","first","charCodeAt","flag","matchIdentifierAtIndex","IDENTIFIER_PREFIX_RE_1","lastIndex","c","_isWhiteSpace","_isPatternSyntax","Parser","offset","column","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","clonePosition","bump","peek","UNMATCHED_CLOSING_TAG","_isAlpha","parseTag","parseLiteral","startPosition","tagName","parseTagName","bumpSpace","bumpIf","childrenResult","children","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","closingTagName","UNCLOSED_TAG","startOffset","_isPotentialElementNameChar","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","_isAlphaOrSlash","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","endPosition","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","EXPECT_DATE_TIME_SKELETON","dateTimePattern","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","kind","prefix","currentOffset","targetOffset","nextCode","codepoint","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","ErrorCode","FormatError","_super","msg","_this","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","PART_TYPE","mergeLiteral","parts","part","lastPart","isFormatXMLElementFn","formatToParts","formatters","formats","values","currentPluralValue","els_1","getNumberFormat","format","varName","object","getDateTimeFormat","medium","value_1","formatFn","chunks","other","Intl","PluralRules","MISSING_INTL_API","getPluralRules","mergeConfig","c1","c2","mergeConfigs","defaultConfig","configs","createFastMemoizeCache","store","createDefaultFormatters","pluralRules","NumberFormat","DateTimeFormat","IntlMessageFormat","overrideFormats","formatterCache","ast","resolvedOptions","supportedLocalesOf","getAst","resolveLocale","__parse","parseOpts","memoizedDefaultLocale","enumerable","configurable","Locale","supportedLocales","integer","percent","short","long","full","u","__b","__r","diffed","__c","m","unmount","__h","__H","D","__N","setState","__f","props","shouldComponentUpdate","componentWillUpdate","__e","__s","C","A","T","q","sub","j","__P","z","B","__v","__k","__m","requestAnimationFrame","w","clearTimeout","cancelAnimationFrame","E","MISSING_MESSAGE","MISSING_FORMAT","ENVIRONMENT_FALLBACK","INSUFFICIENT_PATH","INVALID_MESSAGE","INVALID_KEY","FORMATTING_ERROR","namespace","relativeTime","list","displayNames","getRelativeTimeFormat","RelativeTimeFormat","getListFormat","ListFormat","getDisplayNames","DisplayNames","I","getMessageFallback","messagesOrError","timeZone","S","N","M","F","getMessageFormat","rich","markup","raw","R","seconds","days","week","weeks","months","quarter","quarters","years","_cache","_formatters","_e","_unused2","numberingSystem","numeric","dateTimeRange","formatRange","Provider","Z","useValueState","initialState","stateUpdateCallback","useState","wrappedSetState","prev","useDialog","register","useOnce","deps","effectRef","useRef","useEffect","WidgetContext","createContext","useWidgetContext","useContext","back","slug","fallbackProductId","_searchParams$get","constructedPlatformUrl","lastExchangeProductId","strippedProductId","at","append","continue","confirmationUrl","encodedSlug","encodeURIComponent","exit","clearCartOnExit","reload","ReturnContext","useReturnContext","Image","src","_jsx","SkeletonContainer","falsyToString","cx","cva","base","_config_compoundVariants","variants","class","defaultVariants","getVariantClassNames","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","getCompoundVariantClassNames","compoundVariants","cvClass","cvClassName","compoundVariantOptions","avatarVariants","light","dark","Avatar","memo","Skeleton","role","AvatarStackSkeleton","_jsxs","AvatarStack","maxVisibleAvatars","sliceIndex","alt","zIndex","ReturnAvatarStack","_orderState$value$dat3","formattedImages","useMemo","_orderState$value$dat","_orderState$value$dat2","exchangeProducts","DialogContext","useIsMounted","mounted","setMounted","RootContext","useRoot","rootElement","DialogBackdrop","onClick","isVisible","elementRef","handleClick","ref","DialogModal","fadeIn","showBackdrop","dismissOnBackdropClick","dismissOnEscape","getRoot","isMounted","handleEscape","preventDefault","contextValue","createPortal","DialogTitle","DialogSubtitle","ArrowRightIcon","width","height","viewBox","fill","xmlns","XIcon","Spinner","opacity","attributeName","calcMode","dur","repeatCount","buttonVariants","primary","outline","ghost","Button","icon","Icon","disabled","iconPosition","visibility","Accept","Reject","_excluded2","Dialog","Modal","Title","Subtitle","DialogButton","ReturnDecisionDialog","decisionState","setDecisionState","DecisionDialog","useTranslations","modal","dialog","handleConfirm","handleReject","navigation","DialogHandler","_Fragment","DEFAULT_TOAST_DURATION","TOAST_ANIMATION_DURATION","ToastContext","useToast","useApiBridge","_returnContext$cartSt","useExternalEvents","_config$data$returnDa3","_config$data$returnDa","_config$data$returnDa2","handleOpenDrawer","handleCloseDrawer","handleToggleDrawer","refetchAndUpdateCart","freshCart","triggerCalculation","handleRefetchCalculation","handleRefetchCart","handleRefetchCartAndCalculation","handleOpenDrawerAndRefetch","unsubscribeOpenDrawer","DrawerOpen","unsubscribeCloseDrawer","DrawerClose","unsubscribeToggleDrawer","DrawerToggle","unsubscribeRefetchCalculation","CalculationRefetch","unsubscribeRefetchCart","CartRefetch","unsubscribeRefetchCartAndCalculation","CartAndCalculationRefetch","unsubscribeOpenDrawerAndRefetchCartAndCalculation","DrawerOpenAndRefetch","ProductErrorState","PRODUCT_ERROR_CODE_TO_STATE","ProductLimit","getErrorStateFromCode","Unknown","createFetchInterceptor","_window$__rf_original","originalFetch","__rf_original_fetch","rf_interception","proxy","Proxy","argumentsList","requestUrl","Reflect","clonedResponse","clone","interval","clearInterval","createXHRInterceptor","originalXHR","XMLHttpRequest","__rf_original_xhr","XHRProxy","construct","xhr","originalOpen","originalSend","send","async","user","password","originalOnReadyStateChange","onreadystatechange","readyState","DONE","resolveXHRPayload","originalOnLoad","_xhr$getResponseHeade","isTextResponse","responseType","isJsonResponse","getResponseHeader","ADD_ENDPOINTS","UPDATE_ENDPOINTS","CHANGE_ENDPOINTS","CLEAR_ENDPOINTS","ENDPOINTS","update","change","ENDPOINTS_TO_INTERCEPT","initializeNetworkInterceptors","monitor","cleanupFetchHandler","cleanupXHRHandler","resolvedMethod","setInterval","_cleanupFetchHandler","_cleanupXHRHandler","validateInterceptionRequestUrl","triggerEndpoint","triggerEndpointValue","triggerEndpointPaths","isValid","isForbidden","isTriggerEndpoint","BLOCKED_PATTERNS","matchesInterceptedEndpoint","parseInterceptionResponse","Response","catch","ErrorContext","useErrors","useFetchInterceptor","addToast","returnViewState","autoOpen","autoOpenTriggerEndpoint","autoOpenTriggerMethod","triggerMethod","monitorNetworkOverwrites","errors","initialized","setInitialized","resetInterceptor","payload","FetchInterception","_resetInterceptor","handleInterceptionEvent","useCallback","stringifiedUrl","urlValidation","cartHasChanged","originalCart","newCart","addedItems","excludedProductIds","matchedExclusions","product_name","bundleProducts","excluded","responseBody","errState","unsubsribe","useOverrideScrollBlocking","overrideScrollBlocking","originalPreventDefault","Event","removeInertFromElements","inertElements","querySelectorAll","element","removeAttribute","cloneAndReplaceElement","parent","parentNode","newElement","cloneNode","replaceChild","useCartActivator","cartActivatorSelector","controller","AbortController","processedElements","WeakSet","onActivatorClick","stopPropagation","attachListenersToElements","signal","initializeActivators","observer","MutationObserver","mutations","shouldReinitialize","mutation","addedNodes","nodeType","Node","ELEMENT_NODE","_element$matches","_element$querySelecto","matches","removedNodes","_element$matches2","_element$querySelecto2","observe","childList","subtree","characterData","abort","disconnect","InitializationHandler","IsMounted","useArray","initialArray","array","setArray","newArray","filtered","ErrorProvider","_cartState$value$data2","_useArray","methods","calcItems","cartItemCount","resolvedErrors","trackedErrors","_orderData$returnWind","refundReturnWindow","returnWindows","errorId","blocking","noRefundItemIds","noRefundItems","strippedId","joinedProductNames","splitChunks","chunk","dividerString","Fragment","useAsyncState","initialValue","queryFn","queryOnInit","startCount","initialRender","countState","setCountState","countRef","requestCount","run","consoleMessage","initialParams","initialFetch","count","ReturnContextProvider","_config$data$returnDa5","queryCount","orderResult","isCartPage","isFirstQuery","shouldFetchFreshCart","_params$cart","origin","lastPath","formattedCartItems","_item$variant_title","_config$data$returnDa4","contextError","hasFailed","useTheme","themeVariables","color","convertedColor","propertyKey","cssVariables","RootProvider","rootRef","onTouchStart","WidgetContextProvider","DrawerStateChange","ToastProvider","queue","setQueue","toast","_toast$onClose","generateToastId","newToast","_toast$onClose2","random","substr","ActionIcon","rx","fillRule","clipRule","InfoIcon","GiftcardIcon","WarningIcon","BannerSkeleton","tip","giftcard","border","dashed","Banner","renderIcon","COMMON_ICON_PROPS","ExchangeBanner","_calculationState$val2","hasInstantExchange","returnLabelPrice","useCurrency","hookOptions","cartCurrency","calcCurrency","localCurrency","resolvedCurrencyCode","formatter","useFormatter","applyExchangeRate","currencyObject","exchangeRate","_hookOptions$options","fractionDigits","mergedOptions","_currency$minimumFrac","formatOptions","useCalculation","computedTotals","_discountSummary$appl","orderTotal","cartTotal","returnTotal","giftcardValue","totalPriceDiscount","giftCardBonusAmount","isRefunding","orderSubtotal","returnSubtotal","total","refundMethods","discountSummary","appliedToReturnSubtotal","StarIcon","stroke","strokeWidth","strokeLinecap","strokeLinejoin","Price","compareAtValue","formatToCurrency","AdjustmentsTableSkeleton","AdjustmentsTable","showDiscountRow","showGiftcardRow","showLabelPriceRow","Row","scope","ExchangeAdjustments","AnnoucementBar","stepSnippet","ErrorScreen","errorMessage","instructionMessage","useNavigation","useLocale","ExchangeConfirmation","globalPendingState","blockingErrors","canContinue","handleContinue","iconVariants","solid","sm","md","IconComponent","ExchangeHeader","CartIcon","ExchangePlaceholder","ProductErrors","useCartItems","exchangeDetails","exchange","exchangeDetailItems","exchangeItem","_coverage$originalUni","_coverage$exchangeUni","coverage","curr","resolvedCurrPrice","originalUnitPrice","resolvedCompareAt","exchangeUnitPrice","compareAtPrice","DEFAULT_CONSTRAINTS","limit","QuantityPicker","onIncrement","onDecrement","constraints","isDisabled","isAtMin","isAtMax","incrementDisabled","decrementDisabled","handleIncrement","handleDecrement","clampedQuantity","ProductActions","_quantityRule$min","_quantityRule$max","_quantityRule$increme","quantityRule","setIsPending","anyStatePending","handleQuantityChange","newQuantity","errorCode","minQuantity","maxQuantity","isAtBound","Link","unstyled","onDisabledClick","ProductAttributes","showQuantity","quantityIsVisible","resolvedPrice","ProductImage","imageSource","handleAnchorClick","Product","quantity_rule","ProductList","ArrowDownIcon","ChevronIcon","Expander","collapseDelay","autoCloseAfter","onToggle","isRendered","setIsRendered","setHeight","containerRef","collapseTimeoutRef","autoCloseTimeoutRef","measureHeight","scrollHeight","frame","ReturnProductBadge","ReturnProductActions","deleted","onDeletedClick","handleDeletedClick","ReturnProduct","_product$quantity","_calculation$discount","_calculation$original","allProducts","setErrorMessage","qty","discountedPrice","originalPrice","badgeType","allActions","returnItem","shopifyLineId","multipleTypes","isDeleted","bool","ReturnProductSkeleton","ReturnProductList","extendedLineItems","exchangeProduct","lineItem","hasGiftcardItem","_item$calculation","useYScrollable","isYScrollable","setIsYScrollable","isScrolling","isDirty","setScrollState","checkScrollable","scrollable","clientHeight","handleScroll","currentScrollTop","scrollTop","hasScrolled","resizeObserver","ResizeObserver","mutationObserver","attributeFilter","passive","ScrollIndicator","ExchangeDrawer","scrollContainerRef","hasItems","inert","tabIndex","BagIcon","Toast","transform","transition","ToastContainer","ArrowLeftIcon","BackButton","ExchangeTotalSkeleton","ExchangeTotal","ExchangeSummary","Divider","Widget","IntlProvider"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[2,3,12,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,51]}