@mirohq/design-system-button 3.2.0-deprecated-button.1 → 4.0.0-button-api-changes.0

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.
package/dist/module.js CHANGED
@@ -1,299 +1,311 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import React, { useRef } from 'react';
3
- import { useButton } from '@react-aria/button';
4
- import { mergeProps } from '@react-aria/utils';
5
2
  import { Spinner } from '@mirohq/design-system-spinner';
6
- import { useLink } from '@react-aria/link';
7
- import { useFocusRing } from '@react-aria/focus';
3
+ import { addPropsToChildren, booleanify } from '@mirohq/design-system-utils';
4
+ import React, { createContext, useContext } from 'react';
5
+ import { BaseButton, sizes } from '@mirohq/design-system-base-button';
6
+ import { isIconComponent, styles } from '@mirohq/design-system-base-icon';
8
7
  import { Primitive } from '@mirohq/design-system-primitive';
9
8
  import { styled } from '@mirohq/design-system-stitches';
9
+ import { focus } from '@mirohq/design-system-styles';
10
10
 
11
- const focusFilled = {
12
- "&[data-focused]": {
13
- boxShadow: "inset 0 0 0 1px white, 0 0 0 1px rgba(104, 129, 255, 1), 0 0 0 5px rgba(217, 224, 255, 1)"
11
+ const ButtonContext = createContext({});
12
+ const ButtonProvider = ({
13
+ children,
14
+ ...restProps
15
+ }) => /* @__PURE__ */ jsx(
16
+ ButtonContext.Provider,
17
+ {
18
+ value: {
19
+ ...restProps
20
+ },
21
+ children
14
22
  }
23
+ );
24
+ const useButtonContext = () => useContext(ButtonContext);
25
+
26
+ const StyledIconSlot = styled(Primitive.div, {});
27
+ const buttonIconSizes = {
28
+ small: "small",
29
+ medium: "small",
30
+ large: "medium",
31
+ "x-large": "medium"
15
32
  };
16
- const focusOutline = {
17
- "&[data-focused]": {
18
- boxShadow: "0 0 0 1px rgba(104, 129, 255, 1), 0 0 0 5px rgba(217, 224, 255, 1)",
19
- borderColor: "transparent"
33
+ const buttonIconWeights = {
34
+ small: "thin",
35
+ medium: "thin",
36
+ large: "normal",
37
+ "x-large": "normal"
38
+ };
39
+ const IconSlot = React.forwardRef(({ children, ...restProps }, forwardRef) => {
40
+ const { size } = useButtonContext();
41
+ const formattedChildren = addPropsToChildren(
42
+ children,
43
+ (child) => isIconComponent(child),
44
+ {
45
+ "data-icon-component": "",
46
+ size: buttonIconSizes[size],
47
+ weight: buttonIconWeights[size]
48
+ }
49
+ );
50
+ return /* @__PURE__ */ jsx(StyledIconSlot, { ...restProps, ref: forwardRef, "aria-hidden": true, asChild: true, children: formattedChildren });
51
+ });
52
+
53
+ const disabledSelector = '&[disabled], &[aria-disabled="true"]';
54
+ const iconSlotSelector = "& ".concat(StyledIconSlot);
55
+ const externalIconSelector = "& svg:not([data-icon-component]), & img:not([data-icon-component])";
56
+ const solidDisabled = {
57
+ [disabledSelector]: {
58
+ backgroundColor: "$background-neutrals-disabled",
59
+ color: "$text-neutrals-disabled",
60
+ [iconSlotSelector]: {
61
+ color: "$icon-neutrals-disabled"
62
+ }
63
+ }
64
+ };
65
+ const outlineDisabled = {
66
+ [disabledSelector]: {
67
+ backgroundColor: "$background-neutrals",
68
+ borderColor: "$border-neutrals-disabled",
69
+ color: "$text-neutrals-disabled",
70
+ [iconSlotSelector]: {
71
+ color: "$icon-neutrals-disabled"
72
+ }
20
73
  }
21
74
  };
22
- const focusDefault = {
23
- "&[data-focused]": {
24
- boxShadow: "0 0 0 1px rgba(104, 129, 255, 1), 0 0 0 5px rgba(217, 224, 255, 1)"
75
+ const ghostDisabled = {
76
+ [disabledSelector]: {
77
+ color: "$text-neutrals-disabled",
78
+ backgroundColor: "$transparent",
79
+ [iconSlotSelector]: {
80
+ color: "$icon-neutrals-disabled"
81
+ }
25
82
  }
26
83
  };
27
- const pressedSelector = "&:active, &[data-pressed]";
28
- const StyledButton = styled(Primitive.button, {
29
- boxSizing: "border-box",
30
- display: "inline-block",
31
- outline: "none",
84
+ const LABEL_OFFSET = 2;
85
+ const StyledButton = styled(BaseButton, {
32
86
  whiteSpace: "nowrap",
33
87
  textOverflow: "ellipsis",
34
88
  textAlign: "center",
35
- verticalAlign: "middle",
36
- userSelect: "none",
37
- fontFamily: "inherit",
38
- fontStyle: "normal",
39
- fontStretch: "normal",
40
- letterSpacing: "normal",
41
- fontWeight: "normal",
42
89
  position: "relative",
43
- cursor: "pointer",
44
- border: "none",
45
- textDecoration: "none",
46
- backgroundColor: "transparent",
47
- "&[disabled]": {
48
- pointerEvents: "none",
49
- opacity: 0.4
90
+ width: "fit-content",
91
+ maxWidth: "100%",
92
+ lineHeight: 1,
93
+ border: "1px solid transparent",
94
+ // to make outline and solid/ghost variants the same width
95
+ ...focus.css({
96
+ boxShadow: "$focus-small-outline",
97
+ borderColor: "$blue-400 !important"
98
+ }),
99
+ ["& ".concat(StyledIconSlot, ":first-child")]: {
100
+ marginLeft: -LABEL_OFFSET,
101
+ marginRight: "calc($50 + ".concat(LABEL_OFFSET, "px)")
102
+ },
103
+ ["& ".concat(StyledIconSlot, ":last-child")]: {
104
+ marginRight: -LABEL_OFFSET,
105
+ marginLeft: "calc($50 + ".concat(LABEL_OFFSET, "px)")
50
106
  },
51
107
  variants: {
52
108
  variant: {
53
- primary: {},
54
- secondary: {},
55
- danger: {}
56
- },
57
- appearance: {
58
- filled: {},
59
- outlined: {},
60
- flat: {}
61
- },
62
- size: {
63
- large: {
64
- padding: "14px 32px 18px 32px",
65
- fontSize: "20px",
66
- lineHeight: "28px",
67
- height: "60px"
109
+ primary: {
110
+ backgroundColor: "$background-primary-prominent",
111
+ color: "$text-primary-inverted",
112
+ [iconSlotSelector]: {
113
+ color: "$icon-primary-inverted"
114
+ },
115
+ "&[data-hovered]": {
116
+ backgroundColor: "$background-primary-prominent-hover"
117
+ },
118
+ "&[data-pressed]": {
119
+ backgroundColor: "$background-primary-prominent-active"
120
+ },
121
+ ...solidDisabled
68
122
  },
69
- medium: {
70
- padding: "11px 24px 13px 24px",
71
- fontSize: "16px",
72
- lineHeight: "24px",
73
- height: "48px"
123
+ secondary: {
124
+ backgroundColor: "$background-neutrals-subtle",
125
+ color: "$text-neutrals",
126
+ [iconSlotSelector]: {
127
+ color: "$icon-neutrals"
128
+ },
129
+ "&[data-hovered]": {
130
+ backgroundColor: "$background-neutrals-subtle-hover"
131
+ },
132
+ "&[data-pressed]": {
133
+ backgroundColor: "$background-neutrals-subtle-active"
134
+ },
135
+ ...solidDisabled
74
136
  },
75
- small: {
76
- padding: "7px 16px 9px 16px",
77
- fontSize: "14px",
78
- lineHeight: "20px",
79
- height: "36px"
137
+ tertiary: {
138
+ backgroundColor: "$background-neutrals",
139
+ borderColor: "$border-primary",
140
+ color: "$text-primary",
141
+ [iconSlotSelector]: {
142
+ color: "$icon-primary"
143
+ },
144
+ "&[data-hovered]": {
145
+ backgroundColor: "$background-primary-subtle-hover",
146
+ borderColor: "$border-primary-hover",
147
+ color: "$text-primary-hover",
148
+ [iconSlotSelector]: {
149
+ color: "$icon-primary-hover"
150
+ }
151
+ },
152
+ "&[data-pressed]": {
153
+ backgroundColor: "$background-primary-subtle-active",
154
+ borderColor: "$border-primary-active",
155
+ color: "$text-primary-active",
156
+ [iconSlotSelector]: {
157
+ color: "$icon-primary-active"
158
+ }
159
+ },
160
+ ...outlineDisabled
161
+ },
162
+ ghost: {
163
+ backgroundColor: "transparent",
164
+ color: "$text-primary",
165
+ "&[data-hovered]": {
166
+ backgroundColor: "$background-primary-subtle-hover",
167
+ color: "$text-primary-hover",
168
+ [iconSlotSelector]: {
169
+ color: "$icon-primary-hover"
170
+ }
171
+ },
172
+ "&[data-pressed]": {
173
+ backgroundColor: "$background-primary-subtle-active",
174
+ color: "$text-primary-active",
175
+ [iconSlotSelector]: {
176
+ color: "$icon-primary-active"
177
+ }
178
+ },
179
+ ...ghostDisabled
80
180
  },
81
- "x-small": {
82
- padding: "5px 12px 7px",
83
- fontSize: "14px",
84
- lineHeight: "20px",
85
- height: "32px"
181
+ "ghost-subtle": {
182
+ backgroundColor: "transparent",
183
+ color: "$text-neutrals",
184
+ [iconSlotSelector]: {
185
+ color: "$icon-neutrals"
186
+ },
187
+ "&[data-hovered]": {
188
+ backgroundColor: "$background-neutrals-subtle-hover"
189
+ },
190
+ "&[data-pressed]": {
191
+ backgroundColor: "$background-neutrals-subtle-active"
192
+ },
193
+ ...ghostDisabled
86
194
  },
87
- "xx-small": {
88
- padding: "3px 12px",
89
- fontSize: "12px",
90
- lineHeight: "18px",
91
- height: "24px"
92
- }
93
- },
94
- rounded: {
95
- true: {
96
- borderRadius: "$half"
97
- }
98
- },
99
- loading: {
100
- true: {
101
- "&[disabled]": {
102
- cursor: "default",
103
- opacity: 1,
104
- pointerEvents: "none",
105
- "& > span": {
106
- visibility: "hidden"
195
+ danger: {
196
+ backgroundColor: "$background-danger-prominent",
197
+ color: "$text-danger-inverted",
198
+ [iconSlotSelector]: {
199
+ color: "$icon-danger-inverted"
200
+ },
201
+ "&[data-hovered]": {
202
+ backgroundColor: "$background-danger-prominent-hover"
203
+ },
204
+ "&[data-pressed]": {
205
+ backgroundColor: "$background-danger-prominent-active"
206
+ },
207
+ ...solidDisabled
208
+ },
209
+ "danger-secondary": {
210
+ borderColor: "$border-danger",
211
+ color: "$text-danger",
212
+ [iconSlotSelector]: {
213
+ color: "$icon-danger"
214
+ },
215
+ "&[data-hovered]": {
216
+ backgroundColor: "$background-danger-subtle",
217
+ color: "$text-danger-hover",
218
+ [iconSlotSelector]: {
219
+ color: "$icon-danger-hover"
107
220
  }
108
- }
109
- }
110
- },
111
- fluid: {
112
- true: {
113
- width: "100%",
114
- display: "block"
115
- }
116
- }
117
- },
118
- compoundVariants: [
119
- {
120
- size: "small",
121
- rounded: true,
122
- css: {
123
- padding: "10px 16px",
124
- height: "40px"
125
- }
126
- },
127
- {
128
- size: "large",
129
- rounded: false,
130
- css: {
131
- borderRadius: "$50"
132
- }
133
- },
134
- {
135
- size: "medium",
136
- rounded: false,
137
- css: {
138
- borderRadius: "$50"
139
- }
140
- },
141
- {
142
- size: "small",
143
- rounded: false,
144
- css: {
145
- borderRadius: "$50"
146
- }
147
- },
148
- {
149
- size: "x-small",
150
- rounded: false,
151
- css: {
152
- borderRadius: "$50"
153
- }
154
- },
155
- {
156
- size: "xx-small",
157
- rounded: false,
158
- css: {
159
- borderRadius: "$25"
160
- }
161
- },
162
- {
163
- variant: "primary",
164
- appearance: "filled",
165
- css: {
166
- color: "#FFFFFF",
167
- backgroundColor: "#3859FF",
168
- ...focusFilled,
169
- "&:hover": {
170
- color: "#FFFFFF",
171
- backgroundColor: "#3F53D9"
172
221
  },
173
- [pressedSelector]: {
174
- backgroundColor: "#122277"
175
- }
176
- }
177
- },
178
- {
179
- variant: "primary",
180
- appearance: "outlined",
181
- css: {
182
- color: "rgba(66, 98, 255, 1)",
183
- border: "1px solid rgba(66, 98, 255, 1)",
184
- ...focusOutline,
185
- "&:hover": {
186
- color: "rgba(66, 98, 255, 1)",
187
- backgroundColor: "rgba(244, 246, 255, 1)"
222
+ "&[data-pressed]": {
223
+ backgroundColor: "$background-danger-subtle-hover",
224
+ color: "$text-danger-active",
225
+ [iconSlotSelector]: {
226
+ color: "$icon-danger-active"
227
+ }
188
228
  },
189
- [pressedSelector]: {
190
- backgroundColor: "rgba(240, 242, 255, 1)"
191
- }
192
- }
193
- },
194
- {
195
- variant: "primary",
196
- appearance: "flat",
197
- css: {
198
- color: "rgba(66, 98, 255, 1)",
199
- ...focusDefault,
200
- "&:hover": {
201
- color: "rgba(69, 91, 237, 1)",
202
- backgroundColor: "rgba(245, 245, 247, 1)"
229
+ ...outlineDisabled
230
+ },
231
+ "ghost-danger": {
232
+ backgroundColor: "transparent",
233
+ color: "$text-danger",
234
+ [iconSlotSelector]: {
235
+ color: "$icon-danger"
203
236
  },
204
- [pressedSelector]: {
205
- color: "rgba(61, 81, 212, 1)"
206
- }
207
- }
208
- },
209
- {
210
- variant: "secondary",
211
- appearance: "filled",
212
- css: {
213
- color: "rgba(5, 0, 56, 1)",
214
- backgroundColor: "rgba(245, 245, 247, 1)",
215
- ...focusFilled,
216
- "&:hover": {
217
- color: "rgba(5, 0, 56, 1)",
218
- backgroundColor: "rgba(240, 240, 243, 1)"
237
+ "&[data-hovered]": {
238
+ backgroundColor: "$background-danger-subtle",
239
+ color: "$text-danger-hover",
240
+ [iconSlotSelector]: {
241
+ color: "$icon-danger-hover"
242
+ }
219
243
  },
220
- [pressedSelector]: {
221
- backgroundColor: "rgba(235, 235, 239, 1)"
222
- }
223
- }
224
- },
225
- {
226
- variant: "secondary",
227
- appearance: "outlined",
228
- css: {
229
- color: "rgba(5, 0, 56, 1)",
230
- border: "1px solid rgba(205, 204, 215, 1)",
231
- ...focusOutline,
232
- "&:hover": {
233
- color: "rgba(5, 0, 56, 1)",
234
- backgroundColor: "rgba(245, 245, 247, 1)"
244
+ "&[data-pressed]": {
245
+ backgroundColor: "$background-danger-subtle-hover",
246
+ color: "$text-danger-active",
247
+ [iconSlotSelector]: {
248
+ color: "$icon-danger-active"
249
+ }
235
250
  },
236
- [pressedSelector]: {
237
- backgroundColor: "rgba(235, 235, 239, 1)"
238
- }
251
+ ...ghostDisabled
239
252
  }
240
253
  },
241
- {
242
- variant: "secondary",
243
- appearance: "flat",
244
- css: {
245
- color: "rgba(5, 0, 56, 1)",
246
- ...focusDefault,
247
- "&:hover": {
248
- color: "rgba(5, 0, 56, 1)",
249
- backgroundColor: "rgba(245, 245, 247, 1)"
254
+ size: {
255
+ "x-large": {
256
+ height: sizes.xLarge,
257
+ fontSize: "$200",
258
+ paddingX: "calc($200 + ".concat(LABEL_OFFSET, "px)"),
259
+ [externalIconSelector]: {
260
+ ...styles.size.medium,
261
+ ...styles.weight.normal
250
262
  }
251
- }
252
- },
253
- {
254
- variant: "danger",
255
- appearance: "filled",
256
- css: {
257
- color: "#FFFFFF",
258
- backgroundColor: "rgba(217, 41, 41, 1)",
259
- ...focusFilled,
260
- "&:hover": {
261
- backgroundColor: "rgba(199, 20, 20, 1)"
262
- },
263
- [pressedSelector]: {
264
- backgroundColor: "rgba(184, 13, 13, 1)"
263
+ },
264
+ large: {
265
+ height: sizes.large,
266
+ fontSize: "$200",
267
+ paddingX: "calc($150 + ".concat(LABEL_OFFSET, "px)"),
268
+ [externalIconSelector]: {
269
+ ...styles.size.medium,
270
+ ...styles.weight.normal
271
+ }
272
+ },
273
+ medium: {
274
+ height: sizes.medium,
275
+ fontSize: "$175",
276
+ paddingX: "calc($100 + ".concat(LABEL_OFFSET, "px)"),
277
+ [externalIconSelector]: {
278
+ ...styles.size.small,
279
+ ...styles.weight.thin
280
+ }
281
+ },
282
+ small: {
283
+ fontSize: "$175",
284
+ height: "$6",
285
+ paddingX: "calc($100 + ".concat(LABEL_OFFSET, "px)"),
286
+ [externalIconSelector]: {
287
+ ...styles.size.small,
288
+ ...styles.weight.thin
265
289
  }
266
290
  }
267
291
  },
268
- {
269
- variant: "danger",
270
- appearance: "outlined",
271
- css: {
272
- color: "rgba(217, 41, 41, 1)",
273
- border: "1px solid rgba(217, 41, 41, 1)",
274
- ...focusOutline,
275
- "&:hover": {
276
- color: "rgba(217, 41, 41, 1)",
277
- backgroundColor: "rgba(254, 247, 247, 1)"
278
- },
279
- [pressedSelector]: {
280
- backgroundColor: "rgba(253, 242, 242, 1)"
281
- }
292
+ rounded: {
293
+ true: {
294
+ borderRadius: "$round"
282
295
  }
283
296
  },
284
- {
285
- variant: "danger",
286
- appearance: "flat",
287
- css: {
288
- color: "rgba(217, 41, 41, 1)",
289
- ...focusDefault,
290
- "&:hover": {
291
- color: "rgba(217, 41, 41, 1)",
292
- backgroundColor: "rgba(245, 245, 247, 1)"
293
- }
297
+ fluid: {
298
+ true: {
299
+ display: "flex",
300
+ justifyContent: "center",
301
+ maxWidth: "100%",
302
+ width: "100%"
294
303
  }
295
304
  }
296
- ]
305
+ }
306
+ });
307
+ const StyledHiddenContent = styled(Primitive.span, {
308
+ visibility: "hidden"
297
309
  });
298
310
  const StyledSpinnerBox = styled(Primitive.div, {
299
311
  display: "flex",
@@ -307,97 +319,64 @@ const StyledSpinnerBox = styled(Primitive.div, {
307
319
  margin: "auto"
308
320
  });
309
321
 
322
+ const Label = Primitive.span;
323
+ Label.displayName = "Label";
324
+
310
325
  const Button = React.forwardRef(
311
326
  ({
312
327
  variant = "primary",
313
- appearance = "filled",
314
- size = "medium",
328
+ size = "large",
315
329
  loading = false,
316
330
  rounded = false,
317
331
  fluid = false,
318
- disabled = false,
319
- href,
320
- target,
321
- rel,
332
+ "aria-disabled": ariaDisabled,
333
+ asChild = false,
322
334
  children,
323
- onPress,
324
- onClick,
325
- asChild,
326
335
  ...restProps
327
336
  }, forwardRef) => {
328
- let spinnerSize;
329
- if (typeof size === "string") {
330
- spinnerSize = ["x-small", "xx-small"].includes(size) ? "small" : "medium";
331
- } else {
332
- spinnerSize = "medium";
337
+ let spinnerSize = "medium";
338
+ if (typeof size === "string" && ["small", "medium"].includes(size)) {
339
+ spinnerSize = "small";
333
340
  }
334
- const _loading = loading === "true" || loading === true;
335
- const shouldBeDisabled = disabled === true || _loading;
336
- const asLink = href != null;
337
- const ref = useRef(null);
338
- const refWithFallback = forwardRef != null ? forwardRef : ref;
339
- const { buttonProps, isPressed } = useButton(
340
- {
341
- isDisabled: shouldBeDisabled,
342
- href,
343
- onPress: onPress != null ? onPress : onClick,
344
- allowFocusWhenDisabled: false,
345
- ...restProps
346
- },
347
- // @ts-expect-error
348
- refWithFallback
349
- );
350
- const { linkProps } = useLink(
351
- {
352
- isDisabled: disabled,
353
- onPress: onPress != null ? onPress : onClick,
354
- ...restProps
355
- },
356
- // @ts-expect-error
357
- refWithFallback
358
- );
359
- const Content = /* @__PURE__ */ jsxs(Fragment, { children: [
360
- _loading && /* @__PURE__ */ jsx(StyledSpinnerBox, { children: /* @__PURE__ */ jsx(Spinner, { size: spinnerSize }) }),
361
- /* @__PURE__ */ jsx("span", { children })
362
- ] });
363
- const tabIndexProp = shouldBeDisabled && {
364
- tabIndex: -1
365
- };
366
- const { isFocusVisible, focusProps } = useFocusRing();
367
- const elementProps = mergeProps(
368
- restProps,
369
- asLink ? linkProps : buttonProps,
370
- focusProps
371
- );
372
- return /* @__PURE__ */ jsx(
341
+ const shouldHaveAriaDisabled = booleanify(ariaDisabled) || loading;
342
+ let formattedChildren = children;
343
+ if (loading) {
344
+ const spinnerTestId = process.env.NODE_ENV === "test" ? "button-spinner" : void 0;
345
+ if (asChild && React.Children.toArray(children).length === 1 && React.isValidElement(children)) {
346
+ const firstLevelChild = React.Children.only(children);
347
+ const { children: secondLevelChildren, ...childProps } = firstLevelChild.props;
348
+ formattedChildren = React.cloneElement(firstLevelChild, {
349
+ ...childProps,
350
+ children: /* @__PURE__ */ jsxs(Fragment, { children: [
351
+ /* @__PURE__ */ jsx(StyledSpinnerBox, { "data-testid": spinnerTestId, children: /* @__PURE__ */ jsx(Spinner, { size: spinnerSize }) }),
352
+ /* @__PURE__ */ jsx(StyledHiddenContent, { children: secondLevelChildren })
353
+ ] })
354
+ });
355
+ } else {
356
+ formattedChildren = /* @__PURE__ */ jsxs(Fragment, { children: [
357
+ /* @__PURE__ */ jsx(StyledSpinnerBox, { "data-testid": spinnerTestId, children: /* @__PURE__ */ jsx(Spinner, { size: spinnerSize }) }),
358
+ /* @__PURE__ */ jsx(StyledHiddenContent, { children })
359
+ ] });
360
+ }
361
+ }
362
+ return /* @__PURE__ */ jsx(ButtonProvider, { size, children: /* @__PURE__ */ jsx(
373
363
  StyledButton,
374
364
  {
375
- ...elementProps,
365
+ ...restProps,
366
+ asChild,
376
367
  variant,
377
- appearance,
378
- size,
379
- loading,
380
368
  rounded,
381
369
  fluid,
382
- disabled: shouldBeDisabled,
383
- asChild: asLink || asChild,
384
- ...tabIndexProp,
385
- "data-pressed": isPressed ? "" : void 0,
386
- "data-focused": isFocusVisible ? "" : void 0,
387
- ref: refWithFallback,
388
- children: asLink ? /* @__PURE__ */ jsx(
389
- "a",
390
- {
391
- href,
392
- target,
393
- rel: target === "_blank" ? "noopener noreferrer ".concat(rel) : rel,
394
- children: Content
395
- }
396
- ) : Content
370
+ size,
371
+ "aria-disabled": shouldHaveAriaDisabled ? true : void 0,
372
+ ref: forwardRef,
373
+ children: formattedChildren
397
374
  }
398
- );
375
+ ) });
399
376
  }
400
377
  );
378
+ Button.IconSlot = IconSlot;
379
+ Button.Label = Label;
401
380
 
402
381
  export { Button };
403
382
  //# sourceMappingURL=module.js.map