@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 CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { InputProps } from '@alfalab/core-components-input';
2
+ import { type InputProps } from '@alfalab/core-components-input';
3
3
  export declare type PasswordInputProps = Omit<InputProps, 'size'> & {
4
4
  /**
5
5
  * Размер компонента
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: React__default.default.createElement(React__default.default.Fragment, null,
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","__assign","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;IAE/E,QACIC,qCAACC,yBAAK,EAAAC,cAAA,CAAA,EAAA,EACE,SAAS,EACb,EAAA,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,EACPH,sBAAA,CAAA,aAAA,CAACA,sBAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAAA,sBAAA,CAAA,aAAA,CAACI,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,EAErB,cAAc,EAAEF,YAAM,CAAC,KAAK,EAAA,CAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,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":["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;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { InputProps } from '@alfalab/core-components-input/cssm';
2
+ import { type InputProps } from '@alfalab/core-components-input/cssm';
3
3
  export declare type PasswordInputProps = Omit<InputProps, 'size'> & {
4
4
  /**
5
5
  * Размер компонента
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: React__default.default.createElement(React__default.default.Fragment, null,
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
  });
@@ -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","__assign","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;IAE/E,QACIC,qCAACC,UAAK,EAAAC,cAAA,CAAA,EAAA,EACE,SAAS,EACb,EAAA,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,EACPH,sBAAA,CAAA,aAAA,CAACA,sBAAK,CAAC,QAAQ,EAAA,IAAA;YACV,WAAW;AACZ,YAAAA,sBAAA,CAAA,aAAA,CAACI,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,EAErB,cAAc,EAAEF,uBAAM,CAAC,KAAK,EAAA,CAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,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":["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;;;;"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { InputProps } from '@alfalab/core-components-input/esm';
2
+ import { type InputProps } from '@alfalab/core-components-input/esm';
3
3
  export declare type PasswordInputProps = Omit<InputProps, 'size'> & {
4
4
  /**
5
5
  * Размер компонента
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: React.createElement(React.Fragment, null,
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
  });
@@ -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;IAE/E,QACI,oBAAC,KAAK,EAAA,QAAA,CAAA,EAAA,EACE,SAAS,EACb,EAAA,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,EACP,KAAA,CAAA,aAAA,CAAC,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,EAErB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAA,CAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,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
@@ -1,3 +1,3 @@
1
- .password-input__eye_1ahmk:last-child {
1
+ .password-input__eye_bb8mk:last-child {
2
2
  height: 100%;
3
3
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- var styles = {"eye":"password-input__eye_1ahmk"};
3
+ var styles = {"eye":"password-input__eye_bb8mk"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -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
@@ -1,3 +1,3 @@
1
- .password-input__eye_1ahmk:last-child {
1
+ .password-input__eye_bb8mk:last-child {
2
2
  height: 100%;
3
3
  }
@@ -2,7 +2,7 @@
2
2
 
3
3
  require('./index.css');
4
4
 
5
- var styles = {"eye":"password-input__eye_1ahmk"};
5
+ var styles = {"eye":"password-input__eye_bb8mk"};
6
6
 
7
7
  module.exports = styles;
8
8
  //# sourceMappingURL=index.module.css.js.map
@@ -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;;;;"}
@@ -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
  * Размер компонента
@@ -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: React.createElement(React.Fragment, null,
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;IAE/E,QACI,oBAAC,KAAK,EAAA,EAAA,GACE,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,EACP,KAAA,CAAA,aAAA,CAAC,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,EAErB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,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,3 +1,3 @@
1
- .password-input__eye_1ahmk:last-child {
1
+ .password-input__eye_bb8mk:last-child {
2
2
  height: 100%;
3
3
  }
@@ -1,6 +1,6 @@
1
1
  import './index.css';
2
2
 
3
- const styles = {"eye":"password-input__eye_1ahmk"};
3
+ const styles = {"eye":"password-input__eye_bb8mk"};
4
4
 
5
5
  export { styles as default };
6
6
  //# sourceMappingURL=index.module.css.js.map
@@ -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
  * Размер компонента
@@ -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: React.createElement(React.Fragment, null,
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;IAE/E,QACI,oBAAC,KAAK,EAAA,EAAA,GACE,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,EACP,KAAA,CAAA,aAAA,CAAC,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,EAErB,cAAc,EAAE,MAAM,CAAC,KAAK,EAAA,CAC9B;AAEV,CAAC;AAGL,aAAa,CAAC,WAAW,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;;;;"}
@@ -1,3 +1,5 @@
1
+
2
+
1
3
  .eye:last-child {
2
4
  height: 100%;
3
5
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alfalab/core-components-password-input",
3
- "version": "6.0.1",
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.1",
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.0",
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
  />
@@ -1,4 +1,4 @@
1
- @import '@alfalab/core-components-vars/src/index.css';
1
+ @import '@alfalab/core-components-vars/src/no-typography-index.css';
2
2
 
3
3
  .eye:last-child {
4
4
  height: 100%;