@shopify/ui-extensions 2026.7.1 → 2026.7.3

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 (78) hide show
  1. package/build/cjs/surfaces/checkout/shared.js +2 -0
  2. package/build/esm/surfaces/checkout/shared.mjs +2 -0
  3. package/build/esnext/surfaces/checkout/shared.esnext +2 -0
  4. package/build/ts/surfaces/checkout/components/Button.d.ts +9 -0
  5. package/build/ts/surfaces/checkout/components/LoginWithShop.d.ts +164 -0
  6. package/build/ts/surfaces/checkout/shared.d.ts +3 -1
  7. package/build/ts/surfaces/checkout/shared.d.ts.map +1 -1
  8. package/build/ts/surfaces/checkout/targets/purchase.cart-line-item.line-components.render.d.ts +1 -0
  9. package/build/ts/surfaces/checkout/targets/purchase.checkout.actions.render-before.d.ts +1 -0
  10. package/build/ts/surfaces/checkout/targets/purchase.checkout.block.render.d.ts +1 -0
  11. package/build/ts/surfaces/checkout/targets/purchase.checkout.cart-line-item.render-after.d.ts +1 -0
  12. package/build/ts/surfaces/checkout/targets/purchase.checkout.cart-line-list.render-after.d.ts +1 -0
  13. package/build/ts/surfaces/checkout/targets/purchase.checkout.contact.render-after.d.ts +1 -0
  14. package/build/ts/surfaces/checkout/targets/purchase.checkout.delivery-address.render-after.d.ts +1 -0
  15. package/build/ts/surfaces/checkout/targets/purchase.checkout.delivery-address.render-before.d.ts +1 -0
  16. package/build/ts/surfaces/checkout/targets/purchase.checkout.footer.render-after.d.ts +1 -0
  17. package/build/ts/surfaces/checkout/targets/purchase.checkout.gift-card.render.d.ts +1 -0
  18. package/build/ts/surfaces/checkout/targets/purchase.checkout.header.render-after.d.ts +1 -0
  19. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-method-list.render-after.d.ts +1 -0
  20. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-method-list.render-before.d.ts +1 -0
  21. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.action-required.render.d.ts +1 -0
  22. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.details.render.d.ts +1 -0
  23. package/build/ts/surfaces/checkout/targets/purchase.checkout.payment-option-item.hosted-fields.render-after.d.ts +1 -0
  24. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-list.render-after.d.ts +1 -0
  25. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-list.render-before.d.ts +1 -0
  26. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-location-option-item.render-after.d.ts +1 -0
  27. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-point-list.render-after.d.ts +1 -0
  28. package/build/ts/surfaces/checkout/targets/purchase.checkout.pickup-point-list.render-before.d.ts +1 -0
  29. package/build/ts/surfaces/checkout/targets/purchase.checkout.reductions.render-after.d.ts +1 -0
  30. package/build/ts/surfaces/checkout/targets/purchase.checkout.reductions.render-before.d.ts +1 -0
  31. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-item.details.render.d.ts +1 -0
  32. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-item.render-after.d.ts +1 -0
  33. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-list.render-after.d.ts +1 -0
  34. package/build/ts/surfaces/checkout/targets/purchase.checkout.shipping-option-list.render-before.d.ts +1 -0
  35. package/build/ts/surfaces/checkout/targets/purchase.thank-you.block.render.d.ts +1 -0
  36. package/build/ts/surfaces/checkout/targets/purchase.thank-you.cart-line-item.render-after.d.ts +1 -0
  37. package/build/ts/surfaces/checkout/targets/purchase.thank-you.cart-line-list.render-after.d.ts +1 -0
  38. package/build/ts/surfaces/checkout/targets/purchase.thank-you.customer-information.render-after.d.ts +1 -0
  39. package/build/ts/surfaces/checkout/targets/purchase.thank-you.footer.render-after.d.ts +1 -0
  40. package/build/ts/surfaces/checkout/targets/purchase.thank-you.header.render-after.d.ts +1 -0
  41. package/build/ts/surfaces/customer-account/components/Button.d.ts +9 -0
  42. package/build/ts/surfaces/customer-account/components/LoginWithShop.d.ts +164 -0
  43. package/build/ts/surfaces/customer-account/targets/customer-account.footer.render-after.d.ts +1 -0
  44. package/build/ts/surfaces/customer-account/targets/customer-account.order-index.announcement.render.d.ts +1 -0
  45. package/build/ts/surfaces/customer-account/targets/customer-account.order-index.block.render.d.ts +1 -0
  46. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.announcement.render.d.ts +1 -0
  47. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.block.render.d.ts +1 -0
  48. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-item.render-after.d.ts +1 -0
  49. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.cart-line-list.render-after.d.ts +1 -0
  50. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.customer-information.render-after.d.ts +1 -0
  51. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.fulfillment-details.render-after.d.ts +1 -0
  52. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.payment-details.render-after.d.ts +1 -0
  53. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.return-details.render-after.d.ts +1 -0
  54. package/build/ts/surfaces/customer-account/targets/customer-account.order-status.unfulfilled-items.render-after.d.ts +1 -0
  55. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.menu-item.render.d.ts +1 -0
  56. package/build/ts/surfaces/customer-account/targets/customer-account.order.action.render.d.ts +1 -0
  57. package/build/ts/surfaces/customer-account/targets/customer-account.order.page.render.d.ts +1 -0
  58. package/build/ts/surfaces/customer-account/targets/customer-account.page.render.d.ts +1 -0
  59. package/build/ts/surfaces/customer-account/targets/customer-account.profile.addresses.render-after.d.ts +1 -0
  60. package/build/ts/surfaces/customer-account/targets/customer-account.profile.announcement.render.d.ts +1 -0
  61. package/build/ts/surfaces/customer-account/targets/customer-account.profile.block.render.d.ts +1 -0
  62. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-details.render-after.d.ts +1 -0
  63. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-addresses.render-after.d.ts +1 -0
  64. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-payment.render-after.d.ts +1 -0
  65. package/build/ts/surfaces/customer-account/targets/customer-account.profile.company-location-staff.render-after.d.ts +1 -0
  66. package/build/ts/surfaces/customer-account/targets/customer-account.profile.payment.render-after.d.ts +1 -0
  67. package/build/ts/surfaces/point-of-sale/components/Button.d.ts +3 -2
  68. package/build/ts/surfaces/point-of-sale/components/Image.d.ts +26 -1
  69. package/build/ts/surfaces/point-of-sale/components/components-shared.d.ts +1 -1
  70. package/build/tsconfig.tsbuildinfo +1 -1
  71. package/package.json +14 -13
  72. package/src/surfaces/checkout/components/Button.d.ts +9 -0
  73. package/src/surfaces/checkout/components/LoginWithShop.d.ts +164 -0
  74. package/src/surfaces/checkout/shared.ts +6 -1
  75. package/src/surfaces/point-of-sale/components/Button.d.ts +3 -2
  76. package/src/surfaces/point-of-sale/components/Image.d.ts +26 -1
  77. package/src/surfaces/point-of-sale/components/components-shared.d.ts +1 -1
  78. package/src/surfaces/point-of-sale/components.d.ts +43 -5
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@shopify/ui-extensions",
3
- "version": "2026.7.1",
3
+ "version": "2026.7.3",
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",
7
+ "package:publint": "publint --pack npm",
8
+ "package:attw": "attw --pack . --ignore-rules false-cjs",
7
9
  "docs:point-of-sale": "node ./docs/surfaces/point-of-sale/build-docs.mjs",
