@alfalab/core-components-pattern-lock-v1 3.0.3 → 3.0.4

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 (56) hide show
  1. package/components/base-pattern-lock/Component.js.map +1 -1
  2. package/components/base-pattern-lock/index.css +5 -5
  3. package/components/base-pattern-lock/index.module.css.js +1 -1
  4. package/components/base-pattern-lock/index.module.css.js.map +1 -1
  5. package/cssm/components/base-pattern-lock/Component.js.map +1 -1
  6. package/cssm/hooks/use-pattern-lock-cleanup.js.map +1 -1
  7. package/cssm/typings.d.ts +5 -5
  8. package/cssm/utils.d.ts +1 -1
  9. package/cssm/utils.js.map +1 -1
  10. package/desktop/desktop.css +3 -3
  11. package/desktop/desktop.module.css.js +1 -1
  12. package/desktop/desktop.module.css.js.map +1 -1
  13. package/esm/components/base-pattern-lock/Component.js.map +1 -1
  14. package/esm/components/base-pattern-lock/index.css +5 -5
  15. package/esm/components/base-pattern-lock/index.module.css.js +1 -1
  16. package/esm/components/base-pattern-lock/index.module.css.js.map +1 -1
  17. package/esm/desktop/desktop.css +3 -3
  18. package/esm/desktop/desktop.module.css.js +1 -1
  19. package/esm/desktop/desktop.module.css.js.map +1 -1
  20. package/esm/hooks/use-pattern-lock-cleanup.js.map +1 -1
  21. package/esm/mobile/mobile.css +6 -6
  22. package/esm/mobile/mobile.module.css.js +1 -1
  23. package/esm/mobile/mobile.module.css.js.map +1 -1
  24. package/esm/typings.d.ts +5 -5
  25. package/esm/utils.d.ts +1 -1
  26. package/esm/utils.js.map +1 -1
  27. package/hooks/use-pattern-lock-cleanup.js.map +1 -1
  28. package/mobile/mobile.css +6 -6
  29. package/mobile/mobile.module.css.js +1 -1
  30. package/mobile/mobile.module.css.js.map +1 -1
  31. package/modern/components/base-pattern-lock/Component.js.map +1 -1
  32. package/modern/components/base-pattern-lock/index.css +5 -5
  33. package/modern/components/base-pattern-lock/index.module.css.js +1 -1
  34. package/modern/components/base-pattern-lock/index.module.css.js.map +1 -1
  35. package/modern/desktop/desktop.css +3 -3
  36. package/modern/desktop/desktop.module.css.js +1 -1
  37. package/modern/desktop/desktop.module.css.js.map +1 -1
  38. package/modern/hooks/use-pattern-lock-cleanup.js.map +1 -1
  39. package/modern/mobile/mobile.css +6 -6
  40. package/modern/mobile/mobile.module.css.js +1 -1
  41. package/modern/mobile/mobile.module.css.js.map +1 -1
  42. package/modern/typings.d.ts +5 -5
  43. package/modern/utils.d.ts +1 -1
  44. package/modern/utils.js.map +1 -1
  45. package/moderncssm/components/base-pattern-lock/Component.js.map +1 -1
  46. package/moderncssm/hooks/use-pattern-lock-cleanup.js.map +1 -1
  47. package/moderncssm/typings.d.ts +5 -5
  48. package/moderncssm/utils.d.ts +1 -1
  49. package/moderncssm/utils.js.map +1 -1
  50. package/package.json +5 -5
  51. package/src/components/base-pattern-lock/index.module.css +1 -1
  52. package/src/desktop/desktop.module.css +1 -1
  53. package/src/mobile/mobile.module.css +1 -1
  54. package/typings.d.ts +5 -5
  55. package/utils.d.ts +1 -1
  56. package/utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mobile.module.css.js","sources":["../src/mobile/mobile.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../vars.css';\n\n.component {\n max-width: var(--pattern-lock-v1-max-width);\n margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);\n}\n\n.forgotBtn {\n margin: var(--gap-24) auto var(--gap-0);\n}\n\n@media screen and (min-width: 360px) {\n .forgotBtn {\n margin-top: var(--gap-32);\n min-height: var(--size-s-height);\n }\n\n .component {\n margin-bottom: var(--gap-12);\n }\n}\n\n@media screen and (min-width: 390px) {\n .forgotBtn {\n min-height: var(--size-m-height);\n }\n\n .component {\n margin-bottom: var(--gap-20);\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
