@transferwise/components 46.140.1 → 46.142.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/build/avatarLayout/AvatarLayout.js +15 -1
- package/build/avatarLayout/AvatarLayout.js.map +1 -1
- package/build/avatarLayout/AvatarLayout.mjs +15 -1
- package/build/avatarLayout/AvatarLayout.mjs.map +1 -1
- package/build/avatarView/AvatarView.js +6 -2
- package/build/avatarView/AvatarView.js.map +1 -1
- package/build/avatarView/AvatarView.mjs +6 -2
- package/build/avatarView/AvatarView.mjs.map +1 -1
- package/build/avatarView/Dot.js +8 -0
- package/build/avatarView/Dot.js.map +1 -1
- package/build/avatarView/Dot.mjs +8 -0
- package/build/avatarView/Dot.mjs.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.js +3 -4
- package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
- package/build/avatarWrapper/AvatarWrapper.mjs +4 -5
- package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
- package/build/button/LegacyButton.js.map +1 -1
- package/build/button/LegacyButton.mjs.map +1 -1
- package/build/common/circle/Circle.js +6 -2
- package/build/common/circle/Circle.js.map +1 -1
- package/build/common/circle/Circle.mjs +6 -2
- package/build/common/circle/Circle.mjs.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.js +6 -4
- package/build/common/hooks/useHasIntersected/useHasIntersected.js.map +1 -1
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs +6 -4
- package/build/common/hooks/useHasIntersected/useHasIntersected.mjs.map +1 -1
- package/build/common/liveRegion/LiveRegion.js +4 -1
- package/build/common/liveRegion/LiveRegion.js.map +1 -1
- package/build/common/liveRegion/LiveRegion.mjs +4 -1
- package/build/common/liveRegion/LiveRegion.mjs.map +1 -1
- package/build/dateInput/DateInput.js +10 -10
- package/build/dateInput/DateInput.js.map +1 -1
- package/build/dateInput/DateInput.mjs +10 -10
- package/build/dateInput/DateInput.mjs.map +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.js.map +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs +1 -1
- package/build/dateLookup/monthCalendar/table/MonthCalendarTable.mjs.map +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.js.map +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs +1 -1
- package/build/dateLookup/yearCalendar/table/YearCalendarTable.mjs.map +1 -1
- package/build/expressiveMoneyInput/ExpressiveMoneyInput.js.map +1 -1
- package/build/expressiveMoneyInput/ExpressiveMoneyInput.mjs.map +1 -1
- package/build/expressiveMoneyInput/amountInput/AmountInput.js +18 -12
- package/build/expressiveMoneyInput/amountInput/AmountInput.js.map +1 -1
- package/build/expressiveMoneyInput/amountInput/AmountInput.mjs +19 -13
- package/build/expressiveMoneyInput/amountInput/AmountInput.mjs.map +1 -1
- package/build/expressiveMoneyInput/hooks/useInputStyle.js +8 -6
- package/build/expressiveMoneyInput/hooks/useInputStyle.js.map +1 -1
- package/build/expressiveMoneyInput/hooks/useInputStyle.mjs +9 -7
- package/build/expressiveMoneyInput/hooks/useInputStyle.mjs.map +1 -1
- package/build/field/Field.js +63 -32
- package/build/field/Field.js.map +1 -1
- package/build/field/Field.messages.js +14 -0
- package/build/field/Field.messages.js.map +1 -0
- package/build/field/Field.messages.mjs +10 -0
- package/build/field/Field.messages.mjs.map +1 -0
- package/build/field/Field.mjs +65 -34
- package/build/field/Field.mjs.map +1 -1
- package/build/header/Header.js +1 -1
- package/build/header/Header.js.map +1 -1
- package/build/header/Header.mjs +1 -1
- package/build/header/Header.mjs.map +1 -1
- package/build/i18n/en.json +1 -0
- package/build/i18n/en.json.js +1 -0
- package/build/i18n/en.json.js.map +1 -1
- package/build/i18n/en.json.mjs +1 -0
- package/build/i18n/en.json.mjs.map +1 -1
- package/build/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.js.map +1 -1
- package/build/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.mjs.map +1 -1
- package/build/inputs/SelectInput/Options/SelectInputOptions.js +34 -22
- package/build/inputs/SelectInput/Options/SelectInputOptions.js.map +1 -1
- package/build/inputs/SelectInput/Options/SelectInputOptions.mjs +35 -23
- package/build/inputs/SelectInput/Options/SelectInputOptions.mjs.map +1 -1
- package/build/inputs/SelectInput/Popover/SelectInputPopover.js.map +1 -1
- package/build/inputs/SelectInput/Popover/SelectInputPopover.mjs.map +1 -1
- package/build/inputs/SelectInput/SelectInput.js +8 -6
- package/build/inputs/SelectInput/SelectInput.js.map +1 -1
- package/build/inputs/SelectInput/SelectInput.mjs +9 -7
- package/build/inputs/SelectInput/SelectInput.mjs.map +1 -1
- package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.js.map +1 -1
- package/build/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.mjs.map +1 -1
- package/build/inputs/TextArea.js +5 -0
- package/build/inputs/TextArea.js.map +1 -1
- package/build/inputs/TextArea.mjs +6 -1
- package/build/inputs/TextArea.mjs.map +1 -1
- package/build/inputs/contexts.js +16 -0
- package/build/inputs/contexts.js.map +1 -1
- package/build/inputs/contexts.mjs +16 -2
- package/build/inputs/contexts.mjs.map +1 -1
- package/build/main.css +42 -8
- package/build/nudge/Nudge.js +31 -15
- package/build/nudge/Nudge.js.map +1 -1
- package/build/nudge/Nudge.mjs +32 -16
- package/build/nudge/Nudge.mjs.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.js +9 -12
- package/build/phoneNumberInput/PhoneNumberInput.js.map +1 -1
- package/build/phoneNumberInput/PhoneNumberInput.mjs +9 -12
- package/build/phoneNumberInput/PhoneNumberInput.mjs.map +1 -1
- package/build/promoCard/PromoCardGroup.js +34 -16
- package/build/promoCard/PromoCardGroup.js.map +1 -1
- package/build/promoCard/PromoCardGroup.mjs +35 -17
- package/build/promoCard/PromoCardGroup.mjs.map +1 -1
- package/build/segmentedControl/SegmentedControl.js +6 -1
- package/build/segmentedControl/SegmentedControl.js.map +1 -1
- package/build/segmentedControl/SegmentedControl.mjs +7 -2
- package/build/segmentedControl/SegmentedControl.mjs.map +1 -1
- package/build/styles/avatarView/AvatarView.css +4 -4
- package/build/styles/avatarView/Dot.css +4 -4
- package/build/styles/css/neptune.css +15 -1
- package/build/styles/expressiveMoneyInput/ExpressiveMoneyInput.css +2 -0
- package/build/styles/expressiveMoneyInput/amountInput/AmountInput.css +2 -0
- package/build/styles/field/Field.css +19 -3
- package/build/styles/main.css +42 -8
- package/build/styles/styles/less/neptune.css +15 -1
- package/build/tabs/Tabs.js +1 -1
- package/build/tabs/Tabs.js.map +1 -1
- package/build/tabs/Tabs.mjs +1 -1
- package/build/tabs/Tabs.mjs.map +1 -1
- package/build/tooltip/Tooltip.js +6 -3
- package/build/tooltip/Tooltip.js.map +1 -1
- package/build/tooltip/Tooltip.mjs +6 -3
- package/build/tooltip/Tooltip.mjs.map +1 -1
- package/build/types/avatarView/AvatarView.d.ts +1 -1
- package/build/types/avatarView/AvatarView.d.ts.map +1 -1
- package/build/types/avatarView/Dot.d.ts.map +1 -1
- package/build/types/avatarWrapper/AvatarWrapper.d.ts.map +1 -1
- package/build/types/common/circle/Circle.d.ts +1 -1
- package/build/types/common/circle/Circle.d.ts.map +1 -1
- package/build/types/common/hooks/useHasIntersected/useHasIntersected.d.ts.map +1 -1
- package/build/types/common/liveRegion/LiveRegion.d.ts.map +1 -1
- package/build/types/dateLookup/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/ExpressiveMoneyInput.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/amountInput/AmountInput.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/hooks/useInputStyle.d.ts +2 -2
- package/build/types/expressiveMoneyInput/hooks/useInputStyle.d.ts.map +1 -1
- package/build/types/expressiveMoneyInput/hooks/useSelectionRange.d.ts.map +1 -1
- package/build/types/field/Field.d.ts.map +1 -1
- package/build/types/field/Field.messages.d.ts +8 -0
- package/build/types/field/Field.messages.d.ts.map +1 -0
- package/build/types/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/Options/SelectInputOptions.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/Popover/SelectInputPopover.d.ts.map +1 -1
- package/build/types/inputs/SelectInput/SelectInput.d.ts.map +1 -1
- package/build/types/inputs/TextArea.d.ts.map +1 -1
- package/build/types/inputs/contexts.d.ts +6 -0
- package/build/types/inputs/contexts.d.ts.map +1 -1
- package/build/types/nudge/Nudge.d.ts.map +1 -1
- package/build/types/phoneNumberInput/PhoneNumberInput.d.ts.map +1 -1
- package/build/types/promoCard/PromoCardGroup.d.ts.map +1 -1
- package/build/types/segmentedControl/SegmentedControl.d.ts.map +1 -1
- package/build/types/test-utils/index.d.ts +2 -0
- package/build/types/test-utils/index.d.ts.map +1 -1
- package/build/types/tooltip/Tooltip.d.ts.map +1 -1
- package/build/types/uploadInput/UploadInput.d.ts.map +1 -1
- package/build/uploadInput/UploadInput.js +29 -25
- package/build/uploadInput/UploadInput.js.map +1 -1
- package/build/uploadInput/UploadInput.mjs +29 -25
- package/build/uploadInput/UploadInput.mjs.map +1 -1
- package/package.json +3 -3
- package/src/avatarLayout/AvatarLayout.story.tsx +1 -1
- package/src/avatarLayout/AvatarLayout.tsx +4 -0
- package/src/avatarView/AvatarView.css +4 -4
- package/src/avatarView/AvatarView.story.tsx +17 -13
- package/src/avatarView/AvatarView.tsx +5 -1
- package/src/avatarView/Dot.css +4 -4
- package/src/avatarView/Dot.less +6 -6
- package/src/avatarView/Dot.tsx +2 -0
- package/src/avatarWrapper/AvatarWrapper.test.tsx +33 -3
- package/src/avatarWrapper/AvatarWrapper.tsx +5 -6
- package/src/button/LegacyButton.tsx +1 -1
- package/src/button/_stories/Button.test.story.tsx +3 -3
- package/src/common/circle/Circle.tsx +5 -1
- package/src/common/hooks/useContainerSize.test.tsx +1 -1
- package/src/common/hooks/useHasIntersected/useHasIntersected.ts +12 -4
- package/src/common/liveRegion/LiveRegion.tsx +5 -2
- package/src/dateInput/DateInput.tsx +10 -10
- package/src/dateLookup/monthCalendar/table/MonthCalendarTable.tsx +1 -5
- package/src/dateLookup/yearCalendar/table/YearCalendarTable.tsx +1 -1
- package/src/expressiveMoneyInput/ExpressiveMoneyInput.css +2 -0
- package/src/expressiveMoneyInput/ExpressiveMoneyInput.test.story.tsx +43 -0
- package/src/expressiveMoneyInput/ExpressiveMoneyInput.tsx +1 -1
- package/src/expressiveMoneyInput/amountInput/AmountInput.css +2 -0
- package/src/expressiveMoneyInput/amountInput/AmountInput.less +2 -0
- package/src/expressiveMoneyInput/amountInput/AmountInput.tsx +23 -16
- package/src/expressiveMoneyInput/hooks/useInputStyle.ts +20 -8
- package/src/expressiveMoneyInput/hooks/useSelectionRange.ts +2 -0
- package/src/field/Field.css +19 -3
- package/src/field/Field.less +17 -3
- package/src/field/Field.messages.ts +8 -0
- package/src/field/Field.story.tsx +5 -1
- package/src/field/Field.test.tsx +90 -0
- package/src/field/Field.tsx +84 -37
- package/src/header/Header.tsx +2 -2
- package/src/i18n/en.json +1 -0
- package/src/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.tsx +4 -0
- package/src/inputs/SelectInput/Options/SelectInputOptions.tsx +43 -27
- package/src/inputs/SelectInput/Popover/SelectInputPopover.tsx +4 -0
- package/src/inputs/SelectInput/SelectInput.tsx +21 -15
- package/src/inputs/SelectInput/TriggerButton/SelectInputTriggerButton.tsx +1 -1
- package/src/inputs/TextArea.story.tsx +97 -0
- package/src/inputs/TextArea.test.story.tsx +142 -0
- package/src/inputs/TextArea.tsx +7 -2
- package/src/inputs/contexts.tsx +18 -1
- package/src/main.css +42 -8
- package/src/nudge/Nudge.tsx +29 -20
- package/src/phoneNumberInput/PhoneNumberInput.test.tsx +16 -0
- package/src/phoneNumberInput/PhoneNumberInput.tsx +11 -13
- package/src/promoCard/PromoCard.story.tsx +3 -3
- package/src/promoCard/PromoCardGroup.tsx +39 -21
- package/src/segmentedControl/SegmentedControl.test.tsx +25 -0
- package/src/segmentedControl/SegmentedControl.tsx +7 -1
- package/src/select/Select.story.tsx +1 -1
- package/src/styles/less/core/_typography.less +28 -6
- package/src/styles/less/neptune.css +15 -1
- package/src/tabs/Tabs.tsx +1 -1
- package/src/textareaWithDisplayFormat/TextareaWithDisplayFormat.story.tsx +1 -0
- package/src/tooltip/Tooltip.tsx +3 -0
- package/src/uploadInput/UploadInput.test.tsx +19 -0
- package/src/uploadInput/UploadInput.tsx +28 -24
package/build/tabs/Tabs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../src/tabs/Tabs.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport clamp from 'lodash.clamp';\nimport { Component, createRef } from 'react';\n\nimport { Width, Direction } from '../common';\nimport { DirectionContext } from '../provider/direction';\n\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport {\n getSwipeDifference,\n swipedLeftToRight,\n swipedRightToLeft,\n swipeShouldChangeTab,\n Swipe,\n} from './utils';\n\nconst MIN_INDEX = 0;\n\nexport interface TabItem {\n title: string;\n content: React.ReactNode;\n disabled: boolean;\n}\n\nexport interface TabsProps {\n tabs: TabItem[];\n selected: number;\n name: string;\n /** @default true */\n changeTabOnSwipe?: boolean;\n className?: string;\n /** @default 'block' */\n headerWidth?: `${Width}`;\n onTabSelect: (index: number) => void;\n}\n\ninterface TabsState {\n start: Swipe | null;\n translateLineX: string | null;\n isSwiping: boolean;\n isScrolling: boolean;\n fullWidthTabs: boolean;\n}\n\nexport default class Tabs extends Component<TabsProps, TabsState> {\n declare props: TabsProps & Required<Pick<TabsProps, keyof typeof Tabs.defaultProps>>;\n\n static defaultProps = {\n changeTabOnSwipe: true,\n headerWidth: Width.BLOCK,\n } satisfies Partial<TabsProps>;\n\n containerReference = createRef<HTMLDivElement>();\n\n constructor(props: Tabs['props']) {\n super(props);\n this.state = {\n start: null,\n translateLineX: null,\n isSwiping: false,\n isScrolling: false,\n fullWidthTabs: props.headerWidth === Width.BLOCK,\n };\n }\n\n container: HTMLDivElement | null = null;\n\n containerWidth = 0;\n\n tabRefs: (HTMLLIElement | null)[] = [];\n\n get MAX_INDEX() {\n return this.props.tabs.length - 1;\n }\n\n componentDidMount() {\n const { selected } = this.props;\n\n this.setTabWidth();\n this.switchTab(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n this.animateLine(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n document.body.addEventListener('touchmove', this.disableScroll, { passive: false });\n document.body.addEventListener('touchforcechange', this.disableScroll, { passive: false });\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(previousProps: TabsProps) {\n const currentSelected = this.props.selected;\n const previousSelected = previousProps.selected;\n const currentSelectedTab = this.props.tabs[currentSelected];\n const currentSelectedTabIsDisabled = currentSelectedTab?.disabled;\n const previousSelectedTab = previousProps.tabs[previousSelected];\n const previousSelectedTabIsDisabled = previousSelectedTab?.disabled;\n const currentTabsLength = this.props.tabs.length;\n const previousTabsLength = previousProps.tabs.length;\n const currentDisabledTabsLength = this.props.tabs.filter((tab) => !tab.disabled).length;\n const previousDisabledTabsLength = previousProps.tabs.filter((tab) => !tab.disabled).length;\n const currentHeaderWidth = this.props.headerWidth;\n const previousFullHeaderWidth = previousProps.headerWidth;\n\n if (\n currentHeaderWidth !== previousFullHeaderWidth ||\n currentTabsLength !== previousTabsLength\n ) {\n this.setTabWidth();\n }\n\n if (\n currentSelected !== previousSelected ||\n currentDisabledTabsLength !== previousDisabledTabsLength ||\n currentSelectedTabIsDisabled !== previousSelectedTabIsDisabled\n ) {\n this.animateLine(clamp(currentSelected, MIN_INDEX, this.MAX_INDEX));\n }\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('touchmove', this.disableScroll);\n document.body.removeEventListener('touchforcechange', this.disableScroll);\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = () => {\n this.setContainerWidth(this.container);\n };\n\n setContainerRefAndWidth = (node: HTMLDivElement | null) => {\n this.container = node;\n this.setContainerWidth(node);\n };\n\n setContainerWidth = (node: HTMLDivElement | null) => {\n if (!node) {\n return;\n }\n\n const { width } = node.getBoundingClientRect();\n\n this.containerWidth = width;\n };\n\n isTabDisabled = (index: number) => {\n const { tabs } = this.props;\n\n return tabs[index]?.disabled ?? false;\n };\n\n getAllTabsWidth = () => {\n return this.tabRefs\n .map((reference) => {\n return reference ? reference.getBoundingClientRect().width : 0;\n })\n .reduce((a, b) => a + b, 0);\n };\n\n getDistanceToSelectedTab = (selectedTabIndex: number) => {\n return this.tabRefs\n .filter((_, idx) => idx < selectedTabIndex)\n .map((reference) => (reference ? reference.getBoundingClientRect().width : 0))\n .reduce((a, b) => a + b, 0);\n };\n\n setTabWidth = () => {\n const { fullWidthTabs } = this.state;\n const { headerWidth, selected } = this.props;\n\n const allTabsWidth = this.getAllTabsWidth();\n\n if (!fullWidthTabs && (headerWidth === Width.BLOCK || this.containerWidth < allTabsWidth)) {\n this.setState({ fullWidthTabs: true, translateLineX: `${selected * 100}%` });\n }\n if (fullWidthTabs && headerWidth === Width.AUTO && this.containerWidth >= allTabsWidth) {\n this.setState({\n fullWidthTabs: false,\n translateLineX: `${this.getDistanceToSelectedTab(selected)}px`,\n });\n }\n };\n\n getTabLineWidth = () => {\n const { fullWidthTabs } = this.state;\n const { selected, tabs } = this.props;\n\n if (fullWidthTabs) {\n return `${(1 / tabs.length) * 100}%`;\n }\n\n const reference = this.tabRefs[selected] || this.tabRefs[this.tabRefs.length - 1];\n const width = reference ? reference.getBoundingClientRect().width : 0;\n return `${width}px`;\n };\n\n /*\n * Gets the next tab that should be selected based on the swipe direction\n * and the current selected tab (is called recursively to account for disabled tabs).\n */\n getTabToSelect = (selected: number, start: Swipe, end: Swipe): number => {\n let nextSelected = selected;\n\n if (swipedLeftToRight(start, end)) {\n nextSelected -= 1;\n\n if (nextSelected > MIN_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n } else if (swipedRightToLeft(start, end)) {\n nextSelected += 1;\n\n if (nextSelected < this.MAX_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n }\n\n nextSelected = clamp(\n nextSelected,\n Math.max(selected - 1, MIN_INDEX),\n Math.min(selected + 1, this.MAX_INDEX),\n );\n\n if (this.isTabDisabled(nextSelected)) {\n return selected;\n }\n\n return nextSelected;\n };\n\n swipedOverHalfOfContainer = (difference: number) => difference / this.containerWidth >= 0.5;\n\n switchTab = (index: number) => {\n const { onTabSelect } = this.props;\n onTabSelect(index);\n };\n\n animateLine = (index: number) => {\n this.setState((previousState) => ({\n translateLineX: previousState.fullWidthTabs\n ? `${index * 100}%`\n : `${this.getDistanceToSelectedTab(index)}px`,\n }));\n };\n\n disableScroll = (event: Event) => {\n const { isSwiping } = this.state;\n\n if (isSwiping) {\n event.preventDefault();\n }\n };\n\n handleTabClick = (index: number) => () => {\n this.switchTab(index);\n };\n\n onKeyDown = (index: number) => (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event && event.key === 'Enter') {\n this.switchTab(index);\n }\n };\n\n handleTouchStart: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const start = {\n x: event.nativeEvent.touches[0].clientX,\n y: event.nativeEvent.touches[0].clientY,\n time: Date.now(),\n };\n this.setState({\n start,\n });\n };\n\n handleTouchMove: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected: currentSelectedFromProps } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n const yAxisDifference = getSwipeDifference(start, end, 'y');\n let { isScrolling, isSwiping } = this.state;\n\n if (!isScrolling && !isSwiping) {\n if (difference > yAxisDifference) {\n isSwiping = true;\n } else {\n isScrolling = true;\n }\n }\n\n this.setState({ isScrolling, isSwiping });\n\n if (isSwiping) {\n const nextSelected = this.getTabToSelect(currentSelectedFromProps, start, end);\n this.animateLine(\n this.swipedOverHalfOfContainer(difference) ? nextSelected : currentSelectedFromProps,\n );\n }\n };\n\n handleTouchEnd: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start, isSwiping } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n\n let nextSelected = selected;\n\n if (isSwiping) {\n if (swipeShouldChangeTab(start, end) || this.swipedOverHalfOfContainer(difference)) {\n nextSelected = this.getTabToSelect(nextSelected, start, end);\n }\n\n if (nextSelected !== selected) {\n this.switchTab(nextSelected);\n } else {\n this.animateLine(nextSelected);\n }\n }\n\n this.setState({ isSwiping: false, isScrolling: false });\n };\n\n render() {\n const { tabs, changeTabOnSwipe, name, selected, className, headerWidth } = this.props;\n const { translateLineX, fullWidthTabs } = this.state;\n\n const selectedTab = tabs[selected];\n\n return (\n <DirectionContext.Consumer>\n {(direction) => {\n const isRTL = direction === Direction.RTL;\n return (\n <div\n ref={this.containerReference}\n className={clsx('tabs', className, {\n 'tabs--auto-width': headerWidth === Width.AUTO,\n })}\n onTouchStart={changeTabOnSwipe ? this.handleTouchStart : undefined}\n onTouchEnd={changeTabOnSwipe ? this.handleTouchEnd : undefined}\n onTouchMove={changeTabOnSwipe ? this.handleTouchMove : undefined}\n >\n <TabList>\n {tabs.map(({ title, disabled }, index) => {\n return (\n <Tab\n key={title}\n ref={(node) => {\n this.tabRefs[index] = node;\n }}\n id={`${name}-tab-${index}`}\n panelId={`${name}-panel-${index}`}\n selected={selected === index}\n disabled={disabled}\n focusTab={() => {\n if (this.containerReference.current?.contains(document.activeElement)) {\n this.tabRefs[index]?.focus();\n }\n }}\n onClick={disabled ? undefined : this.handleTabClick(index)}\n onKeyDown={this.onKeyDown(index)}\n {...(fullWidthTabs\n ? { style: { width: `${(1 / tabs.length) * 100}%` } }\n : {})}\n >\n {title}\n </Tab>\n );\n })}\n {translateLineX ? (\n <li\n role=\"none\"\n className=\"tabs__line\"\n style={{\n width: this.getTabLineWidth(),\n transform: isRTL\n ? `translateX(-${translateLineX})`\n : `translateX(${translateLineX})`,\n }}\n />\n ) : null}\n </TabList>\n <div ref={this.setContainerRefAndWidth} className=\"tabs__panel-container\">\n {selectedTab && !selectedTab.disabled ? (\n <TabPanel\n key={selectedTab.title}\n tabId={`${name}-tab-${selected}`}\n id={`${name}-panel-${selected}`}\n style={{\n width: '100%',\n }}\n >\n {selectedTab.content}\n </TabPanel>\n ) : null}\n </div>\n </div>\n );\n }}\n </DirectionContext.Consumer>\n );\n }\n}\n"],"names":["MIN_INDEX","Tabs","Component","defaultProps","changeTabOnSwipe","headerWidth","Width","BLOCK","containerReference","createRef","constructor","props","state","start","translateLineX","isSwiping","isScrolling","fullWidthTabs","container","containerWidth","tabRefs","MAX_INDEX","tabs","length","componentDidMount","selected","setTabWidth","switchTab","clamp","animateLine","document","body","addEventListener","disableScroll","passive","window","handleResize","componentDidUpdate","previousProps","currentSelected","previousSelected","currentSelectedTab","currentSelectedTabIsDisabled","disabled","previousSelectedTab","previousSelectedTabIsDisabled","currentTabsLength","previousTabsLength","currentDisabledTabsLength","filter","tab","previousDisabledTabsLength","currentHeaderWidth","previousFullHeaderWidth","componentWillUnmount","removeEventListener","setContainerWidth","setContainerRefAndWidth","node","width","getBoundingClientRect","isTabDisabled","index","getAllTabsWidth","map","reference","reduce","a","b","getDistanceToSelectedTab","selectedTabIndex","_","idx","allTabsWidth","setState","AUTO","getTabLineWidth","getTabToSelect","end","nextSelected","swipedLeftToRight","swipedRightToLeft","Math","max","min","swipedOverHalfOfContainer","difference","onTabSelect","previousState","event","preventDefault","handleTabClick","onKeyDown","key","handleTouchStart","x","nativeEvent","touches","clientX","y","clientY","time","Date","now","handleTouchMove","currentSelectedFromProps","changedTouches","getSwipeDifference","yAxisDifference","handleTouchEnd","swipeShouldChangeTab","render","name","className","selectedTab","_jsx","DirectionContext","Consumer","children","direction","isRTL","Direction","RTL","_jsxs","ref","clsx","onTouchStart","undefined","onTouchEnd","onTouchMove","TabList","title","Tab","id","panelId","focusTab","current","contains","activeElement","focus","onClick","style","role","transform","TabPanel","tabId","content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../src/tabs/Tabs.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport clamp from 'lodash.clamp';\nimport { Component, createRef } from 'react';\n\nimport { Width, Direction } from '../common';\nimport { DirectionContext } from '../provider/direction';\n\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport {\n getSwipeDifference,\n swipedLeftToRight,\n swipedRightToLeft,\n swipeShouldChangeTab,\n Swipe,\n} from './utils';\n\nconst MIN_INDEX = 0;\n\nexport interface TabItem {\n title: string;\n content: React.ReactNode;\n disabled: boolean;\n}\n\nexport interface TabsProps {\n tabs: TabItem[];\n selected: number;\n name: string;\n /** @default true */\n changeTabOnSwipe?: boolean;\n className?: string;\n /** @default 'block' */\n headerWidth?: `${Width}`;\n onTabSelect: (index: number) => void;\n}\n\ninterface TabsState {\n start: Swipe | null;\n translateLineX: string | null;\n isSwiping: boolean;\n isScrolling: boolean;\n fullWidthTabs: boolean;\n}\n\nexport default class Tabs extends Component<TabsProps, TabsState> {\n declare props: TabsProps & Required<Pick<TabsProps, keyof typeof Tabs.defaultProps>>;\n\n static defaultProps = {\n changeTabOnSwipe: true,\n headerWidth: Width.BLOCK,\n } satisfies Partial<TabsProps>;\n\n containerReference = createRef<HTMLDivElement>();\n\n constructor(props: Tabs['props']) {\n super(props);\n this.state = {\n start: null,\n translateLineX: null,\n isSwiping: false,\n isScrolling: false,\n fullWidthTabs: props.headerWidth === Width.BLOCK,\n };\n }\n\n container: HTMLDivElement | null = null;\n\n containerWidth = 0;\n\n tabRefs: (HTMLLIElement | null)[] = [];\n\n get MAX_INDEX() {\n return this.props.tabs.length - 1;\n }\n\n componentDidMount() {\n const { selected } = this.props;\n\n this.setTabWidth();\n this.switchTab(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n this.animateLine(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n document.body.addEventListener('touchmove', this.disableScroll, { passive: false });\n document.body.addEventListener('touchforcechange', this.disableScroll, { passive: false });\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(previousProps: TabsProps) {\n const currentSelected = this.props.selected;\n const previousSelected = previousProps.selected;\n const currentSelectedTab = this.props.tabs[currentSelected];\n const currentSelectedTabIsDisabled = currentSelectedTab?.disabled;\n const previousSelectedTab = previousProps.tabs[previousSelected];\n const previousSelectedTabIsDisabled = previousSelectedTab?.disabled;\n const currentTabsLength = this.props.tabs.length;\n const previousTabsLength = previousProps.tabs.length;\n const currentDisabledTabsLength = this.props.tabs.filter((tab) => !tab.disabled).length;\n const previousDisabledTabsLength = previousProps.tabs.filter((tab) => !tab.disabled).length;\n const currentHeaderWidth = this.props.headerWidth;\n const previousFullHeaderWidth = previousProps.headerWidth;\n\n if (\n currentHeaderWidth !== previousFullHeaderWidth ||\n currentTabsLength !== previousTabsLength\n ) {\n this.setTabWidth();\n }\n\n if (\n currentSelected !== previousSelected ||\n currentDisabledTabsLength !== previousDisabledTabsLength ||\n currentSelectedTabIsDisabled !== previousSelectedTabIsDisabled\n ) {\n this.animateLine(clamp(currentSelected, MIN_INDEX, this.MAX_INDEX));\n }\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('touchmove', this.disableScroll);\n document.body.removeEventListener('touchforcechange', this.disableScroll);\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = () => {\n this.setContainerWidth(this.container);\n };\n\n setContainerRefAndWidth = (node: HTMLDivElement | null) => {\n this.container = node;\n this.setContainerWidth(node);\n };\n\n setContainerWidth = (node: HTMLDivElement | null) => {\n if (!node) {\n return;\n }\n\n const { width } = node.getBoundingClientRect();\n\n this.containerWidth = width;\n };\n\n isTabDisabled = (index: number) => {\n const { tabs } = this.props;\n\n return tabs[index]?.disabled ?? false;\n };\n\n getAllTabsWidth = () => {\n return this.tabRefs\n .map((reference) => {\n return reference ? reference.getBoundingClientRect().width : 0;\n })\n .reduce((a, b) => a + b, 0);\n };\n\n getDistanceToSelectedTab = (selectedTabIndex: number) => {\n return this.tabRefs\n .filter((_, idx) => idx < selectedTabIndex)\n .map((reference) => (reference ? reference.getBoundingClientRect().width : 0))\n .reduce((a, b) => a + b, 0);\n };\n\n setTabWidth = () => {\n const { fullWidthTabs } = this.state;\n const { headerWidth, selected } = this.props;\n\n const allTabsWidth = this.getAllTabsWidth();\n\n if (!fullWidthTabs && (headerWidth === Width.BLOCK || this.containerWidth < allTabsWidth)) {\n this.setState({ fullWidthTabs: true, translateLineX: `${selected * 100}%` });\n }\n if (fullWidthTabs && headerWidth === Width.AUTO && this.containerWidth >= allTabsWidth) {\n this.setState({\n fullWidthTabs: false,\n translateLineX: `${this.getDistanceToSelectedTab(selected)}px`,\n });\n }\n };\n\n getTabLineWidth = () => {\n const { fullWidthTabs } = this.state;\n const { selected, tabs } = this.props;\n\n if (fullWidthTabs) {\n return `${(1 / tabs.length) * 100}%`;\n }\n\n const reference = this.tabRefs[selected] || this.tabRefs[this.tabRefs.length - 1];\n const width = reference ? reference.getBoundingClientRect().width : 0;\n return `${width}px`;\n };\n\n /*\n * Gets the next tab that should be selected based on the swipe direction\n * and the current selected tab (is called recursively to account for disabled tabs).\n */\n getTabToSelect = (selected: number, start: Swipe, end: Swipe): number => {\n let nextSelected = selected;\n\n if (swipedLeftToRight(start, end)) {\n nextSelected -= 1;\n\n if (nextSelected > MIN_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n } else if (swipedRightToLeft(start, end)) {\n nextSelected += 1;\n\n if (nextSelected < this.MAX_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n }\n\n nextSelected = clamp(\n nextSelected,\n Math.max(selected - 1, MIN_INDEX),\n Math.min(selected + 1, this.MAX_INDEX),\n );\n\n if (this.isTabDisabled(nextSelected)) {\n return selected;\n }\n\n return nextSelected;\n };\n\n swipedOverHalfOfContainer = (difference: number) => difference / this.containerWidth >= 0.5;\n\n switchTab = (index: number) => {\n const { onTabSelect } = this.props;\n onTabSelect(index);\n };\n\n animateLine = (index: number) => {\n this.setState((previousState) => ({\n translateLineX: previousState.fullWidthTabs\n ? `${index * 100}%`\n : `${this.getDistanceToSelectedTab(index)}px`,\n }));\n };\n\n disableScroll = (event: Event) => {\n const { isSwiping } = this.state;\n\n if (isSwiping) {\n event.preventDefault();\n }\n };\n\n handleTabClick = (index: number) => () => {\n this.switchTab(index);\n };\n\n onKeyDown = (index: number) => (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event?.key === 'Enter') {\n this.switchTab(index);\n }\n };\n\n handleTouchStart: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const start = {\n x: event.nativeEvent.touches[0].clientX,\n y: event.nativeEvent.touches[0].clientY,\n time: Date.now(),\n };\n this.setState({\n start,\n });\n };\n\n handleTouchMove: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected: currentSelectedFromProps } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n const yAxisDifference = getSwipeDifference(start, end, 'y');\n let { isScrolling, isSwiping } = this.state;\n\n if (!isScrolling && !isSwiping) {\n if (difference > yAxisDifference) {\n isSwiping = true;\n } else {\n isScrolling = true;\n }\n }\n\n this.setState({ isScrolling, isSwiping });\n\n if (isSwiping) {\n const nextSelected = this.getTabToSelect(currentSelectedFromProps, start, end);\n this.animateLine(\n this.swipedOverHalfOfContainer(difference) ? nextSelected : currentSelectedFromProps,\n );\n }\n };\n\n handleTouchEnd: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start, isSwiping } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n\n let nextSelected = selected;\n\n if (isSwiping) {\n if (swipeShouldChangeTab(start, end) || this.swipedOverHalfOfContainer(difference)) {\n nextSelected = this.getTabToSelect(nextSelected, start, end);\n }\n\n if (nextSelected !== selected) {\n this.switchTab(nextSelected);\n } else {\n this.animateLine(nextSelected);\n }\n }\n\n this.setState({ isSwiping: false, isScrolling: false });\n };\n\n render() {\n const { tabs, changeTabOnSwipe, name, selected, className, headerWidth } = this.props;\n const { translateLineX, fullWidthTabs } = this.state;\n\n const selectedTab = tabs[selected];\n\n return (\n <DirectionContext.Consumer>\n {(direction) => {\n const isRTL = direction === Direction.RTL;\n return (\n <div\n ref={this.containerReference}\n className={clsx('tabs', className, {\n 'tabs--auto-width': headerWidth === Width.AUTO,\n })}\n onTouchStart={changeTabOnSwipe ? this.handleTouchStart : undefined}\n onTouchEnd={changeTabOnSwipe ? this.handleTouchEnd : undefined}\n onTouchMove={changeTabOnSwipe ? this.handleTouchMove : undefined}\n >\n <TabList>\n {tabs.map(({ title, disabled }, index) => {\n return (\n <Tab\n key={title}\n ref={(node) => {\n this.tabRefs[index] = node;\n }}\n id={`${name}-tab-${index}`}\n panelId={`${name}-panel-${index}`}\n selected={selected === index}\n disabled={disabled}\n focusTab={() => {\n if (this.containerReference.current?.contains(document.activeElement)) {\n this.tabRefs[index]?.focus();\n }\n }}\n onClick={disabled ? undefined : this.handleTabClick(index)}\n onKeyDown={this.onKeyDown(index)}\n {...(fullWidthTabs\n ? { style: { width: `${(1 / tabs.length) * 100}%` } }\n : {})}\n >\n {title}\n </Tab>\n );\n })}\n {translateLineX ? (\n <li\n role=\"none\"\n className=\"tabs__line\"\n style={{\n width: this.getTabLineWidth(),\n transform: isRTL\n ? `translateX(-${translateLineX})`\n : `translateX(${translateLineX})`,\n }}\n />\n ) : null}\n </TabList>\n <div ref={this.setContainerRefAndWidth} className=\"tabs__panel-container\">\n {selectedTab && !selectedTab.disabled ? (\n <TabPanel\n key={selectedTab.title}\n tabId={`${name}-tab-${selected}`}\n id={`${name}-panel-${selected}`}\n style={{\n width: '100%',\n }}\n >\n {selectedTab.content}\n </TabPanel>\n ) : null}\n </div>\n </div>\n );\n }}\n </DirectionContext.Consumer>\n );\n }\n}\n"],"names":["MIN_INDEX","Tabs","Component","defaultProps","changeTabOnSwipe","headerWidth","Width","BLOCK","containerReference","createRef","constructor","props","state","start","translateLineX","isSwiping","isScrolling","fullWidthTabs","container","containerWidth","tabRefs","MAX_INDEX","tabs","length","componentDidMount","selected","setTabWidth","switchTab","clamp","animateLine","document","body","addEventListener","disableScroll","passive","window","handleResize","componentDidUpdate","previousProps","currentSelected","previousSelected","currentSelectedTab","currentSelectedTabIsDisabled","disabled","previousSelectedTab","previousSelectedTabIsDisabled","currentTabsLength","previousTabsLength","currentDisabledTabsLength","filter","tab","previousDisabledTabsLength","currentHeaderWidth","previousFullHeaderWidth","componentWillUnmount","removeEventListener","setContainerWidth","setContainerRefAndWidth","node","width","getBoundingClientRect","isTabDisabled","index","getAllTabsWidth","map","reference","reduce","a","b","getDistanceToSelectedTab","selectedTabIndex","_","idx","allTabsWidth","setState","AUTO","getTabLineWidth","getTabToSelect","end","nextSelected","swipedLeftToRight","swipedRightToLeft","Math","max","min","swipedOverHalfOfContainer","difference","onTabSelect","previousState","event","preventDefault","handleTabClick","onKeyDown","key","handleTouchStart","x","nativeEvent","touches","clientX","y","clientY","time","Date","now","handleTouchMove","currentSelectedFromProps","changedTouches","getSwipeDifference","yAxisDifference","handleTouchEnd","swipeShouldChangeTab","render","name","className","selectedTab","_jsx","DirectionContext","Consumer","children","direction","isRTL","Direction","RTL","_jsxs","ref","clsx","onTouchStart","undefined","onTouchEnd","onTouchMove","TabList","title","Tab","id","panelId","focusTab","current","contains","activeElement","focus","onClick","style","role","transform","TabPanel","tabId","content"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBA,MAAMA,SAAS,GAAG,CAAC;AA4BL,MAAOC,IAAK,SAAQC,eAA+B,CAAA;AAG/D,EAAA,OAAOC,YAAY,GAAG;AACpBC,IAAAA,gBAAgB,EAAE,IAAI;IACtBC,WAAW,EAAEC,WAAK,CAACC;GACS;EAE9BC,kBAAkB,gBAAGC,eAAS,EAAkB;EAEhDC,WAAAA,CAAYC,KAAoB,EAAA;IAC9B,KAAK,CAACA,KAAK,CAAC;IACZ,IAAI,CAACC,KAAK,GAAG;AACXC,MAAAA,KAAK,EAAE,IAAI;AACXC,MAAAA,cAAc,EAAE,IAAI;AACpBC,MAAAA,SAAS,EAAE,KAAK;AAChBC,MAAAA,WAAW,EAAE,KAAK;AAClBC,MAAAA,aAAa,EAAEN,KAAK,CAACN,WAAW,KAAKC,WAAK,CAACC;KAC5C;AACH,EAAA;AAEAW,EAAAA,SAAS,GAA0B,IAAI;AAEvCC,EAAAA,cAAc,GAAG,CAAC;AAElBC,EAAAA,OAAO,GAA6B,EAAE;EAEtC,IAAIC,SAASA,GAAA;IACX,OAAO,IAAI,CAACV,KAAK,CAACW,IAAI,CAACC,MAAM,GAAG,CAAC;AACnC,EAAA;AAEAC,EAAAA,iBAAiBA,GAAA;IACf,MAAM;AAAEC,MAAAA;KAAU,GAAG,IAAI,CAACd,KAAK;IAE/B,IAAI,CAACe,WAAW,EAAE;AAClB,IAAA,IAAI,CAACC,SAAS,CAACC,sBAAK,CAACH,QAAQ,EAAEzB,SAAS,EAAE,IAAI,CAACqB,SAAS,CAAC,CAAC;AAC1D,IAAA,IAAI,CAACQ,WAAW,CAACD,sBAAK,CAACH,QAAQ,EAAEzB,SAAS,EAAE,IAAI,CAACqB,SAAS,CAAC,CAAC;IAC5DS,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,WAAW,EAAE,IAAI,CAACC,aAAa,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAK,KAAE,CAAC;IACnFJ,QAAQ,CAACC,IAAI,CAACC,gBAAgB,CAAC,kBAAkB,EAAE,IAAI,CAACC,aAAa,EAAE;AAAEC,MAAAA,OAAO,EAAE;AAAK,KAAE,CAAC;IAC1FC,MAAM,CAACH,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAACI,YAAY,CAAC;AACtD,EAAA;EAEAC,kBAAkBA,CAACC,aAAwB,EAAA;AACzC,IAAA,MAAMC,eAAe,GAAG,IAAI,CAAC5B,KAAK,CAACc,QAAQ;AAC3C,IAAA,MAAMe,gBAAgB,GAAGF,aAAa,CAACb,QAAQ;IAC/C,MAAMgB,kBAAkB,GAAG,IAAI,CAAC9B,KAAK,CAACW,IAAI,CAACiB,eAAe,CAAC;AAC3D,IAAA,MAAMG,4BAA4B,GAAGD,kBAAkB,EAAEE,QAAQ;AACjE,IAAA,MAAMC,mBAAmB,GAAGN,aAAa,CAAChB,IAAI,CAACkB,gBAAgB,CAAC;AAChE,IAAA,MAAMK,6BAA6B,GAAGD,mBAAmB,EAAED,QAAQ;IACnE,MAAMG,iBAAiB,GAAG,IAAI,CAACnC,KAAK,CAACW,IAAI,CAACC,MAAM;AAChD,IAAA,MAAMwB,kBAAkB,GAAGT,aAAa,CAAChB,IAAI,CAACC,MAAM;AACpD,IAAA,MAAMyB,yBAAyB,GAAG,IAAI,CAACrC,KAAK,CAACW,IAAI,CAAC2B,MAAM,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACP,QAAQ,CAAC,CAACpB,MAAM;AACvF,IAAA,MAAM4B,0BAA0B,GAAGb,aAAa,CAAChB,IAAI,CAAC2B,MAAM,CAAEC,GAAG,IAAK,CAACA,GAAG,CAACP,QAAQ,CAAC,CAACpB,MAAM;AAC3F,IAAA,MAAM6B,kBAAkB,GAAG,IAAI,CAACzC,KAAK,CAACN,WAAW;AACjD,IAAA,MAAMgD,uBAAuB,GAAGf,aAAa,CAACjC,WAAW;AAEzD,IAAA,IACE+C,kBAAkB,KAAKC,uBAAuB,IAC9CP,iBAAiB,KAAKC,kBAAkB,EACxC;MACA,IAAI,CAACrB,WAAW,EAAE;AACpB,IAAA;IAEA,IACEa,eAAe,KAAKC,gBAAgB,IACpCQ,yBAAyB,KAAKG,0BAA0B,IACxDT,4BAA4B,KAAKG,6BAA6B,EAC9D;AACA,MAAA,IAAI,CAAChB,WAAW,CAACD,sBAAK,CAACW,eAAe,EAAEvC,SAAS,EAAE,IAAI,CAACqB,SAAS,CAAC,CAAC;AACrE,IAAA;AACF,EAAA;AAEAiC,EAAAA,oBAAoBA,GAAA;IAClBxB,QAAQ,CAACC,IAAI,CAACwB,mBAAmB,CAAC,WAAW,EAAE,IAAI,CAACtB,aAAa,CAAC;IAClEH,QAAQ,CAACC,IAAI,CAACwB,mBAAmB,CAAC,kBAAkB,EAAE,IAAI,CAACtB,aAAa,CAAC;IACzEE,MAAM,CAACoB,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAACnB,YAAY,CAAC;AACzD,EAAA;EAEAA,YAAY,GAAGA,MAAK;AAClB,IAAA,IAAI,CAACoB,iBAAiB,CAAC,IAAI,CAACtC,SAAS,CAAC;EACxC,CAAC;EAEDuC,uBAAuB,GAAIC,IAA2B,IAAI;IACxD,IAAI,CAACxC,SAAS,GAAGwC,IAAI;AACrB,IAAA,IAAI,CAACF,iBAAiB,CAACE,IAAI,CAAC;EAC9B,CAAC;EAEDF,iBAAiB,GAAIE,IAA2B,IAAI;IAClD,IAAI,CAACA,IAAI,EAAE;AACT,MAAA;AACF,IAAA;IAEA,MAAM;AAAEC,MAAAA;AAAK,KAAE,GAAGD,IAAI,CAACE,qBAAqB,EAAE;IAE9C,IAAI,CAACzC,cAAc,GAAGwC,KAAK;EAC7B,CAAC;EAEDE,aAAa,GAAIC,KAAa,IAAI;IAChC,MAAM;AAAExC,MAAAA;KAAM,GAAG,IAAI,CAACX,KAAK;AAE3B,IAAA,OAAOW,IAAI,CAACwC,KAAK,CAAC,EAAEnB,QAAQ,IAAI,KAAK;EACvC,CAAC;EAEDoB,eAAe,GAAGA,MAAK;AACrB,IAAA,OAAO,IAAI,CAAC3C,OAAO,CAChB4C,GAAG,CAAEC,SAAS,IAAI;MACjB,OAAOA,SAAS,GAAGA,SAAS,CAACL,qBAAqB,EAAE,CAACD,KAAK,GAAG,CAAC;AAChE,IAAA,CAAC,CAAC,CACDO,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAC/B,CAAC;EAEDC,wBAAwB,GAAIC,gBAAwB,IAAI;IACtD,OAAO,IAAI,CAAClD,OAAO,CAChB6B,MAAM,CAAC,CAACsB,CAAC,EAAEC,GAAG,KAAKA,GAAG,GAAGF,gBAAgB,CAAC,CAC1CN,GAAG,CAAEC,SAAS,IAAMA,SAAS,GAAGA,SAAS,CAACL,qBAAqB,EAAE,CAACD,KAAK,GAAG,CAAE,CAAC,CAC7EO,MAAM,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,GAAGC,CAAC,EAAE,CAAC,CAAC;EAC/B,CAAC;EAED1C,WAAW,GAAGA,MAAK;IACjB,MAAM;AAAET,MAAAA;KAAe,GAAG,IAAI,CAACL,KAAK;IACpC,MAAM;MAAEP,WAAW;AAAEoB,MAAAA;KAAU,GAAG,IAAI,CAACd,KAAK;AAE5C,IAAA,MAAM8D,YAAY,GAAG,IAAI,CAACV,eAAe,EAAE;AAE3C,IAAA,IAAI,CAAC9C,aAAa,KAAKZ,WAAW,KAAKC,WAAK,CAACC,KAAK,IAAI,IAAI,CAACY,cAAc,GAAGsD,YAAY,CAAC,EAAE;MACzF,IAAI,CAACC,QAAQ,CAAC;AAAEzD,QAAAA,aAAa,EAAE,IAAI;AAAEH,QAAAA,cAAc,EAAE,CAAA,EAAGW,QAAQ,GAAG,GAAG,CAAA,CAAA;AAAG,OAAE,CAAC;AAC9E,IAAA;AACA,IAAA,IAAIR,aAAa,IAAIZ,WAAW,KAAKC,WAAK,CAACqE,IAAI,IAAI,IAAI,CAACxD,cAAc,IAAIsD,YAAY,EAAE;MACtF,IAAI,CAACC,QAAQ,CAAC;AACZzD,QAAAA,aAAa,EAAE,KAAK;AACpBH,QAAAA,cAAc,EAAE,CAAA,EAAG,IAAI,CAACuD,wBAAwB,CAAC5C,QAAQ,CAAC,CAAA,EAAA;AAC3D,OAAA,CAAC;AACJ,IAAA;EACF,CAAC;EAEDmD,eAAe,GAAGA,MAAK;IACrB,MAAM;AAAE3D,MAAAA;KAAe,GAAG,IAAI,CAACL,KAAK;IACpC,MAAM;MAAEa,QAAQ;AAAEH,MAAAA;KAAM,GAAG,IAAI,CAACX,KAAK;AAErC,IAAA,IAAIM,aAAa,EAAE;MACjB,OAAO,CAAA,EAAI,CAAC,GAAGK,IAAI,CAACC,MAAM,GAAI,GAAG,CAAA,CAAA,CAAG;AACtC,IAAA;IAEA,MAAM0C,SAAS,GAAG,IAAI,CAAC7C,OAAO,CAACK,QAAQ,CAAC,IAAI,IAAI,CAACL,OAAO,CAAC,IAAI,CAACA,OAAO,CAACG,MAAM,GAAG,CAAC,CAAC;AACjF,IAAA,MAAMoC,KAAK,GAAGM,SAAS,GAAGA,SAAS,CAACL,qBAAqB,EAAE,CAACD,KAAK,GAAG,CAAC;IACrE,OAAO,CAAA,EAAGA,KAAK,CAAA,EAAA,CAAI;EACrB,CAAC;AAED;;;AAGG;AACHkB,EAAAA,cAAc,GAAGA,CAACpD,QAAgB,EAAEZ,KAAY,EAAEiE,GAAU,KAAY;IACtE,IAAIC,YAAY,GAAGtD,QAAQ;AAE3B,IAAA,IAAIuD,uBAAiB,CAACnE,KAAK,EAAEiE,GAAG,CAAC,EAAE;AACjCC,MAAAA,YAAY,IAAI,CAAC;MAEjB,IAAIA,YAAY,GAAG/E,SAAS,IAAI,IAAI,CAAC6D,aAAa,CAACkB,YAAY,CAAC,EAAE;QAChE,OAAO,IAAI,CAACF,cAAc,CAACE,YAAY,EAAElE,KAAK,EAAEiE,GAAG,CAAC;AACtD,MAAA;IACF,CAAC,MAAM,IAAIG,uBAAiB,CAACpE,KAAK,EAAEiE,GAAG,CAAC,EAAE;AACxCC,MAAAA,YAAY,IAAI,CAAC;AAEjB,MAAA,IAAIA,YAAY,GAAG,IAAI,CAAC1D,SAAS,IAAI,IAAI,CAACwC,aAAa,CAACkB,YAAY,CAAC,EAAE;QACrE,OAAO,IAAI,CAACF,cAAc,CAACE,YAAY,EAAElE,KAAK,EAAEiE,GAAG,CAAC;AACtD,MAAA;AACF,IAAA;AAEAC,IAAAA,YAAY,GAAGnD,sBAAK,CAClBmD,YAAY,EACZG,IAAI,CAACC,GAAG,CAAC1D,QAAQ,GAAG,CAAC,EAAEzB,SAAS,CAAC,EACjCkF,IAAI,CAACE,GAAG,CAAC3D,QAAQ,GAAG,CAAC,EAAE,IAAI,CAACJ,SAAS,CAAC,CACvC;AAED,IAAA,IAAI,IAAI,CAACwC,aAAa,CAACkB,YAAY,CAAC,EAAE;AACpC,MAAA,OAAOtD,QAAQ;AACjB,IAAA;AAEA,IAAA,OAAOsD,YAAY;EACrB,CAAC;EAEDM,yBAAyB,GAAIC,UAAkB,IAAKA,UAAU,GAAG,IAAI,CAACnE,cAAc,IAAI,GAAG;EAE3FQ,SAAS,GAAImC,KAAa,IAAI;IAC5B,MAAM;AAAEyB,MAAAA;KAAa,GAAG,IAAI,CAAC5E,KAAK;IAClC4E,WAAW,CAACzB,KAAK,CAAC;EACpB,CAAC;EAEDjC,WAAW,GAAIiC,KAAa,IAAI;AAC9B,IAAA,IAAI,CAACY,QAAQ,CAAEc,aAAa,KAAM;AAChC1E,MAAAA,cAAc,EAAE0E,aAAa,CAACvE,aAAa,GACvC,GAAG6C,KAAK,GAAG,GAAG,CAAA,CAAA,CAAG,GACjB,CAAA,EAAG,IAAI,CAACO,wBAAwB,CAACP,KAAK,CAAC,CAAA,EAAA;AAC5C,KAAA,CAAC,CAAC;EACL,CAAC;EAED7B,aAAa,GAAIwD,KAAY,IAAI;IAC/B,MAAM;AAAE1E,MAAAA;KAAW,GAAG,IAAI,CAACH,KAAK;AAEhC,IAAA,IAAIG,SAAS,EAAE;MACb0E,KAAK,CAACC,cAAc,EAAE;AACxB,IAAA;EACF,CAAC;EAEDC,cAAc,GAAI7B,KAAa,IAAK,MAAK;AACvC,IAAA,IAAI,CAACnC,SAAS,CAACmC,KAAK,CAAC;EACvB,CAAC;AAED8B,EAAAA,SAAS,GAAI9B,KAAa,IAAM2B,KAAyC,IAAI;AAC3E,IAAA,IAAIA,KAAK,EAAEI,GAAG,KAAK,OAAO,EAAE;AAC1B,MAAA,IAAI,CAAClE,SAAS,CAACmC,KAAK,CAAC;AACvB,IAAA;EACF,CAAC;EAEDgC,gBAAgB,GAA6CL,KAAK,IAAI;AACpE,IAAA,MAAM5E,KAAK,GAAG;MACZkF,CAAC,EAAEN,KAAK,CAACO,WAAW,CAACC,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO;MACvCC,CAAC,EAAEV,KAAK,CAACO,WAAW,CAACC,OAAO,CAAC,CAAC,CAAC,CAACG,OAAO;AACvCC,MAAAA,IAAI,EAAEC,IAAI,CAACC,GAAG;KACf;IACD,IAAI,CAAC7B,QAAQ,CAAC;AACZ7D,MAAAA;AACD,KAAA,CAAC;EACJ,CAAC;EAED2F,eAAe,GAA6Cf,KAAK,IAAI;IACnE,MAAM;AAAE5E,MAAAA;KAAO,GAAG,IAAI,CAACD,KAAK;IAC5B,IAAIC,KAAK,IAAI,IAAI,EAAE;AACjB,MAAA;AACF,IAAA;IAEA,MAAM;AAAEY,MAAAA,QAAQ,EAAEgF;KAA0B,GAAG,IAAI,CAAC9F,KAAK;AACzD,IAAA,MAAMmE,GAAG,GAAU;MACjBiB,CAAC,EAAEN,KAAK,CAACO,WAAW,CAACU,cAAc,CAAC,CAAC,CAAC,CAACR,OAAO;MAC9CC,CAAC,EAAEV,KAAK,CAACO,WAAW,CAACU,cAAc,CAAC,CAAC,CAAC,CAACN,OAAO;AAC9CC,MAAAA,IAAI,EAAEC,IAAI,CAACC,GAAG;KACf;AACD,IAAA,MAAMjB,UAAU,GAAGqB,wBAAkB,CAAC9F,KAAK,EAAEiE,GAAG,CAAC;IACjD,MAAM8B,eAAe,GAAGD,wBAAkB,CAAC9F,KAAK,EAAEiE,GAAG,EAAE,GAAG,CAAC;IAC3D,IAAI;MAAE9D,WAAW;AAAED,MAAAA;KAAW,GAAG,IAAI,CAACH,KAAK;AAE3C,IAAA,IAAI,CAACI,WAAW,IAAI,CAACD,SAAS,EAAE;MAC9B,IAAIuE,UAAU,GAAGsB,eAAe,EAAE;AAChC7F,QAAAA,SAAS,GAAG,IAAI;AAClB,MAAA,CAAC,MAAM;AACLC,QAAAA,WAAW,GAAG,IAAI;AACpB,MAAA;AACF,IAAA;IAEA,IAAI,CAAC0D,QAAQ,CAAC;MAAE1D,WAAW;AAAED,MAAAA;AAAS,KAAE,CAAC;AAEzC,IAAA,IAAIA,SAAS,EAAE;MACb,MAAMgE,YAAY,GAAG,IAAI,CAACF,cAAc,CAAC4B,wBAAwB,EAAE5F,KAAK,EAAEiE,GAAG,CAAC;AAC9E,MAAA,IAAI,CAACjD,WAAW,CACd,IAAI,CAACwD,yBAAyB,CAACC,UAAU,CAAC,GAAGP,YAAY,GAAG0B,wBAAwB,CACrF;AACH,IAAA;EACF,CAAC;EAEDI,cAAc,GAA6CpB,KAAK,IAAI;IAClE,MAAM;MAAE5E,KAAK;AAAEE,MAAAA;KAAW,GAAG,IAAI,CAACH,KAAK;IACvC,IAAIC,KAAK,IAAI,IAAI,EAAE;AACjB,MAAA;AACF,IAAA;IAEA,MAAM;AAAEY,MAAAA;KAAU,GAAG,IAAI,CAACd,KAAK;AAC/B,IAAA,MAAMmE,GAAG,GAAU;MACjBiB,CAAC,EAAEN,KAAK,CAACO,WAAW,CAACU,cAAc,CAAC,CAAC,CAAC,CAACR,OAAO;MAC9CC,CAAC,EAAEV,KAAK,CAACO,WAAW,CAACU,cAAc,CAAC,CAAC,CAAC,CAACN,OAAO;AAC9CC,MAAAA,IAAI,EAAEC,IAAI,CAACC,GAAG;KACf;AACD,IAAA,MAAMjB,UAAU,GAAGqB,wBAAkB,CAAC9F,KAAK,EAAEiE,GAAG,CAAC;IAEjD,IAAIC,YAAY,GAAGtD,QAAQ;AAE3B,IAAA,IAAIV,SAAS,EAAE;AACb,MAAA,IAAI+F,0BAAoB,CAACjG,KAAK,EAAEiE,GAAG,CAAC,IAAI,IAAI,CAACO,yBAAyB,CAACC,UAAU,CAAC,EAAE;QAClFP,YAAY,GAAG,IAAI,CAACF,cAAc,CAACE,YAAY,EAAElE,KAAK,EAAEiE,GAAG,CAAC;AAC9D,MAAA;MAEA,IAAIC,YAAY,KAAKtD,QAAQ,EAAE;AAC7B,QAAA,IAAI,CAACE,SAAS,CAACoD,YAAY,CAAC;AAC9B,MAAA,CAAC,MAAM;AACL,QAAA,IAAI,CAAClD,WAAW,CAACkD,YAAY,CAAC;AAChC,MAAA;AACF,IAAA;IAEA,IAAI,CAACL,QAAQ,CAAC;AAAE3D,MAAAA,SAAS,EAAE,KAAK;AAAEC,MAAAA,WAAW,EAAE;AAAK,KAAE,CAAC;EACzD,CAAC;AAED+F,EAAAA,MAAMA,GAAA;IACJ,MAAM;MAAEzF,IAAI;MAAElB,gBAAgB;MAAE4G,IAAI;MAAEvF,QAAQ;MAAEwF,SAAS;AAAE5G,MAAAA;KAAa,GAAG,IAAI,CAACM,KAAK;IACrF,MAAM;MAAEG,cAAc;AAAEG,MAAAA;KAAe,GAAG,IAAI,CAACL,KAAK;AAEpD,IAAA,MAAMsG,WAAW,GAAG5F,IAAI,CAACG,QAAQ,CAAC;AAElC,IAAA,oBACE0F,cAAA,CAACC,kCAAgB,CAACC,QAAQ,EAAA;MAAAC,QAAA,EACtBC,WAAS,IAAI;AACb,QAAA,MAAMC,KAAK,GAAGD,WAAS,KAAKE,mBAAS,CAACC,GAAG;AACzC,QAAA,oBACEC,eAAA,CAAA,KAAA,EAAA;UACEC,GAAG,EAAE,IAAI,CAACpH,kBAAmB;AAC7ByG,UAAAA,SAAS,EAAEY,SAAI,CAAC,MAAM,EAAEZ,SAAS,EAAE;AACjC,YAAA,kBAAkB,EAAE5G,WAAW,KAAKC,WAAK,CAACqE;WAC3C,CAAE;AACHmD,UAAAA,YAAY,EAAE1H,gBAAgB,GAAG,IAAI,CAAC0F,gBAAgB,GAAGiC,SAAU;AACnEC,UAAAA,UAAU,EAAE5H,gBAAgB,GAAG,IAAI,CAACyG,cAAc,GAAGkB,SAAU;AAC/DE,UAAAA,WAAW,EAAE7H,gBAAgB,GAAG,IAAI,CAACoG,eAAe,GAAGuB,SAAU;UAAAT,QAAA,EAAA,cAEjEK,eAAA,CAACO,eAAO,EAAA;AAAAZ,YAAAA,QAAA,EAAA,CACLhG,IAAI,CAAC0C,GAAG,CAAC,CAAC;cAAEmE,KAAK;AAAExF,cAAAA;aAAU,EAAEmB,KAAK,KAAI;cACvC,oBACEqD,cAAA,CAACiB,WAAG,EAAA;gBAEFR,GAAG,EAAGlE,IAAI,IAAI;AACZ,kBAAA,IAAI,CAACtC,OAAO,CAAC0C,KAAK,CAAC,GAAGJ,IAAI;gBAC5B,CAAE;AACF2E,gBAAAA,EAAE,EAAE,CAAA,EAAGrB,IAAI,CAAA,KAAA,EAAQlD,KAAK,CAAA,CAAG;AAC3BwE,gBAAAA,OAAO,EAAE,CAAA,EAAGtB,IAAI,CAAA,OAAA,EAAUlD,KAAK,CAAA,CAAG;gBAClCrC,QAAQ,EAAEA,QAAQ,KAAKqC,KAAM;AAC7BnB,gBAAAA,QAAQ,EAAEA,QAAS;gBACnB4F,QAAQ,EAAEA,MAAK;AACb,kBAAA,IAAI,IAAI,CAAC/H,kBAAkB,CAACgI,OAAO,EAAEC,QAAQ,CAAC3G,QAAQ,CAAC4G,aAAa,CAAC,EAAE;oBACrE,IAAI,CAACtH,OAAO,CAAC0C,KAAK,CAAC,EAAE6E,KAAK,EAAE;AAC9B,kBAAA;gBACF,CAAE;gBACFC,OAAO,EAAEjG,QAAQ,GAAGoF,SAAS,GAAG,IAAI,CAACpC,cAAc,CAAC7B,KAAK,CAAE;AAC3D8B,gBAAAA,SAAS,EAAE,IAAI,CAACA,SAAS,CAAC9B,KAAK,CAAE;AAAA,gBAAA,IAC5B7C,aAAa,GACd;AAAE4H,kBAAAA,KAAK,EAAE;oBAAElF,KAAK,EAAE,GAAI,CAAC,GAAGrC,IAAI,CAACC,MAAM,GAAI,GAAG,CAAA,CAAA;;iBAAO,GACnD,EAAE,CAAA;AAAA+F,gBAAAA,QAAA,EAELa;AAAK,eAAA,EAnBDA,KAoBF,CAAC;AAEV,YAAA,CAAC,CAAC,EACDrH,cAAc,gBACbqG,cAAA,CAAA,IAAA,EAAA;AACE2B,cAAAA,IAAI,EAAC,MAAM;AACX7B,cAAAA,SAAS,EAAC,YAAY;AACtB4B,cAAAA,KAAK,EAAE;AACLlF,gBAAAA,KAAK,EAAE,IAAI,CAACiB,eAAe,EAAE;gBAC7BmE,SAAS,EAAEvB,KAAK,GACZ,CAAA,YAAA,EAAe1G,cAAc,CAAA,CAAA,CAAG,GAChC,cAAcA,cAAc,CAAA,CAAA;AACjC;cACD,GACA,IAAI;WACD,CACT,eAAAqG,cAAA,CAAA,KAAA,EAAA;YAAKS,GAAG,EAAE,IAAI,CAACnE,uBAAwB;AAACwD,YAAAA,SAAS,EAAC,uBAAuB;YAAAK,QAAA,EACtEJ,WAAW,IAAI,CAACA,WAAW,CAACvE,QAAQ,gBACnCwE,cAAA,CAAC6B,gBAAQ,EAAA;AAEPC,cAAAA,KAAK,EAAE,CAAA,EAAGjC,IAAI,CAAA,KAAA,EAAQvF,QAAQ,CAAA,CAAG;AACjC4G,cAAAA,EAAE,EAAE,CAAA,EAAGrB,IAAI,CAAA,OAAA,EAAUvF,QAAQ,CAAA,CAAG;AAChCoH,cAAAA,KAAK,EAAE;AACLlF,gBAAAA,KAAK,EAAE;eACP;cAAA2D,QAAA,EAEDJ,WAAW,CAACgC;AAAO,aAAA,EAPfhC,WAAW,CAACiB,KAQT,CAAC,GACT;AAAI,WACL,CACP;AAAA,SAAK,CAAC;AAEV,MAAA;AAAC,KACwB,CAAC;AAEhC,EAAA;;;;;"}
|
package/build/tabs/Tabs.mjs
CHANGED
package/build/tabs/Tabs.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.mjs","sources":["../../src/tabs/Tabs.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport clamp from 'lodash.clamp';\nimport { Component, createRef } from 'react';\n\nimport { Width, Direction } from '../common';\nimport { DirectionContext } from '../provider/direction';\n\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport {\n getSwipeDifference,\n swipedLeftToRight,\n swipedRightToLeft,\n swipeShouldChangeTab,\n Swipe,\n} from './utils';\n\nconst MIN_INDEX = 0;\n\nexport interface TabItem {\n title: string;\n content: React.ReactNode;\n disabled: boolean;\n}\n\nexport interface TabsProps {\n tabs: TabItem[];\n selected: number;\n name: string;\n /** @default true */\n changeTabOnSwipe?: boolean;\n className?: string;\n /** @default 'block' */\n headerWidth?: `${Width}`;\n onTabSelect: (index: number) => void;\n}\n\ninterface TabsState {\n start: Swipe | null;\n translateLineX: string | null;\n isSwiping: boolean;\n isScrolling: boolean;\n fullWidthTabs: boolean;\n}\n\nexport default class Tabs extends Component<TabsProps, TabsState> {\n declare props: TabsProps & Required<Pick<TabsProps, keyof typeof Tabs.defaultProps>>;\n\n static defaultProps = {\n changeTabOnSwipe: true,\n headerWidth: Width.BLOCK,\n } satisfies Partial<TabsProps>;\n\n containerReference = createRef<HTMLDivElement>();\n\n constructor(props: Tabs['props']) {\n super(props);\n this.state = {\n start: null,\n translateLineX: null,\n isSwiping: false,\n isScrolling: false,\n fullWidthTabs: props.headerWidth === Width.BLOCK,\n };\n }\n\n container: HTMLDivElement | null = null;\n\n containerWidth = 0;\n\n tabRefs: (HTMLLIElement | null)[] = [];\n\n get MAX_INDEX() {\n return this.props.tabs.length - 1;\n }\n\n componentDidMount() {\n const { selected } = this.props;\n\n this.setTabWidth();\n this.switchTab(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n this.animateLine(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n document.body.addEventListener('touchmove', this.disableScroll, { passive: false });\n document.body.addEventListener('touchforcechange', this.disableScroll, { passive: false });\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(previousProps: TabsProps) {\n const currentSelected = this.props.selected;\n const previousSelected = previousProps.selected;\n const currentSelectedTab = this.props.tabs[currentSelected];\n const currentSelectedTabIsDisabled = currentSelectedTab?.disabled;\n const previousSelectedTab = previousProps.tabs[previousSelected];\n const previousSelectedTabIsDisabled = previousSelectedTab?.disabled;\n const currentTabsLength = this.props.tabs.length;\n const previousTabsLength = previousProps.tabs.length;\n const currentDisabledTabsLength = this.props.tabs.filter((tab) => !tab.disabled).length;\n const previousDisabledTabsLength = previousProps.tabs.filter((tab) => !tab.disabled).length;\n const currentHeaderWidth = this.props.headerWidth;\n const previousFullHeaderWidth = previousProps.headerWidth;\n\n if (\n currentHeaderWidth !== previousFullHeaderWidth ||\n currentTabsLength !== previousTabsLength\n ) {\n this.setTabWidth();\n }\n\n if (\n currentSelected !== previousSelected ||\n currentDisabledTabsLength !== previousDisabledTabsLength ||\n currentSelectedTabIsDisabled !== previousSelectedTabIsDisabled\n ) {\n this.animateLine(clamp(currentSelected, MIN_INDEX, this.MAX_INDEX));\n }\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('touchmove', this.disableScroll);\n document.body.removeEventListener('touchforcechange', this.disableScroll);\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = () => {\n this.setContainerWidth(this.container);\n };\n\n setContainerRefAndWidth = (node: HTMLDivElement | null) => {\n this.container = node;\n this.setContainerWidth(node);\n };\n\n setContainerWidth = (node: HTMLDivElement | null) => {\n if (!node) {\n return;\n }\n\n const { width } = node.getBoundingClientRect();\n\n this.containerWidth = width;\n };\n\n isTabDisabled = (index: number) => {\n const { tabs } = this.props;\n\n return tabs[index]?.disabled ?? false;\n };\n\n getAllTabsWidth = () => {\n return this.tabRefs\n .map((reference) => {\n return reference ? reference.getBoundingClientRect().width : 0;\n })\n .reduce((a, b) => a + b, 0);\n };\n\n getDistanceToSelectedTab = (selectedTabIndex: number) => {\n return this.tabRefs\n .filter((_, idx) => idx < selectedTabIndex)\n .map((reference) => (reference ? reference.getBoundingClientRect().width : 0))\n .reduce((a, b) => a + b, 0);\n };\n\n setTabWidth = () => {\n const { fullWidthTabs } = this.state;\n const { headerWidth, selected } = this.props;\n\n const allTabsWidth = this.getAllTabsWidth();\n\n if (!fullWidthTabs && (headerWidth === Width.BLOCK || this.containerWidth < allTabsWidth)) {\n this.setState({ fullWidthTabs: true, translateLineX: `${selected * 100}%` });\n }\n if (fullWidthTabs && headerWidth === Width.AUTO && this.containerWidth >= allTabsWidth) {\n this.setState({\n fullWidthTabs: false,\n translateLineX: `${this.getDistanceToSelectedTab(selected)}px`,\n });\n }\n };\n\n getTabLineWidth = () => {\n const { fullWidthTabs } = this.state;\n const { selected, tabs } = this.props;\n\n if (fullWidthTabs) {\n return `${(1 / tabs.length) * 100}%`;\n }\n\n const reference = this.tabRefs[selected] || this.tabRefs[this.tabRefs.length - 1];\n const width = reference ? reference.getBoundingClientRect().width : 0;\n return `${width}px`;\n };\n\n /*\n * Gets the next tab that should be selected based on the swipe direction\n * and the current selected tab (is called recursively to account for disabled tabs).\n */\n getTabToSelect = (selected: number, start: Swipe, end: Swipe): number => {\n let nextSelected = selected;\n\n if (swipedLeftToRight(start, end)) {\n nextSelected -= 1;\n\n if (nextSelected > MIN_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n } else if (swipedRightToLeft(start, end)) {\n nextSelected += 1;\n\n if (nextSelected < this.MAX_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n }\n\n nextSelected = clamp(\n nextSelected,\n Math.max(selected - 1, MIN_INDEX),\n Math.min(selected + 1, this.MAX_INDEX),\n );\n\n if (this.isTabDisabled(nextSelected)) {\n return selected;\n }\n\n return nextSelected;\n };\n\n swipedOverHalfOfContainer = (difference: number) => difference / this.containerWidth >= 0.5;\n\n switchTab = (index: number) => {\n const { onTabSelect } = this.props;\n onTabSelect(index);\n };\n\n animateLine = (index: number) => {\n this.setState((previousState) => ({\n translateLineX: previousState.fullWidthTabs\n ? `${index * 100}%`\n : `${this.getDistanceToSelectedTab(index)}px`,\n }));\n };\n\n disableScroll = (event: Event) => {\n const { isSwiping } = this.state;\n\n if (isSwiping) {\n event.preventDefault();\n }\n };\n\n handleTabClick = (index: number) => () => {\n this.switchTab(index);\n };\n\n onKeyDown = (index: number) => (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event && event.key === 'Enter') {\n this.switchTab(index);\n }\n };\n\n handleTouchStart: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const start = {\n x: event.nativeEvent.touches[0].clientX,\n y: event.nativeEvent.touches[0].clientY,\n time: Date.now(),\n };\n this.setState({\n start,\n });\n };\n\n handleTouchMove: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected: currentSelectedFromProps } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n const yAxisDifference = getSwipeDifference(start, end, 'y');\n let { isScrolling, isSwiping } = this.state;\n\n if (!isScrolling && !isSwiping) {\n if (difference > yAxisDifference) {\n isSwiping = true;\n } else {\n isScrolling = true;\n }\n }\n\n this.setState({ isScrolling, isSwiping });\n\n if (isSwiping) {\n const nextSelected = this.getTabToSelect(currentSelectedFromProps, start, end);\n this.animateLine(\n this.swipedOverHalfOfContainer(difference) ? nextSelected : currentSelectedFromProps,\n );\n }\n };\n\n handleTouchEnd: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start, isSwiping } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n\n let nextSelected = selected;\n\n if (isSwiping) {\n if (swipeShouldChangeTab(start, end) || this.swipedOverHalfOfContainer(difference)) {\n nextSelected = this.getTabToSelect(nextSelected, start, end);\n }\n\n if (nextSelected !== selected) {\n this.switchTab(nextSelected);\n } else {\n this.animateLine(nextSelected);\n }\n }\n\n this.setState({ isSwiping: false, isScrolling: false });\n };\n\n render() {\n const { tabs, changeTabOnSwipe, name, selected, className, headerWidth } = this.props;\n const { translateLineX, fullWidthTabs } = this.state;\n\n const selectedTab = tabs[selected];\n\n return (\n <DirectionContext.Consumer>\n {(direction) => {\n const isRTL = direction === Direction.RTL;\n return (\n <div\n ref={this.containerReference}\n className={clsx('tabs', className, {\n 'tabs--auto-width': headerWidth === Width.AUTO,\n })}\n onTouchStart={changeTabOnSwipe ? this.handleTouchStart : undefined}\n onTouchEnd={changeTabOnSwipe ? this.handleTouchEnd : undefined}\n onTouchMove={changeTabOnSwipe ? this.handleTouchMove : undefined}\n >\n <TabList>\n {tabs.map(({ title, disabled }, index) => {\n return (\n <Tab\n key={title}\n ref={(node) => {\n this.tabRefs[index] = node;\n }}\n id={`${name}-tab-${index}`}\n panelId={`${name}-panel-${index}`}\n selected={selected === index}\n disabled={disabled}\n focusTab={() => {\n if (this.containerReference.current?.contains(document.activeElement)) {\n this.tabRefs[index]?.focus();\n }\n }}\n onClick={disabled ? undefined : this.handleTabClick(index)}\n onKeyDown={this.onKeyDown(index)}\n {...(fullWidthTabs\n ? { style: { width: `${(1 / tabs.length) * 100}%` } }\n : {})}\n >\n {title}\n </Tab>\n );\n })}\n {translateLineX ? (\n <li\n role=\"none\"\n className=\"tabs__line\"\n style={{\n width: this.getTabLineWidth(),\n transform: isRTL\n ? `translateX(-${translateLineX})`\n : `translateX(${translateLineX})`,\n }}\n />\n ) : null}\n </TabList>\n <div ref={this.setContainerRefAndWidth} className=\"tabs__panel-container\">\n {selectedTab && !selectedTab.disabled ? (\n <TabPanel\n key={selectedTab.title}\n tabId={`${name}-tab-${selected}`}\n id={`${name}-panel-${selected}`}\n style={{\n width: '100%',\n }}\n >\n {selectedTab.content}\n </TabPanel>\n ) : null}\n </div>\n </div>\n );\n }}\n </DirectionContext.Consumer>\n );\n }\n}\n"],"names":["MIN_INDEX","Tabs","Component","defaultProps","changeTabOnSwipe","headerWidth","Width","BLOCK","containerReference","createRef","constructor","props","state","start","translateLineX","isSwiping","isScrolling","fullWidthTabs","container","containerWidth","tabRefs","MAX_INDEX","tabs","length","componentDidMount","selected","setTabWidth","switchTab","clamp","animateLine","document","body","addEventListener","disableScroll","passive","window","handleResize","componentDidUpdate","previousProps","currentSelected","previousSelected","currentSelectedTab","currentSelectedTabIsDisabled","disabled","previousSelectedTab","previousSelectedTabIsDisabled","currentTabsLength","previousTabsLength","currentDisabledTabsLength","filter","tab","previousDisabledTabsLength","currentHeaderWidth","previousFullHeaderWidth","componentWillUnmount","removeEventListener","setContainerWidth","setContainerRefAndWidth","node","width","getBoundingClientRect","isTabDisabled","index","getAllTabsWidth","map","reference","reduce","a","b","getDistanceToSelectedTab","selectedTabIndex","_","idx","allTabsWidth","setState","AUTO","getTabLineWidth","getTabToSelect","end","nextSelected","swipedLeftToRight","swipedRightToLeft","Math","max","min","swipedOverHalfOfContainer","difference","onTabSelect","previousState","event","preventDefault","handleTabClick","onKeyDown","key","handleTouchStart","x","nativeEvent","touches","clientX","y","clientY","time","Date","now","handleTouchMove","currentSelectedFromProps","changedTouches","getSwipeDifference","yAxisDifference","handleTouchEnd","swipeShouldChangeTab","render","name","className","selectedTab","_jsx","DirectionContext","Consumer","children","direction","isRTL","Direction","RTL","_jsxs","ref","clsx","onTouchStart","undefined","onTouchEnd","onTouchMove","TabList","title","Tab","id","panelId","focusTab","current","contains","activeElement","focus","onClick","style","role","transform","TabPanel","tabId","content"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tabs.mjs","sources":["../../src/tabs/Tabs.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport clamp from 'lodash.clamp';\nimport { Component, createRef } from 'react';\n\nimport { Width, Direction } from '../common';\nimport { DirectionContext } from '../provider/direction';\n\nimport Tab from './Tab';\nimport TabList from './TabList';\nimport TabPanel from './TabPanel';\nimport {\n getSwipeDifference,\n swipedLeftToRight,\n swipedRightToLeft,\n swipeShouldChangeTab,\n Swipe,\n} from './utils';\n\nconst MIN_INDEX = 0;\n\nexport interface TabItem {\n title: string;\n content: React.ReactNode;\n disabled: boolean;\n}\n\nexport interface TabsProps {\n tabs: TabItem[];\n selected: number;\n name: string;\n /** @default true */\n changeTabOnSwipe?: boolean;\n className?: string;\n /** @default 'block' */\n headerWidth?: `${Width}`;\n onTabSelect: (index: number) => void;\n}\n\ninterface TabsState {\n start: Swipe | null;\n translateLineX: string | null;\n isSwiping: boolean;\n isScrolling: boolean;\n fullWidthTabs: boolean;\n}\n\nexport default class Tabs extends Component<TabsProps, TabsState> {\n declare props: TabsProps & Required<Pick<TabsProps, keyof typeof Tabs.defaultProps>>;\n\n static defaultProps = {\n changeTabOnSwipe: true,\n headerWidth: Width.BLOCK,\n } satisfies Partial<TabsProps>;\n\n containerReference = createRef<HTMLDivElement>();\n\n constructor(props: Tabs['props']) {\n super(props);\n this.state = {\n start: null,\n translateLineX: null,\n isSwiping: false,\n isScrolling: false,\n fullWidthTabs: props.headerWidth === Width.BLOCK,\n };\n }\n\n container: HTMLDivElement | null = null;\n\n containerWidth = 0;\n\n tabRefs: (HTMLLIElement | null)[] = [];\n\n get MAX_INDEX() {\n return this.props.tabs.length - 1;\n }\n\n componentDidMount() {\n const { selected } = this.props;\n\n this.setTabWidth();\n this.switchTab(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n this.animateLine(clamp(selected, MIN_INDEX, this.MAX_INDEX));\n document.body.addEventListener('touchmove', this.disableScroll, { passive: false });\n document.body.addEventListener('touchforcechange', this.disableScroll, { passive: false });\n window.addEventListener('resize', this.handleResize);\n }\n\n componentDidUpdate(previousProps: TabsProps) {\n const currentSelected = this.props.selected;\n const previousSelected = previousProps.selected;\n const currentSelectedTab = this.props.tabs[currentSelected];\n const currentSelectedTabIsDisabled = currentSelectedTab?.disabled;\n const previousSelectedTab = previousProps.tabs[previousSelected];\n const previousSelectedTabIsDisabled = previousSelectedTab?.disabled;\n const currentTabsLength = this.props.tabs.length;\n const previousTabsLength = previousProps.tabs.length;\n const currentDisabledTabsLength = this.props.tabs.filter((tab) => !tab.disabled).length;\n const previousDisabledTabsLength = previousProps.tabs.filter((tab) => !tab.disabled).length;\n const currentHeaderWidth = this.props.headerWidth;\n const previousFullHeaderWidth = previousProps.headerWidth;\n\n if (\n currentHeaderWidth !== previousFullHeaderWidth ||\n currentTabsLength !== previousTabsLength\n ) {\n this.setTabWidth();\n }\n\n if (\n currentSelected !== previousSelected ||\n currentDisabledTabsLength !== previousDisabledTabsLength ||\n currentSelectedTabIsDisabled !== previousSelectedTabIsDisabled\n ) {\n this.animateLine(clamp(currentSelected, MIN_INDEX, this.MAX_INDEX));\n }\n }\n\n componentWillUnmount() {\n document.body.removeEventListener('touchmove', this.disableScroll);\n document.body.removeEventListener('touchforcechange', this.disableScroll);\n window.removeEventListener('resize', this.handleResize);\n }\n\n handleResize = () => {\n this.setContainerWidth(this.container);\n };\n\n setContainerRefAndWidth = (node: HTMLDivElement | null) => {\n this.container = node;\n this.setContainerWidth(node);\n };\n\n setContainerWidth = (node: HTMLDivElement | null) => {\n if (!node) {\n return;\n }\n\n const { width } = node.getBoundingClientRect();\n\n this.containerWidth = width;\n };\n\n isTabDisabled = (index: number) => {\n const { tabs } = this.props;\n\n return tabs[index]?.disabled ?? false;\n };\n\n getAllTabsWidth = () => {\n return this.tabRefs\n .map((reference) => {\n return reference ? reference.getBoundingClientRect().width : 0;\n })\n .reduce((a, b) => a + b, 0);\n };\n\n getDistanceToSelectedTab = (selectedTabIndex: number) => {\n return this.tabRefs\n .filter((_, idx) => idx < selectedTabIndex)\n .map((reference) => (reference ? reference.getBoundingClientRect().width : 0))\n .reduce((a, b) => a + b, 0);\n };\n\n setTabWidth = () => {\n const { fullWidthTabs } = this.state;\n const { headerWidth, selected } = this.props;\n\n const allTabsWidth = this.getAllTabsWidth();\n\n if (!fullWidthTabs && (headerWidth === Width.BLOCK || this.containerWidth < allTabsWidth)) {\n this.setState({ fullWidthTabs: true, translateLineX: `${selected * 100}%` });\n }\n if (fullWidthTabs && headerWidth === Width.AUTO && this.containerWidth >= allTabsWidth) {\n this.setState({\n fullWidthTabs: false,\n translateLineX: `${this.getDistanceToSelectedTab(selected)}px`,\n });\n }\n };\n\n getTabLineWidth = () => {\n const { fullWidthTabs } = this.state;\n const { selected, tabs } = this.props;\n\n if (fullWidthTabs) {\n return `${(1 / tabs.length) * 100}%`;\n }\n\n const reference = this.tabRefs[selected] || this.tabRefs[this.tabRefs.length - 1];\n const width = reference ? reference.getBoundingClientRect().width : 0;\n return `${width}px`;\n };\n\n /*\n * Gets the next tab that should be selected based on the swipe direction\n * and the current selected tab (is called recursively to account for disabled tabs).\n */\n getTabToSelect = (selected: number, start: Swipe, end: Swipe): number => {\n let nextSelected = selected;\n\n if (swipedLeftToRight(start, end)) {\n nextSelected -= 1;\n\n if (nextSelected > MIN_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n } else if (swipedRightToLeft(start, end)) {\n nextSelected += 1;\n\n if (nextSelected < this.MAX_INDEX && this.isTabDisabled(nextSelected)) {\n return this.getTabToSelect(nextSelected, start, end);\n }\n }\n\n nextSelected = clamp(\n nextSelected,\n Math.max(selected - 1, MIN_INDEX),\n Math.min(selected + 1, this.MAX_INDEX),\n );\n\n if (this.isTabDisabled(nextSelected)) {\n return selected;\n }\n\n return nextSelected;\n };\n\n swipedOverHalfOfContainer = (difference: number) => difference / this.containerWidth >= 0.5;\n\n switchTab = (index: number) => {\n const { onTabSelect } = this.props;\n onTabSelect(index);\n };\n\n animateLine = (index: number) => {\n this.setState((previousState) => ({\n translateLineX: previousState.fullWidthTabs\n ? `${index * 100}%`\n : `${this.getDistanceToSelectedTab(index)}px`,\n }));\n };\n\n disableScroll = (event: Event) => {\n const { isSwiping } = this.state;\n\n if (isSwiping) {\n event.preventDefault();\n }\n };\n\n handleTabClick = (index: number) => () => {\n this.switchTab(index);\n };\n\n onKeyDown = (index: number) => (event: React.KeyboardEvent<HTMLLIElement>) => {\n if (event?.key === 'Enter') {\n this.switchTab(index);\n }\n };\n\n handleTouchStart: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const start = {\n x: event.nativeEvent.touches[0].clientX,\n y: event.nativeEvent.touches[0].clientY,\n time: Date.now(),\n };\n this.setState({\n start,\n });\n };\n\n handleTouchMove: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected: currentSelectedFromProps } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n const yAxisDifference = getSwipeDifference(start, end, 'y');\n let { isScrolling, isSwiping } = this.state;\n\n if (!isScrolling && !isSwiping) {\n if (difference > yAxisDifference) {\n isSwiping = true;\n } else {\n isScrolling = true;\n }\n }\n\n this.setState({ isScrolling, isSwiping });\n\n if (isSwiping) {\n const nextSelected = this.getTabToSelect(currentSelectedFromProps, start, end);\n this.animateLine(\n this.swipedOverHalfOfContainer(difference) ? nextSelected : currentSelectedFromProps,\n );\n }\n };\n\n handleTouchEnd: React.TouchEventHandler<HTMLDivElement> = (event) => {\n const { start, isSwiping } = this.state;\n if (start == null) {\n return;\n }\n\n const { selected } = this.props;\n const end: Swipe = {\n x: event.nativeEvent.changedTouches[0].clientX,\n y: event.nativeEvent.changedTouches[0].clientY,\n time: Date.now(),\n };\n const difference = getSwipeDifference(start, end);\n\n let nextSelected = selected;\n\n if (isSwiping) {\n if (swipeShouldChangeTab(start, end) || this.swipedOverHalfOfContainer(difference)) {\n nextSelected = this.getTabToSelect(nextSelected, start, end);\n }\n\n if (nextSelected !== selected) {\n this.switchTab(nextSelected);\n } else {\n this.animateLine(nextSelected);\n }\n }\n\n this.setState({ isSwiping: false, isScrolling: false });\n };\n\n render() {\n const { tabs, changeTabOnSwipe, name, selected, className, headerWidth } = this.props;\n const { translateLineX, fullWidthTabs } = this.state;\n\n const selectedTab = tabs[selected];\n\n return (\n <DirectionContext.Consumer>\n {(direction) => {\n const isRTL = direction === Direction.RTL;\n return (\n <div\n ref={this.containerReference}\n className={clsx('tabs', className, {\n 'tabs--auto-width': headerWidth === Width.AUTO,\n })}\n onTouchStart={changeTabOnSwipe ? this.handleTouchStart : undefined}\n onTouchEnd={changeTabOnSwipe ? this.handleTouchEnd : undefined}\n onTouchMove={changeTabOnSwipe ? this.handleTouchMove : undefined}\n >\n <TabList>\n {tabs.map(({ title, disabled }, index) => {\n return (\n <Tab\n key={title}\n ref={(node) => {\n this.tabRefs[index] = node;\n }}\n id={`${name}-tab-${index}`}\n panelId={`${name}-panel-${index}`}\n selected={selected === index}\n disabled={disabled}\n focusTab={() => {\n if (this.containerReference.current?.contains(document.activeElement)) {\n this.tabRefs[index]?.focus();\n }\n }}\n onClick={disabled ? undefined : this.handleTabClick(index)}\n onKeyDown={this.onKeyDown(index)}\n {...(fullWidthTabs\n ? { style: { width: `${(1 / tabs.length) * 100}%` } }\n : {})}\n >\n {title}\n </Tab>\n );\n })}\n {translateLineX ? (\n <li\n role=\"none\"\n className=\"tabs__line\"\n style={{\n width: this.getTabLineWidth(),\n transform: isRTL\n ? `translateX(-${translateLineX})`\n : `translateX(${translateLineX})`,\n }}\n />\n ) : null}\n </TabList>\n <div ref={this.setContainerRefAndWidth} className=\"tabs__panel-container\">\n {selectedTab && !selectedTab.disabled ? (\n <TabPanel\n key={selectedTab.title}\n tabId={`${name}-tab-${selected}`}\n id={`${name}-panel-${selected}`}\n style={{\n width: '100%',\n }}\n >\n {selectedTab.content}\n </TabPanel>\n ) : null}\n </div>\n </div>\n );\n }}\n </DirectionContext.Consumer>\n );\n }\n}\n"],"names":["MIN_INDEX","Tabs","Component","defaultProps","changeTabOnSwipe","headerWidth","Width","BLOCK","containerReference","createRef","constructor","props","state","start","translateLineX","isSwiping","isScrolling","fullWidthTabs","container","containerWidth","tabRefs","MAX_INDEX","tabs","length","componentDidMount","selected","setTabWidth","switchTab","clamp","animateLine","document","body","addEventListener","disableScroll","passive","window","handleResize","componentDidUpdate","previousProps","currentSelected","previousSelected","currentSelectedTab","currentSelectedTabIsDisabled","disabled","previousSelectedTab","previousSelectedTabIsDisabled","currentTabsLength","previousTabsLength","currentDisabledTabsLength","filter","tab","previousDisabledTabsLength","currentHeaderWidth","previousFullHeaderWidth","componentWillUnmount","removeEventListener","setContainerWidth","setContainerRefAndWidth","node","width","getBoundingClientRect","isTabDisabled","index","getAllTabsWidth","map","reference","reduce","a","b","getDistanceToSelectedTab","selectedTabIndex","_","idx","allTabsWidth","setState","AUTO","getTabLineWidth","getTabToSelect","end","nextSelected","swipedLeftToRight","swipedRightToLeft","Math","max","min","swipedOverHalfOfContainer","difference","onTabSelect","previousState","event","preventDefault","handleTabClick","onKeyDown","key","handleTouchStart","x","nativeEvent","touches","clientX","y","clientY","time","Date","now","handleTouchMove","currentSelectedFromProps","changedTouches","getSwipeDifference","yAxisDifference","handleTouchEnd","swipeShouldChangeTab","render","name","className","selectedTab","_jsx","DirectionContext","Consumer","children","direction","isRTL","Direction","RTL","_jsxs","ref","clsx","onTouchStart","undefined","onTouchEnd","onTouchMove","TabList","title","Tab","id","panelId","focusTab","current","contains","activeElement","focus","onClick","style","role","transform","TabPanel","tabId","content"],"mappings":"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"}
|
package/build/tooltip/Tooltip.js
CHANGED
|
@@ -50,7 +50,9 @@ const Tooltip = ({
|
|
|
50
50
|
placement: position$1,
|
|
51
51
|
middleware: [react.offset(16), react.flip({
|
|
52
52
|
fallbackPlacements: [position.Position.TOP]
|
|
53
|
-
}),
|
|
53
|
+
}),
|
|
54
|
+
// eslint-disable-next-line react-hooks/refs -- arrowRef is passed to floating-ui middleware, legitimate API usage
|
|
55
|
+
react.arrow({
|
|
54
56
|
element: arrowRef,
|
|
55
57
|
padding: 8
|
|
56
58
|
})],
|
|
@@ -65,7 +67,7 @@ const Tooltip = ({
|
|
|
65
67
|
top: middlewareData.arrow.y
|
|
66
68
|
} : {})
|
|
67
69
|
};
|
|
68
|
-
return /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
70
|
+
return /*#__PURE__*/ /* eslint-disable react-hooks/refs -- setReference and setFloating are callback refs from floating-ui, safe to pass during render */jsxRuntime.jsxs("span", {
|
|
69
71
|
ref: refs.setReference,
|
|
70
72
|
className: "tw-tooltip-container",
|
|
71
73
|
onMouseOver: () => setOpen(true),
|
|
@@ -91,7 +93,8 @@ const Tooltip = ({
|
|
|
91
93
|
})]
|
|
92
94
|
})
|
|
93
95
|
})]
|
|
94
|
-
})
|
|
96
|
+
})
|
|
97
|
+
/* eslint-enable react-hooks/refs */;
|
|
95
98
|
};
|
|
96
99
|
|
|
97
100
|
exports.default = Tooltip;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n useFloating,\n} from '@floating-ui/react';\nimport { clsx } from 'clsx';\nimport {\n AriaAttributes,\n CSSProperties,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n cloneElement,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport { CommonProps, Position } from '../common';\nimport {\n PositionBottom,\n PositionLeft,\n PositionRight,\n PositionTop,\n} from '../common/propsValues/position';\n\nexport type TooltipProps = PropsWithChildren<{\n position?: PositionTop | PositionRight | PositionBottom | PositionLeft;\n label: ReactNode;\n id?: string;\n}> &\n CommonProps;\n\nconst Tooltip = ({\n position = Position.TOP,\n children = undefined,\n label,\n id,\n className,\n}: TooltipProps) => {\n const [open, setOpen] = useState(false);\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const fallbackId = useId();\n const tooltipId = id ?? fallbackId;\n\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position,\n middleware: [\n offset(16),\n flip({ fallbackPlacements: [Position.TOP] }),\n arrowMiddleware({ element: arrowRef, padding: 8 }),\n ],\n whileElementsMounted: open ? autoUpdate : undefined,\n open,\n });\n\n const arrowStyle: CSSProperties = {\n ...(middlewareData.arrow?.x != null ? { left: middlewareData.arrow.x } : {}),\n ...(middlewareData.arrow?.y != null ? { top: middlewareData.arrow.y } : {}),\n };\n\n return (\n <span\n ref={refs.setReference}\n className=\"tw-tooltip-container\"\n onMouseOver={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n onMouseOut={() => setOpen(false)}\n onBlur={() => setOpen(false)}\n >\n {children\n ? cloneElement(children as ReactElement<Pick<AriaAttributes, 'aria-describedby'>>, {\n 'aria-describedby': `${tooltipId}-tooltip`,\n })\n : null}\n <div\n ref={refs.setFloating}\n className={clsx(\n 'np-tooltip',\n 'np-panel',\n open ? `np-panel--open np-tooltip--open` : null,\n className,\n )}\n style={floatingStyles}\n data-popper-placement={placement}\n aria-hidden={!open}\n role=\"tooltip\"\n id={`${tooltipId}-tooltip`}\n >\n <div className=\"np-panel__content tooltip-inner\">\n {label}\n <div ref={arrowRef} className={clsx('np-panel__arrow')} style={arrowStyle} />\n </div>\n </div>\n </span>\n );\n};\n\nexport default Tooltip;\n"],"names":["Tooltip","position","Position","TOP","children","undefined","label","id","className","open","setOpen","useState","arrowRef","useRef","fallbackId","useId","tooltipId","refs","floatingStyles","placement","middlewareData","useFloating","middleware","offset","flip","fallbackPlacements","arrowMiddleware","element","padding","whileElementsMounted","autoUpdate","arrowStyle","arrow","x","left","y","top","_jsxs","ref","setReference","onMouseOver","onFocus","onMouseOut","onBlur","cloneElement","_jsx","setFloating","clsx","style","role"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAMA,OAAO,GAAGA,CAAC;YACfC,UAAQ,GAAGC,iBAAQ,CAACC,GAAG;AACvBC,EAAAA,QAAQ,GAAGC,SAAS;EACpBC,KAAK;EACLC,EAAE;AACFC,EAAAA;AAAS,CACI,KAAI;EACjB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AACvC,EAAA,MAAMC,QAAQ,GAAGC,YAAM,CAAwB,IAAI,CAAC;AAEpD,EAAA,MAAMC,UAAU,GAAGC,WAAK,EAAE;AAC1B,EAAA,MAAMC,SAAS,GAAGT,EAAE,IAAIO,UAAU;EAElC,MAAM;IAAEG,IAAI;IAAEC,cAAc;IAAEC,SAAS;AAAEC,IAAAA;GAAgB,GAAGC,iBAAW,CAAC;AACtEF,IAAAA,SAAS,EAAElB,UAAQ;IACnBqB,UAAU,EAAE,CACVC,YAAM,CAAC,EAAE,CAAC,EACVC,UAAI,CAAC;AAAEC,MAAAA,kBAAkB,EAAE,CAACvB,iBAAQ,CAACC,GAAG;
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n useFloating,\n} from '@floating-ui/react';\nimport { clsx } from 'clsx';\nimport {\n AriaAttributes,\n CSSProperties,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n cloneElement,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport { CommonProps, Position } from '../common';\nimport {\n PositionBottom,\n PositionLeft,\n PositionRight,\n PositionTop,\n} from '../common/propsValues/position';\n\nexport type TooltipProps = PropsWithChildren<{\n position?: PositionTop | PositionRight | PositionBottom | PositionLeft;\n label: ReactNode;\n id?: string;\n}> &\n CommonProps;\n\nconst Tooltip = ({\n position = Position.TOP,\n children = undefined,\n label,\n id,\n className,\n}: TooltipProps) => {\n const [open, setOpen] = useState(false);\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const fallbackId = useId();\n const tooltipId = id ?? fallbackId;\n\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position,\n middleware: [\n offset(16),\n flip({ fallbackPlacements: [Position.TOP] }),\n // eslint-disable-next-line react-hooks/refs -- arrowRef is passed to floating-ui middleware, legitimate API usage\n arrowMiddleware({ element: arrowRef, padding: 8 }),\n ],\n whileElementsMounted: open ? autoUpdate : undefined,\n open,\n });\n\n const arrowStyle: CSSProperties = {\n ...(middlewareData.arrow?.x != null ? { left: middlewareData.arrow.x } : {}),\n ...(middlewareData.arrow?.y != null ? { top: middlewareData.arrow.y } : {}),\n };\n\n return (\n /* eslint-disable react-hooks/refs -- setReference and setFloating are callback refs from floating-ui, safe to pass during render */\n <span\n ref={refs.setReference}\n className=\"tw-tooltip-container\"\n onMouseOver={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n onMouseOut={() => setOpen(false)}\n onBlur={() => setOpen(false)}\n >\n {children\n ? cloneElement(children as ReactElement<Pick<AriaAttributes, 'aria-describedby'>>, {\n 'aria-describedby': `${tooltipId}-tooltip`,\n })\n : null}\n <div\n ref={refs.setFloating}\n className={clsx(\n 'np-tooltip',\n 'np-panel',\n open ? `np-panel--open np-tooltip--open` : null,\n className,\n )}\n style={floatingStyles}\n data-popper-placement={placement}\n aria-hidden={!open}\n role=\"tooltip\"\n id={`${tooltipId}-tooltip`}\n >\n <div className=\"np-panel__content tooltip-inner\">\n {label}\n <div ref={arrowRef} className={clsx('np-panel__arrow')} style={arrowStyle} />\n </div>\n </div>\n </span>\n /* eslint-enable react-hooks/refs */\n );\n};\n\nexport default Tooltip;\n"],"names":["Tooltip","position","Position","TOP","children","undefined","label","id","className","open","setOpen","useState","arrowRef","useRef","fallbackId","useId","tooltipId","refs","floatingStyles","placement","middlewareData","useFloating","middleware","offset","flip","fallbackPlacements","arrowMiddleware","element","padding","whileElementsMounted","autoUpdate","arrowStyle","arrow","x","left","y","top","_jsxs","ref","setReference","onMouseOver","onFocus","onMouseOut","onBlur","cloneElement","_jsx","setFloating","clsx","style","role"],"mappings":"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"}
|
|
@@ -46,7 +46,9 @@ const Tooltip = ({
|
|
|
46
46
|
placement: position,
|
|
47
47
|
middleware: [offset(16), flip({
|
|
48
48
|
fallbackPlacements: [Position.TOP]
|
|
49
|
-
}),
|
|
49
|
+
}),
|
|
50
|
+
// eslint-disable-next-line react-hooks/refs -- arrowRef is passed to floating-ui middleware, legitimate API usage
|
|
51
|
+
arrow({
|
|
50
52
|
element: arrowRef,
|
|
51
53
|
padding: 8
|
|
52
54
|
})],
|
|
@@ -61,7 +63,7 @@ const Tooltip = ({
|
|
|
61
63
|
top: middlewareData.arrow.y
|
|
62
64
|
} : {})
|
|
63
65
|
};
|
|
64
|
-
return /*#__PURE__*/jsxs("span", {
|
|
66
|
+
return /*#__PURE__*/ /* eslint-disable react-hooks/refs -- setReference and setFloating are callback refs from floating-ui, safe to pass during render */jsxs("span", {
|
|
65
67
|
ref: refs.setReference,
|
|
66
68
|
className: "tw-tooltip-container",
|
|
67
69
|
onMouseOver: () => setOpen(true),
|
|
@@ -87,7 +89,8 @@ const Tooltip = ({
|
|
|
87
89
|
})]
|
|
88
90
|
})
|
|
89
91
|
})]
|
|
90
|
-
})
|
|
92
|
+
})
|
|
93
|
+
/* eslint-enable react-hooks/refs */;
|
|
91
94
|
};
|
|
92
95
|
|
|
93
96
|
export { Tooltip as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.mjs","sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n useFloating,\n} from '@floating-ui/react';\nimport { clsx } from 'clsx';\nimport {\n AriaAttributes,\n CSSProperties,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n cloneElement,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport { CommonProps, Position } from '../common';\nimport {\n PositionBottom,\n PositionLeft,\n PositionRight,\n PositionTop,\n} from '../common/propsValues/position';\n\nexport type TooltipProps = PropsWithChildren<{\n position?: PositionTop | PositionRight | PositionBottom | PositionLeft;\n label: ReactNode;\n id?: string;\n}> &\n CommonProps;\n\nconst Tooltip = ({\n position = Position.TOP,\n children = undefined,\n label,\n id,\n className,\n}: TooltipProps) => {\n const [open, setOpen] = useState(false);\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const fallbackId = useId();\n const tooltipId = id ?? fallbackId;\n\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position,\n middleware: [\n offset(16),\n flip({ fallbackPlacements: [Position.TOP] }),\n arrowMiddleware({ element: arrowRef, padding: 8 }),\n ],\n whileElementsMounted: open ? autoUpdate : undefined,\n open,\n });\n\n const arrowStyle: CSSProperties = {\n ...(middlewareData.arrow?.x != null ? { left: middlewareData.arrow.x } : {}),\n ...(middlewareData.arrow?.y != null ? { top: middlewareData.arrow.y } : {}),\n };\n\n return (\n <span\n ref={refs.setReference}\n className=\"tw-tooltip-container\"\n onMouseOver={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n onMouseOut={() => setOpen(false)}\n onBlur={() => setOpen(false)}\n >\n {children\n ? cloneElement(children as ReactElement<Pick<AriaAttributes, 'aria-describedby'>>, {\n 'aria-describedby': `${tooltipId}-tooltip`,\n })\n : null}\n <div\n ref={refs.setFloating}\n className={clsx(\n 'np-tooltip',\n 'np-panel',\n open ? `np-panel--open np-tooltip--open` : null,\n className,\n )}\n style={floatingStyles}\n data-popper-placement={placement}\n aria-hidden={!open}\n role=\"tooltip\"\n id={`${tooltipId}-tooltip`}\n >\n <div className=\"np-panel__content tooltip-inner\">\n {label}\n <div ref={arrowRef} className={clsx('np-panel__arrow')} style={arrowStyle} />\n </div>\n </div>\n </span>\n );\n};\n\nexport default Tooltip;\n"],"names":["Tooltip","position","Position","TOP","children","undefined","label","id","className","open","setOpen","useState","arrowRef","useRef","fallbackId","useId","tooltipId","refs","floatingStyles","placement","middlewareData","useFloating","middleware","offset","flip","fallbackPlacements","arrowMiddleware","element","padding","whileElementsMounted","autoUpdate","arrowStyle","arrow","x","left","y","top","_jsxs","ref","setReference","onMouseOver","onFocus","onMouseOut","onBlur","cloneElement","_jsx","setFloating","clsx","style","role"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,MAAMA,OAAO,GAAGA,CAAC;EACfC,QAAQ,GAAGC,QAAQ,CAACC,GAAG;AACvBC,EAAAA,QAAQ,GAAGC,SAAS;EACpBC,KAAK;EACLC,EAAE;AACFC,EAAAA;AAAS,CACI,KAAI;EACjB,MAAM,CAACC,IAAI,EAAEC,OAAO,CAAC,GAAGC,QAAQ,CAAC,KAAK,CAAC;AACvC,EAAA,MAAMC,QAAQ,GAAGC,MAAM,CAAwB,IAAI,CAAC;AAEpD,EAAA,MAAMC,UAAU,GAAGC,KAAK,EAAE;AAC1B,EAAA,MAAMC,SAAS,GAAGT,EAAE,IAAIO,UAAU;EAElC,MAAM;IAAEG,IAAI;IAAEC,cAAc;IAAEC,SAAS;AAAEC,IAAAA;GAAgB,GAAGC,WAAW,CAAC;AACtEF,IAAAA,SAAS,EAAElB,QAAQ;IACnBqB,UAAU,EAAE,CACVC,MAAM,CAAC,EAAE,CAAC,EACVC,IAAI,CAAC;AAAEC,MAAAA,kBAAkB,EAAE,CAACvB,QAAQ,CAACC,GAAG;
|
|
1
|
+
{"version":3,"file":"Tooltip.mjs","sources":["../../src/tooltip/Tooltip.tsx"],"sourcesContent":["import {\n arrow as arrowMiddleware,\n autoUpdate,\n flip,\n offset,\n useFloating,\n} from '@floating-ui/react';\nimport { clsx } from 'clsx';\nimport {\n AriaAttributes,\n CSSProperties,\n PropsWithChildren,\n ReactElement,\n ReactNode,\n cloneElement,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport { CommonProps, Position } from '../common';\nimport {\n PositionBottom,\n PositionLeft,\n PositionRight,\n PositionTop,\n} from '../common/propsValues/position';\n\nexport type TooltipProps = PropsWithChildren<{\n position?: PositionTop | PositionRight | PositionBottom | PositionLeft;\n label: ReactNode;\n id?: string;\n}> &\n CommonProps;\n\nconst Tooltip = ({\n position = Position.TOP,\n children = undefined,\n label,\n id,\n className,\n}: TooltipProps) => {\n const [open, setOpen] = useState(false);\n const arrowRef = useRef<HTMLDivElement | null>(null);\n\n const fallbackId = useId();\n const tooltipId = id ?? fallbackId;\n\n const { refs, floatingStyles, placement, middlewareData } = useFloating({\n placement: position,\n middleware: [\n offset(16),\n flip({ fallbackPlacements: [Position.TOP] }),\n // eslint-disable-next-line react-hooks/refs -- arrowRef is passed to floating-ui middleware, legitimate API usage\n arrowMiddleware({ element: arrowRef, padding: 8 }),\n ],\n whileElementsMounted: open ? autoUpdate : undefined,\n open,\n });\n\n const arrowStyle: CSSProperties = {\n ...(middlewareData.arrow?.x != null ? { left: middlewareData.arrow.x } : {}),\n ...(middlewareData.arrow?.y != null ? { top: middlewareData.arrow.y } : {}),\n };\n\n return (\n /* eslint-disable react-hooks/refs -- setReference and setFloating are callback refs from floating-ui, safe to pass during render */\n <span\n ref={refs.setReference}\n className=\"tw-tooltip-container\"\n onMouseOver={() => setOpen(true)}\n onFocus={() => setOpen(true)}\n onMouseOut={() => setOpen(false)}\n onBlur={() => setOpen(false)}\n >\n {children\n ? cloneElement(children as ReactElement<Pick<AriaAttributes, 'aria-describedby'>>, {\n 'aria-describedby': `${tooltipId}-tooltip`,\n })\n : null}\n <div\n ref={refs.setFloating}\n className={clsx(\n 'np-tooltip',\n 'np-panel',\n open ? `np-panel--open np-tooltip--open` : null,\n className,\n )}\n style={floatingStyles}\n data-popper-placement={placement}\n aria-hidden={!open}\n role=\"tooltip\"\n id={`${tooltipId}-tooltip`}\n >\n <div className=\"np-panel__content tooltip-inner\">\n {label}\n <div ref={arrowRef} className={clsx('np-panel__arrow')} style={arrowStyle} />\n </div>\n </div>\n </span>\n /* eslint-enable react-hooks/refs */\n );\n};\n\nexport default Tooltip;\n"],"names":["Tooltip","position","Position","TOP","children","undefined","label","id","className","open","setOpen","useState","arrowRef","useRef","fallbackId","useId","tooltipId","refs","floatingStyles","placement","middlewareData","useFloating","middleware","offset","flip","fallbackPlacements","arrowMiddleware","element","padding","whileElementsMounted","autoUpdate","arrowStyle","arrow","x","left","y","top","_jsxs","ref","setReference","onMouseOver","onFocus","onMouseOut","onBlur","cloneElement","_jsx","setFloating","clsx","style","role"],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ export type Props = {
|
|
|
14
14
|
*/
|
|
15
15
|
profileName?: string | null;
|
|
16
16
|
profileType?: ProfileTypeBusiness | ProfileTypePersonal;
|
|
17
|
-
size?: 16 | 24 | 32 | 40 | 48 | 56 | 72;
|
|
17
|
+
size?: 16 | 24 | 32 | 40 | 48 | 56 | 72 | 88 | 96;
|
|
18
18
|
badge?: AvatarViewBadgeProps;
|
|
19
19
|
interactive?: boolean;
|
|
20
20
|
selected?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../../src/avatarView/AvatarView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAe,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5E,OAAO,EAAE,cAAc,EAA+B,MAAM,OAAO,CAAC;AAEpE,OAAO,EAA4B,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM/F,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAC/D,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEJ,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"AvatarView.d.ts","sourceRoot":"","sources":["../../../src/avatarView/AvatarView.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAe,UAAU,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAI5E,OAAO,EAAE,cAAc,EAA+B,MAAM,OAAO,CAAC;AAEpE,OAAO,EAA4B,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAM/F,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAC/D,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG;IAC/B;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACzB,CAAC;AAEJ,MAAM,MAAM,KAAK,GAAG;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAAC;IACxD,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;IAClD,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,QAAQ,GAAG,iBAAiB,GAAG,OAAO,CAAC,CAAC;CAC3E,GAAG,IAAI,CACN,cAAc,CAAC,cAAc,CAAC,EAC9B,IAAI,GAAG,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,GAAG,iBAAiB,GAAG,aAAa,CAC5F,CAAC;AAEF,iBAAS,UAAU,CAAC,EAClB,QAAoB,EACpB,IAAS,EACT,QAAQ,EACR,KAAK,EACL,WAAmB,EACnB,SAAS,EACT,KAAK,EACL,MAAM,EACN,WAAW,EACX,WAAW,EACX,GAAG,SAAS,EACb,EAAE,KAAK,+BAkCP;AA8GD,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Dot.d.ts","sourceRoot":"","sources":["../../../src/avatarView/Dot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG;IACxE,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;CACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"Dot.d.ts","sourceRoot":"","sources":["../../../src/avatarView/Dot.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,KAAK,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAGxD,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,UAAU,CAAC,GAAG;IACxE,UAAU,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACrC,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,CAAC;CACrC,CAAC;AAiBF,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAe,EAAE,OAAwB,EAAE,EAAE,QAAQ,+BAmB5F"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AvatarWrapper.d.ts","sourceRoot":"","sources":["../../../src/avatarWrapper/AvatarWrapper.tsx"],"names":[],"mappings":"AAGA,OAAe,EAAE,WAAW,EAAc,MAAM,WAAW,CAAC;AAC5D,OAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EAEnB,SAAS,EAET,MAAM,EACP,MAAM,WAAW,CAAC;AAuCnB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,GAAG,CACA;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,CACJ,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa,GAAI,mIAWpB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"AvatarWrapper.d.ts","sourceRoot":"","sources":["../../../src/avatarWrapper/AvatarWrapper.tsx"],"names":[],"mappings":"AAGA,OAAe,EAAE,WAAW,EAAc,MAAM,WAAW,CAAC;AAC5D,OAAc,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAEL,mBAAmB,EACnB,mBAAmB,EAEnB,SAAS,EAET,MAAM,EACP,MAAM,WAAW,CAAC;AAuCnB,MAAM,MAAM,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,mBAAmB,GAAG,mBAAmB,CAAC;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,GAAG,CACA;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,EAAE,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB,CACJ,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,aAAa,GAAI,mIAWpB,kBAAkB,gCAmDpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Circle.d.ts","sourceRoot":"","sources":["../../../../src/common/circle/Circle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAc,MAAM,OAAO,CAAC;AAKnD,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Circle.d.ts","sourceRoot":"","sources":["../../../../src/common/circle/Circle.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAc,MAAM,OAAO,CAAC;AAKnD,MAAM,MAAM,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEnE,MAAM,MAAM,KAAK,GAAG;IAClB;;OAEG;IACH,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;AAkCnC,QAAA,MAAM,MAAM;IAhDV;;OAEG;SACE,KAAK,CAAC,WAAW;IACtB;;OAEG;WACI,SAAS;IAChB;;;OAGG;gBACS,OAAO;mBACJ,OAAO;4EAwEtB,CAAC;AAEH,eAAe,MAAM,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useHasIntersected.d.ts","sourceRoot":"","sources":["../../../../../src/common/hooks/useHasIntersected/useHasIntersected.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAAI,qBAG/B;IACD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,
|
|
1
|
+
{"version":3,"file":"useHasIntersected.d.ts","sourceRoot":"","sources":["../../../../../src/common/hooks/useHasIntersected/useHasIntersected.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB,GAAI,qBAG/B;IACD,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IACpC,OAAO,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC5B,cAqDA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveRegion.d.ts","sourceRoot":"","sources":["../../../../src/common/liveRegion/LiveRegion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AA6BtD,eAAO,MAAM,gCAAgC,QAAO,IAGnD,CAAC;AAaF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,cAAc,CAAC,cAAc,CAAC,EAC9B,MAAM,GAAG,WAAW,GAAG,aAAa,CACrC;IACC;;OAEG;IACH,WAAW,EAAE,QAAQ,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,4EAMxB,eAAe,
|
|
1
|
+
{"version":3,"file":"LiveRegion.d.ts","sourceRoot":"","sources":["../../../../src/common/liveRegion/LiveRegion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,WAAW,CAAC;AA6BtD,eAAO,MAAM,gCAAgC,QAAO,IAGnD,CAAC;AAaF,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAC3C,cAAc,CAAC,cAAc,CAAC,EAC9B,MAAM,GAAG,WAAW,GAAG,aAAa,CACrC;IACC;;OAEG;IACH,WAAW,EAAE,QAAQ,CAAC;IACtB,4EAA4E;IAC5E,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,gCAAgC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,4EAMxB,eAAe,gCAuCjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendarTable.d.ts","sourceRoot":"","sources":["../../../../../src/dateLookup/monthCalendar/table/MonthCalendarTable.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAMD,QAAA,MAAM,kBAAkB,GAAI,8DAOzB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"MonthCalendarTable.d.ts","sourceRoot":"","sources":["../../../../../src/dateLookup/monthCalendar/table/MonthCalendarTable.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAMD,QAAA,MAAM,kBAAkB,GAAI,8DAOzB,uBAAuB,gCAyDzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpressiveMoneyInput.d.ts","sourceRoot":"","sources":["../../../src/expressiveMoneyInput/ExpressiveMoneyInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EACL,KAAK,KAAK,IAAI,qBAAqB,EAEpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,KAAK,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAChC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,KAAK,mCAAmC,GAAG,IAAI,CAC7C,qBAAqB,EACrB,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,gBAAgB,CAChE,CAAC;AACF,KAAK,kCAAkC,GAAG;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;CACtE,CAAC;AACF,KAAK,oBAAoB,GAAG,mCAAmC,GAC7D,kCAAkC,CAAC;AAErC,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACvC,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACpC,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C,GAAG,WAAW,CAAC;AAEhB;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,KAAK,EACL,QAAQ,EACR,
|
|
1
|
+
{"version":3,"file":"ExpressiveMoneyInput.d.ts","sourceRoot":"","sources":["../../../src/expressiveMoneyInput/ExpressiveMoneyInput.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,EACL,KAAK,KAAK,IAAI,qBAAqB,EAEpC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE9E,KAAK,UAAU,GAAG,MAAM,GAAG,IAAI,CAAC;AAChC,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC;AAElC,KAAK,mCAAmC,GAAG,IAAI,CAC7C,qBAAqB,EACrB,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,gBAAgB,CAChE,CAAC;AACF,KAAK,kCAAkC,GAAG;IACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,SAAS,CAAC;CACtE,CAAC;AACF,KAAK,oBAAoB,GAAG,mCAAmC,GAC7D,kCAAkC,CAAC;AAErC,MAAM,MAAM,KAAK,GAAG;IAClB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;IACxC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,YAAY,CAAC;IACvB,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC3C,OAAO,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACvC,KAAK,CAAC,EAAE,iBAAiB,CAAC,OAAO,CAAC,CAAC;KACpC,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C,GAAG,WAAW,CAAC;AAEhB;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,KAAK,EACL,QAAQ,EACR,gBAAkC,EAClC,MAAM,EACN,cAAc,EACd,SAAS,EACT,YAAY,EACZ,WAAW,EACX,SAAS,EACT,OAAO,EACP,aAAa,GACd,EAAE,KAAK,+BAwEP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AmountInput.d.ts","sourceRoot":"","sources":["../../../../src/expressiveMoneyInput/amountInput/AmountInput.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAe7E,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AAE/C,eAAO,MAAM,WAAW,GAAI,uFASzB,KAAK,
|
|
1
|
+
{"version":3,"file":"AmountInput.d.ts","sourceRoot":"","sources":["../../../../src/expressiveMoneyInput/amountInput/AmountInput.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAe7E,KAAK,KAAK,GAAG;IACX,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5C,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AAE/C,eAAO,MAAM,WAAW,GAAI,uFASzB,KAAK,gCAkTP,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type CSSProperties } from 'react';
|
|
1
|
+
import { type CSSProperties, type RefObject } from 'react';
|
|
2
2
|
import { Props as ExpressiveMoneyInputProps } from '../ExpressiveMoneyInput';
|
|
3
3
|
type InputStyleObject = {
|
|
4
4
|
value: string;
|
|
5
5
|
focus: boolean;
|
|
6
|
-
inputElement: HTMLInputElement | null;
|
|
6
|
+
inputElement: RefObject<HTMLInputElement> | null;
|
|
7
7
|
} & Pick<ExpressiveMoneyInputProps, 'loading'>;
|
|
8
8
|
export declare const useInputStyle: ({ value, focus, inputElement, loading }: InputStyleObject) => CSSProperties;
|
|
9
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useInputStyle.d.ts","sourceRoot":"","sources":["../../../../src/expressiveMoneyInput/hooks/useInputStyle.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"useInputStyle.d.ts","sourceRoot":"","sources":["../../../../src/expressiveMoneyInput/hooks/useInputStyle.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,KAAK,IAAI,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAE7E,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,SAAS,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC;CAClD,GAAG,IAAI,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AAE/C,eAAO,MAAM,aAAa,GAAI,yCAAyC,gBAAgB,kBA6BtF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSelectionRange.d.ts","sourceRoot":"","sources":["../../../../src/expressiveMoneyInput/hooks/useSelectionRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,OAAO,CAAC;AAEpD,eAAO,MAAM,iBAAiB;;wBAEV,MAAM,GAAG,IAAI;sBACf,MAAM,GAAG,IAAI;;sBAGJ,cAAc,CAAC,gBAAgB,CAAC;;
|
|
1
|
+
{"version":3,"file":"useSelectionRange.d.ts","sourceRoot":"","sources":["../../../../src/expressiveMoneyInput/hooks/useSelectionRange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAU,MAAM,OAAO,CAAC;AAEpD,eAAO,MAAM,iBAAiB;;wBAEV,MAAM,GAAG,IAAI;sBACf,MAAM,GAAG,IAAI;;sBAGJ,cAAc,CAAC,gBAAgB,CAAC;;CAgB1D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/field/Field.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Field.d.ts","sourceRoot":"","sources":["../../../src/field/Field.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAgB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAWjE,MAAM,MAAM,UAAU,GAAG;IACvB,6IAA6I;IAC7I,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,sGAAsG;IACtG,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kDAAkD;IAClD,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B;;;SAGK;IACL,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC9B,8EAA8E;IAC9E,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACxB,iCAAiC;IACjC,SAAS,CAAC,EAAE,iBAAiB,CAAC,WAAW,CAAC,CAAC;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,KAAK,GAAI,wJAanB,UAAU,gCAsHZ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Field.messages.d.ts","sourceRoot":"","sources":["../../../src/field/Field.messages.ts"],"names":[],"mappings":";;;;;;AAEA,wBAKG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInputBottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACvE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,aAAa,EACb,KAAK,EACL,eAAe,EACf,OAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,2BAA2B,+
|
|
1
|
+
{"version":3,"file":"SelectInputBottomSheet.d.ts","sourceRoot":"","sources":["../../../../../src/inputs/SelectInput/BottomSheet/SelectInputBottomSheet.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACvE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,aAAa,EACb,KAAK,EACL,eAAe,EACf,OAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,2BAA2B,+BAgG7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInputOptions.d.ts","sourceRoot":"","sources":["../../../../../src/inputs/SelectInput/Options/SelectInputOptions.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAyB,gBAAgB,EAAmB,MAAM,sBAAsB,CAAC;AAMhG;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,IAAI,CAC/D,gBAAgB,CAAC,CAAC,CAAC,EACjB,OAAO,GACP,aAAa,GACb,cAAc,GACd,YAAY,GACZ,mBAAmB,GACnB,IAAI,GACJ,UAAU,GACV,eAAe,GACf,qBAAqB,CACxB;IACC,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAChE,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,MAAM,EAAE,EAC7C,EAAE,EACF,QAAQ,EACR,KAAK,EACL,aAAa,EAAE,iBAAiB,EAChC,WAAoB,EACpB,YAAY,EACZ,UAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,IAAI,EACJ,oBAAoB,GACrB,EAAE,uBAAuB,CAAC,CAAC,CAAC,+BA+
|
|
1
|
+
{"version":3,"file":"SelectInputOptions.d.ts","sourceRoot":"","sources":["../../../../../src/inputs/SelectInput/Options/SelectInputOptions.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAAyB,gBAAgB,EAAmB,MAAM,sBAAsB,CAAC;AAMhG;;GAEG;AACH,MAAM,WAAW,uBAAuB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,IAAI,CAC/D,gBAAgB,CAAC,CAAC,CAAC,EACjB,OAAO,GACP,aAAa,GACb,cAAc,GACd,YAAY,GACZ,mBAAmB,GACnB,IAAI,GACJ,UAAU,GACV,eAAe,GACf,qBAAqB,CACxB;IACC,cAAc,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;IAChE,UAAU,EAAE,KAAK,CAAC,gBAAgB,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAC1D,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;CAC3C;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,GAAG,MAAM,EAAE,EAC7C,EAAE,EACF,QAAQ,EACR,KAAK,EACL,aAAa,EAAE,iBAAiB,EAChC,WAAoB,EACpB,YAAY,EACZ,UAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACZ,IAAI,EACJ,oBAAoB,GACrB,EAAE,uBAAuB,CAAC,CAAC,CAAC,+BA+V5B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInputPopover.d.ts","sourceRoot":"","sources":["../../../../../src/inputs/SelectInput/Popover/SelectInputPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EAOf,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,CAAC,IAAI,EAAE;QACpB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACvE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,IAAI,EACJ,aAAa,EACb,KAAK,EACL,IAAW,EACX,OAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,+
|
|
1
|
+
{"version":3,"file":"SelectInputPopover.d.ts","sourceRoot":"","sources":["../../../../../src/inputs/SelectInput/Popover/SelectInputPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EAOf,MAAM,oBAAoB,CAAC;AAS5B,MAAM,WAAW,uBAAuB;IACtC,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,EAAE,CAAC,IAAI,EAAE;QACpB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACvE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAID,wBAAgB,kBAAkB,CAAC,EACjC,SAAS,EACT,IAAI,EACJ,aAAa,EACb,KAAK,EACL,IAAW,EACX,OAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,uBAAuB,+BAuFzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectInput.d.ts","sourceRoot":"","sources":["../../../../src/inputs/SelectInput/SelectInput.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EAAE,EACjE,EAAE,EAAE,MAAM,EACV,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,WAAoB,EACpB,YAAY,EACZ,aAAoC,EACpC,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,IAAW,EACX,SAAS,EACT,yBAAyB,EACzB,UAAU,EAAE,kBAAkB,EAC9B,cAAqB,EACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,+
|
|
1
|
+
{"version":3,"file":"SelectInput.d.ts","sourceRoot":"","sources":["../../../../src/inputs/SelectInput/SelectInput.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,GAAG,MAAM,EAAE,CAAC,SAAS,OAAO,GAAG,KAAK,EAAE,EACjE,EAAE,EAAE,MAAM,EACV,QAAQ,EACR,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,KAAK,EACL,YAAY,EACZ,KAAK,EAAE,eAAe,EACtB,aAAa,EACb,WAAoB,EACpB,YAAY,EACZ,aAAoC,EACpC,UAAU,EACV,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,IAAW,EACX,SAAS,EACT,yBAAyB,EACzB,UAAU,EAAE,kBAAkB,EAC9B,cAAqB,EACrB,QAAQ,EACR,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,+BA8MxB;yBAzOe,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/inputs/TextArea.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,MAAM,WAAW,aAAc,SAAQ,KAAK,CAC1C,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,EACvC;IACE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CACF;CAAG;AAEJ,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"TextArea.d.ts","sourceRoot":"","sources":["../../../src/inputs/TextArea.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAIjC,MAAM,WAAW,aAAc,SAAQ,KAAK,CAC1C,KAAK,CAAC,qBAAqB,CAAC,UAAU,CAAC,EACvC;IACE,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CACF;CAAG;AAEJ,eAAO,MAAM,QAAQ,mIAmBnB,CAAC"}
|