@shopify/ui-extensions 2025.10.0-rc.45 → 2025.10.0-rc.47

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 (304) hide show
  1. package/build/cjs/surfaces/checkout/preact/api.js +1 -1
  2. package/build/cjs/surfaces/checkout/shared.js +1 -1
  3. package/build/esm/surfaces/checkout/preact/api.mjs +1 -1
  4. package/build/esm/surfaces/checkout/shared.mjs +1 -1
  5. package/build/esnext/surfaces/checkout/preact/api.esnext +1 -1
  6. package/build/esnext/surfaces/checkout/shared.esnext +1 -1
  7. package/build/ts/docs/shared/components/ConsentCheckbox.d.ts +4 -0
  8. package/build/ts/docs/shared/components/ConsentCheckbox.d.ts.map +1 -0
  9. package/build/ts/docs/shared/components/ConsentPhoneField.d.ts +4 -0
  10. package/build/ts/docs/shared/components/ConsentPhoneField.d.ts.map +1 -0
  11. package/build/ts/docs/shared/components/index.d.ts +2 -0
  12. package/build/ts/docs/shared/components/index.d.ts.map +1 -1
  13. package/build/ts/surfaces/checkout/components/ConsentCheckbox/ConsentCheckbox.doc.d.ts +4 -0
  14. package/build/ts/surfaces/checkout/components/ConsentCheckbox/ConsentCheckbox.doc.d.ts.map +1 -0
  15. package/build/ts/surfaces/checkout/components/ConsentCheckbox.d.ts +84 -0
  16. package/build/ts/surfaces/checkout/components/ConsentPhoneField/ConsentPhoneField.doc.d.ts +4 -0
  17. package/build/ts/surfaces/checkout/components/ConsentPhoneField/ConsentPhoneField.doc.d.ts.map +1 -0
  18. package/build/ts/surfaces/checkout/components/ConsentPhoneField.d.ts +129 -0
  19. package/build/ts/surfaces/checkout/components/NumberField/NumberField.doc.d.ts +4 -0
  20. package/build/ts/surfaces/checkout/components/NumberField/NumberField.doc.d.ts.map +1 -0
  21. package/build/ts/surfaces/checkout/components/NumberField.d.ts +98 -0
  22. package/build/ts/surfaces/checkout/components/PasswordField.d.ts +1 -1
  23. package/build/ts/surfaces/checkout/components/components-shared.d.ts +17 -0
  24. package/build/ts/surfaces/checkout/components/components.d.ts +216 -144
  25. package/build/ts/surfaces/checkout/shared.d.ts +1 -1
  26. package/build/ts/surfaces/checkout/shared.d.ts.map +1 -1
  27. package/build/ts/surfaces/checkout/targets/Checkout::Actions::RenderBefore.d.ts +3 -0
  28. package/build/ts/surfaces/checkout/targets/Checkout::CartLineDetails::RenderAfter.d.ts +3 -0
  29. package/build/ts/surfaces/checkout/targets/Checkout::CartLineDetails::RenderLineComponents.d.ts +3 -0
  30. package/build/ts/surfaces/checkout/targets/Checkout::CartLines::RenderAfter.d.ts +3 -0
  31. package/build/ts/surfaces/checkout/targets/Checkout::Contact::RenderAfter.d.ts +3 -0
  32. package/build/ts/surfaces/checkout/targets/Checkout::CustomerInformation::RenderAfter.d.ts +3 -0
  33. package/build/ts/surfaces/checkout/targets/Checkout::DeliveryAddress::RenderBefore.d.ts +3 -0
  34. package/build/ts/surfaces/checkout/targets/Checkout::Dynamic::Render.d.ts +3 -0
  35. package/build/ts/surfaces/checkout/targets/Checkout::GiftCard::Render.d.ts +3 -0
  36. package/build/ts/surfaces/checkout/targets/Checkout::PaymentMethod::HostedFields::RenderAfter.d.ts +3 -0
  37. package/build/ts/surfaces/checkout/targets/Checkout::PaymentMethod::Render.d.ts +3 -0
  38. package/build/ts/surfaces/checkout/targets/Checkout::PaymentMethod::RenderRequiredAction.d.ts +3 -0
  39. package/build/ts/surfaces/checkout/targets/Checkout::PickupLocations::RenderAfter.d.ts +3 -0
  40. package/build/ts/surfaces/checkout/targets/Checkout::PickupLocations::RenderBefore.d.ts +3 -0
  41. package/build/ts/surfaces/checkout/targets/Checkout::PickupPoints::RenderAfter.d.ts +3 -0
  42. package/build/ts/surfaces/checkout/targets/Checkout::PickupPoints::RenderBefore.d.ts +3 -0
  43. package/build/ts/surfaces/checkout/targets/Checkout::Reductions::RenderAfter.d.ts +3 -0
  44. package/build/ts/surfaces/checkout/targets/Checkout::Reductions::RenderBefore.d.ts +3 -0
  45. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethodDetails::RenderAfter.d.ts +3 -0
  46. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethodDetails::RenderExpanded.d.ts +3 -0
  47. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethods::RenderAfter.d.ts +3 -0
  48. package/build/ts/surfaces/checkout/targets/Checkout::ShippingMethods::RenderBefore.d.ts +3 -0
  49. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::CartLineDetails::RenderAfter.d.ts +3 -0
  50. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::CartLines::RenderAfter.d.ts +3 -0
  51. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::CustomerInformation::RenderAfter.d.ts +3 -0
  52. package/build/ts/surfaces/checkout/targets/Checkout::ThankYou::Dynamic::Render.d.ts +3 -0
  53. package/build/ts/surfaces/checkout/targets/purchase.cart-line-item.line-components.render.d.ts +3 -0
  54. package/build/ts/surfaces/checkout/targets/purchase.checkout.actions.render-before.d.ts +3 -0
  55. package/build/ts/surfaces/checkout/targets/purchase.checkout.block.render.d.ts +3 -0
  56. package/build/ts/surfaces/checkout/targets/purchase.checkout.cart-line-item.render-after.d.ts +3 -0
  57. package/build/ts/surfaces/checkout/targets/purchase.checkout.cart-line-list.render-after.d.ts +3 -0
  58. package/build/ts/surfaces/checkout/targets/purchase.checkout.contact.render-after.d.ts +3 -0
  59. package/build/ts/surfaces/checkout/targets/purchase.checkout.delivery-address.render-after.d.ts +3 -0
  60. package/build/ts/surfaces/checkout/targets/purchase.checkout.delivery-address.render-before.d.ts +3 -0
  61. package/build/ts/surfaces/checkout/targets/purchase.checkout.footer.render-after.d.ts +3 -0
  62. package/build/ts/surfaces/checkout/targets/purchase.checkout.gift-card.render.d.ts +3 -0
  63. package/build/ts/surfaces/checkout/targets/purchase.checkout.header.render-after.d.ts +3 -0
  64. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-method-list.render-after.d.ts +3 -0
  65. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-method-list.render-before.d.ts +3 -0
  66. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.action-required.render.d.ts +3 -0
  67. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.details.render.d.ts +3 -0
  68. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.hosted-fields.render-after.d.ts +3 -0
  69. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-list.render-after.d.ts +3 -0
  70. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-list.render-before.d.ts +3 -0
  71. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-option-item.render-after.d.ts +3 -0
  72. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-point-list.render-after.d.ts +3 -0
  73. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-point-list.render-before.d.ts +3 -0
  74. package/build/ts/surfaces/checkout/targets/purchase.checkout.reductions.render-after.d.ts +3 -0
  75. package/build/ts/surfaces/checkout/targets/purchase.checkout.reductions.render-before.d.ts +3 -0
  76. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-item.details.render.d.ts +3 -0
  77. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-item.render-after.d.ts +3 -0
  78. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-list.render-after.d.ts +3 -0
  79. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-list.render-before.d.ts +3 -0
  80. package/build/ts/surfaces/checkout/targets/purchase.thank-you.announcement.render.d.ts +3 -0
  81. package/build/ts/surfaces/checkout/targets/purchase.thank-you.block.render.d.ts +3 -0
  82. package/build/ts/surfaces/checkout/targets/purchase.thank-you.cart-line-item.render-after.d.ts +3 -0
  83. package/build/ts/surfaces/checkout/targets/purchase.thank-you.cart-line-list.render-after.d.ts +3 -0
  84. package/build/ts/surfaces/checkout/targets/purchase.thank-you.customer-information.render-after.d.ts +3 -0
  85. package/build/ts/surfaces/checkout/targets/purchase.thank-you.footer.render-after.d.ts +3 -0
  86. package/build/ts/surfaces/checkout/targets/purchase.thank-you.header.render-after.d.ts +3 -0
  87. package/build/ts/surfaces/customer-account/components/ConsentCheckbox.d.ts +84 -0
  88. package/build/ts/surfaces/customer-account/components/ConsentPhoneField.d.ts +129 -0
  89. package/build/ts/surfaces/customer-account/components/NumberField.d.ts +98 -0
  90. package/build/ts/surfaces/customer-account/components/PasswordField.d.ts +1 -1
  91. package/build/ts/surfaces/customer-account/components/components-shared.d.ts +17 -0
  92. package/build/ts/surfaces/customer-account/components/components.d.ts +216 -144
  93. package/build/ts/surfaces/customer-account/targets/customer-account.footer.render-after.d.ts +3 -0
  94. package/build/ts/surfaces/customer-account/targets/customer-account.order-index.announcement.render.d.ts +3 -0
  95. package/build/ts/surfaces/customer-account/targets/customer-account.order-index.block.render.d.ts +3 -0
  96. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.announcement.render.d.ts +3 -0
  97. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.block.render.d.ts +3 -0
  98. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-item.render-after.d.ts +3 -0
  99. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-list.render-after.d.ts +3 -0
  100. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.customer-information.render-after.d.ts +3 -0
  101. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.fulfillment-details.render-after.d.ts +3 -0
  102. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.payment-details.render-after.d.ts +3 -0
  103. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.return-details.render-after.d.ts +3 -0
  104. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.unfulfilled-items.render-after.d.ts +3 -0
  105. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.menu-item.render.d.ts +3 -0
  106. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.render.d.ts +3 -0
  107. package/build/ts/surfaces/customer-account/targets/customer-account.order.page.render.d.ts +3 -0
  108. package/build/ts/surfaces/customer-account/targets/customer-account.page.render.d.ts +3 -0
  109. package/build/ts/surfaces/customer-account/targets/customer-account.profile.addresses.render-after.d.ts +3 -0
  110. package/build/ts/surfaces/customer-account/targets/customer-account.profile.announcement.render.d.ts +3 -0
  111. package/build/ts/surfaces/customer-account/targets/customer-account.profile.block.render.d.ts +3 -0
  112. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-details.render-after.d.ts +3 -0
  113. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-addresses.render-after.d.ts +3 -0
  114. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-payment.render-after.d.ts +3 -0
  115. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-staff.render-after.d.ts +3 -0
  116. package/build/ts/surfaces/customer-account/targets/customer-account.profile.payment.render-after.d.ts +3 -0
  117. package/build/ts/surfaces/point-of-sale/components/Badge.d.ts +10 -1
  118. package/build/ts/surfaces/point-of-sale/components/Banner.d.ts +12 -4
  119. package/build/ts/surfaces/point-of-sale/components/Box.d.ts +51 -14
  120. package/build/ts/surfaces/point-of-sale/components/Button.d.ts +12 -2
  121. package/build/ts/surfaces/point-of-sale/components/Choice.d.ts +3 -2
  122. package/build/ts/surfaces/point-of-sale/components/ChoiceList/ChoiceList.doc.d.ts.map +1 -1
  123. package/build/ts/surfaces/point-of-sale/components/ChoiceList.d.ts +13 -4
  124. package/build/ts/surfaces/point-of-sale/components/Clickable.d.ts +11 -4
  125. package/build/ts/surfaces/point-of-sale/components/DateField/DateField.doc.d.ts.map +1 -1
  126. package/build/ts/surfaces/point-of-sale/components/DateField.d.ts +20 -13
  127. package/build/ts/surfaces/point-of-sale/components/DatePicker/DatePicker.doc.d.ts.map +1 -1
  128. package/build/ts/surfaces/point-of-sale/components/DatePicker.d.ts +16 -4
  129. package/build/ts/surfaces/point-of-sale/components/DateSpinner/DateSpinner.doc.d.ts.map +1 -1
  130. package/build/ts/surfaces/point-of-sale/components/DateSpinner.d.ts +16 -4
  131. package/build/ts/surfaces/point-of-sale/components/Divider/Divider.doc.d.ts +4 -0
  132. package/build/ts/surfaces/point-of-sale/components/Divider/Divider.doc.d.ts.map +1 -0
  133. package/build/ts/surfaces/point-of-sale/components/Divider.d.ts +4 -3
  134. package/build/ts/surfaces/point-of-sale/components/EmailField/EmailField.doc.d.ts.map +1 -1
  135. package/build/ts/surfaces/point-of-sale/components/EmailField.d.ts +22 -5
  136. package/build/ts/surfaces/point-of-sale/components/Heading.d.ts +7 -4
  137. package/build/ts/surfaces/point-of-sale/components/Icon.d.ts +13 -3
  138. package/build/ts/surfaces/point-of-sale/components/Image.d.ts +12 -5
  139. package/build/ts/surfaces/point-of-sale/components/Modal.d.ts +28 -7
  140. package/build/ts/surfaces/point-of-sale/components/NumberField/NumberField.doc.d.ts.map +1 -1
  141. package/build/ts/surfaces/point-of-sale/components/NumberField.d.ts +32 -23
  142. package/build/ts/surfaces/point-of-sale/components/Page.d.ts +25 -11
  143. package/build/ts/surfaces/point-of-sale/components/PosBlock.d.ts +12 -13
  144. package/build/ts/surfaces/point-of-sale/components/QrCode.d.ts +12 -8
  145. package/build/ts/surfaces/point-of-sale/components/ScrollBox.d.ts +47 -15
  146. package/build/ts/surfaces/point-of-sale/components/SearchField/SearchField.doc.d.ts.map +1 -1
  147. package/build/ts/surfaces/point-of-sale/components/SearchField.d.ts +17 -5
  148. package/build/ts/surfaces/point-of-sale/components/Section.d.ts +15 -9
  149. package/build/ts/surfaces/point-of-sale/components/Stack.d.ts +67 -7
  150. package/build/ts/surfaces/point-of-sale/components/Text.d.ts +25 -4
  151. package/build/ts/surfaces/point-of-sale/components/TextArea/TextArea.doc.d.ts.map +1 -1
  152. package/build/ts/surfaces/point-of-sale/components/TextArea.d.ts +22 -5
  153. package/build/ts/surfaces/point-of-sale/components/TextField/TextField.doc.d.ts.map +1 -1
  154. package/build/ts/surfaces/point-of-sale/components/TextField.d.ts +22 -5
  155. package/build/ts/surfaces/point-of-sale/components/Tile.d.ts +12 -2
  156. package/build/ts/surfaces/point-of-sale/components/TimeField/TimeField.doc.d.ts.map +1 -1
  157. package/build/ts/surfaces/point-of-sale/components/TimeField.d.ts +18 -6
  158. package/build/ts/surfaces/point-of-sale/components/TimePicker/TimePicker.doc.d.ts.map +1 -1
  159. package/build/ts/surfaces/point-of-sale/components/TimePicker.d.ts +16 -4
  160. package/build/ts/surfaces/point-of-sale/components/components-shared.d.ts +102 -1
  161. package/build/tsconfig.tsbuildinfo +1 -1
  162. package/package.json +14 -3
  163. package/src/docs/shared/components/ConsentCheckbox.ts +12 -0
  164. package/src/docs/shared/components/ConsentPhoneField.ts +12 -0
  165. package/src/docs/shared/components/index.ts +2 -0
  166. package/src/surfaces/checkout/components/ConsentCheckbox/examples/basic-consent-checkbox.example.html +5 -0
  167. package/src/surfaces/checkout/components/ConsentCheckbox.d.ts +84 -0
  168. package/src/surfaces/checkout/components/ConsentPhoneField/examples/basic-consent-phone-field.example.html +5 -0
  169. package/src/surfaces/checkout/components/ConsentPhoneField.d.ts +129 -0
  170. package/src/surfaces/checkout/components/NumberField/examples/basic-number-field.example.html +8 -0
  171. package/src/surfaces/checkout/components/NumberField.d.ts +98 -0
  172. package/src/surfaces/checkout/components/PasswordField.d.ts +1 -1
  173. package/src/surfaces/checkout/components/PhoneField/examples/basic-phone-field.example.html +2 -1
  174. package/src/surfaces/checkout/components/ProductThumbnail/examples/basic-product-thumbnail.example.html +4 -1
  175. package/src/surfaces/checkout/components/Stack/examples/basic-stack.example.html +20 -4
  176. package/src/surfaces/checkout/components/TextArea/examples/basic-text-area.example.html +5 -1
  177. package/src/surfaces/checkout/components/TextField/examples/basic-text-field.example.html +4 -1
  178. package/src/surfaces/checkout/components/components-shared.d.ts +17 -0
  179. package/src/surfaces/checkout/components/components.d.ts +216 -144
  180. package/src/surfaces/checkout/preact/api.ts +1 -1
  181. package/src/surfaces/checkout/preact/tests/api.test.tsx +22 -13
  182. package/src/surfaces/checkout/preact/tests/app-metafields.test.ts +52 -56
  183. package/src/surfaces/checkout/preact/tests/attributes.test.ts +34 -24
  184. package/src/surfaces/checkout/preact/tests/billing-address.test.ts +17 -7
  185. package/src/surfaces/checkout/preact/tests/buyer-identity-businessCustomer.test.ts +16 -9
  186. package/src/surfaces/checkout/preact/tests/buyer-identity.test.tsx +57 -26
  187. package/src/surfaces/checkout/preact/tests/buyer-journey.test.ts +71 -74
  188. package/src/surfaces/checkout/preact/tests/capabilities.test.ts +32 -28
  189. package/src/surfaces/checkout/preact/tests/cart-line-target.test.ts +31 -24
  190. package/src/surfaces/checkout/preact/tests/checkout-settings.test.ts +17 -9
  191. package/src/surfaces/checkout/preact/tests/checkout-token.test.ts +16 -6
  192. package/src/surfaces/checkout/preact/tests/configuration.test.ts +16 -6
  193. package/src/surfaces/checkout/preact/tests/country.test.tsx +18 -8
  194. package/src/surfaces/checkout/preact/tests/currency.test.tsx +18 -8
  195. package/src/surfaces/checkout/preact/tests/customer-privacy.test.ts +17 -8
  196. package/src/surfaces/checkout/preact/tests/delivery-group-list-target.test.ts +24 -18
  197. package/src/surfaces/checkout/preact/tests/delivery-group-target.test.ts +25 -19
  198. package/src/surfaces/checkout/preact/tests/delivery-group.test.ts +22 -16
  199. package/src/surfaces/checkout/preact/tests/delivery-groups.test.ts +17 -11
  200. package/src/surfaces/checkout/preact/tests/delivery-selection-groups.test.ts +31 -24
  201. package/src/surfaces/checkout/preact/tests/discounts.test.tsx +21 -14
  202. package/src/surfaces/checkout/preact/tests/extension-language.test.tsx +17 -8
  203. package/src/surfaces/checkout/preact/tests/gift-cards.test.tsx +17 -8
  204. package/src/surfaces/checkout/preact/tests/localized-fields.test.ts +58 -59
  205. package/src/surfaces/checkout/preact/tests/market.test.tsx +17 -7
  206. package/src/surfaces/checkout/preact/tests/metafield.test.tsx +33 -36
  207. package/src/surfaces/checkout/preact/tests/metafields.test.tsx +36 -53
  208. package/src/surfaces/checkout/preact/tests/mount.tsx +60 -17
  209. package/src/surfaces/checkout/preact/tests/notes.test.tsx +16 -6
  210. package/src/surfaces/checkout/preact/tests/payment-method.test.ts +87 -60
  211. package/src/surfaces/checkout/preact/tests/payment-options.test.tsx +26 -24
  212. package/src/surfaces/checkout/preact/tests/pickup-location-option-target.test.tsx +55 -46
  213. package/src/surfaces/checkout/preact/tests/redeemable.test.ts +30 -23
  214. package/src/surfaces/checkout/preact/tests/session-token.test.tsx +12 -6
  215. package/src/surfaces/checkout/preact/tests/shipping-address.test.ts +17 -7
  216. package/src/surfaces/checkout/preact/tests/shipping-option-target.test.ts +54 -50
  217. package/src/surfaces/checkout/preact/tests/shopping-address.test.tsx +18 -10
  218. package/src/surfaces/checkout/preact/tests/timezone.test.tsx +17 -7
  219. package/src/surfaces/checkout/preact/tests/translate.test.tsx +18 -13
  220. package/src/surfaces/checkout/preact/tests/tsconfig.json +1 -1
  221. package/src/surfaces/checkout/shared.ts +2 -0
  222. package/src/surfaces/point-of-sale/components/Badge.d.ts +10 -1
  223. package/src/surfaces/point-of-sale/components/Banner/examples/default.html +8 -8
  224. package/src/surfaces/point-of-sale/components/Banner.d.ts +12 -4
  225. package/src/surfaces/point-of-sale/components/Box/examples/default.html +2 -2
  226. package/src/surfaces/point-of-sale/components/Box.d.ts +51 -14
  227. package/src/surfaces/point-of-sale/components/Button/examples/default.html +2 -4
  228. package/src/surfaces/point-of-sale/components/Button.d.ts +12 -2
  229. package/src/surfaces/point-of-sale/components/Choice.d.ts +3 -2
  230. package/src/surfaces/point-of-sale/components/ChoiceList/examples/default.html +5 -4
  231. package/src/surfaces/point-of-sale/components/ChoiceList/examples/event-handling.jsx +8 -0
  232. package/src/surfaces/point-of-sale/components/ChoiceList/examples/multiple-selection.jsx +9 -0
  233. package/src/surfaces/point-of-sale/components/ChoiceList.d.ts +13 -4
  234. package/src/surfaces/point-of-sale/components/Clickable/examples/default.html +5 -2
  235. package/src/surfaces/point-of-sale/components/Clickable.d.ts +11 -4
  236. package/src/surfaces/point-of-sale/components/DateField/examples/default.html +2 -10
  237. package/src/surfaces/point-of-sale/components/DateField/examples/event-handling.jsx +8 -0
  238. package/src/surfaces/point-of-sale/components/DateField.d.ts +20 -13
  239. package/src/surfaces/point-of-sale/components/DatePicker/examples/command-system.jsx +10 -0
  240. package/src/surfaces/point-of-sale/components/DatePicker/examples/default.html +4 -5
  241. package/src/surfaces/point-of-sale/components/DatePicker/examples/event-handling.jsx +7 -0
  242. package/src/surfaces/point-of-sale/components/DatePicker.d.ts +16 -4
  243. package/src/surfaces/point-of-sale/components/DateSpinner/examples/command-system.jsx +10 -0
  244. package/src/surfaces/point-of-sale/components/DateSpinner/examples/default.html +1 -2
  245. package/src/surfaces/point-of-sale/components/DateSpinner/examples/event-handling.jsx +7 -0
  246. package/src/surfaces/point-of-sale/components/DateSpinner.d.ts +16 -4
  247. package/src/surfaces/point-of-sale/components/Divider/examples/default.html +1 -0
  248. package/src/surfaces/point-of-sale/components/Divider.d.ts +4 -3
  249. package/src/surfaces/point-of-sale/components/EmailField/examples/accessory-slot.jsx +9 -0
  250. package/src/surfaces/point-of-sale/components/EmailField/examples/default.html +3 -10
  251. package/src/surfaces/point-of-sale/components/EmailField/examples/event-handling.jsx +8 -0
  252. package/src/surfaces/point-of-sale/components/EmailField.d.ts +22 -5
  253. package/src/surfaces/point-of-sale/components/Heading/examples/default.html +4 -5
  254. package/src/surfaces/point-of-sale/components/Heading.d.ts +7 -4
  255. package/src/surfaces/point-of-sale/components/Icon/examples/default.html +4 -1
  256. package/src/surfaces/point-of-sale/components/Icon.d.ts +13 -3
  257. package/src/surfaces/point-of-sale/components/Image/examples/default.html +1 -1
  258. package/src/surfaces/point-of-sale/components/Image.d.ts +12 -5
  259. package/src/surfaces/point-of-sale/components/Modal/examples/default.html +6 -8
  260. package/src/surfaces/point-of-sale/components/Modal.d.ts +28 -7
  261. package/src/surfaces/point-of-sale/components/NumberField/examples/controls-constraints.jsx +9 -0
  262. package/src/surfaces/point-of-sale/components/NumberField/examples/default.html +5 -2
  263. package/src/surfaces/point-of-sale/components/NumberField/examples/input-mode.jsx +15 -0
  264. package/src/surfaces/point-of-sale/components/NumberField.d.ts +32 -23
  265. package/src/surfaces/point-of-sale/components/Page/examples/default.html +3 -4
  266. package/src/surfaces/point-of-sale/components/Page.d.ts +25 -11
  267. package/src/surfaces/point-of-sale/components/PosBlock/examples/default.html +3 -9
  268. package/src/surfaces/point-of-sale/components/PosBlock.d.ts +12 -13
  269. package/src/surfaces/point-of-sale/components/QrCode.d.ts +12 -8
  270. package/src/surfaces/point-of-sale/components/ScrollBox/examples/default.html +5 -4
  271. package/src/surfaces/point-of-sale/components/ScrollBox.d.ts +47 -15
  272. package/src/surfaces/point-of-sale/components/SearchField/examples/default.html +1 -1
  273. package/src/surfaces/point-of-sale/components/SearchField/examples/event-handling.jsx +8 -0
  274. package/src/surfaces/point-of-sale/components/SearchField.d.ts +17 -5
  275. package/src/surfaces/point-of-sale/components/Section/examples/default.html +6 -8
  276. package/src/surfaces/point-of-sale/components/Section.d.ts +15 -9
  277. package/src/surfaces/point-of-sale/components/Stack/examples/default.html +3 -3
  278. package/src/surfaces/point-of-sale/components/Stack.d.ts +67 -7
  279. package/src/surfaces/point-of-sale/components/Text/examples/default.html +3 -6
  280. package/src/surfaces/point-of-sale/components/Text.d.ts +25 -4
  281. package/src/surfaces/point-of-sale/components/TextArea/examples/accessory-slot.jsx +9 -0
  282. package/src/surfaces/point-of-sale/components/TextArea/examples/default.html +4 -1
  283. package/src/surfaces/point-of-sale/components/TextArea/examples/event-handling.jsx +8 -0
  284. package/src/surfaces/point-of-sale/components/TextArea/examples/rows-configuration.jsx +7 -0
  285. package/src/surfaces/point-of-sale/components/TextArea.d.ts +22 -5
  286. package/src/surfaces/point-of-sale/components/TextField/examples/accessory-slot.jsx +5 -0
  287. package/src/surfaces/point-of-sale/components/TextField/examples/common-props.jsx +11 -0
  288. package/src/surfaces/point-of-sale/components/TextField/examples/default.html +5 -3
  289. package/src/surfaces/point-of-sale/components/TextField/examples/event-handling.jsx +17 -0
  290. package/src/surfaces/point-of-sale/components/TextField.d.ts +22 -5
  291. package/src/surfaces/point-of-sale/components/Tile/examples/default.html +2 -5
  292. package/src/surfaces/point-of-sale/components/Tile.d.ts +12 -2
  293. package/src/surfaces/point-of-sale/components/TimeField/examples/default.html +1 -9
  294. package/src/surfaces/point-of-sale/components/TimeField/examples/event-handling.jsx +8 -0
  295. package/src/surfaces/point-of-sale/components/TimeField.d.ts +18 -6
  296. package/src/surfaces/point-of-sale/components/TimePicker/examples/command-system.jsx +10 -0
  297. package/src/surfaces/point-of-sale/components/TimePicker/examples/default.html +4 -1
  298. package/src/surfaces/point-of-sale/components/TimePicker/examples/event-handling.jsx +7 -0
  299. package/src/surfaces/point-of-sale/components/TimePicker.d.ts +16 -4
  300. package/src/surfaces/point-of-sale/components/components-shared.d.ts +102 -1
  301. package/src/surfaces/point-of-sale/components.d.ts +957 -472
  302. package/build/ts/surfaces/checkout/errors.d.ts +0 -10
  303. package/build/ts/surfaces/checkout/errors.d.ts.map +0 -1
  304. package/src/surfaces/checkout/errors.ts +0 -13
