@shopify/ui-extensions 2025.10.0-rc.6 → 2025.10.0-rc.7

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 (253) hide show
  1. package/build/ts/docs/shared/components/Map.d.ts +4 -0
  2. package/build/ts/docs/shared/components/Map.d.ts.map +1 -0
  3. package/build/ts/docs/shared/components/MapMarker.d.ts +4 -0
  4. package/build/ts/docs/shared/components/MapMarker.d.ts.map +1 -0
  5. package/build/ts/docs/shared/components/Modal.d.ts +4 -0
  6. package/build/ts/docs/shared/components/Modal.d.ts.map +1 -0
  7. package/build/ts/docs/shared/components/Option.d.ts +4 -0
  8. package/build/ts/docs/shared/components/Option.d.ts.map +1 -0
  9. package/build/ts/docs/shared/components/PhoneField.d.ts +4 -0
  10. package/build/ts/docs/shared/components/PhoneField.d.ts.map +1 -0
  11. package/build/ts/docs/shared/components/ProductThumbnail.d.ts +4 -0
  12. package/build/ts/docs/shared/components/ProductThumbnail.d.ts.map +1 -0
  13. package/build/ts/surfaces/admin/components/patterns/details.ab.doc.d.ts +4 -0
  14. package/build/ts/surfaces/admin/components/patterns/details.ab.doc.d.ts.map +1 -0
  15. package/build/ts/surfaces/admin/components/patterns/homepage.ab.doc.d.ts +4 -0
  16. package/build/ts/surfaces/admin/components/patterns/homepage.ab.doc.d.ts.map +1 -0
  17. package/build/ts/surfaces/admin/components/patterns/index.ab.doc.d.ts +4 -0
  18. package/build/ts/surfaces/admin/components/patterns/index.ab.doc.d.ts.map +1 -0
  19. package/build/ts/surfaces/admin/components/patterns/settings.ab.doc.d.ts +4 -0
  20. package/build/ts/surfaces/admin/components/patterns/settings.ab.doc.d.ts.map +1 -0
  21. package/build/ts/surfaces/checkout/components/Abbreviation.d.ts +20 -8
  22. package/build/ts/surfaces/checkout/components/Banner/Banner.doc.d.ts.map +1 -1
  23. package/build/ts/surfaces/checkout/components/Banner.d.ts +52 -13
  24. package/build/ts/surfaces/checkout/components/Box.d.ts +20 -9
  25. package/build/ts/surfaces/checkout/components/Button/Button.doc.d.ts.map +1 -1
  26. package/build/ts/surfaces/checkout/components/Button.d.ts +39 -13
  27. package/build/ts/surfaces/checkout/components/Checkbox/Checkbox.doc.d.ts +4 -0
  28. package/build/ts/surfaces/checkout/components/Checkbox/Checkbox.doc.d.ts.map +1 -0
  29. package/build/ts/surfaces/checkout/components/Checkbox.d.ts +54 -0
  30. package/build/ts/surfaces/checkout/components/ClipboardItem.d.ts +36 -9
  31. package/build/ts/surfaces/checkout/components/DropZone/DropZone.doc.d.ts.map +1 -1
  32. package/build/ts/surfaces/checkout/components/DropZone.d.ts +36 -9
  33. package/build/ts/surfaces/checkout/components/EmailField/EmailField.doc.d.ts +4 -0
  34. package/build/ts/surfaces/checkout/components/EmailField/EmailField.doc.d.ts.map +1 -0
  35. package/build/ts/surfaces/checkout/components/EmailField.d.ts +69 -0
  36. package/build/ts/surfaces/checkout/components/Form.d.ts +40 -12
  37. package/build/ts/surfaces/checkout/components/Heading.d.ts +20 -8
  38. package/build/ts/surfaces/checkout/components/Icon.d.ts +22 -9
  39. package/build/ts/surfaces/checkout/components/Image.d.ts +13 -7
  40. package/build/ts/surfaces/checkout/components/Link/Link.doc.d.ts.map +1 -1
  41. package/build/ts/surfaces/checkout/components/Link.d.ts +39 -13
  42. package/build/ts/surfaces/checkout/components/ListItem.d.ts +22 -10
  43. package/build/ts/surfaces/checkout/components/Map/Map.doc.d.ts +4 -0
  44. package/build/ts/surfaces/checkout/components/Map/Map.doc.d.ts.map +1 -0
  45. package/build/ts/surfaces/checkout/components/Map.d.ts +75 -0
  46. package/build/ts/surfaces/checkout/components/MapMarker.d.ts +73 -0
  47. package/build/ts/surfaces/checkout/components/Modal/Modal.doc.d.ts +4 -0
  48. package/build/ts/surfaces/checkout/components/Modal/Modal.doc.d.ts.map +1 -0
  49. package/build/ts/surfaces/checkout/components/Modal.d.ts +87 -0
  50. package/build/ts/surfaces/checkout/components/OrderedList.d.ts +20 -8
  51. package/build/ts/surfaces/checkout/components/Paragraph.d.ts +20 -8
  52. package/build/ts/surfaces/checkout/components/PaymentIcon.d.ts +14 -7
  53. package/build/ts/surfaces/checkout/components/PhoneField/PhoneField.doc.d.ts +4 -0
  54. package/build/ts/surfaces/checkout/components/PhoneField/PhoneField.doc.d.ts.map +1 -0
  55. package/build/ts/surfaces/checkout/components/PhoneField.d.ts +84 -0
  56. package/build/ts/surfaces/checkout/components/ProductThumbnail/ProductThumbnail.doc.d.ts +4 -0
  57. package/build/ts/surfaces/checkout/components/ProductThumbnail/ProductThumbnail.doc.d.ts.map +1 -0
  58. package/build/ts/surfaces/checkout/components/Progress.d.ts +14 -4
  59. package/build/ts/surfaces/checkout/components/QRCode/QRCode.doc.d.ts.map +1 -1
  60. package/build/ts/surfaces/checkout/components/QRCode.d.ts +32 -8
  61. package/build/ts/surfaces/checkout/components/Section.d.ts +20 -8
  62. package/build/ts/surfaces/checkout/components/Spinner.d.ts +14 -4
  63. package/build/ts/surfaces/checkout/components/Stack.d.ts +20 -9
  64. package/build/ts/surfaces/checkout/components/Text.d.ts +20 -8
  65. package/build/ts/surfaces/checkout/components/TextArea/TextArea.doc.d.ts +4 -0
  66. package/build/ts/surfaces/checkout/components/TextArea/TextArea.doc.d.ts.map +1 -0
  67. package/build/ts/surfaces/checkout/components/TextArea.d.ts +69 -0
  68. package/build/ts/surfaces/checkout/components/TextField/TextField.doc.d.ts.map +1 -1
  69. package/build/ts/surfaces/checkout/components/TextField.d.ts +72 -21
  70. package/build/ts/surfaces/checkout/components/Time.d.ts +20 -8
  71. package/build/ts/surfaces/checkout/components/UnorderedList.d.ts +20 -8
  72. package/build/ts/surfaces/checkout/components/components-shared.d.ts +486 -2
  73. package/build/ts/surfaces/checkout/components/components.d.ts +1000 -166
  74. package/build/ts/surfaces/checkout/shared.d.ts +1 -1
  75. package/build/ts/surfaces/checkout/shared.d.ts.map +1 -1
  76. package/build/ts/surfaces/checkout/targets/Checkout::Actions::RenderBefore.d.ts +918 -172
  77. package/build/ts/surfaces/checkout/targets/Checkout::CartLineDetails::RenderAfter.d.ts +918 -172
  78. package/build/ts/surfaces/checkout/targets/Checkout::CartLineDetails::RenderLineComponents.d.ts +918 -172
  79. package/build/ts/surfaces/checkout/targets/Checkout::CartLines::RenderAfter.d.ts +918 -172
  80. package/build/ts/surfaces/checkout/targets/Checkout::Contact::RenderAfter.d.ts +918 -172
  81. package/build/ts/surfaces/checkout/targets/Checkout::CustomerInformation::RenderAfter.d.ts +918 -172
  82. package/build/ts/surfaces/checkout/targets/Checkout::DeliveryAddress::RenderBefore.d.ts +918 -172
  83. package/build/ts/surfaces/checkout/targets/Checkout::Dynamic::Render.d.ts +918 -172
  84. package/build/ts/surfaces/checkout/targets/Checkout::GiftCard::Render.d.ts +863 -155
  85. package/build/ts/surfaces/checkout/targets/Checkout::PaymentMethod::HostedFields::RenderAfter.d.ts +863 -155
  86. package/build/ts/surfaces/checkout/targets/Checkout::PaymentMethod::Render.d.ts +863 -155
  87. package/build/ts/surfaces/checkout/targets/Checkout::PaymentMethod::RenderRequiredAction.d.ts +918 -172
  88. package/build/ts/surfaces/checkout/targets/Checkout::PickupLocations::RenderAfter.d.ts +918 -172
  89. package/build/ts/surfaces/checkout/targets/Checkout::PickupLocations::RenderBefore.d.ts +918 -172
  90. package/build/ts/surfaces/checkout/targets/Checkout::PickupPoints::RenderAfter.d.ts +918 -172
  91. package/build/ts/surfaces/checkout/targets/Checkout::PickupPoints::RenderBefore.d.ts +918 -172
  92. package/build/ts/surfaces/checkout/targets/Checkout::Reductions::RenderAfter.d.ts +918 -172
  93. package/build/ts/surfaces/checkout/targets/Checkout::Reductions::RenderBefore.d.ts +918 -172
  94. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethodDetails::RenderAfter.d.ts +918 -172
  95. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethodDetails::RenderExpanded.d.ts +918 -172
  96. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethods::RenderAfter.d.ts +918 -172
  97. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethods::RenderBefore.d.ts +918 -172
  98. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::CartLineDetails::RenderAfter.d.ts +918 -172
  99. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::CartLines::RenderAfter.d.ts +918 -172
  100. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::CustomerInformation::RenderAfter.d.ts +918 -172
  101. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::Dynamic::Render.d.ts +918 -172
  102. package/build/ts/surfaces/checkout/targets/purchase.cart-line-item.line-components.render.d.ts +918 -172
  103. package/build/ts/surfaces/checkout/targets/purchase.checkout.actions.render-before.d.ts +918 -172
  104. package/build/ts/surfaces/checkout/targets/purchase.checkout.block.render.d.ts +918 -172
  105. package/build/ts/surfaces/checkout/targets/purchase.checkout.cart-line-item.render-after.d.ts +918 -172
  106. package/build/ts/surfaces/checkout/targets/purchase.checkout.cart-line-list.render-after.d.ts +918 -172
  107. package/build/ts/surfaces/checkout/targets/purchase.checkout.contact.render-after.d.ts +918 -172
  108. package/build/ts/surfaces/checkout/targets/purchase.checkout.delivery-address.render-after.d.ts +918 -172
  109. package/build/ts/surfaces/checkout/targets/purchase.checkout.delivery-address.render-before.d.ts +918 -172
  110. package/build/ts/surfaces/checkout/targets/purchase.checkout.footer.render-after.d.ts +918 -172
  111. package/build/ts/surfaces/checkout/targets/purchase.checkout.gift-card.render.d.ts +863 -155
  112. package/build/ts/surfaces/checkout/targets/purchase.checkout.header.render-after.d.ts +918 -172
  113. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-method-list.render-after.d.ts +918 -172
  114. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-method-list.render-before.d.ts +918 -172
  115. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.action-required.render.d.ts +918 -172
  116. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.details.render.d.ts +863 -155
  117. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.hosted-fields.render-after.d.ts +918 -172
  118. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-list.render-after.d.ts +918 -172
  119. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-list.render-before.d.ts +918 -172
  120. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-option-item.render-after.d.ts +918 -172
  121. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-point-list.render-after.d.ts +918 -172
  122. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-point-list.render-before.d.ts +918 -172
  123. package/build/ts/surfaces/checkout/targets/purchase.checkout.reductions.render-after.d.ts +918 -172
  124. package/build/ts/surfaces/checkout/targets/purchase.checkout.reductions.render-before.d.ts +918 -172
  125. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-item.details.render.d.ts +918 -172
  126. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-item.render-after.d.ts +918 -172
  127. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-list.render-after.d.ts +918 -172
  128. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-list.render-before.d.ts +918 -172
  129. package/build/ts/surfaces/checkout/targets/purchase.thank-you.block.render.d.ts +918 -172
  130. package/build/ts/surfaces/checkout/targets/purchase.thank-you.cart-line-item.render-after.d.ts +918 -172
  131. package/build/ts/surfaces/checkout/targets/purchase.thank-you.cart-line-list.render-after.d.ts +918 -172
  132. package/build/ts/surfaces/checkout/targets/purchase.thank-you.customer-information.render-after.d.ts +918 -172
  133. package/build/ts/surfaces/checkout/targets/purchase.thank-you.footer.render-after.d.ts +918 -172
  134. package/build/ts/surfaces/checkout/targets/purchase.thank-you.header.render-after.d.ts +918 -172
  135. package/build/ts/surfaces/customer-account/components/Abbreviation.d.ts +20 -8
  136. package/build/ts/surfaces/customer-account/components/Banner.d.ts +52 -13
  137. package/build/ts/surfaces/customer-account/components/Box.d.ts +20 -9
  138. package/build/ts/surfaces/customer-account/components/Button.d.ts +39 -13
  139. package/build/ts/surfaces/customer-account/components/Checkbox.d.ts +54 -0
  140. package/build/ts/surfaces/customer-account/components/ClipboardItem.d.ts +36 -9
  141. package/build/ts/surfaces/customer-account/components/DropZone.d.ts +36 -9
  142. package/build/ts/surfaces/customer-account/components/EmailField.d.ts +69 -0
  143. package/build/ts/surfaces/customer-account/components/Form.d.ts +40 -12
  144. package/build/ts/surfaces/customer-account/components/Heading.d.ts +20 -8
  145. package/build/ts/surfaces/customer-account/components/Icon.d.ts +22 -9
  146. package/build/ts/surfaces/customer-account/components/Image.d.ts +13 -7
  147. package/build/ts/surfaces/customer-account/components/Link.d.ts +39 -13
  148. package/build/ts/surfaces/customer-account/components/ListItem.d.ts +22 -10
  149. package/build/ts/surfaces/customer-account/components/Map.d.ts +75 -0
  150. package/build/ts/surfaces/customer-account/components/MapMarker.d.ts +73 -0
  151. package/build/ts/surfaces/customer-account/components/Modal.d.ts +87 -0
  152. package/build/ts/surfaces/customer-account/components/OrderedList.d.ts +20 -8
  153. package/build/ts/surfaces/customer-account/components/Paragraph.d.ts +20 -8
  154. package/build/ts/surfaces/customer-account/components/PaymentIcon.d.ts +14 -7
  155. package/build/ts/surfaces/customer-account/components/PhoneField.d.ts +84 -0
  156. package/build/ts/surfaces/customer-account/components/Progress.d.ts +14 -4
  157. package/build/ts/surfaces/customer-account/components/QRCode.d.ts +32 -8
  158. package/build/ts/surfaces/customer-account/components/Section.d.ts +20 -8
  159. package/build/ts/surfaces/customer-account/components/Spinner.d.ts +14 -4
  160. package/build/ts/surfaces/customer-account/components/Stack.d.ts +20 -9
  161. package/build/ts/surfaces/customer-account/components/Text.d.ts +20 -8
  162. package/build/ts/surfaces/customer-account/components/TextArea.d.ts +69 -0
  163. package/build/ts/surfaces/customer-account/components/TextField.d.ts +72 -21
  164. package/build/ts/surfaces/customer-account/components/Time.d.ts +20 -8
  165. package/build/ts/surfaces/customer-account/components/UnorderedList.d.ts +20 -8
  166. package/build/ts/surfaces/customer-account/components/components-shared.d.ts +486 -2
  167. package/build/ts/surfaces/customer-account/components/components.d.ts +1000 -166
  168. package/build/ts/surfaces/customer-account/targets/customer-account.footer.render-after.d.ts +918 -173
  169. package/build/ts/surfaces/customer-account/targets/customer-account.order-index.block.render.d.ts +918 -173
  170. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.block.render.d.ts +918 -173
  171. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-item.render-after.d.ts +918 -173
  172. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-list.render-after.d.ts +918 -173
  173. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.customer-information.render-after.d.ts +918 -173
  174. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.fulfillment-details.render-after.d.ts +918 -173
  175. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.payment-details.render-after.d.ts +918 -173
  176. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.return-details.render-after.d.ts +918 -173
  177. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.unfulfilled-items.render-after.d.ts +918 -173
  178. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.menu-item.render.d.ts +918 -173
  179. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.render.d.ts +918 -173
  180. package/build/ts/surfaces/customer-account/targets/customer-account.order.page.render.d.ts +918 -173
  181. package/build/ts/surfaces/customer-account/targets/customer-account.page.render.d.ts +918 -173
  182. package/build/ts/surfaces/customer-account/targets/customer-account.profile.addresses.render-after.d.ts +918 -173
  183. package/build/ts/surfaces/customer-account/targets/customer-account.profile.block.render.d.ts +918 -173
  184. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-details.render-after.d.ts +918 -173
  185. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-addresses.render-after.d.ts +918 -173
  186. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-payment.render-after.d.ts +918 -173
  187. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-staff.render-after.d.ts +918 -173
  188. package/build/ts/surfaces/customer-account/targets/customer-account.profile.payment.render-after.d.ts +918 -173
  189. package/build/tsconfig.tsbuildinfo +1 -1
  190. package/package.json +1 -1
  191. package/src/docs/shared/components/Map.ts +12 -0
  192. package/src/docs/shared/components/MapMarker.ts +12 -0
  193. package/src/docs/shared/components/Modal.ts +12 -0
  194. package/src/docs/shared/components/Option.ts +12 -0
  195. package/src/docs/shared/components/PhoneField.ts +11 -0
  196. package/src/docs/shared/components/ProductThumbnail.ts +11 -0
  197. package/src/surfaces/admin/components/AdminPrintAction/examples/default.tsx +1 -1
  198. package/src/surfaces/admin/components/patterns/examples/details.html +228 -0
  199. package/src/surfaces/admin/components/patterns/examples/details.jsx +262 -0
  200. package/src/surfaces/admin/components/patterns/examples/homepage.html +587 -0
  201. package/src/surfaces/admin/components/patterns/examples/homepage.jsx +691 -0
  202. package/src/surfaces/admin/components/patterns/examples/index.html +143 -0
  203. package/src/surfaces/admin/components/patterns/examples/index.jsx +162 -0
  204. package/src/surfaces/admin/components/patterns/examples/settings.html +241 -0
  205. package/src/surfaces/admin/components/patterns/examples/settings.jsx +349 -0
  206. package/src/surfaces/admin/components/patterns/index.ab.doc.ts +82 -0
  207. package/src/surfaces/checkout/components/Abbreviation.d.ts +20 -8
  208. package/src/surfaces/checkout/components/Banner.d.ts +52 -13
  209. package/src/surfaces/checkout/components/Box.d.ts +20 -9
  210. package/src/surfaces/checkout/components/Button.d.ts +39 -13
  211. package/src/surfaces/checkout/components/Checkbox/examples/basic-checkbox.example.html +1 -0
  212. package/src/surfaces/checkout/components/Checkbox.d.ts +54 -0
  213. package/src/surfaces/checkout/components/ClipboardItem.d.ts +36 -9
  214. package/src/surfaces/checkout/components/DropZone.d.ts +36 -9
  215. package/src/surfaces/checkout/components/EmailField/examples/basic-emailfield.example.html +4 -0
  216. package/src/surfaces/checkout/components/EmailField.d.ts +69 -0
  217. package/src/surfaces/checkout/components/Form.d.ts +40 -12
  218. package/src/surfaces/checkout/components/Heading.d.ts +20 -8
  219. package/src/surfaces/checkout/components/Icon.d.ts +22 -9
  220. package/src/surfaces/checkout/components/Image.d.ts +13 -7
  221. package/src/surfaces/checkout/components/Link.d.ts +39 -13
  222. package/src/surfaces/checkout/components/ListItem.d.ts +22 -10
  223. package/src/surfaces/checkout/components/Map/examples/basic-map.example.html +3 -0
  224. package/src/surfaces/checkout/components/Map.d.ts +75 -0
  225. package/src/surfaces/checkout/components/MapMarker.d.ts +73 -0
  226. package/src/surfaces/checkout/components/Modal/examples/basic-modal.example.html +20 -0
  227. package/src/surfaces/checkout/components/Modal.d.ts +87 -0
  228. package/src/surfaces/checkout/components/OrderedList.d.ts +20 -8
  229. package/src/surfaces/checkout/components/Paragraph.d.ts +20 -8
  230. package/src/surfaces/checkout/components/PaymentIcon.d.ts +14 -7
  231. package/src/surfaces/checkout/components/PhoneField/examples/basic-phonefield.example.html +2 -0
  232. package/src/surfaces/checkout/components/PhoneField.d.ts +84 -0
  233. package/src/surfaces/checkout/components/ProductThumbnail/examples/basic-productthumbnail.example.html +4 -0
  234. package/src/surfaces/checkout/components/Progress.d.ts +14 -4
  235. package/src/surfaces/checkout/components/QRCode.d.ts +32 -8
  236. package/src/surfaces/checkout/components/Section.d.ts +20 -8
  237. package/src/surfaces/checkout/components/Spinner.d.ts +14 -4
  238. package/src/surfaces/checkout/components/Stack.d.ts +20 -9
  239. package/src/surfaces/checkout/components/Text.d.ts +20 -8
  240. package/src/surfaces/checkout/components/TextArea/examples/basic-textarea.example.html +5 -0
  241. package/src/surfaces/checkout/components/TextArea.d.ts +69 -0
  242. package/src/surfaces/checkout/components/TextField.d.ts +72 -21
  243. package/src/surfaces/checkout/components/Time.d.ts +20 -8
  244. package/src/surfaces/checkout/components/UnorderedList.d.ts +20 -8
  245. package/src/surfaces/checkout/components/components-shared.d.ts +486 -2
  246. package/src/surfaces/checkout/components/components.d.ts +1000 -166
  247. package/src/surfaces/checkout/shared.ts +8 -0
  248. package/src/surfaces/customer-account/components/CustomerAccountAction/examples/basic-CustomerAccountAction-js.example.ts +1 -1
  249. package/src/surfaces/customer-account/components/CustomerAccountAction/examples/basic-CustomerAccountAction-preact.example.tsx +1 -1
  250. package/src/surfaces/customer-account/components/ImageGroup/examples/basic-ImageGroup-js.example.ts +1 -1
  251. package/src/surfaces/customer-account/components/ImageGroup/examples/basic-ImageGroup-preact.example.tsx +1 -1
  252. package/src/surfaces/customer-account/components/Page/examples/basic-Page-js.example.ts +1 -1
  253. package/src/surfaces/customer-account/components/Page/examples/basic-Page-preact.example.tsx +1 -1
