@semcore/core 2.39.4 → 16.0.0-prerelease.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (543) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +2 -2
  3. package/lib/LastInteractionType.d.ts +11 -0
  4. package/lib/LastInteractionType.js +57 -0
  5. package/lib/LastInteractionType.js.map +1 -0
  6. package/lib/LastInteractionType.mjs +51 -0
  7. package/lib/LastInteractionType.mjs.map +1 -0
  8. package/lib/core-types/Component.d.ts +189 -0
  9. package/lib/core-types/Component.js +59 -0
  10. package/lib/core-types/Component.js.map +1 -0
  11. package/lib/core-types/Component.mjs +51 -0
  12. package/lib/core-types/Component.mjs.map +1 -0
  13. package/lib/core-types/UnknownProperties.d.ts +3 -0
  14. package/lib/core-types/UnknownProperties.js +2 -0
  15. package/lib/core-types/UnknownProperties.js.map +1 -0
  16. package/lib/core-types/UnknownProperties.mjs +2 -0
  17. package/lib/core-types/UnknownProperties.mjs.map +1 -0
  18. package/lib/core-types/reshadow.d.js +2 -0
  19. package/lib/core-types/reshadow.d.js.map +1 -0
  20. package/lib/core-types/reshadow.d.mjs +2 -0
  21. package/lib/core-types/reshadow.d.mjs.map +1 -0
  22. package/lib/core-types/symbols.d.ts +9 -0
  23. package/lib/core-types/symbols.js +25 -0
  24. package/lib/core-types/symbols.js.map +1 -0
  25. package/lib/core-types/symbols.mjs +20 -0
  26. package/lib/core-types/symbols.mjs.map +1 -0
  27. package/lib/coreFactory.d.ts +27 -0
  28. package/lib/coreFactory.js +352 -0
  29. package/lib/coreFactory.js.map +1 -0
  30. package/lib/coreFactory.mjs +324 -0
  31. package/lib/coreFactory.mjs.map +1 -0
  32. package/lib/enhancement/Children.d.ts +5 -0
  33. package/lib/enhancement/Children.js +119 -0
  34. package/lib/enhancement/Children.js.map +1 -0
  35. package/lib/enhancement/Children.mjs +96 -0
  36. package/lib/enhancement/Children.mjs.map +1 -0
  37. package/lib/enhancement/Root.d.ts +6 -0
  38. package/lib/enhancement/Root.js +78 -0
  39. package/lib/enhancement/Root.js.map +1 -0
  40. package/lib/enhancement/Root.mjs +56 -0
  41. package/lib/enhancement/Root.mjs.map +1 -0
  42. package/lib/enhancement/bindHandler.d.ts +5 -0
  43. package/lib/enhancement/bindHandler.js +54 -0
  44. package/lib/enhancement/bindHandler.js.map +1 -0
  45. package/lib/enhancement/bindHandler.mjs +48 -0
  46. package/lib/enhancement/bindHandler.mjs.map +1 -0
  47. package/lib/enhancement/dataName.d.ts +4 -0
  48. package/lib/enhancement/dataName.js +20 -0
  49. package/lib/enhancement/dataName.js.map +1 -0
  50. package/lib/enhancement/dataName.mjs +13 -0
  51. package/lib/enhancement/dataName.mjs.map +1 -0
  52. package/lib/enhancement/enhance.d.ts +5 -0
  53. package/lib/enhancement/enhance.js +22 -0
  54. package/lib/enhancement/enhance.js.map +1 -0
  55. package/lib/enhancement/enhance.mjs +16 -0
  56. package/lib/enhancement/enhance.mjs.map +1 -0
  57. package/lib/enhancement/functionDefaultProps.d.ts +8 -0
  58. package/lib/enhancement/functionDefaultProps.js +36 -0
  59. package/lib/enhancement/functionDefaultProps.js.map +1 -0
  60. package/lib/enhancement/functionDefaultProps.mjs +29 -0
  61. package/lib/enhancement/functionDefaultProps.mjs.map +1 -0
  62. package/lib/enhancement/hoistProps.d.ts +10 -0
  63. package/lib/enhancement/hoistProps.js +97 -0
  64. package/lib/enhancement/hoistProps.js.map +1 -0
  65. package/lib/enhancement/hoistProps.mjs +78 -0
  66. package/lib/enhancement/hoistProps.mjs.map +1 -0
  67. package/lib/enhancement/i18n.d.ts +4 -0
  68. package/lib/enhancement/i18n.js +28 -0
  69. package/lib/enhancement/i18n.js.map +1 -0
  70. package/lib/enhancement/i18n.mjs +20 -0
  71. package/lib/enhancement/i18n.mjs.map +1 -0
  72. package/lib/enhancement/inheritedName.d.ts +8 -0
  73. package/lib/enhancement/inheritedName.js +23 -0
  74. package/lib/enhancement/inheritedName.js.map +1 -0
  75. package/lib/enhancement/inheritedName.mjs +16 -0
  76. package/lib/enhancement/inheritedName.mjs.map +1 -0
  77. package/lib/enhancement/staticChildren.d.ts +13 -0
  78. package/lib/enhancement/staticChildren.js +135 -0
  79. package/lib/enhancement/staticChildren.js.map +1 -0
  80. package/lib/enhancement/staticChildren.mjs +120 -0
  81. package/lib/enhancement/staticChildren.mjs.map +1 -0
  82. package/lib/enhancement/style.d.ts +9 -0
  83. package/lib/enhancement/style.js +60 -0
  84. package/lib/enhancement/style.js.map +1 -0
  85. package/lib/enhancement/style.mjs +49 -0
  86. package/lib/enhancement/style.mjs.map +1 -0
  87. package/lib/enhancement/uncontrolledProps.d.ts +7 -0
  88. package/lib/enhancement/uncontrolledProps.js +131 -0
  89. package/lib/enhancement/uncontrolledProps.js.map +1 -0
  90. package/lib/enhancement/uncontrolledProps.mjs +107 -0
  91. package/lib/enhancement/uncontrolledProps.mjs.map +1 -0
  92. package/lib/esm/LastInteractionType.mjs +51 -0
  93. package/lib/esm/core-types/Component.mjs +51 -0
  94. package/lib/esm/core-types/symbols.mjs +20 -0
  95. package/lib/esm/coreFactory.mjs +324 -0
  96. package/lib/esm/enhancement/Children.mjs +96 -0
  97. package/lib/esm/enhancement/Root.mjs +56 -0
  98. package/lib/esm/enhancement/bindHandler.mjs +48 -0
  99. package/lib/esm/enhancement/dataName.mjs +13 -0
  100. package/lib/esm/enhancement/enhance.mjs +16 -0
  101. package/lib/esm/enhancement/functionDefaultProps.mjs +29 -0
  102. package/lib/esm/enhancement/hoistProps.mjs +78 -0
  103. package/lib/esm/enhancement/i18n.mjs +20 -0
  104. package/lib/esm/enhancement/inheritedName.mjs +16 -0
  105. package/lib/esm/enhancement/staticChildren.mjs +120 -0
  106. package/lib/esm/enhancement/style.mjs +49 -0
  107. package/lib/esm/enhancement/uncontrolledProps.mjs +107 -0
  108. package/lib/esm/index.mjs +22 -4
  109. package/lib/esm/register.mjs +31 -0
  110. package/lib/esm/styled/index.mjs +8 -0
  111. package/lib/esm/styled/reshadow-core.mjs +234 -0
  112. package/lib/esm/styled/sstyled.mjs +121 -0
  113. package/lib/esm/utils/assignProps.mjs +86 -0
  114. package/lib/esm/utils/canUseDOM.mjs +6 -0
  115. package/lib/esm/utils/capitalizeFirstLetter.mjs +6 -0
  116. package/lib/esm/utils/createHoc.mjs +44 -0
  117. package/lib/esm/utils/enhances/WithI18n.mjs +78 -0
  118. package/lib/esm/utils/enhances/i18nEnhance.mjs +91 -0
  119. package/lib/esm/utils/getDisplayName.mjs +6 -0
  120. package/lib/esm/utils/logger.mjs +35 -0
  121. package/lib/esm/utils/pick.mjs +15 -0
  122. package/lib/esm/utils/ref.mjs +87 -0
  123. package/lib/esm/utils/use/useEnhancedEffect.mjs +6 -0
  124. package/lib/index.d.ts +11 -0
  125. package/lib/index.js +103 -0
  126. package/lib/index.js.map +1 -0
  127. package/lib/index.mjs +24 -0
  128. package/lib/index.mjs.map +1 -0
  129. package/lib/register.d.ts +8 -0
  130. package/lib/register.js +37 -0
  131. package/lib/register.js.map +1 -0
  132. package/lib/register.mjs +31 -0
  133. package/lib/register.mjs.map +1 -0
  134. package/lib/styled/index.d.ts +11 -0
  135. package/lib/styled/index.js +32 -0
  136. package/lib/styled/index.js.map +1 -0
  137. package/lib/styled/index.mjs +8 -0
  138. package/lib/styled/index.mjs.map +1 -0
  139. package/lib/styled/reshadow-core.d.ts +37 -0
  140. package/lib/styled/reshadow-core.js +256 -0
  141. package/lib/styled/reshadow-core.js.map +1 -0
  142. package/lib/styled/reshadow-core.mjs +234 -0
  143. package/lib/styled/reshadow-core.mjs.map +1 -0
  144. package/lib/styled/sstyled.d.ts +17 -0
  145. package/lib/styled/sstyled.js +149 -0
  146. package/lib/styled/sstyled.js.map +1 -0
  147. package/lib/styled/sstyled.mjs +121 -0
  148. package/lib/styled/sstyled.mjs.map +1 -0
  149. package/lib/theme/dark.json +2506 -0
  150. package/lib/theme/exclude-tokens.json +10 -0
  151. package/lib/theme/light.json +2584 -0
  152. package/lib/theme/processor.d.ts +1 -0
  153. package/lib/theme/processor.js +315 -0
  154. package/lib/theme/processor.js.map +1 -0
  155. package/lib/theme/processor.mjs +307 -0
  156. package/lib/theme/processor.mjs.map +1 -0
  157. package/lib/theme/themes/auto.css +1465 -0
  158. package/lib/theme/themes/dark.css +723 -0
  159. package/lib/theme/themes/dark.d.ts +378 -0
  160. package/lib/theme/themes/dark.js +385 -0
  161. package/lib/theme/themes/dark.js.map +1 -0
  162. package/lib/theme/themes/dark.mjs +378 -0
  163. package/lib/theme/themes/dark.mjs.map +1 -0
  164. package/lib/theme/themes/default.css +742 -0
  165. package/lib/theme/themes/default.d.ts +387 -0
  166. package/lib/theme/themes/default.js +394 -0
  167. package/lib/theme/themes/default.js.map +1 -0
  168. package/lib/theme/themes/default.mjs +387 -0
  169. package/lib/theme/themes/default.mjs.map +1 -0
  170. package/lib/theme/themes/light.css +742 -0
  171. package/lib/theme/themes/light.d.ts +387 -0
  172. package/lib/theme/themes/light.js +394 -0
  173. package/lib/theme/themes/light.js.map +1 -0
  174. package/lib/theme/themes/light.mjs +387 -0
  175. package/lib/theme/themes/light.mjs.map +1 -0
  176. package/lib/theme/utils.d.ts +52 -0
  177. package/lib/theme/utils.js +297 -0
  178. package/lib/theme/utils.js.map +1 -0
  179. package/lib/theme/utils.mjs +286 -0
  180. package/lib/theme/utils.mjs.map +1 -0
  181. package/lib/utils/CSSinJS.d.ts +5 -0
  182. package/lib/utils/CSSinJS.js +36 -0
  183. package/lib/utils/CSSinJS.js.map +1 -0
  184. package/lib/utils/CSSinJS.mjs +28 -0
  185. package/lib/utils/CSSinJS.mjs.map +1 -0
  186. package/lib/utils/ScreenReaderOnly.d.ts +8 -0
  187. package/lib/utils/ScreenReaderOnly.js +31 -0
  188. package/lib/utils/ScreenReaderOnly.js.map +1 -0
  189. package/lib/utils/ScreenReaderOnly.mjs +24 -0
  190. package/lib/utils/ScreenReaderOnly.mjs.map +1 -0
  191. package/lib/utils/ThemeProvider.d.ts +15 -0
  192. package/lib/utils/ThemeProvider.js +82 -0
  193. package/lib/utils/ThemeProvider.js.map +1 -0
  194. package/lib/utils/ThemeProvider.mjs +71 -0
  195. package/lib/utils/ThemeProvider.mjs.map +1 -0
  196. package/lib/utils/addonText.d.ts +2 -0
  197. package/lib/utils/addonText.js +18 -0
  198. package/lib/utils/addonText.js.map +1 -0
  199. package/lib/utils/addonText.mjs +11 -0
  200. package/lib/utils/addonText.mjs.map +1 -0
  201. package/lib/utils/addonTextChildren.d.ts +3 -0
  202. package/lib/utils/addonTextChildren.js +45 -0
  203. package/lib/utils/addonTextChildren.js.map +1 -0
  204. package/lib/utils/addonTextChildren.mjs +37 -0
  205. package/lib/utils/addonTextChildren.mjs.map +1 -0
  206. package/lib/utils/ariaProps.d.ts +12 -0
  207. package/lib/utils/ariaProps.js +22 -0
  208. package/lib/utils/ariaProps.js.map +1 -0
  209. package/lib/utils/ariaProps.mjs +16 -0
  210. package/lib/utils/ariaProps.mjs.map +1 -0
  211. package/lib/utils/assignProps.d.ts +11 -0
  212. package/lib/utils/assignProps.js +93 -0
  213. package/lib/utils/assignProps.js.map +1 -0
  214. package/lib/utils/assignProps.mjs +86 -0
  215. package/lib/utils/assignProps.mjs.map +1 -0
  216. package/lib/utils/canUseDOM.d.ts +1 -0
  217. package/lib/utils/canUseDOM.js +10 -0
  218. package/lib/utils/canUseDOM.js.map +1 -0
  219. package/lib/utils/canUseDOM.mjs +6 -0
  220. package/lib/utils/canUseDOM.mjs.map +1 -0
  221. package/lib/utils/capitalizeFirstLetter.d.ts +1 -0
  222. package/lib/utils/capitalizeFirstLetter.js +10 -0
  223. package/lib/utils/capitalizeFirstLetter.js.map +1 -0
  224. package/lib/utils/capitalizeFirstLetter.mjs +6 -0
  225. package/lib/utils/capitalizeFirstLetter.mjs.map +1 -0
  226. package/lib/utils/color.d.ts +5 -0
  227. package/lib/utils/color.js +208 -0
  228. package/lib/utils/color.js.map +1 -0
  229. package/lib/utils/color.mjs +196 -0
  230. package/lib/utils/color.mjs.map +1 -0
  231. package/lib/utils/compose.d.ts +1 -0
  232. package/lib/utils/compose.js +21 -0
  233. package/lib/utils/compose.js.map +1 -0
  234. package/lib/utils/compose.mjs +15 -0
  235. package/lib/utils/compose.mjs.map +1 -0
  236. package/lib/utils/createHoc.d.ts +3 -0
  237. package/lib/utils/createHoc.js +55 -0
  238. package/lib/utils/createHoc.js.map +1 -0
  239. package/lib/utils/createHoc.mjs +44 -0
  240. package/lib/utils/createHoc.mjs.map +1 -0
  241. package/lib/utils/createUUID.d.ts +1 -0
  242. package/lib/utils/createUUID.js +15 -0
  243. package/lib/utils/createUUID.js.map +1 -0
  244. package/lib/utils/createUUID.mjs +9 -0
  245. package/lib/utils/createUUID.mjs.map +1 -0
  246. package/lib/utils/cssToIntDefault.d.ts +8 -0
  247. package/lib/utils/cssToIntDefault.js +22 -0
  248. package/lib/utils/cssToIntDefault.js.map +1 -0
  249. package/lib/utils/cssToIntDefault.mjs +16 -0
  250. package/lib/utils/cssToIntDefault.mjs.map +1 -0
  251. package/lib/utils/enhances/WithAutoFocus.d.ts +14 -0
  252. package/lib/utils/enhances/WithAutoFocus.js +75 -0
  253. package/lib/utils/enhances/WithAutoFocus.js.map +1 -0
  254. package/lib/utils/enhances/WithAutoFocus.mjs +67 -0
  255. package/lib/utils/enhances/WithAutoFocus.mjs.map +1 -0
  256. package/lib/utils/enhances/WithCSS.d.ts +41 -0
  257. package/lib/utils/enhances/WithCSS.js +93 -0
  258. package/lib/utils/enhances/WithCSS.js.map +1 -0
  259. package/lib/utils/enhances/WithCSS.mjs +79 -0
  260. package/lib/utils/enhances/WithCSS.mjs.map +1 -0
  261. package/lib/utils/enhances/WithI18n.d.ts +43 -0
  262. package/lib/utils/enhances/WithI18n.js +95 -0
  263. package/lib/utils/enhances/WithI18n.js.map +1 -0
  264. package/lib/utils/enhances/WithI18n.mjs +78 -0
  265. package/lib/utils/enhances/WithI18n.mjs.map +1 -0
  266. package/lib/utils/enhances/WithKeyboardFocus.d.ts +45 -0
  267. package/lib/utils/enhances/WithKeyboardFocus.js +93 -0
  268. package/lib/utils/enhances/WithKeyboardFocus.js.map +1 -0
  269. package/lib/utils/enhances/WithKeyboardFocus.mjs +84 -0
  270. package/lib/utils/enhances/WithKeyboardFocus.mjs.map +1 -0
  271. package/lib/utils/enhances/WithRef.d.ts +3 -0
  272. package/lib/utils/enhances/WithRef.js +26 -0
  273. package/lib/utils/enhances/WithRef.js.map +1 -0
  274. package/lib/utils/enhances/WithRef.mjs +18 -0
  275. package/lib/utils/enhances/WithRef.mjs.map +1 -0
  276. package/lib/utils/enhances/a11yEnhance.d.ts +10 -0
  277. package/lib/utils/enhances/a11yEnhance.js +74 -0
  278. package/lib/utils/enhances/a11yEnhance.js.map +1 -0
  279. package/lib/utils/enhances/a11yEnhance.mjs +66 -0
  280. package/lib/utils/enhances/a11yEnhance.mjs.map +1 -0
  281. package/lib/utils/enhances/animatedSizeEnhance.d.ts +12 -0
  282. package/lib/utils/enhances/animatedSizeEnhance.js +98 -0
  283. package/lib/utils/enhances/animatedSizeEnhance.js.map +1 -0
  284. package/lib/utils/enhances/animatedSizeEnhance.mjs +90 -0
  285. package/lib/utils/enhances/animatedSizeEnhance.mjs.map +1 -0
  286. package/lib/utils/enhances/autoFocusEnhance.d.ts +10 -0
  287. package/lib/utils/enhances/autoFocusEnhance.js +46 -0
  288. package/lib/utils/enhances/autoFocusEnhance.js.map +1 -0
  289. package/lib/utils/enhances/autoFocusEnhance.mjs +38 -0
  290. package/lib/utils/enhances/autoFocusEnhance.mjs.map +1 -0
  291. package/lib/utils/enhances/contextEnhance.d.ts +3 -0
  292. package/lib/utils/enhances/contextEnhance.js +22 -0
  293. package/lib/utils/enhances/contextEnhance.js.map +1 -0
  294. package/lib/utils/enhances/contextEnhance.mjs +14 -0
  295. package/lib/utils/enhances/contextEnhance.mjs.map +1 -0
  296. package/lib/utils/enhances/i18nEnhance.d.ts +25 -0
  297. package/lib/utils/enhances/i18nEnhance.js +101 -0
  298. package/lib/utils/enhances/i18nEnhance.js.map +1 -0
  299. package/lib/utils/enhances/i18nEnhance.mjs +91 -0
  300. package/lib/utils/enhances/i18nEnhance.mjs.map +1 -0
  301. package/lib/utils/enhances/keyboardFocusEnhance.d.ts +27 -0
  302. package/lib/utils/enhances/keyboardFocusEnhance.js +63 -0
  303. package/lib/utils/enhances/keyboardFocusEnhance.js.map +1 -0
  304. package/lib/utils/enhances/keyboardFocusEnhance.mjs +57 -0
  305. package/lib/utils/enhances/keyboardFocusEnhance.mjs.map +1 -0
  306. package/lib/utils/enhances/resolveColorEnhance.d.ts +2 -0
  307. package/lib/utils/enhances/resolveColorEnhance.js +25 -0
  308. package/lib/utils/enhances/resolveColorEnhance.js.map +1 -0
  309. package/lib/utils/enhances/resolveColorEnhance.mjs +17 -0
  310. package/lib/utils/enhances/resolveColorEnhance.mjs.map +1 -0
  311. package/lib/utils/eventEmitter.d.ts +9 -0
  312. package/lib/utils/eventEmitter.js +41 -0
  313. package/lib/utils/eventEmitter.js.map +1 -0
  314. package/lib/utils/eventEmitter.mjs +34 -0
  315. package/lib/utils/eventEmitter.mjs.map +1 -0
  316. package/lib/utils/findComponent.d.ts +12 -0
  317. package/lib/utils/findComponent.js +106 -0
  318. package/lib/utils/findComponent.js.map +1 -0
  319. package/lib/utils/findComponent.mjs +95 -0
  320. package/lib/utils/findComponent.mjs.map +1 -0
  321. package/lib/utils/fire.d.ts +2 -0
  322. package/lib/utils/fire.js +23 -0
  323. package/lib/utils/fire.js.map +1 -0
  324. package/lib/utils/fire.mjs +15 -0
  325. package/lib/utils/fire.mjs.map +1 -0
  326. package/lib/utils/focus-lock/focusBorders.d.ts +4 -0
  327. package/lib/utils/focus-lock/focusBorders.js +72 -0
  328. package/lib/utils/focus-lock/focusBorders.js.map +1 -0
  329. package/lib/utils/focus-lock/focusBorders.mjs +62 -0
  330. package/lib/utils/focus-lock/focusBorders.mjs.map +1 -0
  331. package/lib/utils/focus-lock/getFocusableIn.d.ts +1 -0
  332. package/lib/utils/focus-lock/getFocusableIn.js +26 -0
  333. package/lib/utils/focus-lock/getFocusableIn.js.map +1 -0
  334. package/lib/utils/focus-lock/getFocusableIn.mjs +19 -0
  335. package/lib/utils/focus-lock/getFocusableIn.mjs.map +1 -0
  336. package/lib/utils/focus-lock/isFocusInside.d.ts +1 -0
  337. package/lib/utils/focus-lock/isFocusInside.js +16 -0
  338. package/lib/utils/focus-lock/isFocusInside.js.map +1 -0
  339. package/lib/utils/focus-lock/isFocusInside.mjs +9 -0
  340. package/lib/utils/focus-lock/isFocusInside.mjs.map +1 -0
  341. package/lib/utils/focus-lock/isFocusable.d.ts +1 -0
  342. package/lib/utils/focus-lock/isFocusable.js +51 -0
  343. package/lib/utils/focus-lock/isFocusable.js.map +1 -0
  344. package/lib/utils/focus-lock/isFocusable.mjs +43 -0
  345. package/lib/utils/focus-lock/isFocusable.mjs.map +1 -0
  346. package/lib/utils/focus-lock/setFocus.d.ts +1 -0
  347. package/lib/utils/focus-lock/setFocus.js +63 -0
  348. package/lib/utils/focus-lock/setFocus.js.map +1 -0
  349. package/lib/utils/focus-lock/setFocus.mjs +55 -0
  350. package/lib/utils/focus-lock/setFocus.mjs.map +1 -0
  351. package/lib/utils/getAccessibleName.d.ts +1 -0
  352. package/lib/utils/getAccessibleName.js +56 -0
  353. package/lib/utils/getAccessibleName.js.map +1 -0
  354. package/lib/utils/getAccessibleName.mjs +49 -0
  355. package/lib/utils/getAccessibleName.mjs.map +1 -0
  356. package/lib/utils/getDisplayName.d.ts +2 -0
  357. package/lib/utils/getDisplayName.js +10 -0
  358. package/lib/utils/getDisplayName.js.map +1 -0
  359. package/lib/utils/getDisplayName.mjs +6 -0
  360. package/lib/utils/getDisplayName.mjs.map +1 -0
  361. package/lib/utils/getEventTarget.d.ts +1 -0
  362. package/lib/utils/getEventTarget.js +53 -0
  363. package/lib/utils/getEventTarget.js.map +1 -0
  364. package/lib/utils/getEventTarget.mjs +45 -0
  365. package/lib/utils/getEventTarget.mjs.map +1 -0
  366. package/lib/utils/getOriginChildren.d.ts +2 -0
  367. package/lib/utils/getOriginChildren.js +18 -0
  368. package/lib/utils/getOriginChildren.js.map +1 -0
  369. package/lib/utils/getOriginChildren.mjs +10 -0
  370. package/lib/utils/getOriginChildren.mjs.map +1 -0
  371. package/lib/utils/getRandomInt.d.ts +1 -0
  372. package/lib/utils/getRandomInt.js +11 -0
  373. package/lib/utils/getRandomInt.js.map +1 -0
  374. package/lib/utils/getRandomInt.mjs +5 -0
  375. package/lib/utils/getRandomInt.mjs.map +1 -0
  376. package/lib/utils/getValue.d.ts +1 -0
  377. package/lib/utils/getValue.js +16 -0
  378. package/lib/utils/getValue.js.map +1 -0
  379. package/lib/utils/getValue.mjs +10 -0
  380. package/lib/utils/getValue.mjs.map +1 -0
  381. package/lib/utils/hasLabels.d.ts +7 -0
  382. package/lib/utils/hasLabels.js +47 -0
  383. package/lib/utils/hasLabels.js.map +1 -0
  384. package/lib/utils/hasLabels.mjs +39 -0
  385. package/lib/utils/hasLabels.mjs.map +1 -0
  386. package/lib/utils/hasParent.d.ts +1 -0
  387. package/lib/utils/hasParent.js +14 -0
  388. package/lib/utils/hasParent.js.map +1 -0
  389. package/lib/utils/hasParent.mjs +7 -0
  390. package/lib/utils/hasParent.mjs.map +1 -0
  391. package/lib/utils/if.d.ts +11 -0
  392. package/lib/utils/if.js +16 -0
  393. package/lib/utils/if.js.map +1 -0
  394. package/lib/utils/if.mjs +9 -0
  395. package/lib/utils/if.mjs.map +1 -0
  396. package/lib/utils/ifChildren.d.ts +8 -0
  397. package/lib/utils/ifChildren.js +17 -0
  398. package/lib/utils/ifChildren.js.map +1 -0
  399. package/lib/utils/ifChildren.mjs +10 -0
  400. package/lib/utils/ifChildren.mjs.map +1 -0
  401. package/lib/utils/injectStyle.d.ts +2 -0
  402. package/lib/utils/injectStyle.js +49 -0
  403. package/lib/utils/injectStyle.js.map +1 -0
  404. package/lib/utils/injectStyle.mjs +41 -0
  405. package/lib/utils/injectStyle.mjs.map +1 -0
  406. package/lib/utils/inputProps.d.ts +2 -0
  407. package/lib/utils/inputProps.js +22 -0
  408. package/lib/utils/inputProps.js.map +1 -0
  409. package/lib/utils/inputProps.mjs +14 -0
  410. package/lib/utils/inputProps.mjs.map +1 -0
  411. package/lib/utils/isInteractiveElement.d.ts +1 -0
  412. package/lib/utils/isInteractiveElement.js +34 -0
  413. package/lib/utils/isInteractiveElement.js.map +1 -0
  414. package/lib/utils/isInteractiveElement.mjs +28 -0
  415. package/lib/utils/isInteractiveElement.mjs.map +1 -0
  416. package/lib/utils/isNode.d.ts +1 -0
  417. package/lib/utils/isNode.js +28 -0
  418. package/lib/utils/isNode.js.map +1 -0
  419. package/lib/utils/isNode.mjs +21 -0
  420. package/lib/utils/isNode.mjs.map +1 -0
  421. package/lib/utils/isPromise.d.ts +1 -0
  422. package/lib/utils/isPromise.js +10 -0
  423. package/lib/utils/isPromise.js.map +1 -0
  424. package/lib/utils/isPromise.mjs +4 -0
  425. package/lib/utils/isPromise.mjs.map +1 -0
  426. package/lib/utils/isRetina.d.ts +1 -0
  427. package/lib/utils/isRetina.js +15 -0
  428. package/lib/utils/isRetina.js.map +1 -0
  429. package/lib/utils/isRetina.mjs +9 -0
  430. package/lib/utils/isRetina.mjs.map +1 -0
  431. package/lib/utils/logger.d.ts +9 -0
  432. package/lib/utils/logger.js +40 -0
  433. package/lib/utils/logger.js.map +1 -0
  434. package/lib/utils/logger.mjs +35 -0
  435. package/lib/utils/logger.mjs.map +1 -0
  436. package/lib/utils/numericChecker.d.ts +5 -0
  437. package/lib/utils/numericChecker.js +33 -0
  438. package/lib/utils/numericChecker.js.map +1 -0
  439. package/lib/utils/numericChecker.mjs +27 -0
  440. package/lib/utils/numericChecker.mjs.map +1 -0
  441. package/lib/utils/ownerDocument.d.ts +1 -0
  442. package/lib/utils/ownerDocument.js +10 -0
  443. package/lib/utils/ownerDocument.js.map +1 -0
  444. package/lib/utils/ownerDocument.mjs +4 -0
  445. package/lib/utils/ownerDocument.mjs.map +1 -0
  446. package/lib/utils/pick.d.ts +1 -0
  447. package/lib/utils/pick.js +19 -0
  448. package/lib/utils/pick.js.map +1 -0
  449. package/lib/utils/pick.mjs +15 -0
  450. package/lib/utils/pick.mjs.map +1 -0
  451. package/lib/utils/propsForElement.d.ts +3 -0
  452. package/lib/utils/propsForElement.js +59 -0
  453. package/lib/utils/propsForElement.js.map +1 -0
  454. package/lib/utils/propsForElement.mjs +50 -0
  455. package/lib/utils/propsForElement.mjs.map +1 -0
  456. package/lib/utils/rafTrottle.d.ts +2 -0
  457. package/lib/utils/rafTrottle.js +33 -0
  458. package/lib/utils/rafTrottle.js.map +1 -0
  459. package/lib/utils/rafTrottle.mjs +26 -0
  460. package/lib/utils/rafTrottle.mjs.map +1 -0
  461. package/lib/utils/reactToText.d.ts +3 -0
  462. package/lib/utils/reactToText.js +33 -0
  463. package/lib/utils/reactToText.js.map +1 -0
  464. package/lib/utils/reactToText.mjs +26 -0
  465. package/lib/utils/reactToText.mjs.map +1 -0
  466. package/lib/utils/ref.d.ts +10 -0
  467. package/lib/utils/ref.js +96 -0
  468. package/lib/utils/ref.js.map +1 -0
  469. package/lib/utils/ref.mjs +87 -0
  470. package/lib/utils/ref.mjs.map +1 -0
  471. package/lib/utils/setRef.d.ts +2 -0
  472. package/lib/utils/setRef.js +10 -0
  473. package/lib/utils/setRef.js.map +1 -0
  474. package/lib/utils/setRef.mjs +3 -0
  475. package/lib/utils/setRef.mjs.map +1 -0
  476. package/lib/utils/syncScroll.d.ts +1 -0
  477. package/lib/utils/syncScroll.js +61 -0
  478. package/lib/utils/syncScroll.js.map +1 -0
  479. package/lib/utils/syncScroll.mjs +54 -0
  480. package/lib/utils/syncScroll.mjs.map +1 -0
  481. package/lib/utils/uncontroll.d.ts +4 -0
  482. package/lib/utils/uncontroll.js +47 -0
  483. package/lib/utils/uncontroll.js.map +1 -0
  484. package/lib/utils/uncontroll.mjs +38 -0
  485. package/lib/utils/uncontroll.mjs.map +1 -0
  486. package/lib/utils/uniqueID.d.ts +12 -0
  487. package/lib/utils/uniqueID.js +42 -0
  488. package/lib/utils/uniqueID.js.map +1 -0
  489. package/lib/utils/uniqueID.mjs +33 -0
  490. package/lib/utils/uniqueID.mjs.map +1 -0
  491. package/lib/utils/use/useColorResolver.d.ts +1 -0
  492. package/lib/utils/use/useColorResolver.js +208 -0
  493. package/lib/utils/use/useColorResolver.js.map +1 -0
  494. package/lib/utils/use/useColorResolver.mjs +200 -0
  495. package/lib/utils/use/useColorResolver.mjs.map +1 -0
  496. package/lib/utils/use/useCss.d.ts +4 -0
  497. package/lib/utils/use/useCss.js +20 -0
  498. package/lib/utils/use/useCss.js.map +1 -0
  499. package/lib/utils/use/useCss.mjs +12 -0
  500. package/lib/utils/use/useCss.mjs.map +1 -0
  501. package/lib/utils/use/useEnhancedEffect.d.ts +3 -0
  502. package/lib/utils/use/useEnhancedEffect.js +13 -0
  503. package/lib/utils/use/useEnhancedEffect.js.map +1 -0
  504. package/lib/utils/use/useEnhancedEffect.mjs +6 -0
  505. package/lib/utils/use/useEnhancedEffect.mjs.map +1 -0
  506. package/lib/utils/use/useEventCallback.d.ts +4 -0
  507. package/lib/utils/use/useEventCallback.js +25 -0
  508. package/lib/utils/use/useEventCallback.js.map +1 -0
  509. package/lib/utils/use/useEventCallback.mjs +19 -0
  510. package/lib/utils/use/useEventCallback.mjs.map +1 -0
  511. package/lib/utils/use/useEventListener.d.ts +2 -0
  512. package/lib/utils/use/useEventListener.js +33 -0
  513. package/lib/utils/use/useEventListener.js.map +1 -0
  514. package/lib/utils/use/useEventListener.mjs +25 -0
  515. package/lib/utils/use/useEventListener.mjs.map +1 -0
  516. package/lib/utils/use/useFocusLock.d.ts +10 -0
  517. package/lib/utils/use/useFocusLock.js +289 -0
  518. package/lib/utils/use/useFocusLock.js.map +1 -0
  519. package/lib/utils/use/useFocusLock.mjs +266 -0
  520. package/lib/utils/use/useFocusLock.mjs.map +1 -0
  521. package/lib/utils/use/usePreventScroll.d.ts +2 -0
  522. package/lib/utils/use/usePreventScroll.js +78 -0
  523. package/lib/utils/use/usePreventScroll.js.map +1 -0
  524. package/lib/utils/use/usePreventScroll.mjs +70 -0
  525. package/lib/utils/use/usePreventScroll.mjs.map +1 -0
  526. package/lib/utils/useCssVariable.d.ts +8 -0
  527. package/lib/utils/useCssVariable.js +55 -0
  528. package/lib/utils/useCssVariable.js.map +1 -0
  529. package/lib/utils/useCssVariable.mjs +46 -0
  530. package/lib/utils/useCssVariable.mjs.map +1 -0
  531. package/lib/utils/zIndexStacking.d.ts +8 -0
  532. package/lib/utils/zIndexStacking.js +48 -0
  533. package/lib/utils/zIndexStacking.js.map +1 -0
  534. package/lib/utils/zIndexStacking.mjs +38 -0
  535. package/lib/utils/zIndexStacking.mjs.map +1 -0
  536. package/package.json +297 -10
  537. package/tsconfig-utils.json +4 -0
  538. package/vite.config.ts +24 -0
  539. package/lib/cjs/index.js +0 -23
  540. package/lib/cjs/index.js.map +0 -1
  541. package/lib/es6/index.js +0 -4
  542. package/lib/es6/index.js.map +0 -1
  543. package/lib/types/index.d.ts +0 -3
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeFocusBorders = exports.addFocusBorders = exports.BEFORE_BORDER_ID = exports.AFTER_BORDER_ID = void 0;
7
+ var _getFocusableIn = require("./getFocusableIn");
8
+ var focusBordersRefs = new Map();
9
+ var BEFORE_BORDER_ID = '__intergalactic-focus-border-before';
10
+ exports.BEFORE_BORDER_ID = BEFORE_BORDER_ID;
11
+ var AFTER_BORDER_ID = '__intergalactic-focus-border-after';
12
+ exports.AFTER_BORDER_ID = AFTER_BORDER_ID;
13
+ var addFocusBorders = function addFocusBorders(element) {
14
+ if (!focusBordersRefs.has(element) && !(element.previousSibling instanceof HTMLElement && element.previousSibling.dataset.id === BEFORE_BORDER_ID)) {
15
+ var before = document.createElement('div');
16
+ var after = document.createElement('div');
17
+ focusBordersRefs.set(element, {
18
+ before: before,
19
+ after: after
20
+ });
21
+ before.setAttribute('tabindex', '0');
22
+ before.style.position = 'fixed';
23
+ before.dataset.id = BEFORE_BORDER_ID;
24
+ before.addEventListener('focus', function (event) {
25
+ var _focusBordersRefs$get, _focusBordersRefs$get2;
26
+ if (document.activeElement === ((_focusBordersRefs$get = focusBordersRefs.get(element)) === null || _focusBordersRefs$get === void 0 ? void 0 : _focusBordersRefs$get.before) && event.relatedTarget !== ((_focusBordersRefs$get2 = focusBordersRefs.get(element)) === null || _focusBordersRefs$get2 === void 0 ? void 0 : _focusBordersRefs$get2.after) &&
27
+ // prevent loop
28
+ event.relatedTarget // prevent initial focus
29
+ ) {
30
+ var focusable = (0, _getFocusableIn.getFocusableIn)(element);
31
+ if (event.relatedTarget === focusable[0]) {
32
+ var _focusable;
33
+ (_focusable = focusable[focusable.length - 1]) === null || _focusable === void 0 ? void 0 : _focusable.focus();
34
+ } else {
35
+ var _focusable$;
36
+ (_focusable$ = focusable[0]) === null || _focusable$ === void 0 ? void 0 : _focusable$.focus();
37
+ }
38
+ }
39
+ });
40
+ after.setAttribute('tabindex', '0');
41
+ after.style.position = 'fixed';
42
+ after.dataset.id = AFTER_BORDER_ID;
43
+ after.addEventListener('focus', function (event) {
44
+ var _focusBordersRefs$get3, _focusBordersRefs$get4;
45
+ if (document.activeElement === ((_focusBordersRefs$get3 = focusBordersRefs.get(element)) === null || _focusBordersRefs$get3 === void 0 ? void 0 : _focusBordersRefs$get3.after) && event.relatedTarget !== ((_focusBordersRefs$get4 = focusBordersRefs.get(element)) === null || _focusBordersRefs$get4 === void 0 ? void 0 : _focusBordersRefs$get4.before) &&
46
+ // prevent loop
47
+ event.relatedTarget // prevent initial focus
48
+ ) {
49
+ var focusable = (0, _getFocusableIn.getFocusableIn)(element);
50
+ if (event.relatedTarget === focusable[focusable.length - 1]) {
51
+ var _focusable$2;
52
+ (_focusable$2 = focusable[0]) === null || _focusable$2 === void 0 ? void 0 : _focusable$2.focus();
53
+ } else {
54
+ var _focusable2;
55
+ (_focusable2 = focusable[focusable.length - 1]) === null || _focusable2 === void 0 ? void 0 : _focusable2.focus();
56
+ }
57
+ }
58
+ });
59
+ var elementParent = element.parentElement;
60
+ elementParent === null || elementParent === void 0 ? void 0 : elementParent.insertBefore(before, element);
61
+ elementParent === null || elementParent === void 0 ? void 0 : elementParent.append(after);
62
+ }
63
+ };
64
+ exports.addFocusBorders = addFocusBorders;
65
+ var removeFocusBorders = function removeFocusBorders(element) {
66
+ var focusRefs = focusBordersRefs.get(element);
67
+ focusRefs === null || focusRefs === void 0 ? void 0 : focusRefs.before.remove();
68
+ focusRefs === null || focusRefs === void 0 ? void 0 : focusRefs.after.remove();
69
+ focusBordersRefs["delete"](element);
70
+ };
71
+ exports.removeFocusBorders = removeFocusBorders;
72
+ //# sourceMappingURL=focusBorders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusBorders.js","names":["_getFocusableIn","require","focusBordersRefs","Map","BEFORE_BORDER_ID","exports","AFTER_BORDER_ID","addFocusBorders","element","has","previousSibling","HTMLElement","dataset","id","before","document","createElement","after","set","setAttribute","style","position","addEventListener","event","_focusBordersRefs$get","_focusBordersRefs$get2","activeElement","get","relatedTarget","focusable","getFocusableIn","_focusable","length","focus","_focusable$","_focusBordersRefs$get3","_focusBordersRefs$get4","_focusable$2","_focusable2","elementParent","parentElement","insertBefore","append","removeFocusBorders","focusRefs","remove"],"sources":["../../../src/utils/focus-lock/focusBorders.ts"],"sourcesContent":["import { getFocusableIn } from './getFocusableIn';\n\nconst focusBordersRefs = new Map<HTMLElement, { before: HTMLElement; after: HTMLElement }>();\n\nexport const BEFORE_BORDER_ID = '__intergalactic-focus-border-before';\nexport const AFTER_BORDER_ID = '__intergalactic-focus-border-after';\n\nexport const addFocusBorders = (element: HTMLElement) => {\n if (\n !focusBordersRefs.has(element) &&\n !(\n element.previousSibling instanceof HTMLElement &&\n element.previousSibling.dataset.id === BEFORE_BORDER_ID\n )\n ) {\n const before = document.createElement('div');\n const after = document.createElement('div');\n\n focusBordersRefs.set(element, { before, after });\n\n before.setAttribute('tabindex', '0');\n before.style.position = 'fixed';\n before.dataset.id = BEFORE_BORDER_ID;\n before.addEventListener('focus', (event) => {\n if (\n document.activeElement === focusBordersRefs.get(element)?.before &&\n event.relatedTarget !== focusBordersRefs.get(element)?.after && // prevent loop\n event.relatedTarget // prevent initial focus\n ) {\n const focusable = getFocusableIn(element);\n\n if (event.relatedTarget === focusable[0]) {\n focusable[focusable.length - 1]?.focus();\n } else {\n focusable[0]?.focus();\n }\n }\n });\n\n after.setAttribute('tabindex', '0');\n after.style.position = 'fixed';\n after.dataset.id = AFTER_BORDER_ID;\n after.addEventListener('focus', (event) => {\n if (\n document.activeElement === focusBordersRefs.get(element)?.after &&\n event.relatedTarget !== focusBordersRefs.get(element)?.before && // prevent loop\n event.relatedTarget // prevent initial focus\n ) {\n const focusable = getFocusableIn(element);\n\n if (event.relatedTarget === focusable[focusable.length - 1]) {\n focusable[0]?.focus();\n } else {\n focusable[focusable.length - 1]?.focus();\n }\n }\n });\n\n const elementParent = element.parentElement;\n\n elementParent?.insertBefore(before, element);\n elementParent?.append(after);\n }\n};\nexport const removeFocusBorders = (element: HTMLElement) => {\n const focusRefs = focusBordersRefs.get(element);\n focusRefs?.before.remove();\n focusRefs?.after.remove();\n focusBordersRefs.delete(element);\n};\n"],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ import { getFocusableIn } from "./getFocusableIn.mjs";
2
+ var focusBordersRefs = new Map();
3
+ export var BEFORE_BORDER_ID = '__intergalactic-focus-border-before';
4
+ export var AFTER_BORDER_ID = '__intergalactic-focus-border-after';
5
+ export var addFocusBorders = function addFocusBorders(element) {
6
+ if (!focusBordersRefs.has(element) && !(element.previousSibling instanceof HTMLElement && element.previousSibling.dataset.id === BEFORE_BORDER_ID)) {
7
+ var before = document.createElement('div');
8
+ var after = document.createElement('div');
9
+ focusBordersRefs.set(element, {
10
+ before: before,
11
+ after: after
12
+ });
13
+ before.setAttribute('tabindex', '0');
14
+ before.style.position = 'fixed';
15
+ before.dataset.id = BEFORE_BORDER_ID;
16
+ before.addEventListener('focus', function (event) {
17
+ var _focusBordersRefs$get, _focusBordersRefs$get2;
18
+ if (document.activeElement === ((_focusBordersRefs$get = focusBordersRefs.get(element)) === null || _focusBordersRefs$get === void 0 ? void 0 : _focusBordersRefs$get.before) && event.relatedTarget !== ((_focusBordersRefs$get2 = focusBordersRefs.get(element)) === null || _focusBordersRefs$get2 === void 0 ? void 0 : _focusBordersRefs$get2.after) &&
19
+ // prevent loop
20
+ event.relatedTarget // prevent initial focus
21
+ ) {
22
+ var focusable = getFocusableIn(element);
23
+ if (event.relatedTarget === focusable[0]) {
24
+ var _focusable;
25
+ (_focusable = focusable[focusable.length - 1]) === null || _focusable === void 0 ? void 0 : _focusable.focus();
26
+ } else {
27
+ var _focusable$;
28
+ (_focusable$ = focusable[0]) === null || _focusable$ === void 0 ? void 0 : _focusable$.focus();
29
+ }
30
+ }
31
+ });
32
+ after.setAttribute('tabindex', '0');
33
+ after.style.position = 'fixed';
34
+ after.dataset.id = AFTER_BORDER_ID;
35
+ after.addEventListener('focus', function (event) {
36
+ var _focusBordersRefs$get3, _focusBordersRefs$get4;
37
+ if (document.activeElement === ((_focusBordersRefs$get3 = focusBordersRefs.get(element)) === null || _focusBordersRefs$get3 === void 0 ? void 0 : _focusBordersRefs$get3.after) && event.relatedTarget !== ((_focusBordersRefs$get4 = focusBordersRefs.get(element)) === null || _focusBordersRefs$get4 === void 0 ? void 0 : _focusBordersRefs$get4.before) &&
38
+ // prevent loop
39
+ event.relatedTarget // prevent initial focus
40
+ ) {
41
+ var focusable = getFocusableIn(element);
42
+ if (event.relatedTarget === focusable[focusable.length - 1]) {
43
+ var _focusable$2;
44
+ (_focusable$2 = focusable[0]) === null || _focusable$2 === void 0 ? void 0 : _focusable$2.focus();
45
+ } else {
46
+ var _focusable2;
47
+ (_focusable2 = focusable[focusable.length - 1]) === null || _focusable2 === void 0 ? void 0 : _focusable2.focus();
48
+ }
49
+ }
50
+ });
51
+ var elementParent = element.parentElement;
52
+ elementParent === null || elementParent === void 0 ? void 0 : elementParent.insertBefore(before, element);
53
+ elementParent === null || elementParent === void 0 ? void 0 : elementParent.append(after);
54
+ }
55
+ };
56
+ export var removeFocusBorders = function removeFocusBorders(element) {
57
+ var focusRefs = focusBordersRefs.get(element);
58
+ focusRefs === null || focusRefs === void 0 ? void 0 : focusRefs.before.remove();
59
+ focusRefs === null || focusRefs === void 0 ? void 0 : focusRefs.after.remove();
60
+ focusBordersRefs["delete"](element);
61
+ };
62
+ //# sourceMappingURL=focusBorders.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"focusBorders.mjs","names":["getFocusableIn","focusBordersRefs","Map","BEFORE_BORDER_ID","AFTER_BORDER_ID","addFocusBorders","element","has","previousSibling","HTMLElement","dataset","id","before","document","createElement","after","set","setAttribute","style","position","addEventListener","event","_focusBordersRefs$get","_focusBordersRefs$get2","activeElement","get","relatedTarget","focusable","_focusable","length","focus","_focusable$","_focusBordersRefs$get3","_focusBordersRefs$get4","_focusable$2","_focusable2","elementParent","parentElement","insertBefore","append","removeFocusBorders","focusRefs","remove"],"sources":["../../../src/utils/focus-lock/focusBorders.ts"],"sourcesContent":["import { getFocusableIn } from './getFocusableIn';\n\nconst focusBordersRefs = new Map<HTMLElement, { before: HTMLElement; after: HTMLElement }>();\n\nexport const BEFORE_BORDER_ID = '__intergalactic-focus-border-before';\nexport const AFTER_BORDER_ID = '__intergalactic-focus-border-after';\n\nexport const addFocusBorders = (element: HTMLElement) => {\n if (\n !focusBordersRefs.has(element) &&\n !(\n element.previousSibling instanceof HTMLElement &&\n element.previousSibling.dataset.id === BEFORE_BORDER_ID\n )\n ) {\n const before = document.createElement('div');\n const after = document.createElement('div');\n\n focusBordersRefs.set(element, { before, after });\n\n before.setAttribute('tabindex', '0');\n before.style.position = 'fixed';\n before.dataset.id = BEFORE_BORDER_ID;\n before.addEventListener('focus', (event) => {\n if (\n document.activeElement === focusBordersRefs.get(element)?.before &&\n event.relatedTarget !== focusBordersRefs.get(element)?.after && // prevent loop\n event.relatedTarget // prevent initial focus\n ) {\n const focusable = getFocusableIn(element);\n\n if (event.relatedTarget === focusable[0]) {\n focusable[focusable.length - 1]?.focus();\n } else {\n focusable[0]?.focus();\n }\n }\n });\n\n after.setAttribute('tabindex', '0');\n after.style.position = 'fixed';\n after.dataset.id = AFTER_BORDER_ID;\n after.addEventListener('focus', (event) => {\n if (\n document.activeElement === focusBordersRefs.get(element)?.after &&\n event.relatedTarget !== focusBordersRefs.get(element)?.before && // prevent loop\n event.relatedTarget // prevent initial focus\n ) {\n const focusable = getFocusableIn(element);\n\n if (event.relatedTarget === focusable[focusable.length - 1]) {\n focusable[0]?.focus();\n } else {\n focusable[focusable.length - 1]?.focus();\n }\n }\n });\n\n const elementParent = element.parentElement;\n\n elementParent?.insertBefore(before, element);\n elementParent?.append(after);\n }\n};\nexport const removeFocusBorders = (element: HTMLElement) => {\n const focusRefs = focusBordersRefs.get(element);\n focusRefs?.before.remove();\n focusRefs?.after.remove();\n focusBordersRefs.delete(element);\n};\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const getFocusableIn: (node: HTMLElement) => HTMLElement[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getFocusableIn = void 0;
7
+ var _isFocusable = require("./isFocusable");
8
+ var getFocusableIn = function getFocusableIn(node) {
9
+ var _node$ownerDocument;
10
+ var treeWalker = node === null || node === void 0 ? void 0 : (_node$ownerDocument = node.ownerDocument) === null || _node$ownerDocument === void 0 ? void 0 : _node$ownerDocument.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, function (node) {
11
+ return 'ownerSVGElement' in node && node.ownerSVGElement ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
12
+ });
13
+ var result = [];
14
+ if (!treeWalker) return result;
15
+ if ((0, _isFocusable.isFocusable)(treeWalker.currentNode)) {
16
+ result.push(treeWalker.currentNode);
17
+ }
18
+ while (treeWalker.nextNode() !== null) {
19
+ if ((0, _isFocusable.isFocusable)(treeWalker.currentNode)) {
20
+ result.push(treeWalker.currentNode);
21
+ }
22
+ }
23
+ return result;
24
+ };
25
+ exports.getFocusableIn = getFocusableIn;
26
+ //# sourceMappingURL=getFocusableIn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFocusableIn.js","names":["_isFocusable","require","getFocusableIn","node","_node$ownerDocument","treeWalker","ownerDocument","createTreeWalker","NodeFilter","SHOW_ELEMENT","ownerSVGElement","FILTER_REJECT","FILTER_ACCEPT","result","isFocusable","currentNode","push","nextNode","exports"],"sources":["../../../src/utils/focus-lock/getFocusableIn.ts"],"sourcesContent":["import { isFocusable } from './isFocusable';\n\nexport const getFocusableIn = (node: HTMLElement) => {\n const treeWalker = node?.ownerDocument?.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, (node) =>\n 'ownerSVGElement' in node && node.ownerSVGElement\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT,\n );\n\n const result: HTMLElement[] = [];\n\n if (!treeWalker) return result;\n if (isFocusable(treeWalker.currentNode)) {\n result.push(treeWalker.currentNode as HTMLElement);\n }\n while (treeWalker.nextNode() !== null) {\n if (isFocusable(treeWalker.currentNode)) {\n result.push(treeWalker.currentNode as HTMLElement);\n }\n }\n\n return result;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAiB,EAAK;EAAA,IAAAC,mBAAA;EACnD,IAAMC,UAAU,GAAGF,IAAI,aAAJA,IAAI,wBAAAC,mBAAA,GAAJD,IAAI,CAAEG,aAAa,cAAAF,mBAAA,uBAAnBA,mBAAA,CAAqBG,gBAAgB,CAACJ,IAAI,EAAEK,UAAU,CAACC,YAAY,EAAE,UAACN,IAAI;IAAA,OAC3F,iBAAiB,IAAIA,IAAI,IAAIA,IAAI,CAACO,eAAe,GAC7CF,UAAU,CAACG,aAAa,GACxBH,UAAU,CAACI,aAAa;EAAA,EAC7B;EAED,IAAMC,MAAqB,GAAG,EAAE;EAEhC,IAAI,CAACR,UAAU,EAAE,OAAOQ,MAAM;EAC9B,IAAI,IAAAC,wBAAW,EAACT,UAAU,CAACU,WAAW,CAAC,EAAE;IACvCF,MAAM,CAACG,IAAI,CAACX,UAAU,CAACU,WAAW,CAAgB;EACpD;EACA,OAAOV,UAAU,CAACY,QAAQ,EAAE,KAAK,IAAI,EAAE;IACrC,IAAI,IAAAH,wBAAW,EAACT,UAAU,CAACU,WAAW,CAAC,EAAE;MACvCF,MAAM,CAACG,IAAI,CAACX,UAAU,CAACU,WAAW,CAAgB;IACpD;EACF;EAEA,OAAOF,MAAM;AACf,CAAC;AAACK,OAAA,CAAAhB,cAAA,GAAAA,cAAA"}
@@ -0,0 +1,19 @@
1
+ import { isFocusable } from "./isFocusable.mjs";
2
+ export var getFocusableIn = function getFocusableIn(node) {
3
+ var _node$ownerDocument;
4
+ var treeWalker = node === null || node === void 0 ? void 0 : (_node$ownerDocument = node.ownerDocument) === null || _node$ownerDocument === void 0 ? void 0 : _node$ownerDocument.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, function (node) {
5
+ return 'ownerSVGElement' in node && node.ownerSVGElement ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;
6
+ });
7
+ var result = [];
8
+ if (!treeWalker) return result;
9
+ if (isFocusable(treeWalker.currentNode)) {
10
+ result.push(treeWalker.currentNode);
11
+ }
12
+ while (treeWalker.nextNode() !== null) {
13
+ if (isFocusable(treeWalker.currentNode)) {
14
+ result.push(treeWalker.currentNode);
15
+ }
16
+ }
17
+ return result;
18
+ };
19
+ //# sourceMappingURL=getFocusableIn.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFocusableIn.mjs","names":["isFocusable","getFocusableIn","node","_node$ownerDocument","treeWalker","ownerDocument","createTreeWalker","NodeFilter","SHOW_ELEMENT","ownerSVGElement","FILTER_REJECT","FILTER_ACCEPT","result","currentNode","push","nextNode"],"sources":["../../../src/utils/focus-lock/getFocusableIn.ts"],"sourcesContent":["import { isFocusable } from './isFocusable';\n\nexport const getFocusableIn = (node: HTMLElement) => {\n const treeWalker = node?.ownerDocument?.createTreeWalker(node, NodeFilter.SHOW_ELEMENT, (node) =>\n 'ownerSVGElement' in node && node.ownerSVGElement\n ? NodeFilter.FILTER_REJECT\n : NodeFilter.FILTER_ACCEPT,\n );\n\n const result: HTMLElement[] = [];\n\n if (!treeWalker) return result;\n if (isFocusable(treeWalker.currentNode)) {\n result.push(treeWalker.currentNode as HTMLElement);\n }\n while (treeWalker.nextNode() !== null) {\n if (isFocusable(treeWalker.currentNode)) {\n result.push(treeWalker.currentNode as HTMLElement);\n }\n }\n\n return result;\n};\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,mBAAe;AAE3C,OAAO,IAAMC,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,IAAiB,EAAK;EAAA,IAAAC,mBAAA;EACnD,IAAMC,UAAU,GAAGF,IAAI,aAAJA,IAAI,wBAAAC,mBAAA,GAAJD,IAAI,CAAEG,aAAa,cAAAF,mBAAA,uBAAnBA,mBAAA,CAAqBG,gBAAgB,CAACJ,IAAI,EAAEK,UAAU,CAACC,YAAY,EAAE,UAACN,IAAI;IAAA,OAC3F,iBAAiB,IAAIA,IAAI,IAAIA,IAAI,CAACO,eAAe,GAC7CF,UAAU,CAACG,aAAa,GACxBH,UAAU,CAACI,aAAa;EAAA,EAC7B;EAED,IAAMC,MAAqB,GAAG,EAAE;EAEhC,IAAI,CAACR,UAAU,EAAE,OAAOQ,MAAM;EAC9B,IAAIZ,WAAW,CAACI,UAAU,CAACS,WAAW,CAAC,EAAE;IACvCD,MAAM,CAACE,IAAI,CAACV,UAAU,CAACS,WAAW,CAAgB;EACpD;EACA,OAAOT,UAAU,CAACW,QAAQ,EAAE,KAAK,IAAI,EAAE;IACrC,IAAIf,WAAW,CAACI,UAAU,CAACS,WAAW,CAAC,EAAE;MACvCD,MAAM,CAACE,IAAI,CAACV,UAAU,CAACS,WAAW,CAAgB;IACpD;EACF;EAEA,OAAOD,MAAM;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const isFocusInside: (topNode: HTMLElement | HTMLElement[], actualActiveElement?: HTMLElement) => boolean;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isFocusInside = void 0;
7
+ var _hasParent = require("../hasParent");
8
+ var isFocusInside = function isFocusInside(topNode, actualActiveElement) {
9
+ var activeElement = actualActiveElement || document.activeElement;
10
+ var nodes = Array.isArray(topNode) ? topNode : [topNode];
11
+ return nodes.some(function (node) {
12
+ return (0, _hasParent.hasParent)(activeElement, node);
13
+ });
14
+ };
15
+ exports.isFocusInside = isFocusInside;
16
+ //# sourceMappingURL=isFocusInside.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFocusInside.js","names":["_hasParent","require","isFocusInside","topNode","actualActiveElement","activeElement","document","nodes","Array","isArray","some","node","hasParent","exports"],"sources":["../../../src/utils/focus-lock/isFocusInside.ts"],"sourcesContent":["import { hasParent } from '../hasParent';\n\nexport const isFocusInside = (\n topNode: HTMLElement | HTMLElement[],\n actualActiveElement?: HTMLElement,\n): boolean => {\n const activeElement = actualActiveElement || document.activeElement;\n const nodes = Array.isArray(topNode) ? topNode : [topNode];\n return nodes.some((node) => hasParent(activeElement, node));\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CACxBC,OAAoC,EACpCC,mBAAiC,EACrB;EACZ,IAAMC,aAAa,GAAGD,mBAAmB,IAAIE,QAAQ,CAACD,aAAa;EACnE,IAAME,KAAK,GAAGC,KAAK,CAACC,OAAO,CAACN,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;EAC1D,OAAOI,KAAK,CAACG,IAAI,CAAC,UAACC,IAAI;IAAA,OAAK,IAAAC,oBAAS,EAACP,aAAa,EAAEM,IAAI,CAAC;EAAA,EAAC;AAC7D,CAAC;AAACE,OAAA,CAAAX,aAAA,GAAAA,aAAA"}
@@ -0,0 +1,9 @@
1
+ import { hasParent } from "../hasParent.mjs";
2
+ export var isFocusInside = function isFocusInside(topNode, actualActiveElement) {
3
+ var activeElement = actualActiveElement || document.activeElement;
4
+ var nodes = Array.isArray(topNode) ? topNode : [topNode];
5
+ return nodes.some(function (node) {
6
+ return hasParent(activeElement, node);
7
+ });
8
+ };
9
+ //# sourceMappingURL=isFocusInside.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFocusInside.mjs","names":["hasParent","isFocusInside","topNode","actualActiveElement","activeElement","document","nodes","Array","isArray","some","node"],"sources":["../../../src/utils/focus-lock/isFocusInside.ts"],"sourcesContent":["import { hasParent } from '../hasParent';\n\nexport const isFocusInside = (\n topNode: HTMLElement | HTMLElement[],\n actualActiveElement?: HTMLElement,\n): boolean => {\n const activeElement = actualActiveElement || document.activeElement;\n const nodes = Array.isArray(topNode) ? topNode : [topNode];\n return nodes.some((node) => hasParent(activeElement, node));\n};\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,kBAAc;AAExC,OAAO,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CACxBC,OAAoC,EACpCC,mBAAiC,EACrB;EACZ,IAAMC,aAAa,GAAGD,mBAAmB,IAAIE,QAAQ,CAACD,aAAa;EACnE,IAAME,KAAK,GAAGC,KAAK,CAACC,OAAO,CAACN,OAAO,CAAC,GAAGA,OAAO,GAAG,CAACA,OAAO,CAAC;EAC1D,OAAOI,KAAK,CAACG,IAAI,CAAC,UAACC,IAAI;IAAA,OAAKV,SAAS,CAACI,aAAa,EAAEM,IAAI,CAAC;EAAA,EAAC;AAC7D,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const isFocusable: (node: Node) => boolean;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.isFocusable = void 0;
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _focusBorders = require("./focusBorders");
10
+ var focusable = [['BUTTON'], ['SELECT'], ['TEXTAREA'], ['INPUT'], ['A', {
11
+ has: 'href'
12
+ }], ['AREA', {
13
+ has: 'href'
14
+ }], ['SUMMARY'], ['IFRAME'], ['OBJECT'], ['EMBED'], ['AUDIO', {
15
+ has: 'controls'
16
+ }], ['VIDEO', {
17
+ has: 'controls'
18
+ }], [{
19
+ has: 'tabindex'
20
+ }], [{
21
+ has: 'contenteditable'
22
+ }], [{
23
+ has: 'autofocus'
24
+ }]];
25
+ var isFocusable = function isFocusable(node) {
26
+ var _node$ownerDocument$d;
27
+ if (!node) return false;
28
+ if (!node.ownerDocument) return false;
29
+ if (!((_node$ownerDocument$d = node.ownerDocument.defaultView) !== null && _node$ownerDocument$d !== void 0 && _node$ownerDocument$d.HTMLElement)) return false;
30
+ if (!(node instanceof node.ownerDocument.defaultView.HTMLElement || node instanceof node.ownerDocument.defaultView.SVGElement)) return false;
31
+ if (node.hasAttribute('disabled')) return false;
32
+ if (node.getAttribute('tabindex') === '-1') return false;
33
+ if (node.getAttribute('hidden') !== null) return false;
34
+ if (node.getAttribute('data-id') === _focusBorders.BEFORE_BORDER_ID || node.getAttribute('data-id') === _focusBorders.AFTER_BORDER_ID) return false;
35
+ var tagName = node.tagName;
36
+ for (var _i = 0, _focusable = focusable; _i < _focusable.length; _i++) {
37
+ var params = _focusable[_i];
38
+ if (params.every(function (param) {
39
+ if (typeof param === 'string' && param === tagName) return true;
40
+ if ((0, _typeof2["default"])(param) === 'object' && param.has && node.hasAttribute(param.has)) return true;
41
+ return false;
42
+ })) {
43
+ var style = getComputedStyle(node);
44
+ if (style.display === 'none' || style.visibility === 'hidden') return false;
45
+ return true;
46
+ }
47
+ }
48
+ return false;
49
+ };
50
+ exports.isFocusable = isFocusable;
51
+ //# sourceMappingURL=isFocusable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFocusable.js","names":["_focusBorders","require","focusable","has","isFocusable","node","_node$ownerDocument$d","ownerDocument","defaultView","HTMLElement","SVGElement","hasAttribute","getAttribute","BEFORE_BORDER_ID","AFTER_BORDER_ID","tagName","_i","_focusable","length","params","every","param","_typeof2","style","getComputedStyle","display","visibility","exports"],"sources":["../../../src/utils/focus-lock/isFocusable.ts"],"sourcesContent":["import { AFTER_BORDER_ID, BEFORE_BORDER_ID } from './focusBorders';\n\nconst focusable = [\n ['BUTTON'],\n ['SELECT'],\n ['TEXTAREA'],\n ['INPUT'],\n ['A', { has: 'href' }],\n ['AREA', { has: 'href' }],\n ['SUMMARY'],\n ['IFRAME'],\n ['OBJECT'],\n ['EMBED'],\n ['AUDIO', { has: 'controls' }],\n ['VIDEO', { has: 'controls' }],\n [{ has: 'tabindex' }],\n [{ has: 'contenteditable' }],\n [{ has: 'autofocus' }],\n];\n\nexport const isFocusable = (node: Node) => {\n if (!node) return false;\n if (!node.ownerDocument) return false;\n if (!node.ownerDocument.defaultView?.HTMLElement) return false;\n if (\n !(\n node instanceof node.ownerDocument.defaultView.HTMLElement ||\n node instanceof node.ownerDocument.defaultView.SVGElement\n )\n )\n return false;\n if (node.hasAttribute('disabled')) return false;\n if (node.getAttribute('tabindex') === '-1') return false;\n if (node.getAttribute('hidden') !== null) return false;\n if (\n node.getAttribute('data-id') === BEFORE_BORDER_ID ||\n node.getAttribute('data-id') === AFTER_BORDER_ID\n )\n return false;\n const tagName = node.tagName;\n for (const params of focusable) {\n if (\n params.every((param) => {\n if (typeof param === 'string' && param === tagName) return true;\n if (typeof param === 'object' && param.has && node.hasAttribute(param.has)) return true;\n return false;\n })\n ) {\n const style = getComputedStyle(node);\n if (style.display === 'none' || style.visibility === 'hidden') return false;\n\n return true;\n }\n }\n return false;\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAMC,SAAS,GAAG,CAChB,CAAC,QAAQ,CAAC,EACV,CAAC,QAAQ,CAAC,EACV,CAAC,UAAU,CAAC,EACZ,CAAC,OAAO,CAAC,EACT,CAAC,GAAG,EAAE;EAAEC,GAAG,EAAE;AAAO,CAAC,CAAC,EACtB,CAAC,MAAM,EAAE;EAAEA,GAAG,EAAE;AAAO,CAAC,CAAC,EACzB,CAAC,SAAS,CAAC,EACX,CAAC,QAAQ,CAAC,EACV,CAAC,QAAQ,CAAC,EACV,CAAC,OAAO,CAAC,EACT,CAAC,OAAO,EAAE;EAAEA,GAAG,EAAE;AAAW,CAAC,CAAC,EAC9B,CAAC,OAAO,EAAE;EAAEA,GAAG,EAAE;AAAW,CAAC,CAAC,EAC9B,CAAC;EAAEA,GAAG,EAAE;AAAW,CAAC,CAAC,EACrB,CAAC;EAAEA,GAAG,EAAE;AAAkB,CAAC,CAAC,EAC5B,CAAC;EAAEA,GAAG,EAAE;AAAY,CAAC,CAAC,CACvB;AAEM,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAU,EAAK;EAAA,IAAAC,qBAAA;EACzC,IAAI,CAACD,IAAI,EAAE,OAAO,KAAK;EACvB,IAAI,CAACA,IAAI,CAACE,aAAa,EAAE,OAAO,KAAK;EACrC,IAAI,GAAAD,qBAAA,GAACD,IAAI,CAACE,aAAa,CAACC,WAAW,cAAAF,qBAAA,eAA9BA,qBAAA,CAAgCG,WAAW,GAAE,OAAO,KAAK;EAC9D,IACE,EACEJ,IAAI,YAAYA,IAAI,CAACE,aAAa,CAACC,WAAW,CAACC,WAAW,IAC1DJ,IAAI,YAAYA,IAAI,CAACE,aAAa,CAACC,WAAW,CAACE,UAAU,CAC1D,EAED,OAAO,KAAK;EACd,IAAIL,IAAI,CAACM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK;EAC/C,IAAIN,IAAI,CAACO,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACxD,IAAIP,IAAI,CAACO,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACtD,IACEP,IAAI,CAACO,YAAY,CAAC,SAAS,CAAC,KAAKC,8BAAgB,IACjDR,IAAI,CAACO,YAAY,CAAC,SAAS,CAAC,KAAKE,6BAAe,EAEhD,OAAO,KAAK;EACd,IAAMC,OAAO,GAAGV,IAAI,CAACU,OAAO;EAC5B,SAAAC,EAAA,MAAAC,UAAA,GAAqBf,SAAS,EAAAc,EAAA,GAAAC,UAAA,CAAAC,MAAA,EAAAF,EAAA,IAAE;IAA3B,IAAMG,MAAM,GAAAF,UAAA,CAAAD,EAAA;IACf,IACEG,MAAM,CAACC,KAAK,CAAC,UAACC,KAAK,EAAK;MACtB,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAKN,OAAO,EAAE,OAAO,IAAI;MAC/D,IAAI,IAAAO,QAAA,aAAOD,KAAK,MAAK,QAAQ,IAAIA,KAAK,CAAClB,GAAG,IAAIE,IAAI,CAACM,YAAY,CAACU,KAAK,CAAClB,GAAG,CAAC,EAAE,OAAO,IAAI;MACvF,OAAO,KAAK;IACd,CAAC,CAAC,EACF;MACA,IAAMoB,KAAK,GAAGC,gBAAgB,CAACnB,IAAI,CAAC;MACpC,IAAIkB,KAAK,CAACE,OAAO,KAAK,MAAM,IAAIF,KAAK,CAACG,UAAU,KAAK,QAAQ,EAAE,OAAO,KAAK;MAE3E,OAAO,IAAI;IACb;EACF;EACA,OAAO,KAAK;AACd,CAAC;AAACC,OAAA,CAAAvB,WAAA,GAAAA,WAAA"}
@@ -0,0 +1,43 @@
1
+ import _typeof from "@babel/runtime/helpers/esm/typeof";
2
+ import { AFTER_BORDER_ID, BEFORE_BORDER_ID } from "./focusBorders.mjs";
3
+ var focusable = [['BUTTON'], ['SELECT'], ['TEXTAREA'], ['INPUT'], ['A', {
4
+ has: 'href'
5
+ }], ['AREA', {
6
+ has: 'href'
7
+ }], ['SUMMARY'], ['IFRAME'], ['OBJECT'], ['EMBED'], ['AUDIO', {
8
+ has: 'controls'
9
+ }], ['VIDEO', {
10
+ has: 'controls'
11
+ }], [{
12
+ has: 'tabindex'
13
+ }], [{
14
+ has: 'contenteditable'
15
+ }], [{
16
+ has: 'autofocus'
17
+ }]];
18
+ export var isFocusable = function isFocusable(node) {
19
+ var _node$ownerDocument$d;
20
+ if (!node) return false;
21
+ if (!node.ownerDocument) return false;
22
+ if (!((_node$ownerDocument$d = node.ownerDocument.defaultView) !== null && _node$ownerDocument$d !== void 0 && _node$ownerDocument$d.HTMLElement)) return false;
23
+ if (!(node instanceof node.ownerDocument.defaultView.HTMLElement || node instanceof node.ownerDocument.defaultView.SVGElement)) return false;
24
+ if (node.hasAttribute('disabled')) return false;
25
+ if (node.getAttribute('tabindex') === '-1') return false;
26
+ if (node.getAttribute('hidden') !== null) return false;
27
+ if (node.getAttribute('data-id') === BEFORE_BORDER_ID || node.getAttribute('data-id') === AFTER_BORDER_ID) return false;
28
+ var tagName = node.tagName;
29
+ for (var _i = 0, _focusable = focusable; _i < _focusable.length; _i++) {
30
+ var params = _focusable[_i];
31
+ if (params.every(function (param) {
32
+ if (typeof param === 'string' && param === tagName) return true;
33
+ if (_typeof(param) === 'object' && param.has && node.hasAttribute(param.has)) return true;
34
+ return false;
35
+ })) {
36
+ var style = getComputedStyle(node);
37
+ if (style.display === 'none' || style.visibility === 'hidden') return false;
38
+ return true;
39
+ }
40
+ }
41
+ return false;
42
+ };
43
+ //# sourceMappingURL=isFocusable.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isFocusable.mjs","names":["AFTER_BORDER_ID","BEFORE_BORDER_ID","focusable","has","isFocusable","node","_node$ownerDocument$d","ownerDocument","defaultView","HTMLElement","SVGElement","hasAttribute","getAttribute","tagName","_i","_focusable","length","params","every","param","_typeof","style","getComputedStyle","display","visibility"],"sources":["../../../src/utils/focus-lock/isFocusable.ts"],"sourcesContent":["import { AFTER_BORDER_ID, BEFORE_BORDER_ID } from './focusBorders';\n\nconst focusable = [\n ['BUTTON'],\n ['SELECT'],\n ['TEXTAREA'],\n ['INPUT'],\n ['A', { has: 'href' }],\n ['AREA', { has: 'href' }],\n ['SUMMARY'],\n ['IFRAME'],\n ['OBJECT'],\n ['EMBED'],\n ['AUDIO', { has: 'controls' }],\n ['VIDEO', { has: 'controls' }],\n [{ has: 'tabindex' }],\n [{ has: 'contenteditable' }],\n [{ has: 'autofocus' }],\n];\n\nexport const isFocusable = (node: Node) => {\n if (!node) return false;\n if (!node.ownerDocument) return false;\n if (!node.ownerDocument.defaultView?.HTMLElement) return false;\n if (\n !(\n node instanceof node.ownerDocument.defaultView.HTMLElement ||\n node instanceof node.ownerDocument.defaultView.SVGElement\n )\n )\n return false;\n if (node.hasAttribute('disabled')) return false;\n if (node.getAttribute('tabindex') === '-1') return false;\n if (node.getAttribute('hidden') !== null) return false;\n if (\n node.getAttribute('data-id') === BEFORE_BORDER_ID ||\n node.getAttribute('data-id') === AFTER_BORDER_ID\n )\n return false;\n const tagName = node.tagName;\n for (const params of focusable) {\n if (\n params.every((param) => {\n if (typeof param === 'string' && param === tagName) return true;\n if (typeof param === 'object' && param.has && node.hasAttribute(param.has)) return true;\n return false;\n })\n ) {\n const style = getComputedStyle(node);\n if (style.display === 'none' || style.visibility === 'hidden') return false;\n\n return true;\n }\n }\n return false;\n};\n"],"mappings":";AAAA,SAASA,eAAe,EAAEC,gBAAgB,QAAQ,oBAAgB;AAElE,IAAMC,SAAS,GAAG,CAChB,CAAC,QAAQ,CAAC,EACV,CAAC,QAAQ,CAAC,EACV,CAAC,UAAU,CAAC,EACZ,CAAC,OAAO,CAAC,EACT,CAAC,GAAG,EAAE;EAAEC,GAAG,EAAE;AAAO,CAAC,CAAC,EACtB,CAAC,MAAM,EAAE;EAAEA,GAAG,EAAE;AAAO,CAAC,CAAC,EACzB,CAAC,SAAS,CAAC,EACX,CAAC,QAAQ,CAAC,EACV,CAAC,QAAQ,CAAC,EACV,CAAC,OAAO,CAAC,EACT,CAAC,OAAO,EAAE;EAAEA,GAAG,EAAE;AAAW,CAAC,CAAC,EAC9B,CAAC,OAAO,EAAE;EAAEA,GAAG,EAAE;AAAW,CAAC,CAAC,EAC9B,CAAC;EAAEA,GAAG,EAAE;AAAW,CAAC,CAAC,EACrB,CAAC;EAAEA,GAAG,EAAE;AAAkB,CAAC,CAAC,EAC5B,CAAC;EAAEA,GAAG,EAAE;AAAY,CAAC,CAAC,CACvB;AAED,OAAO,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAU,EAAK;EAAA,IAAAC,qBAAA;EACzC,IAAI,CAACD,IAAI,EAAE,OAAO,KAAK;EACvB,IAAI,CAACA,IAAI,CAACE,aAAa,EAAE,OAAO,KAAK;EACrC,IAAI,GAAAD,qBAAA,GAACD,IAAI,CAACE,aAAa,CAACC,WAAW,cAAAF,qBAAA,eAA9BA,qBAAA,CAAgCG,WAAW,GAAE,OAAO,KAAK;EAC9D,IACE,EACEJ,IAAI,YAAYA,IAAI,CAACE,aAAa,CAACC,WAAW,CAACC,WAAW,IAC1DJ,IAAI,YAAYA,IAAI,CAACE,aAAa,CAACC,WAAW,CAACE,UAAU,CAC1D,EAED,OAAO,KAAK;EACd,IAAIL,IAAI,CAACM,YAAY,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK;EAC/C,IAAIN,IAAI,CAACO,YAAY,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACxD,IAAIP,IAAI,CAACO,YAAY,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,OAAO,KAAK;EACtD,IACEP,IAAI,CAACO,YAAY,CAAC,SAAS,CAAC,KAAKX,gBAAgB,IACjDI,IAAI,CAACO,YAAY,CAAC,SAAS,CAAC,KAAKZ,eAAe,EAEhD,OAAO,KAAK;EACd,IAAMa,OAAO,GAAGR,IAAI,CAACQ,OAAO;EAC5B,SAAAC,EAAA,MAAAC,UAAA,GAAqBb,SAAS,EAAAY,EAAA,GAAAC,UAAA,CAAAC,MAAA,EAAAF,EAAA,IAAE;IAA3B,IAAMG,MAAM,GAAAF,UAAA,CAAAD,EAAA;IACf,IACEG,MAAM,CAACC,KAAK,CAAC,UAACC,KAAK,EAAK;MACtB,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAKN,OAAO,EAAE,OAAO,IAAI;MAC/D,IAAIO,OAAA,CAAOD,KAAK,MAAK,QAAQ,IAAIA,KAAK,CAAChB,GAAG,IAAIE,IAAI,CAACM,YAAY,CAACQ,KAAK,CAAChB,GAAG,CAAC,EAAE,OAAO,IAAI;MACvF,OAAO,KAAK;IACd,CAAC,CAAC,EACF;MACA,IAAMkB,KAAK,GAAGC,gBAAgB,CAACjB,IAAI,CAAC;MACpC,IAAIgB,KAAK,CAACE,OAAO,KAAK,MAAM,IAAIF,KAAK,CAACG,UAAU,KAAK,QAAQ,EAAE,OAAO,KAAK;MAE3E,OAAO,IAAI;IACb;EACF;EACA,OAAO,KAAK;AACd,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const setFocus: (node: HTMLElement, previousActiveElement?: HTMLElement | null, actualActiveElement?: HTMLElement, focusOptions?: FocusOptions) => void;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.setFocus = void 0;
8
+ var _canUseDOM = _interopRequireDefault(require("../canUseDOM"));
9
+ var _getFocusableIn = require("./getFocusableIn");
10
+ var unsafeSetFocus = function unsafeSetFocus(node, previousActiveElement, actualActiveElement) {
11
+ var _target;
12
+ var focusOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
13
+ var activeElement = actualActiveElement || document.activeElement;
14
+ var focusable = (0, _getFocusableIn.getFocusableIn)(node);
15
+ var target = focusable[0];
16
+ if (activeElement && previousActiveElement && previousActiveElement.compareDocumentPosition(activeElement) & Node.DOCUMENT_POSITION_PRECEDING && !(previousActiveElement.compareDocumentPosition(activeElement) & Node.DOCUMENT_POSITION_CONTAINS)) {
17
+ target = focusable[focusable.length - 1];
18
+ }
19
+ (_target = target) === null || _target === void 0 ? void 0 : _target.focus(focusOptions);
20
+ };
21
+
22
+ /** "safe" focus movement means that function wrapper tries
23
+ * to detect focus war (when two focus locks are trying to
24
+ * control focus recursively) and disables it for 10 seconds
25
+ */
26
+ var focusMoveRequests = [];
27
+ var focusMoveDisabledUntil = 0;
28
+ var lastUserAction = 0;
29
+ var safeSetFocus = function safeSetFocus() {
30
+ if (focusMoveDisabledUntil > Date.now()) return;
31
+ focusMoveRequests.push(Date.now());
32
+ if (focusMoveRequests.length > 10 && Date.now() - lastUserAction > 600) {
33
+ var lastFocusMoveRequests = focusMoveRequests.slice(-10);
34
+ var timeBetweenFocusMoveRequests = lastFocusMoveRequests.slice(1).map(function (time, index) {
35
+ return Math.abs(time - lastFocusMoveRequests[index]);
36
+ });
37
+ if (timeBetweenFocusMoveRequests.every(function (time) {
38
+ return time < 250;
39
+ })) {
40
+ focusMoveDisabledUntil = Date.now() + 10000;
41
+ focusMoveRequests = [];
42
+ console.error('[useFocusLock] Probably the focus war was detected. It is a process when multiple browser focus control subjects are reacting to "blur" event on their element and are trying to get it back. Focus move function was disabled for 10 seconds. Probably your page has different focus lock systems. If you have multiple versions of Intergalactic components, updated them to the latest version (at least to 15.16.3).');
43
+ return;
44
+ }
45
+ }
46
+ if (focusMoveRequests.length > 500) focusMoveRequests = focusMoveRequests.slice(-10);
47
+ return unsafeSetFocus.apply(void 0, arguments);
48
+ };
49
+ if ((0, _canUseDOM["default"])()) {
50
+ document.addEventListener('keydown', function (event) {
51
+ lastUserAction = Date.now();
52
+ }, {
53
+ capture: true
54
+ });
55
+ document.addEventListener('mousedown', function () {
56
+ lastUserAction = Date.now();
57
+ }, {
58
+ capture: true
59
+ });
60
+ }
61
+ var setFocus = safeSetFocus;
62
+ exports.setFocus = setFocus;
63
+ //# sourceMappingURL=setFocus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setFocus.js","names":["_canUseDOM","_interopRequireDefault","require","_getFocusableIn","unsafeSetFocus","node","previousActiveElement","actualActiveElement","_target","focusOptions","arguments","length","undefined","activeElement","document","focusable","getFocusableIn","target","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","focus","focusMoveRequests","focusMoveDisabledUntil","lastUserAction","safeSetFocus","Date","now","push","lastFocusMoveRequests","slice","timeBetweenFocusMoveRequests","map","time","index","Math","abs","every","console","error","apply","canUseDOM","addEventListener","event","capture","setFocus","exports"],"sources":["../../../src/utils/focus-lock/setFocus.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport { getFocusableIn } from './getFocusableIn';\n\nconst unsafeSetFocus = (\n node: HTMLElement,\n previousActiveElement?: HTMLElement | null,\n actualActiveElement?: HTMLElement,\n focusOptions: FocusOptions = {},\n) => {\n const activeElement = actualActiveElement || document.activeElement;\n\n const focusable = getFocusableIn(node);\n\n let target = focusable[0];\n\n if (\n activeElement &&\n previousActiveElement &&\n previousActiveElement.compareDocumentPosition(activeElement) &\n Node.DOCUMENT_POSITION_PRECEDING &&\n !(\n previousActiveElement.compareDocumentPosition(activeElement) & Node.DOCUMENT_POSITION_CONTAINS\n )\n ) {\n target = focusable[focusable.length - 1];\n }\n\n target?.focus(focusOptions);\n};\n\n/** \"safe\" focus movement means that function wrapper tries\n * to detect focus war (when two focus locks are trying to\n * control focus recursively) and disables it for 10 seconds\n */\nlet focusMoveRequests: number[] = [];\nlet focusMoveDisabledUntil = 0;\nlet lastUserAction = 0;\nconst safeSetFocus: typeof unsafeSetFocus = (...args) => {\n if (focusMoveDisabledUntil > Date.now()) return;\n focusMoveRequests.push(Date.now());\n if (focusMoveRequests.length > 10 && Date.now() - lastUserAction > 600) {\n const lastFocusMoveRequests = focusMoveRequests.slice(-10);\n const timeBetweenFocusMoveRequests = lastFocusMoveRequests\n .slice(1)\n .map((time, index) => Math.abs(time - lastFocusMoveRequests[index]));\n if (timeBetweenFocusMoveRequests.every((time) => time < 250)) {\n focusMoveDisabledUntil = Date.now() + 10000;\n focusMoveRequests = [];\n console.error(\n '[useFocusLock] Probably the focus war was detected. It is a process when multiple browser focus control subjects are reacting to \"blur\" event on their element and are trying to get it back. Focus move function was disabled for 10 seconds. Probably your page has different focus lock systems. If you have multiple versions of Intergalactic components, updated them to the latest version (at least to 15.16.3).',\n );\n return;\n }\n }\n if (focusMoveRequests.length > 500) focusMoveRequests = focusMoveRequests.slice(-10);\n\n return unsafeSetFocus(...args);\n};\nif (canUseDOM()) {\n document.addEventListener(\n 'keydown',\n (event) => {\n lastUserAction = Date.now();\n },\n { capture: true },\n );\n document.addEventListener(\n 'mousedown',\n () => {\n lastUserAction = Date.now();\n },\n { capture: true },\n );\n}\n\nexport const setFocus = safeSetFocus;\n"],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import canUseDOM from "../canUseDOM.mjs";
2
+ import { getFocusableIn } from "./getFocusableIn.mjs";
3
+ var unsafeSetFocus = function unsafeSetFocus(node, previousActiveElement, actualActiveElement) {
4
+ var _target;
5
+ var focusOptions = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
6
+ var activeElement = actualActiveElement || document.activeElement;
7
+ var focusable = getFocusableIn(node);
8
+ var target = focusable[0];
9
+ if (activeElement && previousActiveElement && previousActiveElement.compareDocumentPosition(activeElement) & Node.DOCUMENT_POSITION_PRECEDING && !(previousActiveElement.compareDocumentPosition(activeElement) & Node.DOCUMENT_POSITION_CONTAINS)) {
10
+ target = focusable[focusable.length - 1];
11
+ }
12
+ (_target = target) === null || _target === void 0 ? void 0 : _target.focus(focusOptions);
13
+ };
14
+
15
+ /** "safe" focus movement means that function wrapper tries
16
+ * to detect focus war (when two focus locks are trying to
17
+ * control focus recursively) and disables it for 10 seconds
18
+ */
19
+ var focusMoveRequests = [];
20
+ var focusMoveDisabledUntil = 0;
21
+ var lastUserAction = 0;
22
+ var safeSetFocus = function safeSetFocus() {
23
+ if (focusMoveDisabledUntil > Date.now()) return;
24
+ focusMoveRequests.push(Date.now());
25
+ if (focusMoveRequests.length > 10 && Date.now() - lastUserAction > 600) {
26
+ var lastFocusMoveRequests = focusMoveRequests.slice(-10);
27
+ var timeBetweenFocusMoveRequests = lastFocusMoveRequests.slice(1).map(function (time, index) {
28
+ return Math.abs(time - lastFocusMoveRequests[index]);
29
+ });
30
+ if (timeBetweenFocusMoveRequests.every(function (time) {
31
+ return time < 250;
32
+ })) {
33
+ focusMoveDisabledUntil = Date.now() + 10000;
34
+ focusMoveRequests = [];
35
+ console.error('[useFocusLock] Probably the focus war was detected. It is a process when multiple browser focus control subjects are reacting to "blur" event on their element and are trying to get it back. Focus move function was disabled for 10 seconds. Probably your page has different focus lock systems. If you have multiple versions of Intergalactic components, updated them to the latest version (at least to 15.16.3).');
36
+ return;
37
+ }
38
+ }
39
+ if (focusMoveRequests.length > 500) focusMoveRequests = focusMoveRequests.slice(-10);
40
+ return unsafeSetFocus.apply(void 0, arguments);
41
+ };
42
+ if (canUseDOM()) {
43
+ document.addEventListener('keydown', function (event) {
44
+ lastUserAction = Date.now();
45
+ }, {
46
+ capture: true
47
+ });
48
+ document.addEventListener('mousedown', function () {
49
+ lastUserAction = Date.now();
50
+ }, {
51
+ capture: true
52
+ });
53
+ }
54
+ export var setFocus = safeSetFocus;
55
+ //# sourceMappingURL=setFocus.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setFocus.mjs","names":["canUseDOM","getFocusableIn","unsafeSetFocus","node","previousActiveElement","actualActiveElement","_target","focusOptions","arguments","length","undefined","activeElement","document","focusable","target","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","focus","focusMoveRequests","focusMoveDisabledUntil","lastUserAction","safeSetFocus","Date","now","push","lastFocusMoveRequests","slice","timeBetweenFocusMoveRequests","map","time","index","Math","abs","every","console","error","apply","addEventListener","event","capture","setFocus"],"sources":["../../../src/utils/focus-lock/setFocus.ts"],"sourcesContent":["import canUseDOM from '../canUseDOM';\nimport { getFocusableIn } from './getFocusableIn';\n\nconst unsafeSetFocus = (\n node: HTMLElement,\n previousActiveElement?: HTMLElement | null,\n actualActiveElement?: HTMLElement,\n focusOptions: FocusOptions = {},\n) => {\n const activeElement = actualActiveElement || document.activeElement;\n\n const focusable = getFocusableIn(node);\n\n let target = focusable[0];\n\n if (\n activeElement &&\n previousActiveElement &&\n previousActiveElement.compareDocumentPosition(activeElement) &\n Node.DOCUMENT_POSITION_PRECEDING &&\n !(\n previousActiveElement.compareDocumentPosition(activeElement) & Node.DOCUMENT_POSITION_CONTAINS\n )\n ) {\n target = focusable[focusable.length - 1];\n }\n\n target?.focus(focusOptions);\n};\n\n/** \"safe\" focus movement means that function wrapper tries\n * to detect focus war (when two focus locks are trying to\n * control focus recursively) and disables it for 10 seconds\n */\nlet focusMoveRequests: number[] = [];\nlet focusMoveDisabledUntil = 0;\nlet lastUserAction = 0;\nconst safeSetFocus: typeof unsafeSetFocus = (...args) => {\n if (focusMoveDisabledUntil > Date.now()) return;\n focusMoveRequests.push(Date.now());\n if (focusMoveRequests.length > 10 && Date.now() - lastUserAction > 600) {\n const lastFocusMoveRequests = focusMoveRequests.slice(-10);\n const timeBetweenFocusMoveRequests = lastFocusMoveRequests\n .slice(1)\n .map((time, index) => Math.abs(time - lastFocusMoveRequests[index]));\n if (timeBetweenFocusMoveRequests.every((time) => time < 250)) {\n focusMoveDisabledUntil = Date.now() + 10000;\n focusMoveRequests = [];\n console.error(\n '[useFocusLock] Probably the focus war was detected. It is a process when multiple browser focus control subjects are reacting to \"blur\" event on their element and are trying to get it back. Focus move function was disabled for 10 seconds. Probably your page has different focus lock systems. If you have multiple versions of Intergalactic components, updated them to the latest version (at least to 15.16.3).',\n );\n return;\n }\n }\n if (focusMoveRequests.length > 500) focusMoveRequests = focusMoveRequests.slice(-10);\n\n return unsafeSetFocus(...args);\n};\nif (canUseDOM()) {\n document.addEventListener(\n 'keydown',\n (event) => {\n lastUserAction = Date.now();\n },\n { capture: true },\n );\n document.addEventListener(\n 'mousedown',\n () => {\n lastUserAction = Date.now();\n },\n { capture: true },\n );\n}\n\nexport const setFocus = safeSetFocus;\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function getAccessibleName(element: HTMLElement | null): string;
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getAccessibleName = getAccessibleName;
8
+ var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/createForOfIteratorHelper"));
9
+ function getAccessibleName(element) {
10
+ var _ref, _ref2, _ref3, _getByLabelledBy;
11
+ if (element === null) {
12
+ return '';
13
+ }
14
+ return (_ref = (_ref2 = (_ref3 = (_getByLabelledBy = getByLabelledBy(element)) !== null && _getByLabelledBy !== void 0 ? _getByLabelledBy : getByAriaLabel(element)) !== null && _ref3 !== void 0 ? _ref3 : getByLabel(element)) !== null && _ref2 !== void 0 ? _ref2 : getByTitle(element)) !== null && _ref !== void 0 ? _ref : '';
15
+ }
16
+ function getByLabelledBy(element) {
17
+ var ariaLabelledBy = element.getAttribute('aria-labelledby');
18
+ if (!ariaLabelledBy) {
19
+ return null;
20
+ }
21
+ var idList = ariaLabelledBy.split(/\s/);
22
+ var result = [];
23
+ var _iterator = (0, _createForOfIteratorHelper2["default"])(idList),
24
+ _step;
25
+ try {
26
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
27
+ var id = _step.value;
28
+ var label = document.getElementById(id);
29
+ if (label) {
30
+ result.push((label.textContent || '').trim());
31
+ }
32
+ }
33
+ } catch (err) {
34
+ _iterator.e(err);
35
+ } finally {
36
+ _iterator.f();
37
+ }
38
+ return result.join(' ');
39
+ }
40
+ function getByAriaLabel(element) {
41
+ return element.getAttribute('aria-label');
42
+ }
43
+ function getByLabel(element) {
44
+ var labels = (element instanceof HTMLButtonElement || element instanceof HTMLInputElement) && element.labels;
45
+ if (!labels || !labels.length) {
46
+ return null;
47
+ }
48
+ var result = Array.prototype.map.call(labels, function (label) {
49
+ return (label.textContent || '').trim();
50
+ });
51
+ return result.join(' ');
52
+ }
53
+ function getByTitle(element) {
54
+ return element.title;
55
+ }
56
+ //# sourceMappingURL=getAccessibleName.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAccessibleName.js","names":["getAccessibleName","element","_ref","_ref2","_ref3","_getByLabelledBy","getByLabelledBy","getByAriaLabel","getByLabel","getByTitle","ariaLabelledBy","getAttribute","idList","split","result","_iterator","_createForOfIteratorHelper2","_step","s","n","done","id","value","label","document","getElementById","push","textContent","trim","err","e","f","join","labels","HTMLButtonElement","HTMLInputElement","length","Array","prototype","map","call","title"],"sources":["../../src/utils/getAccessibleName.ts"],"sourcesContent":["export function getAccessibleName(element: HTMLElement | null): string {\n if (element === null) {\n return '';\n }\n\n return (\n getByLabelledBy(element) ??\n getByAriaLabel(element) ??\n getByLabel(element) ??\n getByTitle(element) ??\n ''\n );\n}\n\nfunction getByLabelledBy(element: HTMLElement): string | null {\n const ariaLabelledBy = element.getAttribute('aria-labelledby');\n\n if (!ariaLabelledBy) {\n return null;\n }\n\n const idList = ariaLabelledBy.split(/\\s/);\n const result: string[] = [];\n\n for (const id of idList) {\n const label = document.getElementById(id);\n\n if (label) {\n result.push((label.textContent || '').trim());\n }\n }\n\n return result.join(' ');\n}\nfunction getByAriaLabel(element: HTMLElement): string | null {\n return element.getAttribute('aria-label');\n}\nfunction getByLabel(element: HTMLElement): string | null {\n const labels =\n (element instanceof HTMLButtonElement || element instanceof HTMLInputElement) && element.labels;\n\n if (!labels || !labels.length) {\n return null;\n }\n\n const result = Array.prototype.map.call(labels, (label: HTMLLabelElement) => {\n return (label.textContent || '').trim();\n });\n\n return result.join(' ');\n}\n\nfunction getByTitle(element: HTMLElement): string | null {\n return element.title;\n}\n"],"mappings":";;;;;;;;AAAO,SAASA,iBAAiBA,CAACC,OAA2B,EAAU;EAAA,IAAAC,IAAA,EAAAC,KAAA,EAAAC,KAAA,EAAAC,gBAAA;EACrE,IAAIJ,OAAO,KAAK,IAAI,EAAE;IACpB,OAAO,EAAE;EACX;EAEA,QAAAC,IAAA,IAAAC,KAAA,IAAAC,KAAA,IAAAC,gBAAA,GACEC,eAAe,CAACL,OAAO,CAAC,cAAAI,gBAAA,cAAAA,gBAAA,GACxBE,cAAc,CAACN,OAAO,CAAC,cAAAG,KAAA,cAAAA,KAAA,GACvBI,UAAU,CAACP,OAAO,CAAC,cAAAE,KAAA,cAAAA,KAAA,GACnBM,UAAU,CAACR,OAAO,CAAC,cAAAC,IAAA,cAAAA,IAAA,GACnB,EAAE;AAEN;AAEA,SAASI,eAAeA,CAACL,OAAoB,EAAiB;EAC5D,IAAMS,cAAc,GAAGT,OAAO,CAACU,YAAY,CAAC,iBAAiB,CAAC;EAE9D,IAAI,CAACD,cAAc,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,IAAME,MAAM,GAAGF,cAAc,CAACG,KAAK,CAAC,IAAI,CAAC;EACzC,IAAMC,MAAgB,GAAG,EAAE;EAAC,IAAAC,SAAA,OAAAC,2BAAA,aAEXJ,MAAM;IAAAK,KAAA;EAAA;IAAvB,KAAAF,SAAA,CAAAG,CAAA,MAAAD,KAAA,GAAAF,SAAA,CAAAI,CAAA,IAAAC,IAAA,GAAyB;MAAA,IAAdC,EAAE,GAAAJ,KAAA,CAAAK,KAAA;MACX,IAAMC,KAAK,GAAGC,QAAQ,CAACC,cAAc,CAACJ,EAAE,CAAC;MAEzC,IAAIE,KAAK,EAAE;QACTT,MAAM,CAACY,IAAI,CAAC,CAACH,KAAK,CAACI,WAAW,IAAI,EAAE,EAAEC,IAAI,EAAE,CAAC;MAC/C;IACF;EAAC,SAAAC,GAAA;IAAAd,SAAA,CAAAe,CAAA,CAAAD,GAAA;EAAA;IAAAd,SAAA,CAAAgB,CAAA;EAAA;EAED,OAAOjB,MAAM,CAACkB,IAAI,CAAC,GAAG,CAAC;AACzB;AACA,SAASzB,cAAcA,CAACN,OAAoB,EAAiB;EAC3D,OAAOA,OAAO,CAACU,YAAY,CAAC,YAAY,CAAC;AAC3C;AACA,SAASH,UAAUA,CAACP,OAAoB,EAAiB;EACvD,IAAMgC,MAAM,GACV,CAAChC,OAAO,YAAYiC,iBAAiB,IAAIjC,OAAO,YAAYkC,gBAAgB,KAAKlC,OAAO,CAACgC,MAAM;EAEjG,IAAI,CAACA,MAAM,IAAI,CAACA,MAAM,CAACG,MAAM,EAAE;IAC7B,OAAO,IAAI;EACb;EAEA,IAAMtB,MAAM,GAAGuB,KAAK,CAACC,SAAS,CAACC,GAAG,CAACC,IAAI,CAACP,MAAM,EAAE,UAACV,KAAuB,EAAK;IAC3E,OAAO,CAACA,KAAK,CAACI,WAAW,IAAI,EAAE,EAAEC,IAAI,EAAE;EACzC,CAAC,CAAC;EAEF,OAAOd,MAAM,CAACkB,IAAI,CAAC,GAAG,CAAC;AACzB;AAEA,SAASvB,UAAUA,CAACR,OAAoB,EAAiB;EACvD,OAAOA,OAAO,CAACwC,KAAK;AACtB"}