@semcore/core 16.3.0 → 16.5.0-prerelease.3

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 (81) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/lib/core-types/Component.d.ts +3 -3
  3. package/lib/core-types/Component.js +2 -5
  4. package/lib/core-types/Component.js.map +1 -1
  5. package/lib/core-types/Component.mjs +1 -6
  6. package/lib/core-types/Component.mjs.map +1 -1
  7. package/lib/coreFactory.js +7 -11
  8. package/lib/coreFactory.js.map +1 -1
  9. package/lib/coreFactory.mjs +2 -13
  10. package/lib/coreFactory.mjs.map +1 -1
  11. package/lib/esm/core-types/Component.mjs +1 -6
  12. package/lib/esm/coreFactory.mjs +2 -13
  13. package/lib/esm/utils/createHoc.mjs +1 -6
  14. package/lib/esm/utils/enhances/WithI18n.mjs +1 -6
  15. package/lib/esm/utils/enhances/i18nEnhance.mjs +7 -10
  16. package/lib/theme/dark.json +41 -41
  17. package/lib/theme/light.json +41 -41
  18. package/lib/theme/processor.js +14 -15
  19. package/lib/theme/processor.js.map +1 -1
  20. package/lib/theme/processor.mjs +14 -15
  21. package/lib/theme/processor.mjs.map +1 -1
  22. package/lib/theme/themes/auto.css +20 -20
  23. package/lib/theme/themes/dark.css +11 -11
  24. package/lib/theme/themes/dark.d.ts +2 -2
  25. package/lib/theme/themes/dark.js +8 -8
  26. package/lib/theme/themes/dark.js.map +1 -1
  27. package/lib/theme/themes/dark.mjs +8 -8
  28. package/lib/theme/themes/dark.mjs.map +1 -1
  29. package/lib/theme/themes/default.css +9 -9
  30. package/lib/theme/themes/default.d.ts +2 -2
  31. package/lib/theme/themes/default.js +6 -6
  32. package/lib/theme/themes/default.js.map +1 -1
  33. package/lib/theme/themes/default.mjs +6 -6
  34. package/lib/theme/themes/default.mjs.map +1 -1
  35. package/lib/theme/themes/highlights-dark.css +1 -1
  36. package/lib/theme/themes/highlights-dark.js +1 -1
  37. package/lib/theme/themes/highlights-dark.js.map +1 -1
  38. package/lib/theme/themes/highlights-dark.mjs +1 -1
  39. package/lib/theme/themes/highlights-dark.mjs.map +1 -1
  40. package/lib/theme/themes/highlights-light.css +1 -1
  41. package/lib/theme/themes/highlights-light.js +1 -1
  42. package/lib/theme/themes/highlights-light.js.map +1 -1
  43. package/lib/theme/themes/highlights-light.mjs +1 -1
  44. package/lib/theme/themes/highlights-light.mjs.map +1 -1
  45. package/lib/theme/themes/light.css +9 -9
  46. package/lib/theme/themes/light.d.ts +2 -2
  47. package/lib/theme/themes/light.js +6 -6
  48. package/lib/theme/themes/light.js.map +1 -1
  49. package/lib/theme/themes/light.mjs +6 -6
  50. package/lib/theme/themes/light.mjs.map +1 -1
  51. package/lib/utils/createHoc.js +2 -5
  52. package/lib/utils/createHoc.js.map +1 -1
  53. package/lib/utils/createHoc.mjs +1 -6
  54. package/lib/utils/createHoc.mjs.map +1 -1
  55. package/lib/utils/enhances/WithAutoFocus.js +2 -5
  56. package/lib/utils/enhances/WithAutoFocus.js.map +1 -1
  57. package/lib/utils/enhances/WithAutoFocus.mjs +1 -4
  58. package/lib/utils/enhances/WithAutoFocus.mjs.map +1 -1
  59. package/lib/utils/enhances/WithCSS.js +2 -5
  60. package/lib/utils/enhances/WithCSS.js.map +1 -1
  61. package/lib/utils/enhances/WithCSS.mjs +1 -4
  62. package/lib/utils/enhances/WithCSS.mjs.map +1 -1
  63. package/lib/utils/enhances/WithI18n.js +2 -5
  64. package/lib/utils/enhances/WithI18n.js.map +1 -1
  65. package/lib/utils/enhances/WithI18n.mjs +1 -6
  66. package/lib/utils/enhances/WithI18n.mjs.map +1 -1
  67. package/lib/utils/enhances/WithKeyboardFocus.js +2 -5
  68. package/lib/utils/enhances/WithKeyboardFocus.js.map +1 -1
  69. package/lib/utils/enhances/WithKeyboardFocus.mjs +1 -4
  70. package/lib/utils/enhances/WithKeyboardFocus.mjs.map +1 -1
  71. package/lib/utils/enhances/i18nEnhance.js +7 -10
  72. package/lib/utils/enhances/i18nEnhance.js.map +1 -1
  73. package/lib/utils/enhances/i18nEnhance.mjs +7 -10
  74. package/lib/utils/enhances/i18nEnhance.mjs.map +1 -1
  75. package/lib/utils/focus-lock/setFocus.js +2 -1
  76. package/lib/utils/focus-lock/setFocus.js.map +1 -1
  77. package/lib/utils/focus-lock/setFocus.mjs +2 -1
  78. package/lib/utils/focus-lock/setFocus.mjs.map +1 -1
  79. package/lib/utils/injectStyle.js +1 -1
  80. package/lib/utils/injectStyle.mjs +1 -1
  81. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _typeof from "@babel/runtime/helpers/esm/typeof";
