@magento/venia-ui 9.3.0-beta.1 → 9.4.0-beta.1

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 (296) hide show
  1. package/i18n/en_US.json +1 -1
  2. package/lib/RootComponents/CMS/cms.module.css +1 -1
  3. package/lib/RootComponents/Category/NoProductsFound/noProductsFound.module.css +18 -19
  4. package/lib/RootComponents/Category/category.module.css +50 -70
  5. package/lib/components/Accordion/accordion.module.css +4 -2
  6. package/lib/components/Accordion/section.module.css +24 -16
  7. package/lib/components/AccountChip/accountChip.module.css +5 -5
  8. package/lib/components/AccountInformationPage/accountInformationPage.module.css +22 -35
  9. package/lib/components/AccountInformationPage/editForm.module.css +13 -12
  10. package/lib/components/AccountInformationPage/editModal.module.css +1 -1
  11. package/lib/components/AccountMenu/accountMenu.module.css +34 -31
  12. package/lib/components/AccountMenu/accountMenuItems.module.css +20 -15
  13. package/lib/components/AddToCartDialog/addToCartDialog.module.css +27 -25
  14. package/lib/components/AddressBookPage/addEditDialog.module.css +10 -14
  15. package/lib/components/AddressBookPage/addressBookPage.module.css +30 -41
  16. package/lib/components/AddressBookPage/addressCard.module.css +61 -59
  17. package/lib/components/AuthBar/authBar.module.css +13 -12
  18. package/lib/components/AuthModal/authModal.module.css +5 -3
  19. package/lib/components/Breadcrumbs/breadcrumbs.module.css +12 -19
  20. package/lib/components/Button/button.module.css +95 -59
  21. package/lib/components/ButtonGroup/button.module.css +30 -28
  22. package/lib/components/ButtonGroup/buttonGroup.module.css +4 -4
  23. package/lib/components/CartPage/GiftCards/giftCard.module.css +3 -3
  24. package/lib/components/CartPage/GiftCards/giftCards.module.css +44 -41
  25. package/lib/components/CartPage/PriceAdjustments/CouponCode/couponCode.module.css +26 -18
  26. package/lib/components/CartPage/PriceAdjustments/ShippingMethods/__tests__/__snapshots__/shippingRadios.spec.js.snap +4 -0
  27. package/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingForm.module.css +7 -6
  28. package/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingMethods.module.css +9 -18
  29. package/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingRadio.module.css +1 -1
  30. package/lib/components/CartPage/PriceAdjustments/ShippingMethods/shippingRadios.module.css +5 -18
  31. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftCardSection.ee.spec.js.snap +1 -1
  32. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftOptionsSection.ce.spec.js.snap +1 -1
  33. package/lib/components/CartPage/PriceAdjustments/__tests__/__snapshots__/giftOptionsSection.ee.spec.js.snap +3 -3
  34. package/lib/components/CartPage/PriceAdjustments/__tests__/giftCardSection.ce.spec.js +1 -1
  35. package/lib/components/CartPage/PriceAdjustments/__tests__/giftCardSection.ee.spec.js +1 -1
  36. package/lib/components/CartPage/PriceAdjustments/__tests__/giftOptionsSection.ce.spec.js +1 -1
  37. package/lib/components/CartPage/PriceAdjustments/__tests__/giftOptionsSection.ee.spec.js +1 -1
  38. package/lib/components/CartPage/PriceAdjustments/giftCardSection.ce.js +2 -2
  39. package/lib/components/CartPage/PriceAdjustments/giftOptionsSection.ce.js +2 -2
  40. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftCardSummary.ce.spec.js.snap +1 -1
  41. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftCardSummary.ee.spec.js.snap +4 -4
  42. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftOptionsSummary.ce.spec.js.snap +1 -1
  43. package/lib/components/CartPage/PriceSummary/__tests__/__snapshots__/giftOptionsSummary.ee.spec.js.snap +4 -4
  44. package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.ce.spec.js +1 -1
  45. package/lib/components/CartPage/PriceSummary/__tests__/giftCardSummary.ee.spec.js +1 -1
  46. package/lib/components/CartPage/PriceSummary/__tests__/giftOptionsSummary.ce.spec.js +1 -1
  47. package/lib/components/CartPage/PriceSummary/__tests__/giftOptionsSummary.ee.spec.js +1 -1
  48. package/lib/components/CartPage/PriceSummary/giftOptionsSummary.ce.js +2 -2
  49. package/lib/components/CartPage/PriceSummary/priceSummary.module.css +16 -16
  50. package/lib/components/CartPage/ProductListing/EditModal/productDetail.module.css +16 -13
  51. package/lib/components/CartPage/ProductListing/EditModal/productForm.js +2 -2
  52. package/lib/components/CartPage/ProductListing/EditModal/productForm.module.css +28 -22
  53. package/lib/components/CartPage/ProductListing/__tests__/__snapshots__/product.spec.js.snap +4 -0
  54. package/lib/components/CartPage/ProductListing/__tests__/quantity.spec.js +3 -3
  55. package/lib/components/CartPage/ProductListing/errorMessage.module.css +11 -7
  56. package/lib/components/CartPage/ProductListing/product.module.css +67 -59
  57. package/lib/components/CartPage/ProductListing/productListing.module.css +6 -5
  58. package/lib/components/CartPage/ProductListing/quantity.js +8 -92
  59. package/lib/components/CartPage/cartPage.module.css +18 -22
  60. package/lib/components/CategoryList/categoryList.module.css +8 -7
  61. package/lib/components/CategoryList/categoryTile.module.css +14 -11
  62. package/lib/components/CategoryTree/categoryLeaf.module.css +19 -16
  63. package/lib/components/CategoryTree/categoryTree.module.css +2 -2
  64. package/lib/components/Checkbox/checkbox.module.css +33 -30
  65. package/lib/components/Checkout/Receipt/receipt.module.css +28 -23
  66. package/lib/components/Checkout/addressForm.module.css +20 -20
  67. package/lib/components/Checkout/braintreeDropin.module.css +1 -1
  68. package/lib/components/Checkout/checkoutButton.module.css +2 -1
  69. package/lib/components/Checkout/flow.module.css +34 -30
  70. package/lib/components/Checkout/form.module.css +13 -9
  71. package/lib/components/Checkout/label.module.css +6 -6
  72. package/lib/components/Checkout/paymentsForm.module.css +23 -21
  73. package/lib/components/Checkout/section.module.css +30 -31
  74. package/lib/components/Checkout/shippingForm.module.css +1 -1
  75. package/lib/components/CheckoutPage/AddressBook/addressBook.module.css +52 -61
  76. package/lib/components/CheckoutPage/AddressBook/addressCard.module.css +43 -47
  77. package/lib/components/CheckoutPage/BillingAddress/billingAddress.module.css +14 -28
  78. package/lib/components/CheckoutPage/GuestSignIn/guestSignIn.module.css +28 -26
  79. package/lib/components/CheckoutPage/ItemsReview/item.js +1 -1
  80. package/lib/components/CheckoutPage/ItemsReview/item.module.css +29 -18
  81. package/lib/components/CheckoutPage/ItemsReview/itemsReview.module.css +8 -5
  82. package/lib/components/CheckoutPage/ItemsReview/showAllButton.module.css +15 -11
  83. package/lib/components/CheckoutPage/OrderConfirmationPage/createAccount.module.css +12 -26
  84. package/lib/components/CheckoutPage/OrderConfirmationPage/orderConfirmationPage.module.css +29 -37
  85. package/lib/components/CheckoutPage/OrderSummary/orderSummary.module.css +12 -17
  86. package/lib/components/CheckoutPage/PaymentInformation/braintreeDropin.module.css +5 -2
  87. package/lib/components/CheckoutPage/PaymentInformation/braintreeSummary.module.css +30 -50
  88. package/lib/components/CheckoutPage/PaymentInformation/creditCard.module.css +20 -34
  89. package/lib/components/CheckoutPage/PaymentInformation/editCard.module.css +3 -2
  90. package/lib/components/CheckoutPage/PaymentInformation/paymentInformation.module.css +12 -13
  91. package/lib/components/CheckoutPage/PaymentInformation/paymentMethods.module.css +17 -14
  92. package/lib/components/CheckoutPage/PaymentInformation/summary.module.css +9 -9
  93. package/lib/components/CheckoutPage/ShippingInformation/AddressForm/customerForm.module.css +15 -13
  94. package/lib/components/CheckoutPage/ShippingInformation/AddressForm/guestForm.module.css +14 -12
  95. package/lib/components/CheckoutPage/ShippingInformation/card.module.css +7 -7
  96. package/lib/components/CheckoutPage/ShippingInformation/editModal.module.css +66 -49
  97. package/lib/components/CheckoutPage/ShippingInformation/shippingInformation.module.css +37 -26
  98. package/lib/components/CheckoutPage/ShippingMethod/__tests__/__snapshots__/shippingMethod.spec.js.snap +2 -0
  99. package/lib/components/CheckoutPage/ShippingMethod/__tests__/__snapshots__/updateModal.spec.js.snap +2 -0
  100. package/lib/components/CheckoutPage/ShippingMethod/completedView.module.css +23 -26
  101. package/lib/components/CheckoutPage/ShippingMethod/shippingMethod.module.css +17 -15
  102. package/lib/components/CheckoutPage/ShippingMethod/shippingRadios.module.css +13 -24
  103. package/lib/components/CheckoutPage/ShippingMethod/updateModal.module.css +1 -1
  104. package/lib/components/CheckoutPage/checkoutPage.module.css +85 -79
  105. package/lib/components/CmsBlock/cmsBlock.module.css +3 -1
  106. package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/cmsDynamicBlock.ce.spec.js.snap +1 -1
  107. package/lib/components/CmsDynamicBlock/__tests__/__snapshots__/cmsDynamicBlock.ee.spec.js.snap +8 -8
  108. package/lib/components/CmsDynamicBlock/__tests__/cmsDynamicBlock.ce.spec.js +1 -1
  109. package/lib/components/CmsDynamicBlock/__tests__/cmsDynamicBlock.ee.spec.js +1 -1
  110. package/lib/components/CmsDynamicBlock/cmsDynamicBlock.ce.js +2 -2
  111. package/lib/components/CommunicationsPage/communicationsPage.module.css +14 -20
  112. package/lib/components/ContactPage/contactPage.module.css +1 -1
  113. package/lib/components/CreateAccount/createAccount.module.css +24 -27
  114. package/lib/components/CreateAccountPage/createAccountPage.module.css +13 -12
  115. package/lib/components/Dialog/__stories__/dialog.module.css +3 -2
  116. package/lib/components/Dialog/dialog.module.css +98 -99
  117. package/lib/components/ErrorMessage/errorMessage.module.css +4 -4
  118. package/lib/components/ErrorView/errorView.module.css +21 -24
  119. package/lib/components/Field/field.module.css +32 -35
  120. package/lib/components/Field/fieldIcons.module.css +18 -13
  121. package/lib/components/Field/message.module.css +11 -7
  122. package/lib/components/FilterModal/CurrentFilters/currentFilter.js +4 -2
  123. package/lib/components/FilterModal/CurrentFilters/currentFilter.module.css +14 -11
  124. package/lib/components/FilterModal/CurrentFilters/currentFilters.module.css +10 -5
  125. package/lib/components/FilterModal/FilterList/__tests__/filterItemRadio.spec.js +134 -0
  126. package/lib/components/FilterModal/FilterList/filterItemRadio.js +76 -0
  127. package/lib/components/FilterModal/FilterList/filterItemRadio.module.css +0 -0
  128. package/lib/components/FilterModal/FilterList/filterItemRadioGroup.js +86 -0
  129. package/lib/components/FilterModal/FilterList/filterList.js +65 -41
  130. package/lib/components/FilterModal/FilterList/filterList.module.css +8 -10
  131. package/lib/components/FilterModal/__tests__/filterModal.spec.js +58 -3
  132. package/lib/components/FilterModal/filterBlock.js +4 -0
  133. package/lib/components/FilterModal/filterBlock.module.css +15 -12
  134. package/lib/components/FilterModal/filterFooter.module.css +8 -8
  135. package/lib/components/FilterModal/filterModal.js +4 -2
  136. package/lib/components/FilterModal/filterModal.module.css +49 -28
  137. package/lib/components/FilterModal/filterSearch.module.css +1 -1
  138. package/lib/components/FilterModalOpenButton/filterModalOpenButton.module.css +3 -6
  139. package/lib/components/FilterSidebar/__tests__/filterSidebar.spec.js +9 -2
  140. package/lib/components/FilterSidebar/filterSidebar.js +4 -1
  141. package/lib/components/FilterSidebar/filterSidebar.module.css +33 -25
  142. package/lib/components/Footer/footer.module.css +89 -109
  143. package/lib/components/ForgotPassword/ForgotPasswordForm/forgotPasswordForm.module.css +11 -11
  144. package/lib/components/ForgotPassword/FormSubmissionSuccessful/formSubmissionSuccessful.module.css +7 -7
  145. package/lib/components/ForgotPassword/forgotPassword.module.css +9 -8
  146. package/lib/components/ForgotPasswordPage/forgotPasswordPage.module.css +13 -12
  147. package/lib/components/Gallery/__tests__/__snapshots__/gallery.spec.js.snap +2 -2
  148. package/lib/components/Gallery/__tests__/__snapshots__/item.spec.js.snap +1 -1
  149. package/lib/components/Gallery/__tests__/gallery.spec.js +2 -2
  150. package/lib/components/Gallery/__tests__/item.spec.js +1 -1
  151. package/lib/components/Gallery/addToCartButton.module.css +15 -25
  152. package/lib/components/Gallery/gallery.module.css +7 -7
  153. package/lib/components/Gallery/item.js +12 -5
  154. package/lib/components/Gallery/item.module.css +31 -27
  155. package/lib/components/Header/accountTrigger.module.css +9 -14
  156. package/lib/components/Header/cartTrigger.module.css +30 -37
  157. package/lib/components/Header/currencySwitcher.module.css +67 -50
  158. package/lib/components/Header/header.js +5 -1
  159. package/lib/components/Header/header.module.css +26 -36
  160. package/lib/components/Header/navTrigger.module.css +4 -7
  161. package/lib/components/Header/onlineIndicator.module.css +11 -9
  162. package/lib/components/Header/searchTrigger.module.css +8 -13
  163. package/lib/components/Header/storeSwitcher.module.css +61 -52
  164. package/lib/components/Header/switcherItem.module.css +12 -11
  165. package/lib/components/HomePage/homePage.module.css +9 -8
  166. package/lib/components/Icon/icon.module.css +9 -8
  167. package/lib/components/Image/__stories__/image.module.css +4 -4
  168. package/lib/components/Image/image.module.css +16 -9
  169. package/lib/components/LegacyMiniCart/body.module.css +2 -2
  170. package/lib/components/LegacyMiniCart/cartOptions.module.css +29 -23
  171. package/lib/components/LegacyMiniCart/emptyMiniCartBody.module.css +9 -9
  172. package/lib/components/LegacyMiniCart/footer.module.css +10 -6
  173. package/lib/components/LegacyMiniCart/header.module.css +20 -19
  174. package/lib/components/LegacyMiniCart/kebab.module.css +19 -28
  175. package/lib/components/LegacyMiniCart/mask.module.css +2 -1
  176. package/lib/components/LegacyMiniCart/miniCart.js +3 -0
  177. package/lib/components/LegacyMiniCart/miniCart.module.css +22 -15
  178. package/lib/components/LegacyMiniCart/product.module.css +36 -32
  179. package/lib/components/LegacyMiniCart/productList.module.css +6 -4
  180. package/lib/components/LegacyMiniCart/productOptions.module.css +9 -9
  181. package/lib/components/LegacyMiniCart/section.js +2 -0
  182. package/lib/components/LegacyMiniCart/section.module.css +28 -16
  183. package/lib/components/LegacyMiniCart/totalsSummary.module.css +11 -10
  184. package/lib/components/LinkButton/linkButton.module.css +8 -9
  185. package/lib/components/LoadingIndicator/indicator.module.css +20 -18
  186. package/lib/components/LoadingIndicator/spinner.module.css +1 -10
  187. package/lib/components/Main/main.module.css +7 -6
  188. package/lib/components/Mask/mask.module.css +19 -14
  189. package/lib/components/MegaMenu/__tests__/__snapshots__/MegaMenu.spec.js.snap +1 -1
  190. package/lib/components/MegaMenu/__tests__/__snapshots__/Submenu.spec.js.snap +1 -1
  191. package/lib/components/MegaMenu/megaMenuItem.module.css +9 -7
  192. package/lib/components/MegaMenu/submenu.js +1 -1
  193. package/lib/components/MegaMenu/submenu.module.css +22 -16
  194. package/lib/components/MegaMenu/submenuColumn.module.css +11 -9
  195. package/lib/components/MiniCart/ProductList/item.module.css +16 -13
  196. package/lib/components/MiniCart/ProductList/productList.module.css +2 -2
  197. package/lib/components/MiniCart/miniCart.module.css +81 -67
  198. package/lib/components/MyAccount/ResetPassword/resetPassword.module.css +25 -26
  199. package/lib/components/MyAccount/accountLink.module.css +17 -15
  200. package/lib/components/MyAccount/myAccount.module.css +3 -3
  201. package/lib/components/Navigation/navHeader.module.css +7 -6
  202. package/lib/components/Navigation/navigation.module.css +82 -68
  203. package/lib/components/Newsletter/newsletter.module.css +59 -64
  204. package/lib/components/OrderHistoryPage/OrderDetails/billingInformation.module.css +4 -4
  205. package/lib/components/OrderHistoryPage/OrderDetails/item.module.css +21 -25
  206. package/lib/components/OrderHistoryPage/OrderDetails/items.module.css +8 -12
  207. package/lib/components/OrderHistoryPage/OrderDetails/orderDetails.module.css +20 -26
  208. package/lib/components/OrderHistoryPage/OrderDetails/orderTotal.module.css +30 -31
  209. package/lib/components/OrderHistoryPage/OrderDetails/paymentMethod.module.css +4 -4
  210. package/lib/components/OrderHistoryPage/OrderDetails/shippingInformation.module.css +4 -4
  211. package/lib/components/OrderHistoryPage/OrderDetails/shippingMethod.module.css +7 -6
  212. package/lib/components/OrderHistoryPage/collapsedImageGallery.module.css +10 -9
  213. package/lib/components/OrderHistoryPage/orderHistoryPage.module.css +37 -41
  214. package/lib/components/OrderHistoryPage/orderProgressBar.module.css +5 -5
  215. package/lib/components/OrderHistoryPage/orderRow.module.css +113 -78
  216. package/lib/components/PageLoadingIndicator/pageLoadingIndicator.module.css +18 -17
  217. package/lib/components/Pagination/pagination.module.css +11 -8
  218. package/lib/components/Pagination/tile.module.css +11 -8
  219. package/lib/components/Password/password.module.css +13 -11
  220. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/Multiselect/__tests__/__snapshots__/multiSelect.spec.js.snap +10 -0
  221. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/Multiselect/multiselect.js +7 -2
  222. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/Multiselect/multiselect.module.css +11 -2
  223. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/Select/select.module.css +1 -1
  224. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/Text/text.module.css +1 -1
  225. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/Textarea/textarea.js +10 -4
  226. package/lib/components/ProductFullDetail/CustomAttributes/AttributeType/attributeType.js +6 -0
  227. package/lib/components/ProductFullDetail/CustomAttributes/__tests__/__snapshots__/customAttributes.spec.js.snap +0 -3
  228. package/lib/components/ProductFullDetail/CustomAttributes/customAttributes.js +6 -10
  229. package/lib/components/ProductFullDetail/CustomAttributes/customAttributes.module.css +0 -5
  230. package/lib/components/ProductFullDetail/__tests__/__snapshots__/productFullDetail.spec.js.snap +403 -208
  231. package/lib/components/ProductFullDetail/__tests__/productFullDetail.spec.js +1 -3
  232. package/lib/components/ProductFullDetail/productFullDetail.js +80 -14
  233. package/lib/components/ProductFullDetail/productFullDetail.module.css +90 -79
  234. package/lib/components/ProductImageCarousel/carousel.module.css +50 -52
  235. package/lib/components/ProductImageCarousel/thumbnail.module.css +25 -22
  236. package/lib/components/ProductOptions/option.module.css +17 -13
  237. package/lib/components/ProductOptions/swatch.module.css +10 -4
  238. package/lib/components/ProductOptions/tile.module.css +14 -7
  239. package/lib/components/ProductOptions/tileList.module.css +3 -3
  240. package/lib/components/ProductQuantity/quantity.js +3 -0
  241. package/lib/components/ProductQuantity/quantity.module.css +2 -2
  242. package/lib/components/ProductSort/productSort.module.css +44 -45
  243. package/lib/components/ProductSort/productSort.shimmer.module.css +1 -5
  244. package/lib/components/ProductSort/sortItem.module.css +14 -13
  245. package/lib/components/QuantityStepper/index.js +1 -0
  246. package/lib/components/QuantityStepper/quantityStepper.js +94 -0
  247. package/lib/components/QuantityStepper/quantityStepper.module.css +80 -0
  248. package/lib/components/RadioGroup/__tests__/__snapshots__/radioGroup.spec.js.snap +16 -0
  249. package/lib/components/RadioGroup/radio.js +14 -2
  250. package/lib/components/RadioGroup/radio.module.css +41 -37
  251. package/lib/components/RadioGroup/radioGroup.module.css +10 -14
  252. package/lib/components/RichContent/plainHtmlRenderer.js +2 -1
  253. package/lib/components/RichContent/richContent.module.css +13 -1
  254. package/lib/components/RichText/richText.module.css +7 -3
  255. package/lib/components/SavedPaymentsPage/creditCard.module.css +49 -37
  256. package/lib/components/SavedPaymentsPage/savedPaymentsPage.module.css +35 -40
  257. package/lib/components/ScrollAnchor/scrollAnchor.module.css +4 -2
  258. package/lib/components/SearchBar/__tests__/suggestedProduct.spec.js +8 -0
  259. package/lib/components/SearchBar/autocomplete.js +8 -0
  260. package/lib/components/SearchBar/autocomplete.module.css +39 -37
  261. package/lib/components/SearchBar/searchBar.module.css +30 -22
  262. package/lib/components/SearchBar/suggestedCategories.module.css +7 -4
  263. package/lib/components/SearchBar/suggestedProduct.js +29 -5
  264. package/lib/components/SearchBar/suggestedProduct.module.css +12 -12
  265. package/lib/components/SearchBar/suggestedProducts.module.css +7 -4
  266. package/lib/components/SearchBar/suggestions.module.css +4 -4
  267. package/lib/components/SearchPage/searchPage.module.css +42 -49
  268. package/lib/components/Select/select.module.css +9 -8
  269. package/lib/components/Shimmer/shimmer.module.css +31 -17
  270. package/lib/components/SignIn/signIn.module.css +40 -33
  271. package/lib/components/SignInPage/signInPage.module.css +13 -12
  272. package/lib/components/SortedByContainer/sortedByContainer.module.css +7 -11
  273. package/lib/components/StockStatusMessage/stockStatusMessage.module.css +10 -6
  274. package/lib/components/TextArea/textArea.module.css +16 -10
  275. package/lib/components/TextInput/textInput.module.css +11 -2
  276. package/lib/components/ToastContainer/toast.module.css +51 -42
  277. package/lib/components/ToastContainer/toastContainer.module.css +10 -22
  278. package/lib/components/Wishlist/AddToListButton/addToListButton.module.css +6 -5
  279. package/lib/components/Wishlist/WishlistDialog/CreateWishlistForm/createWishlistForm.module.css +4 -4
  280. package/lib/components/Wishlist/WishlistDialog/WishlistLineItem/wishlistLineItem.module.css +7 -6
  281. package/lib/components/Wishlist/WishlistDialog/wishlistDialog.module.css +14 -9
  282. package/lib/components/WishlistPage/actionMenu.js +2 -2
  283. package/lib/components/WishlistPage/createWishlist.module.css +31 -26
  284. package/lib/components/WishlistPage/wishlist.module.css +54 -49
  285. package/lib/components/WishlistPage/wishlistConfirmRemoveProductDialog.module.css +7 -7
  286. package/lib/components/WishlistPage/wishlistEditFavoritesListDialog.module.css +4 -4
  287. package/lib/components/WishlistPage/wishlistItem.module.css +36 -37
  288. package/lib/components/WishlistPage/wishlistItems.module.css +5 -7
  289. package/lib/components/WishlistPage/wishlistMoreActionsDialog.module.css +11 -9
  290. package/lib/components/WishlistPage/wishlistPage.module.css +24 -24
  291. package/lib/components/clickable.module.css +7 -7
  292. package/lib/index.module.css +40 -11
  293. package/lib/targets/__tests__/venia-ui-targets.spec.js +27 -2
  294. package/lib/tokens.module.css +62 -57
  295. package/package.json +5 -5
  296. package/lib/components/CartPage/ProductListing/quantity.module.css +0 -76
