@envive-ai/react-toolkit-v3 0.3.8 → 0.3.9

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 (203) hide show
  1. package/dist/AnimatedText/AnimatedText.cjs +1 -0
  2. package/dist/AnimatedText/AnimatedText.js +1 -0
  3. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.cts +2 -2
  4. package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.ts +2 -2
  5. package/dist/CSSVariablesEditor/components/CSSVariablesEditor.cjs +1 -1
  6. package/dist/CSSVariablesEditor/components/CSSVariablesEditor.js +1 -1
  7. package/dist/Carousel/Carousel.d.cts +2 -2
  8. package/dist/Carousel/Carousel.d.ts +2 -2
  9. package/dist/Carousel/components/Container.cjs +1 -1
  10. package/dist/Carousel/components/Container.js +1 -1
  11. package/dist/ChatFooter/ChatFooter.d.cts +2 -2
  12. package/dist/ChatFooter/components/index.d.cts +3 -3
  13. package/dist/ChatFooter/components/index.d.ts +5 -5
  14. package/dist/ChatHeader/ChatHeader.d.cts +2 -2
  15. package/dist/ChatHeader/ChatHeader.d.ts +2 -2
  16. package/dist/ChatPreview/ChatPreview.cjs +13 -3
  17. package/dist/ChatPreview/ChatPreview.d.cts +2 -2
  18. package/dist/ChatPreview/ChatPreview.d.ts +2 -2
  19. package/dist/ChatPreview/ChatPreview.js +13 -3
  20. package/dist/ChatPreview/components/Message.cjs +1 -1
  21. package/dist/ChatPreview/components/Message.js +1 -1
  22. package/dist/ChatPreview/types/types.d.cts +5 -4
  23. package/dist/ChatPreview/types/types.d.ts +5 -4
  24. package/dist/ChatPreviewComparison/ChatPreviewComparison.cjs +13 -3
  25. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
  26. package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
  27. package/dist/ChatPreviewComparison/ChatPreviewComparison.js +13 -3
  28. package/dist/ChatPreviewComparison/components/Message.cjs +1 -1
  29. package/dist/ChatPreviewComparison/components/Message.js +1 -1
  30. package/dist/ChatPreviewComparison/types/types.d.cts +4 -4
  31. package/dist/ChatPreviewComparison/types/types.d.ts +4 -4
  32. package/dist/ChatPreviewLoading/ChatPreviewLoading.cjs +1 -1
  33. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +2 -2
  34. package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +2 -2
  35. package/dist/ChatPreviewLoading/ChatPreviewLoading.js +1 -1
  36. package/dist/Container/Container.d.cts +174 -174
  37. package/dist/Container/Container.d.ts +174 -174
  38. package/dist/DesignTokens/DesignTokensComponent.cjs +1 -1
  39. package/dist/DesignTokens/DesignTokensComponent.d.cts +2 -2
  40. package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
  41. package/dist/DesignTokens/DesignTokensComponent.js +1 -1
  42. package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
  43. package/dist/FloatingButton/FloatingButton.d.cts +2 -2
  44. package/dist/FloatingButton/FloatingButton.d.ts +2 -2
  45. package/dist/FloatingChat/FloatingChat.cjs +4 -3
  46. package/dist/FloatingChat/FloatingChat.d.cts +2 -2
  47. package/dist/FloatingChat/FloatingChat.d.ts +2 -2
  48. package/dist/FloatingChat/FloatingChat.js +4 -3
  49. package/dist/FloatingChat/components/AgentMessage.cjs +9 -5
  50. package/dist/FloatingChat/components/AgentMessage.js +9 -5
  51. package/dist/FloatingChat/components/ChatMessages.cjs +1 -1
  52. package/dist/FloatingChat/components/ChatMessages.js +1 -1
  53. package/dist/FloatingChat/components/Layout.cjs +11 -11
  54. package/dist/FloatingChat/components/Layout.js +11 -11
  55. package/dist/FloatingChat/components/ModalSheet.cjs +1 -1
  56. package/dist/FloatingChat/components/ModalSheet.js +1 -1
  57. package/dist/FloatingChat/components/ReviewCardsCarousel.cjs +2 -1
  58. package/dist/FloatingChat/components/ReviewCardsCarousel.js +2 -1
  59. package/dist/FloatingChat/components/ScrollToBottomButton.cjs +1 -1
  60. package/dist/FloatingChat/components/ScrollToBottomButton.js +1 -1
  61. package/dist/Form/Form.cjs +1 -1
  62. package/dist/Form/Form.js +1 -1
  63. package/dist/Image/Image.d.cts +2 -2
  64. package/dist/Image/Image.d.ts +2 -2
  65. package/dist/ImageGallery/ImageGallery.d.cts +2 -2
  66. package/dist/ImageGallery/ImageGallery.d.ts +2 -2
  67. package/dist/ImageGallery/components/NormalLayout.cjs +1 -1
  68. package/dist/ImageGallery/components/NormalLayout.js +1 -1
  69. package/dist/MarkdownProcessor/MarkdownProcessor.cjs +1 -1
  70. package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
  71. package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
  72. package/dist/MarkdownProcessor/MarkdownProcessor.js +1 -1
  73. package/dist/Message/components/AgentContent.cjs +1 -1
  74. package/dist/Message/components/AgentContent.js +1 -1
  75. package/dist/ProductCard/ProductCard.cjs +9 -5
  76. package/dist/ProductCard/ProductCard.d.cts +2 -2
  77. package/dist/ProductCard/ProductCard.d.ts +2 -2
  78. package/dist/ProductCard/ProductCard.js +4 -1
  79. package/dist/ProductCard/components/Header.cjs +3 -3
  80. package/dist/ProductCard/components/Header.js +3 -3
  81. package/dist/PromptButton/PromptButton.d.cts +2 -2
  82. package/dist/PromptButton/PromptButton.d.ts +2 -2
  83. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.cjs +3 -2
  84. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +2 -2
  85. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +2 -2
  86. package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.js +3 -2
  87. package/dist/PromptButtonCarouselWithImage/components/Layout.cjs +8 -3
  88. package/dist/PromptButtonCarouselWithImage/components/Layout.js +8 -3
  89. package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.cjs +53 -3
  90. package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.js +53 -3
  91. package/dist/PromptCarousel/PromptCarousel.cjs +70 -33
  92. package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
  93. package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
  94. package/dist/PromptCarousel/PromptCarousel.js +71 -34
  95. package/dist/PromptCarousel/hooks/index.cjs +2 -4
  96. package/dist/PromptCarousel/hooks/index.js +2 -4
  97. package/dist/PromptCarousel/hooks/useCoordinatedScrollAnimation.cjs +91 -0
  98. package/dist/PromptCarousel/hooks/useCoordinatedScrollAnimation.js +90 -0
  99. package/dist/PromptCarousel/hooks/useScrollSync.cjs +65 -0
  100. package/dist/PromptCarousel/hooks/useScrollSync.js +64 -0
  101. package/dist/ReviewCard/ReviewCard.cjs +1 -1
  102. package/dist/ReviewCard/ReviewCard.d.cts +2 -2
  103. package/dist/ReviewCard/ReviewCard.d.ts +2 -2
  104. package/dist/ReviewCard/ReviewCard.js +1 -1
  105. package/dist/ReviewCard/components/index.d.cts +6 -6
  106. package/dist/ReviewCard/components/index.d.ts +6 -6
  107. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +2 -2
  108. package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +2 -2
  109. package/dist/SalesAgentProductCard/components/index.d.cts +8 -8
  110. package/dist/SalesAgentProductCard/components/index.d.ts +6 -6
  111. package/dist/SocialProof/SocialProof.d.cts +2 -2
  112. package/dist/SocialProof/SocialProof.d.ts +2 -2
  113. package/dist/SocialProof/components/Headline.cjs +1 -1
  114. package/dist/SocialProof/components/Headline.js +1 -1
  115. package/dist/SocialProof/components/LayoutSingle.cjs +1 -1
  116. package/dist/SocialProof/components/LayoutSingle.js +1 -1
  117. package/dist/Stack/Stack.d.cts +2 -2
  118. package/dist/Stack/Stack.d.ts +2 -2
  119. package/dist/Stack/hooks/useFormatStackChildren.cjs +1 -1
  120. package/dist/Stack/hooks/useFormatStackChildren.js +1 -1
  121. package/dist/Title/components/Image.cjs +1 -1
  122. package/dist/Title/components/Image.js +1 -1
  123. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
  124. package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
  125. package/dist/TypingAnimation/TypingAnimation.cjs +2 -2
  126. package/dist/TypingAnimation/TypingAnimation.d.ts +2 -2
  127. package/dist/TypingAnimation/TypingAnimation.js +2 -2
  128. package/dist/Typography/Typography.d.cts +4 -4
  129. package/dist/Typography/Typography.d.ts +4 -4
  130. package/dist/WidgetTextField/WidgetTextField.cjs +11 -6
  131. package/dist/WidgetTextField/WidgetTextField.d.cts +3 -2
  132. package/dist/WidgetTextField/WidgetTextField.d.ts +3 -2
  133. package/dist/WidgetTextField/WidgetTextField.js +7 -2
  134. package/dist/WidgetTextField/components/FakeTextInput.cjs +2 -2
  135. package/dist/WidgetTextField/components/FakeTextInput.js +2 -2
  136. package/dist/WidgetTextField/components/Icon.cjs +10 -9
  137. package/dist/WidgetTextField/components/Icon.js +10 -9
  138. package/dist/WidgetTextField/components/Skeleton.cjs +1 -1
  139. package/dist/WidgetTextField/components/Skeleton.js +1 -1
  140. package/dist/WidgetTextField/types/types.d.cts +3 -0
  141. package/dist/WidgetTextField/types/types.d.ts +3 -0
  142. package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
  143. package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
  144. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
  145. package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.ts +2 -2
  146. package/dist/styles.css +1 -1
  147. package/dist/utils/CustomIcon.cjs +1 -1
  148. package/dist/utils/CustomIcon.js +1 -1
  149. package/dist/utils/useDragToScroll.cjs +68 -0
  150. package/dist/utils/useDragToScroll.js +67 -0
  151. package/package.json +1 -1
  152. package/src/components/AnimatedText/AnimatedText.tsx +2 -0
  153. package/src/components/ChatPreview/ChatPreview.tsx +20 -3
  154. package/src/components/ChatPreview/types/types.ts +5 -4
  155. package/src/components/ChatPreviewComparison/ChatPreviewComparison.tsx +20 -3
  156. package/src/components/ChatPreviewComparison/types/types.ts +4 -4
  157. package/src/components/FloatingChat/FloatingChat.tsx +3 -2
  158. package/src/components/FloatingChat/components/AgentMessage.tsx +1 -0
  159. package/src/components/FloatingChat/components/Layout.tsx +7 -2
  160. package/src/components/FloatingChat/components/ReviewCardsCarousel.tsx +3 -0
  161. package/src/components/ProductCard/ProductCard.tsx +12 -1
  162. package/src/components/ProductCard/components/Header.tsx +10 -8
  163. package/src/components/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.tsx +6 -3
  164. package/src/components/PromptButtonCarouselWithImage/components/Layout.tsx +13 -4
  165. package/src/components/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.tsx +63 -20
  166. package/src/components/PromptCarousel/PromptCarousel.tsx +88 -51
  167. package/src/components/PromptCarousel/hooks/index.ts +2 -4
  168. package/src/components/PromptCarousel/hooks/useCoordinatedScrollAnimation.ts +115 -0
  169. package/src/components/PromptCarousel/hooks/useHorizontalScrollAnimation.ts +71 -78
  170. package/src/components/PromptCarousel/hooks/useScrollSync.ts +83 -0
  171. package/src/components/WidgetTextField/WidgetTextField.tsx +9 -1
  172. package/src/components/WidgetTextField/components/FakeTextInput.tsx +6 -2
  173. package/src/components/WidgetTextField/components/Icon.tsx +43 -9
  174. package/src/components/WidgetTextField/types/types.ts +3 -0
  175. package/src/components/utils/useDragToScroll.ts +83 -0
  176. package/dist/PromptCarousel/components/BlockScrollContainer.cjs +0 -23
  177. package/dist/PromptCarousel/components/BlockScrollContainer.js +0 -21
  178. package/dist/PromptCarousel/components/ButtonContainerRow.cjs +0 -34
  179. package/dist/PromptCarousel/components/ButtonContainerRow.js +0 -32
  180. package/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +0 -45
  181. package/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +0 -44
  182. package/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +0 -33
  183. package/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +0 -32
  184. package/dist/PromptCarousel/components/index.cjs +0 -13
  185. package/dist/PromptCarousel/components/index.js +0 -13
  186. package/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +0 -79
  187. package/dist/PromptCarousel/hooks/useButtonScrollPosition.js +0 -78
  188. package/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +0 -23
  189. package/dist/PromptCarousel/hooks/useCarouselAnimation.js +0 -22
  190. package/dist/PromptCarousel/hooks/useCarouselRefs.cjs +0 -20
  191. package/dist/PromptCarousel/hooks/useCarouselRefs.js +0 -19
  192. package/dist/PromptCarousel/hooks/useGetScrollProperties.cjs +0 -18
  193. package/dist/PromptCarousel/hooks/useGetScrollProperties.js +0 -17
  194. package/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +0 -78
  195. package/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +0 -77
  196. package/src/components/PromptCarousel/components/BlockScrollContainer.tsx +0 -34
  197. package/src/components/PromptCarousel/components/ButtonContainerRow.tsx +0 -46
  198. package/src/components/PromptCarousel/components/CarouselContentWithBlockScroll.tsx +0 -83
  199. package/src/components/PromptCarousel/components/CarouselContentWithRowScroll.tsx +0 -71
  200. package/src/components/PromptCarousel/components/index.ts +0 -9
  201. package/src/components/PromptCarousel/hooks/useButtonScrollPosition.ts +0 -128
  202. package/src/components/PromptCarousel/hooks/useCarouselAnimation.ts +0 -47
  203. package/src/components/PromptCarousel/hooks/useCarouselRefs.ts +0 -27
