@semcore/button 16.0.13-prerelease.9 → 16.1.0-prerelease.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/lib/cjs/component/AbstractButton/AbstractButton.js +165 -100
  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/AbstractButton/SpinButton.js +10 -9
  6. package/lib/cjs/component/AbstractButton/SpinButton.js.map +1 -1
  7. package/lib/cjs/component/Button/Button.js +63 -54
  8. package/lib/cjs/component/Button/Button.js.map +1 -1
  9. package/lib/cjs/component/Button/Button.type.js.map +1 -1
  10. package/lib/cjs/component/Button/button.shadow.css +79 -79
  11. package/lib/cjs/component/ButtonLink/ButtonLink.js +59 -51
  12. package/lib/cjs/component/ButtonLink/ButtonLink.js.map +1 -1
  13. package/lib/cjs/component/ButtonLink/buttonLink.shadow.css +13 -13
  14. package/lib/cjs/index.js +7 -7
  15. package/lib/cjs/index.js.map +1 -1
  16. package/lib/es6/component/AbstractButton/AbstractButton.js +164 -97
  17. package/lib/es6/component/AbstractButton/AbstractButton.js.map +1 -1
  18. package/lib/es6/component/AbstractButton/AbstractButton.type.js.map +1 -1
  19. package/lib/es6/component/AbstractButton/SpinButton.js +7 -6
  20. package/lib/es6/component/AbstractButton/SpinButton.js.map +1 -1
  21. package/lib/es6/component/Button/Button.js +56 -47
  22. package/lib/es6/component/Button/Button.js.map +1 -1
  23. package/lib/es6/component/Button/Button.type.js.map +1 -1
  24. package/lib/es6/component/Button/button.shadow.css +79 -79
  25. package/lib/es6/component/ButtonLink/ButtonLink.js +52 -44
  26. package/lib/es6/component/ButtonLink/ButtonLink.js.map +1 -1
  27. package/lib/es6/component/ButtonLink/buttonLink.shadow.css +13 -13
  28. package/lib/esm/component/AbstractButton/AbstractButton.mjs +136 -98
  29. package/lib/esm/component/AbstractButton/SpinButton.mjs +6 -6
  30. package/lib/esm/component/Button/Button.mjs +56 -47
  31. package/lib/esm/component/Button/button.shadow.css +79 -79
  32. package/lib/esm/component/ButtonLink/ButtonLink.mjs +50 -44
  33. package/lib/esm/component/ButtonLink/buttonLink.shadow.css +13 -13
  34. package/lib/types/component/AbstractButton/AbstractButton.d.ts +6 -5
  35. package/lib/types/component/AbstractButton/AbstractButton.type.d.ts +4 -2
  36. package/lib/types/component/Button/Button.type.d.ts +18 -2
  37. package/package.json +9 -6
  38. package/src/component/AbstractButton/AbstractButton.tsx +77 -58
  39. package/src/component/AbstractButton/AbstractButton.type.ts +4 -2
  40. package/src/component/Button/Button.tsx +1 -1
  41. package/src/component/Button/Button.type.ts +14 -1
  42. package/src/component/Button/button.shadow.css +79 -79
  43. package/src/component/ButtonLink/ButtonLink.tsx +1 -1
  44. package/src/component/ButtonLink/buttonLink.shadow.css +13 -13
