@alfalab/core-components-password-input 7.0.4 → 7.0.5
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.
- package/component.d.ts +5 -5
- package/component.js.map +1 -1
- package/cssm/component.d.ts +5 -5
- package/cssm/component.js.map +1 -1
- package/esm/component.d.ts +5 -5
- package/esm/component.js.map +1 -1
- package/esm/index.css +2 -2
- package/esm/index.module.css.js +1 -1
- package/esm/index.module.css.js.map +1 -1
- package/index.css +2 -2
- package/index.module.css.js +1 -1
- package/index.module.css.js.map +1 -1
- package/modern/component.d.ts +5 -5
- package/modern/component.js.map +1 -1
- package/modern/index.css +2 -2
- package/modern/index.module.css.js +1 -1
- package/modern/index.module.css.js.map +1 -1
- package/moderncssm/component.d.ts +5 -5
- package/moderncssm/component.js.map +1 -1
- package/package.json +4 -4
- package/src/index.module.css +1 -1
package/component.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type InputProps } from '@alfalab/core-components-input';
|
|
3
|
-
export
|
|
3
|
+
export type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
|
6
6
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
@@ -27,20 +27,20 @@ export declare const PasswordInput: React.ForwardRefExoticComponent<Omit<InputPr
|
|
|
27
27
|
* Размер компонента
|
|
28
28
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
29
29
|
*/
|
|
30
|
-
size?: Exclude<InputProps[
|
|
30
|
+
size?: Exclude<InputProps["size"], 40>;
|
|
31
31
|
/**
|
|
32
32
|
* Управление видимостью пароля (controlled)
|
|
33
33
|
*/
|
|
34
|
-
passwordVisible?: boolean
|
|
34
|
+
passwordVisible?: boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Управление текстом подсказки
|
|
37
37
|
*/
|
|
38
38
|
passwordHint?: {
|
|
39
39
|
visible: string;
|
|
40
40
|
hidden: string;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* Коллбэк при изменении видимости пароля
|
|
44
44
|
*/
|
|
45
|
-
onPasswordVisibleChange?: (
|
|
45
|
+
onPasswordVisibleChange?: (visible: boolean) => void;
|
|
46
46
|
} & React.RefAttributes<HTMLInputElement>>;
|
package/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["forwardRef","__rest","useState","useCallback","React","Input","cn","IconButton","styles","EyeMIcon","EyeOffMIcon"],"mappings":";;;;;;;;;;;;;;;;;;IAoCa,aAAa,GAAGA,gBAAU,CACnC,UACI,EAaC,EACD,GAAG,EAAA;IAbC,IAAA,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,YAGC,EAHD,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,MAAM,EAAE,UAAU;AACrB,KAAA,GAAA,EAAA,EACD,SAAS,GAAA,EAAA,CAAA,SAAA,EACN,SAAS,GAAAC,YAAA,CAAA,EAAA,EAZhB,wHAaC,CADe;IAIR,IAAA,OAAO,GAAa,YAAY,CAAA,OAAzB,EAAE,MAAM,GAAK,YAAY,CAAA,MAAjB;AACvB,IAAA,IAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAC5C,IAAA,IAAA,KAAkDC,cAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC,EAFM,oBAAoB,QAAA,EAAE,uBAAuB,QAEnD;IAED,IAAM,iBAAiB,GAAGC,iBAAW,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"component.js","sources":["src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["forwardRef","__rest","useState","useCallback","React","Input","cn","IconButton","styles","EyeMIcon","EyeOffMIcon"],"mappings":";;;;;;;;;;;;;;;;;;IAoCa,aAAa,GAAGA,gBAAU,CACnC,UACI,EAaC,EACD,GAAG,EAAA;IAbC,IAAA,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,YAGC,EAHD,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,MAAM,EAAE,UAAU;AACrB,KAAA,GAAA,EAAA,EACD,SAAS,GAAA,EAAA,CAAA,SAAA,EACN,SAAS,GAAAC,YAAA,CAAA,EAAA,EAZhB,wHAaC,CADe;IAIR,IAAA,OAAO,GAAa,YAAY,CAAA,OAAzB,EAAE,MAAM,GAAK,YAAY,CAAA,MAAjB;AACvB,IAAA,IAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAC5C,IAAA,IAAA,KAAkDC,cAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC,EAFM,oBAAoB,QAAA,EAAE,uBAAuB,QAEnD;IAED,IAAM,iBAAiB,GAAGC,iBAAW,CAAC,YAAA;QAClC,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;;QAG7C,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;;KAE7D,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,IAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;AAE/E,IAAA,QACIC,sBAAC,CAAA,aAAA,CAAAC,yBAAK,qBACE,SAAS,EAAA,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAEC,mBAAE,CAAC,SAAS,CAAC,EACxB,WAAW;;QAEPF,sBAAC,CAAA,aAAA,CAAAA,sBAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAAA,sBAAA,CAAA,aAAA,CAACG,mCAAU,EAAA,EACP,SAAS,EAAEC,YAAM,CAAC,GAAG,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,iBAAiB,GAAGC,iBAAQ,GAAGC,uBAAW,EAChD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,iBAAiB,GAAG,OAAO,GAAG,MAAM,EAAA,CAC7C,CACW,EAGrB,cAAc,EAAEF,YAAM,CAAC,KAAK,EAAA,CAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/cssm/component.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type InputProps } from '@alfalab/core-components-input/cssm';
|
|
3
|
-
export
|
|
3
|
+
export type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
|
6
6
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
@@ -27,20 +27,20 @@ export declare const PasswordInput: React.ForwardRefExoticComponent<Omit<InputPr
|
|
|
27
27
|
* Размер компонента
|
|
28
28
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
29
29
|
*/
|
|
30
|
-
size?: Exclude<InputProps[
|
|
30
|
+
size?: Exclude<InputProps["size"], 40>;
|
|
31
31
|
/**
|
|
32
32
|
* Управление видимостью пароля (controlled)
|
|
33
33
|
*/
|
|
34
|
-
passwordVisible?: boolean
|
|
34
|
+
passwordVisible?: boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Управление текстом подсказки
|
|
37
37
|
*/
|
|
38
38
|
passwordHint?: {
|
|
39
39
|
visible: string;
|
|
40
40
|
hidden: string;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* Коллбэк при изменении видимости пароля
|
|
44
44
|
*/
|
|
45
|
-
onPasswordVisibleChange?: (
|
|
45
|
+
onPasswordVisibleChange?: (visible: boolean) => void;
|
|
46
46
|
} & React.RefAttributes<HTMLInputElement>>;
|
package/cssm/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["forwardRef","__rest","useState","useCallback","React","Input","cn","IconButton","styles","EyeMIcon","EyeOffMIcon"],"mappings":";;;;;;;;;;;;;;;;;;;IAoCa,aAAa,GAAGA,gBAAU,CACnC,UACI,EAaC,EACD,GAAG,EAAA;IAbC,IAAA,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,YAGC,EAHD,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,MAAM,EAAE,UAAU;AACrB,KAAA,GAAA,EAAA,EACD,SAAS,GAAA,EAAA,CAAA,SAAA,EACN,SAAS,GAAAC,YAAA,CAAA,EAAA,EAZhB,wHAaC,CADe;IAIR,IAAA,OAAO,GAAa,YAAY,CAAA,OAAzB,EAAE,MAAM,GAAK,YAAY,CAAA,MAAjB;AACvB,IAAA,IAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAC5C,IAAA,IAAA,KAAkDC,cAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC,EAFM,oBAAoB,QAAA,EAAE,uBAAuB,QAEnD;IAED,IAAM,iBAAiB,GAAGC,iBAAW,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["forwardRef","__rest","useState","useCallback","React","Input","cn","IconButton","styles","EyeMIcon","EyeOffMIcon"],"mappings":";;;;;;;;;;;;;;;;;;;IAoCa,aAAa,GAAGA,gBAAU,CACnC,UACI,EAaC,EACD,GAAG,EAAA;IAbC,IAAA,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,YAGC,EAHD,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,MAAM,EAAE,UAAU;AACrB,KAAA,GAAA,EAAA,EACD,SAAS,GAAA,EAAA,CAAA,SAAA,EACN,SAAS,GAAAC,YAAA,CAAA,EAAA,EAZhB,wHAaC,CADe;IAIR,IAAA,OAAO,GAAa,YAAY,CAAA,OAAzB,EAAE,MAAM,GAAK,YAAY,CAAA,MAAjB;AACvB,IAAA,IAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAC5C,IAAA,IAAA,KAAkDC,cAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC,EAFM,oBAAoB,QAAA,EAAE,uBAAuB,QAEnD;IAED,IAAM,iBAAiB,GAAGC,iBAAW,CAAC,YAAA;QAClC,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;;QAG7C,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;;KAE7D,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,IAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;AAE/E,IAAA,QACIC,sBAAC,CAAA,aAAA,CAAAC,UAAK,qBACE,SAAS,EAAA,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAEC,mBAAE,CAAC,SAAS,CAAC,EACxB,WAAW;;QAEPF,sBAAC,CAAA,aAAA,CAAAA,sBAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAAA,sBAAA,CAAA,aAAA,CAACG,iBAAU,EAAA,EACP,SAAS,EAAEC,uBAAM,CAAC,GAAG,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,iBAAiB,GAAGC,iBAAQ,GAAGC,uBAAW,EAChD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,iBAAiB,GAAG,OAAO,GAAG,MAAM,EAAA,CAC7C,CACW,EAGrB,cAAc,EAAEF,uBAAM,CAAC,KAAK,EAAA,CAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/esm/component.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type InputProps } from '@alfalab/core-components-input/esm';
|
|
3
|
-
export
|
|
3
|
+
export type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
|
6
6
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
@@ -27,20 +27,20 @@ export declare const PasswordInput: React.ForwardRefExoticComponent<Omit<InputPr
|
|
|
27
27
|
* Размер компонента
|
|
28
28
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
29
29
|
*/
|
|
30
|
-
size?: Exclude<InputProps[
|
|
30
|
+
size?: Exclude<InputProps["size"], 40>;
|
|
31
31
|
/**
|
|
32
32
|
* Управление видимостью пароля (controlled)
|
|
33
33
|
*/
|
|
34
|
-
passwordVisible?: boolean
|
|
34
|
+
passwordVisible?: boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Управление текстом подсказки
|
|
37
37
|
*/
|
|
38
38
|
passwordHint?: {
|
|
39
39
|
visible: string;
|
|
40
40
|
hidden: string;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* Коллбэк при изменении видимости пароля
|
|
44
44
|
*/
|
|
45
|
-
onPasswordVisibleChange?: (
|
|
45
|
+
onPasswordVisibleChange?: (visible: boolean) => void;
|
|
46
46
|
} & React.RefAttributes<HTMLInputElement>>;
|
package/esm/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":[],"mappings":";;;;;;;;;IAoCa,aAAa,GAAG,UAAU,CACnC,UACI,EAaC,EACD,GAAG,EAAA;IAbC,IAAA,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,YAGC,EAHD,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,MAAM,EAAE,UAAU;AACrB,KAAA,GAAA,EAAA,EACD,SAAS,GAAA,EAAA,CAAA,SAAA,EACN,SAAS,GAAA,MAAA,CAAA,EAAA,EAZhB,wHAaC,CADe;IAIR,IAAA,OAAO,GAAa,YAAY,CAAA,OAAzB,EAAE,MAAM,GAAK,YAAY,CAAA,MAAjB;AACvB,IAAA,IAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAC5C,IAAA,IAAA,KAAkD,QAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC,EAFM,oBAAoB,QAAA,EAAE,uBAAuB,QAEnD;IAED,IAAM,iBAAiB,GAAG,WAAW,CAAC,YAAA;
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":[],"mappings":";;;;;;;;;IAoCa,aAAa,GAAG,UAAU,CACnC,UACI,EAaC,EACD,GAAG,EAAA;IAbC,IAAA,uBAAuB,GAAA,EAAA,CAAA,uBAAA,EACvB,eAAe,GAAA,EAAA,CAAA,eAAA,EACf,QAAQ,GAAA,EAAA,CAAA,QAAA,EACR,MAAM,GAAA,EAAA,CAAA,MAAA,EACN,WAAW,GAAA,EAAA,CAAA,WAAA,EACX,EAAS,GAAA,EAAA,CAAA,IAAA,EAAT,IAAI,GAAA,EAAA,KAAA,MAAA,GAAG,EAAE,GAAA,EAAA,EACT,EAAA,GAAA,EAAA,CAAA,YAGC,EAHD,YAAY,GAAG,EAAA,KAAA,MAAA,GAAA;AACX,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,MAAM,EAAE,UAAU;AACrB,KAAA,GAAA,EAAA,EACD,SAAS,GAAA,EAAA,CAAA,SAAA,EACN,SAAS,GAAA,MAAA,CAAA,EAAA,EAZhB,wHAaC,CADe;IAIR,IAAA,OAAO,GAAa,YAAY,CAAA,OAAzB,EAAE,MAAM,GAAK,YAAY,CAAA,MAAjB;AACvB,IAAA,IAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAC5C,IAAA,IAAA,KAAkD,QAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC,EAFM,oBAAoB,QAAA,EAAE,uBAAuB,QAEnD;IAED,IAAM,iBAAiB,GAAG,WAAW,CAAC,YAAA;QAClC,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;;QAG7C,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;;KAE7D,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,IAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;AAE/E,IAAA,QACI,KAAC,CAAA,aAAA,CAAA,KAAK,eACE,SAAS,EAAA,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EACxB,WAAW;;QAEP,KAAC,CAAA,aAAA,CAAA,KAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACP,SAAS,EAAE,MAAM,CAAC,GAAG,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,iBAAiB,GAAG,QAAQ,GAAG,WAAW,EAChD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,iBAAiB,GAAG,OAAO,GAAG,MAAM,EAAA,CAC7C,CACW,EAGrB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAA,CAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/esm/index.css
CHANGED
package/esm/index.module.css.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.eye {\n &:last-child {\n height: 100%;\n }\n\n /* Иконка замка не должна отображаться в PasswordInput */\n & ~ [data-name='input-lock-icon'] {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
package/index.css
CHANGED
package/index.module.css.js
CHANGED
package/index.module.css.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.eye {\n &:last-child {\n height: 100%;\n }\n\n /* Иконка замка не должна отображаться в PasswordInput */\n & ~ [data-name='input-lock-icon'] {\n display: none;\n }\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
package/modern/component.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type InputProps } from '@alfalab/core-components-input/modern';
|
|
3
|
-
export
|
|
3
|
+
export type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
|
6
6
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
@@ -27,20 +27,20 @@ export declare const PasswordInput: React.ForwardRefExoticComponent<Omit<InputPr
|
|
|
27
27
|
* Размер компонента
|
|
28
28
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
29
29
|
*/
|
|
30
|
-
size?: Exclude<InputProps[
|
|
30
|
+
size?: Exclude<InputProps["size"], 40>;
|
|
31
31
|
/**
|
|
32
32
|
* Управление видимостью пароля (controlled)
|
|
33
33
|
*/
|
|
34
|
-
passwordVisible?: boolean
|
|
34
|
+
passwordVisible?: boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Управление текстом подсказки
|
|
37
37
|
*/
|
|
38
38
|
passwordHint?: {
|
|
39
39
|
visible: string;
|
|
40
40
|
hidden: string;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* Коллбэк при изменении видимости пароля
|
|
44
44
|
*/
|
|
45
|
-
onPasswordVisibleChange?: (
|
|
45
|
+
onPasswordVisibleChange?: (visible: boolean) => void;
|
|
46
46
|
} & React.RefAttributes<HTMLInputElement>>;
|
package/modern/component.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":[],"mappings":";;;;;;;;MAoCa,aAAa,GAAG,UAAU,CACnC,CACI,EACI,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,WAAW,EACX,IAAI,GAAG,EAAE,EACT,YAAY,GAAG;AACX,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,MAAM,EAAE,UAAU;CACrB,EACD,SAAS,EACT,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY;AACxC,IAAA,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAClD,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC;AAED,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAK;
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":[],"mappings":";;;;;;;;MAoCa,aAAa,GAAG,UAAU,CACnC,CACI,EACI,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,WAAW,EACX,IAAI,GAAG,EAAE,EACT,YAAY,GAAG;AACX,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,MAAM,EAAE,UAAU;CACrB,EACD,SAAS,EACT,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY;AACxC,IAAA,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAClD,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC;AAED,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAK;QACvC,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;;QAG7C,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC;;KAE7D,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;AAE/E,IAAA,QACI,KAAC,CAAA,aAAA,CAAA,KAAK,OACE,SAAS,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EACxB,WAAW;;QAEP,KAAC,CAAA,aAAA,CAAA,KAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACP,SAAS,EAAE,MAAM,CAAC,GAAG,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,iBAAiB,GAAG,QAAQ,GAAG,WAAW,EAChD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,iBAAiB,GAAG,OAAO,GAAG,MAAM,EAAA,CAC7C,CACW,EAGrB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/modern/index.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/index.css';\n\n.eye {\n &:last-child {\n height: 100%;\n }\n\n /* Иконка замка не должна отображаться в PasswordInput */\n & ~ [data-name='input-lock-icon'] {\n display: none;\n }\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { type InputProps } from '@alfalab/core-components-input/moderncssm';
|
|
3
|
-
export
|
|
3
|
+
export type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
|
6
6
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
@@ -27,20 +27,20 @@ export declare const PasswordInput: React.ForwardRefExoticComponent<Omit<InputPr
|
|
|
27
27
|
* Размер компонента
|
|
28
28
|
* @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно
|
|
29
29
|
*/
|
|
30
|
-
size?: Exclude<InputProps[
|
|
30
|
+
size?: Exclude<InputProps["size"], 40>;
|
|
31
31
|
/**
|
|
32
32
|
* Управление видимостью пароля (controlled)
|
|
33
33
|
*/
|
|
34
|
-
passwordVisible?: boolean
|
|
34
|
+
passwordVisible?: boolean;
|
|
35
35
|
/**
|
|
36
36
|
* Управление текстом подсказки
|
|
37
37
|
*/
|
|
38
38
|
passwordHint?: {
|
|
39
39
|
visible: string;
|
|
40
40
|
hidden: string;
|
|
41
|
-
}
|
|
41
|
+
};
|
|
42
42
|
/**
|
|
43
43
|
* Коллбэк при изменении видимости пароля
|
|
44
44
|
*/
|
|
45
|
-
onPasswordVisibleChange?: (
|
|
45
|
+
onPasswordVisibleChange?: (visible: boolean) => void;
|
|
46
46
|
} & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":[],"mappings":";;;;;;;;MAoCa,aAAa,GAAG,UAAU,CACnC,CACI,EACI,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,WAAW,EACX,IAAI,GAAG,EAAE,EACT,YAAY,GAAG;AACX,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,MAAM,EAAE,UAAU;CACrB,EACD,SAAS,EACT,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY;AACxC,IAAA,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAClD,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC;AAED,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAK;
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../src/component.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useState } from 'react';\nimport cn from 'classnames';\n\nimport { IconButton } from '@alfalab/core-components-icon-button';\nimport { Input, type InputProps } from '@alfalab/core-components-input';\nimport { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';\nimport { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';\n\nimport styles from './index.module.css';\n\nexport type PasswordInputProps = Omit<InputProps, 'size'> & {\n /**\n * Размер компонента\n * @description s, m, l, xl deprecated, используйте вместо них 48, 56, 64, 72 соответственно\n */\n size?: Exclude<InputProps['size'], 40>;\n\n /**\n * Управление видимостью пароля (controlled)\n */\n passwordVisible?: boolean;\n\n /**\n * Управление текстом подсказки\n */\n passwordHint?: {\n visible: string;\n hidden: string;\n };\n\n /**\n * Коллбэк при изменении видимости пароля\n */\n onPasswordVisibleChange?: (visible: boolean) => void;\n};\n\nexport const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(\n (\n {\n onPasswordVisibleChange,\n passwordVisible,\n disabled,\n colors,\n rightAddons,\n size = 48,\n passwordHint = {\n visible: 'Скрыть',\n hidden: 'Показать',\n },\n className,\n ...restProps\n },\n ref,\n ) => {\n const { visible, hidden } = passwordHint;\n const uncontrolled = passwordVisible === undefined;\n const [statePasswordVisible, setStatePasswordVisible] = useState(\n uncontrolled ? false : passwordVisible,\n );\n\n const handleButtonClick = useCallback(() => {\n if (onPasswordVisibleChange) {\n onPasswordVisibleChange(!passwordVisible);\n }\n\n if (uncontrolled) {\n setStatePasswordVisible((prevVisible) => !prevVisible);\n }\n }, [passwordVisible, uncontrolled, onPasswordVisibleChange]);\n\n const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;\n\n return (\n <Input\n {...restProps}\n disabled={disabled}\n type={isPasswordVisible ? 'text' : 'password'}\n size={size}\n ref={ref}\n colors={colors}\n className={cn(className)}\n rightAddons={\n /* eslint-disable jsx-a11y/control-has-associated-label */\n <React.Fragment>\n {rightAddons}\n <IconButton\n className={styles.eye}\n colors={colors}\n view='secondary'\n size={24}\n icon={isPasswordVisible ? EyeMIcon : EyeOffMIcon}\n onClick={handleButtonClick}\n disabled={disabled}\n title={isPasswordVisible ? visible : hidden}\n />\n </React.Fragment>\n /* eslint-enable jsx-a11y/control-has-associated-label */\n }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":[],"mappings":";;;;;;;;MAoCa,aAAa,GAAG,UAAU,CACnC,CACI,EACI,uBAAuB,EACvB,eAAe,EACf,QAAQ,EACR,MAAM,EACN,WAAW,EACX,IAAI,GAAG,EAAE,EACT,YAAY,GAAG;AACX,IAAA,OAAO,EAAE,QAAQ;AACjB,IAAA,MAAM,EAAE,UAAU;CACrB,EACD,SAAS,EACT,GAAG,SAAS,EACf,EACD,GAAG,KACH;AACA,IAAA,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY;AACxC,IAAA,MAAM,YAAY,GAAG,eAAe,KAAK,SAAS;AAClD,IAAA,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAC5D,YAAY,GAAG,KAAK,GAAG,eAAe,CACzC;AAED,IAAA,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAK;QACvC,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;;QAG7C,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC;;KAE7D,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;AAE/E,IAAA,QACI,KAAC,CAAA,aAAA,CAAA,KAAK,OACE,SAAS,EACb,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,iBAAiB,GAAG,MAAM,GAAG,UAAU,EAC7C,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,EACxB,WAAW;;QAEP,KAAC,CAAA,aAAA,CAAA,KAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAA,KAAA,CAAA,aAAA,CAAC,UAAU,EAAA,EACP,SAAS,EAAE,MAAM,CAAC,GAAG,EACrB,MAAM,EAAE,MAAM,EACd,IAAI,EAAC,WAAW,EAChB,IAAI,EAAE,EAAE,EACR,IAAI,EAAE,iBAAiB,GAAG,QAAQ,GAAG,WAAW,EAChD,OAAO,EAAE,iBAAiB,EAC1B,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,iBAAiB,GAAG,OAAO,GAAG,MAAM,EAAA,CAC7C,CACW,EAGrB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,GAAG,eAAe;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alfalab/core-components-password-input",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.5",
|
|
4
4
|
"description": "Input password",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
"main": "index.js",
|
|
11
11
|
"module": "./esm/index.js",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@alfalab/core-components-icon-button": "^8.0.
|
|
14
|
-
"@alfalab/core-components-input": "^17.1.
|
|
13
|
+
"@alfalab/core-components-icon-button": "^8.0.4",
|
|
14
|
+
"@alfalab/core-components-input": "^17.1.3",
|
|
15
15
|
"@alfalab/icons-glyph": "^2.260.0",
|
|
16
16
|
"classnames": "^2.5.1",
|
|
17
17
|
"tslib": "^2.4.0"
|
|
@@ -25,5 +25,5 @@
|
|
|
25
25
|
"directory": "dist"
|
|
26
26
|
},
|
|
27
27
|
"themesVersion": "15.0.2",
|
|
28
|
-
"varsVersion": "11.0.
|
|
28
|
+
"varsVersion": "11.0.2"
|
|
29
29
|
}
|
package/src/index.module.css
CHANGED