@shopify/ui-extensions 2025.10.5 → 2025.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (177) hide show
  1. package/build/ts/surfaces/checkout/api/address-autocomplete/standard.d.ts +2 -2
  2. package/build/ts/surfaces/checkout/api/standard/standard.d.ts +6 -6
  3. package/build/ts/surfaces/checkout/components/Announcement/Announcement.doc.d.ts.map +1 -1
  4. package/build/ts/surfaces/checkout/components/Announcement.d.ts +10 -5
  5. package/build/ts/surfaces/checkout/components/Banner/Banner.doc.d.ts.map +1 -1
  6. package/build/ts/surfaces/checkout/components/Banner.d.ts +4 -4
  7. package/build/ts/surfaces/checkout/components/Button/Button.doc.d.ts.map +1 -1
  8. package/build/ts/surfaces/checkout/components/Button.d.ts +3 -3
  9. package/build/ts/surfaces/checkout/components/Checkbox/Checkbox.doc.d.ts.map +1 -1
  10. package/build/ts/surfaces/checkout/components/Checkbox.d.ts +3 -3
  11. package/build/ts/surfaces/checkout/components/Chip/Chip.doc.d.ts.map +1 -1
  12. package/build/ts/surfaces/checkout/components/ChoiceList/ChoiceList.doc.d.ts.map +1 -1
  13. package/build/ts/surfaces/checkout/components/ChoiceList.d.ts +3 -3
  14. package/build/ts/surfaces/checkout/components/Clickable/Clickable.doc.d.ts.map +1 -1
  15. package/build/ts/surfaces/checkout/components/Clickable.d.ts +5 -5
  16. package/build/ts/surfaces/checkout/components/ClickableChip/ClickableChip.doc.d.ts.map +1 -1
  17. package/build/ts/surfaces/checkout/components/ClickableChip.d.ts +5 -5
  18. package/build/ts/surfaces/checkout/components/ClipboardItem/ClipboardItem.doc.d.ts.map +1 -1
  19. package/build/ts/surfaces/checkout/components/ClipboardItem.d.ts +4 -4
  20. package/build/ts/surfaces/checkout/components/ConsentCheckbox/ConsentCheckbox.doc.d.ts.map +1 -1
  21. package/build/ts/surfaces/checkout/components/ConsentCheckbox.d.ts +3 -3
  22. package/build/ts/surfaces/checkout/components/ConsentPhoneField/ConsentPhoneField.doc.d.ts.map +1 -1
  23. package/build/ts/surfaces/checkout/components/ConsentPhoneField.d.ts +7 -7
  24. package/build/ts/surfaces/checkout/components/DateField/DateField.doc.d.ts.map +1 -1
  25. package/build/ts/surfaces/checkout/components/DateField.d.ts +8 -8
  26. package/build/ts/surfaces/checkout/components/DatePicker/DatePicker.doc.d.ts.map +1 -1
  27. package/build/ts/surfaces/checkout/components/DatePicker.d.ts +7 -7
  28. package/build/ts/surfaces/checkout/components/Details/Details.doc.d.ts.map +1 -1
  29. package/build/ts/surfaces/checkout/components/Details.d.ts +9 -4
  30. package/build/ts/surfaces/checkout/components/DropZone/DropZone.doc.d.ts.map +1 -1
  31. package/build/ts/surfaces/checkout/components/DropZone.d.ts +5 -5
  32. package/build/ts/surfaces/checkout/components/EmailField/EmailField.doc.d.ts.map +1 -1
  33. package/build/ts/surfaces/checkout/components/EmailField.d.ts +13 -7
  34. package/build/ts/surfaces/checkout/components/Form/Form.doc.d.ts.map +1 -1
  35. package/build/ts/surfaces/checkout/components/Form.d.ts +3 -3
  36. package/build/ts/surfaces/checkout/components/Link/Link.doc.d.ts.map +1 -1
  37. package/build/ts/surfaces/checkout/components/Link.d.ts +3 -3
  38. package/build/ts/surfaces/checkout/components/Map/Map.doc.d.ts.map +1 -1
  39. package/build/ts/surfaces/checkout/components/Map.d.ts +23 -7
  40. package/build/ts/surfaces/checkout/components/MapMarker.d.ts +3 -3
  41. package/build/ts/surfaces/checkout/components/Modal/Modal.doc.d.ts.map +1 -1
  42. package/build/ts/surfaces/checkout/components/Modal.d.ts +6 -6
  43. package/build/ts/surfaces/checkout/components/MoneyField/MoneyField.doc.d.ts.map +1 -1
  44. package/build/ts/surfaces/checkout/components/MoneyField.d.ts +6 -6
  45. package/build/ts/surfaces/checkout/components/NumberField/NumberField.doc.d.ts.map +1 -1
  46. package/build/ts/surfaces/checkout/components/NumberField.d.ts +43 -14
  47. package/build/ts/surfaces/checkout/components/PasswordField/PasswordField.doc.d.ts.map +1 -1
  48. package/build/ts/surfaces/checkout/components/PasswordField.d.ts +6 -6
  49. package/build/ts/surfaces/checkout/components/PhoneField/PhoneField.doc.d.ts.map +1 -1
  50. package/build/ts/surfaces/checkout/components/PhoneField.d.ts +6 -6
  51. package/build/ts/surfaces/checkout/components/Popover/Popover.doc.d.ts.map +1 -1
  52. package/build/ts/surfaces/checkout/components/Popover.d.ts +4 -4
  53. package/build/ts/surfaces/checkout/components/PressButton/PressButton.doc.d.ts.map +1 -1
  54. package/build/ts/surfaces/checkout/components/PressButton.d.ts +5 -5
  55. package/build/ts/surfaces/checkout/components/QRCode/QRCode.doc.d.ts.map +1 -1
  56. package/build/ts/surfaces/checkout/components/QRCode.d.ts +3 -3
  57. package/build/ts/surfaces/checkout/components/QueryContainer/QueryContainer.doc.d.ts.map +1 -1
  58. package/build/ts/surfaces/checkout/components/Select/Select.doc.d.ts.map +1 -1
  59. package/build/ts/surfaces/checkout/components/Select.d.ts +5 -5
  60. package/build/ts/surfaces/checkout/components/Sheet/Sheet.doc.d.ts.map +1 -1
  61. package/build/ts/surfaces/checkout/components/Sheet.d.ts +6 -6
  62. package/build/ts/surfaces/checkout/components/Switch/Switch.doc.d.ts.map +1 -1
  63. package/build/ts/surfaces/checkout/components/Switch.d.ts +3 -3
  64. package/build/ts/surfaces/checkout/components/TextArea/TextArea.doc.d.ts.map +1 -1
  65. package/build/ts/surfaces/checkout/components/TextArea.d.ts +6 -6
  66. package/build/ts/surfaces/checkout/components/TextField/TextField.doc.d.ts.map +1 -1
  67. package/build/ts/surfaces/checkout/components/TextField.d.ts +7 -7
  68. package/build/ts/surfaces/checkout/components/UrlField/UrlField.doc.d.ts.map +1 -1
  69. package/build/ts/surfaces/checkout/components/UrlField.d.ts +6 -6
  70. package/build/ts/surfaces/checkout/components/components.d.ts +5 -4
  71. package/build/ts/surfaces/checkout/helper.docs.d.ts.map +1 -1
  72. package/build/ts/surfaces/customer-account/components/Announcement.d.ts +10 -5
  73. package/build/ts/surfaces/customer-account/components/Banner.d.ts +4 -4
  74. package/build/ts/surfaces/customer-account/components/Button.d.ts +3 -3
  75. package/build/ts/surfaces/customer-account/components/Checkbox.d.ts +3 -3
  76. package/build/ts/surfaces/customer-account/components/ChoiceList.d.ts +3 -3
  77. package/build/ts/surfaces/customer-account/components/Clickable.d.ts +5 -5
  78. package/build/ts/surfaces/customer-account/components/ClickableChip.d.ts +5 -5
  79. package/build/ts/surfaces/customer-account/components/ClipboardItem.d.ts +4 -4
  80. package/build/ts/surfaces/customer-account/components/ConsentCheckbox.d.ts +3 -3
  81. package/build/ts/surfaces/customer-account/components/ConsentPhoneField.d.ts +7 -7
  82. package/build/ts/surfaces/customer-account/components/DateField.d.ts +8 -8
  83. package/build/ts/surfaces/customer-account/components/DatePicker.d.ts +7 -7
  84. package/build/ts/surfaces/customer-account/components/Details.d.ts +9 -4
  85. package/build/ts/surfaces/customer-account/components/DropZone.d.ts +5 -5
  86. package/build/ts/surfaces/customer-account/components/EmailField.d.ts +13 -7
  87. package/build/ts/surfaces/customer-account/components/Form.d.ts +3 -3
  88. package/build/ts/surfaces/customer-account/components/Link.d.ts +3 -3
  89. package/build/ts/surfaces/customer-account/components/Map.d.ts +23 -7
  90. package/build/ts/surfaces/customer-account/components/MapMarker.d.ts +3 -3
  91. package/build/ts/surfaces/customer-account/components/Modal.d.ts +6 -6
  92. package/build/ts/surfaces/customer-account/components/MoneyField.d.ts +6 -6
  93. package/build/ts/surfaces/customer-account/components/NumberField.d.ts +43 -14
  94. package/build/ts/surfaces/customer-account/components/PasswordField.d.ts +6 -6
  95. package/build/ts/surfaces/customer-account/components/PhoneField.d.ts +6 -6
  96. package/build/ts/surfaces/customer-account/components/Popover.d.ts +4 -4
  97. package/build/ts/surfaces/customer-account/components/PressButton.d.ts +5 -5
  98. package/build/ts/surfaces/customer-account/components/QRCode.d.ts +3 -3
  99. package/build/ts/surfaces/customer-account/components/Select.d.ts +5 -5
  100. package/build/ts/surfaces/customer-account/components/Sheet.d.ts +6 -6
  101. package/build/ts/surfaces/customer-account/components/Switch.d.ts +3 -3
  102. package/build/ts/surfaces/customer-account/components/TextArea.d.ts +6 -6
  103. package/build/ts/surfaces/customer-account/components/TextField.d.ts +7 -7
  104. package/build/ts/surfaces/customer-account/components/UrlField.d.ts +6 -6
  105. package/build/ts/surfaces/customer-account/components/components.d.ts +5 -4
  106. package/build/ts/surfaces/point-of-sale/types/cart.d.ts +26 -0
  107. package/build/ts/surfaces/point-of-sale/types/cart.d.ts.map +1 -1
  108. package/build/tsconfig.tsbuildinfo +1 -1
  109. package/package.json +1 -1
  110. package/src/surfaces/admin/components/DatePicker/examples/analytics-dashboard.html +2 -2
  111. package/src/surfaces/checkout/api/address-autocomplete/standard.ts +2 -2
  112. package/src/surfaces/checkout/api/standard/standard.ts +6 -6
  113. package/src/surfaces/checkout/components/Announcement.d.ts +10 -5
  114. package/src/surfaces/checkout/components/Banner.d.ts +4 -4
  115. package/src/surfaces/checkout/components/Button.d.ts +3 -3
  116. package/src/surfaces/checkout/components/Checkbox.d.ts +3 -3
  117. package/src/surfaces/checkout/components/ChoiceList/examples/basic-choice-list.example.html +3 -3
  118. package/src/surfaces/checkout/components/ChoiceList/examples/block-choice-variant.example.html +47 -0
  119. package/src/surfaces/checkout/components/ChoiceList/examples/grid-choice-variant.example.html +5 -0
  120. package/src/surfaces/checkout/components/ChoiceList/examples/inline-choice-variant.example.html +6 -0
  121. package/src/surfaces/checkout/components/ChoiceList/examples/list-choice-variant.example.html +5 -0
  122. package/src/surfaces/checkout/components/ChoiceList.d.ts +3 -3
  123. package/src/surfaces/checkout/components/Clickable.d.ts +5 -5
  124. package/src/surfaces/checkout/components/ClickableChip.d.ts +5 -5
  125. package/src/surfaces/checkout/components/ClipboardItem.d.ts +4 -4
  126. package/src/surfaces/checkout/components/ConsentCheckbox.d.ts +3 -3
  127. package/src/surfaces/checkout/components/ConsentPhoneField.d.ts +7 -7
  128. package/src/surfaces/checkout/components/DateField.d.ts +8 -8
  129. package/src/surfaces/checkout/components/DatePicker.d.ts +7 -7
  130. package/src/surfaces/checkout/components/Details.d.ts +9 -4
  131. package/src/surfaces/checkout/components/DropZone.d.ts +5 -5
  132. package/src/surfaces/checkout/components/EmailField.d.ts +13 -7
  133. package/src/surfaces/checkout/components/Form.d.ts +3 -3
  134. package/src/surfaces/checkout/components/Icon/examples/basic-icon.example.html +4 -4
  135. package/src/surfaces/checkout/components/Link.d.ts +3 -3
  136. package/src/surfaces/checkout/components/Map/examples/map-marker-graphic.example.html +14 -0
  137. package/src/surfaces/checkout/components/Map/examples/map-marker-popover.example.html +14 -0
  138. package/src/surfaces/checkout/components/Map.d.ts +23 -7
  139. package/src/surfaces/checkout/components/MapMarker.d.ts +3 -3
  140. package/src/surfaces/checkout/components/Modal.d.ts +6 -6
  141. package/src/surfaces/checkout/components/MoneyField.d.ts +6 -6
  142. package/src/surfaces/checkout/components/NumberField.d.ts +43 -14
  143. package/src/surfaces/checkout/components/PasswordField.d.ts +6 -6
  144. package/src/surfaces/checkout/components/PaymentIcon/examples/basic-payment-icon.example.html +7 -7
  145. package/src/surfaces/checkout/components/PhoneField.d.ts +6 -6
  146. package/src/surfaces/checkout/components/Popover.d.ts +4 -4
  147. package/src/surfaces/checkout/components/PressButton.d.ts +5 -5
  148. package/src/surfaces/checkout/components/ProductThumbnail/examples/basic-product-thumbnail.example.html +1 -1
  149. package/src/surfaces/checkout/components/QRCode.d.ts +3 -3
  150. package/src/surfaces/checkout/components/Select.d.ts +5 -5
  151. package/src/surfaces/checkout/components/Sheet.d.ts +6 -6
  152. package/src/surfaces/checkout/components/Switch.d.ts +3 -3
  153. package/src/surfaces/checkout/components/TextArea.d.ts +6 -6
  154. package/src/surfaces/checkout/components/TextField.d.ts +7 -7
  155. package/src/surfaces/checkout/components/UrlField.d.ts +6 -6
  156. package/src/surfaces/checkout/components/components.d.ts +5 -4
  157. package/src/surfaces/checkout/helper.docs.ts +1 -67
  158. package/src/surfaces/point-of-sale/components/ChoiceList/examples/event-handling.jsx +2 -2
  159. package/src/surfaces/point-of-sale/components/ChoiceList/examples/multiple-selection.jsx +1 -1
  160. package/src/surfaces/point-of-sale/components/DateField/examples/event-handling.jsx +4 -4
  161. package/src/surfaces/point-of-sale/components/DatePicker/examples/command-system.jsx +1 -1
  162. package/src/surfaces/point-of-sale/components/DatePicker/examples/event-handling.jsx +2 -2
  163. package/src/surfaces/point-of-sale/components/DateSpinner/examples/command-system.jsx +1 -1
  164. package/src/surfaces/point-of-sale/components/DateSpinner/examples/event-handling.jsx +2 -2
  165. package/src/surfaces/point-of-sale/components/EmailField/examples/event-handling.jsx +2 -2
  166. package/src/surfaces/point-of-sale/components/NumberField/examples/controls-constraints.jsx +2 -2
  167. package/src/surfaces/point-of-sale/components/NumberField/examples/input-mode.jsx +2 -2
  168. package/src/surfaces/point-of-sale/components/SearchField/examples/event-handling.jsx +2 -2
  169. package/src/surfaces/point-of-sale/components/TextArea/examples/event-handling.jsx +2 -2
  170. package/src/surfaces/point-of-sale/components/TextArea/examples/rows-configuration.jsx +1 -1
  171. package/src/surfaces/point-of-sale/components/TextField/examples/common-props.jsx +1 -1
  172. package/src/surfaces/point-of-sale/components/TextField/examples/event-handling.jsx +5 -5
  173. package/src/surfaces/point-of-sale/components/TimeField/examples/event-handling.jsx +2 -2
  174. package/src/surfaces/point-of-sale/components/TimePicker/examples/command-system.jsx +1 -1
  175. package/src/surfaces/point-of-sale/components/TimePicker/examples/event-handling.jsx +2 -2
  176. package/src/surfaces/point-of-sale/types/cart.ts +27 -0
  177. package/src/surfaces/checkout/style/examples/style.example.tsx +0 -22
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shopify/ui-extensions",
3
- "version": "2025.10.5",
3
+ "version": "2025.10.7",
4
4
  "scripts": {
5
5
  "docs:admin": "node ./docs/surfaces/admin/build-docs.mjs",
6
6
  "docs:checkout": "bash ./docs/surfaces/checkout/build-docs.sh",
@@ -11,7 +11,7 @@
11
11
  id="analytics-picker"
12
12
  value="2025-01-01--2025-01-31"
13
13
  view="2025-01"
14
- onchange="console.log('Date range changed:', event.target.value)"
14
+ onchange="console.log('Date range changed:', event.currentTarget.value)"
15
15
  ></s-date-picker>
16
16
  <s-text id="selected-range">
17
17
  Selected range: 2025-01-01--2025-01-31
@@ -24,7 +24,7 @@
24
24
 
25
25
  // Handle picker changes
26
26
  picker.addEventListener('change', (event) => {
27
- display.textContent = `Selected range: ${event.target.value}`;
27
+ display.textContent = `Selected range: ${event.currentTarget.value}`;
28
28
  });
29
29
 
30
30
  // Quick selection buttons
@@ -178,7 +178,7 @@ interface Extension<
178
178
  /**
179
179
  * The API version that was set in the extension config file.
180
180
  *
181
- * @example '2023-10', '2024-01', '2024-04', '2025-07', '2025-10', 'unstable'
181
+ * @example '2023-10', '2024-01', '2024-04', '2025-07', '2025-10'
182
182
  */
183
183
  apiVersion: ApiVersion;
184
184
 
@@ -232,7 +232,7 @@ interface Extension<
232
232
  * extension’s configuration file.
233
233
  *
234
234
  * @example 'purchase.checkout.block.render'
235
- * @see https://shopify.dev/docs/api/checkout-ui-extensions/unstable/extension-targets-overview
235
+ * @see https://shopify.dev/docs/api/checkout-ui-extensions/latest/extension-targets-overview
236
236
  * @see https://shopify.dev/docs/apps/app-extensions/configuration#targets
237
237
  */
238
238
  target: Target;
@@ -62,7 +62,7 @@ export interface Extension<Target extends ExtensionTarget = ExtensionTarget> {
62
62
  /**
63
63
  * The API version that was set in the extension config file.
64
64
  *
65
- * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10', 'unstable'
65
+ * @example '2024-10', '2025-01', '2025-04', '2025-07', '2025-10'
66
66
  */
67
67
  apiVersion: ApiVersion;
68
68
 
@@ -115,7 +115,7 @@ export interface Extension<Target extends ExtensionTarget = ExtensionTarget> {
115
115
  * extension’s configuration file.
116
116
  *
117
117
  * @example 'purchase.checkout.block.render'
118
- * @see https://shopify.dev/docs/api/checkout-ui-extensions/unstable/extension-targets-overview
118
+ * @see https://shopify.dev/docs/api/checkout-ui-extensions/latest/extension-targets-overview
119
119
  * @see https://shopify.dev/docs/apps/app-extensions/configuration#targets
120
120
  */
121
121
  target: Target;
@@ -597,7 +597,7 @@ export interface StandardApi<Target extends ExtensionTarget = ExtensionTarget> {
597
597
  * extension’s configuration file.
598
598
  *
599
599
  * @example 'purchase.checkout.block.render'
600
- * @see https://shopify.dev/docs/api/checkout-ui-extensions/unstable/extension-targets-overview
600
+ * @see https://shopify.dev/docs/api/checkout-ui-extensions/latest/extension-targets-overview
601
601
  * @see https://shopify.dev/docs/apps/app-extensions/configuration#targets
602
602
  *
603
603
  * @deprecated Deprecated as of version `2023-07`, use `extension.target` instead.
@@ -726,7 +726,7 @@ export interface StandardApi<Target extends ExtensionTarget = ExtensionTarget> {
726
726
  /**
727
727
  * The renderer version being used for the extension.
728
728
  *
729
- * @example 'unstable'
729
+ * @example '2025-10'
730
730
  */
731
731
  version: Version;
732
732
 
@@ -738,7 +738,7 @@ export interface StandardApi<Target extends ExtensionTarget = ExtensionTarget> {
738
738
  /**
739
739
  * Allows setting and updating customer privacy consent settings and tracking consent metafields.
740
740
  *
741
- * > Note: Requires the [`customer_privacy` capability](https://shopify.dev/docs/api/checkout-ui-extensions/unstable/configuration#collect-buyer-consent) to be set to `true`.
741
+ * > Note: Requires the [`customer_privacy` capability](https://shopify.dev/docs/api/checkout-ui-extensions/latest/configuration#collect-buyer-consent) to be set to `true`.
742
742
  *
743
743
  * {% include /apps/checkout/privacy-icon.md %} Requires access to [protected customer data](/docs/apps/store/data-protection/protected-customer-data).
744
744
  */
@@ -755,7 +755,7 @@ export interface Ui {
755
755
  /**
756
756
  * Allows the extension to close an overlay programmatically.
757
757
  *
758
- * Supported overlay components are [Modal](/docs/api/checkout-ui-extensions/unstable/components/overlays/modal), [Sheet](/docs/api/checkout-ui-extensions/unstable/components/overlays/sheet) and [Popover](/docs/api/checkout-ui-extensions/unstable/components/overlays/popover).
758
+ * Supported overlay components are [Modal](/docs/api/checkout-ui-extensions/latest/components/overlays/modal), [Sheet](/docs/api/checkout-ui-extensions/latest/components/overlays/sheet) and [Popover](/docs/api/checkout-ui-extensions/latest/components/overlays/popover).
759
759
  */
760
760
  overlay: Overlay;
761
761
  }
@@ -27,9 +27,14 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
+ export type ToggleState = 'open' | 'closed';
34
+ export interface ToggleArgumentsEvent {
35
+ oldState?: ToggleState;
36
+ newState?: ToggleState;
37
+ }
33
38
 
34
39
  declare const tagName = "s-announcement";
35
40
  export interface AnnouncementEvents extends Pick<AnnouncementProps$1, 'onAfterToggle' | 'onDismiss' | 'onToggle'> {
@@ -46,12 +51,12 @@ export interface AnnouncementElementEvents {
46
51
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState
47
52
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState
48
53
  */
49
- aftertoggle?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
54
+ aftertoggle?: CallbackEventListener<typeof tagName, ToggleArgumentsEvent>;
50
55
  /**
51
56
  * Callback fired when the announcement is dismissed by the user
52
57
  * (either via the built-in dismiss button or programmatically).
53
58
  */
54
- dismiss?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
59
+ dismiss?: CallbackEventListener<typeof tagName>;
55
60
  /**
56
61
  * Callback straight after the element state changes.
57
62
  *
@@ -64,7 +69,7 @@ export interface AnnouncementElementEvents {
64
69
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState
65
70
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState
66
71
  */
67
- toggle?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
72
+ toggle?: CallbackEventListener<typeof tagName, ToggleArgumentsEvent>;
68
73
  }
69
74
  export interface AnnouncementElement extends AnnouncementMethods, Omit<HTMLElement, 'id' | 'ontoggle'> {
70
75
  onaftertoggle?: AnnouncementEvents['onAfterToggle'];
@@ -27,8 +27,8 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
33
 
34
34
  declare const tagName = "s-banner";
@@ -47,7 +47,7 @@ export interface BannerElementEvents {
47
47
  * this event must fire after the banner has fully hidden.
48
48
  * We can add an `onHide` event in future if we want to provide a hook for the start of the animation.
49
49
  */
50
- afterhide?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
50
+ afterhide?: CallbackEventListener<typeof tagName>;
51
51
  /**
52
52
  * Event handler when the banner is dismissed by the user.
53
53
  *
@@ -55,7 +55,7 @@ export interface BannerElementEvents {
55
55
  *
56
56
  * The `hidden` property will be `false` when this event fires.
57
57
  */
58
- dismiss?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
58
+ dismiss?: CallbackEventListener<typeof tagName>;
59
59
  }
60
60
  export interface BannerElement extends BannerElementProps, Omit<HTMLElement, 'id' | 'title' | 'hidden'> {
61
61
  onafterhide: BannerEvents['onAfterHide'];
@@ -27,8 +27,8 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
33
 
34
34
  declare const tagName = "s-button";
@@ -47,7 +47,7 @@ export interface ButtonElementEvents {
47
47
  *
48
48
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event
49
49
  */
50
- click?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
50
+ click?: CallbackEventListener<typeof tagName>;
51
51
  }
52
52
  export interface ButtonElement extends ButtonElementProps, Omit<HTMLElement, 'id' | 'onclick'> {
53
53
  onclick: ButtonEvents['onClick'];
@@ -21,8 +21,8 @@ export interface BaseElementProps<TClass = HTMLElement> {
21
21
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
22
22
  currentTarget: HTMLElementTagNameMap[TTagName];
23
23
  };
24
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
25
- (event: CallbackEvent<TTagName, TEvent>): void;
24
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
25
+ (event: CallbackEvent<TTagName, Event> & TData): void;
26
26
  }) | null;
27
27
 
28
28
  declare const tagName = "s-checkbox";
@@ -37,7 +37,7 @@ export interface CheckboxElementEvents {
37
37
  *
38
38
  * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
39
39
  */
40
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
40
+ change?: CallbackEventListener<typeof tagName>;
41
41
  }
42
42
  export interface CheckboxElement extends CheckboxElementProps, Omit<HTMLElement, 'id' | 'onchange'> {
43
43
  onchange: CheckboxEvents['onChange'];
@@ -1,7 +1,7 @@
1
1
  <s-choice-list>
2
- <s-choice defaultSelected value="location-1">
3
- Yonge-Dundas Square locations
4
- </s-choice>
2
+ <s-choice defaultSelected value="location-1"
3
+ >Yonge-Dundas Square locations</s-choice
4
+ >
5
5
  <s-choice value="location-2">Distillery District location</s-choice>
6
6
  <s-choice value="location-3">Yorkville location</s-choice>
7
7
  </s-choice-list>
@@ -0,0 +1,47 @@
1
+ <s-choice-list variant="block">
2
+ <s-choice defaultSelected value="yonge-dundas">
3
+ <s-stack
4
+ direction="inline"
5
+ justifyContent="space-between"
6
+ alignItems="start"
7
+ >
8
+ <s-stack gap="none">
9
+ <s-text>Yonge-Dundas Square</s-text>
10
+ <s-text slot="secondary-content" type="small" color="subdued"
11
+ >1 Dundas St E, Toronto ON</s-text
12
+ >
13
+ </s-stack>
14
+ <s-text color="subdued">1.2 km</s-text>
15
+ </s-stack>
16
+ </s-choice>
17
+ <s-choice value="distillery">
18
+ <s-stack
19
+ direction="inline"
20
+ justifyContent="space-between"
21
+ alignItems="start"
22
+ >
23
+ <s-stack gap="none">
24
+ <s-text>Distillery District</s-text>
25
+ <s-text slot="secondary-content" type="small" color="subdued"
26
+ >55 Mill St, Toronto ON</s-text
27
+ >
28
+ </s-stack>
29
+ <s-text color="subdued">4 km</s-text>
30
+ </s-stack>
31
+ </s-choice>
32
+ <s-choice value="yorkville">
33
+ <s-stack
34
+ direction="inline"
35
+ justifyContent="space-between"
36
+ alignItems="start"
37
+ >
38
+ <s-stack gap="none">
39
+ <s-text>Yorkville</s-text>
40
+ <s-text slot="secondary-content" type="small" color="subdued"
41
+ >55 Avenue Rd, Toronto ON</s-text
42
+ >
43
+ </s-stack>
44
+ <s-text color="subdued">6 km</s-text>
45
+ </s-stack>
46
+ </s-choice>
47
+ </s-choice-list>
@@ -0,0 +1,5 @@
1
+ <s-choice-list variant="grid">
2
+ <s-choice defaultSelected value="standard">Standard</s-choice>
3
+ <s-choice value="deluxe">Deluxe</s-choice>
4
+ <s-choice value="personalized">Personalized</s-choice>
5
+ </s-choice-list>
@@ -0,0 +1,6 @@
1
+ <s-choice-list variant="inline">
2
+ <s-choice defaultSelected value="3.50">$3.50</s-choice>
3
+ <s-choice value="4.50">$4.50</s-choice>
4
+ <s-choice value="5.50">$5.50</s-choice>
5
+ <s-choice value="other">Other</s-choice>
6
+ </s-choice-list>
@@ -0,0 +1,5 @@
1
+ <s-choice-list>
2
+ <s-choice defaultSelected value="location-1">Yonge-Dundas Square</s-choice>
3
+ <s-choice value="location-2">Distillery District</s-choice>
4
+ <s-choice value="location-3">Yorkville</s-choice>
5
+ </s-choice-list>
@@ -27,8 +27,8 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
33
 
34
34
  declare const tagName = "s-choice-list";
@@ -42,7 +42,7 @@ export interface ChoiceListElementEvents {
42
42
  *
43
43
  * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
44
44
  */
45
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
45
+ change?: CallbackEventListener<typeof tagName>;
46
46
  }
47
47
  export interface ChoiceListElement extends ChoiceListElementProps, Omit<HTMLElement, 'id' | 'onchange'> {
48
48
  onchange: ChoiceListEvents['onChange'];
@@ -30,8 +30,8 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
30
30
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
31
31
  currentTarget: HTMLElementTagNameMap[TTagName];
32
32
  };
33
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
34
- (event: CallbackEvent<TTagName, TEvent>): void;
33
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
34
+ (event: CallbackEvent<TTagName, Event> & TData): void;
35
35
  }) | null;
36
36
 
37
37
  declare const tagName = "s-clickable";
@@ -51,20 +51,20 @@ export interface ClickableElementEvents {
51
51
  *
52
52
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event
53
53
  */
54
- blur?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
54
+ blur?: CallbackEventListener<typeof tagName>;
55
55
  /**
56
56
  * Callback when the button is activated.
57
57
  * This will be called before the action indicated by `type`.
58
58
  *
59
59
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/click_event
60
60
  */
61
- click?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
61
+ click?: CallbackEventListener<typeof tagName>;
62
62
  /**
63
63
  * Callback when the element receives focus.
64
64
  *
65
65
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event
66
66
  */
67
- focus?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
67
+ focus?: CallbackEventListener<typeof tagName>;
68
68
  }
69
69
  export interface ClickableElement extends ClickableElementProps, Omit<HTMLElement, 'id' | 'lang' | 'onblur' | 'onclick' | 'onfocus'> {
70
70
  onblur: ClickableEvents['onBlur'];
@@ -27,8 +27,8 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
33
 
34
34
  declare const tagName = "s-clickable-chip";
@@ -42,15 +42,15 @@ export interface ClickableChipElementEvents {
42
42
  *
43
43
  * The `hidden` property will be `true` when this event fires.
44
44
  */
45
- afterhide?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
45
+ afterhide?: CallbackEventListener<typeof tagName>;
46
46
  /**
47
47
  * Event handler when the chip is clicked.
48
48
  */
49
- click?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
49
+ click?: CallbackEventListener<typeof tagName>;
50
50
  /**
51
51
  * Event handler when the chip is removed.
52
52
  */
53
- remove?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
53
+ remove?: CallbackEventListener<typeof tagName>;
54
54
  }
55
55
  export interface ClickableChipElementSlots {
56
56
  /**
@@ -21,8 +21,8 @@ export interface BaseElementProps<TClass = HTMLElement> {
21
21
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
22
22
  currentTarget: HTMLElementTagNameMap[TTagName];
23
23
  };
24
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
25
- (event: CallbackEvent<TTagName, TEvent>): void;
24
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
25
+ (event: CallbackEvent<TTagName, Event> & TData): void;
26
26
  }) | null;
27
27
 
28
28
  declare const tagName = "s-clipboard-item";
@@ -34,11 +34,11 @@ export interface ClipboardItemElementEvents {
34
34
  /**
35
35
  * Callback run when the copy to clipboard succeeds.
36
36
  */
37
- copy?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
37
+ copy?: CallbackEventListener<typeof tagName>;
38
38
  /**
39
39
  * Callback run when the copy to clipboard fails.
40
40
  */
41
- copyerror?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
41
+ copyerror?: CallbackEventListener<typeof tagName>;
42
42
  }
43
43
  export interface ClipboardItemElement extends ClipboardItemElementProps, Omit<HTMLElement, 'id' | 'oncopy'> {
44
44
  oncopy: ClipboardItemEvents['onCopy'];
@@ -21,8 +21,8 @@ export interface BaseElementProps<TClass = HTMLElement> {
21
21
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
22
22
  currentTarget: HTMLElementTagNameMap[TTagName];
23
23
  };
24
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
25
- (event: CallbackEvent<TTagName, TEvent>): void;
24
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
25
+ (event: CallbackEvent<TTagName, Event> & TData): void;
26
26
  }) | null;
27
27
 
28
28
  declare const tagName$1 = "s-checkbox";
@@ -61,7 +61,7 @@ export interface ConsentCheckboxElementEvents {
61
61
  *
62
62
  * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
63
63
  */
64
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
64
+ change?: CallbackEventListener<typeof tagName>;
65
65
  }
66
66
  export interface ConsentCheckboxElement extends ConsentCheckboxElementProps, Omit<HTMLElement, 'id' | 'onchange'> {
67
67
  onchange: ConsentCheckboxEvents['onChange'];
@@ -27,8 +27,8 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
33
 
34
34
  declare const tagName$1 = "s-phone-field";
@@ -78,25 +78,25 @@ export interface ConsentPhoneFieldElementEvents {
78
78
  *
79
79
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/blur_event
80
80
  */
81
- blur?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
81
+ blur?: CallbackEventListener<typeof tagName>;
82
82
  /**
83
83
  * Callback when the user has **finished editing** a field, e.g. once they have blurred the field.
84
84
  *
85
85
  * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/change_event
86
86
  */
87
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
87
+ change?: CallbackEventListener<typeof tagName>;
88
88
  /**
89
89
  * Callback when the element receives focus.
90
90
  *
91
91
  * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/focus_event
92
92
  */
93
- focus?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
93
+ focus?: CallbackEventListener<typeof tagName>;
94
94
  /**
95
95
  * Callback when the user makes any changes in the field.
96
96
  *
97
97
  * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/input_event
98
98
  */
99
- input?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
99
+ input?: CallbackEventListener<typeof tagName>;
100
100
  }
101
101
  export interface ConsentPhoneFieldElement extends ConsentPhoneFieldElementProps, Omit<ConsentPhoneFieldEvents, 'onBlur' | 'onChange' | 'onFocus' | 'onInput'> {
102
102
  onblur: ConsentPhoneFieldEvents['onBlur'];
@@ -121,7 +121,7 @@ declare global {
121
121
  declare module 'preact' {
122
122
  namespace createElement.JSX {
123
123
  interface IntrinsicElements {
124
- [tagName]: ConsentPhoneFieldProps & BaseElementProps<ConsentPhoneFieldElement>;
124
+ [tagName]: ConsentPhoneFieldProps & BaseElementPropsWithChildren<ConsentPhoneFieldElement>;
125
125
  }
126
126
  }
127
127
  }
@@ -21,8 +21,8 @@ export interface BaseElementProps<TClass = HTMLElement> {
21
21
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
22
22
  currentTarget: HTMLElementTagNameMap[TTagName];
23
23
  };
24
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
25
- (event: CallbackEvent<TTagName, TEvent>): void;
24
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
25
+ (event: CallbackEvent<TTagName, Event> & TData): void;
26
26
  }) | null;
27
27
 
28
28
  declare const tagName = "s-date-field";
@@ -39,27 +39,27 @@ export interface DateFieldElementEvents {
39
39
  /**
40
40
  * Callback when the element loses focus.
41
41
  */
42
- blur?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
42
+ blur?: CallbackEventListener<typeof tagName>;
43
43
  /**
44
44
  * Callback when the user has **finished editing** a field, e.g. once they have blurred the field.
45
45
  */
46
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
46
+ change?: CallbackEventListener<typeof tagName>;
47
47
  /**
48
48
  * Callback when the element receives focus.
49
49
  */
50
- focus?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
50
+ focus?: CallbackEventListener<typeof tagName>;
51
51
  /**
52
52
  * Callback when the user makes any changes in the field.
53
53
  */
54
- input?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
54
+ input?: CallbackEventListener<typeof tagName>;
55
55
  /**
56
56
  * Callback when the user enters an invalid date.
57
57
  */
58
- invalid?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
58
+ invalid?: CallbackEventListener<typeof tagName>;
59
59
  /**
60
60
  * Callback when the view changes.
61
61
  */
62
- viewChange?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
62
+ viewChange?: CallbackEventListener<typeof tagName>;
63
63
  }
64
64
  export interface DateFieldElement extends DateFieldElementProps, Omit<DateFieldEvents, 'onBlur' | 'onChange' | 'onFocus' | 'onInput' | 'onInvalid' | 'onViewChange'>, Omit<HTMLElement, 'id' | 'inputMode' | 'onblur' | 'onchange' | 'onfocus' | 'oninput' | 'oninvalid' | 'prefix'> {
65
65
  onblur: DateFieldEvents['onBlur'];
@@ -21,8 +21,8 @@ export interface BaseElementProps<TClass = HTMLElement> {
21
21
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
22
22
  currentTarget: HTMLElementTagNameMap[TTagName];
23
23
  };
24
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
25
- (event: CallbackEvent<TTagName, TEvent>): void;
24
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
25
+ (event: CallbackEvent<TTagName, Event> & TData): void;
26
26
  }) | null;
27
27
 
28
28
  declare const tagName = "s-date-picker";
@@ -34,23 +34,23 @@ export interface DatePickerElementEvents {
34
34
  /**
35
35
  * Callback when the element loses focus.
36
36
  */
37
- blur?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
37
+ blur?: CallbackEventListener<typeof tagName>;
38
38
  /**
39
39
  * Callback when the user has **finished editing** a field, e.g. once they have blurred the field.
40
40
  */
41
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
41
+ change?: CallbackEventListener<typeof tagName>;
42
42
  /**
43
43
  * Callback when the element receives focus.
44
44
  */
45
- focus?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
45
+ focus?: CallbackEventListener<typeof tagName>;
46
46
  /**
47
47
  * Callback when the user makes any changes in the field.
48
48
  */
49
- input?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
49
+ input?: CallbackEventListener<typeof tagName>;
50
50
  /**
51
51
  * Callback when the view changes.
52
52
  */
53
- viewChange?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
53
+ viewChange?: CallbackEventListener<typeof tagName>;
54
54
  }
55
55
  export interface DatePickerElement extends DatePickerElementProps, Omit<DatePickerEvents, 'onBlur' | 'onChange' | 'onFocus' | 'onInput' | 'onViewChange'>, Omit<HTMLElement, 'id' | 'onblur' | 'onchange' | 'onfocus' | 'oninput'> {
56
56
  onblur: DatePickerEvents['onBlur'];
@@ -27,9 +27,14 @@ export interface BaseElementPropsWithChildren<TClass = HTMLElement> extends Base
27
27
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
28
28
  currentTarget: HTMLElementTagNameMap[TTagName];
29
29
  };
30
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
31
- (event: CallbackEvent<TTagName, TEvent>): void;
30
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
31
+ (event: CallbackEvent<TTagName, Event> & TData): void;
32
32
  }) | null;
33
+ export type ToggleState = 'open' | 'closed';
34
+ export interface ToggleArgumentsEvent {
35
+ oldState?: ToggleState;
36
+ newState?: ToggleState;
37
+ }
33
38
 
34
39
  declare const tagName = "s-details";
35
40
  export interface DetailsElementProps extends Pick<DetailsProps$1, 'defaultOpen' | 'id' | 'open' | 'toggleTransition'> {
@@ -49,7 +54,7 @@ export interface DetailsElementEvents {
49
54
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState
50
55
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState
51
56
  */
52
- toggle?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
57
+ toggle?: CallbackEventListener<typeof tagName, ToggleArgumentsEvent>;
53
58
  /**
54
59
  * Callback fired when the element state changes **after** any animations have finished.
55
60
  *
@@ -61,7 +66,7 @@ export interface DetailsElementEvents {
61
66
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/newState
62
67
  * @see https://developer.mozilla.org/en-US/docs/Web/API/ToggleEvent/oldState
63
68
  */
64
- aftertoggle?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
69
+ aftertoggle?: CallbackEventListener<typeof tagName, ToggleArgumentsEvent>;
65
70
  }
66
71
  export interface DetailsElement extends Omit<HTMLElement, 'ontoggle' | 'id'> {
67
72
  ontoggle: DetailsEvents['onToggle'];
@@ -21,8 +21,8 @@ export interface BaseElementProps<TClass = HTMLElement> {
21
21
  export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
22
22
  currentTarget: HTMLElementTagNameMap[TTagName];
23
23
  };
24
- export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = (EventListener & {
25
- (event: CallbackEvent<TTagName, TEvent>): void;
24
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
25
+ (event: CallbackEvent<TTagName, Event> & TData): void;
26
26
  }) | null;
27
27
 
28
28
  declare const tagName = "s-drop-zone";
@@ -34,15 +34,15 @@ export interface DropZoneElementEvents {
34
34
  /**
35
35
  * Callback when rejected files are dropped. Files are rejected based on the `accept` prop.
36
36
  */
37
- droprejected?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
37
+ droprejected?: CallbackEventListener<typeof tagName>;
38
38
  /**
39
39
  * Callback when the user makes any changes in the field.
40
40
  */
41
- input?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
41
+ input?: CallbackEventListener<typeof tagName>;
42
42
  /**
43
43
  * Callback when the user has finished selecting a file or files.
44
44
  */
45
- change?: ((event: CallbackEventListener<typeof tagName>) => void) | null;
45
+ change?: CallbackEventListener<typeof tagName>;
46
46
  }
47
47
  export interface DropZoneElement extends DropZoneElementProps, Omit<HTMLElement, 'id' | 'oninput' | 'onchange'> {
48
48
  ondroprejected: DropZoneEvents['onDropRejected'];