@fluentui/react-carousel 9.9.6 → 9.9.8

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.
Files changed (159) hide show
  1. package/CHANGELOG.md +33 -2
  2. package/dist/index.d.ts +8 -8
  3. package/lib/components/Carousel/useCarouselStyles.styles.js +1 -0
  4. package/lib/components/Carousel/useCarouselStyles.styles.js.map +1 -1
  5. package/lib/components/Carousel/useCarouselStyles.styles.raw.js +1 -0
  6. package/lib/components/Carousel/useCarouselStyles.styles.raw.js.map +1 -1
  7. package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.types.js +3 -1
  8. package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.types.js.map +1 -1
  9. package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js +2 -0
  10. package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js.map +1 -1
  11. package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js +2 -0
  12. package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js.map +1 -1
  13. package/lib/components/CarouselButton/CarouselButton.types.js.map +1 -1
  14. package/lib/components/CarouselButton/useCarouselButton.js +1 -0
  15. package/lib/components/CarouselButton/useCarouselButton.js.map +1 -1
  16. package/lib/components/CarouselCard/useCarouselCard.js +3 -0
  17. package/lib/components/CarouselCard/useCarouselCard.js.map +1 -1
  18. package/lib/components/CarouselCard/useCarouselCardStyles.styles.js +1 -0
  19. package/lib/components/CarouselCard/useCarouselCardStyles.styles.js.map +1 -1
  20. package/lib/components/CarouselCard/useCarouselCardStyles.styles.raw.js +1 -0
  21. package/lib/components/CarouselCard/useCarouselCardStyles.styles.raw.js.map +1 -1
  22. package/lib/components/CarouselContext.js.map +1 -1
  23. package/lib/components/CarouselContext.types.js +3 -1
  24. package/lib/components/CarouselContext.types.js.map +1 -1
  25. package/lib/components/CarouselNav/CarouselNav.js +1 -1
  26. package/lib/components/CarouselNav/CarouselNav.js.map +1 -1
  27. package/lib/components/CarouselNav/CarouselNav.types.js +1 -1
  28. package/lib/components/CarouselNav/CarouselNav.types.js.map +1 -1
  29. package/lib/components/CarouselNav/CarouselNavContext.js +0 -11
  30. package/lib/components/CarouselNav/CarouselNavContext.js.map +1 -1
  31. package/lib/components/CarouselNav/useCarouselNav.js +0 -1
  32. package/lib/components/CarouselNav/useCarouselNav.js.map +1 -1
  33. package/lib/components/CarouselNav/useCarouselNavContextValues.js +13 -0
  34. package/lib/components/CarouselNav/useCarouselNavContextValues.js.map +1 -0
  35. package/lib/components/CarouselNav/useCarouselNavStyles.styles.js +1 -0
  36. package/lib/components/CarouselNav/useCarouselNavStyles.styles.js.map +1 -1
  37. package/lib/components/CarouselNav/useCarouselNavStyles.styles.raw.js +1 -0
  38. package/lib/components/CarouselNav/useCarouselNavStyles.styles.raw.js.map +1 -1
  39. package/lib/components/CarouselNavButton/CarouselNavButton.types.js.map +1 -1
  40. package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js +1 -0
  41. package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js.map +1 -1
  42. package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js +1 -0
  43. package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js.map +1 -1
  44. package/lib/components/CarouselNavContainer/CarouselNavContainer.types.js.map +1 -1
  45. package/lib/components/CarouselNavContainer/useCarouselNavContainer.js +0 -1
  46. package/lib/components/CarouselNavContainer/useCarouselNavContainer.js.map +1 -1
  47. package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js +4 -0
  48. package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js.map +1 -1
  49. package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js +4 -0
  50. package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js.map +1 -1
  51. package/lib/components/CarouselNavImageButton/CarouselNavImageButton.types.js.map +1 -1
  52. package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js +2 -0
  53. package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js.map +1 -1
  54. package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js +2 -0
  55. package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js.map +1 -1
  56. package/lib/components/CarouselSlider/CarouselSlider.js +1 -1
  57. package/lib/components/CarouselSlider/CarouselSlider.js.map +1 -1
  58. package/lib/components/CarouselSlider/CarouselSliderContext.js +0 -11
  59. package/lib/components/CarouselSlider/CarouselSliderContext.js.map +1 -1
  60. package/lib/components/CarouselSlider/renderCarouselSlider.js.map +1 -1
  61. package/lib/components/CarouselSlider/useCarouselSlider.js +0 -1
  62. package/lib/components/CarouselSlider/useCarouselSlider.js.map +1 -1
  63. package/lib/components/CarouselSlider/useCarouselSliderContextValues.js +13 -0
  64. package/lib/components/CarouselSlider/useCarouselSliderContextValues.js.map +1 -0
  65. package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.js +1 -0
  66. package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.js.map +1 -1
  67. package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js +1 -0
  68. package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js.map +1 -1
  69. package/lib/components/CarouselViewport/CarouselViewport.js +1 -1
  70. package/lib/components/CarouselViewport/CarouselViewport.js.map +1 -1
  71. package/lib/components/CarouselViewport/CarouselViewport.types.js.map +1 -1
  72. package/lib/components/CarouselViewport/renderCarouselViewport.js.map +1 -1
  73. package/lib/components/CarouselViewport/useCarouselViewport.js +4 -0
  74. package/lib/components/CarouselViewport/useCarouselViewport.js.map +1 -1
  75. package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js +1 -0
  76. package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js.map +1 -1
  77. package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js +1 -0
  78. package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js.map +1 -1
  79. package/lib/components/useEmblaCarousel.js +1 -0
  80. package/lib/components/useEmblaCarousel.js.map +1 -1
  81. package/lib-commonjs/components/Carousel/useCarouselStyles.styles.js +1 -0
  82. package/lib-commonjs/components/Carousel/useCarouselStyles.styles.js.map +1 -1
  83. package/lib-commonjs/components/Carousel/useCarouselStyles.styles.raw.js +1 -0
  84. package/lib-commonjs/components/Carousel/useCarouselStyles.styles.raw.js.map +1 -1
  85. package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.types.js +3 -3
  86. package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.types.js.map +1 -1
  87. package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js +2 -0
  88. package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js.map +1 -1
  89. package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js +2 -0
  90. package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.raw.js.map +1 -1
  91. package/lib-commonjs/components/CarouselButton/CarouselButton.types.js.map +1 -1
  92. package/lib-commonjs/components/CarouselButton/useCarouselButton.js +1 -0
  93. package/lib-commonjs/components/CarouselButton/useCarouselButton.js.map +1 -1
  94. package/lib-commonjs/components/CarouselCard/useCarouselCard.js +3 -0
  95. package/lib-commonjs/components/CarouselCard/useCarouselCard.js.map +1 -1
  96. package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.js +1 -0
  97. package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.js.map +1 -1
  98. package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.raw.js +1 -0
  99. package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.raw.js.map +1 -1
  100. package/lib-commonjs/components/CarouselContext.js.map +1 -1
  101. package/lib-commonjs/components/CarouselContext.types.js +3 -3
  102. package/lib-commonjs/components/CarouselContext.types.js.map +1 -1
  103. package/lib-commonjs/components/CarouselNav/CarouselNav.js +2 -2
  104. package/lib-commonjs/components/CarouselNav/CarouselNav.js.map +1 -1
  105. package/lib-commonjs/components/CarouselNav/CarouselNav.types.js +0 -2
  106. package/lib-commonjs/components/CarouselNav/CarouselNav.types.js.map +1 -1
  107. package/lib-commonjs/components/CarouselNav/CarouselNavContext.js +0 -14
  108. package/lib-commonjs/components/CarouselNav/CarouselNavContext.js.map +1 -1
  109. package/lib-commonjs/components/CarouselNav/useCarouselNav.js +0 -2
  110. package/lib-commonjs/components/CarouselNav/useCarouselNav.js.map +1 -1
  111. package/lib-commonjs/components/CarouselNav/useCarouselNavContextValues.js +24 -0
  112. package/lib-commonjs/components/CarouselNav/useCarouselNavContextValues.js.map +1 -0
  113. package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.js +1 -0
  114. package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.js.map +1 -1
  115. package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.raw.js +1 -0
  116. package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.raw.js.map +1 -1
  117. package/lib-commonjs/components/CarouselNavButton/CarouselNavButton.types.js.map +1 -1
  118. package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js +1 -0
  119. package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js.map +1 -1
  120. package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js +1 -0
  121. package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.raw.js.map +1 -1
  122. package/lib-commonjs/components/CarouselNavContainer/CarouselNavContainer.types.js.map +1 -1
  123. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainer.js +0 -2
  124. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainer.js.map +1 -1
  125. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js +4 -0
  126. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js.map +1 -1
  127. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js +4 -0
  128. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.raw.js.map +1 -1
  129. package/lib-commonjs/components/CarouselNavImageButton/CarouselNavImageButton.types.js.map +1 -1
  130. package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js +2 -0
  131. package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js.map +1 -1
  132. package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js +2 -0
  133. package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.raw.js.map +1 -1
  134. package/lib-commonjs/components/CarouselSlider/CarouselSlider.js +2 -2
  135. package/lib-commonjs/components/CarouselSlider/CarouselSlider.js.map +1 -1
  136. package/lib-commonjs/components/CarouselSlider/CarouselSliderContext.js +0 -14
  137. package/lib-commonjs/components/CarouselSlider/CarouselSliderContext.js.map +1 -1
  138. package/lib-commonjs/components/CarouselSlider/renderCarouselSlider.js.map +1 -1
  139. package/lib-commonjs/components/CarouselSlider/useCarouselSlider.js +0 -2
  140. package/lib-commonjs/components/CarouselSlider/useCarouselSlider.js.map +1 -1
  141. package/lib-commonjs/components/CarouselSlider/useCarouselSliderContextValues.js +24 -0
  142. package/lib-commonjs/components/CarouselSlider/useCarouselSliderContextValues.js.map +1 -0
  143. package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.js +1 -0
  144. package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.js.map +1 -1
  145. package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js +1 -0
  146. package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.raw.js.map +1 -1
  147. package/lib-commonjs/components/CarouselViewport/CarouselViewport.js +2 -2
  148. package/lib-commonjs/components/CarouselViewport/CarouselViewport.js.map +1 -1
  149. package/lib-commonjs/components/CarouselViewport/CarouselViewport.types.js.map +1 -1
  150. package/lib-commonjs/components/CarouselViewport/renderCarouselViewport.js.map +1 -1
  151. package/lib-commonjs/components/CarouselViewport/useCarouselViewport.js +4 -0
  152. package/lib-commonjs/components/CarouselViewport/useCarouselViewport.js.map +1 -1
  153. package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.js +1 -0
  154. package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.js.map +1 -1
  155. package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js +1 -0
  156. package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.raw.js.map +1 -1
  157. package/lib-commonjs/components/useEmblaCarousel.js +1 -0
  158. package/lib-commonjs/components/useEmblaCarousel.js.map +1 -1
  159. package/package.json +8 -8
