@mirohq/design-system-button 5.3.5 → 5.3.6

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 CHANGED
@@ -105,13 +105,20 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
105
105
  backgroundColor: "$button-background-primary",
106
106
  color: "$button-text-on-primary",
107
107
  "&[data-pressed]": {
108
- backgroundColor: "$button-background-primary-pressed"
108
+ backgroundColor: "$button-background-primary-pressed",
109
+ [iconSlotSelector]: {
110
+ color: "$button-icon-on-primary"
111
+ }
109
112
  },
110
113
  [iconSlotSelector]: {
111
114
  color: "$button-icon-on-primary"
112
115
  },
113
- "&[data-hovered]": {
114
- backgroundColor: "$button-background-primary-hover"
116
+ _hover: {
117
+ backgroundColor: "$button-background-primary-hover",
118
+ color: "$button-text-on-primary",
119
+ [iconSlotSelector]: {
120
+ color: "$button-icon-on-primary"
121
+ }
115
122
  },
116
123
  ...solidDisabled
117
124
  },
@@ -121,7 +128,7 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
121
128
  [iconSlotSelector]: {
122
129
  color: "$button-icon-on-tertiary"
123
130
  },
124
- "&[data-hovered]": {
131
+ _hover: {
125
132
  backgroundColor: "$button-background-tertiary-hover",
126
133
  borderColor: "$button-border-tertiary-hover",
127
134
  color: "$button-text-on-tertiary",
@@ -142,7 +149,10 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
142
149
  "ghost-prominent": {
143
150
  backgroundColor: "transparent",
144
151
  color: "$text-primary",
145
- "&[data-hovered]": {
152
+ [iconSlotSelector]: {
153
+ color: "$icon-primary"
154
+ },
155
+ _hover: {
146
156
  backgroundColor: "$background-primary-subtle-hover",
147
157
  color: "$text-primary-hover",
148
158
  [iconSlotSelector]: {
@@ -162,15 +172,21 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
162
172
  color: "$button-text-on-secondary",
163
173
  backgroundColor: "$button-background-secondary",
164
174
  borderColor: "$button-border-secondary",
165
- "&[data-hovered]": {
175
+ _hover: {
166
176
  color: "$button-text-on-secondary",
167
177
  backgroundColor: "$button-background-secondary-hover",
168
- borderColor: "$button-border-secondary-hover"
178
+ borderColor: "$button-border-secondary-hover",
179
+ [iconSlotSelector]: {
180
+ color: "$button-icon-on-secondary"
181
+ }
169
182
  },
170
183
  "&[data-pressed]": {
171
184
  color: "$button-text-on-secondary",
172
185
  backgroundColor: "$button-background-secondary-pressed",
173
- borderColor: "$button-border-secondary-pressed"
186
+ borderColor: "$button-border-secondary-pressed",
187
+ [iconSlotSelector]: {
188
+ color: "$button-icon-on-secondary"
189
+ }
174
190
  },
175
191
  [iconSlotSelector]: {
176
192
  color: "$button-icon-on-secondary"
@@ -184,13 +200,21 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
184
200
  [iconSlotSelector]: {
185
201
  color: "$icon-neutrals"
186
202
  },
187
- "&[data-hovered]": {
203
+ _hover: {
204
+ color: "$text-neutrals",
188
205
  backgroundColor: "$background-neutrals-subtle-hover",
189
- borderColor: "$border-neutrals-hover"
206
+ borderColor: "$border-neutrals-hover",
207
+ [iconSlotSelector]: {
208
+ color: "$icon-neutrals-hover"
209
+ }
190
210
  },
191
211
  "&[data-pressed]": {
212
+ color: "$text-neutrals",
192
213
  backgroundColor: "$background-neutrals-subtle-active",
193
- borderColor: "$border-neutrals-active"
214
+ borderColor: "$border-neutrals-active",
215
+ [iconSlotSelector]: {
216
+ color: "$icon-neutrals-pressed"
217
+ }
194
218
  },
195
219
  ...outlineDisabled
196
220
  },
@@ -199,13 +223,19 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
199
223
  [iconSlotSelector]: {
200
224
  color: "$icon-default"
201
225
  },
202
- "&[data-hovered]": {
226
+ _hover: {
203
227
  backgroundColor: "$button-background-ghost-hover",
204
- color: "$text-default"
228
+ color: "$text-default",
229
+ [iconSlotSelector]: {
230
+ color: "$icon-default"
231
+ }
205
232
  },
206
233
  "&[data-pressed]": {
207
234
  backgroundColor: "$button-background-ghost-pressed",
208
- color: "$text-default"
235
+ color: "$text-default",
236
+ [iconSlotSelector]: {
237
+ color: "$icon-default"
238
+ }
209
239
  },
210
240
  ...ghostDisabled
211
241
  },
@@ -215,11 +245,17 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
215
245
  [iconSlotSelector]: {
216
246
  color: "$button-icon-on-primary"
217
247
  },
218
- "&[data-hovered]": {
219
- backgroundColor: "$background-interactive-primary-hover"
248
+ _hover: {
249
+ backgroundColor: "$background-interactive-primary-hover",
250
+ [iconSlotSelector]: {
251
+ color: "$button-icon-on-primary"
252
+ }
220
253
  },
221
254
  "&[data-pressed]": {
222
- backgroundColor: "$background-interactive-primary-pressed"
255
+ backgroundColor: "$background-interactive-primary-pressed",
256
+ [iconSlotSelector]: {
257
+ color: "$button-icon-on-primary"
258
+ }
223
259
  },
224
260
  ...solidDisabled
225
261
  },
@@ -229,11 +265,17 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
229
265
  [iconSlotSelector]: {
230
266
  color: "$button-icon-on-danger"
231
267
  },
232
- "&[data-hovered]": {
233
- backgroundColor: "$button-background-danger-hover"
268
+ _hover: {
269
+ backgroundColor: "$button-background-danger-hover",
270
+ [iconSlotSelector]: {
271
+ color: "$button-icon-on-danger"
272
+ }
234
273
  },
235
274
  "&[data-pressed]": {
236
- backgroundColor: "$button-background-danger-pressed"
275
+ backgroundColor: "$button-background-danger-pressed",
276
+ [iconSlotSelector]: {
277
+ color: "$button-icon-on-danger"
278
+ }
237
279
  },
238
280
  ...solidDisabled
239
281
  },
@@ -243,7 +285,8 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
243
285
  [iconSlotSelector]: {
244
286
  color: "$status-icon-error"
245
287
  },
246
- "&[data-hovered]": {
288
+ _hover: {
289
+ color: "$status-text-error",
247
290
  borderColor: "$button-border-danger-hover",
248
291
  backgroundColor: "$background-danger-subtle-hover",
249
292
  [iconSlotSelector]: {
@@ -265,7 +308,7 @@ const StyledButton = designSystemStitches.styled(designSystemBaseButton.BaseButt
265
308
  [iconSlotSelector]: {
266
309
  color: "$icon-danger"
267
310
  },
268
- "&[data-hovered]": {
311
+ _hover: {
269
312
  backgroundColor: "$background-danger-subtle",
270
313
  color: "$text-danger-hover",
271
314
  [iconSlotSelector]: {
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sources":["../src/hooks/use-button-context.tsx","../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { StyledButtonProps } from '../button.styled'\n\ninterface ButtonProps {\n size?: StyledButtonProps['size']\n}\n\ninterface ButtonContextProps extends ButtonProps {}\n\nexport interface ButtonProviderProps extends ButtonProps {\n children: React.ReactNode\n}\n\nconst ButtonContext = createContext<ButtonContextProps>({} as any)\n\nexport const ButtonProvider = ({\n children,\n ...restProps\n}: ButtonProviderProps): JSX.Element => (\n <ButtonContext.Provider\n value={{\n ...restProps,\n }}\n >\n {children}\n </ButtonContext.Provider>\n)\n\nexport const useButtonContext = (): ButtonContextProps =>\n useContext(ButtonContext)\n","import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport type {\n IconReactElement,\n IconSizes,\n} from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\n\nimport { useButtonContext } from '../hooks/use-button-context'\nimport type { StyledButtonProps } from '../button.styled'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\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\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 const { size } = useButtonContext()\n\n const formattedChildren = addPropsToChildren(\n children,\n child => isIconComponent(child as IconReactElement),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n }\n )\n\n return (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {formattedChildren}\n </StyledIconSlot>\n )\n})\n","import { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\nimport type { ComponentPropsWithRef } from 'react'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\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-disabled',\n color: '$text-on-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-on-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$transparent',\n borderColor: '$border-disabled',\n color: '$text-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-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 fontWeight: '$semibold',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1,\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 ...focus.css({\n boxShadow: '$focus',\n }),\n\n variants: {\n variant: {\n primary: {\n backgroundColor: '$button-background-primary',\n color: '$button-text-on-primary',\n '&[data-pressed]': {\n backgroundColor: '$button-background-primary-pressed',\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-primary-hover',\n },\n\n ...solidDisabled,\n },\n tertiary: {\n color: '$button-text-on-tertiary',\n border: '1px solid $button-border-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-tertiary-hover',\n borderColor: '$button-border-tertiary-hover',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-tertiary-pressed',\n borderColor: '$button-border-tertiary-pressed',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n '&[data-hovered]': {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n '&[data-pressed]': {\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 secondary: {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary',\n borderColor: '$button-border-secondary',\n '&[data-hovered]': {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-hover',\n borderColor: '$button-border-secondary-hover',\n },\n '&[data-pressed]': {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-pressed',\n borderColor: '$button-border-secondary-pressed',\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n\n ...solidDisabled,\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 '&[data-hovered]': {\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n },\n '&[data-pressed]': {\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n },\n ...outlineDisabled,\n },\n ghost: {\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-ghost-hover',\n color: '$text-default',\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-ghost-pressed',\n color: '$text-default',\n },\n\n ...ghostDisabled,\n },\n accent: {\n backgroundColor: '$background-interactive-primary',\n color: '$button-text-on-primary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$background-interactive-primary-hover',\n },\n '&[data-pressed]': {\n backgroundColor: '$background-interactive-primary-pressed',\n },\n\n ...solidDisabled,\n },\n danger: {\n backgroundColor: '$button-background-danger',\n color: '$button-text-on-danger',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-danger-hover',\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-danger-pressed',\n },\n ...solidDisabled,\n },\n 'danger-secondary': {\n borderColor: '$button-border-danger',\n color: '$status-text-error',\n\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n\n '&[data-hovered]': {\n borderColor: '$button-border-danger-hover',\n backgroundColor: '$background-danger-subtle-hover',\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n },\n '&[data-pressed]': {\n borderColor: '$button-border-danger-pressed',\n backgroundColor: '$background-danger-subtle-pressed',\n [iconSlotSelector]: {\n color: '$status-icon-error',\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 '&[data-hovered]': {\n backgroundColor: '$background-danger-subtle',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$background-danger-subtle-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 },\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 },\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 },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$round',\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 type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport React from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { ButtonProvider } from './hooks/use-button-context'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\nexport type ButtonProps = BaseButtonProps & {\n /**\n * Change the button style.\n * @default 'primary'\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n * @default 'large'\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n * @default false\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n * @default false\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n * @default false\n */\n fluid?: StyledButtonProps['fluid']\n}\n\nexport const Button = React.forwardRef<ElementRef<'button' | 'a'>, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n asChild = false,\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 let formattedChildren = children\n\n if (loading) {\n const spinnerTestId =\n process.env.NODE_ENV === 'test' ? 'button-spinner' : undefined\n\n if (\n asChild &&\n React.Children.toArray(children).length === 1 &&\n React.isValidElement(children)\n ) {\n // when using asChild we need to render element to merge props with first,\n // and spinner wrapper should be rendered between the element and its content\n const firstLevelChild = React.Children.only(children)\n\n const { children: secondLevelChildren, ...childProps } =\n firstLevelChild.props\n\n formattedChildren = React.cloneElement(firstLevelChild, {\n ...childProps,\n children: (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{secondLevelChildren}</StyledHiddenContent>\n </>\n ),\n })\n } else {\n formattedChildren = (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{children}</StyledHiddenContent>\n </>\n )\n }\n }\n\n return (\n <ButtonProvider size={size}>\n <StyledButton\n {...restProps}\n asChild={asChild}\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 {formattedChildren}\n </StyledButton>\n </ButtonProvider>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\nexport interface Partials {\n IconSlot: typeof IconSlot\n Label: typeof Label\n}\n\nButton.IconSlot = IconSlot\nButton.Label = Label\n"],"names":["createContext","jsx","useContext","styled","Primitive","addPropsToChildren","isIconComponent","BaseButton","focus","sizes","baseIconStyles","booleanify","jsxs","Fragment","Spinner"],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sources":["../src/hooks/use-button-context.tsx","../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { StyledButtonProps } from '../button.styled'\n\ninterface ButtonProps {\n size?: StyledButtonProps['size']\n}\n\ninterface ButtonContextProps extends ButtonProps {}\n\nexport interface ButtonProviderProps extends ButtonProps {\n children: React.ReactNode\n}\n\nconst ButtonContext = createContext<ButtonContextProps>({} as any)\n\nexport const ButtonProvider = ({\n children,\n ...restProps\n}: ButtonProviderProps): JSX.Element => (\n <ButtonContext.Provider\n value={{\n ...restProps,\n }}\n >\n {children}\n </ButtonContext.Provider>\n)\n\nexport const useButtonContext = (): ButtonContextProps =>\n useContext(ButtonContext)\n","import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport type {\n IconReactElement,\n IconSizes,\n} from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\n\nimport { useButtonContext } from '../hooks/use-button-context'\nimport type { StyledButtonProps } from '../button.styled'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\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\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 const { size } = useButtonContext()\n\n const formattedChildren = addPropsToChildren(\n children,\n child => isIconComponent(child as IconReactElement),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n }\n )\n\n return (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {formattedChildren}\n </StyledIconSlot>\n )\n})\n","import { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\nimport type { ComponentPropsWithRef } from 'react'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\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-disabled',\n color: '$text-on-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-on-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$transparent',\n borderColor: '$border-disabled',\n color: '$text-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-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 fontWeight: '$semibold',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1,\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 ...focus.css({\n boxShadow: '$focus',\n }),\n\n variants: {\n variant: {\n primary: {\n backgroundColor: '$button-background-primary',\n color: '$button-text-on-primary',\n '&[data-pressed]': {\n backgroundColor: '$button-background-primary-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n _hover: {\n backgroundColor: '$button-background-primary-hover',\n color: '$button-text-on-primary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n\n ...solidDisabled,\n },\n tertiary: {\n color: '$button-text-on-tertiary',\n border: '1px solid $button-border-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n\n _hover: {\n backgroundColor: '$button-background-tertiary-hover',\n borderColor: '$button-border-tertiary-hover',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-tertiary-pressed',\n borderColor: '$button-border-tertiary-pressed',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n [iconSlotSelector]: {\n color: '$icon-primary',\n },\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 '&[data-pressed]': {\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 secondary: {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary',\n borderColor: '$button-border-secondary',\n _hover: {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-hover',\n borderColor: '$button-border-secondary-hover',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n },\n '&[data-pressed]': {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-pressed',\n borderColor: '$button-border-secondary-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n\n ...solidDisabled,\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 color: '$text-neutrals',\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-hover',\n },\n },\n '&[data-pressed]': {\n color: '$text-neutrals',\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-pressed',\n },\n },\n ...outlineDisabled,\n },\n ghost: {\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n\n _hover: {\n backgroundColor: '$button-background-ghost-hover',\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-ghost-pressed',\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n },\n\n ...ghostDisabled,\n },\n accent: {\n backgroundColor: '$background-interactive-primary',\n color: '$button-text-on-primary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n _hover: {\n backgroundColor: '$background-interactive-primary-hover',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$background-interactive-primary-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n\n ...solidDisabled,\n },\n danger: {\n backgroundColor: '$button-background-danger',\n color: '$button-text-on-danger',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n\n _hover: {\n backgroundColor: '$button-background-danger-hover',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-danger-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n },\n ...solidDisabled,\n },\n 'danger-secondary': {\n borderColor: '$button-border-danger',\n color: '$status-text-error',\n\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n\n _hover: {\n color: '$status-text-error',\n borderColor: '$button-border-danger-hover',\n backgroundColor: '$background-danger-subtle-hover',\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n },\n '&[data-pressed]': {\n borderColor: '$button-border-danger-pressed',\n backgroundColor: '$background-danger-subtle-pressed',\n [iconSlotSelector]: {\n color: '$status-icon-error',\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-subtle',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$background-danger-subtle-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 },\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 },\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 },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$round',\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 type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport React from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { ButtonProvider } from './hooks/use-button-context'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\nexport type ButtonProps = BaseButtonProps & {\n /**\n * Change the button style.\n * @default 'primary'\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n * @default 'large'\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n * @default false\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n * @default false\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n * @default false\n */\n fluid?: StyledButtonProps['fluid']\n}\n\nexport const Button = React.forwardRef<ElementRef<'button' | 'a'>, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n asChild = false,\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 let formattedChildren = children\n\n if (loading) {\n const spinnerTestId =\n process.env.NODE_ENV === 'test' ? 'button-spinner' : undefined\n\n if (\n asChild &&\n React.Children.toArray(children).length === 1 &&\n React.isValidElement(children)\n ) {\n // when using asChild we need to render element to merge props with first,\n // and spinner wrapper should be rendered between the element and its content\n const firstLevelChild = React.Children.only(children)\n\n const { children: secondLevelChildren, ...childProps } =\n firstLevelChild.props\n\n formattedChildren = React.cloneElement(firstLevelChild, {\n ...childProps,\n children: (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{secondLevelChildren}</StyledHiddenContent>\n </>\n ),\n })\n } else {\n formattedChildren = (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{children}</StyledHiddenContent>\n </>\n )\n }\n }\n\n return (\n <ButtonProvider size={size}>\n <StyledButton\n {...restProps}\n asChild={asChild}\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 {formattedChildren}\n </StyledButton>\n </ButtonProvider>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\nexport interface Partials {\n IconSlot: typeof IconSlot\n Label: typeof Label\n}\n\nButton.IconSlot = IconSlot\nButton.Label = Label\n"],"names":["createContext","jsx","useContext","styled","Primitive","addPropsToChildren","isIconComponent","BaseButton","focus","sizes","baseIconStyles","booleanify","jsxs","Fragment","Spinner"],"mappings":"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"}
package/dist/module.js CHANGED
@@ -103,13 +103,20 @@ const StyledButton = styled(BaseButton, {
103
103
  backgroundColor: "$button-background-primary",
104
104
  color: "$button-text-on-primary",
105
105
  "&[data-pressed]": {
106
- backgroundColor: "$button-background-primary-pressed"
106
+ backgroundColor: "$button-background-primary-pressed",
107
+ [iconSlotSelector]: {
108
+ color: "$button-icon-on-primary"
109
+ }
107
110
  },
108
111
  [iconSlotSelector]: {
109
112
  color: "$button-icon-on-primary"
110
113
  },
111
- "&[data-hovered]": {
112
- backgroundColor: "$button-background-primary-hover"
114
+ _hover: {
115
+ backgroundColor: "$button-background-primary-hover",
116
+ color: "$button-text-on-primary",
117
+ [iconSlotSelector]: {
118
+ color: "$button-icon-on-primary"
119
+ }
113
120
  },
114
121
  ...solidDisabled
115
122
  },
@@ -119,7 +126,7 @@ const StyledButton = styled(BaseButton, {
119
126
  [iconSlotSelector]: {
120
127
  color: "$button-icon-on-tertiary"
121
128
  },
122
- "&[data-hovered]": {
129
+ _hover: {
123
130
  backgroundColor: "$button-background-tertiary-hover",
124
131
  borderColor: "$button-border-tertiary-hover",
125
132
  color: "$button-text-on-tertiary",
@@ -140,7 +147,10 @@ const StyledButton = styled(BaseButton, {
140
147
  "ghost-prominent": {
141
148
  backgroundColor: "transparent",
142
149
  color: "$text-primary",
143
- "&[data-hovered]": {
150
+ [iconSlotSelector]: {
151
+ color: "$icon-primary"
152
+ },
153
+ _hover: {
144
154
  backgroundColor: "$background-primary-subtle-hover",
145
155
  color: "$text-primary-hover",
146
156
  [iconSlotSelector]: {
@@ -160,15 +170,21 @@ const StyledButton = styled(BaseButton, {
160
170
  color: "$button-text-on-secondary",
161
171
  backgroundColor: "$button-background-secondary",
162
172
  borderColor: "$button-border-secondary",
163
- "&[data-hovered]": {
173
+ _hover: {
164
174
  color: "$button-text-on-secondary",
165
175
  backgroundColor: "$button-background-secondary-hover",
166
- borderColor: "$button-border-secondary-hover"
176
+ borderColor: "$button-border-secondary-hover",
177
+ [iconSlotSelector]: {
178
+ color: "$button-icon-on-secondary"
179
+ }
167
180
  },
168
181
  "&[data-pressed]": {
169
182
  color: "$button-text-on-secondary",
170
183
  backgroundColor: "$button-background-secondary-pressed",
171
- borderColor: "$button-border-secondary-pressed"
184
+ borderColor: "$button-border-secondary-pressed",
185
+ [iconSlotSelector]: {
186
+ color: "$button-icon-on-secondary"
187
+ }
172
188
  },
173
189
  [iconSlotSelector]: {
174
190
  color: "$button-icon-on-secondary"
@@ -182,13 +198,21 @@ const StyledButton = styled(BaseButton, {
182
198
  [iconSlotSelector]: {
183
199
  color: "$icon-neutrals"
184
200
  },
185
- "&[data-hovered]": {
201
+ _hover: {
202
+ color: "$text-neutrals",
186
203
  backgroundColor: "$background-neutrals-subtle-hover",
187
- borderColor: "$border-neutrals-hover"
204
+ borderColor: "$border-neutrals-hover",
205
+ [iconSlotSelector]: {
206
+ color: "$icon-neutrals-hover"
207
+ }
188
208
  },
189
209
  "&[data-pressed]": {
210
+ color: "$text-neutrals",
190
211
  backgroundColor: "$background-neutrals-subtle-active",
191
- borderColor: "$border-neutrals-active"
212
+ borderColor: "$border-neutrals-active",
213
+ [iconSlotSelector]: {
214
+ color: "$icon-neutrals-pressed"
215
+ }
192
216
  },
193
217
  ...outlineDisabled
194
218
  },
@@ -197,13 +221,19 @@ const StyledButton = styled(BaseButton, {
197
221
  [iconSlotSelector]: {
198
222
  color: "$icon-default"
199
223
  },
200
- "&[data-hovered]": {
224
+ _hover: {
201
225
  backgroundColor: "$button-background-ghost-hover",
202
- color: "$text-default"
226
+ color: "$text-default",
227
+ [iconSlotSelector]: {
228
+ color: "$icon-default"
229
+ }
203
230
  },
204
231
  "&[data-pressed]": {
205
232
  backgroundColor: "$button-background-ghost-pressed",
206
- color: "$text-default"
233
+ color: "$text-default",
234
+ [iconSlotSelector]: {
235
+ color: "$icon-default"
236
+ }
207
237
  },
208
238
  ...ghostDisabled
209
239
  },
@@ -213,11 +243,17 @@ const StyledButton = styled(BaseButton, {
213
243
  [iconSlotSelector]: {
214
244
  color: "$button-icon-on-primary"
215
245
  },
216
- "&[data-hovered]": {
217
- backgroundColor: "$background-interactive-primary-hover"
246
+ _hover: {
247
+ backgroundColor: "$background-interactive-primary-hover",
248
+ [iconSlotSelector]: {
249
+ color: "$button-icon-on-primary"
250
+ }
218
251
  },
219
252
  "&[data-pressed]": {
220
- backgroundColor: "$background-interactive-primary-pressed"
253
+ backgroundColor: "$background-interactive-primary-pressed",
254
+ [iconSlotSelector]: {
255
+ color: "$button-icon-on-primary"
256
+ }
221
257
  },
222
258
  ...solidDisabled
223
259
  },
@@ -227,11 +263,17 @@ const StyledButton = styled(BaseButton, {
227
263
  [iconSlotSelector]: {
228
264
  color: "$button-icon-on-danger"
229
265
  },
230
- "&[data-hovered]": {
231
- backgroundColor: "$button-background-danger-hover"
266
+ _hover: {
267
+ backgroundColor: "$button-background-danger-hover",
268
+ [iconSlotSelector]: {
269
+ color: "$button-icon-on-danger"
270
+ }
232
271
  },
233
272
  "&[data-pressed]": {
234
- backgroundColor: "$button-background-danger-pressed"
273
+ backgroundColor: "$button-background-danger-pressed",
274
+ [iconSlotSelector]: {
275
+ color: "$button-icon-on-danger"
276
+ }
235
277
  },
236
278
  ...solidDisabled
237
279
  },
@@ -241,7 +283,8 @@ const StyledButton = styled(BaseButton, {
241
283
  [iconSlotSelector]: {
242
284
  color: "$status-icon-error"
243
285
  },
244
- "&[data-hovered]": {
286
+ _hover: {
287
+ color: "$status-text-error",
245
288
  borderColor: "$button-border-danger-hover",
246
289
  backgroundColor: "$background-danger-subtle-hover",
247
290
  [iconSlotSelector]: {
@@ -263,7 +306,7 @@ const StyledButton = styled(BaseButton, {
263
306
  [iconSlotSelector]: {
264
307
  color: "$icon-danger"
265
308
  },
266
- "&[data-hovered]": {
309
+ _hover: {
267
310
  backgroundColor: "$background-danger-subtle",
268
311
  color: "$text-danger-hover",
269
312
  [iconSlotSelector]: {
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sources":["../src/hooks/use-button-context.tsx","../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { StyledButtonProps } from '../button.styled'\n\ninterface ButtonProps {\n size?: StyledButtonProps['size']\n}\n\ninterface ButtonContextProps extends ButtonProps {}\n\nexport interface ButtonProviderProps extends ButtonProps {\n children: React.ReactNode\n}\n\nconst ButtonContext = createContext<ButtonContextProps>({} as any)\n\nexport const ButtonProvider = ({\n children,\n ...restProps\n}: ButtonProviderProps): JSX.Element => (\n <ButtonContext.Provider\n value={{\n ...restProps,\n }}\n >\n {children}\n </ButtonContext.Provider>\n)\n\nexport const useButtonContext = (): ButtonContextProps =>\n useContext(ButtonContext)\n","import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport type {\n IconReactElement,\n IconSizes,\n} from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\n\nimport { useButtonContext } from '../hooks/use-button-context'\nimport type { StyledButtonProps } from '../button.styled'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\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\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 const { size } = useButtonContext()\n\n const formattedChildren = addPropsToChildren(\n children,\n child => isIconComponent(child as IconReactElement),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n }\n )\n\n return (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {formattedChildren}\n </StyledIconSlot>\n )\n})\n","import { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\nimport type { ComponentPropsWithRef } from 'react'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\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-disabled',\n color: '$text-on-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-on-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$transparent',\n borderColor: '$border-disabled',\n color: '$text-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-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 fontWeight: '$semibold',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1,\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 ...focus.css({\n boxShadow: '$focus',\n }),\n\n variants: {\n variant: {\n primary: {\n backgroundColor: '$button-background-primary',\n color: '$button-text-on-primary',\n '&[data-pressed]': {\n backgroundColor: '$button-background-primary-pressed',\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-primary-hover',\n },\n\n ...solidDisabled,\n },\n tertiary: {\n color: '$button-text-on-tertiary',\n border: '1px solid $button-border-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-tertiary-hover',\n borderColor: '$button-border-tertiary-hover',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-tertiary-pressed',\n borderColor: '$button-border-tertiary-pressed',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n '&[data-hovered]': {\n backgroundColor: '$background-primary-subtle-hover',\n color: '$text-primary-hover',\n\n [iconSlotSelector]: {\n color: '$icon-primary-hover',\n },\n },\n '&[data-pressed]': {\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 secondary: {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary',\n borderColor: '$button-border-secondary',\n '&[data-hovered]': {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-hover',\n borderColor: '$button-border-secondary-hover',\n },\n '&[data-pressed]': {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-pressed',\n borderColor: '$button-border-secondary-pressed',\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n\n ...solidDisabled,\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 '&[data-hovered]': {\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n },\n '&[data-pressed]': {\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n },\n ...outlineDisabled,\n },\n ghost: {\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-ghost-hover',\n color: '$text-default',\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-ghost-pressed',\n color: '$text-default',\n },\n\n ...ghostDisabled,\n },\n accent: {\n backgroundColor: '$background-interactive-primary',\n color: '$button-text-on-primary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$background-interactive-primary-hover',\n },\n '&[data-pressed]': {\n backgroundColor: '$background-interactive-primary-pressed',\n },\n\n ...solidDisabled,\n },\n danger: {\n backgroundColor: '$button-background-danger',\n color: '$button-text-on-danger',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n\n '&[data-hovered]': {\n backgroundColor: '$button-background-danger-hover',\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-danger-pressed',\n },\n ...solidDisabled,\n },\n 'danger-secondary': {\n borderColor: '$button-border-danger',\n color: '$status-text-error',\n\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n\n '&[data-hovered]': {\n borderColor: '$button-border-danger-hover',\n backgroundColor: '$background-danger-subtle-hover',\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n },\n '&[data-pressed]': {\n borderColor: '$button-border-danger-pressed',\n backgroundColor: '$background-danger-subtle-pressed',\n [iconSlotSelector]: {\n color: '$status-icon-error',\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 '&[data-hovered]': {\n backgroundColor: '$background-danger-subtle',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$background-danger-subtle-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 },\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 },\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 },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$round',\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 type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport React from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { ButtonProvider } from './hooks/use-button-context'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\nexport type ButtonProps = BaseButtonProps & {\n /**\n * Change the button style.\n * @default 'primary'\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n * @default 'large'\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n * @default false\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n * @default false\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n * @default false\n */\n fluid?: StyledButtonProps['fluid']\n}\n\nexport const Button = React.forwardRef<ElementRef<'button' | 'a'>, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n asChild = false,\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 let formattedChildren = children\n\n if (loading) {\n const spinnerTestId =\n process.env.NODE_ENV === 'test' ? 'button-spinner' : undefined\n\n if (\n asChild &&\n React.Children.toArray(children).length === 1 &&\n React.isValidElement(children)\n ) {\n // when using asChild we need to render element to merge props with first,\n // and spinner wrapper should be rendered between the element and its content\n const firstLevelChild = React.Children.only(children)\n\n const { children: secondLevelChildren, ...childProps } =\n firstLevelChild.props\n\n formattedChildren = React.cloneElement(firstLevelChild, {\n ...childProps,\n children: (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{secondLevelChildren}</StyledHiddenContent>\n </>\n ),\n })\n } else {\n formattedChildren = (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{children}</StyledHiddenContent>\n </>\n )\n }\n }\n\n return (\n <ButtonProvider size={size}>\n <StyledButton\n {...restProps}\n asChild={asChild}\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 {formattedChildren}\n </StyledButton>\n </ButtonProvider>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\nexport interface 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/hooks/use-button-context.tsx","../src/partials/icon-slot.tsx","../src/button.styled.ts","../src/partials/label.ts","../src/button.tsx"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { StyledButtonProps } from '../button.styled'\n\ninterface ButtonProps {\n size?: StyledButtonProps['size']\n}\n\ninterface ButtonContextProps extends ButtonProps {}\n\nexport interface ButtonProviderProps extends ButtonProps {\n children: React.ReactNode\n}\n\nconst ButtonContext = createContext<ButtonContextProps>({} as any)\n\nexport const ButtonProvider = ({\n children,\n ...restProps\n}: ButtonProviderProps): JSX.Element => (\n <ButtonContext.Provider\n value={{\n ...restProps,\n }}\n >\n {children}\n </ButtonContext.Provider>\n)\n\nexport const useButtonContext = (): ButtonContextProps =>\n useContext(ButtonContext)\n","import React from 'react'\nimport { styled } from '@mirohq/design-system-stitches'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport type { ElementRef, ComponentPropsWithRef } from 'react'\nimport { addPropsToChildren } from '@mirohq/design-system-utils'\nimport type {\n IconReactElement,\n IconSizes,\n} from '@mirohq/design-system-base-icon'\nimport { isIconComponent } from '@mirohq/design-system-base-icon'\nimport type { ExtractValidKeys } from '@mirohq/design-system-types'\n\nimport { useButtonContext } from '../hooks/use-button-context'\nimport type { StyledButtonProps } from '../button.styled'\n\nexport const StyledIconSlot = styled(Primitive.div, {})\nexport type StyledIconSlotProps = ComponentPropsWithRef<typeof StyledIconSlot>\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\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 const { size } = useButtonContext()\n\n const formattedChildren = addPropsToChildren(\n children,\n child => isIconComponent(child as IconReactElement),\n {\n 'data-icon-component': '',\n size: buttonIconSizes[size as ButtonSize],\n }\n )\n\n return (\n <StyledIconSlot {...restProps} ref={forwardRef} aria-hidden asChild>\n {formattedChildren}\n </StyledIconSlot>\n )\n})\n","import { BaseButton, sizes } from '@mirohq/design-system-base-button'\nimport { styles as baseIconStyles } from '@mirohq/design-system-base-icon'\nimport { Primitive } from '@mirohq/design-system-primitive'\nimport { styled } from '@mirohq/design-system-stitches'\nimport type { CSS } from '@mirohq/design-system-stitches'\nimport { focus } from '@mirohq/design-system-styles'\nimport type { ComponentPropsWithRef } from 'react'\n\nimport { StyledIconSlot } from './partials/icon-slot'\n\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-disabled',\n color: '$text-on-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-on-disabled',\n },\n },\n}\n\nconst outlineDisabled: CSS = {\n [disabledSelector]: {\n backgroundColor: '$transparent',\n borderColor: '$border-disabled',\n color: '$text-disabled',\n\n [iconSlotSelector]: {\n color: '$icon-disabled',\n },\n },\n}\n\nconst ghostDisabled: CSS = {\n [disabledSelector]: {\n color: '$text-disabled',\n backgroundColor: '$transparent',\n\n [iconSlotSelector]: {\n color: '$icon-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 fontWeight: '$semibold',\n position: 'relative',\n width: 'fit-content',\n maxWidth: '100%',\n\n lineHeight: 1,\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 ...focus.css({\n boxShadow: '$focus',\n }),\n\n variants: {\n variant: {\n primary: {\n backgroundColor: '$button-background-primary',\n color: '$button-text-on-primary',\n '&[data-pressed]': {\n backgroundColor: '$button-background-primary-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n _hover: {\n backgroundColor: '$button-background-primary-hover',\n color: '$button-text-on-primary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n\n ...solidDisabled,\n },\n tertiary: {\n color: '$button-text-on-tertiary',\n border: '1px solid $button-border-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n\n _hover: {\n backgroundColor: '$button-background-tertiary-hover',\n borderColor: '$button-border-tertiary-hover',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-tertiary-pressed',\n borderColor: '$button-border-tertiary-pressed',\n color: '$button-text-on-tertiary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-tertiary',\n },\n },\n ...outlineDisabled,\n },\n 'ghost-prominent': {\n backgroundColor: 'transparent',\n color: '$text-primary',\n\n [iconSlotSelector]: {\n color: '$icon-primary',\n },\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 '&[data-pressed]': {\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 secondary: {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary',\n borderColor: '$button-border-secondary',\n _hover: {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-hover',\n borderColor: '$button-border-secondary-hover',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n },\n '&[data-pressed]': {\n color: '$button-text-on-secondary',\n backgroundColor: '$button-background-secondary-pressed',\n borderColor: '$button-border-secondary-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n },\n\n [iconSlotSelector]: {\n color: '$button-icon-on-secondary',\n },\n\n ...solidDisabled,\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 color: '$text-neutrals',\n backgroundColor: '$background-neutrals-subtle-hover',\n borderColor: '$border-neutrals-hover',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-hover',\n },\n },\n '&[data-pressed]': {\n color: '$text-neutrals',\n backgroundColor: '$background-neutrals-subtle-active',\n borderColor: '$border-neutrals-active',\n\n [iconSlotSelector]: {\n color: '$icon-neutrals-pressed',\n },\n },\n ...outlineDisabled,\n },\n ghost: {\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n\n _hover: {\n backgroundColor: '$button-background-ghost-hover',\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-ghost-pressed',\n color: '$text-default',\n\n [iconSlotSelector]: {\n color: '$icon-default',\n },\n },\n\n ...ghostDisabled,\n },\n accent: {\n backgroundColor: '$background-interactive-primary',\n color: '$button-text-on-primary',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n\n _hover: {\n backgroundColor: '$background-interactive-primary-hover',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$background-interactive-primary-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-primary',\n },\n },\n\n ...solidDisabled,\n },\n danger: {\n backgroundColor: '$button-background-danger',\n color: '$button-text-on-danger',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n\n _hover: {\n backgroundColor: '$button-background-danger-hover',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$button-background-danger-pressed',\n\n [iconSlotSelector]: {\n color: '$button-icon-on-danger',\n },\n },\n ...solidDisabled,\n },\n 'danger-secondary': {\n borderColor: '$button-border-danger',\n color: '$status-text-error',\n\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n\n _hover: {\n color: '$status-text-error',\n borderColor: '$button-border-danger-hover',\n backgroundColor: '$background-danger-subtle-hover',\n [iconSlotSelector]: {\n color: '$status-icon-error',\n },\n },\n '&[data-pressed]': {\n borderColor: '$button-border-danger-pressed',\n backgroundColor: '$background-danger-subtle-pressed',\n [iconSlotSelector]: {\n color: '$status-icon-error',\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-subtle',\n color: '$text-danger-hover',\n\n [iconSlotSelector]: {\n color: '$icon-danger-hover',\n },\n },\n '&[data-pressed]': {\n backgroundColor: '$background-danger-subtle-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 },\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 },\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 },\n },\n small: {\n fontSize: '$175',\n height: '$6',\n paddingX: `calc($100 + ${LABEL_OFFSET}px)`,\n\n [externalIconSelector]: {\n ...baseIconStyles.size.small,\n },\n },\n },\n rounded: {\n true: {\n borderRadius: '$round',\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 type { BaseButtonProps } from '@mirohq/design-system-base-button'\nimport { Spinner } from '@mirohq/design-system-spinner'\nimport type { SpinnerProps } from '@mirohq/design-system-spinner'\nimport { booleanify } from '@mirohq/design-system-utils'\nimport React from 'react'\nimport type { ElementRef, ForwardRefExoticComponent } from 'react'\n\nimport type { StyledButtonProps } from './button.styled'\nimport {\n StyledButton,\n StyledHiddenContent,\n StyledSpinnerBox,\n} from './button.styled'\nimport { ButtonProvider } from './hooks/use-button-context'\nimport { IconSlot } from './partials/icon-slot'\nimport { Label } from './partials/label'\n\nexport type ButtonProps = BaseButtonProps & {\n /**\n * Change the button style.\n * @default 'primary'\n */\n variant?: StyledButtonProps['variant']\n\n /**\n * Change the button size.\n * @default 'large'\n */\n size?: StyledButtonProps['size']\n\n /**\n * Make button border rounded.\n * @default false\n */\n rounded?: StyledButtonProps['rounded']\n\n /**\n * Add spinner and disable.\n * @default false\n */\n loading?: boolean\n\n /**\n * Make width 100%.\n * @default false\n */\n fluid?: StyledButtonProps['fluid']\n}\n\nexport const Button = React.forwardRef<ElementRef<'button' | 'a'>, ButtonProps>(\n (\n {\n variant = 'primary',\n size = 'large',\n loading = false,\n rounded = false,\n fluid = false,\n 'aria-disabled': ariaDisabled,\n asChild = false,\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 let formattedChildren = children\n\n if (loading) {\n const spinnerTestId =\n process.env.NODE_ENV === 'test' ? 'button-spinner' : undefined\n\n if (\n asChild &&\n React.Children.toArray(children).length === 1 &&\n React.isValidElement(children)\n ) {\n // when using asChild we need to render element to merge props with first,\n // and spinner wrapper should be rendered between the element and its content\n const firstLevelChild = React.Children.only(children)\n\n const { children: secondLevelChildren, ...childProps } =\n firstLevelChild.props\n\n formattedChildren = React.cloneElement(firstLevelChild, {\n ...childProps,\n children: (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{secondLevelChildren}</StyledHiddenContent>\n </>\n ),\n })\n } else {\n formattedChildren = (\n <>\n <StyledSpinnerBox data-testid={spinnerTestId}>\n <Spinner size={spinnerSize} />\n </StyledSpinnerBox>\n <StyledHiddenContent>{children}</StyledHiddenContent>\n </>\n )\n }\n }\n\n return (\n <ButtonProvider size={size}>\n <StyledButton\n {...restProps}\n asChild={asChild}\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 {formattedChildren}\n </StyledButton>\n </ButtonProvider>\n )\n }\n) as ForwardRefExoticComponent<ButtonProps> & Partials\n\n// Partials\n// -----------------------------------------------------------------------------\n\nexport interface 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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mirohq/design-system-button",
3
- "version": "5.3.5",
3
+ "version": "5.3.6",
4
4
  "description": "",
5
5
  "author": "Miro",
6
6
  "source": "src/index.ts",
@@ -26,9 +26,9 @@
26
26
  "react": "^16.14 || ^17 || ^18 || ^19"
27
27
  },
28
28
  "dependencies": {
29
- "@mirohq/design-system-base-button": "^1.2.29",
30
29
  "@mirohq/design-system-base-icon": "^1.2.1",
31
30
  "@mirohq/design-system-primitive": "^2.2.1",
31
+ "@mirohq/design-system-base-button": "^1.2.29",
32
32
  "@mirohq/design-system-spinner": "^2.2.27",
33
33
  "@mirohq/design-system-stitches": "^3.3.25",
34
34
  "@mirohq/design-system-styles": "^3.2.25",