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,26 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "TreeItemPersonaLayout", {
enumerable: true,
get: function() {
return TreeItemPersonaLayout;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _useTreeItemPersonaLayout = require("./useTreeItemPersonaLayout");
const _renderTreeItemPersonaLayout = require("./renderTreeItemPersonaLayout");
const _useTreeItemPersonaLayoutStylesstyles = require("./useTreeItemPersonaLayoutStyles.styles");
const _useTreeItemPersonaLayoutContextValues = require("./useTreeItemPersonaLayoutContextValues");
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const TreeItemPersonaLayout = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useTreeItemPersonaLayout.useTreeItemPersonaLayout_unstable)(props, ref);
(0, _useTreeItemPersonaLayoutStylesstyles.useTreeItemPersonaLayoutStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useTreeItemPersonaLayoutStyles_unstable')(state);
const contextValues = (0, _useTreeItemPersonaLayoutContextValues.useTreeItemPersonaLayoutContextValues_unstable)(state);
return (0, _renderTreeItemPersonaLayout.renderTreeItemPersonaLayout_unstable)(state, contextValues);
});
TreeItemPersonaLayout.displayName = 'TreeItemPersonaLayout';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/TreeItemPersonaLayout/TreeItemPersonaLayout.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useTreeItemPersonaLayout_unstable } from './useTreeItemPersonaLayout';\nimport { renderTreeItemPersonaLayout_unstable } from './renderTreeItemPersonaLayout';\nimport { useTreeItemPersonaLayoutStyles_unstable } from './useTreeItemPersonaLayoutStyles.styles';\nimport type { TreeItemPersonaLayoutProps } from './TreeItemPersonaLayout.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useTreeItemPersonaLayoutContextValues_unstable } from './useTreeItemPersonaLayoutContextValues';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * The `TreeItemPersonaLayout` component is used as a child of `TreeItem` to display a `TreeItem` with a media (typically an avatar) and a description.\n * It provides a more visually appealing representation of a `TreeItem` and is typically used to display a list of people or topics.\n * This component should only be used as a direct child of `TreeItem`.\n */\nexport const TreeItemPersonaLayout: ForwardRefComponent<TreeItemPersonaLayoutProps> = React.forwardRef((props, ref) => {\n const state = useTreeItemPersonaLayout_unstable(props, ref);\n\n useTreeItemPersonaLayoutStyles_unstable(state);\n useCustomStyleHook_unstable('useTreeItemPersonaLayoutStyles_unstable')(state);\n\n const contextValues = useTreeItemPersonaLayoutContextValues_unstable(state);\n\n return renderTreeItemPersonaLayout_unstable(state, contextValues);\n});\n\nTreeItemPersonaLayout.displayName = 'TreeItemPersonaLayout';\n"],"names":["React","useTreeItemPersonaLayout_unstable","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayoutStyles_unstable","useTreeItemPersonaLayoutContextValues_unstable","useCustomStyleHook_unstable","TreeItemPersonaLayout","forwardRef","props","ref","state","contextValues","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;0CACmB,6BAA6B;6CAC1B,gCAAgC;sDAC7B,0CAA0C;uDAGnC,0CAA0C;qCAC7D,kCAAkC;AAOvE,MAAMM,wBAAAA,WAAAA,GAAyEN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IAC7G,MAAMC,YAAQT,2DAAAA,EAAkCO,OAAOC;QAEvDN,6EAAAA,EAAwCO;QACxCL,gDAAAA,EAA4B,2CAA2CK;IAEvE,MAAMC,oBAAgBP,qFAAAA,EAA+CM;IAErE,WAAOR,iEAAAA,EAAqCQ,OAAOC;AACrD,GAAG;AAEHL,sBAAsBM,WAAW,GAAG"}

View File

@@ -0,0 +1,6 @@
/**
* State used in rendering TreeItemPersonaLayout
*/ "use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/TreeItemPersonaLayout/TreeItemPersonaLayout.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { AvatarContextValue, AvatarSize } from '@fluentui/react-avatar';\nimport { ButtonContextValue } from '@fluentui/react-button';\nimport { TreeItemLayoutSlots } from '../TreeItemLayout/TreeItemLayout.types';\n\nexport type TreeItemPersonaLayoutContextValues = {\n avatar: AvatarContextValue;\n};\n\nexport type TreeItemPersonaLayoutSlots = Pick<TreeItemLayoutSlots, 'actions' | 'aside' | 'expandIcon' | 'selector'> & {\n root: NonNullable<Slot<'div'>>;\n /**\n * Avatar to display.\n */\n media: NonNullable<Slot<'div'>>;\n /**\n * Content. Children of the root slot are automatically rendered here\n */\n main: NonNullable<Slot<'div'>>;\n /**\n * Secondary text that describes or complements the content\n */\n description?: Slot<'div'>;\n};\n\n/**\n * TreeItemPersonaLayout Props\n */\nexport type TreeItemPersonaLayoutProps = ComponentProps<Partial<TreeItemPersonaLayoutSlots>>;\n\n/**\n * State used in rendering TreeItemPersonaLayout\n */\nexport type TreeItemPersonaLayoutState = ComponentState<TreeItemPersonaLayoutSlots> & {\n avatarSize: AvatarSize;\n buttonContextValue: ButtonContextValue;\n};\n"],"names":[],"mappings":"AA8BA;;CAEC,GACD,WAGE"}

