@alfalab/core-components-confirmation 15.0.11 → 15.1.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 (93) hide show
  1. package/components/base-confirmation/component.js +3 -2
  2. package/components/base-confirmation/component.js.map +1 -1
  3. package/components/base-confirmation/index.css +2 -2
  4. package/components/base-confirmation/index.module.css.js +1 -1
  5. package/components/countdown-loader/index.css +1 -1
  6. package/components/countdown-loader/index.module.css.js +1 -1
  7. package/components/header/index.css +1 -1
  8. package/components/header/index.module.css.js +1 -1
  9. package/components/screens/fatal-error/index.css +6 -6
  10. package/components/screens/fatal-error/index.module.css.js +1 -1
  11. package/components/screens/hint/index.css +12 -12
  12. package/components/screens/hint/index.module.css.js +1 -1
  13. package/components/screens/initial/component.js +2 -2
  14. package/components/screens/initial/component.js.map +1 -1
  15. package/components/screens/initial/index.css +19 -19
  16. package/components/screens/initial/index.module.css.js +1 -1
  17. package/components/screens/temp-block/index.css +8 -8
  18. package/components/screens/temp-block/index.module.css.js +1 -1
  19. package/components/screens/temp-block-over/index.css +5 -5
  20. package/components/screens/temp-block-over/index.module.css.js +1 -1
  21. package/context.js +1 -0
  22. package/context.js.map +1 -1
  23. package/cssm/components/base-confirmation/component.js +3 -2
  24. package/cssm/components/base-confirmation/component.js.map +1 -1
  25. package/cssm/components/screens/initial/component.js +2 -2
  26. package/cssm/components/screens/initial/component.js.map +1 -1
  27. package/cssm/context.js +1 -0
  28. package/cssm/context.js.map +1 -1
  29. package/cssm/types.d.ts +6 -1
  30. package/cssm/types.js.map +1 -1
  31. package/esm/components/base-confirmation/component.js +3 -2
  32. package/esm/components/base-confirmation/component.js.map +1 -1
  33. package/esm/components/base-confirmation/index.css +2 -2
  34. package/esm/components/base-confirmation/index.module.css.js +1 -1
  35. package/esm/components/countdown-loader/index.css +1 -1
  36. package/esm/components/countdown-loader/index.module.css.js +1 -1
  37. package/esm/components/header/index.css +1 -1
  38. package/esm/components/header/index.module.css.js +1 -1
  39. package/esm/components/screens/fatal-error/index.css +6 -6
  40. package/esm/components/screens/fatal-error/index.module.css.js +1 -1
  41. package/esm/components/screens/hint/index.css +12 -12
  42. package/esm/components/screens/hint/index.module.css.js +1 -1
  43. package/esm/components/screens/initial/component.js +2 -2
  44. package/esm/components/screens/initial/component.js.map +1 -1
  45. package/esm/components/screens/initial/index.css +19 -19
  46. package/esm/components/screens/initial/index.module.css.js +1 -1
  47. package/esm/components/screens/temp-block/index.css +8 -8
  48. package/esm/components/screens/temp-block/index.module.css.js +1 -1
  49. package/esm/components/screens/temp-block-over/index.css +5 -5
  50. package/esm/components/screens/temp-block-over/index.module.css.js +1 -1
  51. package/esm/context.js +1 -0
  52. package/esm/context.js.map +1 -1
  53. package/esm/types.d.ts +6 -1
  54. package/esm/types.js.map +1 -1
  55. package/modern/components/base-confirmation/component.js +2 -1
  56. package/modern/components/base-confirmation/component.js.map +1 -1
  57. package/modern/components/base-confirmation/index.css +2 -2
  58. package/modern/components/base-confirmation/index.module.css.js +1 -1
  59. package/modern/components/countdown-loader/index.css +1 -1
  60. package/modern/components/countdown-loader/index.module.css.js +1 -1
  61. package/modern/components/header/index.css +1 -1
  62. package/modern/components/header/index.module.css.js +1 -1
  63. package/modern/components/screens/fatal-error/index.css +6 -6
  64. package/modern/components/screens/fatal-error/index.module.css.js +1 -1
  65. package/modern/components/screens/hint/index.css +12 -12
  66. package/modern/components/screens/hint/index.module.css.js +1 -1
  67. package/modern/components/screens/initial/component.js +2 -2
  68. package/modern/components/screens/initial/component.js.map +1 -1
  69. package/modern/components/screens/initial/index.css +19 -19
  70. package/modern/components/screens/initial/index.module.css.js +1 -1
  71. package/modern/components/screens/temp-block/index.css +8 -8
  72. package/modern/components/screens/temp-block/index.module.css.js +1 -1
  73. package/modern/components/screens/temp-block-over/index.css +5 -5
  74. package/modern/components/screens/temp-block-over/index.module.css.js +1 -1
  75. package/modern/context.js +1 -0
  76. package/modern/context.js.map +1 -1
  77. package/modern/types.d.ts +6 -1
  78. package/modern/types.js.map +1 -1
  79. package/moderncssm/components/base-confirmation/component.js +2 -1
  80. package/moderncssm/components/base-confirmation/component.js.map +1 -1
  81. package/moderncssm/components/screens/initial/component.js +2 -2
  82. package/moderncssm/components/screens/initial/component.js.map +1 -1
  83. package/moderncssm/context.js +1 -0
  84. package/moderncssm/context.js.map +1 -1
  85. package/moderncssm/types.d.ts +6 -1
  86. package/moderncssm/types.js.map +1 -1
  87. package/package.json +2 -2
  88. package/src/components/base-confirmation/component.tsx +2 -0
  89. package/src/components/screens/initial/component.tsx +2 -0
  90. package/src/context.ts +1 -0
  91. package/src/types.ts +7 -0
  92. package/types.d.ts +6 -1
  93. package/types.js.map +1 -1
@@ -30,8 +30,8 @@ var confirmationScreens = {
30
30
  };
