@fluentui/react-tabs 9.74.7-experimental.cli-api.20261006-ccaa611d58.0 → 9.75.0-experimental.css-modules.20261031-810ab07afb.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/CHANGELOG.md +35 -11
  2. package/README.md +8 -0
  3. package/lib/components/Tab/Tab.js.map +1 -1
  4. package/lib/components/Tab/Tab.module.css +475 -0
  5. package/lib/components/Tab/Tab.types.js.map +1 -1
  6. package/lib/components/Tab/TabAnimatedIndicator.module.css +27 -0
  7. package/lib/components/Tab/index.js.map +1 -1
  8. package/lib/components/Tab/renderTab.js +2 -2
  9. package/lib/components/Tab/renderTab.js.map +1 -1
  10. package/lib/components/Tab/useTab.js.map +1 -1
  11. package/lib/components/Tab/useTabAnimatedIndicator.styles.css.js +93 -0
  12. package/lib/components/Tab/useTabAnimatedIndicator.styles.css.js.map +1 -0
  13. package/lib/components/Tab/useTabAnimatedIndicator.styles.raw.css.js +93 -0
  14. package/lib/components/Tab/useTabAnimatedIndicator.styles.raw.css.js.map +1 -0
  15. package/lib/components/Tab/useTabAnimatedIndicator.styles.raw.js.map +1 -1
  16. package/lib/components/Tab/useTabStyles.styles.css.js +53 -0
  17. package/lib/components/Tab/useTabStyles.styles.css.js.map +1 -0
  18. package/lib/components/Tab/useTabStyles.styles.raw.css.js +53 -0
  19. package/lib/components/Tab/useTabStyles.styles.raw.css.js.map +1 -0
  20. package/lib/components/Tab/useTabStyles.styles.raw.js.map +1 -1
  21. package/lib/components/TabList/TabList.js.map +1 -1
  22. package/lib/components/TabList/TabList.module.css +27 -0
  23. package/lib/components/TabList/TabList.types.js.map +1 -1
  24. package/lib/components/TabList/TabListContext.js.map +1 -1
  25. package/lib/components/TabList/index.js.map +1 -1
  26. package/lib/components/TabList/renderTabList.js +2 -2
  27. package/lib/components/TabList/renderTabList.js.map +1 -1
  28. package/lib/components/TabList/useTabList.js.map +1 -1
  29. package/lib/components/TabList/useTabListContextValues.js.map +1 -1
  30. package/lib/components/TabList/useTabListStyles.styles.css.js +12 -0
  31. package/lib/components/TabList/useTabListStyles.styles.css.js.map +1 -0
  32. package/lib/components/TabList/useTabListStyles.styles.raw.css.js +12 -0
  33. package/lib/components/TabList/useTabListStyles.styles.raw.css.js.map +1 -0
  34. package/lib/components/TabList/useTabListStyles.styles.raw.js.map +1 -1
  35. package/lib-commonjs/Tab.cjs +12 -12
  36. package/lib-commonjs/Tab.cjs.map +1 -1
  37. package/lib-commonjs/TabList.cjs +12 -12
  38. package/lib-commonjs/TabList.cjs.map +1 -1
  39. package/lib-commonjs/components/Tab/Tab.cjs.map +1 -1
  40. package/lib-commonjs/components/Tab/Tab.module.css +475 -0
  41. package/lib-commonjs/components/Tab/Tab.types.cjs.map +1 -1
  42. package/lib-commonjs/components/Tab/TabAnimatedIndicator.module.css +27 -0
  43. package/lib-commonjs/components/Tab/index.cjs +13 -13
  44. package/lib-commonjs/components/Tab/index.cjs.map +1 -1
  45. package/lib-commonjs/components/Tab/renderTab.cjs.map +1 -1
  46. package/lib-commonjs/components/Tab/useTab.cjs +4 -4
  47. package/lib-commonjs/components/Tab/useTab.cjs.map +1 -1
  48. package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.css.cjs +103 -0
  49. package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.css.cjs.map +1 -0
  50. package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.raw.cjs.map +1 -1
  51. package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.raw.css.cjs +103 -0
  52. package/lib-commonjs/components/Tab/useTabAnimatedIndicator.styles.raw.css.cjs.map +1 -0
  53. package/lib-commonjs/components/Tab/useTabStyles.styles.cjs +7 -7
  54. package/lib-commonjs/components/Tab/useTabStyles.styles.cjs.map +1 -1
  55. package/lib-commonjs/components/Tab/useTabStyles.styles.css.cjs +82 -0
  56. package/lib-commonjs/components/Tab/useTabStyles.styles.css.cjs.map +1 -0
  57. package/lib-commonjs/components/Tab/useTabStyles.styles.raw.cjs +7 -7
  58. package/lib-commonjs/components/Tab/useTabStyles.styles.raw.cjs.map +1 -1
  59. package/lib-commonjs/components/Tab/useTabStyles.styles.raw.css.cjs +82 -0
  60. package/lib-commonjs/components/Tab/useTabStyles.styles.raw.css.cjs.map +1 -0
  61. package/lib-commonjs/components/TabList/TabList.cjs.map +1 -1
  62. package/lib-commonjs/components/TabList/TabList.module.css +27 -0
  63. package/lib-commonjs/components/TabList/TabList.types.cjs.map +1 -1
  64. package/lib-commonjs/components/TabList/TabListContext.cjs +4 -4
  65. package/lib-commonjs/components/TabList/TabListContext.cjs.map +1 -1
  66. package/lib-commonjs/components/TabList/index.cjs +12 -12
  67. package/lib-commonjs/components/TabList/index.cjs.map +1 -1
  68. package/lib-commonjs/components/TabList/renderTabList.cjs.map +1 -1
  69. package/lib-commonjs/components/TabList/useTabList.cjs +4 -4
  70. package/lib-commonjs/components/TabList/useTabList.cjs.map +1 -1
  71. package/lib-commonjs/components/TabList/useTabListContextValues.cjs.map +1 -1
  72. package/lib-commonjs/components/TabList/useTabListStyles.styles.cjs +3 -3
  73. package/lib-commonjs/components/TabList/useTabListStyles.styles.cjs.map +1 -1
  74. package/lib-commonjs/components/TabList/useTabListStyles.styles.css.cjs +29 -0
  75. package/lib-commonjs/components/TabList/useTabListStyles.styles.css.cjs.map +1 -0
  76. package/lib-commonjs/components/TabList/useTabListStyles.styles.raw.cjs +3 -3
  77. package/lib-commonjs/components/TabList/useTabListStyles.styles.raw.cjs.map +1 -1
  78. package/lib-commonjs/components/TabList/useTabListStyles.styles.raw.css.cjs +29 -0
  79. package/lib-commonjs/components/TabList/useTabListStyles.styles.raw.css.cjs.map +1 -0
  80. package/lib-commonjs/index.cjs +22 -22
  81. package/lib-commonjs/index.cjs.map +1 -1
  82. package/package.json +14 -14
  83. package/dist/metadata/api/api-root.json +0 -1
  84. package/dist/metadata/index.json +0 -1
