intergalactic 15.104.1-prerelease.0 → 15.105.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 (125) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/accordion/package.json +1 -1
  3. package/button/index.d.ts +6 -0
  4. package/button/lib/cjs/Button.js +84 -67
  5. package/button/lib/cjs/Button.js.map +1 -1
  6. package/button/lib/cjs/index.d.js.map +1 -1
  7. package/button/lib/es6/Button.js +85 -67
  8. package/button/lib/es6/Button.js.map +1 -1
  9. package/button/lib/es6/index.d.js.map +1 -1
  10. package/button/lib/types/index.d.ts +6 -0
  11. package/components.json +5 -5
  12. package/data-table/Head.d.ts +4 -1
  13. package/data-table/lib/cjs/Body.js +3 -3
  14. package/data-table/lib/cjs/DataTable.js +36 -37
  15. package/data-table/lib/cjs/DataTable.js.map +1 -1
  16. package/data-table/lib/cjs/Head.js +13 -8
  17. package/data-table/lib/cjs/Head.js.map +1 -1
  18. package/data-table/lib/cjs/style/data-table.shadow.css +7 -4
  19. package/data-table/lib/es6/Body.js +3 -3
  20. package/data-table/lib/es6/DataTable.js +36 -37
  21. package/data-table/lib/es6/DataTable.js.map +1 -1
  22. package/data-table/lib/es6/Head.js +13 -8
  23. package/data-table/lib/es6/Head.js.map +1 -1
  24. package/data-table/lib/es6/style/data-table.shadow.css +7 -4
  25. package/data-table/lib/types/Head.d.ts +4 -1
  26. package/data-table/package.json +1 -1
  27. package/dropdown-menu/package.json +1 -1
  28. package/feedback-form/lib/cjs/FeedbackForm.js +9 -9
  29. package/feedback-form/lib/cjs/FeedbackForm.js.map +1 -1
  30. package/feedback-form/lib/cjs/component/checkbox-button/CheckboxButton.js +3 -3
  31. package/feedback-form/lib/cjs/component/feedback-rating/FeedbackRating.js +13 -16
  32. package/feedback-form/lib/cjs/component/feedback-rating/FeedbackRating.js.map +1 -1
  33. package/feedback-form/lib/cjs/component/slider-rating/SliderRating.js +6 -6
  34. package/feedback-form/lib/es6/FeedbackForm.js +9 -9
  35. package/feedback-form/lib/es6/FeedbackForm.js.map +1 -1
  36. package/feedback-form/lib/es6/component/checkbox-button/CheckboxButton.js +3 -3
  37. package/feedback-form/lib/es6/component/feedback-rating/FeedbackRating.js +9 -12
  38. package/feedback-form/lib/es6/component/feedback-rating/FeedbackRating.js.map +1 -1
  39. package/feedback-form/lib/es6/component/slider-rating/SliderRating.js +6 -6
  40. package/feedback-form/package.json +1 -1
  41. package/fullscreen-modal/index.d.ts +2 -2
  42. package/fullscreen-modal/lib/cjs/index.d.js.map +1 -1
  43. package/fullscreen-modal/lib/es6/index.d.js.map +1 -1
  44. package/fullscreen-modal/lib/types/index.d.ts +2 -2
  45. package/inline-edit/lib/cjs/InlineEdit.js +4 -4
  46. package/inline-edit/lib/cjs/translations/de.json +1 -1
  47. package/inline-edit/lib/cjs/translations/es.json +1 -1
  48. package/inline-edit/lib/cjs/translations/fr.json +1 -1
  49. package/inline-edit/lib/cjs/translations/it.json +1 -1
  50. package/inline-edit/lib/cjs/translations/ja.json +1 -1
  51. package/inline-edit/lib/cjs/translations/ko.json +1 -1
  52. package/inline-edit/lib/cjs/translations/nl.json +1 -1
  53. package/inline-edit/lib/cjs/translations/pl.json +1 -1
  54. package/inline-edit/lib/cjs/translations/pt.json +1 -1
  55. package/inline-edit/lib/cjs/translations/sv.json +1 -1
  56. package/inline-edit/lib/cjs/translations/tr.json +1 -1
  57. package/inline-edit/lib/cjs/translations/vi.json +1 -1
  58. package/inline-edit/lib/cjs/translations/zh.json +1 -1
  59. package/inline-edit/lib/es6/InlineEdit.js +4 -4
  60. package/inline-edit/lib/es6/translations/de.json +1 -1
  61. package/inline-edit/lib/es6/translations/es.json +1 -1
  62. package/inline-edit/lib/es6/translations/fr.json +1 -1
  63. package/inline-edit/lib/es6/translations/it.json +1 -1
  64. package/inline-edit/lib/es6/translations/ja.json +1 -1
  65. package/inline-edit/lib/es6/translations/ko.json +1 -1
  66. package/inline-edit/lib/es6/translations/nl.json +1 -1
  67. package/inline-edit/lib/es6/translations/pl.json +1 -1
  68. package/inline-edit/lib/es6/translations/pt.json +1 -1
  69. package/inline-edit/lib/es6/translations/sv.json +1 -1
  70. package/inline-edit/lib/es6/translations/tr.json +1 -1
  71. package/inline-edit/lib/es6/translations/vi.json +1 -1
  72. package/inline-edit/lib/es6/translations/zh.json +1 -1
  73. package/inline-edit/package.json +1 -1
  74. package/inline-input/package.json +1 -1
  75. package/input-number/package.json +1 -1
  76. package/modal/index.d.ts +2 -1
  77. package/modal/lib/cjs/index.d.js.map +1 -1
  78. package/modal/lib/es6/index.d.js.map +1 -1
  79. package/modal/lib/types/index.d.ts +2 -1
  80. package/notice/index.d.ts +2 -2
  81. package/notice/lib/cjs/Notice.js +19 -17
  82. package/notice/lib/cjs/Notice.js.map +1 -1
  83. package/notice/lib/cjs/index.d.js.map +1 -1
  84. package/notice/lib/cjs/style/notice.shadow.css +3 -1
  85. package/notice/lib/es6/Notice.js +19 -17
  86. package/notice/lib/es6/Notice.js.map +1 -1
  87. package/notice/lib/es6/index.d.js.map +1 -1
  88. package/notice/lib/es6/style/notice.shadow.css +3 -1
  89. package/notice/lib/types/index.d.ts +2 -2
  90. package/notice/package.json +1 -1
  91. package/package.json +1 -1
  92. package/select/package.json +1 -1
  93. package/side-panel/index.d.ts +2 -1
  94. package/side-panel/lib/cjs/index.d.js.map +1 -1
  95. package/side-panel/lib/es6/index.d.js.map +1 -1
  96. package/side-panel/lib/types/index.d.ts +2 -1
  97. package/time-picker/lib/cjs/TimePicker.js +12 -12
  98. package/time-picker/lib/cjs/translations/de.json +6 -5
  99. package/time-picker/lib/cjs/translations/es.json +6 -5
  100. package/time-picker/lib/cjs/translations/fr.json +6 -5
  101. package/time-picker/lib/cjs/translations/it.json +6 -5
  102. package/time-picker/lib/cjs/translations/ja.json +6 -5
  103. package/time-picker/lib/cjs/translations/ko.json +6 -5
  104. package/time-picker/lib/cjs/translations/nl.json +6 -5
  105. package/time-picker/lib/cjs/translations/pl.json +6 -5
  106. package/time-picker/lib/cjs/translations/pt.json +6 -5
  107. package/time-picker/lib/cjs/translations/sv.json +6 -5
  108. package/time-picker/lib/cjs/translations/tr.json +6 -5
  109. package/time-picker/lib/cjs/translations/vi.json +6 -5
  110. package/time-picker/lib/cjs/translations/zh.json +6 -5
  111. package/time-picker/lib/es6/TimePicker.js +12 -12
  112. package/time-picker/lib/es6/translations/de.json +6 -5
  113. package/time-picker/lib/es6/translations/es.json +6 -5
  114. package/time-picker/lib/es6/translations/fr.json +6 -5
  115. package/time-picker/lib/es6/translations/it.json +6 -5
  116. package/time-picker/lib/es6/translations/ja.json +6 -5
  117. package/time-picker/lib/es6/translations/ko.json +6 -5
  118. package/time-picker/lib/es6/translations/nl.json +6 -5
  119. package/time-picker/lib/es6/translations/pl.json +6 -5
  120. package/time-picker/lib/es6/translations/pt.json +6 -5
  121. package/time-picker/lib/es6/translations/sv.json +6 -5
  122. package/time-picker/lib/es6/translations/tr.json +6 -5
  123. package/time-picker/lib/es6/translations/vi.json +6 -5
  124. package/time-picker/lib/es6/translations/zh.json +6 -5
  125. package/time-picker/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,26 @@