View File

@@ -0,0 +1,31 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
TreeItemPersonaLayout: function() {
return _TreeItemPersonaLayout.TreeItemPersonaLayout;
},
renderTreeItemPersonaLayout_unstable: function() {
return _renderTreeItemPersonaLayout.renderTreeItemPersonaLayout_unstable;
},
treeItemPersonaLayoutClassNames: function() {
return _useTreeItemPersonaLayoutStylesstyles.treeItemPersonaLayoutClassNames;
},
useTreeItemPersonaLayoutStyles_unstable: function() {
return _useTreeItemPersonaLayoutStylesstyles.useTreeItemPersonaLayoutStyles_unstable;
},
useTreeItemPersonaLayout_unstable: function() {
return _useTreeItemPersonaLayout.useTreeItemPersonaLayout_unstable;
}
});
const _TreeItemPersonaLayout = require("./TreeItemPersonaLayout");
const _renderTreeItemPersonaLayout = require("./renderTreeItemPersonaLayout");
const _useTreeItemPersonaLayout = require("./useTreeItemPersonaLayout");
const _useTreeItemPersonaLayoutStylesstyles = require("./useTreeItemPersonaLayoutStyles.styles");

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/TreeItemPersonaLayout/index.ts"],"sourcesContent":["export { TreeItemPersonaLayout } from './TreeItemPersonaLayout';\nexport type {\n TreeItemPersonaLayoutContextValues,\n TreeItemPersonaLayoutProps,\n TreeItemPersonaLayoutSlots,\n TreeItemPersonaLayoutState,\n} from './TreeItemPersonaLayout.types';\nexport { renderTreeItemPersonaLayout_unstable } from './renderTreeItemPersonaLayout';\nexport { useTreeItemPersonaLayout_unstable } from './useTreeItemPersonaLayout';\nexport {\n treeItemPersonaLayoutClassNames,\n useTreeItemPersonaLayoutStyles_unstable,\n} from './useTreeItemPersonaLayoutStyles.styles';\n"],"names":["TreeItemPersonaLayout","renderTreeItemPersonaLayout_unstable","useTreeItemPersonaLayout_unstable","treeItemPersonaLayoutClassNames","useTreeItemPersonaLayoutStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,4CAAqB;;;eAOrBC,iEAAoC;;;eAG3CE,qEAA+B;;;eAC/BC,6EAAuC;;;eAHhCF,2DAAiC;;;uCARJ,0BAA0B;6CAOX,gCAAgC;0CACnC,6BAA6B;sDAIxE,0CAA0C"}

View File

