@magento/venia-ui 9.3.0 → 9.4.0-alpha.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 +4 -4
  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 +312 -117
  231. package/lib/components/ProductFullDetail/__tests__/productFullDetail.spec.js +1 -3
  232. package/lib/components/ProductFullDetail/productFullDetail.js +77 -11
  233. package/lib/components/ProductFullDetail/productFullDetail.module.css +85 -77
  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 +15 -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}
@@ -187,6 +240,7 @@ const ProductFullDetail = props => {
187
240
  value={productDetails.price.value}
188
241
  />
189
242
  </p>
243
+ {shortDescription}
190
244
  </section>
191
245
  <section className={classes.imageCarousel}>
192
246
  <Carousel images={mediaGalleryEntries} />
@@ -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,69 @@
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;
20
23
  }
21
24
  }
22
25
 
23
26
  .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;
27
+ composes: border-solid from global;
28
+ composes: border-subtle from global;
29
+ composes: border-t-0 from global;
30
+ composes: border-r-0 from global;
31
+ composes: border-b from global;
32
+ composes: border-l-0 from global;
33
+ composes: my-0 from global;
34
+ composes: mx-sm from global;
35
+ composes: px-0 from global;
36
+ composes: py-sm from global;
29
37
  }
30
38
 
31
39
  .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;
40
+ composes: flex from global;
41
+ composes: font-semibold from global;
42
+ composes: items-center from global;
43
+ composes: leading-normal from global;
44
+ composes: mb-sm from global;
45
+ composes: text-colorDefault from global;
38
46
  }
39
47
 
40
48
  .title {
41
- align-items: center;
42
- display: grid;
49
+ composes: gap-xs from global;
50
+ composes: grid from global;
51
+ composes: items-center from global;
52
+ composes: leading-normal from global;
53
+ composes: px-sm from global;
54
+ composes: py-xs from global;
43
55
  grid-area: title;
44
- grid-gap: 1rem;
45
56
  grid-template-columns: 1fr max-content;
46
- line-height: 1.5;
47
- padding: 1rem 1.5rem;
48
- }
49
57
 
50
- @media (min-width: 1024px) {
51
- .title {
52
- padding: 1.5rem;
53
- }
58
+ composes: lg_p-sm from global;
54
59
  }
55
60
 
56
61
  .productName {
57
- font-size: 1rem;
58
- font-weight: 600;
59
- }
62
+ composes: font-semibold from global;
63
+ composes: text-colorDefault from global;
60
64
 
61
- @media (min-width: 1024px) {
62
- .productName {
63
- font-size: 1.3125rem;
64
- font-weight: 400;
65
- }
65
+ composes: lg_font-normal from global;
66
+ composes: lg_text-xl from global;
66
67
  }
67
68
 
68
69
  .productPrice {
69
- display: block;
70
+ composes: block from global;
70
71
  }
71
72
 
72
73
  .imageCarousel {
73
74
  grid-area: images;
74
75
  grid-column: 1 / 2;
75
76
  grid-row: 1 / fold;
76
- margin: 0 auto;
77
- max-width: 640px;
78
- }
77
+ composes: max-w-[640px] from global;
78
+ composes: mx-auto from global;
79
+ composes: my-0 from global;
79
80
 
80
- @media (min-width: 1024px) {
81
- .imageCarousel {
82
- margin: 0;
83
- max-width: 800px;
84
- padding: 1.5rem 0;
85
- }
81
+ composes: lg_m-0 from global;
82
+ composes: lg_px-0 from global;
83
+ composes: lg_py-sm from global;
86
84
  }
87
85
 
88
86
  .options {
@@ -104,34 +102,26 @@
104
102
  }
105
103
 
106
104
  .actions {
105
+ composes: gap-y-sm from global;
106
+ composes: grid from global;
107
+ composes: items-center from global;
108
+ composes: justify-items-center from global;
107
109
  composes: section;
108
- align-items: center;
109
- display: grid;
110
110
  grid-area: cart;
111
- row-gap: 1.5rem;
112
- justify-items: center;
113
- }
114
111
 
