Initial commit

This commit is contained in:
2025-03-07 19:22:02 +01:00
commit 4a98255d83
55743 changed files with 5280367 additions and 0 deletions
@@ -0,0 +1,16 @@
import * as React from 'react';
import { useBreadcrumb_unstable } from './useBreadcrumb';
import { renderBreadcrumb_unstable } from './renderBreadcrumb';
import { useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';
import { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
/**
* Breadcrumb component - TODO: add more docs
*/ export const Breadcrumb = /*#__PURE__*/ React.forwardRef((props, ref)=>{
const state = useBreadcrumb_unstable(props, ref);
const contextValues = useBreadcrumbContextValues_unstable(state);
useBreadcrumbStyles_unstable(state);
useCustomStyleHook_unstable('useBreadcrumbStyles_unstable')(state);
return renderBreadcrumb_unstable(state, contextValues);
});
Breadcrumb.displayName = 'Breadcrumb';
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import * as React from 'react';\nimport { useBreadcrumb_unstable } from './useBreadcrumb';\nimport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nimport { useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\nimport type { BreadcrumbProps } from './Breadcrumb.types';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useBreadcrumbContextValues_unstable } from './useBreadcrumbContextValue';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Breadcrumb component - TODO: add more docs\n */\nexport const Breadcrumb: ForwardRefComponent<BreadcrumbProps> = React.forwardRef((props, ref) => {\n const state = useBreadcrumb_unstable(props, ref);\n const contextValues = useBreadcrumbContextValues_unstable(state);\n\n useBreadcrumbStyles_unstable(state);\n useCustomStyleHook_unstable('useBreadcrumbStyles_unstable')(state);\n\n return renderBreadcrumb_unstable(state, contextValues);\n});\n\nBreadcrumb.displayName = 'Breadcrumb';\n"],"names":["React","useBreadcrumb_unstable","renderBreadcrumb_unstable","useBreadcrumbStyles_unstable","useBreadcrumbContextValues_unstable","useCustomStyleHook_unstable","Breadcrumb","forwardRef","props","ref","state","contextValues","displayName"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,4BAA4B,QAAQ,+BAA+B;AAG5E,SAASC,mCAAmC,QAAQ,8BAA8B;AAClF,SAASC,2BAA2B,QAAQ,kCAAkC;AAE9E;;CAEC,GACD,OAAO,MAAMC,2BAAmDN,MAAMO,UAAU,CAAC,CAACC,OAAOC;IACvF,MAAMC,QAAQT,uBAAuBO,OAAOC;IAC5C,MAAME,gBAAgBP,oCAAoCM;IAE1DP,6BAA6BO;IAC7BL,4BAA4B,gCAAgCK;IAE5D,OAAOR,0BAA0BQ,OAAOC;AAC1C,GAAG;AAEHL,WAAWM,WAAW,GAAG"}
@@ -0,0 +1,3 @@
/**
* State used in rendering Breadcrumb
*/ export { };
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/Breadcrumb.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\n/**\n * Data shared between breadcrumb components\n */\nexport type BreadcrumbContextValues = Required<Pick<BreadcrumbProps, 'size'>>;\n\nexport type BreadcrumbSlots = {\n /**\n * Root element of the component.\n */\n root: Slot<'nav'>;\n /**\n * Ordered list which contains items.\n */\n list?: Slot<'ol'>;\n};\n\n/**\n * Breadcrumb Props\n */\nexport type BreadcrumbProps = ComponentProps<BreadcrumbSlots> & {\n /**\n * Sets the focus behavior for the Breadcrumb.\n *\n * `tab`\n * This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Tab key and then release focus\n * after the last inner element.\n *\n * `arrow`\n * This behaviour will cycle through all elements inside of the Breadcrumb when pressing the Arrow key.\n *\n * @default 'tab'\n */\n focusMode?: 'arrow' | 'tab';\n\n /**\n * Controls size of Breadcrumb items and dividers.\n *\n * @default 'medium'\n */\n size?: 'small' | 'medium' | 'large';\n};\n\n/**\n * State used in rendering Breadcrumb\n */\nexport type BreadcrumbState = ComponentState<BreadcrumbSlots> & Required<Pick<BreadcrumbProps, 'size'>>;\n"],"names":[],"rangeMappings":";;","mappings":"AA4CA;;CAEC,GACD,WAAwG"}
@@ -0,0 +1,16 @@
import * as React from 'react';
const BreadcrumbContext = React.createContext(undefined);
/**
* @internal
*/ export const breadcrumbDefaultValue = {
size: 'medium'
};
/**
* @internal
*/ export const BreadcrumbProvider = BreadcrumbContext.Provider;
/**
* @internal
*/ export const useBreadcrumbContext_unstable = ()=>{
var _React_useContext;
return (_React_useContext = React.useContext(BreadcrumbContext)) !== null && _React_useContext !== void 0 ? _React_useContext : breadcrumbDefaultValue;
};
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/BreadcrumbContext.ts"],"sourcesContent":["import * as React from 'react';\nimport { BreadcrumbContextValues } from './Breadcrumb.types';\n\nconst BreadcrumbContext = React.createContext<BreadcrumbContextValues | undefined>(undefined);\n\n/**\n * @internal\n */\nexport const breadcrumbDefaultValue: BreadcrumbContextValues = {\n size: 'medium',\n};\n\n/**\n * @internal\n */\nexport const BreadcrumbProvider = BreadcrumbContext.Provider;\n\n/**\n * @internal\n */\nexport const useBreadcrumbContext_unstable = () => React.useContext(BreadcrumbContext) ?? breadcrumbDefaultValue;\n"],"names":["React","BreadcrumbContext","createContext","undefined","breadcrumbDefaultValue","size","BreadcrumbProvider","Provider","useBreadcrumbContext_unstable","useContext"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,MAAMC,oBAAoBD,MAAME,aAAa,CAAsCC;AAEnF;;CAEC,GACD,OAAO,MAAMC,yBAAkD;IAC7DC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMC,qBAAqBL,kBAAkBM,QAAQ,CAAC;AAE7D;;CAEC,GACD,OAAO,MAAMC,gCAAgC;QAAMR;WAAAA,CAAAA,oBAAAA,MAAMS,UAAU,CAACR,gCAAjBD,+BAAAA,oBAAuCI;AAAqB,EAAE"}
@@ -0,0 +1,5 @@
export { Breadcrumb } from './Breadcrumb';
export { BreadcrumbProvider, breadcrumbDefaultValue, useBreadcrumbContext_unstable } from './BreadcrumbContext';
export { renderBreadcrumb_unstable } from './renderBreadcrumb';
export { useBreadcrumb_unstable } from './useBreadcrumb';
export { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/index.ts"],"sourcesContent":["export { Breadcrumb } from './Breadcrumb';\nexport type { BreadcrumbContextValues, BreadcrumbProps, BreadcrumbSlots, BreadcrumbState } from './Breadcrumb.types';\nexport { BreadcrumbProvider, breadcrumbDefaultValue, useBreadcrumbContext_unstable } from './BreadcrumbContext';\nexport { renderBreadcrumb_unstable } from './renderBreadcrumb';\nexport { useBreadcrumb_unstable } from './useBreadcrumb';\nexport { breadcrumbClassNames, useBreadcrumbStyles_unstable } from './useBreadcrumbStyles.styles';\n"],"names":["Breadcrumb","BreadcrumbProvider","breadcrumbDefaultValue","useBreadcrumbContext_unstable","renderBreadcrumb_unstable","useBreadcrumb_unstable","breadcrumbClassNames","useBreadcrumbStyles_unstable"],"rangeMappings":";;;;","mappings":"AAAA,SAASA,UAAU,QAAQ,eAAe;AAE1C,SAASC,kBAAkB,EAAEC,sBAAsB,EAAEC,6BAA6B,QAAQ,sBAAsB;AAChH,SAASC,yBAAyB,QAAQ,qBAAqB;AAC/D,SAASC,sBAAsB,QAAQ,kBAAkB;AACzD,SAASC,oBAAoB,EAAEC,4BAA4B,QAAQ,+BAA+B"}
@@ -0,0 +1,16 @@
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
import { assertSlots } from '@fluentui/react-utilities';
import { BreadcrumbProvider } from './BreadcrumbContext';
/**
* Render the final JSX of Breadcrumb
*/ export const renderBreadcrumb_unstable = (state, contextValues)=>{
assertSlots(state);
return /*#__PURE__*/ _jsx(state.root, {
children: /*#__PURE__*/ _jsx(BreadcrumbProvider, {
value: contextValues,
children: state.list && /*#__PURE__*/ _jsx(state.list, {
children: state.root.children
})
})
});
};
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/renderBreadcrumb.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport { BreadcrumbProvider } from './BreadcrumbContext';\nimport type { BreadcrumbState, BreadcrumbSlots, BreadcrumbContextValues } from './Breadcrumb.types';\n/**\n * Render the final JSX of Breadcrumb\n */\nexport const renderBreadcrumb_unstable = (state: BreadcrumbState, contextValues: BreadcrumbContextValues) => {\n assertSlots<BreadcrumbSlots>(state);\n return (\n <state.root>\n <BreadcrumbProvider value={contextValues}>\n {state.list && <state.list>{state.root.children}</state.list>}\n </BreadcrumbProvider>\n </state.root>\n );\n};\n"],"names":["assertSlots","BreadcrumbProvider","renderBreadcrumb_unstable","state","contextValues","root","value","list","children"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,4BAA4B;AACxD,SAASC,kBAAkB,QAAQ,sBAAsB;AAEzD;;CAEC,GACD,OAAO,MAAMC,4BAA4B,CAACC,OAAwBC;IAChEJ,YAA6BG;IAC7B,qBACE,KAACA,MAAME,IAAI;kBACT,cAAA,KAACJ;YAAmBK,OAAOF;sBACxBD,MAAMI,IAAI,kBAAI,KAACJ,MAAMI,IAAI;0BAAEJ,MAAME,IAAI,CAACG,QAAQ;;;;AAIvD,EAAE"}
@@ -0,0 +1,42 @@
import * as React from 'react';
import { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';
import { useArrowNavigationGroup } from '@fluentui/react-tabster';
/**
* Create the state required to render Breadcrumb.
*
* The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,
* before being passed to renderBreadcrumb_unstable.
*
* @param props - props from this instance of Breadcrumb
* @param ref - reference to root HTMLElement of Breadcrumb
*/ export const useBreadcrumb_unstable = (props, ref)=>{
const { focusMode = 'tab', size = 'medium', list, ...rest } = props;
const focusAttributes = useArrowNavigationGroup({
circular: true,
axis: 'horizontal',
memorizeCurrent: true
});
var _props_arialabel;
return {
components: {
root: 'nav',
list: 'ol'
},
root: slot.always(getIntrinsicElementProps('nav', {
ref,
'aria-label': (_props_arialabel = props['aria-label']) !== null && _props_arialabel !== void 0 ? _props_arialabel : 'breadcrumb',
...focusMode === 'arrow' ? focusAttributes : {},
...rest
}), {
elementType: 'nav'
}),
list: slot.optional(list, {
renderByDefault: true,
defaultProps: {
role: 'list'
},
elementType: 'ol'
}),
size
};
};
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/useBreadcrumb.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { BreadcrumbProps, BreadcrumbState } from './Breadcrumb.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\n\n/**\n * Create the state required to render Breadcrumb.\n *\n * The returned state can be modified with hooks such as useBreadcrumbStyles_unstable,\n * before being passed to renderBreadcrumb_unstable.\n *\n * @param props - props from this instance of Breadcrumb\n * @param ref - reference to root HTMLElement of Breadcrumb\n */\nexport const useBreadcrumb_unstable = (props: BreadcrumbProps, ref: React.Ref<HTMLElement>): BreadcrumbState => {\n const { focusMode = 'tab', size = 'medium', list, ...rest } = props;\n\n const focusAttributes = useArrowNavigationGroup({\n circular: true,\n axis: 'horizontal',\n memorizeCurrent: true,\n });\n\n return {\n components: {\n root: 'nav',\n list: 'ol',\n },\n root: slot.always(\n getIntrinsicElementProps('nav', {\n ref,\n 'aria-label': props['aria-label'] ?? 'breadcrumb',\n ...(focusMode === 'arrow' ? focusAttributes : {}),\n ...rest,\n }),\n { elementType: 'nav' },\n ),\n list: slot.optional(list, { renderByDefault: true, defaultProps: { role: 'list' }, elementType: 'ol' }),\n size,\n };\n};\n"],"names":["React","getIntrinsicElementProps","slot","useArrowNavigationGroup","useBreadcrumb_unstable","props","ref","focusMode","size","list","rest","focusAttributes","circular","axis","memorizeCurrent","components","root","always","elementType","optional","renderByDefault","defaultProps","role"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,wBAAwB,EAAEC,IAAI,QAAQ,4BAA4B;AAE3E,SAASC,uBAAuB,QAAQ,0BAA0B;AAElE;;;;;;;;CAQC,GACD,OAAO,MAAMC,yBAAyB,CAACC,OAAwBC;IAC7D,MAAM,EAAEC,YAAY,KAAK,EAAEC,OAAO,QAAQ,EAAEC,IAAI,EAAE,GAAGC,MAAM,GAAGL;IAE9D,MAAMM,kBAAkBR,wBAAwB;QAC9CS,UAAU;QACVC,MAAM;QACNC,iBAAiB;IACnB;QAUoBT;IARpB,OAAO;QACLU,YAAY;YACVC,MAAM;YACNP,MAAM;QACR;QACAO,MAAMd,KAAKe,MAAM,CACfhB,yBAAyB,OAAO;YAC9BK;YACA,cAAcD,CAAAA,mBAAAA,KAAK,CAAC,aAAa,cAAnBA,8BAAAA,mBAAuB;YACrC,GAAIE,cAAc,UAAUI,kBAAkB,CAAC,CAAC;YAChD,GAAGD,IAAI;QACT,IACA;YAAEQ,aAAa;QAAM;QAEvBT,MAAMP,KAAKiB,QAAQ,CAACV,MAAM;YAAEW,iBAAiB;YAAMC,cAAc;gBAAEC,MAAM;YAAO;YAAGJ,aAAa;QAAK;QACrGV;IACF;AACF,EAAE"}
@@ -0,0 +1,9 @@
import * as React from 'react';
export function useBreadcrumbContextValues_unstable(state) {
const { size } = state;
return React.useMemo(()=>({
size
}), [
size
]);
}
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/Breadcrumb/useBreadcrumbContextValue.ts"],"sourcesContent":["import * as React from 'react';\nimport type { BreadcrumbContextValues, BreadcrumbState } from './Breadcrumb.types';\n\nexport function useBreadcrumbContextValues_unstable(state: BreadcrumbState): BreadcrumbContextValues {\n const { size } = state;\n return React.useMemo(() => ({ size }), [size]);\n}\n"],"names":["React","useBreadcrumbContextValues_unstable","state","size","useMemo"],"rangeMappings":";;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAG/B,OAAO,SAASC,oCAAoCC,KAAsB;IACxE,MAAM,EAAEC,IAAI,EAAE,GAAGD;IACjB,OAAOF,MAAMI,OAAO,CAAC,IAAO,CAAA;YAAED;QAAK,CAAA,GAAI;QAACA;KAAK;AAC/C"}
@@ -0,0 +1,19 @@
import { __resetStyles, mergeClasses } from '@griffel/react';
export const breadcrumbClassNames = {
root: 'fui-Breadcrumb',
list: 'fui-Breadcrumb__list'
};
const useListClassName = /*#__PURE__*/__resetStyles("rc5rb6b", null, [".rc5rb6b{list-style-type:none;display:flex;align-items:center;margin:0;padding:0;}"]);
/**
* Apply styling to the Breadcrumb slots based on the state
*/
export const useBreadcrumbStyles_unstable = state => {
'use no memo';
const listBaseClassName = useListClassName();
state.root.className = mergeClasses(breadcrumbClassNames.root, state.root.className);
if (state.list) {
state.list.className = mergeClasses(listBaseClassName, breadcrumbClassNames.list, state.list.className);
}
return state;
};
@@ -0,0 +1 @@
{"version":3,"names":["__resetStyles","mergeClasses","breadcrumbClassNames","root","list","useListClassName","useBreadcrumbStyles_unstable","state","listBaseClassName","className"],"sources":["useBreadcrumbStyles.styles.js"],"sourcesContent":["import { makeResetStyles, mergeClasses } from '@griffel/react';\nexport const breadcrumbClassNames = {\n root: 'fui-Breadcrumb',\n list: 'fui-Breadcrumb__list'\n};\nconst useListClassName = makeResetStyles({\n listStyleType: 'none',\n display: 'flex',\n alignItems: 'center',\n margin: 0,\n padding: 0\n});\n/**\n * Apply styling to the Breadcrumb slots based on the state\n */ export const useBreadcrumbStyles_unstable = (state)=>{\n 'use no memo';\n const listBaseClassName = useListClassName();\n state.root.className = mergeClasses(breadcrumbClassNames.root, state.root.className);\n if (state.list) {\n state.list.className = mergeClasses(listBaseClassName, breadcrumbClassNames.list, state.list.className);\n }\n return state;\n};\n"],"mappings":"AAAA,SAAAA,aAAA,EAA0BC,YAAY,QAAQ,gBAAgB;AAC9D,OAAO,MAAMC,oBAAoB,GAAG;EAChCC,IAAI,EAAE,gBAAgB;EACtBC,IAAI,EAAE;AACV,CAAC;AACD,MAAMC,gBAAgB,gBAAGL,aAAA,wGAMxB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMM,4BAA4B,GAAIC,KAAK,IAAG;EACrD,aAAa;;EACb,MAAMC,iBAAiB,GAAGH,gBAAgB,CAAC,CAAC;EAC5CE,KAAK,CAACJ,IAAI,CAACM,SAAS,GAAGR,YAAY,CAACC,oBAAoB,CAACC,IAAI,EAAEI,KAAK,CAACJ,IAAI,CAACM,SAAS,CAAC;EACpF,IAAIF,KAAK,CAACH,IAAI,EAAE;IACZG,KAAK,CAACH,IAAI,CAACK,SAAS,GAAGR,YAAY,CAACO,iBAAiB,EAAEN,oBAAoB,CAACE,IAAI,EAAEG,KAAK,CAACH,IAAI,CAACK,SAAS,CAAC;EAC3G;EACA,OAAOF,KAAK;AAChB,CAAC","ignoreList":[]}