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 { useCarouselViewport_unstable } from './useCarouselViewport';
import { renderCarouselViewport_unstable } from './renderCarouselViewport';
import { useCarouselViewportStyles_unstable } from './useCarouselViewportStyles.styles';
import { useCarouselSliderContextValues_unstable } from '../CarouselSlider/CarouselSliderContext';
import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';
/**
* CarouselViewport component - TODO: add more docs
*/ export const CarouselViewport = /*#__PURE__*/ React.forwardRef((props, ref)=>{
const state = useCarouselViewport_unstable(props, ref);
useCarouselViewportStyles_unstable(state);
useCustomStyleHook_unstable('useCarouselViewportStyles_unstable')(state);
const context = useCarouselSliderContextValues_unstable(state);
return renderCarouselViewport_unstable(state, context);
});
CarouselViewport.displayName = 'CarouselViewport';
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/CarouselViewport/CarouselViewport.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselViewport_unstable } from './useCarouselViewport';\nimport { renderCarouselViewport_unstable } from './renderCarouselViewport';\nimport { useCarouselViewportStyles_unstable } from './useCarouselViewportStyles.styles';\nimport type { CarouselViewportProps } from './CarouselViewport.types';\nimport { useCarouselSliderContextValues_unstable } from '../CarouselSlider/CarouselSliderContext';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * CarouselViewport component - TODO: add more docs\n */\nexport const CarouselViewport: ForwardRefComponent<CarouselViewportProps> = React.forwardRef((props, ref) => {\n const state = useCarouselViewport_unstable(props, ref);\n\n useCarouselViewportStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselViewportStyles_unstable')(state);\n\n const context = useCarouselSliderContextValues_unstable(state);\n\n return renderCarouselViewport_unstable(state, context);\n});\n\nCarouselViewport.displayName = 'CarouselViewport';\n"],"names":["React","useCarouselViewport_unstable","renderCarouselViewport_unstable","useCarouselViewportStyles_unstable","useCarouselSliderContextValues_unstable","useCustomStyleHook_unstable","CarouselViewport","forwardRef","props","ref","state","context","displayName"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,+BAA+B,QAAQ,2BAA2B;AAC3E,SAASC,kCAAkC,QAAQ,qCAAqC;AAExF,SAASC,uCAAuC,QAAQ,0CAA0C;AAClG,SAASC,2BAA2B,QAAQ,kCAAkC;AAE9E;;CAEC,GACD,OAAO,MAAMC,iCAA+DN,MAAMO,UAAU,CAAC,CAACC,OAAOC;IACnG,MAAMC,QAAQT,6BAA6BO,OAAOC;IAElDN,mCAAmCO;IACnCL,4BAA4B,sCAAsCK;IAElE,MAAMC,UAAUP,wCAAwCM;IAExD,OAAOR,gCAAgCQ,OAAOC;AAChD,GAAG;AAEHL,iBAAiBM,WAAW,GAAG"}
@@ -0,0 +1,3 @@
/**
* State used in rendering CarouselViewport
*/ export { };
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/CarouselViewport/CarouselViewport.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { CarouselSliderContextValue } from '../CarouselSlider/CarouselSlider.types';\n\nexport type CarouselViewportSlots = {\n /**\n * The viewport outer container, defining the size of the carousels visible and interactable area\n */\n root: Slot<'div'>;\n};\n\n/**\n * CarouselViewport Props\n */\nexport type CarouselViewportProps = ComponentProps<CarouselViewportSlots>;\n\n/**\n * State used in rendering CarouselViewport\n */\nexport type CarouselViewportState = ComponentState<Required<CarouselViewportSlots>> & CarouselSliderContextValue;\n"],"names":[],"rangeMappings":";;","mappings":"AAeA;;CAEC,GACD,WAAiH"}
@@ -0,0 +1,4 @@
export { CarouselViewport } from './CarouselViewport';
export { renderCarouselViewport_unstable } from './renderCarouselViewport';
export { useCarouselViewport_unstable } from './useCarouselViewport';
export { carouselViewportClassNames, useCarouselViewportStyles_unstable } from './useCarouselViewportStyles.styles';
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/CarouselViewport/index.ts"],"sourcesContent":["export { CarouselViewport } from './CarouselViewport';\nexport type { CarouselViewportProps, CarouselViewportSlots, CarouselViewportState } from './CarouselViewport.types';\nexport { renderCarouselViewport_unstable } from './renderCarouselViewport';\nexport { useCarouselViewport_unstable } from './useCarouselViewport';\nexport { carouselViewportClassNames, useCarouselViewportStyles_unstable } from './useCarouselViewportStyles.styles';\n"],"names":["CarouselViewport","renderCarouselViewport_unstable","useCarouselViewport_unstable","carouselViewportClassNames","useCarouselViewportStyles_unstable"],"rangeMappings":";;;","mappings":"AAAA,SAASA,gBAAgB,QAAQ,qBAAqB;AAEtD,SAASC,+BAA+B,QAAQ,2BAA2B;AAC3E,SAASC,4BAA4B,QAAQ,wBAAwB;AACrE,SAASC,0BAA0B,EAAEC,kCAAkC,QAAQ,qCAAqC"}
@@ -0,0 +1,12 @@
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
import { assertSlots } from '@fluentui/react-utilities';
import { CarouselSliderContextProvider } from '../CarouselSlider/CarouselSliderContext';
/**
* Render the final JSX of CarouselViewport
*/ export const renderCarouselViewport_unstable = (state, contextValues)=>{
assertSlots(state);
return /*#__PURE__*/ _jsx(CarouselSliderContextProvider, {
value: contextValues.carouselSlider,
children: /*#__PURE__*/ _jsx(state.root, {})
});
};
@@ -0,0 +1 @@
{"version":3,"sources":["../src/components/CarouselViewport/renderCarouselViewport.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselViewportState, CarouselViewportSlots } from './CarouselViewport.types';\nimport { CarouselSliderContextValues, CarouselSliderContextProvider } from '../CarouselSlider/CarouselSliderContext';\n\n/**\n * Render the final JSX of CarouselViewport\n */\nexport const renderCarouselViewport_unstable = (\n state: CarouselViewportState,\n contextValues: CarouselSliderContextValues,\n) => {\n assertSlots<CarouselViewportSlots>(state);\n\n return (\n <CarouselSliderContextProvider value={contextValues.carouselSlider}>\n <state.root />\n </CarouselSliderContextProvider>\n );\n};\n"],"names":["assertSlots","CarouselSliderContextProvider","renderCarouselViewport_unstable","state","contextValues","value","carouselSlider","root"],"rangeMappings":";;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,4BAA4B;AAExD,SAAsCC,6BAA6B,QAAQ,0CAA0C;AAErH;;CAEC,GACD,OAAO,MAAMC,kCAAkC,CAC7CC,OACAC;IAEAJ,YAAmCG;IAEnC,qBACE,KAACF;QAA8BI,OAAOD,cAAcE,cAAc;kBAChE,cAAA,KAACH,MAAMI,IAAI;;AAGjB,EAAE"}
@@ -0,0 +1,71 @@
import * as React from 'react';
import { getIntrinsicElementProps, mergeCallbacks, slot, useMergedRefs } from '@fluentui/react-utilities';
import { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';
/**
* Create the state required to render CarouselViewport.
*
* The returned state can be modified with hooks such as useCarouselViewportStyles_unstable,
* before being passed to renderCarouselViewport_unstable.
*
* @param props - props from this instance of CarouselViewport
* @param ref - reference to root HTMLDivElement of CarouselViewport
*/ export const useCarouselViewport_unstable = (props, ref)=>{
const hasFocus = React.useRef(false);
const hasMouse = React.useRef(false);
const viewportRef = useCarouselContext((ctx)=>ctx.viewportRef);
const enableAutoplay = useCarouselContext((ctx)=>ctx.enableAutoplay);
const handleFocusCapture = React.useCallback((e)=>{
hasFocus.current = true;
// Will pause autoplay when focus is captured within viewport (if autoplay is initialized)
enableAutoplay(false, true);
}, [
enableAutoplay
]);
const handleBlurCapture = React.useCallback((e)=>{
// Will enable autoplay (if initialized) when focus exits viewport
if (!e.currentTarget.contains(e.relatedTarget)) {
hasFocus.current = false;
if (!hasMouse.current) {
enableAutoplay(true, true);
}
}
}, [
enableAutoplay
]);
const handleMouseEnter = React.useCallback((event)=>{
hasMouse.current = true;
enableAutoplay(false, true);
}, [
enableAutoplay
]);
const handleMouseLeave = React.useCallback((event)=>{
hasMouse.current = false;
if (!hasFocus.current) {
enableAutoplay(true, true);
}
}, [
enableAutoplay
]);
const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocusCapture);
const onBlurCapture = mergeCallbacks(props.onBlurCapture, handleBlurCapture);
const onMouseEnter = mergeCallbacks(props.onMouseEnter, handleMouseEnter);
const onMouseLeave = mergeCallbacks(props.onMouseLeave, handleMouseLeave);
return {
components: {
root: 'div'
},
root: slot.always(getIntrinsicElementProps('div', {
ref: useMergedRefs(ref, viewportRef),
role: 'presentation',
// Draggable ensures dragging is supported (even if not enabled)
draggable: true,
...props,
onFocusCapture,
onBlurCapture,
onMouseEnter,
onMouseLeave
}), {
elementType: 'div'
})
};
};
File diff suppressed because one or more lines are too long
@@ -0,0 +1,25 @@
import { __styles, mergeClasses } from '@griffel/react';
export const carouselViewportClassNames = {
root: 'fui-CarouselViewport'
};
/**
* Styles for the root slot
*/
const useStyles = /*#__PURE__*/__styles({
root: {
B2u0y6b: "f6dzj5z",
a9b677: "f14z66ap"
}
}, {
d: [".f6dzj5z{max-width:100%;}", ".f14z66ap{width:auto;}"]
});
/**
* Apply styling to the CarouselViewport slots based on the state
*/
export const useCarouselViewportStyles_unstable = state => {
'use no memo';
const styles = useStyles();
state.root.className = mergeClasses(carouselViewportClassNames.root, styles.root, state.root.className);
return state;
};
@@ -0,0 +1 @@
{"version":3,"names":["__styles","mergeClasses","carouselViewportClassNames","root","useStyles","B2u0y6b","a9b677","d","useCarouselViewportStyles_unstable","state","styles","className"],"sources":["useCarouselViewportStyles.styles.js"],"sourcesContent":["import { makeStyles, mergeClasses } from '@griffel/react';\nexport const carouselViewportClassNames = {\n root: 'fui-CarouselViewport'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n maxWidth: '100%',\n width: 'auto'\n }\n});\n/**\n * Apply styling to the CarouselViewport slots based on the state\n */ export const useCarouselViewportStyles_unstable = (state)=>{\n 'use no memo';\n const styles = useStyles();\n state.root.className = mergeClasses(carouselViewportClassNames.root, styles.root, state.root.className);\n return state;\n};\n"],"mappings":"AAAA,SAAAA,QAAA,EAAqBC,YAAY,QAAQ,gBAAgB;AACzD,OAAO,MAAMC,0BAA0B,GAAG;EACtCC,IAAI,EAAE;AACV,CAAC;AACD;AACA;AACA;AAAI,MAAMC,SAAS,gBAAGJ,QAAA;EAAAG,IAAA;IAAAE,OAAA;IAAAC,MAAA;EAAA;AAAA;EAAAC,CAAA;AAAA,CAKrB,CAAC;AACF;AACA;AACA;AAAI,OAAO,MAAMC,kCAAkC,GAAIC,KAAK,IAAG;EAC3D,aAAa;;EACb,MAAMC,MAAM,GAAGN,SAAS,CAAC,CAAC;EAC1BK,KAAK,CAACN,IAAI,CAACQ,SAAS,GAAGV,YAAY,CAACC,0BAA0B,CAACC,IAAI,EAAEO,MAAM,CAACP,IAAI,EAAEM,KAAK,CAACN,IAAI,CAACQ,SAAS,CAAC;EACvG,OAAOF,KAAK;AAChB,CAAC","ignoreList":[]}