8
10
  "docs:customer-account": "node ./docs/surfaces/customer-account/build-docs.mjs"
9
11
  },
@@ -45,6 +47,9 @@
45
47
  ],
46
48
  "pos.*": [
47
49
  "./build/ts/surfaces/point-of-sale/targets/pos.*.d.ts"
50
+ ],
51
+ "preact": [
52
+ "./build/ts/preact.d.ts"
48
53
  ]
49
54
  }
50
55
  },
@@ -106,12 +111,6 @@
106
111
  "./pos.*": {
107
112
  "default": "./build/ts/surfaces/point-of-sale/targets/pos.*.d.ts"
108
113
  },
109
- "./point-of-sale/preact": {
110
- "types": "./build/ts/surfaces/point-of-sale/preact.d.ts",
111
- "esnext": "./build/esnext/surfaces/point-of-sale/preact.esnext",
112
- "import": "./build/esm/surfaces/point-of-sale/preact.mjs",
113
- "require": "./build/cjs/surfaces/point-of-sale/preact.js"
114
- },
115
114
  "./preact": {
116
115
  "types": "./build/ts/preact.d.ts",
117
116
  "esnext": "./build/esnext/preact.esnext",
@@ -126,17 +125,19 @@
126
125
  "./build/cjs/preact.js"
127
126
  ],
