@semcore/button 17.0.0-prerelease.29 → 17.0.0-prerelease.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/component/AbstractButton/AbstractButton.js +15 -3
  3. package/lib/cjs/component/AbstractButton/AbstractButton.js.map +1 -1
  4. package/lib/cjs/component/AbstractButton/AbstractButton.type.js.map +1 -1
  5. package/lib/cjs/component/Button/Button.js +5 -6
  6. package/lib/cjs/component/Button/Button.js.map +1 -1
  7. package/lib/cjs/component/Button/Button.type.js.map +1 -1
  8. package/lib/cjs/component/ButtonLink/ButtonLink.js +24 -25
  9. package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
  10. package/lib/cjs/component/ButtonLink/ButtonLink.type.js.map +1 -1
  11. package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +3 -3
  12. package/lib/es6/component/AbstractButton/AbstractButton.js +15 -3
  13. package/lib/es6/component/AbstractButton/AbstractButton.js.map +1 -1
  14. package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +1 -1
  15. package/lib/es6/component/Button/Button.js +5 -6
  16. package/lib/es6/component/Button/Button.js.map +1 -1
  17. package/lib/es6/component/Button/Button.type.js.map +1 -1
  18. package/lib/es6/component/ButtonLink/ButtonLink.js +24 -25
  19. package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
  20. package/lib/es6/component/ButtonLink/ButtonLink.type.js.map +1 -1
  21. package/lib/es6/component/ButtonLink/buttonLink.shadow.css +3 -3
  22. package/lib/esm/component/AbstractButton/AbstractButton.mjs +13 -3
  23. package/lib/esm/component/Button/Button.mjs +5 -6
  24. package/lib/esm/component/ButtonLink/ButtonLink.mjs +25 -26
  25. package/lib/esm/component/ButtonLink/buttonLink.shadow.css +3 -3
  26. package/lib/types/component/AbstractButton/AbstractButton.d.ts +2 -4
  27. package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +2 -1
  28. package/lib/types/component/Button/Button.type.d.ts +1 -4
  29. package/lib/types/component/ButtonLink/ButtonLink.type.d.ts +1 -4
  30. package/package.json +7 -5
  31. package/src/component/AbstractButton/AbstractButton.tsx +13 -3
  32. package/src/component/AbstractButton/AbstractButton.type.ts +2 -1
  33. package/src/component/Button/Button.tsx +4 -3
  34. package/src/component/Button/Button.type.ts +1 -4
  35. package/src/component/ButtonLink/ButtonLink.tsx +4 -3
  36. package/src/component/ButtonLink/ButtonLink.type.ts +1 -4
  37. package/src/component/ButtonLink/buttonLink.shadow.css +3 -3
package/CHANGELOG.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [17.0.0] - 2026-02-27
5
+ ## [17.0.0] - 2026-03-09
6
6
 
7
7
  ### BREAK
8
8
 
@@ -26,13 +26,25 @@ class AbstractButton extends _core.Component {
26
26
  ariaLabelledByContent: null
27
27
  });
28
28
  }
