@salutejs/plasma-new-hope 0.149.0-canary.1445.10941168954.0 → 0.149.0-dev.0
Sign up to get free protection for your applications and to get access to all the features.
- package/cjs/components/Chip/Chip.js +1 -1
- package/cjs/components/Chip/Chip.js.map +1 -1
- package/cjs/components/Chip/Chip.tokens.js +1 -2
- package/cjs/components/Chip/Chip.tokens.js.map +1 -1
- package/cjs/components/Mask/Mask.js +45 -0
- package/cjs/components/Mask/Mask.js.map +1 -0
- package/cjs/components/TextField/TextField.js +3 -1
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/index.css +0 -8
- package/cjs/index.js +2 -7
- package/cjs/index.js.map +1 -1
- package/emotion/cjs/components/Chip/Chip.js +1 -1
- package/emotion/cjs/components/Chip/Chip.tokens.js +1 -2
- package/emotion/cjs/components/Chip/index.js +0 -6
- package/emotion/cjs/components/Mask/Mask.js +55 -0
- package/emotion/cjs/components/Mask/Mask.template-doc.mdx +125 -0
- package/emotion/cjs/components/Mask/index.js +12 -0
- package/emotion/cjs/components/TextField/TextField.js +4 -2
- package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.js +9 -0
- package/emotion/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/emotion/cjs/examples/plasma_web/components/Mask/Mask.js +9 -0
- package/emotion/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/emotion/cjs/index.js +11 -11
- package/emotion/es/components/Chip/Chip.js +1 -1
- package/emotion/es/components/Chip/Chip.tokens.js +1 -2
- package/emotion/es/components/Chip/index.js +1 -1
- package/emotion/es/components/Mask/Mask.js +45 -0
- package/emotion/es/components/Mask/Mask.template-doc.mdx +125 -0
- package/emotion/es/components/Mask/index.js +1 -0
- package/emotion/es/components/TextField/TextField.js +4 -2
- package/emotion/es/examples/plasma_b2c/components/Mask/Mask.js +3 -0
- package/emotion/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/emotion/es/examples/plasma_web/components/Mask/Mask.js +3 -0
- package/emotion/es/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/emotion/es/index.js +2 -2
- package/es/components/Chip/Chip.js +1 -1
- package/es/components/Chip/Chip.js.map +1 -1
- package/es/components/Chip/Chip.tokens.js +1 -2
- package/es/components/Chip/Chip.tokens.js.map +1 -1
- package/es/components/Mask/Mask.js +41 -0
- package/es/components/Mask/Mask.js.map +1 -0
- package/es/components/TextField/TextField.js +3 -1
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/index.css +0 -8
- package/es/index.js +2 -3
- package/es/index.js.map +1 -1
- package/package.json +4 -2
- package/styled-components/cjs/components/Chip/Chip.js +1 -1
- package/styled-components/cjs/components/Chip/Chip.tokens.js +1 -2
- package/styled-components/cjs/components/Chip/index.js +0 -6
- package/styled-components/cjs/components/Mask/Mask.js +55 -0
- package/styled-components/cjs/components/Mask/Mask.template-doc.mdx +125 -0
- package/styled-components/cjs/components/Mask/index.js +12 -0
- package/styled-components/cjs/components/TextField/TextField.js +3 -1
- package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.js +9 -0
- package/styled-components/cjs/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.js +9 -0
- package/styled-components/cjs/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/styled-components/cjs/index.js +11 -11
- package/styled-components/es/components/Chip/Chip.js +1 -1
- package/styled-components/es/components/Chip/Chip.tokens.js +1 -2
- package/styled-components/es/components/Chip/index.js +1 -1
- package/styled-components/es/components/Mask/Mask.js +45 -0
- package/styled-components/es/components/Mask/Mask.template-doc.mdx +125 -0
- package/styled-components/es/components/Mask/index.js +1 -0
- package/styled-components/es/components/TextField/TextField.js +3 -1
- package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.js +3 -0
- package/styled-components/es/examples/plasma_b2c/components/Mask/Mask.stories.tsx +127 -0
- package/styled-components/es/examples/plasma_web/components/Mask/Mask.js +3 -0
- package/styled-components/es/examples/plasma_web/components/Mask/Mask.stories.tsx +125 -0
- package/styled-components/es/index.js +2 -2
- package/types/components/Chip/Chip.tokens.d.ts +0 -1
- package/types/components/Chip/Chip.tokens.d.ts.map +1 -1
- package/types/components/Chip/index.d.ts +1 -1
- package/types/components/Chip/index.d.ts.map +1 -1
- package/types/components/Mask/Mask.d.ts +5 -0
- package/types/components/Mask/Mask.d.ts.map +1 -0
- package/types/components/Mask/Mask.types.d.ts +62 -0
- package/types/components/Mask/Mask.types.d.ts.map +1 -0
- package/types/components/Mask/index.d.ts +2 -0
- package/types/components/Mask/index.d.ts.map +1 -0
- package/types/components/TextField/TextField.d.ts.map +1 -1
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts +191 -0
- package/types/examples/plasma_b2c/components/Mask/Mask.d.ts.map +1 -0
- package/types/examples/plasma_web/components/Mask/Mask.d.ts +191 -0
- package/types/examples/plasma_web/components/Mask/Mask.d.ts.map +1 -0
- package/types/index.d.ts +1 -1
- package/types/index.d.ts.map +1 -1
- package/cjs/components/ChipGroup/ChipGroup.css +0 -7
- package/cjs/components/ChipGroup/ChipGroup.js +0 -63
- package/cjs/components/ChipGroup/ChipGroup.js.map +0 -1
- package/cjs/components/ChipGroup/ChipGroup.styles.js +0 -9
- package/cjs/components/ChipGroup/ChipGroup.styles.js.map +0 -1
- package/cjs/components/ChipGroup/ChipGroup.styles_1l3nd6v.css +0 -1
- package/cjs/components/ChipGroup/ChipGroup.tokens.js +0 -50
- package/cjs/components/ChipGroup/ChipGroup.tokens.js.map +0 -1
- package/cjs/components/ChipGroup/variations/_gap/base.js +0 -9
- package/cjs/components/ChipGroup/variations/_gap/base.js.map +0 -1
- package/cjs/components/ChipGroup/variations/_gap/base_vhoe9f.css +0 -1
- package/cjs/components/ChipGroup/variations/_size/base.js +0 -9
- package/cjs/components/ChipGroup/variations/_size/base.js.map +0 -1
- package/cjs/components/ChipGroup/variations/_size/base_eu60ye.css +0 -1
- package/cjs/components/ChipGroup/variations/_view/base.js +0 -9
- package/cjs/components/ChipGroup/variations/_view/base.js.map +0 -1
- package/cjs/components/ChipGroup/variations/_view/base_122089q.css +0 -1
- package/emotion/cjs/components/ChipGroup/ChipGroup.js +0 -65
- package/emotion/cjs/components/ChipGroup/ChipGroup.styles.js +0 -9
- package/emotion/cjs/components/ChipGroup/ChipGroup.template-doc.mdx +0 -93
- package/emotion/cjs/components/ChipGroup/ChipGroup.tokens.js +0 -48
- package/emotion/cjs/components/ChipGroup/index.js +0 -31
- package/emotion/cjs/components/ChipGroup/variations/_gap/base.js +0 -9
- package/emotion/cjs/components/ChipGroup/variations/_gap/tokens.json +0 -1
- package/emotion/cjs/components/ChipGroup/variations/_size/base.js +0 -10
- package/emotion/cjs/components/ChipGroup/variations/_size/tokens.json +0 -22
- package/emotion/cjs/components/ChipGroup/variations/_view/base.js +0 -10
- package/emotion/cjs/components/ChipGroup/variations/_view/tokens.json +0 -15
- package/emotion/cjs/examples/plasma_b2c/components/ChipGroup /ChipGroup.config.js +0 -33
- package/emotion/cjs/examples/plasma_b2c/components/ChipGroup /ChipGroup.js +0 -11
- package/emotion/cjs/examples/plasma_b2c/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/emotion/cjs/examples/plasma_web/components/ChipGroup /ChipGroup.config.js +0 -33
- package/emotion/cjs/examples/plasma_web/components/ChipGroup /ChipGroup.js +0 -11
- package/emotion/cjs/examples/plasma_web/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/emotion/es/components/ChipGroup/ChipGroup.js +0 -56
- package/emotion/es/components/ChipGroup/ChipGroup.styles.js +0 -3
- package/emotion/es/components/ChipGroup/ChipGroup.template-doc.mdx +0 -93
- package/emotion/es/components/ChipGroup/ChipGroup.tokens.js +0 -42
- package/emotion/es/components/ChipGroup/index.js +0 -2
- package/emotion/es/components/ChipGroup/variations/_gap/base.js +0 -3
- package/emotion/es/components/ChipGroup/variations/_gap/tokens.json +0 -1
- package/emotion/es/components/ChipGroup/variations/_size/base.js +0 -4
- package/emotion/es/components/ChipGroup/variations/_size/tokens.json +0 -22
- package/emotion/es/components/ChipGroup/variations/_view/base.js +0 -4
- package/emotion/es/components/ChipGroup/variations/_view/tokens.json +0 -15
- package/emotion/es/examples/plasma_b2c/components/ChipGroup /ChipGroup.config.js +0 -27
- package/emotion/es/examples/plasma_b2c/components/ChipGroup /ChipGroup.js +0 -5
- package/emotion/es/examples/plasma_b2c/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/emotion/es/examples/plasma_web/components/ChipGroup /ChipGroup.config.js +0 -27
- package/emotion/es/examples/plasma_web/components/ChipGroup /ChipGroup.js +0 -5
- package/emotion/es/examples/plasma_web/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/es/components/ChipGroup/ChipGroup.css +0 -7
- package/es/components/ChipGroup/ChipGroup.js +0 -58
- package/es/components/ChipGroup/ChipGroup.js.map +0 -1
- package/es/components/ChipGroup/ChipGroup.styles.js +0 -5
- package/es/components/ChipGroup/ChipGroup.styles.js.map +0 -1
- package/es/components/ChipGroup/ChipGroup.styles_1l3nd6v.css +0 -1
- package/es/components/ChipGroup/ChipGroup.tokens.js +0 -45
- package/es/components/ChipGroup/ChipGroup.tokens.js.map +0 -1
- package/es/components/ChipGroup/variations/_gap/base.js +0 -5
- package/es/components/ChipGroup/variations/_gap/base.js.map +0 -1
- package/es/components/ChipGroup/variations/_gap/base_vhoe9f.css +0 -1
- package/es/components/ChipGroup/variations/_size/base.js +0 -5
- package/es/components/ChipGroup/variations/_size/base.js.map +0 -1
- package/es/components/ChipGroup/variations/_size/base_eu60ye.css +0 -1
- package/es/components/ChipGroup/variations/_view/base.js +0 -5
- package/es/components/ChipGroup/variations/_view/base.js.map +0 -1
- package/es/components/ChipGroup/variations/_view/base_122089q.css +0 -1
- package/styled-components/cjs/components/ChipGroup/ChipGroup.js +0 -65
- package/styled-components/cjs/components/ChipGroup/ChipGroup.styles.js +0 -9
- package/styled-components/cjs/components/ChipGroup/ChipGroup.template-doc.mdx +0 -93
- package/styled-components/cjs/components/ChipGroup/ChipGroup.tokens.js +0 -48
- package/styled-components/cjs/components/ChipGroup/index.js +0 -31
- package/styled-components/cjs/components/ChipGroup/variations/_gap/base.js +0 -9
- package/styled-components/cjs/components/ChipGroup/variations/_gap/tokens.json +0 -1
- package/styled-components/cjs/components/ChipGroup/variations/_size/base.js +0 -10
- package/styled-components/cjs/components/ChipGroup/variations/_size/tokens.json +0 -22
- package/styled-components/cjs/components/ChipGroup/variations/_view/base.js +0 -10
- package/styled-components/cjs/components/ChipGroup/variations/_view/tokens.json +0 -15
- package/styled-components/cjs/examples/plasma_b2c/components/ChipGroup /ChipGroup.config.js +0 -33
- package/styled-components/cjs/examples/plasma_b2c/components/ChipGroup /ChipGroup.js +0 -11
- package/styled-components/cjs/examples/plasma_b2c/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/styled-components/cjs/examples/plasma_web/components/ChipGroup /ChipGroup.config.js +0 -33
- package/styled-components/cjs/examples/plasma_web/components/ChipGroup /ChipGroup.js +0 -11
- package/styled-components/cjs/examples/plasma_web/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/styled-components/es/components/ChipGroup/ChipGroup.js +0 -56
- package/styled-components/es/components/ChipGroup/ChipGroup.styles.js +0 -3
- package/styled-components/es/components/ChipGroup/ChipGroup.template-doc.mdx +0 -93
- package/styled-components/es/components/ChipGroup/ChipGroup.tokens.js +0 -42
- package/styled-components/es/components/ChipGroup/index.js +0 -2
- package/styled-components/es/components/ChipGroup/variations/_gap/base.js +0 -3
- package/styled-components/es/components/ChipGroup/variations/_gap/tokens.json +0 -1
- package/styled-components/es/components/ChipGroup/variations/_size/base.js +0 -4
- package/styled-components/es/components/ChipGroup/variations/_size/tokens.json +0 -22
- package/styled-components/es/components/ChipGroup/variations/_view/base.js +0 -4
- package/styled-components/es/components/ChipGroup/variations/_view/tokens.json +0 -15
- package/styled-components/es/examples/plasma_b2c/components/ChipGroup /ChipGroup.config.js +0 -27
- package/styled-components/es/examples/plasma_b2c/components/ChipGroup /ChipGroup.js +0 -5
- package/styled-components/es/examples/plasma_b2c/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/styled-components/es/examples/plasma_web/components/ChipGroup /ChipGroup.config.js +0 -27
- package/styled-components/es/examples/plasma_web/components/ChipGroup /ChipGroup.js +0 -5
- package/styled-components/es/examples/plasma_web/components/ChipGroup /ChipGroup.stories.tsx +0 -93
- package/types/components/ChipGroup/ChipGroup.d.ts +0 -27
- package/types/components/ChipGroup/ChipGroup.d.ts.map +0 -1
- package/types/components/ChipGroup/ChipGroup.styles.d.ts +0 -2
- package/types/components/ChipGroup/ChipGroup.styles.d.ts.map +0 -1
- package/types/components/ChipGroup/ChipGroup.tokens.d.ts +0 -43
- package/types/components/ChipGroup/ChipGroup.tokens.d.ts.map +0 -1
- package/types/components/ChipGroup/ChipGroup.types.d.ts +0 -42
- package/types/components/ChipGroup/ChipGroup.types.d.ts.map +0 -1
- package/types/components/ChipGroup/index.d.ts +0 -3
- package/types/components/ChipGroup/index.d.ts.map +0 -1
- package/types/components/ChipGroup/variations/_gap/base.d.ts +0 -2
- package/types/components/ChipGroup/variations/_gap/base.d.ts.map +0 -1
- package/types/components/ChipGroup/variations/_size/base.d.ts +0 -2
- package/types/components/ChipGroup/variations/_size/base.d.ts.map +0 -1
- package/types/components/ChipGroup/variations/_view/base.d.ts +0 -2
- package/types/components/ChipGroup/variations/_view/base.d.ts.map +0 -1
- package/types/examples/plasma_b2c/components/ChipGroup /ChipGroup.config.d.ts +0 -24
- package/types/examples/plasma_b2c/components/ChipGroup /ChipGroup.config.d.ts.map +0 -1
- package/types/examples/plasma_b2c/components/ChipGroup /ChipGroup.d.ts +0 -19
- package/types/examples/plasma_b2c/components/ChipGroup /ChipGroup.d.ts.map +0 -1
- package/types/examples/plasma_web/components/ChipGroup /ChipGroup.config.d.ts +0 -24
- package/types/examples/plasma_web/components/ChipGroup /ChipGroup.config.d.ts.map +0 -1
- package/types/examples/plasma_web/components/ChipGroup /ChipGroup.d.ts +0 -19
- package/types/examples/plasma_web/components/ChipGroup /ChipGroup.d.ts.map +0 -1
- /package/emotion/cjs/components/{ChipGroup/ChipGroup.types.js → Mask/Mask.types.js} +0 -0
- /package/emotion/es/components/{ChipGroup/ChipGroup.types.js → Mask/Mask.types.js} +0 -0
- /package/styled-components/cjs/components/{ChipGroup/ChipGroup.types.js → Mask/Mask.types.js} +0 -0
- /package/styled-components/es/components/{ChipGroup/ChipGroup.types.js → Mask/Mask.types.js} +0 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"TextField.js","sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport type { FormEventHandler, ChangeEventHandler, KeyboardEvent, ChangeEvent } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\nimport { css } from '@linaria/core';\n\nimport type { RootProps } from '../../engines';\nimport { cx } from '../../utils';\n\nimport type { ChipValues, TextFieldPrimitiveValue, TextFieldProps } from './TextField.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_read-only/base';\nimport { base as labelPlacementCSS } from './variations/_label-placement/base';\nimport {\n Input,\n InputContainer,\n LeftHelper,\n Label,\n InputWrapper,\n InputLabelWrapper,\n StyledContentLeft,\n StyledContentRight,\n StyledChips,\n StyledTextBefore,\n StyledTextAfter,\n StyledIndicator,\n StyledOptionalText,\n InputPlaceholder,\n} from './TextField.styles';\nimport { classes } from './TextField.tokens';\nimport { TextFieldChip } from './ui';\nimport { useKeyNavigation } from './hooks';\n\nconst optionalText = 'optional';\n\nexport const base = css`\n /* NOTE: Webkit не применяет opacity к inline тегам */\n display: block;\n`;\n\nexport const textFieldRoot = (Root: RootProps<HTMLDivElement, TextFieldProps>) =>\n forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n id,\n className,\n style,\n\n // layout\n contentLeft,\n contentRight,\n label,\n labelPlacement,\n textBefore,\n textAfter,\n placeholder,\n leftHelper,\n enumerationType = 'plain',\n requiredPlacement = 'right',\n\n // variations\n view,\n size,\n readOnly = false,\n disabled = false,\n required = false,\n optional,\n\n // controlled\n value: outerValue,\n chips: values,\n\n // events\n onChange,\n onChangeChips,\n onSearch,\n onKeyDown,\n\n ...rest\n },\n ref,\n ) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const chipsRefs = useRef<Array<HTMLButtonElement>>([]);\n\n const controlledRefs = { contentRef, inputRef, chipsRefs };\n\n const [hasValue, setHasValue] = useState(\n Boolean(outerValue) || Boolean(inputRef?.current?.value) || Boolean(rest?.defaultValue),\n );\n const [chips, setChips] = useState<Array<ChipValues>>([]);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const labelId = safeUseId();\n const helperTextId = safeUseId();\n\n const isChipEnumeration = enumerationType === 'chip';\n const isChipsVisible = isChipEnumeration && Boolean(chips?.length);\n const withHasChips = isChipsVisible ? classes.hasChips : undefined;\n\n const hasLabelValue = Boolean(label);\n const hasInnerLabel = size !== 'xs' && labelPlacement === 'inner' && !isChipsVisible && hasLabelValue;\n const hasOuterLabel = labelPlacement === 'outer' && hasLabelValue;\n const hasPlaceholder = Boolean(placeholder) && !hasInnerLabel;\n\n const innerLabelValue = hasInnerLabel || hasOuterLabel ? label : undefined;\n const innerLabelPlacementValue = labelPlacement === 'inner' && !hasInnerLabel ? undefined : labelPlacement;\n\n const innerPlaceholderValue = hasPlaceholder ? placeholder : undefined;\n const placeholderShown = Boolean(innerPlaceholderValue) && !hasValue;\n\n const requiredPlacementClass = requiredPlacement === 'right' ? 'align-right ' : undefined;\n const labelPlacementClass = innerLabelPlacementValue\n ? classes[`${innerLabelPlacementValue}LabelPlacement` as keyof typeof classes]\n : undefined;\n const hasValueClass = hasValue ? classes.hasValue : undefined;\n\n const wrapperWithoutLeftContent = !contentLeft && isChipsVisible ? classes.hasEmptyContentLeft : undefined;\n const wrapperWithoutRightContent =\n !contentRight && isChipsVisible ? classes.hasEmptyContentRight : undefined;\n\n const handleInput: FormEventHandler<HTMLInputElement> = (event) => {\n setHasValue(Boolean((event.target as HTMLInputElement).value));\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const { maxLength, value } = event.target;\n\n if (maxLength !== -1 && value.length > maxLength) {\n return;\n }\n\n onChange?.(event);\n };\n\n const updateChips = (newChips: Array<ChipValues>, newValues: Array<TextFieldPrimitiveValue>) => {\n setChips(newChips);\n onChangeChips?.(newValues);\n };\n\n const { handleInputKeydown, handleChipKeyDown, onChipClear, handleContentKeyDown } = useKeyNavigation({\n controlledRefs,\n disabled,\n readOnly,\n chips,\n enumerationType,\n updateChips,\n onSearch,\n onChange,\n onEnterDisabled: (rest as any).onEnterDisabled,\n });\n\n const onChipClick = (event: React.MouseEvent<HTMLButtonElement>) => event.stopPropagation();\n\n const handleInputFocus = () => {\n if (readOnly || disabled || !inputRef?.current) {\n return;\n }\n\n inputRef.current.scrollTo({\n top: 0,\n left: inputRef.current.offsetLeft,\n behavior: 'smooth',\n });\n\n inputRef.current.focus();\n };\n\n const getRef = (element: HTMLButtonElement | null, index: number) => {\n if (element && chipsRefs?.current) {\n chipsRefs.current[index] = element;\n }\n };\n\n const handleOnKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n handleInputKeydown(event);\n onKeyDown && onKeyDown(event);\n };\n\n useEffect(() => {\n if (!isChipEnumeration && !values?.length) {\n return;\n }\n\n const newChips =\n values?.map((value, index) => ({\n id: `${index}_${value}`,\n text: value,\n })) || [];\n\n setChips(newChips);\n }, [isChipEnumeration, values]);\n\n useEffect(() => {\n setHasValue(Boolean(rest?.defaultValue));\n }, [rest.defaultValue]);\n\n useEffect(() => {\n setHasValue(Boolean(outerValue) || Boolean(inputRef?.current?.value));\n }, [outerValue, inputRef?.current?.value]);\n\n const innerOptional = Boolean(required ? false : optional);\n const hasPlaceholderOptional = innerOptional && !innerLabelValue && !hasOuterLabel;\n const optionalTextNode = innerOptional ? (\n <StyledOptionalText>\n {Boolean(hasPlaceholderOptional ? innerPlaceholderValue : innerLabelValue) && '\\xa0'}\n {optionalText}\n </StyledOptionalText>\n ) : null;\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n labelPlacement={innerLabelPlacementValue}\n onClick={handleInputFocus}\n className={cx(labelPlacementClass, classes.textFieldGroupItem, className)}\n style={style}\n >\n {hasOuterLabel && (\n <Label id={labelId} htmlFor={id}>\n {required && (\n <StyledIndicator className={cx(classes.outerLabelPlacement, requiredPlacementClass)} />\n )}\n {innerLabelValue}\n {optionalTextNode}\n </Label>\n )}\n <InputWrapper\n // Ref для внутреннего использования. Не отдается наружу.\n ref={(rest as any).inputWrapperRef}\n className={cx(withHasChips, wrapperWithoutLeftContent, wrapperWithoutRightContent)}\n >\n {!hasOuterLabel && required && (\n <StyledIndicator className={cx(classes.innerLabelPlacement, requiredPlacementClass)} />\n )}\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n <InputLabelWrapper\n tabIndex={-1}\n ref={contentRef}\n onKeyDown={handleContentKeyDown}\n className={withHasChips}\n >\n {textBefore && <StyledTextBefore>{textBefore}</StyledTextBefore>}\n {isChipEnumeration && Boolean(chips?.length) && (\n <StyledChips>\n {chips?.map(({ id: chipId, text }, index) => {\n return (\n <TextFieldChip\n id={chipId}\n ref={(element) => getRef(element, index)}\n key={`${chipId}_${index}`}\n disabled={disabled}\n readOnly={readOnly}\n value={text}\n text={text}\n onKeyDown={(event) => handleChipKeyDown(event, chipId, index)}\n onClear={() => onChipClear(chipId, index)}\n onClick={onChipClick}\n />\n );\n })}\n </StyledChips>\n )}\n <InputContainer>\n <Input\n ref={inputForkRef}\n id={innerId}\n value={outerValue}\n aria-labelledby={labelId}\n aria-describedby={helperTextId}\n placeholder={innerPlaceholderValue}\n className={cx(hasValueClass)}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n onInput={handleInput}\n onChange={handleChange}\n onKeyDown={handleOnKeyDown}\n {...rest}\n />\n {hasInnerLabel && (\n <Label id={labelId} htmlFor={innerId}>\n {innerLabelValue}\n {optionalTextNode}\n </Label>\n )}\n {placeholderShown && !hasValue && (\n <InputPlaceholder>\n {innerPlaceholderValue}\n {hasPlaceholderOptional && optionalTextNode}\n </InputPlaceholder>\n )}\n </InputContainer>\n {textAfter && <StyledTextAfter>{textAfter}</StyledTextAfter>}\n </InputLabelWrapper>\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n </InputWrapper>\n {leftHelper && <LeftHelper id={helperTextId}>{leftHelper}</LeftHelper>}\n </Root>\n );\n },\n );\n\nexport const textFieldConfig = {\n name: 'TextField',\n tag: 'div',\n layout: textFieldRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n labelPlacement: {\n css: labelPlacementCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["optionalText","base","textFieldRoot","Root","forwardRef","_ref","ref","_inputRef$current","_inputRef$current3","id","className","style","contentLeft","contentRight","label","labelPlacement","textBefore","textAfter","placeholder","leftHelper","_ref$enumerationType","enumerationType","_ref$requiredPlacemen","requiredPlacement","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$required","required","optional","outerValue","value","values","chips","onChange","onChangeChips","onSearch","onKeyDown","rest","contentRef","useRef","inputRef","inputForkRef","useForkRef","chipsRefs","controlledRefs","_useState","useState","Boolean","current","defaultValue","_useState2","_slicedToArray","hasValue","setHasValue","_useState3","_useState4","setChips","uniqId","safeUseId","innerId","labelId","helperTextId","isChipEnumeration","isChipsVisible","length","withHasChips","classes","hasChips","undefined","hasLabelValue","hasInnerLabel","hasOuterLabel","hasPlaceholder","innerLabelValue","innerLabelPlacementValue","innerPlaceholderValue","placeholderShown","requiredPlacementClass","labelPlacementClass","concat","hasValueClass","wrapperWithoutLeftContent","hasEmptyContentLeft","wrapperWithoutRightContent","hasEmptyContentRight","handleInput","event","target","handleChange","_event$target","maxLength","updateChips","newChips","newValues","_useKeyNavigation","useKeyNavigation","onEnterDisabled","handleInputKeydown","handleChipKeyDown","onChipClear","handleContentKeyDown","onChipClick","stopPropagation","handleInputFocus","scrollTo","top","left","offsetLeft","behavior","focus","getRef","element","index","handleOnKeyDown","useEffect","map","text","_inputRef$current2","innerOptional","hasPlaceholderOptional","optionalTextNode","React","createElement","StyledOptionalText","onClick","cx","textFieldGroupItem","Label","htmlFor","StyledIndicator","outerLabelPlacement","InputWrapper","inputWrapperRef","innerLabelPlacement","StyledContentLeft","InputLabelWrapper","tabIndex","StyledTextBefore","StyledChips","_ref2","chipId","TextFieldChip","key","onClear","InputContainer","Input","_extends","onInput","InputPlaceholder","StyledTextAfter","StyledContentRight","LeftHelper","textFieldConfig","name","tag","layout","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readOnlyCSS","labelPlacementCSS","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"TextField.js","sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import React, { forwardRef, useEffect, useRef, useState } from 'react';\nimport type { FormEventHandler, ChangeEventHandler, KeyboardEvent, ChangeEvent } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\nimport { css } from '@linaria/core';\n\nimport type { RootProps } from '../../engines';\nimport { cx } from '../../utils';\n\nimport type { ChipValues, TextFieldPrimitiveValue, TextFieldProps } from './TextField.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_read-only/base';\nimport { base as labelPlacementCSS } from './variations/_label-placement/base';\nimport {\n Input,\n InputContainer,\n LeftHelper,\n Label,\n InputWrapper,\n InputLabelWrapper,\n StyledContentLeft,\n StyledContentRight,\n StyledChips,\n StyledTextBefore,\n StyledTextAfter,\n StyledIndicator,\n StyledOptionalText,\n InputPlaceholder,\n} from './TextField.styles';\nimport { classes } from './TextField.tokens';\nimport { TextFieldChip } from './ui';\nimport { useKeyNavigation } from './hooks';\n\nconst optionalText = 'optional';\n\nexport const base = css`\n /* NOTE: Webkit не применяет opacity к inline тегам */\n display: block;\n`;\n\nexport const textFieldRoot = (Root: RootProps<HTMLDivElement, TextFieldProps>) =>\n forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n id,\n className,\n style,\n\n // layout\n contentLeft,\n contentRight,\n label,\n labelPlacement,\n textBefore,\n textAfter,\n placeholder,\n leftHelper,\n enumerationType = 'plain',\n requiredPlacement = 'right',\n\n // variations\n view,\n size,\n readOnly = false,\n disabled = false,\n required = false,\n optional,\n\n // controlled\n value: outerValue,\n chips: values,\n\n // events\n onChange,\n onChangeChips,\n onSearch,\n onKeyDown,\n\n ...rest\n },\n ref,\n ) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputForkRef = useForkRef(inputRef, ref);\n const chipsRefs = useRef<Array<HTMLButtonElement>>([]);\n\n const controlledRefs = { contentRef, inputRef, chipsRefs };\n\n const [hasValue, setHasValue] = useState(\n Boolean(outerValue) || Boolean(inputRef?.current?.value) || Boolean(rest?.defaultValue),\n );\n const [chips, setChips] = useState<Array<ChipValues>>([]);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const labelId = safeUseId();\n const helperTextId = safeUseId();\n\n const isChipEnumeration = enumerationType === 'chip';\n const isChipsVisible = isChipEnumeration && Boolean(chips?.length);\n const withHasChips = isChipsVisible ? classes.hasChips : undefined;\n\n const hasLabelValue = Boolean(label);\n const hasInnerLabel = size !== 'xs' && labelPlacement === 'inner' && !isChipsVisible && hasLabelValue;\n const hasOuterLabel = labelPlacement === 'outer' && hasLabelValue;\n const hasPlaceholder = Boolean(placeholder) && !hasInnerLabel;\n\n const innerLabelValue = hasInnerLabel || hasOuterLabel ? label : undefined;\n const innerLabelPlacementValue = labelPlacement === 'inner' && !hasInnerLabel ? undefined : labelPlacement;\n\n const innerPlaceholderValue = hasPlaceholder ? placeholder : undefined;\n const placeholderShown = Boolean(innerPlaceholderValue) && !hasValue;\n\n const requiredPlacementClass = requiredPlacement === 'right' ? 'align-right ' : undefined;\n const labelPlacementClass = innerLabelPlacementValue\n ? classes[`${innerLabelPlacementValue}LabelPlacement` as keyof typeof classes]\n : undefined;\n const hasValueClass = hasValue ? classes.hasValue : undefined;\n\n const wrapperWithoutLeftContent = !contentLeft && isChipsVisible ? classes.hasEmptyContentLeft : undefined;\n const wrapperWithoutRightContent =\n !contentRight && isChipsVisible ? classes.hasEmptyContentRight : undefined;\n\n const handleInput: FormEventHandler<HTMLInputElement> = (event) => {\n setHasValue(Boolean((event.target as HTMLInputElement).value));\n };\n\n const handleChange: ChangeEventHandler<HTMLInputElement> = (event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const { maxLength, value } = event.target;\n\n if (maxLength !== -1 && value.length > maxLength) {\n return;\n }\n\n onChange?.(event);\n };\n\n const updateChips = (newChips: Array<ChipValues>, newValues: Array<TextFieldPrimitiveValue>) => {\n setChips(newChips);\n onChangeChips?.(newValues);\n };\n\n const { handleInputKeydown, handleChipKeyDown, onChipClear, handleContentKeyDown } = useKeyNavigation({\n controlledRefs,\n disabled,\n readOnly,\n chips,\n enumerationType,\n updateChips,\n onSearch,\n onChange,\n onEnterDisabled: (rest as any).onEnterDisabled,\n });\n\n const onChipClick = (event: React.MouseEvent<HTMLButtonElement>) => event.stopPropagation();\n\n const handleInputFocus = () => {\n if (readOnly || disabled || !inputRef?.current) {\n return;\n }\n\n inputRef.current.scrollTo({\n top: 0,\n left: inputRef.current.offsetLeft,\n behavior: 'smooth',\n });\n\n inputRef.current.focus();\n };\n\n const getRef = (element: HTMLButtonElement | null, index: number) => {\n if (element && chipsRefs?.current) {\n chipsRefs.current[index] = element;\n }\n };\n\n const handleOnKeyDown = (event: ChangeEvent<HTMLInputElement> & KeyboardEvent<HTMLInputElement>) => {\n handleInputKeydown(event);\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n useEffect(() => {\n if (!isChipEnumeration && !values?.length) {\n return;\n }\n\n const newChips =\n values?.map((value, index) => ({\n id: `${index}_${value}`,\n text: value,\n })) || [];\n\n setChips(newChips);\n }, [isChipEnumeration, values]);\n\n useEffect(() => {\n setHasValue(Boolean(rest?.defaultValue));\n }, [rest.defaultValue]);\n\n useEffect(() => {\n setHasValue(Boolean(outerValue) || Boolean(inputRef?.current?.value));\n }, [outerValue, inputRef?.current?.value]);\n\n const innerOptional = Boolean(required ? false : optional);\n const hasPlaceholderOptional = innerOptional && !innerLabelValue && !hasOuterLabel;\n const optionalTextNode = innerOptional ? (\n <StyledOptionalText>\n {Boolean(hasPlaceholderOptional ? innerPlaceholderValue : innerLabelValue) && '\\xa0'}\n {optionalText}\n </StyledOptionalText>\n ) : null;\n\n return (\n <Root\n view={view}\n size={size}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n labelPlacement={innerLabelPlacementValue}\n onClick={handleInputFocus}\n className={cx(labelPlacementClass, classes.textFieldGroupItem, className)}\n style={style}\n >\n {hasOuterLabel && (\n <Label id={labelId} htmlFor={id}>\n {required && (\n <StyledIndicator className={cx(classes.outerLabelPlacement, requiredPlacementClass)} />\n )}\n {innerLabelValue}\n {optionalTextNode}\n </Label>\n )}\n <InputWrapper\n // Ref для внутреннего использования. Не отдается наружу.\n ref={(rest as any).inputWrapperRef}\n className={cx(withHasChips, wrapperWithoutLeftContent, wrapperWithoutRightContent)}\n >\n {!hasOuterLabel && required && (\n <StyledIndicator className={cx(classes.innerLabelPlacement, requiredPlacementClass)} />\n )}\n {contentLeft && <StyledContentLeft>{contentLeft}</StyledContentLeft>}\n <InputLabelWrapper\n tabIndex={-1}\n ref={contentRef}\n onKeyDown={handleContentKeyDown}\n className={withHasChips}\n >\n {textBefore && <StyledTextBefore>{textBefore}</StyledTextBefore>}\n {isChipEnumeration && Boolean(chips?.length) && (\n <StyledChips>\n {chips?.map(({ id: chipId, text }, index) => {\n return (\n <TextFieldChip\n id={chipId}\n ref={(element) => getRef(element, index)}\n key={`${chipId}_${index}`}\n disabled={disabled}\n readOnly={readOnly}\n value={text}\n text={text}\n onKeyDown={(event) => handleChipKeyDown(event, chipId, index)}\n onClear={() => onChipClear(chipId, index)}\n onClick={onChipClick}\n />\n );\n })}\n </StyledChips>\n )}\n <InputContainer>\n <Input\n ref={inputForkRef}\n id={innerId}\n value={outerValue}\n aria-labelledby={labelId}\n aria-describedby={helperTextId}\n placeholder={innerPlaceholderValue}\n className={cx(hasValueClass)}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n onInput={handleInput}\n onChange={handleChange}\n onKeyDown={handleOnKeyDown}\n {...rest}\n />\n {hasInnerLabel && (\n <Label id={labelId} htmlFor={innerId}>\n {innerLabelValue}\n {optionalTextNode}\n </Label>\n )}\n {placeholderShown && !hasValue && (\n <InputPlaceholder>\n {innerPlaceholderValue}\n {hasPlaceholderOptional && optionalTextNode}\n </InputPlaceholder>\n )}\n </InputContainer>\n {textAfter && <StyledTextAfter>{textAfter}</StyledTextAfter>}\n </InputLabelWrapper>\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n </InputWrapper>\n {leftHelper && <LeftHelper id={helperTextId}>{leftHelper}</LeftHelper>}\n </Root>\n );\n },\n );\n\nexport const textFieldConfig = {\n name: 'TextField',\n tag: 'div',\n layout: textFieldRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n labelPlacement: {\n css: labelPlacementCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["optionalText","base","textFieldRoot","Root","forwardRef","_ref","ref","_inputRef$current","_inputRef$current3","id","className","style","contentLeft","contentRight","label","labelPlacement","textBefore","textAfter","placeholder","leftHelper","_ref$enumerationType","enumerationType","_ref$requiredPlacemen","requiredPlacement","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$required","required","optional","outerValue","value","values","chips","onChange","onChangeChips","onSearch","onKeyDown","rest","contentRef","useRef","inputRef","inputForkRef","useForkRef","chipsRefs","controlledRefs","_useState","useState","Boolean","current","defaultValue","_useState2","_slicedToArray","hasValue","setHasValue","_useState3","_useState4","setChips","uniqId","safeUseId","innerId","labelId","helperTextId","isChipEnumeration","isChipsVisible","length","withHasChips","classes","hasChips","undefined","hasLabelValue","hasInnerLabel","hasOuterLabel","hasPlaceholder","innerLabelValue","innerLabelPlacementValue","innerPlaceholderValue","placeholderShown","requiredPlacementClass","labelPlacementClass","concat","hasValueClass","wrapperWithoutLeftContent","hasEmptyContentLeft","wrapperWithoutRightContent","hasEmptyContentRight","handleInput","event","target","handleChange","_event$target","maxLength","updateChips","newChips","newValues","_useKeyNavigation","useKeyNavigation","onEnterDisabled","handleInputKeydown","handleChipKeyDown","onChipClear","handleContentKeyDown","onChipClick","stopPropagation","handleInputFocus","scrollTo","top","left","offsetLeft","behavior","focus","getRef","element","index","handleOnKeyDown","useEffect","map","text","_inputRef$current2","innerOptional","hasPlaceholderOptional","optionalTextNode","React","createElement","StyledOptionalText","onClick","cx","textFieldGroupItem","Label","htmlFor","StyledIndicator","outerLabelPlacement","InputWrapper","inputWrapperRef","innerLabelPlacement","StyledContentLeft","InputLabelWrapper","tabIndex","StyledTextBefore","StyledChips","_ref2","chipId","TextFieldChip","key","onClear","InputContainer","Input","_extends","onInput","InputPlaceholder","StyledTextAfter","StyledContentRight","LeftHelper","textFieldConfig","name","tag","layout","variations","css","viewCSS","sizeCSS","disabledCSS","attrs","readOnlyCSS","labelPlacementCSS","defaults"],"mappings":"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"}
|
package/es/index.css
CHANGED
@@ -57,14 +57,6 @@
|
|
57
57
|
.Chip_styles_1mwwhiw_swddmyi__07da4d18{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:var(--plasma-chip-right-content-margin-left);margin-right:var(--plasma-chip-right-content-margin-right);}
|
58
58
|
.Chip_styles_1mwwhiw_s1pcflhj__07da4d18{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;margin-left:var(--plasma-chip-clear-content-margin-left);margin-right:var(--plasma-chip-clear-content-margin-right);color:var(--plasma-chip-close-icon-color);}
|
59
59
|
|
60
|
-
.ChipGroup_styles_1l3nd6v_bzgm0e4__3638f601{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;}.ChipGroup_styles_1l3nd6v_bzgm0e4__3638f601.ChipGroup_styles_1l3nd6v_chipGroupWrap__3638f601{-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;}
|
61
|
-
|
62
|
-
.base_122089q_brey5rj__0d881afa.base_122089q_chipGroupOverrideStyles__0d881afa .base_122089q_chipItem__0d881afa{--plasma-chip-background:var(--plasma-chip-group-items-background);--plasma-chip-color:var(--plasma-chip-group-items-color);--plasma-chip-background-hover:var(--plasma-chip-group-items-background-hover);--plasma-chip-color-hover:var(--plasma-chip-group-items-color-hover);--plasma-chip-scale-hover:var(--plasma-chip-group-items-scale-hover);--plasma-chip-background-active:var(--plasma-chip-group-items-background-active);--plasma-chip-color-active:var(--plasma-chip-group-items-color-active);--plasma-chip-scale-active:var(--plasma-chip-group-items-scale-active);--plasma-chip-focus-color:var(--plasma-chip-group-items-focus-color);--plasma-chip-outline-size:var(--plasma-chip-group-items-outline-size);--plasma-chip-close-icon-color:var(--plasma-chip-group-items-close-icon-color);--plasma-chip-close-icon-color-hover:var(--plasma-chip-group-items-close-icon-color-hover);--plasma-chip-close-icon-color-active:var(--plasma-chip-group-items-close-icon-color-active);}
|
63
|
-
|
64
|
-
.base_eu60ye_b8we6fx__49af8456.base_eu60ye_chipGroupOverrideStyles__49af8456 .base_eu60ye_chipItem__49af8456{--plasma-chip-height:var(--plasma-chip-group-item-height);--plasma-chip-width:var(--plasma-chip-group-item-width);--plasma-chip-border-radius:var(--plasma-chip-group-items-border-radius);--plasma-chip-padding-top:var(--plasma-chip-group-item-padding-top);--plasma-chip-padding-right:var(--plasma-chip-group-item-padding-right);--plasma-chip-padding-bottom:var(--plasma-chip-group-item-padding-bottom);--plasma-chip-padding-left:var(--plasma-chip-group-item-padding-left);--plasma-chip-close-icon-size:var(--plasma-chip-group-item-close-icon-size);--plasma-chip-font-family:var(--plasma-chip-group-item-font-family);--plasma-chip-font-size:var(--plasma-chip-group-item-font-size);--plasma-chip-font-style:var(--plasma-chip-group-item-font-style);--plasma-chip-font-weight:var(--plasma-chip-group-item-font-weight);--plasma-chip-letter-spacing:var(--plasma-chip-group-item-letter-spacing);--plasma-chip-lineheight:var(--plasma-chip-group-item-line-height);--plasma-chip-left-content-margin-left:var(--plasma-chip-group-item-left-content-margin-left);--plasma-chip-left-content-margin-right:var(--plasma-chip-group-item-left-content-margin-right);--plasma-chip-right-content-margin-left:var(--plasma-chip-group-item-right-content-margin-left);--plasma-chip-right-content-margin-right:var(--plasma-chip-group-item-right-content-margin-right);--plasma-chip-clear-content-margin-left:var(--plasma-chip-group-item-clear-content-margin-left);--plasma-chip-clear-content-margin-right:var(--plasma-chip-group-item-clear-content-margin-right);}
|
65
|
-
|
66
|
-
.base_vhoe9f_b5zwimg__1f583b8c{gap:var(--plasma-chip-group-items-gap);}
|
67
|
-
|
68
60
|
.Cell_styles_ygfo1w_b1wikybr__e668c908.Cell_styles_ygfo1w_b1wikybr__e668c908.Cell_styles_ygfo1w_cellStretchingFixed__e668c908{width:var(--plasma-cell-width);}.Cell_styles_ygfo1w_b1wikybr__e668c908.Cell_styles_ygfo1w_b1wikybr__e668c908.Cell_styles_ygfo1w_cellStretchingFilled__e668c908{width:100%;}.Cell_styles_ygfo1w_b1wikybr__e668c908.Cell_styles_ygfo1w_b1wikybr__e668c908.Cell_styles_ygfo1w_cellStretchingAuto__e668c908{width:auto;}
|
69
61
|
|
70
62
|
.base_pir0qf_b1sr9i7l__baa3f156{color:var(--plasma-cell-color);background-color:var(--plasma-cell-background-color);width:100%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:stretch;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;gap:var(--plasma-cell-gap);}.base_pir0qf_b1sr9i7l__baa3f156:focus{outline:0 none;}
|
package/es/index.js
CHANGED
@@ -27,9 +27,7 @@ export { classes as buttonGroupClasses, tokens as buttonGroupTokens } from './co
|
|
27
27
|
export { breadcrumbsConfig, breadcrumbsRoot } from './components/Breadcrumbs/Breadcrumbs.js';
|
28
28
|
export { classes as breadcrumbsClasses, tokens as breadcrumbsTokens } from './components/Breadcrumbs/Breadcrumbs.tokens.js';
|
29
29
|
export { chipConfig, chipRoot } from './components/Chip/Chip.js';
|
30
|
-
export {
|
31
|
-
export { chipGroupConfig, chipGroupRoot } from './components/ChipGroup/ChipGroup.js';
|
32
|
-
export { classes as chipGroupClasses, tokens as chipGroupTokens } from './components/ChipGroup/ChipGroup.tokens.js';
|
30
|
+
export { tokens as chipTokens } from './components/Chip/Chip.tokens.js';
|
33
31
|
export { CellTextboxLabel } from './components/Cell/ui/CellTextboxLabel/CellTextboxLabel.js';
|
34
32
|
export { CellTextboxTitle } from './components/Cell/ui/CellTextboxTitle/CellTextboxTitle.js';
|
35
33
|
export { CellTextboxSubtitle } from './components/Cell/ui/CellTextboxSubtitle/CellTextboxSubtitle.js';
|
@@ -187,6 +185,7 @@ export { emptyStateConfig, emptyStateRoot } from './components/EmptyState/EmptyS
|
|
187
185
|
export { tokens as emptyStateTokens } from './components/EmptyState/EmptyState.tokens.js';
|
188
186
|
export { editableConfig, editableRoot } from './components/Editable/Editable.js';
|
189
187
|
export { tokens as editableTokens } from './components/Editable/Editable.tokens.js';
|
188
|
+
export { composeMask } from './components/Mask/Mask.js';
|
190
189
|
export { component, mergeConfig } from './engines/common.js';
|
191
190
|
export { canUseDOM } from './utils/canUseDOM.js';
|
192
191
|
export { extractTextFrom } from './utils/extractTextFrom.js';
|
package/es/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@salutejs/plasma-new-hope",
|
3
|
-
"version": "0.149.0-
|
3
|
+
"version": "0.149.0-dev.0",
|
4
4
|
"description": "Salute Design System blueprint",
|
5
5
|
"main": "cjs/index.js",
|
6
6
|
"module": "es/index.js",
|
@@ -113,7 +113,9 @@
|
|
113
113
|
"@linaria/core": "5.0.2",
|
114
114
|
"@linaria/react": "5.0.3",
|
115
115
|
"@popperjs/core": "2.11.8",
|
116
|
+
"@salutejs/input-core": "2.1.2",
|
116
117
|
"@salutejs/plasma-core": "1.180.0",
|
118
|
+
"@salutejs/react-maskinput": "3.2.6",
|
117
119
|
"dayjs": "1.11.11",
|
118
120
|
"focus-visible": "5.2.0",
|
119
121
|
"lodash.throttle": "4.1.1",
|
@@ -121,5 +123,5 @@
|
|
121
123
|
"react-popper": "2.3.0",
|
122
124
|
"storeon": "3.1.5"
|
123
125
|
},
|
124
|
-
"gitHead": "
|
126
|
+
"gitHead": "5e091a99416b158aad15a24710aef1843dfb41b1"
|
125
127
|
}
|
@@ -60,7 +60,7 @@ var chipRoot = exports.chipRoot = function chipRoot(Root) {
|
|
60
60
|
return /*#__PURE__*/_react["default"].createElement(Root, _extends({
|
61
61
|
type: "button",
|
62
62
|
ref: ref,
|
63
|
-
className: (0, _utils.cx)(pilledClass,
|
63
|
+
className: (0, _utils.cx)(pilledClass, className),
|
64
64
|
tabIndex: readOnly ? -1 : 0,
|
65
65
|
onClick: handleClick,
|
66
66
|
disabled: disabled,
|
@@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
});
|
6
6
|
exports.tokens = exports.classes = void 0;
|
7
7
|
var classes = exports.classes = {
|
8
|
-
pilled: 'chip-pilled'
|
9
|
-
chipItem: 'chip-item'
|
8
|
+
pilled: 'chip-pilled'
|
10
9
|
};
|
11
10
|
var tokens = exports.tokens = {
|
12
11
|
background: '--plasma-chip-background',
|
@@ -3,12 +3,6 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
Object.defineProperty(exports, "chipClasses", {
|
7
|
-
enumerable: true,
|
8
|
-
get: function get() {
|
9
|
-
return _Chip2.classes;
|
10
|
-
}
|
11
|
-
});
|
12
6
|
Object.defineProperty(exports, "chipConfig", {
|
13
7
|
enumerable: true,
|
14
8
|
get: function get() {
|
@@ -0,0 +1,55 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
5
|
+
value: true
|
6
|
+
});
|
7
|
+
exports.composeMask = void 0;
|
8
|
+
var _react = /*#__PURE__*/_interopRequireWildcard( /*#__PURE__*/require("react"));
|
9
|
+
var _reactMaskinput = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("@salutejs/react-maskinput"));
|
10
|
+
var _excluded = ["maskFormat"];
|
11
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
12
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
13
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
14
|
+
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
15
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
16
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
17
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
18
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
19
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
20
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
21
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
22
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
23
|
+
var defaultFormatChars = [{
|
24
|
+
str: '0',
|
25
|
+
regexp: /[0-9]/
|
26
|
+
}, {
|
27
|
+
str: '*',
|
28
|
+
regexp: /./
|
29
|
+
}, {
|
30
|
+
str: 'a',
|
31
|
+
regexp: /[a-zA-Z]/
|
32
|
+
}, {
|
33
|
+
str: 'я',
|
34
|
+
regexp: /[а-яА-ЯёЁ]/
|
35
|
+
}];
|
36
|
+
var composeMask = exports.composeMask = function composeMask(InputComponent) {
|
37
|
+
var MaskedInput = (0, _reactMaskinput["default"])(InputComponent);
|
38
|
+
return /*#__PURE__*/(0, _react.forwardRef)(function (_ref, outerRef) {
|
39
|
+
var _ref$maskFormat = _ref.maskFormat,
|
40
|
+
maskFormat = _ref$maskFormat === void 0 ? defaultFormatChars : _ref$maskFormat,
|
41
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
42
|
+
// TODO: replace inside react-maskinput 'getReference' on 'forwardRef'
|
43
|
+
var _useState = (0, _react.useState)(null),
|
44
|
+
_useState2 = _slicedToArray(_useState, 2),
|
45
|
+
ref = _useState2[0],
|
46
|
+
setRef = _useState2[1];
|
47
|
+
(0, _react.useImperativeHandle)(outerRef, function () {
|
48
|
+
return ref;
|
49
|
+
}, [ref]);
|
50
|
+
return /*#__PURE__*/_react["default"].createElement(MaskedInput, _extends({
|
51
|
+
getReference: setRef,
|
52
|
+
maskFormat: maskFormat
|
53
|
+
}, rest));
|
54
|
+
});
|
55
|
+
};
|
@@ -0,0 +1,125 @@
|
|
1
|
+
---
|
2
|
+
id: mask
|
3
|
+
title: Mask
|
4
|
+
---
|
5
|
+
|
6
|
+
import { PropsTable, Description } from '@site/src/components';
|
7
|
+
|
8
|
+
import Tabs from '@theme/Tabs';
|
9
|
+
import TabItem from '@theme/TabItem';
|
10
|
+
|
11
|
+
# Mask
|
12
|
+
<Description name="Mask" />
|
13
|
+
<PropsTable name="Mask" exclude={['css']} />
|
14
|
+
|
15
|
+
## Использование
|
16
|
+
Компонент `Mask` представляет собой поле ввода с возможностью маскирования значения.
|
17
|
+
Он реализован на компоненте [TextField](https://plasma.sberdevices.ru/b2c/components/textfield/)
|
18
|
+
и наследует практически все его свойства (`size`, `view`, `disabled`, `label` и тд.)
|
19
|
+
|
20
|
+
```tsx live
|
21
|
+
import React from 'react';
|
22
|
+
import { Mask } from '@salutejs/{{ package }}';
|
23
|
+
import { IconDone } from '@salutejs/plasma-icons';
|
24
|
+
|
25
|
+
export function App() {
|
26
|
+
return (
|
27
|
+
<div>
|
28
|
+
<Mask
|
29
|
+
label="Лейбл"
|
30
|
+
leftHelper="Подсказка к полю"
|
31
|
+
placeholder="Введите дату"
|
32
|
+
mask="00/00/0000"
|
33
|
+
maskString="DD/MM/YYYY"
|
34
|
+
size="l"
|
35
|
+
/>
|
36
|
+
</div>
|
37
|
+
);
|
38
|
+
}
|
39
|
+
```
|
40
|
+
|
41
|
+
### Маска
|
42
|
+
Маска задается с помощью свойства `mask`.
|
43
|
+
Поддерживает следующие символы:
|
44
|
+
|
45
|
+
| Обозначение | Описание |
|
46
|
+
|-------------|---------------------------------------|
|
47
|
+
| 0 | любая цифра от 0 до 9 |
|
48
|
+
| a (англ.) | A-Z, a-z |
|
49
|
+
| я | А-Я, а-я, ё, Ё |
|
50
|
+
| q | буква "q" |
|
51
|
+
| 2 | цифра "2" |
|
52
|
+
| * | любой символ |
|
53
|
+
| \ | символ экранирования "\a" - буква "a" |
|
54
|
+
|
55
|
+
|
56
|
+
<Tabs>
|
57
|
+
<TabItem value="phone" label="Маска телефона">
|
58
|
+
Пример маски для ввода телефона
|
59
|
+
|
60
|
+
```tsx live
|
61
|
+
import React from 'react';
|
62
|
+
import { Mask } from '@salutejs/{{ package }}';
|
63
|
+
|
64
|
+
export function App() {
|
65
|
+
return (
|
66
|
+
<div>
|
67
|
+
<Mask
|
68
|
+
label="Маска телефона"
|
69
|
+
placeholder="Введите телефон"
|
70
|
+
mask="+7 (000) 000 - 00 - 00"
|
71
|
+
maskChar="_"
|
72
|
+
size="l"
|
73
|
+
alwaysShowMask
|
74
|
+
/>
|
75
|
+
</div>
|
76
|
+
);
|
77
|
+
}
|
78
|
+
```
|
79
|
+
</TabItem>
|
80
|
+
<TabItem value="date" label="Маска даты">
|
81
|
+
Пример маски для ввода даты
|
82
|
+
|
83
|
+
```tsx live
|
84
|
+
import React from 'react';
|
85
|
+
import { Mask } from '@salutejs/{{ package }}';
|
86
|
+
|
87
|
+
export function App() {
|
88
|
+
return (
|
89
|
+
<div>
|
90
|
+
<Mask
|
91
|
+
label="Маска даты"
|
92
|
+
placeholder="Введите дату"
|
93
|
+
mask="00/00/0000"
|
94
|
+
maskString="DD/MM/YYYY"
|
95
|
+
size="l"
|
96
|
+
/>
|
97
|
+
</div>
|
98
|
+
);
|
99
|
+
}
|
100
|
+
```
|
101
|
+
</TabItem>
|
102
|
+
<TabItem value="time" label="Маска времени">
|
103
|
+
Пример маски для ввода даты
|
104
|
+
|
105
|
+
```tsx live
|
106
|
+
import React from 'react';
|
107
|
+
import { Mask } from '@salutejs/{{ package }}';
|
108
|
+
|
109
|
+
export function App() {
|
110
|
+
return (
|
111
|
+
<div>
|
112
|
+
<Mask
|
113
|
+
label="Маска времени"
|
114
|
+
placeholder="Введите время"
|
115
|
+
mask="1\0:00"
|
116
|
+
maskChar="_"
|
117
|
+
size="l"
|
118
|
+
showPrefix
|
119
|
+
/>
|
120
|
+
</div>
|
121
|
+
);
|
122
|
+
}
|
123
|
+
```
|
124
|
+
</TabItem>
|
125
|
+
</Tabs>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
Object.defineProperty(exports, "composeMask", {
|
7
|
+
enumerable: true,
|
8
|
+
get: function get() {
|
9
|
+
return _Mask.composeMask;
|
10
|
+
}
|
11
|
+
});
|
12
|
+
var _Mask = /*#__PURE__*/require("./Mask");
|
@@ -158,7 +158,9 @@ var textFieldRoot = exports.textFieldRoot = function textFieldRoot(Root) {
|
|
158
158
|
};
|
159
159
|
var handleOnKeyDown = function handleOnKeyDown(event) {
|
160
160
|
handleInputKeydown(event);
|
161
|
-
|
161
|
+
if (onKeyDown) {
|
162
|
+
onKeyDown(event);
|
163
|
+
}
|
162
164
|
};
|
163
165
|
(0, _react.useEffect)(function () {
|
164
166
|
if (!isChipEnumeration && !(values !== null && values !== void 0 && values.length)) {
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.Mask = void 0;
|
7
|
+
var _Mask = /*#__PURE__*/require("../../../../components/Mask");
|
8
|
+
var _TextField = /*#__PURE__*/require("../TextField/TextField");
|
9
|
+
var Mask = exports.Mask = /*#__PURE__*/(0, _Mask.composeMask)(_TextField.TextField);
|
@@ -0,0 +1,127 @@
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
2
|
+
import type { ComponentProps } from 'react';
|
3
|
+
import type { StoryObj, Meta } from '@storybook/react';
|
4
|
+
import { action } from '@storybook/addon-actions';
|
5
|
+
|
6
|
+
import { WithTheme } from '../../../_helpers';
|
7
|
+
|
8
|
+
import { Mask } from './Mask';
|
9
|
+
|
10
|
+
const onChange = action('onChange');
|
11
|
+
|
12
|
+
const sizes = ['l', 'm', 's', 'xs'];
|
13
|
+
const views = ['default', 'positive', 'warning', 'negative'];
|
14
|
+
|
15
|
+
const meta: Meta<typeof Mask> = {
|
16
|
+
title: 'plasma_b2c/Mask',
|
17
|
+
component: Mask,
|
18
|
+
decorators: [WithTheme],
|
19
|
+
argTypes: {
|
20
|
+
view: {
|
21
|
+
options: views,
|
22
|
+
control: {
|
23
|
+
type: 'select',
|
24
|
+
},
|
25
|
+
},
|
26
|
+
size: {
|
27
|
+
options: sizes,
|
28
|
+
control: {
|
29
|
+
type: 'inline-radio',
|
30
|
+
},
|
31
|
+
},
|
32
|
+
},
|
33
|
+
};
|
34
|
+
|
35
|
+
export default meta;
|
36
|
+
|
37
|
+
type StoryPropsDefault = Omit<
|
38
|
+
ComponentProps<typeof Mask>,
|
39
|
+
| 'helperBlock'
|
40
|
+
| 'contentLeft'
|
41
|
+
| 'htmlSize'
|
42
|
+
| 'contentRight'
|
43
|
+
| 'type'
|
44
|
+
| 'name'
|
45
|
+
| 'onFocus'
|
46
|
+
| 'onBlur'
|
47
|
+
| 'onChange'
|
48
|
+
| 'value'
|
49
|
+
| 'checked'
|
50
|
+
| 'maxLength'
|
51
|
+
| 'minLength'
|
52
|
+
| 'required'
|
53
|
+
| 'enumerationType'
|
54
|
+
| 'chips'
|
55
|
+
| 'onChangeChips'
|
56
|
+
>;
|
57
|
+
|
58
|
+
const StoryDemo = ({ view, ...rest }: StoryPropsDefault) => {
|
59
|
+
return (
|
60
|
+
<div style={{ display: 'flex', flexDirection: 'column', gap: '2rem', width: '50%' }}>
|
61
|
+
<Mask
|
62
|
+
label="Маска телефона"
|
63
|
+
mask="+7 (000) 000 - 00 - 00"
|
64
|
+
maskChar="_"
|
65
|
+
showStartChars={false}
|
66
|
+
view={view}
|
67
|
+
onChange={onChange}
|
68
|
+
{...rest}
|
69
|
+
/>
|
70
|
+
|
71
|
+
<Mask
|
72
|
+
label="Маска телефона: отображается всегда"
|
73
|
+
mask="+7 (000) 000 - 00 - 00"
|
74
|
+
maskChar="_"
|
75
|
+
view={view}
|
76
|
+
alwaysShowMask
|
77
|
+
onChange={onChange}
|
78
|
+
{...rest}
|
79
|
+
value="+79123"
|
80
|
+
name="example"
|
81
|
+
/>
|
82
|
+
|
83
|
+
<Mask
|
84
|
+
label="Маска даты"
|
85
|
+
mask="00/00/0000"
|
86
|
+
maskString="DD/MM/YYYY"
|
87
|
+
alwaysShowMask
|
88
|
+
view={view}
|
89
|
+
onChange={onChange}
|
90
|
+
{...rest}
|
91
|
+
/>
|
92
|
+
|
93
|
+
<Mask
|
94
|
+
label="Маска даты: значения по умолчанию"
|
95
|
+
// eslint-disable-next-line no-octal-escape
|
96
|
+
mask="12.\04.0000"
|
97
|
+
maskChar="_"
|
98
|
+
alwaysShowMask
|
99
|
+
view={view}
|
100
|
+
onChange={onChange}
|
101
|
+
{...rest}
|
102
|
+
/>
|
103
|
+
|
104
|
+
<Mask
|
105
|
+
label="Маска времени"
|
106
|
+
mask="00:00"
|
107
|
+
maskChar="_"
|
108
|
+
alwaysShowMask
|
109
|
+
view={view}
|
110
|
+
onChange={onChange}
|
111
|
+
{...rest}
|
112
|
+
/>
|
113
|
+
</div>
|
114
|
+
);
|
115
|
+
};
|
116
|
+
|
117
|
+
export const Default: StoryObj<StoryPropsDefault> = {
|
118
|
+
args: {
|
119
|
+
size: 'l',
|
120
|
+
view: 'default',
|
121
|
+
labelPlacement: 'outer',
|
122
|
+
placeholder: 'Заполните поле',
|
123
|
+
disabled: false,
|
124
|
+
readOnly: false,
|
125
|
+
},
|
126
|
+
render: (args) => <StoryDemo {...args} />,
|
127
|
+
};
|
@@ -0,0 +1,9 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.Mask = void 0;
|
7
|
+
var _Mask = /*#__PURE__*/require("../../../../components/Mask");
|
8
|
+
var _TextField = /*#__PURE__*/require("../TextField/TextField");
|
9
|
+
var Mask = exports.Mask = /*#__PURE__*/(0, _Mask.composeMask)(_TextField.TextField);
|