Private
Public Access
1
0

feat: Fluent UI Outlook Lite + connections mockup

This commit is contained in:
2026-04-14 18:52:25 +00:00
parent 1199eff6c3
commit dfa4010406
34820 changed files with 1003813 additions and 205 deletions

View File

@@ -0,0 +1,15 @@
'use client';
import * as React from 'react';
import { useBreadcrumbButton_unstable } from './useBreadcrumbButton';
import { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';
import { useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
/**
* A button component which is used inside the Breadcrumb.
*/ export const BreadcrumbButton = /*#__PURE__*/ React.forwardRef((props, ref)=>{
const state = useBreadcrumbButton_unstable(props, ref);
useBreadcrumbButtonStyles_unstable(state);
useCustomStyleHook_unstable('useBreadcrumbButtonStyles_unstable')(state);
return renderBreadcrumbButton_unstable(state);
});
BreadcrumbButton.displayName = 'BreadcrumbButton';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/BreadcrumbButton.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useBreadcrumbButton_unstable } from './useBreadcrumbButton';\nimport { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';\nimport { useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport type { BreadcrumbButtonProps } from './BreadcrumbButton.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n\n/**\n * A button component which is used inside the Breadcrumb.\n */\nexport const BreadcrumbButton: ForwardRefComponent<BreadcrumbButtonProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumbButton_unstable(props, ref);\n\n useBreadcrumbButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbButtonStyles_unstable')(state);\n\n return renderBreadcrumbButton_unstable(state);\n});\n\nBreadcrumbButton.displayName = 'BreadcrumbButton';\n"],"names":["React","useBreadcrumbButton_unstable","renderBreadcrumbButton_unstable","useBreadcrumbButtonStyles_unstable","useCustomStyleHook_unstable","BreadcrumbButton","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,+BAA+B,QAAQ,2BAA2B;AAC3E,SAASC,kCAAkC,QAAQ,qCAAqC;AACxF,SAASC,2BAA2B,QAAQ,kCAAkC;AAI9E;;CAEC,GACD,OAAO,MAAMC,iCAA+DL,MAAMM,UAAU,CAAC,CAACC,OAAOC;IACnG,MAAMC,QAAQR,6BAA6BM,OAAOC;IAElDL,mCAAmCM;IACnCL,4BAA4B,sCAAsCK;IAElE,OAAOP,gCAAgCO;AACzC,GAAG;AAEHJ,iBAAiBK,WAAW,GAAG"}

View File

@@ -0,0 +1 @@
export { };

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/BreadcrumbButton.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState } from '@fluentui/react-utilities';\nimport { ButtonProps, ButtonSlots, ButtonState } from '@fluentui/react-button';\nimport { BreadcrumbProps } from '../Breadcrumb/Breadcrumb.types';\n\nexport type BreadcrumbButtonSlots = ButtonSlots;\n\n/**\n * BreadcrumbButton Props\n */\nexport type BreadcrumbButtonProps = ComponentProps<BreadcrumbButtonSlots> &\n Pick<BreadcrumbProps, 'size'> &\n Pick<ButtonProps, 'disabled' | 'disabledFocusable'> & {\n /**\n * Defines current sate of BreadcrumbButton.\n *\n * @default false\n */\n current?: boolean;\n };\n\n/**\n * State used in rendering BreadcrumbButton\n */\nexport type BreadcrumbButtonState = ComponentState<BreadcrumbButtonSlots> &\n Omit<ButtonState, keyof ButtonSlots | 'components'> &\n Required<Pick<BreadcrumbButtonProps, 'current' | 'size'>>;\n\nexport type BreadcrumbButtonBaseProps = Omit<BreadcrumbButtonProps, 'size'>;\n\nexport type BreadcrumbButtonBaseState = Omit<BreadcrumbButtonState, 'size'>;\n"],"names":[],"mappings":"AA6BA,WAA4E"}

View File

@@ -0,0 +1,4 @@
export { BreadcrumbButton } from './BreadcrumbButton';
export { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';
export { useBreadcrumbButton_unstable, useBreadcrumbButtonBase_unstable } from './useBreadcrumbButton';
export { breadcrumbButtonClassNames, useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/index.ts"],"sourcesContent":["export { BreadcrumbButton } from './BreadcrumbButton';\nexport type {\n BreadcrumbButtonBaseProps,\n BreadcrumbButtonBaseState,\n BreadcrumbButtonProps,\n BreadcrumbButtonSlots,\n BreadcrumbButtonState,\n} from './BreadcrumbButton.types';\nexport { renderBreadcrumbButton_unstable } from './renderBreadcrumbButton';\nexport { useBreadcrumbButton_unstable, useBreadcrumbButtonBase_unstable } from './useBreadcrumbButton';\nexport { breadcrumbButtonClassNames, useBreadcrumbButtonStyles_unstable } from './useBreadcrumbButtonStyles.styles';\n"],"names":["BreadcrumbButton","renderBreadcrumbButton_unstable","useBreadcrumbButton_unstable","useBreadcrumbButtonBase_unstable","breadcrumbButtonClassNames","useBreadcrumbButtonStyles_unstable"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,qBAAqB;AAQtD,SAASC,+BAA+B,QAAQ,2BAA2B;AAC3E,SAASC,4BAA4B,EAAEC,gCAAgC,QAAQ,wBAAwB;AACvG,SAASC,0BAA0B,EAAEC,kCAAkC,QAAQ,qCAAqC"}

View File

@@ -0,0 +1,6 @@
import { renderButton_unstable } from '@fluentui/react-button';
/**
* Render the final JSX of BreadcrumbButton
*/ export const renderBreadcrumbButton_unstable = (state)=>{
return renderButton_unstable(state);
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/renderBreadcrumbButton.tsx"],"sourcesContent":["import type { BreadcrumbButtonState } from './BreadcrumbButton.types';\nimport type { JSXElement } from '@fluentui/react-utilities';\n\nimport { renderButton_unstable } from '@fluentui/react-button';\n\n/**\n * Render the final JSX of BreadcrumbButton\n */\nexport const renderBreadcrumbButton_unstable = (state: BreadcrumbButtonState): JSXElement => {\n return renderButton_unstable(state);\n};\n"],"names":["renderButton_unstable","renderBreadcrumbButton_unstable","state"],"mappings":"AAGA,SAASA,qBAAqB,QAAQ,yBAAyB;AAE/D;;CAEC,GACD,OAAO,MAAMC,kCAAkC,CAACC;IAC9C,OAAOF,sBAAsBE;AAC/B,EAAE"}

View File

@@ -0,0 +1,44 @@
'use client';
import * as React from 'react';
import { useButton_unstable } from '@fluentui/react-button';
import { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';
/**
* Create the state required to render BreadcrumbButton.
*
* The returned state can be modified with hooks such as useBreadcrumbButtonStyles_unstable,
* before being passed to renderBreadcrumbButton_unstable.
*
* @param props - props from this instance of BreadcrumbButton
* @param ref - reference to root HTMLElement of BreadcrumbButton
*/ export const useBreadcrumbButton_unstable = (props, ref)=>{
const { size } = useBreadcrumbContext_unstable();
const state = useBreadcrumbButtonBase_unstable(props, ref);
return {
...state,
size
};
};
/**
* Base hook for BreadcrumbButton component, which manages state related to button behavior,
* ARIA attributes (aria-current, aria-disabled), and slot structure without design props.
*
* @param props - props from this instance of BreadcrumbButton
* @param ref - reference to root HTMLElement of BreadcrumbButton
*/ export const useBreadcrumbButtonBase_unstable = (props, ref)=>{
const { current = false, as, ...rest } = props;
const controlType = (as !== null && as !== void 0 ? as : props.href) ? 'a' : 'button';
var _props_ariacurrent, _props_ariadisabled;
const { size: _size, ...buttonState } = useButton_unstable({
role: undefined,
type: undefined,
as: controlType,
iconPosition: 'before',
'aria-current': current ? (_props_ariacurrent = props['aria-current']) !== null && _props_ariacurrent !== void 0 ? _props_ariacurrent : 'page' : undefined,
'aria-disabled': current ? (_props_ariadisabled = props['aria-disabled']) !== null && _props_ariadisabled !== void 0 ? _props_ariadisabled : true : undefined,
...rest
}, ref);
return {
...buttonState,
current
};
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/BreadcrumbButton/useBreadcrumbButton.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ARIAButtonProps } from '@fluentui/react-aria';\nimport { useButton_unstable } from '@fluentui/react-button';\nimport type { ButtonProps } from '@fluentui/react-button';\nimport { useBreadcrumbContext_unstable } from '../Breadcrumb/BreadcrumbContext';\nimport type {\n BreadcrumbButtonBaseProps,\n BreadcrumbButtonBaseState,\n BreadcrumbButtonProps,\n BreadcrumbButtonState,\n} from './BreadcrumbButton.types';\n\n/**\n * Create the state required to render BreadcrumbButton.\n *\n * The returned state can be modified with hooks such as useBreadcrumbButtonStyles_unstable,\n * before being passed to renderBreadcrumbButton_unstable.\n *\n * @param props - props from this instance of BreadcrumbButton\n * @param ref - reference to root HTMLElement of BreadcrumbButton\n */\nexport const useBreadcrumbButton_unstable = (\n props: BreadcrumbButtonProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>,\n): BreadcrumbButtonState => {\n const { size } = useBreadcrumbContext_unstable();\n const state = useBreadcrumbButtonBase_unstable(props, ref);\n\n return {\n ...state,\n size,\n };\n};\n\n/**\n * Base hook for BreadcrumbButton component, which manages state related to button behavior,\n * ARIA attributes (aria-current, aria-disabled), and slot structure without design props.\n *\n * @param props - props from this instance of BreadcrumbButton\n * @param ref - reference to root HTMLElement of BreadcrumbButton\n */\nexport const useBreadcrumbButtonBase_unstable = (\n props: BreadcrumbButtonBaseProps,\n ref: React.Ref<HTMLButtonElement | HTMLAnchorElement>,\n): BreadcrumbButtonBaseState => {\n const { current = false, as, ...rest } = props;\n\n const controlType = as ?? (props as ARIAButtonProps<'a'>).href ? 'a' : 'button';\n\n const { size: _size, ...buttonState } = useButton_unstable(\n {\n role: undefined,\n type: undefined,\n as: controlType,\n iconPosition: 'before',\n 'aria-current': current ? props['aria-current'] ?? 'page' : undefined,\n 'aria-disabled': current ? props['aria-disabled'] ?? true : undefined,\n ...rest,\n } as ButtonProps,\n ref,\n );\n\n return {\n ...buttonState,\n current,\n };\n};\n"],"names":["React","useButton_unstable","useBreadcrumbContext_unstable","useBreadcrumbButton_unstable","props","ref","size","state","useBreadcrumbButtonBase_unstable","current","as","rest","controlType","href","_size","buttonState","role","undefined","type","iconPosition"],"mappings":"AAAA;AAEA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,kBAAkB,QAAQ,yBAAyB;AAE5D,SAASC,6BAA6B,QAAQ,kCAAkC;AAQhF;;;;;;;;CAQC,GACD,OAAO,MAAMC,+BAA+B,CAC1CC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGJ;IACjB,MAAMK,QAAQC,iCAAiCJ,OAAOC;IAEtD,OAAO;QACL,GAAGE,KAAK;QACRD;IACF;AACF,EAAE;AAEF;;;;;;CAMC,GACD,OAAO,MAAME,mCAAmC,CAC9CJ,OACAC;IAEA,MAAM,EAAEI,UAAU,KAAK,EAAEC,EAAE,EAAE,GAAGC,MAAM,GAAGP;IAEzC,MAAMQ,cAAcF,CAAAA,eAAAA,gBAAAA,KAAM,AAACN,MAA+BS,IAAI,AAAD,IAAI,MAAM;QAQzCT,oBACCA;IAP/B,MAAM,EAAEE,MAAMQ,KAAK,EAAE,GAAGC,aAAa,GAAGd,mBACtC;QACEe,MAAMC;QACNC,MAAMD;QACNP,IAAIE;QACJO,cAAc;QACd,gBAAgBV,UAAUL,CAAAA,qBAAAA,KAAK,CAAC,eAAe,cAArBA,gCAAAA,qBAAyB,SAASa;QAC5D,iBAAiBR,UAAUL,CAAAA,sBAAAA,KAAK,CAAC,gBAAgB,cAAtBA,iCAAAA,sBAA0B,OAAOa;QAC5D,GAAGN,IAAI;IACT,GACAN;IAGF,OAAO;QACL,GAAGU,WAAW;QACdN;IACF;AACF,EAAE"}

View File

@@ -0,0 +1,169 @@
'use client';
import { __styles, mergeClasses } from '@griffel/react';
import { useButtonStyles_unstable, buttonClassNames } from '@fluentui/react-button';
import { tokens, typographyStyles } from '@fluentui/react-theme';
import { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';
/**
* Static CSS class names used internally for the component slots.
*/
export const breadcrumbButtonClassNames = {
root: 'fui-BreadcrumbButton',
icon: 'fui-BreadcrumbButton__icon'
};
/**
* CSS variable names used internally for styling in the Breadcrumb.
*/
const breadcrumbCSSVars = {
breadcrumbIconSizeVar: '--fui-Breadcrumb--icon-size',
breadcrumbIconLineHeightVar: '--fui-Breadcrumb--icon-line-height'
};
const useIconStyles = /*#__PURE__*/__styles({
base: {
Be2twd7: "fsj74e5",
Bqenvij: "f1qfv4wv",
Bg96gwp: "f15xapk4",
a9b677: "f17j33op",
t21cq0: ["fm0x6gh", "fbyavb5"]
},
small: {
u3h8gg: "f1qfi7kw",
Biu6dll: "f1876atl"
},
medium: {
u3h8gg: "f1h9446d",
Biu6dll: "f10xfswh"
},
large: {
u3h8gg: "f5hcofs",
Biu6dll: "f1a6v6zl"
}
}, {
d: [".fsj74e5{font-size:var(--fui-Breadcrumb--icon-size);}", ".f1qfv4wv{height:var(--fui-Breadcrumb--icon-size);}", ".f15xapk4{line-height:var(--fui-Breadcrumb--icon-line-height);}", ".f17j33op{width:var(--fui-Breadcrumb--icon-size);}", ".fm0x6gh{margin-right:var(--spacingHorizontalXS);}", ".fbyavb5{margin-left:var(--spacingHorizontalXS);}", ".f1qfi7kw{--fui-Breadcrumb--icon-size:12px;}", ".f1876atl{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase200);}", ".f1h9446d{--fui-Breadcrumb--icon-size:16px;}", ".f10xfswh{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase400);}", ".f5hcofs{--fui-Breadcrumb--icon-size:20px;}", ".f1a6v6zl{--fui-Breadcrumb--icon-line-height:var(--lineHeightBase600);}"]
});
const defaultButtonStyles = {
backgroundColor: tokens.colorTransparentBackground,
color: tokens.colorNeutralForeground2,
cursor: 'auto'
};
const currentIconStyles = {
...defaultButtonStyles,
[`& .${buttonClassNames.icon}`]: {
color: 'unset'
},
[`& .${iconFilledClassName}`]: {
display: 'none'
},
[`& .${iconRegularClassName}`]: {
display: 'inline'
}
};
const useStyles = /*#__PURE__*/__styles({
root: {
Bf4jedk: "f18p0k4z",
j4b8c3: "fv6wr3j"
},
small: {
Bqenvij: "frvgh55",
Bahqtrf: "fk6fouc",
Be2twd7: "fy9rknc",
Bhrd7zp: "figsok6",
Bg96gwp: "fwrc4pm",
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: "f1r1wyb6"
},
medium: {
Bqenvij: "f1d2rq10",
Bahqtrf: "fk6fouc",
Be2twd7: "fkhj508",
Bhrd7zp: "figsok6",
Bg96gwp: "f1i3iumi",
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: "f1r1wyb6"
},
large: {
Bqenvij: "fbhnoac",
Bahqtrf: "fk6fouc",
Be2twd7: "fod5ikn",
Bhrd7zp: "figsok6",
Bg96gwp: "faaz57k",
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: "f1bnz8pu"
},
current: {
Jwef8y: "f9ql6rf",
Bi91k9c: "f3p8bqa",
eoavqd: "f14w7a5u",
Bbdnnc7: "f1irjp3o",
Bk3fhr4: "f19vpps7",
Bmfj8id: "fv5swzo",
iro3zm: "f3h1zc4",
B2d53fq: "f1xkgyln",
c3iz72: "f17wbbfx",
x3br3k: "fofxw0a",
em6i61: "f1ol4fw6",
vm6p8p: "f1q1lw4e",
Bszkowt: "ff24m",
Dyrjrp: "ft5r8e9",
ezr58z: "f1cbpfqp",
nhk3du: "f1motppv",
Bfrek18: "fi9vkhg",
G209fr: "f1fg3nnv"
},
currentSmall: {
Bahqtrf: "fk6fouc",
Be2twd7: "fy9rknc",
Bhrd7zp: "fl43uef",
Bg96gwp: "fwrc4pm"
},
currentMedium: {
Bahqtrf: "fk6fouc",
Be2twd7: "fkhj508",
Bhrd7zp: "fl43uef",
Bg96gwp: "f1i3iumi"
},
currentLarge: {
Bahqtrf: "fk6fouc",
Be2twd7: "fod5ikn",
Bhrd7zp: "fl43uef",
Bg96gwp: "faaz57k"
}
}, {
d: [".f18p0k4z{min-width:unset;}", ".fv6wr3j{text-wrap:nowrap;}", ".frvgh55{height:24px;}", ".fk6fouc{font-family:var(--fontFamilyBase);}", ".fy9rknc{font-size:var(--fontSizeBase200);}", ".figsok6{font-weight:var(--fontWeightRegular);}", ".fwrc4pm{line-height:var(--lineHeightBase200);}", [".f1r1wyb6{padding:var(--spacingHorizontalSNudge);}", {
p: -1
}], ".f1d2rq10{height:32px;}", ".fkhj508{font-size:var(--fontSizeBase300);}", ".f1i3iumi{line-height:var(--lineHeightBase300);}", [".f1r1wyb6{padding:var(--spacingHorizontalSNudge);}", {
p: -1
}], ".fbhnoac{height:40px;}", ".fod5ikn{font-size:var(--fontSizeBase400);}", ".faaz57k{line-height:var(--lineHeightBase400);}", [".f1bnz8pu{padding:var(--spacingHorizontalS);}", {
p: -1
}], ".ff24m:disabled{background-color:var(--colorTransparentBackground);}", ".ft5r8e9:disabled{color:var(--colorNeutralForeground2);}", ".f1cbpfqp:disabled{cursor:auto;}", ".f1motppv:disabled .fui-Button__icon{color:unset;}", ".fi9vkhg:disabled .fui-Icon-filled{display:none;}", ".f1fg3nnv:disabled .fui-Icon-regular{display:inline;}", ".fl43uef{font-weight:var(--fontWeightSemibold);}"],
h: [".f9ql6rf:hover{background-color:var(--colorTransparentBackground);}", ".f3p8bqa:hover{color:var(--colorNeutralForeground2);}", ".f14w7a5u:hover{cursor:auto;}", ".f1irjp3o:hover .fui-Button__icon{color:unset;}", ".f19vpps7:hover .fui-Icon-filled{display:none;}", ".fv5swzo:hover .fui-Icon-regular{display:inline;}", ".f3h1zc4:hover:active{background-color:var(--colorTransparentBackground);}", ".f1xkgyln:hover:active{color:var(--colorNeutralForeground2);}", ".f17wbbfx:hover:active{cursor:auto;}", ".fofxw0a:hover:active .fui-Button__icon{color:unset;}", ".f1ol4fw6:hover:active .fui-Icon-filled{display:none;}", ".f1q1lw4e:hover:active .fui-Icon-regular{display:inline;}"]
});
/**
* Apply styling to the BreadcrumbButton slots based on the state
*/
export const useBreadcrumbButtonStyles_unstable = state => {
'use no memo';
const styles = useStyles();
const iconStyles = useIconStyles();
const currentSizeMap = {
small: styles.currentSmall,
medium: styles.currentMedium,
large: styles.currentLarge
};
state.root.className = mergeClasses(breadcrumbButtonClassNames.root, styles[state.size], styles.root, state.current && currentSizeMap[state.size], state.current && styles.current, state.root.className);
if (state.icon) {
state.icon.className = mergeClasses(iconStyles.base, iconStyles[state.size], state.icon.className);
}
useButtonStyles_unstable(state);
return state;
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,114 @@
'use client';
import { makeStyles, mergeClasses } from '@griffel/react';
import { useButtonStyles_unstable, buttonClassNames } from '@fluentui/react-button';
import { tokens, typographyStyles } from '@fluentui/react-theme';
import { iconFilledClassName, iconRegularClassName } from '@fluentui/react-icons';
/**
* Static CSS class names used internally for the component slots.
*/ export const breadcrumbButtonClassNames = {
root: 'fui-BreadcrumbButton',
icon: 'fui-BreadcrumbButton__icon'
};
/**
* CSS variable names used internally for styling in the Breadcrumb.
*/ const breadcrumbCSSVars = {
breadcrumbIconSizeVar: '--fui-Breadcrumb--icon-size',
breadcrumbIconLineHeightVar: '--fui-Breadcrumb--icon-line-height'
};
const useIconStyles = makeStyles({
base: {
fontSize: `var(${breadcrumbCSSVars.breadcrumbIconSizeVar})`,
height: `var(${breadcrumbCSSVars.breadcrumbIconSizeVar})`,
lineHeight: `var(${breadcrumbCSSVars.breadcrumbIconLineHeightVar})`,
width: `var(${breadcrumbCSSVars.breadcrumbIconSizeVar})`,
marginRight: tokens.spacingHorizontalXS
},
small: {
[breadcrumbCSSVars.breadcrumbIconSizeVar]: '12px',
[breadcrumbCSSVars.breadcrumbIconLineHeightVar]: tokens.lineHeightBase200
},
medium: {
[breadcrumbCSSVars.breadcrumbIconSizeVar]: '16px',
[breadcrumbCSSVars.breadcrumbIconLineHeightVar]: tokens.lineHeightBase400
},
large: {
[breadcrumbCSSVars.breadcrumbIconSizeVar]: '20px',
[breadcrumbCSSVars.breadcrumbIconLineHeightVar]: tokens.lineHeightBase600
}
});
const defaultButtonStyles = {
backgroundColor: tokens.colorTransparentBackground,
color: tokens.colorNeutralForeground2,
cursor: 'auto'
};
const currentIconStyles = {
...defaultButtonStyles,
[`& .${buttonClassNames.icon}`]: {
color: 'unset'
},
[`& .${iconFilledClassName}`]: {
display: 'none'
},
[`& .${iconRegularClassName}`]: {
display: 'inline'
}
};
const useStyles = makeStyles({
root: {
minWidth: 'unset',
textWrap: 'nowrap'
},
small: {
height: '24px',
...typographyStyles.caption1,
padding: tokens.spacingHorizontalSNudge
},
medium: {
height: '32px',
...typographyStyles.body1,
padding: tokens.spacingHorizontalSNudge
},
large: {
height: '40px',
...typographyStyles.body2,
padding: tokens.spacingHorizontalS
},
current: {
':hover': {
...currentIconStyles
},
':hover:active': {
...currentIconStyles
},
':disabled': {
...currentIconStyles
}
},
currentSmall: {
...typographyStyles.caption1Strong
},
currentMedium: {
...typographyStyles.body1Strong
},
currentLarge: {
...typographyStyles.subtitle2
}
});
/**
* Apply styling to the BreadcrumbButton slots based on the state
*/ export const useBreadcrumbButtonStyles_unstable = (state)=>{
'use no memo';
const styles = useStyles();
const iconStyles = useIconStyles();
const currentSizeMap = {
small: styles.currentSmall,
medium: styles.currentMedium,
large: styles.currentLarge
};
state.root.className = mergeClasses(breadcrumbButtonClassNames.root, styles[state.size], styles.root, state.current && currentSizeMap[state.size], state.current && styles.current, state.root.className);
if (state.icon) {
state.icon.className = mergeClasses(iconStyles.base, iconStyles[state.size], state.icon.className);
}
useButtonStyles_unstable(state);
return state;
};

File diff suppressed because one or more lines are too long