@doist/reactist 11.5.0 → 12.0.1

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 (284) hide show
  1. package/dist/reactist.cjs.development.js +1344 -1499
  2. package/dist/reactist.cjs.development.js.map +1 -1
  3. package/dist/reactist.cjs.production.min.js +1 -1
  4. package/dist/reactist.cjs.production.min.js.map +1 -1
  5. package/es/_virtual/_rollupPluginBabelHelpers.js +18 -21
  6. package/es/_virtual/_rollupPluginBabelHelpers.js.map +1 -1
  7. package/es/components/checkbox/checkbox.js +7 -9
  8. package/es/components/checkbox/checkbox.js.map +1 -1
  9. package/es/components/color-picker/color-picker.js +24 -28
  10. package/es/components/color-picker/color-picker.js.map +1 -1
  11. package/es/components/deprecated-button/deprecated-button.js +16 -18
  12. package/es/components/deprecated-button/deprecated-button.js.map +1 -1
  13. package/es/components/deprecated-loading/deprecated-loading.js +7 -10
  14. package/es/components/deprecated-loading/deprecated-loading.js.map +1 -1
  15. package/es/components/deprecated-modal/deprecated-modal.js +69 -101
  16. package/es/components/deprecated-modal/deprecated-modal.js.map +1 -1
  17. package/es/components/deprecated-modal/index.js +4 -4
  18. package/es/components/deprecated-modal/index.js.map +1 -1
  19. package/es/components/dropdown/dropdown.js +86 -85
  20. package/es/components/dropdown/dropdown.js.map +1 -1
  21. package/es/components/icons/CloseIcon.svg.js +9 -11
  22. package/es/components/icons/CloseIcon.svg.js.map +1 -1
  23. package/es/components/input/input.js +4 -3
  24. package/es/components/input/input.js.map +1 -1
  25. package/es/components/key-capturer/key-capturer.js +22 -19
  26. package/es/components/key-capturer/key-capturer.js.map +1 -1
  27. package/es/components/keyboard-shortcut/keyboard-shortcut.js +20 -26
  28. package/es/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  29. package/es/components/menu/menu.js +112 -142
  30. package/es/components/menu/menu.js.map +1 -1
  31. package/es/components/notification/notification.js +32 -32
  32. package/es/components/notification/notification.js.map +1 -1
  33. package/es/components/popover/popover.js +85 -91
  34. package/es/components/popover/popover.js.map +1 -1
  35. package/es/components/popover/positioning-utils.js +49 -65
  36. package/es/components/popover/positioning-utils.js.map +1 -1
  37. package/es/components/progress-bar/progress-bar.js +8 -8
  38. package/es/components/progress-bar/progress-bar.js.map +1 -1
  39. package/es/components/select/select.js +20 -25
  40. package/es/components/select/select.js.map +1 -1
  41. package/es/components/time/time-utils.js +30 -47
  42. package/es/components/time/time-utils.js.map +1 -1
  43. package/es/components/time/time.js +43 -56
  44. package/es/components/time/time.js.map +1 -1
  45. package/es/components/tooltip/tooltip.js +43 -46
  46. package/es/components/tooltip/tooltip.js.map +1 -1
  47. package/es/hooks/use-previous/use-previous.js +2 -2
  48. package/es/hooks/use-previous/use-previous.js.map +1 -1
  49. package/es/new-components/alert/alert.js +7 -6
  50. package/es/new-components/alert/alert.js.map +1 -1
  51. package/es/new-components/avatar/avatar.js +19 -18
  52. package/es/new-components/avatar/avatar.js.map +1 -1
  53. package/es/new-components/avatar/utils.js +12 -9
  54. package/es/new-components/avatar/utils.js.map +1 -1
  55. package/es/new-components/base-button/base-button.js +25 -29
  56. package/es/new-components/base-button/base-button.js.map +1 -1
  57. package/es/new-components/base-field/base-field.js +20 -18
  58. package/es/new-components/base-field/base-field.js.map +1 -1
  59. package/es/new-components/box/box.js +51 -52
  60. package/es/new-components/box/box.js.map +1 -1
  61. package/es/new-components/button/button.js +13 -15
  62. package/es/new-components/button/button.js.map +1 -1
  63. package/es/new-components/button-link/button-link.js +13 -15
  64. package/es/new-components/button-link/button-link.js.map +1 -1
  65. package/es/new-components/checkbox-field/checkbox-field.js +25 -33
  66. package/es/new-components/checkbox-field/checkbox-field.js.map +1 -1
  67. package/es/new-components/checkbox-field/checkbox-icon.js +21 -19
  68. package/es/new-components/checkbox-field/checkbox-icon.js.map +1 -1
  69. package/es/new-components/columns/columns.js +24 -27
  70. package/es/new-components/columns/columns.js.map +1 -1
  71. package/es/new-components/common-helpers.js +3 -3
  72. package/es/new-components/common-helpers.js.map +1 -1
  73. package/es/new-components/divider/divider.js +7 -6
  74. package/es/new-components/divider/divider.js.map +1 -1
  75. package/es/new-components/heading/heading.js +17 -17
  76. package/es/new-components/heading/heading.js.map +1 -1
  77. package/es/new-components/hidden/hidden.js +14 -13
  78. package/es/new-components/hidden/hidden.js.map +1 -1
  79. package/es/new-components/hidden-visually/hidden-visually.js +3 -2
  80. package/es/new-components/hidden-visually/hidden-visually.js.map +1 -1
  81. package/es/new-components/icons/alert-icon.js +13 -11
  82. package/es/new-components/icons/alert-icon.js.map +1 -1
  83. package/es/new-components/icons/close-icon.js +2 -1
  84. package/es/new-components/icons/close-icon.js.map +1 -1
  85. package/es/new-components/icons/password-hidden-icon.js +2 -1
  86. package/es/new-components/icons/password-hidden-icon.js.map +1 -1
  87. package/es/new-components/icons/password-visible-icon.js +2 -1
  88. package/es/new-components/icons/password-visible-icon.js.map +1 -1
  89. package/es/new-components/inline/inline.js +15 -19
  90. package/es/new-components/inline/inline.js.map +1 -1
  91. package/es/new-components/loading/loading.js +12 -10
  92. package/es/new-components/loading/loading.js.map +1 -1
  93. package/es/new-components/modal/modal.js +64 -66
  94. package/es/new-components/modal/modal.js.map +1 -1
  95. package/es/new-components/modal/modal.module.css.js +1 -1
  96. package/es/new-components/notice/notice.js +5 -4
  97. package/es/new-components/notice/notice.js.map +1 -1
  98. package/es/new-components/password-field/password-field.js +40 -46
  99. package/es/new-components/password-field/password-field.js.map +1 -1
  100. package/es/new-components/responsive-props.js +5 -5
  101. package/es/new-components/responsive-props.js.map +1 -1
  102. package/es/new-components/select-field/select-field.js +23 -23
  103. package/es/new-components/select-field/select-field.js.map +1 -1
  104. package/es/new-components/spinner/spinner.js +3 -3
  105. package/es/new-components/spinner/spinner.js.map +1 -1
  106. package/es/new-components/stack/stack.js +18 -22
  107. package/es/new-components/stack/stack.js.map +1 -1
  108. package/es/new-components/switch-field/switch-field.js +31 -41
  109. package/es/new-components/switch-field/switch-field.js.map +1 -1
  110. package/es/new-components/tabs/tabs.js +92 -78
  111. package/es/new-components/tabs/tabs.js.map +1 -1
  112. package/es/new-components/tabs/tabs.module.css.js +1 -1
  113. package/es/new-components/text/text.js +16 -17
  114. package/es/new-components/text/text.js.map +1 -1
  115. package/es/new-components/text/text.module.css.js +1 -1
  116. package/es/new-components/text-area/text-area.js +14 -14
  117. package/es/new-components/text-area/text-area.js.map +1 -1
  118. package/es/new-components/text-field/text-field.js +21 -22
  119. package/es/new-components/text-field/text-field.js.map +1 -1
  120. package/es/new-components/text-link/text-link.js +10 -10
  121. package/es/new-components/text-link/text-link.js.map +1 -1
  122. package/es/new-components/text-link/text-link.module.css.js +1 -1
  123. package/es/utils/polymorphism.js.map +1 -1
  124. package/lib/_virtual/_rollupPluginBabelHelpers.js +1 -1
  125. package/lib/components/checkbox/checkbox.js +1 -1
  126. package/lib/components/checkbox/checkbox.js.map +1 -1
  127. package/lib/components/color-picker/color-picker.js +1 -1
  128. package/lib/components/color-picker/color-picker.js.map +1 -1
  129. package/lib/components/deprecated-button/deprecated-button.d.ts +3 -3
  130. package/lib/components/deprecated-button/deprecated-button.js +1 -1
  131. package/lib/components/deprecated-button/deprecated-button.js.map +1 -1
  132. package/lib/components/deprecated-loading/deprecated-loading.js +1 -1
  133. package/lib/components/deprecated-loading/deprecated-loading.js.map +1 -1
  134. package/lib/components/deprecated-modal/deprecated-modal.d.ts +2 -2
  135. package/lib/components/deprecated-modal/deprecated-modal.js +1 -1
  136. package/lib/components/deprecated-modal/deprecated-modal.js.map +1 -1
  137. package/lib/components/deprecated-modal/index.js.map +1 -1
  138. package/lib/components/dropdown/dropdown.d.ts +5 -2
  139. package/lib/components/dropdown/dropdown.js +1 -1
  140. package/lib/components/dropdown/dropdown.js.map +1 -1
  141. package/lib/components/icons/CloseIcon.svg.js +1 -1
  142. package/lib/components/icons/CloseIcon.svg.js.map +1 -1
  143. package/lib/components/input/input.js +1 -1
  144. package/lib/components/input/input.js.map +1 -1
  145. package/lib/components/key-capturer/key-capturer.d.ts +1 -1
  146. package/lib/components/key-capturer/key-capturer.js +1 -1
  147. package/lib/components/key-capturer/key-capturer.js.map +1 -1
  148. package/lib/components/keyboard-shortcut/keyboard-shortcut.js +1 -1
  149. package/lib/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  150. package/lib/components/menu/menu.d.ts +7 -7
  151. package/lib/components/menu/menu.js +1 -1
  152. package/lib/components/menu/menu.js.map +1 -1
  153. package/lib/components/notification/notification.js +1 -1
  154. package/lib/components/notification/notification.js.map +1 -1
  155. package/lib/components/popover/popover.d.ts +1 -1
  156. package/lib/components/popover/popover.js +1 -1
  157. package/lib/components/popover/popover.js.map +1 -1
  158. package/lib/components/popover/positioning-utils.js +1 -1
  159. package/lib/components/popover/positioning-utils.js.map +1 -1
  160. package/lib/components/progress-bar/progress-bar.js +1 -1
  161. package/lib/components/progress-bar/progress-bar.js.map +1 -1
  162. package/lib/components/select/select.js +1 -1
  163. package/lib/components/select/select.js.map +1 -1
  164. package/lib/components/time/time-utils.js +1 -1
  165. package/lib/components/time/time-utils.js.map +1 -1
  166. package/lib/components/time/time.js +1 -1
  167. package/lib/components/time/time.js.map +1 -1
  168. package/lib/components/tooltip/index.d.ts +1 -2
  169. package/lib/components/tooltip/tooltip.d.ts +3 -3
  170. package/lib/components/tooltip/tooltip.js +1 -1
  171. package/lib/components/tooltip/tooltip.js.map +1 -1
  172. package/lib/hooks/use-previous/use-previous.js +1 -1
  173. package/lib/hooks/use-previous/use-previous.js.map +1 -1
  174. package/lib/index.d.ts +2 -1
  175. package/lib/new-components/alert/alert.d.ts +1 -1
  176. package/lib/new-components/alert/alert.js +1 -1
  177. package/lib/new-components/alert/alert.js.map +1 -1
  178. package/lib/new-components/avatar/avatar.js +1 -1
  179. package/lib/new-components/avatar/avatar.js.map +1 -1
  180. package/lib/new-components/avatar/utils.d.ts +1 -1
  181. package/lib/new-components/avatar/utils.js +1 -1
  182. package/lib/new-components/avatar/utils.js.map +1 -1
  183. package/lib/new-components/base-button/base-button.js +1 -1
  184. package/lib/new-components/base-button/base-button.js.map +1 -1
  185. package/lib/new-components/base-field/base-field.d.ts +1 -1
  186. package/lib/new-components/base-field/base-field.js +1 -1
  187. package/lib/new-components/base-field/base-field.js.map +1 -1
  188. package/lib/new-components/box/box.js +1 -1
  189. package/lib/new-components/box/box.js.map +1 -1
  190. package/lib/new-components/button/button.d.ts +1 -58
  191. package/lib/new-components/button/button.js +1 -1
  192. package/lib/new-components/button/button.js.map +1 -1
  193. package/lib/new-components/button-link/button-link.js +1 -1
  194. package/lib/new-components/button-link/button-link.js.map +1 -1
  195. package/lib/new-components/checkbox-field/checkbox-field.d.ts +1 -1
  196. package/lib/new-components/checkbox-field/checkbox-field.js +1 -1
  197. package/lib/new-components/checkbox-field/checkbox-field.js.map +1 -1
  198. package/lib/new-components/checkbox-field/checkbox-icon.js +1 -1
  199. package/lib/new-components/checkbox-field/checkbox-icon.js.map +1 -1
  200. package/lib/new-components/columns/columns.js +1 -1
  201. package/lib/new-components/columns/columns.js.map +1 -1
  202. package/lib/new-components/common-helpers.js +1 -1
  203. package/lib/new-components/common-helpers.js.map +1 -1
  204. package/lib/new-components/common-types.d.ts +2 -2
  205. package/lib/new-components/divider/divider.js +1 -1
  206. package/lib/new-components/divider/divider.js.map +1 -1
  207. package/lib/new-components/heading/heading.d.ts +2 -2
  208. package/lib/new-components/heading/heading.js +1 -1
  209. package/lib/new-components/heading/heading.js.map +1 -1
  210. package/lib/new-components/hidden/hidden.js +1 -1
  211. package/lib/new-components/hidden/hidden.js.map +1 -1
  212. package/lib/new-components/hidden-visually/hidden-visually.js +1 -1
  213. package/lib/new-components/hidden-visually/hidden-visually.js.map +1 -1
  214. package/lib/new-components/icons/alert-icon.d.ts +1 -1
  215. package/lib/new-components/icons/alert-icon.js +1 -1
  216. package/lib/new-components/icons/alert-icon.js.map +1 -1
  217. package/lib/new-components/icons/close-icon.js +1 -1
  218. package/lib/new-components/icons/close-icon.js.map +1 -1
  219. package/lib/new-components/icons/password-hidden-icon.js +1 -1
  220. package/lib/new-components/icons/password-hidden-icon.js.map +1 -1
  221. package/lib/new-components/icons/password-visible-icon.js +1 -1
  222. package/lib/new-components/icons/password-visible-icon.js.map +1 -1
  223. package/lib/new-components/inline/inline.js +1 -1
  224. package/lib/new-components/inline/inline.js.map +1 -1
  225. package/lib/new-components/loading/loading.d.ts +1 -1
  226. package/lib/new-components/loading/loading.js +1 -1
  227. package/lib/new-components/loading/loading.js.map +1 -1
  228. package/lib/new-components/modal/modal.js +1 -1
  229. package/lib/new-components/modal/modal.js.map +1 -1
  230. package/lib/new-components/modal/modal.module.css.js +1 -1
  231. package/lib/new-components/notice/notice.d.ts +1 -1
  232. package/lib/new-components/notice/notice.js +1 -1
  233. package/lib/new-components/notice/notice.js.map +1 -1
  234. package/lib/new-components/password-field/password-field.d.ts +1 -1
  235. package/lib/new-components/password-field/password-field.js +1 -1
  236. package/lib/new-components/password-field/password-field.js.map +1 -1
  237. package/lib/new-components/responsive-props.d.ts +1 -1
  238. package/lib/new-components/responsive-props.js +1 -1
  239. package/lib/new-components/responsive-props.js.map +1 -1
  240. package/lib/new-components/select-field/select-field.d.ts +1 -1
  241. package/lib/new-components/select-field/select-field.js +1 -1
  242. package/lib/new-components/select-field/select-field.js.map +1 -1
  243. package/lib/new-components/spinner/spinner.js +1 -1
  244. package/lib/new-components/spinner/spinner.js.map +1 -1
  245. package/lib/new-components/stack/stack.js +1 -1
  246. package/lib/new-components/stack/stack.js.map +1 -1
  247. package/lib/new-components/switch-field/switch-field.d.ts +1 -1
  248. package/lib/new-components/switch-field/switch-field.js +1 -1
  249. package/lib/new-components/switch-field/switch-field.js.map +1 -1
  250. package/lib/new-components/tabs/tabs.d.ts +13 -3
  251. package/lib/new-components/tabs/tabs.js +1 -1
  252. package/lib/new-components/tabs/tabs.js.map +1 -1
  253. package/lib/new-components/tabs/tabs.module.css.js +1 -1
  254. package/lib/new-components/test-helpers.d.ts +4 -3
  255. package/lib/new-components/text/text.js +1 -1
  256. package/lib/new-components/text/text.js.map +1 -1
  257. package/lib/new-components/text/text.module.css.js +1 -1
  258. package/lib/new-components/text-area/text-area.js +1 -1
  259. package/lib/new-components/text-area/text-area.js.map +1 -1
  260. package/lib/new-components/text-field/text-field.d.ts +1 -1
  261. package/lib/new-components/text-field/text-field.js +1 -1
  262. package/lib/new-components/text-field/text-field.js.map +1 -1
  263. package/lib/new-components/text-link/text-link.js +1 -1
  264. package/lib/new-components/text-link/text-link.js.map +1 -1
  265. package/lib/new-components/text-link/text-link.module.css.js +1 -1
  266. package/lib/utils/polymorphism.js.map +1 -1
  267. package/package.json +45 -38
  268. package/styles/base-field.css +1 -1
  269. package/styles/checkbox-field.css +1 -1
  270. package/styles/menu.css +1 -1
  271. package/styles/modal.css +1 -1
  272. package/styles/modal.module.css.css +1 -1
  273. package/styles/password-field.css +1 -1
  274. package/styles/reactist.css +6 -6
  275. package/styles/select-field.css +1 -1
  276. package/styles/switch-field.css +1 -1
  277. package/styles/tabs.css +1 -1
  278. package/styles/tabs.module.css.css +1 -1
  279. package/styles/text-area.css +1 -1
  280. package/styles/text-field.css +1 -1
  281. package/styles/text-link.css +1 -1
  282. package/styles/text-link.module.css.css +1 -1
  283. package/styles/text.css +1 -1
  284. package/styles/text.module.css.css +1 -1