@@ -0,0 +1,36 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderTreeItemPersonaLayout_unstable", {
enumerable: true,
get: function() {
return renderTreeItemPersonaLayout_unstable;
}
});
const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
const _reactutilities = require("@fluentui/react-utilities");
const _reactavatar = require("@fluentui/react-avatar");
const _reactbutton = require("@fluentui/react-button");
const renderTreeItemPersonaLayout_unstable = (state, contextValues)=>{
(0, _reactutilities.assertSlots)(state);
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(state.root, {
children: [
state.expandIcon && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.expandIcon, {}),
state.selector && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.selector, {}),
/*#__PURE__*/ (0, _jsxruntime.jsx)(_reactavatar.AvatarContextProvider, {
value: contextValues.avatar,
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(state.media, {})
}),
/*#__PURE__*/ (0, _jsxruntime.jsx)(state.main, {}),
state.description && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.description, {}),
/*#__PURE__*/ (0, _jsxruntime.jsxs)(_reactbutton.ButtonContextProvider, {
value: state.buttonContextValue,
children: [
state.actions && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.actions, {}),
state.aside && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.aside, {})
]
})
]
});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/TreeItemPersonaLayout/renderTreeItemPersonaLayout.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport type {\n TreeItemPersonaLayoutState,\n TreeItemPersonaLayoutContextValues,\n TreeItemPersonaLayoutSlots,\n} from './TreeItemPersonaLayout.types';\nimport { AvatarContextProvider } from '@fluentui/react-avatar';\nimport { ButtonContextProvider } from '@fluentui/react-button';\n\n/**\n * Render the final JSX of TreeItemPersonaLayout\n */\nexport const renderTreeItemPersonaLayout_unstable = (\n state: TreeItemPersonaLayoutState,\n contextValues: TreeItemPersonaLayoutContextValues,\n): JSXElement => {\n assertSlots<TreeItemPersonaLayoutSlots>(state);\n\n return (\n <state.root>\n {state.expandIcon && <state.expandIcon />}\n {state.selector && <state.selector />}\n <AvatarContextProvider value={contextValues.avatar}>\n <state.media />\n </AvatarContextProvider>\n <state.main />\n {state.description && <state.description />}\n <ButtonContextProvider value={state.buttonContextValue}>\n {state.actions && <state.actions />}\n {state.aside && <state.aside />}\n </ButtonContextProvider>\n </state.root>\n );\n};\n"],"names":["assertSlots","AvatarContextProvider","ButtonContextProvider","renderTreeItemPersonaLayout_unstable","state","contextValues","root","expandIcon","selector","value","avatar","media","main","description","buttonContextValue","actions","aside"],"mappings":";;;;+BAeaG;;;;;;4BAdb,iCAAiD;gCACrB,4BAA4B;6BAOlB,yBAAyB;6BACzB,yBAAyB;AAKxD,6CAA6C,CAClDC,OACAC;QAEAL,2BAAAA,EAAwCI;IAExC,OAAA,WAAA,OACE,gBAAA,EAACA,MAAME,IAAI,EAAA;;YACRF,MAAMG,UAAU,IAAA,WAAA,OAAI,eAAA,EAACH,MAAMG,UAAU,EAAA,CAAA;YACrCH,MAAMI,QAAQ,IAAA,WAAA,OAAI,eAAA,EAACJ,MAAMI,QAAQ,EAAA,CAAA;8BAClC,eAAA,EAACP,kCAAAA,EAAAA;gBAAsBQ,OAAOJ,cAAcK,MAAM;0BAChD,WAAA,OAAA,eAAA,EAACN,MAAMO,KAAK,EAAA,CAAA;;0BAEd,mBAAA,EAACP,MAAMQ,IAAI,EAAA,CAAA;YACVR,MAAMS,WAAW,IAAA,WAAA,OAAI,eAAA,EAACT,MAAMS,WAAW,EAAA,CAAA;8BACxC,gBAAA,EAACX,kCAAAA,EAAAA;gBAAsBO,OAAOL,MAAMU,kBAAkB;;oBACnDV,MAAMW,OAAO,IAAA,WAAA,OAAI,eAAA,EAACX,MAAMW,OAAO,EAAA,CAAA;oBAC/BX,MAAMY,KAAK,IAAA,WAAA,OAAI,eAAA,EAACZ,MAAMY,KAAK,EAAA,CAAA;;;;;AAIpC,EAAE"}

View File