@@ -14,13 +14,13 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
14
  const _useCarouselSlider = require("./useCarouselSlider");
15
15
  const _renderCarouselSlider = require("./renderCarouselSlider");
16
16
  const _useCarouselSliderStylesstyles = require("./useCarouselSliderStyles.styles");
17
- const _CarouselSliderContext = require("./CarouselSliderContext");
17
+ const _useCarouselSliderContextValues = require("./useCarouselSliderContextValues");
18
18
  const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
19
19
  const CarouselSlider = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
20
20
  const state = (0, _useCarouselSlider.useCarouselSlider_unstable)(props, ref);
21
21
  (0, _useCarouselSliderStylesstyles.useCarouselSliderStyles_unstable)(state);
22
22
  (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselSliderStyles_unstable')(state);
23
- const context = (0, _CarouselSliderContext.useCarouselSliderContextValues_unstable)(state);
23
+ const context = (0, _useCarouselSliderContextValues.useCarouselSliderContextValues_unstable)(state);
24
24
  return (0, _renderCarouselSlider.renderCarouselSlider_unstable)(state, context);
25
25
  });
26
26
  CarouselSlider.displayName = 'CarouselSlider';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CarouselSlider/CarouselSlider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n// import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useCarouselSlider_unstable } from './useCarouselSlider';\nimport { renderCarouselSlider_unstable } from './renderCarouselSlider';\nimport { useCarouselSliderStyles_unstable } from './useCarouselSliderStyles.styles';\nimport type { CarouselSliderProps } from './CarouselSlider.types';\nimport { useCarouselSliderContextValues_unstable } from './CarouselSliderContext';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * CarouselSlider component - The viewport window that CarouselCards are contained within.\n */\nexport const CarouselSlider: ForwardRefComponent<CarouselSliderProps> = React.forwardRef((props, ref) => {\n const state = useCarouselSlider_unstable(props, ref);\n\n useCarouselSliderStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselSliderStyles_unstable')(state);\n\n const context = useCarouselSliderContextValues_unstable(state);\n return renderCarouselSlider_unstable(state, context);\n});\n\nCarouselSlider.displayName = 'CarouselSlider';\n"],"names":["React","useCarouselSlider_unstable","renderCarouselSlider_unstable","useCarouselSliderStyles_unstable","useCarouselSliderContextValues_unstable","useCustomStyleHook_unstable","CarouselSlider","forwardRef","props","ref","state","context","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;mCAGY,sBAAsB;sCACnB,yBAAyB;+CACtB,mCAAmC;uCAE5B,0BAA0B;qCACtC,kCAAkC;AAKvE,MAAMM,iBAAAA,WAAAA,GAA2DN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IAC/F,MAAMC,YAAQT,6CAAAA,EAA2BO,OAAOC;QAEhDN,+DAAAA,EAAiCO;QACjCL,gDAAAA,EAA4B,oCAAoCK;IAEhE,MAAMC,cAAUP,8DAAAA,EAAwCM;IACxD,WAAOR,mDAAAA,EAA8BQ,OAAOC;AAC9C,GAAG;AAEHL,eAAeM,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/CarouselSlider/CarouselSlider.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\n// import { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\nimport { useCarouselSlider_unstable } from './useCarouselSlider';\nimport { renderCarouselSlider_unstable } from './renderCarouselSlider';\nimport { useCarouselSliderStyles_unstable } from './useCarouselSliderStyles.styles';\nimport type { CarouselSliderProps } from './CarouselSlider.types';\nimport { useCarouselSliderContextValues_unstable } from './useCarouselSliderContextValues';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * CarouselSlider component - The viewport window that CarouselCards are contained within.\n */\nexport const CarouselSlider: ForwardRefComponent<CarouselSliderProps> = React.forwardRef((props, ref) => {\n const state = useCarouselSlider_unstable(props, ref);\n\n useCarouselSliderStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselSliderStyles_unstable')(state);\n\n const context = useCarouselSliderContextValues_unstable(state);\n return renderCarouselSlider_unstable(state, context);\n});\n\nCarouselSlider.displayName = 'CarouselSlider';\n"],"names":["React","useCarouselSlider_unstable","renderCarouselSlider_unstable","useCarouselSliderStyles_unstable","useCarouselSliderContextValues_unstable","useCustomStyleHook_unstable","CarouselSlider","forwardRef","props","ref","state","context","displayName"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;mCAGY,sBAAsB;sCACnB,yBAAyB;+CACtB,mCAAmC;gDAE5B,mCAAmC;qCAC/C,kCAAkC;AAKvE,MAAMM,iBAAAA,WAAAA,GAA2DN,OAAMO,UAAU,CAAC,CAACC,OAAOC;IAC/F,MAAMC,YAAQT,6CAAAA,EAA2BO,OAAOC;QAEhDN,+DAAAA,EAAiCO;QACjCL,gDAAAA,EAA4B,oCAAoCK;IAEhE,MAAMC,cAAUP,uEAAAA,EAAwCM;IACxD,WAAOR,mDAAAA,EAA8BQ,OAAOC;AAC9C,GAAG;AAEHL,eAAeM,WAAW,GAAG"}