1
+ ## [15.105.0] - 2024-08-16
2
+
3
+ ### @semcore/data-table
4
+
5
+ - **Fixed** Sort icon behavior.
6
+ - **Fixed** Columns width (min-width) calculation.
7
+
8
+ ### @semcore/feedback-form
9
+
10
+ - **Fixed** Using `theme` property for Notice.
11
+
12
+ ### @semcore/inline-edit
13
+
14
+ - **Changed** Updated translations.
15
+
16
+ ### @semcore/notice
17
+
18
+ - **Changed** Close icon to `Button` component.
19
+
20
+ ### @semcore/time-picker
21
+
22
+ - **Changed** Updated translations.
23
+
1
24
  ## [15.104.1] - 2024-08-13
2
25
 
3
26
  ### @semcore/accordion
@@ -1 +1 @@
1
- {"name":"intergalactic/accordion","description":"Semrush Accordion Component","version":"5.38.3-prerelease.0","main":"lib/cjs/index.js","module":"lib/es6/index.js","typings":"lib/types/index.d.ts","sideEffects":false,"author":"UI-kit team <ui-kit-team@semrush.com>","license":"MIT","scripts":{"build":"pnpm semcore-builder --source=js"},"dependencies":{"@semcore/animation":"2.31.2","@semcore/flex-box":"5.31.2","@semcore/icon":"4.43.2","@semcore/utils":"4.32.2","@semcore/button":"5.35.0","@semcore/typography":"5.40.2"},"peerDependencies":{"@semcore/core":"^2.17.5","react":"16.8 - 18","react-dom":"16.8 - 18"},"repository":{"type":"git","url":"https://github.com/semrush/intergalactic.git","directory":"semcore/accordion"},"devDependencies":{"@types/react":"18.0.21","@semcore/testing-utils":"1.0.0"}}
1
+ {"name":"intergalactic/accordion","description":"Semrush Accordion Component","version":"5.38.3","main":"lib/cjs/index.js","module":"lib/es6/index.js","typings":"lib/types/index.d.ts","sideEffects":false,"author":"UI-kit team <ui-kit-team@semrush.com>","license":"MIT","scripts":{"build":"pnpm semcore-builder --source=js"},"dependencies":{"@semcore/animation":"2.31.2","@semcore/flex-box":"5.31.2","@semcore/icon":"4.43.2","@semcore/utils":"4.32.2","@semcore/button":"5.35.0","@semcore/typography":"5.40.2"},"peerDependencies":{"@semcore/core":"^2.17.5","react":"16.8 - 18","react-dom":"16.8 - 18"},"repository":{"type":"git","url":"https://github.com/semrush/intergalactic.git","directory":"semcore/accordion"},"devDependencies":{"@types/react":"18.0.21","@semcore/testing-utils":"1.0.0"}}
package/button/index.d.ts CHANGED
@@ -3,6 +3,7 @@ import { PropGetterFn, UnknownProperties, Intergalactic } from 'intergalactic/co
3
3
  import { KeyboardFocusProps } from 'intergalactic/utils/lib/enhances/keyboardFocusEnhance';
