@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.
- package/dist/AnimatedText/AnimatedText.cjs +1 -0
- package/dist/AnimatedText/AnimatedText.js +1 -0
- package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.cts +2 -2
- package/dist/CSSVariablesEditor/CssVariablesEditorComponent.d.ts +2 -2
- package/dist/CSSVariablesEditor/components/CSSVariablesEditor.cjs +1 -1
- package/dist/CSSVariablesEditor/components/CSSVariablesEditor.js +1 -1
- package/dist/Carousel/Carousel.d.cts +2 -2
- package/dist/Carousel/Carousel.d.ts +2 -2
- package/dist/Carousel/components/Container.cjs +1 -1
- package/dist/Carousel/components/Container.js +1 -1
- package/dist/ChatFooter/ChatFooter.d.cts +2 -2
- package/dist/ChatFooter/components/index.d.cts +3 -3
- package/dist/ChatFooter/components/index.d.ts +5 -5
- package/dist/ChatHeader/ChatHeader.d.cts +2 -2
- package/dist/ChatHeader/ChatHeader.d.ts +2 -2
- package/dist/ChatPreview/ChatPreview.cjs +13 -3
- package/dist/ChatPreview/ChatPreview.d.cts +2 -2
- package/dist/ChatPreview/ChatPreview.d.ts +2 -2
- package/dist/ChatPreview/ChatPreview.js +13 -3
- package/dist/ChatPreview/components/Message.cjs +1 -1
- package/dist/ChatPreview/components/Message.js +1 -1
- package/dist/ChatPreview/types/types.d.cts +5 -4
- package/dist/ChatPreview/types/types.d.ts +5 -4
- package/dist/ChatPreviewComparison/ChatPreviewComparison.cjs +13 -3
- package/dist/ChatPreviewComparison/ChatPreviewComparison.d.cts +2 -2
- package/dist/ChatPreviewComparison/ChatPreviewComparison.d.ts +2 -2
- package/dist/ChatPreviewComparison/ChatPreviewComparison.js +13 -3
- package/dist/ChatPreviewComparison/components/Message.cjs +1 -1
- package/dist/ChatPreviewComparison/components/Message.js +1 -1
- package/dist/ChatPreviewComparison/types/types.d.cts +4 -4
- package/dist/ChatPreviewComparison/types/types.d.ts +4 -4
- package/dist/ChatPreviewLoading/ChatPreviewLoading.cjs +1 -1
- package/dist/ChatPreviewLoading/ChatPreviewLoading.d.cts +2 -2
- package/dist/ChatPreviewLoading/ChatPreviewLoading.d.ts +2 -2
- package/dist/ChatPreviewLoading/ChatPreviewLoading.js +1 -1
- package/dist/Container/Container.d.cts +174 -174
- package/dist/Container/Container.d.ts +174 -174
- package/dist/DesignTokens/DesignTokensComponent.cjs +1 -1
- package/dist/DesignTokens/DesignTokensComponent.d.cts +2 -2
- package/dist/DesignTokens/DesignTokensComponent.d.ts +2 -2
- package/dist/DesignTokens/DesignTokensComponent.js +1 -1
- package/dist/DocumentRetrievalCard/DocumentRetrievalCard.d.ts +2 -2
- package/dist/FloatingButton/FloatingButton.d.cts +2 -2
- package/dist/FloatingButton/FloatingButton.d.ts +2 -2
- package/dist/FloatingChat/FloatingChat.cjs +4 -3
- package/dist/FloatingChat/FloatingChat.d.cts +2 -2
- package/dist/FloatingChat/FloatingChat.d.ts +2 -2
- package/dist/FloatingChat/FloatingChat.js +4 -3
- package/dist/FloatingChat/components/AgentMessage.cjs +9 -5
- package/dist/FloatingChat/components/AgentMessage.js +9 -5
- package/dist/FloatingChat/components/ChatMessages.cjs +1 -1
- package/dist/FloatingChat/components/ChatMessages.js +1 -1
- package/dist/FloatingChat/components/Layout.cjs +11 -11
- package/dist/FloatingChat/components/Layout.js +11 -11
- package/dist/FloatingChat/components/ModalSheet.cjs +1 -1
- package/dist/FloatingChat/components/ModalSheet.js +1 -1
- package/dist/FloatingChat/components/ReviewCardsCarousel.cjs +2 -1
- package/dist/FloatingChat/components/ReviewCardsCarousel.js +2 -1
- package/dist/FloatingChat/components/ScrollToBottomButton.cjs +1 -1
- package/dist/FloatingChat/components/ScrollToBottomButton.js +1 -1
- package/dist/Form/Form.cjs +1 -1
- package/dist/Form/Form.js +1 -1
- package/dist/Image/Image.d.cts +2 -2
- package/dist/Image/Image.d.ts +2 -2
- package/dist/ImageGallery/ImageGallery.d.cts +2 -2
- package/dist/ImageGallery/ImageGallery.d.ts +2 -2
- package/dist/ImageGallery/components/NormalLayout.cjs +1 -1
- package/dist/ImageGallery/components/NormalLayout.js +1 -1
- package/dist/MarkdownProcessor/MarkdownProcessor.cjs +1 -1
- package/dist/MarkdownProcessor/MarkdownProcessor.d.cts +2 -2
- package/dist/MarkdownProcessor/MarkdownProcessor.d.ts +2 -2
- package/dist/MarkdownProcessor/MarkdownProcessor.js +1 -1
- package/dist/Message/components/AgentContent.cjs +1 -1
- package/dist/Message/components/AgentContent.js +1 -1
- package/dist/ProductCard/ProductCard.cjs +9 -5
- package/dist/ProductCard/ProductCard.d.cts +2 -2
- package/dist/ProductCard/ProductCard.d.ts +2 -2
- package/dist/ProductCard/ProductCard.js +4 -1
- package/dist/ProductCard/components/Header.cjs +3 -3
- package/dist/ProductCard/components/Header.js +3 -3
- package/dist/PromptButton/PromptButton.d.cts +2 -2
- package/dist/PromptButton/PromptButton.d.ts +2 -2
- package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.cjs +3 -2
- package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.cts +2 -2
- package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.d.ts +2 -2
- package/dist/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.js +3 -2
- package/dist/PromptButtonCarouselWithImage/components/Layout.cjs +8 -3
- package/dist/PromptButtonCarouselWithImage/components/Layout.js +8 -3
- package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.cjs +53 -3
- package/dist/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.js +53 -3
- package/dist/PromptCarousel/PromptCarousel.cjs +70 -33
- package/dist/PromptCarousel/PromptCarousel.d.cts +2 -2
- package/dist/PromptCarousel/PromptCarousel.d.ts +2 -2
- package/dist/PromptCarousel/PromptCarousel.js +71 -34
- package/dist/PromptCarousel/hooks/index.cjs +2 -4
- package/dist/PromptCarousel/hooks/index.js +2 -4
- package/dist/PromptCarousel/hooks/useCoordinatedScrollAnimation.cjs +91 -0
- package/dist/PromptCarousel/hooks/useCoordinatedScrollAnimation.js +90 -0
- package/dist/PromptCarousel/hooks/useScrollSync.cjs +65 -0
- package/dist/PromptCarousel/hooks/useScrollSync.js +64 -0
- package/dist/ReviewCard/ReviewCard.cjs +1 -1
- package/dist/ReviewCard/ReviewCard.d.cts +2 -2
- package/dist/ReviewCard/ReviewCard.d.ts +2 -2
- package/dist/ReviewCard/ReviewCard.js +1 -1
- package/dist/ReviewCard/components/index.d.cts +6 -6
- package/dist/ReviewCard/components/index.d.ts +6 -6
- package/dist/SalesAgentProductCard/SalesAgentProductCard.d.cts +2 -2
- package/dist/SalesAgentProductCard/SalesAgentProductCard.d.ts +2 -2
- package/dist/SalesAgentProductCard/components/index.d.cts +8 -8
- package/dist/SalesAgentProductCard/components/index.d.ts +6 -6
- package/dist/SocialProof/SocialProof.d.cts +2 -2
- package/dist/SocialProof/SocialProof.d.ts +2 -2
- package/dist/SocialProof/components/Headline.cjs +1 -1
- package/dist/SocialProof/components/Headline.js +1 -1
- package/dist/SocialProof/components/LayoutSingle.cjs +1 -1
- package/dist/SocialProof/components/LayoutSingle.js +1 -1
- package/dist/Stack/Stack.d.cts +2 -2
- package/dist/Stack/Stack.d.ts +2 -2
- package/dist/Stack/hooks/useFormatStackChildren.cjs +1 -1
- package/dist/Stack/hooks/useFormatStackChildren.js +1 -1
- package/dist/Title/components/Image.cjs +1 -1
- package/dist/Title/components/Image.js +1 -1
- package/dist/TitledPromptCarousel/TitledPromptCarousel.d.cts +2 -2
- package/dist/TitledPromptCarousel/TitledPromptCarousel.d.ts +2 -2
- package/dist/TypingAnimation/TypingAnimation.cjs +2 -2
- package/dist/TypingAnimation/TypingAnimation.d.ts +2 -2
- package/dist/TypingAnimation/TypingAnimation.js +2 -2
- package/dist/Typography/Typography.d.cts +4 -4
- package/dist/Typography/Typography.d.ts +4 -4
- package/dist/WidgetTextField/WidgetTextField.cjs +11 -6
- package/dist/WidgetTextField/WidgetTextField.d.cts +3 -2
- package/dist/WidgetTextField/WidgetTextField.d.ts +3 -2
- package/dist/WidgetTextField/WidgetTextField.js +7 -2
- package/dist/WidgetTextField/components/FakeTextInput.cjs +2 -2
- package/dist/WidgetTextField/components/FakeTextInput.js +2 -2
- package/dist/WidgetTextField/components/Icon.cjs +10 -9
- package/dist/WidgetTextField/components/Icon.js +10 -9
- package/dist/WidgetTextField/components/Skeleton.cjs +1 -1
- package/dist/WidgetTextField/components/Skeleton.js +1 -1
- package/dist/WidgetTextField/types/types.d.cts +3 -0
- package/dist/WidgetTextField/types/types.d.ts +3 -0
- package/dist/WidgetWrapper/WidgetWrapper.d.cts +2 -2
- package/dist/WidgetWrapper/WidgetWrapper.d.ts +2 -2
- package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.cts +2 -2
- package/dist/WidgetWrapperWithTitle/WidgetWrapperWithTitle.d.ts +2 -2
- package/dist/styles.css +1 -1
- package/dist/utils/CustomIcon.cjs +1 -1
- package/dist/utils/CustomIcon.js +1 -1
- package/dist/utils/useDragToScroll.cjs +68 -0
- package/dist/utils/useDragToScroll.js +67 -0
- package/package.json +1 -1
- package/src/components/AnimatedText/AnimatedText.tsx +2 -0
- package/src/components/ChatPreview/ChatPreview.tsx +20 -3
- package/src/components/ChatPreview/types/types.ts +5 -4
- package/src/components/ChatPreviewComparison/ChatPreviewComparison.tsx +20 -3
- package/src/components/ChatPreviewComparison/types/types.ts +4 -4
- package/src/components/FloatingChat/FloatingChat.tsx +3 -2
- package/src/components/FloatingChat/components/AgentMessage.tsx +1 -0
- package/src/components/FloatingChat/components/Layout.tsx +7 -2
- package/src/components/FloatingChat/components/ReviewCardsCarousel.tsx +3 -0
- package/src/components/ProductCard/ProductCard.tsx +12 -1
- package/src/components/ProductCard/components/Header.tsx +10 -8
- package/src/components/PromptButtonCarouselWithImage/PromptButtonCarouselWithImage.tsx +6 -3
- package/src/components/PromptButtonCarouselWithImage/components/Layout.tsx +13 -4
- package/src/components/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.tsx +63 -20
- package/src/components/PromptCarousel/PromptCarousel.tsx +88 -51
- package/src/components/PromptCarousel/hooks/index.ts +2 -4
- package/src/components/PromptCarousel/hooks/useCoordinatedScrollAnimation.ts +115 -0
- package/src/components/PromptCarousel/hooks/useHorizontalScrollAnimation.ts +71 -78
- package/src/components/PromptCarousel/hooks/useScrollSync.ts +83 -0
- package/src/components/WidgetTextField/WidgetTextField.tsx +9 -1
- package/src/components/WidgetTextField/components/FakeTextInput.tsx +6 -2
- package/src/components/WidgetTextField/components/Icon.tsx +43 -9
- package/src/components/WidgetTextField/types/types.ts +3 -0
- package/src/components/utils/useDragToScroll.ts +83 -0
- package/dist/PromptCarousel/components/BlockScrollContainer.cjs +0 -23
- package/dist/PromptCarousel/components/BlockScrollContainer.js +0 -21
- package/dist/PromptCarousel/components/ButtonContainerRow.cjs +0 -34
- package/dist/PromptCarousel/components/ButtonContainerRow.js +0 -32
- package/dist/PromptCarousel/components/CarouselContentWithBlockScroll.cjs +0 -45
- package/dist/PromptCarousel/components/CarouselContentWithBlockScroll.js +0 -44
- package/dist/PromptCarousel/components/CarouselContentWithRowScroll.cjs +0 -33
- package/dist/PromptCarousel/components/CarouselContentWithRowScroll.js +0 -32
- package/dist/PromptCarousel/components/index.cjs +0 -13
- package/dist/PromptCarousel/components/index.js +0 -13
- package/dist/PromptCarousel/hooks/useButtonScrollPosition.cjs +0 -79
- package/dist/PromptCarousel/hooks/useButtonScrollPosition.js +0 -78
- package/dist/PromptCarousel/hooks/useCarouselAnimation.cjs +0 -23
- package/dist/PromptCarousel/hooks/useCarouselAnimation.js +0 -22
- package/dist/PromptCarousel/hooks/useCarouselRefs.cjs +0 -20
- package/dist/PromptCarousel/hooks/useCarouselRefs.js +0 -19
- package/dist/PromptCarousel/hooks/useGetScrollProperties.cjs +0 -18
- package/dist/PromptCarousel/hooks/useGetScrollProperties.js +0 -17
- package/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.cjs +0 -78
- package/dist/PromptCarousel/hooks/useHorizontalScrollAnimation.js +0 -77
- package/src/components/PromptCarousel/components/BlockScrollContainer.tsx +0 -34
- package/src/components/PromptCarousel/components/ButtonContainerRow.tsx +0 -46
- package/src/components/PromptCarousel/components/CarouselContentWithBlockScroll.tsx +0 -83
- package/src/components/PromptCarousel/components/CarouselContentWithRowScroll.tsx +0 -71
- package/src/components/PromptCarousel/components/index.ts +0 -9
- package/src/components/PromptCarousel/hooks/useButtonScrollPosition.ts +0 -128
- package/src/components/PromptCarousel/hooks/useCarouselAnimation.ts +0 -47
- package/src/components/PromptCarousel/hooks/useCarouselRefs.ts +0 -27
|
@@ -5,8 +5,9 @@ const require_useCheckIsMobile = require('../../utils/useCheckIsMobile.cjs');
|
|
|
5
5
|
const require_useGetContentSize = require('../../utils/useGetContentSize.cjs');
|
|
6
6
|
const require_functions = require('../../SocialProof/utils/functions.cjs');
|
|
7
7
|
const require_useHorizontalWheelScroll = require('../../utils/useHorizontalWheelScroll.cjs');
|
|
8
|
-
|
|
8
|
+
const require_useDragToScroll = require('../../utils/useDragToScroll.cjs');
|
|
9
9
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
10
|
+
let react = require("react");
|
|
10
11
|
let classnames = require("classnames");
|
|
11
12
|
classnames = require_rolldown_runtime.__toESM(classnames);
|
|
12
13
|
|
|
@@ -15,6 +16,10 @@ const Layout = ({ id, testId, className, style, title, promptButtons, image, tex
|
|
|
15
16
|
const { isMobile } = require_useCheckIsMobile.useCheckIsMobile();
|
|
16
17
|
const { height, ref: contentSizeRef } = require_useGetContentSize.useGetContentSize({ heightDefault: 245 });
|
|
17
18
|
const wheelScrollRef = require_useHorizontalWheelScroll.useHorizontalWheelScroll(!isMobile);
|
|
19
|
+
require_useDragToScroll.useDragToScroll(wheelScrollRef, {
|
|
20
|
+
direction: isMobile ? "y" : "x",
|
|
21
|
+
isEnabled: true
|
|
22
|
+
});
|
|
18
23
|
const combinedRef = (node) => {
|
|
19
24
|
contentSizeRef.current = node;
|
|
20
25
|
wheelScrollRef.current = node;
|
|
@@ -41,10 +46,10 @@ const Layout = ({ id, testId, className, style, title, promptButtons, image, tex
|
|
|
41
46
|
scrollbarWidth: "none"
|
|
42
47
|
},
|
|
43
48
|
gap: 4,
|
|
44
|
-
className: (0, classnames.default)("[&::-webkit-scrollbar]:hidden envive-tw-h-fit
|
|
49
|
+
className: (0, classnames.default)("[&::-webkit-scrollbar]:hidden envive-tw-h-fit", isMobile ? "envive-tw-w-full envive-tw-overflow-y-auto" : "envive-tw-overflow-x-auto", isMobile || hideTextField ? "envive-tw-w-full" : "envive-tw-max-w-[300px] md:envive-tw-max-w-[450px] lg:envive-tw-max-w-[900px]"),
|
|
45
50
|
children: promptButtons
|
|
46
51
|
})]
|
|
47
|
-
}), !hideTextField && (0, react.cloneElement)(textField, { className: isMobile ? "envive-tw-w-full" : "envive-tw-min-w-[276px]" })]
|
|
52
|
+
}), !hideTextField && (0, react.isValidElement)(textField) && (0, react.cloneElement)(textField, { className: (0, classnames.default)(isMobile ? "envive-tw-w-full" : "envive-tw-min-w-[276px]", textField.props.className) })]
|
|
48
53
|
})]
|
|
49
54
|
});
|
|
50
55
|
};
|
|
@@ -4,8 +4,9 @@ import { useCheckIsMobile } from "../../utils/useCheckIsMobile.js";
|
|
|
4
4
|
import { useGetContentSize } from "../../utils/useGetContentSize.js";
|
|
5
5
|
import { calculateWidthImageGallery } from "../../SocialProof/utils/functions.js";
|
|
6
6
|
import { useHorizontalWheelScroll } from "../../utils/useHorizontalWheelScroll.js";
|
|
7
|
-
import {
|
|
7
|
+
import { useDragToScroll } from "../../utils/useDragToScroll.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { cloneElement, isValidElement } from "react";
|
|
9
10
|
import classNames from "classnames";
|
|
10
11
|
|
|
11
12
|
//#region src/components/PromptButtonCarouselWithImage/components/Layout.tsx
|
|
@@ -13,6 +14,10 @@ const Layout = ({ id, testId, className, style, title, promptButtons, image, tex
|
|
|
13
14
|
const { isMobile } = useCheckIsMobile();
|
|
14
15
|
const { height, ref: contentSizeRef } = useGetContentSize({ heightDefault: 245 });
|
|
15
16
|
const wheelScrollRef = useHorizontalWheelScroll(!isMobile);
|
|
17
|
+
useDragToScroll(wheelScrollRef, {
|
|
18
|
+
direction: isMobile ? "y" : "x",
|
|
19
|
+
isEnabled: true
|
|
20
|
+
});
|
|
16
21
|
const combinedRef = (node) => {
|
|
17
22
|
contentSizeRef.current = node;
|
|
18
23
|
wheelScrollRef.current = node;
|
|
@@ -39,10 +44,10 @@ const Layout = ({ id, testId, className, style, title, promptButtons, image, tex
|
|
|
39
44
|
scrollbarWidth: "none"
|
|
40
45
|
},
|
|
41
46
|
gap: 4,
|
|
42
|
-
className: classNames("[&::-webkit-scrollbar]:hidden envive-tw-h-fit
|
|
47
|
+
className: classNames("[&::-webkit-scrollbar]:hidden envive-tw-h-fit", isMobile ? "envive-tw-w-full envive-tw-overflow-y-auto" : "envive-tw-overflow-x-auto", isMobile || hideTextField ? "envive-tw-w-full" : "envive-tw-max-w-[300px] md:envive-tw-max-w-[450px] lg:envive-tw-max-w-[900px]"),
|
|
43
48
|
children: promptButtons
|
|
44
49
|
})]
|
|
45
|
-
}), !hideTextField && cloneElement(textField, { className: isMobile ? "envive-tw-w-full" : "envive-tw-min-w-[276px]" })]
|
|
50
|
+
}), !hideTextField && isValidElement(textField) && cloneElement(textField, { className: classNames(isMobile ? "envive-tw-w-full" : "envive-tw-min-w-[276px]", textField.props.className) })]
|
|
46
51
|
})]
|
|
47
52
|
});
|
|
48
53
|
};
|
|
@@ -1,17 +1,48 @@
|
|
|
1
1
|
const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs');
|
|
2
2
|
const require_resolveTheme = require('../../utils/resolveTheme.cjs');
|
|
3
|
+
const require_Stack = require('../../Stack/Stack.cjs');
|
|
4
|
+
require('../../Stack/index.cjs');
|
|
3
5
|
const require_PromptButton = require('../../PromptButton/PromptButton.cjs');
|
|
4
6
|
require('../../PromptButton/index.cjs');
|
|
7
|
+
const require_useCheckIsMobile = require('../../utils/useCheckIsMobile.cjs');
|
|
5
8
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
9
|
|
|
7
10
|
//#region src/components/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.tsx
|
|
11
|
+
function distributeInThreeRows(items) {
|
|
12
|
+
const n = items.length;
|
|
13
|
+
const perRow = [
|
|
14
|
+
1,
|
|
15
|
+
1,
|
|
16
|
+
1
|
|
17
|
+
];
|
|
18
|
+
let remaining = Math.max(0, n - 3);
|
|
19
|
+
let idx = 0;
|
|
20
|
+
while (remaining > 0) {
|
|
21
|
+
perRow[idx % 3] += 1;
|
|
22
|
+
remaining -= 1;
|
|
23
|
+
idx += 1;
|
|
24
|
+
}
|
|
25
|
+
let start = 0;
|
|
26
|
+
const [row0, row1, row2] = perRow.map((count) => {
|
|
27
|
+
const row = items.slice(start, start + count);
|
|
28
|
+
start += count;
|
|
29
|
+
return row;
|
|
30
|
+
});
|
|
31
|
+
return [
|
|
32
|
+
row0,
|
|
33
|
+
row1,
|
|
34
|
+
row2
|
|
35
|
+
];
|
|
36
|
+
}
|
|
8
37
|
const PromptButtonsCarousel = ({ theme, isLoading, promptButtonsTexts, promptButtonType, handlePromptButtonClick }) => {
|
|
9
38
|
const finalTheme = require_resolveTheme.resolveTheme(theme);
|
|
10
|
-
|
|
39
|
+
const { isMobile } = require_useCheckIsMobile.useCheckIsMobile();
|
|
40
|
+
const promptButtonsTextsFinal = isLoading ? [
|
|
11
41
|
"Loading 1...",
|
|
12
42
|
"Loading 2...",
|
|
13
43
|
"Loading 3..."
|
|
14
|
-
] : promptButtonsTexts
|
|
44
|
+
] : promptButtonsTexts || [];
|
|
45
|
+
const renderButton = (text) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
15
46
|
className: "envive-tw-flex-shrink-0",
|
|
16
47
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PromptButton.PromptButton, {
|
|
17
48
|
id: `prompt-button-${text}`,
|
|
@@ -22,7 +53,26 @@ const PromptButtonsCarousel = ({ theme, isLoading, promptButtonsTexts, promptBut
|
|
|
22
53
|
theme: finalTheme,
|
|
23
54
|
onClick: () => handlePromptButtonClick(text)
|
|
24
55
|
})
|
|
25
|
-
}, text)
|
|
56
|
+
}, text);
|
|
57
|
+
if (isMobile) {
|
|
58
|
+
const [row0, row1, row2] = distributeInThreeRows(promptButtonsTextsFinal);
|
|
59
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Stack.Stack, {
|
|
60
|
+
direction: "column",
|
|
61
|
+
gap: "4",
|
|
62
|
+
className: "envive-tw-w-full",
|
|
63
|
+
children: [
|
|
64
|
+
row0,
|
|
65
|
+
row1,
|
|
66
|
+
row2
|
|
67
|
+
].filter((row) => row.length > 0).map((row) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Stack.Stack, {
|
|
68
|
+
direction: "row",
|
|
69
|
+
gap: "4",
|
|
70
|
+
className: "envive-tw-w-full envive-tw-flex-nowrap",
|
|
71
|
+
children: row.map(renderButton)
|
|
72
|
+
}, row.join("-")))
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(react_jsx_runtime.Fragment, { children: promptButtonsTextsFinal.map(renderButton) });
|
|
26
76
|
};
|
|
27
77
|
|
|
28
78
|
//#endregion
|
|
@@ -1,16 +1,47 @@
|
|
|
1
1
|
import { resolveTheme } from "../../utils/resolveTheme.js";
|
|
2
|
+
import { Stack } from "../../Stack/Stack.js";
|
|
3
|
+
import "../../Stack/index.js";
|
|
2
4
|
import { PromptButton } from "../../PromptButton/PromptButton.js";
|
|
3
5
|
import "../../PromptButton/index.js";
|
|
6
|
+
import { useCheckIsMobile } from "../../utils/useCheckIsMobile.js";
|
|
4
7
|
import { Fragment, jsx } from "react/jsx-runtime";
|
|
5
8
|
|
|
6
9
|
//#region src/components/PromptButtonCarouselWithImage/components/PromptButtonsCarousel.tsx
|
|
10
|
+
function distributeInThreeRows(items) {
|
|
11
|
+
const n = items.length;
|
|
12
|
+
const perRow = [
|
|
13
|
+
1,
|
|
14
|
+
1,
|
|
15
|
+
1
|
|
16
|
+
];
|
|
17
|
+
let remaining = Math.max(0, n - 3);
|
|
18
|
+
let idx = 0;
|
|
19
|
+
while (remaining > 0) {
|
|
20
|
+
perRow[idx % 3] += 1;
|
|
21
|
+
remaining -= 1;
|
|
22
|
+
idx += 1;
|
|
23
|
+
}
|
|
24
|
+
let start = 0;
|
|
25
|
+
const [row0, row1, row2] = perRow.map((count) => {
|
|
26
|
+
const row = items.slice(start, start + count);
|
|
27
|
+
start += count;
|
|
28
|
+
return row;
|
|
29
|
+
});
|
|
30
|
+
return [
|
|
31
|
+
row0,
|
|
32
|
+
row1,
|
|
33
|
+
row2
|
|
34
|
+
];
|
|
35
|
+
}
|
|
7
36
|
const PromptButtonsCarousel = ({ theme, isLoading, promptButtonsTexts, promptButtonType, handlePromptButtonClick }) => {
|
|
8
37
|
const finalTheme = resolveTheme(theme);
|
|
9
|
-
|
|
38
|
+
const { isMobile } = useCheckIsMobile();
|
|
39
|
+
const promptButtonsTextsFinal = isLoading ? [
|
|
10
40
|
"Loading 1...",
|
|
11
41
|
"Loading 2...",
|
|
12
42
|
"Loading 3..."
|
|
13
|
-
] : promptButtonsTexts
|
|
43
|
+
] : promptButtonsTexts || [];
|
|
44
|
+
const renderButton = (text) => /* @__PURE__ */ jsx("div", {
|
|
14
45
|
className: "envive-tw-flex-shrink-0",
|
|
15
46
|
children: /* @__PURE__ */ jsx(PromptButton, {
|
|
16
47
|
id: `prompt-button-${text}`,
|
|
@@ -21,7 +52,26 @@ const PromptButtonsCarousel = ({ theme, isLoading, promptButtonsTexts, promptBut
|
|
|
21
52
|
theme: finalTheme,
|
|
22
53
|
onClick: () => handlePromptButtonClick(text)
|
|
23
54
|
})
|
|
24
|
-
}, text)
|
|
55
|
+
}, text);
|
|
56
|
+
if (isMobile) {
|
|
57
|
+
const [row0, row1, row2] = distributeInThreeRows(promptButtonsTextsFinal);
|
|
58
|
+
return /* @__PURE__ */ jsx(Stack, {
|
|
59
|
+
direction: "column",
|
|
60
|
+
gap: "4",
|
|
61
|
+
className: "envive-tw-w-full",
|
|
62
|
+
children: [
|
|
63
|
+
row0,
|
|
64
|
+
row1,
|
|
65
|
+
row2
|
|
66
|
+
].filter((row) => row.length > 0).map((row) => /* @__PURE__ */ jsx(Stack, {
|
|
67
|
+
direction: "row",
|
|
68
|
+
gap: "4",
|
|
69
|
+
className: "envive-tw-w-full envive-tw-flex-nowrap",
|
|
70
|
+
children: row.map(renderButton)
|
|
71
|
+
}, row.join("-")))
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return /* @__PURE__ */ jsx(Fragment, { children: promptButtonsTextsFinal.map(renderButton) });
|
|
25
75
|
};
|
|
26
76
|
|
|
27
77
|
//#endregion
|
|
@@ -3,19 +3,21 @@ const require_theme = require('../packages/components-v3/tokens/theme/theme.cjs'
|
|
|
3
3
|
const require_resolveTheme = require('../utils/resolveTheme.cjs');
|
|
4
4
|
const require_Container = require('../Container/Container.cjs');
|
|
5
5
|
require('../Container/index.cjs');
|
|
6
|
+
const require_Stack = require('../Stack/Stack.cjs');
|
|
7
|
+
require('../Stack/index.cjs');
|
|
6
8
|
const require_PromptButton_types_index = require('../PromptButton/types/index.cjs');
|
|
7
9
|
const require_PromptButton = require('../PromptButton/PromptButton.cjs');
|
|
8
10
|
require('../PromptButton/index.cjs');
|
|
9
11
|
const require_useCheckIsMobile = require('../utils/useCheckIsMobile.cjs');
|
|
10
12
|
const require_PromptCarousel_types_types = require('./types/types.cjs');
|
|
11
|
-
const require_useCarouselRefs = require('./hooks/useCarouselRefs.cjs');
|
|
12
13
|
const require_useCarouselButtons = require('./hooks/useCarouselButtons.cjs');
|
|
13
|
-
const
|
|
14
|
+
const require_useCoordinatedScrollAnimation = require('./hooks/useCoordinatedScrollAnimation.cjs');
|
|
15
|
+
const require_useScrollSync = require('./hooks/useScrollSync.cjs');
|
|
14
16
|
require('./hooks/index.cjs');
|
|
15
|
-
const require_index$1 = require('./components/index.cjs');
|
|
16
17
|
const require_functions = require('./utils/functions.cjs');
|
|
17
|
-
let react = require("react");
|
|
18
18
|
let react_jsx_runtime = require("react/jsx-runtime");
|
|
19
|
+
let react = require("react");
|
|
20
|
+
let react_indiana_drag_scroll = require("react-indiana-drag-scroll");
|
|
19
21
|
|
|
20
22
|
//#region src/components/PromptCarousel/PromptCarousel.tsx
|
|
21
23
|
const PromptCarousel = ({ id, theme = require_theme.Theme.GLOBAL_CUSTOM, testId, className, style, isLoading = false, promptButtonTexts, promptButtonType = require_PromptButton_types_index.PromptButtonVariant.LIGHT, boldFirstButton = false, handleButtonClick, promptCarouselRows = require_PromptCarousel_types_types.PromptCarouselRows.ALWAYS_ONE, animationSpeed = require_PromptCarousel_types_types.AnimationSpeed.NONE, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, role = "region" }) => {
|
|
@@ -23,21 +25,34 @@ const PromptCarousel = ({ id, theme = require_theme.Theme.GLOBAL_CUSTOM, testId,
|
|
|
23
25
|
const isAnimatedValue = require_functions.isAnimated(animationSpeed);
|
|
24
26
|
const shouldShowTwoRowsValue = require_functions.shouldShowTwoRows(promptCarouselRows, isMobile);
|
|
25
27
|
const finalTheme = require_resolveTheme.resolveTheme(theme);
|
|
26
|
-
const {
|
|
27
|
-
const {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
const { ref: dragScrollRef1 } = (0, react_indiana_drag_scroll.useScrollContainer)();
|
|
29
|
+
const { ref: dragScrollRef2 } = (0, react_indiana_drag_scroll.useScrollContainer)();
|
|
30
|
+
const scrollContainerRef1 = (0, react.useRef)(null);
|
|
31
|
+
const scrollContainerRef2 = (0, react.useRef)(null);
|
|
32
|
+
const setRef1 = (0, react.useCallback)((el) => {
|
|
33
|
+
if (typeof dragScrollRef1 === "function") dragScrollRef1(el);
|
|
34
|
+
scrollContainerRef1.current = el;
|
|
35
|
+
}, [dragScrollRef1]);
|
|
36
|
+
const setRef2 = (0, react.useCallback)((el) => {
|
|
37
|
+
if (typeof dragScrollRef2 === "function") dragScrollRef2(el);
|
|
38
|
+
scrollContainerRef2.current = el;
|
|
39
|
+
}, [dragScrollRef2]);
|
|
40
|
+
const scrollContainerRefs = shouldShowTwoRowsValue ? [scrollContainerRef1, scrollContainerRef2] : [scrollContainerRef1];
|
|
41
|
+
require_useCoordinatedScrollAnimation.useCoordinatedScrollAnimation({
|
|
42
|
+
scrollContainerRefs,
|
|
43
|
+
animationSpeed
|
|
44
|
+
});
|
|
45
|
+
require_useScrollSync.useScrollSync({
|
|
46
|
+
scrollContainerRefs,
|
|
47
|
+
enabled: true
|
|
33
48
|
});
|
|
34
49
|
const { visibleButtonsFirstRow, visibleButtonsSecondRow } = require_useCarouselButtons.useCarouselButtons({
|
|
35
50
|
promptButtonTexts,
|
|
36
51
|
shouldShowTwoRows: shouldShowTwoRowsValue
|
|
37
52
|
});
|
|
38
|
-
const renderButton = (0, react.useCallback)((text, index,
|
|
53
|
+
const renderButton = (0, react.useCallback)((text, index, duplicateIndex = 0) => {
|
|
39
54
|
const textWithoutSpaces = require_functions.removeSpaces(text);
|
|
40
|
-
const buttonId =
|
|
55
|
+
const buttonId = duplicateIndex > 0 ? `${id}-${textWithoutSpaces}-duplicate-${duplicateIndex}` : `${id}-${textWithoutSpaces}`;
|
|
41
56
|
const buttonKey = `button-${buttonId}`;
|
|
42
57
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_PromptButton.PromptButton, {
|
|
43
58
|
id: buttonId,
|
|
@@ -45,7 +60,7 @@ const PromptCarousel = ({ id, theme = require_theme.Theme.GLOBAL_CUSTOM, testId,
|
|
|
45
60
|
variant: promptButtonType,
|
|
46
61
|
theme: finalTheme,
|
|
47
62
|
isLoading,
|
|
48
|
-
bold: boldFirstButton && index === 0,
|
|
63
|
+
bold: boldFirstButton && index === 0 && duplicateIndex === 0,
|
|
49
64
|
onClick: () => handleButtonClick?.(text)
|
|
50
65
|
}, buttonKey);
|
|
51
66
|
}, [
|
|
@@ -56,6 +71,11 @@ const PromptCarousel = ({ id, theme = require_theme.Theme.GLOBAL_CUSTOM, testId,
|
|
|
56
71
|
isLoading,
|
|
57
72
|
finalTheme
|
|
58
73
|
]);
|
|
74
|
+
const renderButtonRow = (buttons, startIndex) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [
|
|
75
|
+
buttons.map((text, i) => renderButton(text, startIndex + i, 0)),
|
|
76
|
+
isAnimatedValue && buttons.map((text, i) => renderButton(text, startIndex + i, 1)),
|
|
77
|
+
isAnimatedValue && buttons.map((text, i) => renderButton(text, startIndex + i, 2))
|
|
78
|
+
] });
|
|
59
79
|
const defaultAriaLabel = ariaLabel || "Prompt carousel with suggested actions";
|
|
60
80
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Container.Container, {
|
|
61
81
|
id,
|
|
@@ -68,25 +88,42 @@ const PromptCarousel = ({ id, theme = require_theme.Theme.GLOBAL_CUSTOM, testId,
|
|
|
68
88
|
"aria-describedby": ariaDescribedBy,
|
|
69
89
|
"aria-busy": isLoading,
|
|
70
90
|
"aria-live": isAnimatedValue && !isLoading ? "polite" : void 0,
|
|
71
|
-
children:
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
91
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(require_Stack.Stack, {
|
|
92
|
+
direction: "column",
|
|
93
|
+
gap: "2",
|
|
94
|
+
children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
95
|
+
className: "envive-tw-no-scrollbar envive-tw-relative envive-tw-w-full envive-tw-overflow-x-scroll",
|
|
96
|
+
ref: setRef1,
|
|
97
|
+
style: {
|
|
98
|
+
cursor: "grab",
|
|
99
|
+
userSelect: "none"
|
|
100
|
+
},
|
|
101
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
102
|
+
className: "envive-tw-relative envive-tw-inline-block envive-tw-whitespace-nowrap",
|
|
103
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Stack.Stack, {
|
|
104
|
+
direction: "row",
|
|
105
|
+
gap: "2",
|
|
106
|
+
className: "envive-tw-pl-0 envive-tw-h-full envive-tw-items-center",
|
|
107
|
+
children: renderButtonRow(visibleButtonsFirstRow, 0)
|
|
108
|
+
})
|
|
109
|
+
})
|
|
110
|
+
}), shouldShowTwoRowsValue && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
111
|
+
className: "envive-tw-no-scrollbar envive-tw-relative envive-tw-w-full envive-tw-overflow-x-scroll",
|
|
112
|
+
ref: setRef2,
|
|
113
|
+
style: {
|
|
114
|
+
cursor: "grab",
|
|
115
|
+
userSelect: "none"
|
|
116
|
+
},
|
|
117
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
118
|
+
className: "envive-tw-relative envive-tw-inline-block envive-tw-whitespace-nowrap",
|
|
119
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Stack.Stack, {
|
|
120
|
+
direction: "row",
|
|
121
|
+
gap: "2",
|
|
122
|
+
className: "envive-tw-pl-0 envive-tw-h-full envive-tw-items-center",
|
|
123
|
+
children: renderButtonRow(visibleButtonsSecondRow, visibleButtonsFirstRow.length)
|
|
124
|
+
})
|
|
125
|
+
})
|
|
126
|
+
})]
|
|
90
127
|
})
|
|
91
128
|
});
|
|
92
129
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PromptCarouselProps } from "./types/types.cjs";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime23 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/PromptCarousel/PromptCarousel.d.ts
|
|
5
5
|
declare const PromptCarousel: ({
|
|
@@ -19,6 +19,6 @@ declare const PromptCarousel: ({
|
|
|
19
19
|
"aria-labelledby": ariaLabelledBy,
|
|
20
20
|
"aria-describedby": ariaDescribedBy,
|
|
21
21
|
role
|
|
22
|
-
}: PromptCarouselProps) =>
|
|
22
|
+
}: PromptCarouselProps) => react_jsx_runtime23.JSX.Element;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { PromptCarousel };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PromptCarouselProps } from "./types/types.js";
|
|
2
|
-
import * as
|
|
2
|
+
import * as react_jsx_runtime20 from "react/jsx-runtime";
|
|
3
3
|
|
|
4
4
|
//#region src/components/PromptCarousel/PromptCarousel.d.ts
|
|
5
5
|
declare const PromptCarousel: ({
|
|
@@ -19,6 +19,6 @@ declare const PromptCarousel: ({
|
|
|
19
19
|
"aria-labelledby": ariaLabelledBy,
|
|
20
20
|
"aria-describedby": ariaDescribedBy,
|
|
21
21
|
role
|
|
22
|
-
}: PromptCarouselProps) =>
|
|
22
|
+
}: PromptCarouselProps) => react_jsx_runtime20.JSX.Element;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { PromptCarousel };
|
|
@@ -2,19 +2,21 @@ import { Theme } from "../packages/components-v3/tokens/theme/theme.js";
|
|
|
2
2
|
import { resolveTheme } from "../utils/resolveTheme.js";
|
|
3
3
|
import { Container } from "../Container/Container.js";
|
|
4
4
|
import "../Container/index.js";
|
|
5
|
+
import { Stack } from "../Stack/Stack.js";
|
|
6
|
+
import "../Stack/index.js";
|
|
5
7
|
import { PromptButtonVariant } from "../PromptButton/types/index.js";
|
|
6
8
|
import { PromptButton } from "../PromptButton/PromptButton.js";
|
|
7
9
|
import "../PromptButton/index.js";
|
|
8
10
|
import { useCheckIsMobile } from "../utils/useCheckIsMobile.js";
|
|
9
11
|
import { AnimationSpeed, PromptCarouselRows } from "./types/types.js";
|
|
10
|
-
import { useCarouselRefs } from "./hooks/useCarouselRefs.js";
|
|
11
12
|
import { useCarouselButtons } from "./hooks/useCarouselButtons.js";
|
|
12
|
-
import {
|
|
13
|
+
import { useCoordinatedScrollAnimation } from "./hooks/useCoordinatedScrollAnimation.js";
|
|
14
|
+
import { useScrollSync } from "./hooks/useScrollSync.js";
|
|
13
15
|
import "./hooks/index.js";
|
|
14
|
-
import { PromptCarouselComponents } from "./components/index.js";
|
|
15
16
|
import { isAnimated, removeSpaces, shouldShowTwoRows } from "./utils/functions.js";
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
17
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
+
import { useCallback, useRef } from "react";
|
|
19
|
+
import { useScrollContainer } from "react-indiana-drag-scroll";
|
|
18
20
|
|
|
19
21
|
//#region src/components/PromptCarousel/PromptCarousel.tsx
|
|
20
22
|
const PromptCarousel = ({ id, theme = Theme.GLOBAL_CUSTOM, testId, className, style, isLoading = false, promptButtonTexts, promptButtonType = PromptButtonVariant.LIGHT, boldFirstButton = false, handleButtonClick, promptCarouselRows = PromptCarouselRows.ALWAYS_ONE, animationSpeed = AnimationSpeed.NONE, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, role = "region" }) => {
|
|
@@ -22,21 +24,34 @@ const PromptCarousel = ({ id, theme = Theme.GLOBAL_CUSTOM, testId, className, st
|
|
|
22
24
|
const isAnimatedValue = isAnimated(animationSpeed);
|
|
23
25
|
const shouldShowTwoRowsValue = shouldShowTwoRows(promptCarouselRows, isMobile);
|
|
24
26
|
const finalTheme = resolveTheme(theme);
|
|
25
|
-
const {
|
|
26
|
-
const {
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
const { ref: dragScrollRef1 } = useScrollContainer();
|
|
28
|
+
const { ref: dragScrollRef2 } = useScrollContainer();
|
|
29
|
+
const scrollContainerRef1 = useRef(null);
|
|
30
|
+
const scrollContainerRef2 = useRef(null);
|
|
31
|
+
const setRef1 = useCallback((el) => {
|
|
32
|
+
if (typeof dragScrollRef1 === "function") dragScrollRef1(el);
|
|
33
|
+
scrollContainerRef1.current = el;
|
|
34
|
+
}, [dragScrollRef1]);
|
|
35
|
+
const setRef2 = useCallback((el) => {
|
|
36
|
+
if (typeof dragScrollRef2 === "function") dragScrollRef2(el);
|
|
37
|
+
scrollContainerRef2.current = el;
|
|
38
|
+
}, [dragScrollRef2]);
|
|
39
|
+
const scrollContainerRefs = shouldShowTwoRowsValue ? [scrollContainerRef1, scrollContainerRef2] : [scrollContainerRef1];
|
|
40
|
+
useCoordinatedScrollAnimation({
|
|
41
|
+
scrollContainerRefs,
|
|
42
|
+
animationSpeed
|
|
43
|
+
});
|
|
44
|
+
useScrollSync({
|
|
45
|
+
scrollContainerRefs,
|
|
46
|
+
enabled: true
|
|
32
47
|
});
|
|
33
48
|
const { visibleButtonsFirstRow, visibleButtonsSecondRow } = useCarouselButtons({
|
|
34
49
|
promptButtonTexts,
|
|
35
50
|
shouldShowTwoRows: shouldShowTwoRowsValue
|
|
36
51
|
});
|
|
37
|
-
const renderButton = useCallback((text, index,
|
|
52
|
+
const renderButton = useCallback((text, index, duplicateIndex = 0) => {
|
|
38
53
|
const textWithoutSpaces = removeSpaces(text);
|
|
39
|
-
const buttonId =
|
|
54
|
+
const buttonId = duplicateIndex > 0 ? `${id}-${textWithoutSpaces}-duplicate-${duplicateIndex}` : `${id}-${textWithoutSpaces}`;
|
|
40
55
|
const buttonKey = `button-${buttonId}`;
|
|
41
56
|
return /* @__PURE__ */ jsx(PromptButton, {
|
|
42
57
|
id: buttonId,
|
|
@@ -44,7 +59,7 @@ const PromptCarousel = ({ id, theme = Theme.GLOBAL_CUSTOM, testId, className, st
|
|
|
44
59
|
variant: promptButtonType,
|
|
45
60
|
theme: finalTheme,
|
|
46
61
|
isLoading,
|
|
47
|
-
bold: boldFirstButton && index === 0,
|
|
62
|
+
bold: boldFirstButton && index === 0 && duplicateIndex === 0,
|
|
48
63
|
onClick: () => handleButtonClick?.(text)
|
|
49
64
|
}, buttonKey);
|
|
50
65
|
}, [
|
|
@@ -55,6 +70,11 @@ const PromptCarousel = ({ id, theme = Theme.GLOBAL_CUSTOM, testId, className, st
|
|
|
55
70
|
isLoading,
|
|
56
71
|
finalTheme
|
|
57
72
|
]);
|
|
73
|
+
const renderButtonRow = (buttons, startIndex) => /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
74
|
+
buttons.map((text, i) => renderButton(text, startIndex + i, 0)),
|
|
75
|
+
isAnimatedValue && buttons.map((text, i) => renderButton(text, startIndex + i, 1)),
|
|
76
|
+
isAnimatedValue && buttons.map((text, i) => renderButton(text, startIndex + i, 2))
|
|
77
|
+
] });
|
|
58
78
|
const defaultAriaLabel = ariaLabel || "Prompt carousel with suggested actions";
|
|
59
79
|
return /* @__PURE__ */ jsx(Container, {
|
|
60
80
|
id,
|
|
@@ -67,25 +87,42 @@ const PromptCarousel = ({ id, theme = Theme.GLOBAL_CUSTOM, testId, className, st
|
|
|
67
87
|
"aria-describedby": ariaDescribedBy,
|
|
68
88
|
"aria-busy": isLoading,
|
|
69
89
|
"aria-live": isAnimatedValue && !isLoading ? "polite" : void 0,
|
|
70
|
-
children:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
90
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
91
|
+
direction: "column",
|
|
92
|
+
gap: "2",
|
|
93
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
94
|
+
className: "envive-tw-no-scrollbar envive-tw-relative envive-tw-w-full envive-tw-overflow-x-scroll",
|
|
95
|
+
ref: setRef1,
|
|
96
|
+
style: {
|
|
97
|
+
cursor: "grab",
|
|
98
|
+
userSelect: "none"
|
|
99
|
+
},
|
|
100
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
101
|
+
className: "envive-tw-relative envive-tw-inline-block envive-tw-whitespace-nowrap",
|
|
102
|
+
children: /* @__PURE__ */ jsx(Stack, {
|
|
103
|
+
direction: "row",
|
|
104
|
+
gap: "2",
|
|
105
|
+
className: "envive-tw-pl-0 envive-tw-h-full envive-tw-items-center",
|
|
106
|
+
children: renderButtonRow(visibleButtonsFirstRow, 0)
|
|
107
|
+
})
|
|
108
|
+
})
|
|
109
|
+
}), shouldShowTwoRowsValue && /* @__PURE__ */ jsx("div", {
|
|
110
|
+
className: "envive-tw-no-scrollbar envive-tw-relative envive-tw-w-full envive-tw-overflow-x-scroll",
|
|
111
|
+
ref: setRef2,
|
|
112
|
+
style: {
|
|
113
|
+
cursor: "grab",
|
|
114
|
+
userSelect: "none"
|
|
115
|
+
},
|
|
116
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
117
|
+
className: "envive-tw-relative envive-tw-inline-block envive-tw-whitespace-nowrap",
|
|
118
|
+
children: /* @__PURE__ */ jsx(Stack, {
|
|
119
|
+
direction: "row",
|
|
120
|
+
gap: "2",
|
|
121
|
+
className: "envive-tw-pl-0 envive-tw-h-full envive-tw-items-center",
|
|
122
|
+
children: renderButtonRow(visibleButtonsSecondRow, visibleButtonsFirstRow.length)
|
|
123
|
+
})
|
|
124
|
+
})
|
|
125
|
+
})]
|
|
89
126
|
})
|
|
90
127
|
});
|
|
91
128
|
};
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
const require_useHorizontalScrollAnimation = require('./useHorizontalScrollAnimation.cjs');
|
|
2
|
-
const require_useButtonScrollPosition = require('./useButtonScrollPosition.cjs');
|
|
3
|
-
const require_useCarouselRefs = require('./useCarouselRefs.cjs');
|
|
4
1
|
const require_useCarouselButtons = require('./useCarouselButtons.cjs');
|
|
5
|
-
const
|
|
2
|
+
const require_useCoordinatedScrollAnimation = require('./useCoordinatedScrollAnimation.cjs');
|
|
3
|
+
const require_useScrollSync = require('./useScrollSync.cjs');
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { useHorizontalScrollAnimation } from "./useHorizontalScrollAnimation.js";
|
|
2
|
-
import { useButtonScrollPosition } from "./useButtonScrollPosition.js";
|
|
3
|
-
import { useCarouselRefs } from "./useCarouselRefs.js";
|
|
4
1
|
import { useCarouselButtons } from "./useCarouselButtons.js";
|
|
5
|
-
import {
|
|
2
|
+
import { useCoordinatedScrollAnimation } from "./useCoordinatedScrollAnimation.js";
|
|
3
|
+
import { useScrollSync } from "./useScrollSync.js";
|
|
6
4
|
|
|
7
5
|
export { };
|