@@ -18,9 +18,6 @@ _export(exports, {
18
18
  },
19
19
  useCarouselSliderContext: function() {
20
20
  return useCarouselSliderContext;
21
- },
22
- useCarouselSliderContextValues_unstable: function() {
23
- return useCarouselSliderContextValues_unstable;
24
21
  }
25
22
  });
26
23
  const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
@@ -34,14 +31,3 @@ const useCarouselSliderContext = ()=>{
34
31
  return (_React_useContext = _react.useContext(carouselSliderContext)) !== null && _React_useContext !== void 0 ? _React_useContext : carouselSliderContextDefaultValue;
35
32
  };
36
33
  const CarouselSliderContextProvider = carouselSliderContext.Provider;
37
- function useCarouselSliderContextValues_unstable(state) {
38
- const { cardFocus } = state;
39
- const carouselSlider = _react.useMemo(()=>({
40
- cardFocus
41
- }), [
42
- cardFocus
43
- ]);
44
- return {
45
- carouselSlider
46
- };
47
- }
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CarouselSlider/CarouselSliderContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { CarouselSliderContextValue, CarouselSliderState } from './CarouselSlider.types';\n\nconst carouselSliderContext = React.createContext<CarouselSliderContextValue | undefined>(undefined);\n\nexport const carouselSliderContextDefaultValue: CarouselSliderContextValue = {\n cardFocus: false,\n};\n\nexport const useCarouselSliderContext = (): CarouselSliderContextValue =>\n React.useContext(carouselSliderContext) ?? carouselSliderContextDefaultValue;\n\nexport const CarouselSliderContextProvider = carouselSliderContext.Provider;\n\n/**\n * Context shared between CarouselSlider and its children components\n */\nexport type CarouselSliderContextValues = {\n carouselSlider: CarouselSliderContextValue;\n};\n\nexport function useCarouselSliderContextValues_unstable(state: CarouselSliderState): CarouselSliderContextValues {\n const { cardFocus } = state;\n const carouselSlider = React.useMemo(\n () => ({\n cardFocus,\n }),\n [cardFocus],\n );\n\n return { carouselSlider };\n}\n"],"names":["React","carouselSliderContext","createContext","undefined","carouselSliderContextDefaultValue","cardFocus","useCarouselSliderContext","useContext","CarouselSliderContextProvider","Provider","useCarouselSliderContextValues_unstable","state","carouselSlider","useMemo"],"mappings":"AAAA;;;;;;;;;;;;IAcaQ,6BAAAA;;;qCAPAJ;;;4BAIAE;;;2CAYGI;;;;;iEArBO,QAAQ;AAG/B,MAAMT,sCAAwBD,OAAME,aAAa,CAAyCC;AAEnF,MAAMC,oCAAgE;IAC3EC,WAAW;AACb,EAAE;AAEK,MAAMC,2BAA2B;QACtCN;WAAAA,CAAAA,oBAAAA,OAAMO,UAAU,CAACN,sBAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAA2CI;EAAkC;AAExE,sCAAsCH,sBAAsBQ,QAAQ,CAAC;AASrE,SAASC,wCAAwCC,KAA0B;IAChF,MAAM,EAAEN,SAAS,EAAE,GAAGM;IACtB,MAAMC,iBAAiBZ,OAAMa,OAAO,CAClC,IAAO,CAAA;YACLR;SACF,CAAA,EACA;QAACA;KAAU;IAGb,OAAO;QAAEO;IAAe;AAC1B"}
1
+ {"version":3,"sources":["../src/components/CarouselSlider/CarouselSliderContext.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { CarouselSliderContextValue } from './CarouselSlider.types';\n\nconst carouselSliderContext = React.createContext<CarouselSliderContextValue | undefined>(undefined);\n\nexport const carouselSliderContextDefaultValue: CarouselSliderContextValue = {\n cardFocus: false,\n};\n\nexport const useCarouselSliderContext = (): CarouselSliderContextValue =>\n React.useContext(carouselSliderContext) ?? carouselSliderContextDefaultValue;\n\nexport const CarouselSliderContextProvider = carouselSliderContext.Provider;\n\n/**\n * Context shared between CarouselSlider and its children components\n */\nexport type CarouselSliderContextValues = {\n carouselSlider: CarouselSliderContextValue;\n};\n"],"names":["React","carouselSliderContext","createContext","undefined","carouselSliderContextDefaultValue","cardFocus","useCarouselSliderContext","useContext","CarouselSliderContextProvider","Provider"],"mappings":"AAAA;;;;;;;;;;;;iCAcaQ;;;qCAPAJ;;;4BAIAE;eAAAA;;;;iEATU,QAAQ;AAG/B,MAAML,sCAAwBD,OAAME,aAAa,CAAyCC;AAEnF,MAAMC,oCAAgE;IAC3EC,WAAW;AACb,EAAE;AAEK,iCAAiC;QACtCL;WAAAA,CAAAA,oBAAAA,OAAMO,UAAU,CAACN,sBAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAA2CI;EAAkC;AAExE,MAAMI,gCAAgCP,sBAAsBQ,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CarouselSlider/renderCarouselSlider.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 { CarouselSliderState, CarouselSliderSlots } from './CarouselSlider.types';\nimport { CarouselSliderContextProvider, CarouselSliderContextValues } from './CarouselSliderContext';\n\n/**\n * Render the final JSX of CarouselSlider\n */\nexport const renderCarouselSlider_unstable = (\n state: CarouselSliderState,\n contextValues: CarouselSliderContextValues,\n): JSXElement => {\n assertSlots<CarouselSliderSlots>(state);\n\n return (\n <CarouselSliderContextProvider value={contextValues.carouselSlider}>\n <state.root />\n </CarouselSliderContextProvider>\n );\n};\n"],"names":["assertSlots","CarouselSliderContextProvider","renderCarouselSlider_unstable","state","contextValues","value","carouselSlider","root"],"mappings":";;;;+BAWaE;;;;;;4BAVb,gDAAiD;gCAErB,4BAA4B;uCAGmB,0BAA0B;AAK9F,sCAAsC,CAC3CC,OACAC;QAEAJ,2BAAAA,EAAiCG;IAEjC,OAAA,WAAA,OACE,eAAA,EAACF,oDAAAA,EAAAA;QAA8BI,OAAOD,cAAcE,cAAc;kBAChE,WAAA,OAAA,eAAA,EAACH,MAAMI,IAAI,EAAA,CAAA;;AAGjB,EAAE"}
1
+ {"version":3,"sources":["../src/components/CarouselSlider/renderCarouselSlider.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 { CarouselSliderState, CarouselSliderSlots } from './CarouselSlider.types';\nimport type { CarouselSliderContextValues } from './CarouselSliderContext';\nimport { CarouselSliderContextProvider } from './CarouselSliderContext';\n\n/**\n * Render the final JSX of CarouselSlider\n */\nexport const renderCarouselSlider_unstable = (\n state: CarouselSliderState,\n contextValues: CarouselSliderContextValues,\n): JSXElement => {\n assertSlots<CarouselSliderSlots>(state);\n\n return (\n <CarouselSliderContextProvider value={contextValues.carouselSlider}>\n <state.root />\n </CarouselSliderContextProvider>\n );\n};\n"],"names":["assertSlots","CarouselSliderContextProvider","renderCarouselSlider_unstable","state","contextValues","value","carouselSlider","root"],"mappings":";;;;+BAYaE;;;;;;4BAXb,gDAAiD;gCAErB,4BAA4B;uCAIV,0BAA0B;AAKjE,sCAAsC,CAC3CC,OACAC;QAEAJ,2BAAAA,EAAiCG;IAEjC,OAAA,WAAA,OACE,eAAA,EAACF,oDAAAA,EAAAA;QAA8BI,OAAOD,cAAcE,cAAc;kBAChE,WAAA,OAAA,eAAA,EAACH,MAAMI,IAAI,EAAA,CAAA;;AAGjB,EAAE"}
@@ -9,9 +9,7 @@ Object.defineProperty(exports, "useCarouselSlider_unstable", {
9
9
  return useCarouselSlider_unstable;
10
10
  }
11
11
  });