4
4
  import { BoxProps } from 'intergalactic/flex-box';
5
5
  import { NeighborItemProps } from 'intergalactic/neighbor-location';
6
+ import { TooltipHintProps } from 'intergalactic/tooltip';
6
7
 
7
8
  export type ButtonSize = 'l' | 'm';
8
9
 
@@ -33,6 +34,11 @@ export type ButtonProps = BoxProps &
33
34
  addonLeft?: React.ElementType;
34
35
  /** Tag for the right Addon */
35
36
  addonRight?: React.ElementType;
37
+ /**
38
+ * Placement for hint
39
+ * @default top
40
+ */
41
+ hintPlacement?: TooltipHintProps['placement'];
36
42
  };
37
43
 
38
44
  /** @deprecated */
@@ -70,7 +70,7 @@ var RootButton = /*#__PURE__*/function (_Component) {
70
70
  _this = _super.call.apply(_super, [this].concat(args));
71
71
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "containerRef", /*#__PURE__*/_react["default"].createRef());
72
72
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "state", {
73
- ariaLabelledByContent: ''
73
+ ariaLabelledByContent: null
74
74
  });
75
75
  return _this;
76
76
  }
@@ -95,7 +95,7 @@ var RootButton = /*#__PURE__*/function (_Component) {
95
95
  value: function componentDidMount() {
96
96
  var _this2 = this;
97
97
  if (process.env.NODE_ENV !== 'production') {
98
- _logger["default"].warn(this.containerRef.current && !(0, _hasLabels["default"])(this.containerRef.current), "'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps['data-ui-name'] || RootButton.displayName);
98
+ _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'] || RootButton.displayName);
99
99
  }
100
100
  if (this.asProps['aria-labelledby']) {
101
101
  setTimeout(function () {
@@ -107,81 +107,98 @@ var RootButton = /*#__PURE__*/function (_Component) {
107
107
  }
108
108
  }
109
109
  }, {
110
- key: "renderChildren",
111
- value: function renderChildren() {
112
- var _ref4;
113
- var _this$asProps = this.asProps,
114
- Children = _this$asProps.Children,
115
- styles = _this$asProps.styles,
116
- AddonLeft = _this$asProps.addonLeft,
117
- AddonRight = _this$asProps.addonRight;
118
- return _ref4 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, AddonLeft ? /*#__PURE__*/_react["default"].createElement(Button.Addon, {
119
- tag: AddonLeft
120
- }) : null, (0, _addonTextChildren["default"])(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/_react["default"].createElement(Button.Addon, {
121
- tag: AddonRight
122
- }) : null);
110
+ key: "renderButton",
111
+ value: function renderButton(_ref10) {
112
+ var _ref = this.asProps,
113
+ _ref5;
114
+ var buttonProps = _ref10.buttonProps,
115
+ children = _ref10.children;
116
+ var styles = this.asProps.styles;
117
+ var SButton = _flexBox.Box;
118
+ return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref5.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])({}, buttonProps), _ref))), children);
123
119
  }
124
120
  }, {
125
- key: "renderOnlyAddons",
126
- value: function renderOnlyAddons() {
127
- var _ref5, _ref9, _ref10;
128
- var _this$asProps2 = this.asProps,
129
- styles = _this$asProps2.styles,
130
- AddonLeft = _this$asProps2.addonLeft,
131
- AddonRight = _this$asProps2.addonRight,
132
- title = _this$asProps2.title,
133
- ariaLabel = _this$asProps2['aria-label'];
134
- var hintContent = (_ref9 = (_ref10 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref10 !== void 0 ? _ref10 : this.state.ariaLabelledByContent) !== null && _ref9 !== void 0 ? _ref9 : '';
135
- return _ref5 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_tooltip.Hint, _ref5.cn("Hint", {
136
- "tag": Button.Addon,
137
- "title": hintContent,
138
- "timeout": [250, 50],
139
- "__excludeProps": ['aria-label']
140
- }), AddonLeft && /*#__PURE__*/_react["default"].createElement(AddonLeft, _ref5.cn("AddonLeft", {})), AddonRight && /*#__PURE__*/_react["default"].createElement(AddonRight, _ref5.cn("AddonRight", {})));
121
+ key: "renderButtonWithHint",
122
+ value: function renderButtonWithHint(_ref11) {
123
+ var _ref2 = this.asProps,
124
+ _ref6;
125
+ var buttonProps = _ref11.buttonProps,
126
+ children = _ref11.children,
127
+ hintProps = _ref11.hintProps;
128
+ var styles = this.asProps.styles;
129
+ var SButton = _tooltip.Hint;
130
+ return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref6.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)((0, _objectSpread2["default"])((0, _objectSpread2["default"])({}, buttonProps), hintProps), _ref2))), children);
141
131
  }