@@ -1,45 +0,0 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_Stack = require('../../Stack/Stack.cjs');
3
- require('../../Stack/index.cjs');
4
- const require_PromptCarousel_types_types = require('../types/types.cjs');
5
- const require_BlockScrollContainer = require('./BlockScrollContainer.cjs');
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
-
8
- //#region src/components/PromptCarousel/components/CarouselContentWithBlockScroll.tsx
9
- const CarouselContentWithBlockScroll = ({ visibleButtonsFirstRow, visibleButtonsSecondRow, shouldShowTwoRows, renderButton, isAnimated, isAnimationStopped, blockScrollRef, blockFirstRowStackRef }) => {
10
- const showRepetitions = isAnimated && isAnimationStopped;
11
- const renderRowButtons = (buttons, startIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
12
- buttons.map((text, index) => renderButton(text, startIndex + index)),
13
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, require_PromptCarousel_types_types.RepetitionNumberSuffix.TWO)),
14
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, require_PromptCarousel_types_types.RepetitionNumberSuffix.THREE))
15
- ] });
16
- return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_BlockScrollContainer.BlockScrollContainer, {
17
- scrollRef: blockScrollRef,
18
- "aria-label": "Scrollable prompt buttons",
19
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
20
- direction: "column",
21
- gap: "2",
22
- className: "envive-tw-w-max",
23
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
24
- ref: blockFirstRowStackRef,
25
- role: shouldShowTwoRows ? "group" : void 0,
26
- "aria-label": shouldShowTwoRows ? "First row of prompt buttons" : void 0,
27
- children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Stack.Stack, {
28
- direction: "row",
29
- gap: "2",
30
- className: "envive-tw-whitespace-nowrap",
31
- children: renderRowButtons(visibleButtonsFirstRow, 0)
32
- })
33
- }), shouldShowTwoRows && visibleButtonsSecondRow.length > 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Stack.Stack, {
34
- direction: "row",
35
- gap: "2",
36
- className: "envive-tw-whitespace-nowrap",
37
- "aria-label": "Second row of prompt buttons",
38
- children: renderRowButtons(visibleButtonsSecondRow, visibleButtonsFirstRow.length)
39
- })]
40
- })
41
- });
42
- };
43
-
44
- //#endregion
45
- exports.CarouselContentWithBlockScroll = CarouselContentWithBlockScroll;
@@ -1,44 +0,0 @@
1
- import { Stack } from "../../Stack/Stack.js";
2
- import "../../Stack/index.js";
3
- import { RepetitionNumberSuffix } from "../types/types.js";
4
- import { BlockScrollContainer } from "./BlockScrollContainer.js";
5
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
-
7
- //#region src/components/PromptCarousel/components/CarouselContentWithBlockScroll.tsx
8
- const CarouselContentWithBlockScroll = ({ visibleButtonsFirstRow, visibleButtonsSecondRow, shouldShowTwoRows, renderButton, isAnimated, isAnimationStopped, blockScrollRef, blockFirstRowStackRef }) => {
9
- const showRepetitions = isAnimated && isAnimationStopped;
10
- const renderRowButtons = (buttons, startIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [
11
- buttons.map((text, index) => renderButton(text, startIndex + index)),
12
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, RepetitionNumberSuffix.TWO)),
13
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, RepetitionNumberSuffix.THREE))
14
- ] });
15
- return /* @__PURE__ */ jsx(BlockScrollContainer, {
16
- scrollRef: blockScrollRef,
17
- "aria-label": "Scrollable prompt buttons",
18
- children: /* @__PURE__ */ jsxs(Stack, {
19
- direction: "column",
20
- gap: "2",
21
- className: "envive-tw-w-max",
22
- children: [/* @__PURE__ */ jsx("div", {
23
- ref: blockFirstRowStackRef,
24
- role: shouldShowTwoRows ? "group" : void 0,
25
- "aria-label": shouldShowTwoRows ? "First row of prompt buttons" : void 0,
26
- children: /* @__PURE__ */ jsx(Stack, {
27
- direction: "row",
28
- gap: "2",
29
- className: "envive-tw-whitespace-nowrap",
30
- children: renderRowButtons(visibleButtonsFirstRow, 0)
31
- })
32
- }), shouldShowTwoRows && visibleButtonsSecondRow.length > 0 && /* @__PURE__ */ jsx(Stack, {
33
- direction: "row",
34
- gap: "2",
35
- className: "envive-tw-whitespace-nowrap",
36
- "aria-label": "Second row of prompt buttons",
37
- children: renderRowButtons(visibleButtonsSecondRow, visibleButtonsFirstRow.length)
38
- })]
39
- })
40
- });
41
- };
42
-
43
- //#endregion
44
- export { CarouselContentWithBlockScroll };
@@ -1,33 +0,0 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_Stack = require('../../Stack/Stack.cjs');
3
- require('../../Stack/index.cjs');
4
- const require_PromptCarousel_types_types = require('../types/types.cjs');
5
- const require_ButtonContainerRow = require('./ButtonContainerRow.cjs');
6
- let react_jsx_runtime = require("react/jsx-runtime");
7
-
8
- //#region src/components/PromptCarousel/components/CarouselContentWithRowScroll.tsx
9
- const CarouselContentWithRowScroll = ({ visibleButtonsFirstRow, visibleButtonsSecondRow, shouldShowTwoRows, isAnimated, isAnimationStopped, renderButton, firstRowScrollRef, firstRowStackRef, secondRowScrollRef }) => {
10
- const showRepetitions = isAnimated && !isAnimationStopped;
11
- const renderRowButtons = (buttons, startIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
12
- buttons.map((text, index) => renderButton(text, startIndex + index)),
13
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, require_PromptCarousel_types_types.RepetitionNumberSuffix.TWO)),
14
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, require_PromptCarousel_types_types.RepetitionNumberSuffix.THREE))
15
- ] });
16
- return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
17
- direction: "column",
18
- gap: "2",
19
- children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ButtonContainerRow.ButtonContainerRow, {
20
- scrollRef: firstRowScrollRef,
21
- stackRef: firstRowStackRef,
22
- "aria-label": shouldShowTwoRows ? "First row of prompt buttons" : void 0,
23
- children: renderRowButtons(visibleButtonsFirstRow, 0)
24
- }), shouldShowTwoRows && /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_ButtonContainerRow.ButtonContainerRow, {
25
- scrollRef: secondRowScrollRef,
26
- "aria-label": "Second row of prompt buttons",
27
- children: renderRowButtons(visibleButtonsSecondRow, visibleButtonsFirstRow.length)
28
- })]
29
- });
30
- };
31
-
32
- //#endregion
33
- exports.CarouselContentWithRowScroll = CarouselContentWithRowScroll;
@@ -1,32 +0,0 @@
1
- import { Stack } from "../../Stack/Stack.js";
2
- import "../../Stack/index.js";
3
- import { RepetitionNumberSuffix } from "../types/types.js";
4
- import { ButtonContainerRow } from "./ButtonContainerRow.js";
5
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
6
-
7
- //#region src/components/PromptCarousel/components/CarouselContentWithRowScroll.tsx
8
- const CarouselContentWithRowScroll = ({ visibleButtonsFirstRow, visibleButtonsSecondRow, shouldShowTwoRows, isAnimated, isAnimationStopped, renderButton, firstRowScrollRef, firstRowStackRef, secondRowScrollRef }) => {
9
- const showRepetitions = isAnimated && !isAnimationStopped;
10
- const renderRowButtons = (buttons, startIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [
11
- buttons.map((text, index) => renderButton(text, startIndex + index)),
12
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, RepetitionNumberSuffix.TWO)),
13
- showRepetitions && buttons.map((text, index) => renderButton(text, startIndex + index, RepetitionNumberSuffix.THREE))
14
- ] });
15
- return /* @__PURE__ */ jsxs(Stack, {
16
- direction: "column",
17
- gap: "2",
18
- children: [/* @__PURE__ */ jsx(ButtonContainerRow, {
19
- scrollRef: firstRowScrollRef,
20
- stackRef: firstRowStackRef,
21
- "aria-label": shouldShowTwoRows ? "First row of prompt buttons" : void 0,
22
- children: renderRowButtons(visibleButtonsFirstRow, 0)
23
- }), shouldShowTwoRows && /* @__PURE__ */ jsx(ButtonContainerRow, {
24
- scrollRef: secondRowScrollRef,
25
- "aria-label": "Second row of prompt buttons",
26
- children: renderRowButtons(visibleButtonsSecondRow, visibleButtonsFirstRow.length)
27
- })]
28
- });
29
- };
30
-
31
- //#endregion
32
- export { CarouselContentWithRowScroll };
@@ -1,13 +0,0 @@
1
- const require_ButtonContainerRow = require('./ButtonContainerRow.cjs');
2
- const require_CarouselContentWithRowScroll = require('./CarouselContentWithRowScroll.cjs');
3
- const require_CarouselContentWithBlockScroll = require('./CarouselContentWithBlockScroll.cjs');
4
-
5
- //#region src/components/PromptCarousel/components/index.ts
6
- const PromptCarouselComponents = {
7
- CarouselContentWithRowScroll: require_CarouselContentWithRowScroll.CarouselContentWithRowScroll,
8
- CarouselContentWithBlockScroll: require_CarouselContentWithBlockScroll.CarouselContentWithBlockScroll,
9
- ButtonContainerRow: require_ButtonContainerRow.ButtonContainerRow
10
- };
11
-
12
- //#endregion
13
- exports.PromptCarouselComponents = PromptCarouselComponents;
@@ -1,13 +0,0 @@
1
- import { ButtonContainerRow } from "./ButtonContainerRow.js";
2
- import { CarouselContentWithRowScroll } from "./CarouselContentWithRowScroll.js";
3
- import { CarouselContentWithBlockScroll } from "./CarouselContentWithBlockScroll.js";
4
-
5
- //#region src/components/PromptCarousel/components/index.ts
6
- const PromptCarouselComponents = {
7
- CarouselContentWithRowScroll,
8
- CarouselContentWithBlockScroll,
9
- ButtonContainerRow
10
- };
11
-
12
- //#endregion
13
- export { PromptCarouselComponents };
@@ -1,79 +0,0 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_PromptCarousel_types_types = require('../types/types.cjs');
3
- let react = require("react");
4
-
5
- //#region src/components/PromptCarousel/hooks/useButtonScrollPosition.ts
6
- const getElementId = (element) => {
7
- if (!element) return null;
8
- return element.id?.trim() || null;
9
- };
10
- function useButtonScrollPosition(firstRowScrollRef, blockScrollRef, shouldUseRowScroll) {
11
- const savedButtonIdRef = (0, react.useRef)(null);
12
- const savedButtonPositionRef = (0, react.useRef)(null);
13
- const captureButtonUnderMouse = (0, react.useCallback)((mouseX, mouseY) => {
14
- const container = firstRowScrollRef.current;
15
- if (!container) return;
16
- const containerRect = container.getBoundingClientRect();
17
- const elementUnderMouse = document.elementFromPoint(mouseX, mouseY);
18
- const targetButtonId = getElementId(elementUnderMouse);
19
- let closestButton = null;
20
- if (targetButtonId) {
21
- const buttonById = document.querySelector(`#${CSS.escape(targetButtonId)}`);
22
- if (buttonById && (elementUnderMouse === buttonById || buttonById.contains(elementUnderMouse))) closestButton = buttonById;
23
- }
24
- if (!closestButton) {
25
- const buttons = Array.from(container.querySelectorAll("button"));
26
- let closestDistance = Infinity;
27
- for (const button of buttons) {
28
- const buttonRect = button.getBoundingClientRect();
29
- if (mouseX >= buttonRect.left && mouseX <= buttonRect.right && mouseY >= buttonRect.top && mouseY <= buttonRect.bottom) {
30
- closestButton = button;
31
- break;
32
- }
33
- const buttonCenterX = buttonRect.left + buttonRect.width / 2;
34
- const buttonCenterY = buttonRect.top + buttonRect.height / 2;
35
- const distance = Math.sqrt((mouseX - buttonCenterX) ** 2 + (mouseY - buttonCenterY) ** 2);
36
- if (distance < closestDistance) {
37
- closestDistance = distance;
38
- closestButton = button;
39
- }
40
- }
41
- }
42
- if (closestButton) {
43
- const id = getElementId(closestButton);
44
- if (id) {
45
- savedButtonIdRef.current = id;
46
- savedButtonPositionRef.current = closestButton.getBoundingClientRect().left - containerRect.left;
47
- }
48
- }
49
- }, [firstRowScrollRef]);
50
- (0, react.useEffect)(() => {
51
- if (shouldUseRowScroll || !blockScrollRef.current || !savedButtonIdRef.current || savedButtonPositionRef.current === null) return;
52
- const container = blockScrollRef.current;
53
- const targetId = savedButtonIdRef.current.trim();
54
- const targetPosition = savedButtonPositionRef.current;
55
- const getScrollId = (id) => {
56
- if (id.endsWith(require_PromptCarousel_types_types.RepetitionNumberSuffix.TWO)) return id;
57
- if (id.endsWith(require_PromptCarousel_types_types.RepetitionNumberSuffix.THREE)) return `${id.slice(0, -2)}${require_PromptCarousel_types_types.RepetitionNumberSuffix.TWO}`;
58
- return `${id}${require_PromptCarousel_types_types.RepetitionNumberSuffix.TWO}`;
59
- };
60
- const applyScroll = () => {
61
- const finalId = getScrollId(targetId);
62
- const targetButton = container.querySelector(`#${CSS.escape(`${finalId}`)}`);
63
- const scrollableContent = container.firstElementChild;
64
- if (!targetButton || !scrollableContent) return;
65
- const contentRect = scrollableContent.getBoundingClientRect();
66
- const newScrollLeft = targetButton.getBoundingClientRect().left - contentRect.left + container.scrollLeft - targetPosition;
67
- container.scrollLeft = Math.max(0, newScrollLeft);
68
- };
69
- requestAnimationFrame(() => {
70
- requestAnimationFrame(() => {
71
- requestAnimationFrame(applyScroll);
72
- });
73
- });
74
- }, [shouldUseRowScroll, blockScrollRef]);
75
- return { captureButtonUnderMouse };
76
- }
77
-
78
- //#endregion
79
- exports.useButtonScrollPosition = useButtonScrollPosition;
@@ -1,78 +0,0 @@
1
- import { RepetitionNumberSuffix } from "../types/types.js";
2
- import { useCallback, useEffect, useRef } from "react";
3
-
4
- //#region src/components/PromptCarousel/hooks/useButtonScrollPosition.ts
5
- const getElementId = (element) => {
6
- if (!element) return null;
7
- return element.id?.trim() || null;
8
- };
9
- function useButtonScrollPosition(firstRowScrollRef, blockScrollRef, shouldUseRowScroll) {
10
- const savedButtonIdRef = useRef(null);
11
- const savedButtonPositionRef = useRef(null);
12
- const captureButtonUnderMouse = useCallback((mouseX, mouseY) => {
13
- const container = firstRowScrollRef.current;
14
- if (!container) return;
15
- const containerRect = container.getBoundingClientRect();
16
- const elementUnderMouse = document.elementFromPoint(mouseX, mouseY);
17
- const targetButtonId = getElementId(elementUnderMouse);
18
- let closestButton = null;
19
- if (targetButtonId) {
20
- const buttonById = document.querySelector(`#${CSS.escape(targetButtonId)}`);
21
- if (buttonById && (elementUnderMouse === buttonById || buttonById.contains(elementUnderMouse))) closestButton = buttonById;
22
- }
23
- if (!closestButton) {
24
- const buttons = Array.from(container.querySelectorAll("button"));
25
- let closestDistance = Infinity;
26
- for (const button of buttons) {
27
- const buttonRect = button.getBoundingClientRect();
28
- if (mouseX >= buttonRect.left && mouseX <= buttonRect.right && mouseY >= buttonRect.top && mouseY <= buttonRect.bottom) {
29
- closestButton = button;
30
- break;
31
- }
32
- const buttonCenterX = buttonRect.left + buttonRect.width / 2;
33
- const buttonCenterY = buttonRect.top + buttonRect.height / 2;
34
- const distance = Math.sqrt((mouseX - buttonCenterX) ** 2 + (mouseY - buttonCenterY) ** 2);
35
- if (distance < closestDistance) {
36
- closestDistance = distance;
37
- closestButton = button;
38
- }
39
- }
40
- }
41
- if (closestButton) {
42
- const id = getElementId(closestButton);
43
- if (id) {
44
- savedButtonIdRef.current = id;
45
- savedButtonPositionRef.current = closestButton.getBoundingClientRect().left - containerRect.left;
46
- }
47
- }
48
- }, [firstRowScrollRef]);
49
- useEffect(() => {
50
- if (shouldUseRowScroll || !blockScrollRef.current || !savedButtonIdRef.current || savedButtonPositionRef.current === null) return;
51
- const container = blockScrollRef.current;
52
- const targetId = savedButtonIdRef.current.trim();
53
- const targetPosition = savedButtonPositionRef.current;
54
- const getScrollId = (id) => {
55
- if (id.endsWith(RepetitionNumberSuffix.TWO)) return id;
56
- if (id.endsWith(RepetitionNumberSuffix.THREE)) return `${id.slice(0, -2)}${RepetitionNumberSuffix.TWO}`;
57
- return `${id}${RepetitionNumberSuffix.TWO}`;
58
- };
59
- const applyScroll = () => {
60
- const finalId = getScrollId(targetId);
61
- const targetButton = container.querySelector(`#${CSS.escape(`${finalId}`)}`);
62
- const scrollableContent = container.firstElementChild;
63
- if (!targetButton || !scrollableContent) return;
64
- const contentRect = scrollableContent.getBoundingClientRect();
65
- const newScrollLeft = targetButton.getBoundingClientRect().left - contentRect.left + container.scrollLeft - targetPosition;
66
- container.scrollLeft = Math.max(0, newScrollLeft);
67
- };
68
- requestAnimationFrame(() => {
69
- requestAnimationFrame(() => {
70
- requestAnimationFrame(applyScroll);
71
- });
72
- });
73
- }, [shouldUseRowScroll, blockScrollRef]);
74
- return { captureButtonUnderMouse };
75
- }
76
-
77
- //#endregion
78
- export { useButtonScrollPosition };
@@ -1,23 +0,0 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_PromptCarousel_types_types = require('../types/types.cjs');
3
- const require_useHorizontalScrollAnimation = require('./useHorizontalScrollAnimation.cjs');
4
- const require_useButtonScrollPosition = require('./useButtonScrollPosition.cjs');
5
- let react = require("react");
6
-
7
- //#region src/components/PromptCarousel/hooks/useCarouselAnimation.ts
8
- const useCarouselAnimation = ({ firstRowScrollRef, blockScrollRef, scrollRefs, animationSpeed, isAnimated }) => {
9
- const [isAnimationStopped, setIsAnimationStopped] = (0, react.useState)(false);
10
- const shouldUseRowScroll = isAnimated && !isAnimationStopped;
11
- const { captureButtonUnderMouse } = require_useButtonScrollPosition.useButtonScrollPosition(firstRowScrollRef, blockScrollRef, shouldUseRowScroll);
12
- require_useHorizontalScrollAnimation.useHorizontalScrollAnimation(scrollRefs, (0, react.useCallback)((mouseX, mouseY) => {
13
- if (mouseX !== void 0 && mouseY !== void 0) captureButtonUnderMouse(mouseX, mouseY);
14
- setIsAnimationStopped(true);
15
- }, [captureButtonUnderMouse]), shouldUseRowScroll ? animationSpeed : require_PromptCarousel_types_types.AnimationSpeed.NONE);
16
- return {
17
- isAnimationStopped,
18
- shouldUseRowScroll
19
- };
20
- };
21
-
22
- //#endregion
23
- exports.useCarouselAnimation = useCarouselAnimation;
@@ -1,22 +0,0 @@
1
- import { AnimationSpeed } from "../types/types.js";
2
- import { useHorizontalScrollAnimation } from "./useHorizontalScrollAnimation.js";
3
- import { useButtonScrollPosition } from "./useButtonScrollPosition.js";
4
- import { useCallback, useState } from "react";
5
-
6
- //#region src/components/PromptCarousel/hooks/useCarouselAnimation.ts
7
- const useCarouselAnimation = ({ firstRowScrollRef, blockScrollRef, scrollRefs, animationSpeed, isAnimated }) => {
8
- const [isAnimationStopped, setIsAnimationStopped] = useState(false);
9
- const shouldUseRowScroll = isAnimated && !isAnimationStopped;
10
- const { captureButtonUnderMouse } = useButtonScrollPosition(firstRowScrollRef, blockScrollRef, shouldUseRowScroll);
11
- useHorizontalScrollAnimation(scrollRefs, useCallback((mouseX, mouseY) => {
12
- if (mouseX !== void 0 && mouseY !== void 0) captureButtonUnderMouse(mouseX, mouseY);
13
- setIsAnimationStopped(true);
14
- }, [captureButtonUnderMouse]), shouldUseRowScroll ? animationSpeed : AnimationSpeed.NONE);
15
- return {
16
- isAnimationStopped,
17
- shouldUseRowScroll
18
- };
19
- };
20
-
21
- //#endregion
22
- export { useCarouselAnimation };
@@ -1,20 +0,0 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- let react = require("react");
3
-
4
- //#region src/components/PromptCarousel/hooks/useCarouselRefs.ts
5
- const useCarouselRefs = ({ shouldShowTwoRows }) => {
6
- const firstRowScrollRef = (0, react.useRef)(null);
7
- const firstRowStackRef = (0, react.useRef)(null);
8
- const secondRowScrollRef = (0, react.useRef)(null);
9
- return {
10
- firstRowScrollRef,
11
- firstRowStackRef,
12
- secondRowScrollRef,
13
- blockScrollRef: (0, react.useRef)(null),
14
- blockFirstRowStackRef: (0, react.useRef)(null),
15
- scrollRefs: (0, react.useMemo)(() => shouldShowTwoRows ? [firstRowScrollRef, secondRowScrollRef] : [firstRowScrollRef], [shouldShowTwoRows])
16
- };
17
- };
18
-
19
- //#endregion
20
- exports.useCarouselRefs = useCarouselRefs;
@@ -1,19 +0,0 @@
1
- import { useMemo, useRef } from "react";
2
-
3
- //#region src/components/PromptCarousel/hooks/useCarouselRefs.ts
4
- const useCarouselRefs = ({ shouldShowTwoRows }) => {
5
- const firstRowScrollRef = useRef(null);
6
- const firstRowStackRef = useRef(null);
7
- const secondRowScrollRef = useRef(null);
8
- return {
9
- firstRowScrollRef,
10
- firstRowStackRef,
11
- secondRowScrollRef,
12
- blockScrollRef: useRef(null),
13
- blockFirstRowStackRef: useRef(null),
14
- scrollRefs: useMemo(() => shouldShowTwoRows ? [firstRowScrollRef, secondRowScrollRef] : [firstRowScrollRef], [shouldShowTwoRows])
15
- };
16
- };
17
-
18
- //#endregion
19
- export { useCarouselRefs };
@@ -1,18 +0,0 @@
1
-
2
- //#region src/components/PromptCarousel/hooks/useGetScrollProperties.ts
3
- const useGetScrollProperties = () => {
4
- return {
5
- scrollClasses: [
6
- "envive-tw-overflow-x-scroll",
7
- "envive-tw-overflow-y-hidden",
8
- "[&::-webkit-scrollbar]:hidden"
9
- ],
10
- scrollStyle: {
11
- scrollbarWidth: "none",
12
- msOverflowStyle: "none"
13
- }
14
- };
15
- };
16
-
17
- //#endregion
18
- exports.useGetScrollProperties = useGetScrollProperties;
@@ -1,17 +0,0 @@
1
- //#region src/components/PromptCarousel/hooks/useGetScrollProperties.ts
2
- const useGetScrollProperties = () => {
3
- return {
4
- scrollClasses: [
5
- "envive-tw-overflow-x-scroll",
6
- "envive-tw-overflow-y-hidden",
7
- "[&::-webkit-scrollbar]:hidden"
8
- ],
9
- scrollStyle: {
10
- scrollbarWidth: "none",
11
- msOverflowStyle: "none"
12
- }
13
- };
14
- };
15
-
16
- //#endregion
17
- export { useGetScrollProperties };
@@ -1,78 +0,0 @@
1
- const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
2
- const require_PromptCarousel_types_types = require('../types/types.cjs');
3
- let react = require("react");
4
-
5
- //#region src/components/PromptCarousel/hooks/useHorizontalScrollAnimation.ts
6
- function useHorizontalScrollAnimation(scrollContainerRefs, onStopAll, animationSpeed = "none") {
7
- const animationRefs = (0, react.useRef)([]);
8
- const lastTimestampRefs = (0, react.useRef)([]);
9
- const accumulatedScrollRefs = (0, react.useRef)([]);
10
- const isStoppedRef = (0, react.useRef)(false);
11
- (0, react.useEffect)(() => {
12
- if (animationSpeed === require_PromptCarousel_types_types.AnimationSpeed.NONE) return;
13
- const containers = scrollContainerRefs.map((ref) => ref.current).filter((container) => container !== null);
14
- if (containers.length === 0) return;
15
- animationRefs.current = containers.map(() => null);
16
- lastTimestampRefs.current = containers.map(() => null);
17
- accumulatedScrollRefs.current = containers.map(() => 0);
18
- const PIXELS_PER_SECOND = animationSpeed === require_PromptCarousel_types_types.AnimationSpeed.FAST ? 60 : 30;
19
- const cancelAllAnimations = () => {
20
- animationRefs.current.forEach((rafId) => {
21
- if (rafId !== null) cancelAnimationFrame(rafId);
22
- });
23
- };
24
- const createAnimationLoop = (index) => {
25
- const step = (timestamp) => {
26
- if (isStoppedRef.current) return;
27
- const container = containers[index];
28
- if (!container || container.scrollWidth <= container.clientWidth) {
29
- animationRefs.current[index] = requestAnimationFrame(step);
30
- return;
31
- }
32
- if (lastTimestampRefs.current[index] === null) lastTimestampRefs.current[index] = timestamp;
33
- const delta = timestamp - lastTimestampRefs.current[index];
34
- lastTimestampRefs.current[index] = timestamp;
35
- accumulatedScrollRefs.current[index] += PIXELS_PER_SECOND * (delta / 1e3);
36
- const pixelsToScroll = Math.floor(accumulatedScrollRefs.current[index]);
37
- if (pixelsToScroll > 0) {
38
- const newScrollLeft = container.scrollLeft + pixelsToScroll;
39
- const maxScroll = container.scrollWidth - container.clientWidth;
40
- if (Math.ceil(newScrollLeft) >= maxScroll) {
41
- container.scrollLeft = 0;
42
- accumulatedScrollRefs.current[index] = 0;
43
- } else {
44
- container.scrollLeft = newScrollLeft;
45
- accumulatedScrollRefs.current[index] -= pixelsToScroll;
46
- }
47
- }
48
- if (!isStoppedRef.current) animationRefs.current[index] = requestAnimationFrame(step);
49
- };
50
- return step;
51
- };
52
- containers.forEach((container, index) => {
53
- animationRefs.current[index] = requestAnimationFrame(createAnimationLoop(index));
54
- });
55
- const handleMouseEnter = (event) => {
56
- isStoppedRef.current = true;
57
- onStopAll(event.clientX, event.clientY);
58
- cancelAllAnimations();
59
- };
60
- containers.forEach((container) => {
61
- container.addEventListener("mouseenter", handleMouseEnter);
62
- });
63
- return () => {
64
- isStoppedRef.current = true;
65
- cancelAllAnimations();
66
- containers.forEach((container) => {
67
- container.removeEventListener("mouseenter", handleMouseEnter);
68
- });
69
- };
70
- }, [
71
- animationSpeed,
72
- scrollContainerRefs,
73
- onStopAll
74
- ]);
75
- }
76
-
77
- //#endregion
78
- exports.useHorizontalScrollAnimation = useHorizontalScrollAnimation;
@@ -1,77 +0,0 @@
1
- import { AnimationSpeed } from "../types/types.js";
2
- import { useEffect, useRef } from "react";
3
-
4
- //#region src/components/PromptCarousel/hooks/useHorizontalScrollAnimation.ts
5
- function useHorizontalScrollAnimation(scrollContainerRefs, onStopAll, animationSpeed = "none") {
6
- const animationRefs = useRef([]);
7
- const lastTimestampRefs = useRef([]);
8
- const accumulatedScrollRefs = useRef([]);
9
- const isStoppedRef = useRef(false);
10
- useEffect(() => {
11
- if (animationSpeed === AnimationSpeed.NONE) return;
12
- const containers = scrollContainerRefs.map((ref) => ref.current).filter((container) => container !== null);
13
- if (containers.length === 0) return;
14
- animationRefs.current = containers.map(() => null);
15
- lastTimestampRefs.current = containers.map(() => null);
16
- accumulatedScrollRefs.current = containers.map(() => 0);
17
- const PIXELS_PER_SECOND = animationSpeed === AnimationSpeed.FAST ? 60 : 30;
18
- const cancelAllAnimations = () => {
19
- animationRefs.current.forEach((rafId) => {
20
- if (rafId !== null) cancelAnimationFrame(rafId);
21
- });
22
- };
23
- const createAnimationLoop = (index) => {
24
- const step = (timestamp) => {
25
- if (isStoppedRef.current) return;
26
- const container = containers[index];
27
- if (!container || container.scrollWidth <= container.clientWidth) {
28
- animationRefs.current[index] = requestAnimationFrame(step);
29
- return;
30
- }
31
- if (lastTimestampRefs.current[index] === null) lastTimestampRefs.current[index] = timestamp;
32
- const delta = timestamp - lastTimestampRefs.current[index];
33
- lastTimestampRefs.current[index] = timestamp;
34
- accumulatedScrollRefs.current[index] += PIXELS_PER_SECOND * (delta / 1e3);
35
- const pixelsToScroll = Math.floor(accumulatedScrollRefs.current[index]);
36
- if (pixelsToScroll > 0) {
37
- const newScrollLeft = container.scrollLeft + pixelsToScroll;
38
- const maxScroll = container.scrollWidth - container.clientWidth;
39
- if (Math.ceil(newScrollLeft) >= maxScroll) {
40
- container.scrollLeft = 0;
41
- accumulatedScrollRefs.current[index] = 0;
42
- } else {
43
- container.scrollLeft = newScrollLeft;
44
- accumulatedScrollRefs.current[index] -= pixelsToScroll;
45
- }
46
- }
47
- if (!isStoppedRef.current) animationRefs.current[index] = requestAnimationFrame(step);
48
- };
49
- return step;
50
- };
51
- containers.forEach((container, index) => {
52
- animationRefs.current[index] = requestAnimationFrame(createAnimationLoop(index));
53
- });
54
- const handleMouseEnter = (event) => {
55
- isStoppedRef.current = true;
56
- onStopAll(event.clientX, event.clientY);
57
- cancelAllAnimations();
58
- };
59
- containers.forEach((container) => {
60
- container.addEventListener("mouseenter", handleMouseEnter);
61
- });
62
- return () => {
63
- isStoppedRef.current = true;
64
- cancelAllAnimations();
65
- containers.forEach((container) => {
66
- container.removeEventListener("mouseenter", handleMouseEnter);
67
- });
68
- };
69
- }, [
70
- animationSpeed,
71
- scrollContainerRefs,
72
- onStopAll
73
- ]);
74
- }
75
-
76
- //#endregion
77
- export { useHorizontalScrollAnimation };
@@ -1,34 +0,0 @@
1
- import classNames from 'classnames';
2
- import { useGetScrollProperties } from '../hooks/useGetScrollProperties';
3
-
4
- interface BlockScrollContainerProps {
5
- children: React.ReactNode;
6
- scrollRef: React.RefObject<HTMLDivElement>;
7
- className?: string;
8
- 'aria-label'?: string;
9
- 'aria-labelledby'?: string;
10
- }
11
-
12
- export const BlockScrollContainer = ({
13
- children,
14
- scrollRef,
15
- className,
16
- 'aria-label': ariaLabel,
17
- 'aria-labelledby': ariaLabelledBy,
18
- }: BlockScrollContainerProps) => {
19
- const { scrollStyle, scrollClasses } = useGetScrollProperties();
20
-
21
- return (
22
- <div
23
- ref={scrollRef}
24
- className={classNames(...scrollClasses, className)}
25
- style={scrollStyle}
26
- role="group"
27
- aria-label={ariaLabel}
28
- aria-labelledby={ariaLabelledBy}
29
- tabIndex={0}
30
- >
31
- {children}
32
- </div>
33
- );
34
- };