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

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 (56) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/component/Button/Button.js +117 -13
  3. package/lib/cjs/component/Button/Button.js.map +1 -1
  4. package/lib/cjs/component/Button/Button.type.js.map +1 -1
  5. package/lib/cjs/component/Button/SpinButton.js.map +1 -0
  6. package/lib/cjs/component/ButtonLink/ButtonLink.js +28 -53
  7. package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
  8. package/lib/cjs/component/ButtonLink/ButtonLink.type.js.map +1 -1
  9. package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +10 -140
  10. package/lib/cjs/index.js +3 -4
  11. package/lib/cjs/index.js.map +1 -1
  12. package/lib/es6/component/Button/Button.js +119 -15
  13. package/lib/es6/component/Button/Button.js.map +1 -1
  14. package/lib/es6/component/Button/Button.type.js.map +1 -1
  15. package/lib/es6/component/Button/SpinButton.js.map +1 -0
  16. package/lib/es6/component/ButtonLink/ButtonLink.js +29 -55
  17. package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
  18. package/lib/es6/component/ButtonLink/ButtonLink.type.js.map +1 -1
  19. package/lib/es6/component/ButtonLink/buttonLink.shadow.css +10 -140
  20. package/lib/es6/index.js +1 -2
  21. package/lib/es6/index.js.map +1 -1
  22. package/lib/esm/component/Button/Button.mjs +117 -12
  23. package/lib/esm/component/ButtonLink/ButtonLink.mjs +29 -53
  24. package/lib/esm/component/ButtonLink/buttonLink.shadow.css +10 -140
  25. package/lib/esm/index.mjs +1 -2
  26. package/lib/types/component/Button/Button.d.ts +28 -1
  27. package/lib/types/component/Button/Button.type.d.ts +39 -19
  28. package/lib/types/component/ButtonLink/ButtonLink.type.d.ts +14 -16
  29. package/lib/types/index.d.ts +1 -2
  30. package/package.json +7 -7
  31. package/src/component/Button/Button.tsx +144 -7
  32. package/src/component/Button/Button.type.ts +45 -30
  33. package/src/component/ButtonLink/ButtonLink.tsx +22 -27
  34. package/src/component/ButtonLink/ButtonLink.type.ts +14 -22
  35. package/src/component/ButtonLink/buttonLink.shadow.css +10 -140
  36. package/src/index.ts +1 -2
  37. package/lib/cjs/component/AbstractButton/AbstractButton.js +0 -136
  38. package/lib/cjs/component/AbstractButton/AbstractButton.js.map +0 -1
  39. package/lib/cjs/component/AbstractButton/AbstractButton.type.js +0 -2
  40. package/lib/cjs/component/AbstractButton/AbstractButton.type.js.map +0 -1
  41. package/lib/cjs/component/AbstractButton/SpinButton.js.map +0 -1
  42. package/lib/es6/component/AbstractButton/AbstractButton.js +0 -129
  43. package/lib/es6/component/AbstractButton/AbstractButton.js.map +0 -1
  44. package/lib/es6/component/AbstractButton/AbstractButton.type.js +0 -2
  45. package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +0 -1
  46. package/lib/es6/component/AbstractButton/SpinButton.js.map +0 -1
  47. package/lib/esm/component/AbstractButton/AbstractButton.mjs +0 -129
  48. package/lib/types/component/AbstractButton/AbstractButton.d.ts +0 -21
  49. package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +0 -37
  50. package/src/component/AbstractButton/AbstractButton.tsx +0 -171
  51. package/src/component/AbstractButton/AbstractButton.type.ts +0 -43
  52. /package/lib/cjs/component/{AbstractButton → Button}/SpinButton.js +0 -0
  53. /package/lib/es6/component/{AbstractButton → Button}/SpinButton.js +0 -0
  54. /package/lib/esm/component/{AbstractButton → Button}/SpinButton.mjs +0 -0
  55. /package/lib/types/component/{AbstractButton → Button}/SpinButton.d.ts +0 -0
  56. /package/src/component/{AbstractButton → Button}/SpinButton.tsx +0 -0
