@skbkontur/react-ui 6.0.8 → 6.1.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 (171) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/components/Autocomplete/Autocomplete.js +15 -4
  3. package/components/Autocomplete/Autocomplete.js.map +1 -1
  4. package/components/Button/Button.d.ts +1 -1
  5. package/components/Button/Button.js +5 -4
  6. package/components/Button/Button.js.map +1 -1
  7. package/components/Calendar/CalendarDay.js +3 -0
  8. package/components/Calendar/CalendarDay.js.map +1 -1
  9. package/components/Calendar/DayCellView.styles.d.ts +1 -0
  10. package/components/Calendar/DayCellView.styles.js +6 -3
  11. package/components/Calendar/DayCellView.styles.js.map +1 -1
  12. package/components/DatePicker/MobilePicker.js +1 -1
  13. package/components/DatePicker/MobilePicker.js.map +1 -1
  14. package/components/DateRangePicker/DateRangePicker.js +1 -1
  15. package/components/DateRangePicker/DateRangePicker.js.map +1 -1
  16. package/components/FxInput/FxInputRestoreBtn.js +1 -1
  17. package/components/FxInput/FxInputRestoreBtn.js.map +1 -1
  18. package/components/Input/Input.d.ts +19 -1
  19. package/components/Input/Input.js +10 -3
  20. package/components/Input/Input.js.map +1 -1
  21. package/components/Input/InputLayout/InputLayout.d.ts +3 -1
  22. package/components/Input/InputLayout/InputLayout.js +5 -2
  23. package/components/Input/InputLayout/InputLayout.js.map +1 -1
  24. package/components/Input/InputLayout/InputLayout.styles.d.ts +6 -0
  25. package/components/Input/InputLayout/InputLayout.styles.js +19 -1
  26. package/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
  27. package/components/Input/InputLayout/InputLayoutAside.d.ts +2 -0
  28. package/components/Input/InputLayout/InputLayoutAside.js +2 -2
  29. package/components/Input/InputLayout/InputLayoutAside.js.map +1 -1
  30. package/components/Input/InputLayout/InputLayoutAsideCounter.d.ts +11 -0
  31. package/components/Input/InputLayout/InputLayoutAsideCounter.js +74 -0
  32. package/components/Input/InputLayout/InputLayoutAsideCounter.js.map +1 -0
  33. package/components/Loader/Loader.d.ts +12 -4
  34. package/components/Loader/Loader.js +18 -7
  35. package/components/Loader/Loader.js.map +1 -1
  36. package/components/MenuItem/MenuItem.d.ts +1 -0
  37. package/components/MenuItem/MenuItem.js +17 -1
  38. package/components/MenuItem/MenuItem.js.map +1 -1
  39. package/components/MenuItem/MenuItem.styles.d.ts +3 -0
  40. package/components/MenuItem/MenuItem.styles.js +25 -16
  41. package/components/MenuItem/MenuItem.styles.js.map +1 -1
  42. package/components/Select/Select.js +11 -1
  43. package/components/Select/Select.js.map +1 -1
  44. package/components/SingleToast/SingleToast.d.ts +9 -6
  45. package/components/SingleToast/SingleToast.js +9 -6
  46. package/components/SingleToast/SingleToast.js.map +1 -1
  47. package/components/Spinner/Spinner.d.ts +23 -33
  48. package/components/Spinner/Spinner.js +23 -19
  49. package/components/Spinner/Spinner.js.map +1 -1
  50. package/components/Spinner/Spinner.styles.d.ts +0 -3
  51. package/components/Spinner/Spinner.styles.js +6 -15
  52. package/components/Spinner/Spinner.styles.js.map +1 -1
  53. package/components/Switcher/Switcher.js +1 -0
  54. package/components/Switcher/Switcher.js.map +1 -1
  55. package/components/Textarea/Textarea.js +1 -1
  56. package/components/Textarea/Textarea.js.map +1 -1
  57. package/components/Textarea/Textarea.styles.d.ts +1 -0
  58. package/components/Textarea/Textarea.styles.js +7 -4
  59. package/components/Textarea/Textarea.styles.js.map +1 -1
  60. package/components/Textarea/TextareaCounter.d.ts +2 -0
  61. package/components/Textarea/TextareaCounter.js +22 -4
  62. package/components/Textarea/TextareaCounter.js.map +1 -1
  63. package/components/Toast/Toast.d.ts +13 -14
  64. package/components/Toast/Toast.js +3 -3
  65. package/components/Toast/Toast.js.map +1 -1
  66. package/components/Toast/ToastView.d.ts +8 -5
  67. package/components/Toast/ToastView.js +28 -8
  68. package/components/Toast/ToastView.js.map +1 -1
  69. package/components/Toast/ToastView.styles.d.ts +7 -0
  70. package/components/Toast/ToastView.styles.js +30 -8
  71. package/components/Toast/ToastView.styles.js.map +1 -1
  72. package/components/TokenInput/TokenInput.d.ts +18 -2
  73. package/components/TokenInput/TokenInput.js +236 -79
  74. package/components/TokenInput/TokenInput.js.map +1 -1
  75. package/components/TokenInput/TokenInput.styles.d.ts +1 -0
  76. package/components/TokenInput/TokenInput.styles.js +12 -9
  77. package/components/TokenInput/TokenInput.styles.js.map +1 -1
  78. package/components/TokenInput/TokenInputMenu.d.ts +2 -1
  79. package/components/TokenInput/TokenInputMenu.js +1 -1
  80. package/components/TokenInput/TokenInputMenu.js.map +1 -1
  81. package/components/TokenInput/TokenInputMobileMenu.d.ts +25 -0
  82. package/components/TokenInput/TokenInputMobileMenu.js +40 -0
  83. package/components/TokenInput/TokenInputMobileMenu.js.map +1 -0
  84. package/components/TokenInput/TokenInputReducer.d.ts +2 -0
  85. package/components/TokenInput/TokenInputReducer.js +14 -0
  86. package/components/TokenInput/TokenInputReducer.js.map +1 -1
  87. package/components/Tooltip/Tooltip.d.ts +4 -0
  88. package/components/Tooltip/Tooltip.js +50 -11
  89. package/components/Tooltip/Tooltip.js.map +1 -1
  90. package/internal/CloseButtonIcon/CloseButtonIcon.js +1 -1
  91. package/internal/CloseButtonIcon/CloseButtonIcon.js.map +1 -1
  92. package/internal/CommonWrapper/CommonWrapper.js +5 -0
  93. package/internal/CommonWrapper/CommonWrapper.js.map +1 -1
  94. package/internal/CustomComboBox/ComboBoxMenu.js +1 -1
  95. package/internal/CustomComboBox/ComboBoxMenu.js.map +1 -1
  96. package/internal/CustomComboBox/ComboBoxView.js +13 -2
  97. package/internal/CustomComboBox/ComboBoxView.js.map +1 -1
  98. package/internal/InputLikeText/InputLikeText.d.ts +1 -1
  99. package/internal/InputLikeText/InputLikeText.js.map +1 -1
  100. package/internal/Menu/Menu.js +3 -0
  101. package/internal/Menu/Menu.js.map +1 -1
  102. package/internal/Menu/Menu.styles.d.ts +1 -0
  103. package/internal/Menu/Menu.styles.js +13 -10
  104. package/internal/Menu/Menu.styles.js.map +1 -1
  105. package/internal/MenuMessage/MenuMessage.js +17 -1
  106. package/internal/MenuMessage/MenuMessage.js.map +1 -1
  107. package/internal/MenuMessage/MenuMessage.styles.d.ts +3 -0
  108. package/internal/MenuMessage/MenuMessage.styles.js +13 -4
  109. package/internal/MenuMessage/MenuMessage.styles.js.map +1 -1
  110. package/internal/MobilePopup/MobilePopup.d.ts +8 -0
  111. package/internal/MobilePopup/MobilePopup.js +34 -11
  112. package/internal/MobilePopup/MobilePopup.js.map +1 -1
  113. package/internal/MobilePopup/MobilePopup.styles.d.ts +7 -0
  114. package/internal/MobilePopup/MobilePopup.styles.js +34 -10
  115. package/internal/MobilePopup/MobilePopup.styles.js.map +1 -1
  116. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +8 -1
  117. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +18 -1
  118. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -1
  119. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +3 -0
  120. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +14 -4
  121. package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -1
  122. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.d.ts +4 -0
  123. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js +48 -11
  124. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.js.map +1 -1
  125. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.d.ts +6 -0
  126. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js +28 -8
  127. package/internal/MobilePopup/MobilePopupHeader/MobilePopupHeader.styles.js.map +1 -1
  128. package/internal/Popup/Popup.d.ts +9 -3
  129. package/internal/Popup/Popup.js +117 -15
  130. package/internal/Popup/Popup.js.map +1 -1
  131. package/internal/Popup/Popup.styles.js +1 -1
  132. package/internal/Popup/Popup.styles.js.map +1 -1
  133. package/internal/Popup/PopupHelper.d.ts +4 -0
  134. package/internal/Popup/PopupHelper.js +8 -0
  135. package/internal/Popup/PopupHelper.js.map +1 -1
  136. package/internal/Popup/PopupPin.d.ts +19 -4
  137. package/internal/Popup/PopupPin.js +109 -8
  138. package/internal/Popup/PopupPin.js.map +1 -1
  139. package/internal/Popup/PopupPin.styles.d.ts +2 -0
  140. package/internal/Popup/PopupPin.styles.js +11 -5
  141. package/internal/Popup/PopupPin.styles.js.map +1 -1
  142. package/internal/SpinnerIcon/SpinnerIcon.d.ts +3 -3
  143. package/internal/SpinnerIcon/SpinnerIcon.js +4 -4
  144. package/internal/SpinnerIcon/SpinnerIcon.js.map +1 -1
  145. package/internal/icons2022/LoadingIcon.js +1 -1
  146. package/internal/icons2022/LoadingIcon.js.map +1 -1
  147. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.d.ts +2 -0
  148. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js +21 -0
  149. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.js.map +1 -0
  150. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.d.ts +2 -0
  151. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js +21 -0
  152. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.js.map +1 -0
  153. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.d.ts +2 -0
  154. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js +21 -0
  155. package/internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.js.map +1 -0
  156. package/internal/themes/BasicTheme.d.ts +83 -4
  157. package/internal/themes/BasicTheme.js +186 -5
  158. package/internal/themes/BasicTheme.js.map +1 -1
  159. package/internal/themes/DarkTheme6_1.d.ts +1 -0
  160. package/internal/themes/DarkTheme6_1.js +41 -0
  161. package/internal/themes/DarkTheme6_1.js.map +1 -0
  162. package/internal/themes/LightTheme6_1.d.ts +1 -0
  163. package/internal/themes/LightTheme6_1.js +39 -0
  164. package/internal/themes/LightTheme6_1.js.map +1 -0
  165. package/lib/theming/themes/DarkTheme.d.ts +1 -0
  166. package/lib/theming/themes/DarkTheme.js +3 -1
  167. package/lib/theming/themes/DarkTheme.js.map +1 -1
  168. package/lib/theming/themes/LightTheme.d.ts +1 -0
  169. package/lib/theming/themes/LightTheme.js +3 -1
  170. package/lib/theming/themes/LightTheme.js.map +1 -1
  171. package/package.json +1 -1
