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, "MessageBarGroup", {
enumerable: true,
get: function() {
return MessageBarGroup;
}
});
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 _useMessageBarGroup = require("./useMessageBarGroup");
const _renderMessageBarGroup = require("./renderMessageBarGroup");
const _useMessageBarGroupStylesstyles = require("./useMessageBarGroupStyles.styles");
const MessageBarGroup = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
const state = (0, _useMessageBarGroup.useMessageBarGroup_unstable)(props, ref);
(0, _useMessageBarGroupStylesstyles.useMessageBarGroupStyles_unstable)(state);
(0, _reactsharedcontexts.useCustomStyleHook_unstable)('useMessageBarGroupStyles_unstable')(state);
return (0, _renderMessageBarGroup.renderMessageBarGroup_unstable)(state);
});
MessageBarGroup.displayName = 'MessageBarGroup';

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/MessageBarGroup.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';\nimport { useMessageBarGroup_unstable } from './useMessageBarGroup';\nimport { renderMessageBarGroup_unstable } from './renderMessageBarGroup';\nimport { useMessageBarGroupStyles_unstable } from './useMessageBarGroupStyles.styles';\nimport type { MessageBarGroupProps } from './MessageBarGroup.types';\n\n/**\n * MessageBarGroup component\n */\nexport const MessageBarGroup: ForwardRefComponent<MessageBarGroupProps> = React.forwardRef((props, ref) => {\n const state = useMessageBarGroup_unstable(props, ref);\n\n useMessageBarGroupStyles_unstable(state);\n useCustomStyleHook_unstable('useMessageBarGroupStyles_unstable')(state);\n return renderMessageBarGroup_unstable(state);\n});\n\nMessageBarGroup.displayName = 'MessageBarGroup';\n"],"names":["React","useCustomStyleHook_unstable","useMessageBarGroup_unstable","renderMessageBarGroup_unstable","useMessageBarGroupStyles_unstable","MessageBarGroup","forwardRef","props","ref","state","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;qCAEa,kCAAkC;oCAClC,uBAAuB;uCACpB,0BAA0B;gDACvB,oCAAoC;AAM/E,MAAMK,kBAAAA,WAAAA,GAA6DL,OAAMM,UAAU,CAAC,CAACC,OAAOC;IACjG,MAAMC,YAAQP,+CAAAA,EAA4BK,OAAOC;QAEjDJ,iEAAAA,EAAkCK;QAClCR,gDAAAA,EAA4B,qCAAqCQ;IACjE,WAAON,qDAAAA,EAA+BM;AACxC,GAAG;AAEHJ,gBAAgBK,WAAW,GAAG"}

View File