31
31
  var BaseConfirmation = function (_a) {
32
32
  var _b;
33
- var state = _a.state, screen = _a.screen, _c = _a.titleTag, titleTag = _c === void 0 ? 'h3' : _c, _d = _a.alignContent, alignContent = _d === void 0 ? 'left' : _d; _a.children; var _e = _a.requiredCharAmount, requiredCharAmount = _e === void 0 ? 5 : _e, _f = _a.countdownDuration, countdownDuration = _f === void 0 ? utils.ONE_MINUTE : _f, _g = _a.tempBlockDuration, tempBlockDuration = _g === void 0 ? utils.ONE_DAY : _g, phone = _a.phone, blockSmsRetry = _a.blockSmsRetry, dataTestId = _a.dataTestId, className = _a.className, maxWidth = _a.maxWidth, getScreensMap = _a.getScreensMap, onInputFinished = _a.onInputFinished, onChangeState = _a.onChangeState, onSmsRetryClick = _a.onSmsRetryClick, onChangeScreen = _a.onChangeScreen, onFatalErrorOkButtonClick = _a.onFatalErrorOkButtonClick, onTempBlockFinished = _a.onTempBlockFinished, mobile = _a.mobile, _h = _a.clearCodeOnError, clearCodeOnError = _h === void 0 ? true : _h, _j = _a.hideCountdownSection, hideCountdownSection = _j === void 0 ? false : _j, breakpoint = _a.breakpoint, client = _a.client, initialScreenHintSlot = _a.initialScreenHintSlot, errorVisibleDuration = _a.errorVisibleDuration, restProps = tslib.__rest(_a, ["state", "screen", "titleTag", "alignContent", "children", "requiredCharAmount", "countdownDuration", "tempBlockDuration", "phone", "blockSmsRetry", "dataTestId", "className", "maxWidth", "getScreensMap", "onInputFinished", "onChangeState", "onSmsRetryClick", "onChangeScreen", "onFatalErrorOkButtonClick", "onTempBlockFinished", "mobile", "clearCodeOnError", "hideCountdownSection", "breakpoint", "client", "initialScreenHintSlot", "errorVisibleDuration"]);
34
- var _k = utils.useCountdown(countdownDuration), timeLeft = _k[0], startTimer = _k[1], stopTimer = _k[2];
33
+ var state = _a.state, screen = _a.screen, _c = _a.titleTag, titleTag = _c === void 0 ? 'h3' : _c, _d = _a.alignContent, alignContent = _d === void 0 ? 'left' : _d; _a.children; var _e = _a.requiredCharAmount, requiredCharAmount = _e === void 0 ? 5 : _e, _f = _a.countdownDuration, countdownDuration = _f === void 0 ? utils.ONE_MINUTE : _f, _g = _a.tempBlockDuration, tempBlockDuration = _g === void 0 ? utils.ONE_DAY : _g, phone = _a.phone, blockSmsRetry = _a.blockSmsRetry, dataTestId = _a.dataTestId, className = _a.className, maxWidth = _a.maxWidth, getScreensMap = _a.getScreensMap, onInputFinished = _a.onInputFinished, onChangeState = _a.onChangeState, onSmsRetryClick = _a.onSmsRetryClick, onChangeScreen = _a.onChangeScreen, onFatalErrorOkButtonClick = _a.onFatalErrorOkButtonClick, onTempBlockFinished = _a.onTempBlockFinished, mobile = _a.mobile, _h = _a.clearCodeOnError, clearCodeOnError = _h === void 0 ? true : _h, _j = _a.hideCountdownSection, hideCountdownSection = _j === void 0 ? false : _j, breakpoint = _a.breakpoint, client = _a.client, initialScreenHintSlot = _a.initialScreenHintSlot, errorVisibleDuration = _a.errorVisibleDuration, _k = _a.strictFocus, strictFocus = _k === void 0 ? false : _k, restProps = tslib.__rest(_a, ["state", "screen", "titleTag", "alignContent", "children", "requiredCharAmount", "countdownDuration", "tempBlockDuration", "phone", "blockSmsRetry", "dataTestId", "className", "maxWidth", "getScreensMap", "onInputFinished", "onChangeState", "onSmsRetryClick", "onChangeScreen", "onFatalErrorOkButtonClick", "onTempBlockFinished", "mobile", "clearCodeOnError", "hideCountdownSection", "breakpoint", "client", "initialScreenHintSlot", "errorVisibleDuration", "strictFocus"]);
34
+ var _l = utils.useCountdown(countdownDuration), timeLeft = _l[0], startTimer = _l[1], stopTimer = _l[2];
35
35
  var prevState = hooks.usePrevious(state);
36
36
  React.useEffect(function () {
37
37
  startTimer();
@@ -82,6 +82,7 @@ var BaseConfirmation = function (_a) {
82
82
  blockSmsRetry: blockSmsRetry,
83
83
  breakpoint: breakpoint,
84
84
  client: client,
85
+ strictFocus: strictFocus,
85
86
  onTempBlockFinished: onTempBlockFinished,
86
87
  onChangeState: onChangeState,
87
88
  onChangeScreen: onChangeScreen,
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../src/components/base-confirmation/component.tsx"],"sourcesContent":["import React, { type ComponentType, type FC, useEffect, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { usePrevious } from '@alfalab/hooks';\n\nimport { ConfirmationContext } from '../../context';\nimport { type ConfirmationProps, defaultTexts, type TConfirmationContext } from '../../types';\nimport { ONE_DAY, ONE_MINUTE, useCountdown } from '../../utils';\nimport { FatalError, Hint, Initial, TempBlock, TempBlockOver } from '../screens';\n\nimport styles from './index.module.css';\n\nconst confirmationScreens: { [key: string]: ComponentType<{ mobile?: boolean }> } = {\n INITIAL: Initial,\n HINT: Hint,\n FATAL_ERROR: FatalError,\n TEMP_BLOCK: TempBlock,\n TEMP_BLOCK_OVER: TempBlockOver,\n};\n\nexport const BaseConfirmation: FC<ConfirmationProps> = ({\n state,\n screen,\n titleTag = 'h3',\n alignContent = 'left',\n children,\n requiredCharAmount = 5,\n countdownDuration = ONE_MINUTE,\n tempBlockDuration = ONE_DAY,\n phone,\n blockSmsRetry,\n dataTestId,\n className,\n maxWidth,\n getScreensMap,\n onInputFinished,\n onChangeState,\n onSmsRetryClick,\n onChangeScreen,\n onFatalErrorOkButtonClick,\n onTempBlockFinished,\n mobile,\n clearCodeOnError = true,\n hideCountdownSection = false,\n breakpoint,\n client,\n initialScreenHintSlot,\n errorVisibleDuration,\n ...restProps\n}) => {\n const [timeLeft, startTimer, stopTimer] = useCountdown(countdownDuration);\n\n const prevState = usePrevious(state);\n\n useEffect(() => {\n startTimer();\n }, [startTimer]);\n\n useEffect(() => {\n /**\n * Перезапускаем таймер после повторного запроса кода\n */\n if (state === 'INITIAL' && prevState === 'CODE_SENDING') {\n startTimer();\n }\n }, [state, prevState, startTimer]);\n\n useEffect(() => {\n /**\n * Останавливаем таймер, если новый экран/состояние не содержит таймер\n */\n if (\n !['INITIAL', 'HINT', 'TEMP_BLOCK', 'TEMP_BLOCK_OVER'].includes(screen) ||\n blockSmsRetry\n ) {\n stopTimer();\n }\n }, [state, screen, blockSmsRetry, stopTimer]);\n\n const handleSmsRetry = () => {\n onChangeState('CODE_SENDING');\n\n onSmsRetryClick();\n };\n\n const handleInputFinished = (code: string) => {\n onChangeState('CODE_CHECKING');\n\n onInputFinished(code);\n };\n\n const handleFatalErrorOkButtonClick = () => {\n if (onFatalErrorOkButtonClick) {\n onFatalErrorOkButtonClick();\n }\n };\n\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const contextValue: TConfirmationContext = {\n hideCountdownSection,\n alignContent,\n titleTag,\n texts: { ...defaultTexts, ...restProps.texts },\n state,\n screen,\n requiredCharAmount,\n countdownDuration,\n timeLeft,\n tempBlockDuration,\n phone,\n blockSmsRetry,\n breakpoint,\n client,\n onTempBlockFinished,\n onChangeState,\n onChangeScreen,\n clearCodeOnError,\n errorVisibleDuration,\n initialScreenHintSlot,\n onInputFinished: handleInputFinished,\n onSmsRetryClick: handleSmsRetry,\n onFatalErrorOkButtonClick: handleFatalErrorOkButtonClick,\n };\n\n const customScreen = useMemo(() => getScreensMap?.(confirmationScreens), [getScreensMap]);\n\n const screensMap = customScreen || confirmationScreens;\n\n const CurrentScreen = screensMap[screen];\n\n return (\n <ConfirmationContext.Provider value={contextValue}>\n <div\n className={cn(styles.component, className, {\n [styles.center]: alignContent === 'center',\n })}\n style={{ maxWidth }}\n data-test-id={dataTestId}\n >\n {CurrentScreen && <CurrentScreen mobile={mobile} />}\n </div>\n </ConfirmationContext.Provider>\n );\n};\n"],"names":["Initial","Hint","FatalError","TempBlock","TempBlockOver","ONE_MINUTE","ONE_DAY","__rest","useCountdown","usePrevious","useEffect","defaultTexts","useMemo","React","ConfirmationContext","cn","styles"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../src/components/base-confirmation/component.tsx"],"sourcesContent":["import React, { type ComponentType, type FC, useEffect, useMemo } from 'react';\nimport cn from 'classnames';\n\nimport { usePrevious } from '@alfalab/hooks';\n\nimport { ConfirmationContext } from '../../context';\nimport { type ConfirmationProps, defaultTexts, type TConfirmationContext } from '../../types';\nimport { ONE_DAY, ONE_MINUTE, useCountdown } from '../../utils';\nimport { FatalError, Hint, Initial, TempBlock, TempBlockOver } from '../screens';\n\nimport styles from './index.module.css';\n\nconst confirmationScreens: { [key: string]: ComponentType<{ mobile?: boolean }> } = {\n INITIAL: Initial,\n HINT: Hint,\n FATAL_ERROR: FatalError,\n TEMP_BLOCK: TempBlock,\n TEMP_BLOCK_OVER: TempBlockOver,\n};\n\nexport const BaseConfirmation: FC<ConfirmationProps> = ({\n state,\n screen,\n titleTag = 'h3',\n alignContent = 'left',\n children,\n requiredCharAmount = 5,\n countdownDuration = ONE_MINUTE,\n tempBlockDuration = ONE_DAY,\n phone,\n blockSmsRetry,\n dataTestId,\n className,\n maxWidth,\n getScreensMap,\n onInputFinished,\n onChangeState,\n onSmsRetryClick,\n onChangeScreen,\n onFatalErrorOkButtonClick,\n onTempBlockFinished,\n mobile,\n clearCodeOnError = true,\n hideCountdownSection = false,\n breakpoint,\n client,\n initialScreenHintSlot,\n errorVisibleDuration,\n strictFocus = false,\n ...restProps\n}) => {\n const [timeLeft, startTimer, stopTimer] = useCountdown(countdownDuration);\n\n const prevState = usePrevious(state);\n\n useEffect(() => {\n startTimer();\n }, [startTimer]);\n\n useEffect(() => {\n /**\n * Перезапускаем таймер после повторного запроса кода\n */\n if (state === 'INITIAL' && prevState === 'CODE_SENDING') {\n startTimer();\n }\n }, [state, prevState, startTimer]);\n\n useEffect(() => {\n /**\n * Останавливаем таймер, если новый экран/состояние не содержит таймер\n */\n if (\n !['INITIAL', 'HINT', 'TEMP_BLOCK', 'TEMP_BLOCK_OVER'].includes(screen) ||\n blockSmsRetry\n ) {\n stopTimer();\n }\n }, [state, screen, blockSmsRetry, stopTimer]);\n\n const handleSmsRetry = () => {\n onChangeState('CODE_SENDING');\n\n onSmsRetryClick();\n };\n\n const handleInputFinished = (code: string) => {\n onChangeState('CODE_CHECKING');\n\n onInputFinished(code);\n };\n\n const handleFatalErrorOkButtonClick = () => {\n if (onFatalErrorOkButtonClick) {\n onFatalErrorOkButtonClick();\n }\n };\n\n // eslint-disable-next-line react/jsx-no-constructed-context-values\n const contextValue: TConfirmationContext = {\n hideCountdownSection,\n alignContent,\n titleTag,\n texts: { ...defaultTexts, ...restProps.texts },\n state,\n screen,\n requiredCharAmount,\n countdownDuration,\n timeLeft,\n tempBlockDuration,\n phone,\n blockSmsRetry,\n breakpoint,\n client,\n strictFocus,\n onTempBlockFinished,\n onChangeState,\n onChangeScreen,\n clearCodeOnError,\n errorVisibleDuration,\n initialScreenHintSlot,\n onInputFinished: handleInputFinished,\n onSmsRetryClick: handleSmsRetry,\n onFatalErrorOkButtonClick: handleFatalErrorOkButtonClick,\n };\n\n const customScreen = useMemo(() => getScreensMap?.(confirmationScreens), [getScreensMap]);\n\n const screensMap = customScreen || confirmationScreens;\n\n const CurrentScreen = screensMap[screen];\n\n return (\n <ConfirmationContext.Provider value={contextValue}>\n <div\n className={cn(styles.component, className, {\n [styles.center]: alignContent === 'center',\n })}\n style={{ maxWidth }}\n data-test-id={dataTestId}\n >\n {CurrentScreen && <CurrentScreen mobile={mobile} />}\n </div>\n </ConfirmationContext.Provider>\n );\n};\n"],"names":["Initial","Hint","FatalError","TempBlock","TempBlockOver","ONE_MINUTE","ONE_DAY","__rest","useCountdown","usePrevious","useEffect","defaultTexts","useMemo","React","ConfirmationContext","cn","styles"],"mappings":"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"}
@@ -4,11 +4,11 @@
4
4
  :root {
5
5
  --gap-0: 0px;
6
6
  }
7
- .confirmation__component_apbwq {
7
+ .confirmation__component_uxe4n {
8
8
  width: 100%;
9
9
  max-width: 388px;
10
10
  color: var(--color-light-text-secondary);
11
11
  }
12
- .confirmation__component_apbwq.confirmation__center_apbwq {
12
+ .confirmation__component_uxe4n.confirmation__center_uxe4n {
13
13
  margin: var(--gap-0) auto;
14
14
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"confirmation__component_apbwq","center":"confirmation__center_apbwq"};
5
+ var styles = {"component":"confirmation__component_uxe4n","center":"confirmation__center_uxe4n"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -1,7 +1,7 @@
1
1
  :root {
2
2
  --color-light-neutral-500: #babbc2;
3
3
  }
4
- .confirmation__circle_o29i9 {
4
+ .confirmation__circle_b8lfh {
5
5
  fill: transparent;
6
6
  stroke: var(--color-light-neutral-500);
7
7
  stroke-width: 2px;
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"circle":"confirmation__circle_o29i9"};
5
+ var styles = {"circle":"confirmation__circle_b8lfh"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -2,6 +2,6 @@
2
2
  --gap-xl: 24px;
3
3
  --gap-24: var(--gap-xl);
4
4
  }
5
- .confirmation__header_11m6p.confirmation__header_11m6p {
5
+ .confirmation__header_1k1d7.confirmation__header_1k1d7 {
6
6
  margin-bottom: var(--gap-24);
7
7
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"header":"confirmation__header_11m6p"};
5
+ var styles = {"header":"confirmation__header_1k1d7"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -13,27 +13,27 @@
13
13
  :root {
14
14
  --confirmation-text-color: var(--color-light-text-primary)
15
15
  }
16
- .confirmation__component_95dpi {
16
+ .confirmation__component_142if {
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  }
20
- .confirmation__typographyTheme_95dpi.confirmation__typographyTheme_95dpi {
20
+ .confirmation__typographyTheme_142if.confirmation__typographyTheme_142if {
21
21
  font-size: 16px;
22
22
  line-height: 24px;
23
23
  font-weight: 400;
24
24
  font-family: var(--font-family-system);
25
25
  color: var(--confirmation-text-color);
26
26
  }
27
- .confirmation__typographyThemeMobile_95dpi.confirmation__typographyThemeMobile_95dpi {
27
+ .confirmation__typographyThemeMobile_142if.confirmation__typographyThemeMobile_142if {
28
28
  color: var(--color-light-text-secondary);
29
29
  }
30
- .confirmation__left_95dpi {
30
+ .confirmation__left_142if {
31
31
  align-items: flex-start;
32
32
  }
33
- .confirmation__center_95dpi {
33
+ .confirmation__center_142if {
34
34
  align-items: center;
35
35
  text-align: center;
36
36
  }
37
- .confirmation__button_95dpi.confirmation__button_95dpi {
37
+ .confirmation__button_142if.confirmation__button_142if {
38
38
  margin-top: var(--gap-32);
39
39
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"confirmation__component_95dpi","typographyTheme":"confirmation__typographyTheme_95dpi","typographyThemeMobile":"confirmation__typographyThemeMobile_95dpi","left":"confirmation__left_95dpi","center":"confirmation__center_95dpi","button":"confirmation__button_95dpi"};
5
+ var styles = {"component":"confirmation__component_142if","typographyTheme":"confirmation__typographyTheme_142if","typographyThemeMobile":"confirmation__typographyThemeMobile_142if","left":"confirmation__left_142if","center":"confirmation__center_142if","button":"confirmation__button_142if"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -18,52 +18,52 @@
18
18
  :root {
19
19
  --confirmation-text-color: var(--color-light-text-primary)
20
20
  }
21
- .confirmation__component_hfp5y {
21
+ .confirmation__component_k0ehe {
22
22
  display: flex;
23
23
  flex-direction: column;
24
24
  align-items: flex-start;
25
25
  }
26
- .confirmation__component_hfp5y span:last-of-type {
26
+ .confirmation__component_k0ehe span:last-of-type {
27
27
  margin-bottom: var(--gap-0);
28
28
  }
29
- .confirmation__center_hfp5y {
29
+ .confirmation__center_k0ehe {
30
30
  align-items: center;
31
31
  text-align: center;
32
32
  }
33
- .confirmation__text_hfp5y.confirmation__text_hfp5y {
33
+ .confirmation__text_k0ehe.confirmation__text_k0ehe {
34
34
  margin-bottom: var(--gap-24);
35
35
  }
36
- .confirmation__typographyTheme_hfp5y.confirmation__typographyTheme_hfp5y {
36
+ .confirmation__typographyTheme_k0ehe.confirmation__typographyTheme_k0ehe {
37
37
  font-size: 16px;
38
38
  line-height: 24px;
39
39
  font-weight: 400;
40
40
  font-family: var(--font-family-system);
41
41
  color: var(--confirmation-text-color);
42
42
  }
43
- .confirmation__typographyThemeMobile_hfp5y.confirmation__typographyThemeMobile_hfp5y {
43
+ .confirmation__typographyThemeMobile_k0ehe.confirmation__typographyThemeMobile_k0ehe {
44
44
  color: var(--color-light-text-secondary);
45
45
  }
46
- .confirmation__phonesWrap_hfp5y {
46
+ .confirmation__phonesWrap_k0ehe {
47
47
  display: flex;
48
48
  flex-direction: column;
49
49
  margin-bottom: var(--gap-24);
50
50
  }
51
- .confirmation__phoneWrap_hfp5y {
51
+ .confirmation__phoneWrap_k0ehe {
52
52
  margin-bottom: var(--gap-8);
53
53
  }
54
- .confirmation__phoneWrap_hfp5y:last-child {
54
+ .confirmation__phoneWrap_k0ehe:last-child {
55
55
  margin-bottom: var(--gap-0);
56
56
  }
57
- .confirmation__phoneLink_hfp5y.confirmation__phoneLink_hfp5y {
57
+ .confirmation__phoneLink_k0ehe.confirmation__phoneLink_k0ehe {
58
58
  font-size: 16px;
59
59
  line-height: 24px;
60
60
  font-weight: 500;
61
61
  font-family: var(--font-family-system);
62
62
  }
63
- .confirmation__hintButton_hfp5y {
63
+ .confirmation__hintButton_k0ehe {
64
64
  margin-top: var(--gap-32);
65
65
  }
66
- .confirmation__phoneContentMobile_hfp5y {
66
+ .confirmation__phoneContentMobile_k0ehe {
67
67
  display: flex;
68
68
  flex-direction: column;
69
69
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"confirmation__component_hfp5y","center":"confirmation__center_hfp5y","text":"confirmation__text_hfp5y","typographyTheme":"confirmation__typographyTheme_hfp5y","typographyThemeMobile":"confirmation__typographyThemeMobile_hfp5y","phonesWrap":"confirmation__phonesWrap_hfp5y","phoneWrap":"confirmation__phoneWrap_hfp5y","phoneLink":"confirmation__phoneLink_hfp5y","hintButton":"confirmation__hintButton_hfp5y","phoneContentMobile":"confirmation__phoneContentMobile_hfp5y"};
5
+ var styles = {"component":"confirmation__component_k0ehe","center":"confirmation__center_k0ehe","text":"confirmation__text_k0ehe","typographyTheme":"confirmation__typographyTheme_k0ehe","typographyThemeMobile":"confirmation__typographyThemeMobile_k0ehe","phonesWrap":"confirmation__phonesWrap_k0ehe","phoneWrap":"confirmation__phoneWrap_k0ehe","phoneLink":"confirmation__phoneLink_k0ehe","hintButton":"confirmation__hintButton_k0ehe","phoneContentMobile":"confirmation__phoneContentMobile_k0ehe"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -24,7 +24,7 @@ var CODE_SEND_HINT_VISIBLE_DURATION = 2000;
24
24
  var Initial = function (_a) {
25
25
  var _b;
26
26
  var mobile$2 = _a.mobile;
27
- var _c = React.useContext(context.ConfirmationContext), state = _c.state, alignContent = _c.alignContent, titleTag = _c.titleTag, texts = _c.texts, requiredCharAmount = _c.requiredCharAmount, timeLeft = _c.timeLeft, phone = _c.phone, clearCodeOnError = _c.clearCodeOnError, hideCountdownSection = _c.hideCountdownSection, initialScreenHintSlot = _c.initialScreenHintSlot, errorVisibleDuration = _c.errorVisibleDuration, onChangeState = _c.onChangeState, onInputFinished = _c.onInputFinished, onChangeScreen = _c.onChangeScreen, onSmsRetryClick = _c.onSmsRetryClick;
27
+ var _c = React.useContext(context.ConfirmationContext), state = _c.state, alignContent = _c.alignContent, titleTag = _c.titleTag, texts = _c.texts, requiredCharAmount = _c.requiredCharAmount, timeLeft = _c.timeLeft, phone = _c.phone, clearCodeOnError = _c.clearCodeOnError, hideCountdownSection = _c.hideCountdownSection, initialScreenHintSlot = _c.initialScreenHintSlot, errorVisibleDuration = _c.errorVisibleDuration, strictFocus = _c.strictFocus, onChangeState = _c.onChangeState, onInputFinished = _c.onInputFinished, onChangeScreen = _c.onChangeScreen, onSmsRetryClick = _c.onSmsRetryClick;
28
28
  var prevState = hooks.usePrevious(state);
29
29
  var inputRef = React.useRef(null);
30
30
  var _d = React.useState(false), codeSendHintVisible = _d[0], setCodeSendHintVisible = _d[1];
@@ -111,7 +111,7 @@ var Initial = function (_a) {
111
111
  _b)) },
112
112
  "\u041E\u0442\u043F\u0440\u0430\u0432\u0438\u043B\u0438 \u043D\u0430 ",
113
113
  phone)) : null,
114
- React__default.default.createElement(ComponentCodeInput, { disabled: processing, error: getCodeInputError(), ref: inputRef, fields: requiredCharAmount, className: cn__default.default(index_module.containerInput, index_module.codeInput), onComplete: handleInputComplete, onChange: handleInputChange, clearCodeOnError: clearCodeOnError, errorVisibleDuration: errorVisibleDuration, onErrorAnimationEnd: handleErrorAnimationEnd }),
114
+ React__default.default.createElement(ComponentCodeInput, { disabled: processing, error: getCodeInputError(), ref: inputRef, fields: requiredCharAmount, strictFocus: strictFocus, className: cn__default.default(index_module.containerInput, index_module.codeInput), onComplete: handleInputComplete, onChange: handleInputChange, clearCodeOnError: clearCodeOnError, errorVisibleDuration: errorVisibleDuration, onErrorAnimationEnd: handleErrorAnimationEnd }),
115
115
  !hideCountdownSection && (React__default.default.createElement(countdownSection.CountdownSection, { processing: processing, timePassed: timePassed, codeSendHintVisible: codeSendHintVisible, handleSmsRetryClick: handleSmsRetryClick, mobile: mobile$2 })),
116
116
  renderHintButton()));
117
117
  };
@@ -1 +1 @@
1
- {"version":3,"file":"component.js","sources":["../../../src/components/screens/initial/component.tsx"],"sourcesContent":["import React, { type FC, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport { ButtonMobile } from '@alfalab/core-components-button/mobile';\nimport { CodeInputDesktop } from '@alfalab/core-components-code-input/desktop';\nimport { CodeInputMobile } from '@alfalab/core-components-code-input/mobile';\nimport {\n type BaseCodeInputProps,\n type CustomInputRef,\n} from '@alfalab/core-components-code-input/shared';\nimport { Link } from '@alfalab/core-components-link';\nimport { TypographyText } from '@alfalab/core-components-typography';\nimport { useLayoutEffect_SAFE_FOR_SSR, usePrevious } from '@alfalab/hooks';\n\nimport { ConfirmationContext } from '../../../context';\nimport { Header } from '../../header';\n\nimport { CountdownSection } from './countdown-section';\n\nimport styles from './index.module.css';\n\nexport type InitialProps = {\n /**\n * Отображать в мобильной версии экран компонента\n */\n mobile?: boolean;\n};\n\nconst CODE_SEND_HINT_VISIBLE_DURATION = 2000;\n\nexport const Initial: FC<InitialProps> = ({ mobile }) => {\n const {\n state,\n alignContent,\n titleTag,\n texts,\n requiredCharAmount,\n timeLeft,\n phone,\n clearCodeOnError,\n hideCountdownSection,\n initialScreenHintSlot,\n errorVisibleDuration,\n onChangeState,\n onInputFinished,\n onChangeScreen,\n onSmsRetryClick,\n } = useContext(ConfirmationContext);\n\n const prevState = usePrevious(state);\n\n const inputRef = useRef<CustomInputRef>(null);\n\n const [codeSendHintVisible, setCodeSendHintVisible] = useState(false);\n\n const timerId = useRef(0);\n\n const handleInputComplete: BaseCodeInputProps['onComplete'] = (code) => {\n onInputFinished(code);\n };\n\n const handleSmsHintLinkClick = () => {\n onChangeScreen('HINT');\n };\n\n const handleInputChange = () => {\n if (state === 'CODE_ERROR') {\n onChangeState('INITIAL');\n }\n };\n\n const handleSmsRetryClick = () => {\n if (inputRef.current) {\n inputRef.current.reset();\n }\n\n onSmsRetryClick();\n };\n\n const handleErrorAnimationEnd = () => {\n if (clearCodeOnError && state !== 'INITIAL') {\n onChangeState('INITIAL');\n }\n };\n\n const clearTimer = useCallback(() => {\n window.clearTimeout(timerId.current);\n }, []);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n\n return () => {\n clearTimer();\n };\n }, [clearTimer]);\n\n useEffect(() => {\n if (!inputRef.current) {\n return;\n }\n\n if (prevState === 'CODE_SENDING' && state !== 'CODE_SENDING') {\n inputRef.current.focus();\n }\n }, [prevState, state, requiredCharAmount]);\n\n useLayoutEffect_SAFE_FOR_SSR(() => {\n if (prevState === 'CODE_SENDING' && state !== 'CODE_SENDING') {\n setCodeSendHintVisible(true);\n\n clearTimer();\n\n timerId.current = window.setTimeout(() => {\n setCodeSendHintVisible(false);\n }, CODE_SEND_HINT_VISIBLE_DURATION);\n }\n }, [prevState, state, clearTimer]);\n\n const getCodeInputError = (): string | boolean => {\n if (state === 'CODE_EXPIRED') {\n return texts.codeErrorExpired || true;\n }\n\n if (state === 'CODE_EXPIRED_ENDED') {\n return texts.codeErrorExpiredEnded || true;\n }\n\n if (state === 'CODE_ERROR') {\n return texts.codeError || true;\n }\n\n return false;\n };\n\n const renderHintButton = () => {\n if (initialScreenHintSlot) {\n return initialScreenHintSlot;\n }\n\n if (mobile) {\n return (\n <ButtonMobile\n onClick={handleSmsHintLinkClick}\n className={styles.smsBtn}\n view='text'\n size={40}\n >\n {texts.linkToHint}\n </ButtonMobile>\n );\n }\n\n return (\n <Link\n onClick={handleSmsHintLinkClick}\n className={styles.smsComeLink}\n view={mobile ? 'primary' : 'secondary'}\n pseudo={true}\n >\n {texts.linkToHint}\n </Link>\n );\n };\n\n const processing = ['CODE_CHECKING', 'CODE_SENDING'].includes(state);\n\n const timePassed = timeLeft === 0;\n\n const ComponentCodeInput = mobile ? CodeInputMobile : CodeInputDesktop;\n\n return (\n <div className={cn(styles.component, styles[alignContent])}>\n <Header mobile={mobile} titleTag={titleTag}>\n {texts.title}\n </Header>\n\n {phone ? (\n <TypographyText\n view='primary-medium'\n color='primary'\n className={cn(styles.phone, {\n [styles.typographyTheme]: !mobile,\n [styles.typographyThemeMobile]: mobile,\n })}\n >\n Отправили на {phone}\n </TypographyText>\n ) : null}\n <ComponentCodeInput\n disabled={processing}\n error={getCodeInputError()}\n ref={inputRef}\n fields={requiredCharAmount}\n className={cn(styles.containerInput, styles.codeInput)}\n onComplete={handleInputComplete}\n onChange={handleInputChange}\n clearCodeOnError={clearCodeOnError}\n errorVisibleDuration={errorVisibleDuration}\n onErrorAnimationEnd={handleErrorAnimationEnd}\n />\n {!hideCountdownSection && (\n <CountdownSection\n processing={processing}\n timePassed={timePassed}\n codeSendHintVisible={codeSendHintVisible}\n handleSmsRetryClick={handleSmsRetryClick}\n mobile={mobile}\n />\n )}\n\n {renderHintButton()}\n </div>\n );\n};\n"],"names":["mobile","useContext","ConfirmationContext","usePrevious","useRef","useState","useCallback","useEffect","useLayoutEffect_SAFE_FOR_SSR","React","ButtonMobile","styles","Link","CodeInputMobile","CodeInputDesktop","cn","Header","TypographyText","CountdownSection"],"mappings":"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"}
1
+ {"version":3,"file":"component.js","sources":["../../../src/components/screens/initial/component.tsx"],"sourcesContent":["import React, { type FC, useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\n\nimport { ButtonMobile } from '@alfalab/core-components-button/mobile';\nimport { CodeInputDesktop } from '@alfalab/core-components-code-input/desktop';\nimport { CodeInputMobile } from '@alfalab/core-components-code-input/mobile';\nimport {\n type BaseCodeInputProps,\n type CustomInputRef,\n} from '@alfalab/core-components-code-input/shared';\nimport { Link } from '@alfalab/core-components-link';\nimport { TypographyText } from '@alfalab/core-components-typography';\nimport { useLayoutEffect_SAFE_FOR_SSR, usePrevious } from '@alfalab/hooks';\n\nimport { ConfirmationContext } from '../../../context';\nimport { Header } from '../../header';\n\nimport { CountdownSection } from './countdown-section';\n\nimport styles from './index.module.css';\n\nexport type InitialProps = {\n /**\n * Отображать в мобильной версии экран компонента\n */\n mobile?: boolean;\n};\n\nconst CODE_SEND_HINT_VISIBLE_DURATION = 2000;\n\nexport const Initial: FC<InitialProps> = ({ mobile }) => {\n const {\n state,\n alignContent,\n titleTag,\n texts,\n requiredCharAmount,\n timeLeft,\n phone,\n clearCodeOnError,\n hideCountdownSection,\n initialScreenHintSlot,\n errorVisibleDuration,\n strictFocus,\n onChangeState,\n onInputFinished,\n onChangeScreen,\n onSmsRetryClick,\n } = useContext(ConfirmationContext);\n\n const prevState = usePrevious(state);\n\n const inputRef = useRef<CustomInputRef>(null);\n\n const [codeSendHintVisible, setCodeSendHintVisible] = useState(false);\n\n const timerId = useRef(0);\n\n const handleInputComplete: BaseCodeInputProps['onComplete'] = (code) => {\n onInputFinished(code);\n };\n\n const handleSmsHintLinkClick = () => {\n onChangeScreen('HINT');\n };\n\n const handleInputChange = () => {\n if (state === 'CODE_ERROR') {\n onChangeState('INITIAL');\n }\n };\n\n const handleSmsRetryClick = () => {\n if (inputRef.current) {\n inputRef.current.reset();\n }\n\n onSmsRetryClick();\n };\n\n const handleErrorAnimationEnd = () => {\n if (clearCodeOnError && state !== 'INITIAL') {\n onChangeState('INITIAL');\n }\n };\n\n const clearTimer = useCallback(() => {\n window.clearTimeout(timerId.current);\n }, []);\n\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n }\n\n return () => {\n clearTimer();\n };\n }, [clearTimer]);\n\n useEffect(() => {\n if (!inputRef.current) {\n return;\n }\n\n if (prevState === 'CODE_SENDING' && state !== 'CODE_SENDING') {\n inputRef.current.focus();\n }\n }, [prevState, state, requiredCharAmount]);\n\n useLayoutEffect_SAFE_FOR_SSR(() => {\n if (prevState === 'CODE_SENDING' && state !== 'CODE_SENDING') {\n setCodeSendHintVisible(true);\n\n clearTimer();\n\n timerId.current = window.setTimeout(() => {\n setCodeSendHintVisible(false);\n }, CODE_SEND_HINT_VISIBLE_DURATION);\n }\n }, [prevState, state, clearTimer]);\n\n const getCodeInputError = (): string | boolean => {\n if (state === 'CODE_EXPIRED') {\n return texts.codeErrorExpired || true;\n }\n\n if (state === 'CODE_EXPIRED_ENDED') {\n return texts.codeErrorExpiredEnded || true;\n }\n\n if (state === 'CODE_ERROR') {\n return texts.codeError || true;\n }\n\n return false;\n };\n\n const renderHintButton = () => {\n if (initialScreenHintSlot) {\n return initialScreenHintSlot;\n }\n\n if (mobile) {\n return (\n <ButtonMobile\n onClick={handleSmsHintLinkClick}\n className={styles.smsBtn}\n view='text'\n size={40}\n >\n {texts.linkToHint}\n </ButtonMobile>\n );\n }\n\n return (\n <Link\n onClick={handleSmsHintLinkClick}\n className={styles.smsComeLink}\n view={mobile ? 'primary' : 'secondary'}\n pseudo={true}\n >\n {texts.linkToHint}\n </Link>\n );\n };\n\n const processing = ['CODE_CHECKING', 'CODE_SENDING'].includes(state);\n\n const timePassed = timeLeft === 0;\n\n const ComponentCodeInput = mobile ? CodeInputMobile : CodeInputDesktop;\n\n return (\n <div className={cn(styles.component, styles[alignContent])}>\n <Header mobile={mobile} titleTag={titleTag}>\n {texts.title}\n </Header>\n\n {phone ? (\n <TypographyText\n view='primary-medium'\n color='primary'\n className={cn(styles.phone, {\n [styles.typographyTheme]: !mobile,\n [styles.typographyThemeMobile]: mobile,\n })}\n >\n Отправили на {phone}\n </TypographyText>\n ) : null}\n <ComponentCodeInput\n disabled={processing}\n error={getCodeInputError()}\n ref={inputRef}\n fields={requiredCharAmount}\n strictFocus={strictFocus}\n className={cn(styles.containerInput, styles.codeInput)}\n onComplete={handleInputComplete}\n onChange={handleInputChange}\n clearCodeOnError={clearCodeOnError}\n errorVisibleDuration={errorVisibleDuration}\n onErrorAnimationEnd={handleErrorAnimationEnd}\n />\n {!hideCountdownSection && (\n <CountdownSection\n processing={processing}\n timePassed={timePassed}\n codeSendHintVisible={codeSendHintVisible}\n handleSmsRetryClick={handleSmsRetryClick}\n mobile={mobile}\n />\n )}\n\n {renderHintButton()}\n </div>\n );\n};\n"],"names":["mobile","useContext","ConfirmationContext","usePrevious","useRef","useState","useCallback","useEffect","useLayoutEffect_SAFE_FOR_SSR","React","ButtonMobile","styles","Link","CodeInputMobile","CodeInputDesktop","cn","Header","TypographyText","CountdownSection"],"mappings":"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"}
@@ -27,64 +27,64 @@
27
27
  :root {
28
28
  --confirmation-text-color: var(--color-light-text-primary)
29
29
  }
30
- .confirmation__component_1cgem {
30
+ .confirmation__component_dwua5 {
31
31
  display: flex;
32
32
  flex-direction: column;
33
33
  }
34
- .confirmation__phone_1cgem.confirmation__phone_1cgem {
34
+ .confirmation__phone_dwua5.confirmation__phone_dwua5 {
35
35
  color: var(--color-light-text-primary);
36
36
  margin-bottom: var(--gap-32);
37
37
  }
38
- .confirmation__typographyTheme_1cgem.confirmation__typographyTheme_1cgem {
38
+ .confirmation__typographyTheme_dwua5.confirmation__typographyTheme_dwua5 {
39
39
  font-size: 16px;
40
40
  line-height: 24px;
41
41
  font-weight: 400;
42
42
  font-family: var(--font-family-system);
43
43
  color: var(--confirmation-text-color);
44
44
  }
45
- .confirmation__typographyThemeMobile_1cgem.confirmation__typographyThemeMobile_1cgem {
45
+ .confirmation__typographyThemeMobile_dwua5.confirmation__typographyThemeMobile_dwua5 {
46
46
  color: var(--color-light-text-secondary);
47
47
  }
48
- .confirmation__compact_1cgem {
48
+ .confirmation__compact_dwua5 {
49
49
  margin-bottom: var(--gap-24);
50
50
  }
51
- .confirmation__loaderWrap_1cgem {
51
+ .confirmation__loaderWrap_dwua5 {
52
52
  display: flex;
53
53
  align-items: center;
54
54
  }
55
- .confirmation__left_1cgem {
55
+ .confirmation__left_dwua5 {
56
56
  align-items: flex-start;
57
57
  }
58
- .confirmation__center_1cgem {
58
+ .confirmation__center_dwua5 {
59
59
  align-items: center;
60
60
  text-align: center;
61
61
  }
62
- .confirmation__center_1cgem .confirmation__loaderWrap_1cgem {
62
+ .confirmation__center_dwua5 .confirmation__loaderWrap_dwua5 {
63
63
  justify-content: center;
64
64
  }
65
- .confirmation__codeInput_1cgem {
65
+ .confirmation__codeInput_dwua5 {
66
66
  margin-bottom: var(--gap-12);
67
67
  }
68
- .confirmation__smsBtn_1cgem.confirmation__smsBtn_1cgem {
68
+ .confirmation__smsBtn_dwua5.confirmation__smsBtn_dwua5 {
69
69
  min-height: var(--size-xs-height);
70
70
  }
71
- .confirmation__smsComeLink_1cgem.confirmation__smsComeLink_1cgem {
71
+ .confirmation__smsComeLink_dwua5.confirmation__smsComeLink_dwua5 {
72
72
  font-size: 14px;
73
73
  line-height: 20px;
74
74
  font-weight: 500;
75
75
  font-family: var(--font-family-system);
76
76
  }
77
- .confirmation__countdownContainer_1cgem.confirmation__countdownContainer_1cgem {
77
+ .confirmation__countdownContainer_dwua5.confirmation__countdownContainer_dwua5 {
78
78
  color: var(--color-light-text-secondary);
79
79
  margin-bottom: var(--gap-24);
80
80
  }
81
- .confirmation__countdownMobile_1cgem.confirmation__countdownMobile_1cgem {
81
+ .confirmation__countdownMobile_dwua5.confirmation__countdownMobile_dwua5 {
82
82
  margin-bottom: var(--gap-20);
83
83
  }
84
- .confirmation__countdownLoaderMobile_1cgem.confirmation__countdownLoaderMobile_1cgem {
84
+ .confirmation__countdownLoaderMobile_dwua5.confirmation__countdownLoaderMobile_dwua5 {
85
85
  margin-bottom: var(--gap-16);
86
86
  }
87
- .confirmation__timeCounter_1cgem {
87
+ .confirmation__timeCounter_dwua5 {
88
88
  display: inline-block;
89
89
  min-width: 47px;
90
90
  color: var(--color-light-text-secondary);
@@ -92,14 +92,14 @@
92
92
  font-feature-settings: lining-nums tabular-nums;
93
93
  font-variant-numeric: lining-nums tabular-nums;
94
94
  }
95
- .confirmation__getCodeButton_1cgem {
95
+ .confirmation__getCodeButton_dwua5 {
96
96
  position: relative;
97
97
  top: var(--gap-4-neg);
98
98
  margin-bottom: var(--gap-16);
99
99
  }
100
- .confirmation__getCodeButtonMobile_1cgem {
100
+ .confirmation__getCodeButtonMobile_dwua5 {
101
101
  margin-bottom: var(--gap-0);
102
102
  }
103
- .confirmation__containerInput_1cgem {
103
+ .confirmation__containerInput_dwua5 {
104
104
  min-height: 80px;
105
105
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"confirmation__component_1cgem","phone":"confirmation__phone_1cgem","typographyTheme":"confirmation__typographyTheme_1cgem","typographyThemeMobile":"confirmation__typographyThemeMobile_1cgem","compact":"confirmation__compact_1cgem","loaderWrap":"confirmation__loaderWrap_1cgem","left":"confirmation__left_1cgem","center":"confirmation__center_1cgem","codeInput":"confirmation__codeInput_1cgem","smsBtn":"confirmation__smsBtn_1cgem","smsComeLink":"confirmation__smsComeLink_1cgem","countdownContainer":"confirmation__countdownContainer_1cgem","countdownMobile":"confirmation__countdownMobile_1cgem","countdownLoaderMobile":"confirmation__countdownLoaderMobile_1cgem","timeCounter":"confirmation__timeCounter_1cgem","getCodeButton":"confirmation__getCodeButton_1cgem","getCodeButtonMobile":"confirmation__getCodeButtonMobile_1cgem","containerInput":"confirmation__containerInput_1cgem"};
5
+ var styles = {"component":"confirmation__component_dwua5","phone":"confirmation__phone_dwua5","typographyTheme":"confirmation__typographyTheme_dwua5","typographyThemeMobile":"confirmation__typographyThemeMobile_dwua5","compact":"confirmation__compact_dwua5","loaderWrap":"confirmation__loaderWrap_dwua5","left":"confirmation__left_dwua5","center":"confirmation__center_dwua5","codeInput":"confirmation__codeInput_dwua5","smsBtn":"confirmation__smsBtn_dwua5","smsComeLink":"confirmation__smsComeLink_dwua5","countdownContainer":"confirmation__countdownContainer_dwua5","countdownMobile":"confirmation__countdownMobile_dwua5","countdownLoaderMobile":"confirmation__countdownLoaderMobile_dwua5","timeCounter":"confirmation__timeCounter_dwua5","getCodeButton":"confirmation__getCodeButton_dwua5","getCodeButtonMobile":"confirmation__getCodeButtonMobile_dwua5","containerInput":"confirmation__containerInput_dwua5"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -13,32 +13,32 @@
13
13
  :root {
14
14
  --confirmation-text-color: var(--color-light-text-primary)
15
15
  }
16
- .confirmation__component_1m709 {
16
+ .confirmation__component_1lclb {
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  }
20
- .confirmation__center_1m709 {
20
+ .confirmation__center_1lclb {
21
21
  align-items: center;
22
22
  text-align: center;
23
23
  }
24
- .confirmation__typographyTheme_1m709.confirmation__typographyTheme_1m709 {
24
+ .confirmation__typographyTheme_1lclb.confirmation__typographyTheme_1lclb {
25
25
  font-size: 16px;
26
26
  line-height: 24px;
27
27
  font-weight: 400;
28
28
  font-family: var(--font-family-system);
29
29
  color: var(--confirmation-text-color);
30
30
  }
31
- .confirmation__typographyThemeMobile_1m709.confirmation__typographyThemeMobile_1m709 {
31
+ .confirmation__typographyThemeMobile_1lclb.confirmation__typographyThemeMobile_1lclb {
32
32
  color: var(--color-light-text-secondary);
33
33
  }
34
- .confirmation__description_1m709.confirmation__description_1m709 {
34
+ .confirmation__description_1lclb.confirmation__description_1lclb {
35
35
  margin-bottom: var(--gap-8);
36
36
  }
37
- .confirmation__countdownWrap_1m709 {
37
+ .confirmation__countdownWrap_1lclb {
38
38
  display: flex;
39
39
  align-items: center;
40
40
  }
41
- .confirmation__timeCounter_1m709 {
41
+ .confirmation__timeCounter_1lclb {
42
42
  display: inline-block;
43
43
  min-width: 47px;
44
44
  color: var(--color-light-text-secondary);
@@ -46,6 +46,6 @@
46
46
  font-feature-settings: lining-nums tabular-nums;
47
47
  font-variant-numeric: lining-nums tabular-nums;
48
48
  }
49
- .confirmation__loader_1m709 {
49
+ .confirmation__loader_1lclb {
50
50
  margin-right: var(--gap-8);
51
51
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"confirmation__component_1m709","center":"confirmation__center_1m709","typographyTheme":"confirmation__typographyTheme_1m709","typographyThemeMobile":"confirmation__typographyThemeMobile_1m709","description":"confirmation__description_1m709","countdownWrap":"confirmation__countdownWrap_1m709","timeCounter":"confirmation__timeCounter_1m709","loader":"confirmation__loader_1m709"};
5
+ var styles = {"component":"confirmation__component_1lclb","center":"confirmation__center_1lclb","typographyTheme":"confirmation__typographyTheme_1lclb","typographyThemeMobile":"confirmation__typographyThemeMobile_1lclb","description":"confirmation__description_1lclb","countdownWrap":"confirmation__countdownWrap_1lclb","timeCounter":"confirmation__timeCounter_1lclb","loader":"confirmation__loader_1lclb"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -13,24 +13,24 @@
13
13
  :root {
14
14
  --confirmation-text-color: var(--color-light-text-primary)
15
15
  }
16
- .confirmation__component_uzbk8 {
16
+ .confirmation__component_dkqvd {
17
17
  display: flex;
18
18
  flex-direction: column;
19
19
  }
20
- .confirmation__center_uzbk8 {
20
+ .confirmation__center_dkqvd {
21
21
  align-items: center;
22
22
  text-align: center;
23
23
  }
24
- .confirmation__typographyTheme_uzbk8.confirmation__typographyTheme_uzbk8 {
24
+ .confirmation__typographyTheme_dkqvd.confirmation__typographyTheme_dkqvd {
25
25
  font-size: 16px;
26
26
  line-height: 24px;
27
27
  font-weight: 400;
28
28
  font-family: var(--font-family-system);
29
29
  color: var(--confirmation-text-color);
30
30
  }
31
- .confirmation__typographyThemeMobile_uzbk8.confirmation__typographyThemeMobile_uzbk8 {
31
+ .confirmation__typographyThemeMobile_dkqvd.confirmation__typographyThemeMobile_dkqvd {
32
32
  color: var(--color-light-text-secondary);
33
33
  }
34
- .confirmation__button_uzbk8.confirmation__button_uzbk8 {
34
+ .confirmation__button_dkqvd.confirmation__button_dkqvd {
35
35
  margin-top: var(--gap-32);
36
36
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"component":"confirmation__component_uzbk8","center":"confirmation__center_uzbk8","typographyTheme":"confirmation__typographyTheme_uzbk8","typographyThemeMobile":"confirmation__typographyThemeMobile_uzbk8","button":"confirmation__button_uzbk8"};
5
+ var styles = {"component":"confirmation__component_dkqvd","center":"confirmation__center_dkqvd","typographyTheme":"confirmation__typographyTheme_dkqvd","typographyThemeMobile":"confirmation__typographyThemeMobile_dkqvd","button":"confirmation__button_dkqvd"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
package/context.js CHANGED
@@ -21,6 +21,7 @@ var ConfirmationContext = React.createContext({
21
21
  breakpoint: 1024,
22
22
  client: 'desktop',
23
23
  initialScreenHintSlot: null,
24
+ strictFocus: false,
24
25
  onTempBlockFinished: mockFn,
25
26
  onInputFinished: mockFn,
26
27
  onChangeState: mockFn,
package/context.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","sources":["src/context.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport { type TConfirmationContext } from './types';\nimport { ONE_DAY, ONE_MINUTE } from './utils';\n\nconst mockFn = () => undefined;\n\nexport const ConfirmationContext = createContext<TConfirmationContext>({\n alignContent: 'left',\n titleTag: 'h3',\n texts: {},\n state: 'INITIAL',\n screen: 'INITIAL',\n requiredCharAmount: 5,\n countdownDuration: ONE_MINUTE,\n timeLeft: ONE_MINUTE,\n tempBlockDuration: ONE_DAY,\n phone: '',\n hideCountdownSection: false,\n breakpoint: 1024,\n client: 'desktop',\n initialScreenHintSlot: null,\n onTempBlockFinished: mockFn,\n onInputFinished: mockFn,\n onChangeState: mockFn,\n onSmsRetryClick: mockFn,\n onChangeScreen: mockFn,\n onFatalErrorOkButtonClick: mockFn,\n});\n"],"names":["createContext","ONE_MINUTE","ONE_DAY"],"mappings":";;;;;;;AAKA,IAAM,MAAM,GAAG,YAAA,EAAM,OAAA,SAAS,CAAA,EAAA;AAEvB,IAAM,mBAAmB,GAAGA,mBAAa,CAAuB;AACnE,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,kBAAkB,EAAE,CAAC;AACrB,IAAA,iBAAiB,EAAEC,gBAAU;AAC7B,IAAA,QAAQ,EAAEA,gBAAU;AACpB,IAAA,iBAAiB,EAAEC,aAAO;AAC1B,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,qBAAqB,EAAE,IAAI;AAC3B,IAAA,mBAAmB,EAAE,MAAM;AAC3B,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,yBAAyB,EAAE,MAAM;AACpC,CAAA;;;;"}
1
+ {"version":3,"file":"context.js","sources":["src/context.ts"],"sourcesContent":["import { createContext } from 'react';\n\nimport { type TConfirmationContext } from './types';\nimport { ONE_DAY, ONE_MINUTE } from './utils';\n\nconst mockFn = () => undefined;\n\nexport const ConfirmationContext = createContext<TConfirmationContext>({\n alignContent: 'left',\n titleTag: 'h3',\n texts: {},\n state: 'INITIAL',\n screen: 'INITIAL',\n requiredCharAmount: 5,\n countdownDuration: ONE_MINUTE,\n timeLeft: ONE_MINUTE,\n tempBlockDuration: ONE_DAY,\n phone: '',\n hideCountdownSection: false,\n breakpoint: 1024,\n client: 'desktop',\n initialScreenHintSlot: null,\n strictFocus: false,\n onTempBlockFinished: mockFn,\n onInputFinished: mockFn,\n onChangeState: mockFn,\n onSmsRetryClick: mockFn,\n onChangeScreen: mockFn,\n onFatalErrorOkButtonClick: mockFn,\n});\n"],"names":["createContext","ONE_MINUTE","ONE_DAY"],"mappings":";;;;;;;AAKA,IAAM,MAAM,GAAG,YAAA,EAAM,OAAA,SAAS,CAAA,EAAA;AAEvB,IAAM,mBAAmB,GAAGA,mBAAa,CAAuB;AACnE,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,QAAQ,EAAE,IAAI;AACd,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,SAAS;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,kBAAkB,EAAE,CAAC;AACrB,IAAA,iBAAiB,EAAEC,gBAAU;AAC7B,IAAA,QAAQ,EAAEA,gBAAU;AACpB,IAAA,iBAAiB,EAAEC,aAAO;AAC1B,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,oBAAoB,EAAE,KAAK;AAC3B,IAAA,UAAU,EAAE,IAAI;AAChB,IAAA,MAAM,EAAE,SAAS;AACjB,IAAA,qBAAqB,EAAE,IAAI;AAC3B,IAAA,WAAW,EAAE,KAAK;AAClB,IAAA,mBAAmB,EAAE,MAAM;AAC3B,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,aAAa,EAAE,MAAM;AACrB,IAAA,eAAe,EAAE,MAAM;AACvB,IAAA,cAAc,EAAE,MAAM;AACtB,IAAA,yBAAyB,EAAE,MAAM;AACpC,CAAA;;;;"}
@@ -31,8 +31,8 @@ var confirmationScreens = {
31
31
  };
32
32
  var BaseConfirmation = function (_a) {
33
33
  var _b;
34
- var state = _a.state, screen = _a.screen, _c = _a.titleTag, titleTag = _c === void 0 ? 'h3' : _c, _d = _a.alignContent, alignContent = _d === void 0 ? 'left' : _d; _a.children; var _e = _a.requiredCharAmount, requiredCharAmount = _e === void 0 ? 5 : _e, _f = _a.countdownDuration, countdownDuration = _f === void 0 ? utils.ONE_MINUTE : _f, _g = _a.tempBlockDuration, tempBlockDuration = _g === void 0 ? utils.ONE_DAY : _g, phone = _a.phone, blockSmsRetry = _a.blockSmsRetry, dataTestId = _a.dataTestId, className = _a.className, maxWidth = _a.maxWidth, getScreensMap = _a.getScreensMap, onInputFinished = _a.onInputFinished, onChangeState = _a.onChangeState, onSmsRetryClick = _a.onSmsRetryClick, onChangeScreen = _a.onChangeScreen, onFatalErrorOkButtonClick = _a.onFatalErrorOkButtonClick, onTempBlockFinished = _a.onTempBlockFinished, mobile = _a.mobile, _h = _a.clearCodeOnError, clearCodeOnError = _h === void 0 ? true : _h, _j = _a.hideCountdownSection, hideCountdownSection = _j === void 0 ? false : _j, breakpoint = _a.breakpoint, client = _a.client, initialScreenHintSlot = _a.initialScreenHintSlot, errorVisibleDuration = _a.errorVisibleDuration, restProps = tslib.__rest(_a, ["state", "screen", "titleTag", "alignContent", "children", "requiredCharAmount", "countdownDuration", "tempBlockDuration", "phone", "blockSmsRetry", "dataTestId", "className", "maxWidth", "getScreensMap", "onInputFinished", "onChangeState", "onSmsRetryClick", "onChangeScreen", "onFatalErrorOkButtonClick", "onTempBlockFinished", "mobile", "clearCodeOnError", "hideCountdownSection", "breakpoint", "client", "initialScreenHintSlot", "errorVisibleDuration"]);
35
- var _k = utils.useCountdown(countdownDuration), timeLeft = _k[0], startTimer = _k[1], stopTimer = _k[2];
34
+ var state = _a.state, screen = _a.screen, _c = _a.titleTag, titleTag = _c === void 0 ? 'h3' : _c, _d = _a.alignContent, alignContent = _d === void 0 ? 'left' : _d; _a.children; var _e = _a.requiredCharAmount, requiredCharAmount = _e === void 0 ? 5 : _e, _f = _a.countdownDuration, countdownDuration = _f === void 0 ? utils.ONE_MINUTE : _f, _g = _a.tempBlockDuration, tempBlockDuration = _g === void 0 ? utils.ONE_DAY : _g, phone = _a.phone, blockSmsRetry = _a.blockSmsRetry, dataTestId = _a.dataTestId, className = _a.className, maxWidth = _a.maxWidth, getScreensMap = _a.getScreensMap, onInputFinished = _a.onInputFinished, onChangeState = _a.onChangeState, onSmsRetryClick = _a.onSmsRetryClick, onChangeScreen = _a.onChangeScreen, onFatalErrorOkButtonClick = _a.onFatalErrorOkButtonClick, onTempBlockFinished = _a.onTempBlockFinished, mobile = _a.mobile, _h = _a.clearCodeOnError, clearCodeOnError = _h === void 0 ? true : _h, _j = _a.hideCountdownSection, hideCountdownSection = _j === void 0 ? false : _j, breakpoint = _a.breakpoint, client = _a.client, initialScreenHintSlot = _a.initialScreenHintSlot, errorVisibleDuration = _a.errorVisibleDuration, _k = _a.strictFocus, strictFocus = _k === void 0 ? false : _k, restProps = tslib.__rest(_a, ["state", "screen", "titleTag", "alignContent", "children", "requiredCharAmount", "countdownDuration", "tempBlockDuration", "phone", "blockSmsRetry", "dataTestId", "className", "maxWidth", "getScreensMap", "onInputFinished", "onChangeState", "onSmsRetryClick", "onChangeScreen", "onFatalErrorOkButtonClick", "onTempBlockFinished", "mobile", "clearCodeOnError", "hideCountdownSection", "breakpoint", "client", "initialScreenHintSlot", "errorVisibleDuration", "strictFocus"]);
35
+ var _l = utils.useCountdown(countdownDuration), timeLeft = _l[0], startTimer = _l[1], stopTimer = _l[2];
36
36
  var prevState = hooks.usePrevious(state);
37
37
  React.useEffect(function () {
38
38
  startTimer();
@@ -83,6 +83,7 @@ var BaseConfirmation = function (_a) {
83
83
  blockSmsRetry: blockSmsRetry,
84
84
  breakpoint: breakpoint,
85
85
  client: client,
86
+ strictFocus: strictFocus,
86
87
  onTempBlockFinished: onTempBlockFinished,
87
88
  onChangeState: onChangeState,
88
89
  onChangeScreen: onChangeScreen,