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,24 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "AppItemStatic", {
enumerable: true,
get: function() {
return AppItemStatic;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
const _useAppItemStatic = require("./useAppItemStatic");
const _renderAppItemStatic = require("./renderAppItemStatic");
const _useAppItemStaticStylesstyles = require("./useAppItemStaticStyles.styles");
const AppItemStatic = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useAppItemStatic.useAppItemStatic_unstable)(props, ref);
(0, _useAppItemStaticStylesstyles.useAppItemStaticStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useAppItemStaticStyles_unstable')(state);
return (0, _renderAppItemStatic.renderAppItemStatic_unstable)(state);
});
AppItemStatic.displayName = 'AppItemStatic';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/AppItemStatic/AppItemStatic.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\nimport { useAppItemStatic_unstable } from './useAppItemStatic';\nimport { renderAppItemStatic_unstable } from './renderAppItemStatic';\nimport { useAppItemStaticStyles_unstable } from './useAppItemStaticStyles.styles';\nimport type { AppItemStaticProps } from './AppItemStatic.types';\n\n/**\n * AppItemStatic component - Static application item in the navigation menu.\n */\nexport const AppItemStatic: ForwardRefComponent<AppItemStaticProps> = React.forwardRef((props, ref) => {\n const state = useAppItemStatic_unstable(props, ref);\n\n useAppItemStaticStyles_unstable(state);\n useCustomStyleHook_unstable('useAppItemStaticStyles_unstable')(state);\n\n return renderAppItemStatic_unstable(state);\n});\n\nAppItemStatic.displayName = 'AppItemStatic';\n"],"names":["React","useCustomStyleHook_unstable","useAppItemStatic_unstable","renderAppItemStatic_unstable","useAppItemStaticStyles_unstable","AppItemStatic","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;qCAEa,kCAAkC;kCAEpC,qBAAqB;qCAClB,wBAAwB;8CACrB,kCAAkC;AAM3E,MAAMK,gBAAAA,WAAAA,GAAyDL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IAC7F,MAAMC,YAAQP,2CAAAA,EAA0BK,OAAOC;QAE/CJ,6DAAAA,EAAgCK;QAChCR,gDAAAA,EAA4B,mCAAmCQ;IAE/D,WAAON,iDAAAA,EAA6BM;AACtC,GAAG;AAEHJ,cAAcK,WAAW,GAAG"}

View File

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

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/AppItemStatic/AppItemStatic.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { NavDensity } from '../Nav/Nav.types';\n\nexport type AppItemStaticSlots = {\n /**\n * The root element of the AppItemStatic.\n */\n root: Slot<'div'>;\n /**\n * Icon that renders before the content.\n */\n icon?: Slot<'span'>;\n};\n\n/**\n * AppItemStatic Props\n */\nexport type AppItemStaticProps = ComponentProps<AppItemStaticSlots> & {};\n\n/**\n * State used in rendering AppItemStatic\n */\nexport type AppItemStaticState = ComponentState<AppItemStaticSlots> & {\n /**\n * The density of the Nav\n *\n * @default 'medium'\n */\n density: NavDensity;\n};\n"],"names":[],"mappings":"AAmBA;;CAEC,GACD,WAOE"}

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, {
AppItemStatic: function() {
return _AppItemStatic.AppItemStatic;
},
appItemStaticClassNames: function() {
return _useAppItemStaticStylesstyles.appItemStaticClassNames;
},
renderAppItemStatic_unstable: function() {
return _renderAppItemStatic.renderAppItemStatic_unstable;
},
useAppItemStaticStyles_unstable: function() {
return _useAppItemStaticStylesstyles.useAppItemStaticStyles_unstable;
},
useAppItemStatic_unstable: function() {
return _useAppItemStatic.useAppItemStatic_unstable;
}
});
const _AppItemStatic = require("./AppItemStatic");
const _renderAppItemStatic = require("./renderAppItemStatic");
const _useAppItemStatic = require("./useAppItemStatic");
const _useAppItemStaticStylesstyles = require("./useAppItemStaticStyles.styles");

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/AppItemStatic/index.ts"],"sourcesContent":["export { AppItemStatic } from './AppItemStatic';\nexport type { AppItemStaticProps, AppItemStaticSlots, AppItemStaticState } from './AppItemStatic.types';\nexport { renderAppItemStatic_unstable } from './renderAppItemStatic';\nexport { useAppItemStatic_unstable } from './useAppItemStatic';\nexport { appItemStaticClassNames, useAppItemStaticStyles_unstable } from './useAppItemStaticStyles.styles';\n"],"names":["AppItemStatic","renderAppItemStatic_unstable","useAppItemStatic_unstable","appItemStaticClassNames","useAppItemStaticStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,4BAAa;;;eAIbG,qDAAuB;;;eAFvBF,iDAA4B;;;eAEHG,6DAA+B;;;eADxDF,2CAAyB;;;+BAHJ,kBAAkB;qCAEH,wBAAwB;kCAC3B,qBAAqB;8CACU,kCAAkC"}

