@shopify/ui-extensions 2025.10.0-rc.35 → 2025.10.0-rc.37

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 (176) hide show
  1. package/build/ts/surfaces/admin/components/AdminAction.d.ts +1 -1
  2. package/build/ts/surfaces/admin/components/AdminBlock.d.ts +1 -1
  3. package/build/ts/surfaces/admin/components/AdminPrintAction.d.ts +1 -1
  4. package/build/ts/surfaces/admin/components/Avatar.d.ts +1 -1
  5. package/build/ts/surfaces/admin/components/Badge.d.ts +1 -1
  6. package/build/ts/surfaces/admin/components/Banner.d.ts +1 -1
  7. package/build/ts/surfaces/admin/components/Box.d.ts +1 -1
  8. package/build/ts/surfaces/admin/components/Button.d.ts +1 -1
  9. package/build/ts/surfaces/admin/components/ButtonGroup.d.ts +1 -1
  10. package/build/ts/surfaces/admin/components/Checkbox.d.ts +1 -1
  11. package/build/ts/surfaces/admin/components/Chip.d.ts +1 -1
  12. package/build/ts/surfaces/admin/components/Choice.d.ts +2 -11
  13. package/build/ts/surfaces/admin/components/ChoiceList.d.ts +1 -1
  14. package/build/ts/surfaces/admin/components/Clickable.d.ts +1 -1
  15. package/build/ts/surfaces/admin/components/ClickableChip.d.ts +1 -1
  16. package/build/ts/surfaces/admin/components/ColorField.d.ts +1 -1
  17. package/build/ts/surfaces/admin/components/ColorPicker.d.ts +1 -1
  18. package/build/ts/surfaces/admin/components/DatePicker.d.ts +1 -1
  19. package/build/ts/surfaces/admin/components/Divider.d.ts +1 -1
  20. package/build/ts/surfaces/admin/components/DropZone.d.ts +1 -1
  21. package/build/ts/surfaces/admin/components/EmailField.d.ts +1 -1
  22. package/build/ts/surfaces/admin/components/Form.d.ts +1 -1
  23. package/build/ts/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  24. package/build/ts/surfaces/admin/components/Grid.d.ts +1 -1
  25. package/build/ts/surfaces/admin/components/GridItem.d.ts +1 -1
  26. package/build/ts/surfaces/admin/components/Heading.d.ts +1 -1
  27. package/build/ts/surfaces/admin/components/Icon.d.ts +1 -1
  28. package/build/ts/surfaces/admin/components/Image.d.ts +1 -1
  29. package/build/ts/surfaces/admin/components/Link.d.ts +1 -1
  30. package/build/ts/surfaces/admin/components/ListItem.d.ts +1 -1
  31. package/build/ts/surfaces/admin/components/Menu.d.ts +2 -9
  32. package/build/ts/surfaces/admin/components/Modal.d.ts +13 -4
  33. package/build/ts/surfaces/admin/components/MoneyField.d.ts +1 -1
  34. package/build/ts/surfaces/admin/components/NumberField.d.ts +1 -1
  35. package/build/ts/surfaces/admin/components/Option.d.ts +1 -1
  36. package/build/ts/surfaces/admin/components/OptionGroup.d.ts +1 -1
  37. package/build/ts/surfaces/admin/components/OrderedList.d.ts +1 -1
  38. package/build/ts/surfaces/admin/components/Page.d.ts +1 -1
  39. package/build/ts/surfaces/admin/components/Paragraph.d.ts +1 -1
  40. package/build/ts/surfaces/admin/components/PasswordField.d.ts +1 -1
  41. package/build/ts/surfaces/admin/components/QueryContainer/QueryContainer.doc.d.ts.map +1 -1
  42. package/build/ts/surfaces/admin/components/QueryContainer.d.ts +1 -1
  43. package/build/ts/surfaces/admin/components/SearchField.d.ts +1 -1
  44. package/build/ts/surfaces/admin/components/Section.d.ts +1 -1
  45. package/build/ts/surfaces/admin/components/Select.d.ts +1 -1
  46. package/build/ts/surfaces/admin/components/Spinner.d.ts +1 -1
  47. package/build/ts/surfaces/admin/components/Stack.d.ts +1 -1
  48. package/build/ts/surfaces/admin/components/Switch.d.ts +1 -1
  49. package/build/ts/surfaces/admin/components/Table.d.ts +1 -1
  50. package/build/ts/surfaces/admin/components/TableBody.d.ts +1 -1
  51. package/build/ts/surfaces/admin/components/TableCell.d.ts +1 -1
  52. package/build/ts/surfaces/admin/components/TableHeader.d.ts +1 -1
  53. package/build/ts/surfaces/admin/components/TableHeaderRow.d.ts +1 -1
  54. package/build/ts/surfaces/admin/components/TableRow.d.ts +1 -1
  55. package/build/ts/surfaces/admin/components/Text.d.ts +1 -1
  56. package/build/ts/surfaces/admin/components/TextArea.d.ts +1 -1
  57. package/build/ts/surfaces/admin/components/TextField.d.ts +1 -1
  58. package/build/ts/surfaces/admin/components/Thumbnail.d.ts +1 -1
  59. package/build/ts/surfaces/admin/components/Tooltip.d.ts +2 -9
  60. package/build/ts/surfaces/admin/components/URLField.d.ts +1 -1
  61. package/build/ts/surfaces/admin/components/UnorderedList.d.ts +1 -1
  62. package/build/ts/surfaces/admin/components/patterns/appCard.ab.doc.d.ts +4 -0
  63. package/build/ts/surfaces/admin/components/patterns/appCard.ab.doc.d.ts.map +1 -0
  64. package/build/ts/surfaces/admin/components/patterns/calloutCard.ab.doc.d.ts +4 -0
  65. package/build/ts/surfaces/admin/components/patterns/calloutCard.ab.doc.d.ts.map +1 -0
  66. package/build/ts/surfaces/admin/components/patterns/details.ab.doc.d.ts.map +1 -1
  67. package/build/ts/surfaces/admin/components/patterns/emptyState.ab.doc.d.ts +4 -0
  68. package/build/ts/surfaces/admin/components/patterns/emptyState.ab.doc.d.ts.map +1 -0
  69. package/build/ts/surfaces/admin/components/patterns/homepage.ab.doc.d.ts.map +1 -1
  70. package/build/ts/surfaces/admin/components/patterns/index.ab.doc.d.ts.map +1 -1
  71. package/build/ts/surfaces/admin/components/patterns/indexTable.ab.doc.d.ts +4 -0
  72. package/build/ts/surfaces/admin/components/patterns/indexTable.ab.doc.d.ts.map +1 -0
  73. package/build/ts/surfaces/admin/components/patterns/interstitialNav.ab.doc.d.ts +4 -0
  74. package/build/ts/surfaces/admin/components/patterns/interstitialNav.ab.doc.d.ts.map +1 -0
  75. package/build/ts/surfaces/admin/components/patterns/mediaCard.ab.doc.d.ts +4 -0
  76. package/build/ts/surfaces/admin/components/patterns/mediaCard.ab.doc.d.ts.map +1 -0
  77. package/build/ts/surfaces/admin/components/patterns/metricsCard.ab.doc.d.ts +4 -0
  78. package/build/ts/surfaces/admin/components/patterns/metricsCard.ab.doc.d.ts.map +1 -0
  79. package/build/ts/surfaces/admin/components/patterns/settings.ab.doc.d.ts.map +1 -1
  80. package/build/ts/surfaces/admin/components/patterns/setupGuide.ab.doc.d.ts +4 -0
  81. package/build/ts/surfaces/admin/components/patterns/setupGuide.ab.doc.d.ts.map +1 -0
  82. package/build/ts/surfaces/admin/components/shared.d.ts +1 -1
  83. package/build/ts/surfaces/point-of-sale/api.d.ts +1 -1
  84. package/build/ts/surfaces/point-of-sale/api.d.ts.map +1 -1
  85. package/build/ts/surfaces/point-of-sale/types/cart.d.ts +4 -17
  86. package/build/ts/surfaces/point-of-sale/types/cart.d.ts.map +1 -1
  87. package/build/ts/surfaces/point-of-sale/types/discount-allocation.d.ts +5 -0
  88. package/build/ts/surfaces/point-of-sale/types/discount-allocation.d.ts.map +1 -0
  89. package/build/ts/surfaces/point-of-sale/types/money.d.ts +4 -0
  90. package/build/ts/surfaces/point-of-sale/types/money.d.ts.map +1 -1
  91. package/build/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +1 -1
  93. package/src/surfaces/admin/components/AdminAction.d.ts +1 -1
  94. package/src/surfaces/admin/components/AdminBlock.d.ts +1 -1
  95. package/src/surfaces/admin/components/AdminPrintAction.d.ts +1 -1
  96. package/src/surfaces/admin/components/Avatar.d.ts +1 -1
  97. package/src/surfaces/admin/components/Badge.d.ts +1 -1
  98. package/src/surfaces/admin/components/Banner.d.ts +1 -1
  99. package/src/surfaces/admin/components/Box.d.ts +1 -1
  100. package/src/surfaces/admin/components/Button.d.ts +1 -1
  101. package/src/surfaces/admin/components/ButtonGroup.d.ts +1 -1
  102. package/src/surfaces/admin/components/Checkbox.d.ts +1 -1
  103. package/src/surfaces/admin/components/Chip.d.ts +1 -1
  104. package/src/surfaces/admin/components/Choice.d.ts +2 -11
  105. package/src/surfaces/admin/components/ChoiceList.d.ts +1 -1
  106. package/src/surfaces/admin/components/Clickable.d.ts +1 -1
  107. package/src/surfaces/admin/components/ClickableChip.d.ts +1 -1
  108. package/src/surfaces/admin/components/ColorField.d.ts +1 -1
  109. package/src/surfaces/admin/components/ColorPicker.d.ts +1 -1
  110. package/src/surfaces/admin/components/DatePicker.d.ts +1 -1
  111. package/src/surfaces/admin/components/Divider.d.ts +1 -1
  112. package/src/surfaces/admin/components/DropZone.d.ts +1 -1
  113. package/src/surfaces/admin/components/EmailField.d.ts +1 -1
  114. package/src/surfaces/admin/components/Form.d.ts +1 -1
  115. package/src/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  116. package/src/surfaces/admin/components/Grid.d.ts +1 -1
  117. package/src/surfaces/admin/components/GridItem.d.ts +1 -1
  118. package/src/surfaces/admin/components/Heading.d.ts +1 -1
  119. package/src/surfaces/admin/components/Icon.d.ts +1 -1
  120. package/src/surfaces/admin/components/Image.d.ts +1 -1
  121. package/src/surfaces/admin/components/Link.d.ts +1 -1
  122. package/src/surfaces/admin/components/ListItem.d.ts +1 -1
  123. package/src/surfaces/admin/components/Menu.d.ts +2 -9
  124. package/src/surfaces/admin/components/Modal.d.ts +13 -4
  125. package/src/surfaces/admin/components/MoneyField.d.ts +1 -1
  126. package/src/surfaces/admin/components/NumberField.d.ts +1 -1
  127. package/src/surfaces/admin/components/Option.d.ts +1 -1
  128. package/src/surfaces/admin/components/OptionGroup.d.ts +1 -1
  129. package/src/surfaces/admin/components/OrderedList.d.ts +1 -1
  130. package/src/surfaces/admin/components/Page.d.ts +1 -1
  131. package/src/surfaces/admin/components/Paragraph.d.ts +1 -1
  132. package/src/surfaces/admin/components/PasswordField.d.ts +1 -1
  133. package/src/surfaces/admin/components/Popover/examples/default.html +2 -2
  134. package/src/surfaces/admin/components/QueryContainer.d.ts +1 -1
  135. package/src/surfaces/admin/components/SearchField.d.ts +1 -1
  136. package/src/surfaces/admin/components/Section.d.ts +1 -1
  137. package/src/surfaces/admin/components/Select.d.ts +1 -1
  138. package/src/surfaces/admin/components/Spinner.d.ts +1 -1
  139. package/src/surfaces/admin/components/Stack.d.ts +1 -1
  140. package/src/surfaces/admin/components/Switch.d.ts +1 -1
  141. package/src/surfaces/admin/components/Table.d.ts +1 -1
  142. package/src/surfaces/admin/components/TableBody.d.ts +1 -1
  143. package/src/surfaces/admin/components/TableCell.d.ts +1 -1
  144. package/src/surfaces/admin/components/TableHeader.d.ts +1 -1
  145. package/src/surfaces/admin/components/TableHeaderRow.d.ts +1 -1
  146. package/src/surfaces/admin/components/TableRow.d.ts +1 -1
  147. package/src/surfaces/admin/components/Text.d.ts +1 -1
  148. package/src/surfaces/admin/components/TextArea.d.ts +1 -1
  149. package/src/surfaces/admin/components/TextField.d.ts +1 -1
  150. package/src/surfaces/admin/components/Thumbnail.d.ts +1 -1
  151. package/src/surfaces/admin/components/Tooltip.d.ts +2 -9
  152. package/src/surfaces/admin/components/URLField.d.ts +1 -1
  153. package/src/surfaces/admin/components/UnorderedList.d.ts +1 -1
  154. package/src/surfaces/admin/components/patterns/examples/appCard.html +30 -0
  155. package/src/surfaces/admin/components/patterns/examples/calloutCard.html +35 -0
  156. package/src/surfaces/admin/components/patterns/examples/details.html +11 -5
  157. package/src/surfaces/admin/components/patterns/examples/details.jsx +9 -7
  158. package/src/surfaces/admin/components/patterns/examples/emptyState.html +27 -0
  159. package/src/surfaces/admin/components/patterns/examples/homepage.html +24 -48
  160. package/src/surfaces/admin/components/patterns/examples/homepage.jsx +21 -49
  161. package/src/surfaces/admin/components/patterns/examples/index.html +21 -23
  162. package/src/surfaces/admin/components/patterns/examples/index.jsx +19 -24
  163. package/src/surfaces/admin/components/patterns/examples/indexTable.html +132 -0
  164. package/src/surfaces/admin/components/patterns/examples/interstitialNav.html +72 -0
  165. package/src/surfaces/admin/components/patterns/examples/mediaCard.html +23 -0
  166. package/src/surfaces/admin/components/patterns/examples/metricsCard.html +51 -0
  167. package/src/surfaces/admin/components/patterns/examples/settings.html +90 -49
  168. package/src/surfaces/admin/components/patterns/examples/settings.jsx +92 -47
  169. package/src/surfaces/admin/components/patterns/examples/setupGuide.html +91 -0
  170. package/src/surfaces/admin/components/patterns/index.ab.doc.ts +5 -4
  171. package/src/surfaces/admin/components/shared.d.ts +1 -1
  172. package/src/surfaces/admin/components.d.ts +15 -6
  173. package/src/surfaces/point-of-sale/api.ts +0 -1
  174. package/src/surfaces/point-of-sale/types/cart.ts +4 -18
  175. package/src/surfaces/point-of-sale/types/discount-allocation.ts +5 -0
  176. package/src/surfaces/point-of-sale/types/money.ts +5 -0