142
132
  }, {
143
133
  key: "render",
144
134
  value: function render() {
145
- var _ref = this.asProps,
135
+ var _ref12,
136
+ _ref13,
146
137
  _this3 = this;
147
- var SButton = _flexBox.Box;
138
+ var _this$asProps = this.asProps,
139
+ styles = _this$asProps.styles,
140
+ use = _this$asProps.use,
141
+ _this$asProps$theme = _this$asProps.theme,
142
+ theme = _this$asProps$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps$theme,
143
+ loading = _this$asProps.loading,
144
+ _this$asProps$disable = _this$asProps.disabled,
145
+ disabled = _this$asProps$disable === void 0 ? loading : _this$asProps$disable,
146
+ size = _this$asProps.size,
147
+ neighborLocation = _this$asProps.neighborLocation,
148
+ hasChildren = _this$asProps.children,
149
+ title = _this$asProps.title,
150
+ ariaLabel = _this$asProps['aria-label'],
151
+ Children = _this$asProps.Children,
152
+ AddonLeft = _this$asProps.addonLeft,
153
+ AddonRight = _this$asProps.addonRight,
154
+ hintPlacement = _this$asProps.hintPlacement;
155
+ var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
148
156
  var SInner = _flexBox.Box;
149
157
  var SSpin = _flexBox.Box;
150
- var _this$asProps3 = this.asProps,
151
- styles = _this$asProps3.styles,
152
- use = _this$asProps3.use,
153
- _this$asProps3$theme = _this$asProps3.theme,
154
- theme = _this$asProps3$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps3$theme,
155
- loading = _this$asProps3.loading,
156
- _this$asProps3$disabl = _this$asProps3.disabled,
157
- disabled = _this$asProps3$disabl === void 0 ? loading : _this$asProps3$disabl,
158
- size = _this$asProps3.size,
159
- neighborLocation = _this$asProps3.neighborLocation,
160
- hasChildren = _this$asProps3.children;
161
- var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
158
+ var buttonAriaLabel = (_ref12 = (_ref13 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref13 !== void 0 ? _ref13 : this.state.ariaLabelledByContent) !== null && _ref12 !== void 0 ? _ref12 : '';
159
+ var buttonProps = {
160
+ type: 'button',
161
+ tag: 'button',
162
+ disabled: disabled,
163
+ 'use:theme': useTheme,
164
+ ref: this.containerRef,
165
+ 'aria-busy': loading,
166
+ 'aria-disabled': disabled,
167
+ __excludeProps: ['title']
168
+ };
169
+ var hintProps = {
170
+ title: buttonAriaLabel,
171
+ timeout: [250, 50],
172
+ placement: hintPlacement,
173
+ theme: theme === 'invert' ? 'invert' : undefined,
174
+ __excludeProps: []
175
+ };
162
176
  return /*#__PURE__*/_react["default"].createElement(_neighborLocation["default"].Detect, {
163
177
  neighborLocation: neighborLocation
164
178
  }, function (neighborLocation) {
165
- var _ref6;
166
- return _ref6 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(SButton, _ref6.cn("SButton", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
167
- "type": 'button',
168
- "tag": 'button',
169
- "disabled": disabled,
170
- "neighborLocation": neighborLocation,
171
- "use:theme": useTheme,
172
- "ref": _this3.containerRef,
173
- "aria-busy": loading,
174
- "aria-disabled": disabled
175
- }, _ref))), /*#__PURE__*/_react["default"].createElement(SInner, _ref6.cn("SInner", {
179
+ var _ref7;
180
+ var children = (_ref7 = (0, _core.sstyled)(styles), /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(SInner, _ref7.cn("SInner", {
176
181
  "tag": 'span',
177
182
  "loading": loading
178
- }), hasChildren ? _this3.renderChildren() : _this3.renderOnlyAddons()), loading && /*#__PURE__*/_react["default"].createElement(SSpin, _ref6.cn("SSpin", {
183
+ }), AddonLeft ? /*#__PURE__*/_react["default"].createElement(Button.Addon, null, /*#__PURE__*/_react["default"].createElement(AddonLeft, _ref7.cn("AddonLeft", {}))) : null, (0, _addonTextChildren["default"])(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/_react["default"].createElement(Button.Addon, null, /*#__PURE__*/_react["default"].createElement(AddonRight, _ref7.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/_react["default"].createElement(SSpin, _ref7.cn("SSpin", {
179
184
  "tag": 'span'
180
- }), /*#__PURE__*/_react["default"].createElement(_SpinButton["default"], _ref6.cn("SpinButton", {
185
+ }), /*#__PURE__*/_react["default"].createElement(_SpinButton["default"], _ref7.cn("SpinButton", {
181
186
  "centered": true,
182
187
  "size": size,
183
188
  "theme": useTheme
184
- }))));
189
+ })))));
190
+ buttonProps.neighborLocation = neighborLocation;
191
+ if (!hasChildren || title) {
192
+ return _this3.renderButtonWithHint({
193
+ buttonProps: buttonProps,
194
+ hintProps: hintProps,
195
+ children: children
196
+ });
197
+ }
198
+ return _this3.renderButton({
199
+ buttonProps: buttonProps,
200
+ children: children
201
+ });
185
202
  });
186
203
  }
187
204
  }]);
@@ -195,20 +212,20 @@ var RootButton = /*#__PURE__*/function (_Component) {
195
212
  size: 'm'
196
213
  });
197
214
  function Text(props) {
198
- var _ref2 = arguments[0],
199
- _ref7;
215
+ var _ref3 = arguments[0],
216
+ _ref8;
200
217
  var SText = _flexBox.Box;
201
- return _ref7 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SText, _ref7.cn("SText", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
218
+ return _ref8 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SText, _ref8.cn("SText", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
202
219
  "tag": 'span'
203
- }, _ref2))));
220
+ }, _ref3))));
204
221
  }
205
222
  function Addon(props) {
206
- var _ref3 = arguments[0],
207
- _ref8;
223
+ var _ref4 = arguments[0],
224
+ _ref9;
208
225
  var SAddon = _flexBox.Box;
209
- return _ref8 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SAddon, _ref8.cn("SAddon", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
226
+ return _ref9 = (0, _core.sstyled)(props.styles), /*#__PURE__*/_react["default"].createElement(SAddon, _ref9.cn("SAddon", (0, _objectSpread2["default"])({}, (0, _core.assignProps)({
210
227
  "tag": 'span'
211
- }, _ref3))));
228
+ }, _ref4))));
212
229
  }
