@alfalab/core-components-password-input 6.0.1 → 6.0.2
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 +1 -1
- package/component.js +3 -1
- package/component.js.map +1 -1
- package/cssm/component.d.ts +1 -1
- package/cssm/component.js +3 -1
- package/cssm/component.js.map +1 -1
- package/esm/component.d.ts +1 -1
- package/esm/component.js +3 -1
- package/esm/component.js.map +1 -1
- package/esm/index.css +1 -1
- package/esm/index.module.css.js +1 -1
- package/esm/index.module.css.js.map +1 -1
- package/index.css +1 -1
- package/index.module.css.js +1 -1
- package/index.module.css.js.map +1 -1
- package/modern/component.d.ts +1 -1
- package/modern/component.js +3 -1
- package/modern/component.js.map +1 -1
- package/modern/index.css +1 -1
- package/modern/index.module.css.js +1 -1
- package/modern/index.module.css.js.map +1 -1
- package/moderncssm/component.d.ts +1 -1
- package/moderncssm/component.js +3 -1
- package/moderncssm/component.js.map +1 -1
- package/moderncssm/index.module.css +2 -0
- package/package.json +3 -3
- package/src/component.tsx +3 -1
- package/src/index.module.css +1 -1
package/component.d.ts
CHANGED
package/component.js
CHANGED
|
@@ -33,7 +33,9 @@ var PasswordInput = React.forwardRef(function (_a, ref) {
|
|
|
33
33
|
}
|
|
34
34
|
}, [passwordVisible, uncontrolled, onPasswordVisibleChange]);
|
|
35
35
|
var isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;
|
|
36
|
-
return (React__default.default.createElement(coreComponentsInput.Input, tslib.__assign({}, restProps, { disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn__default.default(className), rightAddons:
|
|
36
|
+
return (React__default.default.createElement(coreComponentsInput.Input, tslib.__assign({}, restProps, { disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn__default.default(className), rightAddons:
|
|
37
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
38
|
+
React__default.default.createElement(React__default.default.Fragment, null,
|
|
37
39
|
rightAddons,
|
|
38
40
|
React__default.default.createElement(coreComponentsIconButton.IconButton, { className: index_module.eye, colors: colors, view: 'secondary', size: 24, icon: isPasswordVisible ? EyeMIcon.EyeMIcon : EyeOffMIcon.EyeOffMIcon, onClick: handleButtonClick, disabled: disabled, title: isPasswordVisible ? visible : hidden })), inputClassName: index_module.input })));
|
|
39
41
|
});
|
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, 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 <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 }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["forwardRef","__rest","useState","useCallback","React","Input","
|
|
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;AAClC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;AACzD;KACJ,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
package/cssm/component.js
CHANGED
|
@@ -34,7 +34,9 @@ var PasswordInput = React.forwardRef(function (_a, ref) {
|
|
|
34
34
|
}
|
|
35
35
|
}, [passwordVisible, uncontrolled, onPasswordVisibleChange]);
|
|
36
36
|
var isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;
|
|
37
|
-
return (React__default.default.createElement(cssm.Input, tslib.__assign({}, restProps, { disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn__default.default(className), rightAddons:
|
|
37
|
+
return (React__default.default.createElement(cssm.Input, tslib.__assign({}, restProps, { disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn__default.default(className), rightAddons:
|
|
38
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
39
|
+
React__default.default.createElement(React__default.default.Fragment, null,
|
|
38
40
|
rightAddons,
|
|
39
41
|
React__default.default.createElement(cssm$1.IconButton, { className: styles__default.default.eye, colors: colors, view: 'secondary', size: 24, icon: isPasswordVisible ? EyeMIcon.EyeMIcon : EyeOffMIcon.EyeOffMIcon, onClick: handleButtonClick, disabled: disabled, title: isPasswordVisible ? visible : hidden })), inputClassName: styles__default.default.input })));
|
|
40
42
|
});
|
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, 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 <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 }\n inputClassName={styles.input}\n />\n );\n },\n);\n\nPasswordInput.displayName = 'PasswordInput';\n"],"names":["forwardRef","__rest","useState","useCallback","React","Input","
|
|
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;AAClC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;AACzD;KACJ,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
package/esm/component.js
CHANGED
|
@@ -24,7 +24,9 @@ var PasswordInput = forwardRef(function (_a, ref) {
|
|
|
24
24
|
}
|
|
25
25
|
}, [passwordVisible, uncontrolled, onPasswordVisibleChange]);
|
|
26
26
|
var isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;
|
|
27
|
-
return (React.createElement(Input, __assign({}, restProps, { disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn(className), rightAddons:
|
|
27
|
+
return (React.createElement(Input, __assign({}, restProps, { disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn(className), rightAddons:
|
|
28
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
29
|
+
React.createElement(React.Fragment, null,
|
|
28
30
|
rightAddons,
|
|
29
31
|
React.createElement(IconButton, { className: styles.eye, colors: colors, view: 'secondary', size: 24, icon: isPasswordVisible ? EyeMIcon : EyeOffMIcon, onClick: handleButtonClick, disabled: disabled, title: isPasswordVisible ? visible : hidden })), inputClassName: styles.input })));
|
|
30
32
|
});
|
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, 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 <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 }\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;AAClC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;AACzD;KACJ,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,IAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;
|
|
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;AAClC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,UAAC,WAAW,EAAK,EAAA,OAAA,CAAC,WAAW,CAAA,EAAA,CAAC;AACzD;KACJ,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/index.css';\n\n.eye:last-child {\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,aAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n\n.eye:last-child {\n height: 100%;\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/index.css';\n\n.eye:last-child {\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n\n.eye:last-child {\n height: 100%;\n}\n"],"names":[],"mappings":";;;;AAEgB,aAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
package/modern/component.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input/modern';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input/modern';
|
|
3
3
|
export declare type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
package/modern/component.js
CHANGED
|
@@ -22,7 +22,9 @@ const PasswordInput = forwardRef(({ onPasswordVisibleChange, passwordVisible, di
|
|
|
22
22
|
}
|
|
23
23
|
}, [passwordVisible, uncontrolled, onPasswordVisibleChange]);
|
|
24
24
|
const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;
|
|
25
|
-
return (React.createElement(Input, { ...restProps, disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn(className), rightAddons:
|
|
25
|
+
return (React.createElement(Input, { ...restProps, disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn(className), rightAddons:
|
|
26
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
27
|
+
React.createElement(React.Fragment, null,
|
|
26
28
|
rightAddons,
|
|
27
29
|
React.createElement(IconButton, { className: styles.eye, colors: colors, view: 'secondary', size: 24, icon: isPasswordVisible ? EyeMIcon : EyeOffMIcon, onClick: handleButtonClick, disabled: disabled, title: isPasswordVisible ? visible : hidden })), inputClassName: styles.input }));
|
|
28
30
|
});
|
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, 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 <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 }\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;AACvC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC;AACzD;KACJ,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;
|
|
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;AACvC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC;AACzD;KACJ,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/index.css';\n\n.eye:last-child {\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"index.module.css.js","sources":["src/index.module.css"],"sourcesContent":["@import '@alfalab/core-components-vars/src/no-typography-index.css';\n\n.eye:last-child {\n height: 100%;\n}\n"],"names":[],"mappings":";;AAEgB,eAAe,CAAC,KAAK,CAAC,2BAA2B,CAAC;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { InputProps } from '@alfalab/core-components-input/moderncssm';
|
|
2
|
+
import { type InputProps } from '@alfalab/core-components-input/moderncssm';
|
|
3
3
|
export declare type PasswordInputProps = Omit<InputProps, 'size'> & {
|
|
4
4
|
/**
|
|
5
5
|
* Размер компонента
|
package/moderncssm/component.js
CHANGED
|
@@ -22,7 +22,9 @@ const PasswordInput = forwardRef(({ onPasswordVisibleChange, passwordVisible, di
|
|
|
22
22
|
}
|
|
23
23
|
}, [passwordVisible, uncontrolled, onPasswordVisibleChange]);
|
|
24
24
|
const isPasswordVisible = uncontrolled ? statePasswordVisible : passwordVisible;
|
|
25
|
-
return (React.createElement(Input, { ...restProps, disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn(className), rightAddons:
|
|
25
|
+
return (React.createElement(Input, { ...restProps, disabled: disabled, type: isPasswordVisible ? 'text' : 'password', size: size, ref: ref, colors: colors, className: cn(className), rightAddons:
|
|
26
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
27
|
+
React.createElement(React.Fragment, null,
|
|
26
28
|
rightAddons,
|
|
27
29
|
React.createElement(IconButton, { className: styles.eye, colors: colors, view: 'secondary', size: 24, icon: isPasswordVisible ? EyeMIcon : EyeOffMIcon, onClick: handleButtonClick, disabled: disabled, title: isPasswordVisible ? visible : hidden })), inputClassName: styles.input }));
|
|
28
30
|
});
|
|
@@ -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, 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 <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 }\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;AACvC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC;AACzD;KACJ,EAAE,CAAC,eAAe,EAAE,YAAY,EAAE,uBAAuB,CAAC,CAAC;IAE5D,MAAM,iBAAiB,GAAG,YAAY,GAAG,oBAAoB,GAAG,eAAe;
|
|
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;AACvC,QAAA,IAAI,uBAAuB,EAAE;AACzB,YAAA,uBAAuB,CAAC,CAAC,eAAe,CAAC;AAC5C;AAED,QAAA,IAAI,YAAY,EAAE;YACd,uBAAuB,CAAC,CAAC,WAAW,KAAK,CAAC,WAAW,CAAC;AACzD;KACJ,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": "6.0.
|
|
3
|
+
"version": "6.0.2",
|
|
4
4
|
"description": "Input password",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"license": "MIT",
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"module": "./esm/index.js",
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"@alfalab/core-components-icon-button": "^7.0.1",
|
|
14
|
-
"@alfalab/core-components-input": "^16.0.
|
|
14
|
+
"@alfalab/core-components-input": "^16.0.2",
|
|
15
15
|
"@alfalab/icons-glyph": "^2.247.0",
|
|
16
16
|
"classnames": "^2.5.1",
|
|
17
17
|
"tslib": "^2.4.0"
|
|
@@ -24,6 +24,6 @@
|
|
|
24
24
|
"access": "public",
|
|
25
25
|
"directory": "dist"
|
|
26
26
|
},
|
|
27
|
-
"themesVersion": "14.1.
|
|
27
|
+
"themesVersion": "14.1.2",
|
|
28
28
|
"varsVersion": "10.1.0"
|
|
29
29
|
}
|
package/src/component.tsx
CHANGED
|
@@ -2,7 +2,7 @@ import React, { forwardRef, useCallback, useState } from 'react';
|
|
|
2
2
|
import cn from 'classnames';
|
|
3
3
|
|
|
4
4
|
import { IconButton } from '@alfalab/core-components-icon-button';
|
|
5
|
-
import { Input, InputProps } from '@alfalab/core-components-input';
|
|
5
|
+
import { Input, type InputProps } from '@alfalab/core-components-input';
|
|
6
6
|
import { EyeMIcon } from '@alfalab/icons-glyph/EyeMIcon';
|
|
7
7
|
import { EyeOffMIcon } from '@alfalab/icons-glyph/EyeOffMIcon';
|
|
8
8
|
|
|
@@ -80,6 +80,7 @@ export const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(
|
|
|
80
80
|
colors={colors}
|
|
81
81
|
className={cn(className)}
|
|
82
82
|
rightAddons={
|
|
83
|
+
/* eslint-disable jsx-a11y/control-has-associated-label */
|
|
83
84
|
<React.Fragment>
|
|
84
85
|
{rightAddons}
|
|
85
86
|
<IconButton
|
|
@@ -93,6 +94,7 @@ export const PasswordInput = forwardRef<HTMLInputElement, PasswordInputProps>(
|
|
|
93
94
|
title={isPasswordVisible ? visible : hidden}
|
|
94
95
|
/>
|
|
95
96
|
</React.Fragment>
|
|
97
|
+
/* eslint-enable jsx-a11y/control-has-associated-label */
|
|
96
98
|
}
|
|
97
99
|
inputClassName={styles.input}
|
|
98
100
|
/>
|
package/src/index.module.css
CHANGED