@@ -8,8 +8,9 @@
8
8
  /* eslint-disable import-x/namespace */
9
9
  // eslint-disable-next-line @typescript-eslint/triple-slash-reference, spaced-comment
10
10
  /// <reference lib="DOM" />
11
- import type {Key, Ref} from './components-shared.d.ts';
11
+ import type {QRCodeProps, Key, Ref} from './components-shared.d.ts';
12
12
 
13
+ export type ComponentChildren = any;
13
14
  /**
14
15
  * Used when an element does not have children.
15
16
  */
@@ -18,14 +19,17 @@ export interface BaseElementProps<TClass = HTMLElement> {
18
19
  ref?: Ref<TClass>;
19
20
  slot?: Lowercase<string>;
20
21
  }
22
+ /**
23
+ * Used when an element has children.
24
+ */
25
+ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
26
+ extends BaseElementProps<TClass> {
27
+ children?: ComponentChildren;
28
+ }
29
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
21
30
 
22
31
  declare const tagName = 's-qr-code';
23
- export interface QrCodeJSXProps {
24
- /**
25
- * The value to encode in the QR code
26
- */
27
- content: string;
28
- }
32
+ export interface QrCodeJSXProps extends Pick<QRCodeProps, 'id' | 'content'> {}
29
33
  declare global {
30
34
  interface HTMLElementTagNameMap {
31
35
  [tagName]: QrCodeJSXProps;
@@ -34,7 +38,7 @@ declare global {
34
38
  declare module 'preact' {
35
39
  namespace createElement.JSX {
36
40
  interface IntrinsicElements {
37
- [tagName]: QrCodeJSXProps & BaseElementProps<QrCodeJSXProps>;
41
+ [tagName]: IntrinsicElementProps<QrCodeJSXProps>;
38
42
  }
39
43
  }
40
44
  }
@@ -1,7 +1,8 @@
1
1
  <s-scroll-box>
2
- <s-choice-list multiple>
3
- {data.map((item) => (
4
- <s-choice value={item.value}>{item.label}</s-choice>
5
- ))}
2
+ <s-choice-list>
3
+ <s-choice value="true-twin">True Twin board</s-choice>
4
+ <s-choice value="directional">Directional board</s-choice>
5
+ <s-choice value="volume">Volume shifted board</s-choice>
6
+ <s-choice value="asymmetrical">Asymmetrical board</s-choice>
6
7
  </s-choice-list>
7
8
  </s-scroll-box>
@@ -13,6 +13,9 @@ import type {
13
13
  MaybeAllValuesShorthandProperty,
14
14
  MaybeTwoValuesShorthandProperty,
15
15
  SizeKeyword,
16
+ SizeUnitsOrAuto,
17
+ SizeUnitsOrNone,
18
+ SizeUnits,
16
19
  Key,
17
20
  Ref,
18
21
  } from './components-shared.d.ts';
@@ -33,20 +36,47 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
33
36
  extends BaseElementProps<TClass> {
34
37
  children?: ComponentChildren;
35
38
  }
39
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
36
40
 
37
41
  export type PaddingKeyword = SizeKeyword | 'none';
38
42
  declare const tagName = 's-scroll-box';
39
- export interface ScrollBoxJSXProps
40
- extends Pick<
41
- ScrollBoxProps,
42
- | 'id'
43
- | 'blockSize'
44
- | 'minBlockSize'
45
- | 'maxBlockSize'
46
- | 'inlineSize'
47
- | 'minInlineSize'
48
- | 'maxInlineSize'
49
- > {
43
+ export interface ScrollBoxJSXProps extends Pick<ScrollBoxProps, 'id'> {
44
+ /**
45
+ * Adjust the block size.
46
+ *
47
+ * @default 'auto'
48
+ */
49
+ blockSize?: SizeUnitsOrAuto;
50
+ /**
51
+ * Adjust the inline size.
52
+ *
53
+ * @default 'auto'
54
+ */
55
+ inlineSize?: SizeUnitsOrAuto;
56
+ /**
57
+ * Adjust the maximum block size.
58
+ *
59
+ * @default 'none'
60
+ */
61
+ maxBlockSize?: SizeUnitsOrNone;
62
+ /**
63
+ * Adjust the maximum inline size.
64
+ *
65
+ * @default 'none'
66
+ */
67
+ maxInlineSize?: SizeUnitsOrNone;
68
+ /**
69
+ * Adjust the minimum block size.
70
+ *
71
+ * @default '0'
72
+ */
73
+ minBlockSize?: SizeUnits;
74
+ /**
75
+ * Adjust the minimum inline size.
76
+ *
77
+ * @default '0'
78
+ */
79
+ minInlineSize?: SizeUnits;
50
80
  /**
51
81
  * Adjust the padding of all edges.
52
82
  *
@@ -77,7 +107,7 @@ export interface ScrollBoxJSXProps
77
107
  *
78
108
  * @default '' - meaning no override
79
109
  */
80
- paddingBlock?: MaybeTwoValuesShorthandProperty<PaddingKeyword | ''>;
110
+ paddingBlock?: MaybeTwoValuesShorthandProperty<PaddingKeyword> | '';
81
111
  /**
82
112
  * Adjust the block-start padding.
83
113
  *
@@ -103,7 +133,7 @@ export interface ScrollBoxJSXProps
103
133
  *
104
134
  * @default '' - meaning no override
105
135
  */
106
- paddingInline?: MaybeTwoValuesShorthandProperty<PaddingKeyword | ''>;
136
+ paddingInline?: MaybeTwoValuesShorthandProperty<PaddingKeyword> | '';
107
137
  /**
108
138
  * Adjust the inline-start padding.
109
139
  *
@@ -120,6 +150,9 @@ export interface ScrollBoxJSXProps
120
150
  * @default '' - meaning no override
121
151
  */
122
152
  paddingInlineEnd?: PaddingKeyword | '';
153
+ /**
154
+ * The content of the ScrollBox.
155
+ */
123
156
  children?: ComponentChildren;
124
157
  }
125
158
  declare global {
@@ -130,8 +163,7 @@ declare global {
130
163
  declare module 'preact' {
131
164
  namespace createElement.JSX {
132
165
  interface IntrinsicElements {
133
- [tagName]: ScrollBoxJSXProps &
134
- BaseElementPropsWithChildren<ScrollBoxJSXProps>;
166
+ [tagName]: IntrinsicElementProps<ScrollBoxJSXProps>;
135
167
  }
136
168
  }
137
169
  }
@@ -1 +1 @@
1
- <s-search-field placeholder="Search"></s-search-field>
1
+ <s-search-field placeholder="Search" />
@@ -0,0 +1,8 @@
1
+ <s-search-field
2
+ placeholder="Search products..."
3
+ value=""
4
+ onInput={(event) => console.log('Input:', event.target.value)}
5
+ onChange={(event) => console.log('Change:', event.target.value)}
6
+ onFocus={(event) => console.log('Search focused')}
7
+ onBlur={(event) => console.log('Search blurred')}
8
+ />
@@ -26,6 +26,7 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
26
26
  extends BaseElementProps<TClass> {
27
27
  children?: ComponentChildren;
28
28
  }
29
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
29
30
  export interface CallbackEvent<T extends keyof HTMLElementTagNameMap> {
30
31
  currentTarget: HTMLElementTagNameMap[T];
31
32
  bubbles?: boolean;
@@ -38,11 +39,23 @@ export interface CallbackEvent<T extends keyof HTMLElementTagNameMap> {
38
39
 
39
40
  declare const tagName = 's-search-field';
40
41
  export interface SearchFieldJSXProps
41
- extends Pick<SearchFieldProps, 'disabled' | 'placeholder' | 'value'> {
42
- onFocus?: ((event: CallbackEvent<typeof tagName>) => void) | null;
43
- onBlur?: ((event: CallbackEvent<typeof tagName>) => void) | null;
42
+ extends Pick<SearchFieldProps, 'id' | 'disabled' | 'placeholder' | 'value'> {
43
+ /**
44
+ * Callback when the user changes the value in the field.
45
+ */
44
46
  onInput?: ((event: CallbackEvent<typeof tagName>) => void) | null;
47
+ /**
48
+ * Callback when the field loses focus after the user changes the value in the field.
49
+ */
45
50
  onChange?: ((event: CallbackEvent<typeof tagName>) => void) | null;
51
+ /**
52
+ * Callback when the field loses focus.
53
+ */
54
+ onBlur?: ((event: CallbackEvent<typeof tagName>) => void) | null;
55
+ /**
56
+ * Callback when the field is focused.
57
+ */
58
+ onFocus?: ((event: CallbackEvent<typeof tagName>) => void) | null;
46
59
  }
47
60
  declare global {
48
61
  interface HTMLElementTagNameMap {
@@ -52,8 +65,7 @@ declare global {
52
65
  declare module 'preact' {
53
66
  namespace createElement.JSX {
54
67
  interface IntrinsicElements {
55
- [tagName]: SearchFieldJSXProps &
56
- BaseElementPropsWithChildren<SearchFieldJSXProps>;
68
+ [tagName]: IntrinsicElementProps<SearchFieldJSXProps>;
57
69
  }
58
70
  }
59
71
  }
@@ -1,10 +1,8 @@
1
- <s-section heading="Section header">
2
- <s-button slot="secondary-actions" onClick={onActionClick}>
3
- Action
4
- </s-button>
1
+ <s-section heading="Select product category">
2
+ <s-button slot="secondary-actions">Edit</s-button>
5
3
  <s-choice-list>
6
- {data.map((item) => (
7
- <s-choice value={item.value}>{item.label}</s-choice>
8
- ))}
4
+ <s-choice value="snowboards">Snowboards</s-choice>
5
+ <s-choice value="jackets">Jackets</s-choice>
6
+ <s-choice value="label">Label</s-choice>
9
7
  </s-choice-list>
10
- </s-section>
8
+ </s-section>
@@ -31,29 +31,35 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
31
31
  extends BaseElementProps<TClass> {
32
32
  children?: ComponentChildren;
33
33
  }
34
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
34
35
 
35
36
  declare const tagName = 's-section';
36
- export interface SectionJSXProps extends Pick<SectionProps, 'children'> {
37
- secondaryActions?: ComponentChild;
37
+ export interface SectionJSXProps extends Pick<SectionProps, 'id'> {
38
38
  /**
39
- * Adds title text displayed at the top left of the section
40
- *
41
- * **Mobile surfaces:** Uses the standard POS Design System heading style for a section (not h2).
39
+ * A title that describes the content of the section.
42
40
  *
43
- * @default undefined
41
+ * If omitted, and no secondaryActions are provided, the section will be rendered without a header.
44
42
  */
45
43
  heading?: string;
44
+ /**
45
+ * Button element to display in the section heading. A single button is supported.
46
+ */
47
+ secondaryActions?: ComponentChild;
48
+ /**
49
+ * The content of the Section.
50
+ */
51
+ children?: ComponentChildren;
46
52
  }
53
+ export type ElementProps = Omit<SectionJSXProps, 'secondaryActions'>;
47
54
  declare global {
48
55
  interface HTMLElementTagNameMap {
49
- [tagName]: SectionJSXProps;
56
+ [tagName]: ElementProps;
50
57
  }
51
58
  }
52
59
  declare module 'preact' {
53
60
  namespace createElement.JSX {
54
61
  interface IntrinsicElements {
55
- [tagName]: Omit<SectionJSXProps, 'secondaryActions'> &
56
- BaseElementPropsWithChildren<Omit<SectionJSXProps, 'secondaryActions'>>;
62
+ [tagName]: IntrinsicElementProps<ElementProps>;
57
63
  }
58
64
  }
59
65
  }
@@ -1,4 +1,4 @@
1
- <s-stack>
2
- <s-text>First item</s-text>
3
- <s-text>Second item</s-text>
1
+ <s-stack gap="small" direction="inline" justifyContent="center">
2
+ <s-badge tone="neutral">Paid</s-badge>
3
+ <s-badge tone="success">Active</s-badge>
4
4
  </s-stack>
@@ -10,6 +10,13 @@
10
10
  /// <reference lib="DOM" />
11
11
  import type {
12
12
  StackProps,
13
+ SizeUnitsOrAuto,
14
+ SizeUnitsOrNone,
15
+ SizeUnits,
16
+ AlignItemsKeyword,
17
+ AlignContentKeyword,
18
+ SpacingKeyword,
19
+ JustifyContentKeyword,
13
20
  SizeKeyword,
14
21
  MaybeAllValuesShorthandProperty,
15
22
  MaybeTwoValuesShorthandProperty,
@@ -33,11 +40,13 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
33
40
  extends BaseElementProps<TClass> {
34
41
  children?: ComponentChildren;
35
42
  }
43
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
36
44
 
37
45
  declare const tagName = 's-stack';
38
46
  export type PaddingKeyword = SizeKeyword | 'none';
39
47
  export type PickedProps = Pick<
40
48
  StackProps,
49
+ | 'id'
41
50
  | 'alignItems'
42
51
  | 'alignContent'
43
52
  | 'gap'
@@ -126,7 +135,6 @@ export interface StackJSXProps extends PickedProps {
126
135
  * @default '' - meaning no override
127
136
  */
128
137
  paddingInlineEnd?: PaddingKeyword | '';
129
- children?: ComponentChildren;
130
138
  /**
131
139
  * Adjust the block size.
132
140
  * **Mobile surfaces:** Avoid using percentage-based sizes. They do not behave as expected when placed within a scrollable container.
@@ -135,7 +143,7 @@ export interface StackJSXProps extends PickedProps {
135
143
  *
136
144
  * @default 'auto'
137
145
  */
138
- blockSize?: PickedProps['blockSize'];
146
+ blockSize?: SizeUnitsOrAuto;
139
147
  /**
140
148
  * Adjust the maximum block size.
141
149
  * **Mobile surfaces:** Avoid using percentage-based sizes. They do not behave as expected when placed within a scrollable container.
@@ -144,7 +152,7 @@ export interface StackJSXProps extends PickedProps {
144
152
  *
145
153
  * @default 'none'
146
154
  */
147
- maxBlockSize?: PickedProps['maxBlockSize'];
155
+ maxBlockSize?: SizeUnitsOrNone;
148
156
  /**
149
157
  * Adjust the maximum inline size.
150
158
  * **Mobile surfaces:** Avoid using percentage-based sizes. They do not behave as expected when placed within a scrollable container.
@@ -153,7 +161,7 @@ export interface StackJSXProps extends PickedProps {
153
161
  *
154
162
  * @default 'none'
155
163
  */
156
- maxInlineSize?: PickedProps['maxInlineSize'];
164
+ maxInlineSize?: SizeUnitsOrNone;
157
165
  /**
158
166
  * Adjust the minimum block size.
159
167
  * **Mobile surfaces:** Avoid using percentage-based sizes. They do not behave as expected when placed within a scrollable container.
@@ -162,7 +170,7 @@ export interface StackJSXProps extends PickedProps {
162
170
  *
163
171
  * @default '0'
164
172
  */
165
- minBlockSize?: PickedProps['minBlockSize'];
173
+ minBlockSize?: SizeUnits;
166
174
  /**
167
175
  * Adjust the minimum inline size.
168
176
  * **Mobile surfaces:** Avoid using percentage-based sizes. They do not behave as expected when placed within a scrollable container.
@@ -171,7 +179,59 @@ export interface StackJSXProps extends PickedProps {
171
179
  *
172
180
  * @default '0'
173
181
  */
174
- minInlineSize?: PickedProps['minInlineSize'];
182
+ minInlineSize?: SizeUnits;
183
+ /**
184
+ * Aligns the Stack's children along the cross axis.
185
+ */
186
+ alignItems?: AlignItemsKeyword;
187
+ /**
188
+ * Aligns the Stack along the cross axis.
189
+ */
190
+ alignContent?: AlignContentKeyword;
191
+ /**
192
+ * Adjust spacing between elements.
193
+ * A single value applies to both axes. A pair of values (eg large-100 large-500) can be used to set the inline and block axes respectively.
194
+ *
195
+ * @default 'none'
196
+ */
197
+ gap?: MaybeTwoValuesShorthandProperty<SpacingKeyword>;
198
+ /**
199
+ * Adjust spacing between elements in the inline axis. This overrides the column value of gap.
200
+ *
201
+ * @default '' - meaning no override
202
+ */
203
+ columnGap?: SpacingKeyword | '';
204
+ /**
205
+ * Sets how the children are placed within the Stack. This uses logical properties.
206
+ *
207
+ * @default 'block'
208
+ * @implementation - the content will wrap if the direction is 'inline', and not wrap if the direction is 'block'
209
+ */
210
+ direction?: 'block' | 'inline';
211
+ /**
212
+ * Adjust the inline size.
213
+ * @see — https://developer.mozilla.org/en-US/docs/Web/CSS/inline-size
214
+ *
215
+ * @default 'auto'
216
+ */
217
+ inlineSize?: SizeUnitsOrAuto;
218
+ /**
219
+ * Aligns the Stack along the main axis.
220
+ * @see — https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
221
+ *
222
+ * @default 'normal'
223
+ */
224
+ justifyContent?: JustifyContentKeyword;
225
+ /**
226
+ * Adjust spacing between elements in the block axis. This overrides the row value of gap.
227
+ *
228
+ * @default '' - meaning no override
229
+ */
230
+ rowGap?: SpacingKeyword | '';
231
+ /**
232
+ * The content of the Stack.
233
+ */
234
+ children?: ComponentChildren;
175
235
  }
176
236
  declare global {
177
237
  interface HTMLElementTagNameMap {
@@ -181,7 +241,7 @@ declare global {
181
241
  declare module 'preact' {
182
242
  namespace createElement.JSX {
183
243
  interface IntrinsicElements {
184
- [tagName]: StackJSXProps & BaseElementPropsWithChildren<StackJSXProps>;
244
+ [tagName]: IntrinsicElementProps<StackJSXProps>;
185
245
  }
186
246
  }
187
247
  }
@@ -1,6 +1,3 @@
1
- <s-text>Text</s-text>
2
- <s-text color="subdued">Text</s-text>
3
- <s-text tone="info">Text</s-text>
4
- <s-text tone="success">Text</s-text>
5
- <s-text tone="warning">Text</s-text>
6
- <s-text tone="critical">Text</s-text>
1
+ <s-text>
2
+ <s-text type="strong">Name:</s-text> Jane Doe
3
+ </s-text>
@@ -26,15 +26,36 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
26
26
  extends BaseElementProps<TClass> {
27
27
  children?: ComponentChildren;
28
28
  }
29
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
29
30
 
30
31
  declare const tagName = 's-text';
31
- export interface TextJSXProps extends Pick<TextProps, 'tone' | 'type'> {
32
- color?: 'subdued' | 'base' | 'strong';
33
- type?: Extract<TextProps['type'], 'strong' | 'small' | 'generic'>;
32
+ export interface TextJSXProps extends Pick<TextProps, 'id'> {
33
+ /**
34
+ * Modify the color to be more or less intense.
35
+ *
36
+ * @default 'base'
37
+ */
38
+ color?: Extract<TextProps['color'], 'base' | 'strong' | 'subdued'>;
39
+ /**
40
+ * Provide semantic meaning and default styling to the text.
41
+ *
42
+ * Other presentation properties on Text override the default styling.
43
+ *
44
+ * @default 'generic'
45
+ */
46
+ type?: Extract<TextProps['type'], 'generic' | 'strong' | 'small'>;
47
+ /**
48
+ * Sets the tone of the component, based on the intention of the information being conveyed.
49
+ *
50
+ * @default 'auto'
51
+ */
34
52
  tone?: Extract<
35
53
  TextProps['tone'],
36
54
  'auto' | 'neutral' | 'info' | 'success' | 'warning' | 'critical' | 'caution'
37
55
  >;
56
+ /**
57
+ * The Text content. Supports nested text elements.
58
+ */
38
59
  children?: ComponentChildren;
39
60
  }
40
61
  declare global {
@@ -45,7 +66,7 @@ declare global {
45
66
  declare module 'preact' {
46
67
  namespace createElement.JSX {
47
68
  interface IntrinsicElements {
48
- [tagName]: TextJSXProps & BaseElementPropsWithChildren<TextJSXProps>;
69
+ [tagName]: IntrinsicElementProps<TextJSXProps>;
49
70
  }
50
71
  }
51
72
  }
@@ -0,0 +1,9 @@
1
+ <s-text-area
2
+ label="Product description"
3
+ placeholder="Enter product details..."
4
+ value="This is a sample product description"
5
+ >
6
+ <s-button slot="accessory" onClick={() => console.log('Clear')}>
7
+ Clear
8
+ </s-button>
9
+ </s-text-area>;
@@ -1 +1,4 @@
1
- <s-text-area label="Add note" placeholder="Enter a custom note" value="Custom note" ></s-text-area>
1
+ <s-text-area
2
+ label="Shipping address"
3
+ value="1776 Barnes Street, Orlando, FL 32801"
4
+ />
@@ -0,0 +1,8 @@
1
+ <s-text-area
2
+ label="Customer feedback"
3
+ placeholder="Enter feedback..."
4
+ onInput={(event) => console.log('Input:', event.target.value)}
5
+ onChange={(event) => console.log('Change:', event.target.value)}
6
+ onFocus={(event) => console.log('Focused')}
7
+ onBlur={(event) => console.log('Blurred')}
8
+ />
@@ -0,0 +1,7 @@
1
+ <s-text-area
2
+ label="Order notes"
3
+ placeholder="Add special instructions..."
4
+ rows={5}
5
+ maxLength={500}
6
+ onInput={(event) => console.log('Characters:', event.target.value.length)}
7
+ />
@@ -31,6 +31,7 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
31
31
  extends BaseElementProps<TClass> {
32
32
  children?: ComponentChildren;
33
33
  }
34
+ export type IntrinsicElementProps<T> = T & BaseElementPropsWithChildren<T>;
34
35
  export interface CallbackEvent<T extends keyof HTMLElementTagNameMap> {
35
36
  currentTarget: HTMLElementTagNameMap[T];
36
37
  bubbles?: boolean;
@@ -45,6 +46,7 @@ declare const tagName = 's-text-area';
45
46
  export interface TextAreaJSXProps
46
47
  extends Pick<
47
48
  TextAreaProps,
49
+ | 'id'
48
50
  | 'label'
49
51
  | 'details'
50
52
  | 'value'
@@ -55,22 +57,37 @@ export interface TextAreaJSXProps
55
57
  | 'maxLength'
56
58
  | 'rows'
57
59
  > {
60
+ /**
61
+ * Callback when the user makes any changes in the field.
62
+ */
58
63
  onInput?: ((event: CallbackEvent<typeof tagName>) => void) | null;
59
- onFocus?: ((event: CallbackEvent<typeof tagName>) => void) | null;
60
- onBlur?: ((event: CallbackEvent<typeof tagName>) => void) | null;
64
+ /**
65
+ * Callback after editing completes (typically on blur).
66
+ */
61
67
  onChange?: ((event: CallbackEvent<typeof tagName>) => void) | null;
68
+ /**
69
+ * Callback when the element loses focus.
70
+ */
71
+ onBlur?: ((event: CallbackEvent<typeof tagName>) => void) | null;
72
+ /**
73
+ * Callback when the element receives focus.
74
+ */
75
+ onFocus?: ((event: CallbackEvent<typeof tagName>) => void) | null;
76
+ /**
77
+ * Additional content to be displayed in the field. Commonly used to display clickable text.
78
+ */
62
79
  accessory?: ComponentChild;
63
80
  }
81
+ export type ElementProps = Omit<TextAreaJSXProps, 'accessory'>;
64
82
  declare global {
65
83
  interface HTMLElementTagNameMap {
66
- [tagName]: TextAreaJSXProps;
84
+ [tagName]: ElementProps;
67
85
  }
68
86
  }
69
87
  declare module 'preact' {
70
88
  namespace createElement.JSX {
71
89
  interface IntrinsicElements {
72
- [tagName]: Omit<TextAreaJSXProps, 'accessory'> &
73
- BaseElementPropsWithChildren<Omit<TextAreaJSXProps, 'accessory'>>;
90
+ [tagName]: IntrinsicElementProps<ElementProps>;
74
91
  }
75
92
  }
76
93
  }
@@ -0,0 +1,5 @@
1
+ <s-text-field label="Discount code" value="SUMMER2024">
2
+ <s-button slot="accessory" onClick={() => console.log('Apply discount')}>
3
+ Apply
4
+ </s-button>
5
+ </s-text-field>;
@@ -0,0 +1,11 @@
1
+ <s-text-field
2
+ label="Product SKU"
3
+ value={sku}
4
+ placeholder="Enter SKU"
5
+ details="Use format: ABC-123"
6
+ error={hasError ? "SKU already exists" : undefined}
7
+ disabled={isProcessing}
8
+ required
9
+ maxLength={20}
10
+ onChange={(event) => setSku(event.target.value)}
11
+ />
@@ -1,3 +1,5 @@
1
- <s-text-field label="Label" required value=""></s-text-field>
2
- <s-text-field label="Label" required value="Content"></s-text-field>
3
- <s-text-field label="Label" required value="Content" error="Error message"></s-text-field>
1
+ <s-text-field
2
+ label="Store name"
3
+ value="Snowdevil"
4
+ required
5
+ />
@@ -0,0 +1,17 @@
1
+ <s-text-field
2
+ label="Product SKU"
3
+ placeholder="Enter SKU"
4
+ onInput={(event) => {
5
+ console.log('Input:', event.target.value);
6
+ console.log('Current error:', event.target.error);
7
+ }}
8
+ onFocus={(event) => {
9
+ console.log('Focused with value:', event.target.value);
10
+ }}
11
+ onBlur={(event) => {
12
+ console.log('Blurred with value:', event.target.value);
13
+ }}
14
+ onChange={(event) => {
15
+ console.log('Changed to:', event.target.value);
16
+ }}
17
+ />