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,51 @@
'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, {
MenuContext: function() {
return MenuContext;
},
MenuProvider: function() {
return MenuProvider;
},
useMenuContext_unstable: function() {
return useMenuContext_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactcontextselector = require("@fluentui/react-context-selector");
const MenuContext = (0, _reactcontextselector.createContext)(undefined);
const menuContextDefaultValue = {
open: false,
setOpen: ()=>false,
checkedValues: {},
onCheckedValueChange: ()=>null,
isSubmenu: false,
// eslint-disable-next-line @typescript-eslint/no-deprecated
triggerRef: {
current: null
},
// eslint-disable-next-line @typescript-eslint/no-deprecated
menuPopoverRef: {
current: null
},
mountNode: null,
triggerId: '',
openOnContext: false,
openOnHover: false,
hasIcons: false,
hasCheckmarks: false,
inline: false,
persistOnItemClick: false
};
const MenuProvider = MenuContext.Provider;
const useMenuContext_unstable = (selector)=>(0, _reactcontextselector.useContextSelector)(MenuContext, (ctx = menuContextDefaultValue)=>selector(ctx));

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/contexts/menuContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { ContextSelector, Context } from '@fluentui/react-context-selector';\nimport type { MenuState } from '../components/Menu/index';\n\nexport const MenuContext: Context<MenuContextValue> = createContext<MenuContextValue | undefined>(\n undefined,\n) as Context<MenuContextValue>;\n\nconst menuContextDefaultValue: MenuContextValue = {\n open: false,\n setOpen: () => false,\n checkedValues: {},\n onCheckedValueChange: () => null,\n isSubmenu: false,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n triggerRef: { current: null } as unknown as React.MutableRefObject<HTMLElement | null>,\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n menuPopoverRef: { current: null } as unknown as React.MutableRefObject<HTMLElement | null>,\n mountNode: null,\n triggerId: '',\n openOnContext: false,\n openOnHover: false,\n hasIcons: false,\n hasCheckmarks: false,\n inline: false,\n persistOnItemClick: false,\n};\n\n/**\n * Context shared between Menu and its children components\n *\n * Extends and drills down MenuList props to simplify API\n */\nexport type MenuContextValue = Pick<\n MenuState,\n | 'openOnHover'\n | 'openOnContext'\n | 'triggerRef'\n | 'menuPopoverRef'\n | 'setOpen'\n | 'isSubmenu'\n | 'mountNode'\n | 'triggerId'\n | 'hasIcons'\n | 'hasCheckmarks'\n | 'persistOnItemClick'\n | 'inline'\n | 'checkedValues'\n | 'onCheckedValueChange'\n | 'safeZone'\n> & {\n open: boolean;\n triggerId: string;\n /**\n * Default values to be checked on mount\n * @deprecated this property is not used internally anymore,\n * the signature remains just to avoid breaking changes\n */\n defaultCheckedValues?: Record<string, string[]>;\n};\n\nexport const MenuProvider = MenuContext.Provider;\n\nexport const useMenuContext_unstable = <T>(selector: ContextSelector<MenuContextValue, T>): T =>\n useContextSelector(MenuContext, (ctx = menuContextDefaultValue) => selector(ctx));\n"],"names":["React","createContext","useContextSelector","MenuContext","undefined","menuContextDefaultValue","open","setOpen","checkedValues","onCheckedValueChange","isSubmenu","triggerRef","current","menuPopoverRef","mountNode","triggerId","openOnContext","openOnHover","hasIcons","hasCheckmarks","inline","persistOnItemClick","MenuProvider","Provider","useMenuContext_unstable","selector","ctx"],"mappings":"AAAA;;;;;;;;;;;;IAOaG,WAAAA;;;gBAyDAmB;;;2BAEAE;;;;;iEAhEU,QAAQ;sCACmB,mCAAmC;AAI9E,wBAA+CvB,mCAAAA,EACpDG,WAC6B;AAE/B,MAAMC,0BAA4C;IAChDC,MAAM;IACNC,SAAS,IAAM;IACfC,eAAe,CAAC;IAChBC,sBAAsB,IAAM;IAC5BC,WAAW;IACX,4DAA4D;IAC5DC,YAAY;QAAEC,SAAS;IAAK;IAC5B,4DAA4D;IAC5DC,gBAAgB;QAAED,SAAS;IAAK;IAChCE,WAAW;IACXC,WAAW;IACXC,eAAe;IACfC,aAAa;IACbC,UAAU;IACVC,eAAe;IACfC,QAAQ;IACRC,oBAAoB;AACtB;AAmCO,MAAMC,eAAenB,YAAYoB,QAAQ,CAAC;AAE1C,MAAMC,0BAA0B,CAAIC,eACzCvB,wCAAAA,EAAmBC,aAAa,CAACuB,MAAMrB,uBAAuB,GAAKoB,SAASC,MAAM"}

View File

@@ -0,0 +1,30 @@
'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, {
MenuGroupContextProvider: function() {
return MenuGroupContextProvider;
},
useMenuGroupContext_unstable: function() {
return useMenuGroupContext_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const MenuGroupContext = /*#__PURE__*/ _react.createContext(undefined);
const menuGroupContextDefaultValue = {
headerId: ''
};
const MenuGroupContextProvider = MenuGroupContext.Provider;
const useMenuGroupContext_unstable = ()=>{
var _React_useContext;
return (_React_useContext = _react.useContext(MenuGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuGroupContextDefaultValue;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/contexts/menuGroupContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nconst MenuGroupContext = React.createContext<MenuGroupContextValue | undefined>(\n undefined,\n) as React.Context<MenuGroupContextValue>;\n\nconst menuGroupContextDefaultValue: MenuGroupContextValue = {\n headerId: '',\n};\n\n/**\n * Context used to guarantee correct aria-relationship between header\n * and group information\n */\nexport type MenuGroupContextValue = {\n /**\n * Element id applied to the `MenuGroupHeader` component\n */\n headerId: string;\n};\n\nexport const MenuGroupContextProvider = MenuGroupContext.Provider;\nexport const useMenuGroupContext_unstable = (): MenuGroupContextValue =>\n React.useContext(MenuGroupContext) ?? menuGroupContextDefaultValue;\n"],"names":["React","MenuGroupContext","createContext","undefined","menuGroupContextDefaultValue","headerId","MenuGroupContextProvider","Provider","useMenuGroupContext_unstable","useContext"],"mappings":"AAAA;;;;;;;;;;;;4BAuBaM;;;gCACAE;;;;;iEAtBU,QAAQ;AAE/B,MAAMP,iCAAmBD,OAAME,aAAa,CAC1CC;AAGF,MAAMC,+BAAsD;IAC1DC,UAAU;AACZ;AAaO,MAAMC,2BAA2BL,iBAAiBM,QAAQ,CAAC;AAC3D,MAAMC,+BAA+B;QAC1CR;WAAAA,CAAAA,oBAAAA,OAAMS,UAAU,CAACR,iBAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAAsCI;EAA6B"}

View File

@@ -0,0 +1,36 @@
'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, {
MenuListContext: function() {
return MenuListContext;
},
MenuListProvider: function() {
return MenuListProvider;
},
useMenuListContext_unstable: function() {
return useMenuListContext_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
const _reactcontextselector = require("@fluentui/react-context-selector");
const MenuListContext = (0, _reactcontextselector.createContext)(undefined);
const menuListContextDefaultValue = {
checkedValues: {},
setFocusByFirstCharacter: ()=>null,
toggleCheckbox: ()=>null,
selectRadio: ()=>null,
hasIcons: false,
hasCheckmarks: false
};
const MenuListProvider = MenuListContext.Provider;
const useMenuListContext_unstable = (selector)=>(0, _reactcontextselector.useContextSelector)(MenuListContext, (ctx = menuListContextDefaultValue)=>selector(ctx));

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/contexts/menuListContext.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { ContextSelector, Context } from '@fluentui/react-context-selector';\nimport type { SelectableHandler } from '../selectable/index';\nimport type { MenuCheckedValueChangeData, MenuCheckedValueChangeEvent, MenuListProps } from '../components/index';\n\nexport const MenuListContext: Context<MenuListContextValue> = createContext<MenuListContextValue | undefined>(\n undefined,\n) as Context<MenuListContextValue>;\n\nconst menuListContextDefaultValue: MenuListContextValue = {\n checkedValues: {},\n setFocusByFirstCharacter: () => null,\n toggleCheckbox: () => null,\n selectRadio: () => null,\n hasIcons: false,\n hasCheckmarks: false,\n};\n\n/**\n * Context shared between MenuList and its children components\n */\nexport type MenuListContextValue = Pick<MenuListProps, 'checkedValues' | 'hasIcons' | 'hasCheckmarks'> & {\n setFocusByFirstCharacter?: (e: React.KeyboardEvent<HTMLElement>, itemEl: HTMLElement) => void;\n toggleCheckbox?: SelectableHandler;\n selectRadio?: SelectableHandler;\n /**\n * Callback when checked items change for value with a name\n *\n * @param event - React's original SyntheticEvent\n * @param data - A data object with relevant information\n *\n * @deprecated this property is not used internally anymore,\n * the signature remains just to avoid breaking changes\n */\n onCheckedValueChange?: (e: MenuCheckedValueChangeEvent, data: MenuCheckedValueChangeData) => void;\n /**\n * Whether child menus (submenus) should open when the user presses the ArrowRight key on their trigger.\n * Set to `false` when the list context is provided by a grid-like container (e.g. MenuGrid) where\n * ArrowRight is reserved for column navigation.\n *\n * @default true\n */\n shouldOpenOnArrowRight?: boolean;\n /**\n * Whether child menus (submenus) should close when the user presses the ArrowLeft key.\n * Set to `false` when the list context is provided by a grid-like container (e.g. MenuGrid) where\n * ArrowLeft is reserved for column navigation.\n *\n * @default true\n */\n shouldCloseOnArrowLeft?: boolean;\n};\n\nexport const MenuListProvider = MenuListContext.Provider;\n\nexport const useMenuListContext_unstable = <T,>(selector: ContextSelector<MenuListContextValue, T>): T =>\n useContextSelector(MenuListContext, (ctx = menuListContextDefaultValue) => selector(ctx));\n"],"names":["React","createContext","useContextSelector","MenuListContext","undefined","menuListContextDefaultValue","checkedValues","setFocusByFirstCharacter","toggleCheckbox","selectRadio","hasIcons","hasCheckmarks","MenuListProvider","Provider","useMenuListContext_unstable","selector","ctx"],"mappings":"AAAA;;;;;;;;;;;;mBAQaG;;;oBAgDAS;;;+BAEAE;;;;;iEAxDU,QAAQ;sCACmB,mCAAmC;AAK9E,MAAMX,sBAAiDF,mCAAAA,EAC5DG,WACiC;AAEnC,MAAMC,8BAAoD;IACxDC,eAAe,CAAC;IAChBC,0BAA0B,IAAM;IAChCC,gBAAgB,IAAM;IACtBC,aAAa,IAAM;IACnBC,UAAU;IACVC,eAAe;AACjB;AAqCO,MAAMC,mBAAmBT,gBAAgBU,QAAQ,CAAC;AAElD,MAAMC,8BAA8B,CAAKC,eAC9Cb,wCAAAA,EAAmBC,iBAAiB,CAACa,MAAMX,2BAA2B,GAAKU,SAASC,MAAM"}

View File

@@ -0,0 +1,42 @@
'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, {
MenuSplitGroupContextProvider: function() {
return MenuSplitGroupContextProvider;
},
menuSplitGroupContextDefaultValue: function() {
return menuSplitGroupContextDefaultValue;
},
useIsInMenuSplitGroup: function() {
return useIsInMenuSplitGroup;
},
useMenuSplitGroupContext_unstable: function() {
return useMenuSplitGroupContext_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
/**
* Context used communicate with a child menu item that it is a trigger for a submenu
*/ const MenuSplitGroupContext = /*#__PURE__*/ _react.createContext(undefined);
const menuSplitGroupContextDefaultValue = {
setMultiline: ()=>null
};
const MenuSplitGroupContextProvider = MenuSplitGroupContext.Provider;
const useMenuSplitGroupContext_unstable = ()=>{
var _React_useContext;
return (_React_useContext = _react.useContext(MenuSplitGroupContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuSplitGroupContextDefaultValue;
};
const useIsInMenuSplitGroup = ()=>{
const context = useMenuSplitGroupContext_unstable();
return context !== menuSplitGroupContextDefaultValue;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/contexts/menuSplitGroupContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nexport type MenuSplitGroupContextValue = {\n setMultiline: (multiline: boolean) => void;\n};\n\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */\nconst MenuSplitGroupContext = React.createContext<MenuSplitGroupContextValue | undefined>(\n undefined,\n) as React.Context<MenuSplitGroupContextValue>;\n\nexport const menuSplitGroupContextDefaultValue = {\n setMultiline: (): null => null,\n};\n\nexport const MenuSplitGroupContextProvider = MenuSplitGroupContext.Provider;\nexport const useMenuSplitGroupContext_unstable = (): MenuSplitGroupContextValue =>\n React.useContext(MenuSplitGroupContext) ?? menuSplitGroupContextDefaultValue;\n\nexport const useIsInMenuSplitGroup = (): boolean => {\n const context = useMenuSplitGroupContext_unstable();\n return context !== menuSplitGroupContextDefaultValue;\n};\n"],"names":["React","MenuSplitGroupContext","createContext","undefined","menuSplitGroupContextDefaultValue","setMultiline","MenuSplitGroupContextProvider","Provider","useMenuSplitGroupContext_unstable","useContext","useIsInMenuSplitGroup","context"],"mappings":"AAAA;;;;;;;;;;;;iCAmBaM;;;qCAJAF;;;yBAQAM;;;IAHAF,iCAAAA;;;;;iEAlBU,QAAQ;AAM/B;;CAEC,GACD,MAAMP,sCAAwBD,OAAME,aAAa,CAC/CC;AAGK,MAAMC,oCAAoC;IAC/CC,cAAc,IAAY;AAC5B,EAAE;AAEK,MAAMC,gCAAgCL,sBAAsBM,QAAQ,CAAC;AACrE,0CAA0C;QAC/CP;WAAAA,CAAAA,oBAAAA,OAAMS,UAAU,CAACR,sBAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAA2CI;EAAkC;AAExE,MAAMM,wBAAwB;IACnC,MAAMC,UAAUH;IAChB,OAAOG,YAAYP;AACrB,EAAE"}

View File

@@ -0,0 +1,30 @@
'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, {
MenuTriggerContextProvider: function() {
return MenuTriggerContextProvider;
},
useMenuTriggerContext_unstable: function() {
return useMenuTriggerContext_unstable;
}
});
const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
/**
* Context used communicate with a child menu item that it is a trigger for a submenu
*/ const MenuTriggerContext = /*#__PURE__*/ _react.createContext(undefined);
const menuTriggerContextDefaultValue = false;
const MenuTriggerContextProvider = MenuTriggerContext.Provider;
const useMenuTriggerContext_unstable = ()=>{
var _React_useContext;
return (_React_useContext = _react.useContext(MenuTriggerContext)) !== null && _React_useContext !== void 0 ? _React_useContext : menuTriggerContextDefaultValue;
};

View File

@@ -0,0 +1 @@
{"version":3,"sources":["../src/contexts/menuTriggerContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\n/**\n * Context used communicate with a child menu item that it is a trigger for a submenu\n */\nconst MenuTriggerContext = React.createContext<boolean | undefined>(undefined) as React.Context<boolean>;\n\nconst menuTriggerContextDefaultValue = false;\n\nexport const MenuTriggerContextProvider = MenuTriggerContext.Provider;\nexport const useMenuTriggerContext_unstable = (): boolean =>\n React.useContext(MenuTriggerContext) ?? menuTriggerContextDefaultValue;\n"],"names":["React","MenuTriggerContext","createContext","undefined","menuTriggerContextDefaultValue","MenuTriggerContextProvider","Provider","useMenuTriggerContext_unstable","useContext"],"mappings":"AAAA;;;;;;;;;;;;8BAWaK;eAAAA;;kCACAE;;;;;iEAVU,QAAQ;AAE/B;;CAEC,GACD,MAAMN,mCAAqBD,OAAME,aAAa,CAAsBC;AAEpE,MAAMC,iCAAiC;AAEhC,mCAAmCH,mBAAmBK,QAAQ,CAAC;AAC/D,MAAMC,iCAAiC;QAC5CP;WAAAA,CAAAA,oBAAAA,OAAMQ,UAAU,CAACP,mBAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAAwCI;EAA+B"}