@fluentui/react-carousel 9.2.0 → 9.3.1

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 (213) hide show
  1. package/CHANGELOG.md +35 -2
  2. package/dist/index.d.ts +47 -1
  3. package/lib/Carousel.js.map +1 -1
  4. package/lib/CarouselAutoplayButton.js.map +1 -1
  5. package/lib/CarouselButton.js.map +1 -1
  6. package/lib/CarouselCard.js.map +1 -1
  7. package/lib/CarouselContext.js.map +1 -1
  8. package/lib/CarouselNav.js.map +1 -1
  9. package/lib/CarouselNavButton.js.map +1 -1
  10. package/lib/CarouselNavContainer.js.map +1 -1
  11. package/lib/CarouselNavImageButton.js.map +1 -1
  12. package/lib/CarouselSlider.js.map +1 -1
  13. package/lib/CarouselViewport.js +1 -0
  14. package/lib/CarouselViewport.js.map +1 -0
  15. package/lib/components/Carousel/Carousel.js +2 -3
  16. package/lib/components/Carousel/Carousel.js.map +1 -1
  17. package/lib/components/Carousel/Carousel.types.js.map +1 -1
  18. package/lib/components/Carousel/index.js.map +1 -1
  19. package/lib/components/Carousel/renderCarousel.js.map +1 -1
  20. package/lib/components/Carousel/useCarousel.js +7 -5
  21. package/lib/components/Carousel/useCarousel.js.map +1 -1
  22. package/lib/components/Carousel/useCarouselContextValues.js +5 -3
  23. package/lib/components/Carousel/useCarouselContextValues.js.map +1 -1
  24. package/lib/components/Carousel/useCarouselStyles.styles.js +3 -10
  25. package/lib/components/Carousel/useCarouselStyles.styles.js.map +1 -1
  26. package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.js +2 -3
  27. package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.js.map +1 -1
  28. package/lib/components/CarouselAutoplayButton/CarouselAutoplayButton.types.js.map +1 -1
  29. package/lib/components/CarouselAutoplayButton/index.js.map +1 -1
  30. package/lib/components/CarouselAutoplayButton/renderCarouselAutoplayButton.js +1 -1
  31. package/lib/components/CarouselAutoplayButton/renderCarouselAutoplayButton.js.map +1 -1
  32. package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButton.js.map +1 -1
  33. package/lib/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js +1 -2
  34. package/lib/components/CarouselButton/CarouselButton.js +2 -3
  35. package/lib/components/CarouselButton/CarouselButton.js.map +1 -1
  36. package/lib/components/CarouselButton/CarouselButton.types.js.map +1 -1
  37. package/lib/components/CarouselButton/index.js.map +1 -1
  38. package/lib/components/CarouselButton/renderCarouselButton.js +1 -1
  39. package/lib/components/CarouselButton/renderCarouselButton.js.map +1 -1
  40. package/lib/components/CarouselButton/useCarouselButton.js.map +1 -1
  41. package/lib/components/CarouselButton/useCarouselButtonStyles.styles.js +1 -2
  42. package/lib/components/CarouselCard/CarouselCard.js +2 -3
  43. package/lib/components/CarouselCard/CarouselCard.js.map +1 -1
  44. package/lib/components/CarouselCard/CarouselCard.types.js.map +1 -1
  45. package/lib/components/CarouselCard/index.js.map +1 -1
  46. package/lib/components/CarouselCard/renderCarouselCard.js.map +1 -1
  47. package/lib/components/CarouselCard/useCarouselCard.js +10 -8
  48. package/lib/components/CarouselCard/useCarouselCard.js.map +1 -1
  49. package/lib/components/CarouselCard/useCarouselCardStyles.styles.js +1 -2
  50. package/lib/components/CarouselContext.js +2 -1
  51. package/lib/components/CarouselContext.js.map +1 -1
  52. package/lib/components/CarouselContext.types.js.map +1 -1
  53. package/lib/components/CarouselNav/CarouselNav.js +2 -3
  54. package/lib/components/CarouselNav/CarouselNav.js.map +1 -1
  55. package/lib/components/CarouselNav/CarouselNav.types.js.map +1 -1
  56. package/lib/components/CarouselNav/CarouselNavContext.js.map +1 -1
  57. package/lib/components/CarouselNav/CarouselNavIndexContext.js.map +1 -1
  58. package/lib/components/CarouselNav/index.js.map +1 -1
  59. package/lib/components/CarouselNav/renderCarouselNav.js.map +1 -1
  60. package/lib/components/CarouselNav/useCarouselNav.js.map +1 -1
  61. package/lib/components/CarouselNav/useCarouselNavStyles.styles.js +1 -2
  62. package/lib/components/CarouselNavButton/CarouselNavButton.js +2 -3
  63. package/lib/components/CarouselNavButton/CarouselNavButton.js.map +1 -1
  64. package/lib/components/CarouselNavButton/CarouselNavButton.types.js.map +1 -1
  65. package/lib/components/CarouselNavButton/index.js.map +1 -1
  66. package/lib/components/CarouselNavButton/renderCarouselNavButton.js.map +1 -1
  67. package/lib/components/CarouselNavButton/useCarouselNavButton.js.map +1 -1
  68. package/lib/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js +1 -2
  69. package/lib/components/CarouselNavContainer/CarouselNavContainer.js +2 -8
  70. package/lib/components/CarouselNavContainer/CarouselNavContainer.js.map +1 -1
  71. package/lib/components/CarouselNavContainer/CarouselNavContainer.types.js.map +1 -1
  72. package/lib/components/CarouselNavContainer/index.js.map +1 -1
  73. package/lib/components/CarouselNavContainer/renderCarouselNavContainer.js.map +1 -1
  74. package/lib/components/CarouselNavContainer/useCarouselNavContainer.js.map +1 -1
  75. package/lib/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js +1 -2
  76. package/lib/components/CarouselNavImageButton/CarouselNavImageButton.js +2 -3
  77. package/lib/components/CarouselNavImageButton/CarouselNavImageButton.js.map +1 -1
  78. package/lib/components/CarouselNavImageButton/CarouselNavImageButton.types.js.map +1 -1
  79. package/lib/components/CarouselNavImageButton/index.js.map +1 -1
  80. package/lib/components/CarouselNavImageButton/renderCarouselNavImageButton.js.map +1 -1
  81. package/lib/components/CarouselNavImageButton/useCarouselNavImageButton.js.map +1 -1
  82. package/lib/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js +1 -2
  83. package/lib/components/CarouselSlider/CarouselSlider.js +2 -3
  84. package/lib/components/CarouselSlider/CarouselSlider.js.map +1 -1
  85. package/lib/components/CarouselSlider/CarouselSlider.types.js.map +1 -1
  86. package/lib/components/CarouselSlider/CarouselSliderContext.js.map +1 -1
  87. package/lib/components/CarouselSlider/index.js.map +1 -1
  88. package/lib/components/CarouselSlider/renderCarouselSlider.js.map +1 -1
  89. package/lib/components/CarouselSlider/useCarouselSlider.js.map +1 -1
  90. package/lib/components/CarouselSlider/useCarouselSliderStyles.styles.js +1 -2
  91. package/lib/components/CarouselViewport/CarouselViewport.js +16 -0
  92. package/lib/components/CarouselViewport/CarouselViewport.js.map +1 -0
  93. package/lib/components/CarouselViewport/CarouselViewport.types.js +3 -0
  94. package/lib/components/CarouselViewport/CarouselViewport.types.js.map +1 -0
  95. package/lib/components/CarouselViewport/index.js +5 -0
  96. package/lib/components/CarouselViewport/index.js.map +1 -0
  97. package/lib/components/CarouselViewport/renderCarouselViewport.js +12 -0
  98. package/lib/components/CarouselViewport/renderCarouselViewport.js.map +1 -0
  99. package/lib/components/CarouselViewport/useCarouselViewport.js +28 -0
  100. package/lib/components/CarouselViewport/useCarouselViewport.js.map +1 -0
  101. package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js +25 -0
  102. package/lib/components/CarouselViewport/useCarouselViewportStyles.styles.js.map +1 -0
  103. package/lib/components/pointerEvents.js +58 -0
  104. package/lib/components/pointerEvents.js.map +1 -0
  105. package/lib/components/useEmblaCarousel.js +58 -34
  106. package/lib/components/useEmblaCarousel.js.map +1 -1
  107. package/lib/index.js +1 -0
  108. package/lib/index.js.map +1 -1
  109. package/lib-commonjs/Carousel.js.map +1 -1
  110. package/lib-commonjs/CarouselAutoplayButton.js.map +1 -1
  111. package/lib-commonjs/CarouselButton.js.map +1 -1
  112. package/lib-commonjs/CarouselCard.js.map +1 -1
  113. package/lib-commonjs/CarouselContext.js.map +1 -1
  114. package/lib-commonjs/CarouselNav.js.map +1 -1
  115. package/lib-commonjs/CarouselNavButton.js.map +1 -1
  116. package/lib-commonjs/CarouselNavContainer.js.map +1 -1
  117. package/lib-commonjs/CarouselNavImageButton.js.map +1 -1
  118. package/lib-commonjs/CarouselSlider.js.map +1 -1
  119. package/lib-commonjs/CarouselViewport.js +6 -0
  120. package/lib-commonjs/CarouselViewport.js.map +1 -0
  121. package/lib-commonjs/components/Carousel/Carousel.js +2 -3
  122. package/lib-commonjs/components/Carousel/Carousel.js.map +1 -1
  123. package/lib-commonjs/components/Carousel/Carousel.types.js.map +1 -1
  124. package/lib-commonjs/components/Carousel/index.js.map +1 -1
  125. package/lib-commonjs/components/Carousel/renderCarousel.js.map +1 -1
  126. package/lib-commonjs/components/Carousel/useCarousel.js +7 -5
  127. package/lib-commonjs/components/Carousel/useCarousel.js.map +1 -1
  128. package/lib-commonjs/components/Carousel/useCarouselContextValues.js +5 -3
  129. package/lib-commonjs/components/Carousel/useCarouselContextValues.js.map +1 -1
  130. package/lib-commonjs/components/Carousel/useCarouselStyles.styles.js +3 -12
  131. package/lib-commonjs/components/Carousel/useCarouselStyles.styles.js.map +1 -1
  132. package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.js +2 -3
  133. package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.js.map +1 -1
  134. package/lib-commonjs/components/CarouselAutoplayButton/CarouselAutoplayButton.types.js.map +1 -1
  135. package/lib-commonjs/components/CarouselAutoplayButton/index.js.map +1 -1
  136. package/lib-commonjs/components/CarouselAutoplayButton/renderCarouselAutoplayButton.js.map +1 -1
  137. package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButton.js.map +1 -1
  138. package/lib-commonjs/components/CarouselAutoplayButton/useCarouselAutoplayButtonStyles.styles.js +1 -1
  139. package/lib-commonjs/components/CarouselButton/CarouselButton.js +2 -3
  140. package/lib-commonjs/components/CarouselButton/CarouselButton.js.map +1 -1
  141. package/lib-commonjs/components/CarouselButton/CarouselButton.types.js.map +1 -1
  142. package/lib-commonjs/components/CarouselButton/index.js.map +1 -1
  143. package/lib-commonjs/components/CarouselButton/renderCarouselButton.js.map +1 -1
  144. package/lib-commonjs/components/CarouselButton/useCarouselButton.js.map +1 -1
  145. package/lib-commonjs/components/CarouselButton/useCarouselButtonStyles.styles.js +1 -1
  146. package/lib-commonjs/components/CarouselCard/CarouselCard.js +2 -3
  147. package/lib-commonjs/components/CarouselCard/CarouselCard.js.map +1 -1
  148. package/lib-commonjs/components/CarouselCard/CarouselCard.types.js.map +1 -1
  149. package/lib-commonjs/components/CarouselCard/index.js.map +1 -1
  150. package/lib-commonjs/components/CarouselCard/renderCarouselCard.js.map +1 -1
  151. package/lib-commonjs/components/CarouselCard/useCarouselCard.js +10 -8
  152. package/lib-commonjs/components/CarouselCard/useCarouselCard.js.map +1 -1
  153. package/lib-commonjs/components/CarouselCard/useCarouselCardStyles.styles.js +1 -1
  154. package/lib-commonjs/components/CarouselContext.js +2 -1
  155. package/lib-commonjs/components/CarouselContext.js.map +1 -1
  156. package/lib-commonjs/components/CarouselContext.types.js.map +1 -1
  157. package/lib-commonjs/components/CarouselNav/CarouselNav.js +2 -3
  158. package/lib-commonjs/components/CarouselNav/CarouselNav.js.map +1 -1
  159. package/lib-commonjs/components/CarouselNav/CarouselNav.types.js.map +1 -1
  160. package/lib-commonjs/components/CarouselNav/CarouselNavContext.js.map +1 -1
  161. package/lib-commonjs/components/CarouselNav/CarouselNavIndexContext.js.map +1 -1
  162. package/lib-commonjs/components/CarouselNav/index.js.map +1 -1
  163. package/lib-commonjs/components/CarouselNav/renderCarouselNav.js.map +1 -1
  164. package/lib-commonjs/components/CarouselNav/useCarouselNav.js.map +1 -1
  165. package/lib-commonjs/components/CarouselNav/useCarouselNavStyles.styles.js +1 -1
  166. package/lib-commonjs/components/CarouselNavButton/CarouselNavButton.js +2 -3
  167. package/lib-commonjs/components/CarouselNavButton/CarouselNavButton.js.map +1 -1
  168. package/lib-commonjs/components/CarouselNavButton/CarouselNavButton.types.js.map +1 -1
  169. package/lib-commonjs/components/CarouselNavButton/index.js.map +1 -1
  170. package/lib-commonjs/components/CarouselNavButton/renderCarouselNavButton.js.map +1 -1
  171. package/lib-commonjs/components/CarouselNavButton/useCarouselNavButton.js.map +1 -1
  172. package/lib-commonjs/components/CarouselNavButton/useCarouselNavButtonStyles.styles.js +1 -1
  173. package/lib-commonjs/components/CarouselNavContainer/CarouselNavContainer.js +2 -8
  174. package/lib-commonjs/components/CarouselNavContainer/CarouselNavContainer.js.map +1 -1
  175. package/lib-commonjs/components/CarouselNavContainer/CarouselNavContainer.types.js.map +1 -1
  176. package/lib-commonjs/components/CarouselNavContainer/index.js.map +1 -1
  177. package/lib-commonjs/components/CarouselNavContainer/renderCarouselNavContainer.js.map +1 -1
  178. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainer.js.map +1 -1
  179. package/lib-commonjs/components/CarouselNavContainer/useCarouselNavContainerStyles.styles.js +1 -1
  180. package/lib-commonjs/components/CarouselNavImageButton/CarouselNavImageButton.js +2 -3
  181. package/lib-commonjs/components/CarouselNavImageButton/CarouselNavImageButton.js.map +1 -1
  182. package/lib-commonjs/components/CarouselNavImageButton/CarouselNavImageButton.types.js.map +1 -1
  183. package/lib-commonjs/components/CarouselNavImageButton/index.js.map +1 -1
  184. package/lib-commonjs/components/CarouselNavImageButton/renderCarouselNavImageButton.js.map +1 -1
  185. package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButton.js.map +1 -1
  186. package/lib-commonjs/components/CarouselNavImageButton/useCarouselNavImageButtonStyles.styles.js +1 -1
  187. package/lib-commonjs/components/CarouselSlider/CarouselSlider.js +2 -3
  188. package/lib-commonjs/components/CarouselSlider/CarouselSlider.js.map +1 -1
  189. package/lib-commonjs/components/CarouselSlider/CarouselSlider.types.js.map +1 -1
  190. package/lib-commonjs/components/CarouselSlider/CarouselSliderContext.js.map +1 -1
  191. package/lib-commonjs/components/CarouselSlider/index.js.map +1 -1
  192. package/lib-commonjs/components/CarouselSlider/renderCarouselSlider.js.map +1 -1
  193. package/lib-commonjs/components/CarouselSlider/useCarouselSlider.js.map +1 -1
  194. package/lib-commonjs/components/CarouselSlider/useCarouselSliderStyles.styles.js +1 -1
  195. package/lib-commonjs/components/CarouselViewport/CarouselViewport.js +25 -0
  196. package/lib-commonjs/components/CarouselViewport/CarouselViewport.js.map +1 -0
  197. package/lib-commonjs/components/CarouselViewport/CarouselViewport.types.js +6 -0
  198. package/lib-commonjs/components/CarouselViewport/CarouselViewport.types.js.map +1 -0
  199. package/lib-commonjs/components/CarouselViewport/index.js +10 -0
  200. package/lib-commonjs/components/CarouselViewport/index.js.map +1 -0
  201. package/lib-commonjs/components/CarouselViewport/renderCarouselViewport.js +20 -0
  202. package/lib-commonjs/components/CarouselViewport/renderCarouselViewport.js.map +1 -0
  203. package/lib-commonjs/components/CarouselViewport/useCarouselViewport.js +31 -0
  204. package/lib-commonjs/components/CarouselViewport/useCarouselViewport.js.map +1 -0
  205. package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.js +41 -0
  206. package/lib-commonjs/components/CarouselViewport/useCarouselViewportStyles.styles.js.map +1 -0
  207. package/lib-commonjs/components/pointerEvents.js +68 -0
  208. package/lib-commonjs/components/pointerEvents.js.map +1 -0
  209. package/lib-commonjs/components/useEmblaCarousel.js +57 -33
  210. package/lib-commonjs/components/useEmblaCarousel.js.map +1 -1
  211. package/lib-commonjs/index.js +16 -0
  212. package/lib-commonjs/index.js.map +1 -1
  213. package/package.json +10 -21