View File

@@ -0,0 +1,21 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderAppItemStatic_unstable", {
enumerable: true,
get: function() {
return renderAppItemStatic_unstable;
}
});
const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
const _reactutilities = require("@fluentui/react-utilities");
const renderAppItemStatic_unstable = (state)=>{
(0, _reactutilities.assertSlots)(state);
return /*#__PURE__*/ (0, _jsxruntime.jsxs)(state.root, {
children: [
state.icon && /*#__PURE__*/ (0, _jsxruntime.jsx)(state.icon, {}),
state.root.children
]
});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/AppItemStatic/renderAppItemStatic.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { JSXElement } from '@fluentui/react-utilities';\nimport type { AppItemStaticState, AppItemStaticSlots } from './AppItemStatic.types';\n\n/**\n * Render the final JSX of AppItemStatic\n */\nexport const renderAppItemStatic_unstable = (state: AppItemStaticState): JSXElement => {\n assertSlots<AppItemStaticSlots>(state);\n\n return (\n <state.root>\n {state.icon && <state.icon />}\n {state.root.children}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderAppItemStatic_unstable","state","root","icon","children"],"mappings":";;;;+BAUaC;;;;;;4BATb,iCAAiD;gCAErB,4BAA4B;AAOjD,qCAAqC,CAACC;QAC3CF,2BAAAA,EAAgCE;IAEhC,OAAA,WAAA,OACE,gBAAA,EAACA,MAAMC,IAAI,EAAA;;YACRD,MAAME,IAAI,IAAA,WAAA,OAAI,eAAA,EAACF,MAAME,IAAI,EAAA,CAAA;YACzBF,MAAMC,IAAI,CAACE,QAAQ;;;AAG1B,EAAE"}

View File

@@ -0,0 +1,35 @@
'use client';
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useAppItemStatic_unstable", {
enumerable: true,
get: function() {
return useAppItemStatic_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 _NavContext = require("../NavContext");
const useAppItemStatic_unstable = (props, ref)=>{
const { icon } = props;
const { density = 'medium' } = (0, _NavContext.useNavContext_unstable)();
return {
components: {
root: 'div',
icon: 'span'
},
root: _reactutilities.slot.always((0, _reactutilities.getIntrinsicElementProps)('div', {
ref,
...props
}), {
elementType: 'div'
}),
icon: _reactutilities.slot.optional(icon, {
elementType: 'span'
}),
density
};
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/AppItemStatic/useAppItemStatic.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { AppItemStaticProps, AppItemStaticState } from './AppItemStatic.types';\nimport { useNavContext_unstable } from '../NavContext';\n\n/**\n * Create the state required to render AppItemStatic.\n *\n * The returned state can be modified with hooks such as useAppItemStaticStyles_unstable,\n * before being passed to renderAppItemStatic_unstable.\n *\n * @param props - props from this instance of AppItemStatic\n * @param ref - reference to root HTMLDivElement of AppItemStatic\n */\nexport const useAppItemStatic_unstable = (\n props: AppItemStaticProps,\n ref: React.Ref<HTMLDivElement>,\n): AppItemStaticState => {\n const { icon } = props;\n\n const { density = 'medium' } = useNavContext_unstable();\n return {\n components: {\n root: 'div',\n icon: 'span',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n icon: slot.optional(icon, {\n elementType: 'span',\n }),\n density,\n };\n};\n"],"names":["React","getIntrinsicElementProps","slot","useNavContext_unstable","useAppItemStatic_unstable","props","ref","icon","density","components","root","always","elementType","optional"],"mappings":"AAAA;;;;;+BAgBaI;;;;;;;iEAdU,QAAQ;gCACgB,4BAA4B;4BAEpC,gBAAgB;AAWhD,kCAAkC,CACvCC,OACAC;IAEA,MAAM,EAAEC,IAAI,EAAE,GAAGF;IAEjB,MAAM,EAAEG,UAAU,QAAQ,EAAE,OAAGL,kCAAAA;IAC/B,OAAO;QACLM,YAAY;YACVC,MAAM;YACNH,MAAM;QACR;QACAG,MAAMR,oBAAAA,CAAKS,MAAM,KACfV,wCAAAA,EAAyB,OAAO;YAC9BK;YACA,GAAGD,KAAK;QACV,IACA;YAAEO,aAAa;QAAM;QAEvBL,MAAML,oBAAAA,CAAKW,QAAQ,CAACN,MAAM;YACxBK,aAAa;QACf;QACAJ;IACF;AACF,EAAE"}

View File

@@ -0,0 +1,56 @@
'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, {
appItemStaticClassNames: function() {
return appItemStaticClassNames;
},
useAppItemStaticStyles_unstable: function() {
return useAppItemStaticStyles_unstable;
}
});
const _react = require("@griffel/react");
const _useAppItemStylesstyles = require("../AppItem/useAppItemStyles.styles");
const _sharedNavStylesstyles = require("../sharedNavStyles.styles");
const appItemStaticClassNames = {
root: 'fui-AppItemStatic',
icon: 'fui-AppItemStatic__icon'
};
const useAppItemStaticStyles = /*#__PURE__*/ (0, _react.__styles)({
root: {
Bceei9c: "f158kwzp",
Jwef8y: "fmaajru",
ecr2s2: "f11z5bqc"
}
}, {
d: [
".f158kwzp{cursor:default;}"
],
h: [
".fmaajru:hover{background-color:unset;}"
],
a: [
".f11z5bqc:active{background-color:unset;}"
]
});
const useAppItemStaticStyles_unstable = (state)=>{
'use no memo';
const rootDefaultClassName = (0, _sharedNavStylesstyles.useRootDefaultClassName)();
const iconStyles = (0, _sharedNavStylesstyles.useIconStyles)();
const appItemSpecificStyles = (0, _useAppItemStylesstyles.useAppItemStyles)();
const appItemStaticStyles = useAppItemStaticStyles();
const { density, icon } = state;
state.root.className = (0, _react.mergeClasses)(rootDefaultClassName, appItemStaticClassNames.root, appItemSpecificStyles.root, appItemStaticStyles.root, density === 'small' && appItemSpecificStyles.small, !icon && appItemSpecificStyles.absentIconRootAdjustment, state.root.className);
if (state.icon) {
state.icon.className = (0, _react.mergeClasses)(appItemStaticClassNames.icon, iconStyles.base, state.icon.className);
}
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["useAppItemStaticStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { useAppItemStyles } from '../AppItem/useAppItemStyles.styles';\nimport { useIconStyles, useRootDefaultClassName } from '../sharedNavStyles.styles';\nexport const appItemStaticClassNames = {\n root: 'fui-AppItemStatic',\n icon: 'fui-AppItemStatic__icon'\n};\nconst useAppItemStaticStyles = makeStyles({\n root: {\n cursor: 'default',\n ':hover': {\n backgroundColor: 'unset'\n },\n ':active': {\n backgroundColor: 'unset'\n }\n }\n});\n/**\n * Apply styling to the AppItemStatic slots based on the state\n */ export const useAppItemStaticStyles_unstable = (state)=>{\n 'use no memo';\n const rootDefaultClassName = useRootDefaultClassName();\n const iconStyles = useIconStyles();\n const appItemSpecificStyles = useAppItemStyles();\n const appItemStaticStyles = useAppItemStaticStyles();\n const { density, icon } = state;\n state.root.className = mergeClasses(rootDefaultClassName, appItemStaticClassNames.root, appItemSpecificStyles.root, appItemStaticStyles.root, density === 'small' && appItemSpecificStyles.small, !icon && appItemSpecificStyles.absentIconRootAdjustment, state.root.className);\n if (state.icon) {\n state.icon.className = mergeClasses(appItemStaticClassNames.icon, iconStyles.base, state.icon.className);\n }\n return state;\n};\n"],"names":["__styles","mergeClasses","useAppItemStyles","useIconStyles","useRootDefaultClassName","appItemStaticClassNames","root","icon","useAppItemStaticStyles","Bceei9c","Jwef8y","ecr2s2","d","h","a","useAppItemStaticStyles_unstable","state","rootDefaultClassName","iconStyles","appItemSpecificStyles","appItemStaticStyles","density","className","small","absentIconRootAdjustment","base"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAICK,uBAAuB;;;mCAiBY;eAA/BU;;;uBApBwB,gBAAgB;wCACxB,oCAAoC;uCACd,2BAA2B;AAC3E,gCAAgC;IACnCT,IAAI,EAAE,mBAAmB;IACzBC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,sBAAsB,GAAA,WAAA,OAAGR,eAAA,EAAA;IAAAM,IAAA,EAAA;QAAAG,OAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;KAAA;IAAAC,CAAA,EAAA;QAAA;KAAA;IAAAC,CAAA,EAAA;QAAA;KAAA;AAAA,CAU9B,CAAC;AAGS,yCAAyCE,KAAK,IAAG;IACxD,aAAa;IACb,MAAMC,oBAAoB,GAAGb,kDAAuB,CAAC,CAAC;IACtD,MAAMc,UAAU,OAAGf,oCAAa,CAAC,CAAC;IAClC,MAAMgB,qBAAqB,OAAGjB,wCAAgB,CAAC,CAAC;IAChD,MAAMkB,mBAAmB,GAAGZ,sBAAsB,CAAC,CAAC;IACpD,MAAM,EAAEa,OAAO,EAAEd,IAAAA,EAAM,GAAGS,KAAK;IAC/BA,KAAK,CAACV,IAAI,CAACgB,SAAS,OAAGrB,mBAAY,EAACgB,oBAAoB,EAAEZ,uBAAuB,CAACC,IAAI,EAAEa,qBAAqB,CAACb,IAAI,EAAEc,mBAAmB,CAACd,IAAI,EAAEe,OAAO,KAAK,OAAO,IAAIF,qBAAqB,CAACI,KAAK,EAAE,CAAChB,IAAI,IAAIY,qBAAqB,CAACK,wBAAwB,EAAER,KAAK,CAACV,IAAI,CAACgB,SAAS,CAAC;IAChR,IAAIN,KAAK,CAACT,IAAI,EAAE;QACZS,KAAK,CAACT,IAAI,CAACe,SAAS,OAAGrB,mBAAY,EAACI,uBAAuB,CAACE,IAAI,EAAEW,UAAU,CAACO,IAAI,EAAET,KAAK,CAACT,IAAI,CAACe,SAAS,CAAC;IAC5G;IACA,OAAON,KAAK;AAChB,CAAC"}

View File

@@ -0,0 +1,50 @@
'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, {
appItemStaticClassNames: function() {
return appItemStaticClassNames;
},
useAppItemStaticStyles_unstable: function() {
return useAppItemStaticStyles_unstable;
}
});
const _react = require("@griffel/react");
const _useAppItemStylesstyles = require("../AppItem/useAppItemStyles.styles");
const _sharedNavStylesstyles = require("../sharedNavStyles.styles");
const appItemStaticClassNames = {
root: 'fui-AppItemStatic',
icon: 'fui-AppItemStatic__icon'
};
const useAppItemStaticStyles = (0, _react.makeStyles)({
root: {
cursor: 'default',
':hover': {
backgroundColor: 'unset'
},
':active': {
backgroundColor: 'unset'
}
}
});
const useAppItemStaticStyles_unstable = (state)=>{
'use no memo';
const rootDefaultClassName = (0, _sharedNavStylesstyles.useRootDefaultClassName)();
const iconStyles = (0, _sharedNavStylesstyles.useIconStyles)();
const appItemSpecificStyles = (0, _useAppItemStylesstyles.useAppItemStyles)();
const appItemStaticStyles = useAppItemStaticStyles();
const { density, icon } = state;
state.root.className = (0, _react.mergeClasses)(rootDefaultClassName, appItemStaticClassNames.root, appItemSpecificStyles.root, appItemStaticStyles.root, density === 'small' && appItemSpecificStyles.small, !icon && appItemSpecificStyles.absentIconRootAdjustment, state.root.className);
if (state.icon) {
state.icon.className = (0, _react.mergeClasses)(appItemStaticClassNames.icon, iconStyles.base, state.icon.className);
}
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/AppItemStatic/useAppItemStaticStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { AppItemStaticSlots, AppItemStaticState } from './AppItemStatic.types';\nimport { useAppItemStyles } from '../AppItem/useAppItemStyles.styles';\nimport { useIconStyles, useRootDefaultClassName } from '../sharedNavStyles.styles';\n\nexport const appItemStaticClassNames: SlotClassNames<AppItemStaticSlots> = {\n root: 'fui-AppItemStatic',\n icon: 'fui-AppItemStatic__icon',\n};\n\nconst useAppItemStaticStyles = makeStyles({\n root: {\n cursor: 'default',\n ':hover': {\n backgroundColor: 'unset',\n },\n ':active': {\n backgroundColor: 'unset',\n },\n },\n});\n\n/**\n * Apply styling to the AppItemStatic slots based on the state\n */\nexport const useAppItemStaticStyles_unstable = (state: AppItemStaticState): AppItemStaticState => {\n 'use no memo';\n\n const rootDefaultClassName = useRootDefaultClassName();\n const iconStyles = useIconStyles();\n const appItemSpecificStyles = useAppItemStyles();\n const appItemStaticStyles = useAppItemStaticStyles();\n\n const { density, icon } = state;\n\n state.root.className = mergeClasses(\n rootDefaultClassName,\n appItemStaticClassNames.root,\n appItemSpecificStyles.root,\n appItemStaticStyles.root,\n density === 'small' && appItemSpecificStyles.small,\n !icon && appItemSpecificStyles.absentIconRootAdjustment,\n state.root.className,\n );\n\n if (state.icon) {\n state.icon.className = mergeClasses(appItemStaticClassNames.icon, iconStyles.base, state.icon.className);\n }\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","useAppItemStyles","useIconStyles","useRootDefaultClassName","appItemStaticClassNames","root","icon","useAppItemStaticStyles","cursor","backgroundColor","useAppItemStaticStyles_unstable","state","rootDefaultClassName","iconStyles","appItemSpecificStyles","appItemStaticStyles","density","className","small","absentIconRootAdjustment","base"],"mappings":"AAAA;;;;;;;;;;;;IAQaK,uBAAAA;;;mCAoBAM;eAAAA;;;uBA1B4B,iBAAiB;wCAGzB,qCAAqC;uCACf,4BAA4B;AAE5E,gCAAoE;IACzEL,MAAM;IACNC,MAAM;AACR,EAAE;AAEF,MAAMC,yBAAyBR,qBAAAA,EAAW;IACxCM,MAAM;QACJG,QAAQ;QACR,UAAU;YACRC,iBAAiB;QACnB;QACA,WAAW;YACTA,iBAAiB;QACnB;IACF;AACF;AAKO,wCAAwC,CAACE;IAC9C;IAEA,MAAMC,2BAAuBT,8CAAAA;IAC7B,MAAMU,iBAAaX,oCAAAA;IACnB,MAAMY,wBAAwBb,4CAAAA;IAC9B,MAAMc,sBAAsBR;IAE5B,MAAM,EAAES,OAAO,EAAEV,IAAI,EAAE,GAAGK;IAE1BA,MAAMN,IAAI,CAACY,SAAS,OAAGjB,mBAAAA,EACrBY,sBACAR,wBAAwBC,IAAI,EAC5BS,sBAAsBT,IAAI,EAC1BU,oBAAoBV,IAAI,EACxBW,YAAY,WAAWF,sBAAsBI,KAAK,EAClD,CAACZ,QAAQQ,sBAAsBK,wBAAwB,EACvDR,MAAMN,IAAI,CAACY,SAAS;IAGtB,IAAIN,MAAML,IAAI,EAAE;QACdK,MAAML,IAAI,CAACW,SAAS,OAAGjB,mBAAAA,EAAaI,wBAAwBE,IAAI,EAAEO,WAAWO,IAAI,EAAET,MAAML,IAAI,CAACW,SAAS;IACzG;IAEA,OAAON;AACT,EAAE"}