@@ -0,0 +1,33 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "MessageBarMotion", {
enumerable: true,
get: function() {
return MessageBarMotion;
}
});
const _reactmotion = require("@fluentui/react-motion");
const _reactmotioncomponentspreview = require("@fluentui/react-motion-components-preview");
const MessageBarMotion = (0, _reactmotion.createPresenceComponent)(({ animate })=>{
const duration = _reactmotion.motionTokens.durationGentle;
return {
enter: animate === 'both' ? [
(0, _reactmotioncomponentspreview.fadeAtom)({
direction: 'enter',
duration
}),
(0, _reactmotioncomponentspreview.slideAtom)({
direction: 'enter',
outY: '-100%',
duration
})
] : [],
// Always exit with a fade
exit: (0, _reactmotioncomponentspreview.fadeAtom)({
direction: 'exit',
duration
})
};
});

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/MessageBarGroup.motions.tsx"],"sourcesContent":["import { motionTokens, createPresenceComponent } from '@fluentui/react-motion';\nimport { fadeAtom, slideAtom } from '@fluentui/react-motion-components-preview';\nimport { MessageBarGroupProps } from './MessageBarGroup.types';\n\n/**\n * A presence component for a MessageBar to enter and exit from a MessageBarGroup.\n * It has an optional enter transition of a slide-in and fade-in,\n * when the `animate` prop is set to `'both'`.\n * It always has an exit transition of a fade-out.\n */\nexport const MessageBarMotion = createPresenceComponent<{ animate?: MessageBarGroupProps['animate'] }>(\n ({ animate }) => {\n const duration = motionTokens.durationGentle;\n\n return {\n enter:\n animate === 'both'\n ? // enter with slide and fade\n [fadeAtom({ direction: 'enter', duration }), slideAtom({ direction: 'enter', outY: '-100%', duration })]\n : [], // no enter motion\n\n // Always exit with a fade\n exit: fadeAtom({ direction: 'exit', duration }),\n };\n },\n);\n"],"names":["motionTokens","createPresenceComponent","fadeAtom","slideAtom","MessageBarMotion","animate","duration","durationGentle","enter","direction","outY","exit"],"mappings":";;;;+BAUaI;;;;;;6BAVyC,yBAAyB;8CAC3C,4CAA4C;AASzE,6BAAyBH,oCAAAA,EAC9B,CAAC,EAAEI,OAAO,EAAE;IACV,MAAMC,WAAWN,yBAAAA,CAAaO,cAAc;IAE5C,OAAO;QACLC,OACEH,YAAY,SAER;gBAACH,sCAAAA,EAAS;gBAAEO,WAAW;gBAASH;YAAS;gBAAIH,uCAAAA,EAAU;gBAAEM,WAAW;gBAASC,MAAM;gBAASJ;YAAS;SAAG,GACxG,EAAE;QAER,0BAA0B;QAC1BK,UAAMT,sCAAAA,EAAS;YAAEO,WAAW;YAAQH;QAAS;IAC/C;AACF,GACA"}

View File

@@ -0,0 +1,6 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/MessageBarGroup.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport type MessageBarGroupSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * MessageBarGroup Props\n */\nexport type MessageBarGroupProps = ComponentProps<MessageBarGroupSlots> & {\n children: React.ReactElement[] | React.ReactElement;\n animate?: 'exit-only' | 'both';\n};\n\n/**\n * State used in rendering MessageBarGroup\n */\nexport type MessageBarGroupState = ComponentState<MessageBarGroupSlots> &\n Pick<MessageBarGroupProps, 'animate'> & {\n /** @deprecated property is unused; these CSS animations were replaced by motion components */\n enterStyles: string;\n /** @deprecated property is unused; these CSS animations were replaced by motion components */\n exitStyles: string;\n children: React.ReactElement[];\n };\n"],"names":["React"],"mappings":";;;;;iEACuB,QAAQ"}

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, {
MessageBarGroup: function() {
return _MessageBarGroup.MessageBarGroup;
},
messageBarGroupClassNames: function() {
return _useMessageBarGroupStylesstyles.messageBarGroupClassNames;
},
renderMessageBarGroup_unstable: function() {
return _renderMessageBarGroup.renderMessageBarGroup_unstable;
},
useMessageBarGroupStyles_unstable: function() {
return _useMessageBarGroupStylesstyles.useMessageBarGroupStyles_unstable;
},
useMessageBarGroup_unstable: function() {
return _useMessageBarGroup.useMessageBarGroup_unstable;
}
});
const _MessageBarGroup = require("./MessageBarGroup");
const _renderMessageBarGroup = require("./renderMessageBarGroup");
const _useMessageBarGroup = require("./useMessageBarGroup");
const _useMessageBarGroupStylesstyles = require("./useMessageBarGroupStyles.styles");

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/index.ts"],"sourcesContent":["export { MessageBarGroup } from './MessageBarGroup';\nexport type { MessageBarGroupProps, MessageBarGroupSlots, MessageBarGroupState } from './MessageBarGroup.types';\nexport { renderMessageBarGroup_unstable } from './renderMessageBarGroup';\nexport { useMessageBarGroup_unstable } from './useMessageBarGroup';\nexport { messageBarGroupClassNames, useMessageBarGroupStyles_unstable } from './useMessageBarGroupStyles.styles';\n"],"names":["MessageBarGroup","renderMessageBarGroup_unstable","useMessageBarGroup_unstable","messageBarGroupClassNames","useMessageBarGroupStyles_unstable"],"mappings":";;;;;;;;;;;;eAASA,gCAAe;;;eAIfG,yDAAyB;;;eAFzBF,qDAA8B;;;eAEHG,iEAAiC;;;eAD5DF,+CAA2B;;;iCAHJ,oBAAoB;uCAEL,0BAA0B;oCAC7B,uBAAuB;gDACU,oCAAoC"}

View File

@@ -0,0 +1,28 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "renderMessageBarGroup_unstable", {
enumerable: true,
get: function() {
return renderMessageBarGroup_unstable;
}
});
const _jsxruntime = require("@fluentui/react-jsx-runtime/jsx-runtime");
const _reactutilities = require("@fluentui/react-utilities");
const _reactmotion = require("@fluentui/react-motion");
const _MessageBarGroupmotions = require("./MessageBarGroup.motions");
const renderMessageBarGroup_unstable = (state)=>{
(0, _reactutilities.assertSlots)(state);
return /*#__PURE__*/ (0, _jsxruntime.jsx)(state.root, {
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactmotion.PresenceGroup, {
children: state.children.map((child)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_MessageBarGroupmotions.MessageBarMotion, {
animate: state.animate,
unmountOnExit: true,
children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_reactmotion.MotionRefForwarder, {
children: child
})
}, child.key))
})
});
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/renderMessageBarGroup.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 { MessageBarGroupState, MessageBarGroupSlots } from './MessageBarGroup.types';\nimport { PresenceGroup } from '@fluentui/react-motion';\nimport { MessageBarMotion } from './MessageBarGroup.motions';\nimport { MotionRefForwarder } from '@fluentui/react-motion';\n\n/**\n * Render the final JSX of MessageBarGroup\n */\nexport const renderMessageBarGroup_unstable = (state: MessageBarGroupState): JSXElement => {\n assertSlots<MessageBarGroupSlots>(state);\n\n return (\n <state.root>\n <PresenceGroup>\n {state.children.map(child => (\n <MessageBarMotion key={child.key} animate={state.animate} unmountOnExit>\n <MotionRefForwarder>{child}</MotionRefForwarder>\n </MessageBarMotion>\n ))}\n </PresenceGroup>\n </state.root>\n );\n};\n"],"names":["assertSlots","PresenceGroup","MessageBarMotion","MotionRefForwarder","renderMessageBarGroup_unstable","state","root","children","map","child","animate","unmountOnExit","key"],"mappings":";;;;+BAaaI;;;;;;4BAZb,gDAAiD;gCAErB,4BAA4B;6BAG1B,yBAAyB;wCACtB,4BAA4B;AAMtD,uCAAuC,CAACC;QAC7CL,2BAAAA,EAAkCK;IAElC,OAAA,WAAA,OACE,eAAA,EAACA,MAAMC,IAAI,EAAA;kBACT,WAAA,OAAA,eAAA,EAACL,0BAAAA,EAAAA;sBACEI,MAAME,QAAQ,CAACC,GAAG,CAACC,CAAAA,QAAAA,WAAAA,OAClB,eAAA,EAACP,wCAAAA,EAAAA;oBAAiCQ,SAASL,MAAMK,OAAO;oBAAEC,aAAa,EAAA;8BACrE,WAAA,OAAA,eAAA,EAACR,+BAAAA,EAAAA;kCAAoBM;;mBADAA,MAAMG,GAAG;;;AAO1C,EAAE"}