1
+ {"version":3,"file":"mobile.module.css.js","sources":["../src/mobile/mobile.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../vars.css';\n\n.component {\n max-width: var(--pattern-lock-v1-max-width);\n margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);\n}\n\n.forgotBtn {\n margin: var(--gap-24) auto var(--gap-0);\n}\n\n@media screen and (min-width: 360px) {\n .forgotBtn {\n margin-top: var(--gap-32);\n min-height: var(--size-s-height);\n }\n\n .component {\n margin-bottom: var(--gap-12);\n }\n}\n\n@media screen and (min-width: 390px) {\n .forgotBtn {\n min-height: var(--size-m-height);\n }\n\n .component {\n margin-bottom: var(--gap-20);\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/base-pattern-lock/Component.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useState } from 'react';\nimport {\n ReactCanvasPatternLock,\n type Theme,\n type TPatternLockInstance,\n} from 'react-canvas-pattern-lock';\nimport cn from 'classnames';\n\nimport { ButtonMobile } from '@alfalab/core-components-button/mobile';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport {\n DEFAULT_EXTRA_BOUNDS,\n OBSERVABLE_TOKENS,\n OBSERVE_OPTIONS,\n THEME_STATE,\n} from '../../consts';\nimport { type CommonPatternLockProps, type PrivatePatternLockProps } from '../../typings';\nimport { getColorByToken, getDefaultObserveTarget, getSizes, getTheme } from '../../utils';\n\nimport commonStyles from './index.module.css';\n\nexport const BasePatternLock = forwardRef<\n TPatternLockInstance,\n CommonPatternLockProps & PrivatePatternLockProps\n>(\n (\n {\n observeTokens = false,\n observerParams = {},\n justifyNodes = 'space-between',\n className,\n error,\n dataTestId,\n forgotCodeBtnText = 'Забыли код?',\n showForgotCodeBtn = false,\n onForgotBtnClick,\n extraBounds = DEFAULT_EXTRA_BOUNDS,\n message,\n messageClassName,\n hover,\n styles = {},\n ...restProps\n },\n ref,\n ) => {\n const [params, setParams] = useState<\n { theme: Theme; width: number; height: number } | undefined\n >();\n\n useEffect(() => {\n const { elementSizes, width, height } = getSizes();\n\n setParams({\n theme: getTheme(elementSizes),\n width,\n height,\n });\n }, []);\n\n useEffect(() => {\n let styleObserver: MutationObserver | null = null;\n\n if (observeTokens) {\n const { options = OBSERVE_OPTIONS, getTarget = getDefaultObserveTarget } =\n observerParams;\n\n styleObserver = new MutationObserver(() =>\n setParams((prevState) => {\n const { width, height, elementSizes } = getSizes();\n\n if (!prevState) {\n return { theme: getTheme(elementSizes), width, height };\n }\n\n const prevBgColor = prevState.theme[THEME_STATE.INITIAL].colors.bg;\n const themeChanged = prevBgColor !== getColorByToken(OBSERVABLE_TOKENS.BG);\n\n if (themeChanged) return { ...prevState, theme: getTheme(elementSizes) };\n\n return prevState;\n }),\n );\n\n styleObserver.observe(getTarget(), options);\n }\n\n return () => styleObserver?.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [observeTokens]);\n\n const renderMessage = () => (\n <div\n className={cn(commonStyles.message, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'message')}\n >\n {message}\n </div>\n );\n\n const renderError = () => (\n <div\n className={cn(commonStyles.message, commonStyles.error, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'error')}\n >\n {error}\n </div>\n );\n\n return (\n <div\n className={cn(commonStyles.component, styles.component, className, {\n [commonStyles.hidden]: !params,\n })}\n data-test-id={dataTestId}\n >\n {error ? renderError() : renderMessage()}\n\n <ReactCanvasPatternLock\n {...restProps}\n {...params}\n ref={ref}\n rows={3}\n cols={3}\n justifyNodes={justifyNodes}\n extraBounds={extraBounds}\n hover={hover}\n />\n\n {showForgotCodeBtn ? (\n <ButtonMobile\n view='transparent'\n className={cn(commonStyles.forgotBtn, styles.forgotBtn)}\n onClick={onForgotBtnClick}\n dataTestId={getDataTestId(dataTestId, 'forgot-code-btn')}\n >\n {forgotCodeBtnText}\n </ButtonMobile>\n ) : (\n <div\n className={cn(commonStyles.forgotBtn, styles.forgotBtn, {\n [styles.hiddenBtn]: Boolean(styles.hiddenBtn),\n })}\n />\n )}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/base-pattern-lock/Component.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useState } from 'react';\nimport {\n ReactCanvasPatternLock,\n type Theme,\n type TPatternLockInstance,\n} from 'react-canvas-pattern-lock';\nimport cn from 'classnames';\n\nimport { ButtonMobile } from '@alfalab/core-components-button/mobile';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport {\n DEFAULT_EXTRA_BOUNDS,\n OBSERVABLE_TOKENS,\n OBSERVE_OPTIONS,\n THEME_STATE,\n} from '../../consts';\nimport { type CommonPatternLockProps, type PrivatePatternLockProps } from '../../typings';\nimport { getColorByToken, getDefaultObserveTarget, getSizes, getTheme } from '../../utils';\n\nimport commonStyles from './index.module.css';\n\nexport const BasePatternLock = forwardRef<\n TPatternLockInstance,\n CommonPatternLockProps & PrivatePatternLockProps\n>(\n (\n {\n observeTokens = false,\n observerParams = {},\n justifyNodes = 'space-between',\n className,\n error,\n dataTestId,\n forgotCodeBtnText = 'Забыли код?',\n showForgotCodeBtn = false,\n onForgotBtnClick,\n extraBounds = DEFAULT_EXTRA_BOUNDS,\n message,\n messageClassName,\n hover,\n styles = {},\n ...restProps\n },\n ref,\n ) => {\n const [params, setParams] = useState<\n { theme: Theme; width: number; height: number } | undefined\n >();\n\n useEffect(() => {\n const { elementSizes, width, height } = getSizes();\n\n setParams({\n theme: getTheme(elementSizes),\n width,\n height,\n });\n }, []);\n\n useEffect(() => {\n let styleObserver: MutationObserver | null = null;\n\n if (observeTokens) {\n const { options = OBSERVE_OPTIONS, getTarget = getDefaultObserveTarget } =\n observerParams;\n\n styleObserver = new MutationObserver(() =>\n setParams((prevState) => {\n const { width, height, elementSizes } = getSizes();\n\n if (!prevState) {\n return { theme: getTheme(elementSizes), width, height };\n }\n\n const prevBgColor = prevState.theme[THEME_STATE.INITIAL].colors.bg;\n const themeChanged = prevBgColor !== getColorByToken(OBSERVABLE_TOKENS.BG);\n\n if (themeChanged) return { ...prevState, theme: getTheme(elementSizes) };\n\n return prevState;\n }),\n );\n\n styleObserver.observe(getTarget(), options);\n }\n\n return () => styleObserver?.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [observeTokens]);\n\n const renderMessage = () => (\n <div\n className={cn(commonStyles.message, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'message')}\n >\n {message}\n </div>\n );\n\n const renderError = () => (\n <div\n className={cn(commonStyles.message, commonStyles.error, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'error')}\n >\n {error}\n </div>\n );\n\n return (\n <div\n className={cn(commonStyles.component, styles.component, className, {\n [commonStyles.hidden]: !params,\n })}\n data-test-id={dataTestId}\n >\n {error ? renderError() : renderMessage()}\n\n <ReactCanvasPatternLock\n {...restProps}\n {...params}\n ref={ref}\n rows={3}\n cols={3}\n justifyNodes={justifyNodes}\n extraBounds={extraBounds}\n hover={hover}\n />\n\n {showForgotCodeBtn ? (\n <ButtonMobile\n view='transparent'\n className={cn(commonStyles.forgotBtn, styles.forgotBtn)}\n onClick={onForgotBtnClick}\n dataTestId={getDataTestId(dataTestId, 'forgot-code-btn')}\n >\n {forgotCodeBtnText}\n </ButtonMobile>\n ) : (\n <div\n className={cn(commonStyles.forgotBtn, styles.forgotBtn, {\n [styles.hiddenBtn]: Boolean(styles.hiddenBtn),\n })}\n />\n )}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
@@ -16,14 +16,14 @@
16
16
  :root {
17
17
  --size-xs-height: 40px;
18
18
  }
19
- .pattern-lock-v1__component_4r3ax canvas {
19
+ .pattern-lock-v1__component_17etv canvas {
20
20
  display: block;
21
21
  margin: var(--gap-0) auto;
22
22
  }
23
- .pattern-lock-v1__hidden_4r3ax {
23
+ .pattern-lock-v1__hidden_17etv {
24
24
  visibility: hidden;
25
25
  }
26
- .pattern-lock-v1__message_4r3ax {
26
+ .pattern-lock-v1__message_17etv {
27
27
  font-size: 16px;
28
28
  line-height: 24px;
29
29
  font-weight: 400;
@@ -37,10 +37,10 @@
37
37
  white-space: nowrap;
38
38
  color: var(--color-light-text-primary);
39
39
  }
40
- .pattern-lock-v1__error_4r3ax {
40
+ .pattern-lock-v1__error_17etv {
41
41
  color: var(--color-light-text-negative);
42
42
  }
43
- .pattern-lock-v1__forgotBtn_4r3ax {
43
+ .pattern-lock-v1__forgotBtn_17etv {
44
44
  display: block;
45
45
  min-height: var(--size-xs-height);
46
46
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const commonStyles = {"component":"pattern-lock-v1__component_4r3ax","hidden":"pattern-lock-v1__hidden_4r3ax","message":"pattern-lock-v1__message_4r3ax","error":"pattern-lock-v1__error_4r3ax","forgotBtn":"pattern-lock-v1__forgotBtn_4r3ax"};
3
+ const commonStyles = {"component":"pattern-lock-v1__component_17etv","hidden":"pattern-lock-v1__hidden_17etv","message":"pattern-lock-v1__message_17etv","error":"pattern-lock-v1__error_17etv","forgotBtn":"pattern-lock-v1__forgotBtn_17etv"};
4
4
 
5
5
  export { commonStyles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.module.css.js","sources":["../../src/components/base-pattern-lock/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../../vars.css';\n\n.component {\n & canvas {\n display: block;\n margin: var(--gap-0) auto;\n }\n}\n\n.hidden {\n visibility: hidden;\n}\n\n.message {\n @mixin paragraph_primary_medium;\n\n text-align: center;\n padding: var(--gap-0) var(--gap-16) var(--gap-40);\n min-height: 24px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-light-text-primary);\n}\n\n.error {\n color: var(--color-light-text-negative);\n}\n\n.forgotBtn {\n display: block;\n min-height: var(--size-xs-height);\n}\n"],"names":[],"mappings":";;AAEgB,qBAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,SAAS,CAAC,gCAAgC,CAAC,OAAO,CAAC,8BAA8B,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
1
+ {"version":3,"file":"index.module.css.js","sources":["../../src/components/base-pattern-lock/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../../vars.css';\n\n.component {\n & canvas {\n display: block;\n margin: var(--gap-0) auto;\n }\n}\n\n.hidden {\n visibility: hidden;\n}\n\n.message {\n @mixin paragraph_primary_medium;\n\n text-align: center;\n padding: var(--gap-0) var(--gap-16) var(--gap-40);\n min-height: 24px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: var(--color-light-text-primary);\n}\n\n.error {\n color: var(--color-light-text-negative);\n}\n\n.forgotBtn {\n display: block;\n min-height: var(--size-xs-height);\n}\n"],"names":[],"mappings":";;AAEgB,qBAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,QAAQ,CAAC,+BAA+B,CAAC,SAAS,CAAC,gCAAgC,CAAC,OAAO,CAAC,8BAA8B,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
@@ -8,13 +8,13 @@
8
8
  :root {
9
9
  --pattern-lock-v1-desktop-max-width: 240px;
10
10
  }
11
- .pattern-lock-v1__component_lc86i {
11
+ .pattern-lock-v1__component_175lf {
12
12
  max-width: var(--pattern-lock-v1-desktop-max-width);
13
13
  margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);
14
14
  }
15
- .pattern-lock-v1__forgotBtn_lc86i {
15
+ .pattern-lock-v1__forgotBtn_175lf {
16
16
  margin: var(--gap-24) auto var(--gap-0);
17
17
  }
18
- .pattern-lock-v1__hiddenBtn_lc86i {
18
+ .pattern-lock-v1__hiddenBtn_175lf {
19
19
  display: none;
20
20
  }
@@ -1,6 +1,6 @@
1
1
  import './desktop.css';
2
2
 
3
- const styles = {"component":"pattern-lock-v1__component_lc86i","forgotBtn":"pattern-lock-v1__forgotBtn_lc86i","hiddenBtn":"pattern-lock-v1__hiddenBtn_lc86i"};
3
+ const styles = {"component":"pattern-lock-v1__component_175lf","forgotBtn":"pattern-lock-v1__forgotBtn_175lf","hiddenBtn":"pattern-lock-v1__hiddenBtn_175lf"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=desktop.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"desktop.module.css.js","sources":["../src/desktop/desktop.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../vars.css';\n\n.component {\n max-width: var(--pattern-lock-v1-desktop-max-width);\n margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);\n}\n\n.forgotBtn {\n margin: var(--gap-24) auto var(--gap-0);\n}\n\n.hiddenBtn {\n display: none;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
1
+ {"version":3,"file":"desktop.module.css.js","sources":["../src/desktop/desktop.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../vars.css';\n\n.component {\n max-width: var(--pattern-lock-v1-desktop-max-width);\n margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);\n}\n\n.forgotBtn {\n margin: var(--gap-24) auto var(--gap-0);\n}\n\n.hiddenBtn {\n display: none;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-pattern-lock-cleanup.js","sources":["../../src/hooks/use-pattern-lock-cleanup.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { type TPatternLockInstance } from 'react-canvas-pattern-lock';\n\nexport const usePatternLockCleanup = (\n patternLockRef: React.MutableRefObject<TPatternLockInstance | null>,\n) => {\n const clear = useMemo(() => {\n if (patternLockRef.current) {\n patternLockRef.current.setInitialState();\n }\n }, [patternLockRef]);\n\n return {\n clear,\n };\n};\n"],"names":[],"mappings":";;AAGa,MAAA,qBAAqB,GAAG,CACjC,cAAmE,KACnE;AACA,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAK;QACvB,IAAI,cAAc,CAAC,OAAO,EAAE;AACxB,YAAA,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE;AAC3C;AACL,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAEpB,OAAO;QACH,KAAK;KACR;AACL;;;;"}
1
+ {"version":3,"file":"use-pattern-lock-cleanup.js","sources":["../../src/hooks/use-pattern-lock-cleanup.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { type TPatternLockInstance } from 'react-canvas-pattern-lock';\n\nexport const usePatternLockCleanup = (\n patternLockRef: React.MutableRefObject<TPatternLockInstance | null>,\n) => {\n const clear = useMemo(() => {\n if (patternLockRef.current) {\n patternLockRef.current.setInitialState();\n }\n }, [patternLockRef]);\n\n return {\n clear,\n };\n};\n"],"names":[],"mappings":";;AAGa,MAAA,qBAAqB,GAAG,CACjC,cAAmE,KACnE;AACA,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAK;AACvB,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AACxB,YAAA,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE;;AAEhD,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAEpB,OAAO;QACH,KAAK;KACR;AACL;;;;"}
@@ -18,29 +18,29 @@
18
18
  :root {
19
19
  --pattern-lock-v1-max-width: 500px;
20
20
  }
21
- .pattern-lock-v1__component_1pncu {
21
+ .pattern-lock-v1__component_ubooh {
22
22
  max-width: var(--pattern-lock-v1-max-width);
23
23
  margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);
24
24
  }
25
- .pattern-lock-v1__forgotBtn_1pncu {
25
+ .pattern-lock-v1__forgotBtn_ubooh {
26
26
  margin: var(--gap-24) auto var(--gap-0);
27
27
  }
28
28
  @media screen and (min-width: 360px) {
29
- .pattern-lock-v1__forgotBtn_1pncu {
29
+ .pattern-lock-v1__forgotBtn_ubooh {
30
30
  margin-top: var(--gap-32);
31
31
  min-height: var(--size-s-height);
32
32
  }
33
33
 
34
- .pattern-lock-v1__component_1pncu {
34
+ .pattern-lock-v1__component_ubooh {
35
35
  margin-bottom: var(--gap-12);
36
36
  }
37
37
  }
38
38
  @media screen and (min-width: 390px) {
39
- .pattern-lock-v1__forgotBtn_1pncu {
39
+ .pattern-lock-v1__forgotBtn_ubooh {
40
40
  min-height: var(--size-m-height);
41
41
  }
42
42
 
43
- .pattern-lock-v1__component_1pncu {
43
+ .pattern-lock-v1__component_ubooh {
44
44
  margin-bottom: var(--gap-20);
45
45
  }
46
46
  }
@@ -1,6 +1,6 @@
1
1
  import './mobile.css';
2
2
 
3
- const styles = {"component":"pattern-lock-v1__component_1pncu","forgotBtn":"pattern-lock-v1__forgotBtn_1pncu"};
3
+ const styles = {"component":"pattern-lock-v1__component_ubooh","forgotBtn":"pattern-lock-v1__forgotBtn_ubooh"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=mobile.module.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mobile.module.css.js","sources":["../src/mobile/mobile.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n@import '../vars.css';\n\n.component {\n max-width: var(--pattern-lock-v1-max-width);\n margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);\n}\n\n.forgotBtn {\n margin: var(--gap-24) auto var(--gap-0);\n}\n\n@media screen and (min-width: 360px) {\n .forgotBtn {\n margin-top: var(--gap-32);\n min-height: var(--size-s-height);\n }\n\n .component {\n margin-bottom: var(--gap-12);\n }\n}\n\n@media screen and (min-width: 390px) {\n .forgotBtn {\n min-height: var(--size-m-height);\n }\n\n .component {\n margin-bottom: var(--gap-20);\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
1
+ {"version":3,"file":"mobile.module.css.js","sources":["../src/mobile/mobile.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n@import '../vars.css';\n\n.component {\n max-width: var(--pattern-lock-v1-max-width);\n margin: var(--gap-8) var(--gap-0) var(--gap-24) var(--gap-0);\n}\n\n.forgotBtn {\n margin: var(--gap-24) auto var(--gap-0);\n}\n\n@media screen and (min-width: 360px) {\n .forgotBtn {\n margin-top: var(--gap-32);\n min-height: var(--size-s-height);\n }\n\n .component {\n margin-bottom: var(--gap-12);\n }\n}\n\n@media screen and (min-width: 390px) {\n .forgotBtn {\n min-height: var(--size-m-height);\n }\n\n .component {\n margin-bottom: var(--gap-20);\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,WAAW,CAAC,kCAAkC,CAAC,WAAW,CAAC,kCAAkC,CAAC;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { type MouseEvent, type ReactNode } from 'react';
2
2
  import { type ReactPatternLockProps } from 'react-canvas-pattern-lock';
3
- declare type ConditionalProps = {
3
+ type ConditionalProps = {
4
4
  /**
5
5
  * Показать кнопку "забыли код"
6
6
  * @default "Забыли код?"
@@ -20,7 +20,7 @@ declare type ConditionalProps = {
20
20
  onForgotBtnClick?: never;
21
21
  forgotCodeBtnText?: never;
22
22
  };
23
- export declare type CommonPatternLockProps = {
23
+ export type CommonPatternLockProps = {
24
24
  /**
25
25
  * Дополнительный класс
26
26
  */
@@ -56,7 +56,7 @@ export declare type CommonPatternLockProps = {
56
56
  */
57
57
  messageClassName?: string;
58
58
  } & Omit<ReactPatternLockProps, 'theme' | 'width' | 'height' | 'rows' | 'cols' | 'hover'> & ConditionalProps;
59
- export declare type PrivatePatternLockProps = {
59
+ export type PrivatePatternLockProps = {
60
60
  /**
61
61
  * Включает ховер-эффект
62
62
  */
@@ -68,14 +68,14 @@ export declare type PrivatePatternLockProps = {
68
68
  [key: string]: string;
69
69
  };
70
70
  };
71
- export declare type PatternLockProps = CommonPatternLockProps & {
71
+ export type PatternLockProps = CommonPatternLockProps & {
72
72
  /**
73
73
  * Контрольная точка, с нее начинается desktop версия
74
74
  * @default 1024
75
75
  */
76
76
  breakpoint?: number;
77
77
  };
78
- export declare type ObservableTokens = {
78
+ export type ObservableTokens = {
79
79
  ACCENT_INITIAL: string;
80
80
  ACCENT_SUCCESS: string;
81
81
  ACCENT_FAILURE: string;
package/modern/utils.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';
2
2
  export declare function getDefaultObserveTarget(): HTMLHeadElement;
3
3
  export declare function getColorByToken(token: string): string;
4
4
  export declare const getSizes: () => {
5
- elementSizes: ThemeParams['dimens'];
5
+ elementSizes: ThemeParams["dimens"];
6
6
  width: number;
7
7
  height: number;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { OBSERVABLE_TOKENS, THEME_STATE } from './consts';\n\nexport function getDefaultObserveTarget() {\n return document.head;\n}\n\nexport function getColorByToken(token: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(token);\n}\n\nexport const getSizes = (() => {\n const COMMON_SIZES = {\n lineWidth: 6,\n nodeRing: 0,\n nodeCore: 12,\n };\n\n let cachedSize: { elementSizes: ThemeParams['dimens']; width: number; height: number };\n\n return () => {\n if (cachedSize) {\n return cachedSize;\n }\n\n if (window.matchMedia('(min-width: 600px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n } else if (window.matchMedia('(min-width: 390px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 43 },\n width: 322,\n height: 322,\n };\n } else if (window.matchMedia('(min-width: 360px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 38 },\n width: 292,\n height: 292,\n };\n } else {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n }\n\n return cachedSize;\n };\n})();\n\nexport function getTheme(dimens: ThemeParams['dimens']): Theme {\n const baseColors = {\n primary: getColorByToken(OBSERVABLE_TOKENS.PRIMARY),\n bg: getColorByToken(OBSERVABLE_TOKENS.BG),\n ringBg: getColorByToken(OBSERVABLE_TOKENS.RING_BG_INITIAL),\n hover: {\n inner: getColorByToken(OBSERVABLE_TOKENS.HOVER_INNER),\n outer: getColorByToken(OBSERVABLE_TOKENS.HOVER_OUTER),\n },\n };\n\n return {\n [THEME_STATE.INITIAL]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_INITIAL),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_INITIAL),\n },\n dimens,\n },\n [THEME_STATE.SUCCESS]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_SUCCESS),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_SUCCESS),\n },\n dimens,\n },\n [THEME_STATE.FAILURE]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_FAILURE),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_FAILURE),\n },\n dimens,\n },\n };\n}\n\nexport function getPatternLockTestIds(dataTestId: string) {\n return {\n patternLock: dataTestId,\n forgotCodeBtn: getDataTestId(dataTestId, 'forgot-code-btn'),\n error: getDataTestId(dataTestId, 'error'),\n message: getDataTestId(dataTestId, 'message'),\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { OBSERVABLE_TOKENS, THEME_STATE } from './consts';\n\nexport function getDefaultObserveTarget() {\n return document.head;\n}\n\nexport function getColorByToken(token: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(token);\n}\n\nexport const getSizes = (() => {\n const COMMON_SIZES = {\n lineWidth: 6,\n nodeRing: 0,\n nodeCore: 12,\n };\n\n let cachedSize: { elementSizes: ThemeParams['dimens']; width: number; height: number };\n\n return () => {\n if (cachedSize) {\n return cachedSize;\n }\n\n if (window.matchMedia('(min-width: 600px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n } else if (window.matchMedia('(min-width: 390px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 43 },\n width: 322,\n height: 322,\n };\n } else if (window.matchMedia('(min-width: 360px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 38 },\n width: 292,\n height: 292,\n };\n } else {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n }\n\n return cachedSize;\n };\n})();\n\nexport function getTheme(dimens: ThemeParams['dimens']): Theme {\n const baseColors = {\n primary: getColorByToken(OBSERVABLE_TOKENS.PRIMARY),\n bg: getColorByToken(OBSERVABLE_TOKENS.BG),\n ringBg: getColorByToken(OBSERVABLE_TOKENS.RING_BG_INITIAL),\n hover: {\n inner: getColorByToken(OBSERVABLE_TOKENS.HOVER_INNER),\n outer: getColorByToken(OBSERVABLE_TOKENS.HOVER_OUTER),\n },\n };\n\n return {\n [THEME_STATE.INITIAL]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_INITIAL),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_INITIAL),\n },\n dimens,\n },\n [THEME_STATE.SUCCESS]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_SUCCESS),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_SUCCESS),\n },\n dimens,\n },\n [THEME_STATE.FAILURE]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_FAILURE),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_FAILURE),\n },\n dimens,\n },\n };\n}\n\nexport function getPatternLockTestIds(dataTestId: string) {\n return {\n patternLock: dataTestId,\n forgotCodeBtn: getDataTestId(dataTestId, 'forgot-code-btn'),\n error: getDataTestId(dataTestId, 'error'),\n message: getDataTestId(dataTestId, 'message'),\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Component.js","sources":["../../../src/components/base-pattern-lock/Component.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useState } from 'react';\nimport {\n ReactCanvasPatternLock,\n type Theme,\n type TPatternLockInstance,\n} from 'react-canvas-pattern-lock';\nimport cn from 'classnames';\n\nimport { ButtonMobile } from '@alfalab/core-components-button/mobile';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport {\n DEFAULT_EXTRA_BOUNDS,\n OBSERVABLE_TOKENS,\n OBSERVE_OPTIONS,\n THEME_STATE,\n} from '../../consts';\nimport { type CommonPatternLockProps, type PrivatePatternLockProps } from '../../typings';\nimport { getColorByToken, getDefaultObserveTarget, getSizes, getTheme } from '../../utils';\n\nimport commonStyles from './index.module.css';\n\nexport const BasePatternLock = forwardRef<\n TPatternLockInstance,\n CommonPatternLockProps & PrivatePatternLockProps\n>(\n (\n {\n observeTokens = false,\n observerParams = {},\n justifyNodes = 'space-between',\n className,\n error,\n dataTestId,\n forgotCodeBtnText = 'Забыли код?',\n showForgotCodeBtn = false,\n onForgotBtnClick,\n extraBounds = DEFAULT_EXTRA_BOUNDS,\n message,\n messageClassName,\n hover,\n styles = {},\n ...restProps\n },\n ref,\n ) => {\n const [params, setParams] = useState<\n { theme: Theme; width: number; height: number } | undefined\n >();\n\n useEffect(() => {\n const { elementSizes, width, height } = getSizes();\n\n setParams({\n theme: getTheme(elementSizes),\n width,\n height,\n });\n }, []);\n\n useEffect(() => {\n let styleObserver: MutationObserver | null = null;\n\n if (observeTokens) {\n const { options = OBSERVE_OPTIONS, getTarget = getDefaultObserveTarget } =\n observerParams;\n\n styleObserver = new MutationObserver(() =>\n setParams((prevState) => {\n const { width, height, elementSizes } = getSizes();\n\n if (!prevState) {\n return { theme: getTheme(elementSizes), width, height };\n }\n\n const prevBgColor = prevState.theme[THEME_STATE.INITIAL].colors.bg;\n const themeChanged = prevBgColor !== getColorByToken(OBSERVABLE_TOKENS.BG);\n\n if (themeChanged) return { ...prevState, theme: getTheme(elementSizes) };\n\n return prevState;\n }),\n );\n\n styleObserver.observe(getTarget(), options);\n }\n\n return () => styleObserver?.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [observeTokens]);\n\n const renderMessage = () => (\n <div\n className={cn(commonStyles.message, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'message')}\n >\n {message}\n </div>\n );\n\n const renderError = () => (\n <div\n className={cn(commonStyles.message, commonStyles.error, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'error')}\n >\n {error}\n </div>\n );\n\n return (\n <div\n className={cn(commonStyles.component, styles.component, className, {\n [commonStyles.hidden]: !params,\n })}\n data-test-id={dataTestId}\n >\n {error ? renderError() : renderMessage()}\n\n <ReactCanvasPatternLock\n {...restProps}\n {...params}\n ref={ref}\n rows={3}\n cols={3}\n justifyNodes={justifyNodes}\n extraBounds={extraBounds}\n hover={hover}\n />\n\n {showForgotCodeBtn ? (\n <ButtonMobile\n view='transparent'\n className={cn(commonStyles.forgotBtn, styles.forgotBtn)}\n onClick={onForgotBtnClick}\n dataTestId={getDataTestId(dataTestId, 'forgot-code-btn')}\n >\n {forgotCodeBtnText}\n </ButtonMobile>\n ) : (\n <div\n className={cn(commonStyles.forgotBtn, styles.forgotBtn, {\n [styles.hiddenBtn]: Boolean(styles.hiddenBtn),\n })}\n />\n )}\n </div>\n );\n },\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Component.js","sources":["../../../src/components/base-pattern-lock/Component.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useState } from 'react';\nimport {\n ReactCanvasPatternLock,\n type Theme,\n type TPatternLockInstance,\n} from 'react-canvas-pattern-lock';\nimport cn from 'classnames';\n\nimport { ButtonMobile } from '@alfalab/core-components-button/mobile';\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport {\n DEFAULT_EXTRA_BOUNDS,\n OBSERVABLE_TOKENS,\n OBSERVE_OPTIONS,\n THEME_STATE,\n} from '../../consts';\nimport { type CommonPatternLockProps, type PrivatePatternLockProps } from '../../typings';\nimport { getColorByToken, getDefaultObserveTarget, getSizes, getTheme } from '../../utils';\n\nimport commonStyles from './index.module.css';\n\nexport const BasePatternLock = forwardRef<\n TPatternLockInstance,\n CommonPatternLockProps & PrivatePatternLockProps\n>(\n (\n {\n observeTokens = false,\n observerParams = {},\n justifyNodes = 'space-between',\n className,\n error,\n dataTestId,\n forgotCodeBtnText = 'Забыли код?',\n showForgotCodeBtn = false,\n onForgotBtnClick,\n extraBounds = DEFAULT_EXTRA_BOUNDS,\n message,\n messageClassName,\n hover,\n styles = {},\n ...restProps\n },\n ref,\n ) => {\n const [params, setParams] = useState<\n { theme: Theme; width: number; height: number } | undefined\n >();\n\n useEffect(() => {\n const { elementSizes, width, height } = getSizes();\n\n setParams({\n theme: getTheme(elementSizes),\n width,\n height,\n });\n }, []);\n\n useEffect(() => {\n let styleObserver: MutationObserver | null = null;\n\n if (observeTokens) {\n const { options = OBSERVE_OPTIONS, getTarget = getDefaultObserveTarget } =\n observerParams;\n\n styleObserver = new MutationObserver(() =>\n setParams((prevState) => {\n const { width, height, elementSizes } = getSizes();\n\n if (!prevState) {\n return { theme: getTheme(elementSizes), width, height };\n }\n\n const prevBgColor = prevState.theme[THEME_STATE.INITIAL].colors.bg;\n const themeChanged = prevBgColor !== getColorByToken(OBSERVABLE_TOKENS.BG);\n\n if (themeChanged) return { ...prevState, theme: getTheme(elementSizes) };\n\n return prevState;\n }),\n );\n\n styleObserver.observe(getTarget(), options);\n }\n\n return () => styleObserver?.disconnect();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [observeTokens]);\n\n const renderMessage = () => (\n <div\n className={cn(commonStyles.message, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'message')}\n >\n {message}\n </div>\n );\n\n const renderError = () => (\n <div\n className={cn(commonStyles.message, commonStyles.error, messageClassName)}\n data-test-id={getDataTestId(dataTestId, 'error')}\n >\n {error}\n </div>\n );\n\n return (\n <div\n className={cn(commonStyles.component, styles.component, className, {\n [commonStyles.hidden]: !params,\n })}\n data-test-id={dataTestId}\n >\n {error ? renderError() : renderMessage()}\n\n <ReactCanvasPatternLock\n {...restProps}\n {...params}\n ref={ref}\n rows={3}\n cols={3}\n justifyNodes={justifyNodes}\n extraBounds={extraBounds}\n hover={hover}\n />\n\n {showForgotCodeBtn ? (\n <ButtonMobile\n view='transparent'\n className={cn(commonStyles.forgotBtn, styles.forgotBtn)}\n onClick={onForgotBtnClick}\n dataTestId={getDataTestId(dataTestId, 'forgot-code-btn')}\n >\n {forgotCodeBtnText}\n </ButtonMobile>\n ) : (\n <div\n className={cn(commonStyles.forgotBtn, styles.forgotBtn, {\n [styles.hiddenBtn]: Boolean(styles.hiddenBtn),\n })}\n />\n )}\n </div>\n );\n },\n);\n"],"names":[],"mappings":";;;;;;;;;AAsBa,MAAA,eAAe,GAAG,UAAU,CAIrC,CACI,EACI,aAAa,GAAG,KAAK,EACrB,cAAc,GAAG,EAAE,EACnB,YAAY,GAAG,eAAe,EAC9B,SAAS,EACT,KAAK,EACL,UAAU,EACV,iBAAiB,GAAG,aAAa,EACjC,iBAAiB,GAAG,KAAK,EACzB,gBAAgB,EAChB,WAAW,GAAG,oBAAoB,EAClC,OAAO,EACP,gBAAgB,EAChB,KAAK,EACL,MAAM,GAAG,EAAE,EACX,GAAG,SAAS,EACf,EACD,GAAG,KACH;IACA,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,EAEjC;IAEH,SAAS,CAAC,MAAK;QACX,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE;AAElD,QAAA,SAAS,CAAC;AACN,YAAA,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC;YAC7B,KAAK;YACL,MAAM;AACT,SAAA,CAAC;KACL,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;QACX,IAAI,aAAa,GAA4B,IAAI;QAEjD,IAAI,aAAa,EAAE;YACf,MAAM,EAAE,OAAO,GAAG,eAAe,EAAE,SAAS,GAAG,uBAAuB,EAAE,GACpE,cAAc;AAElB,YAAA,aAAa,GAAG,IAAI,gBAAgB,CAAC,MACjC,SAAS,CAAC,CAAC,SAAS,KAAI;gBACpB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,QAAQ,EAAE;gBAElD,IAAI,CAAC,SAAS,EAAE;AACZ,oBAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;;AAG3D,gBAAA,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,EAAE;gBAClE,MAAM,YAAY,GAAG,WAAW,KAAK,eAAe,CAAC,iBAAiB,CAAC,EAAE,CAAC;AAE1E,gBAAA,IAAI,YAAY;oBAAE,OAAO,EAAE,GAAG,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,EAAE;AAExE,gBAAA,OAAO,SAAS;aACnB,CAAC,CACL;YAED,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,OAAO,CAAC;;AAG/C,QAAA,OAAO,MAAM,aAAa,EAAE,UAAU,EAAE;;AAE5C,KAAC,EAAE,CAAC,aAAa,CAAC,CAAC;AAEnB,IAAA,MAAM,aAAa,GAAG,OAClB,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAA,cAAA,EACvC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,EAEjD,EAAA,OAAO,CACN,CACT;AAED,IAAA,MAAM,WAAW,GAAG,OAChB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAAA,cAAA,EAC3D,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,EAAA,EAE/C,KAAK,CACJ,CACT;AAED,IAAA,QACI,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACI,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE;AAC/D,YAAA,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,MAAM;AACjC,SAAA,CAAC,kBACY,UAAU,EAAA;QAEvB,KAAK,GAAG,WAAW,EAAE,GAAG,aAAa,EAAE;AAExC,QAAA,KAAA,CAAA,aAAA,CAAC,sBAAsB,EAAA,EAAA,GACf,SAAS,EAAA,GACT,MAAM,EACV,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,CAAC,EACP,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,KAAK,EACd,CAAA;QAED,iBAAiB,IACd,KAAA,CAAA,aAAA,CAAC,YAAY,EAAA,EACT,IAAI,EAAC,aAAa,EAClB,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EACvD,OAAO,EAAE,gBAAgB,EACzB,UAAU,EAAE,aAAa,CAAC,UAAU,EAAE,iBAAiB,CAAC,EAAA,EAEvD,iBAAiB,CACP,KAEf,KACI,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;gBACpD,CAAC,MAAM,CAAC,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;AAChD,aAAA,CAAC,EACJ,CAAA,CACL,CACC;AAEd,CAAC;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-pattern-lock-cleanup.js","sources":["../../src/hooks/use-pattern-lock-cleanup.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { type TPatternLockInstance } from 'react-canvas-pattern-lock';\n\nexport const usePatternLockCleanup = (\n patternLockRef: React.MutableRefObject<TPatternLockInstance | null>,\n) => {\n const clear = useMemo(() => {\n if (patternLockRef.current) {\n patternLockRef.current.setInitialState();\n }\n }, [patternLockRef]);\n\n return {\n clear,\n };\n};\n"],"names":[],"mappings":";;AAGa,MAAA,qBAAqB,GAAG,CACjC,cAAmE,KACnE;AACA,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAK;QACvB,IAAI,cAAc,CAAC,OAAO,EAAE;AACxB,YAAA,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE;AAC3C;AACL,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAEpB,OAAO;QACH,KAAK;KACR;AACL;;;;"}
1
+ {"version":3,"file":"use-pattern-lock-cleanup.js","sources":["../../src/hooks/use-pattern-lock-cleanup.ts"],"sourcesContent":["import { useMemo } from 'react';\nimport { type TPatternLockInstance } from 'react-canvas-pattern-lock';\n\nexport const usePatternLockCleanup = (\n patternLockRef: React.MutableRefObject<TPatternLockInstance | null>,\n) => {\n const clear = useMemo(() => {\n if (patternLockRef.current) {\n patternLockRef.current.setInitialState();\n }\n }, [patternLockRef]);\n\n return {\n clear,\n };\n};\n"],"names":[],"mappings":";;AAGa,MAAA,qBAAqB,GAAG,CACjC,cAAmE,KACnE;AACA,IAAA,MAAM,KAAK,GAAG,OAAO,CAAC,MAAK;AACvB,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AACxB,YAAA,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE;;AAEhD,KAAC,EAAE,CAAC,cAAc,CAAC,CAAC;IAEpB,OAAO;QACH,KAAK;KACR;AACL;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { type MouseEvent, type ReactNode } from 'react';
2
2
  import { type ReactPatternLockProps } from 'react-canvas-pattern-lock';
3
- declare type ConditionalProps = {
3
+ type ConditionalProps = {
4
4
  /**
5
5
  * Показать кнопку "забыли код"
6
6
  * @default "Забыли код?"
@@ -20,7 +20,7 @@ declare type ConditionalProps = {
20
20
  onForgotBtnClick?: never;
21
21
  forgotCodeBtnText?: never;
22
22
  };
23
- export declare type CommonPatternLockProps = {
23
+ export type CommonPatternLockProps = {
24
24
  /**
25
25
  * Дополнительный класс
26
26
  */
@@ -56,7 +56,7 @@ export declare type CommonPatternLockProps = {
56
56
  */
57
57
  messageClassName?: string;
58
58
  } & Omit<ReactPatternLockProps, 'theme' | 'width' | 'height' | 'rows' | 'cols' | 'hover'> & ConditionalProps;
59
- export declare type PrivatePatternLockProps = {
59
+ export type PrivatePatternLockProps = {
60
60
  /**
61
61
  * Включает ховер-эффект
62
62
  */
@@ -68,14 +68,14 @@ export declare type PrivatePatternLockProps = {
68
68
  [key: string]: string;
69
69
  };
70
70
  };
71
- export declare type PatternLockProps = CommonPatternLockProps & {
71
+ export type PatternLockProps = CommonPatternLockProps & {
72
72
  /**
73
73
  * Контрольная точка, с нее начинается desktop версия
74
74
  * @default 1024
75
75
  */
76
76
  breakpoint?: number;
77
77
  };
78
- export declare type ObservableTokens = {
78
+ export type ObservableTokens = {
79
79
  ACCENT_INITIAL: string;
80
80
  ACCENT_SUCCESS: string;
81
81
  ACCENT_FAILURE: string;
@@ -2,7 +2,7 @@ import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';
2
2
  export declare function getDefaultObserveTarget(): HTMLHeadElement;
3
3
  export declare function getColorByToken(token: string): string;
4
4
  export declare const getSizes: () => {
5
- elementSizes: ThemeParams['dimens'];
5
+ elementSizes: ThemeParams["dimens"];
6
6
  width: number;
7
7
  height: number;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { OBSERVABLE_TOKENS, THEME_STATE } from './consts';\n\nexport function getDefaultObserveTarget() {\n return document.head;\n}\n\nexport function getColorByToken(token: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(token);\n}\n\nexport const getSizes = (() => {\n const COMMON_SIZES = {\n lineWidth: 6,\n nodeRing: 0,\n nodeCore: 12,\n };\n\n let cachedSize: { elementSizes: ThemeParams['dimens']; width: number; height: number };\n\n return () => {\n if (cachedSize) {\n return cachedSize;\n }\n\n if (window.matchMedia('(min-width: 600px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n } else if (window.matchMedia('(min-width: 390px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 43 },\n width: 322,\n height: 322,\n };\n } else if (window.matchMedia('(min-width: 360px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 38 },\n width: 292,\n height: 292,\n };\n } else {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n }\n\n return cachedSize;\n };\n})();\n\nexport function getTheme(dimens: ThemeParams['dimens']): Theme {\n const baseColors = {\n primary: getColorByToken(OBSERVABLE_TOKENS.PRIMARY),\n bg: getColorByToken(OBSERVABLE_TOKENS.BG),\n ringBg: getColorByToken(OBSERVABLE_TOKENS.RING_BG_INITIAL),\n hover: {\n inner: getColorByToken(OBSERVABLE_TOKENS.HOVER_INNER),\n outer: getColorByToken(OBSERVABLE_TOKENS.HOVER_OUTER),\n },\n };\n\n return {\n [THEME_STATE.INITIAL]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_INITIAL),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_INITIAL),\n },\n dimens,\n },\n [THEME_STATE.SUCCESS]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_SUCCESS),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_SUCCESS),\n },\n dimens,\n },\n [THEME_STATE.FAILURE]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_FAILURE),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_FAILURE),\n },\n dimens,\n },\n };\n}\n\nexport function getPatternLockTestIds(dataTestId: string) {\n return {\n patternLock: dataTestId,\n forgotCodeBtn: getDataTestId(dataTestId, 'forgot-code-btn'),\n error: getDataTestId(dataTestId, 'error'),\n message: getDataTestId(dataTestId, 'message'),\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../src/utils.ts"],"sourcesContent":["import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { OBSERVABLE_TOKENS, THEME_STATE } from './consts';\n\nexport function getDefaultObserveTarget() {\n return document.head;\n}\n\nexport function getColorByToken(token: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(token);\n}\n\nexport const getSizes = (() => {\n const COMMON_SIZES = {\n lineWidth: 6,\n nodeRing: 0,\n nodeCore: 12,\n };\n\n let cachedSize: { elementSizes: ThemeParams['dimens']; width: number; height: number };\n\n return () => {\n if (cachedSize) {\n return cachedSize;\n }\n\n if (window.matchMedia('(min-width: 600px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n } else if (window.matchMedia('(min-width: 390px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 43 },\n width: 322,\n height: 322,\n };\n } else if (window.matchMedia('(min-width: 360px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 38 },\n width: 292,\n height: 292,\n };\n } else {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n }\n\n return cachedSize;\n };\n})();\n\nexport function getTheme(dimens: ThemeParams['dimens']): Theme {\n const baseColors = {\n primary: getColorByToken(OBSERVABLE_TOKENS.PRIMARY),\n bg: getColorByToken(OBSERVABLE_TOKENS.BG),\n ringBg: getColorByToken(OBSERVABLE_TOKENS.RING_BG_INITIAL),\n hover: {\n inner: getColorByToken(OBSERVABLE_TOKENS.HOVER_INNER),\n outer: getColorByToken(OBSERVABLE_TOKENS.HOVER_OUTER),\n },\n };\n\n return {\n [THEME_STATE.INITIAL]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_INITIAL),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_INITIAL),\n },\n dimens,\n },\n [THEME_STATE.SUCCESS]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_SUCCESS),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_SUCCESS),\n },\n dimens,\n },\n [THEME_STATE.FAILURE]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_FAILURE),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_FAILURE),\n },\n dimens,\n },\n };\n}\n\nexport function getPatternLockTestIds(dataTestId: string) {\n return {\n patternLock: dataTestId,\n forgotCodeBtn: getDataTestId(dataTestId, 'forgot-code-btn'),\n error: getDataTestId(dataTestId, 'error'),\n message: getDataTestId(dataTestId, 'message'),\n };\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-pattern-lock-v1",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "description": "Pattern lock v1 (deprecated)",
5
5
  "keywords": [],
6
6
  "license": "MIT",
@@ -10,9 +10,9 @@
10
10
  "main": "index.js",
11
11
  "module": "./esm/index.js",
12
12
  "dependencies": {
13
- "@alfalab/core-components-button": "^13.1.0",
14
- "@alfalab/core-components-mq": "^6.0.2",
15
- "@alfalab/core-components-shared": "^2.1.0",
13
+ "@alfalab/core-components-button": "^13.1.1",
14
+ "@alfalab/core-components-mq": "^6.0.3",
15
+ "@alfalab/core-components-shared": "^2.1.1",
16
16
  "classnames": "^2.5.1",
17
17
  "react-canvas-pattern-lock": "^2.0.6",
18
18
  "tslib": "^2.4.0"
@@ -26,5 +26,5 @@
26
26
  "directory": "dist"
27
27
  },
28
28
  "themesVersion": "15.0.2",
29
- "varsVersion": "11.0.1"
29
+ "varsVersion": "11.0.2"
30
30
  }
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/no-typography-index.css';
1
+ @import '@alfalab/core-components-vars/src/index.css';
2
2
  @import '../../vars.css';
3
3
 
4
4
  .component {
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/no-typography-index.css';
1
+ @import '@alfalab/core-components-vars/src/index.css';
2
2
  @import '../vars.css';
3
3
 
4
4
  .component {
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/no-typography-index.css';
1
+ @import '@alfalab/core-components-vars/src/index.css';
2
2
  @import '../vars.css';
3
3
 
4
4
  .component {
package/typings.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { type MouseEvent, type ReactNode } from 'react';
2
2
  import { type ReactPatternLockProps } from 'react-canvas-pattern-lock';
3
- declare type ConditionalProps = {
3
+ type ConditionalProps = {
4
4
  /**
5
5
  * Показать кнопку "забыли код"
6
6
  * @default "Забыли код?"
@@ -20,7 +20,7 @@ declare type ConditionalProps = {
20
20
  onForgotBtnClick?: never;
21
21
  forgotCodeBtnText?: never;
22
22
  };
23
- export declare type CommonPatternLockProps = {
23
+ export type CommonPatternLockProps = {
24
24
  /**
25
25
  * Дополнительный класс
26
26
  */
@@ -56,7 +56,7 @@ export declare type CommonPatternLockProps = {
56
56
  */
57
57
  messageClassName?: string;
58
58
  } & Omit<ReactPatternLockProps, 'theme' | 'width' | 'height' | 'rows' | 'cols' | 'hover'> & ConditionalProps;
59
- export declare type PrivatePatternLockProps = {
59
+ export type PrivatePatternLockProps = {
60
60
  /**
61
61
  * Включает ховер-эффект
62
62
  */
@@ -68,14 +68,14 @@ export declare type PrivatePatternLockProps = {
68
68
  [key: string]: string;
69
69
  };
70
70
  };
71
- export declare type PatternLockProps = CommonPatternLockProps & {
71
+ export type PatternLockProps = CommonPatternLockProps & {
72
72
  /**
73
73
  * Контрольная точка, с нее начинается desktop версия
74
74
  * @default 1024
75
75
  */
76
76
  breakpoint?: number;
77
77
  };
78
- export declare type ObservableTokens = {
78
+ export type ObservableTokens = {
79
79
  ACCENT_INITIAL: string;
80
80
  ACCENT_SUCCESS: string;
81
81
  ACCENT_FAILURE: string;
package/utils.d.ts CHANGED
@@ -2,7 +2,7 @@ import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';
2
2
  export declare function getDefaultObserveTarget(): HTMLHeadElement;
3
3
  export declare function getColorByToken(token: string): string;
4
4
  export declare const getSizes: () => {
5
- elementSizes: ThemeParams['dimens'];
5
+ elementSizes: ThemeParams["dimens"];
6
6
  width: number;
7
7
  height: number;
8
8
  };
package/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["src/utils.ts"],"sourcesContent":["import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { OBSERVABLE_TOKENS, THEME_STATE } from './consts';\n\nexport function getDefaultObserveTarget() {\n return document.head;\n}\n\nexport function getColorByToken(token: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(token);\n}\n\nexport const getSizes = (() => {\n const COMMON_SIZES = {\n lineWidth: 6,\n nodeRing: 0,\n nodeCore: 12,\n };\n\n let cachedSize: { elementSizes: ThemeParams['dimens']; width: number; height: number };\n\n return () => {\n if (cachedSize) {\n return cachedSize;\n }\n\n if (window.matchMedia('(min-width: 600px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n } else if (window.matchMedia('(min-width: 390px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 43 },\n width: 322,\n height: 322,\n };\n } else if (window.matchMedia('(min-width: 360px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 38 },\n width: 292,\n height: 292,\n };\n } else {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n }\n\n return cachedSize;\n };\n})();\n\nexport function getTheme(dimens: ThemeParams['dimens']): Theme {\n const baseColors = {\n primary: getColorByToken(OBSERVABLE_TOKENS.PRIMARY),\n bg: getColorByToken(OBSERVABLE_TOKENS.BG),\n ringBg: getColorByToken(OBSERVABLE_TOKENS.RING_BG_INITIAL),\n hover: {\n inner: getColorByToken(OBSERVABLE_TOKENS.HOVER_INNER),\n outer: getColorByToken(OBSERVABLE_TOKENS.HOVER_OUTER),\n },\n };\n\n return {\n [THEME_STATE.INITIAL]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_INITIAL),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_INITIAL),\n },\n dimens,\n },\n [THEME_STATE.SUCCESS]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_SUCCESS),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_SUCCESS),\n },\n dimens,\n },\n [THEME_STATE.FAILURE]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_FAILURE),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_FAILURE),\n },\n dimens,\n },\n };\n}\n\nexport function getPatternLockTestIds(dataTestId: string) {\n return {\n patternLock: dataTestId,\n forgotCodeBtn: getDataTestId(dataTestId, 'forgot-code-btn'),\n error: getDataTestId(dataTestId, 'error'),\n message: getDataTestId(dataTestId, 'message'),\n };\n}\n"],"names":["OBSERVABLE_TOKENS","THEME_STATE","__assign","getDataTestId"],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["src/utils.ts"],"sourcesContent":["import { type Theme, type ThemeParams } from 'react-canvas-pattern-lock';\n\nimport { getDataTestId } from '@alfalab/core-components-shared';\n\nimport { OBSERVABLE_TOKENS, THEME_STATE } from './consts';\n\nexport function getDefaultObserveTarget() {\n return document.head;\n}\n\nexport function getColorByToken(token: string) {\n return getComputedStyle(document.documentElement).getPropertyValue(token);\n}\n\nexport const getSizes = (() => {\n const COMMON_SIZES = {\n lineWidth: 6,\n nodeRing: 0,\n nodeCore: 12,\n };\n\n let cachedSize: { elementSizes: ThemeParams['dimens']; width: number; height: number };\n\n return () => {\n if (cachedSize) {\n return cachedSize;\n }\n\n if (window.matchMedia('(min-width: 600px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n } else if (window.matchMedia('(min-width: 390px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 43 },\n width: 322,\n height: 322,\n };\n } else if (window.matchMedia('(min-width: 360px)').matches) {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 38 },\n width: 292,\n height: 292,\n };\n } else {\n cachedSize = {\n elementSizes: { ...COMMON_SIZES, nodeRadius: 32 },\n width: 240,\n height: 240,\n };\n }\n\n return cachedSize;\n };\n})();\n\nexport function getTheme(dimens: ThemeParams['dimens']): Theme {\n const baseColors = {\n primary: getColorByToken(OBSERVABLE_TOKENS.PRIMARY),\n bg: getColorByToken(OBSERVABLE_TOKENS.BG),\n ringBg: getColorByToken(OBSERVABLE_TOKENS.RING_BG_INITIAL),\n hover: {\n inner: getColorByToken(OBSERVABLE_TOKENS.HOVER_INNER),\n outer: getColorByToken(OBSERVABLE_TOKENS.HOVER_OUTER),\n },\n };\n\n return {\n [THEME_STATE.INITIAL]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_INITIAL),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_INITIAL),\n },\n dimens,\n },\n [THEME_STATE.SUCCESS]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_SUCCESS),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_SUCCESS),\n },\n dimens,\n },\n [THEME_STATE.FAILURE]: {\n colors: {\n ...baseColors,\n accent: getColorByToken(OBSERVABLE_TOKENS.ACCENT_FAILURE),\n selectedRingBg: getColorByToken(OBSERVABLE_TOKENS.SELECTED_RING_BG_FAILURE),\n },\n dimens,\n },\n };\n}\n\nexport function getPatternLockTestIds(dataTestId: string) {\n return {\n patternLock: dataTestId,\n forgotCodeBtn: getDataTestId(dataTestId, 'forgot-code-btn'),\n error: getDataTestId(dataTestId, 'error'),\n message: getDataTestId(dataTestId, 'message'),\n };\n}\n"],"names":["OBSERVABLE_TOKENS","THEME_STATE","__assign","getDataTestId"],"mappings":"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"}