@shopgate/engage 7.32.0-beta.2 → 7.32.0-beta.20

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 (662) hide show
  1. package/account/components/Profile/Profile.provider.d.ts +1 -1
  2. package/account/components/Profile/ProfileAddressBook.d.ts.map +1 -1
  3. package/account/components/Profile/ProfileAddressBook.js +13 -22
  4. package/account/components/Profile/ProfileAddressCard.d.ts.map +1 -1
  5. package/account/components/Profile/ProfileAddressCard.js +9 -18
  6. package/account/components/Profile/ProfileForm.d.ts.map +1 -1
  7. package/account/components/Profile/ProfileForm.js +15 -42
  8. package/account/components/ProfileContact/ProfileContact.js +13 -21
  9. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts +2 -1
  10. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.d.ts.map +1 -1
  11. package/admin-preview/components/FrontendSettingsPreviewBridge/FrontendSettingsPreviewBridge.js +61 -5
  12. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts +7 -1
  13. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.d.ts.map +1 -1
  14. package/admin-preview/components/FrontendSettingsPreviewBridge/helpers.js +14 -2
  15. package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts +15 -2
  16. package/admin-preview/components/FrontendSettingsPreviewBridge/types.d.ts.map +1 -1
  17. package/admin-preview/constants/index.d.ts +9 -22
  18. package/admin-preview/constants/index.d.ts.map +1 -1
  19. package/admin-preview/constants/index.js +10 -27
  20. package/admin-preview/{detection.d.ts → helpers/_internal/detection.d.ts} +12 -8
  21. package/admin-preview/helpers/_internal/detection.d.ts.map +1 -0
  22. package/admin-preview/helpers/_internal/detection.js +93 -0
  23. package/admin-preview/helpers/_internal/origins.d.ts +20 -0
  24. package/admin-preview/helpers/_internal/origins.d.ts.map +1 -0
  25. package/admin-preview/helpers/_internal/origins.js +72 -0
  26. package/admin-preview/helpers/index.d.ts +20 -0
  27. package/admin-preview/helpers/index.d.ts.map +1 -1
  28. package/admin-preview/helpers/index.js +26 -2
  29. package/admin-preview/hooks/index.d.ts +9 -7
  30. package/admin-preview/hooks/index.d.ts.map +1 -1
  31. package/admin-preview/hooks/index.js +21 -18
  32. package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts +32 -0
  33. package/admin-preview/initialization/_internal/initialFrontendSettings.d.ts.map +1 -0
  34. package/admin-preview/initialization/_internal/initialFrontendSettings.js +43 -0
  35. package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts +23 -0
  36. package/admin-preview/initialization/awaitInitialFrontendSettings.d.ts.map +1 -0
  37. package/admin-preview/initialization/awaitInitialFrontendSettings.js +88 -0
  38. package/back-in-stock/components/BackInStockButton/index.js +5 -5
  39. package/back-in-stock/components/Subscriptions/components/Subscription/index.js +2 -5
  40. package/cart/components/CartItem/CartItemProductLayout.js +2 -1
  41. package/cart/components/CartItem/CartItemProductLayoutWide.js +2 -2
  42. package/cart/components/CartItem/CartItemProductLayoutWideRemoveItem.js +7 -14
  43. package/cart/components/CartItem/CartItemQuantityPicker.js +3 -2
  44. package/cart/components/CartItems/CartItemCardReservationLabelChangeStore.js +6 -24
  45. package/cart/components/CartItems/CartItems.js +8 -10
  46. package/cart/components/CartItems/CartItemsSubstitution.js +3 -2
  47. package/cart/components/CartSummaryWide/CartSummaryWide.js +2 -2
  48. package/cart/components/CartSummaryWide/CartSummaryWideCheckoutButton.js +9 -23
  49. package/cart/components/PaymentBar/PaymentBarCheckoutButton.js +8 -30
  50. package/cart/components/PaymentBar/testUtils/mockFactories.js +4 -11
  51. package/category/components/CategoryImage/index.js +24 -17
  52. package/checkout/components/AddressBook/AddressList.js +14 -23
  53. package/checkout/components/Checkout/CheckoutActions.js +4 -3
  54. package/checkout/components/Checkout/CheckoutAddress.js +8 -0
  55. package/checkout/components/Checkout/CheckoutSection.js +6 -2
  56. package/checkout/components/CheckoutConfirmation/CheckoutConfirmation.js +6 -7
  57. package/checkout/components/ResponsiveBackButton/ResponsiveBackButton.js +7 -17
  58. package/components/Badge/Badge.d.ts +30 -0
  59. package/components/Badge/Badge.d.ts.map +1 -0
  60. package/components/Badge/Badge.js +49 -0
  61. package/components/Badge/index.d.ts +3 -0
  62. package/components/Badge/index.d.ts.map +1 -0
  63. package/components/Badge/index.js +1 -0
  64. package/components/Card/Card.d.ts +27 -0
  65. package/components/Card/Card.d.ts.map +1 -0
  66. package/components/Card/Card.js +57 -0
  67. package/components/Card/index.d.ts +4 -0
  68. package/components/Card/index.d.ts.map +1 -0
  69. package/components/Card/index.js +2 -0
  70. package/components/Card/useCardAppearance.d.ts +11 -0
  71. package/components/Card/useCardAppearance.d.ts.map +1 -0
  72. package/components/Card/useCardAppearance.js +22 -0
  73. package/components/ChipLayout/index.js +2 -4
  74. package/components/NavigationHandler/connector.js +1 -1
  75. package/components/NavigationHandler/index.d.ts +2 -2
  76. package/components/Paper/Paper.d.ts +48 -0
  77. package/components/Paper/Paper.d.ts.map +1 -0
  78. package/components/Paper/Paper.js +64 -0
  79. package/components/Paper/index.d.ts +3 -0
  80. package/components/Paper/index.d.ts.map +1 -0
  81. package/components/Paper/index.js +1 -0
  82. package/components/RadioCard/RadioCard.d.ts.map +1 -1
  83. package/components/RadioCard/RadioCard.js +2 -1
  84. package/components/SheetList/components/Item/index.js +8 -8
  85. package/components/Tabs/components/Tab.d.ts.map +1 -1
  86. package/components/Tabs/components/Tab.js +14 -16
  87. package/components/Typography/Typography.d.ts +1 -1
  88. package/components/Typography/Typography.d.ts.map +1 -1
  89. package/components/Typography/Typography.js +2 -0
  90. package/components/View/components/Content/index.d.ts.map +1 -1
  91. package/components/View/components/Content/index.js +4 -1
  92. package/components/constants.d.ts +6 -0
  93. package/components/constants.d.ts.map +1 -0
  94. package/components/index.d.ts +6 -1
  95. package/components/index.d.ts.map +1 -1
  96. package/components/index.js +6 -2
  97. package/components/v2/Button/Button.d.ts +24 -13
  98. package/components/v2/Button/Button.d.ts.map +1 -1
  99. package/components/v2/Button/Button.js +139 -41
  100. package/components/v2/ButtonBase/ButtonBase.d.ts +50 -10
  101. package/components/v2/ButtonBase/ButtonBase.d.ts.map +1 -1
  102. package/components/v2/ButtonBase/ButtonBase.js +192 -17
  103. package/components/v2/ButtonBase/hooks.d.ts +0 -1
  104. package/components/v2/ButtonBase/hooks.d.ts.map +1 -1
  105. package/components/v2/ButtonBase/hooks.js +36 -12
  106. package/components/v2/ButtonGroup/ButtonGroup.d.ts +11 -5
  107. package/components/v2/ButtonGroup/ButtonGroup.d.ts.map +1 -1
  108. package/components/v2/ButtonGroup/ButtonGroup.js +49 -26
  109. package/components/v2/CircularProgress/CircularProgress.d.ts.map +1 -1
  110. package/components/v2/CircularProgress/CircularProgress.js +10 -5
  111. package/components/v2/IconButton/IconButton.d.ts +72 -0
  112. package/components/v2/IconButton/IconButton.d.ts.map +1 -0
  113. package/components/v2/IconButton/IconButton.js +169 -0
  114. package/components/v2/IconButton/index.d.ts +3 -0
  115. package/components/v2/IconButton/index.d.ts.map +1 -0
  116. package/components/v2/IconButton/index.js +1 -0
  117. package/components/v2/index.d.ts +1 -0
  118. package/components/v2/index.d.ts.map +1 -1
  119. package/components/v2/index.js +1 -0
  120. package/core/helpers/getFullImageSource.d.ts +5 -1
  121. package/core/helpers/getFullImageSource.d.ts.map +1 -1
  122. package/core/helpers/getFullImageSource.js +30 -14
  123. package/core/helpers/i18n.d.ts +4 -0
  124. package/core/helpers/i18n.d.ts.map +1 -1
  125. package/core/helpers/i18n.js +3 -0
  126. package/core/hooks/events/appEvents.d.ts +31 -46
  127. package/core/hooks/events/appEvents.d.ts.map +1 -0
  128. package/core/hooks/events/appEvents.js +26 -29
  129. package/core/hooks/events/index.d.ts +4 -4
  130. package/core/hooks/events/index.d.ts.map +1 -1
  131. package/core/hooks/events/useLongPress.d.ts +55 -58
  132. package/core/hooks/events/useLongPress.d.ts.map +1 -0
  133. package/core/hooks/events/useLongPress.js +23 -16
  134. package/core/hooks/events/usePressHandler.d.ts +32 -21
  135. package/core/hooks/events/usePressHandler.d.ts.map +1 -1
  136. package/core/hooks/events/usePressHandler.js +12 -10
  137. package/core/hooks/events/useScrollDirectionChange.d.ts +72 -61
  138. package/core/hooks/events/useScrollDirectionChange.d.ts.map +1 -0
  139. package/core/hooks/events/useScrollDirectionChange.js +36 -43
  140. package/core/hooks/html/useLoadImage.d.ts +3 -3
  141. package/core/hooks/html/useLoadImage.d.ts.map +1 -1
  142. package/core/hooks/html/useLoadImage.js +2 -2
  143. package/core/hooks/useLocalStorage.d.ts +8 -0
  144. package/core/hooks/useLocalStorage.d.ts.map +1 -1
  145. package/core/hooks/useLocalStorage.js +22 -15
  146. package/core/hooks/useNavigation.d.ts +10 -2
  147. package/core/hooks/useNavigation.d.ts.map +1 -1
  148. package/core/hooks/useNavigation.js +1 -2
  149. package/core/initialization/fetchSettings.d.ts +12 -0
  150. package/core/initialization/fetchSettings.d.ts.map +1 -0
  151. package/core/initialization/fetchSettings.js +134 -0
  152. package/core/initialization/index.d.ts +33 -2
  153. package/core/initialization/index.d.ts.map +1 -1
  154. package/core/initialization/index.js +44 -103
  155. package/core/router/conductor.d.ts +9 -0
  156. package/core/router/helpers.d.ts +28 -15
  157. package/core/router/helpers.d.ts.map +1 -1
  158. package/core/router/helpers.js +8 -8
  159. package/development/action-creators/index.d.ts +3 -0
  160. package/development/action-creators/index.d.ts.map +1 -0
  161. package/development/action-creators/settings.d.ts +45 -0
  162. package/development/action-creators/settings.d.ts.map +1 -0
  163. package/development/action-creators/settings.js +21 -10
  164. package/development/action-creators/storage.d.ts +17 -0
  165. package/development/action-creators/storage.d.ts.map +1 -0
  166. package/development/action-creators/storage.js +7 -4
  167. package/development/components/ClientInformation/ClientInformation.d.ts +6 -0
  168. package/development/components/ClientInformation/ClientInformation.d.ts.map +1 -0
  169. package/development/components/ClientInformation/ClientInformation.js +7 -4
  170. package/development/components/ClientInformation/actions.d.ts +6 -0
  171. package/development/components/ClientInformation/actions.d.ts.map +1 -0
  172. package/development/components/ClientInformation/actions.js +1 -1
  173. package/development/components/ClientInformation/index.d.ts +2 -0
  174. package/development/components/ClientInformation/index.d.ts.map +1 -0
  175. package/development/components/DevelopmentSettings/DevelopmentSettings.d.ts +16 -0
  176. package/development/components/DevelopmentSettings/DevelopmentSettings.d.ts.map +1 -0
  177. package/development/components/DevelopmentSettings/DevelopmentSettings.js +43 -30
  178. package/development/components/DevelopmentSettings/index.d.ts +2 -0
  179. package/development/components/DevelopmentSettings/index.d.ts.map +1 -0
  180. package/development/components/DevelopmentTools/DevelopmentTools.d.ts +10 -0
  181. package/development/components/DevelopmentTools/DevelopmentTools.d.ts.map +1 -0
  182. package/development/components/DevelopmentTools/DevelopmentTools.js +8 -8
  183. package/development/components/DevelopmentTools/Shortcuts.d.ts +6 -0
  184. package/development/components/DevelopmentTools/Shortcuts.d.ts.map +1 -0
  185. package/development/components/DevelopmentTools/Shortcuts.js +0 -1
  186. package/development/components/DevelopmentTools/hooks.d.ts +8 -0
  187. package/development/components/DevelopmentTools/hooks.d.ts.map +1 -0
  188. package/development/components/DevelopmentTools/hooks.js +2 -3
  189. package/development/components/DevelopmentTools/index.d.ts +2 -0
  190. package/development/components/DevelopmentTools/index.d.ts.map +1 -0
  191. package/development/components/SimulatedInsets/SimulatedInsetBottom.d.ts +7 -0
  192. package/development/components/SimulatedInsets/SimulatedInsetBottom.d.ts.map +1 -0
  193. package/development/components/SimulatedInsets/SimulatedInsetBottom.js +1 -6
  194. package/development/components/SimulatedInsets/SimulatedInsetTop.d.ts +7 -0
  195. package/development/components/SimulatedInsets/SimulatedInsetTop.d.ts.map +1 -0
  196. package/development/components/SimulatedInsets/SimulatedInsetTop.js +2 -7
  197. package/development/components/SimulatedInsets/SimulatedInsets.d.ts +13 -0
  198. package/development/components/SimulatedInsets/SimulatedInsets.d.ts.map +1 -0
  199. package/development/components/SimulatedInsets/SimulatedInsets.js +2 -7
  200. package/development/components/SimulatedInsets/index.d.ts +2 -0
  201. package/development/components/SimulatedInsets/index.d.ts.map +1 -0
  202. package/development/components/SimulatedInsets/types.d.ts +15 -0
  203. package/development/components/SimulatedInsets/types.d.ts.map +1 -0
  204. package/development/components/SimulatedInsets/types.js +1 -0
  205. package/development/components/index.d.ts +3 -0
  206. package/development/components/index.d.ts.map +1 -0
  207. package/development/constants/actionTypes.d.ts +6 -0
  208. package/development/constants/actionTypes.d.ts.map +1 -0
  209. package/development/constants/actionTypes.js +2 -1
  210. package/development/constants/index.d.ts +2 -0
  211. package/development/constants/index.d.ts.map +1 -0
  212. package/development/reducers/index.d.ts +24 -0
  213. package/development/reducers/index.d.ts.map +1 -0
  214. package/development/reducers/settings.d.ts +17 -0
  215. package/development/reducers/settings.d.ts.map +1 -0
  216. package/development/reducers/settings.js +48 -35
  217. package/development/reducers/storage.d.ts +17 -0
  218. package/development/reducers/storage.d.ts.map +1 -0
  219. package/development/reducers/storage.js +24 -24
  220. package/development/selectors/index.d.ts +3 -0
  221. package/development/selectors/index.d.ts.map +1 -0
  222. package/development/selectors/settings.d.ts +52 -0
  223. package/development/selectors/settings.d.ts.map +1 -0
  224. package/development/selectors/settings.js +21 -11
  225. package/development/selectors/storage.d.ts +10 -0
  226. package/development/selectors/storage.d.ts.map +1 -0
  227. package/development/selectors/storage.js +6 -18
  228. package/development/streams/index.d.ts +2 -0
  229. package/development/streams/index.d.ts.map +1 -0
  230. package/development/streams/insets.d.ts +8 -0
  231. package/development/streams/insets.d.ts.map +1 -0
  232. package/development/streams/insets.js +1 -3
  233. package/development/subscriptions/index.d.ts +15 -0
  234. package/development/subscriptions/index.d.ts.map +1 -0
  235. package/development/subscriptions/index.js +6 -2
  236. package/development/types/development.d.ts +68 -0
  237. package/development/types/development.d.ts.map +1 -0
  238. package/development/types/development.js +1 -0
  239. package/development/types/index.d.ts +2 -0
  240. package/development/types/index.d.ts.map +1 -0
  241. package/development/types/index.js +1 -0
  242. package/favorites/components/FavoriteButtonWide/FavoriteButtonWide.js +7 -17
  243. package/favorites/components/Item/Item.d.ts +1 -1
  244. package/favorites/components/Item/Item.d.ts.map +1 -1
  245. package/favorites/components/Item/Item.js +2 -5
  246. package/favorites/components/List/List.d.ts +1 -1
  247. package/favorites/components/List/List.d.ts.map +1 -1
  248. package/favorites/components/List/List.js +0 -1
  249. package/favorites/components/List/ListContent.js +4 -5
  250. package/favorites/components/Lists/Lists.js +4 -5
  251. package/filter/components/FilterItem/index.js +12 -2
  252. package/filter/components/FilterPageContent/components/ApplyButton/index.d.ts +21 -0
  253. package/filter/components/FilterPageContent/components/ApplyButton/index.d.ts.map +1 -0
  254. package/filter/components/FilterPageContent/components/ApplyButton/index.js +27 -56
  255. package/filter/components/FilterPageContent/components/FilterButtonBar/index.d.ts +8 -0
  256. package/filter/components/FilterPageContent/components/FilterButtonBar/index.d.ts.map +1 -0
  257. package/filter/components/FilterPageContent/components/FilterButtonBar/index.js +63 -0
  258. package/filter/components/FilterPageContent/components/ResetButton/index.d.ts +17 -0
  259. package/filter/components/FilterPageContent/components/ResetButton/index.d.ts.map +1 -0
  260. package/filter/components/FilterPageContent/components/ResetButton/index.js +26 -46
  261. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.d.ts +19 -0
  262. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.d.ts.map +1 -0
  263. package/filter/components/FilterPageContent/components/Selector/components/Selected/index.js +25 -46
  264. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.d.ts +14 -0
  265. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.d.ts.map +1 -0
  266. package/filter/components/FilterPageContent/components/Selector/components/Toggle/index.js +13 -46
  267. package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.d.ts +25 -0
  268. package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.d.ts.map +1 -0
  269. package/filter/components/FilterPageContent/components/Selector/components/ValueCheckbox/index.js +77 -0
  270. package/filter/components/FilterPageContent/components/Selector/index.d.ts +43 -0
  271. package/filter/components/FilterPageContent/components/Selector/index.d.ts.map +1 -0
  272. package/filter/components/FilterPageContent/components/Selector/index.js +52 -40
  273. package/filter/components/FilterPageContent/index.d.ts +16 -0
  274. package/filter/components/FilterPageContent/index.d.ts.map +1 -0
  275. package/filter/components/FilterPageContent/index.js +51 -57
  276. package/filter/components/PriceSlider/components/Label/index.js +86 -94
  277. package/filter/components/PriceSlider/index.js +43 -30
  278. package/filter/helpers/buildFilterParamsForFetchFiltersRequest.d.ts +8 -0
  279. package/filter/helpers/buildFilterParamsForFetchFiltersRequest.d.ts.map +1 -0
  280. package/filter/helpers/buildInitialFilters.d.ts +7 -0
  281. package/filter/helpers/buildInitialFilters.d.ts.map +1 -0
  282. package/filter/helpers/buildUpdatedFilters.d.ts +7 -0
  283. package/filter/helpers/buildUpdatedFilters.d.ts.map +1 -0
  284. package/filter/helpers/index.d.ts +5 -0
  285. package/filter/helpers/index.d.ts.map +1 -0
  286. package/filter/helpers/translateFilterLabel.d.ts +8 -0
  287. package/filter/helpers/translateFilterLabel.d.ts.map +1 -0
  288. package/filter/providers/FilterPageProvider.context.d.ts +157 -0
  289. package/filter/providers/FilterPageProvider.context.d.ts.map +1 -0
  290. package/filter/providers/FilterPageProvider.d.ts +24 -0
  291. package/filter/providers/FilterPageProvider.d.ts.map +1 -0
  292. package/filter/providers/FilterPageProvider.js +77 -132
  293. package/locations/components/ChangeLocationButton/ChangeLocationButton.js +10 -14
  294. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotDialog.js +4 -8
  295. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcher.js +1 -1
  296. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherBar.js +8 -13
  297. package/locations/components/FulfillmentSlotSwitcher/FulfillmentSlotSwitcherDefault.js +10 -10
  298. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherBar.js +12 -16
  299. package/locations/components/GlobalLocationSwitcher/GlobalLocationSwitcherDefault.js +9 -10
  300. package/locations/components/ReserveForm/ReserveForm.js +6 -7
  301. package/locations/components/StoreDetails/components/GetDirectionsButton.js +2 -4
  302. package/locations/components/StoreDetails/components/StoreDetails.js +5 -10
  303. package/locations/components/StoreDetails/components/StoresNearbyListItem.js +13 -21
  304. package/locations/components/StoreFinder/StoreFinderSelectLocationButton.js +5 -11
  305. package/locations/components/StoreFinder/StoreFinderStoreInfoButton.js +5 -11
  306. package/locations/components/StoreList/StoreListProduct.js +2 -3
  307. package/locations/components/StoreList/StoreListSearch.js +1 -0
  308. package/locations/components/StoreList/StoreSelectLocationButton.js +5 -11
  309. package/login/components/ForgotPassword/ForgotPassword.js +11 -23
  310. package/mocks/date.js +31 -0
  311. package/mocks/index.js +3 -0
  312. package/mocks/pipelineRequest.js +1 -0
  313. package/mocks/subscriptions.js +1 -0
  314. package/orders/components/OrderDetails/OrderDetailsAuthenticate.js +5 -7
  315. package/orders/components/OrderHistory/OrderHistoryList.d.ts.map +1 -1
  316. package/orders/components/OrderHistory/OrderHistoryList.js +8 -9
  317. package/orders/components/OrderHistory/OrderHistoryTable.d.ts.map +1 -1
  318. package/orders/components/OrderHistory/OrderHistoryTable.js +4 -0
  319. package/package.json +9 -9
  320. package/page/components/NotFound.d.ts +7 -0
  321. package/page/components/NotFound.d.ts.map +1 -0
  322. package/page/components/NotFound.js +8 -8
  323. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts +52 -0
  324. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.d.ts.map +1 -0
  325. package/page/components/ResponsiveWidgetImage/ResponsiveWidgetImage.js +4 -4
  326. package/page/components/ResponsiveWidgetImage/index.d.ts +2 -0
  327. package/page/components/ResponsiveWidgetImage/index.d.ts.map +1 -0
  328. package/page/components/WidgetRichText/WidgetRichText.d.ts +25 -0
  329. package/page/components/WidgetRichText/WidgetRichText.d.ts.map +1 -0
  330. package/page/components/WidgetRichText/index.d.ts +2 -0
  331. package/page/components/WidgetRichText/index.d.ts.map +1 -0
  332. package/page/components/WidgetVideo/WidgetVideo.d.ts +43 -0
  333. package/page/components/WidgetVideo/WidgetVideo.d.ts.map +1 -0
  334. package/page/components/WidgetVideo/WidgetVideo.js +33 -39
  335. package/page/components/WidgetVideo/index.d.ts +2 -0
  336. package/page/components/WidgetVideo/index.d.ts.map +1 -0
  337. package/page/components/Widgets/Overlay.d.ts +17 -0
  338. package/page/components/Widgets/Overlay.d.ts.map +1 -0
  339. package/page/components/Widgets/Overlay.js +24 -38
  340. package/page/components/Widgets/Tooltip.d.ts +20 -0
  341. package/page/components/Widgets/Tooltip.d.ts.map +1 -0
  342. package/page/components/Widgets/Tooltip.js +6 -10
  343. package/page/components/Widgets/Widget.d.ts +32 -0
  344. package/page/components/Widgets/Widget.d.ts.map +1 -0
  345. package/page/components/Widgets/Widget.js +14 -28
  346. package/page/components/Widgets/WidgetContext.d.ts +32 -38
  347. package/page/components/Widgets/WidgetContext.d.ts.map +1 -0
  348. package/page/components/Widgets/WidgetContext.js +2 -8
  349. package/page/components/Widgets/WidgetProvider.d.ts +29 -0
  350. package/page/components/Widgets/WidgetProvider.d.ts.map +1 -0
  351. package/page/components/Widgets/WidgetProvider.js +8 -15
  352. package/page/components/Widgets/Widgets.d.ts +16 -0
  353. package/page/components/Widgets/Widgets.d.ts.map +1 -0
  354. package/page/components/Widgets/Widgets.js +5 -12
  355. package/page/components/Widgets/WidgetsPreviewContext.d.ts +21 -0
  356. package/page/components/Widgets/WidgetsPreviewContext.d.ts.map +1 -0
  357. package/page/components/Widgets/WidgetsPreviewContext.js +5 -7
  358. package/page/components/Widgets/WidgetsPreviewProvider.d.ts +18 -0
  359. package/page/components/Widgets/WidgetsPreviewProvider.d.ts.map +1 -0
  360. package/page/components/Widgets/WidgetsPreviewProvider.js +5 -6
  361. package/page/components/Widgets/constants.d.ts +18 -0
  362. package/page/components/Widgets/constants.d.ts.map +1 -0
  363. package/page/components/Widgets/constants.js +24 -2
  364. package/page/components/Widgets/events.d.ts +38 -0
  365. package/page/components/Widgets/events.d.ts.map +1 -0
  366. package/page/components/Widgets/events.js +8 -12
  367. package/page/components/Widgets/helpers.d.ts +69 -0
  368. package/page/components/Widgets/helpers.d.ts.map +1 -0
  369. package/page/components/Widgets/helpers.js +58 -13
  370. package/page/components/Widgets/hooks.d.ts +13 -0
  371. package/page/components/Widgets/hooks.d.ts.map +1 -0
  372. package/page/components/Widgets/hooks.js +18 -12
  373. package/page/components/Widgets/index.d.ts +3 -0
  374. package/page/components/Widgets/index.d.ts.map +1 -0
  375. package/page/components/Widgets/types.d.ts +138 -114
  376. package/page/components/Widgets/types.d.ts.map +1 -0
  377. package/page/components/Widgets/types.js +1 -0
  378. package/page/components/index.d.ts +5 -0
  379. package/page/components/index.d.ts.map +1 -0
  380. package/page/constants/actionTypes.d.ts +4 -0
  381. package/page/constants/actionTypes.d.ts.map +1 -0
  382. package/page/constants/index.d.ts +25 -0
  383. package/page/constants/index.d.ts.map +1 -0
  384. package/page/constants/index.js +5 -3
  385. package/page/helpers/index.d.ts +70 -62
  386. package/page/helpers/index.d.ts.map +1 -0
  387. package/page/helpers/index.js +31 -29
  388. package/page/hooks/index.d.ts +54 -53
  389. package/page/hooks/index.d.ts.map +1 -0
  390. package/page/hooks/index.js +20 -15
  391. package/page/selectors/index.d.ts +32 -0
  392. package/page/selectors/index.d.ts.map +1 -0
  393. package/page/widget.config.schema.json +54 -0
  394. package/page/widgets/Button/Button.js +2 -3
  395. package/page/widgets/CategoryList/CategoryList.js +2 -1
  396. package/page/widgets/HeroBanner/config.json +6 -0
  397. package/page/widgets/Image/config.json +6 -0
  398. package/page/widgets/ImageRow/config.json +6 -0
  399. package/page/widgets/ImageSlider/config.json +6 -0
  400. package/page/widgets/ImageSlider/hooks.js +4 -2
  401. package/page/widgets/NestedCategoryFilter/NestedCategoryFilter.js +8 -8
  402. package/page/widgets/ProductList/ProductList.js +18 -14
  403. package/page/widgets/ProductSlider/ProductSlider.js +1 -15
  404. package/page/widgets/README.md +92 -0
  405. package/page/widgets/Video/Video.d.ts +6 -0
  406. package/page/widgets/Video/Video.d.ts.map +1 -0
  407. package/page/widgets/Video/Video.js +0 -2
  408. package/page/widgets/Video/config.json +6 -0
  409. package/page/widgets/Video/hooks.d.ts +53 -0
  410. package/page/widgets/Video/hooks.d.ts.map +1 -0
  411. package/page/widgets/Video/hooks.js +4 -12
  412. package/page/widgets/Video/index.d.ts +2 -0
  413. package/page/widgets/Video/index.d.ts.map +1 -0
  414. package/product/components/Description/index.js +0 -2
  415. package/product/components/FilterBar/components/Content/components/FilterButton/index.js +38 -46
  416. package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.d.ts +38 -0
  417. package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.d.ts.map +1 -0
  418. package/product/components/FilterBar/components/Content/components/FilterChips/components/FilterChip/index.js +88 -0
  419. package/product/components/FilterBar/components/Content/components/FilterChips/index.js +54 -35
  420. package/product/components/FilterBar/components/Content/components/Sort/index.js +1 -1
  421. package/product/components/FilterBar/components/Content/index.js +7 -3
  422. package/product/components/FilterBar/index.js +11 -22
  423. package/product/components/Media/FeaturedMedia.js +7 -1
  424. package/product/components/Media/MediaImage.js +24 -23
  425. package/product/components/Media/MediaPlaceholder.js +4 -7
  426. package/product/components/MediaSlider/components/MediaImage/index.js +6 -2
  427. package/product/components/MediaSlider/constants.js +1 -12
  428. package/product/components/OrderQuantityHint/index.js +16 -1
  429. package/product/components/ProductCard/index.js +36 -23
  430. package/product/components/ProductFilters/index.js +2 -6
  431. package/product/components/ProductGrid/components/Item/components/ItemDetails/index.js +12 -4
  432. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/index.js +0 -1
  433. package/product/components/ProductGrid/components/Item/components/ItemImage/index.js +3 -6
  434. package/product/components/ProductGrid/components/Item/components/ItemName/index.js +6 -1
  435. package/product/components/ProductGrid/components/Item/index.js +10 -2
  436. package/product/components/ProductGrid/components/Layout/index.js +19 -4
  437. package/product/components/ProductGrid/constants.d.ts +2 -0
  438. package/product/components/ProductGrid/constants.d.ts.map +1 -0
  439. package/product/components/ProductGrid/constants.js +1 -0
  440. package/product/components/ProductGrid/hooks.d.ts +11 -0
  441. package/product/components/ProductGrid/hooks.d.ts.map +1 -0
  442. package/product/components/ProductGrid/hooks.js +48 -0
  443. package/product/components/ProductGrid/index.js +3 -6
  444. package/product/components/ProductGridPrice/index.js +0 -6
  445. package/product/components/ProductImage/ProductImage.d.ts +42 -0
  446. package/product/components/ProductImage/ProductImage.d.ts.map +1 -0
  447. package/product/components/ProductImage/ProductImage.js +158 -0
  448. package/product/components/ProductImage/ProductImagePlaceholder.d.ts +23 -0
  449. package/product/components/ProductImage/ProductImagePlaceholder.d.ts.map +1 -0
  450. package/product/components/ProductImage/ProductImagePlaceholder.js +12 -17
  451. package/product/components/ProductImage/constants.d.ts +7 -0
  452. package/product/components/ProductImage/constants.d.ts.map +1 -0
  453. package/product/components/ProductImage/constants.js +6 -0
  454. package/product/components/ProductImage/hooks.d.ts +8 -0
  455. package/product/components/ProductImage/hooks.d.ts.map +1 -0
  456. package/product/components/ProductImage/hooks.js +32 -0
  457. package/product/components/ProductImage/index.d.ts +3 -0
  458. package/product/components/ProductImage/index.d.ts.map +1 -0
  459. package/product/components/ProductImage/index.js +1 -201
  460. package/product/components/ProductList/components/Item/index.js +5 -3
  461. package/product/components/ProductList/components/Layout/index.js +8 -20
  462. package/product/components/ProductRatingStars/ProductRatingStars.d.ts.map +1 -1
  463. package/product/components/ProductRatingStars/ProductRatingStars.js +4 -17
  464. package/product/components/ProductSlider/constants.d.ts +3 -0
  465. package/product/components/ProductSlider/constants.d.ts.map +1 -0
  466. package/product/components/ProductSlider/constants.js +2 -0
  467. package/product/components/ProductSlider/hooks.d.ts +7 -0
  468. package/product/components/ProductSlider/hooks.d.ts.map +1 -0
  469. package/product/components/ProductSlider/hooks.js +40 -0
  470. package/product/components/ProductSlider/index.js +8 -8
  471. package/product/components/Rating/index.js +12 -21
  472. package/product/components/RelationsSlider/RelationsSliderContent.js +3 -2
  473. package/product/components/RelationsSlider/constants.d.ts +3 -0
  474. package/product/components/RelationsSlider/constants.d.ts.map +1 -0
  475. package/product/components/RelationsSlider/constants.js +2 -1
  476. package/product/components/RelationsSlider/hooks.d.ts +6 -0
  477. package/product/components/RelationsSlider/hooks.d.ts.map +1 -0
  478. package/product/components/RelationsSlider/hooks.js +34 -0
  479. package/product/components/UnitQuantityPicker/UnitQuantityPicker.d.ts.map +1 -1
  480. package/product/components/UnitQuantityPicker/UnitQuantityPicker.js +15 -33
  481. package/product/helpers/index.js +29 -11
  482. package/product/hooks/index.js +3 -1
  483. package/product/hooks/useLoadProductImage.js +4 -2
  484. package/product/hooks/useShowEmptyRatingStars.d.ts +7 -0
  485. package/product/hooks/useShowEmptyRatingStars.d.ts.map +1 -0
  486. package/product/hooks/useShowEmptyRatingStars.js +21 -0
  487. package/product/index.js +0 -1
  488. package/product/selectors/mocks/productProperties.mock.js +49 -0
  489. package/push-opt-in/components/PushOptInModal/index.js +4 -4
  490. package/registration/components/Registration/RegistrationFormActions.js +4 -4
  491. package/reviews/components/Reviews/components/AllReviewsLink/index.js +6 -6
  492. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/index.js +4 -3
  493. package/settings/action-creators/appSettings.d.ts +3 -3
  494. package/settings/action-creators/appSettings.d.ts.map +1 -1
  495. package/settings/constants/appSettings.d.ts +3 -0
  496. package/settings/constants/appSettings.d.ts.map +1 -1
  497. package/settings/constants/appSettings.js +6 -1
  498. package/settings/constants/imageSettings.d.ts +52 -0
  499. package/settings/constants/imageSettings.d.ts.map +1 -0
  500. package/settings/constants/imageSettings.js +69 -0
  501. package/settings/helpers/index.d.ts +3 -0
  502. package/settings/helpers/index.d.ts.map +1 -0
  503. package/settings/helpers/index.js +1 -0
  504. package/settings/helpers/resolveImageSettings.d.ts +70 -0
  505. package/settings/helpers/resolveImageSettings.d.ts.map +1 -0
  506. package/settings/helpers/resolveImageSettings.js +171 -0
  507. package/settings/helpers/toImageQuality.d.ts +7 -0
  508. package/settings/helpers/toImageQuality.d.ts.map +1 -0
  509. package/settings/helpers/toImageQuality.js +44 -0
  510. package/settings/helpers/toThumborColor.d.ts +15 -0
  511. package/settings/helpers/toThumborColor.d.ts.map +1 -0
  512. package/settings/helpers/toThumborColor.js +51 -0
  513. package/settings/hooks/index.d.ts +2 -0
  514. package/settings/hooks/index.d.ts.map +1 -0
  515. package/settings/hooks/index.js +1 -0
  516. package/settings/hooks/useImageSettings.d.ts +28 -0
  517. package/settings/hooks/useImageSettings.d.ts.map +1 -0
  518. package/settings/hooks/useImageSettings.js +39 -0
  519. package/settings/reducers/appSettings.d.ts.map +1 -1
  520. package/settings/reducers/appSettings.js +123 -8
  521. package/settings/reducers/index.d.ts +3 -3
  522. package/settings/selectors/appSettings.d.ts +122 -1
  523. package/settings/selectors/appSettings.d.ts.map +1 -1
  524. package/settings/selectors/appSettings.js +80 -1
  525. package/settings/types/appSettings.d.ts +279 -0
  526. package/settings/types/appSettings.d.ts.map +1 -1
  527. package/settings/types/appSettings.js +133 -1
  528. package/styles/helpers/index.d.ts +2 -0
  529. package/styles/helpers/index.js +2 -0
  530. package/styles/helpers/loadFontCss.d.ts +22 -0
  531. package/styles/helpers/loadFontCss.d.ts.map +1 -0
  532. package/styles/helpers/loadFontCss.js +138 -0
  533. package/styles/helpers/loadThemeCss.d.ts +14 -0
  534. package/styles/helpers/loadThemeCss.d.ts.map +1 -0
  535. package/styles/helpers/loadThemeCss.js +123 -0
  536. package/styles/index.d.ts +1 -1
  537. package/styles/index.d.ts.map +1 -1
  538. package/styles/reset/root.js +23 -4
  539. package/styles/reset/typographyCustomProps.d.ts +12 -0
  540. package/styles/reset/typographyCustomProps.d.ts.map +1 -0
  541. package/styles/reset/typographyCustomProps.js +11 -0
  542. package/styles/theme/createDefaultThemeOptions/index.d.ts +11 -1
  543. package/styles/theme/createDefaultThemeOptions/index.d.ts.map +1 -1
  544. package/styles/theme/createDefaultThemeOptions/index.js +129 -10
  545. package/styles/theme/createTheme/createComponents.types.d.ts +118 -4
  546. package/styles/theme/createTheme/createComponents.types.d.ts.map +1 -1
  547. package/styles/theme/createTheme/createComponents.types.js +122 -8
  548. package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.d.ts.map +1 -1
  549. package/styles/theme/createTheme/createCssVarsForColorSchemeThemes.js +13 -3
  550. package/styles/theme/createTheme/createPalette.types.d.ts +5 -0
  551. package/styles/theme/createTheme/createPalette.types.d.ts.map +1 -1
  552. package/styles/theme/createTheme/createPalette.types.js +7 -2
  553. package/styles/theme/createTheme/createShape.d.ts +3 -0
  554. package/styles/theme/createTheme/createShape.d.ts.map +1 -1
  555. package/styles/theme/createTheme/createThemeFromColorScheme.d.ts +3 -1
  556. package/styles/theme/createTheme/createThemeFromColorScheme.d.ts.map +1 -1
  557. package/styles/theme/createTheme/createThemeFromColorScheme.js +6 -3
  558. package/styles/theme/createTheme/createTypography.d.ts +4 -2
  559. package/styles/theme/createTheme/createTypography.js +60 -18
  560. package/styles/theme/createTheme/helpers/cssVarsParser.d.ts.map +1 -1
  561. package/styles/theme/createTheme/helpers/cssVarsParser.js +10 -3
  562. package/styles/theme/createTheme/index.d.ts +2 -1
  563. package/styles/theme/createTheme/index.d.ts.map +1 -1
  564. package/styles/theme/createTheme/index.js +3 -1
  565. package/styles/theme/createTheme/shadows.d.ts +11 -1
  566. package/styles/theme/createTheme/shadows.d.ts.map +1 -1
  567. package/styles/theme/createTheme/shadows.js +41 -7
  568. package/styles/theme/createTheme/types.d.ts +16 -5
  569. package/styles/theme/createTheme/types.d.ts.map +1 -1
  570. package/styles/theme/createTheme/types.js +8 -3
  571. package/styles/theme/hooks/useColorScheme.d.ts +4 -3
  572. package/styles/theme/hooks/useColorScheme.d.ts.map +1 -1
  573. package/styles/theme/hooks/useColorScheme.js +4 -3
  574. package/styles/theme/hooks/useMediaQuery.d.ts +7 -0
  575. package/styles/theme/hooks/useMediaQuery.d.ts.map +1 -1
  576. package/styles/theme/hooks/useMediaQuery.js +5 -5
  577. package/styles/theme/hooks/useTheme.js +1 -1
  578. package/styles/theme/index.d.ts +4 -1
  579. package/styles/theme/index.d.ts.map +1 -1
  580. package/styles/theme/providers/ColorSchemeContext.d.ts +40 -0
  581. package/styles/theme/providers/ColorSchemeContext.d.ts.map +1 -0
  582. package/styles/theme/providers/ColorSchemeContext.js +14 -0
  583. package/styles/theme/providers/ThemeContext.d.ts +3 -0
  584. package/styles/theme/providers/ThemeContext.d.ts.map +1 -0
  585. package/styles/theme/providers/ThemeContext.js +2 -0
  586. package/styles/theme/providers/ThemeProvider.d.ts +3 -13
  587. package/styles/theme/providers/ThemeProvider.d.ts.map +1 -1
  588. package/styles/theme/providers/ThemeProvider.js +86 -13
  589. package/styles/theme/utils/color.d.ts +12 -12
  590. package/styles/theme/utils/color.d.ts.map +1 -1
  591. package/tracking/components/CookieConsentModal/index.js +3 -4
  592. package/tracking/components/PrivacySettings/index.js +3 -3
  593. package/admin-preview/detection.d.ts.map +0 -1
  594. package/admin-preview/detection.js +0 -166
  595. package/cart/components/PaymentBar/PaymentBarReserveButton.connector.js +0 -6
  596. package/cart/components/PaymentBar/PaymentBarReserveButton.js +0 -71
  597. package/components/ChipLayout/spec.js +0 -41
  598. package/components/Logo/spec.js +0 -12
  599. package/components/NavigationHandler/spec.js +0 -84
  600. package/components/Picker/spec.js +0 -94
  601. package/components/PickerUtilize/spec.js +0 -35
  602. package/components/RangeSlider/spec.js +0 -190
  603. package/components/SheetList/components/Item/spec.js +0 -101
  604. package/components/SheetList/spec.js +0 -43
  605. package/components/TimeBoundary/spec.js +0 -83
  606. package/filter/components/FilterItem/spec.js +0 -14
  607. package/filter/components/FilterPageContent/components/ApplyButton/spec.js +0 -46
  608. package/filter/components/FilterPageContent/components/ResetButton/spec.js +0 -29
  609. package/filter/components/FilterPageContent/components/Selector/components/Selected/spec.js +0 -26
  610. package/filter/components/FilterPageContent/components/Selector/components/Toggle/spec.js +0 -34
  611. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/index.js +0 -69
  612. package/filter/components/FilterPageContent/components/Selector/components/ValueButton/spec.js +0 -32
  613. package/filter/components/FilterPageContent/components/Selector/spec.js +0 -33
  614. package/filter/components/PriceSlider/components/Label/spec.js +0 -26
  615. package/filter/components/PriceSlider/spec.js +0 -30
  616. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.connector.js +0 -16
  617. package/locations/components/StoreFinder/StoreFinderGetDirectionsButton.js +0 -52
  618. package/product/collections/index.js +0 -1
  619. package/product/components/EffectivityDates/constants.d.ts +0 -3
  620. package/product/components/EffectivityDates/constants.d.ts.map +0 -1
  621. package/product/components/EffectivityDates/helpers.d.ts +0 -6
  622. package/product/components/EffectivityDates/helpers.d.ts.map +0 -1
  623. package/product/components/FilterBar/components/Content/components/FilterChips/connector.js +0 -22
  624. package/product/components/FilterBar/components/Content/spec.js +0 -136
  625. package/product/components/Header/Shipping/spec.js +0 -36
  626. package/product/components/Header/Tiers/components/Tier/spec.js +0 -48
  627. package/product/components/Header/Tiers/spec.js +0 -64
  628. package/product/components/Media/helpers.d.ts +0 -2
  629. package/product/components/Media/helpers.d.ts.map +0 -1
  630. package/product/components/Options/components/Content/spec.js +0 -73
  631. package/product/components/Options/components/TextOption/components/OptionInfo/spec.js +0 -72
  632. package/product/components/ProductDiscountBadge/spec.js +0 -58
  633. package/product/components/ProductGrid/components/Item/components/ItemDetails/spec.js +0 -73
  634. package/product/components/ProductGrid/components/Item/components/ItemFavoritesButton/spec.js +0 -33
  635. package/product/components/ProductGrid/components/Item/components/ItemImage/spec.js +0 -16
  636. package/product/components/ProductGrid/components/Item/components/ItemName/spec.js +0 -21
  637. package/product/components/ProductGrid/components/Item/components/ItemPrice/spec.js +0 -37
  638. package/product/components/ProductGrid/spec.js +0 -52
  639. package/product/components/ProductImage/connector.js +0 -12
  640. package/product/components/ProductImage/spec.js +0 -87
  641. package/product/components/ProductSlider/spec.js +0 -37
  642. package/product/components/Rating/connector.js +0 -26
  643. package/product/components/Rating/spec.js +0 -58
  644. package/product/helpers/index.d.ts +0 -13
  645. package/product/helpers/index.d.ts.map +0 -1
  646. package/product/helpers/redirects.d.ts +0 -2
  647. package/product/helpers/redirects.d.ts.map +0 -1
  648. package/product/selectors/helpers/filterProperties.d.ts +0 -8
  649. package/product/selectors/helpers/filterProperties.d.ts.map +0 -1
  650. package/product/selectors/helpers/index.d.ts +0 -3
  651. package/product/selectors/helpers/index.d.ts.map +0 -1
  652. package/product/selectors/helpers/wrapMemoizedSelector.d.ts +0 -2
  653. package/product/selectors/helpers/wrapMemoizedSelector.d.ts.map +0 -1
  654. package/product/selectors/product.d.ts +0 -112
  655. package/product/selectors/product.d.ts.map +0 -1
  656. package/reviews/components/Reviews/components/Header/components/WriteReviewLink/spec.js +0 -52
  657. package/reviews/components/Reviews/components/Header/spec.js +0 -78
  658. package/reviews/components/Reviews/components/List/spec.js +0 -108
  659. package/reviews/components/Reviews/components/RatingCount/spec.js +0 -38
  660. package/reviews/components/Reviews/spec.js +0 -101
  661. package/tsconfig.build.json +0 -26
  662. package/tsconfig.json +0 -19
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import type { PaletteColorsWithMain, ShadowSize, Theme } from '@shopgate/engage/styles';
3
+ import type { ButtonBaseProps } from '../ButtonBase';
4
+ type StyleParams = Required<Pick<IconButtonOwnProps, 'variant' | 'color' | 'size' | 'shape'>> & Pick<IconButtonOwnProps, 'elevation'>;
5
+ declare const useStyles: (params: StyleParams, muiStyleOverridesParams?: {
6
+ props: Record<string, unknown>;
7
+ ownerState?: Record<string, unknown> | undefined;
8
+ } | undefined) => {
9
+ classes: Record<"surface" | "root" | "circular" | "rounded", string>;
10
+ theme: Theme;
11
+ css: import("tss-react").Css;
12
+ cx: import("tss-react").Cx;
13
+ };
14
+ export type IconButtonSize = 'small' | 'medium' | 'large';
15
+ export interface IconButtonOwnProps {
16
+ /**
17
+ * Accessible name of the button. Required, because an icon carries no text of its own.
18
+ */
19
+ 'aria-label': string;
20
+ /**
21
+ * `plain` draws no background, `surface` the themed surface that floating buttons sit on.
22
+ * @default 'plain'
23
+ */
24
+ variant?: 'plain' | 'surface';
25
+ /**
26
+ * The color of the icon.
27
+ * @default 'inherit'
28
+ */
29
+ color?: PaletteColorsWithMain | 'inherit' | 'cta';
30
+ /**
31
+ * The size of the component. Sets both the hit area and the icon.
32
+ * @default 'medium'
33
+ */
34
+ size?: IconButtonSize;
35
+ /**
36
+ * Corner rounding. `rounded` uses the `components.iconButton.borderRadius` theme token.
37
+ * @default 'circular'
38
+ */
39
+ shape?: 'circular' | 'rounded';
40
+ /**
41
+ * Depth of the drop shadow. A number indexes `theme.shadows`, a `ShadowSize` resolves through
42
+ * `theme.shadowSizes`. Only drawn while the `components.iconButton.boxShadow` token is unset.
43
+ */
44
+ elevation?: number | ShadowSize;
45
+ /**
46
+ * If `true`, the icon is replaced by a loading indicator and the button is disabled.
47
+ * @default false
48
+ */
49
+ loading?: boolean;
50
+ /**
51
+ * Replaces the icon while the button is loading. By default it renders a `CircularProgress`.
52
+ */
53
+ loadingIndicator?: React.ReactNode;
54
+ /**
55
+ * Override or extend the styles applied to the component.
56
+ */
57
+ classes?: Partial<ReturnType<typeof useStyles>['classes']>;
58
+ /**
59
+ * The icon to render.
60
+ */
61
+ children: React.ReactNode;
62
+ }
63
+ export type IconButtonProps<C extends React.ElementType = 'button'> = IconButtonOwnProps & ButtonBaseProps<C>;
64
+ /**
65
+ * The IconButton component renders an icon as a click target of its own. Unlike `Button` it carries
66
+ * no label, so it sizes itself to a square hit area and takes its accessible name from `aria-label`.
67
+ */
68
+ declare const IconButtonComponent: <C extends React.ElementType = "button">(props: IconButtonProps<C> & {
69
+ ref?: React.ComponentPropsWithRef<C>["ref"];
70
+ }) => React.ReactElement | null;
71
+ export default IconButtonComponent;
72
+ //# sourceMappingURL=IconButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IconButton.d.ts","sourceRoot":"","sources":["../../../../components/v2/IconButton/IconButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,KAAK,EAAsB,eAAe,EAAE,MAAM,eAAe,CAAC;AAmGzE,KAAK,WAAW,GACd,QAAQ,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,GACxE,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAE1C,QAAA,MAAM,SAAS;;cAR0C,CAAC;;;;;;CAwExD,CAAC;AAEH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;OAGG;IACH,KAAK,CAAC,EAAE,qBAAqB,GAAG,SAAS,GAAG,KAAK,CAAC;IAClD;;;OAGG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB;;;OAGG;IACH,KAAK,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,gBAAgB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACnC;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAC3D;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,IAChE,kBAAkB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;AAS1C;;;GAGG;AACH,QAAA,MAAM,mBAAmB,EAAwB,CAAC,CAAC,SAAS,KAAK,CAAC,WAAW,GAAG,QAAQ,EACtF,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG;IAAE,GAAG,CAAC,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAA;CAAE,KACxE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAE/B,eAAe,mBAAmB,CAAC"}
@@ -0,0 +1,169 @@
1
+ import React, { forwardRef } from 'react';
2
+ import { makeStyles } from '@shopgate/engage/styles';
3
+ import CircularProgress from "../CircularProgress";
4
+ import ButtonBase from "../ButtonBase";
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * Renders the button. Exported through `IconButtonComponent`, which carries the public docs.
8
+ * @param props The component props.
9
+ * @param ref Forwarded ref.
10
+ * @returns The rendered button.
11
+ */
12
+ function IconButton(props, ref) {
13
+ const {
14
+ variant = 'plain',
15
+ color = 'inherit',
16
+ size = 'medium',
17
+ shape = 'circular',
18
+ elevation,
19
+ loading = false,
20
+ loadingIndicator: loadingIndicatorProp,
21
+ disabled = false,
22
+ className,
23
+ classes: classesProp,
24
+ children,
25
+ ...other
26
+ } = props;
27
+ const {
28
+ classes,
29
+ cx
30
+ } = useStyles({
31
+ variant,
32
+ color,
33
+ size,
34
+ shape,
35
+ elevation
36
+ }, {
37
+ props: {
38
+ classes: classesProp
39
+ }
40
+ });
41
+ const loadingIndicator = loadingIndicatorProp ?? /*#__PURE__*/_jsx(CircularProgress, {
42
+ color: "inherit",
43
+ size: LOADING_INDICATOR_SIZES[size]
44
+ });
45
+ return /*#__PURE__*/_jsx(ButtonBase
46
+ // Rendered through the default `button` view of ButtonBase: TypeScript cannot check an
47
+ // object literal against `ComponentPropsWithRef<C>` while `C` is unresolved. The ref is
48
+ // forwarded untouched, and the public signature below restores the caller's element type.
49
+ , {
50
+ ref: ref,
51
+ className: cx(classes.root, {
52
+ [classes.surface]: variant === 'surface',
53
+ [classes.circular]: shape === 'circular',
54
+ [classes.rounded]: shape === 'rounded'
55
+ }, 'engage__icon-button', className),
56
+ disableBaseClassName: true,
57
+ "data-variant": variant,
58
+ "data-color": color,
59
+ "data-size": size,
60
+ "data-shape": shape,
61
+ "data-loading": loading || undefined,
62
+ disabled: disabled || loading,
63
+ ...other,
64
+ children: loading ? loadingIndicator : children
65
+ });
66
+ }
67
+
68
+ // Edge length of the square hit area per size. The icon is sized by the matching `components.icon`
69
+ // token, so the padding around it follows from the difference.
70
+ const BOX_SIZES = {
71
+ small: 32,
72
+ medium: 40,
73
+ large: 48
74
+ };
75
+
76
+ // Diameter of the default loading indicator per size, smaller than the icon it stands in for.
77
+ const LOADING_INDICATOR_SIZES = {
78
+ small: 16,
79
+ medium: 20,
80
+ large: 24
81
+ };
82
+
83
+ /**
84
+ * Resolves an `elevation` prop into a box-shadow.
85
+ * @param theme The active theme.
86
+ * @param elevation A `theme.shadows` index, or a size of `theme.shadowSizes`.
87
+ * @returns The box-shadow value.
88
+ */
89
+ const resolveElevation = (theme, elevation) => typeof elevation === 'number' ? theme.shadows[elevation] : theme.shadowSizes[elevation];
90
+
91
+ // Share of the overlay the button tints itself with on hover, in percent. The dark scheme needs
92
+ // more of it: the overlay takes the color of the icon, and a light tint over a dark surface reads
93
+ // as less.
94
+ const HOVER_OVERLAY_PERCENT = 10;
95
+ const HOVER_OVERLAY_PERCENT_DARK = 28;
96
+
97
+ // The background a button paints before the hover overlay. Only `surface` publishes it, so a plain
98
+ // button falls back to no background of its own.
99
+ const BASE_BACKGROUND = 'var(--icon-button-background, transparent)';
100
+ const useStyles = makeStyles({
101
+ name: 'IconButton'
102
+ })((theme, props) => {
103
+ const {
104
+ color,
105
+ size,
106
+ elevation
107
+ } = props;
108
+ let cssColor = 'currentColor';
109
+ if (color === 'cta') {
110
+ cssColor = theme.components.ctaButton.background;
111
+ } else if (color !== 'inherit') {
112
+ cssColor = theme.palette?.[color]?.main ? theme.palette[color].main : theme.palette.primary.main;
113
+ }
114
+
115
+ // Mixing the tint into the base keeps an opaque surface visible underneath. Declaring a
116
+ // translucent color instead would replace it, since this rule outranks the `surface` class.
117
+ const hoverBackground = percent => `color-mix(in srgb, ${cssColor} ${percent}%, ${BASE_BACKGROUND})`;
118
+ return {
119
+ root: {
120
+ '--icon-button-color': cssColor,
121
+ backgroundColor: BASE_BACKGROUND,
122
+ boxShadow: `var(${theme.vars.components.iconButton.boxShadow}, ${elevation === undefined ? 'none' : resolveElevation(theme, elevation)})`,
123
+ color: 'var(--icon-button-color)',
124
+ width: BOX_SIZES[size],
125
+ height: BOX_SIZES[size],
126
+ fontSize: theme.components.icon[size],
127
+ lineHeight: 1,
128
+ transition: theme.transitions.create(['background-color', 'box-shadow'], {
129
+ duration: theme.transitions.duration.short
130
+ }),
131
+ // A disabled button keeps taking pointer events so that it can show a not-allowed cursor,
132
+ // which leaves it matching `:hover`.
133
+ '&:hover:not(:disabled):not([aria-disabled="true"])': {
134
+ backgroundColor: hoverBackground(HOVER_OVERLAY_PERCENT),
135
+ ...theme.applyStyles('dark', {
136
+ backgroundColor: hoverBackground(HOVER_OVERLAY_PERCENT_DARK)
137
+ }),
138
+ // Reset on touch devices, it doesn't add specificity
139
+ '@media (hover: none)': {
140
+ backgroundColor: BASE_BACKGROUND
141
+ }
142
+ },
143
+ '&:disabled, &[aria-disabled="true"]': {
144
+ color: theme.palette.action.disabled
145
+ }
146
+ },
147
+ surface: {
148
+ '--icon-button-background': theme.components.iconButton.background
149
+ },
150
+ circular: {
151
+ borderRadius: '50%'
152
+ },
153
+ rounded: {
154
+ borderRadius: theme.components.iconButton.borderRadius
155
+ }
156
+ };
157
+ });
158
+ const IconButtonWithRef = /*#__PURE__*/forwardRef(IconButton);
159
+ IconButtonWithRef.displayName = 'IconButton';
160
+
161
+ // `forwardRef` erases the generic, so the call signature is restored with a cast. The cast has to
162
+ // land on a named binding rather than on the export itself, or hovering an import of this component
163
+ // resolves to an anonymous function type and shows no documentation at all.
164
+ /**
165
+ * The IconButton component renders an icon as a click target of its own. Unlike `Button` it carries
166
+ * no label, so it sizes itself to a square hit area and takes its accessible name from `aria-label`.
167
+ */
168
+ const IconButtonComponent = IconButtonWithRef;
169
+ export default IconButtonComponent;
@@ -0,0 +1,3 @@
1
+ export { default } from './IconButton';
2
+ export type { IconButtonOwnProps, IconButtonProps, IconButtonSize } from './IconButton';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../components/v2/IconButton/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export { default } from "./IconButton";
@@ -1,5 +1,6 @@
1
1
  export { default as ButtonBase, type ButtonBaseProps } from './ButtonBase';