@@ -0,0 +1,82 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ function _export(target, all) {
7
+ for(var name in all)Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: Object.getOwnPropertyDescriptor(all, name).get
10
+ });
11
+ }
12
+ _export(exports, {
13
+ get tabClassNames () {
14
+ return tabClassNames;
15
+ },
16
+ get tabReservedSpaceClassNames () {
17
+ return tabReservedSpaceClassNames;
18
+ },
19
+ get useTabButtonStyles_unstable () {
20
+ return useTabButtonStyles_unstable;
21
+ },
22
+ get useTabContentStyles_unstable () {
23
+ return useTabContentStyles_unstable;
24
+ },
25
+ get useTabIndicatorStyles_unstable () {
26
+ return useTabIndicatorStyles_unstable;
27
+ },
28
+ get useTabStyles_unstable () {
29
+ return useTabStyles_unstable;
30
+ }
31
+ });
32
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
33
+ const _clsx = require("clsx");
34
+ const _Tabmodulecss = /*#__PURE__*/ _interop_require_default._(require("./Tab.module.css"));
35
+ const _useTabAnimatedIndicatorstylescss = require("./useTabAnimatedIndicator.styles.css.cjs");
36
+ const tabClassNames = {
37
+ root: 'fui-Tab',
38
+ icon: 'fui-Tab__icon',
39
+ content: 'fui-Tab__content'
40
+ };
41
+ const tabReservedSpaceClassNames = {
42
+ content: 'fui-Tab__content--reserved-space'
43
+ };
44
+ const useTabStyles_unstable = (state)=>{
45
+ const { appearance, disabled, selected, size, vertical } = state;
46
+ const isCircular = appearance === 'subtle-circular' || appearance === 'filled-circular';
47
+ // Orthogonal size and orientation classes — CSS compound selectors handle all combinations:
48
+ // padding, pending/active indicator positions, icon size, content size, circular padding.
49
+ const sizeClass = size === 'small' ? _Tabmodulecss.default.small : size === 'large' ? _Tabmodulecss.default.large : undefined;
50
+ const orientationClass = vertical ? _Tabmodulecss.default.vertical : _Tabmodulecss.default.horizontal;
51
+ if (!isCircular) {
52
+ // eslint-disable-next-line react-hooks/immutability
53
+ state.root.className = (0, _clsx.clsx)(tabClassNames.root, _Tabmodulecss.default.root, _Tabmodulecss.default.button, orientationClass, sizeClass, _Tabmodulecss.default.focusBase, !disabled && appearance === 'subtle' && _Tabmodulecss.default.subtle, !disabled && appearance === 'transparent' && _Tabmodulecss.default.transparent, !disabled && selected && _Tabmodulecss.default.selected, disabled && _Tabmodulecss.default.disabled, _Tabmodulecss.default.pendingBase, disabled && _Tabmodulecss.default.pendingDisabled, selected && _Tabmodulecss.default.activeBase, selected && !disabled && _Tabmodulecss.default.activeSelected, selected && disabled && _Tabmodulecss.default.activeDisabled, state.root.className);
54
+ } else {
55
+ const isSubtleCircular = appearance === 'subtle-circular';
56
+ // eslint-disable-next-line react-hooks/immutability
57
+ state.root.className = (0, _clsx.clsx)(tabClassNames.root, _Tabmodulecss.default.root, _Tabmodulecss.default.button, orientationClass, sizeClass, _Tabmodulecss.default.circularBase, _Tabmodulecss.default.focusCircular, isSubtleCircular ? _Tabmodulecss.default.subtleCircular : _Tabmodulecss.default.filledCircular, selected && _Tabmodulecss.default.selected, disabled && _Tabmodulecss.default.disabled, state.root.className);
58
+ }
59
+ (0, _useTabAnimatedIndicatorstylescss.useTabAnimatedIndicatorStyles_unstable)(state);
60
+ if (state.icon) {
61
+ // Icon size is driven by `.large :global(.fui-Tab__icon)` in CSS.
62
+ // Icon fill swap (selected) is driven by `.selected :global(.fui-Tab__icon) .fui-Icon-*` in CSS.
63
+ // eslint-disable-next-line react-hooks/immutability
64
+ state.icon.className = (0, _clsx.clsx)(tabClassNames.icon, _Tabmodulecss.default.icon, state.icon.className);
65
+ }
66
+ const hasIcon = Boolean(state.icon);
67
+ const positionClass = hasIcon ? _Tabmodulecss.default.contentIconBefore : _Tabmodulecss.default.contentNoIconBefore;
68
+ if (state.contentReservedSpace) {
69
+ // eslint-disable-next-line react-hooks/immutability
70
+ state.contentReservedSpace.className = (0, _clsx.clsx)(tabReservedSpaceClassNames.content, _Tabmodulecss.default.content, positionClass, _Tabmodulecss.default.contentPlaceholder, state.content.className);
71
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, react-hooks/immutability
72
+ state.contentReservedSpaceClassName = state.contentReservedSpace.className;
73
+ }
74
+ // Content size (large) and selected weight are handled by descendant CSS from the button's
75
+ // .large and .selected classes — no conditional class needed in the hook.
76
+ // eslint-disable-next-line react-hooks/immutability
77
+ state.content.className = (0, _clsx.clsx)(tabClassNames.content, _Tabmodulecss.default.content, positionClass, state.content.className);
78
+ return state;
79
+ };
80
+ const useTabIndicatorStyles_unstable = useTabStyles_unstable;
81
+ const useTabButtonStyles_unstable = useTabStyles_unstable;
82
+ const useTabContentStyles_unstable = useTabStyles_unstable;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Tab/useTabStyles.styles.css.ts"],"sourcesContent":["'use client';\n\nimport { clsx } from 'clsx';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport styles from './Tab.module.css';\nimport type { TabSlots, TabState } from './Tab.types';\nimport { useTabAnimatedIndicatorStyles_unstable } from './useTabAnimatedIndicator.styles.css';\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\nexport const useTabStyles_unstable = (state: TabState): TabState => {\n const { appearance, disabled, selected, size, vertical } = state;\n const isCircular = appearance === 'subtle-circular' || appearance === 'filled-circular';\n\n // Orthogonal size and orientation classes — CSS compound selectors handle all combinations:\n // padding, pending/active indicator positions, icon size, content size, circular padding.\n const sizeClass = size === 'small' ? styles.small : size === 'large' ? styles.large : undefined;\n const orientationClass = vertical ? styles.vertical : styles.horizontal;\n\n if (!isCircular) {\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = clsx(\n tabClassNames.root,\n styles.root,\n styles.button,\n orientationClass,\n sizeClass,\n styles.focusBase,\n !disabled && appearance === 'subtle' && styles.subtle,\n !disabled && appearance === 'transparent' && styles.transparent,\n !disabled && selected && styles.selected,\n disabled && styles.disabled,\n styles.pendingBase,\n disabled && styles.pendingDisabled,\n selected && styles.activeBase,\n selected && !disabled && styles.activeSelected,\n selected && disabled && styles.activeDisabled,\n state.root.className,\n );\n } else {\n const isSubtleCircular = appearance === 'subtle-circular';\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = clsx(\n tabClassNames.root,\n styles.root,\n styles.button,\n orientationClass,\n sizeClass,\n styles.circularBase,\n styles.focusCircular,\n // Appearance class: CSS handles .subtleCircular.selected, .subtleCircular.disabled, etc.\n isSubtleCircular ? styles.subtleCircular : styles.filledCircular,\n selected && styles.selected,\n disabled && styles.disabled,\n state.root.className,\n );\n }\n\n useTabAnimatedIndicatorStyles_unstable(state);\n\n if (state.icon) {\n // Icon size is driven by `.large :global(.fui-Tab__icon)` in CSS.\n // Icon fill swap (selected) is driven by `.selected :global(.fui-Tab__icon) .fui-Icon-*` in CSS.\n // eslint-disable-next-line react-hooks/immutability\n state.icon.className = clsx(tabClassNames.icon, styles.icon, state.icon.className);\n }\n\n const hasIcon = Boolean(state.icon);\n const positionClass = hasIcon ? styles.contentIconBefore : styles.contentNoIconBefore;\n\n if (state.contentReservedSpace) {\n // eslint-disable-next-line react-hooks/immutability\n state.contentReservedSpace.className = clsx(\n tabReservedSpaceClassNames.content,\n styles.content,\n positionClass,\n styles.contentPlaceholder,\n state.content.className,\n );\n // eslint-disable-next-line @typescript-eslint/no-deprecated, react-hooks/immutability\n state.contentReservedSpaceClassName = state.contentReservedSpace.className;\n }\n\n // Content size (large) and selected weight are handled by descendant CSS from the button's\n // .large and .selected classes — no conditional class needed in the hook.\n // eslint-disable-next-line react-hooks/immutability\n state.content.className = clsx(tabClassNames.content, styles.content, positionClass, state.content.className);\n\n return state;\n};\n\n// Keep the individual exports for external callers.\nexport const useTabIndicatorStyles_unstable = useTabStyles_unstable;\nexport const useTabButtonStyles_unstable = useTabStyles_unstable;\nexport const useTabContentStyles_unstable = useTabStyles_unstable;\n"],"names":["clsx","styles","useTabAnimatedIndicatorStyles_unstable","tabClassNames","root","icon","content","tabReservedSpaceClassNames","useTabStyles_unstable","state","appearance","disabled","selected","size","vertical","isCircular","sizeClass","small","large","undefined","orientationClass","horizontal","className","button","focusBase","subtle","transparent","pendingBase","pendingDisabled","activeBase","activeSelected","activeDisabled","isSubtleCircular","circularBase","focusCircular","subtleCircular","filledCircular","hasIcon","Boolean","positionClass","contentIconBefore","contentNoIconBefore","contentReservedSpace","contentPlaceholder","contentReservedSpaceClassName","useTabIndicatorStyles_unstable","useTabButtonStyles_unstable","useTabContentStyles_unstable"],"mappings":"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"}
@@ -6,26 +6,26 @@ Object.defineProperty(exports, "__esModule", {
6
6
  function _export(target, all) {
7
7
  for(var name in all)Object.defineProperty(target, name, {
8
8
  enumerable: true,
9
- get: all[name]
9
+ get: Object.getOwnPropertyDescriptor(all, name).get
10
10
  });
11
11
  }
12
12
  _export(exports, {
13
- tabClassNames: function() {
13
+ get tabClassNames () {
14
14
  return tabClassNames;
15
15
  },
16
- tabReservedSpaceClassNames: function() {
16
+ get tabReservedSpaceClassNames () {
17
17
  return tabReservedSpaceClassNames;
18
18
  },
19
- useTabButtonStyles_unstable: function() {
19
+ get useTabButtonStyles_unstable () {
20
20
  return useTabButtonStyles_unstable;
21
21
  },
22
- useTabContentStyles_unstable: function() {
22
+ get useTabContentStyles_unstable () {
23
23
  return useTabContentStyles_unstable;
24
24
  },
25
- useTabIndicatorStyles_unstable: function() {
25
+ get useTabIndicatorStyles_unstable () {
26
26
  return useTabIndicatorStyles_unstable;
27
27
  },
28
- useTabStyles_unstable: function() {
28
+ get useTabStyles_unstable () {
29
29
  return useTabStyles_unstable;
30
30
  }
31
31
  });
@@ -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'; // justified: compiler would optimize useTabStyles_unstable — manual opt-out to preserve runtime behavior\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 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 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 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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"}
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'; // justified: compiler would optimize useTabStyles_unstable — manual opt-out to preserve runtime behavior\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 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 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 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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"}
@@ -0,0 +1,82 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ function _export(target, all) {
7
+ for(var name in all)Object.defineProperty(target, name, {
8
+ enumerable: true,
9
+ get: Object.getOwnPropertyDescriptor(all, name).get
10
+ });
11
+ }
12
+ _export(exports, {
13
+ get tabClassNames () {
14
+ return tabClassNames;
15
+ },
16
+ get tabReservedSpaceClassNames () {
17
+ return tabReservedSpaceClassNames;
18
+ },
19
+ get useTabButtonStyles_unstable () {
20
+ return useTabButtonStyles_unstable;
21
+ },
22
+ get useTabContentStyles_unstable () {
23
+ return useTabContentStyles_unstable;
24
+ },
25
+ get useTabIndicatorStyles_unstable () {
26
+ return useTabIndicatorStyles_unstable;
27
+ },
28
+ get useTabStyles_unstable () {
29
+ return useTabStyles_unstable;
30
+ }
31
+ });
32
+ const _interop_require_default = require("@swc/helpers/_/_interop_require_default");
33
+ const _clsx = require("clsx");
34
+ const _Tabmodulecss = /*#__PURE__*/ _interop_require_default._(require("./Tab.module.css"));
35
+ const _useTabAnimatedIndicatorstylescss = require("./useTabAnimatedIndicator.styles.css.cjs");
36
+ const tabClassNames = {
37
+ root: 'fui-Tab',
38
+ icon: 'fui-Tab__icon',
39
+ content: 'fui-Tab__content'
40
+ };
41
+ const tabReservedSpaceClassNames = {
42
+ content: 'fui-Tab__content--reserved-space'
43
+ };
44
+ const useTabStyles_unstable = (state)=>{
45
+ const { appearance, disabled, selected, size, vertical } = state;
46
+ const isCircular = appearance === 'subtle-circular' || appearance === 'filled-circular';
47
+ // Orthogonal size and orientation classes — CSS compound selectors handle all combinations:
48
+ // padding, pending/active indicator positions, icon size, content size, circular padding.
49
+ const sizeClass = size === 'small' ? _Tabmodulecss.default.small : size === 'large' ? _Tabmodulecss.default.large : undefined;
50
+ const orientationClass = vertical ? _Tabmodulecss.default.vertical : _Tabmodulecss.default.horizontal;
51
+ if (!isCircular) {
52
+ // eslint-disable-next-line react-hooks/immutability
53
+ state.root.className = (0, _clsx.clsx)(tabClassNames.root, _Tabmodulecss.default.root, _Tabmodulecss.default.button, orientationClass, sizeClass, _Tabmodulecss.default.focusBase, !disabled && appearance === 'subtle' && _Tabmodulecss.default.subtle, !disabled && appearance === 'transparent' && _Tabmodulecss.default.transparent, !disabled && selected && _Tabmodulecss.default.selected, disabled && _Tabmodulecss.default.disabled, _Tabmodulecss.default.pendingBase, disabled && _Tabmodulecss.default.pendingDisabled, selected && _Tabmodulecss.default.activeBase, selected && !disabled && _Tabmodulecss.default.activeSelected, selected && disabled && _Tabmodulecss.default.activeDisabled, state.root.className);
54
+ } else {
55
+ const isSubtleCircular = appearance === 'subtle-circular';
56
+ // eslint-disable-next-line react-hooks/immutability
57
+ state.root.className = (0, _clsx.clsx)(tabClassNames.root, _Tabmodulecss.default.root, _Tabmodulecss.default.button, orientationClass, sizeClass, _Tabmodulecss.default.circularBase, _Tabmodulecss.default.focusCircular, isSubtleCircular ? _Tabmodulecss.default.subtleCircular : _Tabmodulecss.default.filledCircular, selected && _Tabmodulecss.default.selected, disabled && _Tabmodulecss.default.disabled, state.root.className);
58
+ }
59
+ (0, _useTabAnimatedIndicatorstylescss.useTabAnimatedIndicatorStyles_unstable)(state);
60
+ if (state.icon) {
61
+ // Icon size is driven by `.large :global(.fui-Tab__icon)` in CSS.
62
+ // Icon fill swap (selected) is driven by `.selected :global(.fui-Tab__icon) .fui-Icon-*` in CSS.
63
+ // eslint-disable-next-line react-hooks/immutability
64
+ state.icon.className = (0, _clsx.clsx)(tabClassNames.icon, _Tabmodulecss.default.icon, state.icon.className);
65
+ }
66
+ const hasIcon = Boolean(state.icon);
67
+ const positionClass = hasIcon ? _Tabmodulecss.default.contentIconBefore : _Tabmodulecss.default.contentNoIconBefore;
68
+ if (state.contentReservedSpace) {
69
+ // eslint-disable-next-line react-hooks/immutability
70
+ state.contentReservedSpace.className = (0, _clsx.clsx)(tabReservedSpaceClassNames.content, _Tabmodulecss.default.content, positionClass, _Tabmodulecss.default.contentPlaceholder, state.content.className);
71
+ // eslint-disable-next-line @typescript-eslint/no-deprecated, react-hooks/immutability
72
+ state.contentReservedSpaceClassName = state.contentReservedSpace.className;
73
+ }
74
+ // Content size (large) and selected weight are handled by descendant CSS from the button's
75
+ // .large and .selected classes — no conditional class needed in the hook.
76
+ // eslint-disable-next-line react-hooks/immutability
77
+ state.content.className = (0, _clsx.clsx)(tabClassNames.content, _Tabmodulecss.default.content, positionClass, state.content.className);
78
+ return state;
79
+ };
80
+ const useTabIndicatorStyles_unstable = useTabStyles_unstable;
81
+ const useTabButtonStyles_unstable = useTabStyles_unstable;
82
+ const useTabContentStyles_unstable = useTabStyles_unstable;
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/Tab/useTabStyles.styles.css.ts"],"sourcesContent":["'use client';\n\nimport { clsx } from 'clsx';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport styles from './Tab.module.css';\nimport type { TabSlots, TabState } from './Tab.types';\nimport { useTabAnimatedIndicatorStyles_unstable } from './useTabAnimatedIndicator.styles.css';\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\nexport const useTabStyles_unstable = (state: TabState): TabState => {\n const { appearance, disabled, selected, size, vertical } = state;\n const isCircular = appearance === 'subtle-circular' || appearance === 'filled-circular';\n\n // Orthogonal size and orientation classes — CSS compound selectors handle all combinations:\n // padding, pending/active indicator positions, icon size, content size, circular padding.\n const sizeClass = size === 'small' ? styles.small : size === 'large' ? styles.large : undefined;\n const orientationClass = vertical ? styles.vertical : styles.horizontal;\n\n if (!isCircular) {\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = clsx(\n tabClassNames.root,\n styles.root,\n styles.button,\n orientationClass,\n sizeClass,\n styles.focusBase,\n !disabled && appearance === 'subtle' && styles.subtle,\n !disabled && appearance === 'transparent' && styles.transparent,\n !disabled && selected && styles.selected,\n disabled && styles.disabled,\n styles.pendingBase,\n disabled && styles.pendingDisabled,\n selected && styles.activeBase,\n selected && !disabled && styles.activeSelected,\n selected && disabled && styles.activeDisabled,\n state.root.className,\n );\n } else {\n const isSubtleCircular = appearance === 'subtle-circular';\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = clsx(\n tabClassNames.root,\n styles.root,\n styles.button,\n orientationClass,\n sizeClass,\n styles.circularBase,\n styles.focusCircular,\n // Appearance class: CSS handles .subtleCircular.selected, .subtleCircular.disabled, etc.\n isSubtleCircular ? styles.subtleCircular : styles.filledCircular,\n selected && styles.selected,\n disabled && styles.disabled,\n state.root.className,\n );\n }\n\n useTabAnimatedIndicatorStyles_unstable(state);\n\n if (state.icon) {\n // Icon size is driven by `.large :global(.fui-Tab__icon)` in CSS.\n // Icon fill swap (selected) is driven by `.selected :global(.fui-Tab__icon) .fui-Icon-*` in CSS.\n // eslint-disable-next-line react-hooks/immutability\n state.icon.className = clsx(tabClassNames.icon, styles.icon, state.icon.className);\n }\n\n const hasIcon = Boolean(state.icon);\n const positionClass = hasIcon ? styles.contentIconBefore : styles.contentNoIconBefore;\n\n if (state.contentReservedSpace) {\n // eslint-disable-next-line react-hooks/immutability\n state.contentReservedSpace.className = clsx(\n tabReservedSpaceClassNames.content,\n styles.content,\n positionClass,\n styles.contentPlaceholder,\n state.content.className,\n );\n // eslint-disable-next-line @typescript-eslint/no-deprecated, react-hooks/immutability\n state.contentReservedSpaceClassName = state.contentReservedSpace.className;\n }\n\n // Content size (large) and selected weight are handled by descendant CSS from the button's\n // .large and .selected classes — no conditional class needed in the hook.\n // eslint-disable-next-line react-hooks/immutability\n state.content.className = clsx(tabClassNames.content, styles.content, positionClass, state.content.className);\n\n return state;\n};\n\n// Keep the individual exports for external callers.\nexport const useTabIndicatorStyles_unstable = useTabStyles_unstable;\nexport const useTabButtonStyles_unstable = useTabStyles_unstable;\nexport const useTabContentStyles_unstable = useTabStyles_unstable;\n"],"names":["clsx","styles","useTabAnimatedIndicatorStyles_unstable","tabClassNames","root","icon","content","tabReservedSpaceClassNames","useTabStyles_unstable","state","appearance","disabled","selected","size","vertical","isCircular","sizeClass","small","large","undefined","orientationClass","horizontal","className","button","focusBase","subtle","transparent","pendingBase","pendingDisabled","activeBase","activeSelected","activeDisabled","isSubtleCircular","circularBase","focusCircular","subtleCircular","filledCircular","hasIcon","Boolean","positionClass","contentIconBefore","contentNoIconBefore","contentReservedSpace","contentPlaceholder","contentReservedSpaceClassName","useTabIndicatorStyles_unstable","useTabButtonStyles_unstable","useTabContentStyles_unstable"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TabList/TabList.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTabList_unstable } from './useTabList';\nimport { renderTabList_unstable } from './renderTabList';\nimport { useTabListStyles_unstable } from './useTabListStyles.styles';\nimport type { TabListProps } from './TabList.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTabListContextValues_unstable } from './useTabListContextValues';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * A tab list provides single selection from a set of tabs.\n */\nexport const TabList: ForwardRefComponent<TabListProps> = React.forwardRef((props, ref) => {\n const state = useTabList_unstable(props, ref);\n const contextValues = useTabListContextValues_unstable(state);\n\n useTabListStyles_unstable(state);\n\n useCustomStyleHook_unstable('useTabListStyles_unstable')(state);\n\n return renderTabList_unstable(state, contextValues);\n});\n\nTabList.displayName = 'TabList';\n"],"names":["React","useTabList_unstable","renderTabList_unstable","useTabListStyles_unstable","useTabListContextValues_unstable","useCustomStyleHook_unstable","TabList","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;4BACK,kBAAe;+BACZ,qBAAkB;wCACf,+BAA4B;yCAGrB,+BAA4B;qCACjC,kCAAkC;AAKvE,MAAMM,UAAAA,WAAAA,GAA6CN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IACjF,MAAMC,YAAQT,+BAAAA,EAAoBO,OAAOC;IACzC,MAAME,oBAAgBP,yDAAAA,EAAiCM;QAEvDP,iDAAAA,EAA0BO;QAE1BL,gDAAAA,EAA4B,6BAA6BK;IAEzD,WAAOR,qCAAAA,EAAuBQ,OAAOC;AACvC,GAAG;AAEHL,QAAQM,WAAW,GAAG"}
1
+ {"version":3,"sources":["../../../src/components/TabList/TabList.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTabList_unstable } from './useTabList';\nimport { renderTabList_unstable } from './renderTabList';\nimport { useTabListStyles_unstable } from './useTabListStyles.styles';\nimport type { TabListProps } from './TabList.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTabListContextValues_unstable } from './useTabListContextValues';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * A tab list provides single selection from a set of tabs.\n */\nexport const TabList: ForwardRefComponent<TabListProps> = React.forwardRef((props, ref) => {\n const state = useTabList_unstable(props, ref);\n const contextValues = useTabListContextValues_unstable(state);\n\n useTabListStyles_unstable(state);\n\n useCustomStyleHook_unstable('useTabListStyles_unstable')(state);\n\n return renderTabList_unstable(state, contextValues);\n});\n\nTabList.displayName = 'TabList';\n"],"names":["React","useTabList_unstable","renderTabList_unstable","useTabListStyles_unstable","useTabListContextValues_unstable","useCustomStyleHook_unstable","TabList","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;4BACK,kBAAe;+BACZ,qBAAkB;wCACf,+BAA4B;yCAGrB,+BAA4B;qCACjC,kCAAkC;AAKvE,MAAMM,UAAAA,WAAAA,GAA6CN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IACjF,MAAMC,YAAQT,+BAAAA,EAAoBO,OAAOC;IACzC,MAAME,oBAAgBP,yDAAAA,EAAiCM;QAEvDP,iDAAAA,EAA0BO;QAE1BL,gDAAAA,EAA4B,6BAA6BK;IAEzD,WAAOR,qCAAAA,EAAuBQ,OAAOC;AACvC,GAAG;AAEHL,QAAQM,WAAW,GAAG"}
@@ -0,0 +1,27 @@
1
+ @layer fluentui {
2
+ .root {
3
+ display: flex;
4
+ flex-direction: row;
5
+ flex-shrink: 0;
6
+ flex-wrap: nowrap;
7
+ position: relative;
8
+ }
9
+
10
+ .horizontal {
11
+ align-items: stretch;
12
+ flex-direction: row;
13
+ }
14
+
15
+ .vertical {
16
+ align-items: stretch;
17
+ flex-direction: column;
18
+ }
19
+
20
+ :where(.subtle-circular, .filled-circular) {
21
+ gap: var(--spacingHorizontalS);
22
+
23
+ &.small {
24
+ gap: var(--spacingHorizontalSNudge);
25
+ }
26
+ }
27
+ }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TabList/TabList.types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { TabValue } from '../Tab/Tab.types';\n\nexport type TabRegisterData = {\n /**\n * The value of the tab.\n */\n value: TabValue;\n\n /**\n * The reference to the tab HTML element.\n */\n ref: React.RefObject<HTMLElement | null>;\n};\n\nexport type RegisterTabEventHandler = (data: TabRegisterData) => void;\n\nexport type SelectTabData = {\n /**\n * The value of the selected tab.\n */\n value: TabValue;\n};\n\nexport type SelectTabEvent<E = HTMLElement> = React.MouseEvent<E> | React.KeyboardEvent<E> | React.FocusEvent<E>;\n\nexport type SelectTabEventHandler = (event: SelectTabEvent, data: SelectTabData) => void;\n\nexport type TabListSlots = {\n /**\n * The slot associated with the root element of this tab list.\n */\n root: Slot<'div'>;\n};\n\n/**\n * TabList Props\n */\nexport type TabListProps = ComponentProps<TabListSlots> & {\n /**\n * A tab list can supports 'transparent' and 'subtle' appearance.\n *- 'subtle': Minimizes emphasis to blend into the background until hovered or focused.\n *- 'transparent': No background and border styling\n *- 'subtle-circular': Adds background and border styling\n *- 'filled-circular': Adds background styling\n *\n * The appearance affects each of the contained tabs.\n * @default 'transparent'\n */\n appearance?: 'transparent' | 'subtle' | 'subtle-circular' | 'filled-circular';\n\n /**\n * Tab size may change between unselected and selected states.\n * The default scenario is a selected tab has bold text.\n *\n * When true, this property requests tabs be the same size whether unselected or selected.\n * @default true\n */\n reserveSelectedTabSpace?: boolean;\n\n /**\n * The value of the tab to be selected by default.\n * Typically useful when the selectedValue is uncontrolled.\n */\n defaultSelectedValue?: TabValue;\n\n /**\n * A tab list can be set to disable interaction.\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Raised when a tab is selected.\n */\n // eslint-disable-next-line @nx/workspace-consistent-callback-type -- can't change type of existing callback\n onTabSelect?: SelectTabEventHandler;\n\n /**\n * When true, focusing a tab will select it.\n * @default false\n */\n selectTabOnFocus?: boolean;\n\n /**\n * The value of the currently selected tab.\n */\n selectedValue?: TabValue;\n\n /**\n * A tab list can be either 'small', 'medium', or 'large' size.\n * The size affects each of the contained tabs.\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n\n /**\n * A tab list can arrange its tabs vertically.\n * @default false\n */\n vertical?: boolean;\n};\n\nexport type TabListBaseProps = Omit<TabListProps, 'appearance' | 'size' | 'reserveSelectedTabSpace'>;\n\nexport type TabListContextValue = Pick<\n TabListProps,\n 'onTabSelect' | 'selectTabOnFocus' | 'selectedValue' | 'reserveSelectedTabSpace'\n> &\n Required<Pick<TabListProps, 'appearance' | 'disabled' | 'size' | 'vertical'>> & {\n /** A callback to allow a tab to register itself with the tab list. */\n onRegister: RegisterTabEventHandler;\n\n /** A callback to allow a tab to unregister itself with the tab list. */\n onUnregister: RegisterTabEventHandler;\n /**\n * A callback to allow a tab to select itself when pressed.\n */\n onSelect: SelectTabEventHandler;\n /**\n * Gets the registered tab data along with current and previous selected values.\n */\n getRegisteredTabs: () => {\n selectedValue?: TabValue;\n previousSelectedValue?: TabValue;\n registeredTabs: Record<string, TabRegisterData>;\n };\n };\n\n/**\n * Context values used in rendering TabList.\n */\nexport type TabListContextValues = {\n /**\n * The context of the tab list available to each tab.\n */\n tabList: TabListContextValue;\n};\n\n/**\n * State used in rendering TabList.\n */\nexport type TabListState = ComponentState<Required<TabListSlots>> & TabListContextValue;\n\nexport type TabListBaseState = Omit<TabListState, 'appearance' | 'size' | 'reserveSelectedTabSpace'>;\n"],"names":[],"mappings":""}
1
+ {"version":3,"sources":["../../../src/components/TabList/TabList.types.ts"],"sourcesContent":["import type * as React from 'react';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { TabValue } from '../Tab/Tab.types';\n\nexport type TabRegisterData = {\n /**\n * The value of the tab.\n */\n value: TabValue;\n\n /**\n * The reference to the tab HTML element.\n */\n ref: React.RefObject<HTMLElement | null>;\n};\n\nexport type RegisterTabEventHandler = (data: TabRegisterData) => void;\n\nexport type SelectTabData = {\n /**\n * The value of the selected tab.\n */\n value: TabValue;\n};\n\nexport type SelectTabEvent<E = HTMLElement> = React.MouseEvent<E> | React.KeyboardEvent<E> | React.FocusEvent<E>;\n\nexport type SelectTabEventHandler = (event: SelectTabEvent, data: SelectTabData) => void;\n\nexport type TabListSlots = {\n /**\n * The slot associated with the root element of this tab list.\n */\n root: Slot<'div'>;\n};\n\n/**\n * TabList Props\n */\nexport type TabListProps = ComponentProps<TabListSlots> & {\n /**\n * A tab list can supports 'transparent' and 'subtle' appearance.\n *- 'subtle': Minimizes emphasis to blend into the background until hovered or focused.\n *- 'transparent': No background and border styling\n *- 'subtle-circular': Adds background and border styling\n *- 'filled-circular': Adds background styling\n *\n * The appearance affects each of the contained tabs.\n * @default 'transparent'\n */\n appearance?: 'transparent' | 'subtle' | 'subtle-circular' | 'filled-circular';\n\n /**\n * Tab size may change between unselected and selected states.\n * The default scenario is a selected tab has bold text.\n *\n * When true, this property requests tabs be the same size whether unselected or selected.\n * @default true\n */\n reserveSelectedTabSpace?: boolean;\n\n /**\n * The value of the tab to be selected by default.\n * Typically useful when the selectedValue is uncontrolled.\n */\n defaultSelectedValue?: TabValue;\n\n /**\n * A tab list can be set to disable interaction.\n * @default false\n */\n disabled?: boolean;\n\n /**\n * Raised when a tab is selected.\n */\n // eslint-disable-next-line @nx/workspace-consistent-callback-type -- can't change type of existing callback\n onTabSelect?: SelectTabEventHandler;\n\n /**\n * When true, focusing a tab will select it.\n * @default false\n */\n selectTabOnFocus?: boolean;\n\n /**\n * The value of the currently selected tab.\n */\n selectedValue?: TabValue;\n\n /**\n * A tab list can be either 'small', 'medium', or 'large' size.\n * The size affects each of the contained tabs.\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n\n /**\n * A tab list can arrange its tabs vertically.\n * @default false\n */\n vertical?: boolean;\n};\n\nexport type TabListBaseProps = Omit<TabListProps, 'appearance' | 'size' | 'reserveSelectedTabSpace'>;\n\nexport type TabListContextValue = Pick<\n TabListProps,\n 'onTabSelect' | 'selectTabOnFocus' | 'selectedValue' | 'reserveSelectedTabSpace'\n> &\n Required<Pick<TabListProps, 'appearance' | 'disabled' | 'size' | 'vertical'>> & {\n /** A callback to allow a tab to register itself with the tab list. */\n onRegister: RegisterTabEventHandler;\n\n /** A callback to allow a tab to unregister itself with the tab list. */\n onUnregister: RegisterTabEventHandler;\n /**\n * A callback to allow a tab to select itself when pressed.\n */\n onSelect: SelectTabEventHandler;\n /**\n * Gets the registered tab data along with current and previous selected values.\n */\n getRegisteredTabs: () => {\n selectedValue?: TabValue;\n previousSelectedValue?: TabValue;\n registeredTabs: Record<string, TabRegisterData>;\n };\n };\n\n/**\n * Context values used in rendering TabList.\n */\nexport type TabListContextValues = {\n /**\n * The context of the tab list available to each tab.\n */\n tabList: TabListContextValue;\n};\n\n/**\n * State used in rendering TabList.\n */\nexport type TabListState = ComponentState<Required<TabListSlots>> & TabListContextValue;\n\nexport type TabListBaseState = Omit<TabListState, 'appearance' | 'size' | 'reserveSelectedTabSpace'>;\n"],"names":[],"mappings":""}
@@ -6,17 +6,17 @@ Object.defineProperty(exports, "__esModule", {
6
6
  function _export(target, all) {
7
7
  for(var name in all)Object.defineProperty(target, name, {
8
8
  enumerable: true,
9
- get: all[name]
9
+ get: Object.getOwnPropertyDescriptor(all, name).get
10
10
  });
11
11
  }
12
12
  _export(exports, {
13
- TabListContext: function() {
13
+ get TabListContext () {
14
14
  return TabListContext;
15
15
  },
16
- TabListProvider: function() {
16
+ get TabListProvider () {
17
17
  return TabListProvider;
18
18
  },
19
- useTabListContext_unstable: function() {
19
+ get useTabListContext_unstable () {
20
20
  return useTabListContext_unstable;
21
21
  }
22
22
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/TabList/TabListContext.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { Context, ContextSelector } from '@fluentui/react-context-selector';\nimport type { TabListContextValue } from './TabList.types';\n\nconst tabListContextDefaultValue: TabListContextValue = {\n appearance: 'transparent',\n reserveSelectedTabSpace: true,\n selectTabOnFocus: false,\n disabled: false,\n selectedValue: undefined,\n onRegister: () => {\n /* noop */\n },\n onUnregister: () => {\n /* noop */\n },\n onSelect: () => {\n /* noop */\n },\n getRegisteredTabs: () => {\n return {\n registeredTabs: {},\n };\n },\n size: 'medium',\n vertical: false,\n};\n\nexport const TabListContext: Context<TabListContextValue> = createContext<TabListContextValue | undefined>(\n undefined,\n) as Context<TabListContextValue>;\n\nexport const TabListProvider = TabListContext.Provider;\nexport const useTabListContext_unstable = <T>(selector: ContextSelector<TabListContextValue, T>): T =>\n useContextSelector(TabListContext, (ctx = tabListContextDefaultValue) => selector(ctx));\n"],"names":["createContext","useContextSelector","tabListContextDefaultValue","appearance","reserveSelectedTabSpace","selectTabOnFocus","disabled","selectedValue","undefined","onRegister","onUnregister","onSelect","getRegisteredTabs","registeredTabs","size","vertical","TabListContext","TabListProvider","Provider","useTabListContext_unstable","selector","ctx"],"mappings":"AAAA;;;;;;;;;;;;kBA8BagB;;;mBAIAC;;;8BACAE;;;;sCAjCqC,mCAAmC;AAIrF,MAAMjB,6BAAkD;IACtDC,YAAY;IACZC,yBAAyB;IACzBC,kBAAkB;IAClBC,UAAU;IACVC,eAAeC;IACfC,YAAY;IACV,QAAQ,GACV;IACAC,cAAc;IACZ,QAAQ,GACV;IACAC,UAAU;IACR,QAAQ,GACV;IACAC,mBAAmB;QACjB,OAAO;YACLC,gBAAgB,CAAC;QACnB;IACF;IACAC,MAAM;IACNC,UAAU;AACZ;AAEO,MAAMC,qBAA+ChB,mCAAAA,EAC1DQ,WACgC;AAE3B,MAAMS,kBAAkBD,eAAeE,QAAQ,CAAC;AAChD,MAAMC,6BAA6B,CAAIC,eAC5CnB,wCAAAA,EAAmBe,gBAAgB,CAACK,MAAMnB,0BAA0B,GAAKkB,SAASC,MAAM"}
1
+ {"version":3,"sources":["../../../src/components/TabList/TabListContext.ts"],"sourcesContent":["'use client';\n\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { Context, ContextSelector } from '@fluentui/react-context-selector';\nimport type { TabListContextValue } from './TabList.types';\n\nconst tabListContextDefaultValue: TabListContextValue = {\n appearance: 'transparent',\n reserveSelectedTabSpace: true,\n selectTabOnFocus: false,\n disabled: false,\n selectedValue: undefined,\n onRegister: () => {\n /* noop */\n },\n onUnregister: () => {\n /* noop */\n },\n onSelect: () => {\n /* noop */\n },\n getRegisteredTabs: () => {\n return {\n registeredTabs: {},\n };\n },\n size: 'medium',\n vertical: false,\n};\n\nexport const TabListContext: Context<TabListContextValue> = createContext<TabListContextValue | undefined>(\n undefined,\n) as Context<TabListContextValue>;\n\nexport const TabListProvider = TabListContext.Provider;\nexport const useTabListContext_unstable = <T>(selector: ContextSelector<TabListContextValue, T>): T =>\n useContextSelector(TabListContext, (ctx = tabListContextDefaultValue) => selector(ctx));\n"],"names":["createContext","useContextSelector","tabListContextDefaultValue","appearance","reserveSelectedTabSpace","selectTabOnFocus","disabled","selectedValue","undefined","onRegister","onUnregister","onSelect","getRegisteredTabs","registeredTabs","size","vertical","TabListContext","TabListProvider","Provider","useTabListContext_unstable","selector","ctx"],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;sCAEkD,mCAAmC;AAIrF,MAAME,6BAAkD;IACtDC,YAAY;IACZC,yBAAyB;IACzBC,kBAAkB;IAClBC,UAAU;IACVC,eAAeC;IACfC,YAAY;IACV,QAAQ,GACV;IACAC,cAAc;IACZ,QAAQ,GACV;IACAC,UAAU;IACR,QAAQ,GACV;IACAC,mBAAmB;QACjB,OAAO;YACLC,gBAAgB,CAAC;QACnB;IACF;IACAC,MAAM;IACNC,UAAU;AACZ;AAEO,MAAMC,qBAA+ChB,mCAAAA,EAC1DQ,WACgC;AAE3B,MAAMS,kBAAkBD,eAAeE,QAAQ,CAAC;AAChD,MAAMC,6BAA6B,CAAIC,eAC5CnB,wCAAAA,EAAmBe,gBAAgB,CAACK,MAAMnB,0BAA0B,GAAKkB,SAASC,MAAM"}