@doist/reactist 29.1.0 → 29.1.2

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 (227) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/reactist.cjs.development.js +6749 -1829
  3. package/dist/reactist.cjs.development.js.map +1 -1
  4. package/dist/reactist.cjs.production.min.js +1 -1
  5. package/dist/reactist.cjs.production.min.js.map +1 -1
  6. package/es/avatar/avatar.js +106 -36
  7. package/es/avatar/avatar.js.map +1 -1
  8. package/es/avatar/utils.js +17 -19
  9. package/es/avatar/utils.js.map +1 -1
  10. package/es/badge/badge.js +50 -6
  11. package/es/badge/badge.js.map +1 -1
  12. package/es/banner/banner.js +384 -41
  13. package/es/banner/banner.js.map +1 -1
  14. package/es/base-field/base-field.js +367 -77
  15. package/es/base-field/base-field.js.map +1 -1
  16. package/es/box/box.js +139 -61
  17. package/es/box/box.js.map +1 -1
  18. package/es/button/button.js +346 -36
  19. package/es/button/button.js.map +1 -1
  20. package/es/checkbox-field/checkbox-field.js +71 -48
  21. package/es/checkbox-field/checkbox-field.js.map +1 -1
  22. package/es/checkbox-field/checkbox-icon.js +88 -28
  23. package/es/checkbox-field/checkbox-icon.js.map +1 -1
  24. package/es/checkbox-field/use-fork-ref.js +15 -20
  25. package/es/checkbox-field/use-fork-ref.js.map +1 -1
  26. package/es/columns/columns.js +46 -23
  27. package/es/columns/columns.js.map +1 -1
  28. package/es/components/color-picker/color-picker.js +190 -46
  29. package/es/components/color-picker/color-picker.js.map +1 -1
  30. package/es/components/deprecated-button/deprecated-button.js +102 -9
  31. package/es/components/deprecated-button/deprecated-button.js.map +1 -1
  32. package/es/components/deprecated-button/index.js +5 -2
  33. package/es/components/deprecated-button/index.js.map +1 -1
  34. package/es/components/deprecated-dropdown/dropdown.js +234 -134
  35. package/es/components/deprecated-dropdown/dropdown.js.map +1 -1
  36. package/es/components/deprecated-dropdown/index.js +4 -1
  37. package/es/components/deprecated-dropdown/index.js.map +1 -1
  38. package/es/components/deprecated-input/index.js +5 -2
  39. package/es/components/deprecated-input/index.js.map +1 -1
  40. package/es/components/deprecated-input/input.js +27 -4
  41. package/es/components/deprecated-input/input.js.map +1 -1
  42. package/es/components/deprecated-select/select.js +110 -7
  43. package/es/components/deprecated-select/select.js.map +1 -1
  44. package/es/components/key-capturer/key-capturer.js +190 -137
  45. package/es/components/key-capturer/key-capturer.js.map +1 -1
  46. package/es/components/keyboard-shortcut/keyboard-shortcut.js +65 -45
  47. package/es/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  48. package/es/components/progress-bar/progress-bar.js +61 -9
  49. package/es/components/progress-bar/progress-bar.js.map +1 -1
  50. package/es/components/time/index.js +5 -2
  51. package/es/components/time/index.js.map +1 -1
  52. package/es/components/time/time-utils.js +59 -53
  53. package/es/components/time/time-utils.js.map +1 -1
  54. package/es/components/time/time.js +94 -91
  55. package/es/components/time/time.js.map +1 -1
  56. package/es/divider/divider.js +44 -5
  57. package/es/divider/divider.js.map +1 -1
  58. package/es/heading/heading.js +122 -20
  59. package/es/heading/heading.js.map +1 -1
  60. package/es/hidden/hidden.js +36 -30
  61. package/es/hidden/hidden.js.map +1 -1
  62. package/es/hidden-visually/hidden-visually.js +9 -4
  63. package/es/hidden-visually/hidden-visually.js.map +1 -1
  64. package/es/icons/alert-icon.js +145 -18
  65. package/es/icons/alert-icon.js.map +1 -1
  66. package/es/icons/banner-icon.js +213 -25
  67. package/es/icons/banner-icon.js.map +1 -1
  68. package/es/icons/close-icon.js +26 -3
  69. package/es/icons/close-icon.js.map +1 -1
  70. package/es/icons/password-hidden-icon.js +40 -6
  71. package/es/icons/password-hidden-icon.js.map +1 -1
  72. package/es/icons/password-visible-icon.js +33 -5
  73. package/es/icons/password-visible-icon.js.map +1 -1
  74. package/es/index.js +9 -9
  75. package/es/inline/inline.js +24 -9
  76. package/es/inline/inline.js.map +1 -1
  77. package/es/loading/loading.js +63 -17
  78. package/es/loading/loading.js.map +1 -1
  79. package/es/menu/menu.js +469 -92
  80. package/es/menu/menu.js.map +1 -1
  81. package/es/modal/modal.js +675 -112
  82. package/es/modal/modal.js.map +1 -1
  83. package/es/notice/notice.js +77 -10
  84. package/es/notice/notice.js.map +1 -1
  85. package/es/password-field/password-field.js +89 -11
  86. package/es/password-field/password-field.js.map +1 -1
  87. package/es/prose/prose.js +48 -9
  88. package/es/prose/prose.js.map +1 -1
  89. package/es/select-field/select-field.js +150 -16
  90. package/es/select-field/select-field.js.map +1 -1
  91. package/es/spinner/spinner.js +39 -6
  92. package/es/spinner/spinner.js.map +1 -1
  93. package/es/stack/stack.js +29 -17
  94. package/es/stack/stack.js.map +1 -1
  95. package/es/switch-field/switch-field.js +225 -42
  96. package/es/switch-field/switch-field.js.map +1 -1
  97. package/es/tabs/tabs.js +207 -109
  98. package/es/tabs/tabs.js.map +1 -1
  99. package/es/text/text.js +27 -17
  100. package/es/text/text.js.map +1 -1
  101. package/es/text-area/text-area.js +264 -54
  102. package/es/text-area/text-area.js.map +1 -1
  103. package/es/text-field/text-field.js +204 -31
  104. package/es/text-field/text-field.js.map +1 -1
  105. package/es/text-link/text-link.js +21 -10
  106. package/es/text-link/text-link.js.map +1 -1
  107. package/es/toast/static-toast.js +143 -25
  108. package/es/toast/static-toast.js.map +1 -1
  109. package/es/toast/toast-animation.js +159 -109
  110. package/es/toast/toast-animation.js.map +1 -1
  111. package/es/toast/use-toasts.js +309 -84
  112. package/es/toast/use-toasts.js.map +1 -1
  113. package/es/tooltip/tooltip.js +88 -32
  114. package/es/tooltip/tooltip.js.map +1 -1
  115. package/es/utils/common-helpers.js +12 -11
  116. package/es/utils/common-helpers.js.map +1 -1
  117. package/es/utils/polymorphism.js +84 -1
  118. package/es/utils/polymorphism.js.map +1 -1
  119. package/es/utils/responsive-props.js +43 -32
  120. package/es/utils/responsive-props.js.map +1 -1
  121. package/lib/avatar/avatar.js +109 -35
  122. package/lib/avatar/avatar.js.map +1 -1
  123. package/lib/avatar/utils.js +17 -19
  124. package/lib/avatar/utils.js.map +1 -1
  125. package/lib/badge/badge.js +53 -5
  126. package/lib/badge/badge.js.map +1 -1
  127. package/lib/banner/banner.js +385 -38
  128. package/lib/banner/banner.js.map +1 -1
  129. package/lib/base-field/base-field.js +366 -73
  130. package/lib/base-field/base-field.js.map +1 -1
  131. package/lib/box/box.js +141 -61
  132. package/lib/box/box.js.map +1 -1
  133. package/lib/button/button.js +347 -35
  134. package/lib/button/button.js.map +1 -1
  135. package/lib/checkbox-field/checkbox-field.js +73 -46
  136. package/lib/checkbox-field/checkbox-field.js.map +1 -1
  137. package/lib/checkbox-field/checkbox-icon.js +92 -28
  138. package/lib/checkbox-field/checkbox-icon.js.map +1 -1
  139. package/lib/checkbox-field/use-fork-ref.js +15 -20
  140. package/lib/checkbox-field/use-fork-ref.js.map +1 -1
  141. package/lib/columns/columns.js +49 -22
  142. package/lib/columns/columns.js.map +1 -1
  143. package/lib/components/color-picker/color-picker.js +189 -45
  144. package/lib/components/color-picker/color-picker.js.map +1 -1
  145. package/lib/components/deprecated-button/deprecated-button.js +104 -9
  146. package/lib/components/deprecated-button/deprecated-button.js.map +1 -1
  147. package/lib/components/deprecated-dropdown/dropdown.js +235 -133
  148. package/lib/components/deprecated-dropdown/dropdown.js.map +1 -1
  149. package/lib/components/deprecated-input/input.js +28 -4
  150. package/lib/components/deprecated-input/input.js.map +1 -1
  151. package/lib/components/deprecated-select/select.js +112 -7
  152. package/lib/components/deprecated-select/select.js.map +1 -1
  153. package/lib/components/key-capturer/key-capturer.js +188 -135
  154. package/lib/components/key-capturer/key-capturer.js.map +1 -1
  155. package/lib/components/keyboard-shortcut/keyboard-shortcut.js +67 -45
  156. package/lib/components/keyboard-shortcut/keyboard-shortcut.js.map +1 -1
  157. package/lib/components/progress-bar/progress-bar.js +60 -8
  158. package/lib/components/progress-bar/progress-bar.js.map +1 -1
  159. package/lib/components/time/time-utils.js +59 -53
  160. package/lib/components/time/time-utils.js.map +1 -1
  161. package/lib/components/time/time.js +93 -90
  162. package/lib/components/time/time.js.map +1 -1
  163. package/lib/divider/divider.js +47 -4
  164. package/lib/divider/divider.js.map +1 -1
  165. package/lib/heading/heading.js +125 -19
  166. package/lib/heading/heading.js.map +1 -1
  167. package/lib/hidden/hidden.js +39 -29
  168. package/lib/hidden/hidden.js.map +1 -1
  169. package/lib/hidden-visually/hidden-visually.js +11 -3
  170. package/lib/hidden-visually/hidden-visually.js.map +1 -1
  171. package/lib/icons/alert-icon.js +149 -18
  172. package/lib/icons/alert-icon.js.map +1 -1
  173. package/lib/icons/banner-icon.js +217 -25
  174. package/lib/icons/banner-icon.js.map +1 -1
  175. package/lib/icons/close-icon.js +29 -3
  176. package/lib/icons/close-icon.js.map +1 -1
  177. package/lib/icons/password-hidden-icon.js +43 -6
  178. package/lib/icons/password-hidden-icon.js.map +1 -1
  179. package/lib/icons/password-visible-icon.js +36 -5
  180. package/lib/icons/password-visible-icon.js.map +1 -1
  181. package/lib/inline/inline.js +27 -8
  182. package/lib/inline/inline.js.map +1 -1
  183. package/lib/loading/loading.js +67 -17
  184. package/lib/loading/loading.js.map +1 -1
  185. package/lib/menu/menu.js +471 -91
  186. package/lib/menu/menu.js.map +1 -1
  187. package/lib/modal/modal.js +671 -106
  188. package/lib/modal/modal.js.map +1 -1
  189. package/lib/notice/notice.js +75 -8
  190. package/lib/notice/notice.js.map +1 -1
  191. package/lib/password-field/password-field.js +92 -10
  192. package/lib/password-field/password-field.js.map +1 -1
  193. package/lib/prose/prose.js +51 -8
  194. package/lib/prose/prose.js.map +1 -1
  195. package/lib/select-field/select-field.js +152 -14
  196. package/lib/select-field/select-field.js.map +1 -1
  197. package/lib/spinner/spinner.js +39 -6
  198. package/lib/spinner/spinner.js.map +1 -1
  199. package/lib/stack/stack.js +29 -15
  200. package/lib/stack/stack.js.map +1 -1
  201. package/lib/switch-field/switch-field.js +225 -38
  202. package/lib/switch-field/switch-field.js.map +1 -1
  203. package/lib/tabs/tabs.js +207 -107
  204. package/lib/tabs/tabs.js.map +1 -1
  205. package/lib/text/text.js +30 -16
  206. package/lib/text/text.js.map +1 -1
  207. package/lib/text-area/text-area.js +264 -52
  208. package/lib/text-area/text-area.js.map +1 -1
  209. package/lib/text-field/text-field.js +207 -30
  210. package/lib/text-field/text-field.js.map +1 -1
  211. package/lib/text-link/text-link.js +24 -9
  212. package/lib/text-link/text-link.js.map +1 -1
  213. package/lib/toast/static-toast.js +142 -22
  214. package/lib/toast/static-toast.js.map +1 -1
  215. package/lib/toast/toast-animation.js +158 -108
  216. package/lib/toast/toast-animation.js.map +1 -1
  217. package/lib/toast/use-toasts.js +310 -82
  218. package/lib/toast/use-toasts.js.map +1 -1
  219. package/lib/tooltip/tooltip.js +87 -31
  220. package/lib/tooltip/tooltip.js.map +1 -1
  221. package/lib/utils/common-helpers.js +12 -11
  222. package/lib/utils/common-helpers.js.map +1 -1
  223. package/lib/utils/polymorphism.js +84 -1
  224. package/lib/utils/polymorphism.js.map +1 -1
  225. package/lib/utils/responsive-props.js +43 -32
  226. package/lib/utils/responsive-props.js.map +1 -1
  227. package/package.json +10 -2