12
- const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
12
  const _reactutilities = require("@fluentui/react-utilities");
14
- const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
15
13
  const _reacttabster = require("@fluentui/react-tabster");
16
14
  const _CarouselContext = require("../CarouselContext");
17
15
  const useCarouselSlider_unstable = (props, ref)=>{
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CarouselSlider/useCarouselSlider.ts"],"sourcesContent":["'use client';\n\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { CarouselSliderProps, CarouselSliderState } from './CarouselSlider.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\n\n/**\n * Create the state required to render CarouselSlider.\n *\n * The returned state can be modified with hooks such as useCarouselSliderStyles_unstable,\n * before being passed to renderCarouselSlider_unstable.\n *\n * @param props - props from this instance of CarouselSlider\n * @param ref - reference to root HTMLDivElement of CarouselSlider\n */\nexport const useCarouselSlider_unstable = (\n props: CarouselSliderProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselSliderState => {\n const { cardFocus = false } = props;\n const circular = useCarouselContext(ctx => ctx.circular);\n const focusableGroupAttr = useArrowNavigationGroup({\n circular,\n axis: 'horizontal',\n memorizeCurrent: false,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault: true,\n });\n\n const focusProps = cardFocus ? focusableGroupAttr : {};\n\n return {\n cardFocus,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n role: 'group',\n ...props,\n ...focusProps,\n }),\n { elementType: 'div' },\n ),\n };\n};\n"],"names":["getIntrinsicElementProps","slot","React","useArrowNavigationGroup","useCarouselContext_unstable","useCarouselContext","useCarouselSlider_unstable","props","ref","cardFocus","circular","ctx","focusableGroupAttr","axis","memorizeCurrent","unstable_hasDefault","focusProps","components","root","always","role","elementType"],"mappings":"AAAA;;;;;+BAkBaM;;;;;;;gCAhBkC,4BAA4B;iEACpD,QAAQ;8BAGS,0BAA0B;iCACA,qBAAqB;AAWhF,mCAAmC,CACxCC,OACAC;IAEA,MAAM,EAAEC,YAAY,KAAK,EAAE,GAAGF;IAC9B,MAAMG,eAAWL,4CAAAA,EAAmBM,CAAAA,MAAOA,IAAID,QAAQ;IACvD,MAAME,yBAAqBT,qCAAAA,EAAwB;QACjDO;QACAG,MAAM;QACNC,iBAAiB;QACjB,gEAAgE;QAChEC,qBAAqB;IACvB;IAEA,MAAMC,aAAaP,YAAYG,qBAAqB,CAAC;IAErD,OAAO;QACLH;QACAQ,YAAY;YACVC,MAAM;QACR;QACAA,MAAMjB,oBAAAA,CAAKkB,MAAM,CACfnB,4CAAAA,EAAyB,OAAO;YAC9BQ;YACAY,MAAM;YACN,GAAGb,KAAK;YACR,GAAGS,UAAU;QACf,IACA;YAAEK,aAAa;QAAM;IAEzB;AACF,EAAE"}
1
+ {"version":3,"sources":["../src/components/CarouselSlider/useCarouselSlider.ts"],"sourcesContent":["'use client';\n\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type * as React from 'react';\n\nimport type { CarouselSliderProps, CarouselSliderState } from './CarouselSlider.types';\nimport { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\n\n/**\n * Create the state required to render CarouselSlider.\n *\n * The returned state can be modified with hooks such as useCarouselSliderStyles_unstable,\n * before being passed to renderCarouselSlider_unstable.\n *\n * @param props - props from this instance of CarouselSlider\n * @param ref - reference to root HTMLDivElement of CarouselSlider\n */\nexport const useCarouselSlider_unstable = (\n props: CarouselSliderProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselSliderState => {\n const { cardFocus = false } = props;\n const circular = useCarouselContext(ctx => ctx.circular);\n const focusableGroupAttr = useArrowNavigationGroup({\n circular,\n axis: 'horizontal',\n memorizeCurrent: false,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault: true,\n });\n\n const focusProps = cardFocus ? focusableGroupAttr : {};\n\n return {\n cardFocus,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n role: 'group',\n ...props,\n ...focusProps,\n }),\n { elementType: 'div' },\n ),\n };\n};\n"],"names":["getIntrinsicElementProps","slot","useArrowNavigationGroup","useCarouselContext_unstable","useCarouselContext","useCarouselSlider_unstable","props","ref","cardFocus","circular","ctx","focusableGroupAttr","axis","memorizeCurrent","unstable_hasDefault","focusProps","components","root","always","role","elementType"],"mappings":"AAAA;;;;;+BAkBaK;;;;;;gCAhBkC,4BAA4B;8BAInC,0BAA0B;iCACA,qBAAqB;AAWhF,mCAAmC,CACxCC,OACAC;IAEA,MAAM,EAAEC,YAAY,KAAK,EAAE,GAAGF;IAC9B,MAAMG,WAAWL,gDAAAA,EAAmBM,CAAAA,MAAOA,IAAID,QAAQ;IACvD,MAAME,yBAAqBT,qCAAAA,EAAwB;QACjDO;QACAG,MAAM;QACNC,iBAAiB;QACjB,gEAAgE;QAChEC,qBAAqB;IACvB;IAEA,MAAMC,aAAaP,YAAYG,qBAAqB,CAAC;IAErD,OAAO;QACLH;QACAQ,YAAY;YACVC,MAAM;QACR;QACAA,MAAMhB,oBAAAA,CAAKiB,MAAM,KACflB,wCAAAA,EAAyB,OAAO;YAC9BO;YACAY,MAAM;YACN,GAAGb,KAAK;YACR,GAAGS,UAAU;QACf,IACA;YAAEK,aAAa;QAAM;IAEzB;AACF,EAAE"}
@@ -0,0 +1,24 @@
1
+ 'use client';
2
+ "use strict";
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "useCarouselSliderContextValues_unstable", {
7
+ enumerable: true,
8
+ get: function() {
9
+ return useCarouselSliderContextValues_unstable;
10
+ }
11
+ });
12
+ const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard");
13
+ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
+ function useCarouselSliderContextValues_unstable(state) {
15
+ const { cardFocus } = state;
16
+ const carouselSlider = _react.useMemo(()=>({
17
+ cardFocus
18
+ }), [
19
+ cardFocus
20
+ ]);
21
+ return {
22
+ carouselSlider
23
+ };
24
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/CarouselSlider/useCarouselSliderContextValues.ts"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport type { CarouselSliderContextValues } from './CarouselSliderContext';\nimport type { CarouselSliderState } from './CarouselSlider.types';\n\nexport function useCarouselSliderContextValues_unstable(state: CarouselSliderState): CarouselSliderContextValues {\n const { cardFocus } = state;\n const carouselSlider = React.useMemo(() => ({ cardFocus }), [cardFocus]);\n\n return { carouselSlider };\n}\n"],"names":["React","useCarouselSliderContextValues_unstable","state","cardFocus","carouselSlider","useMemo"],"mappings":"AAAA;;;;;;;;;;;;iEAEuB,QAAQ;AAIxB,SAASC,wCAAwCC,KAA0B;IAChF,MAAM,EAAEC,SAAS,EAAE,GAAGD;IACtB,MAAME,iBAAiBJ,OAAMK,OAAO,CAAC,IAAO,CAAA;YAAEF;SAAU,CAAA,EAAI;QAACA;KAAU;IAEvE,OAAO;QAAEC;IAAe;AAC1B"}
@@ -50,6 +50,7 @@ const useCarouselSliderStyles_unstable = (state)=>{
50
50
  'use no memo';
51
51
  const appearance = (0, _CarouselContext.useCarouselContext_unstable)((context)=>context.appearance);
52
52
  const styles = useStyles();
53
+ // eslint-disable-next-line react-hooks/immutability
53
54
  state.root.className = (0, _react.mergeClasses)(carouselSliderClassNames.root, styles.root, appearance === 'elevated' && styles.elevated, state.root.className);
54
55
  return state;
55
56
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselSliderStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nexport const carouselSliderClassNames = {\n root: 'fui-CarouselSlider'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n display: 'flex',\n overflowAnchor: 'none'\n },\n elevated: {\n gap: tokens.spacingHorizontalXXL\n }\n});\n/**\n * Apply styling to the CarouselSlider slots based on the state\n */ export const useCarouselSliderStyles_unstable = (state)=>{\n 'use no memo';\n const appearance = useCarouselContext((context)=>context.appearance);\n const styles = useStyles();\n state.root.className = mergeClasses(carouselSliderClassNames.root, styles.root, appearance === 'elevated' && styles.elevated, state.root.className);\n return state;\n};\n"],"names":["__styles","mergeClasses","tokens","useCarouselContext_unstable","useCarouselContext","carouselSliderClassNames","root","useStyles","mc9l5x","Eiaeu8","elevated","i8kkvl","Belr9w4","rmohyg","d","p","useCarouselSliderStyles_unstable","state","appearance","context","styles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAICK,wBAAwB;;;oCAgBY;;;;uBAnBR,gBAAgB;iCAES,oBAAoB;AAC/E,iCAAiC;IACpCC,IAAI,EAAE;AACV,CAAC;AACD;;CAEA,GAAI,MAAMC,SAAS,GAAA,WAAA,OAAGP,eAAA,EAAA;IAAAM,IAAA,EAAA;QAAAE,MAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;IAAAC,QAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,CAAA,EAAA,CAAA;YAAA;SAAA;KAAA;AAAA,CAQrB,CAAC;AAGS,MAAMC,oCAAoCC,KAAK,IAAG;IACzD,aAAa;IACb,MAAMC,UAAU,OAAGd,4CAAkB,GAAEe,OAAO,GAAGA,OAAO,CAACD,UAAU,CAAC;IACpE,MAAME,MAAM,GAAGb,SAAS,CAAC,CAAC;IAC1BU,KAAK,CAACX,IAAI,CAACe,SAAS,OAAGpB,mBAAY,EAACI,wBAAwB,CAACC,IAAI,EAAEc,MAAM,CAACd,IAAI,EAAEY,UAAU,KAAK,UAAU,IAAIE,MAAM,CAACV,QAAQ,EAAEO,KAAK,CAACX,IAAI,CAACe,SAAS,CAAC;IACnJ,OAAOJ,KAAK;AAChB,CAAC"}
1
+ {"version":3,"sources":["useCarouselSliderStyles.styles.js"],"sourcesContent":["'use client';\nimport { makeStyles, mergeClasses } from '@griffel/react';\nimport { tokens } from '@fluentui/react-theme';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nexport const carouselSliderClassNames = {\n root: 'fui-CarouselSlider'\n};\n/**\n * Styles for the root slot\n */ const useStyles = makeStyles({\n root: {\n display: 'flex',\n overflowAnchor: 'none'\n },\n elevated: {\n gap: tokens.spacingHorizontalXXL\n }\n});\n/**\n * Apply styling to the CarouselSlider slots based on the state\n */ export const useCarouselSliderStyles_unstable = (state)=>{\n 'use no memo';\n const appearance = useCarouselContext((context)=>context.appearance);\n const styles = useStyles();\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(carouselSliderClassNames.root, styles.root, appearance === 'elevated' && styles.elevated, state.root.className);\n return state;\n};\n"],"names":["__styles","mergeClasses","tokens","useCarouselContext_unstable","useCarouselContext","carouselSliderClassNames","root","useStyles","mc9l5x","Eiaeu8","elevated","i8kkvl","Belr9w4","rmohyg","d","p","useCarouselSliderStyles_unstable","state","appearance","context","styles","className"],"mappings":"AAAA,YAAY;;;;;;;;;;;;IAICK,wBAAwB;;;oCAgBY;eAAhCW;;;uBAnBwB,gBAAgB;iCAES,oBAAoB;AAC/E,iCAAiC;IACpCV,IAAI,EAAE;AACV,CAAC;AACD;;CAEA,GAAI,MAAMC,SAAS,GAAA,WAAA,OAAGP,eAAA,EAAA;IAAAM,IAAA,EAAA;QAAAE,MAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;IAAAC,QAAA,EAAA;QAAAC,MAAA,EAAA;QAAAC,OAAA,EAAA;QAAAC,MAAA,EAAA;IAAA;AAAA,GAAA;IAAAC,CAAA,EAAA;QAAA;QAAA;QAAA;YAAA;YAAA;gBAAAC,CAAA,EAAA,CAAA;YAAA;SAAA;KAAA;AAAA,CAQrB,CAAC;AAGS,0CAA0CE,KAAK,IAAG;IACzD,aAAa;IACb,MAAMC,UAAU,OAAGd,4CAAkB,GAAEe,OAAO,GAAGA,OAAO,CAACD,UAAU,CAAC;IACpE,MAAME,MAAM,GAAGb,SAAS,CAAC,CAAC;IAC1B,oDAAA;IACAU,KAAK,CAACX,IAAI,CAACe,SAAS,OAAGpB,mBAAY,EAACI,wBAAwB,CAACC,IAAI,EAAEc,MAAM,CAACd,IAAI,EAAEY,UAAU,KAAK,UAAU,IAAIE,MAAM,CAACV,QAAQ,EAAEO,KAAK,CAACX,IAAI,CAACe,SAAS,CAAC;IACnJ,OAAOJ,KAAK;AAChB,CAAC"}
@@ -38,6 +38,7 @@ const useCarouselSliderStyles_unstable = (state)=>{
38
38
  'use no memo';
39
39
  const appearance = (0, _CarouselContext.useCarouselContext_unstable)((context)=>context.appearance);
40
40
  const styles = useStyles();
41
+ // eslint-disable-next-line react-hooks/immutability
41
42
  state.root.className = (0, _react.mergeClasses)(carouselSliderClassNames.root, styles.root, appearance === 'elevated' && styles.elevated, state.root.className);
42
43
  return state;
43
44
  };
