@semcore/core 16.0.0-prerelease.6 → 16.0.0-prerelease.7

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 (226) hide show
  1. package/lib/LastInteractionType.mjs +16 -14
  2. package/lib/core-types/Component.mjs +22 -25
  3. package/lib/core-types/symbols.mjs +20 -10
  4. package/lib/coreFactory.mjs +154 -173
  5. package/lib/enhancement/Children.mjs +30 -45
  6. package/lib/enhancement/Root.mjs +22 -32
  7. package/lib/enhancement/bindHandler.mjs +10 -9
  8. package/lib/enhancement/dataName.mjs +4 -3
  9. package/lib/enhancement/enhance.mjs +4 -3
  10. package/lib/enhancement/functionDefaultProps.mjs +5 -5
  11. package/lib/enhancement/hoistProps.mjs +18 -28
  12. package/lib/enhancement/i18n.mjs +6 -6
  13. package/lib/enhancement/inheritedName.mjs +3 -2
  14. package/lib/enhancement/staticChildren.mjs +32 -35
  15. package/lib/enhancement/style.mjs +13 -14
  16. package/lib/enhancement/uncontrolledProps.mjs +21 -37
  17. package/lib/esm/LastInteractionType.mjs +51 -0
  18. package/lib/esm/core-types/Component.mjs +51 -0
  19. package/lib/esm/core-types/symbols.mjs +20 -0
  20. package/lib/esm/coreFactory.mjs +324 -0
  21. package/lib/esm/enhancement/Children.mjs +96 -0
  22. package/lib/esm/enhancement/Root.mjs +60 -0
  23. package/lib/esm/enhancement/bindHandler.mjs +48 -0
  24. package/lib/esm/enhancement/dataName.mjs +13 -0
  25. package/lib/esm/enhancement/enhance.mjs +16 -0
  26. package/lib/esm/enhancement/functionDefaultProps.mjs +29 -0
  27. package/lib/esm/enhancement/hoistProps.mjs +78 -0
  28. package/lib/esm/enhancement/i18n.mjs +20 -0
  29. package/lib/esm/enhancement/inheritedName.mjs +16 -0
  30. package/lib/esm/enhancement/staticChildren.mjs +120 -0
  31. package/lib/esm/enhancement/style.mjs +50 -0
  32. package/lib/esm/enhancement/uncontrolledProps.mjs +107 -0
  33. package/lib/esm/index.mjs +23 -0
  34. package/lib/esm/register.mjs +31 -0
  35. package/lib/esm/styled/reshadow-core.mjs +18 -0
  36. package/lib/esm/styled/sstyled.mjs +121 -0
  37. package/lib/esm/utils/assignProps.mjs +76 -0
  38. package/lib/esm/utils/canUseDOM.mjs +6 -0
  39. package/lib/esm/utils/capitalizeFirstLetter.mjs +6 -0
  40. package/lib/esm/utils/enhances/WithI18n.mjs +54 -0
  41. package/lib/esm/utils/logger.mjs +35 -0
  42. package/lib/esm/utils/pick.mjs +15 -0
  43. package/lib/esm/utils/ref.mjs +43 -0
  44. package/lib/esm/utils/use/useEnhancedEffect.mjs +6 -0
  45. package/lib/index.mjs +22 -8
  46. package/lib/register.mjs +10 -8
  47. package/lib/styled/reshadow-core.mjs +8 -233
  48. package/lib/styled/sstyled.mjs +38 -59
  49. package/lib/utils/assignProps.mjs +25 -33
  50. package/lib/utils/canUseDOM.mjs +5 -3
  51. package/lib/utils/capitalizeFirstLetter.mjs +4 -2
  52. package/lib/utils/enhances/WithI18n.mjs +22 -51
  53. package/lib/utils/logger.mjs +16 -13
  54. package/lib/utils/pick.mjs +4 -2
  55. package/lib/utils/ref.mjs +19 -59
  56. package/lib/utils/use/useEnhancedEffect.mjs +4 -3
  57. package/package.json +2 -2
  58. package/vite.config.ts +8 -0
  59. package/lib/LastInteractionType.mjs.map +0 -1
  60. package/lib/core-types/Component.mjs.map +0 -1
  61. package/lib/core-types/UnknownProperties.mjs +0 -2
  62. package/lib/core-types/UnknownProperties.mjs.map +0 -1
  63. package/lib/core-types/reshadow.d.mjs +0 -2
  64. package/lib/core-types/reshadow.d.mjs.map +0 -1
  65. package/lib/core-types/symbols.mjs.map +0 -1
  66. package/lib/coreFactory.mjs.map +0 -1
  67. package/lib/enhancement/Children.mjs.map +0 -1
  68. package/lib/enhancement/Root.mjs.map +0 -1
  69. package/lib/enhancement/bindHandler.mjs.map +0 -1
  70. package/lib/enhancement/dataName.mjs.map +0 -1
  71. package/lib/enhancement/enhance.mjs.map +0 -1
  72. package/lib/enhancement/functionDefaultProps.mjs.map +0 -1
  73. package/lib/enhancement/hoistProps.mjs.map +0 -1
  74. package/lib/enhancement/i18n.mjs.map +0 -1
  75. package/lib/enhancement/inheritedName.mjs.map +0 -1
  76. package/lib/enhancement/staticChildren.mjs.map +0 -1
  77. package/lib/enhancement/style.mjs.map +0 -1
  78. package/lib/enhancement/uncontrolledProps.mjs.map +0 -1
  79. package/lib/index.mjs.map +0 -1
  80. package/lib/register.mjs.map +0 -1
  81. package/lib/styled/index.mjs +0 -6
  82. package/lib/styled/index.mjs.map +0 -1
  83. package/lib/styled/reshadow-core.mjs.map +0 -1
  84. package/lib/styled/sstyled.mjs.map +0 -1
  85. package/lib/theme/processor.mjs +0 -307
  86. package/lib/theme/processor.mjs.map +0 -1
  87. package/lib/theme/themes/dark.mjs +0 -378
  88. package/lib/theme/themes/dark.mjs.map +0 -1
  89. package/lib/theme/themes/default.mjs +0 -387
  90. package/lib/theme/themes/default.mjs.map +0 -1
  91. package/lib/theme/themes/light.mjs +0 -387
  92. package/lib/theme/themes/light.mjs.map +0 -1
  93. package/lib/theme/utils.mjs +0 -286
  94. package/lib/theme/utils.mjs.map +0 -1
  95. package/lib/utils/CSSinJS.mjs +0 -28
  96. package/lib/utils/CSSinJS.mjs.map +0 -1
  97. package/lib/utils/ScreenReaderOnly.mjs +0 -24
  98. package/lib/utils/ScreenReaderOnly.mjs.map +0 -1
  99. package/lib/utils/ThemeProvider.mjs +0 -71
  100. package/lib/utils/ThemeProvider.mjs.map +0 -1
  101. package/lib/utils/addonText.mjs +0 -11
  102. package/lib/utils/addonText.mjs.map +0 -1
  103. package/lib/utils/addonTextChildren.mjs +0 -37
  104. package/lib/utils/addonTextChildren.mjs.map +0 -1
  105. package/lib/utils/ariaProps.mjs +0 -16
  106. package/lib/utils/ariaProps.mjs.map +0 -1
  107. package/lib/utils/assignProps.mjs.map +0 -1
  108. package/lib/utils/canUseDOM.mjs.map +0 -1
  109. package/lib/utils/capitalizeFirstLetter.mjs.map +0 -1
  110. package/lib/utils/color.mjs +0 -196
  111. package/lib/utils/color.mjs.map +0 -1
  112. package/lib/utils/compose.mjs +0 -15
  113. package/lib/utils/compose.mjs.map +0 -1
  114. package/lib/utils/createHoc.mjs +0 -46
  115. package/lib/utils/createHoc.mjs.map +0 -1
  116. package/lib/utils/createUUID.mjs +0 -9
  117. package/lib/utils/createUUID.mjs.map +0 -1
  118. package/lib/utils/cssToIntDefault.mjs +0 -16
  119. package/lib/utils/cssToIntDefault.mjs.map +0 -1
  120. package/lib/utils/enhances/WithAutoFocus.mjs +0 -67
  121. package/lib/utils/enhances/WithAutoFocus.mjs.map +0 -1
  122. package/lib/utils/enhances/WithCSS.mjs +0 -79
  123. package/lib/utils/enhances/WithCSS.mjs.map +0 -1
  124. package/lib/utils/enhances/WithI18n.mjs.map +0 -1
  125. package/lib/utils/enhances/WithKeyboardFocus.mjs +0 -84
  126. package/lib/utils/enhances/WithKeyboardFocus.mjs.map +0 -1
  127. package/lib/utils/enhances/WithRef.mjs +0 -18
  128. package/lib/utils/enhances/WithRef.mjs.map +0 -1
  129. package/lib/utils/enhances/a11yEnhance.mjs +0 -66
  130. package/lib/utils/enhances/a11yEnhance.mjs.map +0 -1
  131. package/lib/utils/enhances/animatedSizeEnhance.mjs +0 -90
  132. package/lib/utils/enhances/animatedSizeEnhance.mjs.map +0 -1
  133. package/lib/utils/enhances/autoFocusEnhance.mjs +0 -38
  134. package/lib/utils/enhances/autoFocusEnhance.mjs.map +0 -1
  135. package/lib/utils/enhances/contextEnhance.mjs +0 -14
  136. package/lib/utils/enhances/contextEnhance.mjs.map +0 -1
  137. package/lib/utils/enhances/i18nEnhance.mjs +0 -92
  138. package/lib/utils/enhances/i18nEnhance.mjs.map +0 -1
  139. package/lib/utils/enhances/keyboardFocusEnhance.mjs +0 -57
  140. package/lib/utils/enhances/keyboardFocusEnhance.mjs.map +0 -1
  141. package/lib/utils/enhances/resolveColorEnhance.mjs +0 -17
  142. package/lib/utils/enhances/resolveColorEnhance.mjs.map +0 -1
  143. package/lib/utils/eventEmitter.mjs +0 -34
  144. package/lib/utils/eventEmitter.mjs.map +0 -1
  145. package/lib/utils/findComponent.mjs +0 -95
  146. package/lib/utils/findComponent.mjs.map +0 -1
  147. package/lib/utils/fire.mjs +0 -15
  148. package/lib/utils/fire.mjs.map +0 -1
  149. package/lib/utils/focus-lock/focusBorders.mjs +0 -62
  150. package/lib/utils/focus-lock/focusBorders.mjs.map +0 -1
  151. package/lib/utils/focus-lock/getFocusableIn.mjs +0 -19
  152. package/lib/utils/focus-lock/getFocusableIn.mjs.map +0 -1
  153. package/lib/utils/focus-lock/isFocusInside.mjs +0 -9
  154. package/lib/utils/focus-lock/isFocusInside.mjs.map +0 -1
  155. package/lib/utils/focus-lock/isFocusable.mjs +0 -43
  156. package/lib/utils/focus-lock/isFocusable.mjs.map +0 -1
  157. package/lib/utils/focus-lock/setFocus.mjs +0 -55
  158. package/lib/utils/focus-lock/setFocus.mjs.map +0 -1
  159. package/lib/utils/getAccessibleName.mjs +0 -49
  160. package/lib/utils/getAccessibleName.mjs.map +0 -1
  161. package/lib/utils/getDisplayName.mjs +0 -4
  162. package/lib/utils/getDisplayName.mjs.map +0 -1
  163. package/lib/utils/getEventTarget.mjs +0 -45
  164. package/lib/utils/getEventTarget.mjs.map +0 -1
  165. package/lib/utils/getOriginChildren.mjs +0 -10
  166. package/lib/utils/getOriginChildren.mjs.map +0 -1
  167. package/lib/utils/getRandomInt.mjs +0 -5
  168. package/lib/utils/getRandomInt.mjs.map +0 -1
  169. package/lib/utils/getValue.mjs +0 -10
  170. package/lib/utils/getValue.mjs.map +0 -1
  171. package/lib/utils/hasLabels.mjs +0 -39
  172. package/lib/utils/hasLabels.mjs.map +0 -1
  173. package/lib/utils/hasParent.mjs +0 -7
  174. package/lib/utils/hasParent.mjs.map +0 -1
  175. package/lib/utils/if.mjs +0 -9
  176. package/lib/utils/if.mjs.map +0 -1
  177. package/lib/utils/ifChildren.mjs +0 -10
  178. package/lib/utils/ifChildren.mjs.map +0 -1
  179. package/lib/utils/injectStyle.mjs +0 -41
  180. package/lib/utils/injectStyle.mjs.map +0 -1
  181. package/lib/utils/inputProps.mjs +0 -14
  182. package/lib/utils/inputProps.mjs.map +0 -1
  183. package/lib/utils/isNode.mjs +0 -21
  184. package/lib/utils/isNode.mjs.map +0 -1
  185. package/lib/utils/isPromise.mjs +0 -4
  186. package/lib/utils/isPromise.mjs.map +0 -1
  187. package/lib/utils/isRetina.mjs +0 -9
  188. package/lib/utils/isRetina.mjs.map +0 -1
  189. package/lib/utils/logger.mjs.map +0 -1
  190. package/lib/utils/numericChecker.mjs +0 -27
  191. package/lib/utils/numericChecker.mjs.map +0 -1
  192. package/lib/utils/ownerDocument.mjs +0 -4
  193. package/lib/utils/ownerDocument.mjs.map +0 -1
  194. package/lib/utils/pick.mjs.map +0 -1
  195. package/lib/utils/propsForElement.mjs +0 -50
  196. package/lib/utils/propsForElement.mjs.map +0 -1
  197. package/lib/utils/rafTrottle.mjs +0 -26
  198. package/lib/utils/rafTrottle.mjs.map +0 -1
  199. package/lib/utils/reactToText.mjs +0 -26
  200. package/lib/utils/reactToText.mjs.map +0 -1
  201. package/lib/utils/ref.mjs.map +0 -1
  202. package/lib/utils/setRef.mjs +0 -3
  203. package/lib/utils/setRef.mjs.map +0 -1
  204. package/lib/utils/syncScroll.mjs +0 -54
  205. package/lib/utils/syncScroll.mjs.map +0 -1
  206. package/lib/utils/uncontroll.mjs +0 -38
  207. package/lib/utils/uncontroll.mjs.map +0 -1
  208. package/lib/utils/uniqueID.mjs +0 -33
  209. package/lib/utils/uniqueID.mjs.map +0 -1
  210. package/lib/utils/use/useColorResolver.mjs +0 -200
  211. package/lib/utils/use/useColorResolver.mjs.map +0 -1
  212. package/lib/utils/use/useCss.mjs +0 -12
  213. package/lib/utils/use/useCss.mjs.map +0 -1
  214. package/lib/utils/use/useEnhancedEffect.mjs.map +0 -1
  215. package/lib/utils/use/useEventCallback.mjs +0 -19
  216. package/lib/utils/use/useEventCallback.mjs.map +0 -1
  217. package/lib/utils/use/useEventListener.mjs +0 -25
  218. package/lib/utils/use/useEventListener.mjs.map +0 -1
  219. package/lib/utils/use/useFocusLock.mjs +0 -266
  220. package/lib/utils/use/useFocusLock.mjs.map +0 -1
  221. package/lib/utils/use/usePreventScroll.mjs +0 -70
  222. package/lib/utils/use/usePreventScroll.mjs.map +0 -1
  223. package/lib/utils/useCssVariable.mjs +0 -46
  224. package/lib/utils/useCssVariable.mjs.map +0 -1
  225. package/lib/utils/zIndexStacking.mjs +0 -38
  226. package/lib/utils/zIndexStacking.mjs.map +0 -1