@@ -3,14 +3,14 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <script src="https://cdn.shopify.com/shopifycloud/app-bridge-ui-experimental.js"></script>
6
+ <script src="https://cdn.shopify.com/shopifycloud/polaris.js"></script>
7
7
  <title>Pattern</title>
8
8
  </head>
9
9
  <body>
10
10
  <!-- === -->
11
11
  <!-- Details page pattern -->
12
12
  <!-- === -->
13
- <form data-save-bar onSubmit="" onReset="">
13
+ <form data-save-bar>
14
14
  <s-page>
15
15
  <!-- === -->
16
16
  <!-- Title Bar -->
@@ -105,6 +105,7 @@
105
105
  maxBlockSize="40px"
106
106
  >
107
107
  <s-image
108
+ alt="16-pieces puzzle template"
108
109
  src="https://cdn.shopify.com/static/images/polaris/patterns/16-pieces.png"
109
110
  ></s-image>
110
111
  </s-box>
@@ -138,6 +139,7 @@
138
139
  maxBlockSize="40px"
139
140
  >
140
141
  <s-image
142
+ alt="9-pieces puzzle template"
141
143
  src="https://cdn.shopify.com/static/images/polaris/patterns/9-pieces.png"
142
144
  ></s-image>
143
145
  </s-box>