@@ -1 +1 @@
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';\nimport { tokens } from '@fluentui/react-theme';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\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 elevated: {\n gap: tokens.spacingHorizontalXXL,\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 appearance = useCarouselContext(context => context.appearance);\n const styles = useStyles();\n\n state.root.className = mergeClasses(\n carouselSliderClassNames.root,\n styles.root,\n appearance === 'elevated' && styles.elevated,\n state.root.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","useCarouselContext_unstable","useCarouselContext","carouselSliderClassNames","root","useStyles","display","overflowAnchor","elevated","gap","spacingHorizontalXXL","useCarouselSliderStyles_unstable","state","appearance","context","styles","className"],"mappings":"AAAA;;;;;;;;;;;;IASaK,wBAAAA;;;oCAoBAQ;eAAAA;;;uBA3B4B,iBAAiB;4BAEnC,wBAAwB;iCACmB,qBAAqB;AAIhF,iCAAsE;IAC3EP,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYP,qBAAAA,EAAW;IAC3BM,MAAM;QACJE,SAAS;QACTC,gBAAgB;IAClB;IACAC,UAAU;QACRC,KAAKT,kBAAAA,CAAOU,oBAAoB;IAClC;AACF;AAKO,yCAAyC,CAACE;IAC/C;IAEA,MAAMC,iBAAaX,4CAAAA,EAAmBY,CAAAA,UAAWA,QAAQD,UAAU;IACnE,MAAME,SAASV;IAEfO,MAAMR,IAAI,CAACY,SAAS,OAAGjB,mBAAAA,EACrBI,yBAAyBC,IAAI,EAC7BW,OAAOX,IAAI,EACXS,eAAe,cAAcE,OAAOP,QAAQ,EAC5CI,MAAMR,IAAI,CAACY,SAAS;IAGtB,OAAOJ;AACT,EAAE"}
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';\nimport { tokens } from '@fluentui/react-theme';\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\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 elevated: {\n gap: tokens.spacingHorizontalXXL,\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 appearance = useCarouselContext(context => context.appearance);\n const styles = useStyles();\n\n // eslint-disable-next-line react-hooks/immutability\n state.root.className = mergeClasses(\n carouselSliderClassNames.root,\n styles.root,\n appearance === 'elevated' && styles.elevated,\n state.root.className,\n );\n\n return state;\n};\n"],"names":["makeStyles","mergeClasses","tokens","useCarouselContext_unstable","useCarouselContext","carouselSliderClassNames","root","useStyles","display","overflowAnchor","elevated","gap","spacingHorizontalXXL","useCarouselSliderStyles_unstable","state","appearance","context","styles","className"],"mappings":"AAAA;;;;;;;;;;;;IASaK,wBAAAA;;;oCAoBAQ;eAAAA;;;uBA3B4B,iBAAiB;4BAEnC,wBAAwB;iCACmB,qBAAqB;AAIhF,iCAAsE;IAC3EP,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,YAAYP,qBAAAA,EAAW;IAC3BM,MAAM;QACJE,SAAS;QACTC,gBAAgB;IAClB;IACAC,UAAU;QACRC,KAAKT,kBAAAA,CAAOU,oBAAoB;IAClC;AACF;AAKO,yCAAyC,CAACE;IAC/C;IAEA,MAAMC,iBAAaX,4CAAAA,EAAmBY,CAAAA,UAAWA,QAAQD,UAAU;IACnE,MAAME,SAASV;IAEf,oDAAoD;IACpDO,MAAMR,IAAI,CAACY,SAAS,OAAGjB,mBAAAA,EACrBI,yBAAyBC,IAAI,EAC7BW,OAAOX,IAAI,EACXS,eAAe,cAAcE,OAAOP,QAAQ,EAC5CI,MAAMR,IAAI,CAACY,SAAS;IAGtB,OAAOJ;AACT,EAAE"}
@@ -14,13 +14,13 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
14
14
  const _useCarouselViewport = require("./useCarouselViewport");