@@ -22,13 +22,11 @@ jest.mock(
22
22
  }
23
23
  );
24
24
 
25
+ jest.mock('../../QuantityStepper', () => () => 'QuantityStepper');
25
26
  jest.mock('../../Breadcrumbs', () => 'Breadcrumbs');
26
27
  jest.mock('../../FormError', () => 'FormError');
27
28
  jest.mock('../../ProductImageCarousel', () => 'ProductImageCarousel');
28
29
  jest.mock('../../ProductOptions', () => () => 'ProductOptions');
29
- jest.mock('../../CartPage/ProductListing/quantity', () => ({
30
- QuantityFields: () => 'QuantityFields'
31
- }));
32
30
  jest.mock('../../RichContent/richContent', () => 'RichContent');
33
31
  jest.mock('../CustomAttributes', () => 'CustomAttributes');
34
32
 
@@ -1,4 +1,4 @@
1
- import React, { Fragment, Suspense } from 'react';
1
+ import React, { useMemo, Fragment, Suspense } from 'react';
2
2
  import { FormattedMessage, useIntl } from 'react-intl';
3
3
  import { arrayOf, bool, number, shape, string } from 'prop-types';
4
4
  import { Form } from 'informed';
@@ -13,7 +13,7 @@ import Breadcrumbs from '../Breadcrumbs';
13
13
  import Button from '../Button';