@@ -216,8 +218,12 @@
216
218
  <s-list-item>Pieces can be rotated</s-list-item>
217
219
  <s-list-item>No time limit</s-list-item>
218
220
  <s-list-item>
219
- Current status:
220
- <s-badge color="base" tone="success"> Active </s-badge>
221
+ <s-stack direction="inline" gap="small">
222
+ <s-text>Current status:</s-text>
223
+ <s-badge color="base" tone="success">
224
+ Active
225
+ </s-badge>
226
+ </s-stack>
221
227
  </s-list-item>
222
228
  </s-unordered-list>
223
229
  </s-section>
@@ -225,4 +231,4 @@
225
231
  </s-page>
226
232
  </form>
227
233
  </body>
228
- </html>
234
+ </html>
@@ -125,7 +125,7 @@ export default function DetailsPage() {
125
125
  maxInlineSize="40px"
126
126
  maxBlockSize="40px"
127
127
  >
128
- <s-image src="https://cdn.shopify.com/static/images/polaris/patterns/16-pieces.png"></s-image>
128
+ <s-image alt="16-pieces puzzle template" src="https://cdn.shopify.com/static/images/polaris/patterns/16-pieces.png"></s-image>
129
129
  </s-box>
130
130
  16-pieces puzzle
131
131
  </s-stack>
@@ -160,7 +160,7 @@ export default function DetailsPage() {
160
160
  maxInlineSize="40px"
161
161
  maxBlockSize="40px"
162
162
  >
163
- <s-image src="https://cdn.shopify.com/static/images/polaris/patterns/9-pieces.png"></s-image>
163
+ <s-image alt="9-pieces puzzle template" src="https://cdn.shopify.com/static/images/polaris/patterns/9-pieces.png"></s-image>
164
164
  </s-box>
165
165
  9-pieces puzzle
166
166
  </s-stack>
@@ -248,10 +248,12 @@ export default function DetailsPage() {
248
248
  <s-list-item>Pieces can be rotated</s-list-item>
249
249
  <s-list-item>No time limit</s-list-item>
250
250
  <s-list-item>
251
- Current status:{" "}
252
- <s-badge color="base" tone="success">
253
- Active
254
- </s-badge>
251
+ <s-stack direction="inline" gap="small">
252
+ <s-text>Current status:</s-text>
253
+ <s-badge color="base" tone="success">
254
+ Active
255
+ </s-badge>
256
+ </s-stack>
255
257
  </s-list-item>
256
258
  </s-unordered-list>
257
259
  </s-section>
@@ -259,4 +261,4 @@ export default function DetailsPage() {
259
261
  </s-page>
260
262
  </form>
261
263
  );
262
- }
264
+ }
@@ -0,0 +1,27 @@
1
+ <s-section accessibilityLabel="Empty state section">
2
+ <s-grid gap="base" justifyItems="center" paddingBlock="large-400">
3
+ <s-box maxInlineSize="200px" maxBlockSize="200px">
4
+ <s-image
5
+ aspectRatio="1/0.5"
6
+ src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
7
+ alt="A stylized graphic of four characters, each holding a puzzle piece"
8
+ />
9
+ </s-box>
10
+ <s-grid
11
+ justifyItems="center"
12
+ maxInlineSize="450px"
13
+ gap="base"
14
+ >
15
+ <s-stack alignItems="center">
16
+ <s-heading>Start creating puzzles</s-heading>
17
+ <s-paragraph>
18
+ Create and manage your collection of puzzles for players to enjoy.
19
+ </s-paragraph>
20
+ </s-stack>
21
+ <s-button-group>
22
+ <s-button aria-label="Learn more about creating puzzles"> Learn more </s-button>
23
+ <s-button variant="primary" aria-label="Add a new puzzle"> Create puzzle </s-button>
24
+ </s-button-group>
25
+ </s-grid>
26
+ </s-grid>
27
+ </s-section>
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <script src="https://cdn.shopify.com/shopifycloud/app-bridge-ui-experimental.js"></script>
6
+ <script src="https://cdn.shopify.com/shopifycloud/polaris.js"></script>
7
7
  <title>Pattern</title>
8
8
  <script>
9
9
  // Simple global object to store handlers
@@ -62,7 +62,7 @@
62
62
  <!-- === -->
63
63
  <!-- Home page pattern -->
64
64
  <!-- === -->
65
- <s-page inlineSize="small">
65
+ <s-page>
66
66
  <!-- === -->
67
67
  <!-- Title Bar -->
68
68
  <!-- The ui-title-bar on the homepage should not have a title attribute -->
@@ -118,16 +118,13 @@
118
118
  <s-paragraph>
119
119
  Use this personalized guide to get your store ready for sales.
120
120
  </s-paragraph>
121
- <s-stack direction="inline" gap="small-200" alignItems="center">
122
- <s-paragraph id="progress-text" tone="subdued">0 out of 3 steps completed</s-paragraph>
123
- </s-stack>
121
+ <s-paragraph id="progress-text" color="subdued">0 out of 3 steps completed</s-paragraph>
124
122
  </s-grid>
125
123
  <!-- Steps Container -->
126
124
  <s-box id="steps-container" borderRadius="base" border="base" background="base">
127
125
  <!-- Step 1 -->
128
126
  <s-box>
129
- <s-box padding="small">
130
- <s-grid gridTemplateColumns="1fr auto" gap="base">
127
+ <s-grid gridTemplateColumns="1fr auto" gap="base" padding="small">
131
128
  <s-checkbox
132
129
  label="Upload an image for your puzzle"
133
130
  onInput="window.puzzleApp.updateProgress(this, document.getElementById('progress-text'))"
@@ -140,17 +137,16 @@
140
137
  icon="chevron-down"
141
138
  ></s-button>
142
139
  </s-grid>
143
- </s-box>
144
140
  <s-box id="step1-details" padding="small" paddingBlockStart="none" style="display: none;">
145
141
  <s-box padding="base" background="subdued" borderRadius="base">
146
- <s-grid gridTemplateColumns="1fr auto" gap="base" alignItems="center">
142
+ <s-grid gridTemplateColumns="1fr auto" gap="base">
147
143
  <s-grid gap="small-200">
148
144
  <s-paragraph>
149
145
  Start by uploading a high-quality image that will be used to create your
150
146
  puzzle. For best results, use images that are at least 1200x1200 pixels.
151
147
  </s-paragraph>
152
148
  <s-stack direction="inline" gap="small-200">
153
- <s-button variant="primary" onClick="console.log('clicked')">
149
+ <s-button variant="primary">
154
150
  Upload image
155
151
  </s-button>
156
152
  <s-button variant="tertiary" tone="neutral"> Image requirements </s-button>
@@ -169,8 +165,7 @@
169
165
  <!-- Step 2 -->
170
166
  <s-divider></s-divider>
171
167
  <s-box>
172
- <s-box padding="small">
173
- <s-grid gridTemplateColumns="1fr auto" gap="base">
168
+ <s-grid gridTemplateColumns="1fr auto" gap="base" padding="small">
174
169
  <s-checkbox
175
170
  label="Choose a puzzle template"
176
171
  onInput="window.puzzleApp.updateProgress(this, document.getElementById('progress-text'))"
@@ -183,10 +178,9 @@
183
178
  icon="chevron-down"
184
179
  ></s-button>
185
180
  </s-grid>
186
- </s-box>
187
181
  <s-box id="step2-details" padding="small" paddingBlockStart="none" style="display: none;">
188
182
  <s-box padding="base" background="subdued" borderRadius="base">
189
- <s-grid gridTemplateColumns="1fr auto" gap="base" alignItems="center">
183
+ <s-grid gridTemplateColumns="1fr auto" gap="base">
190
184
  <s-grid gap="small-200">
191
185
  <s-paragraph>
192
186
  Select a template for your puzzle - choose between 9-piece (beginner),
@@ -210,8 +204,7 @@
210
204
  <!-- Step 3 -->
211
205
  <s-divider></s-divider>
212
206
  <s-box>
213
- <s-box padding="small">
214
- <s-grid gridTemplateColumns="1fr auto" gap="base">
207
+ <s-grid gridTemplateColumns="1fr auto" gap="base" padding="small">
215
208
  <s-checkbox
216
209
  label="Customize puzzle piece shapes"
217
210
  onInput="window.puzzleApp.updateProgress(this, document.getElementById('progress-text'))"
@@ -227,7 +220,7 @@
227
220
  </s-box>
228
221
  <s-box id="step3-details" padding="small" paddingBlockStart="none" style="display: none;">
229
222
  <s-box padding="base" background="subdued" borderRadius="base">
230
- <s-grid gridTemplateColumns="1fr auto" gap="base" alignItems="center">
223
+ <s-grid gridTemplateColumns="1fr auto" gap="base">
231
224
  <s-grid gap="small-200">
232
225
  <s-paragraph>
233
226
  Make your puzzle unique by customizing the shapes of individual pieces.
@@ -247,7 +240,6 @@
247
240
  ></s-image>
248
241
  </s-box>
249
242
  </s-grid>
250
- </s-box>
251
243
  </s-box>
252
244
  </s-box>
253
245
  <!-- Add additional steps here... -->
@@ -258,8 +250,7 @@
258
250
  <!-- Metrics cards -->
259
251
  <!-- Your app homepage should provide merchants with quick statistics or status updates that help them understand how the app is performing for them. -->
260
252
  <!-- === -->
261
- <s-section padding="none">
262
- <s-box padding="small">
253
+ <s-section padding="small">
263
254
  <s-grid
264
255
  gridTemplateColumns="@container (inline-size <= 400px) 1fr, 1fr auto 1fr auto 1fr"
265
256
  gap="small"
@@ -309,7 +300,6 @@
309
300
  </s-grid>
310
301
  </s-clickable>
311
302
  </s-grid>
312
- </s-box>
313
303
  </s-section>
314
304
  <!-- === -->
315
305
  <!-- Callout Card -->
@@ -327,12 +317,11 @@
327
317
  <s-paragraph>
328
318
  Start by uploading an image to your gallery or choose from one of our templates.
329
319
  </s-paragraph>
330
- <s-stack direction="inline" gap="small-200" wrap="nowrap">
331
- <s-button onClick="console.log('clicked')"> Upload image </s-button>
320
+ <s-button-group>
321
+ <s-button> Upload image </s-button>
332
322
  <s-button tone="neutral" variant="tertiary"> Browse templates </s-button>
333
- </s-stack>
323
+ </s-button-group>
334
324
  </s-grid>
335
- <s-stack alignItems="center">
336
325
  <s-box maxInlineSize="200px" borderRadius="base" overflow="hidden">
337
326
  <s-image
338
327
  src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
@@ -340,7 +329,6 @@
340
329
  aspectRatio="1/0.5"
341
330
  ></s-image>
342
331
  </s-box>
343
- </s-stack>
344
332
  </s-grid>
345
333
  <s-button
346
334
  onClick="window.puzzleApp.dismissSection(document.getElementById('callout-section'))"
@@ -363,7 +351,7 @@
363
351
  <s-image
364
352
  aspectRatio="1/1"
365
353
  objectFit="cover"
366
- alt="Illustration of characters with a 4-piece puzzle"
354
+ alt="4-pieces puzzle template"
367
355
  src="https://cdn.shopify.com/static/images/polaris/patterns/4-pieces.png"
368
356
  ></s-image>
369
357
  </s-clickable>
@@ -387,6 +375,7 @@
387
375
  <s-image
388
376
  aspectRatio="1/1"
389
377
  objectFit="cover"
378
+ alt="9-pieces puzzle template"
390
379
  src="https://cdn.shopify.com/static/images/polaris/patterns/9-pieces.png"
391
380
  ></s-image>
392
381
  </s-clickable>
@@ -410,6 +399,7 @@
410
399
  <s-image
411
400
  aspectRatio="1/1"
412
401
  objectFit="cover"
402
+ alt="16-pieces puzzle template"
413
403
  src="https://cdn.shopify.com/static/images/polaris/patterns/16-pieces.png"
414
404
  ></s-image>
415
405
  </s-clickable>
@@ -516,18 +506,11 @@
516
506
  accessibilityLabel="Download Shopify Flow"
517
507
  >
518
508
  <s-grid gridTemplateColumns="auto 1fr auto" alignItems="stretch" gap="base">
519
- <s-box
520
- border="base"
521
- borderRadius="base"
522
- overflow="hidden"
523
- maxInlineSize="40px"
524
- maxBlockSize="40px"
525
- >
526
- <s-image
509
+ <s-thumbnail
510
+ size="small"
527
511
  src="https://cdn.shopify.com/app-store/listing_images/15100ebca4d221b650a7671125cd1444/icon/CO25r7-jh4ADEAE=.png"
528
512
  alt="Shopify Flow icon"
529
- ></s-image>
530
- </s-box>
513
+ ></s-thumbnail>
531
514
  <s-box>
532
515
  <s-heading>Shopify Flow</s-heading>
533
516
  <s-paragraph>Free</s-paragraph>
@@ -552,18 +535,11 @@
552
535
  accessibilityLabel="Download Shopify Planet"
553
536
  >
554
537
  <s-grid gridTemplateColumns="auto 1fr auto" alignItems="stretch" gap="base">
555
- <s-box
556
- border="base"
557
- borderRadius="base"
558
- overflow="hidden"
559
- maxInlineSize="40px"
560
- maxBlockSize="40px"
561
- >
562
- <s-image
538
+ <s-thumbnail
539
+ size="small"
563
540
  src="https://cdn.shopify.com/app-store/listing_images/87176a11f3714753fdc2e1fc8bbf0415/icon/CIqiqqXsiIADEAE=.png"
564
541
  alt="Shopify Planet icon"
565
- ></s-image>
566
- </s-box>
542
+ ></s-thumbnail>
567
543
  <s-box>
568
544
  <s-heading>Shopify Planet</s-heading>
569
545
  <s-paragraph>Free</s-paragraph>
@@ -584,4 +560,4 @@
584
560
  </s-section>
585
561
  </s-page>
586
562
  </body>
587
- </html>
563
+ </html>
@@ -19,7 +19,7 @@ export default function HomePage() {
19
19
  });
