@fluentui/react-carousel 9.8.5 → 9.8.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +46 -10
- package/dist/index.d.ts +13 -12
- package/lib/components/Carousel/Carousel.js +1 -0
- package/lib/components/Carousel/Carousel.js.map +1 -1
- package/lib/components/Carousel/renderCarousel.js.map +1 -1
- package/lib/components/Carousel/useCarousel.js +1 -0
- package/lib/components/Carousel/useCarousel.js.map +1 -1
- package/lib/components/Carousel/useCarouselContextValues.js +1 -0
- package/lib/components/Carousel/useCarouselContextValues.js.map +1 -1
- package/lib/components/Carousel/useCarouselStyles.styles.js +2 -0
- package/lib/components/Carousel/useCarouselStyles.styles.js.map +1 -1
- package/lib/components/Carousel/useCarouselStyles.styles.raw.js +1 -0
- package/lib/components/Carousel/useCarouselStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.js +1 -0
- package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.js.map +1 -1
- package/lib/components/CarouselAutoplayButton/renderCarouselAutoplayButton.js.map +1 -1
- package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButton.js +1 -0
- package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButton.js.map +1 -1
- package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js +2 -0
- package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js.map +1 -1
- package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js +1 -0
- package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselButton/CarouselButton.js +1 -0
- package/lib/components/CarouselButton/CarouselButton.js.map +1 -1
- package/lib/components/CarouselButton/renderCarouselButton.js.map +1 -1
- package/lib/components/CarouselButton/useCarouselButton.js +2 -1
- package/lib/components/CarouselButton/useCarouselButton.js.map +1 -1
- package/lib/components/CarouselButton/useCarouselButtonStyles.styles.js +2 -0
- package/lib/components/CarouselButton/useCarouselButtonStyles.styles.js.map +1 -1
- package/lib/components/CarouselButton/useCarouselButtonStyles.styles.raw.js +1 -0
- package/lib/components/CarouselButton/useCarouselButtonStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselCard/CarouselCard.js +1 -0
- package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
- package/lib/components/CarouselCard/renderCarouselCard.js.map +1 -1
- package/lib/components/CarouselCard/useCarouselCard.js +1 -0
- package/lib/components/CarouselCard/useCarouselCard.js.map +1 -1
- package/lib/components/CarouselCard/useCarouselCardStyles.styles.js +2 -0
- package/lib/components/CarouselCard/useCarouselCardStyles.styles.js.map +1 -1
- package/lib/components/CarouselCard/useCarouselCardStyles.styles.raw.js +1 -0
- package/lib/components/CarouselCard/useCarouselCardStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselContext.js +1 -0
- package/lib/components/CarouselContext.js.map +1 -1
- package/lib/components/CarouselContext.types.js.map +1 -1
- package/lib/components/CarouselNav/CarouselNav.js +1 -0
- package/lib/components/CarouselNav/CarouselNav.js.map +1 -1
- package/lib/components/CarouselNav/CarouselNavContext.js +1 -0
- package/lib/components/CarouselNav/CarouselNavContext.js.map +1 -1
- package/lib/components/CarouselNav/CarouselNavIndexContext.js +1 -0
- package/lib/components/CarouselNav/CarouselNavIndexContext.js.map +1 -1
- package/lib/components/CarouselNav/renderCarouselNav.js.map +1 -1
- package/lib/components/CarouselNav/useCarouselNav.js +1 -0
- package/lib/components/CarouselNav/useCarouselNav.js.map +1 -1
- package/lib/components/CarouselNav/useCarouselNavStyles.styles.js +2 -0
- package/lib/components/CarouselNav/useCarouselNavStyles.styles.js.map +1 -1
- package/lib/components/CarouselNav/useCarouselNavStyles.styles.raw.js +1 -0
- package/lib/components/CarouselNav/useCarouselNavStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselNavButton/CarouselNavButton.js +1 -0
- package/lib/components/CarouselNavButton/CarouselNavButton.js.map +1 -1
- package/lib/components/CarouselNavButton/renderCarouselNavButton.js.map +1 -1
- package/lib/components/CarouselNavButton/useCarouselNavButton.js +2 -1
- package/lib/components/CarouselNavButton/useCarouselNavButton.js.map +1 -1
- package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js +2 -0
- package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js.map +1 -1
- package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js +1 -0
- package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselNavContainer/CarouselNavContainer.js +1 -0
- package/lib/components/CarouselNavContainer/CarouselNavContainer.js.map +1 -1
- package/lib/components/CarouselNavContainer/renderCarouselNavContainer.js.map +1 -1
- package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js +2 -0
- package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js.map +1 -1
- package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js +1 -0
- package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselNavImageButton/CarouselNavImageButton.js +1 -0
- package/lib/components/CarouselNavImageButton/CarouselNavImageButton.js.map +1 -1
- package/lib/components/CarouselNavImageButton/renderCarouselNavImageButton.js.map +1 -1
- package/lib/components/CarouselNavImageButton/useCarouselNavImageButton.js +2 -1
- package/lib/components/CarouselNavImageButton/useCarouselNavImageButton.js.map +1 -1
- package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js +2 -0
- package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js.map +1 -1
- package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js +1 -0
- package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselSlider/CarouselSlider.js +1 -0
- package/lib/components/CarouselSlider/CarouselSlider.js.map +1 -1
- package/lib/components/CarouselSlider/CarouselSliderContext.js +1 -0
- package/lib/components/CarouselSlider/CarouselSliderContext.js.map +1 -1
- package/lib/components/CarouselSlider/renderCarouselSlider.js.map +1 -1
- package/lib/components/CarouselSlider/useCarouselSlider.js +1 -0
- package/lib/components/CarouselSlider/useCarouselSlider.js.map +1 -1
- package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.js +2 -0
- package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.js.map +1 -1
- package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js +1 -0
- package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js.map +1 -1
- package/lib/components/CarouselViewport/CarouselViewport.js +1 -0
- package/lib/components/CarouselViewport/CarouselViewport.js.map +1 -1
- package/lib/components/CarouselViewport/renderCarouselViewport.js.map +1 -1
- package/lib/components/CarouselViewport/useCarouselViewport.js +1 -0
- package/lib/components/CarouselViewport/useCarouselViewport.js.map +1 -1
- package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js +2 -0
- package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js.map +1 -1
- package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js +1 -0
- package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js.map +1 -1
- package/lib/components/useEmblaCarousel.js +1 -0
- package/lib/components/useEmblaCarousel.js.map +1 -1
- package/lib-commonjs/components/Carousel/Carousel.js +1 -0
- package/lib-commonjs/components/Carousel/Carousel.js.map +1 -1
- package/lib-commonjs/components/Carousel/renderCarousel.js.map +1 -1
- package/lib-commonjs/components/Carousel/useCarousel.js +1 -0
- package/lib-commonjs/components/Carousel/useCarousel.js.map +1 -1
- package/lib-commonjs/components/Carousel/useCarouselContextValues.js +1 -0
- package/lib-commonjs/components/Carousel/useCarouselContextValues.js.map +1 -1
- package/lib-commonjs/components/Carousel/useCarouselStyles.styles.js +1 -0
- package/lib-commonjs/components/Carousel/useCarouselStyles.styles.js.map +1 -1
- package/lib-commonjs/components/Carousel/useCarouselStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/Carousel/useCarouselStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.js +1 -0
- package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.js.map +1 -1
- package/lib-commonjs/components/CarouselAutoplayButton/renderCarouselAutoplayButton.js.map +1 -1
- package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButton.js +1 -0
- package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButton.js.map +1 -1
- package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselButton/CarouselButton.js +1 -0
- package/lib-commonjs/components/CarouselButton/CarouselButton.js.map +1 -1
- package/lib-commonjs/components/CarouselButton/renderCarouselButton.js.map +1 -1
- package/lib-commonjs/components/CarouselButton/useCarouselButton.js +2 -1
- package/lib-commonjs/components/CarouselButton/useCarouselButton.js.map +1 -1
- package/lib-commonjs/components/CarouselButton/useCarouselButtonStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselButton/useCarouselButtonStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselButton/useCarouselButtonStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselButton/useCarouselButtonStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselCard/CarouselCard.js +1 -0
- package/lib-commonjs/components/CarouselCard/CarouselCard.js.map +1 -1
- package/lib-commonjs/components/CarouselCard/renderCarouselCard.js.map +1 -1
- package/lib-commonjs/components/CarouselCard/useCarouselCard.js +1 -0
- package/lib-commonjs/components/CarouselCard/useCarouselCard.js.map +1 -1
- package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselContext.js +1 -0
- package/lib-commonjs/components/CarouselContext.js.map +1 -1
- package/lib-commonjs/components/CarouselContext.types.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/CarouselNav.js +1 -0
- package/lib-commonjs/components/CarouselNav/CarouselNav.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/CarouselNavContext.js +1 -0
- package/lib-commonjs/components/CarouselNav/CarouselNavContext.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/CarouselNavIndexContext.js +1 -0
- package/lib-commonjs/components/CarouselNav/CarouselNavIndexContext.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/renderCarouselNav.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/useCarouselNav.js +1 -0
- package/lib-commonjs/components/CarouselNav/useCarouselNav.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselNavButton/CarouselNavButton.js +1 -0
- package/lib-commonjs/components/CarouselNavButton/CarouselNavButton.js.map +1 -1
- package/lib-commonjs/components/CarouselNavButton/renderCarouselNavButton.js.map +1 -1
- package/lib-commonjs/components/CarouselNavButton/useCarouselNavButton.js +2 -1
- package/lib-commonjs/components/CarouselNavButton/useCarouselNavButton.js.map +1 -1
- package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselNavContainer/CarouselNavContainer.js +1 -0
- package/lib-commonjs/components/CarouselNavContainer/CarouselNavContainer.js.map +1 -1
- package/lib-commonjs/components/CarouselNavContainer/renderCarouselNavContainer.js.map +1 -1
- package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselNavImageButton/CarouselNavImageButton.js +1 -0
- package/lib-commonjs/components/CarouselNavImageButton/CarouselNavImageButton.js.map +1 -1
- package/lib-commonjs/components/CarouselNavImageButton/renderCarouselNavImageButton.js.map +1 -1
- package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButton.js +2 -1
- package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButton.js.map +1 -1
- package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselSlider/CarouselSlider.js +1 -0
- package/lib-commonjs/components/CarouselSlider/CarouselSlider.js.map +1 -1
- package/lib-commonjs/components/CarouselSlider/CarouselSliderContext.js +1 -0
- package/lib-commonjs/components/CarouselSlider/CarouselSliderContext.js.map +1 -1
- package/lib-commonjs/components/CarouselSlider/renderCarouselSlider.js.map +1 -1
- package/lib-commonjs/components/CarouselSlider/useCarouselSlider.js +1 -0
- package/lib-commonjs/components/CarouselSlider/useCarouselSlider.js.map +1 -1
- package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/CarouselViewport/CarouselViewport.js +1 -0
- package/lib-commonjs/components/CarouselViewport/CarouselViewport.js.map +1 -1
- package/lib-commonjs/components/CarouselViewport/renderCarouselViewport.js.map +1 -1
- package/lib-commonjs/components/CarouselViewport/useCarouselViewport.js +1 -0
- package/lib-commonjs/components/CarouselViewport/useCarouselViewport.js.map +1 -1
- package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.js +1 -0
- package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.js.map +1 -1
- package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js +1 -0
- package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js.map +1 -1
- package/lib-commonjs/components/useEmblaCarousel.js +1 -0
- package/lib-commonjs/components/useEmblaCarousel.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CarouselSlider/useCarouselSliderStyles.styles.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/components/CarouselSlider/useCarouselSliderStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\n\nimport type { CarouselSliderSlots, CarouselSliderState } from './CarouselSlider.types';\n\nexport const carouselSliderClassNames: SlotClassNames<CarouselSliderSlots> = {\n root: 'fui-CarouselSlider',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n display: 'flex',\n overflowAnchor: 'none',\n },\n});\n\n/**\n * Apply styling to the CarouselSlider slots based on the state\n */\nexport const useCarouselSliderStyles_unstable = (state: CarouselSliderState): CarouselSliderState => {\n 'use no memo';\n\n const styles = useStyles();\n\n state.root.className = mergeClasses(carouselSliderClassNames.root, styles.root, state.root.className);\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","carouselSliderClassNames","root","useStyles","display","overflowAnchor","useCarouselSliderStyles_unstable","state","styles","className"],"mappings":"AAAA;;;;;;;;;;;;4BAOaE;;;oCAiBAK;;;;uBAtB4B,iBAAiB;AAKnD,MAAML,2BAAgE;IAC3EC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYJ,iBAAAA,EAAW;IAC3BG,MAAM;QACJE,SAAS;QACTC,gBAAgB;IAClB;AACF;AAKO,MAAMC,mCAAmC,CAACC;IAC/C;IAEA,MAAMC,SAASL;IAEfI,MAAML,IAAI,CAACO,SAAS,OAAGT,mBAAAA,EAAaC,yBAAyBC,IAAI,EAAEM,OAAON,IAAI,EAAEK,MAAML,IAAI,CAACO,SAAS;IAEpG,OAAOF;AACT,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CarouselViewport/CarouselViewport.tsx"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/components/CarouselViewport/CarouselViewport.tsx"],"sourcesContent":["'use client';\n\nimport * 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"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;qCAEc,wBAAwB;wCACrB,2BAA2B;iDACxB,qCAAqC;uCAEhC,0CAA0C;qCACtD,kCAAkC;AAKvE,MAAMM,mBAAAA,WAAAA,GAA+DN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IACnG,MAAMC,YAAQT,iDAAAA,EAA6BO,OAAOC;QAElDN,mEAAAA,EAAmCO;QACnCL,gDAAAA,EAA4B,sCAAsCK;IAElE,MAAMC,cAAUP,8DAAAA,EAAwCM;IAExD,WAAOR,uDAAAA,EAAgCQ,OAAOC;AAChD,GAAG;AAEHL,iBAAiBM,WAAW,GAAG"}
|
|
@@ -1 +1 @@
|
|
|
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"],"mappings":";;;;+
|
|
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 { JSXElement } 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): JSXElement => {\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"],"mappings":";;;;+BAWaE;;;;;;4BAVb,gDAAiD;gCAErB,4BAA4B;uCAGmB,0CAA0C;AAK9G,wCAAwC,CAC7CC,OACAC;QAEAJ,2BAAAA,EAAmCG;IAEnC,OAAA,WAAA,OACE,eAAA,EAACF,oDAAAA,EAAAA;QAA8BI,OAAOD,cAAcE,cAAc;kBAChE,WAAA,OAAA,eAAA,EAACH,MAAMI,IAAI,EAAA,CAAA;;AAGjB,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CarouselViewport/useCarouselViewport.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/components/CarouselViewport/useCarouselViewport.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { getIntrinsicElementProps, mergeCallbacks, slot, useMergedRefs } from '@fluentui/react-utilities';\nimport type { CarouselViewportProps, CarouselViewportState } from './CarouselViewport.types';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\n\n/**\n * Create the state required to render CarouselViewport.\n *\n * The returned state can be modified with hooks such as useCarouselViewportStyles_unstable,\n * before being passed to renderCarouselViewport_unstable.\n *\n * @param props - props from this instance of CarouselViewport\n * @param ref - reference to root HTMLDivElement of CarouselViewport\n */\nexport const useCarouselViewport_unstable = (\n props: CarouselViewportProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselViewportState => {\n const hasFocus = React.useRef(false);\n const hasMouse = React.useRef(false);\n const viewportRef = useCarouselContext(ctx => ctx.viewportRef);\n const enableAutoplay = useCarouselContext(ctx => ctx.enableAutoplay);\n\n const handleFocusCapture = React.useCallback(() => {\n hasFocus.current = true;\n // Will pause autoplay when focus is captured within viewport (if autoplay is initialized)\n enableAutoplay(false, true);\n }, [enableAutoplay]);\n\n const handleBlurCapture = React.useCallback(\n (e: React.FocusEvent) => {\n // Will enable autoplay (if initialized) when focus exits viewport\n if (!e.currentTarget.contains(e.relatedTarget)) {\n hasFocus.current = false;\n if (!hasMouse.current) {\n enableAutoplay(true, true);\n }\n }\n },\n [enableAutoplay],\n );\n\n const handleMouseEnter = React.useCallback(() => {\n hasMouse.current = true;\n enableAutoplay(false, true);\n }, [enableAutoplay]);\n const handleMouseLeave = React.useCallback(() => {\n hasMouse.current = false;\n if (!hasFocus.current) {\n enableAutoplay(true, true);\n }\n }, [enableAutoplay]);\n\n const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocusCapture);\n const onBlurCapture = mergeCallbacks(props.onBlurCapture, handleBlurCapture);\n const onMouseEnter = mergeCallbacks(props.onMouseEnter, handleMouseEnter);\n const onMouseLeave = mergeCallbacks(props.onMouseLeave, handleMouseLeave);\n\n return {\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref: useMergedRefs(ref, viewportRef),\n role: 'presentation',\n // Draggable ensures dragging is supported (even if not enabled)\n draggable: true,\n ...props,\n onFocusCapture,\n onBlurCapture,\n onMouseEnter,\n onMouseLeave,\n }),\n { elementType: 'div' },\n ),\n };\n};\n"],"names":["React","getIntrinsicElementProps","mergeCallbacks","slot","useMergedRefs","useCarouselContext_unstable","useCarouselContext","useCarouselViewport_unstable","props","ref","hasFocus","useRef","hasMouse","viewportRef","ctx","enableAutoplay","handleFocusCapture","useCallback","current","handleBlurCapture","e","currentTarget","contains","relatedTarget","handleMouseEnter","handleMouseLeave","onFocusCapture","onBlurCapture","onMouseEnter","onMouseLeave","components","root","always","role","draggable","elementType"],"mappings":"AAAA;;;;;+BAgBaO;;;;;;;iEAdU,QAAQ;gCAC+C,4BAA4B;iCAExC,qBAAqB;AAWhF,qCAAqC,CAC1CC,OACAC;IAEA,MAAMC,WAAWV,OAAMW,MAAM,CAAC;IAC9B,MAAMC,WAAWZ,OAAMW,MAAM,CAAC;IAC9B,MAAME,kBAAcP,4CAAAA,EAAmBQ,CAAAA,MAAOA,IAAID,WAAW;IAC7D,MAAME,qBAAiBT,4CAAAA,EAAmBQ,CAAAA,MAAOA,IAAIC,cAAc;IAEnE,MAAMC,qBAAqBhB,OAAMiB,WAAW,CAAC;QAC3CP,SAASQ,OAAO,GAAG;QACnB,0FAA0F;QAC1FH,eAAe,OAAO;IACxB,GAAG;QAACA;KAAe;IAEnB,MAAMI,oBAAoBnB,OAAMiB,WAAW,CACzC,CAACG;QACC,kEAAkE;QAClE,IAAI,CAACA,EAAEC,aAAa,CAACC,QAAQ,CAACF,EAAEG,aAAa,GAAG;YAC9Cb,SAASQ,OAAO,GAAG;YACnB,IAAI,CAACN,SAASM,OAAO,EAAE;gBACrBH,eAAe,MAAM;YACvB;QACF;IACF,GACA;QAACA;KAAe;IAGlB,MAAMS,mBAAmBxB,OAAMiB,WAAW,CAAC;QACzCL,SAASM,OAAO,GAAG;QACnBH,eAAe,OAAO;IACxB,GAAG;QAACA;KAAe;IACnB,MAAMU,mBAAmBzB,OAAMiB,WAAW,CAAC;QACzCL,SAASM,OAAO,GAAG;QACnB,IAAI,CAACR,SAASQ,OAAO,EAAE;YACrBH,eAAe,MAAM;QACvB;IACF,GAAG;QAACA;KAAe;IAEnB,MAAMW,qBAAiBxB,8BAAAA,EAAeM,MAAMkB,cAAc,EAAEV;IAC5D,MAAMW,oBAAgBzB,8BAAAA,EAAeM,MAAMmB,aAAa,EAAER;IAC1D,MAAMS,mBAAe1B,8BAAAA,EAAeM,MAAMoB,YAAY,EAAEJ;IACxD,MAAMK,mBAAe3B,8BAAAA,EAAeM,MAAMqB,YAAY,EAAEJ;IAExD,OAAO;QACLK,YAAY;YACVC,MAAM;QACR;QACAA,MAAM5B,oBAAAA,CAAK6B,MAAM,KACf/B,wCAAAA,EAAyB,OAAO;YAC9BQ,SAAKL,6BAAAA,EAAcK,KAAKI;YACxBoB,MAAM;YACN,gEAAgE;YAChEC,WAAW;YACX,GAAG1B,KAAK;YACRkB;YACAC;YACAC;YACAC;QACF,IACA;YAAEM,aAAa;QAAM;IAEzB;AACF,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCarouselViewportStyles.styles.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["useCarouselViewportStyles.styles.js"],"sourcesContent":["'use client';\nimport { 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"],"names":["__styles","mergeClasses","carouselViewportClassNames","root","useStyles","B2u0y6b","a9b677","d","useCarouselViewportStyles_unstable","state","styles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAECE,0BAA0B;;;IAatBM,kCAAkC;;;;uBAdV,gBAAgB;AAClD,mCAAmC;IACtCL,IAAI,EAAE;AACV,CAAC;AACD;;CAEA,GAAI,MAAMC,SAAS,GAAA,WAAA,OAAGJ,eAAA,EAAA;IAAAG,IAAA,EAAA;QAAAE,OAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;QAAA;KAAA;AAAA,CAKrB,CAAC;AAGS,4CAA4CE,KAAK,IAAG;IAC3D,aAAa;IACb,MAAMC,MAAM,GAAGN,SAAS,CAAC,CAAC;IAC1BK,KAAK,CAACN,IAAI,CAACQ,SAAS,OAAGV,mBAAY,EAACC,0BAA0B,CAACC,IAAI,EAAEO,MAAM,CAACP,IAAI,EAAEM,KAAK,CAACN,IAAI,CAACQ,SAAS,CAAC;IACvG,OAAOF,KAAK;AAChB,CAAC"}
|
package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/CarouselViewport/useCarouselViewportStyles.styles.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"sources":["../src/components/CarouselViewport/useCarouselViewportStyles.styles.ts"],"sourcesContent":["'use client';\n\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport type { SlotClassNames } from '@fluentui/react-utilities';\nimport type { CarouselViewportSlots, CarouselViewportState } from './CarouselViewport.types';\n\nexport const carouselViewportClassNames: SlotClassNames<CarouselViewportSlots> = {\n root: 'fui-CarouselViewport',\n};\n\n/**\n * Styles for the root slot\n */\nconst useStyles = makeStyles({\n root: {\n maxWidth: '100%',\n width: 'auto',\n },\n});\n\n/**\n * Apply styling to the CarouselViewport slots based on the state\n */\nexport const useCarouselViewportStyles_unstable = (state: CarouselViewportState): CarouselViewportState => {\n 'use no memo';\n\n const styles = useStyles();\n state.root.className = mergeClasses(carouselViewportClassNames.root, styles.root, state.root.className);\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","carouselViewportClassNames","root","useStyles","maxWidth","width","useCarouselViewportStyles_unstable","state","styles","className"],"mappings":"AAAA;;;;;;;;;;;;8BAMaE;;;sCAiBAK;;;;uBArB4B,iBAAiB;AAInD,MAAML,6BAAoE;IAC/EC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,gBAAYJ,iBAAAA,EAAW;IAC3BG,MAAM;QACJE,UAAU;QACVC,OAAO;IACT;AACF;AAKO,MAAMC,qCAAqC,CAACC;IACjD;IAEA,MAAMC,SAASL;IACfI,MAAML,IAAI,CAACO,SAAS,OAAGT,mBAAAA,EAAaC,2BAA2BC,IAAI,EAAEM,OAAON,IAAI,EAAEK,MAAML,IAAI,CAACO,SAAS;IAEtG,OAAOF;AACT,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/useEmblaCarousel.ts"],"sourcesContent":["import { type EventHandler, useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport EmblaCarousel, { EmblaPluginType, type EmblaCarouselType, type EmblaOptionsType } from 'embla-carousel';\nimport * as React from 'react';\n\nimport { carouselCardClassNames } from './CarouselCard/useCarouselCardStyles.styles';\nimport { carouselSliderClassNames } from './CarouselSlider/useCarouselSliderStyles.styles';\nimport { CarouselMotion, CarouselUpdateData, CarouselVisibilityEventDetail } from '../Carousel';\nimport Autoplay from 'embla-carousel-autoplay';\nimport Fade from 'embla-carousel-fade';\nimport { pointerEventPlugin } from './pointerEvents';\nimport type { CarouselIndexChangeData } from './CarouselContext.types';\n\ntype EmblaEventHandler = Parameters<EmblaCarouselType['on']>[1];\n\nconst sliderClassname = `.${carouselSliderClassNames.root}`;\n\nconst DEFAULT_EMBLA_OPTIONS: EmblaOptionsType = {\n containScroll: 'trimSnaps',\n inViewThreshold: 0.99,\n watchDrag: false,\n skipSnaps: true,\n\n container: sliderClassname,\n slides: `.${carouselCardClassNames.root}`,\n};\n\nexport const EMBLA_VISIBILITY_EVENT = 'embla:visibilitychange';\n\nexport function setTabsterDefault(element: Element, isDefault: boolean) {\n const tabsterAttr = element.getAttribute('data-tabster');\n\n if (tabsterAttr) {\n const tabsterAttributes = JSON.parse(tabsterAttr);\n if (tabsterAttributes.focusable) {\n // If tabster.focusable isn't present, we will ignore.\n tabsterAttributes.focusable.isDefault = isDefault;\n element.setAttribute('data-tabster', JSON.stringify(tabsterAttributes));\n }\n }\n}\n\nexport function useEmblaCarousel(\n options: Pick<EmblaOptionsType, 'align' | 'direction' | 'loop' | 'slidesToScroll' | 'watchDrag' | 'containScroll'> & {\n defaultActiveIndex: number | undefined;\n activeIndex: number | undefined;\n motion?: CarouselMotion;\n onDragIndexChange?: EventHandler<CarouselIndexChangeData>;\n onAutoplayIndexChange?: EventHandler<CarouselIndexChangeData>;\n autoplayInterval?: number;\n },\n) {\n const {\n align,\n autoplayInterval,\n direction,\n loop,\n slidesToScroll,\n watchDrag,\n containScroll,\n motion,\n onDragIndexChange,\n onAutoplayIndexChange,\n } = options;\n\n const motionType = typeof motion === 'string' ? motion : motion?.kind ?? 'slide';\n const motionDuration = typeof motion === 'string' ? 25 : motion?.duration ?? 25;\n\n const [activeIndex, setActiveIndex] = useControllableState({\n defaultState: options.defaultActiveIndex,\n state: options.activeIndex,\n initialState: 0,\n });\n\n const onDragEvent = useEventCallback((event: PointerEvent | MouseEvent, index: number) => {\n onDragIndexChange?.(event, { event, type: 'drag', index });\n });\n\n const emblaOptions = React.useRef<EmblaOptionsType>({\n align,\n direction,\n loop,\n slidesToScroll,\n startIndex: activeIndex,\n watchDrag,\n containScroll,\n duration: motionDuration,\n });\n\n const emblaApi = React.useRef<EmblaCarouselType | null>(null);\n const autoplayRef = React.useRef<boolean>(false);\n\n const resetAutoplay = React.useCallback(() => {\n emblaApi.current?.plugins().autoplay?.reset();\n }, []);\n\n const getPlugins = React.useCallback(() => {\n const plugins: EmblaPluginType[] = [];\n\n plugins.push(\n Autoplay({\n playOnInit: autoplayRef.current,\n delay: autoplayInterval,\n /* stopOnInteraction: false causes autoplay to restart on interaction end*/\n /* we'll handle this logic to ensure autoplay state is respected */\n stopOnInteraction: true,\n stopOnFocusIn: false, // We'll handle this one manually to prevent conflicts with tabster\n stopOnMouseEnter: false, // We will handle this manually to align functionality\n }),\n );\n\n // Optionally add Fade plugin\n if (motionType === 'fade') {\n plugins.push(Fade());\n }\n\n if (watchDrag) {\n plugins.push(\n pointerEventPlugin({\n onSelectViaDrag: onDragEvent,\n }),\n );\n }\n\n return plugins;\n }, [motionType, onDragEvent, watchDrag, autoplayInterval]);\n\n /* This function enables autoplay to pause/play without affecting underlying state\n * Useful for pausing on focus etc. without having to reinitialize or set autoplay to off\n */\n const enableAutoplay = React.useCallback(\n (autoplay: boolean, temporary?: boolean) => {\n if (!temporary) {\n autoplayRef.current = autoplay;\n }\n\n if (autoplay && autoplayRef.current) {\n // Autoplay should only enable in the case where underlying state is true, temporary should not override\n emblaApi.current?.plugins().autoplay?.play();\n // Reset after play to ensure timing and any focus/mouse pause state is reset.\n resetAutoplay();\n } else if (!autoplay) {\n emblaApi.current?.plugins().autoplay?.stop();\n }\n },\n [resetAutoplay],\n );\n\n // Listeners contains callbacks for UI elements that may require state update based on embla changes\n const listeners = React.useRef(new Set<(data: CarouselUpdateData) => void>());\n const subscribeForValues = React.useCallback((listener: (data: CarouselUpdateData) => void) => {\n listeners.current.add(listener);\n\n return () => {\n listeners.current.delete(listener);\n };\n }, []);\n\n const updateIndex = () => {\n const newIndex = emblaApi.current?.selectedScrollSnap() ?? 0;\n const slides = emblaApi.current?.slideNodes();\n const slideRegistry = emblaApi.current?.internalEngine().slideRegistry;\n const actualIndex = slideRegistry?.[newIndex]?.[0] ?? 0;\n\n // We set the first card in the current group as the default tabster index for focus capture\n slides?.forEach((slide, slideIndex) => {\n setTabsterDefault(slide, slideIndex === actualIndex);\n });\n setActiveIndex(newIndex);\n };\n\n const handleReinit = useEventCallback(() => {\n const nodes: HTMLElement[] = emblaApi.current?.slideNodes() ?? [];\n const groupIndexList: number[][] = emblaApi.current?.internalEngine().slideRegistry ?? [];\n const navItemsCount = groupIndexList.length > 0 ? groupIndexList.length : nodes.length;\n const canLoop = emblaApi.current?.internalEngine().slideLooper.canLoop();\n\n const data: CarouselUpdateData = {\n navItemsCount,\n activeIndex: emblaApi.current?.selectedScrollSnap() ?? 0,\n groupIndexList,\n slideNodes: nodes,\n canLoop,\n };\n\n updateIndex();\n emblaApi.current?.scrollTo(activeIndex, false);\n for (const listener of listeners.current) {\n listener(data);\n }\n });\n\n const handleIndexChange: EmblaEventHandler = useEventCallback((_, eventType) => {\n const newIndex = emblaApi.current?.selectedScrollSnap() ?? 0;\n updateIndex();\n if (eventType === 'autoplay:select') {\n const noopEvent = new Event('autoplay');\n onAutoplayIndexChange?.(noopEvent, { event: noopEvent, type: 'autoplay', index: newIndex });\n }\n });\n\n const viewportRef: React.RefObject<HTMLDivElement> = React.useRef(null);\n const containerRef: React.RefObject<HTMLDivElement> = React.useMemo(() => {\n const handleVisibilityChange = () => {\n const cardElements = emblaApi.current?.slideNodes();\n const visibleIndexes = emblaApi.current?.slidesInView() ?? [];\n\n cardElements?.forEach((cardElement, index) => {\n cardElement.dispatchEvent(\n new CustomEvent<CarouselVisibilityEventDetail>(EMBLA_VISIBILITY_EVENT, {\n bubbles: false,\n detail: { isVisible: visibleIndexes.includes(index) },\n }),\n );\n });\n };\n\n // Get plugins using autoplayRef to prevent state change recreating EmblaCarousel\n const plugins = getPlugins();\n\n return {\n set current(newElement: HTMLDivElement | null) {\n if (emblaApi.current) {\n // Stop autoplay before reinitializing.\n emblaApi.current.plugins?.().autoplay?.stop();\n emblaApi.current.off('slidesInView', handleVisibilityChange);\n emblaApi.current.off('select', handleIndexChange);\n emblaApi.current.off('reInit', handleReinit);\n emblaApi.current.off('autoplay:select', handleIndexChange);\n\n emblaApi.current.destroy();\n emblaApi.current = null;\n }\n\n if (newElement) {\n const newEmblaApi = EmblaCarousel(\n // Use direct viewport if available, else fallback to container (includes Carousel controls).\n viewportRef.current ?? newElement,\n {\n ...DEFAULT_EMBLA_OPTIONS,\n ...emblaOptions.current,\n },\n plugins,\n );\n\n newEmblaApi.on('reInit', handleReinit);\n newEmblaApi.on('slidesInView', handleVisibilityChange);\n newEmblaApi.on('select', handleIndexChange);\n newEmblaApi.on('autoplay:select', handleIndexChange);\n\n emblaApi.current = newEmblaApi;\n }\n },\n };\n }, [getPlugins, handleIndexChange, handleReinit]);\n\n const carouselApi = React.useMemo(\n () => ({\n scrollToElement: (element: HTMLElement, jump?: boolean) => {\n const cardElements = emblaApi.current?.slideNodes();\n const groupIndexList = emblaApi.current?.internalEngine().slideRegistry ?? [];\n const cardIndex = cardElements?.indexOf(element) ?? 0;\n const groupIndex = groupIndexList.findIndex(group => {\n return group.includes(cardIndex);\n });\n const indexFocus = groupIndex ?? cardIndex;\n emblaApi.current?.scrollTo(indexFocus, jump);\n\n return indexFocus;\n },\n scrollToIndex: (index: number, jump?: boolean) => {\n emblaApi.current?.scrollTo(index, jump);\n },\n scrollInDirection: (dir: 'prev' | 'next') => {\n if (dir === 'prev') {\n emblaApi.current?.scrollPrev();\n } else {\n emblaApi.current?.scrollNext();\n }\n\n return emblaApi.current?.selectedScrollSnap() ?? 0;\n },\n }),\n [],\n );\n\n React.useEffect(() => {\n const plugins = getPlugins();\n\n emblaOptions.current = {\n startIndex: emblaOptions.current.startIndex,\n align,\n direction,\n loop,\n slidesToScroll,\n watchDrag,\n containScroll,\n duration: motionDuration,\n };\n\n // Stop autoplay before reinitializing.\n emblaApi.current?.plugins?.().autoplay?.stop();\n emblaApi.current?.reInit(\n {\n ...DEFAULT_EMBLA_OPTIONS,\n ...emblaOptions.current,\n },\n plugins,\n );\n }, [align, containScroll, direction, getPlugins, loop, slidesToScroll, watchDrag, motionDuration]);\n\n React.useEffect(() => {\n // Scroll to controlled values on update\n // If active index is out of bounds, re-init will handle instead\n const currentActiveIndex = emblaApi.current?.selectedScrollSnap() ?? 0;\n const slideLength = emblaApi.current?.slideNodes()?.length ?? 0;\n emblaOptions.current.startIndex = activeIndex;\n if (activeIndex < slideLength && activeIndex !== currentActiveIndex) {\n emblaApi.current?.scrollTo(activeIndex);\n }\n }, [activeIndex]);\n\n return {\n activeIndex,\n carouselApi,\n viewportRef,\n containerRef,\n subscribeForValues,\n enableAutoplay,\n resetAutoplay,\n };\n}\n"],"names":["useControllableState","useEventCallback","EmblaCarousel","React","carouselCardClassNames","carouselSliderClassNames","Autoplay","Fade","pointerEventPlugin","sliderClassname","root","DEFAULT_EMBLA_OPTIONS","containScroll","inViewThreshold","watchDrag","skipSnaps","container","slides","EMBLA_VISIBILITY_EVENT","setTabsterDefault","element","isDefault","tabsterAttr","getAttribute","tabsterAttributes","JSON","parse","focusable","setAttribute","stringify","useEmblaCarousel","options","align","autoplayInterval","direction","loop","slidesToScroll","motion","onDragIndexChange","onAutoplayIndexChange","motionType","kind","motionDuration","duration","activeIndex","setActiveIndex","defaultState","defaultActiveIndex","state","initialState","onDragEvent","event","index","type","emblaOptions","useRef","startIndex","emblaApi","autoplayRef","resetAutoplay","useCallback","current","plugins","autoplay","reset","getPlugins","push","playOnInit","delay","stopOnInteraction","stopOnFocusIn","stopOnMouseEnter","onSelectViaDrag","enableAutoplay","temporary","play","stop","listeners","Set","subscribeForValues","listener","add","delete","updateIndex","slideRegistry","newIndex","selectedScrollSnap","slideNodes","internalEngine","actualIndex","forEach","slide","slideIndex","handleReinit","nodes","groupIndexList","navItemsCount","length","canLoop","slideLooper","data","scrollTo","handleIndexChange","_","eventType","noopEvent","Event","viewportRef","containerRef","useMemo","handleVisibilityChange","cardElements","visibleIndexes","slidesInView","cardElement","dispatchEvent","CustomEvent","bubbles","detail","isVisible","includes","newElement","off","destroy","newEmblaApi","on","carouselApi","scrollToElement","jump","cardIndex","indexOf","groupIndex","findIndex","group","indexFocus","scrollToIndex","scrollInDirection","dir","scrollPrev","scrollNext","useEffect","reInit","currentActiveIndex","slideLength"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/components/useEmblaCarousel.ts"],"sourcesContent":["'use client';\n\nimport { type EventHandler, useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport EmblaCarousel, { EmblaPluginType, type EmblaCarouselType, type EmblaOptionsType } from 'embla-carousel';\nimport * as React from 'react';\n\nimport { carouselCardClassNames } from './CarouselCard/useCarouselCardStyles.styles';\nimport { carouselSliderClassNames } from './CarouselSlider/useCarouselSliderStyles.styles';\nimport { CarouselMotion, CarouselUpdateData, CarouselVisibilityEventDetail } from '../Carousel';\nimport Autoplay from 'embla-carousel-autoplay';\nimport Fade from 'embla-carousel-fade';\nimport { pointerEventPlugin } from './pointerEvents';\nimport type { CarouselIndexChangeData } from './CarouselContext.types';\n\ntype EmblaEventHandler = Parameters<EmblaCarouselType['on']>[1];\n\nconst sliderClassname = `.${carouselSliderClassNames.root}`;\n\nconst DEFAULT_EMBLA_OPTIONS: EmblaOptionsType = {\n containScroll: 'trimSnaps',\n inViewThreshold: 0.99,\n watchDrag: false,\n skipSnaps: true,\n\n container: sliderClassname,\n slides: `.${carouselCardClassNames.root}`,\n};\n\nexport const EMBLA_VISIBILITY_EVENT = 'embla:visibilitychange';\n\nexport function setTabsterDefault(element: Element, isDefault: boolean): void {\n const tabsterAttr = element.getAttribute('data-tabster');\n\n if (tabsterAttr) {\n const tabsterAttributes = JSON.parse(tabsterAttr);\n if (tabsterAttributes.focusable) {\n // If tabster.focusable isn't present, we will ignore.\n tabsterAttributes.focusable.isDefault = isDefault;\n element.setAttribute('data-tabster', JSON.stringify(tabsterAttributes));\n }\n }\n}\n\nexport function useEmblaCarousel(\n options: Pick<EmblaOptionsType, 'align' | 'direction' | 'loop' | 'slidesToScroll' | 'watchDrag' | 'containScroll'> & {\n defaultActiveIndex: number | undefined;\n activeIndex: number | undefined;\n motion?: CarouselMotion;\n onDragIndexChange?: EventHandler<CarouselIndexChangeData>;\n onAutoplayIndexChange?: EventHandler<CarouselIndexChangeData>;\n autoplayInterval?: number;\n },\n): {\n activeIndex: number;\n carouselApi: {\n scrollToElement: (element: HTMLElement, jump?: boolean) => number;\n scrollToIndex: (index: number, jump?: boolean) => void;\n scrollInDirection: (dir: 'prev' | 'next') => number;\n };\n viewportRef: React.RefObject<HTMLDivElement | null>;\n containerRef: React.RefObject<HTMLDivElement | null>;\n subscribeForValues: (listener: (data: CarouselUpdateData) => void) => () => void;\n enableAutoplay: (autoplay: boolean, temporary?: boolean) => void;\n resetAutoplay: () => void;\n} {\n const {\n align,\n autoplayInterval,\n direction,\n loop,\n slidesToScroll,\n watchDrag,\n containScroll,\n motion,\n onDragIndexChange,\n onAutoplayIndexChange,\n } = options;\n\n const motionType = typeof motion === 'string' ? motion : motion?.kind ?? 'slide';\n const motionDuration = typeof motion === 'string' ? 25 : motion?.duration ?? 25;\n\n const [activeIndex, setActiveIndex] = useControllableState({\n defaultState: options.defaultActiveIndex,\n state: options.activeIndex,\n initialState: 0,\n });\n\n const onDragEvent = useEventCallback((event: PointerEvent | MouseEvent, index: number) => {\n onDragIndexChange?.(event, { event, type: 'drag', index });\n });\n\n const emblaOptions = React.useRef<EmblaOptionsType>({\n align,\n direction,\n loop,\n slidesToScroll,\n startIndex: activeIndex,\n watchDrag,\n containScroll,\n duration: motionDuration,\n });\n\n const emblaApi = React.useRef<EmblaCarouselType | null>(null);\n const autoplayRef = React.useRef<boolean>(false);\n\n const resetAutoplay = React.useCallback(() => {\n emblaApi.current?.plugins().autoplay?.reset();\n }, []);\n\n const getPlugins = React.useCallback(() => {\n const plugins: EmblaPluginType[] = [];\n\n plugins.push(\n Autoplay({\n playOnInit: autoplayRef.current,\n delay: autoplayInterval,\n /* stopOnInteraction: false causes autoplay to restart on interaction end*/\n /* we'll handle this logic to ensure autoplay state is respected */\n stopOnInteraction: true,\n stopOnFocusIn: false, // We'll handle this one manually to prevent conflicts with tabster\n stopOnMouseEnter: false, // We will handle this manually to align functionality\n }),\n );\n\n // Optionally add Fade plugin\n if (motionType === 'fade') {\n plugins.push(Fade());\n }\n\n if (watchDrag) {\n plugins.push(\n pointerEventPlugin({\n onSelectViaDrag: onDragEvent,\n }),\n );\n }\n\n return plugins;\n }, [motionType, onDragEvent, watchDrag, autoplayInterval]);\n\n /* This function enables autoplay to pause/play without affecting underlying state\n * Useful for pausing on focus etc. without having to reinitialize or set autoplay to off\n */\n const enableAutoplay = React.useCallback(\n (autoplay: boolean, temporary?: boolean) => {\n if (!temporary) {\n autoplayRef.current = autoplay;\n }\n\n if (autoplay && autoplayRef.current) {\n // Autoplay should only enable in the case where underlying state is true, temporary should not override\n emblaApi.current?.plugins().autoplay?.play();\n // Reset after play to ensure timing and any focus/mouse pause state is reset.\n resetAutoplay();\n } else if (!autoplay) {\n emblaApi.current?.plugins().autoplay?.stop();\n }\n },\n [resetAutoplay],\n );\n\n // Listeners contains callbacks for UI elements that may require state update based on embla changes\n const listeners = React.useRef(new Set<(data: CarouselUpdateData) => void>());\n const subscribeForValues = React.useCallback((listener: (data: CarouselUpdateData) => void) => {\n listeners.current.add(listener);\n\n return () => {\n listeners.current.delete(listener);\n };\n }, []);\n\n const updateIndex = () => {\n const newIndex = emblaApi.current?.selectedScrollSnap() ?? 0;\n const slides = emblaApi.current?.slideNodes();\n const slideRegistry = emblaApi.current?.internalEngine().slideRegistry;\n const actualIndex = slideRegistry?.[newIndex]?.[0] ?? 0;\n\n // We set the first card in the current group as the default tabster index for focus capture\n slides?.forEach((slide, slideIndex) => {\n setTabsterDefault(slide, slideIndex === actualIndex);\n });\n setActiveIndex(newIndex);\n };\n\n const handleReinit = useEventCallback(() => {\n const nodes: HTMLElement[] = emblaApi.current?.slideNodes() ?? [];\n const groupIndexList: number[][] = emblaApi.current?.internalEngine().slideRegistry ?? [];\n const navItemsCount = groupIndexList.length > 0 ? groupIndexList.length : nodes.length;\n const canLoop = emblaApi.current?.internalEngine().slideLooper.canLoop();\n\n const data: CarouselUpdateData = {\n navItemsCount,\n activeIndex: emblaApi.current?.selectedScrollSnap() ?? 0,\n groupIndexList,\n slideNodes: nodes,\n canLoop,\n };\n\n updateIndex();\n emblaApi.current?.scrollTo(activeIndex, false);\n for (const listener of listeners.current) {\n listener(data);\n }\n });\n\n const handleIndexChange: EmblaEventHandler = useEventCallback((_, eventType) => {\n const newIndex = emblaApi.current?.selectedScrollSnap() ?? 0;\n updateIndex();\n if (eventType === 'autoplay:select') {\n const noopEvent = new Event('autoplay');\n onAutoplayIndexChange?.(noopEvent, { event: noopEvent, type: 'autoplay', index: newIndex });\n }\n });\n\n const viewportRef: React.RefObject<HTMLDivElement | null> = React.useRef(null);\n const containerRef: React.RefObject<HTMLDivElement | null> = React.useMemo(() => {\n const handleVisibilityChange = () => {\n const cardElements = emblaApi.current?.slideNodes();\n const visibleIndexes = emblaApi.current?.slidesInView() ?? [];\n\n cardElements?.forEach((cardElement, index) => {\n cardElement.dispatchEvent(\n new CustomEvent<CarouselVisibilityEventDetail>(EMBLA_VISIBILITY_EVENT, {\n bubbles: false,\n detail: { isVisible: visibleIndexes.includes(index) },\n }),\n );\n });\n };\n\n // Get plugins using autoplayRef to prevent state change recreating EmblaCarousel\n const plugins = getPlugins();\n\n return {\n set current(newElement: HTMLDivElement | null) {\n if (emblaApi.current) {\n // Stop autoplay before reinitializing.\n emblaApi.current.plugins?.().autoplay?.stop();\n emblaApi.current.off('slidesInView', handleVisibilityChange);\n emblaApi.current.off('select', handleIndexChange);\n emblaApi.current.off('reInit', handleReinit);\n emblaApi.current.off('autoplay:select', handleIndexChange);\n\n emblaApi.current.destroy();\n emblaApi.current = null;\n }\n\n if (newElement) {\n const newEmblaApi = EmblaCarousel(\n // Use direct viewport if available, else fallback to container (includes Carousel controls).\n viewportRef.current ?? newElement,\n {\n ...DEFAULT_EMBLA_OPTIONS,\n ...emblaOptions.current,\n },\n plugins,\n );\n\n newEmblaApi.on('reInit', handleReinit);\n newEmblaApi.on('slidesInView', handleVisibilityChange);\n newEmblaApi.on('select', handleIndexChange);\n newEmblaApi.on('autoplay:select', handleIndexChange);\n\n emblaApi.current = newEmblaApi;\n }\n },\n };\n }, [getPlugins, handleIndexChange, handleReinit]);\n\n const carouselApi = React.useMemo(\n () => ({\n scrollToElement: (element: HTMLElement, jump?: boolean) => {\n const cardElements = emblaApi.current?.slideNodes();\n const groupIndexList = emblaApi.current?.internalEngine().slideRegistry ?? [];\n const cardIndex = cardElements?.indexOf(element) ?? 0;\n const groupIndex = groupIndexList.findIndex(group => {\n return group.includes(cardIndex);\n });\n const indexFocus = groupIndex ?? cardIndex;\n emblaApi.current?.scrollTo(indexFocus, jump);\n\n return indexFocus;\n },\n scrollToIndex: (index: number, jump?: boolean) => {\n emblaApi.current?.scrollTo(index, jump);\n },\n scrollInDirection: (dir: 'prev' | 'next') => {\n if (dir === 'prev') {\n emblaApi.current?.scrollPrev();\n } else {\n emblaApi.current?.scrollNext();\n }\n\n return emblaApi.current?.selectedScrollSnap() ?? 0;\n },\n }),\n [],\n );\n\n React.useEffect(() => {\n const plugins = getPlugins();\n\n emblaOptions.current = {\n startIndex: emblaOptions.current.startIndex,\n align,\n direction,\n loop,\n slidesToScroll,\n watchDrag,\n containScroll,\n duration: motionDuration,\n };\n\n // Stop autoplay before reinitializing.\n emblaApi.current?.plugins?.().autoplay?.stop();\n emblaApi.current?.reInit(\n {\n ...DEFAULT_EMBLA_OPTIONS,\n ...emblaOptions.current,\n },\n plugins,\n );\n }, [align, containScroll, direction, getPlugins, loop, slidesToScroll, watchDrag, motionDuration]);\n\n React.useEffect(() => {\n // Scroll to controlled values on update\n // If active index is out of bounds, re-init will handle instead\n const currentActiveIndex = emblaApi.current?.selectedScrollSnap() ?? 0;\n const slideLength = emblaApi.current?.slideNodes()?.length ?? 0;\n emblaOptions.current.startIndex = activeIndex;\n if (activeIndex < slideLength && activeIndex !== currentActiveIndex) {\n emblaApi.current?.scrollTo(activeIndex);\n }\n }, [activeIndex]);\n\n return {\n activeIndex,\n carouselApi,\n viewportRef,\n containerRef,\n subscribeForValues,\n enableAutoplay,\n resetAutoplay,\n };\n}\n"],"names":["useControllableState","useEventCallback","EmblaCarousel","React","carouselCardClassNames","carouselSliderClassNames","Autoplay","Fade","pointerEventPlugin","sliderClassname","root","DEFAULT_EMBLA_OPTIONS","containScroll","inViewThreshold","watchDrag","skipSnaps","container","slides","EMBLA_VISIBILITY_EVENT","setTabsterDefault","element","isDefault","tabsterAttr","getAttribute","tabsterAttributes","JSON","parse","focusable","setAttribute","stringify","useEmblaCarousel","options","align","autoplayInterval","direction","loop","slidesToScroll","motion","onDragIndexChange","onAutoplayIndexChange","motionType","kind","motionDuration","duration","activeIndex","setActiveIndex","defaultState","defaultActiveIndex","state","initialState","onDragEvent","event","index","type","emblaOptions","useRef","startIndex","emblaApi","autoplayRef","resetAutoplay","useCallback","current","plugins","autoplay","reset","getPlugins","push","playOnInit","delay","stopOnInteraction","stopOnFocusIn","stopOnMouseEnter","onSelectViaDrag","enableAutoplay","temporary","play","stop","listeners","Set","subscribeForValues","listener","add","delete","updateIndex","slideRegistry","newIndex","selectedScrollSnap","slideNodes","internalEngine","actualIndex","forEach","slide","slideIndex","handleReinit","nodes","groupIndexList","navItemsCount","length","canLoop","slideLooper","data","scrollTo","handleIndexChange","_","eventType","noopEvent","Event","viewportRef","containerRef","useMemo","handleVisibilityChange","cardElements","visibleIndexes","slidesInView","cardElement","dispatchEvent","CustomEvent","bubbles","detail","isVisible","includes","newElement","off","destroy","newEmblaApi","on","carouselApi","scrollToElement","jump","cardIndex","indexOf","groupIndex","findIndex","group","indexFocus","scrollToIndex","scrollInDirection","dir","scrollPrev","scrollNext","useEffect","reInit","currentActiveIndex","slideLength"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui/react-carousel",
|
|
3
|
-
"version": "9.8.
|
|
3
|
+
"version": "9.8.7",
|
|
4
4
|
"description": "A composable carousel component that enables pagination with minimal rerenders",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -25,16 +25,16 @@
|
|
|
25
25
|
"@fluentui/scripts-cypress": "*"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@fluentui/react-aria": "^9.
|
|
29
|
-
"@fluentui/react-button": "^9.6.
|
|
30
|
-
"@fluentui/react-context-selector": "^9.2.
|
|
28
|
+
"@fluentui/react-aria": "^9.17.1",
|
|
29
|
+
"@fluentui/react-button": "^9.6.7",
|
|
30
|
+
"@fluentui/react-context-selector": "^9.2.8",
|
|
31
31
|
"@fluentui/react-icons": "^2.0.245",
|
|
32
|
-
"@fluentui/react-tooltip": "^9.8.
|
|
33
|
-
"@fluentui/react-jsx-runtime": "^9.1
|
|
34
|
-
"@fluentui/react-shared-contexts": "^9.25.
|
|
35
|
-
"@fluentui/react-tabster": "^9.26.
|
|
32
|
+
"@fluentui/react-tooltip": "^9.8.6",
|
|
33
|
+
"@fluentui/react-jsx-runtime": "^9.2.1",
|
|
34
|
+
"@fluentui/react-shared-contexts": "^9.25.2",
|
|
35
|
+
"@fluentui/react-tabster": "^9.26.6",
|
|
36
36
|
"@fluentui/react-theme": "^9.2.0",
|
|
37
|
-
"@fluentui/react-utilities": "^9.
|
|
37
|
+
"@fluentui/react-utilities": "^9.25.0",
|
|
38
38
|
"@griffel/react": "^1.5.22",
|
|
39
39
|
"@swc/helpers": "^0.5.1",
|
|
40
40
|
"embla-carousel": "^8.5.1",
|
|
@@ -42,10 +42,10 @@
|
|
|
42
42
|
"embla-carousel-fade": "^8.5.1"
|
|
43
43
|
},
|
|
44
44
|
"peerDependencies": {
|
|
45
|
-
"@types/react": ">=16.14.0 <
|
|
46
|
-
"@types/react-dom": ">=16.9.0 <
|
|
47
|
-
"react": ">=16.14.0 <
|
|
48
|
-
"react-dom": ">=16.14.0 <
|
|
45
|
+
"@types/react": ">=16.14.0 <20.0.0",
|
|
46
|
+
"@types/react-dom": ">=16.9.0 <20.0.0",
|
|
47
|
+
"react": ">=16.14.0 <20.0.0",
|
|
48
|
+
"react-dom": ">=16.14.0 <20.0.0"
|
|
49
49
|
},
|
|
50
50
|
"exports": {
|
|
51
51
|
".": {
|