14
14
  import Carousel from '../ProductImageCarousel';
15
15
  import FormError from '../FormError';
16
- import { QuantityFields } from '../CartPage/ProductListing/quantity';
16
+ import QuantityStepper from '../QuantityStepper';
17
17
  import RichContent from '../RichContent/richContent';
18
18
  import { ProductOptionsShimmer } from '../ProductOptions';
19
19
  import CustomAttributes from './CustomAttributes';
@@ -54,6 +54,7 @@ const ProductFullDetail = props => {
54
54
  customAttributes,
55
55
  wishlistButtonProps
56
56
  } = talonProps;
57
+
57
58
  const { formatMessage } = useIntl();
58
59
 
59
60
  const classes = useStyle(defaultClasses, props.classes);
@@ -128,6 +129,44 @@ const ProductFullDetail = props => {
128
129
  }
129
130
  }
130
131
 
132
+ const customAttributesDetails = useMemo(() => {
133
+ const list = [];
134
+ const pagebuilder = [];
135
+ const skuAttribute = {
136
+ attribute_metadata: {
137
+ uid: 'attribute_sku',
138
+ used_in_components: ['PRODUCT_DETAILS_PAGE'],
139
+ ui_input: {
140
+ ui_input_type: 'TEXT'
141
+ },
142
+ label: formatMessage({
143
+ id: 'global.sku',
144
+ defaultMessage: 'SKU'
145
+ })
146
+ },
147
+ entered_attribute_value: {
148
+ value: productDetails.sku
149
+ }
150
+ };
151
+ if (Array.isArray(customAttributes)) {
152
+ customAttributes.forEach(customAttribute => {
153
+ if (
154
+ customAttribute.attribute_metadata.ui_input
155
+ .ui_input_type === 'PAGEBUILDER'
156
+ ) {
157
+ pagebuilder.push(customAttribute);
158
+ } else {
159
+ list.push(customAttribute);
160
+ }
161
+ });
162
+ }
163
+ list.unshift(skuAttribute);
164
+ return {
165
+ list: list,
166
+ pagebuilder: pagebuilder
167
+ };
168
+ }, [customAttributes, productDetails.sku, formatMessage]);
169
+
131
170
  const cartCallToActionText = !isOutOfStock ? (
132
171
  <FormattedMessage
133
172
  id="productFullDetail.addItemToCart"
@@ -163,6 +202,20 @@ const ProductFullDetail = props => {
163
202
  </div>
164
203
  );
165
204
 
205
+ const shortDescription = productDetails.shortDescription ? (
206
+ <RichContent html={productDetails.shortDescription.html} />
207
+ ) : null;
208
+
209
+ const pageBuilderAttributes = customAttributesDetails.pagebuilder.length ? (
210
+ <section className={classes.detailsPageBuilder}>
211
+ <CustomAttributes
212
+ classes={{ list: classes.detailsPageBuilderList }}
213
+ customAttributes={customAttributesDetails.pagebuilder}
214
+ showLabels={false}
215
+ />
216
+ </section>
217
+ ) : null;
218
+
166
219
  return (
167
220
  <Fragment>
168
221
  {breadcrumbs}
@@ -171,6 +224,9 @@ const ProductFullDetail = props => {
171
224
  data-cy="ProductFullDetail-root"
172
225
  onSubmit={handleAddToCart}
173
226
  >
227
+ <section className={classes.imageCarousel}>
228
+ <Carousel images={mediaGalleryEntries} />
229
+ </section>
174
230
  <section className={classes.title}>
175
231
  <h1
176
232
  className={classes.productName}
@@ -187,9 +243,7 @@ const ProductFullDetail = props => {
187
243
  value={productDetails.price.value}
188
244
  />
189
245
  </p>
190
- </section>
191
- <section className={classes.imageCarousel}>
192
- <Carousel images={mediaGalleryEntries} />
246
+ {shortDescription}
193
247
  </section>
194
248
  <FormError
195
249
  classes={{
@@ -208,7 +262,7 @@ const ProductFullDetail = props => {
208
262
  defaultMessage={'Quantity'}
209
263
  />
210
264
  </span>
211
- <QuantityFields
265
+ <QuantityStepper
212
266
  classes={{ root: classes.quantityRoot }}
213
267
  min={1}
214
268
  message={errors.get('quantity')}
@@ -226,22 +280,27 @@ const ProductFullDetail = props => {
226
280
  className={classes.descriptionTitle}
227
281
  >
228
282
  <FormattedMessage
229
- id={'productFullDetail.productDescription'}
230
- defaultMessage={'Product Description'}
283
+ id={'productFullDetail.description'}
284
+ defaultMessage={'Description'}
231
285
  />
232
286
  </span>
233
287
  <RichContent html={productDetails.description} />
234
288
  </section>
235
289
  <section className={classes.details}>
236
- <span className={classes.detailsTitle}>
290
+ <span
291
+ data-cy="ProductFullDetail-detailsTitle"
292
+ className={classes.detailsTitle}
293
+ >
237
294
  <FormattedMessage
238
- id={'global.sku'}
239
- defaultMessage={'SKU'}
295
+ id={'productFullDetail.details'}
296
+ defaultMessage={'Details'}
240
297
  />
241
298
  </span>
242
- <strong>{productDetails.sku}</strong>
243
- <CustomAttributes customAttributes={customAttributes} />
299
+ <CustomAttributes
300
+ customAttributes={customAttributesDetails.list}
301
+ />
244
302
  </section>
303
+ {pageBuilderAttributes}
245
304
  </Form>
246
305
  </Fragment>
247
306
  );
@@ -253,6 +312,8 @@ ProductFullDetail.propTypes = {
253
312
  description: string,
254
313
  descriptionTitle: string,
255
314
  details: string,
315
+ detailsPageBuilder: string,
316
+ detailsPageBuilderList: string,
256
317
  detailsTitle: string,
257
318
  imageCarousel: string,
258
319
  options: string,
@@ -260,6 +321,7 @@ ProductFullDetail.propTypes = {
260
321
  productPrice: string,
261
322
  quantity: string,
262
323
  quantityTitle: string,
324
+ quantityRoot: string,
263
325
  root: string,
264
326
  title: string,
265
327
  unavailableContainer: string
@@ -286,7 +348,11 @@ ProductFullDetail.propTypes = {
286
348
  file: string.isRequired
287
349
  })
288
350
  ),
289
- description: string
351
+ description: string,
352
+ short_description: shape({
353
+ html: string,
354
+ __typename: string
355
+ })
290
356
  }).isRequired
291
357
  };
292
358
 
@@ -1,12 +1,16 @@
1
1
  .root {
2
- padding: 1rem 0;
2
+ composes: px-0 from global;
3
+ composes: py-xs from global;
4
+
5
+ composes: lg_grid from global;
6
+ composes: lg_grid-flow-row from global;
7
+ composes: lg_items-start from global;
8
+ composes: lg_px-xs from global;
9
+ composes: lg_py-md from global;
3
10
  }
4
11
 
5
- @media (min-width: 1024px) {
12
+ @media (min-width: 960px) {
6
13
  .root {
7
- align-items: start;
8
- display: grid;
9
- grid-auto-flow: row;
10
14
  grid-template-areas:
11
15
  'images title'
12
16
  'images errors'
@@ -14,75 +18,72 @@
14
18
  'images quantity'
15
19
  'images cart'
16
20
  'images .';
17
- grid-template-columns: 1.5625fr 1fr;
21
+ grid-template-columns: minmax(0, 1.5625fr) minmax(0, 1fr);
18
22
  grid-template-rows: repeat(5, min-content) 1fr [fold];
19
- padding: 2.5rem 1rem;
23
+ }
24
+
25
+ .title {
26
+ grid-template-columns: 1fr max-content;
20
27
  }
21
28
  }
22
29
 
23
30
  .section {
24
- border-color: rgb(var(--venia-global-color-border));
25
- border-style: solid;
26
- border-width: 0 0 1px;
27
- margin: 0 1.5rem;
28
- padding: 1.5rem 0;
31
+ composes: border-solid from global;
32
+ composes: border-subtle from global;
33
+ composes: border-t-0 from global;
34
+ composes: border-r-0 from global;
35
+ composes: border-b from global;
36
+ composes: border-l-0 from global;
37
+ composes: my-0 from global;
38
+ composes: mx-sm from global;
39
+ composes: px-0 from global;
40
+ composes: py-xs from global;
29
41
  }
30
42
 
31
43
  .sectionTitle {
32
- align-items: center;
33
- display: flex;
34
- font-size: 1rem;
35
- font-weight: 600;
36
- line-height: 1.5;
37
- margin-bottom: 1.5rem;
44
+ composes: flex from global;
45
+ composes: font-semibold from global;
46
+ composes: items-center from global;
47
+ composes: leading-normal from global;
48
+ composes: mb-sm from global;
49
+ composes: text-colorDefault from global;
38
50
  }
39
51
 
40
52
  .title {
41
- align-items: center;
42
- display: grid;
53
+ composes: section;
54
+ composes: gap-2 from global;
55
+ composes: grid from global;
56
+ composes: items-center from global;
57
+ composes: leading-normal from global;
58
+ composes: px-sm from global;
59
+ composes: py-xs from global;
43
60
  grid-area: title;
44
- grid-gap: 1rem;
45
- grid-template-columns: 1fr max-content;
46
- line-height: 1.5;
47
- padding: 1rem 1.5rem;
48
- }
49
-
50
- @media (min-width: 1024px) {
51
- .title {
52
- padding: 1.5rem;
53
- }
54
61
  }
55
62
 
56
63
  .productName {
57
- font-size: 1rem;
58
- font-weight: 600;
59
- }
64
+ composes: font-semibold from global;
65
+ composes: text-colorDefault from global;
60
66
 
61
- @media (min-width: 1024px) {
62
- .productName {
63
- font-size: 1.3125rem;
64
- font-weight: 400;
65
- }
67
+ composes: lg_font-normal from global;
68
+ composes: lg_text-xl from global;
66
69
  }
67
70
 
68
71
  .productPrice {
69
- display: block;
72
+ composes: block from global;
73
+ composes: mb-2 from global;
70
74
  }
71
75
 
72
76
  .imageCarousel {
73
77
  grid-area: images;
74
78
  grid-column: 1 / 2;
75
79
  grid-row: 1 / fold;
76
- margin: 0 auto;
77
- max-width: 640px;
78
- }
80
+ composes: max-w-[640px] from global;
81
+ composes: mx-auto from global;
82
+ composes: my-0 from global;
79
83
 
80
- @media (min-width: 1024px) {
81
- .imageCarousel {
82
- margin: 0;
83
- max-width: 800px;
84
- padding: 1.5rem 0;
85
- }
84
+ composes: lg_m-0 from global;
85
+ composes: lg_px-0 from global;
86
+ composes: lg_py-sm from global;
86
87
  }
87
88
 
88
89
  .options {
@@ -104,34 +105,26 @@
104
105
  }
105
106
 
106
107
  .actions {
108
+ composes: gap-y-sm from global;
109
+ composes: grid from global;
110
+ composes: items-center from global;
111
+ composes: justify-items-center from global;
107
112
  composes: section;
108
- align-items: center;
109
- display: grid;
110
113
  grid-area: cart;
111
- row-gap: 1.5rem;
112
- justify-items: center;
113
- }
114
114
 
115
- @media (min-width: 1024px) {
116
- .actions {
117
- border-bottom-width: 0;
118
- }
115
+ composes: lg_border-b-0 from global;
119
116
  }
120
117
 
121
118
  .description {
122
119
  composes: section;
123
120
  grid-column: 1 / span 1;
124
121
  grid-row: fold / span 1;
125
- }
126
122
 
127
- @media (min-width: 1024px) {
128
- .description {
129
- align-self: stretch;
130
- border-top-width: 1px;
131
- margin: 0;
132
- padding-left: 1.5rem;
133
- padding-right: 1.5rem;
134
- }
123
+ composes: lg_border-t from global;
124
+ composes: lg_m-0 from global;
125
+ composes: lg_pl-sm from global;
126
+ composes: lg_pr-sm from global;
127
+ composes: lg_self-stretch from global;
135
128
  }
136
129
 
137
130
  .descriptionTitle {
@@ -142,6 +135,24 @@
142
135
  composes: section;
143
136
  grid-column: 2 / span 1;
144
137
  grid-row: fold / span 1;
138
+
139
+ composes: lg_border-t from global;
140
+ composes: lg_m-0 from global;
141
+ composes: lg_pl-sm from global;
142
+ composes: lg_pr-sm from global;
143
+ composes: lg_self-stretch from global;
144
+ }
145
+
146
+ .detailsPageBuilder {
147
+ composes: my-0 from global;
148
+ composes: mx-sm from global;
149
+ composes: px-0 from global;
150
+ composes: py-sm from global;
151
+ grid-column: 1 / span 2;
152
+ }
153
+
154
+ .detailsPageBuilderList {
155
+ list-style: none;
145
156
  }
146
157
 
147
158
  @media (min-width: 1024px) {
@@ -159,8 +170,8 @@
159
170
  }
160
171
 
161
172
  .related {
173
+ composes: border-b-0 from global;
162
174
  composes: section;
163
- border-bottom-width: 0;
164
175
  grid-column: 1 / span 2;
165
176
  }
166
177
 
@@ -169,20 +180,20 @@
169
180
  }
170
181
 
171
182
  .quantityRoot {
172
- composes: root from '../CartPage/ProductListing/quantity.module.css';
183
+ composes: root from '../QuantityStepper/quantityStepper.module.css';
173
184
  grid-template-columns: auto 4rem auto;
174
- justify-content: start;
185
+ composes: justify-start from global;
175
186
  }
176
187
 
177
188
  .unavailableContainer {
178
- align-items: center;
179
- background-color: rgb(var(--venia-global-color-gray));
180
- color: rgb(var(--venia-global-color-gray-700));
181
- column-gap: 0.5rem;
182
- display: grid;
183
- font-style: italic;
184
- grid-auto-flow: column;
185
- justify-content: start;
186
- padding: 0.75rem;
187
- width: 100%;
189
+ composes: bg-subtle from global;
190
+ composes: gap-x-2xs from global;
191
+ composes: grid from global;
192
+ composes: grid-flow-col from global;
193
+ composes: italic from global;
194
+ composes: items-center from global;
195
+ composes: justify-start from global;
196
+ composes: p-3 from global;
197
+ composes: text-subtle from global;
198
+ composes: w-full from global;
188
199
  }
@@ -1,14 +1,23 @@
1
1
  .root {
2
- display: grid;
2
+ composes: lg_gap-sm from global;
3
+ composes: grid from global;
4
+ composes: grid-cols-auto from global;
5
+ composes: grid-rows-auto from global;
3
6
  grid-template-areas:
4
7
  'main'
5
8
  'thumbs';
6
- grid-template-columns: auto;
7
- grid-template-rows: auto;
9
+ }
10
+
11
+ @media (min-width: 960px) {
12
+ .root {
13
+ grid-template-areas: 'thumbs main';
14
+ /* These values are mirrored in JS for image sizes. Keep them in sync. */
15
+ grid-template-columns: 17fr 80fr;
16
+ }
8
17
  }
9
18
 
10
19
  .carouselContainer {
11
- display: grid;
20
+ composes: grid from global;
12
21
  grid-area: main;
13
22
  grid-template-columns: repeat(3, 1fr);
14
23
  }
@@ -18,43 +27,52 @@
18
27
  }
19
28
 
20
29
  .currentImage {
21
- display: block;
22
- width: 100%;
23
- height: 100%;
24
- object-fit: contain;
25
- object-position: center;
30
+ composes: block from global;
31
+ composes: h-full from global;
32
+ composes: object-center from global;
33
+ composes: object-contain from global;
34
+ composes: w-full from global;
35
+
36
+ composes: lg_object-top from global;
26
37
  }
27
38
 
28
39
  .currentImage_placeholder {
29
40
  composes: currentImage;
30
- background-color: rgb(var(--venia-global-color-gray));
41
+
42
+ composes: bg-subtle from global;
31
43
  }
32
44
 
33
45
  .previousButton,
34
46
  .nextButton {
35
- display: flex;
36
- outline: none;
37
- z-index: 1;
47
+ composes: flex from global;
48
+ composes: outline-none from global;
49
+ composes: z-foreground from global;
50
+
51
+ composes: lg_hidden from global;
38
52
  }
39
53
 
40
54
  .previousButton {
41
- justify-content: flex-start;
55
+ composes: justify-start from global;
56
+ composes: ml-sm from global;
42
57
  grid-area: 1 / 1 / 2 / 2;
43
- margin-left: 1.625rem;
44
58
  }
45
59
 
46
60
  .nextButton {
47
- justify-content: flex-end;
61
+ composes: justify-end from global;
62
+ composes: mr-sm from global;
48
63
  grid-area: 1 / 3 / 2 / 4;
49
- margin-right: 1.625rem;
50
64
  }
51
65
 
52
66
  .chevron {
53
67
  composes: root from '../Icon/icon.module.css';
54
- align-self: center;
55
- border: 2px solid transparent;
68
+
69
+ composes: border-2 from global;
70
+ composes: border-solid from global;
71
+ composes: border-transparent from global;
72
+ composes: self-center from global;
56
73
  }
57
74
 
75
+ /* TODO @TW: cannot compose */
58
76
  .nextButton:focus > .chevron,
59
77
  .previousButton:focus > .chevron {
60
78
  box-shadow: 0 0 4px 2px rgb(var(--venia-global-color-teal));
@@ -62,38 +80,18 @@
62
80
  }
63
81
 
64
82
  .thumbnailList {
65
- align-content: stretch;
66
- display: grid;
67
- grid-auto-flow: column;
68
- grid-gap: 1rem;
69
- grid-template-columns: repeat(auto-fit, 1rem);
70
- justify-content: center;
71
- margin-top: 1rem;
72
- z-index: 1;
73
- }
83
+ composes: content-stretch from global;
84
+ composes: gap-xs from global;
85
+ composes: grid from global;
86
+ composes: grid-cols-carouselThumbnailList from global;
87
+ composes: grid-flow-col from global;
88
+ composes: justify-center from global;
89
+ composes: mt-xs from global;
90
+ composes: z-foreground from global;
74
91
 
75
- @media (min-width: 1024px) {
76
- .root {
77
- grid-gap: 1.5rem;
78
- grid-template-areas: 'thumbs main';
79
- /* These values are mirrored in JS for image sizes. Keep them in sync. */
80
- grid-template-columns: 17fr 80fr;
81
- }
82
-
83
- .previousButton,
84
- .nextButton {
85
- display: none;
86
- }
87
-
88
- .thumbnailList {
89
- align-content: start;
90
- grid-auto-flow: row;
91
- grid-gap: 1.5rem;
92
- grid-template-columns: 1fr;
93
- margin-top: 0;
94
- }
95
-
96
- .currentImage {
97
- object-position: top center;
98
- }
92
+ composes: lg_content-start from global;
93
+ composes: lg_gap-sm from global;
94
+ composes: lg_grid-cols-[1fr] from global;
95
+ composes: lg_grid-flow-row from global;
96
+ composes: lg_mt-0 from global;
99
97
  }
@@ -2,45 +2,48 @@
2
2
  * as a thumbnail to the left of the product image in desktop.
3
3
  */
4
4
  .root {
5
- border: 1px solid rgb(var(--venia-global-color-text));
6
- border-radius: 50%;
7
- height: 0.875rem;
8
- width: 0.875rem;
5
+ composes: border from global;
6
+ composes: border-solid from global;
7
+ composes: border-strong from global;
8
+ composes: h-[0.875rem] from global;
9
+ composes: outline-none from global;
10
+ composes: rounded-full from global;
11
+ composes: w-[0.875rem] from global;
9
12
  box-shadow: 0 0 0 1px #ffffff;
10
- outline: none;
13
+
14
+ composes: lg_border-0 from global;
15
+ composes: lg_h-auto from global;
16
+ composes: lg_rounded-none from global;
17
+ composes: lg_w-auto from global;
11
18
  }
12
19
 
13
20
  .rootSelected {
14
21
  composes: root;
15
- background-color: rgb(var(--venia-global-color-text));
22
+
23
+ composes: bg-gray-900 from global;
16
24
  }
17
25
 
18
26
  .image {
19
- display: none;
27
+ composes: hidden from global;
28
+
29
+ composes: lg_bg-subtle from global;
30
+ composes: lg_block from global;
31
+ composes: lg_h-full from global;
32
+ composes: lg_object-center from global;
33
+ composes: lg_object-contain from global;
34
+ composes: lg_rounded-sm from global;
35
+ composes: lg_w-full from global;
20
36
  }
21
37
 
22
38
  /* For desktop mode where buttons are an image... */
23
- @media (min-width: 1024px) {
24
- .root {
25
- border: 0;
26
- border-radius: 0;
27
- height: auto;
28
- width: auto;
29
- }
39
+ @media (min-width: 960px) {
30
40
  .rootSelected {
31
41
  composes: root;
42
+
32
43
  box-shadow: 0 0 10px 0 rgb(var(--venia-global-color-teal));
33
- background-color: rgb(var(--venia-global-color-text));
34
44
  }
35
45
 
36
46
  .image {
37
- background-color: rgb(var(--venia-global-color-gray));
38
- border-radius: 2px;
39
47
  box-shadow: 0 0 0 1px white;
40
- display: block;
41
- height: 100%;
42
- object-fit: contain;
43
- object-position: center;
44
- width: 100%;
45
48
  }
46
49
  }