20
20
  const [progress, setProgress] = useState(0);
21
21
  return (
22
- <s-page inlineSize="small">
22
+ <s-page>
23
23
  {/* === */}
24
24
  {/* Title Bar */}
25
25
  {/* The ui-title-bar on the homepage should not have a title attribute */}
@@ -88,11 +88,9 @@ export default function HomePage() {
88
88
  <s-paragraph>
89
89
  Use this personalized guide to get your store ready for sales.
90
90
  </s-paragraph>
91
- <s-stack direction="inline" gap="small-200" alignItems="center">
92
- <s-paragraph tone="subdued">
91
+ <s-paragraph color="subdued">
93
92
  {progress} out of 3 steps completed
94
93
  </s-paragraph>
95
- </s-stack>
96
94
  </s-grid>
97
95
  {/* Steps Container */}
98
96
  <s-box
@@ -103,8 +101,7 @@ export default function HomePage() {
103
101
  >
104
102
  {/* Step 1 */}
105
103
  <s-box>
106
- <s-box padding="small">
107
- <s-grid gridTemplateColumns="1fr auto" gap="base">
104
+ <s-grid gridTemplateColumns="1fr auto" gap="base" padding="small">
108
105
  <s-checkbox
109
106
  label="Upload an image for your puzzle"
110
107
  onInput={(e) =>
@@ -115,16 +112,13 @@ export default function HomePage() {
115
112
  ></s-checkbox>
116
113
  <s-button
117
114
  onClick={(e) => {
118
- console.log("Toggle step 1 details");
119
115
  setExpanded({ ...expanded, step1: !expanded.step1 });
120
- }
121
- }
116
+ }}
122
117
  accessibilityLabel="Toggle step 1 details"
123
118
  variant="tertiary"
124
119
  icon={expanded.step1 ? "chevron-up" : "chevron-down"}
125
120
  ></s-button>
126
121
  </s-grid>
127
- </s-box>
128
122
  <s-box
129
123
  padding="small"
130
124
  paddingBlockStart="none"
@@ -164,8 +158,7 @@ export default function HomePage() {
164
158
  {/* Step 2 */}
165
159
  <s-divider></s-divider>
166
160
  <s-box>
167
- <s-box padding="small">
168
- <s-grid gridTemplateColumns="1fr auto" gap="base">
161
+ <s-grid gridTemplateColumns="1fr auto" gap="base" padding="small">
169
162
  <s-checkbox
170
163
  label="Choose a puzzle template"
171
164
  onInput={(e) =>
@@ -183,7 +176,6 @@ export default function HomePage() {
183
176
  icon={expanded.step2 ? "chevron-up" : "chevron-down"}
184
177
  ></s-button>
185
178
  </s-grid>
186
- </s-box>
187
179
  <s-box
188
180
  padding="small"
189
181
  paddingBlockStart="none"
@@ -221,8 +213,7 @@ export default function HomePage() {
221
213
  {/* Step 3 */}
222
214
  <s-divider></s-divider>
223
215
  <s-box>
224
- <s-box padding="small">
225
- <s-grid gridTemplateColumns="1fr auto" gap="base">
216
+ <s-grid gridTemplateColumns="1fr auto" gap="base" padding="small">
226
217
  <s-checkbox
227
218
  label="Customize puzzle piece shapes"
228
219
  onInput={(e) =>
@@ -240,7 +231,6 @@ export default function HomePage() {
240
231
  icon={expanded.step3 ? "chevron-up" : "chevron-down"}
241
232
  ></s-button>
242
233
  </s-grid>
243
- </s-box>
244
234
  <s-box
245
235
  padding="small"
246
236
  paddingBlockStart="none"
@@ -287,8 +277,7 @@ export default function HomePage() {
287
277
  {/* Metrics cards */}
288
278
  {/* Your app homepage should provide merchants with quick statistics or status updates that help them understand how the app is performing for them. */}
289
279
  {/* === */}
290
- <s-section padding="none">
291
- <s-box padding="small">
280
+ <s-section padding="small">
292
281
  <s-grid
293
282
  gridTemplateColumns="@container (inline-size <= 400px) 1fr, 1fr auto 1fr auto 1fr"
294
283
  gap="small"
@@ -342,7 +331,6 @@ export default function HomePage() {
342
331
  </s-grid>
343
332
  </s-clickable>
344
333
  </s-grid>
345
- </s-box>
346
334
  </s-section>
347
335
 
348
336
  {/* === */}
@@ -367,14 +355,10 @@ export default function HomePage() {
367
355
  Start by uploading an image to your gallery or choose from one
368
356
  of our templates.
369
357
  </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>
358
+ <s-button-group>
359
+ <s-button> Upload image </s-button>
360
+ <s-button tone="neutral" variant="tertiary"> Browse templates </s-button>
361
+ </s-button-group>
378
362
  </s-grid>
379
363
  <s-stack alignItems="center">
380
364
  <s-box
@@ -419,7 +403,7 @@ export default function HomePage() {
419
403
  <s-image
420
404
  aspectRatio="1/1"
421
405
  objectFit="cover"
422
- alt="Illustration of characters with a 4-piece puzzle"
406
+ alt="4-pieces puzzle template"
423
407
  src="https://cdn.shopify.com/static/images/polaris/patterns/4-pieces.png"
424
408
  ></s-image>
425
409
  </s-clickable>
@@ -454,6 +438,7 @@ export default function HomePage() {
454
438
  <s-image
455
439
  aspectRatio="1/1"
456
440
  objectFit="cover"
441
+ alt="9-pieces puzzle template"
457
442
  src="https://cdn.shopify.com/static/images/polaris/patterns/9-pieces.png"
458
443
  ></s-image>
459
444
  </s-clickable>
@@ -488,6 +473,7 @@ export default function HomePage() {
488
473
  <s-image
489
474
  aspectRatio="1/1"
490
475
  objectFit="cover"
476
+ alt="16-pieces puzzle template"
491
477
  src="https://cdn.shopify.com/static/images/polaris/patterns/16-pieces.png"
492
478
  ></s-image>
493
479
  </s-clickable>
@@ -613,18 +599,11 @@ export default function HomePage() {
613
599
  alignItems="stretch"
614
600
  gap="base"
615
601
  >
616
- <s-box
617
- border="base"
618
- borderRadius="base"
619
- overflow="hidden"
620
- maxInlineSize="40px"
621
- maxBlockSize="40px"
622
- >
623
- <s-image
602
+ <s-thumbnail
603
+ size="small"
624
604
  src="https://cdn.shopify.com/app-store/listing_images/15100ebca4d221b650a7671125cd1444/icon/CO25r7-jh4ADEAE=.png"
625
605
  alt="Shopify Flow icon"
626
- ></s-image>
627
- </s-box>
606
+ ></s-thumbnail>
628
607
  <s-box>
629
608
  <s-heading>Shopify Flow</s-heading>
630
609
  <s-paragraph>Free</s-paragraph>
@@ -655,18 +634,11 @@ export default function HomePage() {
655
634
  alignItems="stretch"
656
635
  gap="base"
657
636
  >
658
- <s-box
659
- border="base"
660
- borderRadius="base"
661
- overflow="hidden"
662
- maxInlineSize="40px"
663
- maxBlockSize="40px"
664
- >
665
- <s-image
637
+ <s-thumbnail
638
+ size="small"
666
639
  src="https://cdn.shopify.com/app-store/listing_images/87176a11f3714753fdc2e1fc8bbf0415/icon/CIqiqqXsiIADEAE=.png"
667
640
  alt="Shopify Planet icon"
668
- ></s-image>
669
- </s-box>
641
+ ></s-thumbnail>
670
642
  <s-box>
671
643
  <s-heading>Shopify Planet</s-heading>
672
644
  <s-paragraph>Free</s-paragraph>
@@ -688,4 +660,4 @@ export default function HomePage() {
688
660
  )}
689
661
  </s-page>
690
662
  );
691
- }
663
+ }
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <script src="https://cdn.shopify.com/shopifycloud/app-bridge-ui-experimental.js"></script>
6
+ <script src="https://cdn.shopify.com/shopifycloud/polaris.js"></script>
7
7
  <title>Pattern</title>
8
8
  </head>
9
9
  <body>
@@ -28,26 +28,24 @@
28
28
  <s-grid gap="base" justifyItems="center" paddingBlock="large-400">
29
29
  <s-box maxInlineSize="200px" maxBlockSize="200px">
30
30
  <s-image
31
+ maxInlineSize="200px"
32
+ maxBlockSize="200px"
31
33
  aspectRatio="1/0.5"
32
34
  src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
33
35
  alt="A stylized graphic of four characters, each holding a puzzle piece"
34
36
  />
35
37
  </s-box>
36
- <s-grid justifyItems="center" maxBlockSize="450px" maxInlineSize="450px">
37
- <s-heading>Start creating puzzles</s-heading>
38
- <s-paragraph>
39
- Create and manage your collection of puzzles for players to enjoy.
40
- </s-paragraph>
41
- <s-stack
42
- gap="small-200"
43
- justifyContent="center"
44
- padding="base"
45
- paddingBlockEnd="none"
46
- direction="inline"
47
- >
38
+ <s-grid justifyItems="center" maxInlineSize="450px" gap="base">
39
+ <s-stack alignItems="center">
40
+ <s-heading>Start creating puzzles</s-heading>
41
+ <s-paragraph>
42
+ Create and manage your collection of puzzles for players to enjoy.
43
+ </s-paragraph>
44
+ </s-stack>
45
+ <s-button-group>
48
46
  <s-button aria-label="Learn more about creating puzzles"> Learn more </s-button>
49
47
  <s-button variant="primary" aria-label="Add a new puzzle"> Create puzzle </s-button>
50
- </s-stack>
48
+ </s-button-group>
51
49
  </s-grid>
52
50
  </s-grid>
53
51
  </s-section>
@@ -56,10 +54,10 @@
56
54
  <!-- This should only be visible if the merchant has created one or more puzzles. -->
57
55
  <!-- === -->
58
56
  <s-section padding="none" accessibilityLabel="Puzzles table section">
59
- <s-table fullwidth>
57
+ <s-table>
60
58
  <s-table-header-row>
61
59
  <s-table-header listSlot="primary">Puzzle</s-table-header>
62
- <s-table-header>Type</s-table-header>
60
+ <s-table-header format="numeric">Pieces</s-table-header>
63
61
  <s-table-header>Created</s-table-header>
64
62
  <s-table-header>Status</s-table-header>
65
63
  </s-table-header-row>
@@ -76,12 +74,12 @@
76
74
  inlineSize="40px"
77
75
  blockSize="40px"
78
76
  >
79
- <s-image objectFit="cover" src="https://picsum.photos/id/29/80/80"></s-image>
77
+ <s-image objectFit="cover" alt="Mountain View puzzle thumbnail" src="https://picsum.photos/id/29/80/80"></s-image>
80
78
  </s-clickable>
81
79
  <s-link href="/app/details">Mountain View</s-link>
82
80
  </s-stack>
83
81
  </s-table-cell>
84
- <s-table-cell>16-piece</s-table-cell>
82
+ <s-table-cell>16</s-table-cell>
85
83
  <s-table-cell>Today</s-table-cell>
86
84
  <s-table-cell>
87
85
  <s-badge color="base" tone="success"> Active </s-badge>
@@ -99,12 +97,12 @@
99
97
  inlineSize="40px"
100
98
  blockSize="40px"
101
99
  >
102
- <s-image objectFit="cover" src="https://picsum.photos/id/12/80/80"></s-image>
100
+ <s-image objectFit="cover" alt="Ocean Sunset puzzle thumbnail" src="https://picsum.photos/id/12/80/80"></s-image>
103
101
  </s-clickable>
104
102
  <s-link href="/app/details">Ocean Sunset</s-link>
105
103
  </s-stack>
106
104
  </s-table-cell>
107
- <s-table-cell>9-piece</s-table-cell>
105
+ <s-table-cell>9</s-table-cell>
108
106
  <s-table-cell>Yesterday</s-table-cell>
109
107
  <s-table-cell>
110
108
  <s-badge color="base" tone="success"> Active </s-badge>
@@ -122,12 +120,12 @@
122
120
  inlineSize="40px"
123
121
  blockSize="40px"
124
122
  >
125
- <s-image objectFit="cover" src="https://picsum.photos/id/324/80/80"></s-image>
123
+ <s-image objectFit="cover" alt="Forest Animals puzzle thumbnail" src="https://picsum.photos/id/324/80/80"></s-image>
126
124
  </s-clickable>
127
125
  <s-link href="/app/details">Forest Animals</s-link>
128
126
  </s-stack>
129
127
  </s-table-cell>
130
- <s-table-cell>25-piece</s-table-cell>
128
+ <s-table-cell>25</s-table-cell>
131
129
  <s-table-cell>Last week</s-table-cell>
132
130
  <s-table-cell>
133
131
  <s-badge color="base" tone="neutral"> Draft </s-badge>
@@ -140,4 +138,4 @@
140
138
  </s-section>
141
139
  </s-page>
142
140
  </body>
143
- </html>
141
+ </html>