intergalactic 15.104.1 → 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 (120) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/button/index.d.ts +6 -0
  3. package/button/lib/cjs/Button.js +84 -67
  4. package/button/lib/cjs/Button.js.map +1 -1
  5. package/button/lib/cjs/index.d.js.map +1 -1
  6. package/button/lib/es6/Button.js +85 -67
  7. package/button/lib/es6/Button.js.map +1 -1
  8. package/button/lib/es6/index.d.js.map +1 -1
  9. package/button/lib/types/index.d.ts +6 -0
  10. package/components.json +5 -5
  11. package/data-table/Head.d.ts +4 -1
  12. package/data-table/lib/cjs/Body.js +3 -3
  13. package/data-table/lib/cjs/DataTable.js +36 -37
  14. package/data-table/lib/cjs/DataTable.js.map +1 -1
  15. package/data-table/lib/cjs/Head.js +13 -8
  16. package/data-table/lib/cjs/Head.js.map +1 -1
  17. package/data-table/lib/cjs/style/data-table.shadow.css +7 -4
  18. package/data-table/lib/es6/Body.js +3 -3
  19. package/data-table/lib/es6/DataTable.js +36 -37
  20. package/data-table/lib/es6/DataTable.js.map +1 -1
  21. package/data-table/lib/es6/Head.js +13 -8
  22. package/data-table/lib/es6/Head.js.map +1 -1
  23. package/data-table/lib/es6/style/data-table.shadow.css +7 -4
  24. package/data-table/lib/types/Head.d.ts +4 -1
  25. package/data-table/package.json +1 -1
  26. package/feedback-form/lib/cjs/FeedbackForm.js +9 -9
  27. package/feedback-form/lib/cjs/FeedbackForm.js.map +1 -1
  28. package/feedback-form/lib/cjs/component/checkbox-button/CheckboxButton.js +3 -3
  29. package/feedback-form/lib/cjs/component/feedback-rating/FeedbackRating.js +13 -16
  30. package/feedback-form/lib/cjs/component/feedback-rating/FeedbackRating.js.map +1 -1
  31. package/feedback-form/lib/cjs/component/slider-rating/SliderRating.js +6 -6
  32. package/feedback-form/lib/es6/FeedbackForm.js +9 -9
  33. package/feedback-form/lib/es6/FeedbackForm.js.map +1 -1
  34. package/feedback-form/lib/es6/component/checkbox-button/CheckboxButton.js +3 -3
  35. package/feedback-form/lib/es6/component/feedback-rating/FeedbackRating.js +9 -12
  36. package/feedback-form/lib/es6/component/feedback-rating/FeedbackRating.js.map +1 -1
  37. package/feedback-form/lib/es6/component/slider-rating/SliderRating.js +6 -6
  38. package/feedback-form/package.json +1 -1
  39. package/fullscreen-modal/index.d.ts +2 -2
  40. package/fullscreen-modal/lib/cjs/index.d.js.map +1 -1
  41. package/fullscreen-modal/lib/es6/index.d.js.map +1 -1
  42. package/fullscreen-modal/lib/types/index.d.ts +2 -2
  43. package/inline-edit/lib/cjs/InlineEdit.js +4 -4
  44. package/inline-edit/lib/cjs/translations/de.json +1 -1
  45. package/inline-edit/lib/cjs/translations/es.json +1 -1
  46. package/inline-edit/lib/cjs/translations/fr.json +1 -1
  47. package/inline-edit/lib/cjs/translations/it.json +1 -1
  48. package/inline-edit/lib/cjs/translations/ja.json +1 -1
  49. package/inline-edit/lib/cjs/translations/ko.json +1 -1
  50. package/inline-edit/lib/cjs/translations/nl.json +1 -1
  51. package/inline-edit/lib/cjs/translations/pl.json +1 -1
  52. package/inline-edit/lib/cjs/translations/pt.json +1 -1
  53. package/inline-edit/lib/cjs/translations/sv.json +1 -1
  54. package/inline-edit/lib/cjs/translations/tr.json +1 -1
  55. package/inline-edit/lib/cjs/translations/vi.json +1 -1
  56. package/inline-edit/lib/cjs/translations/zh.json +1 -1
  57. package/inline-edit/lib/es6/InlineEdit.js +4 -4
  58. package/inline-edit/lib/es6/translations/de.json +1 -1
  59. package/inline-edit/lib/es6/translations/es.json +1 -1
  60. package/inline-edit/lib/es6/translations/fr.json +1 -1
  61. package/inline-edit/lib/es6/translations/it.json +1 -1
  62. package/inline-edit/lib/es6/translations/ja.json +1 -1
  63. package/inline-edit/lib/es6/translations/ko.json +1 -1
  64. package/inline-edit/lib/es6/translations/nl.json +1 -1
  65. package/inline-edit/lib/es6/translations/pl.json +1 -1
  66. package/inline-edit/lib/es6/translations/pt.json +1 -1
  67. package/inline-edit/lib/es6/translations/sv.json +1 -1
  68. package/inline-edit/lib/es6/translations/tr.json +1 -1
  69. package/inline-edit/lib/es6/translations/vi.json +1 -1
  70. package/inline-edit/lib/es6/translations/zh.json +1 -1
  71. package/inline-edit/package.json +1 -1
  72. package/modal/index.d.ts +2 -1
  73. package/modal/lib/cjs/index.d.js.map +1 -1
  74. package/modal/lib/es6/index.d.js.map +1 -1
  75. package/modal/lib/types/index.d.ts +2 -1
  76. package/notice/index.d.ts +2 -2
  77. package/notice/lib/cjs/Notice.js +19 -17
  78. package/notice/lib/cjs/Notice.js.map +1 -1
  79. package/notice/lib/cjs/index.d.js.map +1 -1
  80. package/notice/lib/cjs/style/notice.shadow.css +3 -1
  81. package/notice/lib/es6/Notice.js +19 -17
  82. package/notice/lib/es6/Notice.js.map +1 -1
  83. package/notice/lib/es6/index.d.js.map +1 -1
  84. package/notice/lib/es6/style/notice.shadow.css +3 -1
  85. package/notice/lib/types/index.d.ts +2 -2
  86. package/notice/package.json +1 -1
  87. package/package.json +1 -1
  88. package/side-panel/index.d.ts +2 -1
  89. package/side-panel/lib/cjs/index.d.js.map +1 -1
  90. package/side-panel/lib/es6/index.d.js.map +1 -1
  91. package/side-panel/lib/types/index.d.ts +2 -1
  92. package/time-picker/lib/cjs/TimePicker.js +12 -12
  93. package/time-picker/lib/cjs/translations/de.json +6 -5
  94. package/time-picker/lib/cjs/translations/es.json +6 -5
  95. package/time-picker/lib/cjs/translations/fr.json +6 -5
  96. package/time-picker/lib/cjs/translations/it.json +6 -5
  97. package/time-picker/lib/cjs/translations/ja.json +6 -5
  98. package/time-picker/lib/cjs/translations/ko.json +6 -5
  99. package/time-picker/lib/cjs/translations/nl.json +6 -5
  100. package/time-picker/lib/cjs/translations/pl.json +6 -5
  101. package/time-picker/lib/cjs/translations/pt.json +6 -5
  102. package/time-picker/lib/cjs/translations/sv.json +6 -5
  103. package/time-picker/lib/cjs/translations/tr.json +6 -5
  104. package/time-picker/lib/cjs/translations/vi.json +6 -5
  105. package/time-picker/lib/cjs/translations/zh.json +6 -5
  106. package/time-picker/lib/es6/TimePicker.js +12 -12
  107. package/time-picker/lib/es6/translations/de.json +6 -5
  108. package/time-picker/lib/es6/translations/es.json +6 -5
  109. package/time-picker/lib/es6/translations/fr.json +6 -5
  110. package/time-picker/lib/es6/translations/it.json +6 -5
  111. package/time-picker/lib/es6/translations/ja.json +6 -5
  112. package/time-picker/lib/es6/translations/ko.json +6 -5
  113. package/time-picker/lib/es6/translations/nl.json +6 -5
  114. package/time-picker/lib/es6/translations/pl.json +6 -5
  115. package/time-picker/lib/es6/translations/pt.json +6 -5
  116. package/time-picker/lib/es6/translations/sv.json +6 -5
  117. package/time-picker/lib/es6/translations/tr.json +6 -5
  118. package/time-picker/lib/es6/translations/vi.json +6 -5
  119. package/time-picker/lib/es6/translations/zh.json +6 -5
  120. 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
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,
@@ -1 +1 @@
1
- {"version":3,"file":"Button.js","names":["React","createComponent","Component","sstyled","Root","Box","Hint","NeighborLocation","keyboardFocusEnhance","addonTextChildren","logger","SpinButton","style","_sstyled","insert","hasLabels","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","RootButton","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","ariaLabelledByContent","_createClass","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","warn","containerRef","current","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","Text","renderOnlyAddons","_ref5","_ref9","_ref10","_this$asProps2","title","ariaLabel","hintContent","state","cn","render","_ref","_this3","SButton","SInner","SSpin","_this$asProps3","use","_this$asProps3$theme","theme","loading","_this$asProps3$disabl","disabled","neighborLocation","hasChildren","children","useTheme","Detect","_ref6","_objectSpread","_assignProps","props","_ref2","arguments[0]","_ref7","SText","_assignProps2","_ref3","_ref8","SAddon","_assignProps3"],"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":";;;;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,eAAe,IAAIC,SAAS,EAAEC,OAAO,EAAEC,IAAI,QAAQ,eAAe;AACzE,SAASC,GAAG,QAAQ,mBAAmB;AACvC,SAASC,IAAI,QAAQ,kBAAkB;AACvC,OAAOC,gBAAgB,MAAM,4BAA4B;AACzD,OAAOC,oBAAoB,MAAM,kDAAkD;AACnF,OAAOC,iBAAiB,MAAM,sCAAsC;AACpE,OAAOC,MAAM,MAAM,2BAA2B;AAC9C,OAAOC,UAAU,MAAM,cAAc;AAAC;AAAA,IAAAC,KAAA,+BAAAC,QAAA,CAAAC,MAAA;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;AAGtC,OAAOC,SAAS,MAAM,8BAA8B;AAEpD,OAAO,IAAMC,qBAAqB,GAAG;EACnCC,OAAO,EAAE,MAAM;EACfC,SAAS,EAAE,OAAO;EAClBC,QAAQ,EAAE;AACZ,CAAC;AAAC,IAEIC,UAAU,0BAAAC,UAAA;EAAAC,SAAA,CAAAF,UAAA,EAAAC,UAAA;EAAA,IAAAE,MAAA,GAAAC,YAAA,CAAAJ,UAAA;EAAA,SAAAA,WAAA;IAAA,IAAAK,KAAA;IAAAC,eAAA,OAAAN,UAAA;IAAA,SAAAO,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAAC,IAAA,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAAF,IAAA,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAAP,KAAA,GAAAF,MAAA,CAAAU,IAAA,CAAAC,KAAA,CAAAX,MAAA,SAAAY,MAAA,CAAAL,IAAA;IAAAM,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,gCAQCzB,KAAK,CAACsC,SAAS,EAAE;IAAAF,eAAA,CAAAC,sBAAA,CAAAZ,KAAA,YAExB;MACNc,qBAAqB,EAAE;IACzB,CAAC;IAAA,OAAAd,KAAA;EAAA;EAAAe,YAAA,CAAApB,UAAA;IAAAqB,GAAA;IAAAC,KAAA,EAED,SAAAC,aAAA,EAAe;MACb,IAAQC,IAAI,GAAK,IAAI,CAACC,OAAO,CAArBD,IAAI;MACZ,OAAO;QACLA,IAAI,EAAJA;MACF,CAAC;IACH;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAI,cAAA,EAAgB;MACd,IAAQF,IAAI,GAAK,IAAI,CAACC,OAAO,CAArBD,IAAI;MACZ,OAAO;QACLA,IAAI,EAAJA;MACF,CAAC;IACH;EAAC;IAAAH,GAAA;IAAAC,KAAA,EAED,SAAAK,kBAAA,EAAoB;MAAA,IAAAC,MAAA;MAClB,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY,EAAE;QACzCzC,MAAM,CAAC0C,IAAI,CACT,IAAI,CAACC,YAAY,CAACC,OAAO,IAAI,CAACvC,SAAS,CAAC,IAAI,CAACsC,YAAY,CAACC,OAAO,CAAC,sGAElE,IAAI,CAACT,OAAO,CAAC,cAAc,CAAC,IAAIzB,UAAU,CAACmC,WAAW,CACvD;MACH;MAEA,IAAI,IAAI,CAACV,OAAO,CAAC,iBAAiB,CAAC,EAAE;QACnCW,UAAU,CAAC,YAAM;UAAA,IAAAC,qBAAA,EAAAC,sBAAA;UACfV,MAAI,CAACW,QAAQ,CAAC;YACZpB,qBAAqB,GAAAkB,qBAAA,IAAAC,sBAAA,GACnBE,QAAQ,CAACC,cAAc,CAACb,MAAI,CAACH,OAAO,CAAC,iBAAiB,CAAC,CAAC,cAAAa,sBAAA,uBAAxDA,sBAAA,CAA0DI,WAAW,cAAAL,qBAAA,cAAAA,qBAAA,GAAI;UAC7E,CAAC,CAAC;QACJ,CAAC,EAAE,CAAC,CAAC;MACP;IACF;EAAC;IAAAhB,GAAA;IAAAC,KAAA,EAED,SAAAqB,eAAA,EAAiB;MAAA,IAAAC,KAAA;MACf,IAAAC,aAAA,GAA2E,IAAI,CAACpB,OAAO;QAA/EqB,QAAQ,GAAAD,aAAA,CAARC,QAAQ;QAAEC,MAAM,GAAAF,aAAA,CAANE,MAAM;QAAaC,SAAS,GAAAH,aAAA,CAApBI,SAAS;QAAyBC,UAAU,GAAAL,aAAA,CAAtBM,UAAU;MAE1D,OAAAP,KAAA,GAAO7D,OAAO,CAACgE,MAAM,CAAC,eACpBnE,KAAA,CAAAwE,aAAA,CAAAxE,KAAA,CAAAyE,QAAA,QACGL,SAAS,gBAAGpE,KAAA,CAAAwE,aAAA,CAACE,MAAM,CAACC,KAAK;QAACC,GAAG,EAAER;MAAU,EAAG,GAAG,IAAI,EACnD3D,iBAAiB,CAACyD,QAAQ,EAAEQ,MAAM,CAACG,IAAI,EAAEH,MAAM,CAACC,KAAK,CAAC,EACtDL,UAAU,gBAAGtE,KAAA,CAAAwE,aAAA,CAACE,MAAM,CAACC,KAAK;QAACC,GAAG,EAAEN;MAAW,EAAG,GAAG,IAAI,CACrD;IAEP;EAAC;IAAA7B,GAAA;IAAAC,KAAA,EAED,SAAAoC,iBAAA,EAAmB;MAAA,IAAAC,KAAA,EAAAC,KAAA,EAAAC,MAAA;MACjB,IAAAC,cAAA,GAMI,IAAI,CAACrC,OAAO;QALdsB,MAAM,GAAAe,cAAA,CAANf,MAAM;QACKC,SAAS,GAAAc,cAAA,CAApBb,SAAS;QACGC,UAAU,GAAAY,cAAA,CAAtBX,UAAU;QACVY,KAAK,GAAAD,cAAA,CAALC,KAAK;QACWC,SAAS,GAAAF,cAAA,CAAxB,YAAY;MAGf,IAAMG,WAAW,IAAAL,KAAA,IAAAC,MAAA,GAAGE,KAAK,aAALA,KAAK,cAALA,KAAK,GAAIC,SAAS,cAAAH,MAAA,cAAAA,MAAA,GAAI,IAAI,CAACK,KAAK,CAAC/C,qBAAqB,cAAAyC,KAAA,cAAAA,KAAA,GAAI,EAAE;MAEhF,OAAAD,KAAA,GAAO5E,OAAO,CAACgE,MAAM,CAAC,eACpBnE,KAAA,CAAAwE,aAAA,CAAClE,IAAI,EAAAyE,KAAA,CAAAQ,EAAA;QAAA,OACEb,MAAM,CAACC,KAAK;QAAA,SACVU,WAAW;QAAA,WACT,CAAC,GAAG,EAAE,EAAE,CAAC;QAAA,kBACF,CAAC,YAAY;MAAC,IAE7BjB,SAAS,iBAAIpE,KAAA,CAAAwE,aAAA,CAACJ,SAAS,EAAAW,KAAA,CAAAQ,EAAA,kBAAG,EAC1BjB,UAAU,iBAAItE,KAAA,CAAAwE,aAAA,CAACF,UAAU,EAAAS,KAAA,CAAAQ,EAAA,mBAAG,CACxB;IAEX;EAAC;IAAA9C,GAAA;IAAAC,KAAA,EAED,SAAA8C,OAAA,EAAS;MAAA,IAAAC,IAAA,QAAA5C,OAAA;QAAA6C,MAAA;MACP,IAAMC,OAAO,GAoBKtF,GAAG;MAnBrB,IAAMuF,MAAM,GAAGvF,GAAG;MAClB,IAAMwF,KAAK,GAAGxF,GAAG;MACjB,IAAAyF,cAAA,GASI,IAAI,CAACjD,OAAO;QARdsB,MAAM,GAAA2B,cAAA,CAAN3B,MAAM;QACN4B,GAAG,GAAAD,cAAA,CAAHC,GAAG;QAAAC,oBAAA,GAAAF,cAAA,CACHG,KAAK;QAALA,KAAK,GAAAD,oBAAA,cAAG,OAAOD,GAAG,KAAK,QAAQ,IAAI/E,qBAAqB,CAAC+E,GAAG,CAAC,GAAAC,oBAAA;QAC7DE,OAAO,GAAAJ,cAAA,CAAPI,OAAO;QAAAC,qBAAA,GAAAL,cAAA,CACPM,QAAQ;QAARA,QAAQ,GAAAD,qBAAA,cAAGD,OAAO,GAAAC,qBAAA;QAClBvD,IAAI,GAAAkD,cAAA,CAAJlD,IAAI;QACJyD,gBAAgB,GAAAP,cAAA,CAAhBO,gBAAgB;QACNC,WAAW,GAAAR,cAAA,CAArBS,QAAQ;MAEV,IAAMC,QAAQ,GAAGT,GAAG,IAAIE,KAAK,MAAA9D,MAAA,CAAM4D,GAAG,OAAA5D,MAAA,CAAI8D,KAAK,IAAK,KAAK;MAEzD,oBACEjG,KAAA,CAAAwE,aAAA,CAACjE,gBAAgB,CAACkG,MAAM;QAACJ,gBAAgB,EAAEA;MAAiB,GACzD,UAACA,gBAAgB;QAAA,IAAAK,KAAA;QAAA,OAAAA,KAAA,GAChBvG,OAAO,CAACgE,MAAM,CAAC,eACbnE,KAAA,CAAAwE,aAAA,CAACmB,OAAO,EAAAe,KAAA,CAAAnB,EAAA,YAAAoB,aAAA,KAAAC,YAAA;UAAA,QAED,QAAQ;UAAA,OACT,QAAQ;UAAA,YACFR,QAAQ;UAAA,oBACAC,gBAAgB;UAAA,aACvBG,QAAQ;UAAA,OACdd,MAAI,CAACrC,YAAY;UAAA,aACX6C,OAAO;UAAA,iBACHE;QAAQ,GAAAX,IAAA,kBAEvBzF,KAAA,CAAAwE,aAAA,CAACoB,MAAM,EAAAc,KAAA,CAAAnB,EAAA;UAAA,OAAK,MAAM;UAAA,WAAUW;QAAO,IAChCI,WAAW,GAAGZ,MAAI,CAAC3B,cAAc,EAAE,GAAG2B,MAAI,CAACZ,gBAAgB,EAAE,CACvD,EACRoB,OAAO,iBACNlG,KAAA,CAAAwE,aAAA,CAACqB,KAAK,EAAAa,KAAA,CAAAnB,EAAA;UAAA,OAAK;QAAM,iBACfvF,KAAA,CAAAwE,aAAA,CAAC7D,UAAU,EAAA+F,KAAA,CAAAnB,EAAA;UAAA;UAAA,QAAgB3C,IAAI;UAAA,SAAS4D;QAAQ,GAAI,CAEvD,CACO;MAAA,CACX,CAEqB;IAE9B;EAAC;EAAA,OAAApF,UAAA;AAAA,EA/HsBlB,SAAS;AAAAkC,eAAA,CAA5BhB,UAAU,iBACO,QAAQ;AAAAgB,eAAA,CADzBhB,UAAU,aAEG,CAACZ,oBAAoB,EAAE,CAAC;AAAA4B,eAAA,CAFrChB,UAAU,WAGCR,KAAK;AAAAwB,eAAA,CAHhBhB,UAAU,kBAIQ;EACpB2E,GAAG,EAAE,WAAW;EAChBnD,IAAI,EAAE;AACR,CAAC;AA2HH,SAASiC,IAAIA,CAACgC,KAAK,EAAE;EAAA,IAAAC,KAAA,GAAAC,YAAA;IAAAC,KAAA;EACnB,IAAMC,KAAK,GACiC5G,GAAG;EAA/C,OAAA2G,KAAA,GAAO7G,OAAO,CAAC0G,KAAK,CAAC1C,MAAM,CAAC,eAACnE,KAAA,CAAAwE,aAAA,CAACyC,KAAK,EAAAD,KAAA,CAAAzB,EAAA,UAAAoB,aAAA,KAAAO,aAAA;IAAA,OAAkB;EAAM,GAAAJ,KAAA,IAAG;AAChE;AAEA,SAASnC,KAAKA,CAACkC,KAAK,EAAE;EAAA,IAAAM,KAAA,GAAAJ,YAAA;IAAAK,KAAA;EACpB,IAAMC,MAAM,GACiChH,GAAG;EAAhD,OAAA+G,KAAA,GAAOjH,OAAO,CAAC0G,KAAK,CAAC1C,MAAM,CAAC,eAACnE,KAAA,CAAAwE,aAAA,CAAC6C,MAAM,EAAAD,KAAA,CAAA7B,EAAA,WAAAoB,aAAA,KAAAW,aAAA;IAAA,OAAkB;EAAM,GAAAH,KAAA,IAAG;AACjE;AAEA,IAAMzC,MAAM,GAAGzE,eAAe,CAACmB,UAAU,EAAE;EACzCyD,IAAI,EAAJA,IAAI;EACJF,KAAK,EAALA;AACF,CAAC,CAAC;AAEF,eAAeD,MAAM"}
1
+ {"version":3,"file":"Button.js","names":["React","createComponent","Component","sstyled","Root","Box","Hint","NeighborLocation","keyboardFocusEnhance","addonTextChildren","logger","SpinButton","style","_sstyled","insert","hasLabels","MAP_USE_DEFAULT_THEME","primary","secondary","tertiary","RootButton","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","_len","arguments","length","args","Array","_key","call","apply","concat","_defineProperty","_assertThisInitialized","createRef","ariaLabelledByContent","_createClass","key","value","getTextProps","size","asProps","getAddonProps","componentDidMount","_this2","process","env","NODE_ENV","warn","containerRef","current","title","displayName","setTimeout","_document$getElementB","_document$getElementB2","setState","document","getElementById","textContent","renderButton","_ref10","_ref","_ref5","buttonProps","children","styles","SButton","createElement","cn","_objectSpread","_assignProps","renderButtonWithHint","_ref11","_ref2","_ref6","hintProps","_assignProps2","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","Text","props","_ref3","arguments[0]","_ref8","SText","_assignProps3","_ref4","_ref9","SAddon","_assignProps4"],"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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"}