@@ -0,0 +1,56 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useTreeItemPersonaLayout_unstable", {
enumerable: true,
get: function() {
return useTreeItemPersonaLayout_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactutilities = require("@fluentui/react-utilities");
const _contexts = require("../../contexts");
const _tokens = require("../../utils/tokens");
const _useTreeItemLayout = require("../TreeItemLayout/useTreeItemLayout");
const _reactcheckbox = require("@fluentui/react-checkbox");
const _reactradio = require("@fluentui/react-radio");
const useTreeItemPersonaLayout_unstable = (props, ref)=>{
const { media, children, main, description } = props;
const treeItemLayoutState = (0, _useTreeItemLayout.useTreeItemLayout_unstable)({
...props,
iconBefore: null,
iconAfter: null
}, ref);
const size = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.size);
const selectionMode = (0, _contexts.useTreeContext_unstable)((ctx)=>ctx.selectionMode);
return {
...treeItemLayoutState,
components: {
expandIcon: 'div',
main: 'div',
description: 'div',
root: 'div',
media: 'div',
aside: 'div',
actions: 'div',
// Casting here to a union between checkbox and radio
selector: selectionMode === 'multiselect' ? _reactcheckbox.Checkbox : _reactradio.Radio
},
avatarSize: _tokens.treeAvatarSize[size],
main: _reactutilities.slot.always(main, {
defaultProps: {
children
},
elementType: 'div'
}),
media: _reactutilities.slot.always(media, {
elementType: 'div'
}),
description: _reactutilities.slot.optional(description, {
elementType: 'div'
})
};
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/TreeItemPersonaLayout/useTreeItemPersonaLayout.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { TreeItemPersonaLayoutProps, TreeItemPersonaLayoutState } from './TreeItemPersonaLayout.types';\nimport { slot } from '@fluentui/react-utilities';\nimport { useTreeContext_unstable } from '../../contexts';\nimport { treeAvatarSize } from '../../utils/tokens';\nimport { useTreeItemLayout_unstable } from '../TreeItemLayout/useTreeItemLayout';\nimport { Checkbox, CheckboxProps } from '@fluentui/react-checkbox';\nimport { Radio, RadioProps } from '@fluentui/react-radio';\n\n/**\n * Create the state required to render TreeItemPersonaLayout.\n *\n * The returned state can be modified with hooks such as useTreeItemPersonaLayoutStyles_unstable,\n * before being passed to renderTreeItemPersonaLayout_unstable.\n *\n * @param props - props from this instance of TreeItemPersonaLayout\n * @param ref - reference to root HTMLElement of TreeItemPersonaLayout\n */\nexport const useTreeItemPersonaLayout_unstable = (\n props: TreeItemPersonaLayoutProps,\n ref: React.Ref<HTMLSpanElement>,\n): TreeItemPersonaLayoutState => {\n const { media, children, main, description } = props;\n\n const treeItemLayoutState = useTreeItemLayout_unstable(\n {\n ...props,\n iconBefore: null,\n iconAfter: null,\n },\n ref,\n );\n\n const size = useTreeContext_unstable(ctx => ctx.size);\n const selectionMode = useTreeContext_unstable(ctx => ctx.selectionMode);\n\n return {\n ...treeItemLayoutState,\n components: {\n expandIcon: 'div',\n main: 'div',\n description: 'div',\n root: 'div',\n media: 'div',\n aside: 'div',\n actions: 'div',\n // Casting here to a union between checkbox and radio\n selector: (selectionMode === 'multiselect' ? Checkbox : Radio) as React.ElementType<CheckboxProps | RadioProps>,\n },\n avatarSize: treeAvatarSize[size],\n main: slot.always(main, { defaultProps: { children }, elementType: 'div' }),\n media: slot.always(media, { elementType: 'div' }),\n description: slot.optional(description, { elementType: 'div' }),\n };\n};\n"],"names":["React","slot","useTreeContext_unstable","treeAvatarSize","useTreeItemLayout_unstable","Checkbox","Radio","useTreeItemPersonaLayout_unstable","props","ref","media","children","main","description","treeItemLayoutState","iconBefore","iconAfter","size","ctx","selectionMode","components","expandIcon","root","aside","actions","selector","avatarSize","always","defaultProps","elementType","optional"],"mappings":"AAAA;;;;;+BAoBaO;;;;;;;iEAlBU,QAAQ;gCAEV,4BAA4B;0BACT,iBAAiB;wBAC1B,qBAAqB;mCACT,sCAAsC;+BACzC,2BAA2B;4BACjC,wBAAwB;AAWnD,0CAA0C,CAC/CC,OACAC;IAEA,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,IAAI,EAAEC,WAAW,EAAE,GAAGL;IAE/C,MAAMM,0BAAsBV,6CAAAA,EAC1B;QACE,GAAGI,KAAK;QACRO,YAAY;QACZC,WAAW;IACb,GACAP;IAGF,MAAMQ,WAAOf,iCAAAA,EAAwBgB,CAAAA,MAAOA,IAAID,IAAI;IACpD,MAAME,oBAAgBjB,iCAAAA,EAAwBgB,CAAAA,MAAOA,IAAIC,aAAa;IAEtE,OAAO;QACL,GAAGL,mBAAmB;QACtBM,YAAY;YACVC,YAAY;YACZT,MAAM;YACNC,aAAa;YACbS,MAAM;YACNZ,OAAO;YACPa,OAAO;YACPC,SAAS;YACT,qDAAqD;YACrDC,UAAWN,kBAAkB,gBAAgBd,uBAAAA,GAAWC,iBAAAA;QAC1D;QACAoB,YAAYvB,sBAAc,CAACc,KAAK;QAChCL,MAAMX,oBAAAA,CAAK0B,MAAM,CAACf,MAAM;YAAEgB,cAAc;gBAAEjB;YAAS;YAAGkB,aAAa;QAAM;QACzEnB,OAAOT,oBAAAA,CAAK0B,MAAM,CAACjB,OAAO;YAAEmB,aAAa;QAAM;QAC/ChB,aAAaZ,oBAAAA,CAAK6B,QAAQ,CAACjB,aAAa;YAAEgB,aAAa;QAAM;IAC/D;AACF,EAAE"}

View File

@@ -0,0 +1,24 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useTreeItemPersonaLayoutContextValues_unstable", {
enumerable: true,
get: function() {
return useTreeItemPersonaLayoutContextValues_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
function useTreeItemPersonaLayoutContextValues_unstable(state) {
const { avatarSize } = state;
const avatar = _react.useMemo(()=>({
size: avatarSize
}), [
avatarSize
]);
return {
avatar
};
}

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/TreeItemPersonaLayout/useTreeItemPersonaLayoutContextValues.ts"],"sourcesContent":["'use client';\n\nimport type { AvatarContextValue } from '@fluentui/react-avatar';\nimport * as React from 'react';\nimport type { TreeItemPersonaLayoutState, TreeItemPersonaLayoutContextValues } from './TreeItemPersonaLayout.types';\n\nexport function useTreeItemPersonaLayoutContextValues_unstable(\n state: TreeItemPersonaLayoutState,\n): TreeItemPersonaLayoutContextValues {\n const { avatarSize } = state;\n\n const avatar = React.useMemo<AvatarContextValue>(() => ({ size: avatarSize }), [avatarSize]);\n\n return { avatar };\n}\n"],"names":["React","useTreeItemPersonaLayoutContextValues_unstable","state","avatarSize","avatar","useMemo","size"],"mappings":"AAAA;;;;;;;;;;;;iEAGuB,QAAQ;AAGxB,SAASC,+CACdC,KAAiC;IAEjC,MAAM,EAAEC,UAAU,EAAE,GAAGD;IAEvB,MAAME,SAASJ,OAAMK,OAAO,CAAqB,IAAO,CAAA;YAAEC,MAAMH;SAAW,CAAA,EAAI;QAACA;KAAW;IAE3F,OAAO;QAAEC;IAAO;AAClB"}

View File

@@ -0,0 +1,195 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
treeItemPersonaLayoutClassNames: function() {
return treeItemPersonaLayoutClassNames;
},
useTreeItemPersonaLayoutStyles_unstable: function() {
return useTreeItemPersonaLayoutStyles_unstable;
}
});
const _react = require("@griffel/react");
const _treeItemContext = require("../../contexts/treeItemContext");
const _treeContext = require("../../contexts/treeContext");
const treeItemPersonaLayoutClassNames = {
root: 'fui-TreeItemPersonaLayout',
media: 'fui-TreeItemPersonaLayout__media',
description: 'fui-TreeItemPersonaLayout__description',
main: 'fui-TreeItemPersonaLayout__main',
expandIcon: 'fui-TreeItemPersonaLayout__expandIcon',
aside: 'fui-TreeItemPersonaLayout__aside',
actions: 'fui-TreeItemPersonaLayout__actions',
selector: 'fui-TreeItemPersonaLayout__selector'
};
const useRootBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("r1r98egg", null, [
".r1r98egg{display:grid;grid-template-rows:1fr auto;grid-template-columns:auto auto 1fr auto;grid-template-areas:\"expandIcon media main aside\" \"expandIcon media description aside\";align-items:center;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase300);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase300);}",
".r1r98egg:active{color:var(--colorNeutralForeground2Pressed);background-color:var(--colorSubtleBackgroundPressed);}",
".r1r98egg:active .fui-TreeItemPersonaLayout__expandIcon{color:var(--colorNeutralForeground3Pressed);}",
".r1r98egg:hover{color:var(--colorNeutralForeground2Hover);background-color:var(--colorSubtleBackgroundHover);}",
".r1r98egg:hover .fui-TreeItemPersonaLayout__expandIcon{color:var(--colorNeutralForeground3Hover);}"
]);
/**
* Styles for the root slot
*/ const useRootStyles = /*#__PURE__*/ (0, _react.__styles)({
leaf: {
uwmqm3: [
"f1k1erfc",
"faevyjx"
]
},
branch: {
uwmqm3: [
"fo100m9",
"f6yw3pu"
]
},
medium: {
Bahqtrf: "fk6fouc",
Be2twd7: "fkhj508",
Bhrd7zp: "figsok6",
Bg96gwp: "f1i3iumi"
},
small: {
sshi5w: "f1pha7fy",
Bahqtrf: "fk6fouc",
Be2twd7: "fy9rknc",
Bhrd7zp: "figsok6",
Bg96gwp: "fwrc4pm"
},
subtle: {},
"subtle-alpha": {
Jwef8y: "f146ro5n",
ecr2s2: "fkam630"
},
transparent: {
De3pzq: "f1c21dwh",
Jwef8y: "fjxutwb",
ecr2s2: "fophhak"
}
}, {
d: [
".f1k1erfc{padding-left:calc(var(--fluent-TreeItem--level, 1) * var(--spacingHorizontalXXL));}",
".faevyjx{padding-right:calc(var(--fluent-TreeItem--level, 1) * var(--spacingHorizontalXXL));}",
".fo100m9{padding-left:calc((var(--fluent-TreeItem--level, 1) - 1) * var(--spacingHorizontalXXL));}",
".f6yw3pu{padding-right:calc((var(--fluent-TreeItem--level, 1) - 1) * var(--spacingHorizontalXXL));}",
".fk6fouc{font-family:var(--fontFamilyBase);}",
".fkhj508{font-size:var(--fontSizeBase300);}",
".figsok6{font-weight:var(--fontWeightRegular);}",
".f1i3iumi{line-height:var(--lineHeightBase300);}",
".f1pha7fy{min-height:24px;}",
".fy9rknc{font-size:var(--fontSizeBase200);}",
".fwrc4pm{line-height:var(--lineHeightBase200);}",
".f1c21dwh{background-color:var(--colorTransparentBackground);}"
],
h: [
".f146ro5n:hover{background-color:var(--colorSubtleBackgroundLightAlphaHover);}",
".fjxutwb:hover{background-color:var(--colorTransparentBackgroundHover);}"
],
a: [
".fkam630:active{background-color:var(--colorSubtleBackgroundLightAlphaPressed);}",
".fophhak:active{background-color:var(--colorTransparentBackgroundPressed);}"
]
});
/**
* Styles for the expand icon slot
*/ const useMediaBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("rkcde6g", "r1e986zr", [
".rkcde6g{display:flex;align-items:center;width:32px;height:32px;grid-area:media;padding:0 var(--spacingHorizontalXS) 0 var(--spacingHorizontalXXS);}",
".r1e986zr{display:flex;align-items:center;width:32px;height:32px;grid-area:media;padding:0 var(--spacingHorizontalXXS) 0 var(--spacingHorizontalXS);}"
]);
const useMainBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("r1qjtz99", "rob5fcp", [
".r1qjtz99{grid-area:main;padding:var(--spacingVerticalMNudge) var(--spacingHorizontalXS) var(--spacingVerticalMNudge) var(--spacingHorizontalS);}",
".rob5fcp{grid-area:main;padding:var(--spacingVerticalMNudge) var(--spacingHorizontalS) var(--spacingVerticalMNudge) var(--spacingHorizontalXS);}"
]);
const useMainStyles = /*#__PURE__*/ (0, _react.__styles)({
withDescription: {
Byoj8tv: 0,
uwmqm3: 0,
z189sj: 0,
z8tnut: 0,
B0ocmuz: [
"f1625emv",
"f5y9hxg"
]
}
}, {
d: [
[
".f1625emv{padding:var(--spacingVerticalMNudge) var(--spacingHorizontalXS) 0 var(--spacingHorizontalS);}",
{
p: -1
}
],
[
".f5y9hxg{padding:var(--spacingVerticalMNudge) var(--spacingHorizontalS) 0 var(--spacingHorizontalXS);}",
{
p: -1
}
]
]
});
const useDescriptionBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("r1bnsn1b", "r13x7gq", [
".r1bnsn1b{grid-area:description;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase200);padding:0 var(--spacingHorizontalXS) var(--spacingVerticalMNudge) var(--spacingHorizontalS);}",
".r13x7gq{grid-area:description;font-family:var(--fontFamilyBase);font-size:var(--fontSizeBase200);font-weight:var(--fontWeightRegular);line-height:var(--lineHeightBase200);padding:0 var(--spacingHorizontalS) var(--spacingVerticalMNudge) var(--spacingHorizontalXS);}"
]);
/**
* Styles for the action icon slot
*/ const useActionsBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("rzvs2in", "r17h8a29", [
".rzvs2in{display:flex;margin-left:auto;position:relative;z-index:1;grid-area:aside;padding:0 var(--spacingHorizontalS);}",
".r17h8a29{display:flex;margin-right:auto;position:relative;z-index:1;grid-area:aside;padding:0 var(--spacingHorizontalS);}"
]);
/**
* Styles for the action icon slot
*/ const useAsideBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("r1825u21", "rezy0yk", [
".r1825u21{display:flex;margin-left:auto;align-items:center;z-index:0;grid-area:aside;padding:0 var(--spacingHorizontalM);gap:var(--spacingHorizontalXS);}",
".rezy0yk{display:flex;margin-right:auto;align-items:center;z-index:0;grid-area:aside;padding:0 var(--spacingHorizontalM);gap:var(--spacingHorizontalXS);}"
]);
/**
* Styles for the expand icon slot
*/ const useExpandIconBaseStyles = /*#__PURE__*/ (0, _react.__resetStyles)("rn61xvs", null, [
".rn61xvs{display:flex;align-items:center;justify-content:center;min-width:24px;box-sizing:border-box;color:var(--colorNeutralForeground3);grid-area:expandIcon;flex:0 0 auto;padding:var(--spacingVerticalXS) 0;}"
]);
const useTreeItemPersonaLayoutStyles_unstable = (state)=>{
'use no memo';
const rootBaseStyles = useRootBaseStyles();
const rootStyles = useRootStyles();
const mediaBaseStyles = useMediaBaseStyles();
const descriptionBaseStyles = useDescriptionBaseStyles();
const actionsBaseStyles = useActionsBaseStyles();
const asideBaseStyles = useAsideBaseStyles();
const expandIconBaseStyles = useExpandIconBaseStyles();
const mainBaseStyles = useMainBaseStyles();
const mainStyles = useMainStyles();
const size = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.size);
const appearance = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.appearance);
const itemType = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType);
state.root.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.root, rootBaseStyles, rootStyles[itemType], rootStyles[appearance], rootStyles[size], state.root.className);
state.media.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);
if (state.main) {
state.main.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.main, mainBaseStyles, state.description && mainStyles.withDescription, state.main.className);
}
if (state.description) {
state.description.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.description, descriptionBaseStyles, state.description.className);
}
if (state.actions) {
state.actions.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.actions, actionsBaseStyles, state.actions.className);
}
if (state.aside) {
state.aside.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);
}
if (state.expandIcon) {
state.expandIcon.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.expandIcon, expandIconBaseStyles, state.expandIcon.className);
}
if (state.selector) {
state.selector.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.selector, state.selector.className);
}
return state;
};

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,192 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
function _export(target, all) {
for(var name in all)Object.defineProperty(target, name, {
enumerable: true,
get: all[name]
});
}
_export(exports, {
treeItemPersonaLayoutClassNames: function() {
return treeItemPersonaLayoutClassNames;
},
useTreeItemPersonaLayoutStyles_unstable: function() {
return useTreeItemPersonaLayoutStyles_unstable;
}
});
const _react = require("@griffel/react");
const _reacttheme = require("@fluentui/react-theme");
const _tokens = require("../../utils/tokens");
const _treeItemContext = require("../../contexts/treeItemContext");
const _treeContext = require("../../contexts/treeContext");
const treeItemPersonaLayoutClassNames = {
root: 'fui-TreeItemPersonaLayout',
media: 'fui-TreeItemPersonaLayout__media',
description: 'fui-TreeItemPersonaLayout__description',
main: 'fui-TreeItemPersonaLayout__main',
expandIcon: 'fui-TreeItemPersonaLayout__expandIcon',
aside: 'fui-TreeItemPersonaLayout__aside',
actions: 'fui-TreeItemPersonaLayout__actions',
selector: 'fui-TreeItemPersonaLayout__selector'
};
const useRootBaseStyles = (0, _react.makeResetStyles)({
display: 'grid',
gridTemplateRows: '1fr auto',
gridTemplateColumns: 'auto auto 1fr auto',
gridTemplateAreas: `
"expandIcon media main aside"
"expandIcon media description aside"
`,
alignItems: 'center',
..._reacttheme.typographyStyles.body1,
':active': {
color: _reacttheme.tokens.colorNeutralForeground2Pressed,
backgroundColor: _reacttheme.tokens.colorSubtleBackgroundPressed,
// TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling
[`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {
color: _reacttheme.tokens.colorNeutralForeground3Pressed
}
},
':hover': {
color: _reacttheme.tokens.colorNeutralForeground2Hover,
backgroundColor: _reacttheme.tokens.colorSubtleBackgroundHover,
// TODO: stop using treeItemPersonaLayoutClassNames.expandIcon for styling
[`& .${treeItemPersonaLayoutClassNames.expandIcon}`]: {
color: _reacttheme.tokens.colorNeutralForeground3Hover
}
}
});
/**
* Styles for the root slot
*/ const useRootStyles = (0, _react.makeStyles)({
leaf: {
paddingLeft: `calc(var(${_tokens.treeItemLevelToken}, 1) * ${_reacttheme.tokens.spacingHorizontalXXL})`
},
branch: {
paddingLeft: `calc((var(${_tokens.treeItemLevelToken}, 1) - 1) * ${_reacttheme.tokens.spacingHorizontalXXL})`
},
// Size variations
medium: {
..._reacttheme.typographyStyles.body1
},
small: {
minHeight: '24px',
..._reacttheme.typographyStyles.caption1
},
// Appearance variations
subtle: {},
'subtle-alpha': {
':hover': {
backgroundColor: _reacttheme.tokens.colorSubtleBackgroundLightAlphaHover
},
':active': {
backgroundColor: _reacttheme.tokens.colorSubtleBackgroundLightAlphaPressed
}
},
transparent: {
backgroundColor: _reacttheme.tokens.colorTransparentBackground,
':hover': {
backgroundColor: _reacttheme.tokens.colorTransparentBackgroundHover
},
':active': {
backgroundColor: _reacttheme.tokens.colorTransparentBackgroundPressed
}
}
});
/**
* Styles for the expand icon slot
*/ const useMediaBaseStyles = (0, _react.makeResetStyles)({
display: 'flex',
alignItems: 'center',
width: '32px',
height: '32px',
gridArea: 'media',
padding: `0 ${_reacttheme.tokens.spacingHorizontalXS} 0 ${_reacttheme.tokens.spacingHorizontalXXS}`
});
const useMainBaseStyles = (0, _react.makeResetStyles)({
gridArea: 'main',
padding: `${_reacttheme.tokens.spacingVerticalMNudge} ${_reacttheme.tokens.spacingHorizontalXS} ${_reacttheme.tokens.spacingVerticalMNudge} ${_reacttheme.tokens.spacingHorizontalS}`
});
const useMainStyles = (0, _react.makeStyles)({
withDescription: {
padding: `${_reacttheme.tokens.spacingVerticalMNudge} ${_reacttheme.tokens.spacingHorizontalXS} 0 ${_reacttheme.tokens.spacingHorizontalS}`
}
});
const useDescriptionBaseStyles = (0, _react.makeResetStyles)({
gridArea: 'description',
..._reacttheme.typographyStyles.caption1,
padding: `0 ${_reacttheme.tokens.spacingHorizontalXS} ${_reacttheme.tokens.spacingVerticalMNudge} ${_reacttheme.tokens.spacingHorizontalS}`
});
/**
* Styles for the action icon slot
*/ const useActionsBaseStyles = (0, _react.makeResetStyles)({
display: 'flex',
marginLeft: 'auto',
position: 'relative',
zIndex: 1,
gridArea: 'aside',
padding: `0 ${_reacttheme.tokens.spacingHorizontalS}`
});
/**
* Styles for the action icon slot
*/ const useAsideBaseStyles = (0, _react.makeResetStyles)({
display: 'flex',
marginLeft: 'auto',
alignItems: 'center',
zIndex: 0,
gridArea: 'aside',
padding: `0 ${_reacttheme.tokens.spacingHorizontalM}`,
gap: _reacttheme.tokens.spacingHorizontalXS
});
/**
* Styles for the expand icon slot
*/ const useExpandIconBaseStyles = (0, _react.makeResetStyles)({
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
minWidth: '24px',
boxSizing: 'border-box',
color: _reacttheme.tokens.colorNeutralForeground3,
gridArea: 'expandIcon',
flex: `0 0 auto`,
padding: `${_reacttheme.tokens.spacingVerticalXS} 0`
});
const useTreeItemPersonaLayoutStyles_unstable = (state)=>{
'use no memo';
const rootBaseStyles = useRootBaseStyles();
const rootStyles = useRootStyles();
const mediaBaseStyles = useMediaBaseStyles();
const descriptionBaseStyles = useDescriptionBaseStyles();
const actionsBaseStyles = useActionsBaseStyles();
const asideBaseStyles = useAsideBaseStyles();
const expandIconBaseStyles = useExpandIconBaseStyles();
const mainBaseStyles = useMainBaseStyles();
const mainStyles = useMainStyles();
const size = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.size);
const appearance = (0, _treeContext.useTreeContext_unstable)((ctx)=>ctx.appearance);
const itemType = (0, _treeItemContext.useTreeItemContext_unstable)((ctx)=>ctx.itemType);
state.root.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.root, rootBaseStyles, rootStyles[itemType], rootStyles[appearance], rootStyles[size], state.root.className);
state.media.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.media, mediaBaseStyles, state.media.className);
if (state.main) {
state.main.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.main, mainBaseStyles, state.description && mainStyles.withDescription, state.main.className);
}
if (state.description) {
state.description.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.description, descriptionBaseStyles, state.description.className);
}
if (state.actions) {
state.actions.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.actions, actionsBaseStyles, state.actions.className);
}
if (state.aside) {
state.aside.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.aside, asideBaseStyles, state.aside.className);
}
if (state.expandIcon) {
state.expandIcon.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.expandIcon, expandIconBaseStyles, state.expandIcon.className);
}
if (state.selector) {
state.selector.className = (0, _react.mergeClasses)(treeItemPersonaLayoutClassNames.selector, state.selector.className);
}
return state;
};

File diff suppressed because one or more lines are too long