@fluentui/react-tabs 9.12.1 → 9.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -6
- package/lib/components/Tab/useTabAnimatedIndicator.styles.js +2 -0
- package/lib/components/Tab/useTabAnimatedIndicator.styles.js.map +1 -1
- package/lib/components/Tab/useTabAnimatedIndicator.styles.raw.js +2 -0
- package/lib/components/Tab/useTabAnimatedIndicator.styles.raw.js.map +1 -1
- package/lib/components/Tab/useTabStyles.styles.js +6 -1
- package/lib/components/Tab/useTabStyles.styles.js.map +1 -1
- package/lib/components/Tab/useTabStyles.styles.raw.js +6 -1
- package/lib/components/Tab/useTabStyles.styles.raw.js.map +1 -1
- package/lib/components/TabList/useTabListStyles.styles.js +1 -0
- package/lib/components/TabList/useTabListStyles.styles.js.map +1 -1
- package/lib/components/TabList/useTabListStyles.styles.raw.js +1 -0
- package/lib/components/TabList/useTabListStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.js +2 -0
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.js.map +1 -1
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.raw.js +2 -0
- package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.raw.js.map +1 -1
- package/lib-commonjs/components/Tab/useTabStyles.styles.js +6 -1
- package/lib-commonjs/components/Tab/useTabStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Tab/useTabStyles.styles.raw.js +6 -1
- package/lib-commonjs/components/Tab/useTabStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/TabList/useTabListStyles.styles.js +1 -0
- package/lib-commonjs/components/TabList/useTabListStyles.styles.js.map +1 -1
- package/lib-commonjs/components/TabList/useTabListStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/TabList/useTabListStyles.styles.raw.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Tab/useTabStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { TabSlots, TabState } from './Tab.types';\nimport { useTabAnimatedIndicatorStyles_unstable } from './useTabAnimatedIndicator.styles';\n\nexport const tabClassNames: SlotClassNames<TabSlots> = {\n root: 'fui-Tab',\n icon: 'fui-Tab__icon',\n content: 'fui-Tab__content',\n};\n\nexport const tabReservedSpaceClassNames = {\n content: 'fui-Tab__content--reserved-space',\n};\n\n// These should match the constants defined in @fluentui/react-icons\n// This package avoids taking a dependency on the icons package for only the constants.\nconst iconClassNames = {\n filled: 'fui-Icon-filled',\n regular: 'fui-Icon-regular',\n};\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n root: {\n alignItems: 'center',\n display: 'grid',\n flexShrink: 0,\n gridAutoFlow: 'column',\n gridTemplateColumns: 'auto',\n gridTemplateRows: 'auto',\n outlineStyle: 'none',\n position: 'relative',\n },\n button: {\n alignItems: 'center',\n border: 'none',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n display: 'grid',\n flexShrink: 0,\n gridAutoFlow: 'column',\n gridTemplateColumns: 'auto',\n gridTemplateRows: 'auto',\n fontFamily: tokens.fontFamilyBase,\n lineHeight: tokens.lineHeightBase300,\n outlineStyle: 'none',\n position: 'relative',\n overflow: 'hidden',\n textTransform: 'none',\n },\n horizontal: {\n justifyContent: 'center',\n },\n vertical: {\n justifyContent: 'start',\n },\n smallHorizontal: {\n columnGap: tokens.spacingHorizontalXXS,\n padding: `${tokens.spacingVerticalSNudge} ${tokens.spacingHorizontalSNudge}`,\n },\n smallVertical: {\n // horizontal spacing is deliberate. This is the gap between icon and content.\n columnGap: tokens.spacingHorizontalXXS,\n padding: `${tokens.spacingVerticalXXS} ${tokens.spacingHorizontalSNudge}`,\n },\n mediumHorizontal: {\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalM} ${tokens.spacingHorizontalMNudge}`,\n },\n mediumVertical: {\n // horizontal spacing is deliberate. This is the gap between icon and content.\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalSNudge} ${tokens.spacingHorizontalMNudge}`,\n },\n largeHorizontal: {\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalMNudge}`,\n },\n largeVertical: {\n // horizontal spacing is deliberate. This is the gap between icon and content.\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalMNudge}`,\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':enabled:hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n subtle: {\n backgroundColor: tokens.colorSubtleBackground,\n ':enabled:hover': {\n backgroundColor: tokens.colorSubtleBackgroundHover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n },\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n disabledCursor: {\n cursor: 'not-allowed',\n },\n disabled: {\n backgroundColor: tokens.colorTransparentBackground,\n\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n selected: {\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorCompoundBrandForeground1,\n },\n [`:enabled:hover .${tabClassNames.icon}`]: {\n color: tokens.colorCompoundBrandForeground1Hover,\n },\n [`:enabled:active .${tabClassNames.icon}`]: {\n color: tokens.colorCompoundBrandForeground1Pressed,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground1,\n },\n [`:enabled:hover .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground1Hover,\n },\n [`:enabled:active .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground1Pressed,\n },\n },\n});\n\nconst useCircularAppearanceStyles = makeStyles({\n base: {\n borderRadius: tokens.borderRadiusCircular,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorTransparentStroke}`,\n [`& .${tabClassNames.icon}`]: {\n color: 'inherit',\n },\n [`& .${tabClassNames.content}`]: {\n color: 'inherit',\n },\n },\n small: {\n paddingBlock: `calc(${tokens.spacingVerticalXXS} - ${tokens.strokeWidthThin})`,\n },\n medium: {\n paddingBlock: `calc(${tokens.spacingVerticalSNudge} - ${tokens.strokeWidthThin})`,\n },\n large: {\n paddingBlock: `calc(${tokens.spacingVerticalS} - ${tokens.strokeWidthThin})`,\n },\n subtle: {\n backgroundColor: tokens.colorSubtleBackground,\n color: tokens.colorNeutralForeground2,\n ':enabled:hover': {\n backgroundColor: tokens.colorSubtleBackgroundHover,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStroke1Hover}`,\n color: tokens.colorNeutralForeground2Hover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStroke1Pressed}`,\n color: tokens.colorNeutralForeground2Pressed,\n },\n '@media (forced-colors: active)': {\n border: `solid ${tokens.strokeWidthThin} Canvas`,\n },\n },\n subtleSelected: {\n backgroundColor: tokens.colorBrandBackground2,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorCompoundBrandStroke}`,\n color: tokens.colorBrandForeground2,\n ':enabled:hover': {\n backgroundColor: tokens.colorBrandBackground2Hover,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorCompoundBrandStrokeHover}`,\n color: tokens.colorBrandForeground2Hover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorBrandBackground2Pressed,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorCompoundBrandStrokePressed}`,\n color: tokens.colorBrandForeground2Pressed,\n },\n '@media (forced-colors: active)': {\n border: `solid ${tokens.strokeWidthThin} Highlight`,\n },\n },\n subtleDisabled: {\n backgroundColor: tokens.colorSubtleBackground,\n color: tokens.colorNeutralForegroundDisabled,\n },\n subtleDisabledSelected: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n filled: {\n backgroundColor: tokens.colorNeutralBackground3,\n color: tokens.colorNeutralForeground2,\n ':enabled:hover': {\n backgroundColor: tokens.colorNeutralBackground3Hover,\n color: tokens.colorNeutralForeground2Hover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorNeutralBackground3Pressed,\n color: tokens.colorNeutralForeground2Pressed,\n },\n '@media (forced-colors: active)': {\n ':enabled:hover': {\n backgroundColor: 'Highlight',\n forcedColorAdjust: 'none',\n [`& .${tabClassNames.content}`]: {\n color: 'HighlightText',\n },\n [`& .${iconClassNames.filled}`]: {\n color: 'HighlightText',\n },\n [`& .${iconClassNames.regular}`]: {\n color: 'HighlightText',\n },\n },\n },\n },\n filledSelected: {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n ':enabled:hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n color: tokens.colorNeutralForegroundOnBrand,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorBrandBackgroundPressed,\n color: tokens.colorNeutralForegroundOnBrand,\n },\n '@media (forced-colors: active)': {\n ':enabled': {\n backgroundColor: 'ButtonText',\n [`& .${tabClassNames.content}`]: {\n color: 'ButtonFace',\n forcedColorAdjust: 'none',\n },\n },\n [`:enabled .${tabClassNames.icon}`]: {\n color: 'ButtonFace',\n },\n },\n },\n filledDisabled: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n color: tokens.colorNeutralForegroundDisabled,\n },\n filledDisabledSelected: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n});\n\n/**\n * Focus styles for the root slot\n */\nconst useFocusStyles = makeStyles({\n // Tab creates a custom focus indicator because the default focus indicator\n // is applied using an ::after pseudo-element on the root. Since the selection\n // indicator uses an ::after pseudo-element on the root, there is a conflict.\n base: createCustomFocusIndicatorStyle(\n {\n ...shorthands.borderColor('transparent'),\n outlineWidth: tokens.strokeWidthThick,\n outlineColor: 'transparent',\n outlineStyle: 'solid',\n boxShadow: `\n ${tokens.shadow4},\n 0 0 0 ${tokens.strokeWidthThick} ${tokens.colorStrokeFocus2}\n `,\n zIndex: 1,\n },\n { enableOutline: true },\n ),\n circular: createCustomFocusIndicatorStyle(\n {\n ...shorthands.borderColor('transparent'),\n outlineWidth: tokens.strokeWidthThick,\n outlineColor: 'transparent',\n outlineStyle: 'solid',\n boxShadow: `\n ${tokens.shadow4},\n 0 0 0 ${tokens.strokeWidthThick} ${tokens.colorStrokeFocus2},\n 0 0 0 ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeOnBrand} inset\n `,\n zIndex: 1,\n },\n { enableOutline: true },\n ),\n});\n\n/** Indicator styles for when pending selection */\nconst usePendingIndicatorStyles = makeStyles({\n base: {\n ':hover::before': {\n backgroundColor: tokens.colorNeutralStroke1Hover,\n borderRadius: tokens.borderRadiusCircular,\n content: '\"\"',\n position: 'absolute',\n },\n ':active::before': {\n backgroundColor: tokens.colorNeutralStroke1Pressed,\n borderRadius: tokens.borderRadiusCircular,\n content: '\"\"',\n position: 'absolute',\n },\n '@media (forced-colors: active)': {\n ':hover::before': {\n backgroundColor: 'Highlight',\n },\n ':active::before': {\n backgroundColor: 'Highlight',\n },\n },\n },\n disabled: {\n ':hover::before': {\n backgroundColor: tokens.colorTransparentStroke,\n },\n ':active::before': {\n backgroundColor: tokens.colorTransparentStroke,\n },\n '@media (forced-colors: active)': {\n ':hover::before': {\n backgroundColor: 'transparent',\n },\n ':active::before': {\n backgroundColor: 'transparent',\n },\n },\n },\n smallHorizontal: {\n '::before': {\n bottom: 0,\n height: tokens.strokeWidthThick,\n left: tokens.spacingHorizontalSNudge,\n right: tokens.spacingHorizontalSNudge,\n },\n },\n smallVertical: {\n '::before': {\n bottom: tokens.spacingVerticalXS,\n left: 0,\n top: tokens.spacingVerticalXS,\n width: tokens.strokeWidthThicker,\n },\n },\n mediumHorizontal: {\n '::before': {\n bottom: 0,\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n mediumVertical: {\n '::before': {\n bottom: tokens.spacingVerticalS,\n left: 0,\n top: tokens.spacingVerticalS,\n width: tokens.strokeWidthThicker,\n },\n },\n largeHorizontal: {\n '::before': {\n bottom: 0,\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n largeVertical: {\n '::before': {\n bottom: tokens.spacingVerticalMNudge,\n left: 0,\n top: tokens.spacingVerticalMNudge,\n width: tokens.strokeWidthThicker,\n },\n },\n});\n\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n '::after': {\n backgroundColor: tokens.colorTransparentStroke,\n borderRadius: tokens.borderRadiusCircular,\n content: '\"\"',\n position: 'absolute',\n },\n },\n selected: {\n '::after': {\n backgroundColor: tokens.colorCompoundBrandStroke,\n },\n ':enabled:hover::after': {\n backgroundColor: tokens.colorCompoundBrandStrokeHover,\n },\n ':enabled:active::after': {\n backgroundColor: tokens.colorCompoundBrandStrokePressed,\n },\n '@media (forced-colors: active)': {\n '::after': {\n backgroundColor: 'ButtonText',\n },\n ':enabled:hover::after': {\n backgroundColor: 'ButtonText',\n },\n ':enabled:active::after': {\n backgroundColor: 'ButtonText',\n },\n },\n },\n disabled: {\n '::after': {\n backgroundColor: tokens.colorNeutralForegroundDisabled,\n },\n },\n smallHorizontal: {\n '::after': {\n bottom: 0,\n height: tokens.strokeWidthThick,\n left: tokens.spacingHorizontalSNudge,\n right: tokens.spacingHorizontalSNudge,\n },\n },\n smallVertical: {\n '::after': {\n bottom: tokens.spacingVerticalXS,\n left: '0',\n top: tokens.spacingVerticalXS,\n width: tokens.strokeWidthThicker,\n },\n },\n mediumHorizontal: {\n '::after': {\n bottom: '0',\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n mediumVertical: {\n '::after': {\n bottom: tokens.spacingVerticalS,\n left: 0,\n top: tokens.spacingVerticalS,\n width: tokens.strokeWidthThicker,\n },\n },\n largeHorizontal: {\n '::after': {\n bottom: 0,\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n largeVertical: {\n '::after': {\n bottom: tokens.spacingVerticalMNudge,\n left: 0,\n top: tokens.spacingVerticalMNudge,\n width: tokens.strokeWidthThicker,\n },\n },\n});\n\n/**\n * Styles for the icon slot.\n */\nconst useIconStyles = makeStyles({\n base: {\n gridColumnStart: 1,\n gridRowStart: 1,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n overflow: 'hidden',\n [`& .${iconClassNames.filled}`]: {\n display: 'none',\n },\n [`& .${iconClassNames.regular}`]: {\n display: 'inline',\n },\n },\n // per design, the small and medium font sizes are the same.\n // the size prop only affects spacing.\n small: {\n fontSize: '20px',\n height: '20px',\n width: '20px',\n },\n medium: {\n fontSize: '20px',\n height: '20px',\n width: '20px',\n },\n large: {\n fontSize: '24px',\n height: '24px',\n width: '24px',\n },\n selected: {\n [`& .${iconClassNames.filled}`]: {\n display: 'inline',\n },\n [`& .${iconClassNames.regular}`]: {\n display: 'none',\n },\n },\n});\n\n/**\n * Styles for the content slot (children)\n */\nconst useContentStyles = makeStyles({\n base: {\n ...typographyStyles.body1,\n overflow: 'hidden',\n // content padding is the same for medium & small, horizontal & vertical\n padding: `${tokens.spacingVerticalNone} ${tokens.spacingHorizontalXXS}`,\n },\n selected: {\n ...typographyStyles.body1Strong,\n },\n large: {\n ...typographyStyles.body2,\n },\n largeSelected: {\n ...typographyStyles.subtitle2,\n },\n noIconBefore: {\n gridColumnStart: 1,\n gridRowStart: 1,\n },\n iconBefore: {\n gridColumnStart: 2,\n gridRowStart: 1,\n },\n placeholder: {\n visibility: 'hidden',\n },\n});\n\n/**\n * Apply styling to the Tab slots based on the state\n */\nexport const useTabStyles_unstable = (state: TabState): TabState => {\n 'use no memo';\n\n useTabIndicatorStyles_unstable(state);\n\n useTabButtonStyles_unstable(state, state.root);\n\n useTabContentStyles_unstable(state);\n\n return state;\n};\n\n/**\n * Applies styles for the Tab indicator based on its current state.\n *\n * This hook is typically used internally by `useTabStyles_unstable`. You should\n * only use it directly if you're creating a custom `Tab` component.\n *\n * @param state - The `Tab` component's current state\n * @returns The state object with updated button styles\n */\nexport const useTabIndicatorStyles_unstable = (state: TabState): TabState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const pendingIndicatorStyles = usePendingIndicatorStyles();\n const activeIndicatorStyles = useActiveIndicatorStyles();\n\n const { appearance, disabled, selected, size, vertical } = state;\n\n const classes: Parameters<typeof mergeClasses> = [tabClassNames.root, rootStyles.root];\n\n if (appearance !== 'subtle-circular' && appearance !== 'filled-circular') {\n classes.push(\n // pending indicator (before pseudo element)\n pendingIndicatorStyles.base,\n size === 'small' && (vertical ? pendingIndicatorStyles.smallVertical : pendingIndicatorStyles.smallHorizontal),\n size === 'medium' && (vertical ? pendingIndicatorStyles.mediumVertical : pendingIndicatorStyles.mediumHorizontal),\n size === 'large' && (vertical ? pendingIndicatorStyles.largeVertical : pendingIndicatorStyles.largeHorizontal),\n disabled && pendingIndicatorStyles.disabled,\n\n // active indicator (after pseudo element)\n selected && activeIndicatorStyles.base,\n selected && !disabled && activeIndicatorStyles.selected,\n selected &&\n size === 'small' &&\n (vertical ? activeIndicatorStyles.smallVertical : activeIndicatorStyles.smallHorizontal),\n selected &&\n size === 'medium' &&\n (vertical ? activeIndicatorStyles.mediumVertical : activeIndicatorStyles.mediumHorizontal),\n selected &&\n size === 'large' &&\n (vertical ? activeIndicatorStyles.largeVertical : activeIndicatorStyles.largeHorizontal),\n selected && disabled && activeIndicatorStyles.disabled,\n );\n }\n\n state.root.className = mergeClasses(...classes, state.root.className);\n\n useTabAnimatedIndicatorStyles_unstable(state);\n\n return state;\n};\n\n/**\n * Applies styles to the Tab button slot based on its current state.\n *\n * This hook is typically used internally by `useTabStyles_unstable`. You should\n * only use it directly if you're creating a custom `Tab` component.\n *\n * @param state - The Tab component's current state\n * @param slot - The button slot of the Tab component\n * @returns The state object with updated button styles\n */\nexport const useTabButtonStyles_unstable = (state: TabState, slot: TabState['root']): TabState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const focusStyles = useFocusStyles();\n const circularStyles = useCircularAppearanceStyles();\n\n const { appearance, disabled, selected, size, vertical } = state;\n\n const isSubtleCircular = appearance === 'subtle-circular';\n const isFilledCircular = appearance === 'filled-circular';\n const isCircular = isSubtleCircular || isFilledCircular;\n\n const circularAppearance = [\n circularStyles.base,\n focusStyles.circular,\n // sizes\n size === 'small' && circularStyles.small,\n size === 'medium' && circularStyles.medium,\n size === 'large' && circularStyles.large,\n // subtle-circular appearance\n isSubtleCircular && circularStyles.subtle,\n selected && isSubtleCircular && circularStyles.subtleSelected,\n disabled && isSubtleCircular && circularStyles.subtleDisabled,\n selected && disabled && isSubtleCircular && circularStyles.subtleDisabledSelected,\n // filled-circular appearance\n isFilledCircular && circularStyles.filled,\n selected && isFilledCircular && circularStyles.filledSelected,\n disabled && isFilledCircular && circularStyles.filledDisabled,\n selected && disabled && isFilledCircular && circularStyles.filledDisabledSelected,\n ];\n\n const regularAppearance = [\n focusStyles.base,\n !disabled && appearance === 'subtle' && rootStyles.subtle,\n !disabled && appearance === 'transparent' && rootStyles.transparent,\n !disabled && selected && rootStyles.selected,\n disabled && rootStyles.disabled,\n ];\n\n slot.className = mergeClasses(\n rootStyles.button,\n // orientation\n vertical ? rootStyles.vertical : rootStyles.horizontal,\n // size\n size === 'small' && (vertical ? rootStyles.smallVertical : rootStyles.smallHorizontal),\n size === 'medium' && (vertical ? rootStyles.mediumVertical : rootStyles.mediumHorizontal),\n size === 'large' && (vertical ? rootStyles.largeVertical : rootStyles.largeHorizontal),\n ...(isCircular ? circularAppearance : regularAppearance),\n disabled && rootStyles.disabledCursor,\n slot.className,\n );\n\n return state;\n};\n\n/**\n * Applies styles to the Tab content slot based on its current state.\n *\n * This hook is typically used internally by `useTabStyles_unstable`. You should\n * only use it directly if you're creating a custom `Tab` component.\n *\n * @param state - The Tab component's current state\n * @returns The state object with updated content styles\n */\nexport const useTabContentStyles_unstable = (state: TabState): TabState => {\n 'use no memo';\n\n const iconStyles = useIconStyles();\n const contentStyles = useContentStyles();\n\n const { selected, size } = state;\n\n if (state.icon) {\n state.icon.className = mergeClasses(\n tabClassNames.icon,\n iconStyles.base,\n iconStyles[size],\n selected && iconStyles.selected,\n state.icon.className,\n );\n }\n\n // This needs to be before state.content.className is updated\n if (state.contentReservedSpace) {\n state.contentReservedSpace.className = mergeClasses(\n tabReservedSpaceClassNames.content,\n contentStyles.base,\n size === 'large' ? contentStyles.largeSelected : contentStyles.selected,\n state.icon ? contentStyles.iconBefore : contentStyles.noIconBefore,\n contentStyles.placeholder,\n state.content.className,\n );\n // FIXME: this is a deprecated API\n // should be removed in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n state.contentReservedSpaceClassName = state.contentReservedSpace.className;\n }\n\n state.content.className = mergeClasses(\n tabClassNames.content,\n contentStyles.base,\n size === 'large' && contentStyles.large,\n selected && (size === 'large' ? contentStyles.largeSelected : contentStyles.selected),\n state.icon ? contentStyles.iconBefore : contentStyles.noIconBefore,\n state.content.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","shorthands","createCustomFocusIndicatorStyle","tokens","typographyStyles","useTabAnimatedIndicatorStyles_unstable","tabClassNames","root","icon","content","tabReservedSpaceClassNames","iconClassNames","filled","regular","useRootStyles","alignItems","display","flexShrink","gridAutoFlow","gridTemplateColumns","gridTemplateRows","outlineStyle","position","button","border","borderRadius","borderRadiusMedium","cursor","fontFamily","fontFamilyBase","lineHeight","lineHeightBase300","overflow","textTransform","horizontal","justifyContent","vertical","smallHorizontal","columnGap","spacingHorizontalXXS","padding","spacingVerticalSNudge","spacingHorizontalSNudge","smallVertical","spacingVerticalXXS","mediumHorizontal","spacingVerticalM","spacingHorizontalMNudge","mediumVertical","largeHorizontal","spacingVerticalL","largeVertical","spacingVerticalS","transparent","backgroundColor","colorTransparentBackground","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","color","colorNeutralForeground2","colorNeutralForeground2Hover","colorNeutralForeground2Pressed","subtle","colorSubtleBackground","colorSubtleBackgroundHover","colorSubtleBackgroundPressed","disabledCursor","disabled","colorNeutralForegroundDisabled","selected","colorCompoundBrandForeground1","colorCompoundBrandForeground1Hover","colorCompoundBrandForeground1Pressed","colorNeutralForeground1","colorNeutralForeground1Hover","colorNeutralForeground1Pressed","useCircularAppearanceStyles","base","borderRadiusCircular","strokeWidthThin","colorTransparentStroke","small","paddingBlock","medium","large","colorNeutralStroke1Hover","colorNeutralStroke1Pressed","subtleSelected","colorBrandBackground2","colorCompoundBrandStroke","colorBrandForeground2","colorBrandBackground2Hover","colorCompoundBrandStrokeHover","colorBrandForeground2Hover","colorBrandBackground2Pressed","colorCompoundBrandStrokePressed","colorBrandForeground2Pressed","subtleDisabled","subtleDisabledSelected","colorNeutralBackgroundDisabled","colorNeutralStrokeDisabled","colorNeutralBackground3","colorNeutralBackground3Hover","colorNeutralBackground3Pressed","forcedColorAdjust","filledSelected","colorBrandBackground","colorNeutralForegroundOnBrand","colorBrandBackgroundHover","colorBrandBackgroundPressed","filledDisabled","filledDisabledSelected","useFocusStyles","borderColor","outlineWidth","strokeWidthThick","outlineColor","boxShadow","shadow4","colorStrokeFocus2","zIndex","enableOutline","circular","colorNeutralStrokeOnBrand","usePendingIndicatorStyles","bottom","height","left","right","spacingVerticalXS","top","width","strokeWidthThicker","spacingHorizontalM","spacingVerticalMNudge","useActiveIndicatorStyles","useIconStyles","gridColumnStart","gridRowStart","fontSize","useContentStyles","body1","spacingVerticalNone","body1Strong","body2","largeSelected","subtitle2","noIconBefore","iconBefore","placeholder","visibility","useTabStyles_unstable","state","useTabIndicatorStyles_unstable","useTabButtonStyles_unstable","useTabContentStyles_unstable","rootStyles","pendingIndicatorStyles","activeIndicatorStyles","appearance","size","classes","push","className","slot","focusStyles","circularStyles","isSubtleCircular","isFilledCircular","isCircular","circularAppearance","regularAppearance","iconStyles","contentStyles","contentReservedSpace","contentReservedSpaceClassName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/Tab/useTabStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses, shorthands } from '@griffel/react';\nimport { createCustomFocusIndicatorStyle } from '@fluentui/react-tabster';\nimport { tokens, typographyStyles } from '@fluentui/react-theme';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { TabSlots, TabState } from './Tab.types';\nimport { useTabAnimatedIndicatorStyles_unstable } from './useTabAnimatedIndicator.styles';\n\nexport const tabClassNames: SlotClassNames<TabSlots> = {\n root: 'fui-Tab',\n icon: 'fui-Tab__icon',\n content: 'fui-Tab__content',\n};\n\nexport const tabReservedSpaceClassNames = {\n content: 'fui-Tab__content--reserved-space',\n};\n\n// These should match the constants defined in @fluentui/react-icons\n// This package avoids taking a dependency on the icons package for only the constants.\nconst iconClassNames = {\n filled: 'fui-Icon-filled',\n regular: 'fui-Icon-regular',\n};\n\n/**\n * Styles for the root slot\n */\nconst useRootStyles = makeStyles({\n root: {\n alignItems: 'center',\n display: 'grid',\n flexShrink: 0,\n gridAutoFlow: 'column',\n gridTemplateColumns: 'auto',\n gridTemplateRows: 'auto',\n outlineStyle: 'none',\n position: 'relative',\n },\n button: {\n alignItems: 'center',\n border: 'none',\n borderRadius: tokens.borderRadiusMedium,\n cursor: 'pointer',\n display: 'grid',\n flexShrink: 0,\n gridAutoFlow: 'column',\n gridTemplateColumns: 'auto',\n gridTemplateRows: 'auto',\n fontFamily: tokens.fontFamilyBase,\n lineHeight: tokens.lineHeightBase300,\n outlineStyle: 'none',\n position: 'relative',\n overflow: 'hidden',\n textTransform: 'none',\n },\n horizontal: {\n justifyContent: 'center',\n },\n vertical: {\n justifyContent: 'start',\n },\n smallHorizontal: {\n columnGap: tokens.spacingHorizontalXXS,\n padding: `${tokens.spacingVerticalSNudge} ${tokens.spacingHorizontalSNudge}`,\n },\n smallVertical: {\n // horizontal spacing is deliberate. This is the gap between icon and content.\n columnGap: tokens.spacingHorizontalXXS,\n padding: `${tokens.spacingVerticalXXS} ${tokens.spacingHorizontalSNudge}`,\n },\n mediumHorizontal: {\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalM} ${tokens.spacingHorizontalMNudge}`,\n },\n mediumVertical: {\n // horizontal spacing is deliberate. This is the gap between icon and content.\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalSNudge} ${tokens.spacingHorizontalMNudge}`,\n },\n largeHorizontal: {\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalL} ${tokens.spacingHorizontalMNudge}`,\n },\n largeVertical: {\n // horizontal spacing is deliberate. This is the gap between icon and content.\n columnGap: tokens.spacingHorizontalSNudge,\n padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalMNudge}`,\n },\n transparent: {\n backgroundColor: tokens.colorTransparentBackground,\n ':enabled:hover': {\n backgroundColor: tokens.colorTransparentBackgroundHover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorTransparentBackgroundPressed,\n },\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n subtle: {\n backgroundColor: tokens.colorSubtleBackground,\n ':enabled:hover': {\n backgroundColor: tokens.colorSubtleBackgroundHover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n },\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2,\n },\n [`:enabled:hover .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Hover,\n },\n [`:enabled:active .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground2Pressed,\n },\n },\n disabledCursor: {\n cursor: 'not-allowed',\n },\n disabled: {\n backgroundColor: tokens.colorTransparentBackground,\n\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForegroundDisabled,\n },\n },\n selected: {\n [`& .${tabClassNames.icon}`]: {\n color: tokens.colorCompoundBrandForeground1,\n },\n [`:enabled:hover .${tabClassNames.icon}`]: {\n color: tokens.colorCompoundBrandForeground1Hover,\n },\n [`:enabled:active .${tabClassNames.icon}`]: {\n color: tokens.colorCompoundBrandForeground1Pressed,\n },\n [`& .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground1,\n },\n [`:enabled:hover .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground1Hover,\n },\n [`:enabled:active .${tabClassNames.content}`]: {\n color: tokens.colorNeutralForeground1Pressed,\n },\n },\n});\n\nconst useCircularAppearanceStyles = makeStyles({\n base: {\n borderRadius: tokens.borderRadiusCircular,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorTransparentStroke}`,\n [`& .${tabClassNames.icon}`]: {\n color: 'inherit',\n },\n [`& .${tabClassNames.content}`]: {\n color: 'inherit',\n },\n },\n small: {\n paddingBlock: `calc(${tokens.spacingVerticalXXS} - ${tokens.strokeWidthThin})`,\n },\n medium: {\n paddingBlock: `calc(${tokens.spacingVerticalSNudge} - ${tokens.strokeWidthThin})`,\n },\n large: {\n paddingBlock: `calc(${tokens.spacingVerticalS} - ${tokens.strokeWidthThin})`,\n },\n subtle: {\n backgroundColor: tokens.colorSubtleBackground,\n color: tokens.colorNeutralForeground2,\n ':enabled:hover': {\n backgroundColor: tokens.colorSubtleBackgroundHover,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStroke1Hover}`,\n color: tokens.colorNeutralForeground2Hover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorSubtleBackgroundPressed,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStroke1Pressed}`,\n color: tokens.colorNeutralForeground2Pressed,\n },\n '@media (forced-colors: active)': {\n border: `solid ${tokens.strokeWidthThin} Canvas`,\n },\n },\n subtleSelected: {\n backgroundColor: tokens.colorBrandBackground2,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorCompoundBrandStroke}`,\n color: tokens.colorBrandForeground2,\n ':enabled:hover': {\n backgroundColor: tokens.colorBrandBackground2Hover,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorCompoundBrandStrokeHover}`,\n color: tokens.colorBrandForeground2Hover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorBrandBackground2Pressed,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorCompoundBrandStrokePressed}`,\n color: tokens.colorBrandForeground2Pressed,\n },\n '@media (forced-colors: active)': {\n border: `solid ${tokens.strokeWidthThin} Highlight`,\n },\n },\n subtleDisabled: {\n backgroundColor: tokens.colorSubtleBackground,\n color: tokens.colorNeutralForegroundDisabled,\n },\n subtleDisabledSelected: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n filled: {\n backgroundColor: tokens.colorNeutralBackground3,\n color: tokens.colorNeutralForeground2,\n ':enabled:hover': {\n backgroundColor: tokens.colorNeutralBackground3Hover,\n color: tokens.colorNeutralForeground2Hover,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorNeutralBackground3Pressed,\n color: tokens.colorNeutralForeground2Pressed,\n },\n '@media (forced-colors: active)': {\n ':enabled:hover': {\n backgroundColor: 'Highlight',\n forcedColorAdjust: 'none',\n [`& .${tabClassNames.content}`]: {\n color: 'HighlightText',\n },\n [`& .${iconClassNames.filled}`]: {\n color: 'HighlightText',\n },\n [`& .${iconClassNames.regular}`]: {\n color: 'HighlightText',\n },\n },\n },\n },\n filledSelected: {\n backgroundColor: tokens.colorBrandBackground,\n color: tokens.colorNeutralForegroundOnBrand,\n ':enabled:hover': {\n backgroundColor: tokens.colorBrandBackgroundHover,\n color: tokens.colorNeutralForegroundOnBrand,\n },\n ':enabled:active': {\n backgroundColor: tokens.colorBrandBackgroundPressed,\n color: tokens.colorNeutralForegroundOnBrand,\n },\n '@media (forced-colors: active)': {\n ':enabled': {\n backgroundColor: 'ButtonText',\n [`& .${tabClassNames.content}`]: {\n color: 'ButtonFace',\n forcedColorAdjust: 'none',\n },\n },\n [`:enabled .${tabClassNames.icon}`]: {\n color: 'ButtonFace',\n },\n },\n },\n filledDisabled: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n color: tokens.colorNeutralForegroundDisabled,\n },\n filledDisabledSelected: {\n backgroundColor: tokens.colorNeutralBackgroundDisabled,\n border: `solid ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeDisabled}`,\n color: tokens.colorNeutralForegroundDisabled,\n },\n});\n\n/**\n * Focus styles for the root slot\n */\nconst useFocusStyles = makeStyles({\n // Tab creates a custom focus indicator because the default focus indicator\n // is applied using an ::after pseudo-element on the root. Since the selection\n // indicator uses an ::after pseudo-element on the root, there is a conflict.\n base: createCustomFocusIndicatorStyle(\n {\n ...shorthands.borderColor('transparent'),\n outlineWidth: tokens.strokeWidthThick,\n outlineColor: 'transparent',\n outlineStyle: 'solid',\n boxShadow: `\n ${tokens.shadow4},\n 0 0 0 ${tokens.strokeWidthThick} ${tokens.colorStrokeFocus2}\n `,\n zIndex: 1,\n },\n { enableOutline: true },\n ),\n circular: createCustomFocusIndicatorStyle(\n {\n ...shorthands.borderColor('transparent'),\n outlineWidth: tokens.strokeWidthThick,\n outlineColor: 'transparent',\n outlineStyle: 'solid',\n boxShadow: `\n ${tokens.shadow4},\n 0 0 0 ${tokens.strokeWidthThick} ${tokens.colorStrokeFocus2},\n 0 0 0 ${tokens.strokeWidthThin} ${tokens.colorNeutralStrokeOnBrand} inset\n `,\n zIndex: 1,\n },\n { enableOutline: true },\n ),\n});\n\n/** Indicator styles for when pending selection */\nconst usePendingIndicatorStyles = makeStyles({\n base: {\n ':hover::before': {\n backgroundColor: tokens.colorNeutralStroke1Hover,\n borderRadius: tokens.borderRadiusCircular,\n content: '\"\"',\n position: 'absolute',\n },\n ':active::before': {\n backgroundColor: tokens.colorNeutralStroke1Pressed,\n borderRadius: tokens.borderRadiusCircular,\n content: '\"\"',\n position: 'absolute',\n },\n '@media (forced-colors: active)': {\n ':hover::before': {\n backgroundColor: 'Highlight',\n },\n ':active::before': {\n backgroundColor: 'Highlight',\n },\n },\n },\n disabled: {\n ':hover::before': {\n backgroundColor: tokens.colorTransparentStroke,\n },\n ':active::before': {\n backgroundColor: tokens.colorTransparentStroke,\n },\n '@media (forced-colors: active)': {\n ':hover::before': {\n backgroundColor: 'transparent',\n },\n ':active::before': {\n backgroundColor: 'transparent',\n },\n },\n },\n smallHorizontal: {\n '::before': {\n bottom: 0,\n height: tokens.strokeWidthThick,\n left: tokens.spacingHorizontalSNudge,\n right: tokens.spacingHorizontalSNudge,\n },\n },\n smallVertical: {\n '::before': {\n bottom: tokens.spacingVerticalXS,\n left: 0,\n top: tokens.spacingVerticalXS,\n width: tokens.strokeWidthThicker,\n },\n },\n mediumHorizontal: {\n '::before': {\n bottom: 0,\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n mediumVertical: {\n '::before': {\n bottom: tokens.spacingVerticalS,\n left: 0,\n top: tokens.spacingVerticalS,\n width: tokens.strokeWidthThicker,\n },\n },\n largeHorizontal: {\n '::before': {\n bottom: 0,\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n largeVertical: {\n '::before': {\n bottom: tokens.spacingVerticalMNudge,\n left: 0,\n top: tokens.spacingVerticalMNudge,\n width: tokens.strokeWidthThicker,\n },\n },\n});\n\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n '::after': {\n backgroundColor: tokens.colorTransparentStroke,\n borderRadius: tokens.borderRadiusCircular,\n content: '\"\"',\n position: 'absolute',\n },\n },\n selected: {\n '::after': {\n backgroundColor: tokens.colorCompoundBrandStroke,\n },\n ':enabled:hover::after': {\n backgroundColor: tokens.colorCompoundBrandStrokeHover,\n },\n ':enabled:active::after': {\n backgroundColor: tokens.colorCompoundBrandStrokePressed,\n },\n '@media (forced-colors: active)': {\n '::after': {\n backgroundColor: 'ButtonText',\n },\n ':enabled:hover::after': {\n backgroundColor: 'ButtonText',\n },\n ':enabled:active::after': {\n backgroundColor: 'ButtonText',\n },\n },\n },\n disabled: {\n '::after': {\n backgroundColor: tokens.colorNeutralForegroundDisabled,\n },\n },\n smallHorizontal: {\n '::after': {\n bottom: 0,\n height: tokens.strokeWidthThick,\n left: tokens.spacingHorizontalSNudge,\n right: tokens.spacingHorizontalSNudge,\n },\n },\n smallVertical: {\n '::after': {\n bottom: tokens.spacingVerticalXS,\n left: '0',\n top: tokens.spacingVerticalXS,\n width: tokens.strokeWidthThicker,\n },\n },\n mediumHorizontal: {\n '::after': {\n bottom: '0',\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n mediumVertical: {\n '::after': {\n bottom: tokens.spacingVerticalS,\n left: 0,\n top: tokens.spacingVerticalS,\n width: tokens.strokeWidthThicker,\n },\n },\n largeHorizontal: {\n '::after': {\n bottom: 0,\n height: tokens.strokeWidthThicker,\n left: tokens.spacingHorizontalM,\n right: tokens.spacingHorizontalM,\n },\n },\n largeVertical: {\n '::after': {\n bottom: tokens.spacingVerticalMNudge,\n left: 0,\n top: tokens.spacingVerticalMNudge,\n width: tokens.strokeWidthThicker,\n },\n },\n});\n\n/**\n * Styles for the icon slot.\n */\nconst useIconStyles = makeStyles({\n base: {\n gridColumnStart: 1,\n gridRowStart: 1,\n alignItems: 'center',\n display: 'inline-flex',\n justifyContent: 'center',\n overflow: 'hidden',\n [`& .${iconClassNames.filled}`]: {\n display: 'none',\n },\n [`& .${iconClassNames.regular}`]: {\n display: 'inline',\n },\n },\n // per design, the small and medium font sizes are the same.\n // the size prop only affects spacing.\n small: {\n fontSize: '20px',\n height: '20px',\n width: '20px',\n },\n medium: {\n fontSize: '20px',\n height: '20px',\n width: '20px',\n },\n large: {\n fontSize: '24px',\n height: '24px',\n width: '24px',\n },\n selected: {\n [`& .${iconClassNames.filled}`]: {\n display: 'inline',\n },\n [`& .${iconClassNames.regular}`]: {\n display: 'none',\n },\n },\n});\n\n/**\n * Styles for the content slot (children)\n */\nconst useContentStyles = makeStyles({\n base: {\n ...typographyStyles.body1,\n overflow: 'hidden',\n // content padding is the same for medium & small, horizontal & vertical\n padding: `${tokens.spacingVerticalNone} ${tokens.spacingHorizontalXXS}`,\n },\n selected: {\n ...typographyStyles.body1Strong,\n },\n large: {\n ...typographyStyles.body2,\n },\n largeSelected: {\n ...typographyStyles.subtitle2,\n },\n noIconBefore: {\n gridColumnStart: 1,\n gridRowStart: 1,\n },\n iconBefore: {\n gridColumnStart: 2,\n gridRowStart: 1,\n },\n placeholder: {\n visibility: 'hidden',\n },\n});\n\n/**\n * Apply styling to the Tab slots based on the state\n */\nexport const useTabStyles_unstable = (state: TabState): TabState => {\n 'use no memo';\n\n useTabIndicatorStyles_unstable(state);\n\n useTabButtonStyles_unstable(state, state.root);\n\n useTabContentStyles_unstable(state);\n\n return state;\n};\n\n/**\n * Applies styles for the Tab indicator based on its current state.\n *\n * This hook is typically used internally by `useTabStyles_unstable`. You should\n * only use it directly if you're creating a custom `Tab` component.\n *\n * @param state - The `Tab` component's current state\n * @returns The state object with updated button styles\n */\nexport const useTabIndicatorStyles_unstable = (state: TabState): TabState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const pendingIndicatorStyles = usePendingIndicatorStyles();\n const activeIndicatorStyles = useActiveIndicatorStyles();\n\n const { appearance, disabled, selected, size, vertical } = state;\n\n const classes: Parameters<typeof mergeClasses> = [tabClassNames.root, rootStyles.root];\n\n if (appearance !== 'subtle-circular' && appearance !== 'filled-circular') {\n classes.push(\n // pending indicator (before pseudo element)\n pendingIndicatorStyles.base,\n size === 'small' && (vertical ? pendingIndicatorStyles.smallVertical : pendingIndicatorStyles.smallHorizontal),\n size === 'medium' && (vertical ? pendingIndicatorStyles.mediumVertical : pendingIndicatorStyles.mediumHorizontal),\n size === 'large' && (vertical ? pendingIndicatorStyles.largeVertical : pendingIndicatorStyles.largeHorizontal),\n disabled && pendingIndicatorStyles.disabled,\n\n // active indicator (after pseudo element)\n selected && activeIndicatorStyles.base,\n selected && !disabled && activeIndicatorStyles.selected,\n selected &&\n size === 'small' &&\n (vertical ? activeIndicatorStyles.smallVertical : activeIndicatorStyles.smallHorizontal),\n selected &&\n size === 'medium' &&\n (vertical ? activeIndicatorStyles.mediumVertical : activeIndicatorStyles.mediumHorizontal),\n selected &&\n size === 'large' &&\n (vertical ? activeIndicatorStyles.largeVertical : activeIndicatorStyles.largeHorizontal),\n selected && disabled && activeIndicatorStyles.disabled,\n );\n }\n\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(...classes, state.root.className);\n\n useTabAnimatedIndicatorStyles_unstable(state);\n\n return state;\n};\n\n/**\n * Applies styles to the Tab button slot based on its current state.\n *\n * This hook is typically used internally by `useTabStyles_unstable`. You should\n * only use it directly if you're creating a custom `Tab` component.\n *\n * @param state - The Tab component's current state\n * @param slot - The button slot of the Tab component\n * @returns The state object with updated button styles\n */\nexport const useTabButtonStyles_unstable = (state: TabState, slot: TabState['root']): TabState => {\n 'use no memo';\n\n const rootStyles = useRootStyles();\n const focusStyles = useFocusStyles();\n const circularStyles = useCircularAppearanceStyles();\n\n const { appearance, disabled, selected, size, vertical } = state;\n\n const isSubtleCircular = appearance === 'subtle-circular';\n const isFilledCircular = appearance === 'filled-circular';\n const isCircular = isSubtleCircular || isFilledCircular;\n\n const circularAppearance = [\n circularStyles.base,\n focusStyles.circular,\n // sizes\n size === 'small' && circularStyles.small,\n size === 'medium' && circularStyles.medium,\n size === 'large' && circularStyles.large,\n // subtle-circular appearance\n isSubtleCircular && circularStyles.subtle,\n selected && isSubtleCircular && circularStyles.subtleSelected,\n disabled && isSubtleCircular && circularStyles.subtleDisabled,\n selected && disabled && isSubtleCircular && circularStyles.subtleDisabledSelected,\n // filled-circular appearance\n isFilledCircular && circularStyles.filled,\n selected && isFilledCircular && circularStyles.filledSelected,\n disabled && isFilledCircular && circularStyles.filledDisabled,\n selected && disabled && isFilledCircular && circularStyles.filledDisabledSelected,\n ];\n\n const regularAppearance = [\n focusStyles.base,\n !disabled && appearance === 'subtle' && rootStyles.subtle,\n !disabled && appearance === 'transparent' && rootStyles.transparent,\n !disabled && selected && rootStyles.selected,\n disabled && rootStyles.disabled,\n ];\n\n // eslint-disable-next-line react-hooks/immutability\n slot.className = mergeClasses(\n rootStyles.button,\n // orientation\n vertical ? rootStyles.vertical : rootStyles.horizontal,\n // size\n size === 'small' && (vertical ? rootStyles.smallVertical : rootStyles.smallHorizontal),\n size === 'medium' && (vertical ? rootStyles.mediumVertical : rootStyles.mediumHorizontal),\n size === 'large' && (vertical ? rootStyles.largeVertical : rootStyles.largeHorizontal),\n ...(isCircular ? circularAppearance : regularAppearance),\n disabled && rootStyles.disabledCursor,\n slot.className,\n );\n\n return state;\n};\n\n/**\n * Applies styles to the Tab content slot based on its current state.\n *\n * This hook is typically used internally by `useTabStyles_unstable`. You should\n * only use it directly if you're creating a custom `Tab` component.\n *\n * @param state - The Tab component's current state\n * @returns The state object with updated content styles\n */\nexport const useTabContentStyles_unstable = (state: TabState): TabState => {\n 'use no memo';\n\n const iconStyles = useIconStyles();\n const contentStyles = useContentStyles();\n\n const { selected, size } = state;\n\n if (state.icon) {\n // eslint-disable-next-line react-hooks/immutability\n state.icon.className = mergeClasses(\n tabClassNames.icon,\n iconStyles.base,\n iconStyles[size],\n selected && iconStyles.selected,\n state.icon.className,\n );\n }\n\n // This needs to be before state.content.className is updated\n if (state.contentReservedSpace) {\n // eslint-disable-next-line react-hooks/immutability\n state.contentReservedSpace.className = mergeClasses(\n tabReservedSpaceClassNames.content,\n contentStyles.base,\n size === 'large' ? contentStyles.largeSelected : contentStyles.selected,\n state.icon ? contentStyles.iconBefore : contentStyles.noIconBefore,\n contentStyles.placeholder,\n state.content.className,\n );\n // FIXME: this is a deprecated API\n // should be removed in the next major version\n // eslint-disable-next-line @typescript-eslint/no-deprecated, react-hooks/immutability\n state.contentReservedSpaceClassName = state.contentReservedSpace.className;\n }\n\n // eslint-disable-next-line react-hooks/immutability\n state.content.className = mergeClasses(\n tabClassNames.content,\n contentStyles.base,\n size === 'large' && contentStyles.large,\n selected && (size === 'large' ? contentStyles.largeSelected : contentStyles.selected),\n state.icon ? contentStyles.iconBefore : contentStyles.noIconBefore,\n state.content.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","shorthands","createCustomFocusIndicatorStyle","tokens","typographyStyles","useTabAnimatedIndicatorStyles_unstable","tabClassNames","root","icon","content","tabReservedSpaceClassNames","iconClassNames","filled","regular","useRootStyles","alignItems","display","flexShrink","gridAutoFlow","gridTemplateColumns","gridTemplateRows","outlineStyle","position","button","border","borderRadius","borderRadiusMedium","cursor","fontFamily","fontFamilyBase","lineHeight","lineHeightBase300","overflow","textTransform","horizontal","justifyContent","vertical","smallHorizontal","columnGap","spacingHorizontalXXS","padding","spacingVerticalSNudge","spacingHorizontalSNudge","smallVertical","spacingVerticalXXS","mediumHorizontal","spacingVerticalM","spacingHorizontalMNudge","mediumVertical","largeHorizontal","spacingVerticalL","largeVertical","spacingVerticalS","transparent","backgroundColor","colorTransparentBackground","colorTransparentBackgroundHover","colorTransparentBackgroundPressed","color","colorNeutralForeground2","colorNeutralForeground2Hover","colorNeutralForeground2Pressed","subtle","colorSubtleBackground","colorSubtleBackgroundHover","colorSubtleBackgroundPressed","disabledCursor","disabled","colorNeutralForegroundDisabled","selected","colorCompoundBrandForeground1","colorCompoundBrandForeground1Hover","colorCompoundBrandForeground1Pressed","colorNeutralForeground1","colorNeutralForeground1Hover","colorNeutralForeground1Pressed","useCircularAppearanceStyles","base","borderRadiusCircular","strokeWidthThin","colorTransparentStroke","small","paddingBlock","medium","large","colorNeutralStroke1Hover","colorNeutralStroke1Pressed","subtleSelected","colorBrandBackground2","colorCompoundBrandStroke","colorBrandForeground2","colorBrandBackground2Hover","colorCompoundBrandStrokeHover","colorBrandForeground2Hover","colorBrandBackground2Pressed","colorCompoundBrandStrokePressed","colorBrandForeground2Pressed","subtleDisabled","subtleDisabledSelected","colorNeutralBackgroundDisabled","colorNeutralStrokeDisabled","colorNeutralBackground3","colorNeutralBackground3Hover","colorNeutralBackground3Pressed","forcedColorAdjust","filledSelected","colorBrandBackground","colorNeutralForegroundOnBrand","colorBrandBackgroundHover","colorBrandBackgroundPressed","filledDisabled","filledDisabledSelected","useFocusStyles","borderColor","outlineWidth","strokeWidthThick","outlineColor","boxShadow","shadow4","colorStrokeFocus2","zIndex","enableOutline","circular","colorNeutralStrokeOnBrand","usePendingIndicatorStyles","bottom","height","left","right","spacingVerticalXS","top","width","strokeWidthThicker","spacingHorizontalM","spacingVerticalMNudge","useActiveIndicatorStyles","useIconStyles","gridColumnStart","gridRowStart","fontSize","useContentStyles","body1","spacingVerticalNone","body1Strong","body2","largeSelected","subtitle2","noIconBefore","iconBefore","placeholder","visibility","useTabStyles_unstable","state","useTabIndicatorStyles_unstable","useTabButtonStyles_unstable","useTabContentStyles_unstable","rootStyles","pendingIndicatorStyles","activeIndicatorStyles","appearance","size","classes","push","className","slot","focusStyles","circularStyles","isSubtleCircular","isFilledCircular","isCircular","circularAppearance","regularAppearance","iconStyles","contentStyles","contentReservedSpace","contentReservedSpaceClassName"],"mappings":"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"}
|
|
@@ -54,6 +54,7 @@ export const useTabListStyles_unstable = state => {
|
|
|
54
54
|
} = state;
|
|
55
55
|
const styles = useStyles();
|
|
56
56
|
const isRounded = appearance === 'subtle-circular' || appearance === 'filled-circular';
|
|
57
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
57
58
|
state.root.className = mergeClasses(tabListClassNames.root, styles.root, vertical ? styles.vertical : styles.horizontal, isRounded && (size === 'small' ? styles.roundedSmall : styles.rounded), state.root.className);
|
|
58
59
|
return state;
|
|
59
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["__styles","mergeClasses","tokens","tabListClassNames","root","useStyles","mc9l5x","Beiy3e4","Bnnss6s","Eh141a","qhf8xq","horizontal","Bt984gj","vertical","roundedSmall","i8kkvl","Belr9w4","rmohyg","rounded","d","p","useTabListStyles_unstable","state","appearance","size","styles","isRounded","className"],"sources":["useTabListStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const tabListClassNames = {\n root: 'fui-TabList'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n flexShrink: 0,\n flexWrap: 'nowrap',\n position: 'relative'\n },\n horizontal: {\n alignItems: 'stretch',\n flexDirection: 'row'\n },\n vertical: {\n alignItems: 'stretch',\n flexDirection: 'column'\n },\n roundedSmall: {\n gap: tokens.spacingHorizontalSNudge\n },\n rounded: {\n gap: tokens.spacingHorizontalS\n }\n});\n/**\n * Apply styling to the TabList slots based on the state\n */ export const useTabListStyles_unstable = (state)=>{\n 'use no memo';\n const { appearance, vertical, size } = state;\n const styles = useStyles();\n const isRounded = appearance === 'subtle-circular' || appearance === 'filled-circular';\n state.root.className = mergeClasses(tabListClassNames.root, styles.root, vertical ? styles.vertical : styles.horizontal, isRounded && (size === 'small' ? styles.roundedSmall : styles.rounded), state.root.className);\n return state;\n};\n"],"mappings":"AAAA,YAAY;;AACZ,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,OAAO,MAAMC,iBAAiB,GAAG;EAC7BC,IAAI,EAAE;AACV,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGL,QAAA;EAAAI,IAAA;IAAAE,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;EAAA;EAAAC,UAAA;IAAAC,OAAA;IAAAL,OAAA;EAAA;EAAAM,QAAA;IAAAD,OAAA;IAAAL,OAAA;EAAA;EAAAO,YAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;EAAAC,OAAA;IAAAH,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;AAAA;EAAAE,CAAA;IAAAC,CAAA;EAAA;IAAAA,CAAA;EAAA;AAAA,CAsBrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,yBAAyB,GAAIC,KAAK,IAAG;EAClD,aAAa;;EACb,MAAM;IAAEC,UAAU;IAAEV,QAAQ;IAAEW;EAAK,CAAC,GAAGF,KAAK;EAC5C,MAAMG,MAAM,GAAGpB,SAAS,CAAC,CAAC;EAC1B,MAAMqB,SAAS,GAAGH,UAAU,KAAK,iBAAiB,IAAIA,UAAU,KAAK,iBAAiB;
|
|
1
|
+
{"version":3,"names":["__styles","mergeClasses","tokens","tabListClassNames","root","useStyles","mc9l5x","Beiy3e4","Bnnss6s","Eh141a","qhf8xq","horizontal","Bt984gj","vertical","roundedSmall","i8kkvl","Belr9w4","rmohyg","rounded","d","p","useTabListStyles_unstable","state","appearance","size","styles","isRounded","className"],"sources":["useTabListStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nexport const tabListClassNames = {\n root: 'fui-TabList'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n flexShrink: 0,\n flexWrap: 'nowrap',\n position: 'relative'\n },\n horizontal: {\n alignItems: 'stretch',\n flexDirection: 'row'\n },\n vertical: {\n alignItems: 'stretch',\n flexDirection: 'column'\n },\n roundedSmall: {\n gap: tokens.spacingHorizontalSNudge\n },\n rounded: {\n gap: tokens.spacingHorizontalS\n }\n});\n/**\n * Apply styling to the TabList slots based on the state\n */ export const useTabListStyles_unstable = (state)=>{\n 'use no memo';\n const { appearance, vertical, size } = state;\n const styles = useStyles();\n const isRounded = appearance === 'subtle-circular' || appearance === 'filled-circular';\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(tabListClassNames.root, styles.root, vertical ? styles.vertical : styles.horizontal, isRounded && (size === 'small' ? styles.roundedSmall : styles.rounded), state.root.className);\n return state;\n};\n"],"mappings":"AAAA,YAAY;;AACZ,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,SAASC,MAAM,QAAQ,uBAAuB;AAC9C,OAAO,MAAMC,iBAAiB,GAAG;EAC7BC,IAAI,EAAE;AACV,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGL,QAAA;EAAAI,IAAA;IAAAE,MAAA;IAAAC,OAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,MAAA;EAAA;EAAAC,UAAA;IAAAC,OAAA;IAAAL,OAAA;EAAA;EAAAM,QAAA;IAAAD,OAAA;IAAAL,OAAA;EAAA;EAAAO,YAAA;IAAAC,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;EAAAC,OAAA;IAAAH,MAAA;IAAAC,OAAA;IAAAC,MAAA;EAAA;AAAA;EAAAE,CAAA;IAAAC,CAAA;EAAA;IAAAA,CAAA;EAAA;AAAA,CAsBrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,yBAAyB,GAAIC,KAAK,IAAG;EAClD,aAAa;;EACb,MAAM;IAAEC,UAAU;IAAEV,QAAQ;IAAEW;EAAK,CAAC,GAAGF,KAAK;EAC5C,MAAMG,MAAM,GAAGpB,SAAS,CAAC,CAAC;EAC1B,MAAMqB,SAAS,GAAGH,UAAU,KAAK,iBAAiB,IAAIA,UAAU,KAAK,iBAAiB;EACtF;EACAD,KAAK,CAAClB,IAAI,CAACuB,SAAS,GAAG1B,YAAY,CAACE,iBAAiB,CAACC,IAAI,EAAEqB,MAAM,CAACrB,IAAI,EAAES,QAAQ,GAAGY,MAAM,CAACZ,QAAQ,GAAGY,MAAM,CAACd,UAAU,EAAEe,SAAS,KAAKF,IAAI,KAAK,OAAO,GAAGC,MAAM,CAACX,YAAY,GAAGW,MAAM,CAACP,OAAO,CAAC,EAAEI,KAAK,CAAClB,IAAI,CAACuB,SAAS,CAAC;EACtN,OAAOL,KAAK;AAChB,CAAC","ignoreList":[]}
|
|
@@ -36,6 +36,7 @@ export const tabListClassNames = {
|
|
|
36
36
|
const { appearance, vertical, size } = state;
|
|
37
37
|
const styles = useStyles();
|
|
38
38
|
const isRounded = appearance === 'subtle-circular' || appearance === 'filled-circular';
|
|
39
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
39
40
|
state.root.className = mergeClasses(tabListClassNames.root, styles.root, vertical ? styles.vertical : styles.horizontal, isRounded && (size === 'small' ? styles.roundedSmall : styles.rounded), state.root.className);
|
|
40
41
|
return state;
|
|
41
42
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/TabList/useTabListStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { TabListSlots, TabListState } from './TabList.types';\n\nexport const tabListClassNames: SlotClassNames<TabListSlots> = {\n root: 'fui-TabList',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n flexShrink: 0,\n flexWrap: 'nowrap',\n position: 'relative',\n },\n horizontal: {\n alignItems: 'stretch',\n flexDirection: 'row',\n },\n vertical: {\n alignItems: 'stretch',\n flexDirection: 'column',\n },\n roundedSmall: {\n gap: tokens.spacingHorizontalSNudge,\n },\n rounded: {\n gap: tokens.spacingHorizontalS,\n },\n});\n\n/**\n * Apply styling to the TabList slots based on the state\n */\nexport const useTabListStyles_unstable = (state: TabListState): TabListState => {\n 'use no memo';\n\n const { appearance, vertical, size } = state;\n\n const styles = useStyles();\n\n const isRounded = appearance === 'subtle-circular' || appearance === 'filled-circular';\n\n state.root.className = mergeClasses(\n tabListClassNames.root,\n styles.root,\n vertical ? styles.vertical : styles.horizontal,\n isRounded && (size === 'small' ? styles.roundedSmall : styles.rounded),\n state.root.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","tabListClassNames","root","useStyles","display","flexDirection","flexShrink","flexWrap","position","horizontal","alignItems","vertical","roundedSmall","gap","spacingHorizontalSNudge","rounded","spacingHorizontalS","useTabListStyles_unstable","state","appearance","size","styles","isRounded","className"],"mappings":"AAAA;AAGA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,MAAM,QAAQ,wBAAwB;AAG/C,OAAO,MAAMC,oBAAkD;IAC7DC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYL,WAAW;IAC3BI,MAAM;QACJE,SAAS;QACTC,eAAe;QACfC,YAAY;QACZC,UAAU;QACVC,UAAU;IACZ;IACAC,YAAY;QACVC,YAAY;QACZL,eAAe;IACjB;IACAM,UAAU;QACRD,YAAY;QACZL,eAAe;IACjB;IACAO,cAAc;QACZC,KAAKb,OAAOc,uBAAuB;IACrC;IACAC,SAAS;QACPF,KAAKb,OAAOgB,kBAAkB;IAChC;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACC;IACxC;IAEA,MAAM,EAAEC,UAAU,EAAER,QAAQ,EAAES,IAAI,EAAE,GAAGF;IAEvC,MAAMG,SAASlB;IAEf,MAAMmB,YAAYH,eAAe,qBAAqBA,eAAe;
|
|
1
|
+
{"version":3,"sources":["../src/components/TabList/useTabListStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport type { TabListSlots, TabListState } from './TabList.types';\n\nexport const tabListClassNames: SlotClassNames<TabListSlots> = {\n root: 'fui-TabList',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n flexDirection: 'row',\n flexShrink: 0,\n flexWrap: 'nowrap',\n position: 'relative',\n },\n horizontal: {\n alignItems: 'stretch',\n flexDirection: 'row',\n },\n vertical: {\n alignItems: 'stretch',\n flexDirection: 'column',\n },\n roundedSmall: {\n gap: tokens.spacingHorizontalSNudge,\n },\n rounded: {\n gap: tokens.spacingHorizontalS,\n },\n});\n\n/**\n * Apply styling to the TabList slots based on the state\n */\nexport const useTabListStyles_unstable = (state: TabListState): TabListState => {\n 'use no memo';\n\n const { appearance, vertical, size } = state;\n\n const styles = useStyles();\n\n const isRounded = appearance === 'subtle-circular' || appearance === 'filled-circular';\n\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(\n tabListClassNames.root,\n styles.root,\n vertical ? styles.vertical : styles.horizontal,\n isRounded && (size === 'small' ? styles.roundedSmall : styles.rounded),\n state.root.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","tabListClassNames","root","useStyles","display","flexDirection","flexShrink","flexWrap","position","horizontal","alignItems","vertical","roundedSmall","gap","spacingHorizontalSNudge","rounded","spacingHorizontalS","useTabListStyles_unstable","state","appearance","size","styles","isRounded","className"],"mappings":"AAAA;AAGA,SAASA,UAAU,EAAEC,YAAY,QAAQ,iBAAiB;AAC1D,SAASC,MAAM,QAAQ,wBAAwB;AAG/C,OAAO,MAAMC,oBAAkD;IAC7DC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYL,WAAW;IAC3BI,MAAM;QACJE,SAAS;QACTC,eAAe;QACfC,YAAY;QACZC,UAAU;QACVC,UAAU;IACZ;IACAC,YAAY;QACVC,YAAY;QACZL,eAAe;IACjB;IACAM,UAAU;QACRD,YAAY;QACZL,eAAe;IACjB;IACAO,cAAc;QACZC,KAAKb,OAAOc,uBAAuB;IACrC;IACAC,SAAS;QACPF,KAAKb,OAAOgB,kBAAkB;IAChC;AACF;AAEA;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACC;IACxC;IAEA,MAAM,EAAEC,UAAU,EAAER,QAAQ,EAAES,IAAI,EAAE,GAAGF;IAEvC,MAAMG,SAASlB;IAEf,MAAMmB,YAAYH,eAAe,qBAAqBA,eAAe;IAErE,oDAAoD;IACpDD,MAAMhB,IAAI,CAACqB,SAAS,GAAGxB,aACrBE,kBAAkBC,IAAI,EACtBmB,OAAOnB,IAAI,EACXS,WAAWU,OAAOV,QAAQ,GAAGU,OAAOZ,UAAU,EAC9Ca,aAAcF,CAAAA,SAAS,UAAUC,OAAOT,YAAY,GAAGS,OAAON,OAAO,AAAD,GACpEG,MAAMhB,IAAI,CAACqB,SAAS;IAGtB,OAAOL;AACT,EAAE"}
|
|
@@ -143,11 +143,13 @@ const useTabAnimatedIndicatorStyles_unstable = (state)=>{
|
|
|
143
143
|
// the animation should only happen as the selection indicator returns to its
|
|
144
144
|
// original position and not when set at the previous tabs position.
|
|
145
145
|
const animating = animationValues.offset === 0 && animationValues.scale === 1;
|
|
146
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
146
147
|
state.root.className = (0, _react1.mergeClasses)(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));
|
|
147
148
|
const rootCssVars = {
|
|
148
149
|
[tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,
|
|
149
150
|
[tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`
|
|
150
151
|
};
|
|
152
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
151
153
|
state.root.style = {
|
|
152
154
|
...rootCssVars,
|
|
153
155
|
...state.root.style
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useTabAnimatedIndicator.styles.js"],"sourcesContent":["'use client';\nimport * as React from 'react';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { useTabListContext_unstable } from '../TabList/TabListContext';\nimport { tokens } from '@fluentui/react-theme';\nimport { useAnimationFrame } from '@fluentui/react-utilities';\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst tabIndicatorCssVars_unstable = {\n offsetVar: '--fui-Tab__indicator--offset',\n scaleVar: '--fui-Tab__indicator--scale'\n};\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n // overflow is required to allow the selection indicator to animate outside the tab area.\n overflow: 'visible'\n },\n animated: {\n '::after': {\n transitionProperty: 'transform',\n transitionDuration: `${tokens.durationSlow}`,\n transitionTimingFunction: `${tokens.curveDecelerateMax}`\n },\n '@media (prefers-reduced-motion: reduce)': {\n '::after': {\n transitionProperty: 'none',\n transitionDuration: '0.01ms'\n }\n }\n },\n horizontal: {\n '::after': {\n transformOrigin: 'left',\n transform: `translateX(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleX(var(${tabIndicatorCssVars_unstable.scaleVar}))`\n }\n },\n vertical: {\n '::after': {\n transformOrigin: 'top',\n transform: `translateY(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleY(var(${tabIndicatorCssVars_unstable.scaleVar}))`\n }\n }\n});\nconst calculateTabRect = (element)=>{\n if (element) {\n var _element_parentElement;\n const parentRect = ((_element_parentElement = element.parentElement) === null || _element_parentElement === void 0 ? void 0 : _element_parentElement.getBoundingClientRect()) || {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n const tabRect = element.getBoundingClientRect();\n return {\n x: tabRect.x - parentRect.x,\n y: tabRect.y - parentRect.y,\n width: tabRect.width,\n height: tabRect.height\n };\n }\n return undefined;\n};\nconst getRegisteredTabRect = (registeredTabs, value)=>{\n var _registeredTabs_JSON_stringify;\n const element = isValueDefined(value) ? (_registeredTabs_JSON_stringify = registeredTabs[JSON.stringify(value)]) === null || _registeredTabs_JSON_stringify === void 0 ? void 0 : _registeredTabs_JSON_stringify.ref.current : undefined;\n return element ? calculateTabRect(element) : undefined;\n};\n// eslint-disable-next-line eqeqeq\nconst isValueDefined = (value)=>value != null;\n/**\n * Adds additional styling to the active tab selection indicator to create a sliding animation.\n */ export const useTabAnimatedIndicatorStyles_unstable = (state)=>{\n const { disabled, selected, vertical } = state;\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState();\n const [animationValues, setAnimationValues] = React.useState({\n offset: 0,\n scale: 1\n });\n const getRegisteredTabs = useTabListContext_unstable((ctx)=>ctx.getRegisteredTabs);\n const [requestAnimationFrame] = useAnimationFrame();\n if (selected) {\n const { previousSelectedValue, selectedValue, registeredTabs } = getRegisteredTabs();\n if (isValueDefined(previousSelectedValue) && lastAnimatedFrom !== previousSelectedValue) {\n const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);\n const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);\n if (selectedTabRect && previousSelectedTabRect) {\n const offset = vertical ? previousSelectedTabRect.y - selectedTabRect.y : previousSelectedTabRect.x - selectedTabRect.x;\n const scale = vertical ? previousSelectedTabRect.height / selectedTabRect.height : previousSelectedTabRect.width / selectedTabRect.width;\n setAnimationValues({\n offset,\n scale\n });\n setLastAnimatedFrom(previousSelectedValue);\n // Reset the animation values after the animation is complete\n requestAnimationFrame(()=>setAnimationValues({\n offset: 0,\n scale: 1\n }));\n }\n }\n } else if (isValueDefined(lastAnimatedFrom)) {\n // need to clear the last animated from so that if this tab is selected again\n // from the same previous tab as last time, that animation still happens.\n setLastAnimatedFrom(undefined);\n }\n // do not apply any animation if the tab is disabled\n if (disabled) {\n return state;\n }\n // the animation should only happen as the selection indicator returns to its\n // original position and not when set at the previous tabs position.\n const animating = animationValues.offset === 0 && animationValues.scale === 1;\n state.root.className = mergeClasses(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));\n const rootCssVars = {\n [tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,\n [tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`\n };\n state.root.style = {\n ...rootCssVars,\n ...state.root.style\n };\n return state;\n};\n"],"names":["React","__styles","mergeClasses","useTabListContext_unstable","tokens","useAnimationFrame","tabIndicatorCssVars_unstable","offsetVar","scaleVar","useActiveIndicatorStyles","base","B68tc82","Bmxbyg5","Bpg54ce","animated","Ba2ppi3","F2fol1","B1dyfl9","Bu93a1u","Bdasjez","horizontal","sjv3b2","b1kco5","vertical","d","p","m","calculateTabRect","element","_element_parentElement","parentRect","parentElement","getBoundingClientRect","x","y","width","height","tabRect","undefined","getRegisteredTabRect","registeredTabs","value","_registeredTabs_JSON_stringify","isValueDefined","JSON","stringify","ref","current","useTabAnimatedIndicatorStyles_unstable","state","disabled","selected","activeIndicatorStyles","lastAnimatedFrom","setLastAnimatedFrom","useState","animationValues","setAnimationValues","offset","scale","getRegisteredTabs","ctx","requestAnimationFrame","previousSelectedValue","selectedValue","previousSelectedTabRect","selectedTabRect","animating","root","className","rootCssVars","style"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["useTabAnimatedIndicator.styles.js"],"sourcesContent":["'use client';\nimport * as React from 'react';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { useTabListContext_unstable } from '../TabList/TabListContext';\nimport { tokens } from '@fluentui/react-theme';\nimport { useAnimationFrame } from '@fluentui/react-utilities';\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst tabIndicatorCssVars_unstable = {\n offsetVar: '--fui-Tab__indicator--offset',\n scaleVar: '--fui-Tab__indicator--scale'\n};\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n // overflow is required to allow the selection indicator to animate outside the tab area.\n overflow: 'visible'\n },\n animated: {\n '::after': {\n transitionProperty: 'transform',\n transitionDuration: `${tokens.durationSlow}`,\n transitionTimingFunction: `${tokens.curveDecelerateMax}`\n },\n '@media (prefers-reduced-motion: reduce)': {\n '::after': {\n transitionProperty: 'none',\n transitionDuration: '0.01ms'\n }\n }\n },\n horizontal: {\n '::after': {\n transformOrigin: 'left',\n transform: `translateX(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleX(var(${tabIndicatorCssVars_unstable.scaleVar}))`\n }\n },\n vertical: {\n '::after': {\n transformOrigin: 'top',\n transform: `translateY(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleY(var(${tabIndicatorCssVars_unstable.scaleVar}))`\n }\n }\n});\nconst calculateTabRect = (element)=>{\n if (element) {\n var _element_parentElement;\n const parentRect = ((_element_parentElement = element.parentElement) === null || _element_parentElement === void 0 ? void 0 : _element_parentElement.getBoundingClientRect()) || {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n const tabRect = element.getBoundingClientRect();\n return {\n x: tabRect.x - parentRect.x,\n y: tabRect.y - parentRect.y,\n width: tabRect.width,\n height: tabRect.height\n };\n }\n return undefined;\n};\nconst getRegisteredTabRect = (registeredTabs, value)=>{\n var _registeredTabs_JSON_stringify;\n const element = isValueDefined(value) ? (_registeredTabs_JSON_stringify = registeredTabs[JSON.stringify(value)]) === null || _registeredTabs_JSON_stringify === void 0 ? void 0 : _registeredTabs_JSON_stringify.ref.current : undefined;\n return element ? calculateTabRect(element) : undefined;\n};\n// eslint-disable-next-line eqeqeq\nconst isValueDefined = (value)=>value != null;\n/**\n * Adds additional styling to the active tab selection indicator to create a sliding animation.\n */ export const useTabAnimatedIndicatorStyles_unstable = (state)=>{\n const { disabled, selected, vertical } = state;\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState();\n const [animationValues, setAnimationValues] = React.useState({\n offset: 0,\n scale: 1\n });\n const getRegisteredTabs = useTabListContext_unstable((ctx)=>ctx.getRegisteredTabs);\n const [requestAnimationFrame] = useAnimationFrame();\n if (selected) {\n const { previousSelectedValue, selectedValue, registeredTabs } = getRegisteredTabs();\n if (isValueDefined(previousSelectedValue) && lastAnimatedFrom !== previousSelectedValue) {\n const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);\n const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);\n if (selectedTabRect && previousSelectedTabRect) {\n const offset = vertical ? previousSelectedTabRect.y - selectedTabRect.y : previousSelectedTabRect.x - selectedTabRect.x;\n const scale = vertical ? previousSelectedTabRect.height / selectedTabRect.height : previousSelectedTabRect.width / selectedTabRect.width;\n setAnimationValues({\n offset,\n scale\n });\n setLastAnimatedFrom(previousSelectedValue);\n // Reset the animation values after the animation is complete\n requestAnimationFrame(()=>setAnimationValues({\n offset: 0,\n scale: 1\n }));\n }\n }\n } else if (isValueDefined(lastAnimatedFrom)) {\n // need to clear the last animated from so that if this tab is selected again\n // from the same previous tab as last time, that animation still happens.\n setLastAnimatedFrom(undefined);\n }\n // do not apply any animation if the tab is disabled\n if (disabled) {\n return state;\n }\n // the animation should only happen as the selection indicator returns to its\n // original position and not when set at the previous tabs position.\n const animating = animationValues.offset === 0 && animationValues.scale === 1;\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));\n const rootCssVars = {\n [tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,\n [tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`\n };\n // eslint-disable-next-line react-hooks/immutability\n state.root.style = {\n ...rootCssVars,\n ...state.root.style\n };\n return state;\n};\n"],"names":["React","__styles","mergeClasses","useTabListContext_unstable","tokens","useAnimationFrame","tabIndicatorCssVars_unstable","offsetVar","scaleVar","useActiveIndicatorStyles","base","B68tc82","Bmxbyg5","Bpg54ce","animated","Ba2ppi3","F2fol1","B1dyfl9","Bu93a1u","Bdasjez","horizontal","sjv3b2","b1kco5","vertical","d","p","m","calculateTabRect","element","_element_parentElement","parentRect","parentElement","getBoundingClientRect","x","y","width","height","tabRect","undefined","getRegisteredTabRect","registeredTabs","value","_registeredTabs_JSON_stringify","isValueDefined","JSON","stringify","ref","current","useTabAnimatedIndicatorStyles_unstable","state","disabled","selected","activeIndicatorStyles","lastAnimatedFrom","setLastAnimatedFrom","useState","animationValues","setAnimationValues","offset","scale","getRegisteredTabs","ctx","requestAnimationFrame","previousSelectedValue","selectedValue","previousSelectedTabRect","selectedTabRect","animating","root","className","rootCssVars","style"],"mappings":"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"}
|
|
@@ -121,11 +121,13 @@ const useTabAnimatedIndicatorStyles_unstable = (state)=>{
|
|
|
121
121
|
// the animation should only happen as the selection indicator returns to its
|
|
122
122
|
// original position and not when set at the previous tabs position.
|
|
123
123
|
const animating = animationValues.offset === 0 && animationValues.scale === 1;
|
|
124
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
124
125
|
state.root.className = (0, _react1.mergeClasses)(state.root.className, selected && activeIndicatorStyles.base, selected && animating && activeIndicatorStyles.animated, selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal));
|
|
125
126
|
const rootCssVars = {
|
|
126
127
|
[tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,
|
|
127
128
|
[tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`
|
|
128
129
|
};
|
|
130
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
129
131
|
state.root.style = {
|
|
130
132
|
...rootCssVars,
|
|
131
133
|
...state.root.style
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Tab/useTabAnimatedIndicator.styles.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { TabState, TabValue } from './Tab.types';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { useTabListContext_unstable } from '../TabList/TabListContext';\nimport type { TabRegisterData } from '../TabList/TabList.types';\nimport { tokens } from '@fluentui/react-theme';\nimport { useAnimationFrame } from '@fluentui/react-utilities';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst tabIndicatorCssVars_unstable = {\n offsetVar: '--fui-Tab__indicator--offset',\n scaleVar: '--fui-Tab__indicator--scale',\n};\n\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n // overflow is required to allow the selection indicator to animate outside the tab area.\n overflow: 'visible',\n },\n animated: {\n '::after': {\n transitionProperty: 'transform',\n transitionDuration: `${tokens.durationSlow}`,\n transitionTimingFunction: `${tokens.curveDecelerateMax}`,\n },\n '@media (prefers-reduced-motion: reduce)': {\n '::after': {\n transitionProperty: 'none',\n transitionDuration: '0.01ms',\n },\n },\n },\n horizontal: {\n '::after': {\n transformOrigin: 'left',\n transform: `translateX(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleX(var(${tabIndicatorCssVars_unstable.scaleVar}))`,\n },\n },\n vertical: {\n '::after': {\n transformOrigin: 'top',\n transform: `translateY(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleY(var(${tabIndicatorCssVars_unstable.scaleVar}))`,\n },\n },\n});\n\nconst calculateTabRect = (element: HTMLElement) => {\n if (element) {\n const parentRect = element.parentElement?.getBoundingClientRect() || { x: 0, y: 0, width: 0, height: 0 };\n const tabRect = element.getBoundingClientRect();\n\n return {\n x: tabRect.x - parentRect.x,\n y: tabRect.y - parentRect.y,\n width: tabRect.width,\n height: tabRect.height,\n };\n }\n return undefined;\n};\n\nconst getRegisteredTabRect = (registeredTabs: Record<string, TabRegisterData>, value?: TabValue) => {\n const element = isValueDefined(value) ? registeredTabs[JSON.stringify(value)]?.ref.current : undefined;\n return element ? calculateTabRect(element) : undefined;\n};\n\n// eslint-disable-next-line eqeqeq\nconst isValueDefined = (value: TabValue) => value != null;\n\n/**\n * Adds additional styling to the active tab selection indicator to create a sliding animation.\n */\nexport const useTabAnimatedIndicatorStyles_unstable = (state: TabState): TabState => {\n const { disabled, selected, vertical } = state;\n\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState<TabValue>();\n const [animationValues, setAnimationValues] = React.useState({ offset: 0, scale: 1 });\n const getRegisteredTabs = useTabListContext_unstable(ctx => ctx.getRegisteredTabs);\n\n const [requestAnimationFrame] = useAnimationFrame();\n\n if (selected) {\n const { previousSelectedValue, selectedValue, registeredTabs } = getRegisteredTabs();\n\n if (isValueDefined(previousSelectedValue) && lastAnimatedFrom !== previousSelectedValue) {\n const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);\n const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);\n\n if (selectedTabRect && previousSelectedTabRect) {\n const offset = vertical\n ? previousSelectedTabRect.y - selectedTabRect.y\n : previousSelectedTabRect.x - selectedTabRect.x;\n\n const scale = vertical\n ? previousSelectedTabRect.height / selectedTabRect.height\n : previousSelectedTabRect.width / selectedTabRect.width;\n\n setAnimationValues({ offset, scale });\n setLastAnimatedFrom(previousSelectedValue);\n\n // Reset the animation values after the animation is complete\n requestAnimationFrame(() => setAnimationValues({ offset: 0, scale: 1 }));\n }\n }\n } else if (isValueDefined(lastAnimatedFrom)) {\n // need to clear the last animated from so that if this tab is selected again\n // from the same previous tab as last time, that animation still happens.\n setLastAnimatedFrom(undefined);\n }\n\n // do not apply any animation if the tab is disabled\n if (disabled) {\n return state;\n }\n\n // the animation should only happen as the selection indicator returns to its\n // original position and not when set at the previous tabs position.\n const animating = animationValues.offset === 0 && animationValues.scale === 1;\n\n state.root.className = mergeClasses(\n state.root.className,\n selected && activeIndicatorStyles.base,\n selected && animating && activeIndicatorStyles.animated,\n selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal),\n );\n\n const rootCssVars = {\n [tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,\n [tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`,\n };\n\n state.root.style = {\n ...rootCssVars,\n ...state.root.style,\n };\n\n return state;\n};\n"],"names":["React","makeStyles","mergeClasses","useTabListContext_unstable","tokens","useAnimationFrame","tabIndicatorCssVars_unstable","offsetVar","scaleVar","useActiveIndicatorStyles","base","overflow","animated","transitionProperty","transitionDuration","durationSlow","transitionTimingFunction","curveDecelerateMax","horizontal","transformOrigin","transform","vertical","calculateTabRect","element","parentRect","parentElement","getBoundingClientRect","x","y","width","height","tabRect","undefined","getRegisteredTabRect","registeredTabs","value","isValueDefined","JSON","stringify","ref","current","useTabAnimatedIndicatorStyles_unstable","state","disabled","selected","activeIndicatorStyles","lastAnimatedFrom","setLastAnimatedFrom","useState","animationValues","setAnimationValues","offset","scale","getRegisteredTabs","ctx","requestAnimationFrame","previousSelectedValue","selectedValue","previousSelectedTabRect","selectedTabRect","animating","root","className","rootCssVars","style"],"mappings":"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
|
|
1
|
+
{"version":3,"sources":["../src/components/Tab/useTabAnimatedIndicator.styles.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { TabState, TabValue } from './Tab.types';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { useTabListContext_unstable } from '../TabList/TabListContext';\nimport type { TabRegisterData } from '../TabList/TabList.types';\nimport { tokens } from '@fluentui/react-theme';\nimport { useAnimationFrame } from '@fluentui/react-utilities';\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst tabIndicatorCssVars_unstable = {\n offsetVar: '--fui-Tab__indicator--offset',\n scaleVar: '--fui-Tab__indicator--scale',\n};\n\nconst useActiveIndicatorStyles = makeStyles({\n base: {\n // overflow is required to allow the selection indicator to animate outside the tab area.\n overflow: 'visible',\n },\n animated: {\n '::after': {\n transitionProperty: 'transform',\n transitionDuration: `${tokens.durationSlow}`,\n transitionTimingFunction: `${tokens.curveDecelerateMax}`,\n },\n '@media (prefers-reduced-motion: reduce)': {\n '::after': {\n transitionProperty: 'none',\n transitionDuration: '0.01ms',\n },\n },\n },\n horizontal: {\n '::after': {\n transformOrigin: 'left',\n transform: `translateX(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleX(var(${tabIndicatorCssVars_unstable.scaleVar}))`,\n },\n },\n vertical: {\n '::after': {\n transformOrigin: 'top',\n transform: `translateY(var(${tabIndicatorCssVars_unstable.offsetVar}))\n scaleY(var(${tabIndicatorCssVars_unstable.scaleVar}))`,\n },\n },\n});\n\nconst calculateTabRect = (element: HTMLElement) => {\n if (element) {\n const parentRect = element.parentElement?.getBoundingClientRect() || { x: 0, y: 0, width: 0, height: 0 };\n const tabRect = element.getBoundingClientRect();\n\n return {\n x: tabRect.x - parentRect.x,\n y: tabRect.y - parentRect.y,\n width: tabRect.width,\n height: tabRect.height,\n };\n }\n return undefined;\n};\n\nconst getRegisteredTabRect = (registeredTabs: Record<string, TabRegisterData>, value?: TabValue) => {\n const element = isValueDefined(value) ? registeredTabs[JSON.stringify(value)]?.ref.current : undefined;\n return element ? calculateTabRect(element) : undefined;\n};\n\n// eslint-disable-next-line eqeqeq\nconst isValueDefined = (value: TabValue) => value != null;\n\n/**\n * Adds additional styling to the active tab selection indicator to create a sliding animation.\n */\nexport const useTabAnimatedIndicatorStyles_unstable = (state: TabState): TabState => {\n const { disabled, selected, vertical } = state;\n\n const activeIndicatorStyles = useActiveIndicatorStyles();\n const [lastAnimatedFrom, setLastAnimatedFrom] = React.useState<TabValue>();\n const [animationValues, setAnimationValues] = React.useState({ offset: 0, scale: 1 });\n const getRegisteredTabs = useTabListContext_unstable(ctx => ctx.getRegisteredTabs);\n\n const [requestAnimationFrame] = useAnimationFrame();\n\n if (selected) {\n const { previousSelectedValue, selectedValue, registeredTabs } = getRegisteredTabs();\n\n if (isValueDefined(previousSelectedValue) && lastAnimatedFrom !== previousSelectedValue) {\n const previousSelectedTabRect = getRegisteredTabRect(registeredTabs, previousSelectedValue);\n const selectedTabRect = getRegisteredTabRect(registeredTabs, selectedValue);\n\n if (selectedTabRect && previousSelectedTabRect) {\n const offset = vertical\n ? previousSelectedTabRect.y - selectedTabRect.y\n : previousSelectedTabRect.x - selectedTabRect.x;\n\n const scale = vertical\n ? previousSelectedTabRect.height / selectedTabRect.height\n : previousSelectedTabRect.width / selectedTabRect.width;\n\n setAnimationValues({ offset, scale });\n setLastAnimatedFrom(previousSelectedValue);\n\n // Reset the animation values after the animation is complete\n requestAnimationFrame(() => setAnimationValues({ offset: 0, scale: 1 }));\n }\n }\n } else if (isValueDefined(lastAnimatedFrom)) {\n // need to clear the last animated from so that if this tab is selected again\n // from the same previous tab as last time, that animation still happens.\n setLastAnimatedFrom(undefined);\n }\n\n // do not apply any animation if the tab is disabled\n if (disabled) {\n return state;\n }\n\n // the animation should only happen as the selection indicator returns to its\n // original position and not when set at the previous tabs position.\n const animating = animationValues.offset === 0 && animationValues.scale === 1;\n\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(\n state.root.className,\n selected && activeIndicatorStyles.base,\n selected && animating && activeIndicatorStyles.animated,\n selected && (vertical ? activeIndicatorStyles.vertical : activeIndicatorStyles.horizontal),\n );\n\n const rootCssVars = {\n [tabIndicatorCssVars_unstable.offsetVar]: `${animationValues.offset}px`,\n [tabIndicatorCssVars_unstable.scaleVar]: `${animationValues.scale}`,\n };\n\n // eslint-disable-next-line react-hooks/immutability\n state.root.style = {\n ...rootCssVars,\n ...state.root.style,\n };\n\n return state;\n};\n"],"names":["React","makeStyles","mergeClasses","useTabListContext_unstable","tokens","useAnimationFrame","tabIndicatorCssVars_unstable","offsetVar","scaleVar","useActiveIndicatorStyles","base","overflow","animated","transitionProperty","transitionDuration","durationSlow","transitionTimingFunction","curveDecelerateMax","horizontal","transformOrigin","transform","vertical","calculateTabRect","element","parentRect","parentElement","getBoundingClientRect","x","y","width","height","tabRect","undefined","getRegisteredTabRect","registeredTabs","value","isValueDefined","JSON","stringify","ref","current","useTabAnimatedIndicatorStyles_unstable","state","disabled","selected","activeIndicatorStyles","lastAnimatedFrom","setLastAnimatedFrom","useState","animationValues","setAnimationValues","offset","scale","getRegisteredTabs","ctx","requestAnimationFrame","previousSelectedValue","selectedValue","previousSelectedTabRect","selectedTabRect","animating","root","className","rootCssVars","style"],"mappings":"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"}
|
|
@@ -1217,6 +1217,7 @@ const useTabIndicatorStyles_unstable = (state)=>{
|
|
|
1217
1217
|
pendingIndicatorStyles.base, size === 'small' && (vertical ? pendingIndicatorStyles.smallVertical : pendingIndicatorStyles.smallHorizontal), size === 'medium' && (vertical ? pendingIndicatorStyles.mediumVertical : pendingIndicatorStyles.mediumHorizontal), size === 'large' && (vertical ? pendingIndicatorStyles.largeVertical : pendingIndicatorStyles.largeHorizontal), disabled && pendingIndicatorStyles.disabled, // active indicator (after pseudo element)
|
|
1218
1218
|
selected && activeIndicatorStyles.base, selected && !disabled && activeIndicatorStyles.selected, selected && size === 'small' && (vertical ? activeIndicatorStyles.smallVertical : activeIndicatorStyles.smallHorizontal), selected && size === 'medium' && (vertical ? activeIndicatorStyles.mediumVertical : activeIndicatorStyles.mediumHorizontal), selected && size === 'large' && (vertical ? activeIndicatorStyles.largeVertical : activeIndicatorStyles.largeHorizontal), selected && disabled && activeIndicatorStyles.disabled);
|
|
1219
1219
|
}
|
|
1220
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
1220
1221
|
state.root.className = (0, _react.mergeClasses)(...classes, state.root.className);
|
|
1221
1222
|
(0, _useTabAnimatedIndicatorstyles.useTabAnimatedIndicatorStyles_unstable)(state);
|
|
1222
1223
|
return state;
|
|
@@ -1255,6 +1256,7 @@ const useTabButtonStyles_unstable = (state, slot)=>{
|
|
|
1255
1256
|
!disabled && selected && rootStyles.selected,
|
|
1256
1257
|
disabled && rootStyles.disabled
|
|
1257
1258
|
];
|
|
1259
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
1258
1260
|
slot.className = (0, _react.mergeClasses)(rootStyles.button, // orientation
|
|
1259
1261
|
vertical ? rootStyles.vertical : rootStyles.horizontal, // size
|
|
1260
1262
|
size === 'small' && (vertical ? rootStyles.smallVertical : rootStyles.smallHorizontal), size === 'medium' && (vertical ? rootStyles.mediumVertical : rootStyles.mediumHorizontal), size === 'large' && (vertical ? rootStyles.largeVertical : rootStyles.largeHorizontal), ...isCircular ? circularAppearance : regularAppearance, disabled && rootStyles.disabledCursor, slot.className);
|
|
@@ -1266,16 +1268,19 @@ const useTabContentStyles_unstable = (state)=>{
|
|
|
1266
1268
|
const contentStyles = useContentStyles();
|
|
1267
1269
|
const { selected, size } = state;
|
|
1268
1270
|
if (state.icon) {
|
|
1271
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
1269
1272
|
state.icon.className = (0, _react.mergeClasses)(tabClassNames.icon, iconStyles.base, iconStyles[size], selected && iconStyles.selected, state.icon.className);
|
|
1270
1273
|
}
|
|
1271
1274
|
// This needs to be before state.content.className is updated
|
|
1272
1275
|
if (state.contentReservedSpace) {
|
|
1276
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
1273
1277
|
state.contentReservedSpace.className = (0, _react.mergeClasses)(tabReservedSpaceClassNames.content, contentStyles.base, size === 'large' ? contentStyles.largeSelected : contentStyles.selected, state.icon ? contentStyles.iconBefore : contentStyles.noIconBefore, contentStyles.placeholder, state.content.className);
|
|
1274
1278
|
// FIXME: this is a deprecated API
|
|
1275
1279
|
// should be removed in the next major version
|
|
1276
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated
|
|
1280
|
+
// eslint-disable-next-line @typescript-eslint/no-deprecated, react-hooks/immutability
|
|
1277
1281
|
state.contentReservedSpaceClassName = state.contentReservedSpace.className;
|
|
1278
1282
|
}
|
|
1283
|
+
// eslint-disable-next-line react-hooks/immutability
|
|
1279
1284
|
state.content.className = (0, _react.mergeClasses)(tabClassNames.content, contentStyles.base, size === 'large' && contentStyles.large, selected && (size === 'large' ? contentStyles.largeSelected : contentStyles.selected), state.icon ? contentStyles.iconBefore : contentStyles.noIconBefore, state.content.className);
|
|
1280
1285
|
return state;
|
|
1281
1286
|
};
|