@shopify/ui-extensions 2025.10.0-rc.4 → 2025.10.0-rc.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (197) hide show
  1. package/build/ts/docs/shared/components/QueryContainer.d.ts +4 -0
  2. package/build/ts/docs/shared/components/QueryContainer.d.ts.map +1 -0
  3. package/build/ts/surfaces/admin/api/should-render/should-render.doc.d.ts.map +1 -1
  4. package/build/ts/surfaces/admin/components/AdminAction.d.ts +1 -1
  5. package/build/ts/surfaces/admin/components/AdminBlock.d.ts +1 -1
  6. package/build/ts/surfaces/admin/components/AdminPrintAction.d.ts +1 -1
  7. package/build/ts/surfaces/admin/components/Badge.d.ts +17 -6
  8. package/build/ts/surfaces/admin/components/Banner.d.ts +17 -6
  9. package/build/ts/surfaces/admin/components/Box.d.ts +28 -7
  10. package/build/ts/surfaces/admin/components/Button.d.ts +16 -6
  11. package/build/ts/surfaces/admin/components/Checkbox.d.ts +17 -2
  12. package/build/ts/surfaces/admin/components/Choice.d.ts +17 -2
  13. package/build/ts/surfaces/admin/components/ChoiceList.d.ts +17 -6
  14. package/build/ts/surfaces/admin/components/Clickable.d.ts +28 -7
  15. package/build/ts/surfaces/admin/components/DatePicker.d.ts +11 -5
  16. package/build/ts/surfaces/admin/components/Divider.d.ts +12 -5
  17. package/build/ts/surfaces/admin/components/EmailField.d.ts +11 -5
  18. package/build/ts/surfaces/admin/components/Form.d.ts +1 -1
  19. package/build/ts/surfaces/admin/components/Grid.d.ts +28 -7
  20. package/build/ts/surfaces/admin/components/GridItem.d.ts +29 -7
  21. package/build/ts/surfaces/admin/components/Heading.d.ts +17 -6
  22. package/build/ts/surfaces/admin/components/Icon.d.ts +12 -5
  23. package/build/ts/surfaces/admin/components/Image.d.ts +22 -6
  24. package/build/ts/surfaces/admin/components/Link.d.ts +16 -6
  25. package/build/ts/surfaces/admin/components/ListItem.d.ts +18 -6
  26. package/build/ts/surfaces/admin/components/MoneyField.d.ts +11 -6
  27. package/build/ts/surfaces/admin/components/NumberField.d.ts +11 -5
  28. package/build/ts/surfaces/admin/components/Option.d.ts +17 -5
  29. package/build/ts/surfaces/admin/components/OptionGroup.d.ts +18 -5
  30. package/build/ts/surfaces/admin/components/OrderedList.d.ts +18 -6
  31. package/build/ts/surfaces/admin/components/Page.d.ts +20 -5
  32. package/build/ts/surfaces/admin/components/Paragraph.d.ts +18 -6
  33. package/build/ts/surfaces/admin/components/PasswordField.d.ts +11 -5
  34. package/build/ts/surfaces/admin/components/QueryContainer/QueryContainer.doc.d.ts +4 -0
  35. package/build/ts/surfaces/admin/components/QueryContainer/QueryContainer.doc.d.ts.map +1 -0
  36. package/build/ts/surfaces/admin/components/QueryContainer.d.ts +106 -0
  37. package/build/ts/surfaces/admin/components/SearchField.d.ts +14 -6
  38. package/build/ts/surfaces/admin/components/Section.d.ts +17 -6
  39. package/build/ts/surfaces/admin/components/Select.d.ts +16 -6
  40. package/build/ts/surfaces/admin/components/Spinner.d.ts +12 -2
  41. package/build/ts/surfaces/admin/components/Stack.d.ts +28 -7
  42. package/build/ts/surfaces/admin/components/Switch.d.ts +11 -2
  43. package/build/ts/surfaces/admin/components/Table.d.ts +17 -6
  44. package/build/ts/surfaces/admin/components/TableBody.d.ts +18 -6
  45. package/build/ts/surfaces/admin/components/TableCell.d.ts +18 -6
  46. package/build/ts/surfaces/admin/components/TableHeader.d.ts +18 -6
  47. package/build/ts/surfaces/admin/components/TableHeaderRow.d.ts +18 -6
  48. package/build/ts/surfaces/admin/components/TableRow.d.ts +18 -6
  49. package/build/ts/surfaces/admin/components/Text.d.ts +17 -6
  50. package/build/ts/surfaces/admin/components/TextArea.d.ts +11 -5
  51. package/build/ts/surfaces/admin/components/TextField.d.ts +13 -5
  52. package/build/ts/surfaces/admin/components/URLField.d.ts +11 -5
  53. package/build/ts/surfaces/admin/components/UnorderedList.d.ts +18 -6
  54. package/build/ts/surfaces/admin/components/shared.d.ts +34 -44
  55. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-details.action.render.d.ts +589 -219
  56. package/build/ts/surfaces/admin/targets/admin.abandoned-checkout-details.block.render.d.ts +589 -219
  57. package/build/ts/surfaces/admin/targets/admin.catalog-details.action.render.d.ts +589 -219
  58. package/build/ts/surfaces/admin/targets/admin.catalog-details.block.render.d.ts +589 -219
  59. package/build/ts/surfaces/admin/targets/admin.collection-details.action.render.d.ts +589 -219
  60. package/build/ts/surfaces/admin/targets/admin.collection-details.block.render.d.ts +589 -219
  61. package/build/ts/surfaces/admin/targets/admin.collection-index.action.render.d.ts +589 -219
  62. package/build/ts/surfaces/admin/targets/admin.company-details.action.render.d.ts +589 -219
  63. package/build/ts/surfaces/admin/targets/admin.company-details.block.render.d.ts +589 -219
  64. package/build/ts/surfaces/admin/targets/admin.company-location-details.block.render.d.ts +589 -219
  65. package/build/ts/surfaces/admin/targets/admin.customer-details.action.render.d.ts +589 -219
  66. package/build/ts/surfaces/admin/targets/admin.customer-details.block.render.d.ts +589 -219
  67. package/build/ts/surfaces/admin/targets/admin.customer-index.action.render.d.ts +589 -219
  68. package/build/ts/surfaces/admin/targets/admin.customer-index.selection-action.render.d.ts +589 -219
  69. package/build/ts/surfaces/admin/targets/admin.customer-segment-details.action.render.d.ts +589 -219
  70. package/build/ts/surfaces/admin/targets/admin.customers.segmentation-templates.render.d.ts +589 -219
  71. package/build/ts/surfaces/admin/targets/admin.discount-details.action.render.d.ts +589 -219
  72. package/build/ts/surfaces/admin/targets/admin.discount-details.function-settings.render.d.ts +589 -219
  73. package/build/ts/surfaces/admin/targets/admin.discount-index.action.render.d.ts +589 -219
  74. package/build/ts/surfaces/admin/targets/admin.draft-order-details.action.render.d.ts +589 -219
  75. package/build/ts/surfaces/admin/targets/admin.draft-order-details.block.render.d.ts +589 -219
  76. package/build/ts/surfaces/admin/targets/admin.draft-order-index.action.render.d.ts +589 -219
  77. package/build/ts/surfaces/admin/targets/admin.draft-order-index.selection-action.render.d.ts +589 -219
  78. package/build/ts/surfaces/admin/targets/admin.gift-card-details.action.render.d.ts +589 -219
  79. package/build/ts/surfaces/admin/targets/admin.gift-card-details.block.render.d.ts +589 -219
  80. package/build/ts/surfaces/admin/targets/admin.order-details.action.render.d.ts +589 -219
  81. package/build/ts/surfaces/admin/targets/admin.order-details.block.render.d.ts +589 -219
  82. package/build/ts/surfaces/admin/targets/admin.order-details.print-action.render.d.ts +589 -219
  83. package/build/ts/surfaces/admin/targets/admin.order-fulfilled-card.action.render.d.ts +589 -219
  84. package/build/ts/surfaces/admin/targets/admin.order-index.action.render.d.ts +589 -219
  85. package/build/ts/surfaces/admin/targets/admin.order-index.selection-action.render.d.ts +589 -219
  86. package/build/ts/surfaces/admin/targets/admin.order-index.selection-print-action.render.d.ts +589 -219
  87. package/build/ts/surfaces/admin/targets/admin.product-details.action.render.d.ts +589 -219
  88. package/build/ts/surfaces/admin/targets/admin.product-details.block.render.d.ts +589 -219
  89. package/build/ts/surfaces/admin/targets/admin.product-details.configuration.render.d.ts +589 -219
  90. package/build/ts/surfaces/admin/targets/admin.product-details.print-action.render.d.ts +589 -219
  91. package/build/ts/surfaces/admin/targets/admin.product-details.reorder.render.d.ts +589 -219
  92. package/build/ts/surfaces/admin/targets/admin.product-index.action.render.d.ts +589 -219
  93. package/build/ts/surfaces/admin/targets/admin.product-index.selection-action.render.d.ts +589 -219
  94. package/build/ts/surfaces/admin/targets/admin.product-index.selection-print-action.render.d.ts +589 -219
  95. package/build/ts/surfaces/admin/targets/admin.product-purchase-option.action.render.d.ts +589 -219
  96. package/build/ts/surfaces/admin/targets/admin.product-variant-details.action.render.d.ts +589 -219
  97. package/build/ts/surfaces/admin/targets/admin.product-variant-details.block.render.d.ts +589 -219
  98. package/build/ts/surfaces/admin/targets/admin.product-variant-details.configuration.render.d.ts +589 -219
  99. package/build/ts/surfaces/admin/targets/admin.product-variant-purchase-option.action.render.d.ts +589 -219
  100. package/build/ts/surfaces/admin/targets/admin.settings.internal-order-routing-rule.render.d.ts +589 -219
  101. package/build/ts/surfaces/admin/targets/admin.settings.order-routing-rule.render.d.ts +589 -219
  102. package/build/ts/surfaces/admin/targets/admin.settings.validation.render.d.ts +589 -219
  103. package/build/ts/surfaces/customer-account/api/docs.d.ts +1 -1
  104. package/build/ts/surfaces/customer-account/api/docs.d.ts.map +1 -1
  105. package/build/ts/surfaces/customer-account/api/shared.d.ts +0 -6
  106. package/build/ts/surfaces/customer-account/api/shared.d.ts.map +1 -1
  107. package/build/ts/surfaces/customer-account/components/CustomerAccountAction.d.ts +4 -5
  108. package/build/ts/surfaces/customer-account/components/ImageGroup.d.ts +4 -4
  109. package/build/ts/surfaces/customer-account/components/Page.d.ts +3 -5
  110. package/build/ts/surfaces/customer-account/components/shared.d.ts +11 -0
  111. package/build/ts/surfaces/customer-account/components/shared.d.ts.map +1 -1
  112. package/build/ts/surfaces/customer-account/components/shared.ts +17 -0
  113. package/build/ts/surfaces/customer-account/targets/customer-account.footer.render-after.d.ts +6 -17
  114. package/build/ts/surfaces/customer-account/targets/customer-account.order-index.block.render.d.ts +6 -17
  115. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.block.render.d.ts +6 -17
  116. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-item.render-after.d.ts +6 -17
  117. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-list.render-after.d.ts +6 -17
  118. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.customer-information.render-after.d.ts +6 -17
  119. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.fulfillment-details.render-after.d.ts +6 -17
  120. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.payment-details.render-after.d.ts +6 -17
  121. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.return-details.render-after.d.ts +6 -17
  122. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.unfulfilled-items.render-after.d.ts +6 -17
  123. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.menu-item.render.d.ts +6 -17
  124. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.render.d.ts +6 -17
  125. package/build/ts/surfaces/customer-account/targets/customer-account.order.page.render.d.ts +6 -17
  126. package/build/ts/surfaces/customer-account/targets/customer-account.page.render.d.ts +6 -17
  127. package/build/ts/surfaces/customer-account/targets/customer-account.profile.addresses.render-after.d.ts +6 -17
  128. package/build/ts/surfaces/customer-account/targets/customer-account.profile.block.render.d.ts +6 -17
  129. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-details.render-after.d.ts +6 -17
  130. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-addresses.render-after.d.ts +6 -17
  131. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-payment.render-after.d.ts +6 -17
  132. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-staff.render-after.d.ts +6 -17
  133. package/build/ts/surfaces/customer-account/targets/customer-account.profile.payment.render-after.d.ts +6 -17
  134. package/build/tsconfig.tsbuildinfo +1 -1
  135. package/package.json +1 -1
  136. package/src/docs/shared/components/QueryContainer.ts +12 -0
  137. package/src/surfaces/admin/components/AdminAction.d.ts +1 -1
  138. package/src/surfaces/admin/components/AdminBlock.d.ts +1 -1
  139. package/src/surfaces/admin/components/AdminPrintAction.d.ts +1 -1
  140. package/src/surfaces/admin/components/Badge.d.ts +17 -6
  141. package/src/surfaces/admin/components/Banner.d.ts +17 -6
  142. package/src/surfaces/admin/components/Box.d.ts +28 -7
  143. package/src/surfaces/admin/components/Button.d.ts +16 -6
  144. package/src/surfaces/admin/components/Checkbox.d.ts +17 -2
  145. package/src/surfaces/admin/components/Choice.d.ts +17 -2
  146. package/src/surfaces/admin/components/ChoiceList.d.ts +17 -6
  147. package/src/surfaces/admin/components/Clickable.d.ts +28 -7
  148. package/src/surfaces/admin/components/DatePicker.d.ts +11 -5
  149. package/src/surfaces/admin/components/Divider.d.ts +12 -5
  150. package/src/surfaces/admin/components/EmailField.d.ts +11 -5
  151. package/src/surfaces/admin/components/Form.d.ts +1 -1
  152. package/src/surfaces/admin/components/Grid.d.ts +28 -7
  153. package/src/surfaces/admin/components/GridItem.d.ts +29 -7
  154. package/src/surfaces/admin/components/Heading.d.ts +17 -6
  155. package/src/surfaces/admin/components/Icon.d.ts +12 -5
  156. package/src/surfaces/admin/components/Image.d.ts +22 -6
  157. package/src/surfaces/admin/components/Link.d.ts +16 -6
  158. package/src/surfaces/admin/components/ListItem.d.ts +18 -6
  159. package/src/surfaces/admin/components/MoneyField.d.ts +11 -6
  160. package/src/surfaces/admin/components/NumberField.d.ts +11 -5
  161. package/src/surfaces/admin/components/Option.d.ts +17 -5
  162. package/src/surfaces/admin/components/OptionGroup.d.ts +18 -5
  163. package/src/surfaces/admin/components/OrderedList.d.ts +18 -6
  164. package/src/surfaces/admin/components/Page.d.ts +20 -5
  165. package/src/surfaces/admin/components/Paragraph.d.ts +18 -6
  166. package/src/surfaces/admin/components/PasswordField.d.ts +11 -5
  167. package/src/surfaces/admin/components/QueryContainer/examples/default.html +5 -0
  168. package/src/surfaces/admin/components/QueryContainer.d.ts +106 -0
  169. package/src/surfaces/admin/components/SearchField.d.ts +14 -6
  170. package/src/surfaces/admin/components/Section.d.ts +17 -6
  171. package/src/surfaces/admin/components/Select.d.ts +16 -6
  172. package/src/surfaces/admin/components/Spinner.d.ts +12 -2
  173. package/src/surfaces/admin/components/Stack.d.ts +28 -7
  174. package/src/surfaces/admin/components/Switch.d.ts +11 -2
  175. package/src/surfaces/admin/components/Table.d.ts +17 -6
  176. package/src/surfaces/admin/components/TableBody.d.ts +18 -6
  177. package/src/surfaces/admin/components/TableCell.d.ts +18 -6
  178. package/src/surfaces/admin/components/TableHeader.d.ts +18 -6
  179. package/src/surfaces/admin/components/TableHeaderRow.d.ts +18 -6
  180. package/src/surfaces/admin/components/TableRow.d.ts +18 -6
  181. package/src/surfaces/admin/components/Text.d.ts +17 -6
  182. package/src/surfaces/admin/components/TextArea.d.ts +11 -5
  183. package/src/surfaces/admin/components/TextField.d.ts +13 -5
  184. package/src/surfaces/admin/components/URLField.d.ts +11 -5
  185. package/src/surfaces/admin/components/UnorderedList.d.ts +18 -6
  186. package/src/surfaces/admin/components/shared.d.ts +34 -44
  187. package/src/surfaces/admin/components.d.ts +333 -513
  188. package/src/surfaces/customer-account/api/docs.ts +1 -1
  189. package/src/surfaces/customer-account/api/shared.ts +0 -6
  190. package/src/surfaces/customer-account/components/CustomerAccountAction/examples/basic-CustomerAccountAction-js.example.ts +1 -1
  191. package/src/surfaces/customer-account/components/CustomerAccountAction/examples/basic-CustomerAccountAction-preact.example.tsx +1 -1
  192. package/src/surfaces/customer-account/components/CustomerAccountAction.d.ts +4 -5
  193. package/src/surfaces/customer-account/components/ImageGroup.d.ts +4 -4
  194. package/src/surfaces/customer-account/components/Page/examples/basic-Page-js.example.ts +4 -4
  195. package/src/surfaces/customer-account/components/Page/examples/basic-Page-preact.example.tsx +4 -4
  196. package/src/surfaces/customer-account/components/Page.d.ts +3 -5
  197. package/src/surfaces/customer-account/components/shared.ts +17 -0