@@ -0,0 +1,691 @@
1
+ // ===
2
+ // Home page pattern
3
+ // ===
4
+
5
+ import React, { useState } from "react";
6
+
7
+ export default function HomePage() {
8
+ const [visible, setVisible] = useState({
9
+ banner: true,
10
+ setupGuide: true,
11
+ calloutCard: true,
12
+ featuredApps: true,
13
+ });
14
+ const [expanded, setExpanded] = useState({
15
+ setupGuide: true,
16
+ step1: false,
17
+ step2: false,
18
+ step3: false,
19
+ });
20
+ const [progress, setProgress] = useState(0);
21
+ return (
22
+ <s-page inlineSize="small">
23
+ {/* === */}
24
+ {/* Title Bar */}
25
+ {/* The ui-title-bar on the homepage should not have a title attribute */}
26
+ {/* Note: ui-title-bar requires AppBridge to render correctly */}
27
+ {/* === */}
28
+ <ui-title-bar>
29
+ <button variant="primary">Create puzzle</button>
30
+ <section>
31
+ <button>Browse templates</button>
32
+ <button>Import image</button>
33
+ </section>
34
+ </ui-title-bar>
35
+
36
+ {/* === */}
37
+ {/* Banner */}
38
+ {/* Use banners sparingly. Only one banner should be visible at a time. */}
39
+ {/* If dismissed, use local storage or a database entry to avoid showing this section again to the same user. */}
40
+ {/* === */}
41
+ {visible.banner && (
42
+ <s-banner
43
+ dismissible
44
+ onDismiss={() => setVisible({ ...visible, banner: false })}
45
+ >
46
+ 3 of 5 puzzles created.{" "}
47
+ <s-link href="#">Upgrade to Puzzlify Pro</s-link> to create unlimited
48
+ puzzles.
49
+ </s-banner>
50
+ )}
51
+
52
+ {/* === */}
53
+ {/* Setup Guide */}
54
+ {/* Keep instructions brief and direct. Only ask merchants for required information. */}
55
+ {/* If dismissed, use local storage or a database entry to avoid showing this section again to the same user. */}
56
+ {/* === */}
57
+ {visible.setupGuide && (
58
+ <s-section>
59
+ <s-grid gap="base">
60
+ {/* Header */}
61
+ <s-grid gap="small-200">
62
+ <s-grid
63
+ gridTemplateColumns="1fr auto auto"
64
+ gap="small-300"
65
+ alignItems="center"
66
+ >
67
+ <s-heading>Setup Guide</s-heading>
68
+ <s-button
69
+ accessibilityLabel="Dismiss Guide"
70
+ onClick={() => setVisible({ ...visible, setupGuide: false })}
71
+ variant="tertiary"
72
+ tone="neutral"
73
+ icon="x"
74
+ ></s-button>
75
+ <s-button
76
+ accessibilityLabel="Toggle setup guide"
77
+ onClick={(e) =>
78
+ setExpanded({
79
+ ...expanded,
80
+ setupGuide: !expanded.setupGuide,
81
+ })
82
+ }
83
+ variant="tertiary"
84
+ tone="neutral"
85
+ icon={expanded.setupGuide ? "chevron-up" : "chevron-down"}
86
+ ></s-button>
87
+ </s-grid>
88
+ <s-paragraph>
89
+ Use this personalized guide to get your store ready for sales.
90
+ </s-paragraph>
91
+ <s-stack direction="inline" gap="small-200" alignItems="center">
92
+ <s-paragraph tone="subdued">
93
+ {progress} out of 3 steps completed
94
+ </s-paragraph>
95
+ </s-stack>
96
+ </s-grid>
97
+ {/* Steps Container */}
98
+ <s-box
99
+ borderRadius="base"
100
+ border="base"
101
+ background="base"
102
+ display={expanded.setupGuide ? "auto" : "none"}
103
+ >
104
+ {/* Step 1 */}
105
+ <s-box>
106
+ <s-box padding="small">
107
+ <s-grid gridTemplateColumns="1fr auto" gap="base">
108
+ <s-checkbox
109
+ label="Upload an image for your puzzle"
110
+ onInput={(e) =>
111
+ setProgress((prev) =>
112
+ e.target.checked ? prev + 1 : prev - 1,
113
+ )
114
+ }
115
+ ></s-checkbox>
116
+ <s-button
117
+ onClick={(e) => {
118
+ console.log("Toggle step 1 details");
119
+ setExpanded({ ...expanded, step1: !expanded.step1 });
120
+ }
121
+ }
122
+ accessibilityLabel="Toggle step 1 details"
123
+ variant="tertiary"
124
+ icon={expanded.step1 ? "chevron-up" : "chevron-down"}
125
+ ></s-button>
126
+ </s-grid>
127
+ </s-box>
128
+ <s-box
129
+ padding="small"
130
+ paddingBlockStart="none"
131
+ display={expanded.step1 ? "auto" : "none"}
132
+ >
133
+ <s-box
134
+ padding="base"
135
+ background="subdued"
136
+ borderRadius="base"
137
+ >
138
+ <s-grid gridTemplateColumns="1fr auto" gap="base" alignItems="center">
139
+ <s-grid gap="small-200">
140
+ <s-paragraph>
141
+ Start by uploading a high-quality image that will be
142
+ used to create your puzzle. For best results, use
143
+ images that are at least 1200x1200 pixels.
144
+ </s-paragraph>
145
+ <s-stack direction="inline" gap="small-200">
146
+ <s-button variant="primary">
147
+ Upload image
148
+ </s-button>
149
+ <s-button variant="tertiary" tone="neutral">
150
+ Image requirements
151
+ </s-button>
152
+ </s-stack>
153
+ </s-grid>
154
+ <s-box maxBlockSize="80px" maxInlineSize="80px">
155
+ <s-image
156
+ src="https://cdn.shopify.com/s/assets/admin/checkout/settings-customizecart-705f57c725ac05be5a34ec20c05b94298cb8afd10aac7bd9c7ad02030f48cfa0.svg"
157
+ alt="Customize checkout illustration"
158
+ ></s-image>
159
+ </s-box>
160
+ </s-grid>
161
+ </s-box>
162
+ </s-box>
163
+ </s-box>
164
+ {/* Step 2 */}
165
+ <s-divider></s-divider>
166
+ <s-box>
167
+ <s-box padding="small">
168
+ <s-grid gridTemplateColumns="1fr auto" gap="base">
169
+ <s-checkbox
170
+ label="Choose a puzzle template"
171
+ onInput={(e) =>
172
+ setProgress((prev) =>
173
+ e.target.checked ? prev + 1 : prev - 1,
174
+ )
175
+ }
176
+ ></s-checkbox>
177
+ <s-button
178
+ onClick={(e) =>
179
+ setExpanded({ ...expanded, step2: !expanded.step2 })
180
+ }
181
+ accessibilityLabel="Toggle step 2 details"
182
+ variant="tertiary"
183
+ icon={expanded.step2 ? "chevron-up" : "chevron-down"}
184
+ ></s-button>
185
+ </s-grid>
186
+ </s-box>
187
+ <s-box
188
+ padding="small"
189
+ paddingBlockStart="none"
190
+ display={expanded.step2 ? "auto" : "none"}
191
+ >
192
+ <s-box
193
+ padding="base"
194
+ background="subdued"
195
+ borderRadius="base"
196
+ >
197
+ <s-grid gridTemplateColumns="1fr auto" gap="base" alignItems="center">
198
+ <s-grid gap="small-200">
199
+ <s-paragraph>
200
+ Select a template for your puzzle - choose between
201
+ 9-piece (beginner), 16-piece (intermediate), or
202
+ 25-piece (advanced) layouts.
203
+ </s-paragraph>
204
+ <s-stack direction="inline" gap="small-200">
205
+ <s-button variant="primary">Choose template</s-button>
206
+ <s-button variant="tertiary" tone="neutral">
207
+ See all templates
208
+ </s-button>
209
+ </s-stack>
210
+ </s-grid>
211
+ <s-box maxBlockSize="80px" maxInlineSize="80px">
212
+ <s-image
213
+ src="https://cdn.shopify.com/s/assets/admin/checkout/settings-customizecart-705f57c725ac05be5a34ec20c05b94298cb8afd10aac7bd9c7ad02030f48cfa0.svg"
214
+ alt="Customize checkout illustration"
215
+ ></s-image>
216
+ </s-box>
217
+ </s-grid>
218
+ </s-box>
219
+ </s-box>
220
+ </s-box>
221
+ {/* Step 3 */}
222
+ <s-divider></s-divider>
223
+ <s-box>
224
+ <s-box padding="small">
225
+ <s-grid gridTemplateColumns="1fr auto" gap="base">
226
+ <s-checkbox
227
+ label="Customize puzzle piece shapes"
228
+ onInput={(e) =>
229
+ setProgress((prev) =>
230
+ e.target.checked ? prev + 1 : prev - 1,
231
+ )
232
+ }
233
+ ></s-checkbox>
234
+ <s-button
235
+ onClick={(e) =>
236
+ setExpanded({ ...expanded, step3: !expanded.step3 })
237
+ }
238
+ accessibilityLabel="Toggle step 3 details"
239
+ variant="tertiary"
240
+ icon={expanded.step3 ? "chevron-up" : "chevron-down"}
241
+ ></s-button>
242
+ </s-grid>
243
+ </s-box>
244
+ <s-box
245
+ padding="small"
246
+ paddingBlockStart="none"
247
+ display={expanded.step3 ? "auto" : "none"}
248
+ >
249
+ <s-box
250
+ padding="base"
251
+ background="subdued"
252
+ borderRadius="base"
253
+ >
254
+ <s-grid gridTemplateColumns="1fr auto" gap="base" alignItems="center">
255
+ <s-grid gap="small-200">
256
+ <s-paragraph>
257
+ Make your puzzle unique by customizing the shapes of
258
+ individual pieces. Choose from classic, curved, or
259
+ themed piece styles.
260
+ </s-paragraph>
261
+ <s-stack direction="inline" gap="small-200">
262
+ <s-button variant="primary">
263
+ Customize pieces
264
+ </s-button>
265
+ <s-button variant="tertiary" tone="neutral">
266
+ Learn about piece styles
267
+ </s-button>
268
+ </s-stack>
269
+ </s-grid>
270
+ <s-box maxBlockSize="80px" maxInlineSize="80px">
271
+ <s-image
272
+ src="https://cdn.shopify.com/s/assets/admin/checkout/settings-customizecart-705f57c725ac05be5a34ec20c05b94298cb8afd10aac7bd9c7ad02030f48cfa0.svg"
273
+ alt="Customize checkout illustration"
274
+ ></s-image>
275
+ </s-box>
276
+ </s-grid>
277
+ </s-box>
278
+ </s-box>
279
+ </s-box>
280
+ {/* Add additional steps here... */}
281
+ </s-box>
282
+ </s-grid>
283
+ </s-section>
284
+ )}
285
+
286
+ {/* === */}
287
+ {/* Metrics cards */}
288
+ {/* Your app homepage should provide merchants with quick statistics or status updates that help them understand how the app is performing for them. */}
289
+ {/* === */}
290
+ <s-section padding="none">
291
+ <s-box padding="small">
292
+ <s-grid
293
+ gridTemplateColumns="@container (inline-size <= 400px) 1fr, 1fr auto 1fr auto 1fr"
294
+ gap="small"
295
+ >
296
+ <s-clickable
297
+ href="#"
298
+ paddingBlock="small-400"
299
+ paddingInline="small-100"
300
+ borderRadius="base"
301
+ >
302
+ <s-grid gap="small-300">
303
+ <s-heading>Total Designs</s-heading>
304
+ <s-stack direction="inline" gap="small-200">
305
+ <s-text>156</s-text>
306
+ <s-badge tone="success" icon="arrow-up">
307
+ 12%
308
+ </s-badge>
309
+ </s-stack>
310
+ </s-grid>
311
+ </s-clickable>
312
+ <s-divider direction="block"></s-divider>
313
+ <s-clickable
314
+ href="#"
315
+ paddingBlock="small-400"
316
+ paddingInline="small-100"
317
+ borderRadius="base"
318
+ >
319
+ <s-grid gap="small-300">
320
+ <s-heading>Units Sold</s-heading>
321
+ <s-stack direction="inline" gap="small-200">
322
+ <s-text>2,847</s-text>
323
+ <s-badge tone="warning">0%</s-badge>
324
+ </s-stack>
325
+ </s-grid>
326
+ </s-clickable>
327
+ <s-divider direction="block"></s-divider>
328
+ <s-clickable
329
+ href="#"
330
+ paddingBlock="small-400"
331
+ paddingInline="small-100"
332
+ borderRadius="base"
333
+ >
334
+ <s-grid gap="small-300">
335
+ <s-heading>Return Rate</s-heading>
336
+ <s-stack direction="inline" gap="small-200">
337
+ <s-text>3.2%</s-text>
338
+ <s-badge tone="critical" icon="arrow-down">
339
+ 0.8%
340
+ </s-badge>
341
+ </s-stack>
342
+ </s-grid>
343
+ </s-clickable>
344
+ </s-grid>
345
+ </s-box>
346
+ </s-section>
347
+
348
+ {/* === */}
349
+ {/* Callout Card */}
350
+ {/* If dismissed, use local storage or a database entry to avoid showing this section again to the same user. */}
351
+ {/* === */}
352
+ {visible.calloutCard && (
353
+ <s-section>
354
+ <s-grid
355
+ gridTemplateColumns="1fr auto"
356
+ gap="small-400"
357
+ alignItems="start"
358
+ >
359
+ <s-grid
360
+ gridTemplateColumns="@container (inline-size <= 480px) 1fr, auto auto"
361
+ gap="base"
362
+ alignItems="center"
363
+ >
364
+ <s-grid gap="small-200">
365
+ <s-heading>Ready to create your custom puzzle?</s-heading>
366
+ <s-paragraph>
367
+ Start by uploading an image to your gallery or choose from one
368
+ of our templates.
369
+ </s-paragraph>
370
+ <s-stack direction="inline" gap="small-200" wrap="nowrap">
371
+ <s-button onClick={() => console.log("Handle upload here")}>
372
+ Upload image
373
+ </s-button>
374
+ <s-button tone="neutral" variant="tertiary">
375
+ Browse templates
376
+ </s-button>
377
+ </s-stack>
378
+ </s-grid>
379
+ <s-stack alignItems="center">
380
+ <s-box
381
+ maxInlineSize="200px"
382
+ borderRadius="base"
383
+ overflow="hidden"
384
+ >
385
+ <s-image
386
+ src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
387
+ alt="Customize checkout illustration"
388
+ aspectRatio="1/0.5"
389
+ ></s-image>
390
+ </s-box>
391
+ </s-stack>
392
+ </s-grid>
393
+ <s-button
394
+ onClick={() => setVisible({ ...visible, calloutCard: false })}
395
+ icon="x"
396
+ tone="neutral"
397
+ variant="tertiary"
398
+ accessibilityLabel="Dismiss card"
399
+ ></s-button>
400
+ </s-grid>
401
+ </s-section>
402
+ )}
403
+
404
+ {/* === */}
405
+ {/* Puzzle templates */}
406
+ {/* === */}
407
+ <s-section>
408
+ <s-heading>Puzzle Templates</s-heading>
409
+ <s-grid
410
+ gridTemplateColumns="repeat(auto-fit, minmax(155px, 1fr))"
411
+ gap="base"
412
+ >
413
+ {/* Featured template 1 */}
414
+ <s-box border="base" borderRadius="base" overflow="hidden">
415
+ <s-clickable
416
+ href="/puzzles/4-piece"
417
+ accessibilityLabel="4-pieces puzzle template"
418
+ >
419
+ <s-image
420
+ aspectRatio="1/1"
421
+ objectFit="cover"
422
+ alt="Illustration of characters with a 4-piece puzzle"
423
+ src="https://cdn.shopify.com/static/images/polaris/patterns/4-pieces.png"
424
+ ></s-image>
425
+ </s-clickable>
426
+ <s-divider></s-divider>
427
+ <s-grid
428
+ gridTemplateColumns="1fr auto"
429
+ background="base"
430
+ padding="small"
431
+ gap="small"
432
+ alignItems="center"
433
+ >
434
+ <s-heading>4-Pieces</s-heading>
435
+ <s-button
436
+ href="/puzzles/4-piece"
437
+ accessibilityLabel="View 4-pieces puzzle template"
438
+ >
439
+ View
440
+ </s-button>
441
+ </s-grid>
442
+ </s-box>
443
+ {/* Featured template 2 */}
444
+ <s-box
445
+ border="base"
446
+ borderRadius="base"
447
+ background="transparent"
448
+ overflow="hidden"
449
+ >
450
+ <s-clickable
451
+ href="/puzzles/9-piece"
452
+ accessibilityLabel="9-pieces puzzle template"
453
+ >
454
+ <s-image
455
+ aspectRatio="1/1"
456
+ objectFit="cover"
457
+ src="https://cdn.shopify.com/static/images/polaris/patterns/9-pieces.png"
458
+ ></s-image>
459
+ </s-clickable>
460
+ <s-divider></s-divider>
461
+ <s-grid
462
+ gridTemplateColumns="1fr auto"
463
+ background="base"
464
+ padding="small"
465
+ gap="small"
466
+ alignItems="center"
467
+ >
468
+ <s-heading>9-Pieces</s-heading>
469
+ <s-button
470
+ href="/puzzles/9-piece"
471
+ accessibilityLabel="View 9-pieces puzzle template"
472
+ >
473
+ View
474
+ </s-button>
475
+ </s-grid>
476
+ </s-box>
477
+ {/* Featured template 3 */}
478
+ <s-box
479
+ border="base"
480
+ borderRadius="base"
481
+ background="transparent"
482
+ overflow="hidden"
483
+ >
484
+ <s-clickable
485
+ href="/puzzles/16-piece"
486
+ accessibilityLabel="16-pieces puzzle template"
487
+ >
488
+ <s-image
489
+ aspectRatio="1/1"
490
+ objectFit="cover"
491
+ src="https://cdn.shopify.com/static/images/polaris/patterns/16-pieces.png"
492
+ ></s-image>
493
+ </s-clickable>
494
+ <s-divider></s-divider>
495
+ <s-grid
496
+ gridTemplateColumns="1fr auto"
497
+ background="base"
498
+ padding="small"
499
+ gap="small"
500
+ alignItems="center"
501
+ >
502
+ <s-heading>16-Pieces</s-heading>
503
+ <s-button
504
+ href="/puzzles/16-piece"
505
+ accessibilityLabel="View 16-pieces puzzle template"
506
+ >
507
+ View
508
+ </s-button>
509
+ </s-grid>
510
+ </s-box>
511
+ </s-grid>
512
+ <s-stack
513
+ direction="inline"
514
+ alignItems="center"
515
+ justifyContent="center"
516
+ paddingBlockStart="base"
517
+ >
518
+ <s-link href="/puzzles">See all puzzle templates</s-link>
519
+ </s-stack>
520
+ </s-section>
521
+
522
+ {/* === */}
523
+ {/* News */}
524
+ {/* === */}
525
+ <s-section>
526
+ <s-heading>News</s-heading>
527
+ <s-grid
528
+ gridTemplateColumns="repeat(auto-fit, minmax(240px, 1fr))"
529
+ gap="base"
530
+ >
531
+ {/* News item 1 */}
532
+ <s-grid
533
+ background="base"
534
+ border="base"
535
+ borderRadius="base"
536
+ padding="base"
537
+ gap="small-400"
538
+ >
539
+ <s-text>Jan 21, 2025</s-text>
540
+ <s-link href="/news/new-shapes-and-themes">
541
+ <s-heading>New puzzle shapes and themes added</s-heading>
542
+ </s-link>
543
+ <s-paragraph>
544
+ We've added 5 new puzzle piece shapes and 3 seasonal themes to
545
+ help you create more engaging and unique puzzles for your
546
+ customers.
547
+ </s-paragraph>
548
+ </s-grid>
549
+ {/* News item 2 */}
550
+ <s-grid
551
+ background="base"
552
+ border="base"
553
+ borderRadius="base"
554
+ padding="base"
555
+ gap="small-400"
556
+ >
557
+ <s-text>Nov 6, 2024</s-text>
558
+ <s-link href="/news/puzzle-difficulty-customization">
559
+ <s-heading>Puzzle difficulty customization features</s-heading>
560
+ </s-link>
561
+ <s-paragraph>
562
+ Now you can fine-tune the difficulty of your puzzles with new
563
+ rotation controls, edge highlighting options, and piece
564
+ recognition settings.
565
+ </s-paragraph>
566
+ </s-grid>
567
+ </s-grid>
568
+ <s-stack
569
+ direction="inline"
570
+ alignItems="center"
571
+ justifyContent="center"
572
+ paddingBlockStart="base"
573
+ >
574
+ <s-link href="/news">See all news items</s-link>
575
+ </s-stack>
576
+ </s-section>
577
+
578
+ {/* === */}
579
+ {/* Featured apps */}
580
+ {/* If dismissed, use local storage or a database entry to avoid showing this section again to the same user. */}
581
+ {/* === */}
582
+ {visible.featuredApps && (
583
+ <s-section>
584
+ <s-grid
585
+ gridTemplateColumns="1fr auto"
586
+ alignItems="center"
587
+ paddingBlockEnd="small-400"
588
+ >
589
+ <s-heading>Featured apps</s-heading>
590
+ <s-button
591
+ onClick={() => setVisible({ ...visible, featuredApps: false })}
592
+ icon="x"
593
+ tone="neutral"
594
+ variant="tertiary"
595
+ accessibilityLabel="Dismiss featured apps section"
596
+ ></s-button>
597
+ </s-grid>
598
+ <s-grid
599
+ gridTemplateColumns="repeat(auto-fit, minmax(240px, 1fr))"
600
+ gap="base"
601
+ >
602
+ {/* Featured app 1 */}
603
+ <s-clickable
604
+ href="https://apps.shopify.com/flow"
605
+ border="base"
606
+ borderRadius="base"
607
+ padding="base"
608
+ inlineSize="100%"
609
+ accessibilityLabel="Download Shopify Flow"
610
+ >
611
+ <s-grid
612
+ gridTemplateColumns="auto 1fr auto"
613
+ alignItems="stretch"
614
+ gap="base"
615
+ >
616
+ <s-box
617
+ border="base"
618
+ borderRadius="base"
619
+ overflow="hidden"
620
+ maxInlineSize="40px"
621
+ maxBlockSize="40px"
622
+ >
623
+ <s-image
624
+ src="https://cdn.shopify.com/app-store/listing_images/15100ebca4d221b650a7671125cd1444/icon/CO25r7-jh4ADEAE=.png"
625
+ alt="Shopify Flow icon"
626
+ ></s-image>
627
+ </s-box>
628
+ <s-box>
629
+ <s-heading>Shopify Flow</s-heading>
630
+ <s-paragraph>Free</s-paragraph>
631
+ <s-paragraph>
632
+ Automate everything and get back to business.
633
+ </s-paragraph>
634
+ </s-box>
635
+ <s-stack justifyContent="start">
636
+ <s-button
637
+ href="https://apps.shopify.com/flow"
638
+ icon="download"
639
+ accessibilityLabel="Download Shopify Flow"
640
+ ></s-button>
641
+ </s-stack>
642
+ </s-grid>
643
+ </s-clickable>
644
+ {/* Featured app 2 */}
645
+ <s-clickable
646
+ href="https://apps.shopify.com/planet"
647
+ border="base"
648
+ borderRadius="base"
649
+ padding="base"
650
+ inlineSize="100%"
651
+ accessibilityLabel="Download Shopify Planet"
652
+ >
653
+ <s-grid
654
+ gridTemplateColumns="auto 1fr auto"
655
+ alignItems="stretch"
656
+ gap="base"
657
+ >
658
+ <s-box
659
+ border="base"
660
+ borderRadius="base"
661
+ overflow="hidden"
662
+ maxInlineSize="40px"
663
+ maxBlockSize="40px"
664
+ >
665
+ <s-image
666
+ src="https://cdn.shopify.com/app-store/listing_images/87176a11f3714753fdc2e1fc8bbf0415/icon/CIqiqqXsiIADEAE=.png"
667
+ alt="Shopify Planet icon"
668
+ ></s-image>
669
+ </s-box>
670
+ <s-box>
671
+ <s-heading>Shopify Planet</s-heading>
672
+ <s-paragraph>Free</s-paragraph>
673
+ <s-paragraph>
674
+ Offer carbon-neutral shipping and showcase your commitment.
675
+ </s-paragraph>
676
+ </s-box>
677
+ <s-stack justifyContent="start">
678
+ <s-button
679
+ href="https://apps.shopify.com/planet"
680
+ icon="download"
681
+ accessibilityLabel="Download Shopify Planet"
682
+ ></s-button>
683
+ </s-stack>
684
+ </s-grid>
685
+ </s-clickable>
686
+ </s-grid>
687
+ </s-section>
688
+ )}
689
+ </s-page>
690
+ );
691
+ }