@@ -1 +1 @@
1
- {"version":3,"sources":["renderCarouselButton.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselButtonState, CarouselButtonSlots } from './CarouselButton.types';\nimport { renderButton_unstable } from '@fluentui/react-button';\n\n/**\n * Render the final JSX of CarouselButton\n */\nexport const renderCarouselButton_unstable = (state: CarouselButtonState) => {\n assertSlots<CarouselButtonSlots>(state);\n\n // We render the underlying react-button with injected carousel functionality\n return renderButton_unstable(state);\n};\n"],"names":["renderCarouselButton_unstable","state","assertSlots","renderButton_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;gCATb;6BAIsC;AAK/B,MAAMA,gCAAgC,CAACC;IAC5CC,IAAAA,2BAAAA,EAAiCD;IAEjC,6EAA6E;IAC7E,OAAOE,IAAAA,kCAAAA,EAAsBF;AAC/B"}
1
+ {"version":3,"sources":["../src/components/CarouselButton/renderCarouselButton.tsx"],"sourcesContent":["import { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselButtonState, CarouselButtonSlots } from './CarouselButton.types';\nimport { renderButton_unstable } from '@fluentui/react-button';\n\n/**\n * Render the final JSX of CarouselButton\n */\nexport const renderCarouselButton_unstable = (state: CarouselButtonState) => {\n assertSlots<CarouselButtonSlots>(state);\n\n // We render the underlying react-button with injected carousel functionality\n return renderButton_unstable(state);\n};\n"],"names":["renderCarouselButton_unstable","state","assertSlots","renderButton_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":";;;;+BAOaA;;;eAAAA;;;gCAPe;6BAEU;AAK/B,MAAMA,gCAAgC,CAACC;IAC5CC,IAAAA,2BAAAA,EAAiCD;IAEjC,6EAA6E;IAC7E,OAAOE,IAAAA,kCAAAA,EAAsBF;AAC/B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselButton.tsx"],"sourcesContent":["import { type ARIAButtonElement } from '@fluentui/react-aria';\nimport { useButton_unstable } from '@fluentui/react-button';\nimport { ChevronLeftRegular, ChevronRightRegular } from '@fluentui/react-icons';\nimport {\n mergeCallbacks,\n useEventCallback,\n slot,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport type { CarouselButtonProps, CarouselButtonState } from './CarouselButton.types';\nimport type { CarouselUpdateData } from '../Carousel/Carousel.types';\nimport { carouselButtonClassNames } from './useCarouselButtonStyles.styles';\nimport { useRef } from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Create the state required to render CarouselButton.\n *\n * The returned state can be modified with hooks such as useCarouselButtonStyles_unstable,\n * before being passed to renderCarouselButton_unstable.\n *\n * @param props - props from this instance of CarouselButton\n * @param ref - reference to root HTMLDivElement of CarouselButton\n */\nexport const useCarouselButton_unstable = (\n props: CarouselButtonProps,\n ref: React.Ref<ARIAButtonElement>,\n): CarouselButtonState => {\n const { navType = 'next' } = props;\n\n // Locally tracks the total number of slides, will only update if this changes.\n const [totalSlides, setTotalSlides] = React.useState(0);\n\n const { dir } = useFluent();\n const buttonRef = useRef<HTMLButtonElement>();\n const circular = useCarouselContext(ctx => ctx.circular);\n const containerRef = useCarouselContext(ctx => ctx.containerRef);\n const selectPageByDirection = useCarouselContext(ctx => ctx.selectPageByDirection);\n const subscribeForValues = useCarouselContext(ctx => ctx.subscribeForValues);\n const resetAutoplay = useCarouselContext(ctx => ctx.resetAutoplay);\n\n const isTrailing = useCarouselContext(ctx => {\n if (circular) {\n return false;\n }\n\n if (navType === 'prev') {\n return ctx.activeIndex === 0;\n }\n\n return ctx.activeIndex === totalSlides - 1;\n });\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement>) => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const nextIndex = selectPageByDirection(event, navType);\n\n let _trailing = false;\n if (navType === 'prev') {\n _trailing = nextIndex === 0;\n } else {\n _trailing = nextIndex === totalSlides - 1;\n }\n\n if (!circular && _trailing && containerRef?.current) {\n // Focus non-disabled element\n const buttonRefs: NodeListOf<HTMLButtonElement> = containerRef.current.querySelectorAll(\n `.${carouselButtonClassNames.root}`,\n );\n buttonRefs.forEach(_buttonRef => {\n if (_buttonRef !== buttonRef.current) {\n _buttonRef.focus();\n }\n });\n }\n\n resetAutoplay();\n };\n\n useIsomorphicLayoutEffect(() => {\n return subscribeForValues((data: CarouselUpdateData) => {\n setTotalSlides(data.navItemsCount);\n });\n }, [subscribeForValues]);\n\n const nextArrowIcon = dir === 'ltr' ? <ChevronRightRegular /> : <ChevronLeftRegular />;\n const prevArrowIcon = dir === 'ltr' ? <ChevronLeftRegular /> : <ChevronRightRegular />;\n\n return {\n navType,\n // We lean on react-button class to handle styling and icon enhancements\n ...useButton_unstable(\n {\n icon: slot.optional(props.icon, {\n defaultProps: {\n children: navType === 'next' ? nextArrowIcon : prevArrowIcon,\n },\n renderByDefault: true,\n elementType: 'span',\n }),\n disabled: isTrailing,\n tabIndex: isTrailing ? -1 : 0,\n 'aria-disabled': isTrailing,\n appearance: 'subtle',\n ...props,\n onClick: useEventCallback(mergeCallbacks(handleClick, props.onClick)),\n },\n useMergedRefs(ref, buttonRef) as React.Ref<HTMLButtonElement>,\n ),\n };\n};\n"],"names":["useCarouselButton_unstable","props","ref","navType","totalSlides","setTotalSlides","React","useState","dir","useFluent","buttonRef","useRef","circular","useCarouselContext","ctx","containerRef","selectPageByDirection","subscribeForValues","resetAutoplay","isTrailing","activeIndex","handleClick","event","isDefaultPrevented","nextIndex","_trailing","current","buttonRefs","querySelectorAll","carouselButtonClassNames","root","forEach","_buttonRef","focus","useIsomorphicLayoutEffect","data","navItemsCount","nextArrowIcon","createElement","ChevronRightRegular","ChevronLeftRegular","prevArrowIcon","useButton_unstable","icon","slot","optional","defaultProps","children","renderByDefault","elementType","disabled","tabIndex","appearance","onClick","useEventCallback","mergeCallbacks","useMergedRefs"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/components/CarouselButton/useCarouselButton.tsx"],"sourcesContent":["import { type ARIAButtonElement } from '@fluentui/react-aria';\nimport { useButton_unstable } from '@fluentui/react-button';\nimport { ChevronLeftRegular, ChevronRightRegular } from '@fluentui/react-icons';\nimport {\n mergeCallbacks,\n useEventCallback,\n slot,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport type { CarouselButtonProps, CarouselButtonState } from './CarouselButton.types';\nimport type { CarouselUpdateData } from '../Carousel/Carousel.types';\nimport { carouselButtonClassNames } from './useCarouselButtonStyles.styles';\nimport { useRef } from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Create the state required to render CarouselButton.\n *\n * The returned state can be modified with hooks such as useCarouselButtonStyles_unstable,\n * before being passed to renderCarouselButton_unstable.\n *\n * @param props - props from this instance of CarouselButton\n * @param ref - reference to root HTMLDivElement of CarouselButton\n */\nexport const useCarouselButton_unstable = (\n props: CarouselButtonProps,\n ref: React.Ref<ARIAButtonElement>,\n): CarouselButtonState => {\n const { navType = 'next' } = props;\n\n // Locally tracks the total number of slides, will only update if this changes.\n const [totalSlides, setTotalSlides] = React.useState(0);\n\n const { dir } = useFluent();\n const buttonRef = useRef<HTMLButtonElement>();\n const circular = useCarouselContext(ctx => ctx.circular);\n const containerRef = useCarouselContext(ctx => ctx.containerRef);\n const selectPageByDirection = useCarouselContext(ctx => ctx.selectPageByDirection);\n const subscribeForValues = useCarouselContext(ctx => ctx.subscribeForValues);\n const resetAutoplay = useCarouselContext(ctx => ctx.resetAutoplay);\n\n const isTrailing = useCarouselContext(ctx => {\n if (circular) {\n return false;\n }\n\n if (navType === 'prev') {\n return ctx.activeIndex === 0;\n }\n\n return ctx.activeIndex === totalSlides - 1;\n });\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement & HTMLAnchorElement>) => {\n if (event.isDefaultPrevented()) {\n return;\n }\n\n const nextIndex = selectPageByDirection(event, navType);\n\n let _trailing = false;\n if (navType === 'prev') {\n _trailing = nextIndex === 0;\n } else {\n _trailing = nextIndex === totalSlides - 1;\n }\n\n if (!circular && _trailing && containerRef?.current) {\n // Focus non-disabled element\n const buttonRefs: NodeListOf<HTMLButtonElement> = containerRef.current.querySelectorAll(\n `.${carouselButtonClassNames.root}`,\n );\n buttonRefs.forEach(_buttonRef => {\n if (_buttonRef !== buttonRef.current) {\n _buttonRef.focus();\n }\n });\n }\n\n resetAutoplay();\n };\n\n useIsomorphicLayoutEffect(() => {\n return subscribeForValues((data: CarouselUpdateData) => {\n setTotalSlides(data.navItemsCount);\n });\n }, [subscribeForValues]);\n\n const nextArrowIcon = dir === 'ltr' ? <ChevronRightRegular /> : <ChevronLeftRegular />;\n const prevArrowIcon = dir === 'ltr' ? <ChevronLeftRegular /> : <ChevronRightRegular />;\n\n return {\n navType,\n // We lean on react-button class to handle styling and icon enhancements\n ...useButton_unstable(\n {\n icon: slot.optional(props.icon, {\n defaultProps: {\n children: navType === 'next' ? nextArrowIcon : prevArrowIcon,\n },\n renderByDefault: true,\n elementType: 'span',\n }),\n disabled: isTrailing,\n tabIndex: isTrailing ? -1 : 0,\n 'aria-disabled': isTrailing,\n appearance: 'subtle',\n ...props,\n onClick: useEventCallback(mergeCallbacks(handleClick, props.onClick)),\n },\n useMergedRefs(ref, buttonRef) as React.Ref<HTMLButtonElement>,\n ),\n };\n};\n"],"names":["useCarouselButton_unstable","props","ref","navType","totalSlides","setTotalSlides","React","useState","dir","useFluent","buttonRef","useRef","circular","useCarouselContext","ctx","containerRef","selectPageByDirection","subscribeForValues","resetAutoplay","isTrailing","activeIndex","handleClick","event","isDefaultPrevented","nextIndex","_trailing","current","buttonRefs","querySelectorAll","carouselButtonClassNames","root","forEach","_buttonRef","focus","useIsomorphicLayoutEffect","data","navItemsCount","nextArrowIcon","createElement","ChevronRightRegular","ChevronLeftRegular","prevArrowIcon","useButton_unstable","icon","slot","optional","defaultProps","children","renderByDefault","elementType","disabled","tabIndex","appearance","onClick","useEventCallback","mergeCallbacks","useMergedRefs"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -57,4 +57,4 @@ const useCarouselButtonStyles_unstable = (state)=>{
57
57
  state.icon.className = (0, _react.mergeClasses)(carouselButtonClassNames.icon, state.icon.className);
58
58
  }
59
59
  return state;
60
- }; //# sourceMappingURL=useCarouselButtonStyles.styles.js.map
60
+ };
@@ -13,12 +13,11 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _useCarouselCard = require("./useCarouselCard");
14
14
  const _renderCarouselCard = require("./renderCarouselCard");
15
15
  const _useCarouselCardStylesstyles = require("./useCarouselCardStyles.styles");
16
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
16
17
  const CarouselCard = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
17
18
  const state = (0, _useCarouselCard.useCarouselCard_unstable)(props, ref);
18
19
  (0, _useCarouselCardStylesstyles.useCarouselCardStyles_unstable)(state);
19
- // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts
20
- // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md
21
- // useCustomStyleHook_unstable('useCarouselCardStyles_unstable')(state);
20
+ (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselCardStyles_unstable')(state);
22
21
  return (0, _renderCarouselCard.renderCarouselCard_unstable)(state);
23
22
  });
24
23
  CarouselCard.displayName = 'CarouselCard';
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselCard_unstable } from './useCarouselCard';\nimport { renderCarouselCard_unstable } from './renderCarouselCard';\nimport { useCarouselCardStyles_unstable } from './useCarouselCardStyles.styles';\nimport type { CarouselCardProps } from './CarouselCard.types';\n\n/**\n * The defining wrapper of a carousel's indexed content, they will take up the full\n * viewport of CarouselSlider or div wrapper,\n * users may place multiple items within this Card if desired, with consideration of viewport width.\n *\n * Clickable actions within the content area are available via mouse and tab as expected,\n * non-active card content will be set to inert until moved to active card.\n */\nexport const CarouselCard: ForwardRefComponent<CarouselCardProps> = React.forwardRef((props, ref) => {\n const state = useCarouselCard_unstable(props, ref);\n\n useCarouselCardStyles_unstable(state);\n // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts\n // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md\n // useCustomStyleHook_unstable('useCarouselCardStyles_unstable')(state);\n return renderCarouselCard_unstable(state);\n});\n\nCarouselCard.displayName = 'CarouselCard';\n"],"names":["CarouselCard","React","forwardRef","props","ref","state","useCarouselCard_unstable","useCarouselCardStyles_unstable","renderCarouselCard_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAeaA;;;eAAAA;;;;iEAfU;iCAEkB;oCACG;6CACG;AAWxC,MAAMA,eAAAA,WAAAA,GAAuDC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IAC3F,MAAMC,QAAQC,IAAAA,yCAAAA,EAAyBH,OAAOC;IAE9CG,IAAAA,2DAAAA,EAA+BF;IAC/B,8HAA8H;IAC9H,wGAAwG;IACxG,wEAAwE;IACxE,OAAOG,IAAAA,+CAAAA,EAA4BH;AACrC;AAEAL,aAAaS,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/CarouselCard/CarouselCard.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselCard_unstable } from './useCarouselCard';\nimport { renderCarouselCard_unstable } from './renderCarouselCard';\nimport { useCarouselCardStyles_unstable } from './useCarouselCardStyles.styles';\nimport type { CarouselCardProps } from './CarouselCard.types';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * The defining wrapper of a carousel's indexed content, they will take up the full\n * viewport of CarouselSlider or div wrapper,\n * users may place multiple items within this Card if desired, with consideration of viewport width.\n *\n * Clickable actions within the content area are available via mouse and tab as expected,\n * non-active card content will be set to inert until moved to active card.\n */\nexport const CarouselCard: ForwardRefComponent<CarouselCardProps> = React.forwardRef((props, ref) => {\n const state = useCarouselCard_unstable(props, ref);\n\n useCarouselCardStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselCardStyles_unstable')(state);\n\n return renderCarouselCard_unstable(state);\n});\n\nCarouselCard.displayName = 'CarouselCard';\n"],"names":["CarouselCard","React","forwardRef","props","ref","state","useCarouselCard_unstable","useCarouselCardStyles_unstable","useCustomStyleHook_unstable","renderCarouselCard_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAgBaA;;;eAAAA;;;;iEAhBU;iCAEkB;oCACG;6CACG;qCAEH;AAUrC,MAAMA,eAAAA,WAAAA,GAAuDC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IAC3F,MAAMC,QAAQC,IAAAA,yCAAAA,EAAyBH,OAAOC;IAE9CG,IAAAA,2DAAAA,EAA+BF;IAC/BG,IAAAA,gDAAAA,EAA4B,kCAAkCH;IAE9D,OAAOI,IAAAA,+CAAAA,EAA4BJ;AACrC;AAEAL,aAAaU,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselCard.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type CarouselCardSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * CarouselCard Props\n */\nexport type CarouselCardProps = ComponentProps<CarouselCardSlots> & {\n /**\n * Sets the card styling to be responsive based on content.\n */\n autoSize?: boolean;\n};\n\n/**\n * State used in rendering CarouselCard\n */\nexport type CarouselCardState = ComponentState<CarouselCardSlots> & Pick<CarouselCardProps, 'autoSize'>;\n"],"names":[],"rangeMappings":";;","mappings":"AAgBA;;CAEC"}
1
+ {"version":3,"sources":["../src/components/CarouselCard/CarouselCard.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\n\nexport type CarouselCardSlots = {\n root: Slot<'div'>;\n};\n\n/**\n * CarouselCard Props\n */\nexport type CarouselCardProps = ComponentProps<CarouselCardSlots> & {\n /**\n * Sets the card styling to be responsive based on content.\n */\n autoSize?: boolean;\n};\n\n/**\n * State used in rendering CarouselCard\n */\nexport type CarouselCardState = ComponentState<CarouselCardSlots> & Pick<CarouselCardProps, 'autoSize'>;\n"],"names":[],"rangeMappings":";;","mappings":"AAgBA;;CAEC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './CarouselCard';\nexport * from './CarouselCard.types';\nexport * from './renderCarouselCard';\nexport * from './useCarouselCard';\nexport * from './useCarouselCardStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
1
+ {"version":3,"sources":["../src/components/CarouselCard/index.ts"],"sourcesContent":["export * from './CarouselCard';\nexport * from './CarouselCard.types';\nexport * from './renderCarouselCard';\nexport * from './useCarouselCard';\nexport * from './useCarouselCardStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["renderCarouselCard.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselCardState, CarouselCardSlots } from './CarouselCard.types';\n\n/**\n * Render the final JSX of CarouselCard\n */\nexport const renderCarouselCard_unstable = (state: CarouselCardState) => {\n assertSlots<CarouselCardSlots>(state);\n\n return <state.root />;\n};\n"],"names":["renderCarouselCard_unstable","state","assertSlots","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;4BARb;gCAE4B;AAMrB,MAAMA,8BAA8B,CAACC;IAC1CC,IAAAA,2BAAAA,EAA+BD;IAE/B,OAAA,WAAA,GAAOE,IAAAA,eAAA,EAACF,MAAMG,IAAI,EAAA,CAAA;AACpB"}
1
+ {"version":3,"sources":["../src/components/CarouselCard/renderCarouselCard.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselCardState, CarouselCardSlots } from './CarouselCard.types';\n\n/**\n * Render the final JSX of CarouselCard\n */\nexport const renderCarouselCard_unstable = (state: CarouselCardState) => {\n assertSlots<CarouselCardSlots>(state);\n\n return <state.root />;\n};\n"],"names":["renderCarouselCard_unstable","state","assertSlots","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;4BARb;gCAE4B;AAMrB,MAAMA,8BAA8B,CAACC;IAC1CC,IAAAA,2BAAAA,EAA+BD;IAE/B,OAAA,WAAA,GAAOE,IAAAA,eAAA,EAACF,MAAMG,IAAI,EAAA,CAAA;AACpB"}
@@ -52,29 +52,31 @@ const useCarouselCard_unstable = (props, ref)=>{
52
52
  }, [
53
53
  cardFocus
54
54
  ]);
55
- const handleFocusCapture = _react.useCallback((e)=>{
55
+ const handleFocus = _react.useCallback((e)=>{
56
56
  if (!e.defaultPrevented && (0, _reactutilities.isHTMLElement)(e.currentTarget) && !isMouseEvent.current) {
57
57
  var _containerRef_current;
58
58
  containerRef === null || containerRef === void 0 ? void 0 : (_containerRef_current = containerRef.current) === null || _containerRef_current === void 0 ? void 0 : _containerRef_current.scrollTo(0, 0);
59
59
  selectPageByElement(e, e.currentTarget, false);
60
60
  }
61
+ // Mouse focus event has been consumed
62
+ isMouseEvent.current = false;
61
63
  }, [
62
64
  selectPageByElement,
63
65
  containerRef
64
66
  ]);
65
- const handleMouseDown = (e)=>{
67
+ const handlePointerDown = (e)=>{
66
68
  if (!e.defaultPrevented) {
67
69
  isMouseEvent.current = true;
68
70
  }
69
71
  };
70
- const handleMouseUp = (e)=>{
72
+ const handlePointerUp = (e)=>{
71
73
  if (!e.defaultPrevented) {
72
74
  isMouseEvent.current = false;
73
75
  }
74
76
  };
75
- const onFocusCapture = (0, _reactutilities.mergeCallbacks)(props.onFocusCapture, handleFocusCapture);
76
- const onMouseUp = (0, _reactutilities.mergeCallbacks)(props.onMouseUp, handleMouseUp);
77
- const onMouseDown = (0, _reactutilities.mergeCallbacks)(props.onMouseDown, handleMouseDown);
77
+ const onFocusCapture = (0, _reactutilities.mergeCallbacks)(props.onFocusCapture, handleFocus);
78
+ const onPointerUp = (0, _reactutilities.mergeCallbacks)(props.onPointerUp, handlePointerUp);
79
+ const onPointerDown = (0, _reactutilities.mergeCallbacks)(props.onPointerDown, handlePointerDown);
78
80
  const state = {
79
81
  autoSize,
80
82
  components: {
@@ -87,8 +89,8 @@ const useCarouselCard_unstable = (props, ref)=>{
87
89
  ...props,
88
90
  id,
89
91
  onFocusCapture,
90
- onMouseDown,
91
- onMouseUp,
92
+ onPointerUp,
93
+ onPointerDown,
92
94
  ...focusAttrProps
93
95
  }), {
94
96
  elementType: 'div'
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselCard.ts"],"sourcesContent":["import { useFocusableGroup } from '@fluentui/react-tabster';\nimport {\n getIntrinsicElementProps,\n isHTMLElement,\n mergeCallbacks,\n slot,\n useMergedRefs,\n useId,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport type { CarouselVisibilityChangeEvent } from '../Carousel/Carousel.types';\nimport { EMBLA_VISIBILITY_EVENT } from '../useEmblaCarousel';\nimport type { CarouselCardProps, CarouselCardState } from './CarouselCard.types';\nimport { carouselCardClassNames } from './useCarouselCardStyles.styles';\nimport { useCarouselSliderContext } from '../CarouselSlider/CarouselSliderContext';\n\n/**\n * Create the state required to render CarouselCard.\n *\n * The returned state can be modified with hooks such as useCarouselCardStyles_unstable,\n * before being passed to renderCarouselCard_unstable.\n *\n * @param props - props from this instance of CarouselCard\n * @param ref - reference to root HTMLDivElement of CarouselCard\n */\nexport const useCarouselCard_unstable = (\n props: CarouselCardProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselCardState => {\n const { autoSize } = props;\n const elementRef = React.useRef<HTMLDivElement>(null);\n const isMouseEvent = React.useRef<boolean>(false);\n const selectPageByElement = useCarouselContext(ctx => ctx.selectPageByElement);\n const containerRef = useCarouselContext(ctx => ctx.containerRef);\n const { cardFocus } = useCarouselSliderContext();\n\n const focusAttr = useFocusableGroup({\n tabBehavior: 'limited',\n });\n const focusAttrProps = cardFocus ? { ...focusAttr, tabIndex: 0 } : {};\n\n // We attach a unique card id if user does not provide\n const id = useId(carouselCardClassNames.root, props.id);\n\n React.useEffect(() => {\n const element = elementRef.current;\n\n if (element) {\n const listener = (_e: Event) => {\n const event = _e as CarouselVisibilityChangeEvent;\n // When there is no tab index present, only current cards should be visible to accessibility\n if (!cardFocus) {\n const hidden = !event.detail.isVisible;\n element.ariaHidden = hidden.toString();\n element.inert = hidden;\n }\n };\n\n element.addEventListener(EMBLA_VISIBILITY_EVENT, listener);\n\n return () => {\n element.removeEventListener(EMBLA_VISIBILITY_EVENT, listener);\n };\n }\n }, [cardFocus]);\n\n const handleFocusCapture = React.useCallback(\n (e: React.FocusEvent) => {\n if (!e.defaultPrevented && isHTMLElement(e.currentTarget) && !isMouseEvent.current) {\n // We want to prevent any browser scroll intervention for 'offscreen' focus\n containerRef?.current?.scrollTo(0, 0);\n selectPageByElement(e, e.currentTarget, false);\n }\n },\n [selectPageByElement, containerRef],\n );\n\n const handleMouseDown = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!e.defaultPrevented) {\n isMouseEvent.current = true;\n }\n };\n const handleMouseUp = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!e.defaultPrevented) {\n isMouseEvent.current = false;\n }\n };\n\n const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocusCapture);\n const onMouseUp = mergeCallbacks(props.onMouseUp, handleMouseUp);\n const onMouseDown = mergeCallbacks(props.onMouseDown, handleMouseDown);\n const state: CarouselCardState = {\n autoSize,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref: useMergedRefs(elementRef, ref),\n role: 'tabpanel',\n tabIndex: cardFocus ? 0 : undefined,\n ...props,\n id,\n onFocusCapture,\n onMouseDown,\n onMouseUp,\n ...focusAttrProps,\n }),\n { elementType: 'div' },\n ),\n };\n\n return state;\n};\n"],"names":["useCarouselCard_unstable","props","ref","autoSize","elementRef","React","useRef","isMouseEvent","selectPageByElement","useCarouselContext","ctx","containerRef","cardFocus","useCarouselSliderContext","focusAttr","useFocusableGroup","tabBehavior","focusAttrProps","tabIndex","id","useId","carouselCardClassNames","root","useEffect","element","current","listener","_e","event","hidden","detail","isVisible","ariaHidden","toString","inert","addEventListener","EMBLA_VISIBILITY_EVENT","removeEventListener","handleFocusCapture","useCallback","e","defaultPrevented","isHTMLElement","currentTarget","scrollTo","handleMouseDown","handleMouseUp","onFocusCapture","mergeCallbacks","onMouseUp","onMouseDown","state","components","slot","always","getIntrinsicElementProps","useMergedRefs","role","undefined","elementType"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA2BaA;;;eAAAA;;;;8BA3BqB;gCAQ3B;iEACgB;iCAE2C;kCAE3B;6CAEA;uCACE;AAWlC,MAAMA,2BAA2B,CACtCC,OACAC;IAEA,MAAM,EAAEC,QAAQ,EAAE,GAAGF;IACrB,MAAMG,aAAaC,OAAMC,MAAM,CAAiB;IAChD,MAAMC,eAAeF,OAAMC,MAAM,CAAU;IAC3C,MAAME,sBAAsBC,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIF,mBAAmB;IAC7E,MAAMG,eAAeF,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIC,YAAY;IAC/D,MAAM,EAAEC,SAAS,EAAE,GAAGC,IAAAA,+CAAAA;IAEtB,MAAMC,YAAYC,IAAAA,+BAAAA,EAAkB;QAClCC,aAAa;IACf;IACA,MAAMC,iBAAiBL,YAAY;QAAE,GAAGE,SAAS;QAAEI,UAAU;IAAE,IAAI,CAAC;IAEpE,sDAAsD;IACtD,MAAMC,KAAKC,IAAAA,qBAAAA,EAAMC,mDAAAA,CAAuBC,IAAI,EAAErB,MAAMkB,EAAE;IAEtDd,OAAMkB,SAAS,CAAC;QACd,MAAMC,UAAUpB,WAAWqB,OAAO;QAElC,IAAID,SAAS;YACX,MAAME,WAAW,CAACC;gBAChB,MAAMC,QAAQD;gBACd,4FAA4F;gBAC5F,IAAI,CAACf,WAAW;oBACd,MAAMiB,SAAS,CAACD,MAAME,MAAM,CAACC,SAAS;oBACtCP,QAAQQ,UAAU,GAAGH,OAAOI,QAAQ;oBACpCT,QAAQU,KAAK,GAAGL;gBAClB;YACF;YAEAL,QAAQW,gBAAgB,CAACC,wCAAAA,EAAwBV;YAEjD,OAAO;gBACLF,QAAQa,mBAAmB,CAACD,wCAAAA,EAAwBV;YACtD;QACF;IACF,GAAG;QAACd;KAAU;IAEd,MAAM0B,qBAAqBjC,OAAMkC,WAAW,CAC1C,CAACC;QACC,IAAI,CAACA,EAAEC,gBAAgB,IAAIC,IAAAA,6BAAAA,EAAcF,EAAEG,aAAa,KAAK,CAACpC,aAAakB,OAAO,EAAE;gBAElFd;YAAAA,iBAAAA,QAAAA,iBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,CAAAA,wBAAAA,aAAcc,OAAO,AAAPA,MAAO,QAArBd,0BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,sBAAuBiC,QAAQ,CAAC,GAAG;YACnCpC,oBAAoBgC,GAAGA,EAAEG,aAAa,EAAE;QAC1C;IACF,GACA;QAACnC;QAAqBG;KAAa;IAGrC,MAAMkC,kBAAkB,CAACL;QACvB,IAAI,CAACA,EAAEC,gBAAgB,EAAE;YACvBlC,aAAakB,OAAO,GAAG;QACzB;IACF;IACA,MAAMqB,gBAAgB,CAACN;QACrB,IAAI,CAACA,EAAEC,gBAAgB,EAAE;YACvBlC,aAAakB,OAAO,GAAG;QACzB;IACF;IAEA,MAAMsB,iBAAiBC,IAAAA,8BAAAA,EAAe/C,MAAM8C,cAAc,EAAET;IAC5D,MAAMW,YAAYD,IAAAA,8BAAAA,EAAe/C,MAAMgD,SAAS,EAAEH;IAClD,MAAMI,cAAcF,IAAAA,8BAAAA,EAAe/C,MAAMiD,WAAW,EAAEL;IACtD,MAAMM,QAA2B;QAC/BhD;QACAiD,YAAY;YACV9B,MAAM;QACR;QACAA,MAAM+B,oBAAAA,CAAKC,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BrD,KAAKsD,IAAAA,6BAAAA,EAAcpD,YAAYF;YAC/BuD,MAAM;YACNvC,UAAUN,YAAY,IAAI8C;YAC1B,GAAGzD,KAAK;YACRkB;YACA4B;YACAG;YACAD;YACA,GAAGhC,cAAc;QACnB,IACA;YAAE0C,aAAa;QAAM;IAEzB;IAEA,OAAOR;AACT"}
1
+ {"version":3,"sources":["../src/components/CarouselCard/useCarouselCard.ts"],"sourcesContent":["import { useFocusableGroup } from '@fluentui/react-tabster';\nimport {\n getIntrinsicElementProps,\n isHTMLElement,\n mergeCallbacks,\n slot,\n useMergedRefs,\n useId,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport type { CarouselVisibilityChangeEvent } from '../Carousel/Carousel.types';\nimport { EMBLA_VISIBILITY_EVENT } from '../useEmblaCarousel';\nimport type { CarouselCardProps, CarouselCardState } from './CarouselCard.types';\nimport { carouselCardClassNames } from './useCarouselCardStyles.styles';\nimport { useCarouselSliderContext } from '../CarouselSlider/CarouselSliderContext';\n\n/**\n * Create the state required to render CarouselCard.\n *\n * The returned state can be modified with hooks such as useCarouselCardStyles_unstable,\n * before being passed to renderCarouselCard_unstable.\n *\n * @param props - props from this instance of CarouselCard\n * @param ref - reference to root HTMLDivElement of CarouselCard\n */\nexport const useCarouselCard_unstable = (\n props: CarouselCardProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselCardState => {\n const { autoSize } = props;\n const elementRef = React.useRef<HTMLDivElement>(null);\n const isMouseEvent = React.useRef<boolean>(false);\n const selectPageByElement = useCarouselContext(ctx => ctx.selectPageByElement);\n const containerRef = useCarouselContext(ctx => ctx.containerRef);\n const { cardFocus } = useCarouselSliderContext();\n\n const focusAttr = useFocusableGroup({\n tabBehavior: 'limited',\n });\n const focusAttrProps = cardFocus ? { ...focusAttr, tabIndex: 0 } : {};\n\n // We attach a unique card id if user does not provide\n const id = useId(carouselCardClassNames.root, props.id);\n\n React.useEffect(() => {\n const element = elementRef.current;\n\n if (element) {\n const listener = (_e: Event) => {\n const event = _e as CarouselVisibilityChangeEvent;\n // When there is no tab index present, only current cards should be visible to accessibility\n if (!cardFocus) {\n const hidden = !event.detail.isVisible;\n element.ariaHidden = hidden.toString();\n element.inert = hidden;\n }\n };\n\n element.addEventListener(EMBLA_VISIBILITY_EVENT, listener);\n\n return () => {\n element.removeEventListener(EMBLA_VISIBILITY_EVENT, listener);\n };\n }\n }, [cardFocus]);\n\n const handleFocus = React.useCallback(\n (e: React.FocusEvent) => {\n if (!e.defaultPrevented && isHTMLElement(e.currentTarget) && !isMouseEvent.current) {\n // We want to prevent any browser scroll intervention for 'offscreen' focus\n containerRef?.current?.scrollTo(0, 0);\n selectPageByElement(e, e.currentTarget, false);\n }\n // Mouse focus event has been consumed\n isMouseEvent.current = false;\n },\n [selectPageByElement, containerRef],\n );\n\n const handlePointerDown = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!e.defaultPrevented) {\n isMouseEvent.current = true;\n }\n };\n\n const handlePointerUp = (e: React.MouseEvent<HTMLDivElement>) => {\n if (!e.defaultPrevented) {\n isMouseEvent.current = false;\n }\n };\n\n const onFocusCapture = mergeCallbacks(props.onFocusCapture, handleFocus);\n const onPointerUp = mergeCallbacks(props.onPointerUp, handlePointerUp);\n const onPointerDown = mergeCallbacks(props.onPointerDown, handlePointerDown);\n\n const state: CarouselCardState = {\n autoSize,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref: useMergedRefs(elementRef, ref),\n role: 'tabpanel',\n tabIndex: cardFocus ? 0 : undefined,\n ...props,\n id,\n onFocusCapture,\n onPointerUp,\n onPointerDown,\n ...focusAttrProps,\n }),\n { elementType: 'div' },\n ),\n };\n\n return state;\n};\n"],"names":["useCarouselCard_unstable","props","ref","autoSize","elementRef","React","useRef","isMouseEvent","selectPageByElement","useCarouselContext","ctx","containerRef","cardFocus","useCarouselSliderContext","focusAttr","useFocusableGroup","tabBehavior","focusAttrProps","tabIndex","id","useId","carouselCardClassNames","root","useEffect","element","current","listener","_e","event","hidden","detail","isVisible","ariaHidden","toString","inert","addEventListener","EMBLA_VISIBILITY_EVENT","removeEventListener","handleFocus","useCallback","e","defaultPrevented","isHTMLElement","currentTarget","scrollTo","handlePointerDown","handlePointerUp","onFocusCapture","mergeCallbacks","onPointerUp","onPointerDown","state","components","slot","always","getIntrinsicElementProps","useMergedRefs","role","undefined","elementType"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA2BaA;;;eAAAA;;;;8BA3BqB;gCAQ3B;iEACgB;iCAE2C;kCAE3B;6CAEA;uCACE;AAWlC,MAAMA,2BAA2B,CACtCC,OACAC;IAEA,MAAM,EAAEC,QAAQ,EAAE,GAAGF;IACrB,MAAMG,aAAaC,OAAMC,MAAM,CAAiB;IAChD,MAAMC,eAAeF,OAAMC,MAAM,CAAU;IAC3C,MAAME,sBAAsBC,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIF,mBAAmB;IAC7E,MAAMG,eAAeF,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIC,YAAY;IAC/D,MAAM,EAAEC,SAAS,EAAE,GAAGC,IAAAA,+CAAAA;IAEtB,MAAMC,YAAYC,IAAAA,+BAAAA,EAAkB;QAClCC,aAAa;IACf;IACA,MAAMC,iBAAiBL,YAAY;QAAE,GAAGE,SAAS;QAAEI,UAAU;IAAE,IAAI,CAAC;IAEpE,sDAAsD;IACtD,MAAMC,KAAKC,IAAAA,qBAAAA,EAAMC,mDAAAA,CAAuBC,IAAI,EAAErB,MAAMkB,EAAE;IAEtDd,OAAMkB,SAAS,CAAC;QACd,MAAMC,UAAUpB,WAAWqB,OAAO;QAElC,IAAID,SAAS;YACX,MAAME,WAAW,CAACC;gBAChB,MAAMC,QAAQD;gBACd,4FAA4F;gBAC5F,IAAI,CAACf,WAAW;oBACd,MAAMiB,SAAS,CAACD,MAAME,MAAM,CAACC,SAAS;oBACtCP,QAAQQ,UAAU,GAAGH,OAAOI,QAAQ;oBACpCT,QAAQU,KAAK,GAAGL;gBAClB;YACF;YAEAL,QAAQW,gBAAgB,CAACC,wCAAAA,EAAwBV;YAEjD,OAAO;gBACLF,QAAQa,mBAAmB,CAACD,wCAAAA,EAAwBV;YACtD;QACF;IACF,GAAG;QAACd;KAAU;IAEd,MAAM0B,cAAcjC,OAAMkC,WAAW,CACnC,CAACC;QACC,IAAI,CAACA,EAAEC,gBAAgB,IAAIC,IAAAA,6BAAAA,EAAcF,EAAEG,aAAa,KAAK,CAACpC,aAAakB,OAAO,EAAE;gBAElFd;YAAAA,iBAAAA,QAAAA,iBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,CAAAA,wBAAAA,aAAcc,OAAO,AAAPA,MAAO,QAArBd,0BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,sBAAuBiC,QAAQ,CAAC,GAAG;YACnCpC,oBAAoBgC,GAAGA,EAAEG,aAAa,EAAE;QAC1C;QACA,sCAAsC;QACtCpC,aAAakB,OAAO,GAAG;IACzB,GACA;QAACjB;QAAqBG;KAAa;IAGrC,MAAMkC,oBAAoB,CAACL;QACzB,IAAI,CAACA,EAAEC,gBAAgB,EAAE;YACvBlC,aAAakB,OAAO,GAAG;QACzB;IACF;IAEA,MAAMqB,kBAAkB,CAACN;QACvB,IAAI,CAACA,EAAEC,gBAAgB,EAAE;YACvBlC,aAAakB,OAAO,GAAG;QACzB;IACF;IAEA,MAAMsB,iBAAiBC,IAAAA,8BAAAA,EAAe/C,MAAM8C,cAAc,EAAET;IAC5D,MAAMW,cAAcD,IAAAA,8BAAAA,EAAe/C,MAAMgD,WAAW,EAAEH;IACtD,MAAMI,gBAAgBF,IAAAA,8BAAAA,EAAe/C,MAAMiD,aAAa,EAAEL;IAE1D,MAAMM,QAA2B;QAC/BhD;QACAiD,YAAY;YACV9B,MAAM;QACR;QACAA,MAAM+B,oBAAAA,CAAKC,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BrD,KAAKsD,IAAAA,6BAAAA,EAAcpD,YAAYF;YAC/BuD,MAAM;YACNvC,UAAUN,YAAY,IAAI8C;YAC1B,GAAGzD,KAAK;YACRkB;YACA4B;YACAE;YACAC;YACA,GAAGjC,cAAc;QACnB,IACA;YAAE0C,aAAa;QAAM;IAEzB;IAEA,OAAOR;AACT"}
@@ -64,4 +64,4 @@ const useCarouselCardStyles_unstable = (state)=>{
64
64
  const styles = useStyles();
65
65
  state.root.className = (0, _react.mergeClasses)(carouselCardClassNames.root, styles.root, autoSize && styles.autoSize, state.root.className);
66
66
  return state;
67
- }; //# sourceMappingURL=useCarouselCardStyles.styles.js.map
67
+ };
@@ -37,7 +37,8 @@ const carouselContextDefaultValue = {
37
37
  resetAutoplay: ()=>{
38
38
  /** noop */ },
39
39
  circular: false,
40
- containerRef: undefined
40
+ containerRef: undefined,
41
+ viewportRef: undefined
41
42
  };
42
43
  const CarouselContext = (0, _reactcontextselector.createContext)(undefined);
43
44
  const CarouselProvider = CarouselContext.Provider;
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselContext.ts"],"sourcesContent":["import { ContextSelector, createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { CarouselContextValue } from './CarouselContext.types';\n\nexport const carouselContextDefaultValue: CarouselContextValue = {\n activeIndex: 0,\n selectPageByElement: () => {\n return 0;\n },\n selectPageByDirection: () => {\n return 0;\n },\n selectPageByIndex: () => {\n /** noop */\n },\n subscribeForValues: () => () => {\n /** noop */\n },\n enableAutoplay: () => {\n /** noop */\n },\n resetAutoplay: () => {\n /** noop */\n },\n circular: false,\n containerRef: undefined,\n};\n\nconst CarouselContext = createContext<CarouselContextValue | undefined>(undefined);\n\nexport const CarouselProvider = CarouselContext.Provider;\n\nexport const useCarouselContext_unstable = <T>(selector: ContextSelector<CarouselContextValue, T>): T =>\n useContextSelector(CarouselContext, (ctx = carouselContextDefaultValue) => selector(ctx));\n"],"names":["CarouselProvider","carouselContextDefaultValue","useCarouselContext_unstable","activeIndex","selectPageByElement","selectPageByDirection","selectPageByIndex","subscribeForValues","enableAutoplay","resetAutoplay","circular","containerRef","undefined","CarouselContext","createContext","Provider","selector","useContextSelector","ctx"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IA6BaA,gBAAAA;eAAAA;;IA1BAC,2BAAAA;eAAAA;;IA4BAC,2BAAAA;eAAAA;;;sCA/BsD;AAG5D,MAAMD,8BAAoD;IAC/DE,aAAa;IACbC,qBAAqB;QACnB,OAAO;IACT;IACAC,uBAAuB;QACrB,OAAO;IACT;IACAC,mBAAmB;IACjB,SAAS,GACX;IACAC,oBAAoB,IAAM;QACxB,SAAS,GACX;IACAC,gBAAgB;IACd,SAAS,GACX;IACAC,eAAe;IACb,SAAS,GACX;IACAC,UAAU;IACVC,cAAcC;AAChB;AAEA,MAAMC,kBAAkBC,IAAAA,mCAAAA,EAAgDF;AAEjE,MAAMZ,mBAAmBa,gBAAgBE,QAAQ;AAEjD,MAAMb,8BAA8B,CAAIc,WAC7CC,IAAAA,wCAAAA,EAAmBJ,iBAAiB,CAACK,MAAMjB,2BAA2B,GAAKe,SAASE"}
1
+ {"version":3,"sources":["../src/components/CarouselContext.ts"],"sourcesContent":["import { ContextSelector, createContext, useContextSelector } from '@fluentui/react-context-selector';\nimport type { CarouselContextValue } from './CarouselContext.types';\n\nexport const carouselContextDefaultValue: CarouselContextValue = {\n activeIndex: 0,\n selectPageByElement: () => {\n return 0;\n },\n selectPageByDirection: () => {\n return 0;\n },\n selectPageByIndex: () => {\n /** noop */\n },\n subscribeForValues: () => () => {\n /** noop */\n },\n enableAutoplay: () => {\n /** noop */\n },\n resetAutoplay: () => {\n /** noop */\n },\n circular: false,\n containerRef: undefined,\n viewportRef: undefined,\n};\n\nconst CarouselContext = createContext<CarouselContextValue | undefined>(undefined);\n\nexport const CarouselProvider = CarouselContext.Provider;\n\nexport const useCarouselContext_unstable = <T>(selector: ContextSelector<CarouselContextValue, T>): T =>\n useContextSelector(CarouselContext, (ctx = carouselContextDefaultValue) => selector(ctx));\n"],"names":["CarouselProvider","carouselContextDefaultValue","useCarouselContext_unstable","activeIndex","selectPageByElement","selectPageByDirection","selectPageByIndex","subscribeForValues","enableAutoplay","resetAutoplay","circular","containerRef","undefined","viewportRef","CarouselContext","createContext","Provider","selector","useContextSelector","ctx"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IA8BaA,gBAAAA;eAAAA;;IA3BAC,2BAAAA;eAAAA;;IA6BAC,2BAAAA;eAAAA;;;sCAhCsD;AAG5D,MAAMD,8BAAoD;IAC/DE,aAAa;IACbC,qBAAqB;QACnB,OAAO;IACT;IACAC,uBAAuB;QACrB,OAAO;IACT;IACAC,mBAAmB;IACjB,SAAS,GACX;IACAC,oBAAoB,IAAM;QACxB,SAAS,GACX;IACAC,gBAAgB;IACd,SAAS,GACX;IACAC,eAAe;IACb,SAAS,GACX;IACAC,UAAU;IACVC,cAAcC;IACdC,aAAaD;AACf;AAEA,MAAME,kBAAkBC,IAAAA,mCAAAA,EAAgDH;AAEjE,MAAMZ,mBAAmBc,gBAAgBE,QAAQ;AAEjD,MAAMd,8BAA8B,CAAIe,WAC7CC,IAAAA,wCAAAA,EAAmBJ,iBAAiB,CAACK,MAAMlB,2BAA2B,GAAKgB,SAASE"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselContext.types.ts"],"sourcesContent":["import type { EventData } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { CarouselUpdateData } from '../Carousel';\n\nexport type CarouselIndexChangeData = EventData<\n 'click' | 'focus',\n React.FocusEvent | React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n> & {\n /**\n * The index to be set after event has occurred.\n */\n index: number;\n};\n\nexport type CarouselContextValue = {\n activeIndex: number;\n circular: boolean;\n selectPageByElement: (event: React.FocusEvent, element: HTMLElement, jump?: boolean) => number;\n selectPageByDirection: (\n event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n direction: 'next' | 'prev',\n ) => number;\n selectPageByIndex: (\n event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n value: number,\n jump?: boolean,\n ) => void;\n subscribeForValues: (listener: (data: CarouselUpdateData) => void) => () => void;\n enableAutoplay: (autoplay: boolean) => void;\n resetAutoplay: () => void;\n containerRef?: React.RefObject<HTMLDivElement>;\n};\n\n/**\n * Context shared between Carousel and its children components\n */\nexport type CarouselContextValues = {\n carousel: CarouselContextValue;\n};\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;iEACuB"}
1
+ {"version":3,"sources":["../src/components/CarouselContext.types.ts"],"sourcesContent":["import type { EventData } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { CarouselUpdateData } from '../Carousel';\n\nexport type CarouselIndexChangeData = (\n | EventData<'click', React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>>\n | EventData<'focus', React.FocusEvent>\n | EventData<'drag', PointerEvent | MouseEvent>\n) & {\n /**\n * The index to be set after event has occurred.\n */\n index: number;\n};\n\nexport type CarouselContextValue = {\n activeIndex: number;\n circular: boolean;\n selectPageByElement: (event: React.FocusEvent, element: HTMLElement, jump?: boolean) => number;\n selectPageByDirection: (\n event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n direction: 'next' | 'prev',\n ) => number;\n selectPageByIndex: (\n event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n value: number,\n jump?: boolean,\n ) => void;\n subscribeForValues: (listener: (data: CarouselUpdateData) => void) => () => void;\n enableAutoplay: (autoplay: boolean) => void;\n resetAutoplay: () => void;\n // Container with controls passed to carousel engine\n containerRef?: React.RefObject<HTMLDivElement>;\n // Viewport without controls used for interactive functionality (draggable, pause autoplay etc.)\n viewportRef?: React.RefObject<HTMLDivElement>;\n};\n\n/**\n * Context shared between Carousel and its children components\n */\nexport type CarouselContextValues = {\n carousel: CarouselContextValue;\n};\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;iEACuB"}
@@ -14,13 +14,12 @@ const _CarouselNavContext = require("./CarouselNavContext");
14
14
  const _renderCarouselNav = require("./renderCarouselNav");
15
15
  const _useCarouselNav = require("./useCarouselNav");
16
16
  const _useCarouselNavStylesstyles = require("./useCarouselNavStyles.styles");
17
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
17
18
  const CarouselNav = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
18
19
  const state = (0, _useCarouselNav.useCarouselNav_unstable)(props, ref);
19
20
  const contextValues = (0, _CarouselNavContext.useCarouselNavContextValues_unstable)(state);
20
21
  (0, _useCarouselNavStylesstyles.useCarouselNavStyles_unstable)(state);
21
- // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts
22
- // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md
23
- // useCustomStyleHook_unstable('useCarouselNavStyles_unstable')(state);
22
+ (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselNavStyles_unstable')(state);
24
23
  return (0, _renderCarouselNav.renderCarouselNav_unstable)(state, contextValues);
25
24
  });
26
25
  CarouselNav.displayName = 'CarouselNav';
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNav.tsx"],"sourcesContent":["import type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { CarouselNavProps } from './CarouselNav.types';\nimport { useCarouselNavContextValues_unstable } from './CarouselNavContext';\nimport { renderCarouselNav_unstable } from './renderCarouselNav';\nimport { useCarouselNav_unstable } from './useCarouselNav';\nimport { useCarouselNavStyles_unstable } from './useCarouselNavStyles.styles';\n\n/**\n * Used to jump to a card based on index, using arrow navigation via Tabster.\n *\n * The children of this component will be wrapped in a context to\n * provide the appropriate value based on their index position.\n */\nexport const CarouselNav: ForwardRefComponent<CarouselNavProps> = React.forwardRef((props, ref) => {\n const state = useCarouselNav_unstable(props, ref);\n const contextValues = useCarouselNavContextValues_unstable(state);\n\n useCarouselNavStyles_unstable(state);\n // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts\n // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md\n // useCustomStyleHook_unstable('useCarouselNavStyles_unstable')(state);\n\n return renderCarouselNav_unstable(state, contextValues);\n});\n\nCarouselNav.displayName = 'CarouselNav';\n"],"names":["CarouselNav","React","forwardRef","props","ref","state","useCarouselNav_unstable","contextValues","useCarouselNavContextValues_unstable","useCarouselNavStyles_unstable","renderCarouselNav_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAeaA;;;eAAAA;;;;iEAdU;oCAG8B;mCACV;gCACH;4CACM;AAQvC,MAAMA,cAAAA,WAAAA,GAAqDC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IACzF,MAAMC,QAAQC,IAAAA,uCAAAA,EAAwBH,OAAOC;IAC7C,MAAMG,gBAAgBC,IAAAA,wDAAAA,EAAqCH;IAE3DI,IAAAA,yDAAAA,EAA8BJ;IAC9B,8HAA8H;IAC9H,wGAAwG;IACxG,uEAAuE;IAEvE,OAAOK,IAAAA,6CAAAA,EAA2BL,OAAOE;AAC3C;AAEAP,YAAYW,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/CarouselNav.tsx"],"sourcesContent":["import type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport type { CarouselNavProps } from './CarouselNav.types';\nimport { useCarouselNavContextValues_unstable } from './CarouselNavContext';\nimport { renderCarouselNav_unstable } from './renderCarouselNav';\nimport { useCarouselNav_unstable } from './useCarouselNav';\nimport { useCarouselNavStyles_unstable } from './useCarouselNavStyles.styles';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * Used to jump to a card based on index, using arrow navigation via Tabster.\n *\n * The children of this component will be wrapped in a context to\n * provide the appropriate value based on their index position.\n */\nexport const CarouselNav: ForwardRefComponent<CarouselNavProps> = React.forwardRef((props, ref) => {\n const state = useCarouselNav_unstable(props, ref);\n const contextValues = useCarouselNavContextValues_unstable(state);\n\n useCarouselNavStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselNavStyles_unstable')(state);\n\n return renderCarouselNav_unstable(state, contextValues);\n});\n\nCarouselNav.displayName = 'CarouselNav';\n"],"names":["CarouselNav","React","forwardRef","props","ref","state","useCarouselNav_unstable","contextValues","useCarouselNavContextValues_unstable","useCarouselNavStyles_unstable","useCustomStyleHook_unstable","renderCarouselNav_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAgBaA;;;eAAAA;;;;iEAfU;oCAG8B;mCACV;gCACH;4CACM;qCACF;AAQrC,MAAMA,cAAAA,WAAAA,GAAqDC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IACzF,MAAMC,QAAQC,IAAAA,uCAAAA,EAAwBH,OAAOC;IAC7C,MAAMG,gBAAgBC,IAAAA,wDAAAA,EAAqCH;IAE3DI,IAAAA,yDAAAA,EAA8BJ;IAC9BK,IAAAA,gDAAAA,EAA4B,iCAAiCL;IAE7D,OAAOM,IAAAA,6CAAAA,EAA2BN,OAAOE;AAC3C;AAEAP,YAAYY,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNav.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport type CarouselNavSlots = {\n /**\n * The element wrapping the carousel pagination. By default, this is a div.\n */\n root: NonNullable<Slot<'div'>>;\n};\n\nexport type NavButtonRenderFunction = (index: number) => React.ReactNode;\n\nexport type CarouselNavState = ComponentState<CarouselNavSlots> & {\n /**\n * Enables an alternate brand style when set to 'brand'\n */\n appearance?: 'brand';\n\n /**\n * The function that will render nav items based on total slides and their index.\n */\n renderNavButton: NavButtonRenderFunction;\n\n /**\n * The total number of slides available.\n * Users may override if using the component without a Carousel wrapper or implementing custom functionality.\n */\n totalSlides: number;\n};\n\nexport type CarouselNavProps = Omit<ComponentProps<Partial<CarouselNavSlots>>, 'children'> & {\n children: NavButtonRenderFunction;\n} & Partial<Pick<CarouselNavState, 'appearance' | 'totalSlides'>>;\n\nexport type CarouselNavContextValue = Pick<CarouselNavState, 'appearance'>;\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;iEACuB"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/CarouselNav.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nexport type CarouselNavSlots = {\n /**\n * The element wrapping the carousel pagination. By default, this is a div.\n */\n root: NonNullable<Slot<'div'>>;\n};\n\nexport type NavButtonRenderFunction = (index: number) => React.ReactNode;\n\nexport type CarouselNavState = ComponentState<CarouselNavSlots> & {\n /**\n * Enables an alternate brand style when set to 'brand'\n */\n appearance?: 'brand';\n\n /**\n * The function that will render nav items based on total slides and their index.\n */\n renderNavButton: NavButtonRenderFunction;\n\n /**\n * The total number of slides available.\n * Users may override if using the component without a Carousel wrapper or implementing custom functionality.\n */\n totalSlides: number;\n};\n\nexport type CarouselNavProps = Omit<ComponentProps<Partial<CarouselNavSlots>>, 'children'> & {\n children: NavButtonRenderFunction;\n} & Partial<Pick<CarouselNavState, 'appearance' | 'totalSlides'>>;\n\nexport type CarouselNavContextValue = Pick<CarouselNavState, 'appearance'>;\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;iEACuB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNavContext.ts"],"sourcesContent":["import * as React from 'react';\nimport type { CarouselNavContextValue, CarouselNavState } from './CarouselNav.types';\n\nconst carouselNavContext = React.createContext<CarouselNavContextValue | undefined>(undefined);\n\nexport const carouselNavContextDefaultValue: CarouselNavContextValue = {\n appearance: undefined,\n};\n\nexport const useCarouselNavContext = () => React.useContext(carouselNavContext) ?? carouselNavContextDefaultValue;\n\nexport const CarouselNavContextProvider = carouselNavContext.Provider;\n\n/**\n * Context shared between CarouselNav and its children components\n */\nexport type CarouselNavContextValues = {\n carouselNav: CarouselNavContextValue;\n};\n\nexport function useCarouselNavContextValues_unstable(state: CarouselNavState): CarouselNavContextValues {\n const { appearance } = state;\n const carouselNav = React.useMemo(() => ({ appearance }), [appearance]);\n\n return { carouselNav };\n}\n"],"names":["CarouselNavContextProvider","carouselNavContextDefaultValue","useCarouselNavContext","useCarouselNavContextValues_unstable","carouselNavContext","React","createContext","undefined","appearance","useContext","Provider","state","carouselNav","useMemo"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAWaA,0BAAAA;eAAAA;;IANAC,8BAAAA;eAAAA;;IAIAC,qBAAAA;eAAAA;;IAWGC,oCAAAA;eAAAA;;;;iEApBO;AAGvB,MAAMC,mCAAqBC,OAAMC,aAAa,CAAsCC;AAE7E,MAAMN,iCAA0D;IACrEO,YAAYD;AACd;AAEO,MAAML,wBAAwB;QAAMG;WAAAA,CAAAA,oBAAAA,OAAMI,UAAU,CAACL,mBAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAAwCJ;AAA6B;AAEzG,MAAMD,6BAA6BI,mBAAmBM,QAAQ;AAS9D,SAASP,qCAAqCQ,KAAuB;IAC1E,MAAM,EAAEH,UAAU,EAAE,GAAGG;IACvB,MAAMC,cAAcP,OAAMQ,OAAO,CAAC,IAAO,CAAA;YAAEL;QAAW,CAAA,GAAI;QAACA;KAAW;IAEtE,OAAO;QAAEI;IAAY;AACvB"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/CarouselNavContext.ts"],"sourcesContent":["import * as React from 'react';\nimport type { CarouselNavContextValue, CarouselNavState } from './CarouselNav.types';\n\nconst carouselNavContext = React.createContext<CarouselNavContextValue | undefined>(undefined);\n\nexport const carouselNavContextDefaultValue: CarouselNavContextValue = {\n appearance: undefined,\n};\n\nexport const useCarouselNavContext = () => React.useContext(carouselNavContext) ?? carouselNavContextDefaultValue;\n\nexport const CarouselNavContextProvider = carouselNavContext.Provider;\n\n/**\n * Context shared between CarouselNav and its children components\n */\nexport type CarouselNavContextValues = {\n carouselNav: CarouselNavContextValue;\n};\n\nexport function useCarouselNavContextValues_unstable(state: CarouselNavState): CarouselNavContextValues {\n const { appearance } = state;\n const carouselNav = React.useMemo(() => ({ appearance }), [appearance]);\n\n return { carouselNav };\n}\n"],"names":["CarouselNavContextProvider","carouselNavContextDefaultValue","useCarouselNavContext","useCarouselNavContextValues_unstable","carouselNavContext","React","createContext","undefined","appearance","useContext","Provider","state","carouselNav","useMemo"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAWaA,0BAAAA;eAAAA;;IANAC,8BAAAA;eAAAA;;IAIAC,qBAAAA;eAAAA;;IAWGC,oCAAAA;eAAAA;;;;iEApBO;AAGvB,MAAMC,mCAAqBC,OAAMC,aAAa,CAAsCC;AAE7E,MAAMN,iCAA0D;IACrEO,YAAYD;AACd;AAEO,MAAML,wBAAwB;QAAMG;WAAAA,CAAAA,oBAAAA,OAAMI,UAAU,CAACL,mBAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAAwCJ;AAA6B;AAEzG,MAAMD,6BAA6BI,mBAAmBM,QAAQ;AAS9D,SAASP,qCAAqCQ,KAAuB;IAC1E,MAAM,EAAEH,UAAU,EAAE,GAAGG;IACvB,MAAMC,cAAcP,OAAMQ,OAAO,CAAC,IAAO,CAAA;YAAEL;QAAW,CAAA,GAAI;QAACA;KAAW;IAEtE,OAAO;QAAEI;IAAY;AACvB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNavIndexContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst carouselNavIndexContext = React.createContext<number | undefined>(undefined);\n\nexport const carouselNavIndexContextDefaultValue: number = 0;\n\nexport const useCarouselNavIndexContext = () =>\n React.useContext(carouselNavIndexContext) ?? carouselNavIndexContextDefaultValue;\n\nexport const CarouselNavIndexContextProvider = carouselNavIndexContext.Provider;\n"],"names":["CarouselNavIndexContextProvider","carouselNavIndexContextDefaultValue","useCarouselNavIndexContext","carouselNavIndexContext","React","createContext","undefined","useContext","Provider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IASaA,+BAAAA;eAAAA;;IALAC,mCAAAA;eAAAA;;IAEAC,0BAAAA;eAAAA;;;;iEANU;AAEvB,MAAMC,wCAA0BC,OAAMC,aAAa,CAAqBC;AAEjE,MAAML,sCAA8C;AAEpD,MAAMC,6BAA6B;QACxCE;WAAAA,CAAAA,oBAAAA,OAAMG,UAAU,CAACJ,wBAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAA6CH;AAAkC;AAE1E,MAAMD,kCAAkCG,wBAAwBK,QAAQ"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/CarouselNavIndexContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst carouselNavIndexContext = React.createContext<number | undefined>(undefined);\n\nexport const carouselNavIndexContextDefaultValue: number = 0;\n\nexport const useCarouselNavIndexContext = () =>\n React.useContext(carouselNavIndexContext) ?? carouselNavIndexContextDefaultValue;\n\nexport const CarouselNavIndexContextProvider = carouselNavIndexContext.Provider;\n"],"names":["CarouselNavIndexContextProvider","carouselNavIndexContextDefaultValue","useCarouselNavIndexContext","carouselNavIndexContext","React","createContext","undefined","useContext","Provider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IASaA,+BAAAA;eAAAA;;IALAC,mCAAAA;eAAAA;;IAEAC,0BAAAA;eAAAA;;;;iEANU;AAEvB,MAAMC,wCAA0BC,OAAMC,aAAa,CAAqBC;AAEjE,MAAML,sCAA8C;AAEpD,MAAMC,6BAA6B;QACxCE;WAAAA,CAAAA,oBAAAA,OAAMG,UAAU,CAACJ,wBAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAA6CH;AAAkC;AAE1E,MAAMD,kCAAkCG,wBAAwBK,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './CarouselNav';\nexport * from './CarouselNav.types';\nexport * from './renderCarouselNav';\nexport * from './useCarouselNav';\nexport * from './useCarouselNavStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/index.ts"],"sourcesContent":["export * from './CarouselNav';\nexport * from './CarouselNav.types';\nexport * from './renderCarouselNav';\nexport * from './useCarouselNav';\nexport * from './useCarouselNavStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["renderCarouselNav.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\n\nimport type { CarouselNavState, CarouselNavSlots } from './CarouselNav.types';\nimport { CarouselNavContextProvider, type CarouselNavContextValues } from './CarouselNavContext';\nimport { CarouselNavIndexContextProvider } from './CarouselNavIndexContext';\n\n/**\n * Render the final JSX of CarouselNav\n */\nexport const renderCarouselNav_unstable = (state: CarouselNavState, contextValues: CarouselNavContextValues) => {\n assertSlots<CarouselNavSlots>(state);\n\n const { totalSlides, renderNavButton } = state;\n\n return (\n <state.root>\n <CarouselNavContextProvider value={contextValues.carouselNav}>\n {new Array(totalSlides).fill(null).map((_, index) => (\n <CarouselNavIndexContextProvider key={index} value={index}>\n {renderNavButton(index)}\n </CarouselNavIndexContextProvider>\n ))}\n </CarouselNavContextProvider>\n </state.root>\n );\n};\n"],"names":["renderCarouselNav_unstable","state","contextValues","assertSlots","totalSlides","renderNavButton","_jsx","root","CarouselNavContextProvider","value","carouselNav","Array","fill","map","_","index","CarouselNavIndexContextProvider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAYaA;;;eAAAA;;;4BAXb;gCAE4B;oCAG8C;yCAC1B;AAKzC,MAAMA,6BAA6B,CAACC,OAAyBC;IAClEC,IAAAA,2BAAAA,EAA8BF;IAE9B,MAAM,EAAEG,WAAW,EAAEC,eAAe,EAAE,GAAGJ;IAEzC,OAAA,WAAA,GACEK,IAAAA,eAAA,EAACL,MAAMM,IAAI,EAAA;kBACT,WAAA,GAAAD,IAAAA,eAAA,EAACE,8CAAAA,EAAAA;YAA2BC,OAAOP,cAAcQ,WAAW;sBACzD,IAAIC,MAAMP,aAAaQ,IAAI,CAAC,MAAMC,GAAG,CAAC,CAACC,GAAGC,QAAAA,WAAAA,GACzCT,IAAAA,eAAA,EAACU,wDAAAA,EAAAA;oBAA4CP,OAAOM;8BACjDV,gBAAgBU;mBADmBA;;;AAOhD"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/renderCarouselNav.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\n\nimport type { CarouselNavState, CarouselNavSlots } from './CarouselNav.types';\nimport { CarouselNavContextProvider, type CarouselNavContextValues } from './CarouselNavContext';\nimport { CarouselNavIndexContextProvider } from './CarouselNavIndexContext';\n\n/**\n * Render the final JSX of CarouselNav\n */\nexport const renderCarouselNav_unstable = (state: CarouselNavState, contextValues: CarouselNavContextValues) => {\n assertSlots<CarouselNavSlots>(state);\n\n const { totalSlides, renderNavButton } = state;\n\n return (\n <state.root>\n <CarouselNavContextProvider value={contextValues.carouselNav}>\n {new Array(totalSlides).fill(null).map((_, index) => (\n <CarouselNavIndexContextProvider key={index} value={index}>\n {renderNavButton(index)}\n </CarouselNavIndexContextProvider>\n ))}\n </CarouselNavContextProvider>\n </state.root>\n );\n};\n"],"names":["renderCarouselNav_unstable","state","contextValues","assertSlots","totalSlides","renderNavButton","_jsx","root","CarouselNavContextProvider","value","carouselNav","Array","fill","map","_","index","CarouselNavIndexContextProvider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAYaA;;;eAAAA;;;4BAXb;gCAE4B;oCAG8C;yCAC1B;AAKzC,MAAMA,6BAA6B,CAACC,OAAyBC;IAClEC,IAAAA,2BAAAA,EAA8BF;IAE9B,MAAM,EAAEG,WAAW,EAAEC,eAAe,EAAE,GAAGJ;IAEzC,OAAA,WAAA,GACEK,IAAAA,eAAA,EAACL,MAAMM,IAAI,EAAA;kBACT,WAAA,GAAAD,IAAAA,eAAA,EAACE,8CAAAA,EAAAA;YAA2BC,OAAOP,cAAcQ,WAAW;sBACzD,IAAIC,MAAMP,aAAaQ,IAAI,CAAC,MAAMC,GAAG,CAAC,CAACC,GAAGC,QAAAA,WAAAA,GACzCT,IAAAA,eAAA,EAACU,wDAAAA,EAAAA;oBAA4CP,OAAOM;8BACjDV,gBAAgBU;mBADmBA;;;AAOhD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselNav.ts"],"sourcesContent":["import { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, slot, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport type { CarouselNavProps, CarouselNavState } from './CarouselNav.types';\n\n/**\n * Create the state required to render CarouselNav.\n *\n * The returned state can be modified with hooks such as useCarouselNavStyles_unstable,\n * before being passed to renderCarouselNav_unstable.\n *\n * @param props - props from this instance of CarouselNav\n * @param ref - reference to root HTMLDivElement of CarouselNav\n */\nexport const useCarouselNav_unstable = (props: CarouselNavProps, ref: React.Ref<HTMLDivElement>): CarouselNavState => {\n const { appearance } = props;\n\n const focusableGroupAttr = useArrowNavigationGroup({\n circular: false,\n axis: 'horizontal',\n memorizeCurrent: false,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault: true,\n });\n\n const [totalSlides, setTotalSlides] = React.useState(props.totalSlides ?? 0);\n const subscribeForValues = useCarouselContext(ctx => ctx.subscribeForValues);\n\n useIsomorphicLayoutEffect(() => {\n return subscribeForValues(data => {\n setTotalSlides(data.navItemsCount);\n });\n }, [subscribeForValues]);\n\n return {\n totalSlides,\n appearance,\n renderNavButton: props.children,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n role: 'tablist',\n ...props,\n ...focusableGroupAttr,\n children: null,\n }),\n { elementType: 'div' },\n ),\n };\n};\n"],"names":["useCarouselNav_unstable","props","ref","appearance","focusableGroupAttr","useArrowNavigationGroup","circular","axis","memorizeCurrent","unstable_hasDefault","totalSlides","setTotalSlides","React","useState","subscribeForValues","useCarouselContext","ctx","useIsomorphicLayoutEffect","data","navItemsCount","renderNavButton","children","components","root","slot","always","getIntrinsicElementProps","role","elementType"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAgBaA;;;eAAAA;;;;8BAhB2B;gCACkC;iEACnD;iCAE2C;AAY3D,MAAMA,0BAA0B,CAACC,OAAyBC;IAC/D,MAAM,EAAEC,UAAU,EAAE,GAAGF;IAEvB,MAAMG,qBAAqBC,IAAAA,qCAAAA,EAAwB;QACjDC,UAAU;QACVC,MAAM;QACNC,iBAAiB;QACjB,gEAAgE;QAChEC,qBAAqB;IACvB;QAEqDR;IAArD,MAAM,CAACS,aAAaC,eAAe,GAAGC,OAAMC,QAAQ,CAACZ,CAAAA,qBAAAA,MAAMS,WAAW,AAAXA,MAAW,QAAjBT,uBAAAA,KAAAA,IAAAA,qBAAqB;IAC1E,MAAMa,qBAAqBC,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIF,kBAAkB;IAE3EG,IAAAA,yCAAAA,EAA0B;QACxB,OAAOH,mBAAmBI,CAAAA;YACxBP,eAAeO,KAAKC,aAAa;QACnC;IACF,GAAG;QAACL;KAAmB;IAEvB,OAAO;QACLJ;QACAP;QACAiB,iBAAiBnB,MAAMoB,QAAQ;QAC/BC,YAAY;YACVC,MAAM;QACR;QACAA,MAAMC,oBAAAA,CAAKC,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BxB;YACAyB,MAAM;YACN,GAAG1B,KAAK;YACR,GAAGG,kBAAkB;YACrBiB,UAAU;QACZ,IACA;YAAEO,aAAa;QAAM;IAEzB;AACF"}
1
+ {"version":3,"sources":["../src/components/CarouselNav/useCarouselNav.ts"],"sourcesContent":["import { useArrowNavigationGroup } from '@fluentui/react-tabster';\nimport { getIntrinsicElementProps, slot, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport type { CarouselNavProps, CarouselNavState } from './CarouselNav.types';\n\n/**\n * Create the state required to render CarouselNav.\n *\n * The returned state can be modified with hooks such as useCarouselNavStyles_unstable,\n * before being passed to renderCarouselNav_unstable.\n *\n * @param props - props from this instance of CarouselNav\n * @param ref - reference to root HTMLDivElement of CarouselNav\n */\nexport const useCarouselNav_unstable = (props: CarouselNavProps, ref: React.Ref<HTMLDivElement>): CarouselNavState => {\n const { appearance } = props;\n\n const focusableGroupAttr = useArrowNavigationGroup({\n circular: false,\n axis: 'horizontal',\n memorizeCurrent: false,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n unstable_hasDefault: true,\n });\n\n const [totalSlides, setTotalSlides] = React.useState(props.totalSlides ?? 0);\n const subscribeForValues = useCarouselContext(ctx => ctx.subscribeForValues);\n\n useIsomorphicLayoutEffect(() => {\n return subscribeForValues(data => {\n setTotalSlides(data.navItemsCount);\n });\n }, [subscribeForValues]);\n\n return {\n totalSlides,\n appearance,\n renderNavButton: props.children,\n components: {\n root: 'div',\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n role: 'tablist',\n ...props,\n ...focusableGroupAttr,\n children: null,\n }),\n { elementType: 'div' },\n ),\n };\n};\n"],"names":["useCarouselNav_unstable","props","ref","appearance","focusableGroupAttr","useArrowNavigationGroup","circular","axis","memorizeCurrent","unstable_hasDefault","totalSlides","setTotalSlides","React","useState","subscribeForValues","useCarouselContext","ctx","useIsomorphicLayoutEffect","data","navItemsCount","renderNavButton","children","components","root","slot","always","getIntrinsicElementProps","role","elementType"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAgBaA;;;eAAAA;;;;8BAhB2B;gCACkC;iEACnD;iCAE2C;AAY3D,MAAMA,0BAA0B,CAACC,OAAyBC;IAC/D,MAAM,EAAEC,UAAU,EAAE,GAAGF;IAEvB,MAAMG,qBAAqBC,IAAAA,qCAAAA,EAAwB;QACjDC,UAAU;QACVC,MAAM;QACNC,iBAAiB;QACjB,gEAAgE;QAChEC,qBAAqB;IACvB;QAEqDR;IAArD,MAAM,CAACS,aAAaC,eAAe,GAAGC,OAAMC,QAAQ,CAACZ,CAAAA,qBAAAA,MAAMS,WAAW,AAAXA,MAAW,QAAjBT,uBAAAA,KAAAA,IAAAA,qBAAqB;IAC1E,MAAMa,qBAAqBC,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIF,kBAAkB;IAE3EG,IAAAA,yCAAAA,EAA0B;QACxB,OAAOH,mBAAmBI,CAAAA;YACxBP,eAAeO,KAAKC,aAAa;QACnC;IACF,GAAG;QAACL;KAAmB;IAEvB,OAAO;QACLJ;QACAP;QACAiB,iBAAiBnB,MAAMoB,QAAQ;QAC/BC,YAAY;YACVC,MAAM;QACR;QACAA,MAAMC,oBAAAA,CAAKC,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BxB;YACAyB,MAAM;YACN,GAAG1B,KAAK;YACR,GAAGG,kBAAkB;YACrBiB,UAAU;QACZ,IACA;YAAEO,aAAa;QAAM;IAEzB;AACF"}
@@ -103,4 +103,4 @@ const useCarouselNavStyles_unstable = (state)=>{
103
103
  const styles = useStyles();
104
104
  state.root.className = (0, _react.mergeClasses)(carouselNavClassNames.root, styles.root, state.root.className);
105
105
  return state;
106
- }; //# sourceMappingURL=useCarouselNavStyles.styles.js.map
106
+ };
@@ -13,12 +13,11 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _useCarouselNavButton = require("./useCarouselNavButton");
14
14
  const _renderCarouselNavButton = require("./renderCarouselNavButton");
15
15
  const _useCarouselNavButtonStylesstyles = require("./useCarouselNavButtonStyles.styles");
16
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
16
17
  const CarouselNavButton = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
17
18
  const state = (0, _useCarouselNavButton.useCarouselNavButton_unstable)(props, ref);
18
19
  (0, _useCarouselNavButtonStylesstyles.useCarouselNavButtonStyles_unstable)(state);
19
- // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts
20
- // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md
21
- // useCustomStyleHook_unstable('useCarouselNavButtonStyles_unstable')(state);
20
+ (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselNavButtonStyles_unstable')(state);
22
21
  return (0, _renderCarouselNavButton.renderCarouselNavButton_unstable)(state);
23
22
  });
24
23
  CarouselNavButton.displayName = 'CarouselNavButton';
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNavButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselNavButton_unstable } from './useCarouselNavButton';\nimport { renderCarouselNavButton_unstable } from './renderCarouselNavButton';\nimport { useCarouselNavButtonStyles_unstable } from './useCarouselNavButtonStyles.styles';\nimport type { CarouselNavButtonProps } from './CarouselNavButton.types';\n\n/**\n * The child element of CarouselNav, a singular button that will set the carousels active value on click.\n */\nexport const CarouselNavButton: ForwardRefComponent<CarouselNavButtonProps> = React.forwardRef((props, ref) => {\n const state = useCarouselNavButton_unstable(props, ref);\n\n useCarouselNavButtonStyles_unstable(state);\n // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts\n // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md\n // useCustomStyleHook_unstable('useCarouselNavButtonStyles_unstable')(state);\n return renderCarouselNavButton_unstable(state);\n});\n\nCarouselNavButton.displayName = 'CarouselNavButton';\n"],"names":["CarouselNavButton","React","forwardRef","props","ref","state","useCarouselNavButton_unstable","useCarouselNavButtonStyles_unstable","renderCarouselNavButton_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;;iEAVU;sCAEuB;yCACG;kDACG;AAM7C,MAAMA,oBAAAA,WAAAA,GAAiEC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IACrG,MAAMC,QAAQC,IAAAA,mDAAAA,EAA8BH,OAAOC;IAEnDG,IAAAA,qEAAAA,EAAoCF;IACpC,8HAA8H;IAC9H,wGAAwG;IACxG,6EAA6E;IAC7E,OAAOG,IAAAA,yDAAAA,EAAiCH;AAC1C;AAEAL,kBAAkBS,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/CarouselNavButton/CarouselNavButton.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselNavButton_unstable } from './useCarouselNavButton';\nimport { renderCarouselNavButton_unstable } from './renderCarouselNavButton';\nimport { useCarouselNavButtonStyles_unstable } from './useCarouselNavButtonStyles.styles';\nimport type { CarouselNavButtonProps } from './CarouselNavButton.types';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * The child element of CarouselNav, a singular button that will set the carousels active value on click.\n */\nexport const CarouselNavButton: ForwardRefComponent<CarouselNavButtonProps> = React.forwardRef((props, ref) => {\n const state = useCarouselNavButton_unstable(props, ref);\n\n useCarouselNavButtonStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselNavButtonStyles_unstable')(state);\n\n return renderCarouselNavButton_unstable(state);\n});\n\nCarouselNavButton.displayName = 'CarouselNavButton';\n"],"names":["CarouselNavButton","React","forwardRef","props","ref","state","useCarouselNavButton_unstable","useCarouselNavButtonStyles_unstable","useCustomStyleHook_unstable","renderCarouselNavButton_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAWaA;;;eAAAA;;;;iEAXU;sCAEuB;yCACG;kDACG;qCAER;AAKrC,MAAMA,oBAAAA,WAAAA,GAAiEC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IACrG,MAAMC,QAAQC,IAAAA,mDAAAA,EAA8BH,OAAOC;IAEnDG,IAAAA,qEAAAA,EAAoCF;IACpCG,IAAAA,gDAAAA,EAA4B,uCAAuCH;IAEnE,OAAOI,IAAAA,yDAAAA,EAAiCJ;AAC1C;AAEAL,kBAAkBU,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNavButton.types.ts"],"sourcesContent":["import { ARIAButtonSlotProps } from '@fluentui/react-aria';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { CarouselNavState } from '../CarouselNav/CarouselNav.types';\n\nexport type CarouselNavButtonSlots = {\n /**\n * ARIA compliant nav buttons used to jump to pages\n */\n root: NonNullable<Slot<ARIAButtonSlotProps>>;\n};\n\n/**\n * CarouselNavButton Props\n */\nexport type CarouselNavButtonProps = ComponentProps<CarouselNavButtonSlots> & {};\n\n/**\n * State used in rendering CarouselNavButton\n */\nexport type CarouselNavButtonState = ComponentState<CarouselNavButtonSlots> & {\n /**\n * Enables selection state control\n */\n selected?: boolean;\n} & Pick<CarouselNavState, 'appearance'>;\n"],"names":[],"rangeMappings":";;","mappings":"AAgBA;;CAEC"}
1
+ {"version":3,"sources":["../src/components/CarouselNavButton/CarouselNavButton.types.ts"],"sourcesContent":["import { ARIAButtonSlotProps } from '@fluentui/react-aria';\nimport type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { CarouselNavState } from '../CarouselNav/CarouselNav.types';\n\nexport type CarouselNavButtonSlots = {\n /**\n * ARIA compliant nav buttons used to jump to pages\n */\n root: NonNullable<Slot<ARIAButtonSlotProps>>;\n};\n\n/**\n * CarouselNavButton Props\n */\nexport type CarouselNavButtonProps = ComponentProps<CarouselNavButtonSlots> & {};\n\n/**\n * State used in rendering CarouselNavButton\n */\nexport type CarouselNavButtonState = ComponentState<CarouselNavButtonSlots> & {\n /**\n * Enables selection state control\n */\n selected?: boolean;\n} & Pick<CarouselNavState, 'appearance'>;\n"],"names":[],"rangeMappings":";;","mappings":"AAgBA;;CAEC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './CarouselNavButton';\nexport * from './CarouselNavButton.types';\nexport * from './renderCarouselNavButton';\nexport * from './useCarouselNavButton';\nexport * from './useCarouselNavButtonStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
1
+ {"version":3,"sources":["../src/components/CarouselNavButton/index.ts"],"sourcesContent":["export * from './CarouselNavButton';\nexport * from './CarouselNavButton.types';\nexport * from './renderCarouselNavButton';\nexport * from './useCarouselNavButton';\nexport * from './useCarouselNavButtonStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["renderCarouselNavButton.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselNavButtonState, CarouselNavButtonSlots } from './CarouselNavButton.types';\n\n/**\n * Render the final JSX of CarouselNavButton\n */\nexport const renderCarouselNavButton_unstable = (state: CarouselNavButtonState) => {\n assertSlots<CarouselNavButtonSlots>(state);\n\n // TODO Add additional slots in the appropriate place\n return <state.root />;\n};\n"],"names":["renderCarouselNavButton_unstable","state","assertSlots","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;4BARb;gCAE4B;AAMrB,MAAMA,mCAAmC,CAACC;IAC/CC,IAAAA,2BAAAA,EAAoCD;IAEpC,qDAAqD;IACrD,OAAA,WAAA,GAAOE,IAAAA,eAAA,EAACF,MAAMG,IAAI,EAAA,CAAA;AACpB"}
1
+ {"version":3,"sources":["../src/components/CarouselNavButton/renderCarouselNavButton.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselNavButtonState, CarouselNavButtonSlots } from './CarouselNavButton.types';\n\n/**\n * Render the final JSX of CarouselNavButton\n */\nexport const renderCarouselNavButton_unstable = (state: CarouselNavButtonState) => {\n assertSlots<CarouselNavButtonSlots>(state);\n\n // TODO Add additional slots in the appropriate place\n return <state.root />;\n};\n"],"names":["renderCarouselNavButton_unstable","state","assertSlots","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;4BARb;gCAE4B;AAMrB,MAAMA,mCAAmC,CAACC;IAC/CC,IAAAA,2BAAAA,EAAoCD;IAEpC,qDAAqD;IACrD,OAAA,WAAA,GAAOE,IAAAA,eAAA,EAACF,MAAMG,IAAI,EAAA,CAAA;AACpB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselNavButton.ts"],"sourcesContent":["import { type ARIAButtonElement, type ARIAButtonSlotProps, useARIAButtonProps } from '@fluentui/react-aria';\nimport { useTabsterAttributes } from '@fluentui/react-tabster';\nimport {\n getIntrinsicElementProps,\n isHTMLElement,\n slot,\n useEventCallback,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport { useCarouselNavContext } from '../CarouselNav/CarouselNavContext';\nimport { useCarouselNavIndexContext } from '../CarouselNav/CarouselNavIndexContext';\nimport type { CarouselNavButtonProps, CarouselNavButtonState } from './CarouselNavButton.types';\n\n/**\n * Create the state required to render CarouselNavButton.\n *\n * The returned state can be modified with hooks such as useCarouselNavButtonStyles_unstable,\n * before being passed to renderCarouselNavButton_unstable.\n *\n * @param props - props from this instance of CarouselNavButton\n * @param ref - reference to root HTMLDivElement of CarouselNavButton\n */\nexport const useCarouselNavButton_unstable = (\n props: CarouselNavButtonProps,\n ref: React.Ref<ARIAButtonElement>,\n): CarouselNavButtonState => {\n const { onClick, as = 'button' } = props;\n\n const { appearance } = useCarouselNavContext();\n const index = useCarouselNavIndexContext();\n\n const selectPageByIndex = useCarouselContext(ctx => ctx.selectPageByIndex);\n const selected = useCarouselContext(ctx => ctx.activeIndex === index);\n const subscribeForValues = useCarouselContext(ctx => ctx.subscribeForValues);\n const resetAutoplay = useCarouselContext(ctx => ctx.resetAutoplay);\n\n const handleClick: ARIAButtonSlotProps['onClick'] = useEventCallback(event => {\n onClick?.(event);\n\n if (!event.defaultPrevented && isHTMLElement(event.target)) {\n selectPageByIndex(event, index);\n }\n\n // Ensure any autoplay timers are extended/reset\n resetAutoplay();\n });\n\n const defaultTabProps = useTabsterAttributes({\n focusable: { isDefault: selected },\n });\n\n const buttonRef = React.useRef<HTMLElement>();\n const _carouselButton = slot.always<ARIAButtonSlotProps>(\n getIntrinsicElementProps(as, useARIAButtonProps(props.as, props)),\n {\n elementType: 'button',\n defaultProps: {\n ref: useMergedRefs(ref, buttonRef),\n role: 'tab',\n type: 'button',\n 'aria-selected': selected,\n ...defaultTabProps,\n },\n },\n );\n\n useIsomorphicLayoutEffect(() => {\n return subscribeForValues(data => {\n const controlList = data.groupIndexList[index];\n const _controlledSlideIds = controlList\n .map((slideIndex: number) => {\n return data.slideNodes[slideIndex].id;\n })\n .join(' ');\n if (buttonRef.current) {\n buttonRef.current.setAttribute('aria-controls', _controlledSlideIds);\n }\n });\n }, [index, subscribeForValues]);\n\n // Override onClick\n _carouselButton.onClick = handleClick;\n\n const state: CarouselNavButtonState = {\n selected,\n appearance,\n components: {\n root: 'button',\n },\n root: _carouselButton,\n };\n\n return state;\n};\n"],"names":["useCarouselNavButton_unstable","props","ref","onClick","as","appearance","useCarouselNavContext","index","useCarouselNavIndexContext","selectPageByIndex","useCarouselContext","ctx","selected","activeIndex","subscribeForValues","resetAutoplay","handleClick","useEventCallback","event","defaultPrevented","isHTMLElement","target","defaultTabProps","useTabsterAttributes","focusable","isDefault","buttonRef","React","useRef","_carouselButton","slot","always","getIntrinsicElementProps","useARIAButtonProps","elementType","defaultProps","useMergedRefs","role","type","useIsomorphicLayoutEffect","data","controlList","groupIndexList","_controlledSlideIds","map","slideIndex","slideNodes","id","join","current","setAttribute","state","components","root"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA0BaA;;;eAAAA;;;;2BA1BwE;8BAChD;gCAQ9B;iEACgB;iCAE2C;oCAC5B;yCACK;AAYpC,MAAMA,gCAAgC,CAC3CC,OACAC;IAEA,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,EAAE,GAAGH;IAEnC,MAAM,EAAEI,UAAU,EAAE,GAAGC,IAAAA,yCAAAA;IACvB,MAAMC,QAAQC,IAAAA,mDAAAA;IAEd,MAAMC,oBAAoBC,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIF,iBAAiB;IACzE,MAAMG,WAAWF,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIE,WAAW,KAAKN;IAC/D,MAAMO,qBAAqBJ,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIG,kBAAkB;IAC3E,MAAMC,gBAAgBL,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAII,aAAa;IAEjE,MAAMC,cAA8CC,IAAAA,gCAAAA,EAAiBC,CAAAA;QACnEf,YAAAA,QAAAA,YAAAA,KAAAA,IAAAA,KAAAA,IAAAA,QAAUe;QAEV,IAAI,CAACA,MAAMC,gBAAgB,IAAIC,IAAAA,6BAAAA,EAAcF,MAAMG,MAAM,GAAG;YAC1DZ,kBAAkBS,OAAOX;QAC3B;QAEA,gDAAgD;QAChDQ;IACF;IAEA,MAAMO,kBAAkBC,IAAAA,kCAAAA,EAAqB;QAC3CC,WAAW;YAAEC,WAAWb;QAAS;IACnC;IAEA,MAAMc,YAAYC,OAAMC,MAAM;IAC9B,MAAMC,kBAAkBC,oBAAAA,CAAKC,MAAM,CACjCC,IAAAA,wCAAAA,EAAyB5B,IAAI6B,IAAAA,6BAAAA,EAAmBhC,MAAMG,EAAE,EAAEH,SAC1D;QACEiC,aAAa;QACbC,cAAc;YACZjC,KAAKkC,IAAAA,6BAAAA,EAAclC,KAAKwB;YACxBW,MAAM;YACNC,MAAM;YACN,iBAAiB1B;YACjB,GAAGU,eAAe;QACpB;IACF;IAGFiB,IAAAA,yCAAAA,EAA0B;QACxB,OAAOzB,mBAAmB0B,CAAAA;YACxB,MAAMC,cAAcD,KAAKE,cAAc,CAACnC,MAAM;YAC9C,MAAMoC,sBAAsBF,YACzBG,GAAG,CAAC,CAACC;gBACJ,OAAOL,KAAKM,UAAU,CAACD,WAAW,CAACE,EAAE;YACvC,GACCC,IAAI,CAAC;YACR,IAAItB,UAAUuB,OAAO,EAAE;gBACrBvB,UAAUuB,OAAO,CAACC,YAAY,CAAC,iBAAiBP;YAClD;QACF;IACF,GAAG;QAACpC;QAAOO;KAAmB;IAE9B,mBAAmB;IACnBe,gBAAgB1B,OAAO,GAAGa;IAE1B,MAAMmC,QAAgC;QACpCvC;QACAP;QACA+C,YAAY;YACVC,MAAM;QACR;QACAA,MAAMxB;IACR;IAEA,OAAOsB;AACT"}
1
+ {"version":3,"sources":["../src/components/CarouselNavButton/useCarouselNavButton.ts"],"sourcesContent":["import { type ARIAButtonElement, type ARIAButtonSlotProps, useARIAButtonProps } from '@fluentui/react-aria';\nimport { useTabsterAttributes } from '@fluentui/react-tabster';\nimport {\n getIntrinsicElementProps,\n isHTMLElement,\n slot,\n useEventCallback,\n useIsomorphicLayoutEffect,\n useMergedRefs,\n} from '@fluentui/react-utilities';\nimport * as React from 'react';\n\nimport { useCarouselContext_unstable as useCarouselContext } from '../CarouselContext';\nimport { useCarouselNavContext } from '../CarouselNav/CarouselNavContext';\nimport { useCarouselNavIndexContext } from '../CarouselNav/CarouselNavIndexContext';\nimport type { CarouselNavButtonProps, CarouselNavButtonState } from './CarouselNavButton.types';\n\n/**\n * Create the state required to render CarouselNavButton.\n *\n * The returned state can be modified with hooks such as useCarouselNavButtonStyles_unstable,\n * before being passed to renderCarouselNavButton_unstable.\n *\n * @param props - props from this instance of CarouselNavButton\n * @param ref - reference to root HTMLDivElement of CarouselNavButton\n */\nexport const useCarouselNavButton_unstable = (\n props: CarouselNavButtonProps,\n ref: React.Ref<ARIAButtonElement>,\n): CarouselNavButtonState => {\n const { onClick, as = 'button' } = props;\n\n const { appearance } = useCarouselNavContext();\n const index = useCarouselNavIndexContext();\n\n const selectPageByIndex = useCarouselContext(ctx => ctx.selectPageByIndex);\n const selected = useCarouselContext(ctx => ctx.activeIndex === index);\n const subscribeForValues = useCarouselContext(ctx => ctx.subscribeForValues);\n const resetAutoplay = useCarouselContext(ctx => ctx.resetAutoplay);\n\n const handleClick: ARIAButtonSlotProps['onClick'] = useEventCallback(event => {\n onClick?.(event);\n\n if (!event.defaultPrevented && isHTMLElement(event.target)) {\n selectPageByIndex(event, index);\n }\n\n // Ensure any autoplay timers are extended/reset\n resetAutoplay();\n });\n\n const defaultTabProps = useTabsterAttributes({\n focusable: { isDefault: selected },\n });\n\n const buttonRef = React.useRef<HTMLElement>();\n const _carouselButton = slot.always<ARIAButtonSlotProps>(\n getIntrinsicElementProps(as, useARIAButtonProps(props.as, props)),\n {\n elementType: 'button',\n defaultProps: {\n ref: useMergedRefs(ref, buttonRef),\n role: 'tab',\n type: 'button',\n 'aria-selected': selected,\n ...defaultTabProps,\n },\n },\n );\n\n useIsomorphicLayoutEffect(() => {\n return subscribeForValues(data => {\n const controlList = data.groupIndexList[index];\n const _controlledSlideIds = controlList\n .map((slideIndex: number) => {\n return data.slideNodes[slideIndex].id;\n })\n .join(' ');\n if (buttonRef.current) {\n buttonRef.current.setAttribute('aria-controls', _controlledSlideIds);\n }\n });\n }, [index, subscribeForValues]);\n\n // Override onClick\n _carouselButton.onClick = handleClick;\n\n const state: CarouselNavButtonState = {\n selected,\n appearance,\n components: {\n root: 'button',\n },\n root: _carouselButton,\n };\n\n return state;\n};\n"],"names":["useCarouselNavButton_unstable","props","ref","onClick","as","appearance","useCarouselNavContext","index","useCarouselNavIndexContext","selectPageByIndex","useCarouselContext","ctx","selected","activeIndex","subscribeForValues","resetAutoplay","handleClick","useEventCallback","event","defaultPrevented","isHTMLElement","target","defaultTabProps","useTabsterAttributes","focusable","isDefault","buttonRef","React","useRef","_carouselButton","slot","always","getIntrinsicElementProps","useARIAButtonProps","elementType","defaultProps","useMergedRefs","role","type","useIsomorphicLayoutEffect","data","controlList","groupIndexList","_controlledSlideIds","map","slideIndex","slideNodes","id","join","current","setAttribute","state","components","root"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA0BaA;;;eAAAA;;;;2BA1BwE;8BAChD;gCAQ9B;iEACgB;iCAE2C;oCAC5B;yCACK;AAYpC,MAAMA,gCAAgC,CAC3CC,OACAC;IAEA,MAAM,EAAEC,OAAO,EAAEC,KAAK,QAAQ,EAAE,GAAGH;IAEnC,MAAM,EAAEI,UAAU,EAAE,GAAGC,IAAAA,yCAAAA;IACvB,MAAMC,QAAQC,IAAAA,mDAAAA;IAEd,MAAMC,oBAAoBC,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIF,iBAAiB;IACzE,MAAMG,WAAWF,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIE,WAAW,KAAKN;IAC/D,MAAMO,qBAAqBJ,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAIG,kBAAkB;IAC3E,MAAMC,gBAAgBL,IAAAA,4CAAAA,EAAmBC,CAAAA,MAAOA,IAAII,aAAa;IAEjE,MAAMC,cAA8CC,IAAAA,gCAAAA,EAAiBC,CAAAA;QACnEf,YAAAA,QAAAA,YAAAA,KAAAA,IAAAA,KAAAA,IAAAA,QAAUe;QAEV,IAAI,CAACA,MAAMC,gBAAgB,IAAIC,IAAAA,6BAAAA,EAAcF,MAAMG,MAAM,GAAG;YAC1DZ,kBAAkBS,OAAOX;QAC3B;QAEA,gDAAgD;QAChDQ;IACF;IAEA,MAAMO,kBAAkBC,IAAAA,kCAAAA,EAAqB;QAC3CC,WAAW;YAAEC,WAAWb;QAAS;IACnC;IAEA,MAAMc,YAAYC,OAAMC,MAAM;IAC9B,MAAMC,kBAAkBC,oBAAAA,CAAKC,MAAM,CACjCC,IAAAA,wCAAAA,EAAyB5B,IAAI6B,IAAAA,6BAAAA,EAAmBhC,MAAMG,EAAE,EAAEH,SAC1D;QACEiC,aAAa;QACbC,cAAc;YACZjC,KAAKkC,IAAAA,6BAAAA,EAAclC,KAAKwB;YACxBW,MAAM;YACNC,MAAM;YACN,iBAAiB1B;YACjB,GAAGU,eAAe;QACpB;IACF;IAGFiB,IAAAA,yCAAAA,EAA0B;QACxB,OAAOzB,mBAAmB0B,CAAAA;YACxB,MAAMC,cAAcD,KAAKE,cAAc,CAACnC,MAAM;YAC9C,MAAMoC,sBAAsBF,YACzBG,GAAG,CAAC,CAACC;gBACJ,OAAOL,KAAKM,UAAU,CAACD,WAAW,CAACE,EAAE;YACvC,GACCC,IAAI,CAAC;YACR,IAAItB,UAAUuB,OAAO,EAAE;gBACrBvB,UAAUuB,OAAO,CAACC,YAAY,CAAC,iBAAiBP;YAClD;QACF;IACF,GAAG;QAACpC;QAAOO;KAAmB;IAE9B,mBAAmB;IACnBe,gBAAgB1B,OAAO,GAAGa;IAE1B,MAAMmC,QAAgC;QACpCvC;QACAP;QACA+C,YAAY;YACVC,MAAM;QACR;QACAA,MAAMxB;IACR;IAEA,OAAOsB;AACT"}
@@ -290,4 +290,4 @@ const useCarouselNavButtonStyles_unstable = (state)=>{
290
290
  const { selected, appearance } = state;
291
291
  state.root.className = (0, _react.mergeClasses)(carouselNavButtonClassNames.root, styles.root, selected ? styles.rootSelected : styles.rootUnselected, appearance === 'brand' && styles.brand, !selected && appearance === 'brand' && styles.unselectedBrand, state.root.className);
292
292
  return state;
293
- }; //# sourceMappingURL=useCarouselNavButtonStyles.styles.js.map
293
+ };
@@ -13,17 +13,11 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _useCarouselNavContainer = require("./useCarouselNavContainer");
14
14
  const _renderCarouselNavContainer = require("./renderCarouselNavContainer");
15
15
  const _useCarouselNavContainerStylesstyles = require("./useCarouselNavContainerStyles.styles");
16
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
16
17
  const CarouselNavContainer = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
17
18
  const state = (0, _useCarouselNavContainer.useCarouselNavContainer_unstable)(props, ref);
18
19
  (0, _useCarouselNavContainerStylesstyles.useCarouselNavContainerStyles_unstable)(state);
19
- /**
20
- * @see https://github.com/microsoft/fluentui/blob/master/docs/react-v9/contributing/rfcs/react-components/convergence/custom-styling.md
21
- *
22
- * TODO: 💡 once package will become stable (PR which will be part of promoting PREVIEW package to STABLE),
23
- * - uncomment this line
24
- * - update types {@link file://./../../../../../../../packages/react-components/react-shared-contexts/library/src/CustomStyleHooksContext/CustomStyleHooksContext.ts#CustomStyleHooksContextValue}
25
- * - verify that custom global style override works for your component
26
- */ // useCustomStyleHook_unstable('useCarouselNavContainerStyles_unstable')(state);
20
+ (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselNavContainerStyles_unstable')(state);
27
21
  return (0, _renderCarouselNavContainer.renderCarouselNavContainer_unstable)(state);
28
22
  });
29
23
  CarouselNavContainer.displayName = 'CarouselNavContainer';
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNavContainer.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselNavContainer_unstable } from './useCarouselNavContainer';\nimport { renderCarouselNavContainer_unstable } from './renderCarouselNavContainer';\nimport { useCarouselNavContainerStyles_unstable } from './useCarouselNavContainerStyles.styles';\nimport type { CarouselNavContainerProps } from './CarouselNavContainer.types';\n\n/**\n * CarouselNavContainer component - This container will provide multiple valid layout options for the underlying carousel controls\n */\nexport const CarouselNavContainer: ForwardRefComponent<CarouselNavContainerProps> = React.forwardRef((props, ref) => {\n const state = useCarouselNavContainer_unstable(props, ref);\n\n useCarouselNavContainerStyles_unstable(state);\n\n /**\n * @see https://github.com/microsoft/fluentui/blob/master/docs/react-v9/contributing/rfcs/react-components/convergence/custom-styling.md\n *\n * TODO: 💡 once package will become stable (PR which will be part of promoting PREVIEW package to STABLE),\n * - uncomment this line\n * - update types {@link file://./../../../../../../../packages/react-components/react-shared-contexts/library/src/CustomStyleHooksContext/CustomStyleHooksContext.ts#CustomStyleHooksContextValue}\n * - verify that custom global style override works for your component\n */\n // useCustomStyleHook_unstable('useCarouselNavContainerStyles_unstable')(state);\n\n return renderCarouselNavContainer_unstable(state);\n});\n\nCarouselNavContainer.displayName = 'CarouselNavContainer';\n"],"names":["CarouselNavContainer","React","forwardRef","props","ref","state","useCarouselNavContainer_unstable","useCarouselNavContainerStyles_unstable","renderCarouselNavContainer_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;;iEAVU;yCAE0B;4CACG;qDACG;AAMhD,MAAMA,uBAAAA,WAAAA,GAAuEC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IAC3G,MAAMC,QAAQC,IAAAA,yDAAAA,EAAiCH,OAAOC;IAEtDG,IAAAA,2EAAAA,EAAuCF;IAEvC;;;;;;;GAOC,GACD,gFAAgF;IAEhF,OAAOG,IAAAA,+DAAAA,EAAoCH;AAC7C;AAEAL,qBAAqBS,WAAW,GAAG"}
1
+ {"version":3,"sources":["../src/components/CarouselNavContainer/CarouselNavContainer.tsx"],"sourcesContent":["import * as React from 'react';\nimport type { ForwardRefComponent } from '@fluentui/react-utilities';\nimport { useCarouselNavContainer_unstable } from './useCarouselNavContainer';\nimport { renderCarouselNavContainer_unstable } from './renderCarouselNavContainer';\nimport { useCarouselNavContainerStyles_unstable } from './useCarouselNavContainerStyles.styles';\nimport type { CarouselNavContainerProps } from './CarouselNavContainer.types';\nimport { useCustomStyleHook_unstable } from '@fluentui/react-shared-contexts';\n\n/**\n * CarouselNavContainer component - This container will provide multiple valid layout options for the underlying carousel controls\n */\nexport const CarouselNavContainer: ForwardRefComponent<CarouselNavContainerProps> = React.forwardRef((props, ref) => {\n const state = useCarouselNavContainer_unstable(props, ref);\n\n useCarouselNavContainerStyles_unstable(state);\n useCustomStyleHook_unstable('useCarouselNavContainerStyles_unstable')(state);\n\n return renderCarouselNavContainer_unstable(state);\n});\n\nCarouselNavContainer.displayName = 'CarouselNavContainer';\n"],"names":["CarouselNavContainer","React","forwardRef","props","ref","state","useCarouselNavContainer_unstable","useCarouselNavContainerStyles_unstable","useCustomStyleHook_unstable","renderCarouselNavContainer_unstable","displayName"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAWaA;;;eAAAA;;;;iEAXU;yCAE0B;4CACG;qDACG;qCAEX;AAKrC,MAAMA,uBAAAA,WAAAA,GAAuEC,OAAMC,UAAU,CAAC,CAACC,OAAOC;IAC3G,MAAMC,QAAQC,IAAAA,yDAAAA,EAAiCH,OAAOC;IAEtDG,IAAAA,2EAAAA,EAAuCF;IACvCG,IAAAA,gDAAAA,EAA4B,0CAA0CH;IAEtE,OAAOI,IAAAA,+DAAAA,EAAoCJ;AAC7C;AAEAL,qBAAqBU,WAAW,GAAG"}
@@ -1 +1 @@
1
- {"version":3,"sources":["CarouselNavContainer.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { CarouselAutoplayButton } from '../CarouselAutoplayButton/CarouselAutoplayButton';\nimport { CarouselButtonProps } from '../CarouselButton/CarouselButton.types';\n\nexport type CarouselNavContainerSlots = {\n root: Slot<'div'>;\n next?: Slot<CarouselButtonProps>;\n prev?: Slot<CarouselButtonProps>;\n autoplay?: Slot<typeof CarouselAutoplayButton>;\n};\n\n/**\n * CarouselNavContainer Props\n */\nexport type CarouselNavContainerProps = ComponentProps<CarouselNavContainerSlots> & {\n /**\n * Default: 'inline'\n * Defines the nav container layout:\n *\n * 'inline' - Default controls inline with carousel view\n *\n * inline-wide - Similar to inline but places nav buttons on far left/right\n *\n * 'overlay' - Controls overlaid on bottom of carousel viewport,\n *\n * 'overlay-wide' - Controls overlaid on bottom of carousel viewport with prev+autoplay/next buttons on far side\n *\n * 'overlay-expanded' - Controls overlaid on bottom of carousel viewport, with prev/next buttons on sides vertically centered\n */\n layout?: 'inline' | 'inline-wide' | 'overlay' | 'overlay-wide' | 'overlay-expanded';\n};\n\n/**\n * State used in rendering CarouselNavContainer\n */\nexport type CarouselNavContainerState = ComponentState<CarouselNavContainerSlots> &\n Pick<CarouselNavContainerProps, 'layout'>;\n"],"names":[],"rangeMappings":";;","mappings":"AAgCA;;CAEC"}
1
+ {"version":3,"sources":["../src/components/CarouselNavContainer/CarouselNavContainer.types.ts"],"sourcesContent":["import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';\nimport { CarouselAutoplayButton } from '../CarouselAutoplayButton/CarouselAutoplayButton';\nimport { CarouselButtonProps } from '../CarouselButton/CarouselButton.types';\n\nexport type CarouselNavContainerSlots = {\n root: Slot<'div'>;\n next?: Slot<CarouselButtonProps>;\n prev?: Slot<CarouselButtonProps>;\n autoplay?: Slot<typeof CarouselAutoplayButton>;\n};\n\n/**\n * CarouselNavContainer Props\n */\nexport type CarouselNavContainerProps = ComponentProps<CarouselNavContainerSlots> & {\n /**\n * Default: 'inline'\n * Defines the nav container layout:\n *\n * 'inline' - Default controls inline with carousel view\n *\n * inline-wide - Similar to inline but places nav buttons on far left/right\n *\n * 'overlay' - Controls overlaid on bottom of carousel viewport,\n *\n * 'overlay-wide' - Controls overlaid on bottom of carousel viewport with prev+autoplay/next buttons on far side\n *\n * 'overlay-expanded' - Controls overlaid on bottom of carousel viewport, with prev/next buttons on sides vertically centered\n */\n layout?: 'inline' | 'inline-wide' | 'overlay' | 'overlay-wide' | 'overlay-expanded';\n};\n\n/**\n * State used in rendering CarouselNavContainer\n */\nexport type CarouselNavContainerState = ComponentState<CarouselNavContainerSlots> &\n Pick<CarouselNavContainerProps, 'layout'>;\n"],"names":[],"rangeMappings":";;","mappings":"AAgCA;;CAEC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["index.ts"],"sourcesContent":["export * from './CarouselNavContainer';\nexport * from './CarouselNavContainer.types';\nexport * from './renderCarouselNavContainer';\nexport * from './useCarouselNavContainer';\nexport * from './useCarouselNavContainerStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
1
+ {"version":3,"sources":["../src/components/CarouselNavContainer/index.ts"],"sourcesContent":["export * from './CarouselNavContainer';\nexport * from './CarouselNavContainer.types';\nexport * from './renderCarouselNavContainer';\nexport * from './useCarouselNavContainer';\nexport * from './useCarouselNavContainerStyles.styles';\n"],"names":[],"rangeMappings":";;;;;;;;;","mappings":";;;;;uBAAc;uBACA;uBACA;uBACA;uBACA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["renderCarouselNavContainer.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselNavContainerState, CarouselNavContainerSlots } from './CarouselNavContainer.types';\n\n/**\n * Render the final JSX of CarouselNavContainer\n */\nexport const renderCarouselNavContainer_unstable = (state: CarouselNavContainerState) => {\n assertSlots<CarouselNavContainerSlots>(state);\n\n return (\n <state.root>\n {state.autoplay && <state.autoplay />}\n {state.prev && <state.prev />}\n {state.root.children}\n {state.next && <state.next />}\n </state.root>\n );\n};\n"],"names":["renderCarouselNavContainer_unstable","state","assertSlots","_jsxs","root","autoplay","_jsx","prev","children","next"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;4BARb;gCAE4B;AAMrB,MAAMA,sCAAsC,CAACC;IAClDC,IAAAA,2BAAAA,EAAuCD;IAEvC,OAAA,WAAA,GACEE,IAAAA,gBAAA,EAACF,MAAMG,IAAI,EAAA;;YACRH,MAAMI,QAAQ,IAAA,WAAA,GAAIC,IAAAA,eAAA,EAACL,MAAMI,QAAQ,EAAA,CAAA;YACjCJ,MAAMM,IAAI,IAAA,WAAA,GAAID,IAAAA,eAAA,EAACL,MAAMM,IAAI,EAAA,CAAA;YACzBN,MAAMG,IAAI,CAACI,QAAQ;YACnBP,MAAMQ,IAAI,IAAA,WAAA,GAAIH,IAAAA,eAAA,EAACL,MAAMQ,IAAI,EAAA,CAAA;;;AAGhC"}
1
+ {"version":3,"sources":["../src/components/CarouselNavContainer/renderCarouselNavContainer.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-utilities';\nimport type { CarouselNavContainerState, CarouselNavContainerSlots } from './CarouselNavContainer.types';\n\n/**\n * Render the final JSX of CarouselNavContainer\n */\nexport const renderCarouselNavContainer_unstable = (state: CarouselNavContainerState) => {\n assertSlots<CarouselNavContainerSlots>(state);\n\n return (\n <state.root>\n {state.autoplay && <state.autoplay />}\n {state.prev && <state.prev />}\n {state.root.children}\n {state.next && <state.next />}\n </state.root>\n );\n};\n"],"names":["renderCarouselNavContainer_unstable","state","assertSlots","_jsxs","root","autoplay","_jsx","prev","children","next"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BASaA;;;eAAAA;;;4BARb;gCAE4B;AAMrB,MAAMA,sCAAsC,CAACC;IAClDC,IAAAA,2BAAAA,EAAuCD;IAEvC,OAAA,WAAA,GACEE,IAAAA,gBAAA,EAACF,MAAMG,IAAI,EAAA;;YACRH,MAAMI,QAAQ,IAAA,WAAA,GAAIC,IAAAA,eAAA,EAACL,MAAMI,QAAQ,EAAA,CAAA;YACjCJ,MAAMM,IAAI,IAAA,WAAA,GAAID,IAAAA,eAAA,EAACL,MAAMM,IAAI,EAAA,CAAA;YACzBN,MAAMG,IAAI,CAACI,QAAQ;YACnBP,MAAMQ,IAAI,IAAA,WAAA,GAAIH,IAAAA,eAAA,EAACL,MAAMQ,IAAI,EAAA,CAAA;;;AAGhC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["useCarouselNavContainer.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { CarouselNavContainerProps, CarouselNavContainerState } from './CarouselNavContainer.types';\nimport { CarouselAutoplayButton } from '../CarouselAutoplayButton/CarouselAutoplayButton';\nimport { CarouselButton } from '../CarouselButton/CarouselButton';\n\n/**\n * Create the state required to render CarouselNavContainer.\n *\n * The returned state can be modified with hooks such as useCarouselNavContainerStyles_unstable,\n * before being passed to renderCarouselNavContainer_unstable.\n *\n * @param props - props from this instance of CarouselNavContainer\n * @param ref - reference to root HTMLDivElement of CarouselNavContainer\n */\nexport const useCarouselNavContainer_unstable = (\n props: CarouselNavContainerProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselNavContainerState => {\n const { layout } = props;\n const next: CarouselNavContainerState['next'] = slot.optional(props.next, {\n defaultProps: {\n navType: 'next',\n },\n elementType: CarouselButton,\n renderByDefault: true,\n });\n\n const prev: CarouselNavContainerState['prev'] = slot.optional(props.prev, {\n defaultProps: {\n navType: 'prev',\n },\n elementType: CarouselButton,\n renderByDefault: true,\n });\n\n const autoplay: CarouselNavContainerState['autoplay'] = slot.optional(props.autoplay, {\n renderByDefault: false,\n elementType: CarouselAutoplayButton,\n });\n\n return {\n layout,\n components: {\n root: 'div',\n next: CarouselButton,\n prev: CarouselButton,\n autoplay: CarouselAutoplayButton,\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n next,\n prev,\n autoplay,\n };\n};\n"],"names":["useCarouselNavContainer_unstable","props","ref","layout","next","slot","optional","defaultProps","navType","elementType","CarouselButton","renderByDefault","prev","autoplay","CarouselAutoplayButton","components","root","always","getIntrinsicElementProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAeaA;;;eAAAA;;;;iEAfU;gCACwB;wCAER;gCACR;AAWxB,MAAMA,mCAAmC,CAC9CC,OACAC;IAEA,MAAM,EAAEC,MAAM,EAAE,GAAGF;IACnB,MAAMG,OAA0CC,oBAAAA,CAAKC,QAAQ,CAACL,MAAMG,IAAI,EAAE;QACxEG,cAAc;YACZC,SAAS;QACX;QACAC,aAAaC,8BAAAA;QACbC,iBAAiB;IACnB;IAEA,MAAMC,OAA0CP,oBAAAA,CAAKC,QAAQ,CAACL,MAAMW,IAAI,EAAE;QACxEL,cAAc;YACZC,SAAS;QACX;QACAC,aAAaC,8BAAAA;QACbC,iBAAiB;IACnB;IAEA,MAAME,WAAkDR,oBAAAA,CAAKC,QAAQ,CAACL,MAAMY,QAAQ,EAAE;QACpFF,iBAAiB;QACjBF,aAAaK,8CAAAA;IACf;IAEA,OAAO;QACLX;QACAY,YAAY;YACVC,MAAM;YACNZ,MAAMM,8BAAAA;YACNE,MAAMF,8BAAAA;YACNG,UAAUC,8CAAAA;QACZ;QACAE,MAAMX,oBAAAA,CAAKY,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BhB;YACA,GAAGD,KAAK;QACV,IACA;YAAEQ,aAAa;QAAM;QAEvBL;QACAQ;QACAC;IACF;AACF"}
1
+ {"version":3,"sources":["../src/components/CarouselNavContainer/useCarouselNavContainer.ts"],"sourcesContent":["import * as React from 'react';\nimport { getIntrinsicElementProps, slot } from '@fluentui/react-utilities';\nimport type { CarouselNavContainerProps, CarouselNavContainerState } from './CarouselNavContainer.types';\nimport { CarouselAutoplayButton } from '../CarouselAutoplayButton/CarouselAutoplayButton';\nimport { CarouselButton } from '../CarouselButton/CarouselButton';\n\n/**\n * Create the state required to render CarouselNavContainer.\n *\n * The returned state can be modified with hooks such as useCarouselNavContainerStyles_unstable,\n * before being passed to renderCarouselNavContainer_unstable.\n *\n * @param props - props from this instance of CarouselNavContainer\n * @param ref - reference to root HTMLDivElement of CarouselNavContainer\n */\nexport const useCarouselNavContainer_unstable = (\n props: CarouselNavContainerProps,\n ref: React.Ref<HTMLDivElement>,\n): CarouselNavContainerState => {\n const { layout } = props;\n const next: CarouselNavContainerState['next'] = slot.optional(props.next, {\n defaultProps: {\n navType: 'next',\n },\n elementType: CarouselButton,\n renderByDefault: true,\n });\n\n const prev: CarouselNavContainerState['prev'] = slot.optional(props.prev, {\n defaultProps: {\n navType: 'prev',\n },\n elementType: CarouselButton,\n renderByDefault: true,\n });\n\n const autoplay: CarouselNavContainerState['autoplay'] = slot.optional(props.autoplay, {\n renderByDefault: false,\n elementType: CarouselAutoplayButton,\n });\n\n return {\n layout,\n components: {\n root: 'div',\n next: CarouselButton,\n prev: CarouselButton,\n autoplay: CarouselAutoplayButton,\n },\n root: slot.always(\n getIntrinsicElementProps('div', {\n ref,\n ...props,\n }),\n { elementType: 'div' },\n ),\n next,\n prev,\n autoplay,\n };\n};\n"],"names":["useCarouselNavContainer_unstable","props","ref","layout","next","slot","optional","defaultProps","navType","elementType","CarouselButton","renderByDefault","prev","autoplay","CarouselAutoplayButton","components","root","always","getIntrinsicElementProps"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAeaA;;;eAAAA;;;;iEAfU;gCACwB;wCAER;gCACR;AAWxB,MAAMA,mCAAmC,CAC9CC,OACAC;IAEA,MAAM,EAAEC,MAAM,EAAE,GAAGF;IACnB,MAAMG,OAA0CC,oBAAAA,CAAKC,QAAQ,CAACL,MAAMG,IAAI,EAAE;QACxEG,cAAc;YACZC,SAAS;QACX;QACAC,aAAaC,8BAAAA;QACbC,iBAAiB;IACnB;IAEA,MAAMC,OAA0CP,oBAAAA,CAAKC,QAAQ,CAACL,MAAMW,IAAI,EAAE;QACxEL,cAAc;YACZC,SAAS;QACX;QACAC,aAAaC,8BAAAA;QACbC,iBAAiB;IACnB;IAEA,MAAME,WAAkDR,oBAAAA,CAAKC,QAAQ,CAACL,MAAMY,QAAQ,EAAE;QACpFF,iBAAiB;QACjBF,aAAaK,8CAAAA;IACf;IAEA,OAAO;QACLX;QACAY,YAAY;YACVC,MAAM;YACNZ,MAAMM,8BAAAA;YACNE,MAAMF,8BAAAA;YACNG,UAAUC,8CAAAA;QACZ;QACAE,MAAMX,oBAAAA,CAAKY,MAAM,CACfC,IAAAA,wCAAAA,EAAyB,OAAO;YAC9BhB;YACA,GAAGD,KAAK;QACV,IACA;YAAEQ,aAAa;QAAM;QAEvBL;QACAQ;QACAC;IACF;AACF"}
@@ -160,4 +160,4 @@ const useCarouselNavContainerStyles_unstable = (state)=>{
160
160
  state.autoplay.className = (0, _react.mergeClasses)(carouselNavContainerClassNames.autoplay, styles.autoplay, layout === 'overlay-expanded' && styles.autoplayExpanded, isWide && isOverlay && styles.autoplayOverlayWide, state.autoplay.className);
161
161
  }
162
162
  return state;
163
- }; //# sourceMappingURL=useCarouselNavContainerStyles.styles.js.map
163
+ };
@@ -13,12 +13,11 @@ const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react"));
13
13
  const _useCarouselNavImageButton = require("./useCarouselNavImageButton");
14
14
  const _renderCarouselNavImageButton = require("./renderCarouselNavImageButton");
15
15
  const _useCarouselNavImageButtonStylesstyles = require("./useCarouselNavImageButtonStyles.styles");
16
+ const _reactsharedcontexts = require("@fluentui/react-shared-contexts");
16
17
  const CarouselNavImageButton = /*#__PURE__*/ _react.forwardRef((props, ref)=>{
17
18
  const state = (0, _useCarouselNavImageButton.useCarouselNavImageButton_unstable)(props, ref);
18
19
  (0, _useCarouselNavImageButtonStylesstyles.useCarouselNavImageButtonStyles_unstable)(state);
19
- // TODO update types in packages/react-components/react-shared-contexts/src/CustomStyleHooksContext/CustomStyleHooksContext.ts
20
- // https://github.com/microsoft/fluentui/blob/master/rfcs/react-components/convergence/custom-styling.md
21
- // useCustomStyleHook_unstable('useCarouselNavImageButtonStyles_unstable')(state);
20
+ (0, _reactsharedcontexts.useCustomStyleHook_unstable)('useCarouselNavImageButtonStyles_unstable')(state);
22
21
  return (0, _renderCarouselNavImageButton.renderCarouselNavImageButton_unstable)(state);
23
22
  });
24
23
  CarouselNavImageButton.displayName = 'CarouselNavImageButton';