128
127
  "devDependencies": {
128
+ "@arethetypeswrong/cli": "^0.18.5",
129
+ "@faker-js/faker": "^8.4.1",
130
+ "@preact/signals": "^2.3.x",
131
+ "@quilted/react-testing": "^0.6.11",
129
132
  "@remote-ui/async-subscription": "^2.1.16",
130
133
  "@shopify/generate-docs": "1.2.2",
131
- "@quilted/react-testing": "^0.6.11",
132
- "typescript": "^4.9.0",
133
- "@faker-js/faker": "^8.4.1",
134
134
  "preact": "^10.10.x",
135
- "@preact/signals": "^2.3.x"
135
+ "publint": "^0.3.23",
136
+ "typescript": "^4.9.0"
136
137
  },
137
138
  "peerDependencies": {
138
- "preact": "*",
139
- "@preact/signals": "*"
139
+ "@preact/signals": "*",
140
+ "preact": "*"
140
141
  },
141
142
  "peerDependenciesMeta": {
142
143
  "preact": {
@@ -53,6 +53,15 @@ export interface ButtonElementProps extends Pick<ButtonProps$1, 'accessibilityLa
53
53
  * @default 'button'
54
54
  */
55
55
  type?: Extract<ButtonProps$1['type'], 'submit' | 'button'>;
56
+ /**
57
+ * The visual style variant of the button component, which controls its prominence and emphasis.
58
+ *
59
+ * - `'auto'`: Automatically determined by the button's context.
60
+ * - `'primary'`: High-emphasis style for the main action.
61
+ * - `'secondary'`: Medium-emphasis style for supporting actions.
62
+ *
63
+ * @default 'auto'
64
+ */
56
65
  variant?: Extract<ButtonProps$1['variant'], 'auto' | 'primary' | 'secondary'>;
57
66
  }
58
67
  export interface ButtonEvents extends Pick<ButtonProps$1, 'onClick'> {
@@ -0,0 +1,164 @@
1
+ /** VERSION: 0.0.0 **/
2
+ /* eslint-disable import-x/extensions */
3
+ /* eslint-disable @typescript-eslint/no-namespace */
4
+ /* eslint-disable @typescript-eslint/member-ordering */
5
+ /* eslint-disable line-comment-position */
6
+ /* eslint-disable @typescript-eslint/unified-signatures */
7
+ /* eslint-disable no-var */
8
+ /* eslint-disable import-x/namespace */
9
+ // eslint-disable-next-line @typescript-eslint/triple-slash-reference, spaced-comment
10
+ /// <reference lib="DOM" />
11
+
12
+ /**
13
+ * The base properties for elements that don't have children, providing essential attributes like keys and refs for component management.
14
+ */
15
+ export interface BaseElementProps<TClass = HTMLElement> {
16
+ /**
17
+ * A unique identifier for this element within its parent. Used by the rendering engine for efficient reconciliation when lists change.
18
+ */
19
+ key?: preact.Key;
20
+ /**
21
+ * A reference to the underlying DOM element, typically created using `useRef()`. This allows you to access and manipulate the DOM element directly in your component logic.
22
+ */
23
+ ref?: preact.Ref<TClass>;
24
+ /**
25
+ * Assigns this element to a named slot in a parent component that uses slot-based composition patterns.
26
+ */
27
+ slot?: Lowercase<string>;
28
+ }
29
+ /**
30
+ * An event type that narrows the `currentTarget` to the specific HTML element associated with the custom element tag. This provides type-safe event handling in callback listeners.
31
+ */
32
+ export type CallbackEvent<TTagName extends keyof HTMLElementTagNameMap, TEvent extends Event = Event> = TEvent & {
33
+ currentTarget: HTMLElementTagNameMap[TTagName];
34
+ };
35
+ /**
36
+ * A typed event listener for custom element events. The listener receives a `CallbackEvent` with the correct `currentTarget` type for the associated custom element tag.
37
+ */
38
+ export type CallbackEventListener<TTagName extends keyof HTMLElementTagNameMap, TData = object> = (EventListener & {
39
+ (event: CallbackEvent<TTagName, Event> & TData): void;
40
+ }) | null;
41
+
42
+ declare const tagName = "s-login-with-shop";
43
+ /** @private */
44
+ export interface LoginWithShopStatusChangeEvent {
45
+ /**
46
+ * The buyer's Shop Pay state in this checkout.
47
+ *
48
+ * - `shop_pay`: The buyer is signed in to Shop Pay.
49
+ * - `shop_pay_guest`: The buyer is in Shop Pay but isn't signed in.
50
+ * - `guest`: The buyer isn't using Shop Pay, so the modal can be shown.
51
+ * - `shop_pay_skipped`: The Shop Pay modal is suppressed for this checkout and isn't shown.
52
+ */
53
+ status?: 'shop_pay' | 'guest' | 'shop_pay_skipped' | 'shop_pay_guest';
54
+ }
55
+ /** @private */
56
+ export interface LoginWithShopElementProps {
57
+ /**
58
+ * Whether the modal is visible to the buyer.
59
+ *
60
+ * The modal doesn't hide itself when the buyer dismisses it. Update this to `false` when the `closed` event fires to keep it in sync.
61
+ *
62
+ * @default false
63
+ */
64
+ open?: boolean;
65
+ /**
66
+ * Whether to send the buyer to Shop Pay immediately, without showing the modal.
67
+ *
68
+ * @default false
69
+ */
70
+ doRedirect?: boolean;
71
+ /**
72
+ * The heading shown at the top of the modal.
73
+ *
74
+ * This is also the modal's accessible name and the alternative text for `modalLogoSrc`.
75
+ *
76
+ * @default ''
77
+ */
78
+ modalTitle?: string;
79
+ /**
80
+ * The text shown below the heading, explaining what the buyer gets by continuing to Shop Pay.
81
+ *
82
+ * @default ''
83
+ */
84
+ modalDescription?: string;
85
+ /**
86
+ * The URL of the image shown above the heading. The image is scaled to a maximum height of 64px.
87
+ *
88
+ * @default ''
89
+ */
90
+ modalLogoSrc?: string;
91
+ /**
92
+ * The label of the primary button that continues to Shop Pay.
93
+ *
94
+ * @default 'Continue'
95
+ */
96
+ modalContinueText?: string;
97
+ /**
98
+ * The label of the secondary button that dismisses the modal.
99
+ *
100
+ * @default ''
101
+ */
102
+ modalCancelText?: string;
103
+ }
104
+ /** @private */
105
+ export interface LoginWithShopEvents {
106
+ /**
107
+ * A callback that's fired when the buyer presses the continue button.
108
+ *
109
+ * Return a promise to do work before the buyer leaves. Checkout keeps the button in its loading state and waits for the promise to settle before redirecting to Shop Pay.
110
+ */
111
+ onComplete?(event: CallbackEvent<typeof tagName>): void | Promise<void>;
112
+ /**
113
+ * A callback that's fired when the buyer dismisses the modal, either with the cancel button or by closing it.
114
+ */
115
+ onClosed?(event: CallbackEvent<typeof tagName>): void;
116
+ /**
117
+ * A callback that's fired when the buyer's Shop Pay state in checkout is determined or changes.
118
+ *
119
+ * Read `event.status` for the new state.
120
+ */
121
+ onStatusChange?(event: CallbackEvent<typeof tagName> & LoginWithShopStatusChangeEvent): void;
122
+ }
123
+ /** @private */
124
+ export interface LoginWithShopElementEvents {
125
+ /**
126
+ * A callback that's fired when the buyer presses the continue button.
127
+ *
128
+ * Checkout redirects to Shop Pay once this event has been handled.
129
+ */
130
+ complete?: CallbackEventListener<typeof tagName>;
131
+ /**
132
+ * A callback that's fired when the buyer dismisses the modal, either with the cancel button or by closing it.
133
+ */
134
+ closed?: CallbackEventListener<typeof tagName>;
135
+ /**
136
+ * A callback that's fired when the buyer's Shop Pay state in checkout is determined or changes.
137
+ *
138
+ * Read `event.status` for the new state.
139
+ */
140
+ statuschange?: CallbackEventListener<typeof tagName, LoginWithShopStatusChangeEvent>;
141
+ }
142
+ /** @private */
143
+ export interface LoginWithShopElement extends LoginWithShopElementProps, HTMLElement {
144
+ oncomplete: LoginWithShopElementEvents['complete'];
145
+ onclosed: LoginWithShopElementEvents['closed'];
146
+ onstatuschange: LoginWithShopElementEvents['statuschange'];
147
+ }
148
+ /** @private */
149
+ export interface LoginWithShopProps extends LoginWithShopElementProps, LoginWithShopEvents {
150
+ }
151
+ declare global {
152
+ interface HTMLElementTagNameMap {
153
+ [tagName]: LoginWithShopElement;
154
+ }
155
+ }
156
+ declare module 'preact' {
157
+ namespace createElement.JSX {
158
+ interface IntrinsicElements {
159
+ [tagName]: LoginWithShopProps & BaseElementProps<LoginWithShopElement>;
160
+ }
161
+ }
162
+ }
163
+
164
+ export type { LoginWithShopElement, LoginWithShopElementEvents, LoginWithShopElementProps, LoginWithShopEvents, LoginWithShopProps, LoginWithShopStatusChangeEvent };
@@ -70,10 +70,15 @@ export const SUPPORTED_COMPONENTS = [
70
70
  'UrlField',
71
71
  ] as const;
72
72
 
73
+ /** @private */
74
+ export type PrivateComponent = 'LoginWithShop';
75
+
73
76
  export type ThankYouComponent = 'Announcement';
74
77
 
75
78
  /** @publicDocs */
76
- export type AnyComponent = (typeof SUPPORTED_COMPONENTS)[number];
79
+ export type AnyComponent =
80
+ | (typeof SUPPORTED_COMPONENTS)[number]
81
+ | PrivateComponent;
77
82
 
78
83
  /**
79
84
  * The list of supported components.
@@ -116,12 +116,13 @@ export interface ButtonJSXProps
116
116
  >;
117
117
  /**
118
118
  * Changes the visual appearance of the button.
119
+ * - `auto`: Automatically determines the button variant based on its context.
119
120
  * - `primary`: Creates a prominent call-to-action button with high visual emphasis for the most important action on a screen.
120
121
  * - `secondary`: Provides a less prominent button appearance for supporting actions and secondary interactions.
121
122
  *
122
- * @default 'auto' - the variant is automatically determined by the button's context
123
+ * @default 'auto'
123
124
  */
124
- variant?: Extract<ButtonProps['variant'], 'primary' | 'secondary'>;
125
+ variant?: Extract<ButtonProps['variant'], 'auto' | 'primary' | 'secondary'>;
125
126
  /**
126
127
  * An event that's called when the button is activated.
127
128
  */
@@ -8,7 +8,13 @@
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 {ImageProps, Key, Ref} from './components-shared.d.ts';
11
+ import type {
12
+ BorderRadiusKeyword,
13
+ ImageProps,
14
+ Key,
15
+ MaybeAllValuesShorthandProperty,
16
+ Ref,
17
+ } from './components-shared.d.ts';
12
18
 
13
19
  /** @publicDocs */
14
20
  export type ComponentChildren = any;
@@ -60,6 +66,25 @@ export interface ImageJSXProps extends Pick<ImageProps, 'id' | 'objectFit'> {
60
66
  * The image source URL (remote URL or local file resource). When loading or no src is provided, a placeholder is rendered. Ensure URLs are properly formatted and properly formatted.
61
67
  */
62
68
  src?: ImageProps['src'];
69
+ /**
70
+ * Border radius for the image corners.
71
+ *
72
+ * [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) is
73
+ * supported. Note that, contrary to CSS, it uses flow-relative values and the order is:
74
+ *
75
+ * - 4 values: `start-start start-end end-end end-start`
76
+ * - 3 values: `start-start (start-end & end-start) end-end`
77
+ * - 2 values: `(start-start & end-end) (start-end & end-start)`
78
+ *
79
+ * For example:
80
+ * - `base` means all corners have `base` radius
81
+ * - `base none` means start-start and end-end corners are `base`, start-end and end-start corners are `none`
82
+ * - `base none large` means start-start is `base`, start-end and end-start are `none`, end-end is `large`
83
+ * - `base none large small` means start-start is `base`, start-end is `none`, end-end is `large`, end-start is `small`
84
+ *
85
+ * @default 'none'
86
+ */
87
+ borderRadius?: MaybeAllValuesShorthandProperty<BorderRadiusKeyword>;
63
88
  }
64
89
  declare global {
65
90
  interface HTMLElementTagNameMap {
@@ -1438,7 +1438,7 @@ export interface ButtonProps extends GlobalProps, BaseClickableProps {
1438
1438
  /**
1439
1439
  * Changes the visual appearance of the button.
1440
1440
  *
1441
- * @default 'auto' - the variant is automatically determined by the button's context
1441
+ * @default 'auto'
1442
1442
  */
1443
1443
  variant?: 'auto' | 'primary' | 'secondary' | 'tertiary';
1444
1444
  /**
@@ -1413,7 +1413,7 @@ export interface ButtonProps extends GlobalProps, BaseClickableProps {
1413
1413
  /**
1414
1414
  * Changes the visual appearance of the button.
1415
1415
  *
1416
- * @default 'auto' - the variant is automatically determined by the button's context
1416
+ * @default 'auto'
1417
1417
  */
1418
1418
  variant?: 'auto' | 'primary' | 'secondary' | 'tertiary';
1419
1419
  /**
@@ -3738,9 +3738,9 @@ interface ButtonJSXProps
3738
3738
  /**
3739
3739
  * Changes the visual appearance of the button.
3740
3740
  *
3741
- * @default 'auto' - the variant is automatically determined by the button's context
3741
+ * @default 'auto'
3742
3742
  */
3743
- variant?: Extract<ButtonProps['variant'], 'primary' | 'secondary'>;
3743
+ variant?: Extract<ButtonProps['variant'], 'auto' | 'primary' | 'secondary'>;
3744
3744
  /**
3745
3745
  * Called when the button is activated.
3746
3746
  */
@@ -4195,6 +4195,25 @@ interface ImageJSXProps extends Pick<ImageProps, 'id' | 'objectFit' | 'alt'> {
4195
4195
  * @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#src
4196
4196
  */
4197
4197
  src?: ImageProps['src'];
4198
+ /**
4199
+ * Border radius for the image corners.
4200
+ *
4201
+ * [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) is
4202
+ * supported. Note that, contrary to CSS, it uses flow-relative values and the order is:
4203
+ *
4204
+ * - 4 values: `start-start start-end end-end end-start`
4205
+ * - 3 values: `start-start (start-end & end-start) end-end`
4206
+ * - 2 values: `(start-start & end-end) (start-end & end-start)`
4207
+ *
4208
+ * For example:
4209
+ * - `base` means all corners have `base` radius
4210
+ * - `base none` means start-start and end-end corners are `base`, start-end and end-start corners are `none`
4211
+ * - `base none large` means start-start is `base`, start-end and end-start are `none`, end-end is `large`
4212
+ * - `base none large small` means start-start is `base`, start-end is `none`, end-end is `large`, end-start is `small`
4213
+ *
4214
+ * @default 'none'
4215
+ */
4216
+ borderRadius?: MaybeAllValuesShorthandProperty<BorderRadiusKeyword>;
4198
4217
  }
4199
4218
  declare global {
4200
4219
  interface HTMLElementTagNameMap {
@@ -5906,9 +5925,9 @@ interface Button {
5906
5925
  tone?: 'auto' | 'neutral' | 'caution' | 'warning' | 'critical';
5907
5926
  /**
5908
5927
  * Changes the visual appearance of the button.
5909
- * @default 'auto' - the variant is automatically determined by the button's context
5928
+ * @default 'auto'
5910
5929
  */
5911
- variant?: 'primary' | 'secondary';
5930
+ variant?: 'auto' | 'primary' | 'secondary';
5912
5931
  /** A unique identifier for the element. */
5913
5932
  id?: string;
5914
5933
  /**
@@ -7116,6 +7135,25 @@ interface Image {
7116
7135
  * @see ://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#alt
7117
7136
  */
7118
7137
  alt?: string;
7138
+ /**
7139
+ * Border radius for the image corners.
7140
+ *
7141
+ * [1-to-4-value syntax](https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties#edges_of_a_box) is
7142
+ * supported. Note that, contrary to CSS, it uses flow-relative values and the order is:
7143
+ *
7144
+ * - 4 values: `start-start start-end end-end end-start`
7145
+ * - 3 values: `start-start (start-end & end-start) end-end`
7146
+ * - 2 values: `(start-start & end-end) (start-end & end-start)`
7147
+ *
7148
+ * For example:
7149
+ * - `base` means all corners have `base` radius
7150
+ * - `base none` means start-start and end-end corners are `base`, start-end and end-start corners are `none`
7151
+ * - `base none large` means start-start is `base`, start-end and end-start are `none`, end-end is `large`
7152
+ * - `base none large small` means start-start is `base`, start-end is `none`, end-end is `large`, end-start is `small`
7153
+ *
7154
+ * @default 'none'
7155
+ */
7156
+ borderRadius?: MaybeAllValuesShorthandProperty<BorderRadiusKeyword>;
7119
7157
  }
7120
7158
 
7121
7159
  /**