@@ -191,7 +191,7 @@ export interface Docs_Menu_Button_Action
191
191
  export interface Docs_OrderActionMenu_Button
192
192
  extends Pick<
193
193
  ButtonProps,
194
- 'onClick' | 'loading' | 'disabled' | 'accessibilityLabel' | 'href'
194
+ 'onClick' | 'loading' | 'disabled' | 'accessibilityLabel' | 'href' | 'tone'
195
195
  > {
196
196
  /**
197
197
  * Destination URL to link to.
@@ -393,12 +393,6 @@ export interface CompanyLocation {
393
393
  }
394
394
 
395
395
  export interface Ui {
396
- /**
397
- * An overlay is a contextual element on top of the main interface that provides additional information or functionality.
398
- */
399
- overlay: {
400
- close(overlayId: string): void;
401
- };
402
396
  /**
403
397
  * The Toast API displays a non-disruptive message that displays at the bottom
404
398
  * of the interface to provide quick, at-a-glance feedback on the outcome
@@ -3,7 +3,7 @@ export default function extension() {
3
3
 
4
4
  const closeButton = document.createElement('s-button');
5
5
  closeButton.innerHTML = 'Click to close';
6
- closeButton.slot = 'primaryAction';
6
+ closeButton.slot = 'primary-action';
7
7
  closeButton.addEventListener('click', () => shopify.close());
8
8
 
9
9
  accountAction.append('Extension content');
@@ -8,7 +8,7 @@ function App() {
8
8
  return (
9
9
  <s-customer-account-action heading="Extension title">
10
10
  Extension content
11
- <s-button slot="primaryAction" onClick={() => shopify.close()}>
11
+ <s-button slot="primary-action" onClick={() => shopify.close()}>
12
12
  Click to close
13
13
  </s-button>
14
14
  </s-customer-account-action>
@@ -1,3 +1,5 @@
1
+ import {BaseElementPropsWithChildren} from './shared';
2
+
1
3
  export interface CustomerAccountActionProps {
2
4
  /**
3
5
  * Sets the heading of the Action container.
@@ -16,14 +18,11 @@ declare global {
16
18
  }
17
19
 
18
20
  declare module 'preact' {
19
- interface BaseProps {
20
- children?: preact.ComponentChildren;
21
- slot?: Lowercase<string>;
22
- }
23
21
  // eslint-disable-next-line @typescript-eslint/no-namespace
24
22
  namespace createElement.JSX {
25
23
  interface IntrinsicElements {
26
- ['s-customer-account-action']: BaseProps & CustomerAccountActionProps;
24
+ ['s-customer-account-action']: BaseElementPropsWithChildren<CustomerAccountActionElement> &
25
+ CustomerAccountActionProps;
27
26
  }
28
27
  }
29
28
  }
@@ -1,3 +1,5 @@
1
+ import {BaseElementPropsWithChildren} from './shared';
2
+
1
3
  export interface ImageGroupProps {
2
4
  /**
3
5
  * Indicates the total number of items that could be displayed in the image group.
@@ -15,13 +17,11 @@ declare global {
15
17
  }
16
18
 
17
19
  declare module 'preact' {
18
- interface BaseProps {
19
- children?: preact.ComponentChildren;
20
- }
21
20
  // eslint-disable-next-line @typescript-eslint/no-namespace
22
21
  namespace createElement.JSX {
23
22
  interface IntrinsicElements {
24
- ['s-image-group']: BaseProps & ImageGroupProps;
23
+ ['s-image-group']: BaseElementPropsWithChildren<ImageGroupElement> &
24
+ ImageGroupProps;
25
25
  }
26
26
  }
27
27
  }
@@ -3,25 +3,25 @@ export default function extension() {
3
3
 
4
4
  const primaryAction = document.createElement('s-button');
5
5
  primaryAction.innerHTML = 'Primary action';
6
- primaryAction.slot = 'primaryAction';
6
+ primaryAction.slot = 'primary-action';
7
7
  primaryAction.addEventListener('click', () => console.log('Primary action'));
8
8
 
9
9
  const secondaryActions1 = document.createElement('s-button');
10
- secondaryActions1.slot = 'secondaryActions';
10
+ secondaryActions1.slot = 'secondary-actions';
11
11
  secondaryActions1.textContent = 'Secondary action 1';
12
12
  secondaryActions1.addEventListener('click', () =>
13
13
  console.log('Secondary action 1'),
14
14
  );
15
15
 
16
16
  const secondaryActions2 = document.createElement('s-button');
17
- secondaryActions2.slot = 'secondaryActions';
17
+ secondaryActions2.slot = 'secondary-actions';
18
18
  secondaryActions2.textContent = 'Secondary action 2';
19
19
  secondaryActions2.addEventListener('click', () =>
20
20
  console.log('Secondary action 2'),
21
21
  );
22
22
 
23
23
  const breadcrumbActions = document.createElement('s-button');
24
- breadcrumbActions.slot = 'breadcrumbActions';
24
+ breadcrumbActions.slot = 'breadcrumb-actions';
25
25
  breadcrumbActions.setAttribute('accessibilitylabel', 'Button');
26
26
  breadcrumbActions.setAttribute('href', 'shopify://customer-account/orders');
27
27
 
@@ -8,25 +8,25 @@ function App() {
8
8
  return (
9
9
  <s-page heading="Order #1411" subheading="Confirmed Oct 5">
10
10
  <s-button
11
- slot="primaryAction"
11
+ slot="primary-action"
12
12
  onClick={() => console.log('Primary action')}
13
13
  >
14
14
  Primary action
15
15
  </s-button>
16
16
  <s-button
17
- slot="secondaryActions"
17
+ slot="secondary-actions"
18
18
  onClick={() => console.log('Secondary action 1')}
19
19
  >
20
20
  Secondary action 1
21
21
  </s-button>
22
22
  <s-button
23
- slot="secondaryActions"
23
+ slot="secondary-actions"
24
24
  onClick={() => console.log('Secondary action 2')}
25
25
  >
26
26
  Secondary action 2
27
27
  </s-button>
28
28
  <s-button
29
- slot="breadcrumbActions"
29
+ slot="breadcrumb-actions"
30
30
  accessibilitylabel="Button"
31
31
  href="shopify://customer-account/orders"
32
32
  />
@@ -1,3 +1,5 @@
1
+ import {BaseElementPropsWithChildren} from './shared';
2
+
1
3
  export interface PageProps {
2
4
  /**
3
5
  * The main page heading
@@ -19,14 +21,10 @@ declare global {
19
21
  }
20
22
 
21
23
  declare module 'preact' {
22
- interface BaseProps {
23
- children?: preact.ComponentChildren;
24
- slot?: Lowercase<string>;
25
- }
26
24
  // eslint-disable-next-line @typescript-eslint/no-namespace
27
25
  namespace createElement.JSX {
28
26
  interface IntrinsicElements {
29
- ['s-page']: BaseProps & PageProps;
27
+ ['s-page']: BaseElementPropsWithChildren<PageElement> & PageProps;
30
28
  }
31
29
  }
32
30
  }
@@ -12,3 +12,20 @@ export type Size =
12
12
  | 'large'
13
13
  | 'extraLarge'
14
14
  | 'fill';
15
+
16
+ export interface BaseElementProps<TClass = HTMLElement> {
17
+ // Assigns a unique key to this element.
18
+ key?: preact.Key;
19
+ // Assigns a ref (generally from `useRef()`) to this element.
20
+ ref?: preact.Ref<TClass>;
21
+ // Assigns this element to a parent's slot.
22
+ slot?: Lowercase<string>;
23
+ }
24
+
25
+ /**
26
+ * Used when an element has children.
27
+ */
28
+ export interface BaseElementPropsWithChildren<TClass = HTMLElement>
29
+ extends BaseElementProps<TClass> {
30
+ children?: preact.ComponentChildren;
31
+ }