213
230
  var Button = (0, _core["default"])(RootButton, {
214
231
  Text: Text,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_tooltip","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","_logger","_SpinButton","_hasLabels","style","_index","sstyled","insert","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","exports","RootButton","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","ariaLabelledByContent","_createClass2","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","displayName","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderChildren","_ref4","_this$asProps","Children","styles","AddonLeft","addonLeft","AddonRight","addonRight","createElement","Fragment","Button","Addon","tag","addonTextChildren","Text","renderOnlyAddons","_ref5","_ref9","_ref10","_this$asProps2","title","ariaLabel","hintContent","state","Hint","cn","render","_ref","_this3","SButton","Box","SInner","SSpin","_this$asProps3","use","_this$asProps3$theme","theme","loading","_this$asProps3$disabl","disabled","neighborLocation","hasChildren","children","useTheme","Detect","_ref6","_objectSpread2","assignProps","Component","keyboardFocusEnhance","props","_ref2","arguments[0]","_ref7","SText","_ref3","_ref8","SAddon","createComponent","_default"],"sources":["../../src/Button.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Hint } from '@semcore/tooltip';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport logger from '@semcore/utils/lib/logger';\nimport SpinButton from './SpinButton';\n\nimport style from './style/button.shadow.css';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\n\nexport const MAP_USE_DEFAULT_THEME = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\nclass RootButton extends Component {\n static displayName = 'Button';\n static enhance = [keyboardFocusEnhance()];\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n containerRef = React.createRef();\n\n state = {\n ariaLabelledByContent: '',\n };\n\n getTextProps() {\n const { size } = this.asProps;\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),\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 if (this.asProps['aria-labelledby']) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent:\n document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n renderChildren() {\n const { Children, styles, addonLeft: AddonLeft, addonRight: AddonRight } = this.asProps;\n\n return sstyled(styles)(\n <>\n {AddonLeft ? <Button.Addon tag={AddonLeft} /> : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight ? <Button.Addon tag={AddonRight} /> : null}\n </>,\n );\n }\n\n renderOnlyAddons() {\n const {\n styles,\n addonLeft: AddonLeft,\n addonRight: AddonRight,\n title,\n ['aria-label']: ariaLabel,\n } = this.asProps;\n\n const hintContent = title ?? ariaLabel ?? this.state.ariaLabelledByContent ?? '';\n\n return sstyled(styles)(\n <Hint\n tag={Button.Addon}\n title={hintContent}\n timeout={[250, 50]}\n __excludeProps={['aria-label']}\n >\n {AddonLeft && <AddonLeft />}\n {AddonRight && <AddonRight />}\n </Hint>,\n );\n }\n\n render() {\n const SButton = Root;\n const SInner = Box;\n const SSpin = Box;\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 } = this.asProps;\n const useTheme = use && theme ? `${use}-${theme}` : false;\n\n return (\n <NeighborLocation.Detect neighborLocation={neighborLocation}>\n {(neighborLocation) =>\n sstyled(styles)(\n <SButton\n render={Box}\n type='button'\n tag='button'\n disabled={disabled}\n neighborLocation={neighborLocation}\n use:theme={useTheme}\n ref={this.containerRef}\n aria-busy={loading}\n aria-disabled={disabled}\n >\n <SInner tag='span' loading={loading}>\n {hasChildren ? this.renderChildren() : this.renderOnlyAddons()}\n </SInner>\n {loading && (\n <SSpin tag='span'>\n <SpinButton centered size={size} theme={useTheme} />\n </SSpin>\n )}\n </SButton>,\n )\n }\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\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});\n\nexport default Button;\n"],"mappings":"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"}
1
+ {"version":3,"file":"Button.js","names":["_core","_interopRequireWildcard","require","_react","_interopRequireDefault","_flexBox","_tooltip","_neighborLocation","_keyboardFocusEnhance","_addonTextChildren","_logger","_SpinButton","_hasLabels","style","_index","sstyled","insert","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","exports","RootButton","_Component","_inherits2","_super","_createSuper2","_this","_classCallCheck2","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty2","_assertThisInitialized2","React","createRef","ariaLabelledByContent","_createClass2","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","logger","warn","containerRef","current","hasLabels","title","displayName","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderButton","_ref10","_ref","_ref5","buttonProps","children","styles","SButton","Box","createElement","cn","_objectSpread2","assignProps","renderButtonWithHint","_ref11","_ref2","_ref6","hintProps","Hint","render","_ref12","_ref13","_this3","_this$asProps","use","_this$asProps$theme","theme","loading","_this$asProps$disable","disabled","neighborLocation","hasChildren","ariaLabel","Children","AddonLeft","addonLeft","AddonRight","addonRight","hintPlacement","useTheme","SInner","SSpin","buttonAriaLabel","state","type","tag","ref","__excludeProps","timeout","placement","undefined","Detect","_ref7","Fragment","Button","Addon","addonTextChildren","Text","Component","keyboardFocusEnhance","props","_ref3","arguments[0]","_ref8","SText","_ref4","_ref9","SAddon","createComponent","_default"],"sources":["../../src/Button.jsx"],"sourcesContent":["import React from 'react';\nimport createComponent, { Component, sstyled, Root } from '@semcore/core';\nimport { Box } from '@semcore/flex-box';\nimport { Hint } from '@semcore/tooltip';\nimport NeighborLocation from '@semcore/neighbor-location';\nimport keyboardFocusEnhance from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport addonTextChildren from '@semcore/utils/lib/addonTextChildren';\nimport logger from '@semcore/utils/lib/logger';\nimport SpinButton from './SpinButton';\n\nimport style from './style/button.shadow.css';\nimport hasLabels from '@semcore/utils/lib/hasLabels';\n\nexport const MAP_USE_DEFAULT_THEME = {\n primary: 'info',\n secondary: 'muted',\n tertiary: 'info',\n};\n\nclass RootButton extends Component {\n static displayName = 'Button';\n static enhance = [keyboardFocusEnhance()];\n static style = style;\n static defaultProps = {\n use: 'secondary',\n size: 'm',\n };\n containerRef = React.createRef();\n\n state = {\n ariaLabelledByContent: null,\n };\n\n getTextProps() {\n const { size } = this.asProps;\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'] || RootButton.displayName,\n );\n }\n\n if (this.asProps['aria-labelledby']) {\n setTimeout(() => {\n this.setState({\n ariaLabelledByContent:\n document.getElementById(this.asProps['aria-labelledby'])?.textContent ?? '',\n });\n }, 0);\n }\n }\n\n renderButton({ buttonProps, children }) {\n const { styles } = this.asProps;\n const SButton = Root;\n\n return sstyled(styles)(\n <SButton render={Box} {...buttonProps}>\n {children}\n </SButton>,\n );\n }\n\n renderButtonWithHint({ buttonProps, children, hintProps }) {\n const { styles } = this.asProps;\n const SButton = Root;\n\n return sstyled(styles)(\n <SButton render={Hint} {...buttonProps} {...hintProps}>\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 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 = {\n type: 'button',\n tag: 'button',\n disabled,\n 'use:theme': useTheme,\n ref: this.containerRef,\n 'aria-busy': loading,\n 'aria-disabled': disabled,\n __excludeProps: ['title'],\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 <SInner tag='span' loading={loading}>\n {AddonLeft ? (\n <Button.Addon>\n <AddonLeft />\n </Button.Addon>\n ) : null}\n {addonTextChildren(Children, Button.Text, Button.Addon)}\n {AddonRight ? (\n <Button.Addon>\n <AddonRight />\n </Button.Addon>\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 || title) {\n return this.renderButtonWithHint({ buttonProps, hintProps, children });\n }\n\n return this.renderButton({ buttonProps, children });\n }}\n </NeighborLocation.Detect>\n );\n }\n}\n\nfunction Text(props) {\n const SText = Root;\n return sstyled(props.styles)(<SText render={Box} tag='span' />);\n}\n\nfunction Addon(props) {\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});\n\nexport default Button;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport { BoxProps } from '@semcore/flex-box';\nimport { NeighborItemProps } from '@semcore/neighbor-location';\n\nexport type ButtonSize = 'l' | 'm';\n\n/** @deprecated */\nexport interface IButtonProps extends ButtonProps, UnknownProperties {}\nexport type ButtonProps = BoxProps &\n NeighborItemProps &\n KeyboardFocusProps & {\n /**\n * Button type\n * @default secondary\n */\n use?: 'primary' | 'secondary' | 'tertiary';\n /** Button theme */\n theme?: 'info' | 'success' | 'warning' | 'danger' | 'muted' | 'invert';\n /** Button activity state */\n active?: boolean;\n /**\n * Button size\n * @default m\n */\n size?: ButtonSize;\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\n/** @deprecated */\nexport interface IButtonTextProps extends ButtonTextProps, UnknownProperties {}\nexport type ButtonTextProps = BoxProps & {\n size?: ButtonSize;\n};\n\n/** @deprecated */\nexport interface IButtonAddonProps extends ButtonAddonProps, UnknownProperties {}\nexport type ButtonAddonProps = BoxProps & {\n size?: ButtonSize;\n};\n\n/** @deprecated */\nexport interface IButtonContext extends ButtonContext, UnknownProperties {}\nexport type ButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n\ndeclare const Button: Intergalactic.Component<'button', ButtonProps, ButtonContext> & {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport default Button;\n"],"mappings":""}
1
+ {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\nimport { BoxProps } from '@semcore/flex-box';\nimport { NeighborItemProps } from '@semcore/neighbor-location';\nimport { TooltipHintProps } from '@semcore/tooltip';\n\nexport type ButtonSize = 'l' | 'm';\n\n/** @deprecated */\nexport interface IButtonProps extends ButtonProps, UnknownProperties {}\nexport type ButtonProps = BoxProps &\n NeighborItemProps &\n KeyboardFocusProps & {\n /**\n * Button type\n * @default secondary\n */\n use?: 'primary' | 'secondary' | 'tertiary';\n /** Button theme */\n theme?: 'info' | 'success' | 'warning' | 'danger' | 'muted' | 'invert';\n /** Button activity state */\n active?: boolean;\n /**\n * Button size\n * @default m\n */\n size?: ButtonSize;\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\n/** @deprecated */\nexport interface IButtonTextProps extends ButtonTextProps, UnknownProperties {}\nexport type ButtonTextProps = BoxProps & {\n size?: ButtonSize;\n};\n\n/** @deprecated */\nexport interface IButtonAddonProps extends ButtonAddonProps, UnknownProperties {}\nexport type ButtonAddonProps = BoxProps & {\n size?: ButtonSize;\n};\n\n/** @deprecated */\nexport interface IButtonContext extends ButtonContext, UnknownProperties {}\nexport type ButtonContext = {\n getTextProps: PropGetterFn;\n getAddonProps: PropGetterFn;\n};\n\ndeclare const Button: Intergalactic.Component<'button', ButtonProps, ButtonContext> & {\n Text: Intergalactic.Component<'span', ButtonTextProps>;\n Addon: Intergalactic.Component<'span', ButtonAddonProps>;\n};\n\nexport default Button;\n"],"mappings":""}
@@ -6,6 +6,7 @@ import _inherits from "@babel/runtime/helpers/inherits";
6
6
  import _createSuper from "@babel/runtime/helpers/createSuper";
7
7
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
8
  import { sstyled as _sstyled } from 'intergalactic/utils/lib/core/index';
9
+ import { assignProps as _assignProps4 } from 'intergalactic/core';
9
10
  import { assignProps as _assignProps3 } from 'intergalactic/core';
10
11
  import { assignProps as _assignProps2 } from 'intergalactic/core';
11
12
  import { assignProps as _assignProps } from 'intergalactic/core';
@@ -64,7 +65,7 @@ var RootButton = /*#__PURE__*/function (_Component) {
64
65
  _this = _super.call.apply(_super, [this].concat(args));
65
66
  _defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/React.createRef());
66
67
  _defineProperty(_assertThisInitialized(_this), "state", {
67
- ariaLabelledByContent: ''
68
+ ariaLabelledByContent: null
68
69
  });
69
70
  return _this;
70
71
  }
@@ -89,7 +90,7 @@ var RootButton = /*#__PURE__*/function (_Component) {
89
90
  value: function componentDidMount() {
90
91
  var _this2 = this;
91
92
  if (process.env.NODE_ENV !== 'production') {
92
- logger.warn(this.containerRef.current && !hasLabels(this.containerRef.current), "'title' or 'aria-label' or 'aria-labelledby' are required props for buttons without text content", this.asProps['data-ui-name'] || RootButton.displayName);
93
+ 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);
93
94
  }
94
95
  if (this.asProps['aria-labelledby']) {
95
96
  setTimeout(function () {
@@ -101,81 +102,98 @@ var RootButton = /*#__PURE__*/function (_Component) {
101
102
  }
102
103
  }
103
104
  }, {
104
- key: "renderChildren",
105
- value: function renderChildren() {
106
- var _ref4;
107
- var _this$asProps = this.asProps,
108
- Children = _this$asProps.Children,
109
- styles = _this$asProps.styles,
110
- AddonLeft = _this$asProps.addonLeft,
111
- AddonRight = _this$asProps.addonRight;
112
- return _ref4 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, AddonLeft ? /*#__PURE__*/React.createElement(Button.Addon, {
113
- tag: AddonLeft
114
- }) : null, addonTextChildren(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/React.createElement(Button.Addon, {
115
- tag: AddonRight
116
- }) : null);
105
+ key: "renderButton",
106
+ value: function renderButton(_ref10) {
107
+ var _ref = this.asProps,
108
+ _ref5;
109
+ var buttonProps = _ref10.buttonProps,
110
+ children = _ref10.children;
111
+ var styles = this.asProps.styles;
112
+ var SButton = Box;
113
+ return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(SButton, _ref5.cn("SButton", _objectSpread({}, _assignProps(_objectSpread({}, buttonProps), _ref))), children);
117
114
  }
118
115
  }, {
119
- key: "renderOnlyAddons",
120
- value: function renderOnlyAddons() {
121
- var _ref5, _ref9, _ref10;
122
- var _this$asProps2 = this.asProps,
123
- styles = _this$asProps2.styles,
124
- AddonLeft = _this$asProps2.addonLeft,
125
- AddonRight = _this$asProps2.addonRight,
126
- title = _this$asProps2.title,
127
- ariaLabel = _this$asProps2['aria-label'];
128
- var hintContent = (_ref9 = (_ref10 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref10 !== void 0 ? _ref10 : this.state.ariaLabelledByContent) !== null && _ref9 !== void 0 ? _ref9 : '';
129
- return _ref5 = sstyled(styles), /*#__PURE__*/React.createElement(Hint, _ref5.cn("Hint", {
130
- "tag": Button.Addon,
131
- "title": hintContent,
132
- "timeout": [250, 50],
133
- "__excludeProps": ['aria-label']
134
- }), AddonLeft && /*#__PURE__*/React.createElement(AddonLeft, _ref5.cn("AddonLeft", {})), AddonRight && /*#__PURE__*/React.createElement(AddonRight, _ref5.cn("AddonRight", {})));
116
+ key: "renderButtonWithHint",
117
+ value: function renderButtonWithHint(_ref11) {
118
+ var _ref2 = this.asProps,
119
+ _ref6;
120
+ var buttonProps = _ref11.buttonProps,
121
+ children = _ref11.children,
122
+ hintProps = _ref11.hintProps;
123
+ var styles = this.asProps.styles;
124
+ var SButton = Hint;
125
+ return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SButton, _ref6.cn("SButton", _objectSpread({}, _assignProps2(_objectSpread(_objectSpread({}, buttonProps), hintProps), _ref2))), children);
135
126
  }
136
127
  }, {
137
128
  key: "render",
138
129
  value: function render() {
139
- var _ref = this.asProps,
130
+ var _ref12,
131
+ _ref13,
140
132
  _this3 = this;
141
- var SButton = Box;
133
+ var _this$asProps = this.asProps,
134
+ styles = _this$asProps.styles,
135
+ use = _this$asProps.use,
136
+ _this$asProps$theme = _this$asProps.theme,
137
+ theme = _this$asProps$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps$theme,
138
+ loading = _this$asProps.loading,
139
+ _this$asProps$disable = _this$asProps.disabled,
140
+ disabled = _this$asProps$disable === void 0 ? loading : _this$asProps$disable,
141
+ size = _this$asProps.size,
142
+ neighborLocation = _this$asProps.neighborLocation,
143
+ hasChildren = _this$asProps.children,
144
+ title = _this$asProps.title,
145
+ ariaLabel = _this$asProps['aria-label'],
146
+ Children = _this$asProps.Children,
147
+ AddonLeft = _this$asProps.addonLeft,
148
+ AddonRight = _this$asProps.addonRight,
149
+ hintPlacement = _this$asProps.hintPlacement;
150
+ var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
142
151
  var SInner = Box;
143
152
  var SSpin = Box;
144
- var _this$asProps3 = this.asProps,
145
- styles = _this$asProps3.styles,
146
- use = _this$asProps3.use,
147
- _this$asProps3$theme = _this$asProps3.theme,
148
- theme = _this$asProps3$theme === void 0 ? typeof use === 'string' && MAP_USE_DEFAULT_THEME[use] : _this$asProps3$theme,
149
- loading = _this$asProps3.loading,
150
- _this$asProps3$disabl = _this$asProps3.disabled,
151
- disabled = _this$asProps3$disabl === void 0 ? loading : _this$asProps3$disabl,
152
- size = _this$asProps3.size,
153
- neighborLocation = _this$asProps3.neighborLocation,
154
- hasChildren = _this$asProps3.children;
155
- var useTheme = use && theme ? "".concat(use, "-").concat(theme) : false;
153
+ var buttonAriaLabel = (_ref12 = (_ref13 = title !== null && title !== void 0 ? title : ariaLabel) !== null && _ref13 !== void 0 ? _ref13 : this.state.ariaLabelledByContent) !== null && _ref12 !== void 0 ? _ref12 : '';
154
+ var buttonProps = {
155
+ type: 'button',
156
+ tag: 'button',
157
+ disabled: disabled,
158
+ 'use:theme': useTheme,
159
+ ref: this.containerRef,
160
+ 'aria-busy': loading,
161
+ 'aria-disabled': disabled,
162
+ __excludeProps: ['title']
163
+ };
164
+ var hintProps = {
165
+ title: buttonAriaLabel,
166
+ timeout: [250, 50],
167
+ placement: hintPlacement,
168
+ theme: theme === 'invert' ? 'invert' : undefined,
169
+ __excludeProps: []
170
+ };
156
171
  return /*#__PURE__*/React.createElement(NeighborLocation.Detect, {
157
172
  neighborLocation: neighborLocation
158
173
  }, function (neighborLocation) {
159
- var _ref6;
160
- return _ref6 = sstyled(styles), /*#__PURE__*/React.createElement(SButton, _ref6.cn("SButton", _objectSpread({}, _assignProps({
161
- "type": 'button',
162
- "tag": 'button',
163
- "disabled": disabled,
164
- "neighborLocation": neighborLocation,
165
- "use:theme": useTheme,
166
- "ref": _this3.containerRef,
167
- "aria-busy": loading,
168
- "aria-disabled": disabled
169
- }, _ref))), /*#__PURE__*/React.createElement(SInner, _ref6.cn("SInner", {
174
+ var _ref7;
175
+ var children = (_ref7 = sstyled(styles), /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SInner, _ref7.cn("SInner", {
170
176
  "tag": 'span',
171
177
  "loading": loading
172
- }), hasChildren ? _this3.renderChildren() : _this3.renderOnlyAddons()), loading && /*#__PURE__*/React.createElement(SSpin, _ref6.cn("SSpin", {
178
+ }), AddonLeft ? /*#__PURE__*/React.createElement(Button.Addon, null, /*#__PURE__*/React.createElement(AddonLeft, _ref7.cn("AddonLeft", {}))) : null, addonTextChildren(Children, Button.Text, Button.Addon), AddonRight ? /*#__PURE__*/React.createElement(Button.Addon, null, /*#__PURE__*/React.createElement(AddonRight, _ref7.cn("AddonRight", {}))) : null), loading && /*#__PURE__*/React.createElement(SSpin, _ref7.cn("SSpin", {
173
179
  "tag": 'span'
174
- }), /*#__PURE__*/React.createElement(SpinButton, _ref6.cn("SpinButton", {
180
+ }), /*#__PURE__*/React.createElement(SpinButton, _ref7.cn("SpinButton", {
175
181
  "centered": true,
176
182
  "size": size,
177
183
  "theme": useTheme
178
- }))));
184
+ })))));
185
+ buttonProps.neighborLocation = neighborLocation;
186
+ if (!hasChildren || title) {
187
+ return _this3.renderButtonWithHint({
188
+ buttonProps: buttonProps,
189
+ hintProps: hintProps,
190
+ children: children
191
+ });
192
+ }
193
+ return _this3.renderButton({
194
+ buttonProps: buttonProps,
195
+ children: children
196
+ });
179
197
  });
180
198
  }
181
199
  }]);
@@ -189,20 +207,20 @@ _defineProperty(RootButton, "defaultProps", {
189
207
  size: 'm'
190
208
  });
191
209
  function Text(props) {
192
- var _ref2 = arguments[0],
193
- _ref7;
210
+ var _ref3 = arguments[0],
211
+ _ref8;
194
212
  var SText = Box;
195
- return _ref7 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref7.cn("SText", _objectSpread({}, _assignProps2({
213
+ return _ref8 = sstyled(props.styles), /*#__PURE__*/React.createElement(SText, _ref8.cn("SText", _objectSpread({}, _assignProps3({
196
214
  "tag": 'span'
197
- }, _ref2))));
215
+ }, _ref3))));
198
216
  }
199
217
  function Addon(props) {
200
- var _ref3 = arguments[0],
201
- _ref8;
218
+ var _ref4 = arguments[0],
219
+ _ref9;
202
220
  var SAddon = Box;
203
- return _ref8 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref8.cn("SAddon", _objectSpread({}, _assignProps3({
221
+ return _ref9 = sstyled(props.styles), /*#__PURE__*/React.createElement(SAddon, _ref9.cn("SAddon", _objectSpread({}, _assignProps4({
204
222
  "tag": 'span'
205
- }, _ref3))));
223
+ }, _ref4))));
206
224
  }
207
225
  var Button = createComponent(RootButton, {
208
226
  Text: Text,