@@ -1,9 +1,13 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { sstyled as _sstyled } from "@semcore/core";
3
+ import { assignProps as _assignProps3 } from "@semcore/core";
3
4
  import { assignProps as _assignProps2 } from "@semcore/core";
4
5
  import { assignProps as _assignProps } from "@semcore/core";
5
- import { Box } from '@semcore/base-components';
6
- import { createComponent, sstyled, Root } from '@semcore/core';
6
+ import { NeighborLocation, Box, Hint } from '@semcore/base-components';
7
+ import { Component, CORE_INSTANCE, createComponent, Root, sstyled } from '@semcore/core';
8
+ import addonTextChildren from '@semcore/core/lib/utils/addonTextChildren';
9
+ import hasLabels from '@semcore/core/lib/utils/hasLabels';
10
+ import logger from '@semcore/core/lib/utils/logger';
7
11
  import { Text } from '@semcore/typography';
8
12
  import React from 'react';
9
13
  /*!__reshadow-styles__:"./button.shadow.css"*/
@@ -37,10 +41,110 @@ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/
37
41
  "_theme_tertiary-muted": "_theme_tertiary-muted_1vv7x_gg_",
38
42
  "_theme_tertiary-invert": "_theme_tertiary-invert_1vv7x_gg_"
39
43
  });