@@ -1,35 +1,28 @@
1
- import { inheritsLoose as _inheritsLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
1
  import React__default from 'react';
3
2
  import { Tooltip } from '../tooltip/tooltip.js';
4
3
  import { TimeUtils } from './time-utils.js';
5
4
 
6
- var DELAY = 60000;
5
+ const DELAY = 60000;
7
6
 
8
- var Time = /*#__PURE__*/function (_React$Component) {
9
- _inheritsLoose(Time, _React$Component);
10
-
11
- function Time(props) {
12
- var _this;
13
-
14
- _this = _React$Component.call(this, props) || this;
15
- _this.refreshInterval = undefined;
16
- _this.state = {
7
+ class Time extends React__default.Component {
8
+ constructor(props) {
9
+ super(props);
10
+ this.refreshInterval = void 0;
11
+ this.refreshInterval = undefined;
12
+ this.state = {
17
13
  hovered: false,
18
14
  mouseX: undefined,
19
15
  mouseY: undefined
20
16
  };
21
- return _this;
22
17
  }
23
18
 
24
- var _proto = Time.prototype;
25
-
26
- _proto.componentDidMount = function componentDidMount() {
19
+ componentDidMount() {
27
20
  if (this.props.refresh) {
28
21
  this._refresh();
29
22
  }
30
- };
23
+ }
31
24
 
32
- _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
25
+ componentDidUpdate(prevProps) {
33
26
  if (!prevProps.refresh && this.props.refresh) {
34
27
  this._refresh();
35
28
  }
@@ -39,34 +32,35 @@ var Time = /*#__PURE__*/function (_React$Component) {
39
32
  clearTimeout(this.refreshInterval);
40
33
  }
41
34
  }
42
- };
35
+ }
43
36
 
44
- _proto.componentWillUnmount = function componentWillUnmount() {
37
+ componentWillUnmount() {
45
38
  if (this.refreshInterval) {
46
39
  clearTimeout(this.refreshInterval);
47
40
  }
48
- };
41
+ }
49
42
 
50
- _proto._setHovered = function _setHovered(hovered, event) {
51
- var _this$state = this.state,
52
- mouseX = _this$state.mouseX,
53
- mouseY = _this$state.mouseY;
54
- var clientX = event.clientX,
55
- clientY = event.clientY;
43
+ _setHovered(hovered, event) {
44
+ const {
45
+ mouseX,
46
+ mouseY
47
+ } = this.state;
48
+ const {
49
+ clientX,
50
+ clientY
51
+ } = event;
56
52
 
57
53
  if (clientX !== mouseX || clientY !== mouseY) {
58
54
  // mouse has moved
59
- this.setState(function () {
60
- return {
61
- hovered: hovered,
62
- mouseX: clientX,
63
- mouseY: clientY
64
- };
65
- });
55
+ this.setState(() => ({
56
+ hovered,
57
+ mouseX: clientX,
58
+ mouseY: clientY
59
+ }));
66
60
  }
67
- };
61
+ }
68
62
 
69
- _proto._renderTime = function _renderTime(config) {
63
+ _renderTime(config) {
70
64
  if (!this.props.time) {
71
65
  return;
72
66
  }
@@ -82,43 +76,36 @@ var Time = /*#__PURE__*/function (_React$Component) {
82
76
  }
83
77
 
84
78
  return TimeUtils.timeAgo(this.props.time, config);
85
- };
86
-
87
- _proto._refresh = function _refresh() {
88
- var _this2 = this;
79
+ }
89
80
 
90
- this.refreshInterval = setInterval(function () {
91
- _this2.forceUpdate();
81
+ _refresh() {
82
+ this.refreshInterval = setInterval(() => {
83
+ this.forceUpdate();
92
84
  }, DELAY);
93
- };
94
-
95
- _proto.render = function render() {
96
- var _this3 = this;
85
+ }
97
86
 
98
- var className = 'reactist_time';
87
+ render() {
88
+ let className = 'reactist_time';
99
89
 
100
90
  if (this.props.className) {
101
91
  className = this.props.className;
102
92
  }
103
93
 
104
- var timeComponent = this._renderTime(this.props.config);
94
+ const timeComponent = this._renderTime(this.props.config);
105
95
 
106
96
  return /*#__PURE__*/React__default.createElement("time", {
107
97
  className: className,
108
- onMouseEnter: function onMouseEnter(event) {
109
- return _this3._setHovered(true, event);
110
- },
111
- onMouseLeave: function onMouseLeave(event) {
112
- return _this3._setHovered(false, event);
113
- }
98
+ onMouseEnter: event => this._setHovered(true, event),
99
+ onMouseLeave: event => this._setHovered(false, event)
114
100
  }, this.props.tooltipOnHover ? /*#__PURE__*/React__default.createElement(Tooltip, {
115
101
  content: this.props.tooltip || this.props.time && TimeUtils.formatTimeLong(this.props.time, this.props.config)
116
102
  }, /*#__PURE__*/React__default.createElement("span", null, timeComponent)) : timeComponent);
117
- };
103
+ }
118
104
 
119
- return Time;
120
- }(React__default.Component);
105
+ }
121
106
 
107
+ Time.displayName = void 0;
108
+ Time.defaultProps = void 0;
122
109
  Time.displayName = 'Time';
123
110
  Time.defaultProps = {
124
111
  expandOnHover: false,
@@ -1 +1 @@
1
- {"version":3,"file":"time.js","sources":["../../../src/components/time/time.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Tooltip } from '../tooltip'\nimport { TimeUtils, TimeConfig } from './time-utils'\n\nimport './time.less'\n\nconst DELAY = 60000\n\ntype Props = {\n /** UNIX timestamp of the time to display. */\n time?: number\n /** Configuration for localization. */\n config?: TimeConfig\n /** Additional css class applied to the time element. */\n className?: string\n tooltipOnHover?: boolean\n /** Refresh the component every DELAY seconds. */\n refresh?: boolean\n /** If you don't want to use the default time format on the tooltip use this prop to supply a custom text */\n tooltip?: React.ReactNode\n /** When hovering over time it expands to short absolute version. */\n expandOnHover?: boolean\n /** When hovering over time it expands to the full absolute version. */\n expandFullyOnHover?: boolean\n}\n\ntype State = {\n hovered: boolean\n mouseX?: number\n mouseY?: number\n}\n\nclass Time extends React.Component<Props, State> {\n public static displayName: string\n public static defaultProps: Props\n\n constructor(props: Props) {\n super(props)\n this.refreshInterval = undefined\n\n this.state = {\n hovered: false,\n mouseX: undefined,\n mouseY: undefined,\n }\n }\n\n componentDidMount() {\n if (this.props.refresh) {\n this._refresh()\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.refresh && this.props.refresh) {\n this._refresh()\n }\n\n if (prevProps.refresh && !this.props.refresh) {\n if (this.refreshInterval) {\n clearTimeout(this.refreshInterval)\n }\n }\n }\n\n componentWillUnmount() {\n if (this.refreshInterval) {\n clearTimeout(this.refreshInterval)\n }\n }\n\n refreshInterval?: ReturnType<typeof setTimeout>\n\n _setHovered(hovered: boolean, event: React.MouseEvent) {\n const { mouseX, mouseY } = this.state\n const { clientX, clientY } = event\n if (clientX !== mouseX || clientY !== mouseY) {\n // mouse has moved\n this.setState(() => ({\n hovered,\n mouseX: clientX,\n mouseY: clientY,\n }))\n }\n }\n\n _renderTime(config: Props['config']) {\n if (!this.props.time) {\n return\n }\n if (this.state.hovered) {\n if (this.props.expandFullyOnHover && !this.props.tooltipOnHover) {\n return TimeUtils.formatTimeLong(this.props.time, config)\n }\n if (this.props.expandOnHover && !this.props.tooltipOnHover) {\n return TimeUtils.formatTime(this.props.time, config)\n }\n }\n return TimeUtils.timeAgo(this.props.time, config)\n }\n\n _refresh() {\n this.refreshInterval = setInterval(() => {\n this.forceUpdate()\n }, DELAY)\n }\n\n render() {\n let className = 'reactist_time'\n if (this.props.className) {\n className = this.props.className\n }\n\n const timeComponent = this._renderTime(this.props.config)\n\n return (\n <time\n className={className}\n onMouseEnter={(event) => this._setHovered(true, event)}\n onMouseLeave={(event) => this._setHovered(false, event)}\n >\n {this.props.tooltipOnHover ? (\n <Tooltip\n content={\n this.props.tooltip ||\n (this.props.time &&\n TimeUtils.formatTimeLong(this.props.time, this.props.config))\n }\n >\n <span>{timeComponent}</span>\n </Tooltip>\n ) : (\n timeComponent\n )}\n </time>\n )\n }\n}\nTime.displayName = 'Time'\n\nTime.defaultProps = {\n expandOnHover: false,\n expandFullyOnHover: false,\n tooltipOnHover: false,\n refresh: true,\n config: {\n locale: 'en',\n daysSuffix: 'd',\n hoursSuffix: 'h',\n minutesSuffix: 'm',\n momentsAgo: 'moments ago',\n },\n}\n\nexport { Time }\n"],"names":["DELAY","Time","props","refreshInterval","undefined","state","hovered","mouseX","mouseY","componentDidMount","refresh","_refresh","componentDidUpdate","prevProps","clearTimeout","componentWillUnmount","_setHovered","event","clientX","clientY","setState","_renderTime","config","time","expandFullyOnHover","tooltipOnHover","TimeUtils","formatTimeLong","expandOnHover","formatTime","timeAgo","setInterval","forceUpdate","render","className","timeComponent","React","onMouseEnter","onMouseLeave","Tooltip","content","tooltip","Component","displayName","defaultProps","locale","daysSuffix","hoursSuffix","minutesSuffix","momentsAgo"],"mappings":"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"}
1
+ {"version":3,"file":"time.js","sources":["../../../src/components/time/time.tsx"],"sourcesContent":["import React from 'react'\n\nimport { Tooltip } from '../tooltip'\nimport { TimeUtils, TimeConfig } from './time-utils'\n\nimport './time.less'\n\nconst DELAY = 60000\n\ntype Props = {\n /** UNIX timestamp of the time to display. */\n time?: number\n /** Configuration for localization. */\n config?: TimeConfig\n /** Additional css class applied to the time element. */\n className?: string\n tooltipOnHover?: boolean\n /** Refresh the component every DELAY seconds. */\n refresh?: boolean\n /** If you don't want to use the default time format on the tooltip use this prop to supply a custom text */\n tooltip?: React.ReactNode\n /** When hovering over time it expands to short absolute version. */\n expandOnHover?: boolean\n /** When hovering over time it expands to the full absolute version. */\n expandFullyOnHover?: boolean\n}\n\ntype State = {\n hovered: boolean\n mouseX?: number\n mouseY?: number\n}\n\nclass Time extends React.Component<Props, State> {\n public static displayName: string\n public static defaultProps: Props\n\n constructor(props: Props) {\n super(props)\n this.refreshInterval = undefined\n\n this.state = {\n hovered: false,\n mouseX: undefined,\n mouseY: undefined,\n }\n }\n\n componentDidMount() {\n if (this.props.refresh) {\n this._refresh()\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.refresh && this.props.refresh) {\n this._refresh()\n }\n\n if (prevProps.refresh && !this.props.refresh) {\n if (this.refreshInterval) {\n clearTimeout(this.refreshInterval)\n }\n }\n }\n\n componentWillUnmount() {\n if (this.refreshInterval) {\n clearTimeout(this.refreshInterval)\n }\n }\n\n refreshInterval?: ReturnType<typeof setTimeout>\n\n _setHovered(hovered: boolean, event: React.MouseEvent) {\n const { mouseX, mouseY } = this.state\n const { clientX, clientY } = event\n if (clientX !== mouseX || clientY !== mouseY) {\n // mouse has moved\n this.setState(() => ({\n hovered,\n mouseX: clientX,\n mouseY: clientY,\n }))\n }\n }\n\n _renderTime(config: Props['config']) {\n if (!this.props.time) {\n return\n }\n if (this.state.hovered) {\n if (this.props.expandFullyOnHover && !this.props.tooltipOnHover) {\n return TimeUtils.formatTimeLong(this.props.time, config)\n }\n if (this.props.expandOnHover && !this.props.tooltipOnHover) {\n return TimeUtils.formatTime(this.props.time, config)\n }\n }\n return TimeUtils.timeAgo(this.props.time, config)\n }\n\n _refresh() {\n this.refreshInterval = setInterval(() => {\n this.forceUpdate()\n }, DELAY)\n }\n\n render() {\n let className = 'reactist_time'\n if (this.props.className) {\n className = this.props.className\n }\n\n const timeComponent = this._renderTime(this.props.config)\n\n return (\n <time\n className={className}\n onMouseEnter={(event) => this._setHovered(true, event)}\n onMouseLeave={(event) => this._setHovered(false, event)}\n >\n {this.props.tooltipOnHover ? (\n <Tooltip\n content={\n this.props.tooltip ||\n (this.props.time &&\n TimeUtils.formatTimeLong(this.props.time, this.props.config))\n }\n >\n <span>{timeComponent}</span>\n </Tooltip>\n ) : (\n timeComponent\n )}\n </time>\n )\n }\n}\nTime.displayName = 'Time'\n\nTime.defaultProps = {\n expandOnHover: false,\n expandFullyOnHover: false,\n tooltipOnHover: false,\n refresh: true,\n config: {\n locale: 'en',\n daysSuffix: 'd',\n hoursSuffix: 'h',\n minutesSuffix: 'm',\n momentsAgo: 'moments ago',\n },\n}\n\nexport { Time }\n"],"names":["DELAY","Time","React","Component","constructor","props","refreshInterval","undefined","state","hovered","mouseX","mouseY","componentDidMount","refresh","_refresh","componentDidUpdate","prevProps","clearTimeout","componentWillUnmount","_setHovered","event","clientX","clientY","setState","_renderTime","config","time","expandFullyOnHover","tooltipOnHover","TimeUtils","formatTimeLong","expandOnHover","formatTime","timeAgo","setInterval","forceUpdate","render","className","timeComponent","onMouseEnter","onMouseLeave","Tooltip","content","tooltip","displayName","defaultProps","locale","daysSuffix","hoursSuffix","minutesSuffix","momentsAgo"],"mappings":"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"}
@@ -1,43 +1,37 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React__default from 'react';
3
3
  import classNames from 'classnames';
4
- import { TooltipReference, Tooltip as Tooltip$1, useTooltipState } from 'reakit/Tooltip';
4
+ import { TooltipAnchor, Tooltip as Tooltip$1, useTooltipState } from 'ariakit/tooltip';
5
5
 
6
- var _excluded = ["children", "content", "position", "gapSize", "className"];
6
+ const _excluded = ["children", "content", "position", "gapSize", "className"];
7
7
 
8
- var SHOW_DELAY = 500;
9
- var HIDE_DELAY = 100;
8
+ const SHOW_DELAY = 500;
9
+ const HIDE_DELAY = 100;
10
10
 
11
11
  function useDelayedTooltipState(initialState) {
12
- var tooltipState = useTooltipState(initialState);
13
- var delay = useDelay();
14
- return React__default.useMemo(function () {
15
- return _objectSpread2(_objectSpread2({}, tooltipState), {}, {
16
- show: delay(function () {
17
- return tooltipState.show();
18
- }, SHOW_DELAY),
19
- hide: delay(function () {
20
- return tooltipState.hide();
21
- }, HIDE_DELAY)
22
- });
23
- }, [delay, tooltipState]);
12
+ const tooltipState = useTooltipState(initialState);
13
+ const delay = useDelay();
14
+ return React__default.useMemo(() => _objectSpread2(_objectSpread2({}, tooltipState), {}, {
15
+ show: delay(() => tooltipState.show(), SHOW_DELAY),
16
+ hide: delay(() => tooltipState.hide(), HIDE_DELAY)
17
+ }), [delay, tooltipState]);
24
18
  }
25
19
 
26
20
  function Tooltip(_ref) {
27
- var children = _ref.children,
28
- content = _ref.content,
29
- _ref$position = _ref.position,
30
- position = _ref$position === void 0 ? 'top' : _ref$position,
31
- _ref$gapSize = _ref.gapSize,
32
- gapSize = _ref$gapSize === void 0 ? 3 : _ref$gapSize,
33
- className = _ref.className,
34
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
35
-
36
- var tooltip = useDelayedTooltipState({
21
+ let {
22
+ children,
23
+ content,
24
+ position = 'top',
25
+ gapSize = 3,
26
+ className
27
+ } = _ref,
28
+ props = _objectWithoutProperties(_ref, _excluded);
29
+
30
+ const state = useDelayedTooltipState({
37
31
  placement: position,
38
32
  gutter: gapSize
39
33
  });
40
- var child = React__default.Children.only(children);
34
+ const child = React__default.Children.only(children);
41
35
 
42
36
  if (!content) {
43
37
  return child;
@@ -56,10 +50,10 @@ function Tooltip(_ref) {
56
50
  // This may be resolved soon in an upcoming version of reakit:
57
51
  // https://github.com/reakit/reakit/issues/750
58
52
  function handleKeyUp(e) {
59
- var eventKey = e.key;
53
+ const eventKey = e.key;
60
54
 
61
55
  if (eventKey !== 'Escape' && eventKey !== 'Enter' && eventKey !== 'Space') {
62
- tooltip.show();
56
+ state.show();
63
57
  }
64
58
  }
65
59
 
@@ -67,19 +61,24 @@ function Tooltip(_ref) {
67
61
  once: true
68
62
  }); // Prevent tooltip.show from being called by TooltipReference
69
63
 
70
- event.preventDefault(); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
71
-
72
- if (typeof child.props.onFocus === 'function') child.props.onFocus(event);
64
+ event.preventDefault();
65
+ child.props.onFocus == null ? void 0 : child.props.onFocus(event);
73
66
  }
74
67
 
75
- return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TooltipReference, Object.assign({}, tooltip, {
76
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment
77
- ref: child.ref
78
- }, child.props, {
68
+ return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TooltipAnchor, {
69
+ state: state,
79
70
  onFocus: handleFocus
80
- }), function (referenceProps) {
81
- return /*#__PURE__*/React__default.cloneElement(child, referenceProps);
82
- }), tooltip.visible ? /*#__PURE__*/React__default.createElement(Tooltip$1, Object.assign({}, tooltip, props, {
71
+ }, anchorProps => {
72
+ const {
73
+ onFocus,
74
+ onBlur
75
+ } = anchorProps;
76
+ return /*#__PURE__*/React__default.cloneElement(child, _objectSpread2(_objectSpread2(_objectSpread2({}, anchorProps), child.props), {}, {
77
+ onFocus,
78
+ onBlur
79
+ }));
80
+ }), state.visible ? /*#__PURE__*/React__default.createElement(Tooltip$1, _objectSpread2(_objectSpread2({}, props), {}, {
81
+ state: state,
83
82
  className: classNames('reactist_tooltip', className)
84
83
  }), typeof content === 'function' ? content() : content) : null);
85
84
  }
@@ -98,18 +97,16 @@ function Tooltip(_ref) {
98
97
  */
99
98
 
100
99
  function useDelay() {
101
- var timeoutRef = React__default.useRef();
102
- var clearTimeouts = React__default.useCallback(function clearTimeouts() {
100
+ const timeoutRef = React__default.useRef();
101
+ const clearTimeouts = React__default.useCallback(function clearTimeouts() {
103
102
  if (timeoutRef.current != null) {
104
103
  clearTimeout(timeoutRef.current);
105
104
  }
106
105
  }, []); // Runs clearTimeouts when the component is unmounted
107
106
 
108
- React__default.useEffect(function () {
109
- return clearTimeouts;
110
- }, [clearTimeouts]);
107
+ React__default.useEffect(() => clearTimeouts, [clearTimeouts]);
111
108
  return React__default.useCallback(function delay(fn, delay) {
112
- return function () {
109
+ return () => {
113
110
  clearTimeouts();
114
111
  timeoutRef.current = setTimeout(fn, delay);
115
112
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.js","sources":["../../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["import React from 'react'\nimport classNames from 'classnames'\n\nimport {\n useTooltipState,\n TooltipInitialState,\n Tooltip as ReakitTooltip,\n TooltipReference,\n TooltipProps as ReakitTooltipProps,\n} from 'reakit/Tooltip'\nimport { PopoverState } from 'reakit/Popover'\n\nimport './tooltip.less'\n\ntype TooltipProps = Omit<ReakitTooltipProps, 'children'> & {\n children: React.ReactNode\n content: React.ReactNode | (() => React.ReactNode)\n position?: PopoverState['placement']\n gapSize?: number\n}\n\n// These are exported to be used in the tests, they are not meant to be exported publicly\nexport const SHOW_DELAY = 500\nexport const HIDE_DELAY = 100\n\nfunction useDelayedTooltipState(initialState: TooltipInitialState) {\n const tooltipState = useTooltipState(initialState)\n const delay = useDelay()\n return React.useMemo(\n () => ({\n ...tooltipState,\n show: delay(() => tooltipState.show(), SHOW_DELAY),\n hide: delay(() => tooltipState.hide(), HIDE_DELAY),\n }),\n [delay, tooltipState],\n )\n}\n\nfunction Tooltip({\n children,\n content,\n position = 'top',\n gapSize = 3,\n className,\n ...props\n}: TooltipProps) {\n const tooltip = useDelayedTooltipState({ placement: position, gutter: gapSize })\n\n const child = React.Children.only<React.ReactElement>(children as React.ReactElement)\n if (!content) {\n return child\n }\n\n /**\n * Prevents the tooltip from automatically firing on focus all the time. This is to prevent\n * tooltips from showing when the trigger element is focused back after a popover or dialog that\n * it opened was closed. See link below for more details.\n * @see https://github.com/reakit/reakit/discussions/749\n */\n function handleFocus(event: React.FocusEvent) {\n // If focus is not followed by a key up event, does it mean that it's not\n // an intentional keyboard focus? Not sure but it seems to work.\n // This may be resolved soon in an upcoming version of reakit:\n // https://github.com/reakit/reakit/issues/750\n function handleKeyUp(e: Event) {\n const eventKey = (e as KeyboardEvent).key\n if (eventKey !== 'Escape' && eventKey !== 'Enter' && eventKey !== 'Space') {\n tooltip.show()\n }\n }\n event.currentTarget.addEventListener('keyup', handleKeyUp, { once: true })\n // Prevent tooltip.show from being called by TooltipReference\n event.preventDefault()\n // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access\n if (typeof child.props.onFocus === 'function') child.props.onFocus(event)\n }\n\n return (\n <>\n <TooltipReference\n {...tooltip}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment\n ref={(child as any).ref}\n {...child.props}\n onFocus={handleFocus}\n >\n {(referenceProps) => React.cloneElement(child, referenceProps)}\n </TooltipReference>\n {tooltip.visible ? (\n <ReakitTooltip\n {...tooltip}\n {...props}\n className={classNames('reactist_tooltip', className)}\n >\n {typeof content === 'function' ? content() : content}\n </ReakitTooltip>\n ) : null}\n </>\n )\n}\n\nexport type { TooltipProps }\nexport { Tooltip }\n\n//\n// Internal helpers\n//\n\n/**\n * Returns a function offering the same interface as setTimeout, but cleans up on unmount.\n *\n * The timeout state is shared, and only one delayed function can be active at any given time. If\n * a new delayed function is called while another one was waiting for its time to run, that older\n * invocation is cleared and it never runs.\n *\n * This is suitable for our use case here, but probably not the most intuitive thing in general.\n * That's why this is not made a shared util or something like it.\n */\nfunction useDelay() {\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n const clearTimeouts = React.useCallback(function clearTimeouts() {\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current)\n }\n }, [])\n\n // Runs clearTimeouts when the component is unmounted\n React.useEffect(() => clearTimeouts, [clearTimeouts])\n\n return React.useCallback(\n function delay(fn: () => void, delay: number) {\n return () => {\n clearTimeouts()\n timeoutRef.current = setTimeout(fn, delay)\n }\n },\n [clearTimeouts],\n )\n}\n"],"names":["SHOW_DELAY","HIDE_DELAY","useDelayedTooltipState","initialState","tooltipState","useTooltipState","delay","useDelay","React","useMemo","show","hide","Tooltip","children","content","position","gapSize","className","props","tooltip","placement","gutter","child","Children","only","handleFocus","event","handleKeyUp","e","eventKey","key","currentTarget","addEventListener","once","preventDefault","onFocus","TooltipReference","ref","referenceProps","cloneElement","visible","ReakitTooltip","classNames","timeoutRef","useRef","clearTimeouts","useCallback","current","clearTimeout","useEffect","fn","setTimeout"],"mappings":"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"}
1
+ {"version":3,"file":"tooltip.js","sources":["../../../src/components/tooltip/tooltip.tsx"],"sourcesContent":["import React from 'react'\nimport classNames from 'classnames'\n\nimport {\n useTooltipState as useAriakitTooltipState,\n TooltipStateProps as AriakitTooltipStateProps,\n Tooltip as AriakitTooltip,\n TooltipProps as AriakitTooltipProps,\n TooltipAnchor,\n TooltipAnchorProps,\n} from 'ariakit/tooltip'\nimport type { PopoverState } from 'ariakit/popover'\n\nimport './tooltip.less'\n\ntype TooltipProps = Omit<AriakitTooltipProps, 'children' | 'state'> & {\n children: React.ReactNode\n content: React.ReactNode | (() => React.ReactNode)\n position?: PopoverState['placement']\n gapSize?: number\n}\n\n// These are exported to be used in the tests, they are not meant to be exported publicly\nexport const SHOW_DELAY = 500\nexport const HIDE_DELAY = 100\n\nfunction useDelayedTooltipState(initialState: AriakitTooltipStateProps) {\n const tooltipState = useAriakitTooltipState(initialState)\n const delay = useDelay()\n return React.useMemo(\n () => ({\n ...tooltipState,\n show: delay(() => tooltipState.show(), SHOW_DELAY),\n hide: delay(() => tooltipState.hide(), HIDE_DELAY),\n }),\n [delay, tooltipState],\n )\n}\n\nfunction Tooltip({\n children,\n content,\n position = 'top',\n gapSize = 3,\n className,\n ...props\n}: TooltipProps) {\n const state = useDelayedTooltipState({ placement: position, gutter: gapSize })\n\n const child = React.Children.only<React.FunctionComponentElement<TooltipAnchorProps>>(\n children as React.FunctionComponentElement<TooltipAnchorProps>,\n )\n if (!content) {\n return child\n }\n\n /**\n * Prevents the tooltip from automatically firing on focus all the time. This is to prevent\n * tooltips from showing when the trigger element is focused back after a popover or dialog that\n * it opened was closed. See link below for more details.\n * @see https://github.com/reakit/reakit/discussions/749\n */\n function handleFocus(event: React.FocusEvent<HTMLDivElement>) {\n // If focus is not followed by a key up event, does it mean that it's not\n // an intentional keyboard focus? Not sure but it seems to work.\n // This may be resolved soon in an upcoming version of reakit:\n // https://github.com/reakit/reakit/issues/750\n function handleKeyUp(e: Event) {\n const eventKey = (e as KeyboardEvent).key\n if (eventKey !== 'Escape' && eventKey !== 'Enter' && eventKey !== 'Space') {\n state.show()\n }\n }\n event.currentTarget.addEventListener('keyup', handleKeyUp, { once: true })\n // Prevent tooltip.show from being called by TooltipReference\n event.preventDefault()\n child.props.onFocus?.(event)\n }\n\n return (\n <>\n <TooltipAnchor state={state} onFocus={handleFocus}>\n {(anchorProps: TooltipAnchorProps) => {\n const { onFocus, onBlur } = anchorProps\n return React.cloneElement(child, {\n ...anchorProps,\n // Ensure that the children's props can override TooltipAnchor's\n // props, as properties like `autoFocus` can get lost otherwise.\n // The focus and blur handlers however are the core functionality\n // the tooltip needs to provide, so they should not be overridden\n ...child.props,\n onFocus,\n onBlur,\n })\n }}\n </TooltipAnchor>\n {state.visible ? (\n <AriakitTooltip\n {...props}\n state={state}\n className={classNames('reactist_tooltip', className)}\n >\n {typeof content === 'function' ? content() : content}\n </AriakitTooltip>\n ) : null}\n </>\n )\n}\n\nexport type { TooltipProps }\nexport { Tooltip }\n\n//\n// Internal helpers\n//\n\n/**\n * Returns a function offering the same interface as setTimeout, but cleans up on unmount.\n *\n * The timeout state is shared, and only one delayed function can be active at any given time. If\n * a new delayed function is called while another one was waiting for its time to run, that older\n * invocation is cleared and it never runs.\n *\n * This is suitable for our use case here, but probably not the most intuitive thing in general.\n * That's why this is not made a shared util or something like it.\n */\nfunction useDelay() {\n const timeoutRef = React.useRef<ReturnType<typeof setTimeout>>()\n\n const clearTimeouts = React.useCallback(function clearTimeouts() {\n if (timeoutRef.current != null) {\n clearTimeout(timeoutRef.current)\n }\n }, [])\n\n // Runs clearTimeouts when the component is unmounted\n React.useEffect(() => clearTimeouts, [clearTimeouts])\n\n return React.useCallback(\n function delay(fn: () => void, delay: number) {\n return () => {\n clearTimeouts()\n timeoutRef.current = setTimeout(fn, delay)\n }\n },\n [clearTimeouts],\n )\n}\n"],"names":["SHOW_DELAY","HIDE_DELAY","useDelayedTooltipState","initialState","tooltipState","useAriakitTooltipState","delay","useDelay","React","useMemo","show","hide","Tooltip","children","content","position","gapSize","className","props","state","placement","gutter","child","Children","only","handleFocus","event","handleKeyUp","e","eventKey","key","currentTarget","addEventListener","once","preventDefault","onFocus","TooltipAnchor","anchorProps","onBlur","cloneElement","visible","AriakitTooltip","classNames","timeoutRef","useRef","clearTimeouts","useCallback","current","clearTimeout","useEffect","fn","setTimeout"],"mappings":"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"}
@@ -15,8 +15,8 @@ import { useRef, useEffect } from 'react';
15
15
  */
16
16
 
17
17
  function usePrevious(value) {
18
- var ref = useRef(null);
19
- useEffect(function () {
18
+ const ref = useRef(null);
19
+ useEffect(() => {
20
20
  ref.current = value;
21
21
  }, [value]);
22
22
  return ref.current;
@@ -1 +1 @@
1
- {"version":3,"file":"use-previous.js","sources":["../../../src/hooks/use-previous/use-previous.ts"],"sourcesContent":["import * as React from 'react'\n\n/**\n * usePrevious tracks the change of the given value -\n * when a given value has been changed from a previous call,\n * it will return the value prior to the change.\n *\n * Example:\n *\n * const [x, setX] = useState(1)\n * const prevX = usePrevious(x)\n *\n * Suppose `setX(2)` is called, then in the next component render\n * x = 2 and prevX = 1\n */\nfunction usePrevious<T>(value: T): T | null {\n const ref = React.useRef<T | null>(null)\n\n React.useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n\nexport { usePrevious }\n"],"names":["usePrevious","value","ref","React","current"],"mappings":";;AAEA;;;;;;;;;;;;;;AAaA,SAASA,WAAT,CAAwBC,KAAxB;AACI,MAAMC,GAAG,GAAGC,MAAA,CAAuB,IAAvB,CAAZ;AAEAA,EAAAA,SAAA,CAAgB;AACZD,IAAAA,GAAG,CAACE,OAAJ,GAAcH,KAAd;AACH,GAFD,EAEG,CAACA,KAAD,CAFH;AAIA,SAAOC,GAAG,CAACE,OAAX;AACH;;;;"}
1
+ {"version":3,"file":"use-previous.js","sources":["../../../src/hooks/use-previous/use-previous.ts"],"sourcesContent":["import * as React from 'react'\n\n/**\n * usePrevious tracks the change of the given value -\n * when a given value has been changed from a previous call,\n * it will return the value prior to the change.\n *\n * Example:\n *\n * const [x, setX] = useState(1)\n * const prevX = usePrevious(x)\n *\n * Suppose `setX(2)` is called, then in the next component render\n * x = 2 and prevX = 1\n */\nfunction usePrevious<T>(value: T): T | null {\n const ref = React.useRef<T | null>(null)\n\n React.useEffect(() => {\n ref.current = value\n }, [value])\n\n return ref.current\n}\n\nexport { usePrevious }\n"],"names":["usePrevious","value","ref","React","current"],"mappings":";;AAEA;;;;;;;;;;;;;;AAaA,SAASA,WAAT,CAAwBC,KAAxB;EACI,MAAMC,GAAG,GAAGC,MAAA,CAAuB,IAAvB,CAAZ;EAEAA,SAAA,CAAgB;IACZD,GAAG,CAACE,OAAJ,GAAcH,KAAd;GADJ,EAEG,CAACA,KAAD,CAFH;EAIA,OAAOC,GAAG,CAACE,OAAX;AACH;;;;"}
@@ -7,12 +7,13 @@ import { AlertIcon } from '../icons/alert-icon.js';
7
7
  import { CloseIcon } from '../icons/close-icon.js';
8
8
  import styles from './alert.module.css.js';
9
9
 
10
- function Alert(_ref) {
11
- var id = _ref.id,
12
- children = _ref.children,
13
- tone = _ref.tone,
14
- closeLabel = _ref.closeLabel,
15
- onClose = _ref.onClose;
10
+ function Alert({
11
+ id,
12
+ children,
13
+ tone,
14
+ closeLabel,
15
+ onClose
16
+ }) {
16
17
  return /*#__PURE__*/createElement(Box, {
17
18
  id: id,
18
19
  role: "alert",
@@ -1 +1 @@
1
- {"version":3,"file":"alert.js","sources":["../../../src/new-components/alert/alert.tsx"],"sourcesContent":["import * as React from 'react'\nimport { AlertTone } from '../common-types'\nimport { getClassNames } from '../responsive-props'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Columns, Column } from '../columns'\n\nimport { AlertIcon } from '../icons/alert-icon'\nimport { CloseIcon } from '../icons/close-icon'\n\nimport styles from './alert.module.css'\n\ntype AllOrNone<T> = T | { [K in keyof T]?: never }\n\ntype AlertCloseProps = AllOrNone<{\n closeLabel: string\n onClose: () => void\n}>\n\ntype AlertProps = {\n id?: string\n children: React.ReactNode\n tone: AlertTone\n} & AlertCloseProps\n\nfunction Alert({ id, children, tone, closeLabel, onClose }: AlertProps) {\n return (\n <Box\n id={id}\n role=\"alert\"\n aria-live=\"polite\"\n borderRadius=\"standard\"\n className={[styles.container, getClassNames(styles, 'tone', tone)]}\n >\n <Columns space=\"small\" alignY=\"top\">\n <Column width=\"content\">\n <AlertIcon tone={tone} />\n </Column>\n <Column>\n <Box\n paddingY=\"xsmall\"\n paddingRight={onClose != null && closeLabel != null ? undefined : 'small'}\n >\n {children}\n </Box>\n </Column>\n {onClose != null && closeLabel != null ? (\n <Column width=\"content\">\n <Button\n variant=\"quaternary\"\n size=\"small\"\n onClick={onClose}\n aria-label={closeLabel}\n icon={<CloseIcon />}\n style={{\n // @ts-expect-error not sure how to make TypeScript understand custom CSS properties\n '--reactist-btn-hover-fill': 'transparent',\n }}\n />\n </Column>\n ) : null}\n </Columns>\n </Box>\n )\n}\n\nexport { Alert }\nexport type { AlertProps }\n"],"names":["Alert","id","children","tone","closeLabel","onClose","React","Box","role","borderRadius","className","styles","container","getClassNames","Columns","space","alignY","Column","width","AlertIcon","paddingY","paddingRight","undefined","Button","variant","size","onClick","icon","CloseIcon","style"],"mappings":";;;;;;;;;AAyBA,SAASA,KAAT;MAAiBC,UAAAA;MAAIC,gBAAAA;MAAUC,YAAAA;MAAMC,kBAAAA;MAAYC,eAAAA;AAC7C,sBACIC,aAAA,CAACC,GAAD;AACIN,IAAAA,EAAE,EAAEA;AACJO,IAAAA,IAAI,EAAC;iBACK;AACVC,IAAAA,YAAY,EAAC;AACbC,IAAAA,SAAS,EAAE,CAACC,MAAM,CAACC,SAAR,EAAmBC,aAAa,CAACF,MAAD,EAAS,MAAT,EAAiBR,IAAjB,CAAhC;GALf,eAOIG,aAAA,CAACQ,OAAD;AAASC,IAAAA,KAAK,EAAC;AAAQC,IAAAA,MAAM,EAAC;GAA9B,eACIV,aAAA,CAACW,MAAD;AAAQC,IAAAA,KAAK,EAAC;GAAd,eACIZ,aAAA,CAACa,SAAD;AAAWhB,IAAAA,IAAI,EAAEA;GAAjB,CADJ,CADJ,eAIIG,aAAA,CAACW,MAAD,MAAA,eACIX,aAAA,CAACC,GAAD;AACIa,IAAAA,QAAQ,EAAC;AACTC,IAAAA,YAAY,EAAEhB,OAAO,IAAI,IAAX,IAAmBD,UAAU,IAAI,IAAjC,GAAwCkB,SAAxC,GAAoD;GAFtE,EAIKpB,QAJL,CADJ,CAJJ,EAYKG,OAAO,IAAI,IAAX,IAAmBD,UAAU,IAAI,IAAjC,gBACGE,aAAA,CAACW,MAAD;AAAQC,IAAAA,KAAK,EAAC;GAAd,eACIZ,aAAA,CAACiB,MAAD;AACIC,IAAAA,OAAO,EAAC;AACRC,IAAAA,IAAI,EAAC;AACLC,IAAAA,OAAO,EAAErB;kBACGD;AACZuB,IAAAA,IAAI,eAAErB,aAAA,CAACsB,SAAD,MAAA;AACNC,IAAAA,KAAK,EAAE;AACH;AACA,mCAA6B;AAF1B;GANX,CADJ,CADH,GAcG,IA1BR,CAPJ,CADJ;AAsCH;;;;"}
1
+ {"version":3,"file":"alert.js","sources":["../../../src/new-components/alert/alert.tsx"],"sourcesContent":["import * as React from 'react'\nimport { getClassNames } from '../responsive-props'\nimport { Box } from '../box'\nimport { Button } from '../button'\nimport { Columns, Column } from '../columns'\n\nimport { AlertIcon } from '../icons/alert-icon'\nimport { CloseIcon } from '../icons/close-icon'\n\nimport styles from './alert.module.css'\n\nimport type { AlertTone } from '../common-types'\n\ntype AllOrNone<T> = T | { [K in keyof T]?: never }\n\ntype AlertCloseProps = AllOrNone<{\n closeLabel: string\n onClose: () => void\n}>\n\ntype AlertProps = {\n id?: string\n children: React.ReactNode\n tone: AlertTone\n} & AlertCloseProps\n\nfunction Alert({ id, children, tone, closeLabel, onClose }: AlertProps) {\n return (\n <Box\n id={id}\n role=\"alert\"\n aria-live=\"polite\"\n borderRadius=\"standard\"\n className={[styles.container, getClassNames(styles, 'tone', tone)]}\n >\n <Columns space=\"small\" alignY=\"top\">\n <Column width=\"content\">\n <AlertIcon tone={tone} />\n </Column>\n <Column>\n <Box\n paddingY=\"xsmall\"\n paddingRight={onClose != null && closeLabel != null ? undefined : 'small'}\n >\n {children}\n </Box>\n </Column>\n {onClose != null && closeLabel != null ? (\n <Column width=\"content\">\n <Button\n variant=\"quaternary\"\n size=\"small\"\n onClick={onClose}\n aria-label={closeLabel}\n icon={<CloseIcon />}\n style={{\n // @ts-expect-error not sure how to make TypeScript understand custom CSS properties\n '--reactist-btn-hover-fill': 'transparent',\n }}\n />\n </Column>\n ) : null}\n </Columns>\n </Box>\n )\n}\n\nexport { Alert }\nexport type { AlertProps }\n"],"names":["Alert","id","children","tone","closeLabel","onClose","React","Box","role","borderRadius","className","styles","container","getClassNames","Columns","space","alignY","Column","width","AlertIcon","paddingY","paddingRight","undefined","Button","variant","size","onClick","icon","CloseIcon","style"],"mappings":";;;;;;;;;AA0BA,SAASA,KAAT,CAAe;EAAEC,EAAF;EAAMC,QAAN;EAAgBC,IAAhB;EAAsBC,UAAtB;EAAkCC;AAAlC,CAAf;EACI,oBACIC,aAAA,CAACC,GAAD;IACIN,EAAE,EAAEA;IACJO,IAAI,EAAC;iBACK;IACVC,YAAY,EAAC;IACbC,SAAS,EAAE,CAACC,MAAM,CAACC,SAAR,EAAmBC,aAAa,CAACF,MAAD,EAAS,MAAT,EAAiBR,IAAjB,CAAhC;GALf,eAOIG,aAAA,CAACQ,OAAD;IAASC,KAAK,EAAC;IAAQC,MAAM,EAAC;GAA9B,eACIV,aAAA,CAACW,MAAD;IAAQC,KAAK,EAAC;GAAd,eACIZ,aAAA,CAACa,SAAD;IAAWhB,IAAI,EAAEA;GAAjB,CADJ,CADJ,eAIIG,aAAA,CAACW,MAAD,MAAA,eACIX,aAAA,CAACC,GAAD;IACIa,QAAQ,EAAC;IACTC,YAAY,EAAEhB,OAAO,IAAI,IAAX,IAAmBD,UAAU,IAAI,IAAjC,GAAwCkB,SAAxC,GAAoD;GAFtE,EAIKpB,QAJL,CADJ,CAJJ,EAYKG,OAAO,IAAI,IAAX,IAAmBD,UAAU,IAAI,IAAjC,gBACGE,aAAA,CAACW,MAAD;IAAQC,KAAK,EAAC;GAAd,eACIZ,aAAA,CAACiB,MAAD;IACIC,OAAO,EAAC;IACRC,IAAI,EAAC;IACLC,OAAO,EAAErB;kBACGD;IACZuB,IAAI,eAAErB,aAAA,CAACsB,SAAD,MAAA;IACNC,KAAK,EAAE;;MAEH,6BAA6B;;GARrC,CADJ,CADH,GAcG,IA1BR,CAPJ,CADJ;AAsCH;;;;"}
@@ -1,34 +1,35 @@
1
- import { objectWithoutPropertiesLoose as _objectWithoutPropertiesLoose } from '../../_virtual/_rollupPluginBabelHelpers.js';
1
+ import { objectWithoutProperties as _objectWithoutProperties, objectSpread2 as _objectSpread2 } from '../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React__default from 'react';
3
3
  import { getClassNames } from '../responsive-props.js';
4
4
  import { Box } from '../box/box.js';
5
5
  import { getInitials, emailToIndex } from './utils.js';
6
6
  import styles from './avatar.module.css.js';
7
7
 
8
- var _excluded = ["user", "avatarUrl", "size", "className", "colorList", "exceptionallySetClassName"];
9
- var AVATAR_COLORS = ['#fcc652', '#e9952c', '#e16b2d', '#d84b40', '#e8435a', '#e5198a', '#ad3889', '#86389c', '#a8a8a8', '#98be2f', '#5d9d50', '#5f9f85', '#5bbcb6', '#32a3bf', '#2bafeb', '#2d88c3', '#3863cc', '#5e5e5e'];
8
+ const _excluded = ["user", "avatarUrl", "size", "className", "colorList", "exceptionallySetClassName"];
9
+ const AVATAR_COLORS = ['#fcc652', '#e9952c', '#e16b2d', '#d84b40', '#e8435a', '#e5198a', '#ad3889', '#86389c', '#a8a8a8', '#98be2f', '#5d9d50', '#5f9f85', '#5bbcb6', '#32a3bf', '#2bafeb', '#2d88c3', '#3863cc', '#5e5e5e'];
10
10
 
11
11
  function Avatar(_ref) {
12
- var user = _ref.user,
13
- avatarUrl = _ref.avatarUrl,
14
- _ref$size = _ref.size,
15
- size = _ref$size === void 0 ? 'l' : _ref$size,
16
- className = _ref.className,
17
- _ref$colorList = _ref.colorList,
18
- colorList = _ref$colorList === void 0 ? AVATAR_COLORS : _ref$colorList,
19
- exceptionallySetClassName = _ref.exceptionallySetClassName,
20
- props = _objectWithoutPropertiesLoose(_ref, _excluded);
12
+ let {
13
+ user,
14
+ avatarUrl,
15
+ size = 'l',
16
+ className,
17
+ colorList = AVATAR_COLORS,
18
+ exceptionallySetClassName
19
+ } = _ref,
20
+ props = _objectWithoutProperties(_ref, _excluded);
21
21
 
22
- var userInitials = getInitials(user.name) || getInitials(user.email);
23
- var avatarSize = size ? size : 'l';
24
- var style = avatarUrl ? {
22
+ const userInitials = getInitials(user.name) || getInitials(user.email);
23
+ const avatarSize = size ? size : 'l';
24
+ const style = avatarUrl ? {
25
25
  backgroundImage: "url(" + avatarUrl + ")",
26
- textIndent: '-9999px'
26
+ textIndent: '-9999px' // hide the initials
27
+
27
28
  } : {
28
29
  backgroundColor: colorList[emailToIndex(user.email, colorList.length)]
29
30
  };
30
- var sizeClassName = getClassNames(styles, 'size', avatarSize);
31
- return /*#__PURE__*/React__default.createElement(Box, Object.assign({
31
+ const sizeClassName = getClassNames(styles, 'size', avatarSize);
32
+ return /*#__PURE__*/React__default.createElement(Box, _objectSpread2({
32
33
  className: [className, styles.avatar, sizeClassName, exceptionallySetClassName],
33
34
  style: style
34
35
  }, props), userInitials);
@@ -1 +1 @@
1
- {"version":3,"file":"avatar.js","sources":["../../../src/new-components/avatar/avatar.tsx"],"sourcesContent":["import React from 'react'\n\nimport { getInitials, emailToIndex } from './utils'\n\nimport { getClassNames, ResponsiveProp } from '../responsive-props'\nimport styles from './avatar.module.css'\nimport { Box } from '../box'\n\nconst AVATAR_COLORS = [\n '#fcc652',\n '#e9952c',\n '#e16b2d',\n '#d84b40',\n '#e8435a',\n '#e5198a',\n '#ad3889',\n '#86389c',\n '#a8a8a8',\n '#98be2f',\n '#5d9d50',\n '#5f9f85',\n '#5bbcb6',\n '#32a3bf',\n '#2bafeb',\n '#2d88c3',\n '#3863cc',\n '#5e5e5e',\n]\n\ntype AvatarSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl'\n\ntype Props = {\n /** @deprecated Please use `exceptionallySetClassName` */\n className?: string\n exceptionallySetClassName?: string\n /** @deprecated */\n colorList?: string[]\n size?: ResponsiveProp<AvatarSize>\n avatarUrl?: string\n user: { name?: string; email: string }\n}\n\nfunction Avatar({\n user,\n avatarUrl,\n size = 'l',\n className,\n colorList = AVATAR_COLORS,\n exceptionallySetClassName,\n ...props\n}: Props) {\n const userInitials = getInitials(user.name) || getInitials(user.email)\n const avatarSize = size ? size : 'l'\n\n const style = avatarUrl\n ? {\n backgroundImage: `url(${avatarUrl})`,\n textIndent: '-9999px', // hide the initials\n }\n : {\n backgroundColor: colorList[emailToIndex(user.email, colorList.length)],\n }\n\n const sizeClassName = getClassNames(styles, 'size', avatarSize)\n\n return (\n <Box\n className={[className, styles.avatar, sizeClassName, exceptionallySetClassName]}\n style={style}\n {...props}\n >\n {userInitials}\n </Box>\n )\n}\nAvatar.displayName = 'Avatar'\n\nexport { Avatar }\n"],"names":["AVATAR_COLORS","Avatar","user","avatarUrl","size","className","colorList","exceptionallySetClassName","props","userInitials","getInitials","name","email","avatarSize","style","backgroundImage","textIndent","backgroundColor","emailToIndex","length","sizeClassName","getClassNames","styles","React","Box","avatar","displayName"],"mappings":";;;;;;;;AAQA,IAAMA,aAAa,GAAG,CAClB,SADkB,EAElB,SAFkB,EAGlB,SAHkB,EAIlB,SAJkB,EAKlB,SALkB,EAMlB,SANkB,EAOlB,SAPkB,EAQlB,SARkB,EASlB,SATkB,EAUlB,SAVkB,EAWlB,SAXkB,EAYlB,SAZkB,EAalB,SAbkB,EAclB,SAdkB,EAelB,SAfkB,EAgBlB,SAhBkB,EAiBlB,SAjBkB,EAkBlB,SAlBkB,CAAtB;;AAkCA,SAASC,MAAT;MACIC,YAAAA;MACAC,iBAAAA;uBACAC;MAAAA,8BAAO;MACPC,iBAAAA;4BACAC;MAAAA,wCAAYN;MACZO,iCAAAA;MACGC;;AAEH,MAAMC,YAAY,GAAGC,WAAW,CAACR,IAAI,CAACS,IAAN,CAAX,IAA0BD,WAAW,CAACR,IAAI,CAACU,KAAN,CAA1D;AACA,MAAMC,UAAU,GAAGT,IAAI,GAAGA,IAAH,GAAU,GAAjC;AAEA,MAAMU,KAAK,GAAGX,SAAS,GACjB;AACIY,IAAAA,eAAe,WAASZ,SAAT,MADnB;AAEIa,IAAAA,UAAU,EAAE;AAFhB,GADiB,GAKjB;AACIC,IAAAA,eAAe,EAAEX,SAAS,CAACY,YAAY,CAAChB,IAAI,CAACU,KAAN,EAAaN,SAAS,CAACa,MAAvB,CAAb;AAD9B,GALN;AASA,MAAMC,aAAa,GAAGC,aAAa,CAACC,MAAD,EAAS,MAAT,EAAiBT,UAAjB,CAAnC;AAEA,sBACIU,4BAAA,CAACC,GAAD;AACInB,IAAAA,SAAS,EAAE,CAACA,SAAD,EAAYiB,MAAM,CAACG,MAAnB,EAA2BL,aAA3B,EAA0Cb,yBAA1C;AACXO,IAAAA,KAAK,EAAEA;KACHN,MAHR,EAKKC,YALL,CADJ;AASH;;AACDR,MAAM,CAACyB,WAAP,GAAqB,QAArB;;;;"}
1
+ {"version":3,"file":"avatar.js","sources":["../../../src/new-components/avatar/avatar.tsx"],"sourcesContent":["import React from 'react'\n\nimport { getInitials, emailToIndex } from './utils'\n\nimport { getClassNames, ResponsiveProp } from '../responsive-props'\nimport styles from './avatar.module.css'\nimport { Box } from '../box'\n\nconst AVATAR_COLORS = [\n '#fcc652',\n '#e9952c',\n '#e16b2d',\n '#d84b40',\n '#e8435a',\n '#e5198a',\n '#ad3889',\n '#86389c',\n '#a8a8a8',\n '#98be2f',\n '#5d9d50',\n '#5f9f85',\n '#5bbcb6',\n '#32a3bf',\n '#2bafeb',\n '#2d88c3',\n '#3863cc',\n '#5e5e5e',\n]\n\ntype AvatarSize = 'xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl' | 'xxxl'\n\ntype Props = {\n /** @deprecated Please use `exceptionallySetClassName` */\n className?: string\n exceptionallySetClassName?: string\n /** @deprecated */\n colorList?: string[]\n size?: ResponsiveProp<AvatarSize>\n avatarUrl?: string\n user: { name?: string; email: string }\n}\n\nfunction Avatar({\n user,\n avatarUrl,\n size = 'l',\n className,\n colorList = AVATAR_COLORS,\n exceptionallySetClassName,\n ...props\n}: Props) {\n const userInitials = getInitials(user.name) || getInitials(user.email)\n const avatarSize = size ? size : 'l'\n\n const style = avatarUrl\n ? {\n backgroundImage: `url(${avatarUrl})`,\n textIndent: '-9999px', // hide the initials\n }\n : {\n backgroundColor: colorList[emailToIndex(user.email, colorList.length)],\n }\n\n const sizeClassName = getClassNames(styles, 'size', avatarSize)\n\n return (\n <Box\n className={[className, styles.avatar, sizeClassName, exceptionallySetClassName]}\n style={style}\n {...props}\n >\n {userInitials}\n </Box>\n )\n}\nAvatar.displayName = 'Avatar'\n\nexport { Avatar }\n"],"names":["AVATAR_COLORS","Avatar","user","avatarUrl","size","className","colorList","exceptionallySetClassName","props","userInitials","getInitials","name","email","avatarSize","style","backgroundImage","textIndent","backgroundColor","emailToIndex","length","sizeClassName","getClassNames","styles","React","Box","avatar","displayName"],"mappings":";;;;;;;;AAQA,MAAMA,aAAa,GAAG,CAClB,SADkB,EAElB,SAFkB,EAGlB,SAHkB,EAIlB,SAJkB,EAKlB,SALkB,EAMlB,SANkB,EAOlB,SAPkB,EAQlB,SARkB,EASlB,SATkB,EAUlB,SAVkB,EAWlB,SAXkB,EAYlB,SAZkB,EAalB,SAbkB,EAclB,SAdkB,EAelB,SAfkB,EAgBlB,SAhBkB,EAiBlB,SAjBkB,EAkBlB,SAlBkB,CAAtB;;AAkCA,SAASC,MAAT;MAAgB;IACZC,IADY;IAEZC,SAFY;IAGZC,IAAI,GAAG,GAHK;IAIZC,SAJY;IAKZC,SAAS,GAAGN,aALA;IAMZO;;MACGC;;EAEH,MAAMC,YAAY,GAAGC,WAAW,CAACR,IAAI,CAACS,IAAN,CAAX,IAA0BD,WAAW,CAACR,IAAI,CAACU,KAAN,CAA1D;EACA,MAAMC,UAAU,GAAGT,IAAI,GAAGA,IAAH,GAAU,GAAjC;EAEA,MAAMU,KAAK,GAAGX,SAAS,GACjB;IACIY,eAAe,WAASZ,SAAT,MADnB;IAEIa,UAAU,EAAE,SAFhB;;GADiB,GAKjB;IACIC,eAAe,EAAEX,SAAS,CAACY,YAAY,CAAChB,IAAI,CAACU,KAAN,EAAaN,SAAS,CAACa,MAAvB,CAAb;GANpC;EASA,MAAMC,aAAa,GAAGC,aAAa,CAACC,MAAD,EAAS,MAAT,EAAiBT,UAAjB,CAAnC;EAEA,oBACIU,4BAAA,CAACC,GAAD;IACInB,SAAS,EAAE,CAACA,SAAD,EAAYiB,MAAM,CAACG,MAAnB,EAA2BL,aAA3B,EAA0Cb,yBAA1C,CADf;IAEIO,KAAK,EAAEA;KACHN,KAHR,GAKKC,YALL,CADJ;AASH;;AACDR,MAAM,CAACyB,WAAP,GAAqB,QAArB;;;;"}
@@ -1,24 +1,27 @@
1
1
  function getInitials(name) {
2
+ var _initials;
3
+
2
4
  if (!name) {
3
5
  return '';
4
6
  }
5
7
 
6
- var seed = name.trim().split(' ');
7
- var firstInitial = seed[0];
8
- var lastInitial = seed[seed.length - 1];
9
- var initials = firstInitial[0]; // Better readable this way.
10
- // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
8
+ const seed = name.trim().split(' ');
9
+ const firstInitial = seed[0];
10
+ const lastInitial = seed[seed.length - 1];
11
+ let initials = firstInitial == null ? void 0 : firstInitial[0];
11
12
 
12
- if (firstInitial[0] !== lastInitial[0]) {
13
+ if (firstInitial != null && lastInitial != null && initials != null && // Better readable this way.
14
+ // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with
15
+ firstInitial[0] !== lastInitial[0]) {
13
16
  initials += lastInitial[0];
14
17
  }
15
18
 
16
- return initials.toUpperCase();
19
+ return (_initials = initials) == null ? void 0 : _initials.toUpperCase();
17
20
  }
18
21
 
19
22
  function emailToIndex(email, maxIndex) {
20
- var seed = email.split('@')[0];
21
- var hash = seed.charCodeAt(0) + seed.charCodeAt(seed.length - 1) || 0;
23
+ const seed = email.split('@')[0];
24
+ const hash = seed ? seed.charCodeAt(0) + seed.charCodeAt(seed.length - 1) || 0 : 0;
22
25
  return hash % maxIndex;
23
26
  }
24
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../src/new-components/avatar/utils.ts"],"sourcesContent":["function getInitials(name?: string) {\n if (!name) {\n return ''\n }\n\n const seed = name.trim().split(' ')\n const firstInitial = seed[0]\n const lastInitial = seed[seed.length - 1]\n\n let initials = firstInitial[0]\n // Better readable this way.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n if (firstInitial[0] !== lastInitial[0]) {\n initials += lastInitial[0]\n }\n return initials.toUpperCase()\n}\n\nfunction emailToIndex(email: string, maxIndex: number) {\n const seed = email.split('@')[0]\n const hash = seed.charCodeAt(0) + seed.charCodeAt(seed.length - 1) || 0\n return hash % maxIndex\n}\n\nexport { getInitials, emailToIndex }\n"],"names":["getInitials","name","seed","trim","split","firstInitial","lastInitial","length","initials","toUpperCase","emailToIndex","email","maxIndex","hash","charCodeAt"],"mappings":"AAAA,SAASA,WAAT,CAAqBC,IAArB;AACI,MAAI,CAACA,IAAL,EAAW;AACP,WAAO,EAAP;AACH;;AAED,MAAMC,IAAI,GAAGD,IAAI,CAACE,IAAL,GAAYC,KAAZ,CAAkB,GAAlB,CAAb;AACA,MAAMC,YAAY,GAAGH,IAAI,CAAC,CAAD,CAAzB;AACA,MAAMI,WAAW,GAAGJ,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAAxB;AAEA,MAAIC,QAAQ,GAAGH,YAAY,CAAC,CAAD,CAA3B;AAEA;;AACA,MAAIA,YAAY,CAAC,CAAD,CAAZ,KAAoBC,WAAW,CAAC,CAAD,CAAnC,EAAwC;AACpCE,IAAAA,QAAQ,IAAIF,WAAW,CAAC,CAAD,CAAvB;AACH;;AACD,SAAOE,QAAQ,CAACC,WAAT,EAAP;AACH;;AAED,SAASC,YAAT,CAAsBC,KAAtB,EAAqCC,QAArC;AACI,MAAMV,IAAI,GAAGS,KAAK,CAACP,KAAN,CAAY,GAAZ,EAAiB,CAAjB,CAAb;AACA,MAAMS,IAAI,GAAGX,IAAI,CAACY,UAAL,CAAgB,CAAhB,IAAqBZ,IAAI,CAACY,UAAL,CAAgBZ,IAAI,CAACK,MAAL,GAAc,CAA9B,CAArB,IAAyD,CAAtE;AACA,SAAOM,IAAI,GAAGD,QAAd;AACH;;;;"}
1
+ {"version":3,"file":"utils.js","sources":["../../../src/new-components/avatar/utils.ts"],"sourcesContent":["function getInitials(name?: string) {\n if (!name) {\n return ''\n }\n\n const seed = name.trim().split(' ')\n const firstInitial = seed[0]\n const lastInitial = seed[seed.length - 1]\n\n let initials = firstInitial?.[0]\n if (\n firstInitial != null &&\n lastInitial != null &&\n initials != null &&\n // Better readable this way.\n // eslint-disable-next-line @typescript-eslint/prefer-string-starts-ends-with\n firstInitial[0] !== lastInitial[0]\n ) {\n initials += lastInitial[0]\n }\n return initials?.toUpperCase()\n}\n\nfunction emailToIndex(email: string, maxIndex: number) {\n const seed = email.split('@')[0]\n const hash = seed ? seed.charCodeAt(0) + seed.charCodeAt(seed.length - 1) || 0 : 0\n return hash % maxIndex\n}\n\nexport { getInitials, emailToIndex }\n"],"names":["getInitials","name","seed","trim","split","firstInitial","lastInitial","length","initials","toUpperCase","emailToIndex","email","maxIndex","hash","charCodeAt"],"mappings":"AAAA,SAASA,WAAT,CAAqBC,IAArB;;;EACI,IAAI,CAACA,IAAL,EAAW;IACP,OAAO,EAAP;;;EAGJ,MAAMC,IAAI,GAAGD,IAAI,CAACE,IAAL,GAAYC,KAAZ,CAAkB,GAAlB,CAAb;EACA,MAAMC,YAAY,GAAGH,IAAI,CAAC,CAAD,CAAzB;EACA,MAAMI,WAAW,GAAGJ,IAAI,CAACA,IAAI,CAACK,MAAL,GAAc,CAAf,CAAxB;EAEA,IAAIC,QAAQ,GAAGH,YAAH,oBAAGA,YAAY,CAAG,CAAH,CAA3B;;EACA,IACIA,YAAY,IAAI,IAAhB,IACAC,WAAW,IAAI,IADf,IAEAE,QAAQ,IAAI,IAFZ;;EAKAH,YAAY,CAAC,CAAD,CAAZ,KAAoBC,WAAW,CAAC,CAAD,CANnC,EAOE;IACEE,QAAQ,IAAIF,WAAW,CAAC,CAAD,CAAvB;;;EAEJ,oBAAOE,QAAP,qBAAO,UAAUC,WAAV,EAAP;AACH;;AAED,SAASC,YAAT,CAAsBC,KAAtB,EAAqCC,QAArC;EACI,MAAMV,IAAI,GAAGS,KAAK,CAACP,KAAN,CAAY,GAAZ,EAAiB,CAAjB,CAAb;EACA,MAAMS,IAAI,GAAGX,IAAI,GAAGA,IAAI,CAACY,UAAL,CAAgB,CAAhB,IAAqBZ,IAAI,CAACY,UAAL,CAAgBZ,IAAI,CAACK,MAAL,GAAc,CAA9B,CAArB,IAAyD,CAA5D,GAAgE,CAAjF;EACA,OAAOM,IAAI,GAAGD,QAAd;AACH;;;;"}