@@ -1,200 +0,0 @@
1
- import { useContextTokens } from "../ThemeProvider.mjs";
2
- import logger from "../logger.mjs";
3
- import defaultDesignThemeJson from "../../theme/themes/default.mjs";
4
- var defaultDesignTheme = defaultDesignThemeJson;
5
- var basicPalette = {
6
- '--white': '#ffffff',
7
- '--black': '#000000',
8
- '--gray-50': '#f4f5f9',
9
- '--gray-100': '#e0e1e9',
10
- '--gray-200': '#c4c7cf',
11
- '--gray-300': '#a9abb6',
12
- '--gray-400': '#8a8e9b',
13
- '--gray-500': '#6c6e79',
14
- '--gray-600': '#484a54',
15
- '--gray-700': '#2b2e38',
16
- '--gray-800': '#191b23',
17
- '--blue-50': '#e9f7ff',
18
- '--blue-100': '#c4e5fe',
19
- '--blue-200': '#8ecdff',
20
- '--blue-300': '#2bb3ff',
21
- '--blue-400': '#008ff8',
22
- '--blue-500': '#006dca',
23
- '--blue-600': '#044792',
24
- '--blue-700': '#002b5f',
25
- '--blue-800': '#001b3d',
26
- '--green-50': '#dbfee8',
27
- '--green-100': '#9ef2c9',
28
- '--green-200': '#59ddaa',
29
- '--green-300': '#00c192',
30
- '--green-400': '#009f81',
31
- '--green-500': '#007c65',
32
- '--green-600': '#055345',
33
- '--green-700': '#00342d',
34
- '--green-800': '#00201e',
35
- '--salad-50': '#ecfbcd',
36
- '--salad-100': '#c7ee96',
37
- '--salad-200': '#9bd85d',
38
- '--salad-300': '#66c030',
39
- '--salad-400': '#35a21e',
40
- '--salad-500': '#0a7e22',
41
- '--salad-600': '#005613',
42
- '--salad-700': '#003509',
43
- '--salad-800': '#002203',
44
- '--orange-50': '#fff3d9',
45
- '--orange-100': '#ffdca2',
46
- '--orange-200': '#ffb26e',
47
- '--orange-300': '#ff8c43',
48
- '--orange-400': '#ff642d',
49
- '--orange-500': '#c33909',
50
- '--orange-600': '#8b1500',
51
- '--orange-700': '#551200',
52
- '--orange-800': '#351000',
53
- '--yellow-50': '#fdf7c8',
54
- '--yellow-100': '#fce081',
55
- '--yellow-200': '#fdc23c',
56
- '--yellow-300': '#ef9800',
57
- '--yellow-400': '#d87900',
58
- '--yellow-500': '#a75800',
59
- '--yellow-600': '#743a00',
60
- '--yellow-700': '#462500',
61
- '--yellow-800': '#2c1600',
62
- '--red-50': '#fff0f7',
63
- '--red-100': '#ffd7df',
64
- '--red-200': '#ffaeb5',
65
- '--red-300': '#ff8786',
66
- '--red-400': '#ff4953',
67
- '--red-500': '#d1002f',
68
- '--red-600': '#8e0016',
69
- '--red-700': '#58000a',
70
- '--red-800': '#410101',
71
- '--pink-50': '#fff0ff',
72
- '--pink-100': '#ffd3ff',
73
- '--pink-200': '#ffa9fa',
74
- '--pink-300': '#f67cf2',
75
- '--pink-400': '#e14adf',
76
- '--pink-500': '#b229b9',
77
- '--pink-600': '#7d0480',
78
- '--pink-700': '#4d0050',
79
- '--pink-800': '#340439',
80
- '--violet-50': '#f9f2ff',
81
- '--violet-100': '#edd9ff',
82
- '--violet-200': '#dcb8ff',
83
- '--violet-300': '#c695ff',
84
- '--violet-400': '#ab6cfe',
85
- '--violet-500': '#8649e1',
86
- '--violet-600': '#5925ab',
87
- '--violet-700': '#421983',
88
- '--violet-800': '#220358',
89
- '--brand-color': '#ff642d',
90
- '--pinterest': '#bd081c',
91
- '--instagram': '#e4405f',
92
- '--youtube': '#ff0000',
93
- '--facebook': '#3b5998',
94
- '--linkedIn': '#1a7ab2',
95
- '--twitter': '#2bafeb',
96
- '--google-my-business': '#1a73e8',
97
- '--google-blue': '#1a0dab',
98
- '--google-green': '#016723'
99
- };
100
- var deprecatedPalette = {
101
- '--denim-blue': '#006dca',
102
- '--light-blue': '#008ff8',
103
- '--neon-blue': '#8ecdff',
104
- '--cyan': '#2bb3ff',
105
- '--green': '#009f81',
106
- '--dark-green': '#007c65',
107
- '--yellow': '#fdc23c',
108
- '--light-orange': '#ff8c43',
109
- '--orange': '#ff642d',
110
- '--dark-orange': '#c33909',
111
- '--red': '#ff4953',
112
- '--dark-red': '#d1002f',
113
- '--violet': '#ab6cfe',
114
- '--dark-violet': '#8649e1',
115
- '--pink': '#e14adf',
116
- '--asphalt': '#6c6e79',
117
- '--wall': '#8a8e9b',
118
- '--mist': '#a9abb6',
119
- '--mist-light': '#c4c7cf',
120
- '--stone': '#a9abb6',
121
- '--stone-light': '#c4c7cf',
122
- '--gray20': '#191b23',
123
- '--gray30': '#191b23',
124
- '--gray40': '#484a54',
125
- '--gray60': '#6c6e79',
126
- '--gray70': '#a9abb6',
127
- '--gray80': '#c4c7cf',
128
- '--gray94': '#e0e1e9',
129
- '--gray96': '#f4f5f9',
130
- '--mystic': '#f4f5f9',
131
- '--mercury': '#e0e1e9',
132
- '--blue50': '#e9f7ff',
133
- '--blue100': '#c4e5fe',
134
- '--blue400': '#008ff8',
135
- '--blue600': '#044792',
136
- '--green50': '#dbfee8',
137
- '--green100': '#9ef2c9',
138
- '--green200': '#59ddaa',
139
- '--green300': '#00c192',
140
- '--green600': '#055345',
141
- '--red50': '#fff0f7',
142
- '--red100': '#ffd7df',
143
- '--red200': '#ffaeb5',
144
- '--red300': '#ff8786',
145
- '--red600': '#8e0016',
146
- '--orange50': '#fff3d9',
147
- '--orange100': '#ffdca2',
148
- '--orange200': '#ffb26e',
149
- '--yellow100': '#fce081',
150
- '--iceberg-blue': '#6fafd4',
151
- '--salad': '#8bc835',
152
- '--granitic': '#2f3439',
153
- '--gray10': '#222222',
154
- '--sky': '#e1f2ff',
155
- '--lily': '#e6f9fd',
156
- '--marble': '#f1f6f8',
157
- '--googleplus': '#e14b3f',
158
- '--linkedin': '#1a7ab2'
159
- };
160
- var makeDeprecationMessage = function makeDeprecationMessage(color) {
161
- return "You are using ".concat(color, " color in your app. It's deprecated and will be removed from palette in the next major release. Please use colors from https://developer.semrush.com/intergalactic/style/design-tokens/ instead.");
162
- };
163
- export var useColorResolver = function useColorResolver() {
164
- var contextTheme = useContextTokens();
165
- return function (color) {
166
- if (!color) return undefined;
167
- if (color.startsWith('--')) {
168
- if (deprecatedPalette[color]) {
169
- logger.warn(true, makeDeprecationMessage(color), undefined);
170
- return deprecatedPalette[color];
171
- }
172
- if (basicPalette[color]) {
173
- return basicPalette[color];
174
- }
175
- var resolvedColor;
176
- if (contextTheme !== null && contextTheme !== void 0 && contextTheme[color]) {
177
- resolvedColor = contextTheme[color];
178
- }
179
- if (defaultDesignTheme[color]) {
180
- resolvedColor = defaultDesignTheme[color];
181
- }
182
- if (resolvedColor) {
183
- return "var(".concat(color, ", ").concat(resolvedColor, ")");
184
- }
185
- return "var(".concat(color, ")");
186
- }
187
- if (defaultDesignTheme["--intergalactic-".concat(color)]) {
188
- return "var(--intergalactic-".concat(color, ", ").concat(defaultDesignTheme["--intergalactic-".concat(color)], ")");
189
- }
190
- if (deprecatedPalette["--".concat(color)]) {
191
- logger.warn(true, makeDeprecationMessage(color), undefined);
192
- return deprecatedPalette["--".concat(color)];
193
- }
194
- if (basicPalette["--".concat(color)]) {
195
- return "var(--".concat(color, ", ").concat(basicPalette["--".concat(color)], ")");
196
- }
197
- return color;
198
- };
199
- };
200
- //# sourceMappingURL=useColorResolver.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useColorResolver.mjs","names":["useContextTokens","logger","defaultDesignThemeJson","defaultDesignTheme","basicPalette","deprecatedPalette","makeDeprecationMessage","color","concat","useColorResolver","contextTheme","undefined","startsWith","warn","resolvedColor"],"sources":["../../../src/utils/use/useColorResolver.ts"],"sourcesContent":["import { useContextTokens } from '../ThemeProvider';\nimport logger from '../logger';\n\nimport defaultDesignThemeJson from '../../theme/themes/default';\nconst defaultDesignTheme = defaultDesignThemeJson as Record<string, string>;\nconst basicPalette: Record<string, string> = {\n '--white': '#ffffff',\n '--black': '#000000',\n '--gray-50': '#f4f5f9',\n '--gray-100': '#e0e1e9',\n '--gray-200': '#c4c7cf',\n '--gray-300': '#a9abb6',\n '--gray-400': '#8a8e9b',\n '--gray-500': '#6c6e79',\n '--gray-600': '#484a54',\n '--gray-700': '#2b2e38',\n '--gray-800': '#191b23',\n '--blue-50': '#e9f7ff',\n '--blue-100': '#c4e5fe',\n '--blue-200': '#8ecdff',\n '--blue-300': '#2bb3ff',\n '--blue-400': '#008ff8',\n '--blue-500': '#006dca',\n '--blue-600': '#044792',\n '--blue-700': '#002b5f',\n '--blue-800': '#001b3d',\n '--green-50': '#dbfee8',\n '--green-100': '#9ef2c9',\n '--green-200': '#59ddaa',\n '--green-300': '#00c192',\n '--green-400': '#009f81',\n '--green-500': '#007c65',\n '--green-600': '#055345',\n '--green-700': '#00342d',\n '--green-800': '#00201e',\n '--salad-50': '#ecfbcd',\n '--salad-100': '#c7ee96',\n '--salad-200': '#9bd85d',\n '--salad-300': '#66c030',\n '--salad-400': '#35a21e',\n '--salad-500': '#0a7e22',\n '--salad-600': '#005613',\n '--salad-700': '#003509',\n '--salad-800': '#002203',\n '--orange-50': '#fff3d9',\n '--orange-100': '#ffdca2',\n '--orange-200': '#ffb26e',\n '--orange-300': '#ff8c43',\n '--orange-400': '#ff642d',\n '--orange-500': '#c33909',\n '--orange-600': '#8b1500',\n '--orange-700': '#551200',\n '--orange-800': '#351000',\n '--yellow-50': '#fdf7c8',\n '--yellow-100': '#fce081',\n '--yellow-200': '#fdc23c',\n '--yellow-300': '#ef9800',\n '--yellow-400': '#d87900',\n '--yellow-500': '#a75800',\n '--yellow-600': '#743a00',\n '--yellow-700': '#462500',\n '--yellow-800': '#2c1600',\n '--red-50': '#fff0f7',\n '--red-100': '#ffd7df',\n '--red-200': '#ffaeb5',\n '--red-300': '#ff8786',\n '--red-400': '#ff4953',\n '--red-500': '#d1002f',\n '--red-600': '#8e0016',\n '--red-700': '#58000a',\n '--red-800': '#410101',\n '--pink-50': '#fff0ff',\n '--pink-100': '#ffd3ff',\n '--pink-200': '#ffa9fa',\n '--pink-300': '#f67cf2',\n '--pink-400': '#e14adf',\n '--pink-500': '#b229b9',\n '--pink-600': '#7d0480',\n '--pink-700': '#4d0050',\n '--pink-800': '#340439',\n '--violet-50': '#f9f2ff',\n '--violet-100': '#edd9ff',\n '--violet-200': '#dcb8ff',\n '--violet-300': '#c695ff',\n '--violet-400': '#ab6cfe',\n '--violet-500': '#8649e1',\n '--violet-600': '#5925ab',\n '--violet-700': '#421983',\n '--violet-800': '#220358',\n '--brand-color': '#ff642d',\n '--pinterest': '#bd081c',\n '--instagram': '#e4405f',\n '--youtube': '#ff0000',\n '--facebook': '#3b5998',\n '--linkedIn': '#1a7ab2',\n '--twitter': '#2bafeb',\n '--google-my-business': '#1a73e8',\n '--google-blue': '#1a0dab',\n '--google-green': '#016723',\n};\nconst deprecatedPalette: Record<string, string> = {\n '--denim-blue': '#006dca',\n '--light-blue': '#008ff8',\n '--neon-blue': '#8ecdff',\n '--cyan': '#2bb3ff',\n '--green': '#009f81',\n '--dark-green': '#007c65',\n '--yellow': '#fdc23c',\n '--light-orange': '#ff8c43',\n '--orange': '#ff642d',\n '--dark-orange': '#c33909',\n '--red': '#ff4953',\n '--dark-red': '#d1002f',\n '--violet': '#ab6cfe',\n '--dark-violet': '#8649e1',\n '--pink': '#e14adf',\n '--asphalt': '#6c6e79',\n '--wall': '#8a8e9b',\n '--mist': '#a9abb6',\n '--mist-light': '#c4c7cf',\n '--stone': '#a9abb6',\n '--stone-light': '#c4c7cf',\n '--gray20': '#191b23',\n '--gray30': '#191b23',\n '--gray40': '#484a54',\n '--gray60': '#6c6e79',\n '--gray70': '#a9abb6',\n '--gray80': '#c4c7cf',\n '--gray94': '#e0e1e9',\n '--gray96': '#f4f5f9',\n '--mystic': '#f4f5f9',\n '--mercury': '#e0e1e9',\n '--blue50': '#e9f7ff',\n '--blue100': '#c4e5fe',\n '--blue400': '#008ff8',\n '--blue600': '#044792',\n '--green50': '#dbfee8',\n '--green100': '#9ef2c9',\n '--green200': '#59ddaa',\n '--green300': '#00c192',\n '--green600': '#055345',\n '--red50': '#fff0f7',\n '--red100': '#ffd7df',\n '--red200': '#ffaeb5',\n '--red300': '#ff8786',\n '--red600': '#8e0016',\n '--orange50': '#fff3d9',\n '--orange100': '#ffdca2',\n '--orange200': '#ffb26e',\n '--yellow100': '#fce081',\n '--iceberg-blue': '#6fafd4',\n '--salad': '#8bc835',\n '--granitic': '#2f3439',\n '--gray10': '#222222',\n '--sky': '#e1f2ff',\n '--lily': '#e6f9fd',\n '--marble': '#f1f6f8',\n '--googleplus': '#e14b3f',\n '--linkedin': '#1a7ab2',\n};\n\nconst makeDeprecationMessage = (color: string) =>\n `You are using ${color} color in your app. It's deprecated and will be removed from palette in the next major release. Please use colors from https://developer.semrush.com/intergalactic/style/design-tokens/ instead.`;\n\nexport const useColorResolver = () => {\n const contextTheme = useContextTokens();\n\n return (color?: string) => {\n if (!color) return undefined as any;\n if (color.startsWith('--')) {\n if (deprecatedPalette[color]) {\n logger.warn(true, makeDeprecationMessage(color), undefined);\n return deprecatedPalette[color];\n }\n if (basicPalette[color]) {\n return basicPalette[color];\n }\n let resolvedColor: string | undefined;\n\n if (contextTheme?.[color]) {\n resolvedColor = contextTheme[color];\n }\n if (defaultDesignTheme[color]) {\n resolvedColor = defaultDesignTheme[color];\n }\n\n if (resolvedColor) {\n return `var(${color}, ${resolvedColor})`;\n }\n\n return `var(${color})`;\n }\n if (defaultDesignTheme[`--intergalactic-${color}`]) {\n return `var(--intergalactic-${color}, ${defaultDesignTheme[`--intergalactic-${color}`]})`;\n }\n if (deprecatedPalette[`--${color}`]) {\n logger.warn(true, makeDeprecationMessage(color), undefined);\n return deprecatedPalette[`--${color}`];\n }\n if (basicPalette[`--${color}`]) {\n return `var(--${color}, ${basicPalette[`--${color}`]})`;\n }\n return color;\n };\n};\n"],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import React from 'react';
2
- import { initNanoCss, normaliseCss, WithCssContext } from "../enhances/WithCSS.mjs";
3
- var useCss = function useCss() {
4
- var _nano$cache;
5
- var css = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6
- var nanoOptions = React.useContext(WithCssContext);
7
- var nano = initNanoCss(nanoOptions);
8
- var cleanCss = normaliseCss(css);
9
- return Object.keys(cleanCss).length ? (_nano$cache = nano.cache) === null || _nano$cache === void 0 ? void 0 : _nano$cache.call(nano, cleanCss) : '';
10
- };
11
- export default useCss;
12
- //# sourceMappingURL=useCss.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useCss.mjs","names":["React","initNanoCss","normaliseCss","WithCssContext","useCss","_nano$cache","css","arguments","length","undefined","nanoOptions","useContext","nano","cleanCss","Object","keys","cache","call"],"sources":["../../../src/utils/use/useCss.ts"],"sourcesContent":["import React from 'react';\nimport { CssLikeObject } from '@phytonmk/nano-css/types/common';\nimport { initNanoCss, normaliseCss, WithCssContext } from '../enhances/WithCSS';\n\nexport type IUseCssArg = CssLikeObject;\n\nconst useCss = (css: IUseCssArg = {}) => {\n const nanoOptions = React.useContext(WithCssContext);\n const nano = initNanoCss(nanoOptions);\n const cleanCss = normaliseCss(css);\n return Object.keys(cleanCss).length ? nano.cache?.(cleanCss) : '';\n};\n\nexport default useCss;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,WAAW,EAAEC,YAAY,EAAEC,cAAc,QAAQ,yBAAqB;AAI/E,IAAMC,MAAM,GAAG,SAATA,MAAMA,CAAA,EAA6B;EAAA,IAAAC,WAAA;EAAA,IAAzBC,GAAe,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAClC,IAAMG,WAAW,GAAGV,KAAK,CAACW,UAAU,CAACR,cAAc,CAAC;EACpD,IAAMS,IAAI,GAAGX,WAAW,CAACS,WAAW,CAAC;EACrC,IAAMG,QAAQ,GAAGX,YAAY,CAACI,GAAG,CAAC;EAClC,OAAOQ,MAAM,CAACC,IAAI,CAACF,QAAQ,CAAC,CAACL,MAAM,IAAAH,WAAA,GAAGO,IAAI,CAACI,KAAK,cAAAX,WAAA,uBAAVA,WAAA,CAAAY,IAAA,CAAAL,IAAI,EAASC,QAAQ,CAAC,GAAG,EAAE;AACnE,CAAC;AAED,eAAeT,MAAM"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEnhancedEffect.mjs","names":["React","canUseDOM","useEnhancedEffect","useLayoutEffect","useEffect"],"sources":["../../../src/utils/use/useEnhancedEffect.ts"],"sourcesContent":["import React from 'react';\nimport canUseDOM from '../canUseDOM';\n\nconst useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n\nexport default useEnhancedEffect;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,kBAAc;AAEpC,IAAMC,iBAAiB,GAAGD,SAAS,EAAE,GAAGD,KAAK,CAACG,eAAe,GAAGH,KAAK,CAACI,SAAS;AAE/E,eAAeF,iBAAiB"}
@@ -1,19 +0,0 @@
1
- import React from 'react';
2
- import useEnhancedEffect from "./useEnhancedEffect.mjs";
3
-
4
- /**
5
- * https://github.com/facebook/react/issues/14099#issuecomment-440013892
6
- */
7
- export default function useEventCallback(fn) {
8
- var ref = React.useRef(fn);
9
- useEnhancedEffect(function () {
10
- ref.current = fn;
11
- });
12
- return React.useCallback(function () {
13
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
14
- args[_key] = arguments[_key];
15
- }
16
- return ref.current.apply(void 0, args);
17
- }, []);
18
- }
19
- //# sourceMappingURL=useEventCallback.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEventCallback.mjs","names":["React","useEnhancedEffect","useEventCallback","fn","ref","useRef","current","useCallback","_len","arguments","length","args","Array","_key","apply"],"sources":["../../../src/utils/use/useEventCallback.ts"],"sourcesContent":["import React from 'react';\nimport useEnhancedEffect from './useEnhancedEffect';\n\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n */\nexport default function useEventCallback(fn: any) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args: any[]) => ref.current.apply(void 0, args), []);\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,iBAAiB,MAAM,yBAAqB;;AAEnD;AACA;AACA;AACA,eAAe,SAASC,gBAAgBA,CAACC,EAAO,EAAE;EAChD,IAAMC,GAAG,GAAGJ,KAAK,CAACK,MAAM,CAACF,EAAE,CAAC;EAC5BF,iBAAiB,CAAC,YAAM;IACtBG,GAAG,CAACE,OAAO,GAAGH,EAAE;EAClB,CAAC,CAAC;EACF,OAAOH,KAAK,CAACO,WAAW,CAAC;IAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;MAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;IAAA;IAAA,OAAYT,GAAG,CAACE,OAAO,CAACQ,KAAK,CAAC,KAAK,CAAC,EAAEH,IAAI,CAAC;EAAA,GAAE,EAAE,CAAC;AACnF"}
@@ -1,25 +0,0 @@
1
- import React from 'react';
2
- import canUseDOM from "../canUseDOM.mjs";
3
- import { getRef } from "../ref.mjs";
4
- var useEventListener = function useEventListener(elementOrRef, eventName, handler) {
5
- var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : undefined;
6
- var savedHandler = React.useRef();
7
- React.useEffect(function () {
8
- savedHandler.current = handler;
9
- }, [handler]);
10
- React.useEffect(function () {
11
- if (!canUseDOM()) return;
12
- var eventListener = function eventListener(event) {
13
- var _savedHandler$current;
14
- return (_savedHandler$current = savedHandler.current) === null || _savedHandler$current === void 0 ? void 0 : _savedHandler$current.call(savedHandler, event);
15
- };
16
- var node = getRef(elementOrRef);
17
- if (!node) return;
18
- node.addEventListener(eventName, eventListener, options);
19
- return function () {
20
- node.removeEventListener(eventName, eventListener, options);
21
- };
22
- }, [eventName, elementOrRef]);
23
- };
24
- export default useEventListener;
25
- //# sourceMappingURL=useEventListener.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useEventListener.mjs","names":["React","canUseDOM","getRef","useEventListener","elementOrRef","eventName","handler","options","arguments","length","undefined","savedHandler","useRef","useEffect","current","eventListener","event","_savedHandler$current","call","node","addEventListener","removeEventListener"],"sources":["../../../src/utils/use/useEventListener.ts"],"sourcesContent":["import React from 'react';\nimport canUseDOM from '../canUseDOM';\nimport { getRef } from '../ref';\n\nconst useEventListener = (\n elementOrRef: any,\n eventName: any,\n handler: any,\n options: any = undefined,\n) => {\n const savedHandler = React.useRef<(event: any) => {}>();\n\n React.useEffect(() => {\n savedHandler.current = handler;\n }, [handler]);\n\n React.useEffect(() => {\n if (!canUseDOM()) return;\n\n const eventListener = (event: any) => savedHandler.current?.(event);\n const node = getRef(elementOrRef);\n if (!node) return;\n node.addEventListener(eventName, eventListener, options);\n return () => {\n node.removeEventListener(eventName, eventListener, options);\n };\n }, [eventName, elementOrRef]);\n};\n\nexport default useEventListener;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,SAAS,MAAM,kBAAc;AACpC,SAASC,MAAM,QAAQ,YAAQ;AAE/B,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CACpBC,YAAiB,EACjBC,SAAc,EACdC,OAAY,EAET;EAAA,IADHC,OAAY,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAGE,SAAS;EAExB,IAAMC,YAAY,GAAGX,KAAK,CAACY,MAAM,EAAsB;EAEvDZ,KAAK,CAACa,SAAS,CAAC,YAAM;IACpBF,YAAY,CAACG,OAAO,GAAGR,OAAO;EAChC,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EAEbN,KAAK,CAACa,SAAS,CAAC,YAAM;IACpB,IAAI,CAACZ,SAAS,EAAE,EAAE;IAElB,IAAMc,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,KAAU;MAAA,IAAAC,qBAAA;MAAA,QAAAA,qBAAA,GAAKN,YAAY,CAACG,OAAO,cAAAG,qBAAA,uBAApBA,qBAAA,CAAAC,IAAA,CAAAP,YAAY,EAAWK,KAAK,CAAC;IAAA;IACnE,IAAMG,IAAI,GAAGjB,MAAM,CAACE,YAAY,CAAC;IACjC,IAAI,CAACe,IAAI,EAAE;IACXA,IAAI,CAACC,gBAAgB,CAACf,SAAS,EAAEU,aAAa,EAAER,OAAO,CAAC;IACxD,OAAO,YAAM;MACXY,IAAI,CAACE,mBAAmB,CAAChB,SAAS,EAAEU,aAAa,EAAER,OAAO,CAAC;IAC7D,CAAC;EACH,CAAC,EAAE,CAACF,SAAS,EAAED,YAAY,CAAC,CAAC;AAC/B,CAAC;AAED,eAAeD,gBAAgB"}
@@ -1,266 +0,0 @@
1
- import _typeof from "@babel/runtime/helpers/esm/typeof";
2
- import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
- import canUseDOM from "../canUseDOM.mjs";
4
- import LocalReact from 'react';
5
- import { isFocusInside } from "../focus-lock/isFocusInside.mjs";
6
- import { setFocus } from "../focus-lock/setFocus.mjs";
7
- import { getFocusableIn } from "../focus-lock/getFocusableIn.mjs";
8
- import { addFocusBorders, removeFocusBorders } from "../focus-lock/focusBorders.mjs";
9
- export { isFocusInside, setFocus };
10
- var syntheticEvents = {
11
- blur: 'focusout-intergalactic-focus-lock-synthetic',
12
- keydown: 'keydown-intergalactic-focus-lock-synthetic'
13
- };
14
- /**
15
- * Synthetic event are special events that always bypass all propagation guards and reaches focus lock event listeners.
16
- * You should always prevent native event propagation in order to prevent focus enforcing double calls.
17
- */
18
- export var makeFocusLockSyntheticEvent = function makeFocusLockSyntheticEvent(baseEvent) {
19
- var event = baseEvent;
20
- var type = event.type;
21
- if (!(type in syntheticEvents)) {
22
- var supported = Object.keys(syntheticEvents).join(', ');
23
- throw new Error("Unable to make synthetic event for ".concat(type, ", ").concat(supported, " are supported"));
24
- }
25
- var syntheticEvent = new Event(syntheticEvents[type], {
26
- bubbles: true
27
- });
28
- Object.defineProperty(syntheticEvent, 'target', {
29
- writable: false,
30
- value: event.target
31
- });
32
- Object.defineProperty(syntheticEvent, 'relatedTarget', {
33
- writable: false,
34
- value: event.relatedTarget
35
- });
36
- return syntheticEvent;
37
- };
38
- var useFocusBorders = function useFocusBorders(React, disabled, trapRef) {
39
- useUniqueIdHookMock(React);
40
- React.useEffect(function () {
41
- var trapNode = trapRef === null || trapRef === void 0 ? void 0 : trapRef.current;
42
- if (trapNode && !disabled && getFocusableIn(trapNode).length > 0) {
43
- addFocusBorders(trapNode);
44
- }
45
- return function () {
46
- if (trapNode) {
47
- removeFocusBorders(trapNode);
48
- }
49
- };
50
- }, [disabled]);
51
- };
52
- var uniqueId = 0;
53
- var getUniqueId = function getUniqueId(prefix) {
54
- return "".concat(prefix, "-").concat(Math.random().toString(36).slice(2), "-").concat(uniqueId++);
55
- };
56
-
57
- /**
58
- * # Focus lock hook merging
59
- * In some cases same page might contain different versions of components.
60
- * In such cases, we need to ensure that only one version of focus lock hook is used.
61
- * So, it's why we have `useFocusLockHook` function that is wrapped into `useFocusLock`.
62
- *
63
- * While evaluating this file code, we check if global focus lock hook is already defined.
64
- * If it's defined, we replace it ONLY if our version is higher and no components currently use it.
65
- * The last condition is very important because we are unable to replace React hook without reimplementing
66
- * React hooks lifecycle in some kind of wrapper.
67
- *
68
- * ## Versioning
69
- * Such versions merging requires us to keep hook api backward compatible.
70
- * When hook logic changes, the variable `focusLockVersion` should be incremented.
71
- *
72
- * Version update `1 -> 2`. Fixed call `safeMoveFocusInside` in `handleFocusIn` with correct second parameter (focusCameFrom instead of event.target)
73
- * Version update `2 -> 3`. Fixed React version isolation in nested hooks (`useFocusBorders`, `useUniqueId`).
74
- * Version update `3 -> 4`. Fixed lock for correct working with iframes in modal
75
- * Version update `4 -> 5`. Changed placements for border - now they wrap trap node
76
- *
77
- * Initially (for a several versions) key was `__intergalactic_focus_lock_hook_`.
78
- * Making it respect react version required to change key. So key was changed to `__intergalactic_focus_lock_hook_react_v_respectful`.
79
- *
80
- * ## React hooks order
81
- * When updating from version 2 to version 3 `useUniqueId` hook was removed.
82
- * Due to replacing useFocusLock hook in runtime, the order of hooks must be preserved.
83
- * So, useUniqueIdHookMock helps to preserve hooks order when hook is being replaced from version 2 to version 3.
84
- *
85
- * If new update requires to remove some hooks – add mocks instead of them.
86
- * If new update requires to add some hooks and no workaround with current hooks list is possible – probably focus lock hook key should be changed.
87
- */
88
- var focusLockVersion = 5;
89
- var globalFocusLockHookKey = '__intergalactic_focus_lock_hook_react_v_respectful';
90
- var focusLockAllTraps = new Set();
91
- var focusLockUsedInMountedComponents = new Set();
92
- /** Focus master is a special mode in which focus lock might work.
93
- * Normally, focus lock hook allows user focus to move freely between
94
- * all active focus traps. When component provides `focusMaster=true`
95
- * parameter, it says that it doesn't want to share focus with other traps.
96
- * It is very useful for a big components like modals or side-bars that
97
- * also have some visual backdrop.
98
- * The last element in focus masters stack is considered as a current focus master.
99
- */
100
- var focusMastersStack = [];
101
- var noop = function noop() {};
102
- var useUniqueIdHookMock = function useUniqueIdHookMock(React) {
103
- React.useState(undefined);
104
- var useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;
105
- useEnhancedEffect(noop, []);
106
- };
107
- var useFocusLockHook = function useFocusLockHook(React, trapRef, autoFocus, returnFocusTo) {
108
- var disabled = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
109
- var focusMaster = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : false;
110
- var onFocusOut = arguments.length > 6 ? arguments[6] : undefined;
111
- useFocusBorders(React, disabled, trapRef);
112
- var autoTriggerRef = React.useRef(null);
113
- var lastUserInteractionRef = React.useRef(undefined);
114
- var handleFocusOut = React.useCallback(function (event) {
115
- var focusCameFrom = event.target;
116
- var focusMovedTo = event.relatedTarget;
117
- setTimeout(function () {
118
- if (!focusCameFrom) return;
119
- if (autoTriggerRef.current) return;
120
- autoTriggerRef.current = focusCameFrom;
121
- }, 0);
122
- if (lastUserInteractionRef.current === 'mouse') return;
123
- Promise.resolve().then(function () {
124
- if (!trapRef.current) return;
125
- var currentFocusMaster = focusMastersStack[focusMastersStack.length - 1];
126
- if (currentFocusMaster && currentFocusMaster !== trapRef.current) return;
127
- var trapNodes = currentFocusMaster ? [trapRef.current] : [trapRef.current].concat(_toConsumableArray(focusLockAllTraps));
128
- if (isFocusInside(trapNodes, focusMovedTo)) return;
129
- if (_typeof(returnFocusTo) === 'object' && returnFocusTo !== null && returnFocusTo !== void 0 && returnFocusTo.current && isFocusInside(returnFocusTo.current)) return;
130
- if (focusCameFrom && focusMovedTo) {
131
- setFocus(trapRef.current, focusCameFrom, focusMovedTo);
132
- }
133
- onFocusOut === null || onFocusOut === void 0 ? void 0 : onFocusOut(event);
134
- });
135
- }, [onFocusOut]);
136
- var handleMouseEvent = React.useCallback(function () {
137
- lastUserInteractionRef.current = 'mouse';
138
- }, []);
139
- var handleKeyboardEvent = React.useCallback(function () {
140
- lastUserInteractionRef.current = 'keyboard';
141
- }, []);
142
- var returnFocus = React.useCallback(function () {
143
- var trapNode = trapRef.current;
144
- if (trapNode && !isFocusInside(trapNode)) return;
145
- var focusMastersStackCount = focusMastersStack.length;
146
- if (_typeof(returnFocusTo) === 'object' && returnFocusTo !== null && returnFocusTo !== void 0 && returnFocusTo.current) {
147
- var returnFocusNode = returnFocusTo === null || returnFocusTo === void 0 ? void 0 : returnFocusTo.current;
148
- setTimeout(function () {
149
- if (focusMastersStackCount !== focusMastersStack.length) {
150
- setFocus(returnFocusNode, trapNode);
151
- }
152
- }, 0);
153
- }
154
- if (returnFocusTo === 'auto' && autoTriggerRef.current) {
155
- var autoTrigger = autoTriggerRef.current;
156
- setTimeout(function () {
157
- if (focusMastersStackCount !== focusMastersStack.length) {
158
- setFocus(autoTrigger, trapNode);
159
- }
160
- }, 0);
161
- }
162
- }, [returnFocusTo]);
163
- React.useEffect(function () {
164
- if (_typeof(trapRef) !== 'object' || trapRef === null) return;
165
- var node = trapRef.current;
166
- if (!node) return;
167
- focusLockAllTraps.add(node);
168
- return function () {
169
- if (!node) return;
170
- focusLockAllTraps["delete"](node);
171
- };
172
- }, [disabled]);
173
- React.useEffect(function () {
174
- if (disabled) return;
175
- if (!canUseDOM()) return;
176
- if (!trapRef.current) return;
177
- var focusableChildren = Array.from(trapRef.current.children).flatMap(function (node) {
178
- return getFocusableIn(node);
179
- });
180
- if (focusableChildren.length === 0 && autoFocus !== 'enforced') return;
181
- document.body.addEventListener('focusout', handleFocusOut);
182
- document.body.addEventListener(syntheticEvents.blur, handleFocusOut);
183
- document.body.addEventListener('mousedown', handleMouseEvent);
184
- document.body.addEventListener('touchstart', handleMouseEvent);
185
- document.body.addEventListener('keydown', handleKeyboardEvent);
186
- document.body.addEventListener(syntheticEvents.keydown, handleKeyboardEvent);
187
- if (autoFocus) {
188
- setTimeout(function () {
189
- setFocus(trapRef.current, _typeof(returnFocusTo) === 'object' ? returnFocusTo === null || returnFocusTo === void 0 ? void 0 : returnFocusTo.current : document.body);
190
- }, 0);
191
- }
192
- return function () {
193
- document.body.removeEventListener('focusout', handleFocusOut);
194
- document.body.removeEventListener(syntheticEvents.blur, handleFocusOut);
195
- document.body.removeEventListener('mousedown', handleMouseEvent);
196
- document.body.removeEventListener('touchstart', handleMouseEvent);
197
- document.body.removeEventListener('keydown', handleKeyboardEvent);
198
- document.body.removeEventListener(syntheticEvents.keydown, handleKeyboardEvent);
199
- returnFocus();
200
- autoTriggerRef.current = null;
201
- };
202
- }, [disabled, autoFocus, returnFocusTo, returnFocus]);
203
- React.useEffect(function () {
204
- if (_typeof(trapRef) !== 'object' || trapRef === null) return;
205
- if (disabled) return;
206
- if (!canUseDOM()) return;
207
- if (!trapRef.current) return;
208
- var focusableChildren = Array.from(trapRef.current.children).flatMap(function (node) {
209
- return getFocusableIn(node);
210
- });
211
- if (focusableChildren.length === 0) return;
212
- if (focusMaster) {
213
- focusMastersStack.push(trapRef.current);
214
- }
215
- return function () {
216
- if (!focusMaster) return;
217
- if (focusMastersStack[focusMastersStack.length - 1] === trapRef.current) {
218
- focusMastersStack.pop();
219
- } else {
220
- focusMastersStack.splice(focusMastersStack.indexOf(trapRef.current), 1);
221
- }
222
- };
223
- }, [disabled, focusMaster]);
224
- useUniqueIdHookMock(React);
225
- React.useEffect(function () {
226
- var id = getUniqueId('focus-lock-consumer');
227
- if (disabled) return;
228
- focusLockUsedInMountedComponents.add(id);
229
- return function () {
230
- focusLockUsedInMountedComponents["delete"](id);
231
- };
232
- }, [disabled]);
233
- };
234
- var establishHookAsGlobal = function establishHookAsGlobal() {
235
- globalThis[globalFocusLockHookKey] = {
236
- hook: useFocusLockHook,
237
- version: focusLockVersion,
238
- usedInComponents: focusLockUsedInMountedComponents
239
- };
240
- };
241
- if (!globalThis[globalFocusLockHookKey]) {
242
- establishHookAsGlobal();
243
- } else if (typeof globalThis[globalFocusLockHookKey].version !== 'number') {
244
- establishHookAsGlobal();
245
- } else {
246
- var _globalFocusLockHookK = globalThis[globalFocusLockHookKey],
247
- theirVersion = _globalFocusLockHookK.version,
248
- usedInComponents = _globalFocusLockHookK.usedInComponents;
249
- if (focusLockVersion > theirVersion && usedInComponents.size === 0) {
250
- establishHookAsGlobal();
251
- }
252
- }
253
- export var useFocusLock = function useFocusLock(trapRef, autoFocus, returnFocusTo) {
254
- var _globalFocusLockHookK2, _globalFocusLockHookK3;
255
- var disabled = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
256
- var focusMaster = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
257
- var onFocusOut = arguments.length > 5 ? arguments[5] : undefined;
258
- var hook = (_globalFocusLockHookK2 = (_globalFocusLockHookK3 = globalThis[globalFocusLockHookKey]) === null || _globalFocusLockHookK3 === void 0 ? void 0 : _globalFocusLockHookK3.hook) !== null && _globalFocusLockHookK2 !== void 0 ? _globalFocusLockHookK2 : useFocusLockHook;
259
- return hook(LocalReact, trapRef, autoFocus, returnFocusTo, disabled, focusMaster, onFocusOut);
260
- };
261
- export var hasFocusableIn = function hasFocusableIn(element) {
262
- return Array.from(element.children).flatMap(function (node) {
263
- return getFocusableIn(node);
264
- }).length > 0;
265
- };
266
- //# sourceMappingURL=useFocusLock.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFocusLock.mjs","names":["canUseDOM","LocalReact","isFocusInside","setFocus","getFocusableIn","addFocusBorders","removeFocusBorders","syntheticEvents","blur","keydown","makeFocusLockSyntheticEvent","baseEvent","event","type","supported","Object","keys","join","Error","concat","syntheticEvent","Event","bubbles","defineProperty","writable","value","target","relatedTarget","useFocusBorders","React","disabled","trapRef","useUniqueIdHookMock","useEffect","trapNode","current","length","uniqueId","getUniqueId","prefix","Math","random","toString","slice","focusLockVersion","globalFocusLockHookKey","focusLockAllTraps","Set","focusLockUsedInMountedComponents","focusMastersStack","noop","useState","undefined","useEnhancedEffect","useLayoutEffect","useFocusLockHook","autoFocus","returnFocusTo","arguments","focusMaster","onFocusOut","autoTriggerRef","useRef","lastUserInteractionRef","handleFocusOut","useCallback","focusCameFrom","focusMovedTo","setTimeout","Promise","resolve","then","currentFocusMaster","trapNodes","_toConsumableArray","_typeof","handleMouseEvent","handleKeyboardEvent","returnFocus","focusMastersStackCount","returnFocusNode","autoTrigger","node","add","focusableChildren","Array","from","children","flatMap","document","body","addEventListener","removeEventListener","push","pop","splice","indexOf","id","establishHookAsGlobal","globalThis","hook","version","usedInComponents","_globalFocusLockHookK","theirVersion","size","useFocusLock","_globalFocusLockHookK2","_globalFocusLockHookK3","hasFocusableIn","element"],"sources":["../../../src/utils/use/useFocusLock.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport LocalReact from 'react';\n\nimport { isFocusInside } from '../focus-lock/isFocusInside';\nimport { setFocus } from '../focus-lock/setFocus';\nimport { getFocusableIn } from '../focus-lock/getFocusableIn';\nimport { addFocusBorders, removeFocusBorders } from '../focus-lock/focusBorders';\n\nexport { isFocusInside, setFocus };\n\nconst syntheticEvents = {\n blur: 'focusout-intergalactic-focus-lock-synthetic',\n keydown: 'keydown-intergalactic-focus-lock-synthetic',\n};\n/**\n * Synthetic event are special events that always bypass all propagation guards and reaches focus lock event listeners.\n * You should always prevent native event propagation in order to prevent focus enforcing double calls.\n */\nexport const makeFocusLockSyntheticEvent = (baseEvent: Event) => {\n const event = baseEvent as any;\n const type = event.type as keyof typeof syntheticEvents;\n if (!(type in syntheticEvents)) {\n const supported = Object.keys(syntheticEvents).join(', ');\n throw new Error(`Unable to make synthetic event for ${type}, ${supported} are supported`);\n }\n const syntheticEvent = new Event(syntheticEvents[type], {\n bubbles: true,\n });\n Object.defineProperty(syntheticEvent, 'target', { writable: false, value: event.target });\n Object.defineProperty(syntheticEvent, 'relatedTarget', {\n writable: false,\n value: event.relatedTarget,\n });\n return syntheticEvent;\n};\n\nconst useFocusBorders = (\n React: ReactT,\n disabled?: boolean,\n trapRef?: React.RefObject<HTMLElement>,\n) => {\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const trapNode = trapRef?.current;\n\n if (trapNode && !disabled && getFocusableIn(trapNode).length > 0) {\n addFocusBorders(trapNode);\n }\n\n return () => {\n if (trapNode) {\n removeFocusBorders(trapNode);\n }\n };\n }, [disabled]);\n};\n\ntype ReactT = typeof LocalReact;\n\nlet uniqueId = 0;\nconst getUniqueId = (prefix: string) =>\n `${prefix}-${Math.random().toString(36).slice(2)}-${uniqueId++}`;\n\n/**\n * # Focus lock hook merging\n * In some cases same page might contain different versions of components.\n * In such cases, we need to ensure that only one version of focus lock hook is used.\n * So, it's why we have `useFocusLockHook` function that is wrapped into `useFocusLock`.\n *\n * While evaluating this file code, we check if global focus lock hook is already defined.\n * If it's defined, we replace it ONLY if our version is higher and no components currently use it.\n * The last condition is very important because we are unable to replace React hook without reimplementing\n * React hooks lifecycle in some kind of wrapper.\n *\n * ## Versioning\n * Such versions merging requires us to keep hook api backward compatible.\n * When hook logic changes, the variable `focusLockVersion` should be incremented.\n *\n * Version update `1 -> 2`. Fixed call `safeMoveFocusInside` in `handleFocusIn` with correct second parameter (focusCameFrom instead of event.target)\n * Version update `2 -> 3`. Fixed React version isolation in nested hooks (`useFocusBorders`, `useUniqueId`).\n * Version update `3 -> 4`. Fixed lock for correct working with iframes in modal\n * Version update `4 -> 5`. Changed placements for border - now they wrap trap node\n *\n * Initially (for a several versions) key was `__intergalactic_focus_lock_hook_`.\n * Making it respect react version required to change key. So key was changed to `__intergalactic_focus_lock_hook_react_v_respectful`.\n *\n * ## React hooks order\n * When updating from version 2 to version 3 `useUniqueId` hook was removed.\n * Due to replacing useFocusLock hook in runtime, the order of hooks must be preserved.\n * So, useUniqueIdHookMock helps to preserve hooks order when hook is being replaced from version 2 to version 3.\n *\n * If new update requires to remove some hooks – add mocks instead of them.\n * If new update requires to add some hooks and no workaround with current hooks list is possible – probably focus lock hook key should be changed.\n */\nconst focusLockVersion = 5;\nconst globalFocusLockHookKey = '__intergalactic_focus_lock_hook_react_v_respectful';\n\nconst focusLockAllTraps = new Set<HTMLElement>();\nconst focusLockUsedInMountedComponents = new Set<string>();\n/** Focus master is a special mode in which focus lock might work.\n * Normally, focus lock hook allows user focus to move freely between\n * all active focus traps. When component provides `focusMaster=true`\n * parameter, it says that it doesn't want to share focus with other traps.\n * It is very useful for a big components like modals or side-bars that\n * also have some visual backdrop.\n * The last element in focus masters stack is considered as a current focus master.\n */\nconst focusMastersStack: HTMLElement[] = [];\n\nconst noop = () => {};\nconst useUniqueIdHookMock = (React: ReactT) => {\n React.useState(undefined);\n const useEnhancedEffect = canUseDOM() ? React.useLayoutEffect : React.useEffect;\n useEnhancedEffect(noop, []);\n};\n\nconst useFocusLockHook = (\n React: ReactT,\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean | 'enforced',\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n useFocusBorders(React, disabled, trapRef);\n\n const autoTriggerRef = React.useRef<HTMLElement | null>(null);\n const lastUserInteractionRef = React.useRef<'mouse' | 'keyboard' | undefined>(undefined);\n\n const handleFocusOut = React.useCallback(\n (event: Event & { relatedTarget?: HTMLElement; target?: HTMLElement }) => {\n const focusCameFrom = event.target;\n const focusMovedTo = event.relatedTarget;\n setTimeout(() => {\n if (!focusCameFrom) return;\n if (autoTriggerRef.current) return;\n autoTriggerRef.current = focusCameFrom;\n }, 0);\n if (lastUserInteractionRef.current === 'mouse') return;\n Promise.resolve().then(() => {\n if (!trapRef.current) return;\n const currentFocusMaster = focusMastersStack[focusMastersStack.length - 1];\n if (currentFocusMaster && currentFocusMaster !== trapRef.current) return;\n const trapNodes = currentFocusMaster\n ? [trapRef.current]\n : [trapRef.current, ...focusLockAllTraps];\n if (isFocusInside(trapNodes, focusMovedTo)) return;\n if (\n typeof returnFocusTo === 'object' &&\n returnFocusTo?.current &&\n isFocusInside(returnFocusTo.current)\n )\n return;\n\n if (focusCameFrom && focusMovedTo) {\n setFocus(trapRef.current, focusCameFrom, focusMovedTo);\n }\n\n onFocusOut?.(event);\n });\n },\n [onFocusOut],\n );\n const handleMouseEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'mouse';\n }, []);\n const handleKeyboardEvent = React.useCallback(() => {\n lastUserInteractionRef.current = 'keyboard';\n }, []);\n const returnFocus = React.useCallback(() => {\n const trapNode = trapRef.current;\n if (trapNode && !isFocusInside(trapNode)) return;\n const focusMastersStackCount = focusMastersStack.length;\n if (typeof returnFocusTo === 'object' && returnFocusTo?.current) {\n const returnFocusNode = returnFocusTo?.current;\n setTimeout(() => {\n if (focusMastersStackCount !== focusMastersStack.length) {\n setFocus(returnFocusNode, trapNode);\n }\n }, 0);\n }\n if (returnFocusTo === 'auto' && autoTriggerRef.current) {\n const autoTrigger = autoTriggerRef.current;\n setTimeout(() => {\n if (focusMastersStackCount !== focusMastersStack.length) {\n setFocus(autoTrigger, trapNode);\n }\n }, 0);\n }\n }, [returnFocusTo]);\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n const node = trapRef.current;\n if (!node) return;\n focusLockAllTraps.add(node);\n return () => {\n if (!node) return;\n focusLockAllTraps.delete(node);\n };\n }, [disabled]);\n\n React.useEffect(() => {\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0 && autoFocus !== 'enforced') return;\n\n document.body.addEventListener('focusout', handleFocusOut as any);\n document.body.addEventListener(syntheticEvents.blur, handleFocusOut as any);\n document.body.addEventListener('mousedown', handleMouseEvent);\n document.body.addEventListener('touchstart', handleMouseEvent);\n document.body.addEventListener('keydown', handleKeyboardEvent);\n document.body.addEventListener(syntheticEvents.keydown, handleKeyboardEvent);\n\n if (autoFocus) {\n setTimeout(() => {\n setFocus(\n trapRef.current!,\n typeof returnFocusTo === 'object' ? returnFocusTo?.current : document.body,\n );\n }, 0);\n }\n return () => {\n document.body.removeEventListener('focusout', handleFocusOut as any);\n document.body.removeEventListener(syntheticEvents.blur, handleFocusOut as any);\n document.body.removeEventListener('mousedown', handleMouseEvent);\n document.body.removeEventListener('touchstart', handleMouseEvent);\n document.body.removeEventListener('keydown', handleKeyboardEvent);\n document.body.removeEventListener(syntheticEvents.keydown, handleKeyboardEvent);\n returnFocus();\n autoTriggerRef.current = null;\n };\n }, [disabled, autoFocus, returnFocusTo, returnFocus]);\n\n React.useEffect(() => {\n if (typeof trapRef !== 'object' || trapRef === null) return;\n if (disabled) return;\n if (!canUseDOM()) return;\n if (!trapRef.current) return;\n const focusableChildren = Array.from(trapRef.current.children).flatMap((node) =>\n getFocusableIn(node as HTMLElement),\n );\n if (focusableChildren.length === 0) return;\n\n if (focusMaster) {\n focusMastersStack.push(trapRef.current);\n }\n\n return () => {\n if (!focusMaster) return;\n if (focusMastersStack[focusMastersStack.length - 1] === trapRef.current) {\n focusMastersStack.pop();\n } else {\n focusMastersStack.splice(focusMastersStack.indexOf(trapRef.current!), 1);\n }\n };\n }, [disabled, focusMaster]);\n\n useUniqueIdHookMock(React);\n React.useEffect(() => {\n const id = getUniqueId('focus-lock-consumer');\n if (disabled) return;\n focusLockUsedInMountedComponents.add(id);\n return () => {\n focusLockUsedInMountedComponents.delete(id);\n };\n }, [disabled]);\n};\nconst establishHookAsGlobal = () => {\n (globalThis as any)[globalFocusLockHookKey] = {\n hook: useFocusLockHook,\n version: focusLockVersion,\n usedInComponents: focusLockUsedInMountedComponents,\n };\n};\nif (!(globalThis as any)[globalFocusLockHookKey]) {\n establishHookAsGlobal();\n} else if (typeof (globalThis as any)[globalFocusLockHookKey].version !== 'number') {\n establishHookAsGlobal();\n} else {\n const { version: theirVersion, usedInComponents } = (globalThis as any)[globalFocusLockHookKey];\n if (focusLockVersion > theirVersion && usedInComponents.size === 0) {\n establishHookAsGlobal();\n }\n}\n\nexport const useFocusLock = (\n trapRef: React.RefObject<HTMLElement>,\n autoFocus: boolean | 'enforced',\n returnFocusTo: React.RefObject<HTMLElement> | null | 'auto',\n disabled = false,\n focusMaster = false,\n onFocusOut?: (event: Event) => void,\n) => {\n const hook = (globalThis as any)[globalFocusLockHookKey]?.hook ?? useFocusLockHook;\n return hook(LocalReact, trapRef, autoFocus, returnFocusTo, disabled, focusMaster, onFocusOut);\n};\n\nexport const hasFocusableIn = (element: HTMLElement): boolean => {\n return (\n Array.from(element.children).flatMap((node) => getFocusableIn(node as HTMLElement)).length > 0\n );\n};\n"],"mappings":"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"}