29
- getTextProps() {
29
+ getTextProps(props) {
30
30
  const {
31
31
  size
32
32
  } = this.asProps;
33
- return {
34
- size
33
+
34
+ // `any` because we don't have typings for `use:PROPS`.
35
+ const textProps = {
36
+ size,
37
+ 'use:hintProps': {
38
+ triggerRef: this.containerRef
39
+ }
35
40
  };
41
+ if ('hintProps' in props) {
42
+ textProps['use:hintProps'] = {
43
+ triggerRef: this.containerRef,
44
+ ...props.hintProps
45
+ };
46
+ }
47
+ return textProps;
36
48
  }
37
49
  getAddonProps() {
38
50
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractButton.js","names":["_core","require","_baseComponents","_addonTextChildren","_interopRequireDefault","_hasLabels","_logger","_react","_SpinButton","MAP_USE_DEFAULT_THEME","exports","primary","secondary","tertiary","AbstractButton","Component","constructor","args","_defineProperty2","default","React","createRef","ariaLabelledByContent","getTextProps","size","asProps","getAddonProps","componentDidMount","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","title","displayName","theme","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Box","Button","CORE_INSTANCE","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","NeighborLocation","Detect","_ref2","sstyled","Fragment","cn","assignProps","getTextColor","Addon","addonTextChildren","Text","Hint"],"sources":["../../../../src/component/AbstractButton/AbstractButton.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport React from 'react';\n\nimport type { AbstractButtonProps } from './AbstractButton.type';\nimport SpinButton from './SpinButton';\n\nexport const MAP_USE_DEFAULT_THEME: Record<string, string> = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\ntype Props = AbstractButtonProps<any, any, any>;\n\ntype State = {\n ariaLabelledByContent: null | string;\n};\n\nexport abstract class AbstractButton extends Component<Props, [], never, {}, State> {\n static displayName = 'AbstractButton';\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n protected abstract getTextColor(): string | undefined;\n\n getTextProps() {\n const { size } = this.asProps;\n\n return {\n size,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title,\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n\n logger.warn(\n this.asProps.theme === 'warning',\n 'Warning theme is deprecated and will be removed in the next major release.',\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n }\n\n const ariaLabelledby = this.asProps['aria-labelledby'];\n\n if (ariaLabelledby) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\n const SButton = Root;\n // @ts-ignore\n const Button = this[CORE_INSTANCE];\n const useTheme = use && theme ? `${use}-${theme}` : false;\n const SInner = Box;\n const SSpin = Box;\n const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const showHint = (children === undefined || title);\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n return sstyled(styles)(\n <>\n <SButton\n render={Box}\n invertOutline={theme === 'invert'}\n type='button'\n tag='button'\n tabIndex={0}\n disabled={disabled}\n use:theme={useTheme}\n ref={this.containerRef}\n text-color={this.getTextColor()}\n aria-busy={loading}\n __excludeProps={['title']}\n aria-label={showHint ? buttonAriaLabel : undefined}\n neighborLocation={neighborLocation}\n >\n {/* @ts-ignore */}\n <SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>\n {AddonLeft\n ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n )\n : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight\n ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\n )\n : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {buttonAriaLabel}\n </Hint>\n )}\n </>,\n );\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AbstractButton.js","names":["_core","require","_baseComponents","_addonTextChildren","_interopRequireDefault","_hasLabels","_logger","_react","_SpinButton","MAP_USE_DEFAULT_THEME","exports","primary","secondary","tertiary","AbstractButton","Component","constructor","args","_defineProperty2","default","React","createRef","ariaLabelledByContent","getTextProps","props","size","asProps","textProps","triggerRef","containerRef","hintProps","getAddonProps","componentDidMount","process","env","NODE_ENV","logger","warn","current","hasLabels","title","displayName","theme","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Box","Button","CORE_INSTANCE","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","NeighborLocation","Detect","_ref2","sstyled","Fragment","cn","assignProps","getTextColor","Addon","addonTextChildren","Text","Hint"],"sources":["../../../../src/component/AbstractButton/AbstractButton.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport React from 'react';\n\nimport type { AbstractButtonProps, AbstractButtonTextProps } from './AbstractButton.type';\nimport SpinButton from './SpinButton';\n\nexport const MAP_USE_DEFAULT_THEME: Record<string, string> = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\ntype Props = AbstractButtonProps<any, any, any>;\n\ntype State = {\n ariaLabelledByContent: null | string;\n};\n\nexport abstract class AbstractButton extends Component<Props, [], never, {}, State> {\n static displayName = 'AbstractButton';\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n protected abstract getTextColor(): string | undefined;\n\n getTextProps(props: AbstractButtonTextProps<any>) {\n const { size } = this.asProps;\n\n // `any` because we don't have typings for `use:PROPS`.\n const textProps: any = {\n size,\n 'use:hintProps': {\n triggerRef: this.containerRef,\n },\n };\n\n if ('hintProps' in props) {\n textProps['use:hintProps'] = { triggerRef: this.containerRef, ...props.hintProps };\n }\n\n return textProps;\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title,\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n\n logger.warn(\n this.asProps.theme === 'warning',\n 'Warning theme is deprecated and will be removed in the next major release.',\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n }\n\n const ariaLabelledby = this.asProps['aria-labelledby'];\n\n if (ariaLabelledby) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\n const SButton = Root;\n // @ts-ignore\n const Button = this[CORE_INSTANCE];\n const useTheme = use && theme ? `${use}-${theme}` : false;\n const SInner = Box;\n const SSpin = Box;\n const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const showHint = (children === undefined || title);\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n return sstyled(styles)(\n <>\n <SButton\n render={Box}\n invertOutline={theme === 'invert'}\n type='button'\n tag='button'\n tabIndex={0}\n disabled={disabled}\n use:theme={useTheme}\n ref={this.containerRef}\n text-color={this.getTextColor()}\n aria-busy={loading}\n __excludeProps={['title']}\n aria-label={showHint ? buttonAriaLabel : undefined}\n neighborLocation={neighborLocation}\n >\n {/* @ts-ignore */}\n <SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>\n {AddonLeft\n ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n )\n : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight\n ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\n )\n : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {buttonAriaLabel}\n </Hint>\n )}\n </>,\n );\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractButton.type.js","names":[],"sources":["../../../../src/component/AbstractButton/AbstractButton.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { PropGetterFn } from '@semcore/core';\nimport type React from 'react';\n\nexport type AbstractButtonProps<S, U, T> = BoxProps &\n NeighborItemProps & {\n /** Button activity state */\n active?: boolean;\n /** Disabled button state */\n disabled?: boolean;\n /** Loading button state */\n loading?: boolean;\n /** Tag for the left Addon */\n addonLeft?: React.ElementType;\n /** Tag for the right Addon */\n addonRight?: React.ElementType;\n /**\n * Placement for hint\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n\n /** Button size. Defined in Button.type or ButtonLink.type */\n size?: S;\n /** Button usage. Defined in Button.type or ButtonLink.type */\n use?: U;\n /** Button theme. Defined in Button.type or ButtonLink.type */\n theme?: T;\n };\n\nexport type AbstractButtonAddonProps<S> = BoxProps & {\n size?: S;\n};\n\nexport type AbstractButtonTextProps<S> = BoxProps & {\n size?: S;\n};\n\nexport type AbstractButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"AbstractButton.type.js","names":[],"sources":["../../../../src/component/AbstractButton/AbstractButton.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { PropGetterFn } from '@semcore/core';\nimport type { TextProps } from '@semcore/typography';\nimport type React from 'react';\n\nexport type AbstractButtonProps<S, U, T> = BoxProps &\n NeighborItemProps & {\n /** Button activity state */\n active?: boolean;\n /** Disabled button state */\n disabled?: boolean;\n /** Loading button state */\n loading?: boolean;\n /** Tag for the left Addon */\n addonLeft?: React.ElementType;\n /** Tag for the right Addon */\n addonRight?: React.ElementType;\n /**\n * Placement for hint\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n\n /** Button size. Defined in Button.type or ButtonLink.type */\n size?: S;\n /** Button usage. Defined in Button.type or ButtonLink.type */\n use?: U;\n /** Button theme. Defined in Button.type or ButtonLink.type */\n theme?: T;\n };\n\nexport type AbstractButtonAddonProps<S> = BoxProps & {\n size?: S;\n};\n\nexport type AbstractButtonTextProps<S> = TextProps & {\n size?: S;\n};\n\nexport type AbstractButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n"],"mappings":"","ignoreList":[]}
@@ -8,6 +8,7 @@ exports.default = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _core = require("@semcore/core");
10
10
  var _baseComponents = require("@semcore/base-components");
11
+ var _typography = require("@semcore/typography");
11
12
  var _react = _interopRequireDefault(require("react"));
12
13
  var _AbstractButton = require("../AbstractButton/AbstractButton");
13
14
  /*!__reshadow-styles__:"./button.shadow.css"*/
@@ -52,14 +53,12 @@ class RootButton extends _AbstractButton.AbstractButton {
52
53
  use: 'secondary',
53
54
  size: 'm'
54
55
  });
55
- function Text(props) {
56
+ function ButtonText(props) {
56
57
  var _ref = arguments[0],
57
58
  _ref3;
58
- const SText = _baseComponents.Box;
59
+ const SText = _typography.Text;
59
60
  return _ref3 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SText, _ref3.cn("SText", {
60
- ...(0, _core.assignProps)({
61
- "tag": 'span'
62
- }, _ref)
61
+ ...(0, _core.assignProps)({}, _ref)
63
62
  }));
64
63
  }
65
64
  function Addon(props) {
@@ -73,7 +72,7 @@ function Addon(props) {
73
72
  }));
74
73
  }
75
74
  const Button = (0, _core.createComponent)(RootButton, {
76
- Text,
75
+ Text: ButtonText,
77
76
  Addon
78
77
  });
79
78
  var _default = exports.default = Button;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["_core","require","_baseComponents","_react","_interopRequireDefault","_AbstractButton","style","sstyled","insert","RootButton","AbstractButton","getTextColor","undefined","_defineProperty2","default","use","size","Text","props","_ref","arguments[0]","_ref3","SText","Box","styles","createElement","cn","assignProps","Addon","_ref2","_ref4","SAddon","Button","createComponent","_default","exports"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonAddonProps, ButtonComponent, ButtonTextProps } from './Button.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nclass RootButton extends AbstractButton {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n protected getTextColor(): string | undefined {\n return undefined;\n }\n}\n\nfunction Text(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAC,sBAAA,CAAAH,OAAA;AAIA,IAAAI,eAAA,GAAAJ,OAAA;AAAkE;AAAA,MAAAK,KAAA,8BAAAN,KAAA,CAAAO,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAElE,MAAMC,UAAU,SAASC,8BAAc,CAAC;EAQ5BC,YAAYA,CAAA,EAAuB;IAC3C,OAAOC,SAAS;EAClB;AACF;AAAC,IAAAC,gBAAA,CAAAC,OAAA,EAXKL,UAAU,iBACO,QAAQ;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EADzBL,UAAU,WAECH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EAFhBL,UAAU,kBAGQ;EACpBM,GAAG,EAAE,WAAW;EAChBC,IAAI,EAAE;AACR,CAAC;AAOH,SAASC,IAAIA,CAACC,KAAsB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACpC,MAAMC,KAAK,GACiCC,mBAAG;EAA/C,OAAAF,KAAA,GAAO,IAAAd,aAAO,EAACW,KAAK,CAACM,MAAM,CAAC,eAACrB,MAAA,CAAAW,OAAA,CAAAW,aAAA,CAACH,KAAK,EAAAD,KAAA,CAAAK,EAAA;IAAA,OAAA1B,KAAA,CAAA2B,WAAA;MAAA,OAAkB;IAAM,GAAAR,IAAA;EAAA,EAAE,CAAC;AAChE;AAEA,SAASS,KAAKA,CAACV,KAAuB,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EACtC,MAAMC,MAAM,GACiCR,mBAAG;EAAhD,OAAAO,KAAA,GAAO,IAAAvB,aAAO,EAACW,KAAK,CAACM,MAAM,CAAC,eAACrB,MAAA,CAAAW,OAAA,CAAAW,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,OAAA1B,KAAA,CAAA2B,WAAA;MAAA,OAAkB;IAAM,GAAAE,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,MAAMG,MAAM,GAAG,IAAAC,qBAAe,EAACxB,UAAU,EAAE;EACzCQ,IAAI;EACJW;AACF,CAAC,CAAoB;AAAC,IAAAM,QAAA,GAAAC,OAAA,CAAArB,OAAA,GAEPkB,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"Button.js","names":["_core","require","_baseComponents","_typography","_react","_interopRequireDefault","_AbstractButton","style","sstyled","insert","RootButton","AbstractButton","getTextColor","undefined","_defineProperty2","default","use","size","ButtonText","props","_ref","arguments[0]","_ref3","SText","Text","styles","createElement","cn","assignProps","Addon","_ref2","_ref4","SAddon","Box","Button","createComponent","_default","exports"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonAddonProps, ButtonComponent, ButtonTextProps } from './Button.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nclass RootButton extends AbstractButton {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n protected getTextColor(): string | undefined {\n return undefined;\n }\n}\n\nfunction ButtonText(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text: ButtonText,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAIA,IAAAK,eAAA,GAAAL,OAAA;AAAkE;AAAA,MAAAM,KAAA,8BAAAP,KAAA,CAAAQ,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAElE,MAAMC,UAAU,SAASC,8BAAc,CAAC;EAQ5BC,YAAYA,CAAA,EAAuB;IAC3C,OAAOC,SAAS;EAClB;AACF;AAAC,IAAAC,gBAAA,CAAAC,OAAA,EAXKL,UAAU,iBACO,QAAQ;AAAA,IAAAI,gBAAA,CAAAC,OAAA,EADzBL,UAAU,WAECH,KAAK;AAAA,IAAAO,gBAAA,CAAAC,OAAA,EAFhBL,UAAU,kBAGQ;EACpBM,GAAG,EAAE,WAAW;EAChBC,IAAI,EAAE;AACR,CAAC;AAOH,SAASC,UAAUA,CAACC,KAAsB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC1C,MAAMC,KAAK,GACiCC,gBAAI;EAAhD,OAAAF,KAAA,GAAO,IAAAd,aAAO,EAACW,KAAK,CAACM,MAAM,CAAC,eAACrB,MAAA,CAAAW,OAAA,CAAAW,aAAA,CAACH,KAAK,EAAAD,KAAA,CAAAK,EAAA;IAAA,OAAA3B,KAAA,CAAA4B,WAAA,MAAAR,IAAA;EAAA,EAAgB,CAAC;AACtD;AAEA,SAASS,KAAKA,CAACV,KAAuB,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EACtC,MAAMC,MAAM,GACiCC,mBAAG;EAAhD,OAAAF,KAAA,GAAO,IAAAvB,aAAO,EAACW,KAAK,CAACM,MAAM,CAAC,eAACrB,MAAA,CAAAW,OAAA,CAAAW,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,OAAA3B,KAAA,CAAA4B,WAAA;MAAA,OAAkB;IAAM,GAAAE,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,MAAMI,MAAM,GAAG,IAAAC,qBAAe,EAACzB,UAAU,EAAE;EACzCc,IAAI,EAAEN,UAAU;EAChBW;AACF,CAAC,CAAoB;AAAC,IAAAO,QAAA,GAAAC,OAAA,CAAAtB,OAAA,GAEPmB,MAAM","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button size\n * @default m\n */\nexport type ButtonSize = 'l' | 'm';\n/**\n * Button type\n * @default secondary\n */\ntype Use = 'primary' | 'secondary' | 'tertiary';\n\n/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme>;\n\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\nexport type ButtonContext = AbstractButtonContext;\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button size\n * @default m\n */\nexport type ButtonSize = 'l' | 'm';\n/**\n * Button type\n * @default secondary\n */\ntype Use = 'primary' | 'secondary' | 'tertiary';\n\n/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme>;\n\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\nexport type ButtonContext = AbstractButtonContext;\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & ButtonChildren;\n"],"mappings":"","ignoreList":[]}
@@ -9,30 +9,31 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _core = require("@semcore/core");
10
10
  var _baseComponents = require("@semcore/base-components");
11
11
  var _resolveColorEnhance = _interopRequireDefault(require("@semcore/core/lib/utils/enhances/resolveColorEnhance"));
12
+ var _typography = require("@semcore/typography");
12
13
  var _react = _interopRequireDefault(require("react"));
13
14
  var _AbstractButton = require("../AbstractButton/AbstractButton");
14
15
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
15
- const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SButton_uv2ud_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_uv2ud_gg_,.___SButton_uv2ud_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_uv2ud_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_uv2ud_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_uv2ud_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_uv2ud_gg_.__active_uv2ud_gg_ .___SText_uv2ud_gg_,.___SButton_uv2ud_gg_:active .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_uv2ud_gg_:hover .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_uv2ud_gg_.__disabled_uv2ud_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_uv2ud_gg_,.___SInner_uv2ud_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_uv2ud_gg_{height:100%;width:100%}.___SAddon_uv2ud_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_{color:var(--text-color_uv2ud)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:active{color:var(--text-color_uv2ud);filter:brightness(.8)}@media (hover:hover){.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:hover{color:var(--text-color_uv2ud);filter:brightness(.8)}}.___SButton_uv2ud_gg_._size_100_uv2ud_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_uv2ud_gg_._size_200_uv2ud_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_uv2ud_gg_._size_300_uv2ud_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_uv2ud_gg_._size_400_uv2ud_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_uv2ud_gg_._size_500_uv2ud_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_uv2ud_gg_._size_600_uv2ud_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_uv2ud_gg_._size_700_uv2ud_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_uv2ud_gg_._size_800_uv2ud_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_uv2ud_gg_,.___SText_uv2ud_gg_{transition:none}}", /*__inner_css_end__*/"uv2ud_gg_"),
16
+ const style = (/*__reshadow_css_start__*/_core.sstyled.insert(/*__inner_css_start__*/".___SButton_b33zi_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_b33zi_gg_,.___SButton_b33zi_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_b33zi_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_b33zi_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_b33zi_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_b33zi_gg_.__active_b33zi_gg_ .___SText_b33zi_gg_,.___SButton_b33zi_gg_:active .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_b33zi_gg_:hover .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_b33zi_gg_.__disabled_b33zi_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_b33zi_gg_,.___SInner_b33zi_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_b33zi_gg_{height:100%;width:100%}.___SAddon_b33zi_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_{color:var(--text-color_b33zi)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_.__text-color_b33zi_gg_:active{color:var(--text-color_b33zi);filter:brightness(.8)}@media (hover:hover){.___SButton_b33zi_gg_.__text-color_b33zi_gg_:hover{color:var(--text-color_b33zi);filter:brightness(.8)}}.___SButton_b33zi_gg_._size_100_b33zi_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_b33zi_gg_._size_200_b33zi_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_b33zi_gg_._size_300_b33zi_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_b33zi_gg_._size_400_b33zi_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_b33zi_gg_._size_500_b33zi_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_b33zi_gg_._size_600_b33zi_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_b33zi_gg_._size_700_b33zi_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_b33zi_gg_._size_800_b33zi_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_b33zi_gg_,.___SButton_b33zi_gg_ .___SText_b33zi_gg_{transition:none}}", /*__inner_css_end__*/"b33zi_gg_"),
16
17
  /*__reshadow_css_end__*/
17
18
  {
18
- "__SButton": "___SButton_uv2ud_gg_",
19
- "_disabled": "__disabled_uv2ud_gg_",
20
- "__SInner": "___SInner_uv2ud_gg_",
21
- "__SAddon": "___SAddon_uv2ud_gg_",
22
- "_size_100": "_size_100_uv2ud_gg_",
23
- "_size_200": "_size_200_uv2ud_gg_",
24
- "_size_300": "_size_300_uv2ud_gg_",
25
- "_size_400": "_size_400_uv2ud_gg_",
26
- "_size_500": "_size_500_uv2ud_gg_",
27
- "_size_600": "_size_600_uv2ud_gg_",
28
- "_size_700": "_size_700_uv2ud_gg_",
29
- "_size_800": "_size_800_uv2ud_gg_",
30
- "__SText": "___SText_uv2ud_gg_",
31
- "_active": "__active_uv2ud_gg_",
32
- "_enableVisited": "__enableVisited_uv2ud_gg_",
33
- "_use_secondary": "_use_secondary_uv2ud_gg_",
34
- "_text-color": "__text-color_uv2ud_gg_",
35
- "--text-color": "--text-color_uv2ud"
19
+ "__SButton": "___SButton_b33zi_gg_",
20
+ "_disabled": "__disabled_b33zi_gg_",
21
+ "__SInner": "___SInner_b33zi_gg_",
22
+ "__SAddon": "___SAddon_b33zi_gg_",
23
+ "_size_100": "_size_100_b33zi_gg_",
24
+ "_size_200": "_size_200_b33zi_gg_",
25
+ "_size_300": "_size_300_b33zi_gg_",
26
+ "_size_400": "_size_400_b33zi_gg_",
27
+ "_size_500": "_size_500_b33zi_gg_",
28
+ "_size_600": "_size_600_b33zi_gg_",
29
+ "_size_700": "_size_700_b33zi_gg_",
30
+ "_size_800": "_size_800_b33zi_gg_",
31
+ "_active": "__active_b33zi_gg_",
32
+ "__SText": "___SText_b33zi_gg_",
33
+ "_enableVisited": "__enableVisited_b33zi_gg_",
34
+ "_use_secondary": "_use_secondary_b33zi_gg_",
35
+ "_text-color": "__text-color_b33zi_gg_",
36
+ "--text-color": "--text-color_b33zi"
36
37
  });
37
38
  const enhance = {
38
39
  resolveColor: (0, _resolveColorEnhance.default)()
@@ -52,14 +53,12 @@ class RootButtonLink extends _AbstractButton.AbstractButton {
52
53
  (0, _defineProperty2.default)(RootButtonLink, "defaultProps", {
53
54
  use: 'primary'
54
55
  });
55
- function Text(props) {
56
+ function LinkText(props) {
56
57
  var _ref = arguments[0],
57
58
  _ref3;
58
- const SText = _baseComponents.Box;
59
+ const SText = _typography.Text;
59
60
  return _ref3 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react.default.createElement(SText, _ref3.cn("SText", {
60
- ...(0, _core.assignProps)({
61
- "tag": 'span'
62
- }, _ref)
61
+ ...(0, _core.assignProps)({}, _ref)
63
62
  }));
64
63
  }
65
64
  function Addon(props) {
@@ -73,7 +72,7 @@ function Addon(props) {
73
72
  }));
74
73
  }
75
74
  const ButtonLink = exports.ButtonLink = (0, _core.createComponent)(RootButtonLink, {
76
- Text,
75
+ Text: LinkText,
77
76
  Addon
78
77
  });
79
78
  //# sourceMappingURL=ButtonLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.js","names":["_core","require","_baseComponents","_resolveColorEnhance","_interopRequireDefault","_react","_AbstractButton","style","sstyled","insert","enhance","resolveColor","resolveColorEnhance","RootButtonLink","AbstractButton","getTextColor","color","asProps","_defineProperty2","default","Object","values","use","Text","props","_ref","arguments[0]","_ref3","SText","Box","styles","createElement","cn","assignProps","Addon","_ref2","_ref4","SAddon","ButtonLink","exports","createComponent"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nconst enhance = {\n resolveColor: resolveColorEnhance(),\n};\n\nclass RootButtonLink extends AbstractButton {\n static displayName = 'ButtonLink';\n static enhance = Object.values(enhance);\n static style = style;\n static defaultProps = {\n use: 'primary',\n };\n\n protected getTextColor(): string | undefined {\n const { color, resolveColor } = this.asProps as any;\n return resolveColor(color);\n }\n}\n\nfunction Text(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonLinkAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,oBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAD,sBAAA,CAAAH,OAAA;AAIA,IAAAK,eAAA,GAAAL,OAAA;AAAkE;AAAA,MAAAM,KAAA,8BAAAP,KAAA,CAAAQ,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAElE,MAAMC,OAAO,GAAG;EACdC,YAAY,EAAE,IAAAC,4BAAmB,EAAC;AACpC,CAAC;AAED,MAAMC,cAAc,SAASC,8BAAc,CAAC;EAQhCC,YAAYA,CAAA,EAAuB;IAC3C,MAAM;MAAEC,KAAK;MAAEL;IAAa,CAAC,GAAG,IAAI,CAACM,OAAc;IACnD,OAAON,YAAY,CAACK,KAAK,CAAC;EAC5B;AACF;AAAC,IAAAE,gBAAA,CAAAC,OAAA,EAZKN,cAAc,iBACG,YAAY;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAD7BN,cAAc,aAEDO,MAAM,CAACC,MAAM,CAACX,OAAO,CAAC;AAAA,IAAAQ,gBAAA,CAAAC,OAAA,EAFnCN,cAAc,WAGHN,KAAK;AAAA,IAAAW,gBAAA,CAAAC,OAAA,EAHhBN,cAAc,kBAII;EACpBS,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,IAAIA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACxC,MAAMC,KAAK,GACiCC,mBAAG;EAA/C,OAAAF,KAAA,GAAO,IAAAnB,aAAO,EAACgB,KAAK,CAACM,MAAM,CAAC,eAACzB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACH,KAAK,EAAAD,KAAA,CAAAK,EAAA;IAAA,OAAAhC,KAAA,CAAAiC,WAAA;MAAA,OAAkB;IAAM,GAAAR,IAAA;EAAA,EAAE,CAAC;AAChE;AAEA,SAASS,KAAKA,CAACV,KAA2B,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EAC1C,MAAMC,MAAM,GACiCR,mBAAG;EAAhD,OAAAO,KAAA,GAAO,IAAA5B,aAAO,EAACgB,KAAK,CAACM,MAAM,CAAC,eAACzB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,OAAAhC,KAAA,CAAAiC,WAAA;MAAA,OAAkB;IAAM,GAAAE,KAAA;EAAA,EAAE,CAAC;AACjE;AAEO,MAAMG,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAAE,qBAAe,EAAC3B,cAAc,EAAE;EACxDU,IAAI;EACJW;AACF,CAAC,CAAwB","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.js","names":["_core","require","_baseComponents","_resolveColorEnhance","_interopRequireDefault","_typography","_react","_AbstractButton","style","sstyled","insert","enhance","resolveColor","resolveColorEnhance","RootButtonLink","AbstractButton","getTextColor","color","asProps","_defineProperty2","default","Object","values","use","LinkText","props","_ref","arguments[0]","_ref3","SText","Text","styles","createElement","cn","assignProps","Addon","_ref2","_ref4","SAddon","Box","ButtonLink","exports","createComponent"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nconst enhance = {\n resolveColor: resolveColorEnhance(),\n};\n\nclass RootButtonLink extends AbstractButton {\n static displayName = 'ButtonLink';\n static enhance = Object.values(enhance);\n static style = style;\n static defaultProps = {\n use: 'primary',\n };\n\n protected getTextColor(): string | undefined {\n const { color, resolveColor } = this.asProps as any;\n return resolveColor(color);\n }\n}\n\nfunction LinkText(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonLinkAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text: LinkText,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AADA,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAAE,oBAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,WAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAF,sBAAA,CAAAH,OAAA;AAIA,IAAAM,eAAA,GAAAN,OAAA;AAAkE;AAAA,MAAAO,KAAA,8BAAAR,KAAA,CAAAS,OAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAElE,MAAMC,OAAO,GAAG;EACdC,YAAY,EAAE,IAAAC,4BAAmB,EAAC;AACpC,CAAC;AAED,MAAMC,cAAc,SAASC,8BAAc,CAAC;EAQhCC,YAAYA,CAAA,EAAuB;IAC3C,MAAM;MAAEC,KAAK;MAAEL;IAAa,CAAC,GAAG,IAAI,CAACM,OAAc;IACnD,OAAON,YAAY,CAACK,KAAK,CAAC;EAC5B;AACF;AAAC,IAAAE,gBAAA,CAAAC,OAAA,EAZKN,cAAc,iBACG,YAAY;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAD7BN,cAAc,aAEDO,MAAM,CAACC,MAAM,CAACX,OAAO,CAAC;AAAA,IAAAQ,gBAAA,CAAAC,OAAA,EAFnCN,cAAc,WAGHN,KAAK;AAAA,IAAAW,gBAAA,CAAAC,OAAA,EAHhBN,cAAc,kBAII;EACpBS,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,QAAQA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC5C,MAAMC,KAAK,GACiCC,gBAAI;EAAhD,OAAAF,KAAA,GAAO,IAAAnB,aAAO,EAACgB,KAAK,CAACM,MAAM,CAAC,eAACzB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACH,KAAK,EAAAD,KAAA,CAAAK,EAAA;IAAA,OAAAjC,KAAA,CAAAkC,WAAA,MAAAR,IAAA;EAAA,EAAgB,CAAC;AACtD;AAEA,SAASS,KAAKA,CAACV,KAA2B,EAAE;EAAA,IAAAW,KAAA,GAAAT,YAAA;IAAAU,KAAA;EAC1C,MAAMC,MAAM,GACiCC,mBAAG;EAAhD,OAAAF,KAAA,GAAO,IAAA5B,aAAO,EAACgB,KAAK,CAACM,MAAM,CAAC,eAACzB,MAAA,CAAAc,OAAA,CAAAY,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,OAAAjC,KAAA,CAAAkC,WAAA;MAAA,OAAkB;IAAM,GAAAE,KAAA;EAAA,EAAE,CAAC;AACjE;AAEO,MAAMI,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG,IAAAE,qBAAe,EAAC5B,cAAc,EAAE;EACxDgB,IAAI,EAAEN,QAAQ;EACdW;AACF,CAAC,CAAwB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\n */\nexport type ButtonLinkSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;\n/**\n * Button link type\n * @default primary\n */\ntype Use = 'primary' | 'secondary';\n\nexport type ButtonLinkProps = AbstractButtonProps<ButtonLinkSize, Use, never>;\n\nexport type ButtonLinkTextProps = AbstractButtonTextProps<ButtonLinkSize>;\n\nexport type ButtonLinkAddonProps = AbstractButtonAddonProps<ButtonLinkSize>;\n\nexport type ButtonLinkContext = AbstractButtonContext;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonLinkContext\n> & {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\n */\nexport type ButtonLinkSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;\n/**\n * Button link type\n * @default primary\n */\ntype Use = 'primary' | 'secondary';\n\nexport type ButtonLinkProps = AbstractButtonProps<ButtonLinkSize, Use, never>;\n\nexport type ButtonLinkTextProps = AbstractButtonTextProps<ButtonLinkSize>;\n\nexport type ButtonLinkAddonProps = AbstractButtonAddonProps<ButtonLinkSize>;\n\nexport type ButtonLinkContext = AbstractButtonContext;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonLinkContext\n> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
@@ -151,9 +151,9 @@ SButton[size='800'] {
151
151
  @media (prefers-reduced-motion) {
152
152
  SButton {
153
153
  transition: none;
154
- }
155
154
 
156
- SText {
157
- transition: none;
155
+ SText {
156
+ transition: none;
157
+ }
158
158
  }
159
159
  }
@@ -20,13 +20,25 @@ export class AbstractButton extends Component {
20
20
  ariaLabelledByContent: null
21
21
  });
22
22
  }
23
- getTextProps() {
23
+ getTextProps(props) {
24
24
  const {
25
25
  size
26
26
  } = this.asProps;
27
- return {
28
- size
27
+
28
+ // `any` because we don't have typings for `use:PROPS`.
29
+ const textProps = {
30
+ size,
31
+ 'use:hintProps': {
32
+ triggerRef: this.containerRef
33
+ }
29
34
  };
35
+ if ('hintProps' in props) {
36
+ textProps['use:hintProps'] = {
37
+ triggerRef: this.containerRef,
38
+ ...props.hintProps
39
+ };
40
+ }
41
+ return textProps;
30
42
  }
31
43
  getAddonProps() {
32
44
  const {
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractButton.js","names":["NeighborLocation","Box","Hint","Component","CORE_INSTANCE","Root","sstyled","addonTextChildren","hasLabels","logger","React","SpinButton","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","AbstractButton","constructor","args","_defineProperty","createRef","ariaLabelledByContent","getTextProps","size","asProps","getAddonProps","componentDidMount","process","env","NODE_ENV","warn","containerRef","current","title","displayName","theme","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Button","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","Detect","_ref2","Fragment","cn","_assignProps","getTextColor","Addon","Text"],"sources":["../../../../src/component/AbstractButton/AbstractButton.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport React from 'react';\n\nimport type { AbstractButtonProps } from './AbstractButton.type';\nimport SpinButton from './SpinButton';\n\nexport const MAP_USE_DEFAULT_THEME: Record<string, string> = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\ntype Props = AbstractButtonProps<any, any, any>;\n\ntype State = {\n ariaLabelledByContent: null | string;\n};\n\nexport abstract class AbstractButton extends Component<Props, [], never, {}, State> {\n static displayName = 'AbstractButton';\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n protected abstract getTextColor(): string | undefined;\n\n getTextProps() {\n const { size } = this.asProps;\n\n return {\n size,\n };\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title,\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n\n logger.warn(\n this.asProps.theme === 'warning',\n 'Warning theme is deprecated and will be removed in the next major release.',\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n }\n\n const ariaLabelledby = this.asProps['aria-labelledby'];\n\n if (ariaLabelledby) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\n const SButton = Root;\n // @ts-ignore\n const Button = this[CORE_INSTANCE];\n const useTheme = use && theme ? `${use}-${theme}` : false;\n const SInner = Box;\n const SSpin = Box;\n const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const showHint = (children === undefined || title);\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n return sstyled(styles)(\n <>\n <SButton\n render={Box}\n invertOutline={theme === 'invert'}\n type='button'\n tag='button'\n tabIndex={0}\n disabled={disabled}\n use:theme={useTheme}\n ref={this.containerRef}\n text-color={this.getTextColor()}\n aria-busy={loading}\n __excludeProps={['title']}\n aria-label={showHint ? buttonAriaLabel : undefined}\n neighborLocation={neighborLocation}\n >\n {/* @ts-ignore */}\n <SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>\n {AddonLeft\n ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n )\n : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight\n ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\n )\n : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {buttonAriaLabel}\n </Hint>\n )}\n </>,\n );\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AbstractButton.js","names":["NeighborLocation","Box","Hint","Component","CORE_INSTANCE","Root","sstyled","addonTextChildren","hasLabels","logger","React","SpinButton","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","AbstractButton","constructor","args","_defineProperty","createRef","ariaLabelledByContent","getTextProps","props","size","asProps","textProps","triggerRef","containerRef","hintProps","getAddonProps","componentDidMount","process","env","NODE_ENV","warn","current","title","displayName","theme","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Button","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","Detect","_ref2","Fragment","cn","_assignProps","getTextColor","Addon","Text"],"sources":["../../../../src/component/AbstractButton/AbstractButton.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, Root, sstyled } from '@semcore/core';\nimport addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';\nimport hasLabels from '@semcore/core/lib/utils/hasLabels';\nimport logger from '@semcore/core/lib/utils/logger';\nimport React from 'react';\n\nimport type { AbstractButtonProps, AbstractButtonTextProps } from './AbstractButton.type';\nimport SpinButton from './SpinButton';\n\nexport const MAP_USE_DEFAULT_THEME: Record<string, string> = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\ntype Props = AbstractButtonProps<any, any, any>;\n\ntype State = {\n ariaLabelledByContent: null | string;\n};\n\nexport abstract class AbstractButton extends Component<Props, [], never, {}, State> {\n static displayName = 'AbstractButton';\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n protected abstract getTextColor(): string | undefined;\n\n getTextProps(props: AbstractButtonTextProps<any>) {\n const { size } = this.asProps;\n\n // `any` because we don't have typings for `use:PROPS`.\n const textProps: any = {\n size,\n 'use:hintProps': {\n triggerRef: this.containerRef,\n },\n };\n\n if ('hintProps' in props) {\n textProps['use:hintProps'] = { triggerRef: this.containerRef, ...props.hintProps };\n }\n\n return textProps;\n }\n\n getAddonProps() {\n const { size } = this.asProps;\n return {\n size,\n };\n }\n\n componentDidMount() {\n if (process.env.NODE_ENV !== 'production') {\n logger.warn(\n this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title,\n `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`,\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n\n logger.warn(\n this.asProps.theme === 'warning',\n 'Warning theme is deprecated and will be removed in the next major release.',\n this.asProps['data-ui-name'] || AbstractButton.displayName,\n );\n }\n\n const ariaLabelledby = this.asProps['aria-labelledby'];\n\n if (ariaLabelledby) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n render() {\n const {\n styles,\n use,\n theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],\n loading,\n disabled = loading,\n size,\n neighborLocation,\n children,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\n const SButton = Root;\n // @ts-ignore\n const Button = this[CORE_INSTANCE];\n const useTheme = use && theme ? `${use}-${theme}` : false;\n const SInner = Box;\n const SSpin = Box;\n const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n const showHint = (children === undefined || title);\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n return sstyled(styles)(\n <>\n <SButton\n render={Box}\n invertOutline={theme === 'invert'}\n type='button'\n tag='button'\n tabIndex={0}\n disabled={disabled}\n use:theme={useTheme}\n ref={this.containerRef}\n text-color={this.getTextColor()}\n aria-busy={loading}\n __excludeProps={['title']}\n aria-label={showHint ? buttonAriaLabel : undefined}\n neighborLocation={neighborLocation}\n >\n {/* @ts-ignore */}\n <SInner tag='span' loading={loading} data-ui-name={`${this.asProps['data-ui-name']}.InnerWrapper`}>\n {AddonLeft\n ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n )\n : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight\n ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\n )\n : null}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>\n {showHint && (\n <Hint\n triggerRef={this.containerRef}\n timeout={[250, 50]}\n placement={hintPlacement}\n >\n {buttonAriaLabel}\n </Hint>\n )}\n </>,\n );\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n"],"mappings":";;AAAA,SAASA,gBAAgB,EAAEC,GAAG,EAAEC,IAAI,QAAQ,0BAA0B;AACtE,SAASC,SAAS,EAAEC,aAAa,EAAEC,IAAI,EAAEC,OAAO,QAAQ,eAAe;AACvE,OAAOC,iBAAiB,MAAM,2CAA2C;AACzE,OAAOC,SAAS,MAAM,mCAAmC;AACzD,OAAOC,MAAM,MAAM,gCAAgC;AACnD,OAAOC,KAAK,MAAM,OAAO;AAGzB,OAAOC,UAAU,MAAM,cAAc;AAErC,OAAO,MAAMC,qBAA6C,GAAG;EAC3DC,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,OAAO;EAClBC,QAAQ,EAAE;AACZ,CAAC;AAQD,OAAO,MAAeC,cAAc,SAASb,SAAS,CAA8B;EAAAc,YAAA,GAAAC,IAAA;IAAA,SAAAA,IAAA;IAAAC,eAAA,oCAGnET,KAAK,CAACU,SAAS,CAAoB,CAAC;IAAAD,eAAA,gBAEpC;MACbE,qBAAqB,EAAE;IACzB,CAAC;EAAA;EAIDC,YAAYA,CAACC,KAAmC,EAAE;IAChD,MAAM;MAAEC;IAAK,CAAC,GAAG,IAAI,CAACC,OAAO;;IAE7B;IACA,MAAMC,SAAc,GAAG;MACrBF,IAAI;MACJ,eAAe,EAAE;QACfG,UAAU,EAAE,IAAI,CAACC;MACnB;IACF,CAAC;IAED,IAAI,WAAW,IAAIL,KAAK,EAAE;MACxBG,SAAS,CAAC,eAAe,CAAC,GAAG;QAAEC,UAAU,EAAE,IAAI,CAACC,YAAY;QAAE,GAAGL,KAAK,CAACM;MAAU,CAAC;IACpF;IAEA,OAAOH,SAAS;EAClB;EAEAI,aAAaA,CAAA,EAAG;IACd,MAAM;MAAEN;IAAK,CAAC,GAAG,IAAI,CAACC,OAAO;IAC7B,OAAO;MACLD;IACF,CAAC;EACH;EAEAO,iBAAiBA,CAAA,EAAG;IAClB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;MACzCzB,MAAM,CAAC0B,IAAI,CACT,IAAI,CAACP,YAAY,CAACQ,OAAO,IAAI,CAAC5B,SAAS,CAAC,IAAI,CAACoB,YAAY,CAACQ,OAAO,CAAC,IAAI,CAAC,IAAI,CAACX,OAAO,CAACY,KAAK,EACzF,kGAAkG,EAClG,IAAI,CAACZ,OAAO,CAAC,cAAc,CAAC,IAAIT,cAAc,CAACsB,WACjD,CAAC;MAED7B,MAAM,CAAC0B,IAAI,CACT,IAAI,CAACV,OAAO,CAACc,KAAK,KAAK,SAAS,EAChC,4EAA4E,EAC5E,IAAI,CAACd,OAAO,CAAC,cAAc,CAAC,IAAIT,cAAc,CAACsB,WACjD,CAAC;IACH;IAEA,MAAME,cAAc,GAAG,IAAI,CAACf,OAAO,CAAC,iBAAiB,CAAC;IAEtD,IAAIe,cAAc,EAAE;MAClBC,UAAU,CAAC,MAAM;QACf,IAAI,CAACC,QAAQ,CAAC;UACZrB,qBAAqB,EAAEsB,QAAQ,CAACC,cAAc,CAACJ,cAAc,CAAC,EAAEK,WAAW,IAAI;QACjF,CAAC,CAAC;MACJ,CAAC,EAAE,CAAC,CAAC;IACP;EACF;EAEAC,MAAMA,CAAA,EAAG;IAAA,IAAAC,IAAA,QAAAtB,OAAA;IACP,MAAM;MACJuB,MAAM;MACNC,GAAG;MACHV,KAAK,GAAG,OAAOU,GAAG,KAAK,QAAQ,IAAIrC,qBAAqB,CAACqC,GAAG,CAAC;MAC7DC,OAAO;MACPC,QAAQ,GAAGD,OAAO;MAClB1B,IAAI;MACJ4B,gBAAgB;MAChBC,QAAQ;MACRhB,KAAK;MACL,CAAC,YAAY,GAAGiB,SAAS;MACzBC,QAAQ;MACRC,SAAS,EAAEC,SAAS;MACpBC,UAAU,EAAEC,UAAU;MACtBC;IACF,CAAC,GAAG,IAAI,CAACnC,OAAO;IAChB,MAAMoC,OAAO,GAgBO5D,GAAG;IAfvB;IACA,MAAM6D,MAAM,GAAG,IAAI,CAAC1D,aAAa,CAAC;IAClC,MAAM2D,QAAQ,GAAGd,GAAG,IAAIV,KAAK,GAAG,GAAGU,GAAG,IAAIV,KAAK,EAAE,GAAG,KAAK;IACzD,MAAMyB,MAAM,GAAG/D,GAAG;IAClB,MAAMgE,KAAK,GAAGhE,GAAG;IACjB,MAAMiE,eAAe,GAAG7B,KAAK,IAAIiB,SAAS,IAAI,IAAI,CAACa,KAAK,CAAC9C,qBAAqB,IAAI,EAAE;IAEpF,MAAM+C,QAAQ,GAAIf,QAAQ,KAAKgB,SAAS,IAAIhC,KAAM;IAElD,oBACE3B,KAAA,CAAA4D,aAAA,CAACtE,gBAAgB,CAACuE,MAAM;MAACnB,gBAAgB,EAAEA;IAAiB,GACxDA,gBAAgB,IAAK;MAAA,IAAAoB,KAAA;MACrB,OAAAA,KAAA,GAAOlE,OAAO,CAAC0C,MAAM,CAAC,eACpBtC,KAAA,CAAA4D,aAAA,CAAA5D,KAAA,CAAA+D,QAAA,qBACE/D,KAAA,CAAA4D,aAAA,CAACT,OAAO,EAAAW,KAAA,CAAAE,EAAA;QAAA,GAAAC,YAAA;UAAA,iBAESpC,KAAK,KAAK,QAAQ;UAAA,QAC5B,QAAQ;UAAA,OACT,QAAQ;UAAA,YACF,CAAC;UAAA,YACDY,QAAQ;UAAA,aACPY,QAAQ;UAAA,OACd,IAAI,CAACnC,YAAY;UAAA,cACV,IAAI,CAACgD,YAAY,CAAC,CAAC;UAAA,aACpB1B,OAAO;UAAA,kBACF,CAAC,OAAO,CAAC;UAAA,cACbkB,QAAQ,GAAGF,eAAe,GAAGG,SAAS;UAAA,oBAChCjB;QAAgB,GAAAL,IAAA;MAAA,iBAGlCrC,KAAA,CAAA4D,aAAA,CAACN,MAAM,EAAAQ,KAAA,CAAAE,EAAA;QAAA,OAAK,MAAM;QAAA,WAAUxB,OAAO;QAAA,gBAAgB,GAAG,IAAI,CAACzB,OAAO,CAAC,cAAc,CAAC;MAAe,IAC9FgC,SAAS,gBAEJ/C,KAAA,CAAA4D,aAAA,CAACR,MAAM,CAACe,KAAK,qBACXnE,KAAA,CAAA4D,aAAA,CAACb,SAAS,EAAAe,KAAA,CAAAE,EAAA,iBAAE,CACA,CAAC,GAEjB,IAAI,EACPnE,iBAAiB,CAACgD,QAAQ,EAAEO,MAAM,CAACgB,IAAI,EAAEhB,MAAM,CAACe,KAAK,CAAC,EACtDlB,UAAU,gBAELjD,KAAA,CAAA4D,aAAA,CAACR,MAAM,CAACe,KAAK,qBACXnE,KAAA,CAAA4D,aAAA,CAACX,UAAU,EAAAa,KAAA,CAAAE,EAAA,kBAAE,CACD,CAAC,GAEjB,IACE,CAAC,EACRxB,OAAO,iBACNxC,KAAA,CAAA4D,aAAA,CAACL,KAAK,EAAAO,KAAA,CAAAE,EAAA;QAAA,OAAK;MAAM,iBACfhE,KAAA,CAAA4D,aAAA,CAAC3D,UAAU,EAAA6D,KAAA,CAAAE,EAAA;QAAA;QAAA,QAAgBlD,IAAI;QAAA,SAASuC;MAAQ,EAAG,CAC9C,CAEF,CAAC,EACTK,QAAQ,iBACP1D,KAAA,CAAA4D,aAAA,CAACpE,IAAI,EAAAsE,KAAA,CAAAE,EAAA;QAAA,cACS,IAAI,CAAC9C,YAAY;QAAA,WACpB,CAAC,GAAG,EAAE,EAAE,CAAC;QAAA,aACPgC;MAAa,IAEvBM,eACG,CAER,CAAC;IAEP,CACuB,CAAC;EAE9B;AACF;AAAC/C,eAAA,CApJqBH,cAAc,iBACb,gBAAgB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractButton.type.js","names":[],"sources":["../../../../src/component/AbstractButton/AbstractButton.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { PropGetterFn } from '@semcore/core';\nimport type React from 'react';\n\nexport type AbstractButtonProps<S, U, T> = BoxProps &\n NeighborItemProps & {\n /** Button activity state */\n active?: boolean;\n /** Disabled button state */\n disabled?: boolean;\n /** Loading button state */\n loading?: boolean;\n /** Tag for the left Addon */\n addonLeft?: React.ElementType;\n /** Tag for the right Addon */\n addonRight?: React.ElementType;\n /**\n * Placement for hint\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n\n /** Button size. Defined in Button.type or ButtonLink.type */\n size?: S;\n /** Button usage. Defined in Button.type or ButtonLink.type */\n use?: U;\n /** Button theme. Defined in Button.type or ButtonLink.type */\n theme?: T;\n };\n\nexport type AbstractButtonAddonProps<S> = BoxProps & {\n size?: S;\n};\n\nexport type AbstractButtonTextProps<S> = BoxProps & {\n size?: S;\n};\n\nexport type AbstractButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"AbstractButton.type.js","names":[],"sources":["../../../../src/component/AbstractButton/AbstractButton.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { PropGetterFn } from '@semcore/core';\nimport type { TextProps } from '@semcore/typography';\nimport type React from 'react';\n\nexport type AbstractButtonProps<S, U, T> = BoxProps &\n NeighborItemProps & {\n /** Button activity state */\n active?: boolean;\n /** Disabled button state */\n disabled?: boolean;\n /** Loading button state */\n loading?: boolean;\n /** Tag for the left Addon */\n addonLeft?: React.ElementType;\n /** Tag for the right Addon */\n addonRight?: React.ElementType;\n /**\n * Placement for hint\n * @default top\n */\n hintPlacement?: SimpleHintPopperProps['placement'];\n\n /** Button size. Defined in Button.type or ButtonLink.type */\n size?: S;\n /** Button usage. Defined in Button.type or ButtonLink.type */\n use?: U;\n /** Button theme. Defined in Button.type or ButtonLink.type */\n theme?: T;\n };\n\nexport type AbstractButtonAddonProps<S> = BoxProps & {\n size?: S;\n};\n\nexport type AbstractButtonTextProps<S> = TextProps & {\n size?: S;\n};\n\nexport type AbstractButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n"],"mappings":"","ignoreList":[]}
@@ -4,6 +4,7 @@ import { assignProps as _assignProps2 } from "@semcore/core";
4
4
  import { assignProps as _assignProps } from "@semcore/core";
5
5
  import { Box } from '@semcore/base-components';
6
6
  import { createComponent, sstyled, Root } from '@semcore/core';
7
+ import { Text } from '@semcore/typography';
7
8
  import React from 'react';
8
9
  /*!__reshadow-styles__:"./button.shadow.css"*/
9
10
  const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButton_1vv7x_gg_{position:relative;display:inline-block;align-items:center;justify-content:center;padding:0;margin:0;white-space:nowrap;font-family:inherit;line-height:normal;-webkit-text-decoration:none;text-decoration:none;text-align:center;vertical-align:middle;border:1px solid transparent;box-shadow:none;cursor:pointer;box-sizing:border-box;overflow:visible;-webkit-user-select:none;-moz-user-select:none;user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent;font-weight:var(--intergalactic-medium, 500);color:var(--intergalactic-text-secondary, #6c6e79);min-width:-moz-fit-content;min-width:fit-content}.___SButton_1vv7x_gg_::-moz-focus-inner{padding:0;border:0}.___SButton_1vv7x_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_1vv7x_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_1vv7x_gg_.__disabled_1vv7x_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none;box-shadow:none;z-index:0}.___SButton_1vv7x_gg_._size_s_1vv7x_gg_{width:var(--intergalactic-form-control-s, 20px);height:var(--intergalactic-form-control-s, 20px);border-radius:var(--intergalactic-addon-rounded, 4px)}.___SButton_1vv7x_gg_._size_m_1vv7x_gg_{height:var(--intergalactic-form-control-m, 28px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-200, 14px)}.___SButton_1vv7x_gg_._size_l_1vv7x_gg_{height:var(--intergalactic-form-control-l, 40px);border-radius:var(--intergalactic-control-rounded, 6px);font-size:var(--intergalactic-fs-300, 16px)}.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info-hover, #006dca)}}.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-info_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-info-active, #044792)}.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success, #009f81)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success-hover, #007c65)}}.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-success_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-success-active, #055345)}.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand, #ff642d)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-hover, #c33909)}}.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-brand_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-active, #8b1500)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-hover, #c33909)}}.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-warning_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-brand-active, #8b1500)}.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical, #ff4953)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical-hover, #d1002f)}}.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-danger_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-primary-critical-active, #8e0016)}.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert, #ffffff)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert-hover, #f4f5f9)}}.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_primary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary, #191b23);background-color:var(--intergalactic-control-primary-invert-active, #e0e1e9)}.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_{color:var(--intergalactic-text-secondary, #6c6e79);border-color:var(--intergalactic-border-primary, #c4c7cf);background-color:var(--intergalactic-control-secondary-neutral, rgba(138, 142, 155, 0.1))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:hover{background-color:var(--intergalactic-control-secondary-neutral-hover,\n rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:active{background-color:var(--intergalactic-control-secondary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_{background-color:var(--intergalactic-control-secondary-info, rgba(0, 143, 248, 0.1));color:var(--intergalactic-text-link, #006dca);border-color:var(--intergalactic-control-primary-info, #008ff8)}@media (hover:hover){.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-secondary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-info_1vv7x_gg_:active{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-secondary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);border-color:var(--intergalactic-border-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert, rgba(255, 255, 255, 0.05))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_secondary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-secondary-invert-active,\n rgba(255, 255, 255, 0.3))}.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info, rgba(0, 143, 248, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_:hover{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info-hover, rgba(0, 143, 248, 0.2))}}.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-info_1vv7x_gg_:active{color:var(--intergalactic-text-link, #006dca);background-color:var(--intergalactic-control-tertiary-info-active, rgba(0, 143, 248, 0.3))}.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_{color:var(--intergalactic-text-secondary, #6c6e79);background-color:var(--intergalactic-control-tertiary-neutral, rgba(138, 142, 155, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_:hover{background-color:var(--intergalactic-control-tertiary-neutral-hover, rgba(138, 142, 155, 0.2));color:var(--intergalactic-text-primary, #191b23)}}.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-muted_1vv7x_gg_:active{background-color:var(--intergalactic-control-tertiary-neutral-active,\n rgba(138, 142, 155, 0.3));color:var(--intergalactic-text-primary, #191b23)}.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert, rgba(255, 255, 255, 0))}@media (hover:hover){.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_:hover{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert-hover, rgba(255, 255, 255, 0.1))}}.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_.__active_1vv7x_gg_,.___SButton_1vv7x_gg_._theme_tertiary-invert_1vv7x_gg_:active{color:var(--intergalactic-text-primary-invert, #ffffff);background-color:var(--intergalactic-control-tertiary-invert-active, rgba(255, 255, 255, 0.3))}.___SButton_1vv7x_gg_._neighborLocation_right_1vv7x_gg_{border-top-right-radius:0;border-bottom-right-radius:0}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_{border-radius:0;margin-left:-1px}.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_{border-top-left-radius:0;border-bottom-left-radius:0;margin-left:-1px}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_{position:relative}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_:after,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_:after{background-color:var(--intergalactic-border-primary-invert, #ffffff)}.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:after,.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_._theme_secondary-muted_1vv7x_gg_:after{background-color:var(--intergalactic-border-primary, #c4c7cf)}.___SButton_1vv7x_gg_+.___SButton_1vv7x_gg_._neighborLocation_both_1vv7x_gg_:after,.___SButton_1vv7x_gg_+.___SButton_1vv7x_gg_._neighborLocation_left_1vv7x_gg_:after{content:\"\";position:absolute;top:-1px;left:-1px;width:1px;height:calc(100% + 2px)}.___SSpin_1vv7x_gg_{position:absolute;top:0;left:0;width:100%;height:100%;display:flex}.___SInner_1vv7x_gg_{display:inline-flex;align-items:center;justify-content:center;height:100%;width:100%}.___SInner_1vv7x_gg_.__loading_1vv7x_gg_{visibility:hidden}.___SText_1vv7x_gg_{display:inline-flex}.___SText_1vv7x_gg_._size_l_1vv7x_gg_,.___SText_1vv7x_gg_._size_m_1vv7x_gg_{margin-left:var(--intergalactic-spacing-2x, 8px);margin-right:var(--intergalactic-spacing-2x, 8px)}.___SText_1vv7x_gg_._size_m_1vv7x_gg_{line-height:var(--intergalactic-lh-200, 142%)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_{line-height:var(--intergalactic-lh-300, 150%)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:only-child{margin-left:var(--intergalactic-spacing-3x, 12px);margin-right:var(--intergalactic-spacing-3x, 12px)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:first-child{margin-left:var(--intergalactic-spacing-3x, 12px)}.___SText_1vv7x_gg_._size_l_1vv7x_gg_:last-child{margin-right:var(--intergalactic-spacing-3x, 12px)}.___SAddon_1vv7x_gg_{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-2x, 8px) - 1px)}.___SAddon_1vv7x_gg_._size_m_1vv7x_gg_:only-child{margin-left:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(1.5*var(--intergalactic-spacing-1x, 4px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:not(:only-child):first-child{margin-left:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:not(:only-child):last-child{margin-right:calc(var(--intergalactic-spacing-3x, 12px) - 1px)}.___SAddon_1vv7x_gg_._size_l_1vv7x_gg_:only-child{margin-left:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px);margin-right:calc(3*var(--intergalactic-spacing-1x, 4px) - 1px)}", /*__inner_css_end__*/"1vv7x_gg_"),
@@ -48,14 +49,12 @@ _defineProperty(RootButton, "defaultProps", {
48
49
  use: 'secondary',
49
50
  size: 'm'
50
51
  });
51
- function Text(props) {
52
+ function ButtonText(props) {
52
53
  var _ref = arguments[0],
53
54
  _ref3;
54
- const SText = Box;
55
+ const SText = Text;
55
56
  return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", {
56
- ..._assignProps({
57
- "tag": 'span'
58
- }, _ref)
57
+ ..._assignProps({}, _ref)
59
58
  }));
60
59
  }
61
60
  function Addon(props) {
@@ -69,7 +68,7 @@ function Addon(props) {
69
68
  }));
70
69
  }
71
70
  const Button = createComponent(RootButton, {
72
- Text,
71
+ Text: ButtonText,
73
72
  Addon
74
73
  });
75
74
  export default Button;
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["Box","createComponent","sstyled","Root","React","style","_sstyled","insert","AbstractButton","RootButton","getTextColor","undefined","_defineProperty","use","size","Text","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","Button"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonAddonProps, ButtonComponent, ButtonTextProps } from './Button.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nclass RootButton extends AbstractButton {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n protected getTextColor(): string | undefined {\n return undefined;\n }\n}\n\nfunction Text(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9D,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,MAAMC,UAAU,SAASD,cAAc,CAAC;EAQ5BE,YAAYA,CAAA,EAAuB;IAC3C,OAAOC,SAAS;EAClB;AACF;AAACC,eAAA,CAXKH,UAAU,iBACO,QAAQ;AAAAG,eAAA,CADzBH,UAAU,WAECJ,KAAK;AAAAO,eAAA,CAFhBH,UAAU,kBAGQ;EACpBI,GAAG,EAAE,WAAW;EAChBC,IAAI,EAAE;AACR,CAAC;AAOH,SAASC,IAAIA,CAACC,KAAsB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACpC,MAAMC,KAAK,GACiCpB,GAAG;EAA/C,OAAAmB,KAAA,GAAOjB,OAAO,CAACc,KAAK,CAACK,MAAM,CAAC,eAACjB,KAAA,CAAAkB,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA;IAAA,GAAAC,YAAA;MAAA,OAAkB;IAAM,GAAAP,IAAA;EAAA,EAAE,CAAC;AAChE;AAEA,SAASQ,KAAKA,CAACT,KAAuB,EAAE;EAAA,IAAAU,KAAA,GAAAR,YAAA;IAAAS,KAAA;EACtC,MAAMC,MAAM,GACiC5B,GAAG;EAAhD,OAAA2B,KAAA,GAAOzB,OAAO,CAACc,KAAK,CAACK,MAAM,CAAC,eAACjB,KAAA,CAAAkB,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,GAAAM,aAAA;MAAA,OAAkB;IAAM,GAAAH,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,MAAMI,MAAM,GAAG7B,eAAe,CAACQ,UAAU,EAAE;EACzCM,IAAI;EACJU;AACF,CAAC,CAAoB;AAErB,eAAeK,MAAM","ignoreList":[]}
1
+ {"version":3,"file":"Button.js","names":["Box","createComponent","sstyled","Root","Text","React","style","_sstyled","insert","AbstractButton","RootButton","getTextColor","undefined","_defineProperty","use","size","ButtonText","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","Button"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonAddonProps, ButtonComponent, ButtonTextProps } from './Button.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nclass RootButton extends AbstractButton {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n protected getTextColor(): string | undefined {\n return undefined;\n }\n}\n\nfunction ButtonText(props: ButtonTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nconst Button = createComponent(RootButton, {\n Text: ButtonText,\n Addon,\n}) as ButtonComponent;\n\nexport default Button;\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9D,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,MAAMC,UAAU,SAASD,cAAc,CAAC;EAQ5BE,YAAYA,CAAA,EAAuB;IAC3C,OAAOC,SAAS;EAClB;AACF;AAACC,eAAA,CAXKH,UAAU,iBACO,QAAQ;AAAAG,eAAA,CADzBH,UAAU,WAECJ,KAAK;AAAAO,eAAA,CAFhBH,UAAU,kBAGQ;EACpBI,GAAG,EAAE,WAAW;EAChBC,IAAI,EAAE;AACR,CAAC;AAOH,SAASC,UAAUA,CAACC,KAAsB,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC1C,MAAMC,KAAK,GACiCjB,IAAI;EAAhD,OAAAgB,KAAA,GAAOlB,OAAO,CAACe,KAAK,CAACK,MAAM,CAAC,eAACjB,KAAA,CAAAkB,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA;IAAA,GAAAC,YAAA,KAAAP,IAAA;EAAA,EAAgB,CAAC;AACtD;AAEA,SAASQ,KAAKA,CAACT,KAAuB,EAAE;EAAA,IAAAU,KAAA,GAAAR,YAAA;IAAAS,KAAA;EACtC,MAAMC,MAAM,GACiC7B,GAAG;EAAhD,OAAA4B,KAAA,GAAO1B,OAAO,CAACe,KAAK,CAACK,MAAM,CAAC,eAACjB,KAAA,CAAAkB,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,GAAAM,aAAA;MAAA,OAAkB;IAAM,GAAAH,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,MAAMI,MAAM,GAAG9B,eAAe,CAACS,UAAU,EAAE;EACzCN,IAAI,EAAEY,UAAU;EAChBU;AACF,CAAC,CAAoB;AAErB,eAAeK,MAAM","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button size\n * @default m\n */\nexport type ButtonSize = 'l' | 'm';\n/**\n * Button type\n * @default secondary\n */\ntype Use = 'primary' | 'secondary' | 'tertiary';\n\n/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme>;\n\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\nexport type ButtonContext = AbstractButtonContext;\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { UnknownProperties, Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button size\n * @default m\n */\nexport type ButtonSize = 'l' | 'm';\n/**\n * Button type\n * @default secondary\n */\ntype Use = 'primary' | 'secondary' | 'tertiary';\n\n/** Button theme */\ntype Theme = 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n\nexport type ButtonProps = AbstractButtonProps<ButtonSize, Use, Theme>;\n\nexport type ButtonTextProps = AbstractButtonTextProps<ButtonSize>;\n\nexport type ButtonAddonProps = AbstractButtonAddonProps<ButtonSize>;\n\nexport type ButtonContext = AbstractButtonContext;\n\nexport type ButtonChildren = {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & ButtonChildren;\n"],"mappings":"","ignoreList":[]}
@@ -5,29 +5,30 @@ import { assignProps as _assignProps } from "@semcore/core";
5
5
  import { Box } from '@semcore/base-components';
6
6
  import { createComponent, sstyled, Root } from '@semcore/core';
7
7
  import resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';
8
+ import { Text } from '@semcore/typography';
8
9
  import React from 'react';
9
10
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
10
- const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButton_uv2ud_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_uv2ud_gg_,.___SButton_uv2ud_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_uv2ud_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_uv2ud_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_uv2ud_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_uv2ud_gg_.__active_uv2ud_gg_ .___SText_uv2ud_gg_,.___SButton_uv2ud_gg_:active .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_uv2ud_gg_:hover .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_uv2ud_gg_.__disabled_uv2ud_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_uv2ud_gg_,.___SInner_uv2ud_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_uv2ud_gg_{height:100%;width:100%}.___SAddon_uv2ud_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_{color:var(--text-color_uv2ud)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:active{color:var(--text-color_uv2ud);filter:brightness(.8)}@media (hover:hover){.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:hover{color:var(--text-color_uv2ud);filter:brightness(.8)}}.___SButton_uv2ud_gg_._size_100_uv2ud_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_uv2ud_gg_._size_200_uv2ud_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_uv2ud_gg_._size_300_uv2ud_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_uv2ud_gg_._size_400_uv2ud_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_uv2ud_gg_._size_500_uv2ud_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_uv2ud_gg_._size_600_uv2ud_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_uv2ud_gg_._size_700_uv2ud_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_uv2ud_gg_._size_800_uv2ud_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_uv2ud_gg_,.___SText_uv2ud_gg_{transition:none}}", /*__inner_css_end__*/"uv2ud_gg_"),
11
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButton_b33zi_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_b33zi_gg_,.___SButton_b33zi_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_b33zi_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_b33zi_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_b33zi_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_b33zi_gg_.__active_b33zi_gg_ .___SText_b33zi_gg_,.___SButton_b33zi_gg_:active .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_b33zi_gg_:hover .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_b33zi_gg_.__disabled_b33zi_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_b33zi_gg_,.___SInner_b33zi_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_b33zi_gg_{height:100%;width:100%}.___SAddon_b33zi_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_{color:var(--text-color_b33zi)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_.__text-color_b33zi_gg_:active{color:var(--text-color_b33zi);filter:brightness(.8)}@media (hover:hover){.___SButton_b33zi_gg_.__text-color_b33zi_gg_:hover{color:var(--text-color_b33zi);filter:brightness(.8)}}.___SButton_b33zi_gg_._size_100_b33zi_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_b33zi_gg_._size_200_b33zi_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_b33zi_gg_._size_300_b33zi_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_b33zi_gg_._size_400_b33zi_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_b33zi_gg_._size_500_b33zi_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_b33zi_gg_._size_600_b33zi_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_b33zi_gg_._size_700_b33zi_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_b33zi_gg_._size_800_b33zi_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_b33zi_gg_,.___SButton_b33zi_gg_ .___SText_b33zi_gg_{transition:none}}", /*__inner_css_end__*/"b33zi_gg_"),
11
12
  /*__reshadow_css_end__*/
12
13
  {
13
- "__SButton": "___SButton_uv2ud_gg_",
14
- "_disabled": "__disabled_uv2ud_gg_",
15
- "__SInner": "___SInner_uv2ud_gg_",
16
- "__SAddon": "___SAddon_uv2ud_gg_",
17
- "_size_100": "_size_100_uv2ud_gg_",
18
- "_size_200": "_size_200_uv2ud_gg_",
19
- "_size_300": "_size_300_uv2ud_gg_",
20
- "_size_400": "_size_400_uv2ud_gg_",
21
- "_size_500": "_size_500_uv2ud_gg_",
22
- "_size_600": "_size_600_uv2ud_gg_",
23
- "_size_700": "_size_700_uv2ud_gg_",
24
- "_size_800": "_size_800_uv2ud_gg_",
25
- "__SText": "___SText_uv2ud_gg_",
26
- "_active": "__active_uv2ud_gg_",
27
- "_enableVisited": "__enableVisited_uv2ud_gg_",
28
- "_use_secondary": "_use_secondary_uv2ud_gg_",
29
- "_text-color": "__text-color_uv2ud_gg_",
30
- "--text-color": "--text-color_uv2ud"
14
+ "__SButton": "___SButton_b33zi_gg_",
15
+ "_disabled": "__disabled_b33zi_gg_",
16
+ "__SInner": "___SInner_b33zi_gg_",
17
+ "__SAddon": "___SAddon_b33zi_gg_",
18
+ "_size_100": "_size_100_b33zi_gg_",
19
+ "_size_200": "_size_200_b33zi_gg_",
20
+ "_size_300": "_size_300_b33zi_gg_",
21
+ "_size_400": "_size_400_b33zi_gg_",
22
+ "_size_500": "_size_500_b33zi_gg_",
23
+ "_size_600": "_size_600_b33zi_gg_",
24
+ "_size_700": "_size_700_b33zi_gg_",
25
+ "_size_800": "_size_800_b33zi_gg_",
26
+ "_active": "__active_b33zi_gg_",
27
+ "__SText": "___SText_b33zi_gg_",
28
+ "_enableVisited": "__enableVisited_b33zi_gg_",
29
+ "_use_secondary": "_use_secondary_b33zi_gg_",
30
+ "_text-color": "__text-color_b33zi_gg_",
31
+ "--text-color": "--text-color_b33zi"
31
32
  });
32
33
  import { AbstractButton } from '../AbstractButton/AbstractButton';
33
34
  const enhance = {
@@ -48,14 +49,12 @@ _defineProperty(RootButtonLink, "style", style);
48
49
  _defineProperty(RootButtonLink, "defaultProps", {
49
50
  use: 'primary'
50
51
  });
51
- function Text(props) {
52
+ function LinkText(props) {
52
53
  var _ref = arguments[0],
53
54
  _ref3;
54
- const SText = Box;
55
+ const SText = Text;
55
56
  return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", {
56
- ..._assignProps({
57
- "tag": 'span'
58
- }, _ref)
57
+ ..._assignProps({}, _ref)
59
58
  }));
60
59
  }
61
60
  function Addon(props) {
@@ -69,7 +68,7 @@ function Addon(props) {
69
68
  }));
70
69
  }
71
70
  export const ButtonLink = createComponent(RootButtonLink, {
72
- Text,
71
+ Text: LinkText,
73
72
  Addon
74
73
  });
75
74
  //# sourceMappingURL=ButtonLink.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.js","names":["Box","createComponent","sstyled","Root","resolveColorEnhance","React","style","_sstyled","insert","AbstractButton","enhance","resolveColor","RootButtonLink","getTextColor","color","asProps","_defineProperty","Object","values","use","Text","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","ButtonLink"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nconst enhance = {\n resolveColor: resolveColorEnhance(),\n};\n\nclass RootButtonLink extends AbstractButton {\n static displayName = 'ButtonLink';\n static enhance = Object.values(enhance);\n static style = style;\n static defaultProps = {\n use: 'primary',\n };\n\n protected getTextColor(): string | undefined {\n const { color, resolveColor } = this.asProps as any;\n return resolveColor(color);\n }\n}\n\nfunction Text(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props: ButtonLinkAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9D,OAAOC,mBAAmB,MAAM,sDAAsD;AACtF,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,MAAMC,OAAO,GAAG;EACdC,YAAY,EAAEP,mBAAmB,CAAC;AACpC,CAAC;AAED,MAAMQ,cAAc,SAASH,cAAc,CAAC;EAQhCI,YAAYA,CAAA,EAAuB;IAC3C,MAAM;MAAEC,KAAK;MAAEH;IAAa,CAAC,GAAG,IAAI,CAACI,OAAc;IACnD,OAAOJ,YAAY,CAACG,KAAK,CAAC;EAC5B;AACF;AAACE,eAAA,CAZKJ,cAAc,iBACG,YAAY;AAAAI,eAAA,CAD7BJ,cAAc,aAEDK,MAAM,CAACC,MAAM,CAACR,OAAO,CAAC;AAAAM,eAAA,CAFnCJ,cAAc,WAGHN,KAAK;AAAAU,eAAA,CAHhBJ,cAAc,kBAII;EACpBO,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,IAAIA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EACxC,MAAMC,KAAK,GACiCzB,GAAG;EAA/C,OAAAwB,KAAA,GAAOtB,OAAO,CAACmB,KAAK,CAACK,MAAM,CAAC,eAACrB,KAAA,CAAAsB,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA;IAAA,GAAAC,YAAA;MAAA,OAAkB;IAAM,GAAAP,IAAA;EAAA,EAAE,CAAC;AAChE;AAEA,SAASQ,KAAKA,CAACT,KAA2B,EAAE;EAAA,IAAAU,KAAA,GAAAR,YAAA;IAAAS,KAAA;EAC1C,MAAMC,MAAM,GACiCjC,GAAG;EAAhD,OAAAgC,KAAA,GAAO9B,OAAO,CAACmB,KAAK,CAACK,MAAM,CAAC,eAACrB,KAAA,CAAAsB,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,GAAAM,aAAA;MAAA,OAAkB;IAAM,GAAAH,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,OAAO,MAAMI,UAAU,GAAGlC,eAAe,CAACW,cAAc,EAAE;EACxDQ,IAAI;EACJU;AACF,CAAC,CAAwB","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.js","names":["Box","createComponent","sstyled","Root","resolveColorEnhance","Text","React","style","_sstyled","insert","AbstractButton","enhance","resolveColor","RootButtonLink","getTextColor","color","asProps","_defineProperty","Object","values","use","LinkText","props","_ref","arguments[0]","_ref3","SText","styles","createElement","cn","_assignProps","Addon","_ref2","_ref4","SAddon","_assignProps2","ButtonLink"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { Box } from '@semcore/base-components';\nimport { createComponent, sstyled, Root } from '@semcore/core';\nimport resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';\nimport { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkAddonProps, ButtonLinkComponent, ButtonLinkTextProps } from './ButtonLink.type';\nimport { AbstractButton } from '../AbstractButton/AbstractButton';\n\nconst enhance = {\n resolveColor: resolveColorEnhance(),\n};\n\nclass RootButtonLink extends AbstractButton {\n static displayName = 'ButtonLink';\n static enhance = Object.values(enhance);\n static style = style;\n static defaultProps = {\n use: 'primary',\n };\n\n protected getTextColor(): string | undefined {\n const { color, resolveColor } = this.asProps as any;\n return resolveColor(color);\n }\n}\n\nfunction LinkText(props: ButtonLinkTextProps) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Text} />);\n}\n\nfunction Addon(props: ButtonLinkAddonProps) {\n const SAddon = Root;\n return sstyled(props.styles)(<SAddon render={Box} tag='span' />);\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text: LinkText,\n Addon,\n}) as ButtonLinkComponent;\n"],"mappings":";;;;AAAA,SAASA,GAAG,QAAQ,0BAA0B;AAC9C,SAASC,eAAe,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AAC9D,OAAOC,mBAAmB,MAAM,sDAAsD;AACtF,SAASC,IAAI,QAAQ,qBAAqB;AAC1C,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAI1B,SAASC,cAAc,QAAQ,kCAAkC;AAEjE,MAAMC,OAAO,GAAG;EACdC,YAAY,EAAER,mBAAmB,CAAC;AACpC,CAAC;AAED,MAAMS,cAAc,SAASH,cAAc,CAAC;EAQhCI,YAAYA,CAAA,EAAuB;IAC3C,MAAM;MAAEC,KAAK;MAAEH;IAAa,CAAC,GAAG,IAAI,CAACI,OAAc;IACnD,OAAOJ,YAAY,CAACG,KAAK,CAAC;EAC5B;AACF;AAACE,eAAA,CAZKJ,cAAc,iBACG,YAAY;AAAAI,eAAA,CAD7BJ,cAAc,aAEDK,MAAM,CAACC,MAAM,CAACR,OAAO,CAAC;AAAAM,eAAA,CAFnCJ,cAAc,WAGHN,KAAK;AAAAU,eAAA,CAHhBJ,cAAc,kBAII;EACpBO,GAAG,EAAE;AACP,CAAC;AAQH,SAASC,QAAQA,CAACC,KAA0B,EAAE;EAAA,IAAAC,IAAA,GAAAC,YAAA;IAAAC,KAAA;EAC5C,MAAMC,KAAK,GACiCrB,IAAI;EAAhD,OAAAoB,KAAA,GAAOvB,OAAO,CAACoB,KAAK,CAACK,MAAM,CAAC,eAACrB,KAAA,CAAAsB,aAAA,CAACF,KAAK,EAAAD,KAAA,CAAAI,EAAA;IAAA,GAAAC,YAAA,KAAAP,IAAA;EAAA,EAAgB,CAAC;AACtD;AAEA,SAASQ,KAAKA,CAACT,KAA2B,EAAE;EAAA,IAAAU,KAAA,GAAAR,YAAA;IAAAS,KAAA;EAC1C,MAAMC,MAAM,GACiClC,GAAG;EAAhD,OAAAiC,KAAA,GAAO/B,OAAO,CAACoB,KAAK,CAACK,MAAM,CAAC,eAACrB,KAAA,CAAAsB,aAAA,CAACM,MAAM,EAAAD,KAAA,CAAAJ,EAAA;IAAA,GAAAM,aAAA;MAAA,OAAkB;IAAM,GAAAH,KAAA;EAAA,EAAE,CAAC;AACjE;AAEA,OAAO,MAAMI,UAAU,GAAGnC,eAAe,CAACY,cAAc,EAAE;EACxDR,IAAI,EAAEgB,QAAQ;EACdU;AACF,CAAC,CAAwB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\n */\nexport type ButtonLinkSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;\n/**\n * Button link type\n * @default primary\n */\ntype Use = 'primary' | 'secondary';\n\nexport type ButtonLinkProps = AbstractButtonProps<ButtonLinkSize, Use, never>;\n\nexport type ButtonLinkTextProps = AbstractButtonTextProps<ButtonLinkSize>;\n\nexport type ButtonLinkAddonProps = AbstractButtonAddonProps<ButtonLinkSize>;\n\nexport type ButtonLinkContext = AbstractButtonContext;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonLinkContext\n> & {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { Intergalactic } from '@semcore/core';\n\nimport type {\n AbstractButtonAddonProps,\n AbstractButtonContext,\n AbstractButtonTextProps,\n AbstractButtonProps,\n} from '../AbstractButton/AbstractButton.type';\n\n/**\n * Button link size\n */\nexport type ButtonLinkSize = 100 | 200 | 300 | 400 | 500 | 600 | 700 | 800;\n/**\n * Button link type\n * @default primary\n */\ntype Use = 'primary' | 'secondary';\n\nexport type ButtonLinkProps = AbstractButtonProps<ButtonLinkSize, Use, never>;\n\nexport type ButtonLinkTextProps = AbstractButtonTextProps<ButtonLinkSize>;\n\nexport type ButtonLinkAddonProps = AbstractButtonAddonProps<ButtonLinkSize>;\n\nexport type ButtonLinkContext = AbstractButtonContext;\n\nexport type ButtonLinkChildren = {\n Text: Intergalactic.Component<'span', ButtonLinkTextProps>;\n Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;\n};\n\nexport type ButtonLinkComponent = Intergalactic.Component<\n 'button',\n ButtonLinkProps,\n ButtonLinkContext\n> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
@@ -151,9 +151,9 @@ SButton[size='800'] {
151
151
  @media (prefers-reduced-motion) {
152
152
  SButton {
153
153
  transition: none;
154
- }
155
154
 
156
- SText {
157
- transition: none;
155
+ SText {
156
+ transition: none;
157
+ }
158
158
  }
159
159
  }
@@ -19,13 +19,23 @@ class AbstractButton extends Component {
19
19
  ariaLabelledByContent: null
20
20
  });
21
21
  }
22
- getTextProps() {
22
+ getTextProps(props) {
23
23
  const {
24
24
  size
25
25
  } = this.asProps;
26
- return {
27
- size
26
+ const textProps = {
27
+ size,
28
+ "use:hintProps": {
29
+ triggerRef: this.containerRef
30
+ }
28
31
  };
32
+ if ("hintProps" in props) {
33
+ textProps["use:hintProps"] = {
34
+ triggerRef: this.containerRef,
35
+ ...props.hintProps
36
+ };
37
+ }
38
+ return textProps;
29
39
  }
30
40
  getAddonProps() {
31
41
  const {
@@ -1,6 +1,7 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { createComponent, sstyled, assignProps } from "@semcore/core";
3
3
  import { Box } from "@semcore/base-components";
4
+ import { Text } from "@semcore/typography";
4
5
  import React from "react";
5
6
  import { AbstractButton } from "../AbstractButton/AbstractButton.mjs";
6
7
  /*!__reshadow-styles__:"./button.shadow.css"*/
@@ -52,13 +53,11 @@ _defineProperty(RootButton, "defaultProps", {
52
53
  use: "secondary",
53
54
  size: "m"
54
55
  });
55
- function Text(props) {
56
+ function ButtonText(props) {
56
57
  var _ref = arguments[0], _ref3;
57
- const SText = Box;
58
+ const SText = Text;
58
59
  return _ref3 = sstyled(props.styles), /* @__PURE__ */ React.createElement(SText, _ref3.cn("SText", {
59
- ...assignProps({
60
- "tag": "span"
61
- }, _ref)
60
+ ...assignProps({}, _ref)
62
61
  }));
63
62
  }
64
63
  function Addon(props) {
@@ -71,7 +70,7 @@ function Addon(props) {
71
70
  }));
72
71
  }
73
72
  const Button = createComponent(RootButton, {
74
- Text,
73
+ Text: ButtonText,
75
74
  Addon
76
75
  });
77
76
  export {
@@ -2,6 +2,7 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import { createComponent, sstyled, assignProps } from "@semcore/core";
3
3
  import { Box } from "@semcore/base-components";
4
4
  import resolveColorEnhance from "@semcore/core/lib/utils/enhances/resolveColorEnhance";
5
+ import { Text } from "@semcore/typography";
5
6
  import React from "react";
6
7
  import { AbstractButton } from "../AbstractButton/AbstractButton.mjs";
7
8
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
@@ -9,29 +10,29 @@ const style = (
9
10
  /*__reshadow_css_start__*/
10
11
  (sstyled.insert(
11
12
  /*__inner_css_start__*/
12
- ".___SButton_uv2ud_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_uv2ud_gg_,.___SButton_uv2ud_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_uv2ud_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_uv2ud_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_uv2ud_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_uv2ud_gg_.__active_uv2ud_gg_ .___SText_uv2ud_gg_,.___SButton_uv2ud_gg_:active .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_uv2ud_gg_:hover .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_uv2ud_gg_.__enableVisited_uv2ud_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_uv2ud_gg_.__disabled_uv2ud_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_uv2ud_gg_._use_secondary_uv2ud_gg_ .___SText_uv2ud_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_uv2ud_gg_,.___SInner_uv2ud_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_uv2ud_gg_{height:100%;width:100%}.___SAddon_uv2ud_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_ .___SAddon_uv2ud_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_{color:var(--text-color_uv2ud)}.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_.__active_uv2ud_gg_,.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:active{color:var(--text-color_uv2ud);filter:brightness(.8)}@media (hover:hover){.___SButton_uv2ud_gg_.__text-color_uv2ud_gg_:hover{color:var(--text-color_uv2ud);filter:brightness(.8)}}.___SButton_uv2ud_gg_._size_100_uv2ud_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_uv2ud_gg_._size_200_uv2ud_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_uv2ud_gg_._size_300_uv2ud_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_uv2ud_gg_._size_400_uv2ud_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_uv2ud_gg_._size_500_uv2ud_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_uv2ud_gg_._size_600_uv2ud_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_uv2ud_gg_._size_700_uv2ud_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_uv2ud_gg_._size_800_uv2ud_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_uv2ud_gg_,.___SText_uv2ud_gg_{transition:none}}",
13
+ ".___SButton_b33zi_gg_{display:inline-flex;font-family:inherit;font-size:var(--intergalactic-fs-200, 14px);color:var(--intergalactic-text-link, #006dca);line-height:normal;position:relative;cursor:pointer;border:0;padding:0;margin:0;box-shadow:none;-webkit-tap-highlight-color:transparent;background:0 0;transition:color .15s ease-in-out}.___SButton_b33zi_gg_,.___SButton_b33zi_gg_:active{-webkit-text-decoration:none;text-decoration:none}@media (hover:hover){.___SButton_b33zi_gg_:hover{-webkit-text-decoration:none;text-decoration:none}}.___SButton_b33zi_gg_::-moz-focus-inner{border:0;padding:0}.___SButton_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_:active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButton_b33zi_gg_:hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButton_b33zi_gg_.__active_b33zi_gg_ .___SText_b33zi_gg_,.___SButton_b33zi_gg_:active .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}@media (hover:hover){.___SButton_b33zi_gg_:hover .___SText_b33zi_gg_{box-shadow:0 1px 0 0 currentColor}}.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited{color:var(--intergalactic-text-link-visited, #8649e1)}@media (hover:hover){.___SButton_b33zi_gg_.__enableVisited_b33zi_gg_:visited:hover{color:var(--intergalactic-text-link-visited, #8649e1)}}.___SButton_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:0 1px 0 0 transparent;transition:box-shadow .15s ease-in-out}.___SButton_b33zi_gg_.__disabled_b33zi_gg_{opacity:var(--intergalactic-disabled-opacity, 0.3);cursor:default;pointer-events:none}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_{color:var(--intergalactic-text-hint, #6c6e79)}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButton_b33zi_gg_._use_secondary_b33zi_gg_:hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButton_b33zi_gg_._use_secondary_b33zi_gg_ .___SText_b33zi_gg_{box-shadow:none;border-bottom-width:1px;border-bottom-style:dashed;border-color:currentColor}.___SAddon_b33zi_gg_,.___SInner_b33zi_gg_{display:inline-flex;justify-content:center;align-items:baseline}.___SInner_b33zi_gg_{height:100%;width:100%}.___SAddon_b33zi_gg_{vertical-align:middle;pointer-events:none;align-self:center}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):first-child{margin-right:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_ .___SAddon_b33zi_gg_:not(:only-child):last-child{margin-left:var(--intergalactic-spacing-1x, 4px)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_{color:var(--text-color_b33zi)}.___SButton_b33zi_gg_.__text-color_b33zi_gg_.__active_b33zi_gg_,.___SButton_b33zi_gg_.__text-color_b33zi_gg_:active{color:var(--text-color_b33zi);filter:brightness(.8)}@media (hover:hover){.___SButton_b33zi_gg_.__text-color_b33zi_gg_:hover{color:var(--text-color_b33zi);filter:brightness(.8)}}.___SButton_b33zi_gg_._size_100_b33zi_gg_{font-size:var(--intergalactic-fs-100, 12px);line-height:var(--intergalactic-lh-100, 133%)}.___SButton_b33zi_gg_._size_200_b33zi_gg_{font-size:var(--intergalactic-fs-200, 14px);line-height:var(--intergalactic-lh-200, 142%)}.___SButton_b33zi_gg_._size_300_b33zi_gg_{font-size:var(--intergalactic-fs-300, 16px);line-height:var(--intergalactic-lh-300, 150%)}.___SButton_b33zi_gg_._size_400_b33zi_gg_{font-size:var(--intergalactic-fs-400, 20px);line-height:var(--intergalactic-lh-400, 120%)}.___SButton_b33zi_gg_._size_500_b33zi_gg_{font-size:var(--intergalactic-fs-500, 24px);line-height:var(--intergalactic-lh-500, 117%)}.___SButton_b33zi_gg_._size_600_b33zi_gg_{font-size:var(--intergalactic-fs-600, 32px);line-height:var(--intergalactic-lh-600, 125%)}.___SButton_b33zi_gg_._size_700_b33zi_gg_{font-size:var(--intergalactic-fs-700, 36px);line-height:var(--intergalactic-lh-700, 110%)}.___SButton_b33zi_gg_._size_800_b33zi_gg_{font-size:var(--intergalactic-fs-800, 48px);line-height:var(--intergalactic-lh-800, 117%)}@media (prefers-reduced-motion){.___SButton_b33zi_gg_,.___SButton_b33zi_gg_ .___SText_b33zi_gg_{transition:none}}",
13
14
  /*__inner_css_end__*/
14
- "uv2ud_gg_"
15
+ "b33zi_gg_"
15
16
  ), /*__reshadow_css_end__*/
16
17
  {
17
- "__SButton": "___SButton_uv2ud_gg_",
18
- "_disabled": "__disabled_uv2ud_gg_",
19
- "__SInner": "___SInner_uv2ud_gg_",
20
- "__SAddon": "___SAddon_uv2ud_gg_",
21
- "_size_100": "_size_100_uv2ud_gg_",
22
- "_size_200": "_size_200_uv2ud_gg_",
23
- "_size_300": "_size_300_uv2ud_gg_",
24
- "_size_400": "_size_400_uv2ud_gg_",
25
- "_size_500": "_size_500_uv2ud_gg_",
26
- "_size_600": "_size_600_uv2ud_gg_",
27
- "_size_700": "_size_700_uv2ud_gg_",
28
- "_size_800": "_size_800_uv2ud_gg_",
29
- "__SText": "___SText_uv2ud_gg_",
30
- "_active": "__active_uv2ud_gg_",
31
- "_enableVisited": "__enableVisited_uv2ud_gg_",
32
- "_use_secondary": "_use_secondary_uv2ud_gg_",
33
- "_text-color": "__text-color_uv2ud_gg_",
34
- "--text-color": "--text-color_uv2ud"
18
+ "__SButton": "___SButton_b33zi_gg_",
19
+ "_disabled": "__disabled_b33zi_gg_",
20
+ "__SInner": "___SInner_b33zi_gg_",
21
+ "__SAddon": "___SAddon_b33zi_gg_",
22
+ "_size_100": "_size_100_b33zi_gg_",
23
+ "_size_200": "_size_200_b33zi_gg_",
24
+ "_size_300": "_size_300_b33zi_gg_",
25
+ "_size_400": "_size_400_b33zi_gg_",
26
+ "_size_500": "_size_500_b33zi_gg_",
27
+ "_size_600": "_size_600_b33zi_gg_",
28
+ "_size_700": "_size_700_b33zi_gg_",
29
+ "_size_800": "_size_800_b33zi_gg_",
30
+ "_active": "__active_b33zi_gg_",
31
+ "__SText": "___SText_b33zi_gg_",
32
+ "_enableVisited": "__enableVisited_b33zi_gg_",
33
+ "_use_secondary": "_use_secondary_b33zi_gg_",
34
+ "_text-color": "__text-color_b33zi_gg_",
35
+ "--text-color": "--text-color_b33zi"
35
36
  })
36
37
  );
37
38
  const enhance = {
@@ -52,13 +53,11 @@ _defineProperty(RootButtonLink, "style", style);
52
53
  _defineProperty(RootButtonLink, "defaultProps", {
53
54
  use: "primary"
54
55
  });
55
- function Text(props) {
56
+ function LinkText(props) {
56
57
  var _ref = arguments[0], _ref3;
57
- const SText = Box;
58
+ const SText = Text;
58
59
  return _ref3 = sstyled(props.styles), /* @__PURE__ */ React.createElement(SText, _ref3.cn("SText", {
59
- ...assignProps({
60
- "tag": "span"
61
- }, _ref)
60
+ ...assignProps({}, _ref)
62
61
  }));
63
62
  }
64
63
  function Addon(props) {
@@ -71,7 +70,7 @@ function Addon(props) {
71
70
  }));
72
71
  }
73
72
  const ButtonLink = createComponent(RootButtonLink, {
74
- Text,
73
+ Text: LinkText,
75
74
  Addon
76
75
  });
77
76
  export {
@@ -151,9 +151,9 @@ SButton[size='800'] {
151
151
  @media (prefers-reduced-motion) {
152
152
  SButton {
153
153
  transition: none;
154
- }
155
154
 
156
- SText {
157
- transition: none;
155
+ SText {
156
+ transition: none;
157
+ }
158
158
  }
159
159
  }
@@ -1,6 +1,6 @@
1
1
  import { Component } from '@semcore/core';
2
2
  import React from 'react';
3
- import type { AbstractButtonProps } from './AbstractButton.type';
3
+ import type { AbstractButtonProps, AbstractButtonTextProps } from './AbstractButton.type';
4
4
  export declare const MAP_USE_DEFAULT_THEME: Record<string, string>;
5
5
  type Props = AbstractButtonProps<any, any, any>;
6
6
  type State = {
@@ -11,9 +11,7 @@ export declare abstract class AbstractButton extends Component<Props, [], never,
11
11
  containerRef: React.RefObject<HTMLButtonElement>;
12
12
  state: State;
13
13
  protected abstract getTextColor(): string | undefined;
14
- getTextProps(): {
15
- size: any;
16
- };
14
+ getTextProps(props: AbstractButtonTextProps<any>): any;
17
15
  getAddonProps(): {
18
16
  size: any;
19
17
  };
@@ -1,5 +1,6 @@
1
1
  import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';
2
2
  import type { PropGetterFn } from '@semcore/core';
3
+ import type { TextProps } from '@semcore/typography';
3
4
  import type React from 'react';
4
5
  export type AbstractButtonProps<S, U, T> = BoxProps & NeighborItemProps & {
5
6
  /** Button activity state */
@@ -27,7 +28,7 @@ export type AbstractButtonProps<S, U, T> = BoxProps & NeighborItemProps & {
27
28
  export type AbstractButtonAddonProps<S> = BoxProps & {
28
29
  size?: S;
29
30
  };
30
- export type AbstractButtonTextProps<S> = BoxProps & {
31
+ export type AbstractButtonTextProps<S> = TextProps & {
31
32
  size?: S;
32
33
  };
33
34
  export type AbstractButtonContext = {
@@ -20,8 +20,5 @@ export type ButtonChildren = {
20
20
  Text: Intergalactic.Component<'span', ButtonTextProps>;
21
21
  Addon: Intergalactic.Component<'span', ButtonAddonProps>;
22
22
  };
23
- export type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & {
24
- Text: Intergalactic.Component<'span', ButtonTextProps>;
25
- Addon: Intergalactic.Component<'span', ButtonAddonProps>;
26
- };
23
+ export type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & ButtonChildren;
27
24
  export {};
@@ -17,8 +17,5 @@ export type ButtonLinkChildren = {
17
17
  Text: Intergalactic.Component<'span', ButtonLinkTextProps>;
18
18
  Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;
19
19
  };
20
- export type ButtonLinkComponent = Intergalactic.Component<'button', ButtonLinkProps, ButtonLinkContext> & {
21
- Text: Intergalactic.Component<'span', ButtonLinkTextProps>;
22
- Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;
23
- };
20
+ export type ButtonLinkComponent = Intergalactic.Component<'button', ButtonLinkProps, ButtonLinkContext> & ButtonLinkChildren;
24
21
  export {};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/button",
3
3
  "description": "Semrush Button Component",
4
- "version": "17.0.0-prerelease.29",
4
+ "version": "17.0.0-prerelease.30",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,7 +14,8 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/spin": "^17.0.0-prerelease.29"
17
+ "@semcore/spin": "^17.0.0-prerelease.30",
18
+ "@semcore/typography": "^17.0.0-prerelease.30"
18
19
  },
19
20
  "peerDependencies": {
20
21
  "@semcore/base-components": "^17.0.0 || ^17.0.0-0"
@@ -25,10 +26,11 @@
25
26
  "directory": "semcore/button"
26
27
  },
27
28
  "devDependencies": {
28
- "@semcore/core": "17.0.0-prerelease.29",
29
- "@semcore/base-components": "17.0.0-prerelease.29",
29
+ "@floating-ui/dom": "1.7.2",
30
+ "@semcore/core": "17.0.0-prerelease.30",
31
+ "@semcore/icon": "16.7.2-prerelease.30",
30
32
  "@semcore/testing-utils": "1.0.0",
31
- "@semcore/icon": "16.7.2-prerelease.29"
33
+ "@semcore/base-components": "17.0.0-prerelease.30"
32
34
  },
33
35
  "scripts": {
34
36
  "build": "pnpm semcore-builder && pnpm vite build"
@@ -5,7 +5,7 @@ import hasLabels from '@semcore/core/lib/utils/hasLabels';
5
5
  import logger from '@semcore/core/lib/utils/logger';
6
6
  import React from 'react';
7
7
 
8
- import type { AbstractButtonProps } from './AbstractButton.type';
8
+ import type { AbstractButtonProps, AbstractButtonTextProps } from './AbstractButton.type';
9
9
  import SpinButton from './SpinButton';
10
10
 
11
11
  export const MAP_USE_DEFAULT_THEME: Record<string, string> = {
@@ -31,12 +31,22 @@ export abstract class AbstractButton extends Component<Props, [], never, {}, Sta
31
31
 
32
32
  protected abstract getTextColor(): string | undefined;
33
33
 
34
- getTextProps() {
34
+ getTextProps(props: AbstractButtonTextProps<any>) {
35
35
  const { size } = this.asProps;
36
36
 
37
- return {
37
+ // `any` because we don't have typings for `use:PROPS`.
38
+ const textProps: any = {
38
39
  size,
40
+ 'use:hintProps': {
41
+ triggerRef: this.containerRef,
42
+ },
39
43
  };
44
+
45
+ if ('hintProps' in props) {
46
+ textProps['use:hintProps'] = { triggerRef: this.containerRef, ...props.hintProps };
47
+ }
48
+
49
+ return textProps;
40
50
  }
41
51
 
42
52
  getAddonProps() {
@@ -1,5 +1,6 @@
1
1
  import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';
2
2
  import type { PropGetterFn } from '@semcore/core';
3
+ import type { TextProps } from '@semcore/typography';
3
4
  import type React from 'react';
4
5
 
5
6
  export type AbstractButtonProps<S, U, T> = BoxProps &
@@ -32,7 +33,7 @@ export type AbstractButtonAddonProps<S> = BoxProps & {
32
33
  size?: S;
33
34
  };
34
35
 
35
- export type AbstractButtonTextProps<S> = BoxProps & {
36
+ export type AbstractButtonTextProps<S> = TextProps & {
36
37
  size?: S;
37
38
  };
38
39
 
@@ -1,5 +1,6 @@
1
1
  import { Box } from '@semcore/base-components';
2
2
  import { createComponent, sstyled, Root } from '@semcore/core';
3
+ import { Text } from '@semcore/typography';
3
4
  import React from 'react';
4
5
 
5
6
  import style from './button.shadow.css';
@@ -19,9 +20,9 @@ class RootButton extends AbstractButton {
19
20
  }
20
21
  }
21
22
 
22
- function Text(props: ButtonTextProps) {
23
+ function ButtonText(props: ButtonTextProps) {
23
24
  const SText = Root;
24
- return sstyled(props.styles)(<SText render={Box} tag='span' />);
25
+ return sstyled(props.styles)(<SText render={Text} />);
25
26
  }
26
27
 
27
28
  function Addon(props: ButtonAddonProps) {
@@ -30,7 +31,7 @@ function Addon(props: ButtonAddonProps) {
30
31
  }
31
32
 
32
33
  const Button = createComponent(RootButton, {
33
- Text,
34
+ Text: ButtonText,
34
35
  Addon,
35
36
  }) as ButtonComponent;
36
37
 
@@ -34,7 +34,4 @@ export type ButtonChildren = {
34
34
  Addon: Intergalactic.Component<'span', ButtonAddonProps>;
35
35
  };
36
36
 
37
- export type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & {
38
- Text: Intergalactic.Component<'span', ButtonTextProps>;
39
- Addon: Intergalactic.Component<'span', ButtonAddonProps>;
40
- };
37
+ export type ButtonComponent = Intergalactic.Component<'button', ButtonProps, ButtonContext> & ButtonChildren;
@@ -1,6 +1,7 @@
1
1
  import { Box } from '@semcore/base-components';
2
2
  import { createComponent, sstyled, Root } from '@semcore/core';
3
3
  import resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';
4
+ import { Text } from '@semcore/typography';
4
5
  import React from 'react';
5
6
 
6
7
  import style from './buttonLink.shadow.css';
@@ -25,9 +26,9 @@ class RootButtonLink extends AbstractButton {
25
26
  }
26
27
  }
27
28
 
28
- function Text(props: ButtonLinkTextProps) {
29
+ function LinkText(props: ButtonLinkTextProps) {
29
30
  const SText = Root;
30
- return sstyled(props.styles)(<SText render={Box} tag='span' />);
31
+ return sstyled(props.styles)(<SText render={Text} />);
31
32
  }
32
33
 
33
34
  function Addon(props: ButtonLinkAddonProps) {
@@ -36,6 +37,6 @@ function Addon(props: ButtonLinkAddonProps) {
36
37
  }
37
38
 
38
39
  export const ButtonLink = createComponent(RootButtonLink, {
39
- Text,
40
+ Text: LinkText,
40
41
  Addon,
41
42
  }) as ButtonLinkComponent;
@@ -34,7 +34,4 @@ export type ButtonLinkComponent = Intergalactic.Component<
34
34
  'button',
35
35
  ButtonLinkProps,
36
36
  ButtonLinkContext
37
- > & {
38
- Text: Intergalactic.Component<'span', ButtonLinkTextProps>;
39
- Addon: Intergalactic.Component<'span', ButtonLinkAddonProps>;
40
- };
37
+ > & ButtonLinkChildren;
@@ -151,9 +151,9 @@ SButton[size='800'] {
151
151
  @media (prefers-reduced-motion) {
152
152
  SButton {
153
153
  transition: none;
154
- }
155
154
 
156
- SText {
157
- transition: none;
155
+ SText {
156
+ transition: none;
157
+ }
158
158
  }
159
159
  }