115
- @media (min-width: 1024px) {
116
- .actions {
117
- border-bottom-width: 0;
118
- }
112
+ composes: lg_border-b-0 from global;
119
113
  }
120
114
 
121
115
  .description {
122
116
  composes: section;
123
117
  grid-column: 1 / span 1;
124
118
  grid-row: fold / span 1;
125
- }
126
119
 
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
- }
120
+ composes: lg_border-t from global;
121
+ composes: lg_m-0 from global;
122
+ composes: lg_pl-sm from global;
123
+ composes: lg_pr-sm from global;
124
+ composes: lg_self-stretch from global;
135
125
  }
136
126
 
137
127
  .descriptionTitle {
@@ -142,6 +132,24 @@
142
132
  composes: section;
143
133
  grid-column: 2 / span 1;
144
134
  grid-row: fold / span 1;
135
+
136
+ composes: lg_border-t from global;
137
+ composes: lg_m-0 from global;
138
+ composes: lg_pl-sm from global;
139
+ composes: lg_pr-sm from global;
140
+ composes: lg_self-stretch from global;
141
+ }
142
+
143
+ .detailsPageBuilder {
144
+ composes: my-0 from global;
145
+ composes: mx-sm from global;
146
+ composes: px-0 from global;
147
+ composes: py-sm from global;
148
+ grid-column: 1 / span 2;
149
+ }
150
+
151
+ .detailsPageBuilderList {
152
+ list-style: none;
145
153
  }
146
154
 
147
155
  @media (min-width: 1024px) {
@@ -159,8 +167,8 @@
159
167
  }
160
168
 
161
169
  .related {
170
+ composes: border-b-0 from global;
162
171
  composes: section;
163
- border-bottom-width: 0;
164
172
  grid-column: 1 / span 2;
165
173
  }
166
174
 
@@ -169,20 +177,20 @@
169
177
  }
170
178
 
171
179
  .quantityRoot {
172
- composes: root from '../CartPage/ProductListing/quantity.module.css';
180
+ composes: root from '../QuantityStepper/quantityStepper.module.css';
173
181
  grid-template-columns: auto 4rem auto;
174
- justify-content: start;
182
+ composes: justify-start from global;
175
183
  }
176
184
 
177
185
  .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%;
186
+ composes: bg-subtle from global;
187
+ composes: gap-x-2xs from global;
188
+ composes: grid from global;
189
+ composes: grid-flow-col from global;
190
+ composes: italic from global;
191
+ composes: items-center from global;
192
+ composes: justify-start from global;
193
+ composes: p-3 from global;
194
+ composes: text-subtle from global;
195
+ composes: w-full from global;
188
196
  }
@@ -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
  }
@@ -1,24 +1,28 @@
1
1
  .root {
2
- border-bottom: 1px solid rgb(var(--venia-global-color-border));
3
- margin: 0 1.5rem;
4
- padding: 1.75rem 0;
2
+ composes: border-b from global;
3
+ composes: border-solid from global;
4
+ composes: border-subtle from global;
5
+ composes: mx-sm from global;
6
+ composes: my-0 from global;
7
+ composes: px-0 from global;
8
+ composes: py-sm from global;
5
9
  }
6
10
 
7
11
  .title {
8
- font-size: 1rem;
9
- font-weight: 600;
10
- line-height: 1.5;
11
- margin-bottom: 1.5rem;
12
- display: block;
12
+ composes: block from global;
13
+ composes: font-semibold from global;
14
+ composes: leading-normal from global;
15
+ composes: mb-sm from global;
16
+ composes: text-colorDefault from global;
13
17
  }
14
18
 
15
19
  .selection {
16
- font-size: 1rem;
17
- line-height: 1.5;
18
- margin-top: 1rem;
19
- display: flex;
20
+ composes: flex from global;
21
+ composes: leading-normal from global;
22
+ composes: mt-xs from global;
23
+ composes: text-colorDefault from global;
20
24
  }
21
25
 
22
26
  .selectionLabel {
23
- margin-right: 1rem;
27
+ composes: mr-xs from global;
24
28
  }