@@ -1,70 +1,90 @@
1
- import { __rest, __assign } from 'tslib';
1
+ import _extends from '@babel/runtime/helpers/extends';
2
+ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
2
3
  import * as React from 'react';
3
4
  import classNames from 'classnames';
4
5
 
6
+ const _excluded = ["children", "className", "translateKey", "isMac"];
7
+
5
8
  //
6
9
  // Support for setting up how to translate modifiers globally.
7
10
  //
8
- var globalTranslateKey = function (key) { return key; };
9
- KeyboardShortcut.setTranslateKey = function (tr) {
10
- globalTranslateKey = tr;
11
+
12
+ let globalTranslateKey = key => key;
13
+ KeyboardShortcut.setTranslateKey = tr => {
14
+ globalTranslateKey = tr;
11
15
  };
12
16
  function translateKeyMac(key) {
13
- switch (key.toLowerCase()) {
14
- case 'cmd':
15
- case 'mod':
16
- return '⌘';
17
- case 'control':
18
- case 'ctrl':
19
- return '⌃';
20
- case 'alt':
21
- return '⌥';
22
- case 'shift':
23
- return '⇧';
24
- case 'space':
25
- return '␣';
26
- default:
27
- return key;
28
- }
17
+ switch (key.toLowerCase()) {
18
+ case 'cmd':
19
+ case 'mod':
20
+ return '⌘';
21
+ case 'control':
22
+ case 'ctrl':
23
+ return '⌃';
24
+ case 'alt':
25
+ return '⌥';
26
+ case 'shift':
27
+ return '⇧';
28
+ case 'space':
29
+ return '␣';
30
+ default:
31
+ return key;
32
+ }
29
33
  }
34
+
30
35
  //
31
36
  // Some helpers
32
37
  //
38
+
33
39
  function capitalize(str) {
34
- return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
40
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
35
41
  }
36
42
  function hasModifiers(str) {
37
- return /\b(mod|cmd|ctrl|control|alt|shift)\b/i.test(str);
43
+ return /\b(mod|cmd|ctrl|control|alt|shift)\b/i.test(str);
38
44
  }
39
45
  function isSpecialKey(str) {
40
- return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str);
46
+ return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str);
41
47
  }