View File

@@ -0,0 +1,40 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "useMessageBarGroup_unstable", {
enumerable: true,
get: function() {
return useMessageBarGroup_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 useMessageBarGroup_unstable = (props, ref)=>{
if (process.env.NODE_ENV !== 'production') {
_react.Children.forEach(props.children, (c)=>{
if (!/*#__PURE__*/ _react.isValidElement(c) || c.type === _react.Fragment) {
throw new Error("MessageBarGroup: children must be valid MessageBar components. Please ensure you're not using fragments. ");
}
});
}
var _props_children;
const children = _react.Children.map((_props_children = props.children) !== null && _props_children !== void 0 ? _props_children : [], (c)=>/*#__PURE__*/ _react.isValidElement(c) && c.type !== _react.Fragment ? c : null).filter(Boolean);
var _props_animate;
return {
components: {
root: 'div'
},
root: _reactutilities.slot.always((0, _reactutilities.getIntrinsicElementProps)('div', {
ref,
...props
}), {
elementType: 'div'
}),
children,
animate: (_props_animate = props.animate) !== null && _props_animate !== void 0 ? _props_animate : 'exit-only',
enterStyles: '',
exitStyles: ''
};
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/useMessageBarGroup.ts"],"sourcesContent":["import * as React from 'react';\nimport type { MessageBarGroupProps, MessageBarGroupState } from './MessageBarGroup.types';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\n\n/**\n * Create the state required to render MessageBarGroup.\n *\n * The returned state can be modified with hooks such as useMessageBarGroupStyles_unstable,\n * before being passed to renderMessageBarGroup_unstable.\n *\n * @param props - props from this instance of MessageBarGroup\n * @param ref - reference to root HTMLElement of MessageBarGroup\n */\nexport const useMessageBarGroup_unstable = (\n props: MessageBarGroupProps,\n ref: React.Ref<HTMLDivElement>,\n): MessageBarGroupState => {\n if (process.env.NODE_ENV !== 'production') {\n React.Children.forEach(props.children, c => {\n if (!React.isValidElement(c) || c.type === React.Fragment) {\n throw new Error(\n \"MessageBarGroup: children must be valid MessageBar components. Please ensure you're not using fragments. \",\n );\n }\n });\n }\n\n const children = React.Children.map(props.children ?? [], c =>\n React.isValidElement(c) && c.type !== React.Fragment ? c : null,\n ).filter(Boolean);\n\n return {\n components: {\n root: 'div',\n },\n\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n children,\n animate: props.animate ?? 'exit-only',\n enterStyles: '',\n exitStyles: '',\n };\n};\n"],"names":["React","getIntrinsicElementProps","slot","useMessageBarGroup_unstable","props","ref","process","env","NODE_ENV","Children","forEach","children","c","isValidElement","type","Fragment","Error","map","filter","Boolean","components","root","always","elementType","animate","enterStyles","exitStyles"],"mappings":";;;;+BAaaG;;;;;;;iEAbU,QAAQ;gCAEgB,4BAA4B;AAWpE,oCAAoC,CACzCC,OACAC;IAEA,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACzCR,OAAMS,QAAQ,CAACC,OAAO,CAACN,MAAMO,QAAQ,EAAEC,CAAAA;YACrC,IAAI,eAACZ,OAAMa,cAAc,CAACD,MAAMA,EAAEE,IAAI,KAAKd,OAAMe,QAAQ,EAAE;gBACzD,MAAM,IAAIC,MACR;YAEJ;QACF;IACF;QAEoCZ;IAApC,MAAMO,WAAWX,OAAMS,QAAQ,CAACQ,GAAG,CAACb,CAAAA,kBAAAA,MAAMO,QAAAA,AAAQ,MAAA,QAAdP,oBAAAA,KAAAA,IAAAA,kBAAkB,EAAE,EAAEQ,CAAAA,kBACxDZ,OAAMa,cAAc,CAACD,MAAMA,EAAEE,IAAI,KAAKd,OAAMe,QAAQ,GAAGH,IAAI,MAC3DM,MAAM,CAACC;QAeEf;IAbX,OAAO;QACLgB,YAAY;YACVC,MAAM;QACR;QAEAA,MAAMnB,oBAAAA,CAAKoB,MAAM,KACfrB,wCAAAA,EAAyB,OAAO;YAC9BI;YACA,GAAGD,KAAK;QACV,IACA;YAAEmB,aAAa;QAAM;QAEvBZ;QACAa,SAASpB,CAAAA,iBAAAA,MAAMoB,OAAAA,AAAO,MAAA,QAAbpB,mBAAAA,KAAAA,IAAAA,iBAAiB;QAC1BqB,aAAa;QACbC,YAAY;IACd;AACF,EAAE"}

View File

@@ -0,0 +1,27 @@
"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, {
messageBarGroupClassNames: function() {
return messageBarGroupClassNames;
},
useMessageBarGroupStyles_unstable: function() {
return useMessageBarGroupStyles_unstable;
}
});
const _react = require("@griffel/react");
const messageBarGroupClassNames = {
root: 'fui-MessageBarGroup'
};
const useMessageBarGroupStyles_unstable = (state)=>{
'use no memo';
state.root.className = (0, _react.mergeClasses)(messageBarGroupClassNames.root, state.root.className);
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["useMessageBarGroupStyles.styles.js"],"sourcesContent":["import { mergeClasses } from '@griffel/react';\nexport const messageBarGroupClassNames = {\n root: 'fui-MessageBarGroup'\n};\n/**\n * Apply styling to the MessageBarGroup slots based on the state\n */ export const useMessageBarGroupStyles_unstable = (state)=>{\n 'use no memo';\n state.root.className = mergeClasses(messageBarGroupClassNames.root, state.root.className);\n return state;\n};\n"],"names":["mergeClasses","messageBarGroupClassNames","root","useMessageBarGroupStyles_unstable","state","className"],"mappings":";;;;;;;;;;;IACaC,yBAAyB;;;qCAKY;;;;uBANrB,gBAAgB;AACtC,kCAAkC;IACrCC,IAAI,EAAE;AACV,CAAC;AAGU,MAAMC,oCAAqCC,KAAK,IAAG;IAC1D,aAAa;IACbA,KAAK,CAACF,IAAI,CAACG,SAAS,OAAGL,mBAAY,EAACC,yBAAyB,CAACC,IAAI,EAAEE,KAAK,CAACF,IAAI,CAACG,SAAS,CAAC;IACzF,OAAOD,KAAK;AAChB,CAAC"}

View File

@@ -0,0 +1,27 @@
"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, {
messageBarGroupClassNames: function() {
return messageBarGroupClassNames;
},
useMessageBarGroupStyles_unstable: function() {
return useMessageBarGroupStyles_unstable;
}
});
const _react = require("@griffel/react");
const messageBarGroupClassNames = {
root: 'fui-MessageBarGroup'
};
const useMessageBarGroupStyles_unstable = (state)=>{
'use no memo';
state.root.className = (0, _react.mergeClasses)(messageBarGroupClassNames.root, state.root.className);
return state;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/MessageBarGroup/useMessageBarGroupStyles.styles.ts"],"sourcesContent":["import { mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { MessageBarGroupSlots, MessageBarGroupState } from './MessageBarGroup.types';\n\nexport const messageBarGroupClassNames: SlotClassNames<MessageBarGroupSlots> = {\n root: 'fui-MessageBarGroup',\n};\n\n/**\n * Apply styling to the MessageBarGroup slots based on the state\n */\nexport const useMessageBarGroupStyles_unstable = (state: MessageBarGroupState): MessageBarGroupState => {\n 'use no memo';\n\n state.root.className = mergeClasses(messageBarGroupClassNames.root, state.root.className);\n return state;\n};\n"],"names":["mergeClasses","messageBarGroupClassNames","root","useMessageBarGroupStyles_unstable","state","className"],"mappings":";;;;;;;;;;;IAIaC,yBAAAA;;;qCAOAE;;;;uBAXgB,iBAAiB;AAIvC,kCAAwE;IAC7ED,MAAM;AACR,EAAE;AAKK,MAAMC,oCAAoC,CAACC;IAChD;IAEAA,MAAMF,IAAI,CAACG,SAAS,OAAGL,mBAAAA,EAAaC,0BAA0BC,IAAI,EAAEE,MAAMF,IAAI,CAACG,SAAS;IACxF,OAAOD;AACT,EAAE"}