2
2
  export { default as Button, type ButtonProps } from './Button';
3
3
  export { default as ButtonGroup, type ButtonGroupProps } from './ButtonGroup';
4
+ export { default as IconButton, type IconButtonProps, type IconButtonSize } from './IconButton';
4
5
  export { default as CircularProgress, type CircularProgressProps } from './CircularProgress';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/v2/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export { default as ButtonBase } from "./ButtonBase";
2
2
  export { default as Button } from "./Button";
3
3
  export { default as ButtonGroup } from "./ButtonGroup";
4
+ export { default as IconButton } from "./IconButton";
4
5
  export { default as CircularProgress } from "./CircularProgress";
@@ -1,5 +1,9 @@
1
- export function getFullImageSource(src: string, { width, height }?: {
1
+ export function getFullImageSource(src: string | null, { width, height }?: {
2
2
  width: number;
3
3
  height: number;
4
+ }, settings?: {
5
+ quality?: number | undefined;
6
+ fillColor?: string | undefined;
7
+ fillTransparent?: boolean | undefined;
4
8
  }): string;
5
9
  //# sourceMappingURL=getFullImageSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getFullImageSource.d.ts","sourceRoot":"","sources":["../../../core/helpers/getFullImageSource.js"],"names":[],"mappings":"AA+CO,wCANI,MAAM,sBAEd;IAA0B,KAAK,EAAvB,MAAM;IACY,MAAM,EAAxB,MAAM;CACd,GAAU,MAAM,CAgDlB"}
1
+ {"version":3,"file":"getFullImageSource.d.ts","sourceRoot":"","sources":["../../../core/helpers/getFullImageSource.js"],"names":[],"mappings":"AAiEO,wCAVI,MAAM,GAAC,IAAI,sBAEnB;IAA0B,KAAK,EAAvB,MAAM;IACY,MAAM,EAAxB,MAAM;CACd,aACA;IAA0B,OAAO;IACP,SAAS;IACR,eAAe;CAC1C,GAAU,MAAM,CAyDlB"}
@@ -5,9 +5,18 @@ import "core-js/modules/web.url.to-json.js";
5
5
  import "core-js/modules/web.url-search-params.js";
6
6
  import { CONFIGURATION_COLLECTION_CREATE_EXTERNAL_IMAGE_URL } from '@shopgate/engage/core/constants';
7
7
  import { configuration } from '@shopgate/engage/core/collections';
8
- import { getProductImageSettings } from "../../product/helpers";
8
+ import { DEFAULT_IMAGE_FILL_COLOR, DEFAULT_IMAGE_FILL_TRANSPARENT, DEFAULT_IMAGE_QUALITY } from '@shopgate/engage/settings/constants/imageSettings';
9
9
  import { getImageFormat } from "./getImageFormat";
10
10
 
11
+ /**
12
+ * The settings applied when the caller passes none.
13
+ */
14
+ const defaultSettings = {
15
+ quality: DEFAULT_IMAGE_QUALITY,
16
+ fillColor: DEFAULT_IMAGE_FILL_COLOR,
17
+ fillTransparent: DEFAULT_IMAGE_FILL_TRANSPARENT
18
+ };
19
+
11
20
  /**
12
21
  * Regex to detect the "fill" query parameter
13
22
  */
@@ -43,29 +52,38 @@ const buildUrl = (baseUrl, params = {}) => {
43
52
  };
44
53
 
45
54
  /**
46
- * Returns the actual url to the image, by adding url parameters with the dimensions for img-cdn
47
- * @param {string} src Source to the image.
55
+ * Builds the url that requests an image at a given size. A src that no known image source
56
+ * recognizes is returned untouched.
57
+ * @param {string|null} src Source to the image.
48
58
  * @param {Object} dimension Dimension of the requested image.
49
59
  * @param {number} dimension.width Width in pixels.
50
60
  * @param {number} dimension.height Height in pixels.
61
+ * @param {Object} [settings] Image service settings, as resolved by useImageServiceSettings.
62
+ * @param {number} [settings.quality] Compression quality.
63
+ * @param {string} [settings.fillColor] Fill color as a hash free hex, not a CSS color.
64
+ * @param {boolean} [settings.fillTransparent] Whether transparent areas are filled too.
51
65
  * @returns {string}
52
66
  */
53
67
  export const getFullImageSource = (src, {
54
68
  width,
55
69
  height
56
- } = {}) => {
70
+ } = {}, settings = {}) => {
71
+ const {
72
+ quality,
73
+ fillColor,
74
+ fillTransparent
75
+ } = {
76
+ ...defaultSettings,
77
+ ...settings
78
+ };
57
79
  if (src && src.includes('images.shopgate.services')) {
58
- const {
59
- fillColor,
60
- quality
61
- } = getProductImageSettings();
62
80
  const format = getImageFormat();
63
81
  return buildUrl(src, {
64
82
  format,
65
83
  width,
66
84
  height,
67
85
  quality,
68
- fill: fillColor.replace('#', '')
86
+ fill: fillTransparent ? `${fillColor},1` : fillColor
69
87
  });
70
88
  }
71
89
  if (src && src.startsWith('https://img-cdn.shopgate.com') && !src.includes('?')) {
@@ -74,17 +92,14 @@ export const getFullImageSource = (src, {
74
92
  h: height,
75
93
  q: 70,
76
94
  zd: 'resize',
77
- fillc: 'FFFFFF'
95
+ // No transparency flag here - the legacy cdn only understands a plain color.
96
+ fillc: fillColor
78
97
  });
79
98
  }
80
99
 
81
100
  // Check if an extension registered an external image url handler within the config collection.
82
101
  const createUrlFn = configuration.get(CONFIGURATION_COLLECTION_CREATE_EXTERNAL_IMAGE_URL);
83
102
  if (typeof createUrlFn === 'function') {
84
- const {
85
- fillColor,
86
- quality
87
- } = getProductImageSettings();
88
103
  const format = getImageFormat();
89
104
 
90
105
  // Invoke the handler with all relevant parameters.
@@ -92,6 +107,7 @@ export const getFullImageSource = (src, {
92
107
  width,
93
108
  height,
94
109
  fillColor,
110
+ fillTransparent,
95
111
  quality,
96
112
  format
97
113
  });
@@ -40,6 +40,10 @@ export type I18nHelpers = {
40
40
  * - Get locale data by path
41
41
  */
42
42
  getPath: Function;
43
+ /**
44
+ * - Check whether a translation key resolves to a value
45
+ */
46
+ has: Function;
43
47
  /**
44
48
  * - Get locale lang code, eg de-DE
45
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../core/helpers/i18n.js"],"names":[],"mappings":"AAyEA;;GAEG;AACH,mBAFU,WAAW,CAEM;AAMpB,oCAFM,MAAM,EAAE,CAQpB"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../core/helpers/i18n.js"],"names":[],"mappings":"AA4EA;;GAEG;AACH,mBAFU,WAAW,CAEM;AAMpB,oCAFM,MAAM,EAAE,CAQpB"}
@@ -13,6 +13,7 @@ import { logger } from '@shopgate/pwa-core/helpers';
13
13
  * @property {Function} number - Number translator
14
14
  * @property {Function} getSupplementalData - Get Supplemental Data
15
15
  * @property {Function} getPath - Get locale data by path
16
+ * @property {Function} has - Check whether a translation key resolves to a value
16
17
  * @property {Function} getLang - Get locale lang code, eg de-DE
17
18
  */
18
19
 
@@ -50,6 +51,7 @@ const I18n = () => {
50
51
  this.number = getNumberFormatter(lang);
51
52
  this.getSupplementalData = () => locales.supplementalData || {};
52
53
  this.getPath = path => get(locales, path);
54
+ this.has = path => this.getPath(path) !== undefined;
53
55
  this.getLang = () => lang;
54
56
  // If component decides to act accordingly this information should be exposed.
55
57
  this.ready = true;
@@ -62,6 +64,7 @@ const I18n = () => {
62
64
  number: notReadyCb,
63
65
  getSupplementalData: notReadyCb,
64
66
  getPath: notReadyCb,
67
+ has: notReadyCb,
65
68
  getLang: notReadyCb,
66
69
  ready: false
67
70
  };
@@ -2,82 +2,67 @@
2
2
  * Additional options for app event hooks.
3
3
  */
4
4
  export interface AppEventOptions {
5
- /**
6
- * When false, no listener is registered.
7
- * @default true
8
- */
9
- enabled?: boolean;
10
- /**
11
- * When true, the callback is removed after first call.
12
- * @default false
13
- */
14
- once?: boolean;
5
+ /**
6
+ * When false, no listener is registered.
7
+ * @default true
8
+ */
9
+ enabled?: boolean;
10
+ /**
11
+ * When true, the callback is removed after first call.
12
+ * @default false
13
+ */
14
+ once?: boolean;
15
15
  }
16
-
17
16
  /**
18
17
  * Extended options for return-from-background hook.
19
18
  */
20
19
  export interface ReturnFromBackgroundOptions extends AppEventOptions {
21
- /**
22
- * If true, requires a new background event to re-arm before firing again.
23
- * If false, remains armed until disabled or unmounted.
24
- * @default true
25
- */
26
- resetAfterFire?: boolean;
20
+ /**
21
+ * If true, requires a new background event to re-arm before firing again.
22
+ * If false, remains armed until disabled or unmounted.
23
+ * @default true
24
+ */
25
+ resetAfterFire?: boolean;
27
26
  }
28
-
29
27
  /**
30
28
  * Registers a callback for a given event from the Shopgate app event bus.
31
29
  *
32
30
  * Automatically unsubscribes on unmount. Can optionally run only once.
33
- *
34
31
  * @param name The event name to subscribe to.
35
32
  * @param callback The function to call when the event fires.
36
33
  * @param options Additional options.
37
34
  */
38
- export declare function useAppEvent(
39
- name: string,
40
- callback: () => void,
41
- options?: AppEventOptions
42
- ): void;
43
-
35
+ export declare function useAppEvent(name: string, callback: () => void, options?: AppEventOptions): void;
44
36
  /**
45
- * Registers a callback that fires when the app will enter foreground.
46
- *
47
- * Automatically unsubscribes on unmount.
37
+ * Registers a callback that fires when the app will enter foreground
38
+ * (`applicationWillEnterForeground`).
48
39
  *
40
+ * Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
49
41
  * @param callback The callback to run when entering foreground.
50
42
  * @param options Additional options.
51
43
  */
52
- export declare function useAppEventOnEnterForeground(
53
- callback: () => void,
54
- options?: AppEventOptions
55
- ): void;
56
-
44
+ export declare function useAppEventOnEnterForeground(callback: () => void, options?: AppEventOptions): void;
57
45
  /**
58
- * Registers a callback that fires when the app did enter background.
59
- *
60
- * Automatically unsubscribes on unmount.
46
+ * Registers a callback that fires when the app did enter background
47
+ * (`applicationDidEnterBackground`).
61
48
  *
49
+ * Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
62
50
  * @param callback The callback to run when entering background.
63
51
  * @param options Additional options.
64
52
  */
65
- export declare function useAppEventOnDidEnterBackground(
66
- callback: () => void,
67
- options?: AppEventOptions
68
- ): void;
69
-
53
+ export declare function useAppEventOnDidEnterBackground(callback: () => void, options?: AppEventOptions): void;
70
54
  /**
71
55
  * Invokes a callback only after the app was first sent to background and then
72
- * returns to the foreground i.e. a complete background foreground cycle.
56
+ * returns to the foreground - i.e. a complete background to foreground cycle.
73
57
  *
74
58
  * Common use case: user leaves the app to open system settings and returns, so you
75
59
  * can re-check permissions or refresh data.
76
60
  *
61
+ * Internally, this subscribes to both background and foreground events:
62
+ * - Arms itself when entering background
63
+ * - Fires on next foreground if armed
77
64
  * @param callback The callback to run after returning from background.
78
65
  * @param options Additional options.
79
66
  */
80
- export declare function useAppEventOnReturnFromBackground(
81
- callback: () => void,
82
- options?: ReturnFromBackgroundOptions
83
- ): void;
67
+ export declare function useAppEventOnReturnFromBackground(callback: () => void, options?: ReturnFromBackgroundOptions): void;
68
+ //# sourceMappingURL=appEvents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appEvents.d.ts","sourceRoot":"","sources":["../../../../core/hooks/events/appEvents.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,eAAe;IAClE;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAkBD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,GAAE,eAAoB,QAiB5F;AAED;;;;;;;GAOG;AACH,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,QAE3F;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,OAAO,CAAC,EAAE,eAAe,QAE9F;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iCAAiC,CAC/C,QAAQ,EAAE,MAAM,IAAI,EACpB,OAAO,GAAE,2BAAgC,QAsB1C"}
@@ -2,15 +2,22 @@ import { useEffect, useRef } from 'react';
2
2
  import { APP_EVENT_APPLICATION_WILL_ENTER_FOREGROUND, APP_EVENT_APPLICATION_DID_ENTER_BACKGROUND } from '@shopgate/engage/core/constants';
3
3
  import { event } from '@shopgate/engage/core/classes';
4
4
 
5
+ /**
6
+ * Additional options for app event hooks.
7
+ */
8
+
9
+ /**
10
+ * Extended options for return-from-background hook.
11
+ */
12
+
5
13
  /**
6
14
  * Returns a stable reference to the given callback, preserving the same function identity
7
15
  * across renders, while still always calling the latest version of the callback.
8
16
  *
9
17
  * Useful when passing callbacks into event listeners or effects so they don't re-subscribe
10
18
  * on every render but still access up-to-date props/state.
11
- *
12
- * @param {Function} fn The callback function whose latest version should be retained.
13
- * @returns {Function} A stable function reference that always invokes the latest callback.
19
+ * @param fn The callback function whose latest version should be retained.
20
+ * @returns A stable function reference that always invokes the latest callback.
14
21
  */
15
22
  function useStableCallback(fn) {
16
23
  const ref = useRef(fn);
@@ -18,16 +25,14 @@ function useStableCallback(fn) {
18
25
  const stable = useRef((...args) => ref.current?.(...args));
19
26
  return stable.current;
20
27
  }
28
+
21
29
  /**
22
30
  * Registers a callback for a given event from the Shopgate app event bus.
23
31
  *
24
32
  * Automatically unsubscribes on unmount. Can optionally run only once.
25
- *
26
- * @param {string} name The event name to subscribe to.
27
- * @param {Function} callback The function to call when the event fires.
28
- * @param {Object} [options] Additional options.
29
- * @param {boolean} [options.enabled=true] When false, no listener is registered.
30
- * @param {boolean} [options.once=false] When true, the callback is removed after first call.
33
+ * @param name The event name to subscribe to.
34
+ * @param callback The function to call when the event fires.
35
+ * @param options Additional options.
31
36
  */
32
37
  export function useAppEvent(name, callback, options = {}) {
33
38
  const {
@@ -37,7 +42,10 @@ export function useAppEvent(name, callback, options = {}) {
37
42
  const latest = useStableCallback(callback);
38
43
  useEffect(() => {
39
44
  if (!enabled) return undefined;
40
- // eslint-disable-next-line require-jsdoc
45
+
46
+ /**
47
+ * Invokes the callback, and unsubscribes again when the event was only wanted once.
48
+ */
41
49
  const handler = () => {
42
50
  latest();
43
51
  if (once) event.removeCallback(name, handler);
@@ -52,11 +60,8 @@ export function useAppEvent(name, callback, options = {}) {
52
60
  * (`applicationWillEnterForeground`).
53
61
  *
54
62
  * Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
55
- *
56
- * @param {Function} callback The callback to run when entering foreground.
57
- * @param {Object} [options] Additional options.
58
- * @param {boolean} [options.enabled=true] When false, the listener is not registered.
59
- * @param {boolean} [options.once=false] Remove after first call.
63
+ * @param callback The callback to run when entering foreground.
64
+ * @param options Additional options.
60
65
  */
61
66
  export function useAppEventOnEnterForeground(callback, options) {
62
67
  useAppEvent(APP_EVENT_APPLICATION_WILL_ENTER_FOREGROUND, callback, options);
@@ -65,12 +70,10 @@ export function useAppEventOnEnterForeground(callback, options) {
65
70
  /**
66
71
  * Registers a callback that fires when the app did enter background
67
72
  * (`applicationDidEnterBackground`).
68
- ** Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
69
73
  *
70
- * @param {Function} callback The callback to run when entering background.
71
- * @param {Object} [options] Additional options.
72
- * @param {boolean} [options.enabled=true] When false, the listener is not registered.
73
- * @param {boolean} [options.once=false] Remove after first call.
74
+ * Automatically unsubscribes on unmount. Accepts same options as `useAppEvent`.
75
+ * @param callback The callback to run when entering background.
76
+ * @param options Additional options.
74
77
  */
75
78
  export function useAppEventOnDidEnterBackground(callback, options) {
76
79
  useAppEvent(APP_EVENT_APPLICATION_DID_ENTER_BACKGROUND, callback, options);
@@ -78,7 +81,7 @@ export function useAppEventOnDidEnterBackground(callback, options) {
78
81
 
79
82
  /**
80
83
  * Invokes a callback only after the app was first sent to background and then
81
- * returns to the foreground i.e. a complete background foreground cycle.
84
+ * returns to the foreground - i.e. a complete background to foreground cycle.
82
85
  *
83
86
  * Common use case: user leaves the app to open system settings and returns, so you
84
87
  * can re-check permissions or refresh data.
@@ -86,14 +89,8 @@ export function useAppEventOnDidEnterBackground(callback, options) {
86
89
  * Internally, this subscribes to both background and foreground events:
87
90
  * - Arms itself when entering background
88
91
  * - Fires on next foreground if armed
89
- *
90
- * @param {Function} callback The callback to run after returning from background.
91
- * @param {Object} [options] Additional options.
92
- * @param {boolean} [options.enabled=true] When false, no listener behavior is active.
93
- * @param {boolean} [options.once=false] When true, callback fires only for the first cycle.
94
- * @param {boolean} [options.resetAfterFire=true]
95
- * If true, requires a new background event to re-arm before firing again.
96
- * If false, remains armed until disabled or unmounted.
92
+ * @param callback The callback to run after returning from background.
93
+ * @param options Additional options.
97
94
  */
98
95
  export function useAppEventOnReturnFromBackground(callback, options = {}) {
99
96
  const {