42
48
  function parseKeys(shortcut, isMac, translateKey) {
43
- var t = isMac ? translateKeyMac : translateKey;
44
- var _hasModifiers = hasModifiers(shortcut);
45
- function mapIndividualKey(str) {
46
- if (isSpecialKey(str)) {
47
- return capitalize(t(str));
48
- }
49
- if (_hasModifiers && str.length === 1) {
50
- return str.toUpperCase();
51
- }
52
- return str;
49
+ const t = isMac ? translateKeyMac : translateKey;
50
+ const _hasModifiers = hasModifiers(shortcut);
51
+ function mapIndividualKey(str) {
52
+ if (isSpecialKey(str)) {
53
+ return capitalize(t(str));
53
54
  }
54
- if (!isMac) {
55
- shortcut = shortcut.replace(/\b(mod|cmd)\b/i, 'ctrl');
55
+ if (_hasModifiers && str.length === 1) {
56
+ return str.toUpperCase();
56
57
  }
57
- return shortcut.split(/\s*\+\s*/).map(mapIndividualKey);
58
+ return str;
59
+ }
60
+ if (!isMac) {
61
+ shortcut = shortcut.replace(/\b(mod|cmd)\b/i, 'ctrl');
62
+ }
63
+ return shortcut.split(/\s*\+\s*/).map(mapIndividualKey);
58
64
  }
59
- function KeyboardShortcut(_a) {
60
- var _b, _c;
61
- var children = _a.children, className = _a.className, _d = _a.translateKey, translateKey = _d === void 0 ? globalTranslateKey : _d, _e = _a.isMac, isMac = _e === void 0 ? (_c = (_b = navigator.platform) === null || _b === void 0 ? void 0 : _b.toUpperCase().includes('MAC')) !== null && _c !== void 0 ? _c : false : _e, props = __rest(_a, ["children", "className", "translateKey", "isMac"]);
62
- var shortcuts = typeof children === 'string' ? [children] : children;
63
- return (React.createElement("span", __assign({ className: classNames('reactist_keyboard_shortcut', className, {
64
- 'reactist_keyboard_shortcut--macos': isMac,
65
- }) }, props), shortcuts.map(function (shortcut, i) { return (React.createElement(React.Fragment, { key: i },
66
- i === 0 ? null : ', ',
67
- React.createElement("kbd", null, parseKeys(shortcut, isMac, translateKey).map(function (key, j) { return (React.createElement("kbd", { key: j }, key)); })))); })));
65
+
66
+ //
67
+ // The KeyboardShortcut component
68
+ //
69
+
70
+ function KeyboardShortcut(_ref) {
71
+ let {
72
+ children,
73
+ className,
74
+ translateKey = globalTranslateKey,
75
+ isMac = navigator.platform?.toUpperCase().includes('MAC') ?? false
76
+ } = _ref,
77
+ props = _objectWithoutProperties(_ref, _excluded);
78
+ const shortcuts = typeof children === 'string' ? [children] : children;
79
+ return /*#__PURE__*/React.createElement("span", _extends({
80
+ className: classNames('reactist_keyboard_shortcut', className, {
81
+ 'reactist_keyboard_shortcut--macos': isMac
82
+ })
83
+ }, props), shortcuts.map((shortcut, i) => /*#__PURE__*/React.createElement(React.Fragment, {
84
+ key: i
85
+ }, i === 0 ? null : ', ', /*#__PURE__*/React.createElement("kbd", null, parseKeys(shortcut, isMac, translateKey).map((key, j) => /*#__PURE__*/React.createElement("kbd", {
86
+ key: j
87
+ }, key))))));
68
88
  }
69
89
 
70
90
  export { KeyboardShortcut };
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-shortcut.js","sources":["../../../src/components/keyboard-shortcut/keyboard-shortcut.tsx"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"keyboard-shortcut.js","sources":["../../../src/components/keyboard-shortcut/keyboard-shortcut.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport classNames from 'classnames'\n\n//\n// Support for setting up how to translate modifiers globally.\n//\n\nlet globalTranslateKey = (key: string) => key\n\ntype TranslateKey = typeof globalTranslateKey\n\nKeyboardShortcut.setTranslateKey = (tr: TranslateKey) => {\n globalTranslateKey = tr\n}\n\nfunction translateKeyMac(key: string) {\n switch (key.toLowerCase()) {\n case 'cmd':\n case 'mod':\n return '⌘'\n case 'control':\n case 'ctrl':\n return '⌃'\n case 'alt':\n return '⌥'\n case 'shift':\n return '⇧'\n case 'space':\n return '␣'\n default:\n return key\n }\n}\n\n//\n// Some helpers\n//\n\nfunction capitalize(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase()\n}\n\nfunction hasModifiers(str: string) {\n return /\\b(mod|cmd|ctrl|control|alt|shift)\\b/i.test(str)\n}\n\nfunction isSpecialKey(str: string) {\n return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str)\n}\n\nfunction parseKeys(shortcut: string, isMac: boolean, translateKey: TranslateKey) {\n const t = isMac ? translateKeyMac : translateKey\n const _hasModifiers = hasModifiers(shortcut)\n\n function mapIndividualKey(str: string) {\n if (isSpecialKey(str)) {\n return capitalize(t(str))\n }\n if (_hasModifiers && str.length === 1) {\n return str.toUpperCase()\n }\n return str\n }\n\n if (!isMac) {\n shortcut = shortcut.replace(/\\b(mod|cmd)\\b/i, 'ctrl')\n }\n\n return shortcut.split(/\\s*\\+\\s*/).map(mapIndividualKey)\n}\n\n//\n// The KeyboardShortcut component\n//\n\ntype NativeSpanProps = React.DetailedHTMLProps<\n React.HTMLAttributes<HTMLSpanElement>,\n HTMLSpanElement\n>\n\ntype Props = Omit<NativeSpanProps, 'children'> & {\n /**\n * The shortcut to be represented as markup. It supports an intuitive syntax where you can\n * combine modifiers (cmd, ctrl, shift, alt) with single keys all concatenated with plus signs.\n * You can also pass various shortcuts as an array, which will be depicted separated by commas.\n */\n children: string | string[]\n /**\n * A function that allows you to change how some key names are represented. This may be useful,\n * for instance, to translate modifier names that are expressed differently in other languages\n * (e.g. `Ctrl` is named `Strg` in German).\n *\n * It defaults to a global version that leaves the key as is. You can pass your version as a\n * prop, or you can also set your own version of this global default one, so you don't need to\n * pass your own on each invocation of this component.\n *\n * ```js\n * import { KeyboardShortcut } from '@doist/reactist'\n * KeyboardShortcut.setTranslateKey = key => { ... }\n * ```\n *\n * Note: When the component detects the macOS operating system it bypasses key translation for\n * most modifiers and uses macOS-specific symbols. See the `isMac` prop for details.\n */\n translateKey?: TranslateKey\n /**\n * This prop is not meant to be passed. The component will automatically initialize it to `true`\n * if it detects that the current browser / operating system is on macOS, in which case modifier\n * keys are represented using macOS' notation (e.g. ⌘ ⌃ ⌥ ⇧).\n *\n * Though it is discouraged, if you don't want this special treatment in macOS, you can pass\n * `isMac={false}` in all invocations of this component.\n */\n isMac?: boolean\n}\n\nfunction KeyboardShortcut({\n children,\n className,\n translateKey = globalTranslateKey,\n isMac = navigator.platform?.toUpperCase().includes('MAC') ?? false,\n ...props\n}: Props) {\n const shortcuts = typeof children === 'string' ? [children] : children\n return (\n <span\n className={classNames('reactist_keyboard_shortcut', className, {\n 'reactist_keyboard_shortcut--macos': isMac,\n })}\n {...props}\n >\n {shortcuts.map((shortcut, i) => (\n <React.Fragment key={i}>\n {i === 0 ? null : ', '}\n <kbd>\n {parseKeys(shortcut, isMac, translateKey).map((key, j) => (\n <kbd key={j}>{key}</kbd>\n ))}\n </kbd>\n </React.Fragment>\n ))}\n </span>\n )\n}\n\nexport { KeyboardShortcut }\n"],"names":["globalTranslateKey","key","KeyboardShortcut","setTranslateKey","tr","translateKeyMac","toLowerCase","capitalize","str","charAt","toUpperCase","slice","hasModifiers","test","isSpecialKey","parseKeys","shortcut","isMac","translateKey","t","_hasModifiers","mapIndividualKey","length","replace","split","map","_ref","children","className","navigator","platform","includes","props","_objectWithoutProperties","_excluded","shortcuts","React","createElement","_extends","classNames","i","Fragment","j"],"mappings":"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"}
@@ -1,16 +1,68 @@
1
+ import { c } from 'react-compiler-runtime';
1
2
  import * as React from 'react';
2
3
  import classNames from 'classnames';
3
- import { HiddenVisually } from '../../hidden-visually/hidden-visually.js';
4
4
  import modules_a0e70af1 from './progress-bar.module.css.js';
5
+ import { HiddenVisually } from '../../hidden-visually/hidden-visually.js';
5
6
 
6
- function ProgressBar(_a) {
7
- var _b = _a.fillPercentage, fillPercentage = _b === void 0 ? 0 : _b, className = _a.className, ariaValuetext = _a["aria-valuetext"];
8
- var finalClassName = classNames(modules_a0e70af1.progressBar, className);
9
- var width = fillPercentage < 0 ? 0 : fillPercentage > 100 ? 100 : fillPercentage;
10
- return (React.createElement("div", { className: finalClassName },
11
- React.createElement("div", { className: modules_a0e70af1.inner, style: { width: "".concat(width, "%") } }),
12
- React.createElement(HiddenVisually, null,
13
- React.createElement("progress", { value: width, max: 100, "aria-valuetext": ariaValuetext !== null && ariaValuetext !== void 0 ? ariaValuetext : undefined }))));
7
+ function ProgressBar(t0) {
8
+ const $ = c(11);
9
+ const {
10
+ fillPercentage: t1,
11
+ className,
12
+ "aria-valuetext": ariaValuetext
13
+ } = t0;
14
+ const fillPercentage = t1 === undefined ? 0 : t1;
15
+ let t2;
16
+ if ($[0] !== className) {
17
+ t2 = classNames(modules_a0e70af1.progressBar, className);
18
+ $[0] = className;
19
+ $[1] = t2;
20
+ } else {
21
+ t2 = $[1];
22
+ }
23
+ const finalClassName = t2;
24
+ const width = fillPercentage < 0 ? 0 : fillPercentage > 100 ? 100 : fillPercentage;
25
+ const t3 = `${width}%`;
26
+ let t4;
27
+ if ($[2] !== t3) {
28
+ t4 = /*#__PURE__*/React.createElement("div", {
29
+ className: modules_a0e70af1.inner,
30
+ style: {
31
+ width: t3
32
+ }
33
+ });
34
+ $[2] = t3;
35
+ $[3] = t4;
36
+ } else {
37
+ t4 = $[3];
38
+ }
39
+ const t5 = ariaValuetext ?? undefined;
40
+ let t6;
41
+ if ($[4] !== t5 || $[5] !== width) {
42
+ t6 = /*#__PURE__*/React.createElement(HiddenVisually, null, /*#__PURE__*/React.createElement("progress", {
43
+ value: width,
44
+ max: 100,
45
+ "aria-valuetext": t5
46
+ }));
47
+ $[4] = t5;
48
+ $[5] = width;
49
+ $[6] = t6;
50
+ } else {
51
+ t6 = $[6];
52
+ }
53
+ let t7;
54
+ if ($[7] !== finalClassName || $[8] !== t4 || $[9] !== t6) {
55
+ t7 = /*#__PURE__*/React.createElement("div", {
56
+ className: finalClassName
57
+ }, t4, t6);
58
+ $[7] = finalClassName;
59
+ $[8] = t4;
60
+ $[9] = t6;
61
+ $[10] = t7;
62
+ } else {
63
+ t7 = $[10];
64
+ }
65
+ return t7;
14
66
  }
15
67
  ProgressBar.displayName = 'ProgressBar';
16
68
 
@@ -1 +1 @@
1
- {"version":3,"file":"progress-bar.js","sources":["../../../src/components/progress-bar/progress-bar.tsx"],"sourcesContent":[null],"names":["styles"],"mappings":";;;;;AAgBA,SAAS,WAAW,CAAC,EAAyE,EAAA;QAAvE,EAAkB,GAAA,EAAA,CAAA,cAAA,EAAlB,cAAc,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,CAAC,GAAA,EAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,EAAoB,aAAa,GAAA,EAAA,CAAA,gBAAA,CAAA,CAAA;IACjF,IAAM,cAAc,GAAG,UAAU,CAACA,gBAAM,CAAC,WAAW,EAAE,SAAS,CAAC,CAAA;IAChE,IAAM,KAAK,GAAG,cAAc,GAAG,CAAC,GAAG,CAAC,GAAG,cAAc,GAAG,GAAG,GAAG,GAAG,GAAG,cAAc,CAAA;AAClF,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,cAAc,EAAA;AAC1B,QAAA,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEA,gBAAM,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,EAAA,CAAA,MAAA,CAAG,KAAK,EAAA,GAAA,CAAG,EAAE,EAAI,CAAA;AAC/D,QAAA,KAAA,CAAA,aAAA,CAAC,cAAc,EAAA,IAAA;AACX,YAAA,KAAA,CAAA,aAAA,CAAA,UAAA,EAAA,EAAU,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAkB,gBAAA,EAAA,aAAa,aAAb,aAAa,KAAA,KAAA,CAAA,GAAb,aAAa,GAAI,SAAS,GAAI,CACnE,CACf,EACT;AACL,CAAC;AACD,WAAW,CAAC,WAAW,GAAG,aAAa;;;;"}
1
+ {"version":3,"file":"progress-bar.js","sources":["../../../src/components/progress-bar/progress-bar.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport classNames from 'classnames'\n\nimport { HiddenVisually } from '../../hidden-visually'\n\nimport styles from './progress-bar.module.css'\n\ntype Props = {\n /** Additional css class applied to the progress bar. */\n className?: string\n /** How much of the progress bar should be filled. Number between 0 and 100 inclusive. */\n fillPercentage?: number\n /** Defines the human readable text alternative for assitive technologies. */\n 'aria-valuetext'?: string\n}\nfunction ProgressBar({ fillPercentage = 0, className, 'aria-valuetext': ariaValuetext }: Props) {\n const finalClassName = classNames(styles.progressBar, className)\n const width = fillPercentage < 0 ? 0 : fillPercentage > 100 ? 100 : fillPercentage\n return (\n <div className={finalClassName}>\n <div className={styles.inner} style={{ width: `${width}%` }} />\n <HiddenVisually>\n <progress value={width} max={100} aria-valuetext={ariaValuetext ?? undefined} />\n </HiddenVisually>\n </div>\n )\n}\nProgressBar.displayName = 'ProgressBar'\n\nexport { ProgressBar }\n"],"names":["ProgressBar","t0","$","_c","fillPercentage","t1","className","ariaValuetext","undefined","t2","classNames","styles","progressBar","finalClassName","width","t3","t4","React","createElement","inner","style","t5","t6","HiddenVisually","max","t7","displayName"],"mappings":"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"}
@@ -1,3 +1,6 @@
1
- import { Time } from './time.js';
2
- export { Time as default } from './time.js';
1
+ import { Time as Time$1 } from './time.js';
2
+
3
+ var Time = Time$1;
4
+
5
+ export { Time as default };
3
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/components/time/index.ts"],"sourcesContent":["import { Time } from './time'\n\nexport default Time\n"],"names":["Time"],"mappings":";;AAEA,WAAeA,MAAI;;;;"}
@@ -2,59 +2,65 @@ import dayjs from 'dayjs';
2
2
  import LocalizedFormat from 'dayjs/plugin/localizedFormat';
3
3
 
4
4
  dayjs.extend(LocalizedFormat);
5
- var TimeUtils = {
6
- SHORT_FORMAT_CURRENT_YEAR: 'L',
7
- SHORT_FORMAT_PAST_YEAR: 'LL',
8
- LONG_FORMAT: 'LL, LT',
9
- timeAgo: function (timestamp, config) {
10
- if (config === void 0) { config = {}; }
11
- var _a = config.locale, locale = _a === void 0 ? 'en' : _a, _b = config.shortFormatCurrentYear, shortFormatCurrentYear = _b === void 0 ? this.SHORT_FORMAT_CURRENT_YEAR : _b, _c = config.shortFormatPastYear, shortFormatPastYear = _c === void 0 ? this.SHORT_FORMAT_PAST_YEAR : _c, _d = config.daysSuffix, daysSuffix = _d === void 0 ? 'd' : _d, _e = config.hoursSuffix, hoursSuffix = _e === void 0 ? 'h' : _e, _f = config.minutesSuffix, minutesSuffix = _f === void 0 ? 'm' : _f, _g = config.momentsAgo, momentsAgo = _g === void 0 ? 'moments ago' : _g;
12
- var now = dayjs();
13
- var date = dayjs(timestamp * 1000);
14
- date.locale(locale);
15
- var diffMinutes = now.diff(date, 'minute');
16
- var diffHours = now.diff(date, 'hour');
17
- var diffDays = now.diff(date, 'day');
18
- if (diffDays > 1) {
19
- if (date.isSame(now, 'year')) {
20
- return date.format(shortFormatCurrentYear);
21
- }
22
- else {
23
- return date.format(shortFormatPastYear);
24
- }
25
- }
26
- else if (diffDays === 1) {
27
- return "".concat(diffDays).concat(daysSuffix);
28
- }
29
- else if (diffHours > 0 && diffHours <= 23) {
30
- return "".concat(diffHours).concat(hoursSuffix);
31
- }
32
- else if (diffMinutes > 0 && diffMinutes <= 59) {
33
- return "".concat(diffMinutes).concat(minutesSuffix);
34
- }
35
- else {
36
- return momentsAgo;
37
- }
38
- },
39
- formatTime: function (timestamp, config) {
40
- if (config === void 0) { config = {}; }
41
- var _a = config.locale, locale = _a === void 0 ? 'en' : _a, _b = config.shortFormatCurrentYear, shortFormatCurrentYear = _b === void 0 ? this.SHORT_FORMAT_CURRENT_YEAR : _b, _c = config.shortFormatPastYear, shortFormatPastYear = _c === void 0 ? this.SHORT_FORMAT_PAST_YEAR : _c;
42
- var date = dayjs(timestamp * 1000);
43
- date.locale(locale);
44
- if (date.isSame(dayjs(), 'year')) {
45
- return date.format(shortFormatCurrentYear);
46
- }
47
- else {
48
- return date.format(shortFormatPastYear);
49
- }
50
- },
51
- formatTimeLong: function (timestamp, config) {
52
- if (config === void 0) { config = {}; }
53
- var _a = config.locale, locale = _a === void 0 ? 'en' : _a, _b = config.longFormat, longFormat = _b === void 0 ? this.LONG_FORMAT : _b;
54
- var date = dayjs(timestamp * 1000);
55
- date.locale(locale);
56
- return date.format(longFormat);
57
- },
5
+ const TimeUtils = {
6
+ SHORT_FORMAT_CURRENT_YEAR: 'L',
7
+ SHORT_FORMAT_PAST_YEAR: 'LL',
8
+ LONG_FORMAT: 'LL, LT',
9
+ timeAgo(timestamp, config = {}) {
10
+ const {
11
+ locale = 'en',
12
+ shortFormatCurrentYear = this.SHORT_FORMAT_CURRENT_YEAR,
13
+ shortFormatPastYear = this.SHORT_FORMAT_PAST_YEAR,
14
+ daysSuffix = 'd',
15
+ hoursSuffix = 'h',
16
+ minutesSuffix = 'm',
17
+ momentsAgo = 'moments ago'
18
+ } = config;
19
+ const now = dayjs();
20
+ const date = dayjs(timestamp * 1000);
21
+ date.locale(locale);
22
+ const diffMinutes = now.diff(date, 'minute');
23
+ const diffHours = now.diff(date, 'hour');
24
+ const diffDays = now.diff(date, 'day');
25
+ if (diffDays > 1) {
26
+ if (date.isSame(now, 'year')) {
27
+ return date.format(shortFormatCurrentYear);
28
+ } else {
29
+ return date.format(shortFormatPastYear);
30
+ }
31
+ } else if (diffDays === 1) {
32
+ return `${diffDays}${daysSuffix}`;
33
+ } else if (diffHours > 0 && diffHours <= 23) {
34
+ return `${diffHours}${hoursSuffix}`;
35
+ } else if (diffMinutes > 0 && diffMinutes <= 59) {
36
+ return `${diffMinutes}${minutesSuffix}`;
37
+ } else {
38
+ return momentsAgo;
39
+ }
40
+ },
41
+ formatTime(timestamp, config = {}) {
42
+ const {
43
+ locale = 'en',
44
+ shortFormatCurrentYear = this.SHORT_FORMAT_CURRENT_YEAR,
45
+ shortFormatPastYear = this.SHORT_FORMAT_PAST_YEAR
46
+ } = config;
47
+ const date = dayjs(timestamp * 1000);
48
+ date.locale(locale);
49
+ if (date.isSame(dayjs(), 'year')) {
50
+ return date.format(shortFormatCurrentYear);
51
+ } else {
52
+ return date.format(shortFormatPastYear);
53
+ }
54
+ },
55
+ formatTimeLong(timestamp, config = {}) {
56
+ const {
57
+ locale = 'en',
58
+ longFormat = this.LONG_FORMAT
59
+ } = config;
60
+ const date = dayjs(timestamp * 1000);
61
+ date.locale(locale);
62
+ return date.format(longFormat);
63
+ }
58
64
  };
59
65
 
60
66
  export { TimeUtils };
@@ -1 +1 @@
1
- {"version":3,"file":"time-utils.js","sources":["../../../src/components/time/time-utils.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time-utils.js","sources":["../../../src/components/time/time-utils.ts"],"sourcesContent":["import dayjs from 'dayjs'\n/**\n * There's a problem with our setup where the default export from\n * localizedFormat (and likely every other dayjs plugin) isn't properly\n * recognized. The proposed workarounds (importing with `.js` ending, or adding\n * `allowSyntheticDefaultImports` to the tsconfig) either broke linting or type\n * checking. After spending some time on this it was decided that further\n * investigations are not worth it, the code works and the eslint ignore is fine.\n * ref: https://github.com/iamkun/dayjs/issues/593\n * ref: https://day.js.org/docs/en/installation/typescript\n */\n// eslint-disable-next-line import/default\nimport LocalizedFormat from 'dayjs/plugin/localizedFormat'\n\ndayjs.extend(LocalizedFormat)\n\ntype TimeConfig = {\n locale?: string\n longFormat?: string\n shortFormatCurrentYear?: string\n shortFormatPastYear?: string\n daysSuffix?: string\n hoursSuffix?: string\n minutesSuffix?: string\n momentsAgo?: string\n}\n\nconst TimeUtils = {\n SHORT_FORMAT_CURRENT_YEAR: 'L',\n SHORT_FORMAT_PAST_YEAR: 'LL',\n LONG_FORMAT: 'LL, LT',\n\n timeAgo(timestamp: number, config: TimeConfig = {}) {\n const {\n locale = 'en',\n shortFormatCurrentYear = this.SHORT_FORMAT_CURRENT_YEAR,\n shortFormatPastYear = this.SHORT_FORMAT_PAST_YEAR,\n daysSuffix = 'd',\n hoursSuffix = 'h',\n minutesSuffix = 'm',\n momentsAgo = 'moments ago',\n } = config\n const now = dayjs()\n const date = dayjs(timestamp * 1000)\n date.locale(locale)\n const diffMinutes = now.diff(date, 'minute')\n const diffHours = now.diff(date, 'hour')\n const diffDays = now.diff(date, 'day')\n\n if (diffDays > 1) {\n if (date.isSame(now, 'year')) {\n return date.format(shortFormatCurrentYear)\n } else {\n return date.format(shortFormatPastYear)\n }\n } else if (diffDays === 1) {\n return `${diffDays}${daysSuffix}`\n } else if (diffHours > 0 && diffHours <= 23) {\n return `${diffHours}${hoursSuffix}`\n } else if (diffMinutes > 0 && diffMinutes <= 59) {\n return `${diffMinutes}${minutesSuffix}`\n } else {\n return momentsAgo\n }\n },\n\n formatTime(timestamp: number, config: TimeConfig = {}) {\n const {\n locale = 'en',\n shortFormatCurrentYear = this.SHORT_FORMAT_CURRENT_YEAR,\n shortFormatPastYear = this.SHORT_FORMAT_PAST_YEAR,\n } = config\n const date = dayjs(timestamp * 1000)\n date.locale(locale)\n if (date.isSame(dayjs(), 'year')) {\n return date.format(shortFormatCurrentYear)\n } else {\n return date.format(shortFormatPastYear)\n }\n },\n\n formatTimeLong(timestamp: number, config: TimeConfig = {}) {\n const { locale = 'en', longFormat = this.LONG_FORMAT } = config\n const date = dayjs(timestamp * 1000)\n date.locale(locale)\n return date.format(longFormat)\n },\n}\n\nexport type { TimeConfig }\nexport { TimeUtils }\n"],"names":["dayjs","extend","LocalizedFormat","TimeUtils","SHORT_FORMAT_CURRENT_YEAR","SHORT_FORMAT_PAST_YEAR","LONG_FORMAT","timeAgo","timestamp","config","locale","shortFormatCurrentYear","shortFormatPastYear","daysSuffix","hoursSuffix","minutesSuffix","momentsAgo","now","date","diffMinutes","diff","diffHours","diffDays","isSame","format","formatTime","formatTimeLong","longFormat"],"mappings":"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"}
@@ -1,100 +1,103 @@
1
- import { __extends } from 'tslib';
2
1
  import * as React from 'react';
3
- import { Tooltip } from '../../tooltip/tooltip.js';
4
2
  import { TimeUtils } from './time-utils.js';
3
+ import { Tooltip } from '../../tooltip/tooltip.js';
5
4
 
6
- var DELAY = 60000;
7
- var Time = /** @class */ (function (_super) {
8
- __extends(Time, _super);
9
- function Time(props) {
10
- var _this = _super.call(this, props) || this;
11
- _this.refreshInterval = undefined;
12
- _this.state = {
13
- hovered: false,
14
- mouseX: undefined,
15
- mouseY: undefined,
16
- };
17
- return _this;
18
- }
19
- Time.prototype.componentDidMount = function () {
20
- if (this.props.refresh) {
21
- this._refresh();
22
- }
23
- };
24
- Time.prototype.componentDidUpdate = function (prevProps) {
25
- if (!prevProps.refresh && this.props.refresh) {
26
- this._refresh();
27
- }
28
- if (prevProps.refresh && !this.props.refresh) {
29
- if (this.refreshInterval) {
30
- clearTimeout(this.refreshInterval);
31
- }
32
- }
33
- };
34
- Time.prototype.componentWillUnmount = function () {
35
- if (this.refreshInterval) {
36
- clearTimeout(this.refreshInterval);
37
- }
38
- };
39
- Time.prototype._setHovered = function (hovered, event) {
40
- var _a = this.state, mouseX = _a.mouseX, mouseY = _a.mouseY;
41
- var clientX = event.clientX, clientY = event.clientY;
42
- if (clientX !== mouseX || clientY !== mouseY) {
43
- // mouse has moved
44
- this.setState(function () { return ({
45
- hovered: hovered,
46
- mouseX: clientX,
47
- mouseY: clientY,
48
- }); });
49
- }
50
- };
51
- Time.prototype._renderTime = function (config) {
52
- if (!this.props.time) {
53
- return;
54
- }
55
- if (this.state.hovered) {
56
- if (this.props.expandFullyOnHover && !this.props.tooltipOnHover) {
57
- return TimeUtils.formatTimeLong(this.props.time, config);
58
- }
59
- if (this.props.expandOnHover && !this.props.tooltipOnHover) {
60
- return TimeUtils.formatTime(this.props.time, config);
61
- }
62
- }
63
- return TimeUtils.timeAgo(this.props.time, config);
64
- };
65
- Time.prototype._refresh = function () {
66
- var _this = this;
67
- this.refreshInterval = setInterval(function () {
68
- _this.forceUpdate();
69
- }, DELAY);
70
- };
71
- Time.prototype.render = function () {
72
- var _this = this;
73
- var className = 'reactist_time';
74
- if (this.props.className) {
75
- className = this.props.className;
76
- }
77
- var timeComponent = this._renderTime(this.props.config);
78
- return (React.createElement("time", { className: className, onMouseEnter: function (event) { return _this._setHovered(true, event); }, onMouseLeave: function (event) { return _this._setHovered(false, event); } }, this.props.tooltipOnHover ? (React.createElement(Tooltip, { content: this.props.tooltip ||
79
- (this.props.time &&
80
- TimeUtils.formatTimeLong(this.props.time, this.props.config)) },
81
- React.createElement("span", null, timeComponent))) : (timeComponent)));
5
+ const DELAY = 60000;
6
+ class Time extends React.Component {
7
+ constructor(props) {
8
+ super(props);
9
+ this.refreshInterval = undefined;
10
+ this.state = {
11
+ hovered: false,
12
+ mouseX: undefined,
13
+ mouseY: undefined
82
14
  };
83
- return Time;
84
- }(React.Component));
15
+ }
16
+ componentDidMount() {
17
+ if (this.props.refresh) {
18
+ this._refresh();
19
+ }
20
+ }
21
+ componentDidUpdate(prevProps) {
22
+ if (!prevProps.refresh && this.props.refresh) {
23
+ this._refresh();
24
+ }
25
+ if (prevProps.refresh && !this.props.refresh) {
26
+ if (this.refreshInterval) {
27
+ clearTimeout(this.refreshInterval);
28
+ }
29
+ }
30
+ }
31
+ componentWillUnmount() {
32
+ if (this.refreshInterval) {
33
+ clearTimeout(this.refreshInterval);
34
+ }
35
+ }
36
+ _setHovered(hovered, event) {
37
+ const {
38
+ mouseX,
39
+ mouseY
40
+ } = this.state;
41
+ const {
42
+ clientX,
43
+ clientY
44
+ } = event;
45
+ if (clientX !== mouseX || clientY !== mouseY) {
46
+ // mouse has moved
47
+ this.setState(() => ({
48
+ hovered,
49
+ mouseX: clientX,
50
+ mouseY: clientY
51
+ }));
52
+ }
53
+ }
54
+ _renderTime(config) {
55
+ if (!this.props.time) {
56
+ return;
57
+ }
58
+ if (this.state.hovered) {
59
+ if (this.props.expandFullyOnHover && !this.props.tooltipOnHover) {
60
+ return TimeUtils.formatTimeLong(this.props.time, config);
61
+ }
62
+ if (this.props.expandOnHover && !this.props.tooltipOnHover) {
63
+ return TimeUtils.formatTime(this.props.time, config);
64
+ }
65
+ }
66
+ return TimeUtils.timeAgo(this.props.time, config);
67
+ }
68
+ _refresh() {
69
+ this.refreshInterval = setInterval(() => {
70
+ this.forceUpdate();
71
+ }, DELAY);
72
+ }
73
+ render() {
74
+ let className = 'reactist_time';
75
+ if (this.props.className) {
76
+ className = this.props.className;
77
+ }
78
+ const timeComponent = this._renderTime(this.props.config);
79
+ return /*#__PURE__*/React.createElement("time", {
80
+ className: className,
81
+ onMouseEnter: event => this._setHovered(true, event),
82
+ onMouseLeave: event => this._setHovered(false, event)
83
+ }, this.props.tooltipOnHover ? /*#__PURE__*/React.createElement(Tooltip, {
84
+ content: this.props.tooltip || this.props.time && TimeUtils.formatTimeLong(this.props.time, this.props.config)
85
+ }, /*#__PURE__*/React.createElement("span", null, timeComponent)) : timeComponent);
86
+ }
87
+ }
85
88
  Time.displayName = 'Time';
86
89
  Time.defaultProps = {
87
- expandOnHover: false,
88
- expandFullyOnHover: false,
89
- tooltipOnHover: false,
90
- refresh: true,
91
- config: {
92
- locale: 'en',
93
- daysSuffix: 'd',
94
- hoursSuffix: 'h',
95
- minutesSuffix: 'm',
96
- momentsAgo: 'moments ago',
97
- },
90
+ expandOnHover: false,
91
+ expandFullyOnHover: false,
92
+ tooltipOnHover: false,
93
+ refresh: true,
94
+ config: {
95
+ locale: 'en',
96
+ daysSuffix: 'd',
97
+ hoursSuffix: 'h',
98
+ minutesSuffix: 'm',
99
+ momentsAgo: 'moments ago'
100
+ }
98
101
  };
99
102
 
100
103
  export { Time };