3
- import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
3
+ import _regenerator from "@babel/runtime/helpers/esm/regenerator";
4
4
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
5
5
  import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
6
6
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
@@ -15,22 +15,19 @@ var useAsyncI18nMessages = function useAsyncI18nMessages2(primaryContainer, loca
15
15
  var container2 = {};
16
16
  var _loop = function _loop2(_locale2) {
17
17
  if (typeof primaryContainer[_locale2] === "function" || typeof fallbackContainer[_locale2] === "function") {
18
- container2[_locale2] = /* @__PURE__ */ _asyncToGenerator(/* @__PURE__ */ _regeneratorRuntime().mark(function _callee() {
18
+ container2[_locale2] = /* @__PURE__ */ _asyncToGenerator(/* @__PURE__ */ _regenerator().m(function _callee() {
19
19
  var _yield$Promise$all, _yield$Promise$all2, primary, fallback;
20
- return _regeneratorRuntime().wrap(function(_context) {
21
- while (1) switch (_context.prev = _context.next) {
20
+ return _regenerator().w(function(_context) {
21
+ while (1) switch (_context.n) {
22
22
  case 0:
23
- _context.next = 1;
23
+ _context.n = 1;
24
24
  return Promise.all([primaryContainer[_locale2], fallbackContainer[_locale2]]);
25
25
  case 1:
26
- _yield$Promise$all = _context.sent;
26
+ _yield$Promise$all = _context.v;
27
27
  _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
28
28
  primary = _yield$Promise$all2[0];
29
29
  fallback = _yield$Promise$all2[1];
30
- return _context.abrupt("return", _objectSpread(_objectSpread({}, primary), fallback));
31
- case 2:
32
- case "end":
33
- return _context.stop();
30
+ return _context.a(2, _objectSpread(_objectSpread({}, primary), fallback));
34
31
  }
35
32
  }, _callee);
36
33
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"i18nEnhance.mjs","names":["React","useI18n","useAsyncI18nMessages","primaryContainer","locale","fallbackContainer","_store$locale","container","useMemo","_loop","_locale","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_yield$Promise$all","_yield$Promise$all2","primary","fallback","wrap","_context","prev","next","Promise","all","sent","_slicedToArray","abrupt","_objectSpread","stop","_primaryContainer$_lo","_fallbackContainer$_l","initStore","store","_typeof","_React$useState","useState","_React$useState2","setStore","lastLoadedLocaleRef","useRef","current","fallbackMessages","Object","values","loadingLocaleRef","useEffect","asyncMessages","then","module","messages","_defineProperty","err","console","error","props","i18n","getI18nText"],"sources":["../../../src/utils/enhances/i18nEnhance.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type LocaleKeys, useI18n } from './WithI18n';\nimport type { UnknownProperties } from '../../core-types/UnknownProperties';\n\n/** @deprecated */\nexport interface IWithI18nEnhanceProps extends WithI18nEnhanceProps, UnknownProperties {}\nexport type WithI18nEnhanceProps = {\n /* Function for getting the required field from the translation dictionary */\n getI18nText?: (key?: string, variables?: {}) => any;\n /* Object with translations */\n i18n?: {\n [locale: string]: {\n [key: string]: string;\n };\n };\n /* Locale for translations */\n locale?: LocaleKeys;\n};\n\ntype Messages = { [messageId: string]: string };\ntype MessagesContainer = { [locale: string]: Messages | (() => Promise<Messages>) };\ntype MessagesStore = { [locale: string]: Messages };\nexport const useAsyncI18nMessages = (\n primaryContainer: MessagesContainer,\n locale: string,\n fallbackContainer?: MessagesContainer,\n) => {\n const container = React.useMemo(() => {\n if (!fallbackContainer) return primaryContainer;\n if (!primaryContainer) return fallbackContainer;\n if (primaryContainer === fallbackContainer) return primaryContainer;\n const container: MessagesContainer = {};\n for (const locale in primaryContainer) {\n if (\n typeof primaryContainer[locale] === 'function' ||\n typeof fallbackContainer[locale] === 'function'\n ) {\n container[locale] = async () => {\n const [primary, fallback] = await Promise.all([\n primaryContainer[locale],\n fallbackContainer[locale],\n ]);\n return { ...primary, ...fallback };\n };\n } else {\n container[locale] = {\n ...(primaryContainer[locale] ?? {}),\n ...(fallbackContainer[locale] ?? {}),\n };\n }\n }\n return container;\n }, [primaryContainer, fallbackContainer]);\n const initStore = React.useMemo(() => {\n const store: MessagesStore = {};\n for (const locale in container) {\n if (typeof container[locale] === 'object') {\n store[locale] = container[locale] as Messages;\n }\n }\n return store;\n }, [container]);\n const [store, setStore] = React.useState(initStore);\n const lastLoadedLocaleRef = React.useRef<string | null>(null);\n if (store[locale]) lastLoadedLocaleRef.current = locale;\n const fallbackMessages = React.useMemo(() => Object.values(store)[0], [store]);\n\n const loadingLocaleRef = React.useRef<string | null>(null);\n React.useEffect(() => {\n loadingLocaleRef.current = locale;\n const asyncMessages = container[locale];\n if (typeof asyncMessages === 'function') {\n asyncMessages()\n .then((module) => {\n if (loadingLocaleRef.current !== locale) return;\n let messages = module;\n if ('default' in module && typeof module.default === 'object') messages = module.default;\n setStore((store) => ({\n ...store,\n [locale]: messages,\n }));\n })\n\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.error(err);\n });\n }\n }, [container, locale]);\n\n return store[locale] ?? fallbackMessages;\n};\nexport default (container?: MessagesContainer) => {\n return (props: any): { getI18nText: ReturnType<typeof useI18n> } => {\n const { i18n, locale } = props;\n const getI18nText = useI18n(i18n, locale, container);\n\n return { ...props, getI18nText };\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"i18nEnhance.mjs","names":["React","useI18n","useAsyncI18nMessages","primaryContainer","locale","fallbackContainer","_store$locale","container","useMemo","_loop","_locale","_asyncToGenerator","_regenerator","m","_callee","_yield$Promise$all","_yield$Promise$all2","primary","fallback","w","_context","n","Promise","all","v","_slicedToArray","a","_objectSpread","_primaryContainer$_lo","_fallbackContainer$_l","initStore","store","_typeof","_React$useState","useState","_React$useState2","setStore","lastLoadedLocaleRef","useRef","current","fallbackMessages","Object","values","loadingLocaleRef","useEffect","asyncMessages","then","module","messages","_defineProperty","err","console","error","props","i18n","getI18nText"],"sources":["../../../src/utils/enhances/i18nEnhance.tsx"],"sourcesContent":["import React from 'react';\n\nimport { type LocaleKeys, useI18n } from './WithI18n';\nimport type { UnknownProperties } from '../../core-types/UnknownProperties';\n\n/** @deprecated */\nexport interface IWithI18nEnhanceProps extends WithI18nEnhanceProps, UnknownProperties {}\nexport type WithI18nEnhanceProps = {\n /* Function for getting the required field from the translation dictionary */\n getI18nText?: (key?: string, variables?: {}) => any;\n /* Object with translations */\n i18n?: {\n [locale: string]: {\n [key: string]: string;\n };\n };\n /* Locale for translations */\n locale?: LocaleKeys;\n};\n\ntype Messages = { [messageId: string]: string };\ntype MessagesContainer = { [locale: string]: Messages | (() => Promise<Messages>) };\ntype MessagesStore = { [locale: string]: Messages };\nexport const useAsyncI18nMessages = (\n primaryContainer: MessagesContainer,\n locale: string,\n fallbackContainer?: MessagesContainer,\n) => {\n const container = React.useMemo(() => {\n if (!fallbackContainer) return primaryContainer;\n if (!primaryContainer) return fallbackContainer;\n if (primaryContainer === fallbackContainer) return primaryContainer;\n const container: MessagesContainer = {};\n for (const locale in primaryContainer) {\n if (\n typeof primaryContainer[locale] === 'function' ||\n typeof fallbackContainer[locale] === 'function'\n ) {\n container[locale] = async () => {\n const [primary, fallback] = await Promise.all([\n primaryContainer[locale],\n fallbackContainer[locale],\n ]);\n return { ...primary, ...fallback };\n };\n } else {\n container[locale] = {\n ...(primaryContainer[locale] ?? {}),\n ...(fallbackContainer[locale] ?? {}),\n };\n }\n }\n return container;\n }, [primaryContainer, fallbackContainer]);\n const initStore = React.useMemo(() => {\n const store: MessagesStore = {};\n for (const locale in container) {\n if (typeof container[locale] === 'object') {\n store[locale] = container[locale] as Messages;\n }\n }\n return store;\n }, [container]);\n const [store, setStore] = React.useState(initStore);\n const lastLoadedLocaleRef = React.useRef<string | null>(null);\n if (store[locale]) lastLoadedLocaleRef.current = locale;\n const fallbackMessages = React.useMemo(() => Object.values(store)[0], [store]);\n\n const loadingLocaleRef = React.useRef<string | null>(null);\n React.useEffect(() => {\n loadingLocaleRef.current = locale;\n const asyncMessages = container[locale];\n if (typeof asyncMessages === 'function') {\n asyncMessages()\n .then((module) => {\n if (loadingLocaleRef.current !== locale) return;\n let messages = module;\n if ('default' in module && typeof module.default === 'object') messages = module.default;\n setStore((store) => ({\n ...store,\n [locale]: messages,\n }));\n })\n\n .catch((err) => {\n // eslint-disable-next-line no-console\n console.error(err);\n });\n }\n }, [container, locale]);\n\n return store[locale] ?? fallbackMessages;\n};\nexport default (container?: MessagesContainer) => {\n return (props: any): { getI18nText: ReturnType<typeof useI18n> } => {\n const { i18n, locale } = props;\n const getI18nText = useI18n(i18n, locale, container);\n\n return { ...props, getI18nText };\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -20,7 +20,8 @@ var unsafeSetFocus = function unsafeSetFocus(node, previousActiveElement, actual
20
20
  }
21
21
  (_target = target) === null || _target === void 0 || _target.focus((0, _objectSpread2["default"])({
22
22
  // @ts-ignore. set focus-visible in FF and Safari
23
- focusVisible: _LastInteractionType.lastInteraction.isKeyboard()
23
+ focusVisible: _LastInteractionType.lastInteraction.isKeyboard(),
24
+ preventScroll: _LastInteractionType.lastInteraction.isMouse()
24
25
  }, focusOptions));
25
26
  };
26
27
 
@@ -1 +1 @@
1
- {"version":3,"file":"setFocus.js","names":["_LastInteractionType","require","_canUseDOM","_interopRequireDefault","_getFocusableIn","unsafeSetFocus","node","previousActiveElement","actualActiveElement","_target","focusOptions","arguments","length","undefined","activeElement","document","focusable","getFocusableIn","target","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","focus","_objectSpread2","focusVisible","lastInteraction","isKeyboard","focusMoveRequests","focusMoveDisabledUntil","lastUserAction","safeSetFocus","Date","now","push","lastFocusMoveRequests","slice","timeBetweenFocusMoveRequests","map","time","index","Math","abs","every","console","error","apply","canUseDOM","addEventListener","capture","setFocus","exports"],"sources":["../../../src/utils/focus-lock/setFocus.ts"],"sourcesContent":["import { lastInteraction } from '../../LastInteractionType';\nimport 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({\n // @ts-ignore. set focus-visible in FF and Safari\n focusVisible: lastInteraction.isKeyboard(),\n ...focusOptions,\n });\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\n // eslint-disable-next-line no-console\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 () => {\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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","ignoreList":[]}
1
+ {"version":3,"file":"setFocus.js","names":["_LastInteractionType","require","_canUseDOM","_interopRequireDefault","_getFocusableIn","unsafeSetFocus","node","previousActiveElement","actualActiveElement","_target","focusOptions","arguments","length","undefined","activeElement","document","focusable","getFocusableIn","target","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","focus","_objectSpread2","focusVisible","lastInteraction","isKeyboard","preventScroll","isMouse","focusMoveRequests","focusMoveDisabledUntil","lastUserAction","safeSetFocus","Date","now","push","lastFocusMoveRequests","slice","timeBetweenFocusMoveRequests","map","time","index","Math","abs","every","console","error","apply","canUseDOM","addEventListener","capture","setFocus","exports"],"sources":["../../../src/utils/focus-lock/setFocus.ts"],"sourcesContent":["import { lastInteraction } from '../../LastInteractionType';\nimport 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({\n // @ts-ignore. set focus-visible in FF and Safari\n focusVisible: lastInteraction.isKeyboard(),\n preventScroll: lastInteraction.isMouse(),\n ...focusOptions,\n });\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\n // eslint-disable-next-line no-console\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 () => {\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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","ignoreList":[]}
@@ -13,7 +13,8 @@ var unsafeSetFocus = function unsafeSetFocus(node, previousActiveElement, actual
13
13
  }
14
14
  (_target = target) === null || _target === void 0 || _target.focus(_objectSpread({
15
15
  // @ts-ignore. set focus-visible in FF and Safari
16
- focusVisible: lastInteraction.isKeyboard()
16
+ focusVisible: lastInteraction.isKeyboard(),
17
+ preventScroll: lastInteraction.isMouse()
17
18
  }, focusOptions));
18
19
  };
19
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"setFocus.mjs","names":["lastInteraction","canUseDOM","getFocusableIn","unsafeSetFocus","node","previousActiveElement","actualActiveElement","_target","focusOptions","arguments","length","undefined","activeElement","document","focusable","target","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","focus","_objectSpread","focusVisible","isKeyboard","focusMoveRequests","focusMoveDisabledUntil","lastUserAction","safeSetFocus","Date","now","push","lastFocusMoveRequests","slice","timeBetweenFocusMoveRequests","map","time","index","Math","abs","every","console","error","apply","addEventListener","capture","setFocus"],"sources":["../../../src/utils/focus-lock/setFocus.ts"],"sourcesContent":["import { lastInteraction } from '../../LastInteractionType';\nimport 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({\n // @ts-ignore. set focus-visible in FF and Safari\n focusVisible: lastInteraction.isKeyboard(),\n ...focusOptions,\n });\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\n // eslint-disable-next-line no-console\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 () => {\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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","ignoreList":[]}
1
+ {"version":3,"file":"setFocus.mjs","names":["lastInteraction","canUseDOM","getFocusableIn","unsafeSetFocus","node","previousActiveElement","actualActiveElement","_target","focusOptions","arguments","length","undefined","activeElement","document","focusable","target","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DOCUMENT_POSITION_CONTAINS","focus","_objectSpread","focusVisible","isKeyboard","preventScroll","isMouse","focusMoveRequests","focusMoveDisabledUntil","lastUserAction","safeSetFocus","Date","now","push","lastFocusMoveRequests","slice","timeBetweenFocusMoveRequests","map","time","index","Math","abs","every","console","error","apply","addEventListener","capture","setFocus"],"sources":["../../../src/utils/focus-lock/setFocus.ts"],"sourcesContent":["import { lastInteraction } from '../../LastInteractionType';\nimport 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({\n // @ts-ignore. set focus-visible in FF and Safari\n focusVisible: lastInteraction.isKeyboard(),\n preventScroll: lastInteraction.isMouse(),\n ...focusOptions,\n });\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\n // eslint-disable-next-line no-console\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 () => {\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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","ignoreList":[]}
@@ -29,7 +29,7 @@ function injectStyle(css) {
29
29
  sh = prevSh;
30
30
  } else {
31
31
  // @ts-ignore
32
- var version = "16.3.0";
32
+ var version = "16.5.0";
33
33
  sh = document.createElement('style');
34
34
  sh.setAttribute('data-ui-v', version);
35
35
  sh.classList.add(selectorClass);
@@ -22,7 +22,7 @@ function injectStyle(css) {
22
22
  sh = prevSh;
23
23
  } else {
24
24
  // @ts-ignore
25
- var version = "16.3.0";
25
+ var version = "16.5.0";
26
26
  sh = document.createElement('style');
27
27
  sh.setAttribute('data-ui-v', version);
28
28
  sh.classList.add(selectorClass);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/core",
3
3
  "description": "Semrush Core Component",
4
- "version": "16.3.0",
4
+ "version": "16.5.0-prerelease.3",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.mjs",
7
7
  "typings": "lib/index.d.ts",