@salutejs/plasma-new-hope 0.327.0-canary.2029.15774117371.0 → 0.327.0-canary.2031.15774276345.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/cjs/components/Autocomplete/Autocomplete.js.map +1 -1
- package/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/cjs/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/cjs/components/Checkbox/Checkbox.js +1 -2
- package/cjs/components/Checkbox/Checkbox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +2 -2
- package/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/cjs/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +3 -3
- package/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/cjs/components/Dropdown/Dropdown.js +2 -2
- package/cjs/components/Dropdown/Dropdown.js.map +1 -1
- package/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/cjs/components/Dropdown/FloatingPopover.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +2 -2
- package/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -3
- package/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/cjs/components/Radiobox/Radiobox.js +2 -3
- package/cjs/components/Radiobox/Radiobox.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -3
- package/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -2
- package/cjs/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/cjs/components/Select/FloatingPopover.js +2 -2
- package/cjs/components/Select/FloatingPopover.js.map +1 -1
- package/cjs/components/Select/Select.js +2 -2
- package/cjs/components/Select/Select.js.map +1 -1
- package/cjs/components/Select/ui/Inner/Inner.js +2 -2
- package/cjs/components/Select/ui/Inner/Inner.js.map +1 -1
- package/cjs/components/Spinner/Spinner.js +2 -2
- package/cjs/components/Spinner/Spinner.js.map +1 -1
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -3
- package/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -3
- package/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/cjs/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/cjs/components/TextField/TextField.js +3 -4
- package/cjs/components/TextField/TextField.js.map +1 -1
- package/cjs/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/emotion/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/emotion/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Checkbox/Checkbox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
- package/emotion/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
- package/emotion/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
- package/emotion/cjs/components/Dropdown/Dropdown.js +2 -1
- package/emotion/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/emotion/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/emotion/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
- package/emotion/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/cjs/components/Radiobox/Radiobox.js +2 -2
- package/emotion/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
- package/emotion/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/emotion/cjs/components/Select/FloatingPopover.js +5 -5
- package/emotion/cjs/components/Select/Select.js +2 -1
- package/emotion/cjs/components/Select/ui/Inner/Inner.js +2 -1
- package/emotion/cjs/components/Spinner/Spinner.js +2 -2
- package/emotion/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
- package/emotion/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
- package/emotion/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/cjs/components/TextField/TextField.js +4 -4
- package/emotion/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/Autocomplete/Autocomplete.js +1 -1
- package/emotion/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/emotion/es/components/Checkbox/Checkbox.js +1 -2
- package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/emotion/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/emotion/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/emotion/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/emotion/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/emotion/es/components/Dropdown/Dropdown.js +1 -1
- package/emotion/es/components/Dropdown/FloatingPopover.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/emotion/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
- package/emotion/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/emotion/es/components/Radiobox/Radiobox.js +2 -2
- package/emotion/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
- package/emotion/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/emotion/es/components/Select/FloatingPopover.js +1 -1
- package/emotion/es/components/Select/Select.js +2 -1
- package/emotion/es/components/Select/ui/Inner/Inner.js +2 -1
- package/emotion/es/components/Spinner/Spinner.js +1 -1
- package/emotion/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
- package/emotion/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
- package/emotion/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/emotion/es/components/TextField/TextField.js +3 -3
- package/emotion/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js +1 -1
- package/es/components/Autocomplete/Autocomplete.js.map +1 -1
- package/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/es/components/Autocomplete/FloatingPopover.js.map +1 -1
- package/es/components/Checkbox/Checkbox.js +1 -2
- package/es/components/Checkbox/Checkbox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/es/components/Combobox/ComboboxNew/FloatingPopover.js.map +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/es/components/Combobox/ComboboxOld/Combobox.js.map +1 -1
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +2 -2
- package/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js.map +1 -1
- package/es/components/Dropdown/Dropdown.js +1 -1
- package/es/components/Dropdown/Dropdown.js.map +1 -1
- package/es/components/Dropdown/FloatingPopover.js +1 -1
- package/es/components/Dropdown/FloatingPopover.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownDivider/DropdownDivider.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownFooter/DropdownFooter.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownGroup/DropdownGroup.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownHeader/DropdownHeader.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/es/components/Dropdown/ui/DropdownInner/DropdownInner.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -2
- package/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js.map +1 -1
- package/es/components/Dropdown/ui/DropdownOld/DropdownOld.js.map +1 -1
- package/es/components/Radiobox/Radiobox.js +2 -3
- package/es/components/Radiobox/Radiobox.js.map +1 -1
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -2
- package/es/components/Segment/ui/SegmentGroup/SegmentGroup.js.map +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js +1 -1
- package/es/components/Segment/ui/SegmentItem/SegmentItem.js.map +1 -1
- package/es/components/Select/FloatingPopover.js +1 -1
- package/es/components/Select/FloatingPopover.js.map +1 -1
- package/es/components/Select/Select.js +1 -1
- package/es/components/Select/Select.js.map +1 -1
- package/es/components/Select/ui/Inner/Inner.js +1 -1
- package/es/components/Select/ui/Inner/Inner.js.map +1 -1
- package/es/components/Spinner/Spinner.js +1 -1
- package/es/components/Spinner/Spinner.js.map +1 -1
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -2
- package/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js.map +1 -1
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -2
- package/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js.map +1 -1
- package/es/components/TextArea/ui/Hint/Hint.js.map +1 -1
- package/es/components/TextField/TextField.js +1 -2
- package/es/components/TextField/TextField.js.map +1 -1
- package/es/components/TextField/ui/Hint/Hint.js.map +1 -1
- package/package.json +2 -2
- package/styled-components/cjs/components/Autocomplete/Autocomplete.js +3 -3
- package/styled-components/cjs/components/Autocomplete/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Checkbox/Checkbox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxNew/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Combobox/ComboboxNew/ui/Inner/Inner.js +3 -2
- package/styled-components/cjs/components/Combobox/ComboboxOld/Combobox.js +1 -1
- package/styled-components/cjs/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +7 -6
- package/styled-components/cjs/components/Dropdown/Dropdown.js +2 -1
- package/styled-components/cjs/components/Dropdown/FloatingPopover.js +2 -2
- package/styled-components/cjs/components/Dropdown/ui/DropdownInner/DropdownInner.js +4 -4
- package/styled-components/cjs/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +3 -2
- package/styled-components/cjs/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/cjs/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/cjs/components/Segment/ui/SegmentGroup/SegmentGroup.js +3 -2
- package/styled-components/cjs/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/styled-components/cjs/components/Select/FloatingPopover.js +5 -5
- package/styled-components/cjs/components/Select/Select.js +2 -1
- package/styled-components/cjs/components/Select/ui/Inner/Inner.js +2 -1
- package/styled-components/cjs/components/Spinner/Spinner.js +2 -2
- package/styled-components/cjs/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +3 -2
- package/styled-components/cjs/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +3 -2
- package/styled-components/cjs/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/cjs/components/TextField/TextField.js +3 -3
- package/styled-components/cjs/components/TextField/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/Autocomplete/Autocomplete.js +1 -1
- package/styled-components/es/components/Autocomplete/FloatingPopover.js +1 -1
- package/styled-components/es/components/Checkbox/Checkbox.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxNew/FloatingPopover.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxNew/ui/Inner/Inner.js +1 -1
- package/styled-components/es/components/Combobox/ComboboxOld/Combobox.js +1 -2
- package/styled-components/es/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.js +1 -1
- package/styled-components/es/components/Dropdown/Dropdown.js +1 -1
- package/styled-components/es/components/Dropdown/FloatingPopover.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownInner/DropdownInner.js +1 -1
- package/styled-components/es/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.js +2 -1
- package/styled-components/es/components/Dropdown/ui/DropdownOld/DropdownOld.js +1 -1
- package/styled-components/es/components/Radiobox/Radiobox.js +2 -2
- package/styled-components/es/components/Segment/ui/SegmentGroup/SegmentGroup.js +2 -1
- package/styled-components/es/components/Segment/ui/SegmentItem/SegmentItem.js +2 -1
- package/styled-components/es/components/Select/FloatingPopover.js +1 -1
- package/styled-components/es/components/Select/Select.js +2 -1
- package/styled-components/es/components/Select/ui/Inner/Inner.js +2 -1
- package/styled-components/es/components/Spinner/Spinner.js +1 -1
- package/styled-components/es/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.js +2 -1
- package/styled-components/es/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.js +2 -1
- package/styled-components/es/components/TextArea/ui/Hint/Hint.js +1 -1
- package/styled-components/es/components/TextField/TextField.js +2 -2
- package/styled-components/es/components/TextField/ui/Hint/Hint.js +1 -1
- package/types/components/Checkbox/Checkbox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/Combobox.d.ts.map +1 -1
- package/types/components/Combobox/ComboboxOld/ui/ComboboxItem/ComboboxItem.d.ts.map +1 -1
- package/types/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownDivider/DropdownDivider.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownFooter/DropdownFooter.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownGroup/DropdownGroup.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownHeader/DropdownHeader.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownItemOld/DropdownItemOld.d.ts.map +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts +1 -1
- package/types/components/Dropdown/ui/DropdownOld/DropdownOld.d.ts.map +1 -1
- package/types/components/Radiobox/Radiobox.d.ts +2 -2
- package/types/components/Radiobox/Radiobox.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts +1 -1
- package/types/components/Segment/ui/SegmentGroup/SegmentGroup.d.ts.map +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts +1 -1
- package/types/components/Segment/ui/SegmentItem/SegmentItem.d.ts.map +1 -1
- package/types/components/Select/Select.d.ts.map +1 -1
- package/types/components/Select/ui/Inner/Inner.d.ts.map +1 -1
- package/types/components/Spinner/Spinner.d.ts +1 -1
- package/types/components/Spinner/Spinner.d.ts.map +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.d.ts.map +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts +1 -1
- package/types/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.d.ts.map +1 -1
- package/types/components/TextField/TextField.d.ts +1 -1
- package/types/components/TextField/TextField.d.ts.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HorizontalTabs.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useRef, KeyboardEvent, useLayoutEffect } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { cx, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { classes } from '../../../tokens';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { HorizontalTabsProps } from '../../../Tabs.types';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\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 pilledCSS } from './variations/_pilled/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { StyledArrow, StyledContent, StyledContentWrapper, base } from './HorizontalTabs.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nconst getIconSize = (size?: string) => {\n return size === 'h1' || size === 'h2' ? 'm' : 's';\n};\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const horizontalTabsRoot = (Root: RootProps<HTMLDivElement, HorizontalTabsProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabsProps>((props, outerRef) => {\n const {\n id,\n stretch = false,\n disabled = false,\n clip = 'scroll',\n size,\n view,\n children,\n pilled = false,\n index,\n className,\n hasDivider = true,\n ...rest\n } = props;\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const isFilled = view === 'filled'; // outer padding is only for filled view\n const pilledAttr = view !== 'clear' && pilled;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;\n const hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;\n const hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollLeft } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(\n refs.items.slice().reverse(),\n scrollLeft,\n rest.orientation,\n );\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: firstOverflowingTab.current.offsetLeft - parseInt(scrollElStyle.paddingLeft, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight, rest.orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n lastOverflowingTab.current.offsetLeft +\n lastOverflowingTab.current.offsetWidth -\n scrollRef.current.clientWidth +\n parseInt(scrollElStyle.paddingRight, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n ref={leftArrowRef}\n isLeftArrow\n >\n <IconDisclosureLeft size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onPrev, size, disabled, isFilled],\n );\n\n const NextButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n >\n <IconDisclosureRight size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onNext, size, disabled, isFilled],\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollLeft = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollLeft =\n event.currentTarget.scrollWidth -\n event.currentTarget.clientWidth -\n parseInt(scrollElStyle.paddingRight, 10);\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= minScrollLeft);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth);\n }, []);\n\n // Этот хук компенсирует появление левой стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth + parseInt(style.paddingLeft, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, leftArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n pilled={pilled}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(\n pilledClass,\n stretchClass,\n hasLeftArrowClass,\n hasRightArrowClass,\n noDividerClass,\n className,\n )}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const horizontalTabsConfig = {\n name: 'HorizontalTabs',\n tag: 'div',\n layout: horizontalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getIconSize","size","horizontalTabsRoot","Root","forwardRef","props","outerRef","id","_props$stretch","stretch","_props$disabled","disabled","_props$clip","clip","view","children","_props$pilled","pilled","index","className","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","isFilled","pilledAttr","pilledClass","classes","tabsPilled","undefined","noDividerClass","tabsNoDivider","stretchClass","tabsStretch","hasLeftArrowClass","tabsHasLeftArrow","hasRightArrowClass","tabsHasRightArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","leftArrowRef","onPrev","useCallback","current","scrollLeft","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","orientation","scrollElStyle","getComputedStyle","scrollTo","left","offsetLeft","parseInt","paddingLeft","onNext","scrollRight","Math","round","clientWidth","lastOverflowingTab","getLastOverflowingTab","offsetWidth","paddingRight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","isLeftArrow","IconDisclosureLeft","color","NextButton","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollLeft","maxScrollLeft","scrollWidth","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","right","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","horizontalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","stretchCSS","pilledCSS","defaults"],"mappings":";;;;;;;;;;;;;;;;;AAgBiG,IAE5FA,IAAI,0BAAJA,IAAI,EAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,KAAA,CAAA,GAAA,EAAA,CAAA,GAAA,KAAA,CAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAA,CAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAA,CAAA;AAAJA,EAAAA,IAAI,CAAJA,IAAI,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAA,CAAA;AAAA,EAAA,OAAJA,IAAI,CAAA;AAAA,CAAA,CAAJA,IAAI,IAAA,EAAA,CAAA,CAAA;AAOT,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAIC,IAAa,EAAK;EACnC,OAAOA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAK,IAAI,GAAG,GAAG,GAAG,GAAG,CAAA;AACrD,CAAC,CAAA;;AAED;IACaC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAIC,IAAoD,EAAA;AAAA,EAAA,oBACnFC,UAAU,CAAsC,UAACC,KAAK,EAAEC,QAAQ,EAAK;AACjE,IAAA,IACIC,EAAE,GAYFF,KAAK,CAZLE,EAAE;MAAAC,cAAA,GAYFH,KAAK,CAXLI,OAAO;AAAPA,MAAAA,OAAO,GAAAD,cAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,cAAA;MAAAE,eAAA,GAWfL,KAAK,CAVLM,QAAQ;AAARA,MAAAA,QAAQ,GAAAD,eAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,eAAA;MAAAE,WAAA,GAUhBP,KAAK,CATLQ,IAAI;AAAJA,MAAAA,IAAI,GAAAD,WAAA,KAAG,KAAA,CAAA,GAAA,QAAQ,GAAAA,WAAA;MACfX,IAAI,GAQJI,KAAK,CARLJ,IAAI;MACJa,IAAI,GAOJT,KAAK,CAPLS,IAAI;MACJC,QAAQ,GAMRV,KAAK,CANLU,QAAQ;MAAAC,aAAA,GAMRX,KAAK,CALLY,MAAM;AAANA,MAAAA,MAAM,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA;MACdE,KAAK,GAILb,KAAK,CAJLa,KAAK;MACLC,SAAS,GAGTd,KAAK,CAHLc,SAAS;MAAAC,iBAAA,GAGTf,KAAK,CAFLgB,UAAU;AAAVA,MAAAA,UAAU,GAAAD,iBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,iBAAA;AACdE,MAAAA,IAAI,GAAAC,wBAAA,CACPlB,KAAK,EAAAmB,SAAA,CAAA,CAAA;AACT,IAAA,IAAAC,SAAA,GAAgDC,QAAQ,CAAC,IAAI,CAAC;MAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAvDI,MAAAA,gBAAgB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,MAAAA,mBAAmB,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAC5C,IAAA,IAAAI,UAAA,GAA8CL,QAAQ,CAAC,KAAK,CAAC;MAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAtDE,MAAAA,eAAe,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;;AAE1C;AACA,IAAA,IAAAG,UAAA,GAA0ET,QAAQ,CAAC,KAAK,CAAC;MAAAU,UAAA,GAAAR,cAAA,CAAAO,UAAA,EAAA,CAAA,CAAA;AAAlFE,MAAAA,6BAA6B,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,MAAAA,gCAAgC,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;IAEtE,IAAMG,IAAI,GAAGC,OAAO,CAAC,YAAA;AAAA,MAAA,OAAM,IAAIC,WAAW,CAACvB,KAAK,CAAC,CAAA;AAAA,KAAA,EAAE,EAAE,CAAC,CAAA;AAEtD,IAAA,IAAMwB,MAAM,GAAGC,SAAS,EAAE,CAAA;AAC1B,IAAA,IAAMC,MAAM,GAAGrC,EAAE,IAAImC,MAAM,CAAA;AAE3B,IAAA,IAAMG,QAAQ,GAAG/B,IAAI,KAAK,QAAQ,CAAC;AACnC,IAAA,IAAMgC,UAAU,GAAGhC,IAAI,KAAK,OAAO,IAAIG,MAAM,CAAA;IAC7C,IAAM8B,WAAW,GAAGD,UAAU,GAAGE,OAAO,CAACC,UAAU,GAAGC,SAAS,CAAA;IAE/D,IAAMC,cAAc,GAAG,CAAC9B,UAAU,GAAG2B,OAAO,CAACI,aAAa,GAAGF,SAAS,CAAA;AACtE,IAAA,IAAMG,YAAY,GAAGxB,gBAAgB,IAAII,eAAe,IAAIxB,OAAO,GAAGuC,OAAO,CAACM,WAAW,GAAGJ,SAAS,CAAA;IACrG,IAAMK,iBAAiB,GAAG,CAAC1B,gBAAgB,GAAGmB,OAAO,CAACQ,gBAAgB,GAAGN,SAAS,CAAA;IAClF,IAAMO,kBAAkB,GAAG,CAACxB,eAAe,GAAGe,OAAO,CAACU,iBAAiB,GAAGR,SAAS,CAAA;IACnF,IAAMS,eAAe,GAAG9C,IAAI,KAAK,QAAQ,GAAGmC,OAAO,CAACY,cAAc,GAAGV,SAAS,CAAA;IAC9E,IAAMW,gBAAgB,GAAGhD,IAAI,KAAK,SAAS,GAAGmC,OAAO,CAACc,eAAe,GAAGZ,SAAS,CAAA;AAEjF,IAAA,IAAMa,SAAS,GAAGC,MAAM,CAAqB,IAAI,CAAC,CAAA;AAClD,IAAA,IAAMC,QAAQ,GAAGD,MAAM,CAAqB,IAAI,CAAC,CAAA;AACjD,IAAA,IAAME,YAAY,GAAGF,MAAM,CAA2B,IAAI,CAAC,CAAA;AAE3D,IAAA,IAAMG,MAAM,GAAGC,WAAW,CAAC,YAAM;AAC7B,MAAA,IAAIzD,QAAQ,IAAI,CAACoD,SAAS,CAACM,OAAO,EAAE;AAChC,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAQC,UAAU,GAAKP,SAAS,CAACM,OAAO,CAAhCC,UAAU,CAAA;MAClB,IAAMC,mBAAmB,GAAGC,sBAAsB,CAC9CjC,IAAI,CAACkC,KAAK,CAACC,KAAK,EAAE,CAACC,OAAO,EAAE,EAC5BL,UAAU,EACVhD,IAAI,CAACsD,WACT,CAAC,CAAA;MAED,IAAI,EAACL,mBAAmB,KAAnBA,IAAAA,IAAAA,mBAAmB,eAAnBA,mBAAmB,CAAEF,OAAO,CAAE,EAAA;AAC/B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMQ,aAAa,GAAGC,gBAAgB,CAACf,SAAS,CAACM,OAAO,CAAC,CAAA;AACzDN,MAAAA,SAAS,CAACM,OAAO,CAACU,QAAQ,CAAC;AACvBC,QAAAA,IAAI,EAAET,mBAAmB,CAACF,OAAO,CAACY,UAAU,GAAGC,QAAQ,CAACL,aAAa,CAACM,WAAW,EAAE,EAAE,CAAA;AACzF,OAAC,CAAC,CAAA;KACL,EAAE,CAACxE,QAAQ,EAAEoD,SAAS,EAAExB,IAAI,CAAC,CAAC,CAAA;AAE/B,IAAA,IAAM6C,MAAM,GAAGhB,WAAW,CAAC,YAAM;AAC7B,MAAA,IAAIzD,QAAQ,IAAI,CAACoD,SAAS,CAACM,OAAO,EAAE;AAChC,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAMgB,WAAW,GAAGC,IAAI,CAACC,KAAK,CAACxB,SAAS,CAACM,OAAO,CAACC,UAAU,GAAGP,SAAS,CAACM,OAAO,CAACmB,WAAW,CAAC,CAAA;AAC5F,MAAA,IAAMC,kBAAkB,GAAGC,qBAAqB,CAACnD,IAAI,CAACkC,KAAK,EAAEY,WAAW,EAAE/D,IAAI,CAACsD,WAAW,CAAC,CAAA;MAE3F,IAAI,EAACa,kBAAkB,KAAlBA,IAAAA,IAAAA,kBAAkB,eAAlBA,kBAAkB,CAAEpB,OAAO,CAAE,EAAA;AAC9B,QAAA,OAAA;AACJ,OAAA;AAEA,MAAA,IAAIxC,gBAAgB,EAAE;QAClBS,gCAAgC,CAAC,IAAI,CAAC,CAAA;AAC1C,OAAA;AAEA,MAAA,IAAMuC,aAAa,GAAGC,gBAAgB,CAACf,SAAS,CAACM,OAAO,CAAC,CAAA;AACzDN,MAAAA,SAAS,CAACM,OAAO,CAACU,QAAQ,CAAC;AACvBC,QAAAA,IAAI,EAAEM,IAAI,CAACC,KAAK,CACZE,kBAAkB,CAACpB,OAAO,CAACY,UAAU,GACjCQ,kBAAkB,CAACpB,OAAO,CAACsB,WAAW,GACtC5B,SAAS,CAACM,OAAO,CAACmB,WAAW,GAC7BN,QAAQ,CAACL,aAAa,CAACe,YAAY,EAAE,EAAE,CAC/C,CAAA;AACJ,OAAC,CAAC,CAAA;KACL,EAAE,CAAC/D,gBAAgB,EAAElB,QAAQ,EAAEoD,SAAS,EAAExB,IAAI,CAAC,CAAC,CAAA;IAEjD,IAAMsD,cAAc,GAAGrD,OAAO,CAC1B,YAAA;AAAA,MAAA,oBACIsD,KAAA,CAAAC,aAAA,CAACC,WAAW,EAAA;AACRC,QAAAA,IAAI,EAAC,QAAQ;AACb,QAAA,YAAA,EAAW,iFAAgB;AAC3BC,QAAAA,OAAO,EAAE/B,MAAO;AAChBgC,QAAAA,QAAQ,EAAExF,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;AAC5BA,QAAAA,QAAQ,EAAEA,QAAS;AACnBkC,QAAAA,QAAQ,EAAEA,QAAS;AACnBuD,QAAAA,GAAG,EAAElC,YAAa;QAClBmC,WAAW,EAAA,IAAA;AAAA,OAAA,eAEXP,KAAA,CAAAC,aAAA,CAACO,kBAAkB,EAAA;AAACrG,QAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AAACsG,QAAAA,KAAK,EAAC,SAAA;AAAS,OAAE,CACrD,CAAC,CAAA;KACjB,EACD,CAACpC,MAAM,EAAElE,IAAI,EAAEU,QAAQ,EAAEkC,QAAQ,CACrC,CAAC,CAAA;IAED,IAAM2D,UAAU,GAAGhE,OAAO,CACtB,YAAA;AAAA,MAAA,oBACIsD,KAAA,CAAAC,aAAA,CAACC,WAAW,EAAA;AACRC,QAAAA,IAAI,EAAC,QAAQ;AACb,QAAA,YAAA,EAAW,2EAAe;AAC1BC,QAAAA,OAAO,EAAEd,MAAO;AAChBe,QAAAA,QAAQ,EAAExF,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAE;AAC5BA,QAAAA,QAAQ,EAAEA,QAAS;AACnBkC,QAAAA,QAAQ,EAAEA,QAAAA;AAAS,OAAA,eAEnBiD,KAAA,CAAAC,aAAA,CAACU,mBAAmB,EAAA;AAACxG,QAAAA,IAAI,EAAED,WAAW,CAACC,IAAI,CAAE;AAACsG,QAAAA,KAAK,EAAC,SAAA;AAAS,OAAE,CACtD,CAAC,CAAA;KACjB,EACD,CAACnB,MAAM,EAAEnF,IAAI,EAAEU,QAAQ,EAAEkC,QAAQ,CACrC,CAAC,CAAA;AAED,IAAA,IAAM6D,YAAY,GAAGtC,WAAW,CAC5B,UAACuC,KAAiC,EAAW;MACzCA,KAAK,CAACC,eAAe,EAAE,CAAA;AACvB,MAAA,IAAM/B,aAAa,GAAGC,gBAAgB,CAAC6B,KAAK,CAACE,aAAa,CAAC,CAAA;MAC3D,IAAMC,aAAa,GAAG5B,QAAQ,CAACL,aAAa,CAACM,WAAW,EAAE,EAAE,CAAC,CAAA;MAC7D,IAAM4B,aAAa,GACfJ,KAAK,CAACE,aAAa,CAACG,WAAW,GAC/BL,KAAK,CAACE,aAAa,CAACrB,WAAW,GAC/BN,QAAQ,CAACL,aAAa,CAACe,YAAY,EAAE,EAAE,CAAC,CAAA;MAC5C,IAAMtB,UAAU,GAAGgB,IAAI,CAACC,KAAK,CAACoB,KAAK,CAACE,aAAa,CAACvC,UAAU,CAAC,CAAA;AAE7DxC,MAAAA,mBAAmB,CAACwC,UAAU,IAAIwC,aAAa,CAAC,CAAA;AAChD5E,MAAAA,kBAAkB,CAACoC,UAAU,IAAIyC,aAAa,CAAC,CAAA;AACnD,KAAC,EACD,CAACjF,mBAAmB,EAAEI,kBAAkB,CAC5C,CAAC,CAAA;AAED,IAAA,IAAM+E,SAAS,GAAG7C,WAAW,CACzB,UAACuC,KAAoC,EAAK;MACtC,IAAIzF,KAAK,KAAKgC,SAAS,EAAE;AACrB,QAAA,OAAA;AACJ,OAAA;MAEA,IAAMgE,QAAQ,GAAG,CAAC,CAAA;MAClB,IAAMC,QAAQ,GAAG5E,IAAI,CAACkC,KAAK,CAAC2C,MAAM,GAAG,CAAC,CAAA;AACtC,MAAA,IAAIC,SAAiB,CAAA;MAErB,QAAQV,KAAK,CAACW,OAAO;QACjB,KAAKvH,IAAI,CAACwH,GAAG;AACTF,UAAAA,SAAS,GAAGF,QAAQ,CAAA;AACpB,UAAA,MAAA;QACJ,KAAKpH,IAAI,CAACiF,IAAI;UACVqC,SAAS,GAAGnG,KAAK,GAAGgG,QAAQ,GAAGhG,KAAK,GAAG,CAAC,GAAGA,KAAK,CAAA;AAChD,UAAA,MAAA;QACJ,KAAKnB,IAAI,CAACyH,KAAK;UACXH,SAAS,GAAGnG,KAAK,GAAGiG,QAAQ,GAAGjG,KAAK,GAAG,CAAC,GAAGA,KAAK,CAAA;AAChD,UAAA,MAAA;QACJ,KAAKnB,IAAI,CAAC0H,IAAI;AACVJ,UAAAA,SAAS,GAAGH,QAAQ,CAAA;AACpB,UAAA,MAAA;AACJ,QAAA;AACI,UAAA,OAAA;AACR,OAAA;MAEA,IAAIG,SAAS,KAAKnG,KAAK,EAAE;QAAA,IAAAwG,qBAAA,EAAAC,sBAAA,CAAA;QACrBhB,KAAK,CAACiB,cAAc,EAAE,CAAA;AACtB,QAAA,CAAAF,qBAAA,GAAAnF,IAAI,CAACkC,KAAK,CAAC4C,SAAS,CAAC,CAAChD,OAAO,cAAAqD,qBAAA,KAAA,KAAA,CAAA,IAA7BA,qBAAA,CAA+BG,KAAK,EAAE,CAAA;AACtC,QAAA,CAAAF,sBAAA,GAAApF,IAAI,CAACkC,KAAK,CAAC4C,SAAS,CAAC,CAAChD,OAAO,cAAAsD,sBAAA,KAAA,KAAA,CAAA,IAA7BA,sBAAA,CAA+BG,cAAc,CAAC;AAC1CC,UAAAA,KAAK,EAAE,SAAS;AAChBC,UAAAA,MAAM,EAAE,QAAQ;AAChBC,UAAAA,QAAQ,EAAE,QAAA;AACd,SAAC,CAAC,CAAA;AACN,OAAA;AACJ,KAAC,EACD,CAAC/G,KAAK,CACV,CAAC,CAAA;AAEDgH,IAAAA,eAAe,CAAC,YAAM;MAAA,IAAAC,kBAAA,EAAAC,mBAAA,CAAA;MAClBlG,kBAAkB,CAAC,CAAAiG,CAAAA,kBAAA,GAAApE,SAAS,CAACM,OAAO,MAAA,IAAA,IAAA8D,kBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAjBA,kBAAA,CAAmBnB,WAAW,OAAAoB,CAAAA,mBAAA,GAAKrE,SAAS,CAACM,OAAO,MAAA+D,IAAAA,IAAAA,mBAAA,KAAjBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,mBAAA,CAAmB5C,WAAW,CAAC,CAAA,CAAA;KACxF,EAAE,EAAE,CAAC,CAAA;;AAEN;AACA0C,IAAAA,eAAe,CAAC,YAAM;AAClB,MAAA,IAAIrG,gBAAgB,IAAI,CAACQ,6BAA6B,IAAI,CAAC0B,SAAS,CAACM,OAAO,IAAI,CAACH,YAAY,CAACG,OAAO,EAAE;AACnG,QAAA,OAAA;AACJ,OAAA;AACA,MAAA,IAAMgE,KAAK,GAAGvD,gBAAgB,CAACf,SAAS,CAACM,OAAO,CAAC,CAAA;AACjDN,MAAAA,SAAS,CAACM,OAAO,CAACU,QAAQ,CAAC;QACvBC,IAAI,EAAEM,IAAI,CAACC,KAAK,CACZxB,SAAS,CAACM,OAAO,CAACC,UAAU,GAAGJ,YAAY,CAACG,OAAO,CAACmB,WAAW,GAAGN,QAAQ,CAACmD,KAAK,CAAClD,WAAW,EAAE,EAAE,CACpG,CAAA;AACJ,OAAC,CAAC,CAAA;MACF7C,gCAAgC,CAAC,KAAK,CAAC,CAAA;KAC1C,EAAE,CAACT,gBAAgB,EAAEQ,6BAA6B,EAAE0B,SAAS,EAAEG,YAAY,CAAC,CAAC,CAAA;AAE9E,IAAA,oBACI4B,KAAA,CAAAC,aAAA,CAACuC,WAAW,CAACC,QAAQ,EAAA;AAACC,MAAAA,KAAK,EAAEjG,IAAAA;AAAK,KAAA,eAC9BuD,KAAA,CAAAC,aAAA,CAAC5F,IAAI,EAAAsI,QAAA,CAAA;AACD3H,MAAAA,IAAI,EAAEA,IAAK;AACX4H,MAAAA,IAAI,EAAC,SAAA;AACL;AAAA;AACAzI,MAAAA,IAAI,EAAEA,IAAY;AAClBgB,MAAAA,MAAM,EAAEA,MAAO;AACfV,MAAAA,EAAE,EAAEqC,MAAO;AACXwD,MAAAA,GAAG,EAAE9F,QAAS;AACdK,MAAAA,QAAQ,EAAEA,QAAS;AACnBQ,MAAAA,SAAS,EAAEwH,EAAE,CACT5F,WAAW,EACXM,YAAY,EACZE,iBAAiB,EACjBE,kBAAkB,EAClBN,cAAc,EACdhC,SACJ,CAAE;AACF8F,MAAAA,SAAS,EAAEA,SAAAA;KACP3F,EAAAA,IAAI,CAEP,EAAA,CAACO,gBAAgB,IAAIgE,cAAc,eACpCC,KAAA,CAAAC,aAAA,CAAC6C,oBAAoB,EAAA;AACjBzH,MAAAA,SAAS,EAAEwH,EAAE,CAAChF,eAAe,EAAEE,gBAAgB,CAAE;AACjDuC,MAAAA,GAAG,EAAErC,SAAqD;AAC1D8E,MAAAA,QAAQ,EAAEnC,YAAAA;AAAa,KAAA,eAEvBZ,KAAA,CAAAC,aAAA,CAAC+C,aAAa,EAAA;AAAC1C,MAAAA,GAAG,EAAEnC,QAAAA;KACflD,EAAAA,QACU,CACG,CAAC,EACtB,CAACkB,eAAe,IAAIuE,UACnB,CACY,CAAC,CAAA;AAE/B,GAAC,CAAC,CAAA;AAAA,EAAA;AAEC,IAAMuC,oBAAoB,GAAG;AAChCC,EAAAA,IAAI,EAAE,gBAAgB;AACtBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,MAAM,EAAEhJ,kBAAkB;AAC1BiJ,EAAAA,IAAI,EAAJA,IAAI;AACJC,EAAAA,UAAU,EAAE;AACRnJ,IAAAA,IAAI,EAAE;AACFoJ,MAAAA,GAAG,EAAEC,MAAAA;KACR;AACDxI,IAAAA,IAAI,EAAE;AACFuI,MAAAA,GAAG,EAAEE,MAAAA;KACR;AACD5I,IAAAA,QAAQ,EAAE;AACN0I,MAAAA,GAAG,EAAEG,MAAW;AAChBC,MAAAA,KAAK,EAAE,IAAA;KACV;AACDhJ,IAAAA,OAAO,EAAE;AACL4I,MAAAA,GAAG,EAAEK,MAAU;AACfD,MAAAA,KAAK,EAAE,IAAA;KACV;AACDxI,IAAAA,MAAM,EAAE;AACJoI,MAAAA,GAAG,EAAEM,MAAAA;AACT,KAAA;GACH;AACDC,EAAAA,QAAQ,EAAE;AACN9I,IAAAA,IAAI,EAAE,OAAO;AACbb,IAAAA,IAAI,EAAE,IAAA;AACV,GAAA;AACJ;;;;"}
|
1
|
+
{"version":3,"file":"HorizontalTabs.js","sources":["../../../../../../src/components/Tabs/ui/horizontal/HorizontalTabs/HorizontalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useRef, KeyboardEvent, useLayoutEffect } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines/types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { HorizontalTabsProps } from '../../../Tabs.types';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\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 pilledCSS } from './variations/_pilled/base';\nimport { base as stretchCSS } from './variations/_stretch/base';\nimport { StyledArrow, StyledContent, StyledContentWrapper, base } from './HorizontalTabs.styles';\n\nenum Keys {\n end = 35,\n home = 36,\n left = 37,\n right = 39,\n}\n\nconst getIconSize = (size?: string) => {\n return size === 'h1' || size === 'h2' ? 'm' : 's';\n};\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const horizontalTabsRoot = (Root: RootProps<HTMLDivElement, HorizontalTabsProps>) =>\n forwardRef<HTMLDivElement, HorizontalTabsProps>((props, outerRef) => {\n const {\n id,\n stretch = false,\n disabled = false,\n clip = 'scroll',\n size,\n view,\n children,\n pilled = false,\n index,\n className,\n hasDivider = true,\n ...rest\n } = props;\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const isFilled = view === 'filled'; // outer padding is only for filled view\n const pilledAttr = view !== 'clear' && pilled;\n const pilledClass = pilledAttr ? classes.tabsPilled : undefined;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const stretchClass = firstItemVisible && lastItemVisible && stretch ? classes.tabsStretch : undefined;\n const hasLeftArrowClass = !firstItemVisible ? classes.tabsHasLeftArrow : undefined;\n const hasRightArrowClass = !lastItemVisible ? classes.tabsHasRightArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const leftArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollLeft } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(\n refs.items.slice().reverse(),\n scrollLeft,\n rest.orientation,\n );\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: firstOverflowingTab.current.offsetLeft - parseInt(scrollElStyle.paddingLeft, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollRight = Math.round(scrollRef.current.scrollLeft + scrollRef.current.clientWidth);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollRight, rest.orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n lastOverflowingTab.current.offsetLeft +\n lastOverflowingTab.current.offsetWidth -\n scrollRef.current.clientWidth +\n parseInt(scrollElStyle.paddingRight, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n ref={leftArrowRef}\n isLeftArrow\n >\n <IconDisclosureLeft size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onPrev, size, disabled, isFilled],\n );\n\n const NextButton = useMemo(\n () => (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n isFilled={isFilled}\n >\n <IconDisclosureRight size={getIconSize(size)} color=\"inherit\" />\n </StyledArrow>\n ),\n [onNext, size, disabled, isFilled],\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollLeft = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollLeft =\n event.currentTarget.scrollWidth -\n event.currentTarget.clientWidth -\n parseInt(scrollElStyle.paddingRight, 10);\n const scrollLeft = Math.round(event.currentTarget.scrollLeft);\n\n setFirstItemVisible(scrollLeft <= minScrollLeft);\n setLastItemVisible(scrollLeft >= maxScrollLeft);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.left:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.right:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollWidth === scrollRef.current?.clientWidth);\n }, []);\n\n // Этот хук компенсирует появление левой стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !leftArrowRef.current) {\n return;\n }\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n left: Math.round(\n scrollRef.current.scrollLeft + leftArrowRef.current.clientWidth + parseInt(style.paddingLeft, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, leftArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n // TODO: убрать каст any, когда будут удалены deprecated props\n size={size as any}\n pilled={pilled}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(\n pilledClass,\n stretchClass,\n hasLeftArrowClass,\n hasRightArrowClass,\n noDividerClass,\n className,\n )}\n onKeyDown={onKeyDown}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const horizontalTabsConfig = {\n name: 'HorizontalTabs',\n tag: 'div',\n layout: horizontalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n stretch: {\n css: stretchCSS,\n attrs: true,\n },\n pilled: {\n css: pilledCSS,\n },\n },\n defaults: {\n view: 'clear',\n size: 'xs',\n },\n};\n"],"names":["Keys","getIconSize","size","horizontalTabsRoot","Root","forwardRef","props","outerRef","id","_props$stretch","stretch","_props$disabled","disabled","_props$clip","clip","view","children","_props$pilled","pilled","index","className","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","isFilled","pilledAttr","pilledClass","classes","tabsPilled","undefined","noDividerClass","tabsNoDivider","stretchClass","tabsStretch","hasLeftArrowClass","tabsHasLeftArrow","hasRightArrowClass","tabsHasRightArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","leftArrowRef","onPrev","useCallback","current","scrollLeft","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","orientation","scrollElStyle","getComputedStyle","scrollTo","left","offsetLeft","parseInt","paddingLeft","onNext","scrollRight","Math","round","clientWidth","lastOverflowingTab","getLastOverflowingTab","offsetWidth","paddingRight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","isLeftArrow","IconDisclosureLeft","color","NextButton","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollLeft","maxScrollLeft","scrollWidth","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","right","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","horizontalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","stretchCSS","pilledCSS","defaults"],"mappings":"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"}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../../../../_virtual/_rollupPluginBabelHelpers.js';
|
2
2
|
import React, { forwardRef, useState, useMemo, useRef, useCallback, useLayoutEffect } from 'react';
|
3
|
-
import {
|
3
|
+
import { safeUseId } from '@salutejs/plasma-core';
|
4
4
|
import { classes } from '../../../tokens.js';
|
5
|
+
import { cx } from '../../../../../utils/index.js';
|
5
6
|
import { TabItemRefs, TabsContext } from '../../../TabsContext.js';
|
6
7
|
import { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils/index.js';
|
7
8
|
import { StyledContentWrapper, StyledContent, base, StyledArrow } from './VerticalTabs.styles.js';
|
8
9
|
import { base as base$1 } from './variations/_size/base.js';
|
9
10
|
import { base as base$2 } from './variations/_view/base.js';
|
10
11
|
import { base as base$3 } from './variations/_disabled/base.js';
|
11
|
-
import { safeUseId } from '../../../../../utils/react.js';
|
12
12
|
import { IconDisclosureLeft } from '../../../../_Icon/Icons/IconDisclosureLeft.js';
|
13
13
|
import { IconDisclosureRight } from '../../../../_Icon/Icons/IconDisclosureRight.js';
|
14
14
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VerticalTabs.js","sources":["../../../../../../src/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useLayoutEffect, useRef, KeyboardEvent } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { cx, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines/types';\n\nimport { classes } from '../../../tokens';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { VerticalTabsProps } from '../../../Tabs.types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base, StyledArrow, StyledContent, StyledContentWrapper } from './VerticalTabs.styles';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\n\nenum Keys {\n end = 35,\n home = 36,\n up = 38,\n down = 40,\n}\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const verticalTabsRoot = (Root: RootProps<HTMLDivElement, VerticalTabsProps>) =>\n forwardRef<HTMLDivElement, VerticalTabsProps>((props, outerRef) => {\n const {\n id,\n disabled = false,\n clip = 'showAll',\n size,\n view,\n children,\n index,\n className,\n orientation,\n hasDivider = true,\n ...rest\n } = props;\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const hasTopArrowClass = !firstItemVisible ? classes.tabsHasTopArrow : undefined;\n const hasBottomArrowClass = !lastItemVisible ? classes.tabsHasBottomArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const upArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollTop } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollTop, orientation);\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: firstOverflowingTab.current.offsetTop - parseInt(scrollElStyle.paddingTop, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollBottom = Math.round(scrollRef.current.scrollTop + scrollRef.current.clientHeight);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollBottom, orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n lastOverflowingTab.current.offsetTop +\n lastOverflowingTab.current.offsetHeight -\n scrollRef.current.clientHeight +\n parseInt(scrollElStyle.paddingTop, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n ref={upArrowRef}\n >\n <IconDisclosureLeft color=\"inherit\" />\n </StyledArrow>\n );\n\n const NextButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n <IconDisclosureRight color=\"inherit\" />\n </StyledArrow>\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollTop = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollTop =\n event.currentTarget.scrollHeight -\n event.currentTarget.clientHeight -\n parseInt(scrollElStyle.paddingTop, 10);\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= minScrollTop);\n setLastItemVisible(scrollTop >= maxScrollTop);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.up:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.down:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight);\n }, []);\n\n // Этот хук компенсирует появление верхней стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !upArrowRef.current) {\n return;\n }\n\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n scrollRef.current.scrollTop + upArrowRef.current.clientHeight + parseInt(style.paddingTop, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, upArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n size={size}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(hasTopArrowClass, hasBottomArrowClass, noDividerClass, className)}\n onKeyDown={onKeyDown}\n orientation={orientation}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const verticalTabsConfig = {\n name: 'VerticalTabs',\n tag: 'div',\n layout: verticalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'divider',\n size: 'xs',\n },\n};\n"],"names":["Keys","verticalTabsRoot","Root","forwardRef","props","outerRef","id","_props$disabled","disabled","_props$clip","clip","size","view","children","index","className","orientation","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","noDividerClass","classes","tabsNoDivider","undefined","hasTopArrowClass","tabsHasTopArrow","hasBottomArrowClass","tabsHasBottomArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","upArrowRef","onPrev","useCallback","current","scrollTop","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","scrollElStyle","getComputedStyle","scrollTo","top","offsetTop","parseInt","paddingTop","onNext","scrollBottom","Math","round","clientHeight","lastOverflowingTab","getLastOverflowingTab","offsetHeight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","_IconDisclosureLeft","IconDisclosureLeft","color","NextButton","_IconDisclosureRight","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollTop","paddingLeft","maxScrollTop","scrollHeight","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","up","down","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","verticalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"VerticalTabs.js","sources":["../../../../../../src/components/Tabs/ui/vertical/VerticalTabs/VerticalTabs.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useMemo, useState, useLayoutEffect, useRef, KeyboardEvent } from 'react';\nimport type { MutableRefObject } from 'react';\nimport { safeUseId } from '@salutejs/plasma-core';\n\nimport type { RootProps } from '../../../../../engines/types';\nimport { classes } from '../../../tokens';\nimport { cx } from '../../../../../utils';\nimport { TabItemRefs, TabsContext } from '../../../TabsContext';\nimport type { VerticalTabsProps } from '../../../Tabs.types';\nimport { IconDisclosureLeft, IconDisclosureRight } from '../../../../_Icon';\nimport { getFirstOverflowingTab, getLastOverflowingTab } from '../../../utils';\n\nimport { base, StyledArrow, StyledContent, StyledContentWrapper } from './VerticalTabs.styles';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\n\nenum Keys {\n end = 35,\n home = 36,\n up = 38,\n down = 40,\n}\n\n// TODO: https://github.com/salute-developers/plasma/issues/1474\nexport const verticalTabsRoot = (Root: RootProps<HTMLDivElement, VerticalTabsProps>) =>\n forwardRef<HTMLDivElement, VerticalTabsProps>((props, outerRef) => {\n const {\n id,\n disabled = false,\n clip = 'showAll',\n size,\n view,\n children,\n index,\n className,\n orientation,\n hasDivider = true,\n ...rest\n } = props;\n\n const [firstItemVisible, setFirstItemVisible] = useState(true);\n const [lastItemVisible, setLastItemVisible] = useState(false);\n\n // Триггер доп. скролла при появлении левой стрелки, которая отъедает ширину scroll-контейнера\n const [shouldTriggerAdditionalScroll, setShouldTriggerAdditionalScroll] = useState(false);\n\n const refs = useMemo(() => new TabItemRefs(index), []);\n\n const uniqId = safeUseId();\n const tabsId = id || uniqId;\n\n const noDividerClass = !hasDivider ? classes.tabsNoDivider : undefined;\n const hasTopArrowClass = !firstItemVisible ? classes.tabsHasTopArrow : undefined;\n const hasBottomArrowClass = !lastItemVisible ? classes.tabsHasBottomArrow : undefined;\n const clipScrollClass = clip === 'scroll' ? classes.tabsClipScroll : undefined;\n const clipShowAllClass = clip === 'showAll' ? classes.tabsClipShowAll : undefined;\n\n const scrollRef = useRef<HTMLElement | null>(null);\n const trackRef = useRef<HTMLElement | null>(null);\n const upArrowRef = useRef<HTMLButtonElement | null>(null);\n\n const onPrev = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const { scrollTop } = scrollRef.current;\n const firstOverflowingTab = getFirstOverflowingTab(refs.items.slice().reverse(), scrollTop, orientation);\n\n if (!firstOverflowingTab?.current) {\n return;\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: firstOverflowingTab.current.offsetTop - parseInt(scrollElStyle.paddingTop, 10),\n });\n }, [disabled, scrollRef, refs]);\n\n const onNext = useCallback(() => {\n if (disabled || !scrollRef.current) {\n return;\n }\n\n const scrollBottom = Math.round(scrollRef.current.scrollTop + scrollRef.current.clientHeight);\n const lastOverflowingTab = getLastOverflowingTab(refs.items, scrollBottom, orientation);\n\n if (!lastOverflowingTab?.current) {\n return;\n }\n\n if (firstItemVisible) {\n setShouldTriggerAdditionalScroll(true);\n }\n\n const scrollElStyle = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n lastOverflowingTab.current.offsetTop +\n lastOverflowingTab.current.offsetHeight -\n scrollRef.current.clientHeight +\n parseInt(scrollElStyle.paddingTop, 10),\n ),\n });\n }, [firstItemVisible, disabled, scrollRef, refs]);\n\n const PreviousButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Предыдущий таб\"\n onClick={onPrev}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n ref={upArrowRef}\n >\n <IconDisclosureLeft color=\"inherit\" />\n </StyledArrow>\n );\n\n const NextButton = (\n <StyledArrow\n type=\"button\"\n aria-label=\"Следующий таб\"\n onClick={onNext}\n tabIndex={disabled ? -1 : 0}\n disabled={disabled}\n >\n <IconDisclosureRight color=\"inherit\" />\n </StyledArrow>\n );\n\n const handleScroll = useCallback(\n (event: React.UIEvent<HTMLElement>): void => {\n event.stopPropagation();\n const scrollElStyle = getComputedStyle(event.currentTarget);\n const minScrollTop = parseInt(scrollElStyle.paddingLeft, 10);\n const maxScrollTop =\n event.currentTarget.scrollHeight -\n event.currentTarget.clientHeight -\n parseInt(scrollElStyle.paddingTop, 10);\n const scrollTop = Math.round(event.currentTarget.scrollTop);\n\n setFirstItemVisible(scrollTop <= minScrollTop);\n setLastItemVisible(scrollTop >= maxScrollTop);\n },\n [setFirstItemVisible, setLastItemVisible],\n );\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (index === undefined) {\n return;\n }\n\n const minIndex = 0;\n const maxIndex = refs.items.length - 1;\n let nextIndex: number;\n\n switch (event.keyCode) {\n case Keys.end:\n nextIndex = maxIndex;\n break;\n case Keys.up:\n nextIndex = index > minIndex ? index - 1 : index;\n break;\n case Keys.down:\n nextIndex = index < maxIndex ? index + 1 : index;\n break;\n case Keys.home:\n nextIndex = minIndex;\n break;\n default:\n return;\n }\n\n if (nextIndex !== index) {\n event.preventDefault();\n refs.items[nextIndex].current?.focus();\n refs.items[nextIndex].current?.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n },\n [index],\n );\n\n useLayoutEffect(() => {\n setLastItemVisible(scrollRef.current?.scrollHeight === scrollRef.current?.clientHeight);\n }, []);\n\n // Этот хук компенсирует появление верхней стрелки при прокрутке\n useLayoutEffect(() => {\n if (firstItemVisible || !shouldTriggerAdditionalScroll || !scrollRef.current || !upArrowRef.current) {\n return;\n }\n\n const style = getComputedStyle(scrollRef.current);\n scrollRef.current.scrollTo({\n top: Math.round(\n scrollRef.current.scrollTop + upArrowRef.current.clientHeight + parseInt(style.paddingTop, 10),\n ),\n });\n setShouldTriggerAdditionalScroll(false);\n }, [firstItemVisible, shouldTriggerAdditionalScroll, scrollRef, upArrowRef]);\n\n return (\n <TabsContext.Provider value={refs}>\n <Root\n view={view}\n role=\"tablist\"\n size={size}\n id={tabsId}\n ref={outerRef}\n disabled={disabled}\n className={cx(hasTopArrowClass, hasBottomArrowClass, noDividerClass, className)}\n onKeyDown={onKeyDown}\n orientation={orientation}\n {...rest}\n >\n {!firstItemVisible && PreviousButton}\n <StyledContentWrapper\n className={cx(clipScrollClass, clipShowAllClass)}\n ref={scrollRef as MutableRefObject<HTMLDivElement | null>}\n onScroll={handleScroll}\n >\n <StyledContent ref={trackRef as MutableRefObject<HTMLDivElement | null>}>\n {children}\n </StyledContent>\n </StyledContentWrapper>\n {!lastItemVisible && NextButton}\n </Root>\n </TabsContext.Provider>\n );\n });\n\nexport const verticalTabsConfig = {\n name: 'VerticalTabs',\n tag: 'div',\n layout: verticalTabsRoot,\n base,\n variations: {\n size: {\n css: sizeCSS,\n },\n view: {\n css: viewCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n },\n defaults: {\n view: 'divider',\n size: 'xs',\n },\n};\n"],"names":["Keys","verticalTabsRoot","Root","forwardRef","props","outerRef","id","_props$disabled","disabled","_props$clip","clip","size","view","children","index","className","orientation","_props$hasDivider","hasDivider","rest","_objectWithoutProperties","_excluded","_useState","useState","_useState2","_slicedToArray","firstItemVisible","setFirstItemVisible","_useState3","_useState4","lastItemVisible","setLastItemVisible","_useState5","_useState6","shouldTriggerAdditionalScroll","setShouldTriggerAdditionalScroll","refs","useMemo","TabItemRefs","uniqId","safeUseId","tabsId","noDividerClass","classes","tabsNoDivider","undefined","hasTopArrowClass","tabsHasTopArrow","hasBottomArrowClass","tabsHasBottomArrow","clipScrollClass","tabsClipScroll","clipShowAllClass","tabsClipShowAll","scrollRef","useRef","trackRef","upArrowRef","onPrev","useCallback","current","scrollTop","firstOverflowingTab","getFirstOverflowingTab","items","slice","reverse","scrollElStyle","getComputedStyle","scrollTo","top","offsetTop","parseInt","paddingTop","onNext","scrollBottom","Math","round","clientHeight","lastOverflowingTab","getLastOverflowingTab","offsetHeight","PreviousButton","React","createElement","StyledArrow","type","onClick","tabIndex","ref","_IconDisclosureLeft","IconDisclosureLeft","color","NextButton","_IconDisclosureRight","IconDisclosureRight","handleScroll","event","stopPropagation","currentTarget","minScrollTop","paddingLeft","maxScrollTop","scrollHeight","onKeyDown","minIndex","maxIndex","length","nextIndex","keyCode","end","up","down","home","_refs$items$nextIndex","_refs$items$nextIndex2","preventDefault","focus","scrollIntoView","block","inline","behavior","useLayoutEffect","_scrollRef$current","_scrollRef$current2","style","TabsContext","Provider","value","_extends","role","cx","StyledContentWrapper","onScroll","StyledContent","verticalTabsConfig","name","tag","layout","base","variations","css","sizeCSS","viewCSS","disabledCSS","attrs","defaults"],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Hint.js","sources":["../../../../../src/components/TextArea/ui/Hint/Hint.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\
|
1
|
+
{"version":3,"file":"Hint.js","sources":["../../../../../src/components/TextArea/ui/Hint/Hint.tsx"],"sourcesContent":["import React, { forwardRef } from 'react';\n\nimport { Hint, HintIconWrapper, HintTargetWrapper } from '../../TextArea.styles';\nimport { IconInfoCircleOutline } from '../../../_Icon';\nimport { safeUseId } from '../../../../utils';\nimport { tokens } from '../../TextArea.tokens';\n\nimport type { TextAreaHintProps } from './Hint.types';\n\nexport const HintComponent = forwardRef<HTMLDivElement, TextAreaHintProps>(\n (\n {\n hintText,\n isHintVisible,\n hintTrigger,\n hintTargetIcon,\n hintPlacement,\n hintHasArrow,\n hintOffset,\n hintWidth,\n hintContentLeft,\n isInnerLabel,\n size,\n handleHintShow,\n handleHintHide,\n handleHintClick,\n },\n ref,\n ) => {\n const hintId = safeUseId();\n\n const getInfoIconSize = () => {\n if (!isInnerLabel || size === 'xs') {\n return 'xs';\n }\n\n return 's';\n };\n\n return (\n <Hint\n ref={ref}\n text={String(hintText)}\n opened={isHintVisible}\n target={\n <HintTargetWrapper>\n <HintIconWrapper\n id={hintId}\n {...(hintTrigger === 'hover'\n ? {\n onMouseEnter: handleHintShow,\n onMouseLeave: handleHintHide,\n }\n : { onClick: handleHintClick })}\n >\n {hintTargetIcon || (\n <IconInfoCircleOutline\n size={getInfoIconSize()}\n color=\"inherit\"\n sizeCustomProperty={tokens.hintCustomIconTargetSize}\n />\n )}\n </HintIconWrapper>\n </HintTargetWrapper>\n }\n placement={hintPlacement}\n hasArrow={hintHasArrow}\n offset={hintOffset}\n minWidth={hintWidth}\n maxWidth={hintWidth}\n contentLeft={hintContentLeft}\n frame={hintId}\n />\n );\n },\n);\n"],"names":["HintComponent","forwardRef","_ref","ref","hintText","isHintVisible","hintTrigger","hintTargetIcon","hintPlacement","hintHasArrow","hintOffset","hintWidth","hintContentLeft","isInnerLabel","size","handleHintShow","handleHintHide","handleHintClick","hintId","safeUseId","getInfoIconSize","React","createElement","Hint","text","String","opened","target","HintTargetWrapper","HintIconWrapper","_extends","id","onMouseEnter","onMouseLeave","onClick","IconInfoCircleOutline","color","sizeCustomProperty","tokens","hintCustomIconTargetSize","placement","hasArrow","offset","minWidth","maxWidth","contentLeft","frame"],"mappings":";;;;;;;AASO,IAAMA,aAAa,gBAAGC,UAAU,CACnC,UAAAC,IAAA,EAiBIC,GAAG,EACF;AAAA,EAAA,IAhBGC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,WAAW,GAAAJ,IAAA,CAAXI,WAAW;IACXC,cAAc,GAAAL,IAAA,CAAdK,cAAc;IACdC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,YAAY,GAAAP,IAAA,CAAZO,YAAY;IACZC,UAAU,GAAAR,IAAA,CAAVQ,UAAU;IACVC,SAAS,GAAAT,IAAA,CAATS,SAAS;IACTC,eAAe,GAAAV,IAAA,CAAfU,eAAe;IACfC,YAAY,GAAAX,IAAA,CAAZW,YAAY;IACZC,IAAI,GAAAZ,IAAA,CAAJY,IAAI;IACJC,cAAc,GAAAb,IAAA,CAAda,cAAc;IACdC,cAAc,GAAAd,IAAA,CAAdc,cAAc;IACdC,eAAe,GAAAf,IAAA,CAAfe,eAAe,CAAA;AAInB,EAAA,IAAMC,MAAM,GAAGC,SAAS,EAAE,CAAA;AAE1B,EAAA,IAAMC,eAAe,GAAG,SAAlBA,eAAeA,GAAS;AAC1B,IAAA,IAAI,CAACP,YAAY,IAAIC,IAAI,KAAK,IAAI,EAAE;AAChC,MAAA,OAAO,IAAI,CAAA;AACf,KAAA;AAEA,IAAA,OAAO,GAAG,CAAA;GACb,CAAA;AAED,EAAA,oBACIO,KAAA,CAAAC,aAAA,CAACC,IAAI,EAAA;AACDpB,IAAAA,GAAG,EAAEA,GAAI;AACTqB,IAAAA,IAAI,EAAEC,MAAM,CAACrB,QAAQ,CAAE;AACvBsB,IAAAA,MAAM,EAAErB,aAAc;AACtBsB,IAAAA,MAAM,eACFN,KAAA,CAAAC,aAAA,CAACM,iBAAiB,EACdP,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACO,eAAe,EAAAC,QAAA,CAAA;AACZC,MAAAA,EAAE,EAAEb,MAAAA;KACCZ,EAAAA,WAAW,KAAK,OAAO,GACtB;AACI0B,MAAAA,YAAY,EAAEjB,cAAc;AAC5BkB,MAAAA,YAAY,EAAEjB,cAAAA;AAClB,KAAC,GACD;AAAEkB,MAAAA,OAAO,EAAEjB,eAAAA;AAAgB,KAAC,GAEjCV,cAAc,iBACXc,KAAA,CAAAC,aAAA,CAACa,qBAAqB,EAAA;MAClBrB,IAAI,EAAEM,eAAe,EAAG;AACxBgB,MAAAA,KAAK,EAAC,SAAS;MACfC,kBAAkB,EAAEC,MAAM,CAACC,wBAAAA;KAC9B,CAEQ,CACF,CACtB;AACDC,IAAAA,SAAS,EAAEhC,aAAc;AACzBiC,IAAAA,QAAQ,EAAEhC,YAAa;AACvBiC,IAAAA,MAAM,EAAEhC,UAAW;AACnBiC,IAAAA,QAAQ,EAAEhC,SAAU;AACpBiC,IAAAA,QAAQ,EAAEjC,SAAU;AACpBkC,IAAAA,WAAW,EAAEjC,eAAgB;AAC7BkC,IAAAA,KAAK,EAAE5B,MAAAA;AAAO,GACjB,CAAC,CAAA;AAEV,CACJ;;;;"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import './TextField_1lzb2r1.css';
|
2
2
|
import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, extends as _extends } from '../../_virtual/_rollupPluginBabelHelpers.js';
|
3
3
|
import React, { forwardRef, useRef, useState, useEffect } from 'react';
|
4
|
-
import { useForkRef } from '@salutejs/plasma-core';
|
4
|
+
import { useForkRef, safeUseId } from '@salutejs/plasma-core';
|
5
5
|
import { cx } from '../../utils/index.js';
|
6
6
|
import { base as base$2 } from './variations/_size/base.js';
|
7
7
|
import { base as base$1 } from './variations/_view/base.js';
|
@@ -16,7 +16,6 @@ import { OuterLabelWrapper, StyledIndicatorWrapper, Label, StyledHintWrapper, St
|
|
16
16
|
import { classes } from './TextField.tokens.js';
|
17
17
|
import { HintComponent } from './ui/Hint/Hint.js';
|
18
18
|
import { getInputWidth } from './getInputWidth.js';
|
19
|
-
import { safeUseId } from '../../utils/react.js';
|
20
19
|
import { useOutsideClick } from '../../hooks/useOutsideClick.js';
|
21
20
|
import { useKeyNavigation } from './hooks/useKeyNavigation.js';
|
22
21
|
import { TextFieldChip } from './ui/TextFieldChip/TextFieldChip.js';
|
@@ -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, MouseEventHandler } from 'react';\nimport { useForkRef } from '@salutejs/plasma-core';\nimport { css } from '@linaria/core';\nimport { cx, safeUseId } from 'src/utils';\nimport type { RootProps } from 'src/engines';\nimport { useOutsideClick } from 'src/hooks';\n\nimport type { ChipValues, TextFieldPrimitiveValue, TextFieldProps, TextFieldRootProps } from './TextField.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as clearCSS } from './variations/_clear/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 { base as hintViewCSS } from './variations/_hint-view/base';\nimport { base as hintSizeCSS } from './variations/_hint-size/base';\nimport { base as chipViewCSS } from './variations/_chip-view/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 OuterLabelWrapper,\n TitleCaption,\n StyledHintWrapper,\n StyledIndicatorWrapper,\n StyledContentRightWrapper,\n} from './TextField.styles';\nimport { classes } from './TextField.tokens';\nimport { TextFieldChip } from './ui';\nimport { useKeyNavigation } from './hooks';\nimport { HintComponent } from './ui/Hint/Hint';\nimport { getInputWidth } from './getInputWidth';\n\nconst optionalText = 'optional';\n\nexport const base = css`\n /* NOTE: Webkit не применяет opacity к inline тегам */\n display: block;\n`;\n\nconst HINT_DEFAULT_OFFSET: [number, number] = [0, 0];\n\nexport const textFieldRoot = (Root: RootProps<HTMLDivElement, TextFieldRootProps>) =>\n forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n id,\n className,\n style,\n\n // layout\n contentLeft,\n contentRight,\n label,\n labelPlacement,\n keepPlaceholder,\n textBefore,\n textAfter,\n placeholder,\n leftHelper,\n enumerationType = 'plain',\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n titleCaption,\n chipView = 'default',\n chipValidator,\n\n // hint\n hintTrigger = 'hover',\n hintText,\n hintView = 'default',\n hintSize = 'm',\n hintTargetIcon,\n hintTargetPlacement = 'outer',\n hintPlacement = 'auto',\n hintHasArrow,\n hintOffset = HINT_DEFAULT_OFFSET,\n hintWidth,\n hintContentLeft,\n\n // variations\n view,\n size,\n readOnly = false,\n disabled = false,\n required = false,\n clear = false,\n optional,\n hasDivider,\n\n // controlled\n value: outerValue,\n chips: values,\n chipType = 'default',\n\n // events\n onChange,\n onChangeChips,\n onSearch,\n onKeyDown,\n onFocus,\n onBlur,\n\n // Пропсы для внутреннего использования, не отдается наружу.\n // @ts-ignore\n _onEnterDisabled,\n // @ts-ignore\n _forceChipManipulationWithReadonly,\n\n ...rest\n },\n ref,\n ) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const inputContainerRef = 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 [hasFocus, setHasFocus] = useState(false);\n\n const [chips, setChips] = useState<Array<ChipValues>>([]);\n const [isHintVisible, setIsHintVisible] = useState(false);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const labelId = safeUseId();\n const helperTextId = safeUseId();\n\n const isDefaultView = view === 'default' || readOnly || disabled;\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 innerKeepPlaceholder = keepPlaceholder && labelPlacement === 'inner';\n const hasPlaceholder = Boolean(placeholder) && (innerKeepPlaceholder || !hasInnerLabel);\n let hasTextAfter = Boolean(textAfter);\n let hasTextBefore = textBefore && !isChipEnumeration;\n if (labelPlacement === 'inner') {\n if (!hasValue && !hasPlaceholder && !hasFocus) {\n hasTextAfter = false;\n hasTextBefore = false;\n }\n }\n\n const hasPlaceholderPadding = hasInnerLabel && keepPlaceholder && size !== 'xs';\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 clearClass = clear ? classes.clear : undefined;\n const hasDividerClass = hasDivider ? classes.hasDivider : undefined;\n const hasInnerHintClass = hintText && hintTargetPlacement === 'outer' ? classes.hasHint : undefined;\n const hasHintClass = hintText ? classes.hasHint : undefined;\n const requiredPlacementClass = requiredPlacement === 'right' ? classes.requiredAlignRight : undefined;\n const labelPlacementClass = innerLabelPlacementValue\n ? classes[`${innerLabelPlacementValue}LabelPlacement` as keyof typeof classes]\n : undefined;\n const hasValueClass = hasValue ? classes.hasValue : undefined;\n const keepPlaceholderClass = hasPlaceholder && placeholderShown && classes.keepPlaceholder;\n\n const wrapperWithoutLeftContent =\n !contentLeft && isChipsVisible && chipType === 'default' ? classes.hasEmptyContentLeft : undefined;\n const wrapperWithoutRightContent =\n !contentRight && isChipsVisible && chipType === 'default' ? classes.hasEmptyContentRight : undefined;\n\n const contentRightCompensationMargin =\n !hasOuterLabel && hintText && hintTargetPlacement === 'inner'\n ? classes.contentRightCompensationMargin\n : undefined;\n\n const hintRef = useOutsideClick<HTMLDivElement>(() => {\n setIsHintVisible(false);\n });\n const hintInnerRef = useRef<HTMLDivElement>(null);\n const hintForkRef = useForkRef(hintRef, hintInnerRef);\n\n const handleInput: FormEventHandler<HTMLInputElement> = (event) => {\n const { value } = event.target as HTMLInputElement;\n\n setHasValue(Boolean(value));\n };\n\n useEffect(() => {\n if (hasTextAfter && inputRef.current) {\n const textWidth = getInputWidth(inputRef.current, inputContainerRef.current);\n inputRef.current.style.width = `${textWidth}px`;\n } else {\n inputRef.current?.style.removeProperty('width');\n }\n }, [hasTextAfter]);\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setHasFocus(true);\n onFocus?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n setHasFocus(false);\n onBlur?.(event);\n };\n\n const handleHintShow = () => setIsHintVisible(true);\n const handleHintHide = () => setIsHintVisible(false);\n const handleHintClick: MouseEventHandler = (event) => {\n if (!hintText || hintTrigger !== 'click') {\n return;\n }\n\n event.stopPropagation();\n const targetIsPopover = event.target === hintInnerRef.current;\n const rootHasTarget = hintInnerRef.current?.contains(event.target as Element);\n\n if (!targetIsPopover && !rootHasTarget) {\n setIsHintVisible(true);\n }\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 if (hasTextAfter) {\n const textWidth = getInputWidth(event.currentTarget, inputContainerRef.current);\n event.currentTarget.style.width = `${textWidth}px`;\n }\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: _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 const classTextEllipsis =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n !(rest as any)._textEllipsisDisable && !textAfter ? classes.inputTextEllipsis : undefined;\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(\n labelPlacementClass,\n clearClass,\n hasDividerClass,\n hasInnerHintClass,\n classes.textFieldGroupItem,\n className,\n )}\n style={style}\n {...(hintText && { hintView, hintSize })}\n >\n {(hasOuterLabel || titleCaption) && (\n <OuterLabelWrapper isInnerLabel={labelPlacement === 'inner'}>\n {hasOuterLabel && (\n <StyledIndicatorWrapper>\n <Label id={labelId} htmlFor={id}>\n {innerLabelValue}\n </Label>\n\n {hintText && (\n <StyledHintWrapper>\n <HintComponent\n ref={hintForkRef}\n hintText={hintText}\n hintTrigger={hintTrigger}\n isHintVisible={isHintVisible}\n hintTargetIcon={hintTargetIcon}\n hintPlacement={hintPlacement}\n hintHasArrow={hintHasArrow}\n hintOffset={hintOffset}\n hintWidth={hintWidth}\n hintContentLeft={hintContentLeft}\n handleHintShow={handleHintShow}\n handleHintHide={handleHintHide}\n handleHintClick={handleHintClick}\n />\n </StyledHintWrapper>\n )}\n {required && hasRequiredIndicator && (\n <StyledIndicator\n className={cx(\n classes.outerLabelPlacement,\n requiredPlacementClass,\n hasHintClass,\n )}\n />\n )}\n {optionalTextNode}\n </StyledIndicatorWrapper>\n )}\n {titleCaption && <TitleCaption>{titleCaption}</TitleCaption>}\n </OuterLabelWrapper>\n )}\n <InputWrapper\n // Ref для внутреннего использования. Не отдается наружу.\n ref={(rest as any).inputWrapperRef}\n // TODO: #1544, и после убрать classes.inputWrapper\n className={cx(\n withHasChips,\n wrapperWithoutLeftContent,\n wrapperWithoutRightContent,\n classes.inputWrapper,\n )}\n >\n {!hasOuterLabel && (\n <>\n {required && hasRequiredIndicator && (\n <StyledIndicator\n className={cx(classes.innerLabelPlacement, requiredPlacementClass)}\n />\n )}\n {hintText && hintTargetPlacement === 'outer' && (\n <StyledHintWrapper className={classes.innerLabelPlacement}>\n <HintComponent\n ref={hintForkRef}\n hintText={hintText}\n hintTrigger={hintTrigger}\n isHintVisible={isHintVisible}\n hintTargetIcon={hintTargetIcon}\n hintPlacement={hintPlacement}\n hintHasArrow={hintHasArrow}\n hintOffset={hintOffset}\n hintWidth={hintWidth}\n hintContentLeft={hintContentLeft}\n size={size}\n handleHintShow={handleHintShow}\n handleHintHide={handleHintHide}\n handleHintClick={handleHintClick}\n isInnerLabel\n />\n </StyledHintWrapper>\n )}\n </>\n )}\n {contentLeft && (\n <StyledContentLeft isClear={clear} isDefaultView={isDefaultView}>\n {contentLeft}\n </StyledContentLeft>\n )}\n <InputLabelWrapper\n tabIndex={-1}\n ref={contentRef}\n onKeyDown={handleContentKeyDown}\n className={withHasChips}\n >\n {Boolean(textBefore && isChipEnumeration) && (\n <StyledTextBefore>{textBefore}</StyledTextBefore>\n )}\n {isChipEnumeration && Boolean(chips?.length) && (\n <StyledChips className={classes.chipsWrapper}>\n {chips?.map(({ id: chipId, text }, index) => {\n const validationView = chipValidator?.(String(text));\n const resView = validationView?.view || chipView;\n\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 chipType={chipType}\n view={resView}\n rootWrapper={Root}\n // TODO: #1547\n // @ts-ignore\n _forceChipManipulationWithReadonly={_forceChipManipulationWithReadonly}\n />\n );\n })}\n </StyledChips>\n )}\n <InputContainer ref={inputContainerRef} hasDynamicWidth={hasTextAfter}>\n {hasTextBefore && <StyledTextBefore>{textBefore}</StyledTextBefore>}\n <Input\n ref={inputForkRef}\n id={innerId}\n value={outerValue}\n required={enumerationType === 'chip' ? chips.length === 0 && required : required}\n aria-labelledby={labelId}\n aria-describedby={helperTextId}\n placeholder={innerPlaceholderValue}\n className={cx(\n hasValueClass,\n keepPlaceholderClass,\n classTextEllipsis,\n readOnly && classes.readOnlyInput,\n )}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n onInput={handleInput}\n onChange={handleChange}\n onKeyDown={handleOnKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n />\n {hasInnerLabel && (\n <Label id={labelId} htmlFor={innerId}>\n {innerLabelValue}\n {optionalTextNode}\n </Label>\n )}\n {placeholderShown && !hasValue && (\n <InputPlaceholder hasPadding={hasPlaceholderPadding}>\n {hasTextBefore && <StyledTextBefore isHidden>{textBefore}</StyledTextBefore>}\n {innerPlaceholderValue}\n {hasPlaceholderOptional && optionalTextNode}\n </InputPlaceholder>\n )}\n {hasTextAfter && <StyledTextAfter>{textAfter}</StyledTextAfter>}\n </InputContainer>\n </InputLabelWrapper>\n <StyledContentRightWrapper className={cx(contentRightCompensationMargin)}>\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n\n {!hasOuterLabel && hintText && hintTargetPlacement === 'inner' && (\n <HintComponent\n ref={hintForkRef}\n hintText={hintText}\n hintTrigger={hintTrigger}\n isHintVisible={isHintVisible}\n hintTargetIcon={hintTargetIcon}\n hintPlacement={hintPlacement}\n hintHasArrow={hintHasArrow}\n hintOffset={hintOffset}\n hintWidth={hintWidth}\n hintContentLeft={hintContentLeft}\n size={size}\n handleHintShow={handleHintShow}\n handleHintHide={handleHintHide}\n handleHintClick={handleHintClick}\n isInnerLabel\n />\n )}\n </StyledContentRightWrapper>\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 clear: {\n css: clearCSS,\n attrs: true,\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 hintView: {\n css: hintViewCSS,\n },\n hintSize: {\n css: hintSizeCSS,\n },\n chipView: {\n css: chipViewCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["optionalText","base","HINT_DEFAULT_OFFSET","textFieldRoot","Root","forwardRef","_ref","ref","_inputRef$current","_inputRef$current4","id","className","style","contentLeft","contentRight","label","labelPlacement","keepPlaceholder","textBefore","textAfter","placeholder","leftHelper","_ref$enumerationType","enumerationType","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","titleCaption","_ref$chipView","chipView","chipValidator","_ref$hintTrigger","hintTrigger","hintText","_ref$hintView","hintView","_ref$hintSize","hintSize","hintTargetIcon","_ref$hintTargetPlacem","hintTargetPlacement","_ref$hintPlacement","hintPlacement","hintHasArrow","_ref$hintOffset","hintOffset","hintWidth","hintContentLeft","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$required","required","_ref$clear","clear","optional","hasDivider","outerValue","value","values","chips","_ref$chipType","chipType","onChange","onChangeChips","onSearch","onKeyDown","onFocus","onBlur","_onEnterDisabled","_forceChipManipulationWithReadonly","rest","contentRef","useRef","inputContainerRef","inputRef","inputForkRef","useForkRef","chipsRefs","controlledRefs","_useState","useState","Boolean","current","defaultValue","_useState2","_slicedToArray","hasValue","setHasValue","_useState3","_useState4","hasFocus","setHasFocus","_useState5","_useState6","setChips","_useState7","_useState8","isHintVisible","setIsHintVisible","uniqId","safeUseId","innerId","labelId","helperTextId","isDefaultView","isChipEnumeration","isChipsVisible","length","withHasChips","classes","hasChips","undefined","hasLabelValue","hasInnerLabel","hasOuterLabel","innerKeepPlaceholder","hasPlaceholder","hasTextAfter","hasTextBefore","hasPlaceholderPadding","innerLabelValue","innerLabelPlacementValue","innerPlaceholderValue","placeholderShown","clearClass","hasDividerClass","hasInnerHintClass","hasHint","hasHintClass","requiredPlacementClass","requiredAlignRight","labelPlacementClass","concat","hasValueClass","keepPlaceholderClass","wrapperWithoutLeftContent","hasEmptyContentLeft","wrapperWithoutRightContent","hasEmptyContentRight","contentRightCompensationMargin","hintRef","useOutsideClick","hintInnerRef","hintForkRef","handleInput","event","_ref2","target","useEffect","textWidth","getInputWidth","width","_inputRef$current2","removeProperty","handleFocus","handleBlur","handleHintShow","handleHintHide","handleHintClick","_hintInnerRef$current","stopPropagation","targetIsPopover","rootHasTarget","contains","handleChange","_event$target","maxLength","currentTarget","updateChips","newChips","newValues","_useKeyNavigation","useKeyNavigation","onEnterDisabled","handleInputKeydown","handleChipKeyDown","onChipClear","handleContentKeyDown","onChipClick","handleInputFocus","scrollTo","top","left","offsetLeft","behavior","focus","getRef","element","index","handleOnKeyDown","map","text","_inputRef$current3","innerOptional","hasPlaceholderOptional","optionalTextNode","React","createElement","StyledOptionalText","classTextEllipsis","_textEllipsisDisable","inputTextEllipsis","_extends","onClick","cx","textFieldGroupItem","OuterLabelWrapper","isInnerLabel","StyledIndicatorWrapper","Label","htmlFor","StyledHintWrapper","HintComponent","StyledIndicator","outerLabelPlacement","TitleCaption","InputWrapper","inputWrapperRef","inputWrapper","Fragment","innerLabelPlacement","StyledContentLeft","isClear","InputLabelWrapper","tabIndex","StyledTextBefore","StyledChips","chipsWrapper","_ref3","chipId","validationView","String","resView","TextFieldChip","key","onClear","rootWrapper","InputContainer","hasDynamicWidth","Input","readOnlyInput","onInput","InputPlaceholder","hasPadding","isHidden","StyledTextAfter","StyledContentRightWrapper","StyledContentRight","LeftHelper","textFieldConfig","name","tag","layout","variations","css","viewCSS","sizeCSS","clearCSS","attrs","disabledCSS","readOnlyCSS","labelPlacementCSS","hintViewCSS","hintSizeCSS","chipViewCSS","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, MouseEventHandler } from 'react';\nimport { safeUseId, useForkRef } from '@salutejs/plasma-core';\nimport { css } from '@linaria/core';\n\nimport type { RootProps } from '../../engines';\nimport { cx } from '../../utils';\nimport { useOutsideClick } from '../../hooks';\n\nimport type { ChipValues, TextFieldPrimitiveValue, TextFieldProps, TextFieldRootProps } from './TextField.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as clearCSS } from './variations/_clear/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 { base as hintViewCSS } from './variations/_hint-view/base';\nimport { base as hintSizeCSS } from './variations/_hint-size/base';\nimport { base as chipViewCSS } from './variations/_chip-view/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 OuterLabelWrapper,\n TitleCaption,\n StyledHintWrapper,\n StyledIndicatorWrapper,\n StyledContentRightWrapper,\n} from './TextField.styles';\nimport { classes } from './TextField.tokens';\nimport { TextFieldChip } from './ui';\nimport { useKeyNavigation } from './hooks';\nimport { HintComponent } from './ui/Hint/Hint';\nimport { getInputWidth } from './getInputWidth';\n\nconst optionalText = 'optional';\n\nexport const base = css`\n /* NOTE: Webkit не применяет opacity к inline тегам */\n display: block;\n`;\n\nconst HINT_DEFAULT_OFFSET: [number, number] = [0, 0];\n\nexport const textFieldRoot = (Root: RootProps<HTMLDivElement, TextFieldRootProps>) =>\n forwardRef<HTMLInputElement, TextFieldProps>(\n (\n {\n id,\n className,\n style,\n\n // layout\n contentLeft,\n contentRight,\n label,\n labelPlacement,\n keepPlaceholder,\n textBefore,\n textAfter,\n placeholder,\n leftHelper,\n enumerationType = 'plain',\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n titleCaption,\n chipView = 'default',\n chipValidator,\n\n // hint\n hintTrigger = 'hover',\n hintText,\n hintView = 'default',\n hintSize = 'm',\n hintTargetIcon,\n hintTargetPlacement = 'outer',\n hintPlacement = 'auto',\n hintHasArrow,\n hintOffset = HINT_DEFAULT_OFFSET,\n hintWidth,\n hintContentLeft,\n\n // variations\n view,\n size,\n readOnly = false,\n disabled = false,\n required = false,\n clear = false,\n optional,\n hasDivider,\n\n // controlled\n value: outerValue,\n chips: values,\n chipType = 'default',\n\n // events\n onChange,\n onChangeChips,\n onSearch,\n onKeyDown,\n onFocus,\n onBlur,\n\n // Пропсы для внутреннего использования, не отдается наружу.\n // @ts-ignore\n _onEnterDisabled,\n // @ts-ignore\n _forceChipManipulationWithReadonly,\n\n ...rest\n },\n ref,\n ) => {\n const contentRef = useRef<HTMLDivElement>(null);\n const inputContainerRef = 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 [hasFocus, setHasFocus] = useState(false);\n\n const [chips, setChips] = useState<Array<ChipValues>>([]);\n const [isHintVisible, setIsHintVisible] = useState(false);\n\n const uniqId = safeUseId();\n const innerId = id || uniqId;\n const labelId = safeUseId();\n const helperTextId = safeUseId();\n\n const isDefaultView = view === 'default' || readOnly || disabled;\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 innerKeepPlaceholder = keepPlaceholder && labelPlacement === 'inner';\n const hasPlaceholder = Boolean(placeholder) && (innerKeepPlaceholder || !hasInnerLabel);\n let hasTextAfter = Boolean(textAfter);\n let hasTextBefore = textBefore && !isChipEnumeration;\n if (labelPlacement === 'inner') {\n if (!hasValue && !hasPlaceholder && !hasFocus) {\n hasTextAfter = false;\n hasTextBefore = false;\n }\n }\n\n const hasPlaceholderPadding = hasInnerLabel && keepPlaceholder && size !== 'xs';\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 clearClass = clear ? classes.clear : undefined;\n const hasDividerClass = hasDivider ? classes.hasDivider : undefined;\n const hasInnerHintClass = hintText && hintTargetPlacement === 'outer' ? classes.hasHint : undefined;\n const hasHintClass = hintText ? classes.hasHint : undefined;\n const requiredPlacementClass = requiredPlacement === 'right' ? classes.requiredAlignRight : undefined;\n const labelPlacementClass = innerLabelPlacementValue\n ? classes[`${innerLabelPlacementValue}LabelPlacement` as keyof typeof classes]\n : undefined;\n const hasValueClass = hasValue ? classes.hasValue : undefined;\n const keepPlaceholderClass = hasPlaceholder && placeholderShown && classes.keepPlaceholder;\n\n const wrapperWithoutLeftContent =\n !contentLeft && isChipsVisible && chipType === 'default' ? classes.hasEmptyContentLeft : undefined;\n const wrapperWithoutRightContent =\n !contentRight && isChipsVisible && chipType === 'default' ? classes.hasEmptyContentRight : undefined;\n\n const contentRightCompensationMargin =\n !hasOuterLabel && hintText && hintTargetPlacement === 'inner'\n ? classes.contentRightCompensationMargin\n : undefined;\n\n const hintRef = useOutsideClick<HTMLDivElement>(() => {\n setIsHintVisible(false);\n });\n const hintInnerRef = useRef<HTMLDivElement>(null);\n const hintForkRef = useForkRef(hintRef, hintInnerRef);\n\n const handleInput: FormEventHandler<HTMLInputElement> = (event) => {\n const { value } = event.target as HTMLInputElement;\n\n setHasValue(Boolean(value));\n };\n\n useEffect(() => {\n if (hasTextAfter && inputRef.current) {\n const textWidth = getInputWidth(inputRef.current, inputContainerRef.current);\n inputRef.current.style.width = `${textWidth}px`;\n } else {\n inputRef.current?.style.removeProperty('width');\n }\n }, [hasTextAfter]);\n\n const handleFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n setHasFocus(true);\n onFocus?.(event);\n };\n\n const handleBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n setHasFocus(false);\n onBlur?.(event);\n };\n\n const handleHintShow = () => setIsHintVisible(true);\n const handleHintHide = () => setIsHintVisible(false);\n const handleHintClick: MouseEventHandler = (event) => {\n if (!hintText || hintTrigger !== 'click') {\n return;\n }\n\n event.stopPropagation();\n const targetIsPopover = event.target === hintInnerRef.current;\n const rootHasTarget = hintInnerRef.current?.contains(event.target as Element);\n\n if (!targetIsPopover && !rootHasTarget) {\n setIsHintVisible(true);\n }\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 if (hasTextAfter) {\n const textWidth = getInputWidth(event.currentTarget, inputContainerRef.current);\n event.currentTarget.style.width = `${textWidth}px`;\n }\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: _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 const classTextEllipsis =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n // eslint-disable-next-line no-underscore-dangle\n !(rest as any)._textEllipsisDisable && !textAfter ? classes.inputTextEllipsis : undefined;\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(\n labelPlacementClass,\n clearClass,\n hasDividerClass,\n hasInnerHintClass,\n classes.textFieldGroupItem,\n className,\n )}\n style={style}\n {...(hintText && { hintView, hintSize })}\n >\n {(hasOuterLabel || titleCaption) && (\n <OuterLabelWrapper isInnerLabel={labelPlacement === 'inner'}>\n {hasOuterLabel && (\n <StyledIndicatorWrapper>\n <Label id={labelId} htmlFor={id}>\n {innerLabelValue}\n </Label>\n\n {hintText && (\n <StyledHintWrapper>\n <HintComponent\n ref={hintForkRef}\n hintText={hintText}\n hintTrigger={hintTrigger}\n isHintVisible={isHintVisible}\n hintTargetIcon={hintTargetIcon}\n hintPlacement={hintPlacement}\n hintHasArrow={hintHasArrow}\n hintOffset={hintOffset}\n hintWidth={hintWidth}\n hintContentLeft={hintContentLeft}\n handleHintShow={handleHintShow}\n handleHintHide={handleHintHide}\n handleHintClick={handleHintClick}\n />\n </StyledHintWrapper>\n )}\n {required && hasRequiredIndicator && (\n <StyledIndicator\n className={cx(\n classes.outerLabelPlacement,\n requiredPlacementClass,\n hasHintClass,\n )}\n />\n )}\n {optionalTextNode}\n </StyledIndicatorWrapper>\n )}\n {titleCaption && <TitleCaption>{titleCaption}</TitleCaption>}\n </OuterLabelWrapper>\n )}\n <InputWrapper\n // Ref для внутреннего использования. Не отдается наружу.\n ref={(rest as any).inputWrapperRef}\n // TODO: #1544, и после убрать classes.inputWrapper\n className={cx(\n withHasChips,\n wrapperWithoutLeftContent,\n wrapperWithoutRightContent,\n classes.inputWrapper,\n )}\n >\n {!hasOuterLabel && (\n <>\n {required && hasRequiredIndicator && (\n <StyledIndicator\n className={cx(classes.innerLabelPlacement, requiredPlacementClass)}\n />\n )}\n {hintText && hintTargetPlacement === 'outer' && (\n <StyledHintWrapper className={classes.innerLabelPlacement}>\n <HintComponent\n ref={hintForkRef}\n hintText={hintText}\n hintTrigger={hintTrigger}\n isHintVisible={isHintVisible}\n hintTargetIcon={hintTargetIcon}\n hintPlacement={hintPlacement}\n hintHasArrow={hintHasArrow}\n hintOffset={hintOffset}\n hintWidth={hintWidth}\n hintContentLeft={hintContentLeft}\n size={size}\n handleHintShow={handleHintShow}\n handleHintHide={handleHintHide}\n handleHintClick={handleHintClick}\n isInnerLabel\n />\n </StyledHintWrapper>\n )}\n </>\n )}\n {contentLeft && (\n <StyledContentLeft isClear={clear} isDefaultView={isDefaultView}>\n {contentLeft}\n </StyledContentLeft>\n )}\n <InputLabelWrapper\n tabIndex={-1}\n ref={contentRef}\n onKeyDown={handleContentKeyDown}\n className={withHasChips}\n >\n {Boolean(textBefore && isChipEnumeration) && (\n <StyledTextBefore>{textBefore}</StyledTextBefore>\n )}\n {isChipEnumeration && Boolean(chips?.length) && (\n <StyledChips className={classes.chipsWrapper}>\n {chips?.map(({ id: chipId, text }, index) => {\n const validationView = chipValidator?.(String(text));\n const resView = validationView?.view || chipView;\n\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 chipType={chipType}\n view={resView}\n rootWrapper={Root}\n // TODO: #1547\n // @ts-ignore\n _forceChipManipulationWithReadonly={_forceChipManipulationWithReadonly}\n />\n );\n })}\n </StyledChips>\n )}\n <InputContainer ref={inputContainerRef} hasDynamicWidth={hasTextAfter}>\n {hasTextBefore && <StyledTextBefore>{textBefore}</StyledTextBefore>}\n <Input\n ref={inputForkRef}\n id={innerId}\n value={outerValue}\n required={enumerationType === 'chip' ? chips.length === 0 && required : required}\n aria-labelledby={labelId}\n aria-describedby={helperTextId}\n placeholder={innerPlaceholderValue}\n className={cx(\n hasValueClass,\n keepPlaceholderClass,\n classTextEllipsis,\n readOnly && classes.readOnlyInput,\n )}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n onInput={handleInput}\n onChange={handleChange}\n onKeyDown={handleOnKeyDown}\n onFocus={handleFocus}\n onBlur={handleBlur}\n {...rest}\n />\n {hasInnerLabel && (\n <Label id={labelId} htmlFor={innerId}>\n {innerLabelValue}\n {optionalTextNode}\n </Label>\n )}\n {placeholderShown && !hasValue && (\n <InputPlaceholder hasPadding={hasPlaceholderPadding}>\n {hasTextBefore && <StyledTextBefore isHidden>{textBefore}</StyledTextBefore>}\n {innerPlaceholderValue}\n {hasPlaceholderOptional && optionalTextNode}\n </InputPlaceholder>\n )}\n {hasTextAfter && <StyledTextAfter>{textAfter}</StyledTextAfter>}\n </InputContainer>\n </InputLabelWrapper>\n <StyledContentRightWrapper className={cx(contentRightCompensationMargin)}>\n {contentRight && <StyledContentRight>{contentRight}</StyledContentRight>}\n\n {!hasOuterLabel && hintText && hintTargetPlacement === 'inner' && (\n <HintComponent\n ref={hintForkRef}\n hintText={hintText}\n hintTrigger={hintTrigger}\n isHintVisible={isHintVisible}\n hintTargetIcon={hintTargetIcon}\n hintPlacement={hintPlacement}\n hintHasArrow={hintHasArrow}\n hintOffset={hintOffset}\n hintWidth={hintWidth}\n hintContentLeft={hintContentLeft}\n size={size}\n handleHintShow={handleHintShow}\n handleHintHide={handleHintHide}\n handleHintClick={handleHintClick}\n isInnerLabel\n />\n )}\n </StyledContentRightWrapper>\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 clear: {\n css: clearCSS,\n attrs: true,\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 hintView: {\n css: hintViewCSS,\n },\n hintSize: {\n css: hintSizeCSS,\n },\n chipView: {\n css: chipViewCSS,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n },\n};\n"],"names":["optionalText","base","HINT_DEFAULT_OFFSET","textFieldRoot","Root","forwardRef","_ref","ref","_inputRef$current","_inputRef$current4","id","className","style","contentLeft","contentRight","label","labelPlacement","keepPlaceholder","textBefore","textAfter","placeholder","leftHelper","_ref$enumerationType","enumerationType","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","titleCaption","_ref$chipView","chipView","chipValidator","_ref$hintTrigger","hintTrigger","hintText","_ref$hintView","hintView","_ref$hintSize","hintSize","hintTargetIcon","_ref$hintTargetPlacem","hintTargetPlacement","_ref$hintPlacement","hintPlacement","hintHasArrow","_ref$hintOffset","hintOffset","hintWidth","hintContentLeft","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","_ref$required","required","_ref$clear","clear","optional","hasDivider","outerValue","value","values","chips","_ref$chipType","chipType","onChange","onChangeChips","onSearch","onKeyDown","onFocus","onBlur","_onEnterDisabled","_forceChipManipulationWithReadonly","rest","contentRef","useRef","inputContainerRef","inputRef","inputForkRef","useForkRef","chipsRefs","controlledRefs","_useState","useState","Boolean","current","defaultValue","_useState2","_slicedToArray","hasValue","setHasValue","_useState3","_useState4","hasFocus","setHasFocus","_useState5","_useState6","setChips","_useState7","_useState8","isHintVisible","setIsHintVisible","uniqId","safeUseId","innerId","labelId","helperTextId","isDefaultView","isChipEnumeration","isChipsVisible","length","withHasChips","classes","hasChips","undefined","hasLabelValue","hasInnerLabel","hasOuterLabel","innerKeepPlaceholder","hasPlaceholder","hasTextAfter","hasTextBefore","hasPlaceholderPadding","innerLabelValue","innerLabelPlacementValue","innerPlaceholderValue","placeholderShown","clearClass","hasDividerClass","hasInnerHintClass","hasHint","hasHintClass","requiredPlacementClass","requiredAlignRight","labelPlacementClass","concat","hasValueClass","keepPlaceholderClass","wrapperWithoutLeftContent","hasEmptyContentLeft","wrapperWithoutRightContent","hasEmptyContentRight","contentRightCompensationMargin","hintRef","useOutsideClick","hintInnerRef","hintForkRef","handleInput","event","_ref2","target","useEffect","textWidth","getInputWidth","width","_inputRef$current2","removeProperty","handleFocus","handleBlur","handleHintShow","handleHintHide","handleHintClick","_hintInnerRef$current","stopPropagation","targetIsPopover","rootHasTarget","contains","handleChange","_event$target","maxLength","currentTarget","updateChips","newChips","newValues","_useKeyNavigation","useKeyNavigation","onEnterDisabled","handleInputKeydown","handleChipKeyDown","onChipClear","handleContentKeyDown","onChipClick","handleInputFocus","scrollTo","top","left","offsetLeft","behavior","focus","getRef","element","index","handleOnKeyDown","map","text","_inputRef$current3","innerOptional","hasPlaceholderOptional","optionalTextNode","React","createElement","StyledOptionalText","classTextEllipsis","_textEllipsisDisable","inputTextEllipsis","_extends","onClick","cx","textFieldGroupItem","OuterLabelWrapper","isInnerLabel","StyledIndicatorWrapper","Label","htmlFor","StyledHintWrapper","HintComponent","StyledIndicator","outerLabelPlacement","TitleCaption","InputWrapper","inputWrapperRef","inputWrapper","Fragment","innerLabelPlacement","StyledContentLeft","isClear","InputLabelWrapper","tabIndex","StyledTextBefore","StyledChips","chipsWrapper","_ref3","chipId","validationView","String","resView","TextFieldChip","key","onClear","rootWrapper","InputContainer","hasDynamicWidth","Input","readOnlyInput","onInput","InputPlaceholder","hasPadding","isHidden","StyledTextAfter","StyledContentRightWrapper","StyledContentRight","LeftHelper","textFieldConfig","name","tag","layout","variations","css","viewCSS","sizeCSS","clearCSS","attrs","disabledCSS","readOnlyCSS","labelPlacementCSS","hintViewCSS","hintSizeCSS","chipViewCSS","defaults"],"mappings":"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"}
|