15
15
  const _renderCarouselViewport = require("./renderCarouselViewport");
16
16
  const _useCarouselViewportStylesstyles = require("./useCarouselViewportStyles.styles");
17
- const _CarouselSliderContext = require("../CarouselSlider/CarouselSliderContext");
17
+ const _useCarouselSliderContextValues = require("../CarouselSlider/useCarouselSliderContextValues");
18
18
  const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
19
19
  const CarouselViewport = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
20
20
  const state = (0, _useCarouselViewport.useCarouselViewport_unstable)(props, ref);
21
21
  (0, _useCarouselViewportStylesstyles.useCarouselViewportStyles_unstable)(state);
22
22
  (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselViewportStyles_unstable')(state);
23
- const context = (0, _CarouselSliderContext.useCarouselSliderContextValues_unstable)(state);
23
+ const context = (0, _useCarouselSliderContextValues.useCarouselSliderContextValues_unstable)(state);
24
24
  return (0, _renderCarouselViewport.renderCarouselViewport_unstable)(state, context);
25
25
  });
26
26
  CarouselViewport.displayName = 'CarouselViewport';
@@ -1 +1 @@
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
+ {"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/useCarouselSliderContextValues';\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;gDAEhC,mDAAmD;qCAC/D,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,uEAAAA,EAAwCM;IAExD,WAAOR,uDAAAA,EAAgCQ,OAAOC;AAChD,GAAG;AAEHL,iBAAiBM,WAAW,GAAG"}
@@ -1 +1 @@
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":[],"mappings":"AAeA;;CAEC,GACD,WAAiH"}
1
+ {"version":3,"sources":["../src/components/CarouselViewport/CarouselViewport.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport type { 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":[],"mappings":"AAeA;;CAEC,GACD,WAAiH"}
@@ -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 { 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
+ {"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 type { CarouselSliderContextValues } from '../CarouselSlider/CarouselSliderContext';\nimport { 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":";;;;+BAYaE;;;;;;4BAXb,gDAAiD;gCAErB,4BAA4B;uCAIV,0CAA0C;AAKjF,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"}
@@ -50,9 +50,13 @@ const useCarouselViewport_unstable = (props, ref)=>{
50
50
  }, [
51
51
  enableAutoplay
52
52
  ]);
53
+ // eslint-disable-next-line react-hooks/refs
53
54
  const onFocusCapture = (0, _reactutilities.mergeCallbacks)(props.onFocusCapture, handleFocusCapture);
55
+ // eslint-disable-next-line react-hooks/refs
54
56
  const onBlurCapture = (0, _reactutilities.mergeCallbacks)(props.onBlurCapture, handleBlurCapture);
57
+ // eslint-disable-next-line react-hooks/refs
55
58
  const onMouseEnter = (0, _reactutilities.mergeCallbacks)(props.onMouseEnter, handleMouseEnter);
59
+ // eslint-disable-next-line react-hooks/refs
56
60
  const onMouseLeave = (0, _reactutilities.mergeCallbacks)(props.onMouseLeave, handleMouseLeave);
57
61
  return {
58
62
  components: {
@@ -1 +1 @@
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
+ {"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 // eslint-disable-next-line react-hooks/refs\n const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocusCapture);\n // eslint-disable-next-line react-hooks/refs\n const onBlurCapture = mergeCallbacks(props.onBlurCapture, handleBlurCapture);\n // eslint-disable-next-line react-hooks/refs\n const onMouseEnter = mergeCallbacks(props.onMouseEnter, handleMouseEnter);\n // eslint-disable-next-line react-hooks/refs\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,4CAA4C;IAC5C,MAAMW,qBAAiBxB,8BAAAA,EAAeM,MAAMkB,cAAc,EAAEV;IAC5D,4CAA4C;IAC5C,MAAMW,oBAAgBzB,8BAAAA,EAAeM,MAAMmB,aAAa,EAAER;IAC1D,4CAA4C;IAC5C,MAAMS,mBAAe1B,8BAAAA,EAAeM,MAAMoB,YAAY,EAAEJ;IACxD,4CAA4C;IAC5C,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"}
@@ -37,6 +37,7 @@ const carouselViewportClassNames = {
37
37
  const useCarouselViewportStyles_unstable = (state)=>{
38
38
  'use no memo';
39
39
  const styles = useStyles();
40
+ // eslint-disable-next-line react-hooks/immutability
40
41
  state.root.className = (0, _react.mergeClasses)(carouselViewportClassNames.root, styles.root, state.root.className);
41
42
  return state;
42
43
  };
@@ -1 +1 @@
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"}
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 // eslint-disable-next-line react-hooks/immutability\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;IAC1B,oDAAA;IACAK,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"}
@@ -32,6 +32,7 @@ const carouselViewportClassNames = {
32
32
  const useCarouselViewportStyles_unstable = (state)=>{
33
33
  'use no memo';
34
34
  const styles = useStyles();
35
+ // eslint-disable-next-line react-hooks/immutability
35
36
  state.root.className = (0, _react.mergeClasses)(carouselViewportClassNames.root, styles.root, state.root.className);
36
37
  return state;
37
38
  };
@@ -1 +1 @@
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
+ {"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 // eslint-disable-next-line react-hooks/immutability\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;IACf,oDAAoD;IACpDI,MAAML,IAAI,CAACO,SAAS,OAAGT,mBAAAA,EAAaC,2BAA2BC,IAAI,EAAEM,OAAON,IAAI,EAAEK,MAAML,IAAI,CAACO,SAAS;IAEtG,OAAOF;AACT,EAAE"}
@@ -203,6 +203,7 @@ function useEmblaCarousel(options) {
203
203
  });
204
204
  };
205
205
  // Get plugins using autoplayRef to prevent state change recreating EmblaCarousel
206
+ // eslint-disable-next-line react-hooks/refs
206
207
  const plugins = getPlugins();
207
208
  return {
208
209
  set current (newElement){
@@ -1 +1 @@
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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"}
1
+ {"version":3,"sources":["../src/components/useEmblaCarousel.ts"],"sourcesContent":["'use client';\n\nimport { type EventHandler, useControllableState, useEventCallback } from '@fluentui/react-utilities';\nimport type { EmblaPluginType } from 'embla-carousel';\nimport EmblaCarousel, { 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 type { 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 // eslint-disable-next-line react-hooks/refs\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.9.6",
3
+ "version": "9.9.8",
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",
@@ -18,16 +18,16 @@
18
18
  },
19
19
  "license": "MIT",
20
20
  "dependencies": {
21
- "@fluentui/react-aria": "^9.17.10",
22
- "@fluentui/react-button": "^9.9.0",
23
- "@fluentui/react-context-selector": "^9.2.15",
21
+ "@fluentui/react-aria": "^9.17.12",
22
+ "@fluentui/react-button": "^9.9.2",
23
+ "@fluentui/react-context-selector": "^9.2.17",
24
24
  "@fluentui/react-icons": "^2.0.245",
25
- "@fluentui/react-tooltip": "^9.10.0",
26
- "@fluentui/react-jsx-runtime": "^9.4.1",
25
+ "@fluentui/react-tooltip": "^9.10.2",
26
+ "@fluentui/react-jsx-runtime": "^9.4.3",
27
27
  "@fluentui/react-shared-contexts": "^9.26.2",
28
- "@fluentui/react-tabster": "^9.26.13",
28
+ "@fluentui/react-tabster": "^9.26.15",
29
29
  "@fluentui/react-theme": "^9.2.1",
30
- "@fluentui/react-utilities": "^9.26.2",
30
+ "@fluentui/react-utilities": "^9.26.4",
31
31
  "@griffel/react": "^1.5.32",
32
32
  "@swc/helpers": "^0.5.1",
33
33
  "embla-carousel": "^8.5.1",