@jetshop/ui 6.3.9-alpha.0 → 6.3.9-alpha.2

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 (460) hide show
  1. package/Accordion/Accordion.d.ts +33 -0
  2. package/Accordion/Accordion.js +59 -0
  3. package/Accordion/Accordion.js.map +1 -0
  4. package/Auth/FormFields/CountriesInput.d.ts +16 -0
  5. package/Auth/FormFields/CountriesInput.js +28 -0
  6. package/Auth/FormFields/CountriesInput.js.map +1 -0
  7. package/Auth/LogInBehavior.d.ts +22 -0
  8. package/Auth/LogInBehavior.js +24 -0
  9. package/Auth/LogInBehavior.js.map +1 -0
  10. package/Auth/LogInFormProvider.d.ts +7 -0
  11. package/Auth/LogInFormProvider.js +70 -0
  12. package/Auth/LogInFormProvider.js.map +1 -0
  13. package/Auth/LogOut.d.ts +10 -0
  14. package/Auth/LogOut.js +24 -0
  15. package/Auth/LogOut.js.map +1 -0
  16. package/Auth/logInValidator.d.ts +10 -0
  17. package/Auth/logInValidator.js +16 -0
  18. package/Auth/logInValidator.js.map +1 -0
  19. package/Breadcrumbs/Breadcrumbs.d.ts +14 -0
  20. package/Breadcrumbs/Breadcrumbs.js +84 -0
  21. package/Breadcrumbs/Breadcrumbs.js.map +1 -0
  22. package/Breadcrumbs/getParentsOrCanonicalRoute.d.ts +3 -0
  23. package/Breadcrumbs/getParentsOrCanonicalRoute.js +14 -0
  24. package/Breadcrumbs/getParentsOrCanonicalRoute.js.map +1 -0
  25. package/Breadcrumbs/index.d.ts +1 -0
  26. package/Breadcrumbs/index.js +2 -0
  27. package/Breadcrumbs/index.js.map +1 -0
  28. package/Breakpoints.d.ts +12 -0
  29. package/Breakpoints.js +36 -0
  30. package/Breakpoints.js.map +1 -0
  31. package/Button/Button.d.ts +14 -0
  32. package/Button/Button.js +60 -0
  33. package/Button/Button.js.map +1 -0
  34. package/Button/SecondaryButton.d.ts +2 -0
  35. package/Button/SecondaryButton.js +9 -0
  36. package/Button/SecondaryButton.js.map +1 -0
  37. package/Button/TrendButton.d.ts +2 -0
  38. package/Button/TrendButton.js +8 -0
  39. package/Button/TrendButton.js.map +1 -0
  40. package/Button/index.d.ts +4 -0
  41. package/Button/index.js +5 -0
  42. package/Button/index.js.map +1 -0
  43. package/CategoryLink.d.ts +11 -0
  44. package/CategoryLink.js +49 -0
  45. package/CategoryLink.js.map +1 -0
  46. package/ChannelSelector/ChannelListItem.d.ts +10 -0
  47. package/ChannelSelector/ChannelListItem.js +51 -0
  48. package/ChannelSelector/ChannelListItem.js.map +1 -0
  49. package/ChannelSelector/ChannelSelector.d.ts +63 -0
  50. package/ChannelSelector/ChannelSelector.js +80 -0
  51. package/ChannelSelector/ChannelSelector.js.map +1 -0
  52. package/ChannelSelector/ChannelSelectorButtons.d.ts +2 -0
  53. package/ChannelSelector/ChannelSelectorButtons.js +20 -0
  54. package/ChannelSelector/ChannelSelectorButtons.js.map +1 -0
  55. package/ChannelSelector/Channels.d.ts +17 -0
  56. package/ChannelSelector/Channels.js +12 -0
  57. package/ChannelSelector/Channels.js.map +1 -0
  58. package/ChannelSelector/LargeSelector.d.ts +3 -0
  59. package/ChannelSelector/LargeSelector.js +67 -0
  60. package/ChannelSelector/LargeSelector.js.map +1 -0
  61. package/ChannelSelector/MiniSelector.d.ts +4 -0
  62. package/ChannelSelector/MiniSelector.js +58 -0
  63. package/ChannelSelector/MiniSelector.js.map +1 -0
  64. package/ChannelSelector/Region.d.ts +28 -0
  65. package/ChannelSelector/Region.js +21 -0
  66. package/ChannelSelector/Region.js.map +1 -0
  67. package/ChannelSelector/groupBy.d.ts +7 -0
  68. package/ChannelSelector/groupBy.js +16 -0
  69. package/ChannelSelector/groupBy.js.map +1 -0
  70. package/Checkbox/Checkbox.d.ts +14 -0
  71. package/Checkbox/Checkbox.js +70 -0
  72. package/Checkbox/Checkbox.js.map +1 -0
  73. package/Checkbox/CheckboxGroup.d.ts +27 -0
  74. package/Checkbox/CheckboxGroup.js +22 -0
  75. package/Checkbox/CheckboxGroup.js.map +1 -0
  76. package/Checkbox/index.d.ts +2 -0
  77. package/Checkbox/index.js +3 -0
  78. package/Checkbox/index.js.map +1 -0
  79. package/CloudflareImage/BaseImage.d.ts +40 -0
  80. package/CloudflareImage/BaseImage.js +192 -0
  81. package/CloudflareImage/BaseImage.js.map +1 -0
  82. package/CloudflareImage/Fallback.d.ts +5 -0
  83. package/CloudflareImage/Fallback.js +4 -0
  84. package/CloudflareImage/Fallback.js.map +1 -0
  85. package/CloudflareImage/FlightImage.d.ts +51 -0
  86. package/CloudflareImage/FlightImage.js +61 -0
  87. package/CloudflareImage/FlightImage.js.map +1 -0
  88. package/CloudflareImage/Image.d.ts +2 -0
  89. package/CloudflareImage/Image.js +3 -0
  90. package/CloudflareImage/Image.js.map +1 -0
  91. package/CloudflareImage/index.d.ts +1 -0
  92. package/CloudflareImage/index.js +2 -0
  93. package/CloudflareImage/index.js.map +1 -0
  94. package/CloudflareImage/useConstructImage.d.ts +49 -0
  95. package/CloudflareImage/useConstructImage.js +122 -0
  96. package/CloudflareImage/useConstructImage.js.map +1 -0
  97. package/CloudflareImage/utils/aspectRatioToFraction.d.ts +2 -0
  98. package/CloudflareImage/utils/aspectRatioToFraction.js +11 -0
  99. package/CloudflareImage/utils/aspectRatioToFraction.js.map +1 -0
  100. package/CloudflareImage/utils/getFullUrl.d.ts +6 -0
  101. package/CloudflareImage/utils/getFullUrl.js +18 -0
  102. package/CloudflareImage/utils/getFullUrl.js.map +1 -0
  103. package/CloudflareImage/utils/getImageWidth.d.ts +1 -0
  104. package/CloudflareImage/utils/getImageWidth.js +12 -0
  105. package/CloudflareImage/utils/getImageWidth.js.map +1 -0
  106. package/CloudflareImage/utils/getImageWidths.d.ts +2 -0
  107. package/CloudflareImage/utils/getImageWidths.js +21 -0
  108. package/CloudflareImage/utils/getImageWidths.js.map +1 -0
  109. package/CloudflareImage/utils/getLQIP.d.ts +8 -0
  110. package/CloudflareImage/utils/getLQIP.js +21 -0
  111. package/CloudflareImage/utils/getLQIP.js.map +1 -0
  112. package/CloudflareImage/utils/getLargestSize.d.ts +7 -0
  113. package/CloudflareImage/utils/getLargestSize.js +17 -0
  114. package/CloudflareImage/utils/getLargestSize.js.map +1 -0
  115. package/CloudflareImage/utils/getSizeForBreakpoint.d.ts +2 -0
  116. package/CloudflareImage/utils/getSizeForBreakpoint.js +16 -0
  117. package/CloudflareImage/utils/getSizeForBreakpoint.js.map +1 -0
  118. package/CloudflareImage/utils/getSizesMap.d.ts +2 -0
  119. package/CloudflareImage/utils/getSizesMap.js +35 -0
  120. package/CloudflareImage/utils/getSizesMap.js.map +1 -0
  121. package/CloudflareImage/utils/getSmallestSize.d.ts +2 -0
  122. package/CloudflareImage/utils/getSmallestSize.js +12 -0
  123. package/CloudflareImage/utils/getSmallestSize.js.map +1 -0
  124. package/CloudflareImage/utils/getSrcSetFromWidths.d.ts +10 -0
  125. package/CloudflareImage/utils/getSrcSetFromWidths.js +10 -0
  126. package/CloudflareImage/utils/getSrcSetFromWidths.js.map +1 -0
  127. package/CloudflareImage/utils/getSrcWithParams.d.ts +3 -0
  128. package/CloudflareImage/utils/getSrcWithParams.js +33 -0
  129. package/CloudflareImage/utils/getSrcWithParams.js.map +1 -0
  130. package/CloudflareImage/utils/paddingForAspectRatio.d.ts +1 -0
  131. package/CloudflareImage/utils/paddingForAspectRatio.js +6 -0
  132. package/CloudflareImage/utils/paddingForAspectRatio.js.map +1 -0
  133. package/CloudflareImage/utils/remToPx.d.ts +1 -0
  134. package/CloudflareImage/utils/remToPx.js +2 -0
  135. package/CloudflareImage/utils/remToPx.js.map +1 -0
  136. package/CloudflareImage/utils/sizeToNumber.d.ts +2 -0
  137. package/CloudflareImage/utils/sizeToNumber.js +27 -0
  138. package/CloudflareImage/utils/sizeToNumber.js.map +1 -0
  139. package/ContentPageLink.d.ts +11 -0
  140. package/ContentPageLink.js +46 -0
  141. package/ContentPageLink.js.map +1 -0
  142. package/ContentRenderer.d.ts +9 -0
  143. package/ContentRenderer.js +36 -0
  144. package/ContentRenderer.js.map +1 -0
  145. package/DropdownMenu/Button.d.ts +7 -0
  146. package/DropdownMenu/Button.js +33 -0
  147. package/DropdownMenu/Button.js.map +1 -0
  148. package/DropdownMenu/DropdownMenu.d.ts +21 -0
  149. package/DropdownMenu/DropdownMenu.js +72 -0
  150. package/DropdownMenu/DropdownMenu.js.map +1 -0
  151. package/DropdownMenu/Item.d.ts +13 -0
  152. package/DropdownMenu/Item.js +48 -0
  153. package/DropdownMenu/Item.js.map +1 -0
  154. package/DropdownMenu/Items.d.ts +16 -0
  155. package/DropdownMenu/Items.js +53 -0
  156. package/DropdownMenu/Items.js.map +1 -0
  157. package/DropdownMenu/index.d.ts +4 -0
  158. package/DropdownMenu/index.js +5 -0
  159. package/DropdownMenu/index.js.map +1 -0
  160. package/ErrorBoundary/Generic.d.ts +18 -0
  161. package/ErrorBoundary/Generic.js +69 -0
  162. package/ErrorBoundary/Generic.js.map +1 -0
  163. package/ErrorBoundary/PassThrough.d.ts +3 -0
  164. package/ErrorBoundary/PassThrough.js +7 -0
  165. package/ErrorBoundary/PassThrough.js.map +1 -0
  166. package/Gallery/Gallery.d.ts +39 -0
  167. package/Gallery/Gallery.js +121 -0
  168. package/Gallery/Gallery.js.map +1 -0
  169. package/Gallery/constructGallery.d.ts +15 -0
  170. package/Gallery/constructGallery.js +40 -0
  171. package/Gallery/constructGallery.js.map +1 -0
  172. package/Image/BaseImage.d.ts +39 -0
  173. package/Image/BaseImage.js +192 -0
  174. package/Image/BaseImage.js.map +1 -0
  175. package/Image/Fallback.d.ts +5 -0
  176. package/Image/Fallback.js +4 -0
  177. package/Image/Fallback.js.map +1 -0
  178. package/Image/FlightImage.d.ts +51 -0
  179. package/Image/FlightImage.js +59 -0
  180. package/Image/FlightImage.js.map +1 -0
  181. package/Image/Image.d.ts +2 -0
  182. package/Image/Image.js +3 -0
  183. package/Image/Image.js.map +1 -0
  184. package/Image/index.d.ts +1 -0
  185. package/Image/index.js +2 -0
  186. package/Image/index.js.map +1 -0
  187. package/Image/useConstructImage.d.ts +49 -0
  188. package/Image/useConstructImage.js +122 -0
  189. package/Image/useConstructImage.js.map +1 -0
  190. package/Image/utils/aspectRatioToFraction.d.ts +2 -0
  191. package/Image/utils/aspectRatioToFraction.js +11 -0
  192. package/Image/utils/aspectRatioToFraction.js.map +1 -0
  193. package/Image/utils/getFullUrl.d.ts +6 -0
  194. package/Image/utils/getFullUrl.js +18 -0
  195. package/Image/utils/getFullUrl.js.map +1 -0
  196. package/Image/utils/getImageWidth.d.ts +1 -0
  197. package/Image/utils/getImageWidth.js +12 -0
  198. package/Image/utils/getImageWidth.js.map +1 -0
  199. package/Image/utils/getImageWidths.d.ts +2 -0
  200. package/Image/utils/getImageWidths.js +21 -0
  201. package/Image/utils/getImageWidths.js.map +1 -0
  202. package/Image/utils/getLQIP.d.ts +8 -0
  203. package/Image/utils/getLQIP.js +20 -0
  204. package/Image/utils/getLQIP.js.map +1 -0
  205. package/Image/utils/getLargestSize.d.ts +7 -0
  206. package/Image/utils/getLargestSize.js +17 -0
  207. package/Image/utils/getLargestSize.js.map +1 -0
  208. package/Image/utils/getSizeForBreakpoint.d.ts +2 -0
  209. package/Image/utils/getSizeForBreakpoint.js +16 -0
  210. package/Image/utils/getSizeForBreakpoint.js.map +1 -0
  211. package/Image/utils/getSizesMap.d.ts +2 -0
  212. package/Image/utils/getSizesMap.js +35 -0
  213. package/Image/utils/getSizesMap.js.map +1 -0
  214. package/Image/utils/getSmallestSize.d.ts +2 -0
  215. package/Image/utils/getSmallestSize.js +12 -0
  216. package/Image/utils/getSmallestSize.js.map +1 -0
  217. package/Image/utils/getSrcSetFromWidths.d.ts +10 -0
  218. package/Image/utils/getSrcSetFromWidths.js +9 -0
  219. package/Image/utils/getSrcSetFromWidths.js.map +1 -0
  220. package/Image/utils/getSrcWithParams.d.ts +3 -0
  221. package/Image/utils/getSrcWithParams.js +29 -0
  222. package/Image/utils/getSrcWithParams.js.map +1 -0
  223. package/Image/utils/paddingForAspectRatio.d.ts +1 -0
  224. package/Image/utils/paddingForAspectRatio.js +6 -0
  225. package/Image/utils/paddingForAspectRatio.js.map +1 -0
  226. package/Image/utils/remToPx.d.ts +1 -0
  227. package/Image/utils/remToPx.js +2 -0
  228. package/Image/utils/remToPx.js.map +1 -0
  229. package/Image/utils/sizeToNumber.d.ts +2 -0
  230. package/Image/utils/sizeToNumber.js +27 -0
  231. package/Image/utils/sizeToNumber.js.map +1 -0
  232. package/Input/Input.d.ts +6 -0
  233. package/Input/Input.js +45 -0
  234. package/Input/Input.js.map +1 -0
  235. package/Input/index.d.ts +3 -0
  236. package/Input/index.js +4 -0
  237. package/Input/index.js.map +1 -0
  238. package/JetshopText.d.ts +3 -0
  239. package/JetshopText.js +13 -0
  240. package/JetshopText.js.map +1 -0
  241. package/Loading/LoadingBar.d.ts +8 -0
  242. package/Loading/LoadingBar.js +58 -0
  243. package/Loading/LoadingBar.js.map +1 -0
  244. package/Loading/LoadingLine.d.ts +31 -0
  245. package/Loading/LoadingLine.js +26 -0
  246. package/Loading/LoadingLine.js.map +1 -0
  247. package/Loading/NetworkStatusNotifier.d.ts +6 -0
  248. package/Loading/NetworkStatusNotifier.js +8 -0
  249. package/Loading/NetworkStatusNotifier.js.map +1 -0
  250. package/Menu/MenuContainer.d.ts +28 -0
  251. package/Menu/MenuContainer.js +46 -0
  252. package/Menu/MenuContainer.js.map +1 -0
  253. package/Menu/RecursiveTree.d.ts +28 -0
  254. package/Menu/RecursiveTree.js +91 -0
  255. package/Menu/RecursiveTree.js.map +1 -0
  256. package/Modal/Drawer/Drawer.d.ts +12 -0
  257. package/Modal/Drawer/Drawer.js +31 -0
  258. package/Modal/Drawer/Drawer.js.map +1 -0
  259. package/Modal/Drawer/DrawerTarget.d.ts +6 -0
  260. package/Modal/Drawer/DrawerTarget.js +12 -0
  261. package/Modal/Drawer/DrawerTarget.js.map +1 -0
  262. package/Modal/Drawer/DrawerTrigger.d.ts +11 -0
  263. package/Modal/Drawer/DrawerTrigger.js +16 -0
  264. package/Modal/Drawer/DrawerTrigger.js.map +1 -0
  265. package/Modal/Drawer/index.d.ts +3 -0
  266. package/Modal/Drawer/index.js +4 -0
  267. package/Modal/Drawer/index.js.map +1 -0
  268. package/Modal/Flyout/FlyoutTarget.d.ts +10 -0
  269. package/Modal/Flyout/FlyoutTarget.js +15 -0
  270. package/Modal/Flyout/FlyoutTarget.js.map +1 -0
  271. package/Modal/Flyout/FlyoutTrigger.d.ts +15 -0
  272. package/Modal/Flyout/FlyoutTrigger.js +18 -0
  273. package/Modal/Flyout/FlyoutTrigger.js.map +1 -0
  274. package/Modal/Flyout/index.d.ts +2 -0
  275. package/Modal/Flyout/index.js +3 -0
  276. package/Modal/Flyout/index.js.map +1 -0
  277. package/Modal/ModalContext.d.ts +26 -0
  278. package/Modal/ModalContext.js +9 -0
  279. package/Modal/ModalContext.js.map +1 -0
  280. package/Modal/ModalProvider.d.ts +5 -0
  281. package/Modal/ModalProvider.js +83 -0
  282. package/Modal/ModalProvider.js.map +1 -0
  283. package/Modal/ModalRoot.d.ts +3 -0
  284. package/Modal/ModalRoot.js +44 -0
  285. package/Modal/ModalRoot.js.map +1 -0
  286. package/Modal/ModalTrigger.d.ts +9 -0
  287. package/Modal/ModalTrigger.js +9 -0
  288. package/Modal/ModalTrigger.js.map +1 -0
  289. package/Pagination/Pagination.d.ts +7 -0
  290. package/Pagination/Pagination.js +23 -0
  291. package/Pagination/Pagination.js.map +1 -0
  292. package/Pagination/PaginationBehaviour.d.ts +52 -0
  293. package/Pagination/PaginationBehaviour.js +68 -0
  294. package/Pagination/PaginationBehaviour.js.map +1 -0
  295. package/Pagination/index.d.ts +2 -0
  296. package/Pagination/index.js +3 -0
  297. package/Pagination/index.js.map +1 -0
  298. package/Pagination/usePagination.d.ts +15 -0
  299. package/Pagination/usePagination.js +46 -0
  300. package/Pagination/usePagination.js.map +1 -0
  301. package/PreOrderDateSelector/PreOrderDateSelector.d.ts +23 -0
  302. package/PreOrderDateSelector/PreOrderDateSelector.js +74 -0
  303. package/PreOrderDateSelector/PreOrderDateSelector.js.map +1 -0
  304. package/PreOrderDateSelector/index.d.ts +2 -0
  305. package/PreOrderDateSelector/index.js +3 -0
  306. package/PreOrderDateSelector/index.js.map +1 -0
  307. package/Price/Currency.d.ts +9 -0
  308. package/Price/Currency.js +11 -0
  309. package/Price/Currency.js.map +1 -0
  310. package/Price/Price.d.ts +44 -0
  311. package/Price/Price.js +74 -0
  312. package/Price/Price.js.map +1 -0
  313. package/Price/index.d.ts +1 -0
  314. package/Price/index.js +2 -0
  315. package/Price/index.js.map +1 -0
  316. package/ProductLink.d.ts +23 -0
  317. package/ProductLink.js +88 -0
  318. package/ProductLink.js.map +1 -0
  319. package/ProductList/Badges.d.ts +6 -0
  320. package/ProductList/Badges.js +56 -0
  321. package/ProductList/Badges.js.map +1 -0
  322. package/ProductList/GridProduct.d.ts +24 -0
  323. package/ProductList/GridProduct.js +58 -0
  324. package/ProductList/GridProduct.js.map +1 -0
  325. package/ProductList/ProductGrid.d.ts +16 -0
  326. package/ProductList/ProductGrid.js +30 -0
  327. package/ProductList/ProductGrid.js.map +1 -0
  328. package/ProductList/ProductImage.d.ts +12 -0
  329. package/ProductList/ProductImage.js +21 -0
  330. package/ProductList/ProductImage.js.map +1 -0
  331. package/ProductSpecifications/ProductSpecifications.d.ts +8 -0
  332. package/ProductSpecifications/ProductSpecifications.js +78 -0
  333. package/ProductSpecifications/ProductSpecifications.js.map +1 -0
  334. package/ScrollRestorationHandler/ScrollRestorationHandler.d.ts +8 -0
  335. package/ScrollRestorationHandler/ScrollRestorationHandler.js +17 -0
  336. package/ScrollRestorationHandler/ScrollRestorationHandler.js.map +1 -0
  337. package/ScrollRestorationHandler/index.d.ts +1 -0
  338. package/ScrollRestorationHandler/index.js +2 -0
  339. package/ScrollRestorationHandler/index.js.map +1 -0
  340. package/ScrollRestorationHandler/isInIgnoredRouteTypes.d.ts +8 -0
  341. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js +8 -0
  342. package/ScrollRestorationHandler/isInIgnoredRouteTypes.js.map +1 -0
  343. package/ScrollRestorationHandler/useScrollRestore.d.ts +9 -0
  344. package/ScrollRestorationHandler/useScrollRestore.js +20 -0
  345. package/ScrollRestorationHandler/useScrollRestore.js.map +1 -0
  346. package/Search/SearchAutoCompleteContainer.d.ts +45 -0
  347. package/Search/SearchAutoCompleteContainer.js +172 -0
  348. package/Search/SearchAutoCompleteContainer.js.map +1 -0
  349. package/Search/SearchField.d.ts +26 -0
  350. package/Search/SearchField.js +98 -0
  351. package/Search/SearchField.js.map +1 -0
  352. package/Search/SearchPage/PageOf.d.ts +5 -0
  353. package/Search/SearchPage/PageOf.js +7 -0
  354. package/Search/SearchPage/PageOf.js.map +1 -0
  355. package/Search/SearchPage/SearchMeta.d.ts +16 -0
  356. package/Search/SearchPage/SearchMeta.js +20 -0
  357. package/Search/SearchPage/SearchMeta.js.map +1 -0
  358. package/Search/SearchPage/SearchPageBehaviour.d.ts +19 -0
  359. package/Search/SearchPage/SearchPageBehaviour.js +75 -0
  360. package/Search/SearchPage/SearchPageBehaviour.js.map +1 -0
  361. package/Search/SuggestedTerm.d.ts +16 -0
  362. package/Search/SuggestedTerm.js +35 -0
  363. package/Search/SuggestedTerm.js.map +1 -0
  364. package/Search/index.d.ts +1 -0
  365. package/Search/index.js +2 -0
  366. package/Search/index.js.map +1 -0
  367. package/Select/Components.d.ts +28 -0
  368. package/Select/Components.js +91 -0
  369. package/Select/Components.js.map +1 -0
  370. package/Select/SelectComponents/Quantity.d.ts +5 -0
  371. package/Select/SelectComponents/Quantity.js +8 -0
  372. package/Select/SelectComponents/Quantity.js.map +1 -0
  373. package/Select/index.d.ts +5 -0
  374. package/Select/index.js +2 -0
  375. package/Select/index.js.map +1 -0
  376. package/SortOrder/SortOrder.d.ts +16 -0
  377. package/SortOrder/SortOrder.js +33 -0
  378. package/SortOrder/SortOrder.js.map +1 -0
  379. package/SortOrder/SortOrderDropdown.d.ts +9 -0
  380. package/SortOrder/SortOrderDropdown.js +25 -0
  381. package/SortOrder/SortOrderDropdown.js.map +1 -0
  382. package/SortOrder/SortOrderList.d.ts +7 -0
  383. package/SortOrder/SortOrderList.js +17 -0
  384. package/SortOrder/SortOrderList.js.map +1 -0
  385. package/StartPageRenderer/StartPageRenderer.d.ts +17 -0
  386. package/StartPageRenderer/StartPageRenderer.js +52 -0
  387. package/StartPageRenderer/StartPageRenderer.js.map +1 -0
  388. package/StartPageRenderer/index.d.ts +1 -0
  389. package/StartPageRenderer/index.js +2 -0
  390. package/StartPageRenderer/index.js.map +1 -0
  391. package/Stock/StockStatusContainer.d.ts +21 -0
  392. package/Stock/StockStatusContainer.js +45 -0
  393. package/Stock/StockStatusContainer.js.map +1 -0
  394. package/Text/Text.d.ts +11 -0
  395. package/Text/Text.js +22 -0
  396. package/Text/Text.js.map +1 -0
  397. package/Text/index.d.ts +3 -0
  398. package/Text/index.js +4 -0
  399. package/Text/index.js.map +1 -0
  400. package/Theme/createTheme.d.ts +16 -0
  401. package/Theme/createTheme.js +5 -0
  402. package/Theme/createTheme.js.map +1 -0
  403. package/Theme/cssReset.d.ts +1 -0
  404. package/Theme/cssReset.js +160 -0
  405. package/Theme/cssReset.js.map +1 -0
  406. package/Theme/normalizeCss.d.ts +1 -0
  407. package/Theme/normalizeCss.js +357 -0
  408. package/Theme/normalizeCss.js.map +1 -0
  409. package/Theme/sanitizeCss.d.ts +1 -0
  410. package/Theme/sanitizeCss.js +572 -0
  411. package/Theme/sanitizeCss.js.map +1 -0
  412. package/WindowGrid/WindowGrid.d.ts +11 -0
  413. package/WindowGrid/WindowGrid.js +58 -0
  414. package/WindowGrid/WindowGrid.js.map +1 -0
  415. package/WindowGrid/index.d.ts +1 -0
  416. package/WindowGrid/index.js +2 -0
  417. package/WindowGrid/index.js.map +1 -0
  418. package/WindowGrid/useResizeObserver.d.ts +3 -0
  419. package/WindowGrid/useResizeObserver.js +14 -0
  420. package/WindowGrid/useResizeObserver.js.map +1 -0
  421. package/WindowGrid/useScrollWithWindow.d.ts +12 -0
  422. package/WindowGrid/useScrollWithWindow.js +39 -0
  423. package/WindowGrid/useScrollWithWindow.js.map +1 -0
  424. package/fuzzySearch/fuzzySearch.d.ts +8 -0
  425. package/fuzzySearch/fuzzySearch.js +43 -0
  426. package/fuzzySearch/fuzzySearch.js.map +1 -0
  427. package/fuzzySearch/index.d.ts +1 -0
  428. package/fuzzySearch/index.js +2 -0
  429. package/fuzzySearch/index.js.map +1 -0
  430. package/hooks/index.d.ts +2 -0
  431. package/hooks/index.js +3 -0
  432. package/hooks/index.js.map +1 -0
  433. package/hooks/useOnClickOutside.d.ts +6 -0
  434. package/hooks/useOnClickOutside.js +17 -0
  435. package/hooks/useOnClickOutside.js.map +1 -0
  436. package/hooks/useOnEsc.d.ts +4 -0
  437. package/hooks/useOnEsc.js +17 -0
  438. package/hooks/useOnEsc.js.map +1 -0
  439. package/package.json +3 -2
  440. package/utils/breakpoints.d.ts +23 -0
  441. package/utils/breakpoints.js +94 -0
  442. package/utils/breakpoints.js.map +1 -0
  443. package/utils/callAllEventHandlers.d.ts +5 -0
  444. package/utils/callAllEventHandlers.js +9 -0
  445. package/utils/callAllEventHandlers.js.map +1 -0
  446. package/utils/text.d.ts +1 -0
  447. package/utils/text.js +23 -0
  448. package/utils/text.js.map +1 -0
  449. package/utils/theme.d.ts +3 -0
  450. package/utils/theme.js +5 -0
  451. package/utils/theme.js.map +1 -0
  452. package/utils/useHoverIntent.d.ts +10 -0
  453. package/utils/useHoverIntent.js +78 -0
  454. package/utils/useHoverIntent.js.map +1 -0
  455. package/utils/usePropsOfType.d.ts +11 -0
  456. package/utils/usePropsOfType.js +18 -0
  457. package/utils/usePropsOfType.js.map +1 -0
  458. package/withFlightUI.d.ts +17 -0
  459. package/withFlightUI.js +20 -0
  460. package/withFlightUI.js.map +1 -0