40
- import { AbstractButton } from '../AbstractButton/AbstractButton';
41
- class RootButton extends AbstractButton {
42
- getTextColor() {
43
- return undefined;
44
+ import SpinButton from './SpinButton';
45
+ export const MAP_USE_DEFAULT_THEME = {
46
+ primary: 'info',
47
+ secondary: 'muted',
48
+ tertiary: 'info'
49
+ };
50
+ export class RootButton extends Component {
51
+ constructor(...args) {
52
+ super(...args);
53
+ _defineProperty(this, "containerRef", /*#__PURE__*/React.createRef());
54
+ _defineProperty(this, "state", {
55
+ ariaLabelledByContent: null
56
+ });
57
+ }
58
+ getTextProps() {
59
+ const {
60
+ size
61
+ } = this.asProps;
62
+ return {
63
+ size,
64
+ 'hint:triggerRef': this.containerRef
65
+ };
66
+ }
67
+ getAddonProps() {
68
+ const {
69
+ size
70
+ } = this.asProps;
71
+ return {
72
+ size
73
+ };
74
+ }
75
+ componentDidMount() {
76
+ if (process.env.NODE_ENV !== 'production') {
77
+ logger.warn(this.containerRef.current && !hasLabels(this.containerRef.current) && !this.asProps.title, `'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content`, this.asProps['data-ui-name'] || RootButton.displayName);
78
+ }
79
+ const ariaLabelledby = this.asProps['aria-labelledby'];
80
+ if (ariaLabelledby) {
81
+ setTimeout(() => {
82
+ this.setState({
83
+ ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? ''
84
+ });
85
+ }, 0);
86
+ }
87
+ }
88
+ render() {
89
+ var _ref = this.asProps;
90
+ const {
91
+ styles,
92
+ use,
93
+ theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],
94
+ loading,
95
+ disabled = loading,
96
+ size,
97
+ neighborLocation,
98
+ children,
99
+ title,
100
+ ['aria-label']: ariaLabel,
101
+ Children,
102
+ addonLeft: AddonLeft,
103
+ addonRight: AddonRight,
104
+ hintPlacement
105
+ } = this.asProps;
106
+ const SButton = Box;
107
+ // @ts-ignore
108
+ const Button = this[CORE_INSTANCE];
109
+ const useTheme = use && theme ? `${use}-${theme}` : false;
110
+ const SInner = Box;
111
+ const SSpin = Box;
112
+ const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
113
+ const showHint = children === undefined || title;
114
+ return /*#__PURE__*/React.createElement(NeighborLocation.Detect, {
115
+ neighborLocation: neighborLocation
116
+ }, neighborLocation => {
117
+ var _ref4;
118
+ return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SButton, _ref4.cn("SButton", {
119
+ ..._assignProps({
120
+ "invertOutline": theme === 'invert',
121
+ "type": 'button',
122
+ "tag": 'button',
123
+ "tabIndex": 0,
124
+ "disabled": disabled,
125
+ "use:theme": useTheme,
126
+ "ref": this.containerRef,
127
+ "aria-busy": loading,
128
+ "__excludeProps": ['title'],
129
+ "aria-label": showHint ? buttonAriaLabel : undefined,
130
+ "neighborLocation": neighborLocation
131
+ }, _ref)
132
+ }), /*#__PURE__*/React.createElement(SInner, _ref4.cn("SInner", {
133
+ "tag": 'span',
134
+ "loading": loading,
135
+ "data-ui-name": `${this.asProps['data-ui-name']}.InnerWrapper`
136
+ }), AddonLeft ? /*#__PURE__*/React.createElement(Button.Addon, null, /*#__PURE__*/React.createElement(AddonLeft, _ref4.cn("AddonLeft", {}))) : null, addonTextChildren(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/React.createElement(Button.Addon, null, /*#__PURE__*/React.createElement(AddonRight, _ref4.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/React.createElement(SSpin, _ref4.cn("SSpin", {
137
+ "tag": 'span'
138
+ }), /*#__PURE__*/React.createElement(SpinButton, _ref4.cn("SpinButton", {
139
+ "centered": true,
140
+ "size": size,
141
+ "theme": useTheme
142
+ })))), showHint && /*#__PURE__*/React.createElement(Hint, _ref4.cn("Hint", {
143
+ "triggerRef": this.containerRef,
144
+ "timeout": [250, 50],
145
+ "placement": hintPlacement
146
+ }), buttonAriaLabel));
147
+ });
44
148
  }
45
149
  }
46
150
  _defineProperty(RootButton, "displayName", 'Button');
@@ -50,21 +154,21 @@ _defineProperty(RootButton, "defaultProps", {
50
154
  size: 'm'
51
155
  });
52
156
  function ButtonText(props) {
53
- var _ref = arguments[0],
54
- _ref3;
157
+ var _ref2 = arguments[0],
158
+ _ref5;
55
159
  const SText = Text;
56
- return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", {
57
- ..._assignProps({}, _ref)
160
+ return _ref5 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref5.cn("SText", {
161
+ ..._assignProps2({}, _ref2)
58
162
  }));
59
163
  }
60
164
  function Addon(props) {
61
- var _ref2 = arguments[0],
62
- _ref4;
165
+ var _ref3 = arguments[0],
166
+ _ref6;
63
167
  const SAddon = Box;
64
- return _ref4 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref4.cn("SAddon", {
65
- ..._assignProps2({
168
+ return _ref6 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref6.cn("SAddon", {
169
+ ..._assignProps3({
66
170
  "tag": 'span'
67
- }, _ref2)
171
+ }, _ref3)
68
172
  }));
69
173
  }
70
174
  const Button = createComponent(RootButton, {
@@ -1 +1 @@
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
+ {"version":3,"file":"Button.js","names":["NeighborLocation","Box","Hint","Component","CORE_INSTANCE","createComponent","Root","sstyled","addonTextChildren","hasLabels","logger","Text","React","style","_sstyled","insert","SpinButton","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","RootButton","constructor","args","_defineProperty","createRef","ariaLabelledByContent","getTextProps","size","asProps","containerRef","getAddonProps","componentDidMount","process","env","NODE_ENV","warn","current","title","displayName","ariaLabelledby","setTimeout","setState","document","getElementById","textContent","render","_ref","styles","use","theme","loading","disabled","neighborLocation","children","ariaLabel","Children","addonLeft","AddonLeft","addonRight","AddonRight","hintPlacement","SButton","Button","useTheme","SInner","SSpin","buttonAriaLabel","state","showHint","undefined","createElement","Detect","_ref4","Fragment","cn","_assignProps","Addon","ButtonText","props","_ref2","arguments[0]","_ref5","SText","_assignProps2","_ref3","_ref6","SAddon","_assignProps3"],"sources":["../../../../src/component/Button/Button.tsx"],"sourcesContent":["import { NeighborLocation, Box, Hint } from '@semcore/base-components';\nimport { Component, CORE_INSTANCE, createComponent, 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 { Text } from '@semcore/typography';\nimport React from 'react';\n\nimport style from './button.shadow.css';\nimport type { ButtonProps, ButtonAddonProps, ButtonTextProps, ButtonComponent } from './Button.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 State = {\n ariaLabelledByContent: null | string;\n};\n\nexport class RootButton extends Component<ButtonProps, [], never, {}, State> {\n static displayName = 'Button';\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n state: State = {\n ariaLabelledByContent: null,\n };\n\n getTextProps() {\n const { size } = this.asProps;\n\n return {\n size,\n 'hint:triggerRef': this.containerRef,\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'] || RootButton.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 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\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":"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","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> & ButtonChildren;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"Button.type.js","names":[],"sources":["../../../../src/component/Button/Button.type.ts"],"sourcesContent":["import type { BoxProps, NeighborItemProps, SimpleHintPopperProps } from '@semcore/base-components';\nimport type { Intergalactic, PropGetterFn } from '@semcore/core';\nimport type { TextProps } from '@semcore/typography';\nimport type React from 'react';\n\nexport type ButtonProps = 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.\n * @default `m`\n */\n size?: 'l' | 'm';\n /** Button usage.\n * @default `primary`\n */\n use?: 'primary' | 'secondary' | 'tertiary';\n /** Button theme.\n * @default undefined\n */\n theme?: 'info' | 'success' | 'brand' | 'danger' | 'muted' | 'invert';\n };\n\nexport type ButtonTextProps = TextProps;\n\nexport type ButtonAddonProps = BoxProps;\n\nexport type ButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\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":[]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpinButton.js","names":["Spin","React","SPIN_SIZE_MAP","xl","l","m","s","SpinButton","theme","size","others","createElement","_extends"],"sources":["../../../../src/component/Button/SpinButton.tsx"],"sourcesContent":["import Spin from '@semcore/spin';\nimport React from 'react';\n\nexport const SPIN_SIZE_MAP: Record<string, string> = {\n xl: 'm',\n l: 's',\n m: 'xs',\n s: 'xxs',\n};\n\nexport default function SpinButton({ theme, size, ...others }: any) {\n return (\n <Spin\n size={typeof size === 'string' ? SPIN_SIZE_MAP[size] : size}\n theme='currentColor'\n {...others}\n />\n );\n}\n"],"mappings":";AAAA,OAAOA,IAAI,MAAM,eAAe;AAChC,OAAOC,KAAK,MAAM,OAAO;AAEzB,OAAO,MAAMC,aAAqC,GAAG;EACnDC,EAAE,EAAE,GAAG;EACPC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAC;AAED,eAAe,SAASC,UAAUA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAE,GAAGC;AAAY,CAAC,EAAE;EAClE,oBACET,KAAA,CAAAU,aAAA,CAACX,IAAI,EAAAY,QAAA;IACHH,IAAI,EAAE,OAAOA,IAAI,KAAK,QAAQ,GAAGP,aAAa,CAACO,IAAI,CAAC,GAAGA,IAAK;IAC5DD,KAAK,EAAC;EAAc,GAChBE,MAAM,CACX,CAAC;AAEN","ignoreList":[]}
@@ -1,74 +1,48 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import { sstyled as _sstyled } from "@semcore/core";
3
- import { assignProps as _assignProps2 } from "@semcore/core";
4
3
  import { assignProps as _assignProps } from "@semcore/core";
5
- import { Box } from '@semcore/base-components';
6
- import { createComponent, sstyled, Root } from '@semcore/core';
7
- import resolveColorEnhance from '@semcore/core/lib/utils/enhances/resolveColorEnhance';
8
- import { Text } from '@semcore/typography';
4
+ import { createComponent, sstyled, Root, Component } from '@semcore/core';
5
+ import Link from '@semcore/link';
9
6
  import React from 'react';
10
7
  /*!__reshadow-styles__:"./buttonLink.shadow.css"*/
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_"),
8
+ const style = (/*__reshadow_css_start__*/_sstyled.insert(/*__inner_css_start__*/".___SButtonLink_3pzzd_gg_{border:0;font-family:inherit}.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_){color:var(--intergalactic-text-link, #006dca)}.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_.__active_3pzzd_gg_:not(.__color_3pzzd_gg_),.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_):active{color:var(--intergalactic-text-link-hover-active, #044792)}@media (hover:hover){.___SButtonLink_3pzzd_gg_._use_primary_3pzzd_gg_:not(.__color_3pzzd_gg_):hover{color:var(--intergalactic-text-link-hover-active, #044792)}}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_){color:var(--intergalactic-text-hint, #6c6e79)}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_.__active_3pzzd_gg_:not(.__color_3pzzd_gg_),.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_):active{color:var(--intergalactic-text-hint-hover-active, #484a54)}@media (hover:hover){.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_:not(.__color_3pzzd_gg_):hover{color:var(--intergalactic-text-hint-hover-active, #484a54)}}.___SButtonLink_3pzzd_gg_._use_secondary_3pzzd_gg_ .___SText_3pzzd_gg_{text-decoration-style:dashed;text-decoration-color:currentColor}", /*__inner_css_end__*/"3pzzd_gg_"),
12
9
  /*__reshadow_css_end__*/
13
10
  {
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"
11
+ "__SButtonLink": "___SButtonLink_3pzzd_gg_",
12
+ "_use_secondary": "_use_secondary_3pzzd_gg_",
13
+ "__SText": "___SText_3pzzd_gg_",
14
+ "_use_primary": "_use_primary_3pzzd_gg_",
15
+ "_color": "__color_3pzzd_gg_",
16
+ "_active": "__active_3pzzd_gg_"
32
17
  });
33
- import { AbstractButton } from '../AbstractButton/AbstractButton';
34
- const enhance = {
35
- resolveColor: resolveColorEnhance()
36
- };
37
- class RootButtonLink extends AbstractButton {
38
- getTextColor() {
18
+ class RootButtonLink extends Component {
19
+ render() {
20
+ var _ref = this.asProps,
21
+ _ref2;
22
+ const SButtonLink = Link;
39
23
  const {
40
- color,
41
- resolveColor
24
+ disabled
42
25
  } = this.asProps;
43
- return resolveColor(color);
26
+ return _ref2 = sstyled(style), /*#__PURE__*/React.createElement(SButtonLink, _ref2.cn("SButtonLink", {
27
+ ..._assignProps({
28
+ "tag": 'button',
29
+ "type": 'button',
30
+ "use:disabled": disabled,
31
+ "use:tabIndex": 0
32
+ }, _ref)
33
+ }));
44
34
  }
45
35
  }
46
36
  _defineProperty(RootButtonLink, "displayName", 'ButtonLink');
47
- _defineProperty(RootButtonLink, "enhance", Object.values(enhance));
48
37
  _defineProperty(RootButtonLink, "style", style);
49
38
  _defineProperty(RootButtonLink, "defaultProps", {
50
- use: 'primary'
39
+ use: 'primary',
40
+ size: 200
51
41
  });
52
- function LinkText(props) {
53
- var _ref = arguments[0],
54
- _ref3;
55
- const SText = Text;
56
- return _ref3 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref3.cn("SText", {
57
- ..._assignProps({}, _ref)
58
- }));
59
- }
60
- function Addon(props) {
61
- var _ref2 = arguments[0],
62
- _ref4;
63
- const SAddon = Box;
64
- return _ref4 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref4.cn("SAddon", {
65
- ..._assignProps2({
66
- "tag": 'span'
67
- }, _ref2)
68
- }));
69
- }
70
42
  export const ButtonLink = createComponent(RootButtonLink, {
71
- Text: LinkText,
72
- Addon
43
+ Text: Link.Text,
44
+ Addon: Link.Addon
45
+ }, {
46
+ parent: Link
73
47
  });
74
48
  //# sourceMappingURL=ButtonLink.js.map
@@ -1 +1 @@
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
+ {"version":3,"file":"ButtonLink.js","names":["createComponent","sstyled","Root","Component","Link","React","style","_sstyled","insert","RootButtonLink","render","_ref","asProps","_ref2","SButtonLink","disabled","createElement","cn","_assignProps","_defineProperty","use","size","ButtonLink","Text","Addon","parent"],"sources":["../../../../src/component/ButtonLink/ButtonLink.tsx"],"sourcesContent":["import { createComponent, sstyled, Root, Component } from '@semcore/core';\nimport Link from '@semcore/link';\nimport React from 'react';\n\nimport style from './buttonLink.shadow.css';\nimport type { ButtonLinkComponent, ButtonLinkProps } from './ButtonLink.type';\n\nclass RootButtonLink extends Component<ButtonLinkProps> {\n static displayName = 'ButtonLink';\n static style = style;\n static defaultProps = {\n use: 'primary',\n size: 200,\n };\n\n render(): React.ReactNode {\n const SButtonLink = Root;\n const { disabled } = this.asProps;\n\n return sstyled(style)(\n <SButtonLink\n render={Link}\n tag='button'\n type='button'\n use:disabled={disabled}\n use:tabIndex={0}\n />,\n );\n }\n}\n\nexport const ButtonLink = createComponent(RootButtonLink, {\n Text: Link.Text,\n Addon: Link.Addon,\n}, {\n parent: Link,\n}) as ButtonLinkComponent;\n"],"mappings":";;;AAAA,SAASA,eAAe,EAAEC,OAAO,EAAEC,IAAI,EAAEC,SAAS,QAAQ,eAAe;AACzE,OAAOC,IAAI,MAAM,eAAe;AAChC,OAAOC,KAAK,MAAM,OAAO;AAAC;AAAA,MAAAC,KAAA,8BAAAC,QAAA,CAAAC,MAAA;AAAA;AAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA;AAAA;AAK1B,MAAMC,cAAc,SAASN,SAAS,CAAkB;EAQtDO,MAAMA,CAAA,EAAoB;IAAA,IAAAC,IAAA,QAAAC,OAAA;MAAAC,KAAA;IACxB,MAAMC,WAAW,GAKLV,IAAI;IAJhB,MAAM;MAAEW;IAAS,CAAC,GAAG,IAAI,CAACH,OAAO;IAEjC,OAAAC,KAAA,GAAOZ,OAAO,CAACK,KAAK,CAAC,eACnBD,KAAA,CAAAW,aAAA,CAACF,WAAW,EAAAD,KAAA,CAAAI,EAAA;MAAA,GAAAC,YAAA;QAAA,OAEN,QAAQ;QAAA,QACP,QAAQ;QAAA,gBACCH,QAAQ;QAAA,gBACR;MAAC,GAAAJ,IAAA;IAAA,EAChB,CAAC;EAEN;AACF;AAACQ,eAAA,CAtBKV,cAAc,iBACG,YAAY;AAAAU,eAAA,CAD7BV,cAAc,WAEHH,KAAK;AAAAa,eAAA,CAFhBV,cAAc,kBAGI;EACpBW,GAAG,EAAE,SAAS;EACdC,IAAI,EAAE;AACR,CAAC;AAkBH,OAAO,MAAMC,UAAU,GAAGtB,eAAe,CAACS,cAAc,EAAE;EACxDc,IAAI,EAAEnB,IAAI,CAACmB,IAAI;EACfC,KAAK,EAAEpB,IAAI,CAACoB;AACd,CAAC,EAAE;EACDC,MAAM,EAAErB;AACV,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> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"ButtonLink.type.js","names":[],"sources":["../../../../src/component/ButtonLink/ButtonLink.type.ts"],"sourcesContent":["import type { BoxProps } from '@semcore/base-components';\nimport type { Intergalactic } from '@semcore/core';\nimport type { LinkProps } from '@semcore/link';\nimport type { TextProps } from '@semcore/typography';\n\nimport type { ButtonContext } from '../Button/Button.type';\n\nexport type ButtonLinkProps = Intergalactic.InternalTypings.EfficientOmit<LinkProps, 'enableVisited'> & {\n /**\n * Button link type\n * @default primary\n */\n use?: 'primary' | 'secondary';\n};\n\nexport type ButtonLinkTextProps = TextProps;\n\nexport type ButtonLinkAddonProps = BoxProps;\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 ButtonContext\n> & ButtonLinkChildren;\n"],"mappings":"","ignoreList":[]}
@@ -1,59 +1,19 @@
1
- SButton {
2
- display: inline-flex;
1
+ SButtonLink {
2
+ border: none;
3
3
  font-family: inherit;
4
- font-size: var(--intergalactic-fs-200, 14px);
4
+ }
5
+
6
+ SButtonLink[use='primary']:not([color]) {
5
7
  color: var(--intergalactic-text-link, #006dca);
6
- line-height: normal;
7
- position: relative;
8
- cursor: pointer;
9
- text-decoration: none;
10
- border: none;
11
- padding: 0;
12
- margin: 0;
13
- box-shadow: none;
14
- -webkit-tap-highlight-color: transparent;
15
- background: none;
16
- transition: color 0.15s ease-in-out;
17
8
 
9
+ &[active],
18
10
  &:active,
19
11
  &:hover {
20
- text-decoration: none;
21
- }
22
-
23
- &::-moz-focus-inner {
24
- border: none;
25
- padding: 0;
26
- }
27
-
28
- &[active],
29
- &:hover,
30
- &:active {
31
12
  color: var(--intergalactic-text-link-hover-active, #044792);
32
-
33
- & SText {
34
- box-shadow: 0 1px 0 0 currentColor;
35
- }
36
- }
37
-
38
- &[enableVisited]:visited,
39
- &[enableVisited]:visited:hover {
40
- color: var(--intergalactic-text-link-visited, #8649e1);
41
13
  }
42
-
43
- SText {
44
- box-shadow: 0 1px 0 0 transparent;
45
- transition: box-shadow 0.15s ease-in-out;
46
- }
47
- }
48
-
49
- SButton[disabled] {
50
- opacity: var(--intergalactic-disabled-opacity, 0.3);
51
- cursor: default;
52
- /* Disable link interactions */
53
- pointer-events: none;
54
14
  }
55
15
 
56
- SButton[use='secondary'] {
16
+ SButtonLink[use='secondary']:not([color]) {
57
17
  color: var(--intergalactic-text-hint, #6c6e79);
58
18
 
59
19
  &[active],
@@ -61,99 +21,9 @@ SButton[use='secondary'] {
61
21
  &:hover {
62
22
  color: var(--intergalactic-text-hint-hover-active, #484a54);
63
23
  }
64
-
65
- SText {
66
- box-shadow: none;
67
- border-bottom-width: 1px;
68
- border-bottom-style: dashed;
69
- border-color: currentColor;
70
- }
71
24
  }
72
25
 
73
- SInner {
74
- display: inline-flex;
75
- align-items: baseline;
76
- justify-content: center;
77
- height: 100%;
78
- width: 100%;
79
- }
80
-
81
- SAddon {
82
- display: inline-flex;
83
- justify-content: center;
84
- align-items: baseline;
85
- vertical-align: middle;
86
- pointer-events: none;
87
- align-self: center;
88
- }
89
-
90
- SButton SAddon {
91
- &:not(:only-child):first-child {
92
- margin-right: var(--intergalactic-spacing-1x, 4px);
93
- }
94
-
95
- &:not(:only-child):last-child {
96
- margin-left: var(--intergalactic-spacing-1x, 4px);
97
- }
98
- }
99
-
100
- SButton[text-color] {
101
- color: var(--text-color);
102
-
103
- &[active],
104
- &:hover,
105
- &:active {
106
- color: var(--text-color);
107
- filter: brightness(0.8);
108
- }
109
- }
110
-
111
- SButton[size='100'] {
112
- font-size: var(--intergalactic-fs-100, 12px);
113
- line-height: var(--intergalactic-lh-100, 133%);
114
- }
115
-
116
- SButton[size='200'] {
117
- font-size: var(--intergalactic-fs-200, 14px);
118
- line-height: var(--intergalactic-lh-200, 142%);
119
- }
120
-
121
- SButton[size='300'] {
122
- font-size: var(--intergalactic-fs-300, 16px);
123
- line-height: var(--intergalactic-lh-300, 150%);
124
- }
125
-
126
- SButton[size='400'] {
127
- font-size: var(--intergalactic-fs-400, 20px);
128
- line-height: var(--intergalactic-lh-400, 120%);
129
- }
130
-
131
- SButton[size='500'] {
132
- font-size: var(--intergalactic-fs-500, 24px);
133
- line-height: var(--intergalactic-lh-500, 117%);
134
- }
135
-
136
- SButton[size='600'] {
137
- font-size: var(--intergalactic-fs-600, 32px);
138
- line-height: var(--intergalactic-lh-600, 125%);
139
- }
140
-
141
- SButton[size='700'] {
142
- font-size: var(--intergalactic-fs-700, 36px);
143
- line-height: var(--intergalactic-lh-700, 110%);
144
- }
145
-
146
- SButton[size='800'] {
147
- font-size: var(--intergalactic-fs-800, 48px);
148
- line-height: var(--intergalactic-lh-800, 117%);
149
- }
150
-
151
- @media (prefers-reduced-motion) {
152
- SButton {
153
- transition: none;
154
-
155
- SText {
156
- transition: none;
157
- }
158
- }
26
+ SButtonLink[use='secondary'] SText {
27
+ text-decoration-style: dashed;
28
+ text-decoration-color: currentColor;
159
29
  }
package/lib/es6/index.js CHANGED
@@ -1,6 +1,5 @@
1
- export { default } from './component/Button/Button';
1
+ export { default, MAP_USE_DEFAULT_THEME } from './component/Button/Button';
2
2
  export * from './component/Button/Button.type';
3
3
  export * from './component/ButtonLink/ButtonLink';
4
4
  export * from './component/ButtonLink/ButtonLink.type';
5
- export { MAP_USE_DEFAULT_THEME } from './component/AbstractButton/AbstractButton';
6
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","MAP_USE_DEFAULT_THEME"],"sources":["../../src/index.ts"],"sourcesContent":["export { default } from './component/Button/Button';\nexport * from './component/Button/Button.type';\nexport * from './component/ButtonLink/ButtonLink';\nexport * from './component/ButtonLink/ButtonLink.type';\nexport { MAP_USE_DEFAULT_THEME } from './component/AbstractButton/AbstractButton';\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,2BAA2B;AACnD,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,wCAAwC;AACtD,SAASC,qBAAqB,QAAQ,2CAA2C","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["default","MAP_USE_DEFAULT_THEME"],"sources":["../../src/index.ts"],"sourcesContent":["export { default, MAP_USE_DEFAULT_THEME } from './component/Button/Button';\nexport * from './component/Button/Button.type';\nexport * from './component/ButtonLink/ButtonLink';\nexport * from './component/ButtonLink/ButtonLink.type';\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,qBAAqB,QAAQ,2BAA2B;AAC1E,cAAc,gCAAgC;AAC9C,cAAc,mCAAmC;AACjD,cAAc,wCAAwC","ignoreList":[]}