package/CHANGELOG.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  CHANGELOG.md standards are inspired by [keepachangelog.com](https://keepachangelog.com/en/1.0.0/).
4
4
 
5
- ## [16.0.13] - 2026-02-16
5
+ ## [16.1.0] - 2026-05-07
6
6
 
7
- ### Fixed
7
+ ### Added
8
8
 
9
- - Adjusted `ButtonLink` baseline.
9
+ - New brand theme.
10
10
 
11
11
  ## [16.0.12] - 2025-11-03
12
12
 
@@ -1,124 +1,189 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.MAP_USE_DEFAULT_THEME = exports.AbstractButton = void 0;
8
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
9
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
10
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
11
+ var _callSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/callSuper"));
12
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
8
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
14
  var _core = require("@semcore/core");
10
- var _baseComponents = require("@semcore/base-components");
11
15
  var _addonTextChildren = _interopRequireDefault(require("@semcore/core/lib/utils/addonTextChildren"));
12
16
  var _hasLabels = _interopRequireDefault(require("@semcore/core/lib/utils/hasLabels"));
13
17
  var _logger = _interopRequireDefault(require("@semcore/core/lib/utils/logger"));
18
+ var _flexBox = require("@semcore/flex-box");
19
+ var _neighborLocation = _interopRequireDefault(require("@semcore/neighbor-location"));
20
+ var _tooltip = require("@semcore/tooltip");
14
21
  var _react = _interopRequireDefault(require("react"));
15
22
  var _SpinButton = _interopRequireDefault(require("./SpinButton"));
16
- const MAP_USE_DEFAULT_THEME = exports.MAP_USE_DEFAULT_THEME = {
23
+ var MAP_USE_DEFAULT_THEME = exports.MAP_USE_DEFAULT_THEME = {
17
24
  primary: 'info',
18
25
  secondary: 'muted',
19
26
  tertiary: 'info'
20
27
  };
21
- class AbstractButton extends _core.Component {
22
- constructor(...args) {
23
- super(...args);
24
- (0, _defineProperty2.default)(this, "containerRef", /*#__PURE__*/_react.default.createRef());
25
- (0, _defineProperty2.default)(this, "state", {
28
+ var AbstractButton = exports.AbstractButton = /*#__PURE__*/function (_Component) {
29
+ function AbstractButton() {
30
+ var _this;
31
+ (0, _classCallCheck2["default"])(this, AbstractButton);
32
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33
+ args[_key] = arguments[_key];
34
+ }
35
+ _this = (0, _callSuper2["default"])(this, AbstractButton, [].concat(args));
36
+ (0, _defineProperty2["default"])(_this, "containerRef", /*#__PURE__*/_react["default"].createRef());
37
+ (0, _defineProperty2["default"])(_this, "state", {
26
38
  ariaLabelledByContent: null
27
39
  });
40
+ return _this;
28
41
  }
29
- getTextProps() {
30
- const {
31
- size
32
- } = this.asProps;
33
- return {
34
- size
35
- };
36
- }
37
- getAddonProps() {
38
- const {
39
- size
40
- } = this.asProps;
41
- return {
42
- size
43
- };
44
- }
45
- componentDidMount() {
46
- if (process.env.NODE_ENV !== 'production') {
47
- _logger.default.warn(this.containerRef.current && !(0, _hasLabels.default)(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'] || AbstractButton.displayName);
48
- _logger.default.warn(this.asProps.theme === 'warning', 'Warning theme is deprecated and will be removed in the next major release.', this.asProps['data-ui-name'] || AbstractButton.displayName);
42
+ (0, _inherits2["default"])(AbstractButton, _Component);
43
+ return (0, _createClass2["default"])(AbstractButton, [{
44
+ key: "getTextProps",
45
+ value: function getTextProps() {
46
+ var size = this.asProps.size;
47
+ return {
48
+ size: size
49
+ };
50
+ }
51
+ }, {
52
+ key: "getAddonProps",
53
+ value: function getAddonProps() {
54
+ var size = this.asProps.size;
55
+ return {
56
+ size: size
57
+ };
58
+ }
59
+ }, {
60
+ key: "componentDidMount",
61
+ value: function componentDidMount() {
62
+ var _this2 = this;
63
+ if (process.env.NODE_ENV !== 'production') {
64
+ _logger["default"].warn(this.containerRef.current && !(0, _hasLabels["default"])(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'] || AbstractButton.displayName);
65
+ _logger["default"].warn(this.asProps.theme === 'warning', 'Warning theme is deprecated and will be removed in the next major release.', this.asProps['data-ui-name'] || AbstractButton.displayName);
66
+ }
67
+ var ariaLabelledby = this.asProps['aria-labelledby'];
68
+ if (ariaLabelledby) {
69
+ setTimeout(function () {
70
+ var _document$getElementB, _document$getElementB2;
71
+ _this2.setState({
72
+ ariaLabelledByContent: (_document$getElementB = (_document$getElementB2 = document.getElementById(ariaLabelledby)) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.textContent) !== null && _document$getElementB !== void 0 ? _document$getElementB : ''
73
+ });
74
+ }, 0);
75
+ }
49
76
  }
50
- const ariaLabelledby = this.asProps['aria-labelledby'];
51
- if (ariaLabelledby) {
52
- setTimeout(() => {
53
- this.setState({
54
- ariaLabelledByContent: document.getElementById(ariaLabelledby)?.textContent ?? ''
77
+ }, {
78
+ key: "renderButton",
79
+ value: function renderButton(_ref6) {
80
+ var _ref = this.asProps,
81
+ _ref3;
82
+ var buttonProps = _ref6.buttonProps,
83
+ children = _ref6.children;
84
+ var _this$asProps = this.asProps,
85
+ styles = _this$asProps.styles,
86
+ theme = _this$asProps.theme;
87
+ var SButton = _flexBox.Box;
88
+ return _ref3 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref3.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])({
89
+ "invertOutline": theme === 'invert'
90
+ }, buttonProps), _ref))), children);
91
+ }
92
+ }, {
93
+ key: "renderButtonWithHint",
94
+ value: function renderButtonWithHint(_ref7) {
95
+ var _ref2 = this.asProps,
96
+ _ref4;
97
+ var buttonProps = _ref7.buttonProps,
98
+ children = _ref7.children,
99
+ hintProps = _ref7.hintProps;
100
+ var _this$asProps2 = this.asProps,
101
+ styles = _this$asProps2.styles,
102
+ theme = _this$asProps2.theme;
103
+ var SButton = _tooltip.Hint;
104
+ return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref4.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])((0, _objectSpread2["default"])((0, _objectSpread2["default"])({
105
+ "invertOutline": theme === 'invert'
106
+ }, buttonProps), hintProps), {}, {
107
+ "ignorePortalsStacking": true
108
+ }), _ref2))), children);
109
+ }
110
+ }, {
111
+ key: "render",
112
+ value: function render() {
113
+ var _ref8,
114
+ _ref9,
115
+ _this3 = this;
116
+ var _this$asProps3 = this.asProps,
117
+ styles = _this$asProps3.styles,
118
+ use = _this$asProps3.use,
119
+ _this$asProps3$theme = _this$asProps3.theme,
120
+ theme = _this$asProps3$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps3$theme,
121
+ loading = _this$asProps3.loading,
122
+ _this$asProps3$disabl = _this$asProps3.disabled,
123
+ disabled = _this$asProps3$disabl === void 0 ? loading : _this$asProps3$disabl,
124
+ size = _this$asProps3.size,
125
+ neighborLocation = _this$asProps3.neighborLocation,
126
+ hasChildren = _this$asProps3.children,
127
+ title = _this$asProps3.title,
128
+ ariaLabel = _this$asProps3['aria-label'],
129
+ Children = _this$asProps3.Children,
130
+ AddonLeft = _this$asProps3.addonLeft,
131
+ AddonRight = _this$asProps3.addonRight,
132
+ hintPlacement = _this$asProps3.hintPlacement;
133
+ // @ts-ignore
134
+ var Button = this[_core.CORE_INSTANCE];
135
+ var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
136
+ var SInner = _flexBox.Box;
137
+ var SSpin = _flexBox.Box;
138
+ var buttonAriaLabel = (_ref8 = (_ref9 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref9 !== void 0 ? _ref9 : this.state.ariaLabelledByContent) !== null && _ref8 !== void 0 ? _ref8 : '';
139
+ var buttonProps = {
140
+ 'type': 'button',
141
+ 'tag': 'button',
142
+ disabled: disabled,
143
+ 'use:theme': useTheme,
144
+ 'ref': this.containerRef,
145
+ 'text-color': this.getTextColor(),
146
+ 'aria-busy': loading,
147
+ '__excludeProps': ['title'],
148
+ 'tabIndex': 0
149
+ };
150
+ var hintProps = {
151
+ title: buttonAriaLabel,
152
+ timeout: [250, 50],
153
+ placement: hintPlacement,
154
+ theme: theme === 'invert' ? 'invert' : undefined,
155
+ __excludeProps: []
156
+ };
157
+ return /*#__PURE__*/_react["default"].createElement(_neighborLocation["default"].Detect, {
158
+ neighborLocation: neighborLocation
159
+ }, function (neighborLocation) {
160
+ var _ref5;
161
+ var children = (_ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SInner, _ref5.cn("SInner", {
162
+ "tag": 'span',
163
+ "loading": loading,
164
+ "data-ui-name": "".concat(_this3.asProps['data-ui-name'], ".InnerWrapper")
165
+ }), AddonLeft ? /*#__PURE__*/_react["default"].createElement(Button.Addon, null, /*#__PURE__*/_react["default"].createElement(AddonLeft, _ref5.cn("AddonLeft", {}))) : null, (0, _addonTextChildren["default"])(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/_react["default"].createElement(Button.Addon, null, /*#__PURE__*/_react["default"].createElement(AddonRight, _ref5.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/_react["default"].createElement(SSpin, _ref5.cn("SSpin", {
166
+ "tag": 'span'
167
+ }), /*#__PURE__*/_react["default"].createElement(_SpinButton["default"], _ref5.cn("SpinButton", {
168
+ "centered": true,
169
+ "size": size,
170
+ "theme": useTheme
171
+ })))));
172
+ buttonProps.neighborLocation = neighborLocation;
173
+ if (hasChildren === undefined || title) {
174
+ return _this3.renderButtonWithHint({
175
+ buttonProps: buttonProps,
176
+ hintProps: hintProps,
177
+ children: children
178
+ });
179
+ }
180
+ return _this3.renderButton({
181
+ buttonProps: buttonProps,
182
+ children: children
55
183
  });
56
- }, 0);
184
+ });
57
185
  }
58
- }
59
- render() {
60
- var _ref = this.asProps;
61
- const {
62
- styles,
63
- use,
64
- theme = typeof use === 'string' && MAP_USE_DEFAULT_THEME[use],
65
- loading,
66
- disabled = loading,
67
- size,
68
- neighborLocation,
69
- children,
70
- title,
71
- ['aria-label']: ariaLabel,
72
- Children,
73
- addonLeft: AddonLeft,
74
- addonRight: AddonRight,
75
- hintPlacement
76
- } = this.asProps;
77
- const SButton = _baseComponents.Box;
78
- // @ts-ignore
79
- const Button = this[_core.CORE_INSTANCE];
80
- const useTheme = use && theme ? `${use}-${theme}` : false;
81
- const SInner = _baseComponents.Box;
82
- const SSpin = _baseComponents.Box;
83
- const buttonAriaLabel = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';
84
- const showHint = children === undefined || title;
85
- return /*#__PURE__*/_react.default.createElement(_baseComponents.NeighborLocation.Detect, {
86
- neighborLocation: neighborLocation
87
- }, neighborLocation => {
88
- var _ref2;
89
- return _ref2 = (0, _core.sstyled)(styles), /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(SButton, _ref2.cn("SButton", {
90
- ...(0, _core.assignProps)({
91
- "invertOutline": theme === 'invert',
92
- "type": 'button',
93
- "tag": 'button',
94
- "tabIndex": 0,
95
- "disabled": disabled,
96
- "use:theme": useTheme,
97
- "ref": this.containerRef,
98
- "text-color": this.getTextColor(),
99
- "aria-busy": loading,
100
- "__excludeProps": ['title'],
101
- "aria-label": showHint ? buttonAriaLabel : undefined,
102
- "neighborLocation": neighborLocation
103
- }, _ref)
104
- }), /*#__PURE__*/_react.default.createElement(SInner, _ref2.cn("SInner", {
105
- "tag": 'span',
106
- "loading": loading,
107
- "data-ui-name": `${this.asProps['data-ui-name']}.InnerWrapper`
108
- }), AddonLeft ? /*#__PURE__*/_react.default.createElement(Button.Addon, null, /*#__PURE__*/_react.default.createElement(AddonLeft, _ref2.cn("AddonLeft", {}))) : null, (0, _addonTextChildren.default)(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/_react.default.createElement(Button.Addon, null, /*#__PURE__*/_react.default.createElement(AddonRight, _ref2.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/_react.default.createElement(SSpin, _ref2.cn("SSpin", {
109
- "tag": 'span'
110
- }), /*#__PURE__*/_react.default.createElement(_SpinButton.default, _ref2.cn("SpinButton", {
111
- "centered": true,
112
- "size": size,
113
- "theme": useTheme
114
- })))), showHint && /*#__PURE__*/_react.default.createElement(_baseComponents.Hint, _ref2.cn("Hint", {
115
- "triggerRef": this.containerRef,
116
- "timeout": [250, 50],
117
- "placement": hintPlacement
118
- }), buttonAriaLabel));
119
- });
120
- }
121
- }
122
- exports.AbstractButton = AbstractButton;
123
- (0, _defineProperty2.default)(AbstractButton, "displayName", 'AbstractButton');
186
+ }]);
187
+ }(_core.Component);
188
+ (0, _defineProperty2["default"])(AbstractButton, "displayName", 'AbstractButton');
124
189
  //# sourceMappingURL=AbstractButton.js.map
@@ -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","_addonTextChildren","_interopRequireDefault","_hasLabels","_logger","_flexBox","_neighborLocation","_tooltip","_react","_SpinButton","MAP_USE_DEFAULT_THEME","exports","primary","secondary","tertiary","AbstractButton","_Component","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","_callSuper2","concat","_defineProperty2","React","createRef","ariaLabelledByContent","_inherits2","_createClass2","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","title","displayName","theme","ariaLabelledby","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderButton","_ref6","_ref","_ref3","buttonProps","children","_this$asProps","styles","SButton","Box","sstyled","createElement","cn","_objectSpread2","assignProps","renderButtonWithHint","_ref7","_ref2","_ref4","hintProps","_this$asProps2","Hint","render","_ref8","_ref9","_this3","_this$asProps3","use","_this$asProps3$theme","loading","_this$asProps3$disabl","disabled","neighborLocation","hasChildren","ariaLabel","Children","AddonLeft","addonLeft","AddonRight","addonRight","hintPlacement","Button","CORE_INSTANCE","useTheme","SInner","SSpin","buttonAriaLabel","state","getTextColor","timeout","placement","undefined","__excludeProps","Detect","_ref5","Fragment","Addon","addonTextChildren","Text","Component"],"sources":["../../../../src/component/AbstractButton/AbstractButton.tsx"],"sourcesContent":["import { 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 { Box } from '@semcore/flex-box';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport { Hint } from '@semcore/tooltip';\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\nexport abstract class AbstractButton extends Component<Props, {}, {}> {\n static displayName = 'AbstractButton';\n\n containerRef = React.createRef<HTMLButtonElement>();\n\n 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 renderButton({ buttonProps, children }: any) {\n const { styles, theme } = this.asProps;\n const SButton = Root;\n\n return sstyled(styles)(\n <SButton render={Box} invertOutline={theme === 'invert'} {...buttonProps}>\n {children}\n </SButton>,\n );\n }\n\n renderButtonWithHint({ buttonProps, children, hintProps }: any) {\n const { styles, theme } = this.asProps;\n const SButton = Root;\n\n return sstyled(styles)(\n <SButton render={Hint} invertOutline={theme === 'invert'} {...buttonProps} {...hintProps} ignorePortalsStacking>\n {children}\n </SButton>,\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: hasChildren,\n title,\n ['aria-label']: ariaLabel,\n Children,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n hintPlacement,\n } = this.asProps;\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 buttonProps: Record<string, any> = {\n 'type': 'button',\n 'tag': 'button',\n disabled,\n 'use:theme': useTheme,\n 'ref': this.containerRef,\n 'text-color': this.getTextColor(),\n 'aria-busy': loading,\n '__excludeProps': ['title'],\n 'tabIndex': 0,\n };\n\n const hintProps = {\n title: buttonAriaLabel,\n timeout: [250, 50],\n placement: hintPlacement,\n theme: theme === 'invert' ? 'invert' : undefined,\n __excludeProps: [],\n };\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) => {\n const children = sstyled(styles)(\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 </>,\n );\n buttonProps.neighborLocation = neighborLocation;\n\n if (hasChildren === undefined || title) {\n return this.renderButtonWithHint({ buttonProps, hintProps, children });\n }\n\n return this.renderButton({ buttonProps, children });\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 { PropGetterFn } from '@semcore/core';\nimport type { BoxProps } from '@semcore/flex-box';\nimport type { NeighborItemProps } from '@semcore/neighbor-location';\nimport type { TooltipHintProps } from '@semcore/tooltip';\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?: TooltipHintProps['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,26 +1,27 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.SPIN_SIZE_MAP = void 0;
8
- exports.default = SpinButton;
8
+ exports["default"] = SpinButton;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
11
  var _spin = _interopRequireDefault(require("@semcore/spin"));
11
12
  var _react = _interopRequireDefault(require("react"));
12
- const SPIN_SIZE_MAP = exports.SPIN_SIZE_MAP = {
13
+ var _excluded = ["theme", "size"];
14
+ var SPIN_SIZE_MAP = exports.SPIN_SIZE_MAP = {
13
15
  xl: 'm',
14
16
  l: 's',
15
17
  m: 'xs',
16
18
  s: 'xxs'
17
19
  };
18
- function SpinButton({
19
- theme,
20
- size,
21
- ...others
22
- }) {
23
- return /*#__PURE__*/_react.default.createElement(_spin.default, (0, _extends2.default)({
20
+ function SpinButton(_ref) {
21
+ var theme = _ref.theme,
22
+ size = _ref.size,
23
+ others = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
24
+ return /*#__PURE__*/_react["default"].createElement(_spin["default"], (0, _extends2["default"])({
24
25
  size: typeof size === 'string' ? SPIN_SIZE_MAP[size] : size,
25
26
  theme: "currentColor"
26
27
  }, others));
@@ -1 +1 @@
1
- {"version":3,"file":"SpinButton.js","names":["_spin","_interopRequireDefault","require","_react","SPIN_SIZE_MAP","exports","xl","l","m","s","SpinButton","theme","size","others","default","createElement","_extends2"],"sources":["../../../../src/component/AbstractButton/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,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEO,MAAME,aAAqC,GAAAC,OAAA,CAAAD,aAAA,GAAG;EACnDE,EAAE,EAAE,GAAG;EACPC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAC;AAEc,SAASC,UAAUA,CAAC;EAAEC,KAAK;EAAEC,IAAI;EAAE,GAAGC;AAAY,CAAC,EAAE;EAClE,oBACEV,MAAA,CAAAW,OAAA,CAAAC,aAAA,CAACf,KAAA,CAAAc,OAAI,MAAAE,SAAA,CAAAF,OAAA;IACHF,IAAI,EAAE,OAAOA,IAAI,KAAK,QAAQ,GAAGR,aAAa,CAACQ,IAAI,CAAC,GAAGA,IAAK;IAC5DD,KAAK,EAAC;EAAc,GAChBE,MAAM,CACX,CAAC;AAEN","ignoreList":[]}
1
+ {"version":3,"file":"SpinButton.js","names":["_spin","_interopRequireDefault","require","_react","_excluded","SPIN_SIZE_MAP","exports","xl","l","m","s","SpinButton","_ref","theme","size","others","_objectWithoutProperties2","createElement","_extends2"],"sources":["../../../../src/component/AbstractButton/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,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA0B,IAAAE,SAAA;AAEnB,IAAMC,aAAqC,GAAAC,OAAA,CAAAD,aAAA,GAAG;EACnDE,EAAE,EAAE,GAAG;EACPC,CAAC,EAAE,GAAG;EACNC,CAAC,EAAE,IAAI;EACPC,CAAC,EAAE;AACL,CAAC;AAEc,SAASC,UAAUA,CAAAC,IAAA,EAAkC;EAAA,IAA/BC,KAAK,GAAAD,IAAA,CAALC,KAAK;IAAEC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IAAKC,MAAM,OAAAC,yBAAA,aAAAJ,IAAA,EAAAR,SAAA;EACzD,oBACED,MAAA,YAAAc,aAAA,CAACjB,KAAA,WAAI,MAAAkB,SAAA;IACHJ,IAAI,EAAE,OAAOA,IAAI,KAAK,QAAQ,GAAGT,aAAa,CAACS,IAAI,CAAC,GAAGA,IAAK;IAC5DD,KAAK,EAAC;EAAc,GAChBE,MAAM,CACX,CAAC;AAEN","ignoreList":[]}