@@ -21,7 +21,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
21
21
  };
22
22
  import React from 'react';
23
23
  import warning from 'warning';
24
+ import { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';
25
+ import { getDOMRect } from '../../lib/dom/getDOMRect.js';
26
+ import * as LayoutEvents from '../../lib/LayoutEvents.js';
24
27
  import { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';
28
+ import { ThemeContext } from '../../lib/theming/ThemeContext.js';
25
29
  import { PopupDataTids } from './Popup.js';
26
30
  import { PopupHelper } from './PopupHelper.js';
27
31
  import { getStyles } from './PopupPin.styles.js';
@@ -29,6 +33,12 @@ var PopupPin = /** @class */ (function (_super) {
29
33
  __extends(PopupPin, _super);
30
34
  function PopupPin() {
31
35
  var _this = _super !== null && _super.apply(this, arguments) || this;
36
+ _this.layoutEventsToken = null;
37
+ _this.layoutUpdateId = null;
38
+ _this.cachedPopupElement = null;
39
+ _this.handleLayoutEvent = function () {
40
+ _this.scheduleRemeasure();
41
+ };
32
42
  _this.getPinInlineStyle = function (left, top) {
33
43
  var _a, _b;
34
44
  var direction = _this.getPopupOppositeDirection();
@@ -65,7 +75,7 @@ var PopupPin = /** @class */ (function (_super) {
65
75
  }
66
76
  };
67
77
  _this.getPinCoordinates = function (popupElement) {
68
- var popupRect = PopupHelper.getElementAbsoluteRect(popupElement);
78
+ var popupRect = _this.getPopupElementRect(popupElement);
69
79
  var _a = _this.positionObject, direction = _a.direction, align = _a.align;
70
80
  var defaultPinCoordinates = {
71
81
  top: popupRect.height,
@@ -114,7 +124,7 @@ var PopupPin = /** @class */ (function (_super) {
114
124
  case 'left':
115
125
  return _this.props.offset;
116
126
  case 'center':
117
- return defaultLetfCoordinate;
127
+ return defaultLetfCoordinate + _this.props.offset;
118
128
  case 'right':
119
129
  return popupRect.width - _this.props.offset - 2 * _this.props.size;
120
130
  default:
@@ -139,22 +149,72 @@ var PopupPin = /** @class */ (function (_super) {
139
149
  };
140
150
  return _this;
141
151
  }
152
+ PopupPin.prototype.componentDidMount = function () {
153
+ this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent, this.globalObject);
154
+ this.scheduleRemeasure();
155
+ };
156
+ PopupPin.prototype.componentDidUpdate = function (prevProps) {
157
+ if (prevProps.popupPosition !== this.props.popupPosition ||
158
+ prevProps.offset !== this.props.offset ||
159
+ prevProps.popupElement !== this.props.popupElement) {
160
+ this.scheduleRemeasure();
161
+ }
162
+ };
163
+ PopupPin.prototype.componentWillUnmount = function () {
164
+ var _a;
165
+ this.cancelScheduledRemeasure();
166
+ (_a = this.layoutEventsToken) === null || _a === void 0 ? void 0 : _a.remove();
167
+ this.layoutEventsToken = null;
168
+ };
142
169
  PopupPin.prototype.render = function () {
170
+ var _this = this;
171
+ return (React.createElement(ThemeContext.Consumer, null, function (theme) {
172
+ _this.theme = theme;
173
+ return _this.renderPinContent();
174
+ }));
175
+ };
176
+ PopupPin.prototype.renderPinContent = function () {
143
177
  this.styles = getStyles(this.emotion);
144
- if (!this.props.popupElement) {
178
+ if (this.props.popupElement) {
179
+ this.cachedPopupElement = this.props.popupElement;
180
+ }
181
+ var popupElement = this.props.popupElement || this.cachedPopupElement;
182
+ if (!popupElement) {
145
183
  return null;
146
184
  }
147
185
  this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);
148
- var coords = this.getPinCoordinates(this.props.popupElement);
149
- if (!coords || !coords.left || !coords.top) {
186
+ var coords = this.getPinCoordinates(popupElement);
187
+ if (!coords || typeof coords.left !== 'number' || typeof coords.top !== 'number') {
150
188
  return null;
151
189
  }
152
- var inlineStyle = this.getPinInlineStyle(coords.left, coords.top);
190
+ var popupRect = this.getPopupElementRect(popupElement);
191
+ var clampedPosition = this.applyEdgeClamp(coords, popupRect);
192
+ var inlineStyle = this.getPinInlineStyle(clampedPosition.left, clampedPosition.top);
153
193
  var directionalStyle = this.getPinDirectionalStyle();
154
194
  if (!inlineStyle || !directionalStyle) {
155
195
  return null;
156
196
  }
157
- return (React.createElement("div", { "data-tid": PopupDataTids.popupPin, className: this.cx(this.styles.pin(), directionalStyle), style: inlineStyle }));
197
+ var pinEdgePadding = this.getPinEdgePadding();
198
+ return (React.createElement("div", { "data-tid": PopupDataTids.popupPin, className: this.cx(this.styles.pin(), pinEdgePadding > 0 && this.styles.pinAnimated(), clampedPosition.hidden && this.styles.pinHidden(), directionalStyle), style: inlineStyle }));
199
+ };
200
+ PopupPin.prototype.getPinEdgePadding = function () {
201
+ return PopupHelper.getPopupViewportSidePadding(this.theme, this.isMobileLayout);
202
+ };
203
+ PopupPin.prototype.scheduleRemeasure = function () {
204
+ var _this = this;
205
+ var _a, _b;
206
+ this.cancelScheduledRemeasure();
207
+ this.layoutUpdateId = (_b = (_a = this.globalObject).requestAnimationFrame) === null || _b === void 0 ? void 0 : _b.call(_a, function () {
208
+ _this.layoutUpdateId = null;
209
+ _this.forceUpdate();
210
+ });
211
+ };
212
+ PopupPin.prototype.cancelScheduledRemeasure = function () {
213
+ var _a, _b;
214
+ if (this.layoutUpdateId && this.layoutUpdateId !== null) {
215
+ (_b = (_a = this.globalObject).cancelAnimationFrame) === null || _b === void 0 ? void 0 : _b.call(_a, this.layoutUpdateId);
216
+ this.layoutUpdateId = null;
217
+ }
158
218
  };
159
219
  PopupPin.prototype.getPopupOppositeDirection = function () {
160
220
  var popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;
@@ -172,10 +232,51 @@ var PopupPin = /** @class */ (function (_super) {
172
232
  return 'bottom';
173
233
  }
174
234
  };
235
+ PopupPin.prototype.clampValue = function (value, min, max) {
236
+ return Math.min(Math.max(value, min), max);
237
+ };
238
+ PopupPin.prototype.applyEdgeClamp = function (coords, popupRect) {
239
+ var pinEdgePadding = this.getPinEdgePadding();
240
+ if (pinEdgePadding <= 0) {
241
+ return { left: coords.left, top: coords.top, hidden: false };
242
+ }
243
+ var direction = this.positionObject.direction;
244
+ var pinSpan = 2 * this.props.size;
245
+ if (direction === 'top' || direction === 'bottom') {
246
+ var minLeft = pinEdgePadding;
247
+ var maxLeft = popupRect.width - pinSpan - pinEdgePadding;
248
+ var clampedLeft = this.clampValue(coords.left, minLeft, maxLeft);
249
+ var centerOffset_1 = coords.left - clampedLeft;
250
+ return {
251
+ left: clampedLeft,
252
+ top: coords.top,
253
+ hidden: centerOffset_1 !== 0,
254
+ };
255
+ }
256
+ var minTop = pinEdgePadding;
257
+ var maxTop = popupRect.height - pinSpan - pinEdgePadding;
258
+ var clampedTop = this.clampValue(coords.top, minTop, maxTop);
259
+ var centerOffset = coords.top - clampedTop;
260
+ return {
261
+ left: coords.left,
262
+ top: clampedTop,
263
+ hidden: centerOffset !== 0,
264
+ };
265
+ };
266
+ PopupPin.prototype.getPopupElementRect = function (popupElement) {
267
+ var rect = getDOMRect(popupElement);
268
+ return {
269
+ top: 0,
270
+ left: 0,
271
+ width: rect.width,
272
+ height: rect.height,
273
+ };
274
+ };
175
275
  PopupPin.__KONTUR_REACT_UI__ = 'PopupPin';
176
276
  PopupPin.displayName = 'PopupPin';
177
277
  PopupPin = __decorate([
178
- withRenderEnvironment
278
+ withRenderEnvironment,
279
+ responsiveLayout
179
280
  ], PopupPin);
180
281
  return PopupPin;
181
282
  }(React.Component));
@@ -1 +1 @@
1
- {"version":3,"file":"PopupPin.js","sourceRoot":"","sources":["../../../internal/Popup/PopupPin.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PopupDataTids } from './Popup.js';\nimport type { PositionObject, Rect } from './PopupHelper.js';\nimport { PopupHelper } from './PopupHelper.js';\nimport { getStyles } from './PopupPin.styles.js';\n\ninterface PopupPinProps {\n /** Цвет фона пина */\n backgroundColor: string;\n\n /** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */\n offset: number;\n\n /** Ссылка на попап */\n popupElement?: Nullable<Element>;\n\n /** Позиция попапа, по которой будет вычислено положение пина */\n popupPosition: string;\n\n /**\n * Сторона пина без учёта границы.\n * Пин представляет собой равносторонний треугольник, высота от попапа\n * до \"носика\" пина будет соответствовать формуле (size* √3)/2\n */\n size: number;\n}\n\n@withRenderEnvironment\nexport class PopupPin extends React.Component<PopupPinProps> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n private positionObject!: PositionObject;\n\n private styles!: ReturnType<typeof getStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n\n public render() {\n this.styles = getStyles(this.emotion);\n\n if (!this.props.popupElement) {\n return null;\n }\n\n this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);\n\n const coords = this.getPinCoordinates(this.props.popupElement);\n if (!coords || !coords.left || !coords.top) {\n return null;\n }\n\n const inlineStyle = this.getPinInlineStyle(coords.left, coords.top);\n const directionalStyle = this.getPinDirectionalStyle();\n if (!inlineStyle || !directionalStyle) {\n return null;\n }\n\n return (\n <div\n data-tid={PopupDataTids.popupPin}\n className={this.cx(this.styles.pin(), directionalStyle)}\n style={inlineStyle}\n ></div>\n );\n }\n\n private getPopupOppositeDirection() {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n warning(\n false,\n `Can't get opposite direction: invalid direction ${popupDirection}. Must be one of - 'top', 'bottom', 'left', 'right'.`,\n );\n return 'bottom';\n }\n }\n\n private getPinInlineStyle = (left: number, top: number) => {\n const direction = this.getPopupOppositeDirection();\n if (!direction) {\n return;\n }\n\n // Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов\n const correctedLeft = left - 1;\n const correctedTop = top - 1;\n const correctedSize = this.props.size + 1;\n\n const defaultPinInlineStyle = {\n [direction]: -this.props.size + 'px',\n left: correctedLeft + 'px',\n width: correctedSize * 2 + 'px',\n height: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n\n switch (direction) {\n case 'top':\n case 'bottom':\n return defaultPinInlineStyle;\n case 'left':\n case 'right':\n return {\n [direction]: -this.props.size + 'px',\n top: correctedTop + 'px',\n height: correctedSize * 2 + 'px',\n width: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n default:\n warning(\n false,\n `Can't get inline style: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return defaultPinInlineStyle;\n }\n };\n\n private getPinCoordinates = (popupElement: Element) => {\n const popupRect = PopupHelper.getElementAbsoluteRect(popupElement);\n const { direction, align } = this.positionObject;\n\n const defaultPinCoordinates = {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n\n switch (direction) {\n case 'top':\n return defaultPinCoordinates;\n case 'bottom':\n return {\n top: -2 * this.props.size,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'left':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: popupRect.width,\n };\n case 'right':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: -2 * this.props.size,\n };\n default:\n warning(\n false,\n `Can't get coordinates: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return defaultPinCoordinates;\n }\n };\n\n private getPinTopCoordinate = (popupRect: Rect, align: string) => {\n const defaultTopCoordinate = this.props.offset;\n switch (align) {\n case 'top':\n return defaultTopCoordinate;\n case 'middle':\n return popupRect.height / 2 - this.props.size;\n case 'bottom':\n return popupRect.height - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get top coordinate: invalid align '${align}'. Must be one of - 'top', 'middle', 'bottom'.`,\n );\n return defaultTopCoordinate;\n }\n };\n\n private getPinLeftCoordinate = (popupRect: Rect, align: string) => {\n const defaultLetfCoordinate = popupRect.width / 2 - this.props.size;\n switch (align) {\n case 'left':\n return this.props.offset;\n case 'center':\n return defaultLetfCoordinate;\n case 'right':\n return popupRect.width - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get left coordinate: invalid align '${align}'. Must be one of - 'left', 'center', 'right'.`,\n );\n return defaultLetfCoordinate;\n }\n };\n\n private getPinDirectionalStyle = () => {\n switch (this.positionObject.direction) {\n case 'top':\n return this.styles.pinTop();\n case 'bottom':\n return this.styles.pinBottom();\n case 'left':\n return this.styles.pinLeft();\n case 'right':\n return this.styles.pinRight();\n default:\n warning(\n false,\n `Can't get directional style: invalid direction '${this.positionObject.direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return this.styles.pinTop();\n }\n };\n}\n"]}
1
+ {"version":3,"file":"PopupPin.js","sourceRoot":"","sources":["../../../internal/Popup/PopupPin.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\nimport React from 'react';\nimport warning from 'warning';\n\nimport { responsiveLayout } from '../../components/ResponsiveLayout/decorator.js';\nimport { getDOMRect } from '../../lib/dom/getDOMRect.js';\nimport type { GlobalObject } from '../../lib/globalObject.js';\nimport * as LayoutEvents from '../../lib/LayoutEvents.js';\nimport { withRenderEnvironment } from '../../lib/renderEnvironment/index.js';\nimport type { Theme } from '../../lib/theming/Theme.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport type { Nullable } from '../../typings/utility-types.js';\nimport { PopupDataTids } from './Popup.js';\nimport type { PositionObject, Rect } from './PopupHelper.js';\nimport { PopupHelper } from './PopupHelper.js';\nimport { getStyles } from './PopupPin.styles.js';\n\ninterface PopupPinProps {\n /** Цвет фона пина */\n backgroundColor: string;\n\n /** Смещение пина от края попапа. Край задаётся в пропе position вторым словом */\n offset: number;\n\n /** Ссылка на попап */\n popupElement?: Nullable<Element>;\n\n /** Позиция попапа, по которой будет вычислено положение пина */\n popupPosition: string;\n\n /**\n * Высота пина в px. Ширина основания = 2 × size для top/bottom, для left/right наоборот.\n */\n size: number;\n}\n\ninterface ClampedPinPosition {\n left: number;\n top: number;\n hidden: boolean;\n}\n\n@withRenderEnvironment\n@responsiveLayout\nexport class PopupPin extends React.Component<PopupPinProps> {\n public static __KONTUR_REACT_UI__ = 'PopupPin';\n public static displayName = 'PopupPin';\n\n private positionObject!: PositionObject;\n private theme!: Theme;\n private isMobileLayout!: boolean;\n\n private styles!: ReturnType<typeof getStyles>;\n private emotion!: Emotion;\n private cx!: Emotion['cx'];\n private globalObject!: GlobalObject;\n private layoutEventsToken: Nullable<ReturnType<typeof LayoutEvents.addListener>> = null;\n private layoutUpdateId: Nullable<number> = null;\n private cachedPopupElement: Nullable<Element> = null;\n\n public componentDidMount() {\n this.layoutEventsToken = LayoutEvents.addListener(this.handleLayoutEvent, this.globalObject);\n this.scheduleRemeasure();\n }\n\n public componentDidUpdate(prevProps: PopupPinProps) {\n if (\n prevProps.popupPosition !== this.props.popupPosition ||\n prevProps.offset !== this.props.offset ||\n prevProps.popupElement !== this.props.popupElement\n ) {\n this.scheduleRemeasure();\n }\n }\n\n public componentWillUnmount() {\n this.cancelScheduledRemeasure();\n this.layoutEventsToken?.remove();\n this.layoutEventsToken = null;\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n return this.renderPinContent();\n }}\n </ThemeContext.Consumer>\n );\n }\n\n private renderPinContent() {\n this.styles = getStyles(this.emotion);\n\n if (this.props.popupElement) {\n this.cachedPopupElement = this.props.popupElement;\n }\n\n const popupElement = this.props.popupElement || this.cachedPopupElement;\n\n if (!popupElement) {\n return null;\n }\n\n this.positionObject = PopupHelper.getPositionObject(this.props.popupPosition);\n\n const coords = this.getPinCoordinates(popupElement);\n if (!coords || typeof coords.left !== 'number' || typeof coords.top !== 'number') {\n return null;\n }\n\n const popupRect = this.getPopupElementRect(popupElement);\n const clampedPosition = this.applyEdgeClamp(coords, popupRect);\n const inlineStyle = this.getPinInlineStyle(clampedPosition.left, clampedPosition.top);\n const directionalStyle = this.getPinDirectionalStyle();\n if (!inlineStyle || !directionalStyle) {\n return null;\n }\n\n const pinEdgePadding = this.getPinEdgePadding();\n\n return (\n <div\n data-tid={PopupDataTids.popupPin}\n className={this.cx(\n this.styles.pin(),\n pinEdgePadding > 0 && this.styles.pinAnimated(),\n clampedPosition.hidden && this.styles.pinHidden(),\n directionalStyle,\n )}\n style={inlineStyle}\n ></div>\n );\n }\n\n private getPinEdgePadding(): number {\n return PopupHelper.getPopupViewportSidePadding(this.theme, this.isMobileLayout);\n }\n\n private handleLayoutEvent = () => {\n this.scheduleRemeasure();\n };\n\n private scheduleRemeasure() {\n this.cancelScheduledRemeasure();\n this.layoutUpdateId = this.globalObject.requestAnimationFrame?.(() => {\n this.layoutUpdateId = null;\n this.forceUpdate();\n });\n }\n\n private cancelScheduledRemeasure() {\n if (this.layoutUpdateId && this.layoutUpdateId !== null) {\n this.globalObject.cancelAnimationFrame?.(this.layoutUpdateId);\n this.layoutUpdateId = null;\n }\n }\n\n private getPopupOppositeDirection() {\n const popupDirection = PopupHelper.getPositionObject(this.props.popupPosition).direction;\n switch (popupDirection) {\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n default:\n warning(\n false,\n `Can't get opposite direction: invalid direction ${popupDirection}. Must be one of - 'top', 'bottom', 'left', 'right'.`,\n );\n return 'bottom';\n }\n }\n\n private getPinInlineStyle = (left: number, top: number) => {\n const direction = this.getPopupOppositeDirection();\n if (!direction) {\n return;\n }\n\n // Добавляем запас в 1px, чтобы пофиксить случайные отделения пинов\n const correctedLeft = left - 1;\n const correctedTop = top - 1;\n const correctedSize = this.props.size + 1;\n\n const defaultPinInlineStyle = {\n [direction]: -this.props.size + 'px',\n left: correctedLeft + 'px',\n width: correctedSize * 2 + 'px',\n height: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n\n switch (direction) {\n case 'top':\n case 'bottom':\n return defaultPinInlineStyle;\n case 'left':\n case 'right':\n return {\n [direction]: -this.props.size + 'px',\n top: correctedTop + 'px',\n height: correctedSize * 2 + 'px',\n width: correctedSize + 'px',\n backgroundColor: this.props.backgroundColor,\n };\n default:\n warning(\n false,\n `Can't get inline style: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return defaultPinInlineStyle;\n }\n };\n\n private clampValue(value: number, min: number, max: number) {\n return Math.min(Math.max(value, min), max);\n }\n\n private applyEdgeClamp(coords: { left: number; top: number }, popupRect: Rect): ClampedPinPosition {\n const pinEdgePadding = this.getPinEdgePadding();\n\n if (pinEdgePadding <= 0) {\n return { left: coords.left, top: coords.top, hidden: false };\n }\n\n const { direction } = this.positionObject;\n const pinSpan = 2 * this.props.size;\n\n if (direction === 'top' || direction === 'bottom') {\n const minLeft = pinEdgePadding;\n const maxLeft = popupRect.width - pinSpan - pinEdgePadding;\n const clampedLeft = this.clampValue(coords.left, minLeft, maxLeft);\n const centerOffset = coords.left - clampedLeft;\n\n return {\n left: clampedLeft,\n top: coords.top,\n hidden: centerOffset !== 0,\n };\n }\n\n const minTop = pinEdgePadding;\n const maxTop = popupRect.height - pinSpan - pinEdgePadding;\n const clampedTop = this.clampValue(coords.top, minTop, maxTop);\n const centerOffset = coords.top - clampedTop;\n\n return {\n left: coords.left,\n top: clampedTop,\n hidden: centerOffset !== 0,\n };\n }\n\n private getPopupElementRect(popupElement: Element): Rect {\n const rect = getDOMRect(popupElement);\n\n return {\n top: 0,\n left: 0,\n width: rect.width,\n height: rect.height,\n };\n }\n\n private getPinCoordinates = (popupElement: Element) => {\n const popupRect = this.getPopupElementRect(popupElement);\n const { direction, align } = this.positionObject;\n\n const defaultPinCoordinates = {\n top: popupRect.height,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n\n switch (direction) {\n case 'top':\n return defaultPinCoordinates;\n case 'bottom':\n return {\n top: -2 * this.props.size,\n left: this.getPinLeftCoordinate(popupRect, align),\n };\n case 'left':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: popupRect.width,\n };\n case 'right':\n return {\n top: this.getPinTopCoordinate(popupRect, align),\n left: -2 * this.props.size,\n };\n default:\n warning(\n false,\n `Can't get coordinates: invalid direction '${direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return defaultPinCoordinates;\n }\n };\n\n private getPinTopCoordinate = (popupRect: Rect, align: string) => {\n const defaultTopCoordinate = this.props.offset;\n switch (align) {\n case 'top':\n return defaultTopCoordinate;\n case 'middle':\n return popupRect.height / 2 - this.props.size;\n case 'bottom':\n return popupRect.height - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get top coordinate: invalid align '${align}'. Must be one of - 'top', 'middle', 'bottom'.`,\n );\n return defaultTopCoordinate;\n }\n };\n\n private getPinLeftCoordinate = (popupRect: Rect, align: string) => {\n const defaultLetfCoordinate = popupRect.width / 2 - this.props.size;\n switch (align) {\n case 'left':\n return this.props.offset;\n case 'center':\n return defaultLetfCoordinate + this.props.offset;\n case 'right':\n return popupRect.width - this.props.offset - 2 * this.props.size;\n default:\n warning(\n false,\n `Can't get left coordinate: invalid align '${align}'. Must be one of - 'left', 'center', 'right'.`,\n );\n return defaultLetfCoordinate;\n }\n };\n\n private getPinDirectionalStyle = () => {\n switch (this.positionObject.direction) {\n case 'top':\n return this.styles.pinTop();\n case 'bottom':\n return this.styles.pinBottom();\n case 'left':\n return this.styles.pinLeft();\n case 'right':\n return this.styles.pinRight();\n default:\n warning(\n false,\n `Can't get directional style: invalid direction '${this.positionObject.direction}'. Must be one of - 'top', 'right', 'bottom', 'left'.`,\n );\n return this.styles.pinTop();\n }\n };\n}\n"]}
@@ -1,5 +1,7 @@
1
1
  export declare const getStyles: import("../../lib/theming/Emotion.js").StylesGetter<{
2
2
  pin(): string;
3
+ pinAnimated(): string;
4
+ pinHidden(): string;
3
5
  pinTop(): string;
4
6
  pinBottom(): string;
5
7
  pinLeft(): string;
@@ -9,19 +9,25 @@ export var getStyles = memoizeGetStyles(function (_a) {
9
9
  pin: function () {
10
10
  return css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n position: absolute;\n "], ["\n position: absolute;\n "])));
11
11
  },
12
+ pinAnimated: function () {
13
+ return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n opacity: 1;\n transition:\n left 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n top 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n opacity 0.15s ease-out,\n visibility 0.15s ease-out;\n "], ["\n opacity: 1;\n transition:\n left 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n top 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n opacity 0.15s ease-out,\n visibility 0.15s ease-out;\n "])));
14
+ },
15
+ pinHidden: function () {
16
+ return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n visibility: hidden;\n opacity: 0;\n "], ["\n visibility: hidden;\n opacity: 0;\n "])));
17
+ },
12
18
  pinTop: function () {
13
- return css(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n "], ["\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n "])));
19
+ return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n "], ["\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n "])));
14
20
  },
15
21
  pinBottom: function () {
16
- return css(templateObject_3 || (templateObject_3 = __makeTemplateObject(["\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n "], ["\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n "])));
22
+ return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n "], ["\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n "])));
17
23
  },
18
24
  pinLeft: function () {
19
- return css(templateObject_4 || (templateObject_4 = __makeTemplateObject(["\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n "], ["\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n "])));
25
+ return css(templateObject_6 || (templateObject_6 = __makeTemplateObject(["\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n "], ["\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n "])));
20
26
  },
21
27
  pinRight: function () {
22
- return css(templateObject_5 || (templateObject_5 = __makeTemplateObject(["\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n "], ["\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n "])));
28
+ return css(templateObject_7 || (templateObject_7 = __makeTemplateObject(["\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n "], ["\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n "])));
23
29
  },
24
30
  });
25
31
  });
26
- var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5;
32
+ var templateObject_1, templateObject_2, templateObject_3, templateObject_4, templateObject_5, templateObject_6, templateObject_7;
27
33
  //# sourceMappingURL=PopupPin.styles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PopupPin.styles.js","sourceRoot":"","sources":["../../../internal/Popup/PopupPin.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,GAAG;YACD,OAAO,GAAG,sGAAA,mCAET,KAAC;QACJ,CAAC;QAED,MAAM;YACJ,OAAO,GAAG,6HAAA,0DAET,KAAC;QACJ,CAAC;QAED,SAAS;YACP,OAAO,GAAG,gIAAA,6DAET,KAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,GAAG,6HAAA,0DAET,KAAC;QACJ,CAAC;QAED,QAAQ;YACN,OAAO,GAAG,gIAAA,6DAET,KAAC;QACJ,CAAC;KACF,CAAC;AA9B8D,CA8B9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n pin() {\n return css`\n position: absolute;\n `;\n },\n\n pinTop() {\n return css`\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n `;\n },\n\n pinBottom() {\n return css`\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n `;\n },\n\n pinLeft() {\n return css`\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n `;\n },\n\n pinRight() {\n return css`\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n `;\n },\n}));\n"]}
1
+ {"version":3,"file":"PopupPin.styles.js","sourceRoot":"","sources":["../../../internal/Popup/PopupPin.styles.ts"],"names":[],"mappings":";;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,MAAM,CAAC,IAAM,SAAS,GAAG,gBAAgB,CAAC,UAAC,EAAgB;QAAd,GAAG,SAAA;IAAgB,OAAA,CAAC;QAC/D,GAAG;YACD,OAAO,GAAG,sGAAA,mCAET,KAAC;QACJ,CAAC;QAED,WAAW;YACT,OAAO,GAAG,mSAAA,gOAOT,KAAC;QACJ,CAAC;QAED,SAAS;YACP,OAAO,GAAG,yHAAA,sDAGT,KAAC;QACJ,CAAC;QAED,MAAM;YACJ,OAAO,GAAG,6HAAA,0DAET,KAAC;QACJ,CAAC;QAED,SAAS;YACP,OAAO,GAAG,gIAAA,6DAET,KAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,GAAG,6HAAA,0DAET,KAAC;QACJ,CAAC;QAED,QAAQ;YACN,OAAO,GAAG,gIAAA,6DAET,KAAC;QACJ,CAAC;KACF,CAAC;AAhD8D,CAgD9D,CAAC,CAAC","sourcesContent":["import type { Emotion } from '@emotion/css/create-instance';\n\nimport { memoizeGetStyles } from '../../lib/theming/Emotion.js';\n\nexport const getStyles = memoizeGetStyles(({ css }: Emotion) => ({\n pin() {\n return css`\n position: absolute;\n `;\n },\n\n pinAnimated() {\n return css`\n opacity: 1;\n transition:\n left 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n top 0.18s cubic-bezier(0.22, 0.61, 0.36, 1),\n opacity 0.15s ease-out,\n visibility 0.15s ease-out;\n `;\n },\n\n pinHidden() {\n return css`\n visibility: hidden;\n opacity: 0;\n `;\n },\n\n pinTop() {\n return css`\n clip-path: polygon(0 0, 50% 100%, 100% 0);\n `;\n },\n\n pinBottom() {\n return css`\n clip-path: polygon(0 100%, 50% 0, 100% 100%);\n `;\n },\n\n pinLeft() {\n return css`\n clip-path: polygon(0 0, 100% 50%, 0 100%);\n `;\n },\n\n pinRight() {\n return css`\n clip-path: polygon(100% 0, 0 50%, 100% 100%);\n `;\n },\n}));\n"]}
@@ -12,17 +12,17 @@ export interface SpinnerIconProps {
12
12
  color?: React.CSSProperties['color'];
13
13
  }
14
14
  export declare const sizes: {
15
- readonly big: {
15
+ readonly large: {
16
16
  readonly size: 96;
17
17
  readonly width: 4;
18
18
  readonly radius: 32;
19
19
  };
20
- readonly normal: {
20
+ readonly medium: {
21
21
  readonly size: 48;
22
22
  readonly width: 2;
23
23
  readonly radius: 16;
24
24
  };
25
- readonly mini: {
25
+ readonly small: {
26
26
  readonly size: 16;
27
27
  readonly width: 1.5;
28
28
  readonly radius: 6;
@@ -2,17 +2,17 @@ import React from 'react';
2
2
  import { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';
3
3
  import { getStyles } from './SpinnerIcon.styles.js';
4
4
  export var sizes = {
5
- big: {
5
+ large: {
6
6
  size: 96,
7
7
  width: 4,
8
8
  radius: 32,
9
9
  },
10
- normal: {
10
+ medium: {
11
11
  size: 48,
12
12
  width: 2,
13
13
  radius: 16,
14
14
  },
15
- mini: {
15
+ small: {
16
16
  size: 16,
17
17
  width: 1.5,
18
18
  radius: 6,
@@ -25,7 +25,7 @@ export var SpinnerIcon = function (_a) {
25
25
  var _b, _c;
26
26
  var size = _a.size, className = _a.className, inline = _a.inline, width = _a.width, color = _a.color;
27
27
  var _size = isSizeAlias(size) ? sizes[size] : size;
28
- var currentSize = inline ? sizes.mini : _size;
28
+ var currentSize = inline ? sizes.small : _size;
29
29
  var cx = useEmotion().cx;
30
30
  var styles = useStyles(getStyles);
31
31
  return (React.createElement("span", { className: cx(styles.root(), (_b = {}, _b[styles.rootInline()] = inline, _b)) },
@@ -1 +1 @@
1
- {"version":3,"file":"SpinnerIcon.js","sourceRoot":"","sources":["../../../internal/SpinnerIcon/SpinnerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgBpD,MAAM,CAAC,IAAM,KAAK,GAAG;IACnB,GAAG,EAAE;QACH,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC;KACV;CACO,CAAC;AAEX,IAAM,WAAW,GAAG,UAAC,IAAa;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA2D;;QAAzD,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA;IACjE,IAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAExC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,8BAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAI,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM,MAAG;QACnE,6BACE,OAAO,EAAE,cAAO,WAAW,CAAC,IAAI,cAAI,WAAW,CAAC,IAAI,CAAE,EACtD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS;gBACpC,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM;oBAC7B,EACF,KAAK,EAAE,WAAW,CAAC,IAAI,EACvB,MAAM,EAAE,WAAW,CAAC,IAAI,EACxB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,eAAe,EAAE,UAAG,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,EACrF,gBAAgB,EAAC,GAAG,EACpB,WAAW,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,EACvC,SAAS,EAAC,OAAO,iBACL,MAAM;YAElB,gCAAQ,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,GAAI,CACjF,CACD,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { getStyles } from './SpinnerIcon.styles.js';\n\ninterface SpinnerIconSize {\n size: number;\n width: number;\n radius: number;\n}\n\nexport interface SpinnerIconProps {\n className?: string;\n size: SpinnerIconSize | keyof typeof sizes;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n big: {\n size: 96,\n width: 4,\n radius: 32,\n },\n normal: {\n size: 48,\n width: 2,\n radius: 16,\n },\n mini: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n} as const;\n\nconst isSizeAlias = (size: unknown): size is keyof typeof sizes => {\n return typeof size === 'string' && size in sizes;\n};\n\nexport const SpinnerIcon = ({ size, className, inline, width, color }: SpinnerIconProps) => {\n const _size = isSizeAlias(size) ? sizes[size] : size;\n const currentSize = inline ? sizes.mini : _size;\n\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
1
+ {"version":3,"file":"SpinnerIcon.js","sourceRoot":"","sources":["../../../internal/SpinnerIcon/SpinnerIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAgBpD,MAAM,CAAC,IAAM,KAAK,GAAG;IACnB,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,MAAM,EAAE;QACN,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;KACX;IACD,KAAK,EAAE;QACL,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,GAAG;QACV,MAAM,EAAE,CAAC;KACV;CACO,CAAC;AAEX,IAAM,WAAW,GAAG,UAAC,IAAa;IAChC,OAAO,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,UAAC,EAA2D;;QAAzD,IAAI,UAAA,EAAE,SAAS,eAAA,EAAE,MAAM,YAAA,EAAE,KAAK,WAAA,EAAE,KAAK,WAAA;IACjE,IAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACrD,IAAM,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;IAEzC,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpC,OAAO,CACL,8BAAM,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,YAAI,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM,MAAG;QACnE,6BACE,OAAO,EAAE,cAAO,WAAW,CAAC,IAAI,cAAI,WAAW,CAAC,IAAI,CAAE,EACtD,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,SAAS;gBACpC,GAAC,MAAM,CAAC,UAAU,EAAE,IAAG,MAAM;oBAC7B,EACF,KAAK,EAAE,WAAW,CAAC,IAAI,EACvB,MAAM,EAAE,WAAW,CAAC,IAAI,EACxB,IAAI,EAAC,MAAM,EACX,MAAM,EAAE,KAAK,EACb,eAAe,EAAE,UAAG,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,eAAK,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAE,EACrF,gBAAgB,EAAC,GAAG,EACpB,WAAW,EAAE,KAAK,IAAI,WAAW,CAAC,KAAK,EACvC,SAAS,EAAC,OAAO,iBACL,MAAM;YAElB,gCAAQ,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,MAAM,GAAI,CACjF,CACD,CACR,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { getStyles } from './SpinnerIcon.styles.js';\n\ninterface SpinnerIconSize {\n size: number;\n width: number;\n radius: number;\n}\n\nexport interface SpinnerIconProps {\n className?: string;\n size: SpinnerIconSize | keyof typeof sizes;\n inline?: boolean;\n width?: number;\n color?: React.CSSProperties['color'];\n}\n\nexport const sizes = {\n large: {\n size: 96,\n width: 4,\n radius: 32,\n },\n medium: {\n size: 48,\n width: 2,\n radius: 16,\n },\n small: {\n size: 16,\n width: 1.5,\n radius: 6,\n },\n} as const;\n\nconst isSizeAlias = (size: unknown): size is keyof typeof sizes => {\n return typeof size === 'string' && size in sizes;\n};\n\nexport const SpinnerIcon = ({ size, className, inline, width, color }: SpinnerIconProps) => {\n const _size = isSizeAlias(size) ? sizes[size] : size;\n const currentSize = inline ? sizes.small : _size;\n\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n\n return (\n <span className={cx(styles.root(), { [styles.rootInline()]: inline })}>\n <svg\n viewBox={`0 0 ${currentSize.size} ${currentSize.size}`}\n className={cx(styles.icon(), className, {\n [styles.iconInline()]: inline,\n })}\n width={currentSize.size}\n height={currentSize.size}\n fill=\"none\"\n stroke={color}\n strokeDasharray={`${(10 * currentSize.radius) / 6}, ${(27 * currentSize.radius) / 6}`}\n strokeDashoffset=\"0\"\n strokeWidth={width || currentSize.width}\n focusable=\"false\"\n aria-hidden=\"true\"\n >\n <circle cx={currentSize.size / 2} cy={currentSize.size / 2} r={currentSize.radius} />\n </svg>\n </span>\n );\n};\n"]}
@@ -22,7 +22,7 @@ var Icon = function (props) {
22
22
  return (React.createElement(SpinnerIcon, __assign({ className: cx(styles.circle(theme), styles.circleDimmedColor(theme), styles.circleWithoutColorAnimation()) }, props)));
23
23
  };
24
24
  export var LoadingIcon = iconSizer({
25
- small: function () { return React.createElement(Icon, { size: "mini" }); },
25
+ small: function () { return React.createElement(Icon, { size: "small" }); },
26
26
  medium: function () { return (React.createElement(Icon, { size: {
27
27
  size: 20,
28
28
  width: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingIcon.js","sourceRoot":"","sources":["../../../internal/icons2022/LoadingIcon.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAM,IAAI,GAAG,UAAC,KAAuB;IAC3B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,CACL,oBAAC,WAAW,aACV,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,2BAA2B,EAAE,CAAC,IACtG,KAAK,EACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,SAAS,CAClC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,EAApB,CAAoB;IACjC,MAAM,EAAE,cAAM,OAAA,CACZ,oBAAC,IAAI,IACH,IAAI,EAAE;YACJ,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV,GACD,CACH,EARa,CAQb;IACD,KAAK,EAAE,cAAM,OAAA,CACX,oBAAC,IAAI,IACH,IAAI,EAAE;YACJ,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC;SACV,GACD,CACH,EARY,CAQZ;CACF,EACD,aAAa,CACd,CAAC","sourcesContent":["import React from 'react';\n\nimport { getStyles } from '../../components/Spinner/Spinner.styles.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { SpinnerIcon } from '../SpinnerIcon/SpinnerIcon.js';\nimport type { SpinnerIconProps } from '../SpinnerIcon/SpinnerIcon.js';\nimport { iconSizer } from './iconSizer.js';\n\nconst Icon = (props: SpinnerIconProps) => {\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const theme = React.useContext(ThemeContext);\n return (\n <SpinnerIcon\n className={cx(styles.circle(theme), styles.circleDimmedColor(theme), styles.circleWithoutColorAnimation())}\n {...props}\n />\n );\n};\n\nexport const LoadingIcon = iconSizer<Omit<SpinnerIconProps, 'size'>>(\n {\n small: () => <Icon size=\"mini\" />,\n medium: () => (\n <Icon\n size={{\n size: 20,\n width: 1,\n radius: 6,\n }}\n />\n ),\n large: () => (\n <Icon\n size={{\n size: 24,\n width: 1.5,\n radius: 8,\n }}\n />\n ),\n },\n 'LoadingIcon',\n);\n"]}
1
+ {"version":3,"file":"LoadingIcon.js","sourceRoot":"","sources":["../../../internal/icons2022/LoadingIcon.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,SAAS,EAAE,MAAM,4CAA4C,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,IAAM,IAAI,GAAG,UAAC,KAAuB;IAC3B,IAAA,EAAE,GAAK,UAAU,EAAE,GAAjB,CAAkB;IAC5B,IAAM,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IACpC,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,OAAO,CACL,oBAAC,WAAW,aACV,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,2BAA2B,EAAE,CAAC,IACtG,KAAK,EACT,CACH,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,IAAM,WAAW,GAAG,SAAS,CAClC;IACE,KAAK,EAAE,cAAM,OAAA,oBAAC,IAAI,IAAC,IAAI,EAAC,OAAO,GAAG,EAArB,CAAqB;IAClC,MAAM,EAAE,cAAM,OAAA,CACZ,oBAAC,IAAI,IACH,IAAI,EAAE;YACJ,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;SACV,GACD,CACH,EARa,CAQb;IACD,KAAK,EAAE,cAAM,OAAA,CACX,oBAAC,IAAI,IACH,IAAI,EAAE;YACJ,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,GAAG;YACV,MAAM,EAAE,CAAC;SACV,GACD,CACH,EARY,CAQZ;CACF,EACD,aAAa,CACd,CAAC","sourcesContent":["import React from 'react';\n\nimport { getStyles } from '../../components/Spinner/Spinner.styles.js';\nimport { useEmotion, useStyles } from '../../lib/renderEnvironment/index.js';\nimport { ThemeContext } from '../../lib/theming/ThemeContext.js';\nimport { SpinnerIcon } from '../SpinnerIcon/SpinnerIcon.js';\nimport type { SpinnerIconProps } from '../SpinnerIcon/SpinnerIcon.js';\nimport { iconSizer } from './iconSizer.js';\n\nconst Icon = (props: SpinnerIconProps) => {\n const { cx } = useEmotion();\n const styles = useStyles(getStyles);\n const theme = React.useContext(ThemeContext);\n return (\n <SpinnerIcon\n className={cx(styles.circle(theme), styles.circleDimmedColor(theme), styles.circleWithoutColorAnimation())}\n {...props}\n />\n );\n};\n\nexport const LoadingIcon = iconSizer<Omit<SpinnerIconProps, 'size'>>(\n {\n small: () => <Icon size=\"small\" />,\n medium: () => (\n <Icon\n size={{\n size: 20,\n width: 1,\n radius: 6,\n }}\n />\n ),\n large: () => (\n <Icon\n size={{\n size: 24,\n width: 1.5,\n radius: 8,\n }}\n />\n ),\n },\n 'LoadingIcon',\n);\n"]}
@@ -0,0 +1,2 @@
1
+ import type { IconProps } from '../BaseIcon.js';
2
+ export declare const QuestionCircleIcon16Light: import("../../../lib/forwardRefAndName.js").ReactUIComponentWithRef<SVGSVGElement, IconProps> & Record<never, never>;
@@ -0,0 +1,21 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from 'react';
13
+ import { forwardRefAndName } from '../../../lib/forwardRefAndName.js';
14
+ import { BaseIcon } from '../BaseIcon.js';
15
+ export var QuestionCircleIcon16Light = forwardRefAndName('QuestionCircleIcon16Light', function (props, ref) {
16
+ return (React.createElement(BaseIcon, __assign({ ref: ref }, props),
17
+ React.createElement("path", { d: "M8.25 10.5a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0z" }),
18
+ React.createElement("path", { d: "M6.012 5.838c0-.646.61-1.267 1.49-1.267s1.49.621 1.49 1.267c0 .477-.32.93-.851 1.145C7.53 7.231 7 7.718 7 8.489a.5.5 0 0 0 1 0c0-.215.123-.42.516-.58.842-.342 1.475-1.12 1.475-2.07 0-1.307-1.172-2.268-2.49-2.268-1.318 0-2.49.96-2.49 2.267a.5.5 0 0 0 1 0z" }),
19
+ React.createElement("path", { d: "M1 7.5a6.5 6.5 0 1 1 13 0 6.5 6.5 0 0 1-13 0zM7.5 2a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z" })));
20
+ });
21
+ //# sourceMappingURL=QuestionCircleIcon16Light.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionCircleIcon16Light.js","sourceRoot":"","sources":["../../../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon16Light.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,CAAC,IAAM,yBAAyB,GAAG,iBAAiB,CACxD,2BAA2B,EAC3B,UAAC,KAAK,EAAE,GAAG;IACT,OAAO,CACL,oBAAC,QAAQ,aAAC,GAAG,EAAE,GAAG,IAAM,KAAK;QAC3B,8BAAM,CAAC,EAAC,mDAAmD,GAAG;QAC9D,8BAAM,CAAC,EAAC,gQAAgQ,GAAG;QAC3Q,8BAAM,CAAC,EAAC,4FAA4F,GAAG,CAC9F,CACZ,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName.js';\nimport { BaseIcon } from '../BaseIcon.js';\nimport type { IconProps } from '../BaseIcon.js';\n\nexport const QuestionCircleIcon16Light = forwardRefAndName<SVGSVGElement, IconProps>(\n 'QuestionCircleIcon16Light',\n (props, ref) => {\n return (\n <BaseIcon ref={ref} {...props}>\n <path d=\"M8.25 10.5a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0z\" />\n <path d=\"M6.012 5.838c0-.646.61-1.267 1.49-1.267s1.49.621 1.49 1.267c0 .477-.32.93-.851 1.145C7.53 7.231 7 7.718 7 8.489a.5.5 0 0 0 1 0c0-.215.123-.42.516-.58.842-.342 1.475-1.12 1.475-2.07 0-1.307-1.172-2.268-2.49-2.268-1.318 0-2.49.96-2.49 2.267a.5.5 0 0 0 1 0z\" />\n <path d=\"M1 7.5a6.5 6.5 0 1 1 13 0 6.5 6.5 0 0 1-13 0zM7.5 2a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11z\" />\n </BaseIcon>\n );\n },\n);\n"]}
@@ -0,0 +1,2 @@
1
+ import type { IconProps } from '../BaseIcon.js';
2
+ export declare const QuestionCircleIcon20Regular: import("../../../lib/forwardRefAndName.js").ReactUIComponentWithRef<SVGSVGElement, IconProps> & Record<never, never>;
@@ -0,0 +1,21 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from 'react';
13
+ import { forwardRefAndName } from '../../../lib/forwardRefAndName.js';
14
+ import { BaseIcon } from '../BaseIcon.js';
15
+ export var QuestionCircleIcon20Regular = forwardRefAndName('QuestionCircleIcon20Regular', function (props, ref) {
16
+ return (React.createElement(BaseIcon, __assign({ ref: ref, viewBoxSize: 20 }, props),
17
+ React.createElement("path", { d: "M11 14a1 1 0 1 1-2 0 1 1 0 0 1 2 0z" }),
18
+ React.createElement("path", { d: "M8.375 8.078c0-.642.63-1.328 1.625-1.328s1.625.686 1.625 1.328c0 .324-.09.504-.2.637-.13.16-.325.293-.617.466l-.113.065c-.247.142-.576.332-.834.571-.346.321-.61.765-.61 1.378a.75.75 0 1 0 1.5 0c0-.12.03-.186.13-.278.124-.115.284-.208.539-.357l.148-.086c.3-.177.7-.424 1.015-.805.336-.407.542-.927.542-1.59 0-1.654-1.496-2.829-3.125-2.829S6.875 6.425 6.875 8.078a.75.75 0 1 0 1.5 0z" }),
19
+ React.createElement("path", { d: "M2.001 10A7.999 7.999 0 1 1 18 10 7.999 7.999 0 0 1 2 10zm8-6.499A6.499 6.499 0 1 0 10 16.5 6.499 6.499 0 0 0 10 3.5z" })));
20
+ });
21
+ //# sourceMappingURL=QuestionCircleIcon20Regular.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionCircleIcon20Regular.js","sourceRoot":"","sources":["../../../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon20Regular.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,CAAC,IAAM,2BAA2B,GAAG,iBAAiB,CAC1D,6BAA6B,EAC7B,UAAC,KAAK,EAAE,GAAG;IACT,OAAO,CACL,oBAAC,QAAQ,aAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,IAAM,KAAK;QAC5C,8BAAM,CAAC,EAAC,qCAAqC,GAAG;QAChD,8BAAM,CAAC,EAAC,+XAA+X,GAAG;QAC1Y,8BAAM,CAAC,EAAC,uHAAuH,GAAG,CACzH,CACZ,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName.js';\nimport { BaseIcon } from '../BaseIcon.js';\nimport type { IconProps } from '../BaseIcon.js';\n\nexport const QuestionCircleIcon20Regular = forwardRefAndName<SVGSVGElement, IconProps>(\n 'QuestionCircleIcon20Regular',\n (props, ref) => {\n return (\n <BaseIcon ref={ref} viewBoxSize={20} {...props}>\n <path d=\"M11 14a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\" />\n <path d=\"M8.375 8.078c0-.642.63-1.328 1.625-1.328s1.625.686 1.625 1.328c0 .324-.09.504-.2.637-.13.16-.325.293-.617.466l-.113.065c-.247.142-.576.332-.834.571-.346.321-.61.765-.61 1.378a.75.75 0 1 0 1.5 0c0-.12.03-.186.13-.278.124-.115.284-.208.539-.357l.148-.086c.3-.177.7-.424 1.015-.805.336-.407.542-.927.542-1.59 0-1.654-1.496-2.829-3.125-2.829S6.875 6.425 6.875 8.078a.75.75 0 1 0 1.5 0z\" />\n <path d=\"M2.001 10A7.999 7.999 0 1 1 18 10 7.999 7.999 0 0 1 2 10zm8-6.499A6.499 6.499 0 1 0 10 16.5 6.499 6.499 0 0 0 10 3.5z\" />\n </BaseIcon>\n );\n },\n);\n"]}
@@ -0,0 +1,2 @@
1
+ import type { IconProps } from '../BaseIcon.js';
2
+ export declare const QuestionCircleIcon24Regular: import("../../../lib/forwardRefAndName.js").ReactUIComponentWithRef<SVGSVGElement, IconProps> & Record<never, never>;
@@ -0,0 +1,21 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import React from 'react';
13
+ import { forwardRefAndName } from '../../../lib/forwardRefAndName.js';
14
+ import { BaseIcon } from '../BaseIcon.js';
15
+ export var QuestionCircleIcon24Regular = forwardRefAndName('QuestionCircleIcon24Regular', function (props, ref) {
16
+ return (React.createElement(BaseIcon, __assign({ ref: ref, viewBoxSize: 24 }, props),
17
+ React.createElement("path", { d: "M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0z" }),
18
+ React.createElement("path", { d: "M9.75 9.887c0-.945.91-1.875 2.25-1.875 1.34 0 2.25.93 2.25 1.875 0 .453-.129.726-.297.93-.19.23-.462.414-.833.632-.046.028-.096.056-.148.086-.312.18-.706.408-1.013.693-.405.375-.709.886-.709 1.596a.75.75 0 0 0 1.5 0c0-.217.07-.35.23-.497.172-.16.396-.29.717-.477l.183-.107c.38-.223.858-.52 1.23-.972.395-.479.64-1.09.64-1.884 0-1.955-1.776-3.375-3.75-3.375s-3.75 1.42-3.75 3.375a.75.75 0 1 0 1.5 0z" }),
19
+ React.createElement("path", { d: "M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 3.75a8.25 8.25 0 1 0 0 16.5 8.25 8.25 0 0 0 0-16.5z" })));
20
+ });
21
+ //# sourceMappingURL=QuestionCircleIcon24Regular.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuestionCircleIcon24Regular.js","sourceRoot":"","sources":["../../../../internal/icons2022/QuestionCircleIcon/QuestionCircleIcon24Regular.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,CAAC,IAAM,2BAA2B,GAAG,iBAAiB,CAC1D,6BAA6B,EAC7B,UAAC,KAAK,EAAE,GAAG;IACT,OAAO,CACL,oBAAC,QAAQ,aAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,IAAM,KAAK;QAC5C,8BAAM,CAAC,EAAC,qCAAqC,GAAG;QAChD,8BAAM,CAAC,EAAC,gZAAgZ,GAAG;QAC3Z,8BAAM,CAAC,EAAC,6JAA6J,GAAG,CAC/J,CACZ,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import React from 'react';\n\nimport { forwardRefAndName } from '../../../lib/forwardRefAndName.js';\nimport { BaseIcon } from '../BaseIcon.js';\nimport type { IconProps } from '../BaseIcon.js';\n\nexport const QuestionCircleIcon24Regular = forwardRefAndName<SVGSVGElement, IconProps>(\n 'QuestionCircleIcon24Regular',\n (props, ref) => {\n return (\n <BaseIcon ref={ref} viewBoxSize={24} {...props}>\n <path d=\"M13 17a1 1 0 1 1-2 0 1 1 0 0 1 2 0z\" />\n <path d=\"M9.75 9.887c0-.945.91-1.875 2.25-1.875 1.34 0 2.25.93 2.25 1.875 0 .453-.129.726-.297.93-.19.23-.462.414-.833.632-.046.028-.096.056-.148.086-.312.18-.706.408-1.013.693-.405.375-.709.886-.709 1.596a.75.75 0 0 0 1.5 0c0-.217.07-.35.23-.497.172-.16.396-.29.717-.477l.183-.107c.38-.223.858-.52 1.23-.972.395-.479.64-1.09.64-1.884 0-1.955-1.776-3.375-3.75-3.375s-3.75 1.42-3.75 3.375a.75.75 0 1 0 1.5 0z\" />\n <path d=\"M2.25 12c0-5.385 4.365-9.75 9.75-9.75s9.75 4.365 9.75 9.75-4.365 9.75-9.75 9.75S2.25 17.385 2.25 12zM12 3.75a8.25 8.25 0 1 0 0 16.5 8.25 8.25 0 0 0 0-16.5z\" />\n </BaseIcon>\n );\n },\n);\n"]}