@shopify/ui-extensions 2025.10.3 → 2025.10.5

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 (276) 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 +7 -2
  6. package/build/ts/surfaces/admin/components/Banner.d.ts +6 -2
  7. package/build/ts/surfaces/admin/components/Box.d.ts +7 -2
  8. package/build/ts/surfaces/admin/components/Button.d.ts +6 -2
  9. package/build/ts/surfaces/admin/components/ButtonGroup.d.ts +6 -2
  10. package/build/ts/surfaces/admin/components/Checkbox.d.ts +1 -1
  11. package/build/ts/surfaces/admin/components/Chip.d.ts +6 -2
  12. package/build/ts/surfaces/admin/components/Choice.d.ts +10 -2
  13. package/build/ts/surfaces/admin/components/ChoiceList.d.ts +8 -2
  14. package/build/ts/surfaces/admin/components/Clickable.d.ts +6 -2
  15. package/build/ts/surfaces/admin/components/ClickableChip.d.ts +47 -4
  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/DateField.d.ts +1 -1
  19. package/build/ts/surfaces/admin/components/DatePicker.d.ts +1 -1
  20. package/build/ts/surfaces/admin/components/Divider.d.ts +1 -1
  21. package/build/ts/surfaces/admin/components/DropZone.d.ts +183 -0
  22. package/build/ts/surfaces/admin/components/EmailField.d.ts +1 -1
  23. package/build/ts/surfaces/admin/components/Form.d.ts +1 -1
  24. package/build/ts/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  25. package/build/ts/surfaces/admin/components/Grid.d.ts +7 -2
  26. package/build/ts/surfaces/admin/components/GridItem.d.ts +7 -2
  27. package/build/ts/surfaces/admin/components/Heading.d.ts +7 -2
  28. package/build/ts/surfaces/admin/components/Icon.d.ts +1 -1
  29. package/build/ts/surfaces/admin/components/Image.d.ts +1 -1
  30. package/build/ts/surfaces/admin/components/Link.d.ts +6 -2
  31. package/build/ts/surfaces/admin/components/ListItem.d.ts +7 -2
  32. package/build/ts/surfaces/admin/components/Menu.d.ts +9 -2
  33. package/build/ts/surfaces/admin/components/Modal.d.ts +6 -2
  34. package/build/ts/surfaces/admin/components/MoneyField.d.ts +1 -1
  35. package/build/ts/surfaces/admin/components/NumberField.d.ts +1 -1
  36. package/build/ts/surfaces/admin/components/Option.d.ts +7 -2
  37. package/build/ts/surfaces/admin/components/OptionGroup.d.ts +9 -2
  38. package/build/ts/surfaces/admin/components/OrderedList.d.ts +9 -2
  39. package/build/ts/surfaces/admin/components/Page.d.ts +6 -2
  40. package/build/ts/surfaces/admin/components/Paragraph.d.ts +7 -2
  41. package/build/ts/surfaces/admin/components/PasswordField.d.ts +1 -1
  42. package/build/ts/surfaces/admin/components/QueryContainer.d.ts +7 -2
  43. package/build/ts/surfaces/admin/components/SearchField.d.ts +1 -1
  44. package/build/ts/surfaces/admin/components/Section.d.ts +7 -2
  45. package/build/ts/surfaces/admin/components/Select.d.ts +8 -2
  46. package/build/ts/surfaces/admin/components/Spinner.d.ts +1 -1
  47. package/build/ts/surfaces/admin/components/Stack.d.ts +7 -2
  48. package/build/ts/surfaces/admin/components/StandardComponents.d.ts +1 -1
  49. package/build/ts/surfaces/admin/components/StandardComponents.d.ts.map +1 -1
  50. package/build/ts/surfaces/admin/components/Switch.d.ts +1 -1
  51. package/build/ts/surfaces/admin/components/Table/Table.doc.d.ts.map +1 -1
  52. package/build/ts/surfaces/admin/components/Table.d.ts +6 -2
  53. package/build/ts/surfaces/admin/components/TableBody.d.ts +7 -2
  54. package/build/ts/surfaces/admin/components/TableCell.d.ts +7 -2
  55. package/build/ts/surfaces/admin/components/TableHeader.d.ts +7 -2
  56. package/build/ts/surfaces/admin/components/TableHeaderRow.d.ts +7 -2
  57. package/build/ts/surfaces/admin/components/TableRow.d.ts +7 -2
  58. package/build/ts/surfaces/admin/components/Text.d.ts +7 -2
  59. package/build/ts/surfaces/admin/components/TextArea.d.ts +1 -1
  60. package/build/ts/surfaces/admin/components/TextField.d.ts +7 -2
  61. package/build/ts/surfaces/admin/components/Thumbnail.d.ts +1 -1
  62. package/build/ts/surfaces/admin/components/Tooltip.d.ts +9 -2
  63. package/build/ts/surfaces/admin/components/URLField.d.ts +1 -1
  64. package/build/ts/surfaces/admin/components/UnorderedList.d.ts +9 -2
  65. package/build/ts/surfaces/admin/components/patterns/accountConnection.ab.doc.d.ts.map +1 -1
  66. package/build/ts/surfaces/admin/components/patterns/appCard.ab.doc.d.ts.map +1 -1
  67. package/build/ts/surfaces/admin/components/patterns/calloutCard.ab.doc.d.ts.map +1 -1
  68. package/build/ts/surfaces/admin/components/patterns/emptyState.ab.doc.d.ts.map +1 -1
  69. package/build/ts/surfaces/admin/components/patterns/footerHelp.ab.doc.d.ts +4 -0
  70. package/build/ts/surfaces/admin/components/patterns/footerHelp.ab.doc.d.ts.map +1 -0
  71. package/build/ts/surfaces/admin/components/patterns/indexTable.ab.doc.d.ts +2 -2
  72. package/build/ts/surfaces/admin/components/patterns/indexTable.ab.doc.d.ts.map +1 -1
  73. package/build/ts/surfaces/admin/components/patterns/interstitialNav.ab.doc.d.ts.map +1 -1
  74. package/build/ts/surfaces/admin/components/patterns/mediaCard.ab.doc.d.ts.map +1 -1
  75. package/build/ts/surfaces/admin/components/patterns/metricsCard.ab.doc.d.ts.map +1 -1
  76. package/build/ts/surfaces/admin/components/patterns/resourceList.ab.doc.d.ts +4 -0
  77. package/build/ts/surfaces/admin/components/patterns/resourceList.ab.doc.d.ts.map +1 -0
  78. package/build/ts/surfaces/admin/components/patterns/setupGuide.ab.doc.d.ts.map +1 -1
  79. package/build/ts/surfaces/admin/components/shared.d.ts +31 -4
  80. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-details.action.render.d.ts +1 -0
  81. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-details.block.render.d.ts +1 -0
  82. package/build/ts/surfaces/admin/targets/admin.catalog-details.action.render.d.ts +1 -0
  83. package/build/ts/surfaces/admin/targets/admin.catalog-details.block.render.d.ts +1 -0
  84. package/build/ts/surfaces/admin/targets/admin.collection-details.action.render.d.ts +1 -0
  85. package/build/ts/surfaces/admin/targets/admin.collection-details.block.render.d.ts +1 -0
  86. package/build/ts/surfaces/admin/targets/admin.collection-index.action.render.d.ts +1 -0
  87. package/build/ts/surfaces/admin/targets/admin.company-details.action.render.d.ts +1 -0
  88. package/build/ts/surfaces/admin/targets/admin.company-details.block.render.d.ts +1 -0
  89. package/build/ts/surfaces/admin/targets/admin.company-location-details.block.render.d.ts +1 -0
  90. package/build/ts/surfaces/admin/targets/admin.customer-details.action.render.d.ts +1 -0
  91. package/build/ts/surfaces/admin/targets/admin.customer-details.block.render.d.ts +1 -0
  92. package/build/ts/surfaces/admin/targets/admin.customer-index.action.render.d.ts +1 -0
  93. package/build/ts/surfaces/admin/targets/admin.customer-index.selection-action.render.d.ts +1 -0
  94. package/build/ts/surfaces/admin/targets/admin.customer-segment-details.action.render.d.ts +1 -0
  95. package/build/ts/surfaces/admin/targets/admin.discount-details.action.render.d.ts +1 -0
  96. package/build/ts/surfaces/admin/targets/admin.discount-details.function-settings.render.d.ts +1 -0
  97. package/build/ts/surfaces/admin/targets/admin.discount-index.action.render.d.ts +1 -0
  98. package/build/ts/surfaces/admin/targets/admin.draft-order-details.action.render.d.ts +1 -0
  99. package/build/ts/surfaces/admin/targets/admin.draft-order-details.block.render.d.ts +1 -0
  100. package/build/ts/surfaces/admin/targets/admin.draft-order-index.action.render.d.ts +1 -0
  101. package/build/ts/surfaces/admin/targets/admin.draft-order-index.selection-action.render.d.ts +1 -0
  102. package/build/ts/surfaces/admin/targets/admin.gift-card-details.action.render.d.ts +1 -0
  103. package/build/ts/surfaces/admin/targets/admin.gift-card-details.block.render.d.ts +1 -0
  104. package/build/ts/surfaces/admin/targets/admin.order-details.action.render.d.ts +1 -0
  105. package/build/ts/surfaces/admin/targets/admin.order-details.block.render.d.ts +1 -0
  106. package/build/ts/surfaces/admin/targets/admin.order-details.print-action.render.d.ts +1 -0
  107. package/build/ts/surfaces/admin/targets/admin.order-fulfilled-card.action.render.d.ts +1 -0
  108. package/build/ts/surfaces/admin/targets/admin.order-index.action.render.d.ts +1 -0
  109. package/build/ts/surfaces/admin/targets/admin.order-index.selection-action.render.d.ts +1 -0
  110. package/build/ts/surfaces/admin/targets/admin.order-index.selection-print-action.render.d.ts +1 -0
  111. package/build/ts/surfaces/admin/targets/admin.product-details.action.render.d.ts +1 -0
  112. package/build/ts/surfaces/admin/targets/admin.product-details.block.render.d.ts +1 -0
  113. package/build/ts/surfaces/admin/targets/admin.product-details.configuration.render.d.ts +1 -0
  114. package/build/ts/surfaces/admin/targets/admin.product-details.print-action.render.d.ts +1 -0
  115. package/build/ts/surfaces/admin/targets/admin.product-details.reorder.render.d.ts +1 -0
  116. package/build/ts/surfaces/admin/targets/admin.product-index.action.render.d.ts +1 -0
  117. package/build/ts/surfaces/admin/targets/admin.product-index.selection-action.render.d.ts +1 -0
  118. package/build/ts/surfaces/admin/targets/admin.product-index.selection-print-action.render.d.ts +1 -0
  119. package/build/ts/surfaces/admin/targets/admin.product-purchase-option.action.render.d.ts +1 -0
  120. package/build/ts/surfaces/admin/targets/admin.product-variant-details.action.render.d.ts +1 -0
  121. package/build/ts/surfaces/admin/targets/admin.product-variant-details.block.render.d.ts +1 -0
  122. package/build/ts/surfaces/admin/targets/admin.product-variant-details.configuration.render.d.ts +1 -0
  123. package/build/ts/surfaces/admin/targets/admin.product-variant-purchase-option.action.render.d.ts +1 -0
  124. package/build/ts/surfaces/admin/targets/admin.settings.internal-order-routing-rule.render.d.ts +1 -0
  125. package/build/ts/surfaces/admin/targets/admin.settings.order-routing-rule.render.d.ts +1 -0
  126. package/build/ts/surfaces/admin/targets/admin.settings.validation.render.d.ts +1 -0
  127. package/build/ts/surfaces/customer-account/components/Avatar/Avatar.doc.d.ts.map +1 -1
  128. package/build/ts/surfaces/customer-account/components/ButtonGroup/ButtonGroup.doc.d.ts.map +1 -1
  129. package/build/ts/surfaces/customer-account/components/CustomerAccountAction/CustomerAccountAction.doc.d.ts.map +1 -1
  130. package/build/ts/surfaces/customer-account/components/ImageGroup/ImageGroup.doc.d.ts.map +1 -1
  131. package/build/ts/surfaces/customer-account/components/Menu/Menu.doc.d.ts.map +1 -1
  132. package/build/ts/surfaces/customer-account/components/Section/Section.doc.d.ts.map +1 -1
  133. package/build/ts/surfaces/point-of-sale/components/targets/BlockExtensionComponents.d.ts +1 -1
  134. package/build/ts/surfaces/point-of-sale/components/targets/BlockExtensionComponents.d.ts.map +1 -1
  135. package/build/ts/surfaces/point-of-sale/targets/pos.customer-details.block.render.d.ts +1 -0
  136. package/build/ts/surfaces/point-of-sale/targets/pos.draft-order-details.block.render.d.ts +1 -0
  137. package/build/ts/surfaces/point-of-sale/targets/pos.exchange.post.block.render.d.ts +1 -0
  138. package/build/ts/surfaces/point-of-sale/targets/pos.order-details.block.render.d.ts +1 -0
  139. package/build/ts/surfaces/point-of-sale/targets/pos.product-details.block.render.d.ts +1 -0
  140. package/build/ts/surfaces/point-of-sale/targets/pos.purchase.post.block.render.d.ts +1 -0
  141. package/build/ts/surfaces/point-of-sale/targets/pos.return.post.block.render.d.ts +1 -0
  142. package/build/tsconfig.tsbuildinfo +1 -1
  143. package/package.json +1 -1
  144. package/src/surfaces/admin/components/AdminAction.d.ts +1 -1
  145. package/src/surfaces/admin/components/AdminBlock.d.ts +1 -1
  146. package/src/surfaces/admin/components/AdminPrintAction.d.ts +1 -1
  147. package/src/surfaces/admin/components/Avatar.d.ts +1 -1
  148. package/src/surfaces/admin/components/Badge.d.ts +7 -2
  149. package/src/surfaces/admin/components/Banner.d.ts +6 -2
  150. package/src/surfaces/admin/components/Box.d.ts +7 -2
  151. package/src/surfaces/admin/components/Button.d.ts +6 -2
  152. package/src/surfaces/admin/components/ButtonGroup.d.ts +6 -2
  153. package/src/surfaces/admin/components/Checkbox/examples/indeterminate-state.jsx +6 -6
  154. package/src/surfaces/admin/components/Checkbox/examples/validation-example.jsx +3 -3
  155. package/src/surfaces/admin/components/Checkbox.d.ts +1 -1
  156. package/src/surfaces/admin/components/Chip.d.ts +6 -2
  157. package/src/surfaces/admin/components/Choice.d.ts +10 -2
  158. package/src/surfaces/admin/components/ChoiceList/examples/validation-example.jsx +1 -1
  159. package/src/surfaces/admin/components/ChoiceList.d.ts +8 -2
  160. package/src/surfaces/admin/components/Clickable.d.ts +6 -2
  161. package/src/surfaces/admin/components/ClickableChip.d.ts +47 -4
  162. package/src/surfaces/admin/components/ColorField/examples/validation-example.jsx +4 -4
  163. package/src/surfaces/admin/components/ColorField.d.ts +1 -1
  164. package/src/surfaces/admin/components/ColorPicker.d.ts +1 -1
  165. package/src/surfaces/admin/components/DateField/examples/validation-example.jsx +3 -3
  166. package/src/surfaces/admin/components/DateField.d.ts +1 -1
  167. package/src/surfaces/admin/components/DatePicker/examples/analytics-dashboard.html +1 -1
  168. package/src/surfaces/admin/components/DatePicker/examples/analytics-dashboard.jsx +3 -3
  169. package/src/surfaces/admin/components/DatePicker/examples/form-integration.jsx +2 -2
  170. package/src/surfaces/admin/components/DatePicker.d.ts +1 -1
  171. package/src/surfaces/admin/components/Divider.d.ts +1 -1
  172. package/src/surfaces/admin/components/DropZone/examples/default.jsx +3 -3
  173. package/src/surfaces/admin/components/DropZone.d.ts +183 -0
  174. package/src/surfaces/admin/components/EmailField/examples/validation-example.jsx +3 -3
  175. package/src/surfaces/admin/components/EmailField.d.ts +1 -1
  176. package/src/surfaces/admin/components/Form.d.ts +1 -1
  177. package/src/surfaces/admin/components/FunctionSettings.d.ts +1 -1
  178. package/src/surfaces/admin/components/Grid.d.ts +7 -2
  179. package/src/surfaces/admin/components/GridItem.d.ts +7 -2
  180. package/src/surfaces/admin/components/Heading.d.ts +7 -2
  181. package/src/surfaces/admin/components/Icon.d.ts +1 -1
  182. package/src/surfaces/admin/components/Image.d.ts +1 -1
  183. package/src/surfaces/admin/components/Link.d.ts +6 -2
  184. package/src/surfaces/admin/components/ListItem.d.ts +7 -2
  185. package/src/surfaces/admin/components/Menu/examples/menu-with-links-and-disabled-items.jsx +1 -1
  186. package/src/surfaces/admin/components/Menu.d.ts +9 -2
  187. package/src/surfaces/admin/components/Modal/examples/form-modal.html +2 -3
  188. package/src/surfaces/admin/components/Modal/examples/form-modal.jsx +1 -2
  189. package/src/surfaces/admin/components/Modal.d.ts +6 -2
  190. package/src/surfaces/admin/components/MoneyField/examples/basic-field.jsx +1 -1
  191. package/src/surfaces/admin/components/MoneyField/examples/basic-usage.html +0 -1
  192. package/src/surfaces/admin/components/MoneyField/examples/basic-usage.jsx +0 -1
  193. package/src/surfaces/admin/components/MoneyField/examples/currency-formatting-with-form-integration.html +0 -3
  194. package/src/surfaces/admin/components/MoneyField/examples/currency-formatting-with-form-integration.jsx +4 -7
  195. package/src/surfaces/admin/components/MoneyField/examples/validation-example.jsx +4 -5
  196. package/src/surfaces/admin/components/MoneyField/examples/with-validation-limits.html +0 -1
  197. package/src/surfaces/admin/components/MoneyField/examples/with-validation-limits.jsx +0 -1
  198. package/src/surfaces/admin/components/MoneyField.d.ts +1 -1
  199. package/src/surfaces/admin/components/NumberField/examples/basic-usage.jsx +1 -1
  200. package/src/surfaces/admin/components/NumberField/examples/default.jsx +1 -1
  201. package/src/surfaces/admin/components/NumberField/examples/multiple-examples.jsx +4 -4
  202. package/src/surfaces/admin/components/NumberField/examples/with-prefix-and-suffix.jsx +1 -1
  203. package/src/surfaces/admin/components/NumberField.d.ts +1 -1
  204. package/src/surfaces/admin/components/Option.d.ts +7 -2
  205. package/src/surfaces/admin/components/OptionGroup.d.ts +9 -2
  206. package/src/surfaces/admin/components/OrderedList.d.ts +9 -2
  207. package/src/surfaces/admin/components/Page/examples/large-inline-size-for-wide-content.jsx +1 -1
  208. package/src/surfaces/admin/components/Page/examples/page-with-heading.jsx +1 -1
  209. package/src/surfaces/admin/components/Page/examples/small-inline-size-for-focused-content.jsx +1 -1
  210. package/src/surfaces/admin/components/Page.d.ts +6 -2
  211. package/src/surfaces/admin/components/Paragraph.d.ts +7 -2
  212. package/src/surfaces/admin/components/PasswordField/examples/in-form-layout.html +2 -3
  213. package/src/surfaces/admin/components/PasswordField/examples/in-form-layout.jsx +2 -3
  214. package/src/surfaces/admin/components/PasswordField.d.ts +1 -1
  215. package/src/surfaces/admin/components/Popover/examples/notifications.html +3 -3
  216. package/src/surfaces/admin/components/Popover/examples/notifications.jsx +3 -3
  217. package/src/surfaces/admin/components/Popover/examples/table-display-options.html +2 -2
  218. package/src/surfaces/admin/components/Popover/examples/table-display-options.jsx +3 -7
  219. package/src/surfaces/admin/components/QueryContainer.d.ts +7 -2
  220. package/src/surfaces/admin/components/SearchField.d.ts +1 -1
  221. package/src/surfaces/admin/components/Section.d.ts +7 -2
  222. package/src/surfaces/admin/components/Select/examples/default.jsx +5 -5
  223. package/src/surfaces/admin/components/Select.d.ts +8 -2
  224. package/src/surfaces/admin/components/Spinner.d.ts +1 -1
  225. package/src/surfaces/admin/components/Stack.d.ts +7 -2
  226. package/src/surfaces/admin/components/StandardComponents.ts +1 -0
  227. package/src/surfaces/admin/components/Switch.d.ts +1 -1
  228. package/src/surfaces/admin/components/Table/examples/default.html +12 -8
  229. package/src/surfaces/admin/components/Table/examples/default.jsx +13 -9
  230. package/src/surfaces/admin/components/Table/examples/full-width-product-inventory-table.html +2 -2
  231. package/src/surfaces/admin/components/Table/examples/full-width-product-inventory-table.jsx +2 -2
  232. package/src/surfaces/admin/components/Table/examples/{advanced-table-with-all-list-slot-types.html → list-variant.html} +16 -6
  233. package/src/surfaces/admin/components/Table/examples/{advanced-table-with-all-list-slot-types.jsx → list-variant.jsx} +3 -3
  234. package/src/surfaces/admin/components/Table/examples/with-loading-state.html +26 -3
  235. package/src/surfaces/admin/components/Table/examples/with-loading-state.jsx +27 -4
  236. package/src/surfaces/admin/components/Table/examples/with-pagination.html +1 -1
  237. package/src/surfaces/admin/components/Table/examples/with-pagination.jsx +1 -1
  238. package/src/surfaces/admin/components/Table.d.ts +6 -2
  239. package/src/surfaces/admin/components/TableBody.d.ts +7 -2
  240. package/src/surfaces/admin/components/TableCell.d.ts +7 -2
  241. package/src/surfaces/admin/components/TableHeader.d.ts +7 -2
  242. package/src/surfaces/admin/components/TableHeaderRow.d.ts +7 -2
  243. package/src/surfaces/admin/components/TableRow.d.ts +7 -2
  244. package/src/surfaces/admin/components/Text.d.ts +7 -2
  245. package/src/surfaces/admin/components/TextArea.d.ts +1 -1
  246. package/src/surfaces/admin/components/TextField/examples/with-accessory.html +2 -4
  247. package/src/surfaces/admin/components/TextField/examples/with-accessory.jsx +6 -6
  248. package/src/surfaces/admin/components/TextField.d.ts +7 -2
  249. package/src/surfaces/admin/components/Thumbnail.d.ts +1 -1
  250. package/src/surfaces/admin/components/Tooltip.d.ts +9 -2
  251. package/src/surfaces/admin/components/URLField.d.ts +1 -1
  252. package/src/surfaces/admin/components/UnorderedList.d.ts +9 -2
  253. package/src/surfaces/admin/components/patterns/examples/appCard.html +0 -1
  254. package/src/surfaces/admin/components/patterns/examples/appCard.jsx +0 -1
  255. package/src/surfaces/admin/components/patterns/examples/details.jsx +20 -28
  256. package/src/surfaces/admin/components/patterns/examples/emptyState.html +1 -0
  257. package/src/surfaces/admin/components/patterns/examples/emptyState.jsx +1 -0
  258. package/src/surfaces/admin/components/patterns/examples/footerHelp.html +3 -0
  259. package/src/surfaces/admin/components/patterns/examples/footerHelp.jsx +3 -0
  260. package/src/surfaces/admin/components/patterns/examples/homepage.jsx +22 -35
  261. package/src/surfaces/admin/components/patterns/examples/index.html +1 -0
  262. package/src/surfaces/admin/components/patterns/examples/index.jsx +7 -14
  263. package/src/surfaces/admin/components/patterns/examples/indexTable.html +3 -0
  264. package/src/surfaces/admin/components/patterns/examples/indexTable.jsx +3 -0
  265. package/src/surfaces/admin/components/patterns/examples/mediaCard.html +1 -1
  266. package/src/surfaces/admin/components/patterns/examples/mediaCard.jsx +1 -1
  267. package/src/surfaces/admin/components/patterns/examples/metricsCard.jsx +1 -1
  268. package/src/surfaces/admin/components/patterns/examples/resourceList.html +58 -0
  269. package/src/surfaces/admin/components/patterns/examples/resourceList.jsx +58 -0
  270. package/src/surfaces/admin/components/patterns/examples/settings.jsx +11 -19
  271. package/src/surfaces/admin/components/patterns/examples/setupGuide.jsx +1 -3
  272. package/src/surfaces/admin/components/patterns/index.ab.doc.ts +6 -6
  273. package/src/surfaces/admin/components/shared.d.ts +31 -4
  274. package/src/surfaces/admin/components/using-polaris-web-components/examples/html-forms.html +1 -1
  275. package/src/surfaces/admin/components.d.ts +48 -11
  276. package/src/surfaces/point-of-sale/components/targets/BlockExtensionComponents.ts +1 -0
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -104,7 +104,12 @@ declare module 'preact' {
104
104
  declare const tagName = 's-table-body';
105
105
  export interface TableBodyJSXProps
106
106
  extends Partial<TableBodyProps>,
107
- Pick<TableBodyProps$1, 'id'> {}
107
+ Pick<TableBodyProps$1, 'id' | 'children'> {
108
+ /**
109
+ * The body of the table. May not have any semantic meaning in the Table's `list` variant.
110
+ */
111
+ children?: ComponentChildren;
112
+ }
108
113
 
109
114
  export {TableBody};
110
115
  export type {TableBodyJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -119,7 +119,12 @@ declare module 'preact' {
119
119
  declare const tagName = 's-table-cell';
120
120
  export interface TableCellJSXProps
121
121
  extends Partial<TableCellProps>,
122
- Pick<TableCellProps$1, 'id'> {}
122
+ Pick<TableCellProps$1, 'id' | 'children'> {
123
+ /**
124
+ * The content of the table cell.
125
+ */
126
+ children?: ComponentChildren;
127
+ }
123
128
 
124
129
  export {TableCell};
125
130
  export type {TableCellJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -121,7 +121,12 @@ declare module 'preact' {
121
121
  declare const tagName = 's-table-header';
122
122
  export interface TableHeaderJSXProps
123
123
  extends Partial<TableHeaderProps>,
124
- Pick<TableHeaderProps$1, 'id'> {}
124
+ Pick<TableHeaderProps$1, 'id' | 'children'> {
125
+ /**
126
+ * The heading of the column in the `table` variant, and the label of its data in `list` variant.
127
+ */
128
+ children?: ComponentChildren;
129
+ }
125
130
 
126
131
  export {TableHeader};
127
132
  export type {TableHeaderJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -111,7 +111,12 @@ declare module 'preact' {
111
111
  declare const tagName = 's-table-header-row';
112
112
  export interface TableHeaderRowJSXProps
113
113
  extends Partial<TableHeaderRowProps>,
114
- Pick<TableHeaderRowProps$1, 'id'> {}
114
+ Pick<TableHeaderRowProps$1, 'id' | 'children'> {
115
+ /**
116
+ * Contents of the table heading row; children should be `TableHeading` components.
117
+ */
118
+ children?: ComponentChildren;
119
+ }
115
120
 
116
121
  export {TableHeaderRow};
117
122
  export type {TableHeaderRowJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -106,7 +106,12 @@ declare module 'preact' {
106
106
  declare const tagName = 's-table-row';
107
107
  export interface TableRowJSXProps
108
108
  extends Partial<TableRowProps>,
109
- Pick<TableRowProps$1, 'id'> {}
109
+ Pick<TableRowProps$1, 'id' | 'children'> {
110
+ /**
111
+ * The content of a TableRow, which should be `TableCell` components.
112
+ */
113
+ children?: ComponentChildren;
114
+ }
110
115
 
111
116
  export {TableRow};
112
117
  export type {TableRowJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -137,7 +137,12 @@ declare module 'preact' {
137
137
  declare const tagName = 's-text';
138
138
  export interface TextJSXProps
139
139
  extends Partial<TextProps>,
140
- Pick<TextProps$1, 'id'> {}
140
+ Pick<TextProps$1, 'id' | 'children'> {
141
+ /**
142
+ * The content of the Text.
143
+ */
144
+ children?: ComponentChildren;
145
+ }
141
146
 
142
147
  export {Text};
143
148
  export type {TextJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -1,6 +1,4 @@
1
+ <s-tooltip id="info-tooltip">This is info tooltip</s-tooltip>
1
2
  <s-text-field label="Discount code">
2
- <div slot="accessory">
3
- <s-tooltip id="info-tooltip">This is info tooltip</s-tooltip>
4
- <s-icon interestFor="info-tooltip" type="info"></s-icon>
5
- </div>
3
+ <s-icon slot="accessory" interestFor="info-tooltip" type="info" />
6
4
  </s-text-field>
@@ -1,6 +1,6 @@
1
- <s-text-field label="Discount code">
2
- <div slot="accessory">
3
- <s-tooltip id="info-tooltip">This is info tooltip</s-tooltip>
4
- <s-icon interestFor="info-tooltip" type="info" />
5
- </div>
6
- </s-text-field>
1
+ <>
2
+ <s-tooltip id="info-tooltip">This is info tooltip</s-tooltip>
3
+ <s-text-field label="Discount code">
4
+ <s-icon slot="accessory" interestFor="info-tooltip" type="info" />
5
+ </s-text-field>
6
+ </>
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -31,6 +31,11 @@ export interface PreactBaseElementProps<TClass extends HTMLElement> {
31
31
  /** Assigns this element to a parent's slot. */
32
32
  slot?: Lowercase<string>;
33
33
  }
34
+ /** Used when an element has children. */
35
+ export interface PreactBaseElementPropsWithChildren<TClass extends HTMLElement>
36
+ extends PreactBaseElementProps<TClass> {
37
+ children?: preact.ComponentChildren;
38
+ }
34
39
 
35
40
  export type Styles = string;
36
41
  export type RenderImpl = Omit<ShadowRootInit, 'mode'> & {
@@ -223,7 +228,7 @@ declare module 'preact' {
223
228
  namespace createElement.JSX {
224
229
  interface IntrinsicElements {
225
230
  [tagName]: Omit<TextFieldJSXProps, 'accessory'> &
226
- PreactBaseElementProps<TextField>;
231
+ PreactBaseElementPropsWithChildren<TextField>;
227
232
  }
228
233
  }
229
234
  }
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -176,7 +176,14 @@ declare module 'preact' {
176
176
  declare const tagName = 's-tooltip';
177
177
  export interface TooltipJSXProps
178
178
  extends Partial<TooltipProps>,
179
- Pick<TooltipProps$1, 'id'> {}
179
+ Pick<TooltipProps$1, 'id' | 'children'> {
180
+ /**
181
+ * The content of the Tooltip.
182
+ *
183
+ * Only accepts `Text`, `Paragraph` components, and raw `textContent`.
184
+ */
185
+ children?: ComponentChildren;
186
+ }
180
187
 
181
188
  export {Tooltip};
182
189
  export type {TooltipJSXProps};
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -1,4 +1,4 @@
1
- /** VERSION: 1.22.1 **/
1
+ /** VERSION: 1.25.0 **/
2
2
  /* eslint-disable import/extensions */
3
3
 
4
4
  /* eslint-disable @typescript-eslint/no-namespace */
@@ -107,7 +107,14 @@ declare module 'preact' {
107
107
  declare const tagName = 's-unordered-list';
108
108
  export interface UnorderedListJSXProps
109
109
  extends Partial<UnorderedListProps>,
110
- Pick<UnorderedListProps$1, 'id'> {}
110
+ Pick<UnorderedListProps$1, 'id'> {
111
+ /**
112
+ * The items of the UnorderedList.
113
+ *
114
+ * Only ListItems are accepted.
115
+ */
116
+ children?: ComponentChildren;
117
+ }
111
118
 
112
119
  export {UnorderedList};
113
120
  export type {UnorderedListJSXProps};
@@ -4,7 +4,6 @@
4
4
  borderRadius="base"
5
5
  padding="base"
6
6
  inlineSize="100%"
7
- accessibilityLabel="Download Shopify Planet"
8
7
  >
9
8
  <s-grid gridTemplateColumns="auto 1fr auto" alignItems="stretch" gap="base">
10
9
  <s-thumbnail
@@ -4,7 +4,6 @@
4
4
  borderRadius="base"
5
5
  padding="base"
6
6
  inlineSize="100%"
7
- accessibilityLabel="Download Shopify Planet"
8
7
  >
9
8
  <s-grid gridTemplateColumns="auto 1fr auto" alignItems="stretch" gap="base">
10
9
  <s-thumbnail
@@ -1,25 +1,19 @@
1
- // ===
2
- // Details page pattern
3
- // ===
4
-
5
- export default function DetailsPage() {
6
- const handleFormReset = (event) => {
7
- console.log("Handle discarded changes if necessary");
8
- };
9
-
10
- const handleFormSubmit = (event) => {
1
+ <form
2
+ data-save-bar
3
+ onSubmit={(event) => {
11
4
  event.preventDefault();
12
5
  const formData = new FormData(event.target);
13
6
  const formEntries = Object.fromEntries(formData);
14
7
  console.log("Form data", formEntries);
15
- };
16
-
17
- return (
18
- <form data-save-bar onSubmit={handleFormSubmit} onReset={handleFormReset}>
19
- <s-page heading="Mountain view">
20
- <s-link slot="breadcrumb-actions" href="/app/puzzles">
21
- Puzzles
22
- </s-link>
8
+ }}
9
+ onReset={(event) => {
10
+ console.log("Handle discarded changes if necessary");
11
+ }}
12
+ >
13
+ <s-page heading="Mountain view">
14
+ <s-link slot="breadcrumb-actions" href="/app/puzzles">
15
+ Puzzles
16
+ </s-link>
23
17
  <s-button slot="secondary-actions">Duplicate</s-button>
24
18
  <s-button slot="secondary-actions">Delete</s-button>
25
19
  {/* === */}
@@ -89,7 +83,7 @@ export default function DetailsPage() {
89
83
  borderStyle="solid"
90
84
  overflow="hidden"
91
85
  >
92
- <s-table border="base" borderRadius="base" borderStyle="solid">
86
+ <s-table>
93
87
  <s-table-header-row>
94
88
  <s-table-header listSlot="primary">Template</s-table-header>
95
89
  <s-table-header>
@@ -101,7 +95,7 @@ export default function DetailsPage() {
101
95
  </s-table-header-row>
102
96
  <s-table-body>
103
97
  <s-table-row>
104
- <s-table-cell listSlot="primary">
98
+ <s-table-cell>
105
99
  <s-stack
106
100
  direction="inline"
107
101
  gap="base"
@@ -139,7 +133,7 @@ export default function DetailsPage() {
139
133
  </s-table-cell>
140
134
  </s-table-row>
141
135
  <s-table-row>
142
- <s-table-cell listSlot="primary">
136
+ <s-table-cell>
143
137
  <s-stack
144
138
  direction="inline"
145
139
  gap="base"
@@ -169,7 +163,7 @@ export default function DetailsPage() {
169
163
  <s-link>Preview</s-link>
170
164
  </s-stack>
171
165
  </s-table-cell>
172
- <s-table-cell listSlot="secondary">
166
+ <s-table-cell>
173
167
  <s-stack alignItems="end">
174
168
  <s-button
175
169
  icon="x"
@@ -220,7 +214,7 @@ export default function DetailsPage() {
220
214
  name="quantity-in-stock"
221
215
  labelAccessibilityVisibility="visible"
222
216
  value="50"
223
- min="0"
217
+ min={0}
224
218
  placeholder="0"
225
219
  details="Current inventory quantity"
226
220
  />
@@ -252,8 +246,6 @@ export default function DetailsPage() {
252
246
  </s-list-item>
253
247
  </s-unordered-list>
254
248
  </s-section>
255
- </s-box>
256
- </s-page>
257
- </form>
258
- );
259
- }
249
+ </s-box>
250
+ </s-page>
251
+ </form>
@@ -1,6 +1,7 @@
1
1
  <s-section accessibilityLabel="Empty state section">
2
2
  <s-grid gap="base" justifyItems="center" paddingBlock="large-400">
3
3
  <s-box maxInlineSize="200px" maxBlockSize="200px">
4
+ <!-- aspectRatio should match the actual image dimensions (width/height) -->
4
5
  <s-image
5
6
  aspectRatio="1/0.5"
6
7
  src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
@@ -1,6 +1,7 @@
1
1
  <s-section accessibilityLabel="Empty state section">
2
2
  <s-grid gap="base" justifyItems="center" paddingBlock="large-400">
3
3
  <s-box maxInlineSize="200px" maxBlockSize="200px">
4
+ {/* aspectRatio should match the actual image dimensions (width/height) */}
4
5
  <s-image
5
6
  aspectRatio="1/0.5"
6
7
  src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
@@ -0,0 +1,3 @@
1
+ <s-stack alignItems="center">
2
+ <s-text>Learn more about <s-link href="">creating puzzles</s-link>.</s-text>
3
+ </s-stack>
@@ -0,0 +1,3 @@
1
+ <s-stack alignItems="center">
2
+ <s-text>Learn more about <s-link href="">creating puzzles</s-link>.</s-text>
3
+ </s-stack>
@@ -1,25 +1,19 @@
1
- // ===
2
- // Home page pattern
3
- // ===
1
+ const [visible, setVisible] = useState({
2
+ banner: true,
3
+ setupGuide: true,
4
+ calloutCard: true,
5
+ featuredApps: true,
6
+ });
7
+ const [expanded, setExpanded] = useState({
8
+ setupGuide: true,
9
+ step1: false,
10
+ step2: false,
11
+ step3: false,
12
+ });
13
+ const [progress, setProgress] = useState(0);
4
14
 
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>
15
+ return (
16
+ <s-page>
23
17
  <s-button slot="primary-action">Create puzzle</s-button>
24
18
  <s-button slot="secondary-actions">Browse templates</s-button>
25
19
  <s-button slot="secondary-actions">Import image</s-button>
@@ -47,7 +41,7 @@ export default function HomePage() {
47
41
  {/* === */}
48
42
  {visible.setupGuide && (
49
43
  <s-section>
50
- <s-grid gap="base">
44
+ <s-grid gap="small">
51
45
  {/* Header */}
52
46
  <s-grid gap="small-200">
53
47
  <s-grid
@@ -100,9 +94,7 @@ export default function HomePage() {
100
94
  <s-checkbox
101
95
  label="Upload an image for your puzzle"
102
96
  onInput={(e) =>
103
- setProgress((prev) =>
104
- e.currentTarget.checked ? prev + 1 : prev - 1
105
- )
97
+ setProgress(e.currentTarget.checked ? progress + 1 : progress - 1)
106
98
  }
107
99
  ></s-checkbox>
108
100
  <s-button
@@ -163,9 +155,7 @@ export default function HomePage() {
163
155
  <s-checkbox
164
156
  label="Choose a puzzle template"
165
157
  onInput={(e) =>
166
- setProgress((prev) =>
167
- e.currentTarget.checked ? prev + 1 : prev - 1
168
- )
158
+ setProgress(e.currentTarget.checked ? progress + 1 : progress - 1)
169
159
  }
170
160
  ></s-checkbox>
171
161
  <s-button
@@ -226,9 +216,7 @@ export default function HomePage() {
226
216
  <s-checkbox
227
217
  label="Customize puzzle piece shapes"
228
218
  onInput={(e) =>
229
- setProgress((prev) =>
230
- e.currentTarget.checked ? prev + 1 : prev - 1
231
- )
219
+ setProgress(e.currentTarget.checked ? progress + 1 : progress - 1)
232
220
  }
233
221
  ></s-checkbox>
234
222
  <s-button
@@ -290,7 +278,7 @@ export default function HomePage() {
290
278
  {/* Metrics cards */}
291
279
  {/* Your app homepage should provide merchants with quick statistics or status updates that help them understand how the app is performing for them. */}
292
280
  {/* === */}
293
- <s-section padding="small">
281
+ <s-section padding="base">
294
282
  <s-grid
295
283
  gridTemplateColumns="@container (inline-size <= 400px) 1fr, 1fr auto 1fr auto 1fr"
296
284
  gap="small"
@@ -674,6 +662,5 @@ export default function HomePage() {
674
662
  </s-grid>
675
663
  </s-section>
676
664
  )}
677
- </s-page>
678
- );
679
- }
665
+ </s-page>
666
+ )
@@ -21,6 +21,7 @@
21
21
  <s-section accessibilityLabel="Empty state section">
22
22
  <s-grid gap="base" justifyItems="center" paddingBlock="large-400">
23
23
  <s-box maxInlineSize="200px" maxBlockSize="200px">
24
+ <!-- aspectRatio should match the actual image dimensions (width/height) -->
24
25
  <s-image
25
26
  maxInlineSize="200px"
26
27
  maxBlockSize="200px"
@@ -1,10 +1,4 @@
1
- // ===
2
- // Index page pattern
3
- // ===
4
-
5
- export default function IndexPage() {
6
- return (
7
- <s-page heading="Puzzles">
1
+ <s-page heading="Puzzles">
8
2
  <s-button slot="primary-action" variant="primary">
9
3
  Create puzzle
10
4
  </s-button>
@@ -21,6 +15,7 @@ export default function IndexPage() {
21
15
  <s-section accessibilityLabel="Empty state section">
22
16
  <s-grid gap="base" justifyItems="center" paddingBlock="large-400">
23
17
  <s-box maxInlineSize="200px" maxBlockSize="200px">
18
+ {/* aspectRatio should match the actual image dimensions (width/height) */}
24
19
  <s-image
25
20
  aspectRatio="1/0.5"
26
21
  src="https://cdn.shopify.com/static/images/polaris/patterns/callout.png"
@@ -38,12 +33,12 @@ export default function IndexPage() {
38
33
  <s-button-group>
39
34
  <s-button
40
35
  slot="secondary-actions"
41
- aria-label="Learn more about creating puzzles"
36
+ accessibilityLabel="Learn more about creating puzzles"
42
37
  >
43
38
  {" "}
44
39
  Learn more{" "}
45
40
  </s-button>
46
- <s-button slot="primary-action" aria-label="Add a new puzzle">
41
+ <s-button slot="primary-action" accessibilityLabel="Add a new puzzle">
47
42
  {" "}
48
43
  Create puzzle{" "}
49
44
  </s-button>
@@ -155,8 +150,6 @@ export default function IndexPage() {
155
150
  {/* Add more rows as needed here */}
156
151
  {/* If more than 100 rows are needed, index page tables should use the paginate, hasPreviousPage, hasNextPage, onPreviousPage, and onNextPage attributes to display and handle pagination) */}
157
152
  </s-table-body>
158
- </s-table>
159
- </s-section>
160
- </s-page>
161
- );
162
- }
153
+ </s-table>
154
+ </s-section>
155
+ </s-page>
@@ -2,12 +2,15 @@
2
2
  <s-table>
3
3
  <s-grid slot="filters" gap="small-200" gridTemplateColumns="1fr auto">
4
4
  <s-text-field
5
+ label="Search puzzles"
6
+ labelAccessibilityVisibility="exclusive"
5
7
  icon="search"
6
8
  placeholder="Searching all puzzles"
7
9
  ></s-text-field>
8
10
  <s-button
9
11
  icon="sort"
10
12
  variant="secondary"
13
+ accessibilityLabel="Sort"
11
14
  interestFor="sort-tooltip"
12
15
  commandFor="sort-actions"
13
16
  ></s-button>
@@ -2,12 +2,15 @@
2
2
  <s-table>
3
3
  <s-grid slot="filters" gap="small-200" gridTemplateColumns="1fr auto">
4
4
  <s-text-field
5
+ label="Search puzzles"
6
+ labelAccessibilityVisibility="exclusive"
5
7
  icon="search"
6
8
  placeholder="Searching all puzzles"
7
9
  />
8
10
  <s-button
9
11
  icon="sort"
10
12
  variant="secondary"
13
+ accessibilityLabel="Sort"
11
14
  interestFor="sort-tooltip"
12
15
  commandFor="sort-actions"
13
16
  />
@@ -1,5 +1,5 @@
1
1
  <s-box border="base" borderRadius="base" overflow="hidden" maxInlineSize="216px">
2
- <s-clickable href="" accessibilityLabel="4-pieces puzzle template">
2
+ <s-clickable href="">
3
3
  <s-image
4
4
  aspectRatio="1/1"
5
5
  objectFit="cover"
@@ -4,7 +4,7 @@
4
4
  overflow="hidden"
5
5
  maxInlineSize="216px"
6
6
  >
7
- <s-clickable href="" accessibilityLabel="4-pieces puzzle template">
7
+ <s-clickable href="">
8
8
  <s-image
9
9
  aspectRatio="1/1"
10
10
  objectFit="cover"
@@ -1,4 +1,4 @@
1
- <s-section padding="small">
1
+ <s-section padding="base">
2
2
  <s-grid
3
3
  gridTemplateColumns="@container (inline-size <= 400px) 1fr, 1fr auto 1fr auto 1fr"
4
4
  gap="small"