@@ -0,0 +1,40 @@
1
+ import { getFullUrl } from '../Image/utils/getFullUrl';
2
+ import { getImageWidths } from '../Image/utils/getImageWidths';
3
+ import { getLargestSize } from '../Image/utils/getLargestSize';
4
+ import { getSizesMap } from '../Image/utils/getSizesMap';
5
+ import { getSmallestSize } from '../Image/utils/getSmallestSize';
6
+ import { getSrcSetFromWidths } from '../Image/utils/getSrcSetFromWidths';
7
+ export function constructGallery(images, sizes, aspect, baseUrl, breakpoints) {
8
+ const calculatedSizes = getSizesMap(breakpoints, sizes);
9
+ // Get required set of image widths
10
+ const widths = getImageWidths(breakpoints, sizes);
11
+ return images.map((img, index) => {
12
+ const url = img.url || img.sizes;
13
+ let imageSrc;
14
+ let thumbSrc;
15
+ if (Array.isArray(url)) {
16
+ // maintain support for deprecated image sizes object
17
+ imageSrc = getFullUrl(getLargestSize(url), baseUrl);
18
+ thumbSrc = getFullUrl(getSmallestSize(url), baseUrl);
19
+ }
20
+ else {
21
+ imageSrc = getFullUrl(url, baseUrl);
22
+ thumbSrc = imageSrc;
23
+ }
24
+ // Generate image urls for the required image sizes
25
+ const srcSet = getSrcSetFromWidths(imageSrc, widths, aspect, { crop: false, webp: false }, img.modifiedDate);
26
+ return {
27
+ index,
28
+ original: imageSrc,
29
+ originalAlt: img.alt,
30
+ originalTitle: img.title,
31
+ thumbnail: thumbSrc,
32
+ thumbnailAlt: img.alt,
33
+ thumbnailTitle: img.title,
34
+ sizes: calculatedSizes,
35
+ srcSet,
36
+ modifiedDate: img.modifiedDate
37
+ };
38
+ });
39
+ }
40
+ //# sourceMappingURL=constructGallery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructGallery.js","sourceRoot":"","sources":["constructGallery.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAEzE,MAAM,UAAU,gBAAgB,CAC9B,MAAsB,EACtB,KAAe,EACf,MAAc,EACd,OAAe,EACf,WAAwC;IAExC,MAAM,eAAe,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IACxD,mCAAmC;IACnC,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;QAEjC,IAAI,QAAgB,CAAC;QACrB,IAAI,QAAgB,CAAC;QAErB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACtB,qDAAqD;YACrD,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;YACpD,QAAQ,GAAG,UAAU,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;SACtD;aAAM;YACL,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YACpC,QAAQ,GAAG,QAAQ,CAAC;SACrB;QAED,mDAAmD;QACnD,MAAM,MAAM,GAAG,mBAAmB,CAChC,QAAQ,EACR,MAAM,EACN,MAAM,EACN,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAC5B,GAAG,CAAC,YAAY,CACjB,CAAC;QACF,OAAO;YACL,KAAK;YACL,QAAQ,EAAE,QAAQ;YAClB,WAAW,EAAE,GAAG,CAAC,GAAG;YACpB,aAAa,EAAE,GAAG,CAAC,KAAK;YACxB,SAAS,EAAE,QAAQ;YACnB,YAAY,EAAE,GAAG,CAAC,GAAG;YACrB,cAAc,EAAE,GAAG,CAAC,KAAK;YACzB,KAAK,EAAE,eAAe;YACtB,MAAM;YACN,YAAY,EAAE,GAAG,CAAC,YAAY;SAC/B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,39 @@
1
+ import * as React from 'react';
2
+ import { ProductImageSize } from '@jetshop/core/types';
3
+ export type ImageSrcType = string | ProductImageSize[];
4
+ export type BreakpointValues = string[];
5
+ export type ImageBreakpointSize = number | string;
6
+ export type ImageBreakpointSizes = ImageBreakpointSize | ImageBreakpointSize[];
7
+ export type AspectRatio = string | number;
8
+ export declare const transparentDataImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
9
+ export interface ImageParameters {
10
+ src: string | boolean;
11
+ sizes: string;
12
+ hasFalsySrc: boolean;
13
+ srcset: string;
14
+ webpSrcset: string;
15
+ lqip: string;
16
+ /**
17
+ * The aspect ratio of the image
18
+ * If unknown, use null to preserve original aspect ratio
19
+ */
20
+ aspect?: string;
21
+ critical?: boolean;
22
+ }
23
+ export interface ImageProps extends ImageParameters {
24
+ /** Whether or not to use `background-size: cover` */
25
+ cover?: boolean;
26
+ error?: (args: any) => React.ReactElement<any>;
27
+ alt?: string;
28
+ title?: string;
29
+ /**
30
+ * Useful for banner images. Sets the following CSS automatically:
31
+ * object-fit: cover
32
+ * padding-top: 0;
33
+ */
34
+ fillAvailableSpace?: boolean;
35
+ className?: string;
36
+ badges?: React.ReactElement<any>;
37
+ }
38
+ declare const Image: React.FC<ImageProps>;
39
+ export default Image;
@@ -0,0 +1,192 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as React from 'react';
13
+ import { useInView } from 'react-intersection-observer';
14
+ import { paddingForAspectRatio } from './utils/paddingForAspectRatio';
15
+ export const transparentDataImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
16
+ const defaultImageState = {
17
+ imgLoaded: false,
18
+ error: false
19
+ };
20
+ const loadedImageState = {
21
+ imgLoaded: true,
22
+ error: false
23
+ };
24
+ let hydrated = false;
25
+ const imageCache = Object.create({});
26
+ function isInCache(src) {
27
+ return src in imageCache;
28
+ }
29
+ function cacheImage(src) {
30
+ imageCache[src] = true;
31
+ }
32
+ function imageStateReducer(_, action) {
33
+ switch (action.type) {
34
+ case 'reset':
35
+ return defaultImageState;
36
+ case 'loaded':
37
+ cacheImage(action.cacheKey);
38
+ return loadedImageState;
39
+ case 'error':
40
+ return { imgLoaded: false, error: true };
41
+ default:
42
+ console.error(`Action ${action.type} is invalid for image reducer`);
43
+ return;
44
+ }
45
+ }
46
+ function useObjectFitPolyfill(imageRefs) {
47
+ const [polyfilled, setPolyfilled] = React.useState(false);
48
+ React.useEffect(() => {
49
+ const testImg = document.createElement(`img`);
50
+ if (typeof testImg.style.objectFit === `undefined` ||
51
+ typeof testImg.style.objectPosition === `undefined`) {
52
+ import(`object-fit-images`).then(({ default: ObjectFitImages }) => {
53
+ imageRefs.forEach((imageRef) => {
54
+ imageRef.current && ObjectFitImages(imageRef.current);
55
+ });
56
+ setPolyfilled(true);
57
+ });
58
+ }
59
+ }, [imageRefs]);
60
+ return polyfilled;
61
+ }
62
+ function getTypeByExtension(src) {
63
+ // Identifying type by extension, based on common image file types
64
+ // https://developer.mozilla.org/en-US/docs/Web/Media/Formats/Image_types
65
+ const extensionRegex = /\.(jpg|jpeg|jfif|pjpeg|pjp|png|gif|bmp|webp|svg|apng|ico|cur)(?:\?.*)?$/i;
66
+ const formatMatch = extensionRegex.exec(src);
67
+ if (!formatMatch)
68
+ return null;
69
+ let type = null;
70
+ switch (formatMatch[1]) {
71
+ case 'jpg':
72
+ case 'jpeg':
73
+ case 'jfif':
74
+ case 'pjpeg':
75
+ case 'pjp':
76
+ type = 'image/jpeg';
77
+ break;
78
+ case 'png':
79
+ type = 'image/png';
80
+ break;
81
+ case 'gif':
82
+ type = 'image/gif';
83
+ break;
84
+ case 'bmp':
85
+ type = 'image/bmp';
86
+ break;
87
+ case 'webp':
88
+ type = 'image/webp';
89
+ break;
90
+ case 'svg':
91
+ type = 'image/svg+xml';
92
+ break;
93
+ case 'apng':
94
+ type = 'image/apng';
95
+ break;
96
+ case 'ico':
97
+ case 'cur':
98
+ type = 'image/x-icon';
99
+ break;
100
+ default:
101
+ break;
102
+ }
103
+ return type;
104
+ }
105
+ const Img = React.forwardRef((props, ref) => {
106
+ const { sizes, srcSet, src, style, alt, onLoad, onError, objectFit, critical } = props, otherProps = __rest(props, ["sizes", "srcSet", "src", "style", "alt", "onLoad", "onError", "objectFit", "critical"]);
107
+ const imgStyle = Object.assign({ position: 'absolute', top: 0, left: 0, width: `100%`, height: `100%`, paddingTop: 0, objectPosition: `center`, objectFit }, style);
108
+ return (React.createElement("img", Object.assign({ alt: alt, sizes: sizes, srcSet: srcSet, src: src, onLoad: onLoad, onError: onError, loading: critical ? 'eager' : 'lazy' }, otherProps, { ref: ref, style: imgStyle })));
109
+ });
110
+ const Placeholder = React.forwardRef((props, ref) => {
111
+ return (React.createElement("picture", { "data-flight-image-placeholder": "" },
112
+ React.createElement(Img, Object.assign({ loading: "lazy" }, props, { ref: ref }))));
113
+ });
114
+ const Image = function Image(_a) {
115
+ var { src, hasFalsySrc, lqip, sizes, srcset, webpSrcset, critical, aspect, cover = false, alt = '', fillAvailableSpace = false, children, error: ErrorComp, className, badges } = _a, rest = __rest(_a, ["src", "hasFalsySrc", "lqip", "sizes", "srcset", "webpSrcset", "critical", "aspect", "cover", "alt", "fillAvailableSpace", "children", "error", "className", "badges"]);
116
+ // Set up the IntersectionObserver
117
+ const [ref, inView] = useInView({ triggerOnce: true });
118
+ // Check if the browser supports loading="lazy". In that case, we don't need
119
+ // the IntersectionObserver
120
+ const nativeLazyLoading = typeof HTMLImageElement !== 'undefined' &&
121
+ 'loading' in HTMLImageElement.prototype;
122
+ const imageRef = React.createRef();
123
+ const placeholderRef = React.createRef();
124
+ useObjectFitPolyfill([imageRef, placeholderRef]);
125
+ const [{ imgLoaded, error }, dispatch] = React.useReducer(imageStateReducer, critical ? loadedImageState : defaultImageState);
126
+ const cacheKey = srcset;
127
+ const handleImgLoad = React.useCallback(function handleImgLoad() {
128
+ dispatch({ type: 'loaded', cacheKey });
129
+ }, [cacheKey]);
130
+ function handleImgError() {
131
+ dispatch({ type: 'error' });
132
+ }
133
+ // Treat critical images as always cached
134
+ const isCached = critical || isInCache(cacheKey);
135
+ React.useEffect(() => {
136
+ hydrated = true;
137
+ }, []);
138
+ React.useEffect(() => {
139
+ dispatch({ type: 'reset' });
140
+ }, [src]);
141
+ React.useEffect(() => {
142
+ // Handle case where image onLoad fires during SSR
143
+ if (imageRef.current && imageRef.current.complete && !isCached) {
144
+ handleImgLoad();
145
+ }
146
+ }, [handleImgLoad, imageRef, isCached]);
147
+ // Render nothing if src is boolean
148
+ if (typeof src === 'boolean' && !src) {
149
+ return null;
150
+ }
151
+ const loaded = imgLoaded || hasFalsySrc || isCached;
152
+ const objectFit = cover || fillAvailableSpace ? 'cover' : 'contain';
153
+ const objectFitPolyfillStyles = { fontFamily: `"object-fit: ${objectFit}"` };
154
+ const type = getTypeByExtension(src);
155
+ return (React.createElement(React.Fragment, null,
156
+ React.createElement("div", Object.assign({ key: src, ref:
157
+ // If we have native lazyloading, by not applying the `ref` from
158
+ // useInView we don't use IntersectionObserver at all
159
+ nativeLazyLoading ? undefined : ref, "data-flight-image-container": "", "data-flight-image-loaded": loaded, className: className }, rest, { style: {
160
+ position: `relative`,
161
+ overflow: `hidden`,
162
+ width: `100%`,
163
+ height: fillAvailableSpace ? '100%' : 'auto',
164
+ paddingBottom: fillAvailableSpace
165
+ ? 0
166
+ : !aspect
167
+ ? '100%'
168
+ : paddingForAspectRatio(aspect)
169
+ } }),
170
+ error ? (React.createElement(ErrorComp, null)) : (React.createElement(React.Fragment, null,
171
+ React.createElement(Placeholder, { src: critical ? transparentDataImg : lqip || transparentDataImg, ref: placeholderRef, alt: "", "aria-hidden": "true", style: Object.assign({ objectFit, opacity: loaded ? 0 : 0.6, transitionDelay: `500ms` }, objectFitPolyfillStyles) }),
172
+ (inView || nativeLazyLoading || !hydrated || isCached) && (React.createElement("picture", { "data-flight-image": "" },
173
+ React.createElement("source", { type: "image/webp", srcSet: webpSrcset, sizes: sizes }),
174
+ React.createElement("source", { type: type, srcSet: srcset, sizes: sizes }),
175
+ React.createElement(Img, { srcSet: srcset, src: src || transparentDataImg, sizes: sizes, onLoad: handleImgLoad, onError: handleImgError, alt: alt, ref: imageRef, style: Object.assign({ objectFit, opacity: loaded ? 1 : 0, transition: `opacity 500ms` }, objectFitPolyfillStyles), critical: critical, fetchpriority: critical ? 'high' : 'auto' }))),
176
+ React.createElement("noscript", null,
177
+ React.createElement("picture", null,
178
+ React.createElement(Img, { srcSet: srcset, src: src, sizes: sizes, alt: alt, style: {
179
+ objectFit
180
+ }, critical: critical, fetchpriority: critical ? 'high' : 'auto' }))))),
181
+ children && (React.createElement("div", { "data-flight-image-children": "", style: {
182
+ position: 'relative',
183
+ zIndex: 2,
184
+ width: '100%',
185
+ height: '100%'
186
+ } }, children)),
187
+ badges && (React.createElement("div", { "data-flight-image-badges": "", style: {
188
+ zIndex: 2
189
+ } }, badges)))));
190
+ };
191
+ export default Image;
192
+ //# sourceMappingURL=BaseImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseImage.js","sourceRoot":"","sources":["BaseImage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+ /** Display this if JS is disabled. */
3
+ export declare const Fallback: ({ children }: {
4
+ children: React.ReactElement<{}>;
5
+ }) => React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ /** Display this if JS is disabled. */
3
+ export const Fallback = ({ children }) => React.createElement("noscript", null, children);
4
+ //# sourceMappingURL=Fallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Fallback.js","sourceRoot":"","sources":["Fallback.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,sCAAsC;AAEtC,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,EACvB,QAAQ,EAGT,EAAE,EAAE,CAAC,sCAAW,QAAQ,CAAY,CAAC"}
@@ -0,0 +1,51 @@
1
+ import React from 'react';
2
+ import { ProductImageSize } from '@jetshop/core/types';
3
+ export type ImageSrcType = string | ProductImageSize[];
4
+ export type ImageBreakpointSize = number | string;
5
+ export type ImageBreakpointSizes = ImageBreakpointSize | ImageBreakpointSize[];
6
+ export type AspectRatio = string | number;
7
+ export type Gravity = 'north' | 'south' | 'west' | 'east' | 'centre' | 'smart';
8
+ export declare const transparentDataImg = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=";
9
+ interface ImageParameters {
10
+ /** The image src
11
+ * Also accepts an array of objects with `url` keys (deprecated image field)
12
+ */
13
+ src: ImageSrcType;
14
+ /**
15
+ * Whether to crop the image instead of resizing it when aspect ratio is provided
16
+ * @default false
17
+ */
18
+ crop?: boolean;
19
+ gravity?: Gravity;
20
+ quality?: number;
21
+ /** An array of image sizes, will be mapped against breakpoints.
22
+ * @see https://docs.dev.jetshop.se/ui/image#the-sizes-prop
23
+ */
24
+ sizes: ImageBreakpointSizes;
25
+ /**
26
+ * The aspect ratio of the image
27
+ * If unknown, use null to preserve original aspect ratio
28
+ */
29
+ aspect?: string;
30
+ critical?: boolean;
31
+ modifiedDate?: string;
32
+ focalPointX?: number;
33
+ focalPointY?: number;
34
+ }
35
+ interface ImageProps extends ImageParameters {
36
+ /** Whether or not to use `background-size: cover` */
37
+ cover?: boolean;
38
+ error?: (args: any) => React.ReactElement<any>;
39
+ alt?: string;
40
+ title?: string;
41
+ /**
42
+ * Useful for banner images. Sets the following CSS automatically:
43
+ * object-fit: cover
44
+ * padding-top: 0;
45
+ */
46
+ fillAvailableSpace?: boolean;
47
+ className?: string;
48
+ badges?: React.ReactElement<any>;
49
+ }
50
+ declare function FlightImage(props: ImageProps): React.JSX.Element;
51
+ export default FlightImage;
@@ -0,0 +1,59 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { useShopConfig } from '@jetshop/core/hooks/useShopConfig';
13
+ import Image from './BaseImage';
14
+ import React from 'react';
15
+ import t from '@jetshop/intl';
16
+ import { useConstructImage } from './useConstructImage';
17
+ import ChannelContext from '@jetshop/core/components/ChannelContext';
18
+ import { Below } from '../Breakpoints';
19
+ export const transparentDataImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII=';
20
+ function Error() {
21
+ return (React.createElement("div", { style: {
22
+ background: '#e2e2e2',
23
+ display: 'flex',
24
+ justifyContent: 'center',
25
+ alignItems: 'center',
26
+ position: `absolute`,
27
+ top: 0,
28
+ left: 0,
29
+ width: `100%`,
30
+ height: `100%`
31
+ } }, t('Image Not Found')));
32
+ }
33
+ function FlightImage(props) {
34
+ const { gravity, crop, src: originalSrc, sizes: sizesArray = [1], aspect, quality, critical, modifiedDate, error: ErrorComp = Error, focalPointX, focalPointY } = props, rest = __rest(props, ["gravity", "crop", "src", "sizes", "aspect", "quality", "critical", "modifiedDate", "error", "focalPointX", "focalPointY"]);
35
+ const { theme: { breakpoints }, useMobileImageSizes = false } = useShopConfig();
36
+ // The baseUrl will change based on the currently-selected channel.
37
+ // We need it to correctly construct the image url
38
+ const { selectedChannel } = React.useContext(ChannelContext);
39
+ const baseUrl = (selectedChannel === null || selectedChannel === void 0 ? void 0 : selectedChannel.imageUrl)
40
+ ? String(selectedChannel.imageUrl)
41
+ : null;
42
+ const { src, hasFalsySrc, lqip, sizes, sizesMobile, srcset, webpSrcset, srcsetMobile, webpSrcsetMobile } = useConstructImage({
43
+ gravity,
44
+ crop,
45
+ src: originalSrc,
46
+ sizes: sizesArray,
47
+ aspect,
48
+ quality,
49
+ critical,
50
+ modifiedDate,
51
+ breakpoints,
52
+ baseUrl,
53
+ focalPointX,
54
+ focalPointY
55
+ });
56
+ return (React.createElement(Below, { breakpoint: 'sm' }, (matches) => (React.createElement(Image, Object.assign({}, rest, { critical: critical, aspect: aspect, src: hasFalsySrc && typeof originalSrc === 'boolean' ? false : src, hasFalsySrc: hasFalsySrc, lqip: lqip, sizes: matches && useMobileImageSizes ? sizesMobile : sizes, srcset: matches && useMobileImageSizes ? srcsetMobile : srcset, webpSrcset: matches && useMobileImageSizes ? webpSrcsetMobile : webpSrcset, error: ErrorComp })))));
57
+ }
58
+ export default FlightImage;
59
+ //# sourceMappingURL=FlightImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FlightImage.js","sourceRoot":"","sources":["FlightImage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './FlightImage';
2
+ export { default } from './FlightImage';
package/Image/Image.js ADDED
@@ -0,0 +1,3 @@
1
+ export * from './FlightImage';
2
+ export { default } from './FlightImage';
3
+ //# sourceMappingURL=Image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.js","sourceRoot":"","sources":["Image.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1 @@
1
+ export { default } from './FlightImage';
package/Image/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default } from './FlightImage';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,49 @@
1
+ import { ImageValue, ProductImageSize } from '@jetshop/core/types';
2
+ type ImageSrcType = string | ProductImageSize[] | ImageValue;
3
+ export type Gravity = 'north' | 'south' | 'west' | 'east' | 'centre' | 'smart';
4
+ export type ImageBreakpointSize = number | string;
5
+ export type ImageBreakpointSizes = ImageBreakpointSize | ImageBreakpointSize[];
6
+ interface ImageParameters {
7
+ /** The image src
8
+ * Also accepts an array of objects with `url` keys (deprecated image field)
9
+ */
10
+ src: ImageSrcType;
11
+ /**
12
+ * Whether to crop the image instead of resizing it when aspect ratio is provided
13
+ * @default false
14
+ */
15
+ crop?: boolean;
16
+ gravity?: Gravity;
17
+ quality?: number;
18
+ /** An array of image sizes, will be mapped against breakpoints.
19
+ * @see https://docs.dev.jetshop.se/ui/image#the-sizes-prop
20
+ */
21
+ sizes: ImageBreakpointSizes;
22
+ /**
23
+ * The aspect ratio of the image
24
+ * If unknown, use null to preserve original aspect ratio
25
+ */
26
+ aspect?: string;
27
+ critical?: boolean;
28
+ modifiedDate?: string;
29
+ breakpoints: Record<string, string>;
30
+ baseUrl: string;
31
+ focalPointX?: number;
32
+ focalPointY?: number;
33
+ }
34
+ /**
35
+ * Dynamically constructs the query parameters used by ImageMagick to size the image appropriately.
36
+ * Also generates a LQIP using query parameters, to display while the full image loads.
37
+ */
38
+ export declare function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl, focalPointX, focalPointY }: ImageParameters): {
39
+ srcset: string;
40
+ webpSrcset: string;
41
+ sizes: string;
42
+ sizesMobile: string;
43
+ lqip: string;
44
+ src: string;
45
+ hasFalsySrc: boolean;
46
+ srcsetMobile: string;
47
+ webpSrcsetMobile: string;
48
+ };
49
+ export {};
@@ -0,0 +1,122 @@
1
+ import useWarningInDev from '@jetshop/core/hooks/useWarningInDev';
2
+ import { getFullUrl } from './utils/getFullUrl';
3
+ import { getImageWidths } from './utils/getImageWidths';
4
+ import { getLargestSize } from './utils/getLargestSize';
5
+ import { getLQIP } from './utils/getLQIP';
6
+ import { getSizesMap } from './utils/getSizesMap';
7
+ import { getSrcSetFromWidths } from './utils/getSrcSetFromWidths';
8
+ import React from 'react';
9
+ /**
10
+ * Dynamically constructs the query parameters used by ImageMagick to size the image appropriately.
11
+ * Also generates a LQIP using query parameters, to display while the full image loads.
12
+ */
13
+ export function useConstructImage({ gravity, crop, src, sizes, aspect, critical, quality, modifiedDate, breakpoints, baseUrl, focalPointX, focalPointY }) {
14
+ // Warn if gravity was provided but crop was not
15
+ useWarningInDev(gravity && !crop, 'You have provided a gravity without setting crop to true. Your image will not be cropped, and the `gravity` prop will do nothing. Please remove the `gravity` prop.');
16
+ // Warn if the src is a falsy value
17
+ useWarningInDev(!!!src, 'You have provided a falsy value to the Image component. If you intentionally want to display a blank Image component, you may import `transparentDataImg` and use it for the src. Otherwise, this is probably a bug.');
18
+ /*
19
+ For backwards-compatibility (and dev convenience) reasons, we accept a
20
+ falsy `src` prop on Image. undefined | null will act just like the normal
21
+ Image component does, except that it will show a transparent image where
22
+ the image would normally load. This may be useful in cases where the end
23
+ user is lazy and wants to do this:
24
+
25
+ const { imageSrc } = someDataRequest();
26
+ <Image src={imageSrc} />
27
+
28
+ Where imageSrc may be undefined | null while the request is occurring. The
29
+ preferred method is to be more explicit:
30
+
31
+ const {imageSrc, loading} = someDataRequest();
32
+ <Image src={loading ? transparentDataImg : imageSrc } />
33
+
34
+ Therefore, whilst we will handle a null | undefined src, we will warn
35
+ against its usage in dev.
36
+ */
37
+ let hasFalsySrc = true;
38
+ let imageSrc = '';
39
+ if (Array.isArray(src)) {
40
+ // maintain support for deprecated image sizes array
41
+ hasFalsySrc = false;
42
+ imageSrc = getFullUrl(getLargestSize(src), baseUrl);
43
+ }
44
+ // When we have a string for the src
45
+ if (!!src && typeof src === 'string') {
46
+ hasFalsySrc = false;
47
+ imageSrc = getFullUrl(src, baseUrl);
48
+ }
49
+ if (!!src && typeof src === 'object' && src.value) {
50
+ hasFalsySrc = false;
51
+ imageSrc = getFullUrl(src.value, baseUrl);
52
+ }
53
+ // useMemo so this runs only if the image props change. It calculates the
54
+ // strings used for `sizes`, `srcset`, and the `lqip`
55
+ const { sizesMap, sizesMapMobile, srcset, lqip, webpSrcset, srcsetMobile, webpSrcsetMobile } = React.useMemo(() => {
56
+ if (hasFalsySrc) {
57
+ return {};
58
+ }
59
+ const widths = getImageWidths(breakpoints, sizes);
60
+ const mobileWidths = getImageWidths(breakpoints, sizes, true);
61
+ const srcSetFromWidths = ({ webp }) => getSrcSetFromWidths(imageSrc, widths, aspect, {
62
+ crop,
63
+ gravity,
64
+ quality,
65
+ webp,
66
+ focalPointX,
67
+ focalPointY
68
+ }, modifiedDate);
69
+ const mobileSrcSetFromWidths = ({ webp }) => getSrcSetFromWidths(imageSrc, mobileWidths, aspect, {
70
+ crop,
71
+ gravity,
72
+ quality,
73
+ webp,
74
+ focalPointX,
75
+ focalPointY
76
+ }, modifiedDate);
77
+ const srcset = srcSetFromWidths({ webp: false });
78
+ const webpSrcset = srcSetFromWidths({ webp: true });
79
+ const srcsetMobile = mobileSrcSetFromWidths({ webp: false });
80
+ const webpSrcsetMobile = mobileSrcSetFromWidths({ webp: true });
81
+ // If this is a critical image, don't calculate LQIP
82
+ const lqip = critical
83
+ ? null
84
+ : getLQIP(imageSrc, widths, aspect, crop, modifiedDate);
85
+ const sizesMap = getSizesMap(breakpoints, sizes);
86
+ const sizesMapMobile = getSizesMap(breakpoints, sizes, true);
87
+ return {
88
+ sizesMap,
89
+ sizesMapMobile,
90
+ srcset,
91
+ lqip,
92
+ webpSrcset,
93
+ srcsetMobile,
94
+ webpSrcsetMobile
95
+ };
96
+ }, [
97
+ aspect,
98
+ breakpoints,
99
+ crop,
100
+ gravity,
101
+ hasFalsySrc,
102
+ imageSrc,
103
+ quality,
104
+ sizes,
105
+ critical,
106
+ modifiedDate,
107
+ focalPointX,
108
+ focalPointY
109
+ ]);
110
+ return {
111
+ srcset,
112
+ webpSrcset,
113
+ sizes: sizesMap,
114
+ sizesMobile: sizesMapMobile,
115
+ lqip,
116
+ src: imageSrc,
117
+ hasFalsySrc,
118
+ srcsetMobile,
119
+ webpSrcsetMobile
120
+ };
121
+ }
122
+ //# sourceMappingURL=useConstructImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useConstructImage.js","sourceRoot":"","sources":["useConstructImage.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,MAAM,OAAO,CAAC;AAsC1B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAChC,OAAO,EACP,IAAI,EACJ,GAAG,EACH,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,WAAW,EACX,OAAO,EACP,WAAW,EACX,WAAW,EACK;IAChB,gDAAgD;IAChD,eAAe,CACb,OAAO,IAAI,CAAC,IAAI,EAChB,qKAAqK,CACtK,CAAC;IACF,mCAAmC;IACnC,eAAe,CACb,CAAC,CAAC,CAAC,GAAG,EACN,sNAAsN,CACvN,CAAC;IAEF;;;;;;;;;;;;;;;;;;MAkBE;IACF,IAAI,WAAW,GAAG,IAAI,CAAC;IACvB,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;QACtB,oDAAoD;QACpD,WAAW,GAAG,KAAK,CAAC;QACpB,QAAQ,GAAG,UAAU,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;KACrD;IACD,oCAAoC;IACpC,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QACpC,WAAW,GAAG,KAAK,CAAC;QACpB,QAAQ,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KACrC;IACD,IAAI,CAAC,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAK,GAAkB,CAAC,KAAK,EAAE;QACjE,WAAW,GAAG,KAAK,CAAC;QACpB,QAAQ,GAAG,UAAU,CAAE,GAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC3D;IACD,yEAAyE;IACzE,qDAAqD;IACrD,MAAM,EACJ,QAAQ,EACR,cAAc,EACd,MAAM,EACN,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,gBAAgB,EACjB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrB,IAAI,WAAW,EAAE;YACf,OAAO,EAAE,CAAC;SACX;QACD,MAAM,MAAM,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,cAAc,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAE9D,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAqB,EAAE,EAAE,CACvD,mBAAmB,CACjB,QAAQ,EACR,MAAM,EACN,MAAM,EACN;YACE,IAAI;YACJ,OAAO;YACP,OAAO;YACP,IAAI;YACJ,WAAW;YACX,WAAW;SACZ,EACD,YAAY,CACb,CAAC;QAEJ,MAAM,sBAAsB,GAAG,CAAC,EAAE,IAAI,EAAqB,EAAE,EAAE,CAC7D,mBAAmB,CACjB,QAAQ,EACR,YAAY,EACZ,MAAM,EACN;YACE,IAAI;YACJ,OAAO;YACP,OAAO;YACP,IAAI;YACJ,WAAW;YACX,WAAW;SACZ,EACD,YAAY,CACb,CAAC;QAEJ,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,sBAAsB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7D,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,oDAAoD;QACpD,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACjD,MAAM,cAAc,GAAG,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAI7D,OAAO;YACL,QAAQ;YACR,cAAc;YACd,MAAM;YACN,IAAI;YACJ,UAAU;YACV,YAAY;YACZ,gBAAgB;SACjB,CAAC;IACJ,CAAC,EAAE;QACD,MAAM;QACN,WAAW;QACX,IAAI;QACJ,OAAO;QACP,WAAW;QACX,QAAQ;QACR,OAAO;QACP,KAAK;QACL,QAAQ;QACR,YAAY;QACZ,WAAW;QACX,WAAW;KACZ,CAAC,CAAC;IACH,OAAO;QACL,MAAM;QACN,UAAU;QACV,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,cAAc;QAC3B,IAAI;QACJ,GAAG,EAAE,QAAQ;QACb,WAAW;QACX,YAAY;QACZ,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { AspectRatio } from '../Image';
2
+ export declare const aspectRatioToFraction: (aspect: AspectRatio) => number;
@@ -0,0 +1,11 @@
1
+ export const aspectRatioToFraction = (aspect) => {
2
+ if (typeof aspect === 'string' && aspect.indexOf(':') > 0) {
3
+ const [a, b] = aspect.split(':');
4
+ return b / a;
5
+ }
6
+ else if (typeof aspect === 'number') {
7
+ return aspect;
8
+ }
9
+ throw new TypeError('Aspect ratio is not a Number or String with the format n:m');
10
+ };
11
+ //# sourceMappingURL=aspectRatioToFraction.js.map