@mirohq/design-system-button 3.1.4 → 3.1.5-use-press.2
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/main.js +21 -24
- package/dist/main.js.map +1 -1
- package/dist/module.js +22 -25
- package/dist/module.js.map +1 -1
- package/dist/types.d.ts +2264 -9
- package/package.json +7 -11
package/dist/main.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
6
|
var React = require('react');
|
|
6
7
|
var designSystemSpinner = require('@mirohq/design-system-spinner');
|
|
7
8
|
var designSystemUtils = require('@mirohq/design-system-utils');
|
|
@@ -15,12 +16,7 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
|
|
|
15
16
|
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
16
17
|
|
|
17
18
|
const StyledIconSlot = designSystemStitches.styled(designSystemPrimitive.Primitive.div, {});
|
|
18
|
-
const IconSlot = React__default["default"].forwardRef(({ children, ...restProps }, forwardRef) => /* @__PURE__ */
|
|
19
|
-
...restProps,
|
|
20
|
-
ref: forwardRef,
|
|
21
|
-
"aria-hidden": true,
|
|
22
|
-
asChild: true
|
|
23
|
-
}, children));
|
|
19
|
+
const IconSlot = React__default["default"].forwardRef(({ children, ...restProps }, forwardRef) => /* @__PURE__ */ jsxRuntime.jsx(StyledIconSlot, { ...restProps, ref: forwardRef, "aria-hidden": true, asChild: true, children }));
|
|
24
20
|
|
|
25
21
|
const activeSelector = "&:active, &[data-pressed]";
|
|
26
22
|
const disabledSelector = '&[disabled], &[aria-disabled="true"]';
|
|
@@ -56,7 +52,6 @@ const ghostDisabled = {
|
|
|
56
52
|
};
|
|
57
53
|
const LABEL_OFFSET = 2;
|
|
58
54
|
const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButton, {
|
|
59
|
-
userSelect: "none",
|
|
60
55
|
whiteSpace: "nowrap",
|
|
61
56
|
textOverflow: "ellipsis",
|
|
62
57
|
textAlign: "center",
|
|
@@ -65,10 +60,7 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
|
|
|
65
60
|
maxWidth: "100%",
|
|
66
61
|
lineHeight: 1.5,
|
|
67
62
|
border: "1px solid transparent",
|
|
68
|
-
|
|
69
|
-
boxShadow: "$focus-small-outline",
|
|
70
|
-
borderColor: "$blue-500 !important"
|
|
71
|
-
},
|
|
63
|
+
// to make outline and solid/ghost variants the same width
|
|
72
64
|
[`& ${StyledIconSlot}:first-child`]: {
|
|
73
65
|
marginLeft: -LABEL_OFFSET,
|
|
74
66
|
marginRight: `calc($50 + ${LABEL_OFFSET}px)`
|
|
@@ -340,7 +332,7 @@ const Button = React__default["default"].forwardRef(
|
|
|
340
332
|
if (typeof size === "string" && ["small", "medium"].includes(size)) {
|
|
341
333
|
spinnerSize = "small";
|
|
342
334
|
}
|
|
343
|
-
const shouldHaveAriaDisabled = ariaDisabled
|
|
335
|
+
const shouldHaveAriaDisabled = designSystemUtils.booleanify(ariaDisabled) || loading;
|
|
344
336
|
const formattedChildren = React__default["default"].Children.map(
|
|
345
337
|
React__default["default"].Children.toArray(children),
|
|
346
338
|
(child) => {
|
|
@@ -359,18 +351,23 @@ const Button = React__default["default"].forwardRef(
|
|
|
359
351
|
return child;
|
|
360
352
|
}
|
|
361
353
|
);
|
|
362
|
-
const Content = loading ? /* @__PURE__ */
|
|
363
|
-
size: spinnerSize
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
354
|
+
const Content = loading ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
355
|
+
/* @__PURE__ */ jsxRuntime.jsx(StyledSpinnerBox, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystemSpinner.Spinner, { size: spinnerSize }) }),
|
|
356
|
+
/* @__PURE__ */ jsxRuntime.jsx(StyledHiddenContent, { children: formattedChildren })
|
|
357
|
+
] }) : formattedChildren;
|
|
358
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
359
|
+
StyledButton,
|
|
360
|
+
{
|
|
361
|
+
...restProps,
|
|
362
|
+
variant,
|
|
363
|
+
rounded,
|
|
364
|
+
fluid,
|
|
365
|
+
size,
|
|
366
|
+
"aria-disabled": shouldHaveAriaDisabled ? true : void 0,
|
|
367
|
+
ref: forwardRef,
|
|
368
|
+
children: Content
|
|
369
|
+
}
|
|
370
|
+
);
|
|
374
371
|
}
|
|
375
372
|
);
|
|
376
373
|
Button.IconSlot = IconSlot;
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sources":["../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\n\nexport interface IconSlotProps extends StyledIconSlotProps {\n /**\n * The icon.\n */\n children: React.ReactNode\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {children}\n </StyledIconSlot>\n))\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport type { ComponentPropsWithRef } from 'react'\nimport type { CSS } from '@mirohq/design-system-stitches'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\nconst activeSelector = '&:active, &[data-pressed]'\nconst disabledSelector = '&[disabled], &[aria-disabled=\"true\"]'\n\n// we might face className collision because of empty CSS in StyledIconSlot\n// https://github.com/stitchesjs/stitches/issues/976\nconst iconSlotSelector = `& ${StyledIconSlot}`\nconst externalIconSelector =\n '& svg:not([data-icon-component]), & img:not([data-icon-component])'\n\nconst solidDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-neutrals-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst LABEL_OFFSET = 2\n\nexport const StyledButton = styled(BaseButton, {\n userSelect: 'none',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'center',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1.5,\n border: '1px solid transparent', // to make outline and solid/ghost variants the same width\n\n '&[data-focused]': {\n boxShadow: '$focus-small-outline',\n borderColor: '$blue-500 !important',\n },\n\n [`& ${StyledIconSlot}:first-child`]: {\n marginLeft: -LABEL_OFFSET,\n marginRight: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n [`& ${StyledIconSlot}:last-child`]: {\n marginRight: -LABEL_OFFSET,\n marginLeft: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n\n variants: {\n variant: {\n 'solid-prominent': {\n backgroundColor: '$background-primary-prominent',\n color: '$text-primary-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-primary-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-prominent-active',\n },\n\n ...solidDisabled,\n },\n 'outline-prominent': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-primary',\n color: '$text-primary',\n\n [iconSlotSelector]: {\n color: '$icon-primary',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n borderColor: '$border-primary-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n borderColor: '$border-primary-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...ghostDisabled,\n },\n 'solid-subtle': {\n backgroundColor: '$background-neutrals-subtle',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...solidDisabled,\n },\n\n 'outline-subtle': {\n backgroundColor: '$background-neutrals',\n border: '1px solid $border-neutrals',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n },\n ...outlineDisabled,\n },\n 'ghost-subtle': {\n backgroundColor: 'transparent',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...ghostDisabled,\n },\n 'solid-danger': {\n backgroundColor: '$background-danger-prominent',\n color: '$text-danger-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-danger-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-prominent-active',\n },\n ...solidDisabled,\n },\n 'outline-danger': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-danger',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-danger': {\n backgroundColor: 'transparent',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...ghostDisabled,\n },\n },\n size: {\n 'x-large': {\n height: sizes.xLarge,\n fontSize: '$200',\n paddingX: `calc($200 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n large: {\n height: sizes.large,\n fontSize: '$200',\n paddingX: `calc($150 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n medium: {\n height: sizes.medium,\n fontSize: '$175',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$half',\n },\n },\n fluid: {\n true: {\n display: 'flex',\n justifyContent: 'center',\n maxWidth: '100%',\n width: '100%',\n },\n },\n },\n})\n\nexport const StyledHiddenContent = styled(Primitive.span, {\n visibility: 'hidden',\n})\n\nexport const StyledSpinnerBox = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n margin: 'auto',\n})\n\nexport type StyledButtonProps = ComponentPropsWithRef<typeof StyledButton>\n","import { Primitive } from '@mirohq/design-system-primitive'\n\nexport const Label = Primitive.span\n\nLabel.displayName = 'Label'\n","import React from 'react'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\ntype ButtonSize = ExtractValidKeys<StyledButtonProps['size']>\n\nconst buttonIconSizes: { [key in ButtonSize]: IconSizes } = {\n small: 'small',\n medium: 'small',\n large: 'medium',\n 'x-large': 'medium',\n}\n\nconst buttonIconWeights: { [key in ButtonSize]: IconWeights } = {\n small: 'thin',\n medium: 'thin',\n large: 'normal',\n 'x-large': 'normal',\n}\n\nexport interface ButtonProps extends StyledButtonProps {\n /**\n * Change the button style.\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n */\n fluid?: StyledButtonProps['fluid']\n}\n\nexport const Button = React.forwardRef<\n ElementRef<typeof StyledButton>,\n ButtonProps\n>(\n (\n {\n variant = 'solid-prominent',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n let spinnerSize: SpinnerProps['size'] = 'medium'\n\n if (typeof size === 'string' && ['small', 'medium'].includes(size)) {\n spinnerSize = 'small'\n }\n\n const shouldHaveAriaDisabled =\n ariaDisabled === 'true' || ariaDisabled === true || loading\n\n const formattedChildren = React.Children.map(\n React.Children.toArray(children),\n child => {\n if (React.isValidElement(child) && child.type === IconSlot) {\n const iconSlotChildren = addPropsToChildren(\n child.props.children,\n innerChild => isIconComponent(innerChild),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n weight: buttonIconWeights[size as ButtonSize],\n }\n )\n\n return React.cloneElement(child, { ...child.props }, iconSlotChildren)\n }\n return child\n }\n )\n\n const Content = loading ? (\n <>\n <StyledSpinnerBox>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{formattedChildren}</StyledHiddenContent>\n </>\n ) : (\n formattedChildren\n )\n\n return (\n <StyledButton\n {...restProps}\n variant={variant}\n rounded={rounded}\n fluid={fluid}\n size={size}\n // without undefined it will be aria-disabled=\"false\" in html\n aria-disabled={shouldHaveAriaDisabled ? true : undefined}\n ref={forwardRef}\n >\n {Content}\n </StyledButton>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n IconSlot: typeof IconSlot\n Label: typeof Label\n}\n\nButton.IconSlot = IconSlot\nButton.Label = Label\n"],"names":["styled","Primitive","React","BaseButton","sizes","baseIconStyles","addPropsToChildren","isIconComponent","Spinner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sources":["../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\n\nexport interface IconSlotProps extends StyledIconSlotProps {\n /**\n * The icon.\n */\n children: React.ReactNode\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {children}\n </StyledIconSlot>\n))\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport type { ComponentPropsWithRef } from 'react'\nimport type { CSS } from '@mirohq/design-system-stitches'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\nconst activeSelector = '&:active, &[data-pressed]'\nconst disabledSelector = '&[disabled], &[aria-disabled=\"true\"]'\n\n// we might face className collision because of empty CSS in StyledIconSlot\n// https://github.com/stitchesjs/stitches/issues/976\nconst iconSlotSelector = `& ${StyledIconSlot}`\nconst externalIconSelector =\n '& svg:not([data-icon-component]), & img:not([data-icon-component])'\n\nconst solidDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-neutrals-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst LABEL_OFFSET = 2\n\nexport const StyledButton = styled(BaseButton, {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'center',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1.5,\n border: '1px solid transparent', // to make outline and solid/ghost variants the same width\n\n [`& ${StyledIconSlot}:first-child`]: {\n marginLeft: -LABEL_OFFSET,\n marginRight: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n [`& ${StyledIconSlot}:last-child`]: {\n marginRight: -LABEL_OFFSET,\n marginLeft: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n\n variants: {\n variant: {\n 'solid-prominent': {\n backgroundColor: '$background-primary-prominent',\n color: '$text-primary-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-primary-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-prominent-active',\n },\n\n ...solidDisabled,\n },\n 'outline-prominent': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-primary',\n color: '$text-primary',\n\n [iconSlotSelector]: {\n color: '$icon-primary',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n borderColor: '$border-primary-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n borderColor: '$border-primary-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...ghostDisabled,\n },\n 'solid-subtle': {\n backgroundColor: '$background-neutrals-subtle',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...solidDisabled,\n },\n\n 'outline-subtle': {\n backgroundColor: '$background-neutrals',\n border: '1px solid $border-neutrals',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n },\n ...outlineDisabled,\n },\n 'ghost-subtle': {\n backgroundColor: 'transparent',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...ghostDisabled,\n },\n 'solid-danger': {\n backgroundColor: '$background-danger-prominent',\n color: '$text-danger-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-danger-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-prominent-active',\n },\n ...solidDisabled,\n },\n 'outline-danger': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-danger',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-danger': {\n backgroundColor: 'transparent',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...ghostDisabled,\n },\n },\n size: {\n 'x-large': {\n height: sizes.xLarge,\n fontSize: '$200',\n paddingX: `calc($200 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n large: {\n height: sizes.large,\n fontSize: '$200',\n paddingX: `calc($150 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n medium: {\n height: sizes.medium,\n fontSize: '$175',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$half',\n },\n },\n fluid: {\n true: {\n display: 'flex',\n justifyContent: 'center',\n maxWidth: '100%',\n width: '100%',\n },\n },\n },\n})\n\nexport const StyledHiddenContent = styled(Primitive.span, {\n visibility: 'hidden',\n})\n\nexport const StyledSpinnerBox = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n margin: 'auto',\n})\n\nexport type StyledButtonProps = ComponentPropsWithRef<typeof StyledButton>\n","import { Primitive } from '@mirohq/design-system-primitive'\n\nexport const Label = Primitive.span\n\nLabel.displayName = 'Label'\n","import React from 'react'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { addPropsToChildren, booleanify } from '@mirohq/design-system-utils'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\ntype ButtonSize = ExtractValidKeys<StyledButtonProps['size']>\n\nconst buttonIconSizes: { [key in ButtonSize]: IconSizes } = {\n small: 'small',\n medium: 'small',\n large: 'medium',\n 'x-large': 'medium',\n}\n\nconst buttonIconWeights: { [key in ButtonSize]: IconWeights } = {\n small: 'thin',\n medium: 'thin',\n large: 'normal',\n 'x-large': 'normal',\n}\n\nexport type ButtonProps = {\n /**\n * Change the button style.\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n */\n fluid?: StyledButtonProps['fluid']\n} & BaseButtonProps\n\nexport const Button = React.forwardRef<ElementRef<'button' | 'a'>, ButtonProps>(\n (\n {\n variant = 'solid-prominent',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n let spinnerSize: SpinnerProps['size'] = 'medium'\n\n if (typeof size === 'string' && ['small', 'medium'].includes(size)) {\n spinnerSize = 'small'\n }\n\n const shouldHaveAriaDisabled = booleanify(ariaDisabled) || loading\n\n const formattedChildren = React.Children.map(\n React.Children.toArray(children),\n child => {\n if (React.isValidElement(child) && child.type === IconSlot) {\n const iconSlotChildren = addPropsToChildren(\n child.props.children,\n innerChild => isIconComponent(innerChild),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n weight: buttonIconWeights[size as ButtonSize],\n }\n )\n\n return React.cloneElement(child, { ...child.props }, iconSlotChildren)\n }\n return child\n }\n )\n\n const Content = loading ? (\n <>\n <StyledSpinnerBox>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{formattedChildren}</StyledHiddenContent>\n </>\n ) : (\n formattedChildren\n )\n\n return (\n <StyledButton\n {...restProps}\n variant={variant}\n rounded={rounded}\n fluid={fluid}\n size={size}\n // without undefined it will be aria-disabled=\"false\" in html\n aria-disabled={shouldHaveAriaDisabled ? true : undefined}\n ref={forwardRef}\n >\n {Content}\n </StyledButton>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n IconSlot: typeof IconSlot\n Label: typeof Label\n}\n\nButton.IconSlot = IconSlot\nButton.Label = Label\n"],"names":["styled","Primitive","React","BaseButton","sizes","baseIconStyles","booleanify","addPropsToChildren","isIconComponent","jsxs","Fragment","jsx","Spinner"],"mappings":"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"}
|
package/dist/module.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import { Spinner } from '@mirohq/design-system-spinner';
|
|
3
|
-
import { addPropsToChildren } from '@mirohq/design-system-utils';
|
|
4
|
+
import { booleanify, addPropsToChildren } from '@mirohq/design-system-utils';
|
|
4
5
|
import { styles, isIconComponent } from '@mirohq/design-system-base-icon';
|
|
5
6
|
import { Primitive } from '@mirohq/design-system-primitive';
|
|
6
7
|
import { styled } from '@mirohq/design-system-stitches';
|
|
7
8
|
import { BaseButton, sizes } from '@mirohq/design-system-base-button';
|
|
8
9
|
|
|
9
10
|
const StyledIconSlot = styled(Primitive.div, {});
|
|
10
|
-
const IconSlot = React.forwardRef(({ children, ...restProps }, forwardRef) => /* @__PURE__ */
|
|
11
|
-
...restProps,
|
|
12
|
-
ref: forwardRef,
|
|
13
|
-
"aria-hidden": true,
|
|
14
|
-
asChild: true
|
|
15
|
-
}, children));
|
|
11
|
+
const IconSlot = React.forwardRef(({ children, ...restProps }, forwardRef) => /* @__PURE__ */ jsx(StyledIconSlot, { ...restProps, ref: forwardRef, "aria-hidden": true, asChild: true, children }));
|
|
16
12
|
|
|
17
13
|
const activeSelector = "&:active, &[data-pressed]";
|
|
18
14
|
const disabledSelector = '&[disabled], &[aria-disabled="true"]';
|
|
@@ -48,7 +44,6 @@ const ghostDisabled = {
|
|
|
48
44
|
};
|
|
49
45
|
const LABEL_OFFSET = 2;
|
|
50
46
|
const StyledButton = styled(BaseButton, {
|
|
51
|
-
userSelect: "none",
|
|
52
47
|
whiteSpace: "nowrap",
|
|
53
48
|
textOverflow: "ellipsis",
|
|
54
49
|
textAlign: "center",
|
|
@@ -57,10 +52,7 @@ const StyledButton = styled(BaseButton, {
|
|
|
57
52
|
maxWidth: "100%",
|
|
58
53
|
lineHeight: 1.5,
|
|
59
54
|
border: "1px solid transparent",
|
|
60
|
-
|
|
61
|
-
boxShadow: "$focus-small-outline",
|
|
62
|
-
borderColor: "$blue-500 !important"
|
|
63
|
-
},
|
|
55
|
+
// to make outline and solid/ghost variants the same width
|
|
64
56
|
[`& ${StyledIconSlot}:first-child`]: {
|
|
65
57
|
marginLeft: -LABEL_OFFSET,
|
|
66
58
|
marginRight: `calc($50 + ${LABEL_OFFSET}px)`
|
|
@@ -332,7 +324,7 @@ const Button = React.forwardRef(
|
|
|
332
324
|
if (typeof size === "string" && ["small", "medium"].includes(size)) {
|
|
333
325
|
spinnerSize = "small";
|
|
334
326
|
}
|
|
335
|
-
const shouldHaveAriaDisabled = ariaDisabled
|
|
327
|
+
const shouldHaveAriaDisabled = booleanify(ariaDisabled) || loading;
|
|
336
328
|
const formattedChildren = React.Children.map(
|
|
337
329
|
React.Children.toArray(children),
|
|
338
330
|
(child) => {
|
|
@@ -351,18 +343,23 @@ const Button = React.forwardRef(
|
|
|
351
343
|
return child;
|
|
352
344
|
}
|
|
353
345
|
);
|
|
354
|
-
const Content = loading ? /* @__PURE__ */
|
|
355
|
-
size: spinnerSize
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
346
|
+
const Content = loading ? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
347
|
+
/* @__PURE__ */ jsx(StyledSpinnerBox, { children: /* @__PURE__ */ jsx(Spinner, { size: spinnerSize }) }),
|
|
348
|
+
/* @__PURE__ */ jsx(StyledHiddenContent, { children: formattedChildren })
|
|
349
|
+
] }) : formattedChildren;
|
|
350
|
+
return /* @__PURE__ */ jsx(
|
|
351
|
+
StyledButton,
|
|
352
|
+
{
|
|
353
|
+
...restProps,
|
|
354
|
+
variant,
|
|
355
|
+
rounded,
|
|
356
|
+
fluid,
|
|
357
|
+
size,
|
|
358
|
+
"aria-disabled": shouldHaveAriaDisabled ? true : void 0,
|
|
359
|
+
ref: forwardRef,
|
|
360
|
+
children: Content
|
|
361
|
+
}
|
|
362
|
+
);
|
|
366
363
|
}
|
|
367
364
|
);
|
|
368
365
|
Button.IconSlot = IconSlot;
|
package/dist/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sources":["../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\n\nexport interface IconSlotProps extends StyledIconSlotProps {\n /**\n * The icon.\n */\n children: React.ReactNode\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {children}\n </StyledIconSlot>\n))\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport type { ComponentPropsWithRef } from 'react'\nimport type { CSS } from '@mirohq/design-system-stitches'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\nconst activeSelector = '&:active, &[data-pressed]'\nconst disabledSelector = '&[disabled], &[aria-disabled=\"true\"]'\n\n// we might face className collision because of empty CSS in StyledIconSlot\n// https://github.com/stitchesjs/stitches/issues/976\nconst iconSlotSelector = `& ${StyledIconSlot}`\nconst externalIconSelector =\n '& svg:not([data-icon-component]), & img:not([data-icon-component])'\n\nconst solidDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-neutrals-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst LABEL_OFFSET = 2\n\nexport const StyledButton = styled(BaseButton, {\n userSelect: 'none',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'center',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1.5,\n border: '1px solid transparent', // to make outline and solid/ghost variants the same width\n\n '&[data-focused]': {\n boxShadow: '$focus-small-outline',\n borderColor: '$blue-500 !important',\n },\n\n [`& ${StyledIconSlot}:first-child`]: {\n marginLeft: -LABEL_OFFSET,\n marginRight: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n [`& ${StyledIconSlot}:last-child`]: {\n marginRight: -LABEL_OFFSET,\n marginLeft: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n\n variants: {\n variant: {\n 'solid-prominent': {\n backgroundColor: '$background-primary-prominent',\n color: '$text-primary-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-primary-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-prominent-active',\n },\n\n ...solidDisabled,\n },\n 'outline-prominent': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-primary',\n color: '$text-primary',\n\n [iconSlotSelector]: {\n color: '$icon-primary',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n borderColor: '$border-primary-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n borderColor: '$border-primary-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...ghostDisabled,\n },\n 'solid-subtle': {\n backgroundColor: '$background-neutrals-subtle',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...solidDisabled,\n },\n\n 'outline-subtle': {\n backgroundColor: '$background-neutrals',\n border: '1px solid $border-neutrals',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n },\n ...outlineDisabled,\n },\n 'ghost-subtle': {\n backgroundColor: 'transparent',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...ghostDisabled,\n },\n 'solid-danger': {\n backgroundColor: '$background-danger-prominent',\n color: '$text-danger-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-danger-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-prominent-active',\n },\n ...solidDisabled,\n },\n 'outline-danger': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-danger',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-danger': {\n backgroundColor: 'transparent',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...ghostDisabled,\n },\n },\n size: {\n 'x-large': {\n height: sizes.xLarge,\n fontSize: '$200',\n paddingX: `calc($200 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n large: {\n height: sizes.large,\n fontSize: '$200',\n paddingX: `calc($150 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n medium: {\n height: sizes.medium,\n fontSize: '$175',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$half',\n },\n },\n fluid: {\n true: {\n display: 'flex',\n justifyContent: 'center',\n maxWidth: '100%',\n width: '100%',\n },\n },\n },\n})\n\nexport const StyledHiddenContent = styled(Primitive.span, {\n visibility: 'hidden',\n})\n\nexport const StyledSpinnerBox = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n margin: 'auto',\n})\n\nexport type StyledButtonProps = ComponentPropsWithRef<typeof StyledButton>\n","import { Primitive } from '@mirohq/design-system-primitive'\n\nexport const Label = Primitive.span\n\nLabel.displayName = 'Label'\n","import React from 'react'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\ntype ButtonSize = ExtractValidKeys<StyledButtonProps['size']>\n\nconst buttonIconSizes: { [key in ButtonSize]: IconSizes } = {\n small: 'small',\n medium: 'small',\n large: 'medium',\n 'x-large': 'medium',\n}\n\nconst buttonIconWeights: { [key in ButtonSize]: IconWeights } = {\n small: 'thin',\n medium: 'thin',\n large: 'normal',\n 'x-large': 'normal',\n}\n\nexport interface ButtonProps extends StyledButtonProps {\n /**\n * Change the button style.\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n */\n fluid?: StyledButtonProps['fluid']\n}\n\nexport const Button = React.forwardRef<\n ElementRef<typeof StyledButton>,\n ButtonProps\n>(\n (\n {\n variant = 'solid-prominent',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n let spinnerSize: SpinnerProps['size'] = 'medium'\n\n if (typeof size === 'string' && ['small', 'medium'].includes(size)) {\n spinnerSize = 'small'\n }\n\n const shouldHaveAriaDisabled =\n ariaDisabled === 'true' || ariaDisabled === true || loading\n\n const formattedChildren = React.Children.map(\n React.Children.toArray(children),\n child => {\n if (React.isValidElement(child) && child.type === IconSlot) {\n const iconSlotChildren = addPropsToChildren(\n child.props.children,\n innerChild => isIconComponent(innerChild),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n weight: buttonIconWeights[size as ButtonSize],\n }\n )\n\n return React.cloneElement(child, { ...child.props }, iconSlotChildren)\n }\n return child\n }\n )\n\n const Content = loading ? (\n <>\n <StyledSpinnerBox>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{formattedChildren}</StyledHiddenContent>\n </>\n ) : (\n formattedChildren\n )\n\n return (\n <StyledButton\n {...restProps}\n variant={variant}\n rounded={rounded}\n fluid={fluid}\n size={size}\n // without undefined it will be aria-disabled=\"false\" in html\n aria-disabled={shouldHaveAriaDisabled ? true : undefined}\n ref={forwardRef}\n >\n {Content}\n </StyledButton>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n IconSlot: typeof IconSlot\n Label: typeof Label\n}\n\nButton.IconSlot = IconSlot\nButton.Label = Label\n"],"names":["baseIconStyles"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"module.js","sources":["../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\n\nexport interface IconSlotProps extends StyledIconSlotProps {\n /**\n * The icon.\n */\n children: React.ReactNode\n}\n\nexport const IconSlot = React.forwardRef<\n ElementRef<typeof StyledIconSlot>,\n IconSlotProps\n>(({ children, ...restProps }, forwardRef) => (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {children}\n </StyledIconSlot>\n))\n","import { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport type { ComponentPropsWithRef } from 'react'\nimport type { CSS } from '@mirohq/design-system-stitches'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\nconst activeSelector = '&:active, &[data-pressed]'\nconst disabledSelector = '&[disabled], &[aria-disabled=\"true\"]'\n\n// we might face className collision because of empty CSS in StyledIconSlot\n// https://github.com/stitchesjs/stitches/issues/976\nconst iconSlotSelector = `& ${StyledIconSlot}`\nconst externalIconSelector =\n '& svg:not([data-icon-component]), & img:not([data-icon-component])'\n\nconst solidDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-neutrals-disabled',\n color: '$text-neutrals-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-neutrals-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-disabled',\n },\n },\n}\n\nconst LABEL_OFFSET = 2\n\nexport const StyledButton = styled(BaseButton, {\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n textAlign: 'center',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1.5,\n border: '1px solid transparent', // to make outline and solid/ghost variants the same width\n\n [`& ${StyledIconSlot}:first-child`]: {\n marginLeft: -LABEL_OFFSET,\n marginRight: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n [`& ${StyledIconSlot}:last-child`]: {\n marginRight: -LABEL_OFFSET,\n marginLeft: `calc($50 + ${LABEL_OFFSET}px)`,\n },\n\n variants: {\n variant: {\n 'solid-prominent': {\n backgroundColor: '$background-primary-prominent',\n color: '$text-primary-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-primary-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-prominent-active',\n },\n\n ...solidDisabled,\n },\n 'outline-prominent': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-primary',\n color: '$text-primary',\n\n [iconSlotSelector]: {\n color: '$icon-primary',\n },\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n borderColor: '$border-primary-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n borderColor: '$border-primary-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n '&:hover': {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-primary-subtle-active',\n color: '$text-primary-active',\n\n [iconSlotSelector]: {\n color: '$icon-primary-active',\n },\n },\n ...ghostDisabled,\n },\n 'solid-subtle': {\n backgroundColor: '$background-neutrals-subtle',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...solidDisabled,\n },\n\n 'outline-subtle': {\n backgroundColor: '$background-neutrals',\n border: '1px solid $border-neutrals',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n },\n ...outlineDisabled,\n },\n 'ghost-subtle': {\n backgroundColor: 'transparent',\n color: '$text-neutrals',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals',\n },\n\n '&:hover': {\n backgroundColor: '$background-neutrals-subtle-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-neutrals-subtle-active',\n },\n ...ghostDisabled,\n },\n 'solid-danger': {\n backgroundColor: '$background-danger-prominent',\n color: '$text-danger-inverted',\n\n [iconSlotSelector]: {\n color: '$icon-danger-inverted',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger-prominent-hover',\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-prominent-active',\n },\n ...solidDisabled,\n },\n 'outline-danger': {\n backgroundColor: '$background-neutrals',\n borderColor: '$border-danger',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-danger': {\n backgroundColor: 'transparent',\n color: '$text-danger',\n\n [iconSlotSelector]: {\n color: '$icon-danger',\n },\n\n '&:hover': {\n backgroundColor: '$background-danger',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n [activeSelector]: {\n backgroundColor: '$background-danger-hover',\n color: '$text-danger-active',\n\n [iconSlotSelector]: {\n color: '$icon-danger-active',\n },\n },\n ...ghostDisabled,\n },\n },\n size: {\n 'x-large': {\n height: sizes.xLarge,\n fontSize: '$200',\n paddingX: `calc($200 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n large: {\n height: sizes.large,\n fontSize: '$200',\n paddingX: `calc($150 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.medium,\n ...baseIconStyles.weight.normal,\n },\n },\n medium: {\n height: sizes.medium,\n fontSize: '$175',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n ...baseIconStyles.weight.thin,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$half',\n },\n },\n fluid: {\n true: {\n display: 'flex',\n justifyContent: 'center',\n maxWidth: '100%',\n width: '100%',\n },\n },\n },\n})\n\nexport const StyledHiddenContent = styled(Primitive.span, {\n visibility: 'hidden',\n})\n\nexport const StyledSpinnerBox = styled(Primitive.div, {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n margin: 'auto',\n})\n\nexport type StyledButtonProps = ComponentPropsWithRef<typeof StyledButton>\n","import { Primitive } from '@mirohq/design-system-primitive'\n\nexport const Label = Primitive.span\n\nLabel.displayName = 'Label'\n","import React from 'react'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport { addPropsToChildren, booleanify } from '@mirohq/design-system-utils'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { IconSizes, IconWeights } from '@mirohq/design-system-base-icon'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\nimport type { BaseButtonProps } from '@mirohq/design-system-base-button'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\ntype ButtonSize = ExtractValidKeys<StyledButtonProps['size']>\n\nconst buttonIconSizes: { [key in ButtonSize]: IconSizes } = {\n small: 'small',\n medium: 'small',\n large: 'medium',\n 'x-large': 'medium',\n}\n\nconst buttonIconWeights: { [key in ButtonSize]: IconWeights } = {\n small: 'thin',\n medium: 'thin',\n large: 'normal',\n 'x-large': 'normal',\n}\n\nexport type ButtonProps = {\n /**\n * Change the button style.\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n */\n fluid?: StyledButtonProps['fluid']\n} & BaseButtonProps\n\nexport const Button = React.forwardRef<ElementRef<'button' | 'a'>, ButtonProps>(\n (\n {\n variant = 'solid-prominent',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n children,\n ...restProps\n },\n forwardRef\n ) => {\n let spinnerSize: SpinnerProps['size'] = 'medium'\n\n if (typeof size === 'string' && ['small', 'medium'].includes(size)) {\n spinnerSize = 'small'\n }\n\n const shouldHaveAriaDisabled = booleanify(ariaDisabled) || loading\n\n const formattedChildren = React.Children.map(\n React.Children.toArray(children),\n child => {\n if (React.isValidElement(child) && child.type === IconSlot) {\n const iconSlotChildren = addPropsToChildren(\n child.props.children,\n innerChild => isIconComponent(innerChild),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n weight: buttonIconWeights[size as ButtonSize],\n }\n )\n\n return React.cloneElement(child, { ...child.props }, iconSlotChildren)\n }\n return child\n }\n )\n\n const Content = loading ? (\n <>\n <StyledSpinnerBox>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{formattedChildren}</StyledHiddenContent>\n </>\n ) : (\n formattedChildren\n )\n\n return (\n <StyledButton\n {...restProps}\n variant={variant}\n rounded={rounded}\n fluid={fluid}\n size={size}\n // without undefined it will be aria-disabled=\"false\" in html\n aria-disabled={shouldHaveAriaDisabled ? true : undefined}\n ref={forwardRef}\n >\n {Content}\n </StyledButton>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\ninterface Partials {\n IconSlot: typeof IconSlot\n Label: typeof Label\n}\n\nButton.IconSlot = IconSlot\nButton.Label = Label\n"],"names":["baseIconStyles"],"mappings":"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"}
|