@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 +1 @@
1
- {"version":3,"file":"select.js","sources":["../../../src/components/deprecated-select/select.tsx"],"sourcesContent":[null],"names":["__rest","classNames","React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,SAAS,MAAM,CAAC,EAQR,EAAA;AAPJ,IAAA,IAAA,KAAK,GAAA,EAAA,CAAA,KAAA,EACL,EAAA,GAAA,EAAA,CAAA,OAAY,EAAZ,OAAO,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAA,EAAA,EACZ,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,gBAAe,EAAf,QAAQ,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,IAAI,GAAA,EAAA,EACf,EAAc,GAAA,EAAA,CAAA,SAAA,EAAd,SAAS,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,EAAE,GAAA,EAAA,EACd,YAAY,GAAA,EAAA,CAAA,YAAA,EACT,UAAU,GAAAA,YAAA,CAAA,EAAA,EAPD,yEAQf,CADgB,CAAA;AAEb,IAAA,IAAM,eAAe,GAAGC,8BAAU,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAA,QAAA,EAAE,EAAE,SAAS,CAAC,CAAA;IAC9E,QACIC,0DACI,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,UAAC,KAAK,EAAK,EAAA,QAAC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,SAAS,IAAC,EAC1E,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EACtB,EAAA,UAAU,GAEb,OAAO,KAAA,IAAA,IAAP,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,OAAO,CAAE,GAAG,CAAC,UAAC,MAAM,EAAA,EAAK,QACtBA,gBAAA,CAAA,aAAA,CAAA,QAAA,EAAA,EACI,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK,EAC/B,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAExB,MAAM,CAAC,IAAI,CACP,IACZ,CAAC,CACG,EACZ;AACL,CAAC;AACD,MAAM,CAAC,WAAW,GAAG,QAAQ,CAAA;AAC7B,MAAM,CAAC,YAAY,GAAG;AAClB,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,QAAQ,EAAE,KAAK;CAClB;;;;"}
1
+ {"version":3,"file":"select.js","sources":["../../../src/components/deprecated-select/select.tsx"],"sourcesContent":["import './select.less'\n\nimport * as React from 'react'\n\nimport classNames from 'classnames'\n\ntype Option = {\n /** Optional key for each option. If not provided `value` is used. */\n key?: string | number\n /** Value of the option. */\n value: string | number\n /** Text to display for the option. */\n text?: string | number\n /** Whether the options is disabled or not. */\n disabled?: boolean\n}\n\ntype Props = {\n className?: string\n disabled?: boolean\n /** Currently selected value. */\n value?: string | number\n /** Callback for the change event. Will be called with the next value (not the full event). */\n onChange?: (value: string) => void\n /** Options that are rendered in the select. */\n options?: Option[]\n /** Value to initially be set */\n defaultValue?: string | number\n}\n\nfunction Select({\n value,\n options = [],\n onChange,\n disabled = true,\n className = '',\n defaultValue,\n ...otherProps\n}: Props) {\n const selectClassName = classNames('reactist_select', { disabled }, className)\n return (\n <select\n className={selectClassName}\n value={value}\n onChange={(event) => (onChange ? onChange(event.target.value) : undefined)}\n disabled={disabled}\n defaultValue={defaultValue}\n {...otherProps}\n >\n {options?.map((option) => (\n <option\n key={option.key || option.value}\n value={option.value}\n disabled={option.disabled}\n >\n {option.text}\n </option>\n ))}\n </select>\n )\n}\nSelect.displayName = 'Select'\nSelect.defaultProps = {\n options: [],\n disabled: false,\n}\n\nexport { Select }\n"],"names":["Select","t0","$","_c","defaultValue","onChange","otherProps","t1","t2","t3","value","_t","options","disabled","className","_objectWithoutProperties","_excluded","t4","undefined","t5","classNames","selectClassName","t6","event","target","t7","map","_temp","t8","React","createElement","_extends","option","key","text","displayName","defaultProps"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var reactCompilerRuntime = require('react-compiler-runtime');
5
6
  var React = require('react');
6
7
 
7
8
  function _interopNamespace(e) {
@@ -24,95 +25,111 @@ function _interopNamespace(e) {
24
25
 
25
26
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
26
27
 
27
- var SUPPORTED_KEYS = {
28
- ARROW_UP: 'ArrowUp',
29
- ARROW_RIGHT: 'ArrowRight',
30
- ARROW_DOWN: 'ArrowDown',
31
- ARROW_LEFT: 'ArrowLeft',
32
- ENTER: 'Enter',
33
- BACKSPACE: 'Backspace',
34
- ESCAPE: 'Escape',
28
+ const SUPPORTED_KEYS = {
29
+ ARROW_UP: 'ArrowUp',
30
+ ARROW_RIGHT: 'ArrowRight',
31
+ ARROW_DOWN: 'ArrowDown',
32
+ ARROW_LEFT: 'ArrowLeft',
33
+ ENTER: 'Enter',
34
+ BACKSPACE: 'Backspace',
35
+ ESCAPE: 'Escape'
35
36
  };
36
- var KeyCapturerResolver = {
37
- resolveByKey: function (eventKey) {
38
- switch (eventKey) {
39
- case 'Left': // IE specific
40
- case 'ArrowLeft': {
41
- return 'ArrowLeft';
42
- }
43
- case 'Up': // IE specific
44
- case 'ArrowUp': {
45
- return 'ArrowUp';
46
- }
47
- case 'Right': // IE specific
48
- case 'ArrowRight': {
49
- return 'ArrowRight';
50
- }
51
- case 'Down': // IE specific
52
- case 'ArrowDown': {
53
- return 'ArrowDown';
54
- }
55
- case 'Enter': {
56
- return 'Enter';
57
- }
58
- case 'Backspace': {
59
- return 'Backspace';
60
- }
61
- case 'Esc': // IE specific
62
- case 'Escape': {
63
- return 'Escape';
64
- }
65
- default: {
66
- return null;
67
- }
37
+ const KeyCapturerResolver = {
38
+ resolveByKey(eventKey) {
39
+ switch (eventKey) {
40
+ case 'Left': // IE specific
41
+ case 'ArrowLeft':
42
+ {
43
+ return 'ArrowLeft';
68
44
  }
69
- },
70
- resolveByKeyCode: function (keyCode) {
71
- switch (keyCode) {
72
- case 37: {
73
- return 'ArrowLeft';
74
- }
75
- case 38: {
76
- return 'ArrowUp';
77
- }
78
- case 39: {
79
- return 'ArrowRight';
80
- }
81
- case 40: {
82
- return 'ArrowDown';
83
- }
84
- case 13: {
85
- return 'Enter';
86
- }
87
- case 8: {
88
- return 'Backspace';
89
- }
90
- case 27: {
91
- return 'Escape';
92
- }
93
- default: {
94
- return null;
95
- }
45
+ case 'Up': // IE specific
46
+ case 'ArrowUp':
47
+ {
48
+ return 'ArrowUp';
49
+ }
50
+ case 'Right': // IE specific
51
+ case 'ArrowRight':
52
+ {
53
+ return 'ArrowRight';
54
+ }
55
+ case 'Down': // IE specific
56
+ case 'ArrowDown':
57
+ {
58
+ return 'ArrowDown';
59
+ }
60
+ case 'Enter':
61
+ {
62
+ return 'Enter';
63
+ }
64
+ case 'Backspace':
65
+ {
66
+ return 'Backspace';
96
67
  }
97
- },
68
+ case 'Esc': // IE specific
69
+ case 'Escape':
70
+ {
71
+ return 'Escape';
72
+ }
73
+ default:
74
+ {
75
+ return null;
76
+ }
77
+ }
78
+ },
79
+ resolveByKeyCode(keyCode) {
80
+ switch (keyCode) {
81
+ case 37:
82
+ {
83
+ return 'ArrowLeft';
84
+ }
85
+ case 38:
86
+ {
87
+ return 'ArrowUp';
88
+ }
89
+ case 39:
90
+ {
91
+ return 'ArrowRight';
92
+ }
93
+ case 40:
94
+ {
95
+ return 'ArrowDown';
96
+ }
97
+ case 13:
98
+ {
99
+ return 'Enter';
100
+ }
101
+ case 8:
102
+ {
103
+ return 'Backspace';
104
+ }
105
+ case 27:
106
+ {
107
+ return 'Escape';
108
+ }
109
+ default:
110
+ {
111
+ return null;
112
+ }
113
+ }
114
+ }
98
115
  };
99
- var keyEventHandlerMapping = {
100
- ArrowUp: 'onArrowUp',
101
- ArrowDown: 'onArrowDown',
102
- ArrowLeft: 'onArrowLeft',
103
- ArrowRight: 'onArrowRight',
104
- Enter: 'onEnter',
105
- Backspace: 'onBackspace',
106
- Escape: 'onEscape',
116
+ const keyEventHandlerMapping = {
117
+ ArrowUp: 'onArrowUp',
118
+ ArrowDown: 'onArrowDown',
119
+ ArrowLeft: 'onArrowLeft',
120
+ ArrowRight: 'onArrowRight',
121
+ Enter: 'onEnter',
122
+ Backspace: 'onBackspace',
123
+ Escape: 'onEscape'
107
124
  };
108
- var keyPropagatePropMapping = {
109
- ArrowUp: 'propagateArrowUp',
110
- ArrowDown: 'propagateArrowDown',
111
- ArrowLeft: 'propagateArrowLeft',
112
- ArrowRight: 'propagateArrowRight',
113
- Enter: 'propagateEnter',
114
- Backspace: 'propagateBackspace',
115
- Escape: 'propagateEscape',
125
+ const keyPropagatePropMapping = {
126
+ ArrowUp: 'propagateArrowUp',
127
+ ArrowDown: 'propagateArrowDown',
128
+ ArrowLeft: 'propagateArrowLeft',
129
+ ArrowRight: 'propagateArrowRight',
130
+ Enter: 'propagateEnter',
131
+ Backspace: 'propagateBackspace',
132
+ Escape: 'propagateEscape'
116
133
  };
117
134
  /**
118
135
  * Use this component to wrap anything you want to handle key events for (e.g. an input).
@@ -123,57 +140,93 @@ var keyPropagatePropMapping = {
123
140
  * instead of replacing it) set the `propagate${Key}` prop (e.g. propagateBackspace).
124
141
  */
125
142
  function KeyCapturer(props) {
126
- var _a;
127
- var children = props.children, _b = props.eventName, eventName = _b === void 0 ? 'onKeyDown' : _b;
128
- var _c = React__namespace.useState(false), isComposing = _c[0], setIsComposing = _c[1];
129
- var onCompositionStart = React__namespace.useMemo(function () {
130
- return props.onEnter
131
- ? function () {
132
- setIsComposing(true);
133
- }
134
- : undefined;
135
- }, [props.onEnter]);
136
- var onCompositionEnd = React__namespace.useMemo(function () {
137
- return props.onEnter
138
- ? function () {
139
- setIsComposing(false);
140
- }
141
- : undefined;
142
- }, [props.onEnter]);
143
- var handleKeyEvent = React__namespace.useMemo(function () {
144
- return function handleKeyEvent(event) {
145
- // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
146
- var key = event.key !== undefined
147
- ? KeyCapturerResolver.resolveByKey(event.key)
148
- : KeyCapturerResolver.resolveByKeyCode(event.keyCode);
149
- if (!key)
150
- return;
151
- var propagateEvent = props[keyPropagatePropMapping[key]] || false;
152
- var eventHandler = props[keyEventHandlerMapping[key]];
153
- if (!eventHandler) {
154
- return;
155
- }
156
- if (key === 'Enter') {
157
- if (isComposing ||
158
- // Safari fires the onCompositionEnd event before the keydown event, so we
159
- // have to rely on the 229 keycode, which is Enter when fired from an IME
160
- // https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode
161
- (event.keyCode || event.which) === 229) {
162
- return;
163
- }
164
- }
165
- eventHandler(event);
166
- if (!propagateEvent) {
167
- event.preventDefault();
168
- event.stopPropagation();
169
- }
170
- };
171
- }, [props, isComposing]);
172
- return React__namespace.cloneElement(children, (_a = {},
173
- _a[eventName] = handleKeyEvent,
174
- _a.onCompositionStart = onCompositionStart,
175
- _a.onCompositionEnd = onCompositionEnd,
176
- _a));
143
+ const $ = reactCompilerRuntime.c(18);
144
+ const {
145
+ children,
146
+ eventName: t0
147
+ } = props;
148
+ const eventName = t0 === undefined ? "onKeyDown" : t0;
149
+ const [isComposing, setIsComposing] = React__namespace.useState(false);
150
+ let t1;
151
+ if ($[0] !== props.onEnter) {
152
+ t1 = props.onEnter ? () => {
153
+ setIsComposing(true);
154
+ } : undefined;
155
+ $[0] = props.onEnter;
156
+ $[1] = t1;
157
+ } else {
158
+ t1 = $[1];
159
+ }
160
+ const onCompositionStart = t1;
161
+ let t2;
162
+ if ($[2] !== props.onEnter) {
163
+ t2 = props.onEnter ? () => {
164
+ setIsComposing(false);
165
+ } : undefined;
166
+ $[2] = props.onEnter;
167
+ $[3] = t2;
168
+ } else {
169
+ t2 = $[3];
170
+ }
171
+ const onCompositionEnd = t2;
172
+ let t3;
173
+ if ($[4] !== isComposing || $[5] !== props) {
174
+ t3 = function handleKeyEvent(event) {
175
+ const key = event.key !== undefined ? KeyCapturerResolver.resolveByKey(event.key) : KeyCapturerResolver.resolveByKeyCode(event.keyCode);
176
+ if (!key) {
177
+ return;
178
+ }
179
+ const propagateEvent = props[keyPropagatePropMapping[key]] || false;
180
+ const eventHandler = props[keyEventHandlerMapping[key]];
181
+ if (!eventHandler) {
182
+ return;
183
+ }
184
+ if (key === "Enter") {
185
+ if (isComposing || (event.keyCode || event.which) === 229) {
186
+ return;
187
+ }
188
+ }
189
+ eventHandler(event);
190
+ if (!propagateEvent) {
191
+ event.preventDefault();
192
+ event.stopPropagation();
193
+ }
194
+ };
195
+ $[4] = isComposing;
196
+ $[5] = props;
197
+ $[6] = t3;
198
+ } else {
199
+ t3 = $[6];
200
+ }
201
+ const handleKeyEvent = t3;
202
+ let t4;
203
+ if ($[7] !== children || $[8] !== eventName || $[9] !== handleKeyEvent || $[10] !== onCompositionEnd || $[11] !== onCompositionStart) {
204
+ let t5;
205
+ if ($[13] !== eventName || $[14] !== handleKeyEvent || $[15] !== onCompositionEnd || $[16] !== onCompositionStart) {
206
+ t5 = {
207
+ [eventName]: handleKeyEvent,
208
+ onCompositionStart,
209
+ onCompositionEnd
210
+ };
211
+ $[13] = eventName;
212
+ $[14] = handleKeyEvent;
213
+ $[15] = onCompositionEnd;
214
+ $[16] = onCompositionStart;
215
+ $[17] = t5;
216
+ } else {
217
+ t5 = $[17];
218
+ }
219
+ t4 = /*#__PURE__*/React__namespace.cloneElement(children, t5);
220
+ $[7] = children;
221
+ $[8] = eventName;
222
+ $[9] = handleKeyEvent;
223
+ $[10] = onCompositionEnd;
224
+ $[11] = onCompositionStart;
225
+ $[12] = t4;
226
+ } else {
227
+ t4 = $[12];
228
+ }
229
+ return t4;
177
230
  }
178
231
 
179
232
  exports.KeyCapturer = KeyCapturer;
@@ -1 +1 @@
1
- {"version":3,"file":"key-capturer.js","sources":["../../../src/components/key-capturer/key-capturer.tsx"],"sourcesContent":[null],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"key-capturer.js","sources":["../../../src/components/key-capturer/key-capturer.tsx"],"sourcesContent":["import * as React from 'react'\n\ntype Key = 'ArrowUp' | 'ArrowRight' | 'ArrowDown' | 'ArrowLeft' | 'Enter' | 'Backspace' | 'Escape'\n\nconst SUPPORTED_KEYS: Record<string, Key> = {\n ARROW_UP: 'ArrowUp',\n ARROW_RIGHT: 'ArrowRight',\n ARROW_DOWN: 'ArrowDown',\n ARROW_LEFT: 'ArrowLeft',\n ENTER: 'Enter',\n BACKSPACE: 'Backspace',\n ESCAPE: 'Escape',\n}\n\nconst KeyCapturerResolver = {\n resolveByKey(eventKey: string): Key | null {\n switch (eventKey) {\n case 'Left': // IE specific\n case 'ArrowLeft': {\n return 'ArrowLeft'\n }\n case 'Up': // IE specific\n case 'ArrowUp': {\n return 'ArrowUp'\n }\n case 'Right': // IE specific\n case 'ArrowRight': {\n return 'ArrowRight'\n }\n case 'Down': // IE specific\n case 'ArrowDown': {\n return 'ArrowDown'\n }\n case 'Enter': {\n return 'Enter'\n }\n case 'Backspace': {\n return 'Backspace'\n }\n case 'Esc': // IE specific\n case 'Escape': {\n return 'Escape'\n }\n default: {\n return null\n }\n }\n },\n\n resolveByKeyCode(keyCode: number): Key | null {\n switch (keyCode) {\n case 37: {\n return 'ArrowLeft'\n }\n case 38: {\n return 'ArrowUp'\n }\n case 39: {\n return 'ArrowRight'\n }\n case 40: {\n return 'ArrowDown'\n }\n case 13: {\n return 'Enter'\n }\n case 8: {\n return 'Backspace'\n }\n case 27: {\n return 'Escape'\n }\n default: {\n return null\n }\n }\n },\n}\n\ntype EventHandler = (event: React.SyntheticEvent) => void\n\ntype EventHandlerProps = {\n onArrowUp?: EventHandler\n onArrowDown?: EventHandler\n onArrowLeft?: EventHandler\n onArrowRight?: EventHandler\n onEnter?: EventHandler\n onBackspace?: EventHandler\n onEscape?: EventHandler\n}\n\ntype PropagateProps = {\n propagateArrowUp?: boolean\n propagateArrowDown?: boolean\n propagateArrowLeft?: boolean\n propagateArrowRight?: boolean\n propagateEnter?: boolean\n propagateBackspace?: boolean\n propagateEscape?: boolean\n}\n\nconst keyEventHandlerMapping: Record<Key, keyof EventHandlerProps> = {\n ArrowUp: 'onArrowUp',\n ArrowDown: 'onArrowDown',\n ArrowLeft: 'onArrowLeft',\n ArrowRight: 'onArrowRight',\n Enter: 'onEnter',\n Backspace: 'onBackspace',\n Escape: 'onEscape',\n}\n\nconst keyPropagatePropMapping: Record<Key, keyof PropagateProps> = {\n ArrowUp: 'propagateArrowUp',\n ArrowDown: 'propagateArrowDown',\n ArrowLeft: 'propagateArrowLeft',\n ArrowRight: 'propagateArrowRight',\n Enter: 'propagateEnter',\n Backspace: 'propagateBackspace',\n Escape: 'propagateEscape',\n}\n\ntype KeyCapturerProps = EventHandlerProps &\n PropagateProps & {\n eventName?: 'onKeyDown' | 'onKeyDownCapture' | 'onKeyUp' | 'onKeyUpCapture'\n children: React.ReactElement<unknown>\n }\n\n/**\n * Use this component to wrap anything you want to handle key events for (e.g. an input).\n * You can specify the `eventName` to capture (defaults to `onKeyDown`).\n * Check the SUPPORTED_KEYS map to see which keys are supported and supply the respective\n * `on${Key}` prop (i.e. `onEnter` or `onArrowDown`).\n * If you want the default behaviour to be preserved (i.e. only want to hook into the event\n * instead of replacing it) set the `propagate${Key}` prop (e.g. propagateBackspace).\n */\nfunction KeyCapturer(props: KeyCapturerProps) {\n const { children, eventName = 'onKeyDown' } = props\n const [isComposing, setIsComposing] = React.useState(false)\n\n const onCompositionStart = React.useMemo(\n () =>\n props.onEnter\n ? () => {\n setIsComposing(true)\n }\n : undefined,\n [props.onEnter],\n )\n const onCompositionEnd = React.useMemo(\n () =>\n props.onEnter\n ? () => {\n setIsComposing(false)\n }\n : undefined,\n [props.onEnter],\n )\n\n const handleKeyEvent = React.useMemo(\n () =>\n function handleKeyEvent(event: React.KeyboardEvent<HTMLInputElement>) {\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode\n const key =\n event.key !== undefined\n ? KeyCapturerResolver.resolveByKey(event.key)\n : KeyCapturerResolver.resolveByKeyCode(event.keyCode)\n\n if (!key) return\n const propagateEvent = props[keyPropagatePropMapping[key]] || false\n const eventHandler = props[keyEventHandlerMapping[key]]\n\n if (!eventHandler) {\n return\n }\n\n if (key === 'Enter') {\n if (\n isComposing ||\n // Safari fires the onCompositionEnd event before the keydown event, so we\n // have to rely on the 229 keycode, which is Enter when fired from an IME\n // https://www.w3.org/TR/uievents/#determine-keydown-keyup-keyCode\n (event.keyCode || event.which) === 229\n ) {\n return\n }\n }\n\n eventHandler(event)\n\n if (!propagateEvent) {\n event.preventDefault()\n event.stopPropagation()\n }\n },\n [props, isComposing],\n )\n\n return React.cloneElement<React.DOMAttributes<HTMLElement>>(\n children as React.FunctionComponentElement<React.DOMAttributes<HTMLElement>>,\n {\n [eventName]: handleKeyEvent,\n onCompositionStart,\n onCompositionEnd,\n },\n )\n}\n\nexport { KeyCapturer, KeyCapturerResolver, SUPPORTED_KEYS }\n"],"names":["SUPPORTED_KEYS","ARROW_UP","ARROW_RIGHT","ARROW_DOWN","ARROW_LEFT","ENTER","BACKSPACE","ESCAPE","KeyCapturerResolver","resolveByKey","eventKey","resolveByKeyCode","keyCode","keyEventHandlerMapping","ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Enter","Backspace","Escape","keyPropagatePropMapping","KeyCapturer","props","$","_c","children","eventName","t0","undefined","isComposing","setIsComposing","React","useState","t1","onEnter","onCompositionStart","t2","onCompositionEnd","t3","handleKeyEvent","event","key","propagateEvent","eventHandler","which","preventDefault","stopPropagation","t4","t5","cloneElement"],"mappings":"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"}
@@ -2,7 +2,8 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var tslib = require('tslib');
5
+ var _extends = require('@babel/runtime/helpers/extends');
6
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
6
7
  var React = require('react');
7
8
  var classNames = require('classnames');
8
9
 
@@ -26,72 +27,93 @@ function _interopNamespace(e) {
26
27
  return Object.freeze(n);
27
28
  }
28
29
 
30
+ var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
31
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
29
32
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
33
  var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
31
34
 
35
+ const _excluded = ["children", "className", "translateKey", "isMac"];
36
+
32
37
  //
33
38
  // Support for setting up how to translate modifiers globally.
34
39
  //
35
- var globalTranslateKey = function (key) { return key; };
36
- KeyboardShortcut.setTranslateKey = function (tr) {
37
- globalTranslateKey = tr;
40
+
41
+ let globalTranslateKey = key => key;
42
+ KeyboardShortcut.setTranslateKey = tr => {
43
+ globalTranslateKey = tr;
38
44
  };
39
45
  function translateKeyMac(key) {
40
- switch (key.toLowerCase()) {
41
- case 'cmd':
42
- case 'mod':
43
- return '⌘';
44
- case 'control':
45
- case 'ctrl':
46
- return '⌃';
47
- case 'alt':
48
- return '⌥';
49
- case 'shift':
50
- return '⇧';
51
- case 'space':
52
- return '␣';
53
- default:
54
- return key;
55
- }
46
+ switch (key.toLowerCase()) {
47
+ case 'cmd':
48
+ case 'mod':
49
+ return '⌘';
50
+ case 'control':
51
+ case 'ctrl':
52
+ return '⌃';
53
+ case 'alt':
54
+ return '⌥';
55
+ case 'shift':
56
+ return '⇧';
57
+ case 'space':
58
+ return '␣';
59
+ default:
60
+ return key;
61
+ }
56
62
  }
63
+
57
64
  //
58
65
  // Some helpers
59
66
  //
67
+
60
68
  function capitalize(str) {
61
- return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
69
+ return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
62
70
  }
63
71
  function hasModifiers(str) {
64
- return /\b(mod|cmd|ctrl|control|alt|shift)\b/i.test(str);
72
+ return /\b(mod|cmd|ctrl|control|alt|shift)\b/i.test(str);
65
73
  }
66
74
  function isSpecialKey(str) {
67
- return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str);
75
+ return /^(mod|cmd|ctrl|control|alt|shift|space|super)$/i.test(str);
68
76
  }
69
77
  function parseKeys(shortcut, isMac, translateKey) {
70
- var t = isMac ? translateKeyMac : translateKey;
71
- var _hasModifiers = hasModifiers(shortcut);
72
- function mapIndividualKey(str) {
73
- if (isSpecialKey(str)) {
74
- return capitalize(t(str));
75
- }
76
- if (_hasModifiers && str.length === 1) {
77
- return str.toUpperCase();
78
- }
79
- return str;
78
+ const t = isMac ? translateKeyMac : translateKey;
79
+ const _hasModifiers = hasModifiers(shortcut);
80
+ function mapIndividualKey(str) {
81
+ if (isSpecialKey(str)) {
82
+ return capitalize(t(str));
80
83
  }
81
- if (!isMac) {
82
- shortcut = shortcut.replace(/\b(mod|cmd)\b/i, 'ctrl');
84
+ if (_hasModifiers && str.length === 1) {
85
+ return str.toUpperCase();
83
86
  }
84
- return shortcut.split(/\s*\+\s*/).map(mapIndividualKey);
87
+ return str;
88
+ }
89
+ if (!isMac) {
90
+ shortcut = shortcut.replace(/\b(mod|cmd)\b/i, 'ctrl');
91
+ }
92
+ return shortcut.split(/\s*\+\s*/).map(mapIndividualKey);
85
93
  }
86
- function KeyboardShortcut(_a) {
87
- var _b, _c;
88
- 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 = tslib.__rest(_a, ["children", "className", "translateKey", "isMac"]);
89
- var shortcuts = typeof children === 'string' ? [children] : children;
90
- return (React__namespace.createElement("span", tslib.__assign({ className: classNames__default["default"]('reactist_keyboard_shortcut', className, {
91
- 'reactist_keyboard_shortcut--macos': isMac,
92
- }) }, props), shortcuts.map(function (shortcut, i) { return (React__namespace.createElement(React__namespace.Fragment, { key: i },
93
- i === 0 ? null : ', ',
94
- React__namespace.createElement("kbd", null, parseKeys(shortcut, isMac, translateKey).map(function (key, j) { return (React__namespace.createElement("kbd", { key: j }, key)); })))); })));
94
+
95
+ //
96
+ // The KeyboardShortcut component
97
+ //
98
+
99
+ function KeyboardShortcut(_ref) {
100
+ let {
101
+ children,
102
+ className,
103
+ translateKey = globalTranslateKey,
104
+ isMac = navigator.platform?.toUpperCase().includes('MAC') ?? false
105
+ } = _ref,
106
+ props = _objectWithoutProperties__default["default"](_ref, _excluded);
107
+ const shortcuts = typeof children === 'string' ? [children] : children;
108
+ return /*#__PURE__*/React__namespace.createElement("span", _extends__default["default"]({
109
+ className: classNames__default["default"]('reactist_keyboard_shortcut', className, {
110
+ 'reactist_keyboard_shortcut--macos': isMac
111
+ })
112
+ }, props), shortcuts.map((shortcut, i) => /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, {
113
+ key: i
114
+ }, i === 0 ? null : ', ', /*#__PURE__*/React__namespace.createElement("kbd", null, parseKeys(shortcut, isMac, translateKey).map((key, j) => /*#__PURE__*/React__namespace.createElement("kbd", {
115
+ key: j
116
+ }, key))))));
95
117
  }
96
118
 
97
119
  exports.KeyboardShortcut = KeyboardShortcut;
@@ -1 +1 @@
1
- {"version":3,"file":"keyboard-shortcut.js","sources":["../../../src/components/keyboard-shortcut/keyboard-shortcut.tsx"],"sourcesContent":[null],"names":["__rest","React","classNames"],"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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"}