@rh-support/troubleshoot 2.6.20 → 2.6.22

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 (101) hide show
  1. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts +0 -1
  2. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.d.ts.map +1 -1
  3. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/ActiveCustomerEscalation.js +5 -31
  4. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.d.ts.map +1 -1
  5. package/lib/esm/components/CaseEditView/ActiveCustomerEscalation/RequestEscalationModal.js +34 -33
  6. package/lib/esm/components/CaseEditView/CaseDetailsAside.d.ts.map +1 -1
  7. package/lib/esm/components/CaseEditView/CaseDetailsAside.js +1 -2
  8. package/lib/esm/components/CaseEditView/CaseDetailsTabs.d.ts.map +1 -1
  9. package/lib/esm/components/CaseEditView/CaseDetailsTabs.js +0 -1
  10. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.d.ts.map +1 -1
  11. package/lib/esm/components/CaseEditView/ConfirmationModals/ReopenCaseModal.js +22 -16
  12. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.d.ts.map +1 -1
  13. package/lib/esm/components/CaseEditView/RequestRemoteSession/NewEssTermsModal.js +96 -52
  14. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.d.ts.map +1 -1
  15. package/lib/esm/components/CaseEditView/RequestRemoteSession/RemoteSessionAgreementModal.js +21 -24
  16. package/lib/esm/components/CaseEditView/Tabs/CaseDetails/CaseHostname.js +2 -4
  17. package/lib/esm/components/CaseEditView/Tabs/CaseHistory/Timeline.css +8 -0
  18. package/lib/esm/components/CaseInformation/Fts.d.ts.map +1 -1
  19. package/lib/esm/components/CaseInformation/Fts.js +2 -6
  20. package/lib/esm/components/CaseInformation/Severity.js +1 -1
  21. package/lib/esm/components/CaseInformation/SupportLevel.d.ts.map +1 -1
  22. package/lib/esm/components/CaseInformation/SupportLevel.js +1 -1
  23. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.d.ts.map +1 -1
  24. package/lib/esm/components/CaseManagement/OpenshiftDropdownV4.js +13 -1
  25. package/lib/esm/components/CaseManagement/RHAssociatesSelector.d.ts.map +1 -1
  26. package/lib/esm/components/CaseManagement/RHAssociatesSelector.js +8 -5
  27. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.d.ts.map +1 -1
  28. package/lib/esm/components/CaseManagement/SendNotifications/CaseContactSelector.js +7 -7
  29. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.d.ts.map +1 -1
  30. package/lib/esm/components/CaseManagement/SendNotifications/NonOrgCaseNotifyeesSelector.js +1 -1
  31. package/lib/esm/components/Cve/CveModal.d.ts.map +1 -1
  32. package/lib/esm/components/Cve/CveModal.js +3 -2
  33. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.d.ts.map +1 -1
  34. package/lib/esm/components/ProductSelector/NewProductDropdownSelector.js +10 -1
  35. package/lib/esm/components/Recommendations/AsideResults.js +1 -1
  36. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.d.ts.map +1 -1
  37. package/lib/esm/components/Recommendations/ClusterRecommendationsModal.js +7 -4
  38. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.d.ts.map +1 -1
  39. package/lib/esm/components/Recommendations/EARules/EARuleInfoAccordion.js +3 -1
  40. package/lib/esm/components/Recommendations/InsightsRuleInfo.d.ts.map +1 -1
  41. package/lib/esm/components/Recommendations/InsightsRuleInfo.js +9 -2
  42. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.d.ts.map +1 -1
  43. package/lib/esm/components/Recommendations/RecommendationFeedbackModal.js +4 -4
  44. package/lib/esm/components/Recommendations/RulesModal.d.ts.map +1 -1
  45. package/lib/esm/components/Recommendations/RulesModal.js +7 -4
  46. package/lib/esm/components/Recommendations/WatsonxAiIcon.js +1 -1
  47. package/lib/esm/components/Suggestions/Suggestions.d.ts.map +1 -1
  48. package/lib/esm/components/Suggestions/Suggestions.js +17 -12
  49. package/lib/esm/components/Suggestions/TopContent.d.ts.map +1 -1
  50. package/lib/esm/components/Suggestions/TopContent.js +13 -13
  51. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts +0 -5
  52. package/lib/esm/components/TroubleshootSection/TroubleshootSection.d.ts.map +1 -1
  53. package/lib/esm/components/TroubleshootSection/TroubleshootSection.js +12 -82
  54. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts +1 -0
  55. package/lib/esm/components/shared/input/ContactSelectorInternal.d.ts.map +1 -1
  56. package/lib/esm/components/shared/input/ContactSelectorInternal.js +6 -1
  57. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.d.ts.map +1 -1
  58. package/lib/esm/components/wizardLayout/GlobalTroubleshootEffects.js +3 -1
  59. package/lib/esm/components/wizardLayout/WizardLayout.d.ts.map +1 -1
  60. package/lib/esm/components/wizardLayout/WizardLayout.js +4 -5
  61. package/lib/esm/components/wizardLayout/WizardMain.d.ts +1 -3
  62. package/lib/esm/components/wizardLayout/WizardMain.d.ts.map +1 -1
  63. package/lib/esm/components/wizardLayout/WizardMain.js +19 -126
  64. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts +2 -4
  65. package/lib/esm/components/wizardLayout/WizardNavigation.d.ts.map +1 -1
  66. package/lib/esm/components/wizardLayout/WizardNavigation.js +16 -20
  67. package/lib/esm/components/wizardLayout/index.d.ts +0 -1
  68. package/lib/esm/components/wizardLayout/index.d.ts.map +1 -1
  69. package/lib/esm/components/wizardLayout/index.js +0 -1
  70. package/lib/esm/context/RootTroubleshootProvider.d.ts.map +1 -1
  71. package/lib/esm/context/RootTroubleshootProvider.js +6 -8
  72. package/lib/esm/css/app.css +5 -4
  73. package/lib/esm/css/case.css +12 -0
  74. package/lib/esm/hooks/useWizard.d.ts +0 -4
  75. package/lib/esm/hooks/useWizard.d.ts.map +1 -1
  76. package/lib/esm/hooks/useWizard.js +1 -1
  77. package/lib/esm/reducers/CaseConstNTypes.d.ts +0 -2
  78. package/lib/esm/reducers/CaseConstNTypes.d.ts.map +1 -1
  79. package/lib/esm/reducers/CaseConstNTypes.js +0 -2
  80. package/lib/esm/scss/_main.scss +13 -0
  81. package/lib/esm/scss/_pf-overrides.scss +10 -0
  82. package/package.json +6 -7
  83. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts +0 -7
  84. package/lib/esm/components/TroubleshootSection/AskRedHat.d.ts.map +0 -1
  85. package/lib/esm/components/TroubleshootSection/AskRedHat.js +0 -73
  86. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts +0 -9
  87. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.d.ts.map +0 -1
  88. package/lib/esm/components/TroubleshootSection/icons/CollapseIcon.js +0 -9
  89. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts +0 -9
  90. package/lib/esm/components/TroubleshootSection/icons/StarIcon.d.ts.map +0 -1
  91. package/lib/esm/components/TroubleshootSection/icons/StarIcon.js +0 -17
  92. package/lib/esm/context/AIResponseContext.d.ts +0 -10
  93. package/lib/esm/context/AIResponseContext.d.ts.map +0 -1
  94. package/lib/esm/context/AIResponseContext.js +0 -26
  95. package/lib/esm/css/AskRedHat.css +0 -283
  96. package/lib/esm/reducers/AIResponseConstNTypes.d.ts +0 -48
  97. package/lib/esm/reducers/AIResponseConstNTypes.d.ts.map +0 -1
  98. package/lib/esm/reducers/AIResponseConstNTypes.js +0 -16
  99. package/lib/esm/reducers/AIResponseReducer.d.ts +0 -9
  100. package/lib/esm/reducers/AIResponseReducer.d.ts.map +0 -1
  101. package/lib/esm/reducers/AIResponseReducer.js +0 -43
@@ -1,73 +0,0 @@
1
- import { Button, Card, CardBody, CardHeader, Spinner } from '@patternfly/react-core';
2
- import React, { useRef, useState } from 'react';
3
- import { useAIResponseState } from '../../context/AIResponseContext';
4
- import { useParseRuleMarkdown } from '../../hooks/useParseRuleMarkdown';
5
- import { CollapseIcon } from './icons/CollapseIcon';
6
- import { StarIcon } from './icons/StarIcon';
7
- export const AskRedHat = ({ onChatWithAIClick }) => {
8
- const [isExpanded, setIsExpanded] = useState(false);
9
- const aiResponseState = useAIResponseState();
10
- const contentRef = useRef(null);
11
- const onToggle = () => {
12
- if (isExpanded && contentRef.current) {
13
- contentRef.current.scrollTop = 0;
14
- }
15
- setIsExpanded((prev) => !prev);
16
- };
17
- const handleChatWithAIClick = () => onChatWithAIClick === null || onChatWithAIClick === void 0 ? void 0 : onChatWithAIClick();
18
- const aiResponse = aiResponseState.aiResponse;
19
- const answer = (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.answer) || (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.content) || 'No AI response available yet.';
20
- const sources = (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.sources) || (aiResponse === null || aiResponse === void 0 ? void 0 : aiResponse.references) || [];
21
- const sourcesCount = sources.length || 0;
22
- const isLoading = aiResponseState.isLoading || !aiResponse;
23
- const { parseMarkdown } = useParseRuleMarkdown();
24
- if (isLoading) {
25
- return (React.createElement("div", { className: "ask-redhat" },
26
- React.createElement("p", { className: "ask-redhat-title" },
27
- React.createElement(StarIcon, { width: 20, height: 20 }),
28
- "AI Insights"),
29
- React.createElement("div", { className: "ask-redhat-content-wrapper" },
30
- React.createElement("div", { className: "ask-redhat-content", style: { textAlign: 'center', padding: '2rem' } },
31
- React.createElement(Spinner, { size: "lg" }),
32
- React.createElement("p", { style: { marginTop: '1rem' } }, "Getting AI insights..."))),
33
- !aiResponseState.isLoading && (React.createElement("div", { className: "ask-redhat-toggle-button" },
34
- React.createElement(Button, { variant: "link", onClick: handleChatWithAIClick, className: "ask-redhat-chat-button" }, "Chat with AI to get started")))));
35
- }
36
- if (aiResponseState.error) {
37
- return (React.createElement("div", { className: "ask-redhat" },
38
- React.createElement("p", { className: "ask-redhat-title" },
39
- React.createElement(StarIcon, { width: 20, height: 20 }),
40
- "AI Insights"),
41
- React.createElement("div", { className: "ask-redhat-content-wrapper" },
42
- React.createElement("div", { className: "ask-redhat-content", style: { textAlign: 'center', padding: '2rem' } },
43
- React.createElement("p", { style: { color: '#d73502', marginBottom: '1rem' } }, "Unable to get AI insights. Please try again later."),
44
- React.createElement(Button, { variant: "link", onClick: handleChatWithAIClick, className: "ask-redhat-chat-button", icon: React.createElement(StarIcon, null) }, "Try again with AI Chat")))));
45
- }
46
- return (React.createElement("div", { className: "ask-redhat" },
47
- React.createElement("p", { className: "ask-redhat-title" },
48
- React.createElement(StarIcon, { width: 20, height: 20 }),
49
- "AI Insights"),
50
- React.createElement("div", { className: "ask-redhat-content-wrapper" },
51
- React.createElement("div", { ref: contentRef, className: `ask-redhat-content ${isExpanded ? 'ask-redhat-content--expanded' : ''}` },
52
- React.createElement("div", { className: `ask-redhat-content-scrollable ${isExpanded ? 'ask-redhat-content--expanded-scrollable' : ''}` },
53
- React.createElement("div", null,
54
- React.createElement("div", { dangerouslySetInnerHTML: { __html: parseMarkdown(answer) } }),
55
- sourcesCount > 0 && (React.createElement(React.Fragment, null,
56
- React.createElement("p", null, "2 sources"),
57
- React.createElement("div", { className: "ask-redhat-cards" }, sources.map((source, index) => (React.createElement(Card, { className: "ask-redhat-card", key: index },
58
- React.createElement(CardHeader, null,
59
- React.createElement("h3", { className: "ask-redhat-card-title" },
60
- React.createElement("a", { href: source.link, target: "_blank", rel: "noopener noreferrer" }, source.title))),
61
- React.createElement(CardBody, null,
62
- React.createElement("p", null, source.snippet)))))))))),
63
- React.createElement("div", { className: "ask-redhat-footer-wrapper" },
64
- React.createElement("div", { className: "ask-redhat-footer" },
65
- React.createElement("p", { className: "ask-redhat-footer-text" }, "Want to continue the conversation? Dive deeper with our AI assistant"),
66
- React.createElement(Button, { onClick: handleChatWithAIClick, className: 'ask-redhat-chat-button', icon: React.createElement(StarIcon, null) }, "Chat with AI"))),
67
- !isExpanded && React.createElement("div", { className: "ask-redhat-fade-overlay" }))),
68
- React.createElement("div", { className: "ask-redhat-toggle-button-wrapper" },
69
- React.createElement("div", { className: "ask-redhat-border-line" }),
70
- React.createElement(Button, { onClick: onToggle, className: isExpanded ? 'ask-redhat-toggle-button-collapsed' : 'ask-redhat-toggle-button' },
71
- isExpanded ? React.createElement(CollapseIcon, null) : React.createElement(StarIcon, { width: 20, height: 20 }),
72
- isExpanded ? '' : 'Read more'))));
73
- };
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- interface IconProps {
3
- width?: number;
4
- height?: number;
5
- fillColor?: string;
6
- }
7
- export declare const CollapseIcon: (props: IconProps) => React.JSX.Element;
8
- export {};
9
- //# sourceMappingURL=CollapseIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CollapseIcon.d.ts","sourceRoot":"","sources":["../../../../../src/components/TroubleshootSection/icons/CollapseIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,YAAY,UAAW,SAAS,sBAiB5C,CAAC"}
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- export const CollapseIcon = (props) => {
3
- const { width = 18.118, height = 12 } = props;
4
- return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: "0 0 19 11", fill: "none", style: {
5
- flexShrink: 0,
6
- } },
7
- React.createElement("path", { d: "M9.05895 0L16.9042 7.07143H1.21367L9.05895 0Z", fill: "#9F549C" }),
8
- React.createElement("path", { d: "M9.05895 1.57129L16.9042 8.64272H1.21367L9.05895 1.57129Z", fill: "white" })));
9
- };
@@ -1,9 +0,0 @@
1
- import React from 'react';
2
- interface IconProps {
3
- width?: number;
4
- height?: number;
5
- fillColor?: string;
6
- }
7
- export declare const StarIcon: (props: IconProps) => React.JSX.Element;
8
- export {};
9
- //# sourceMappingURL=StarIcon.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StarIcon.d.ts","sourceRoot":"","sources":["../../../../../src/components/TroubleshootSection/icons/StarIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,SAAS;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,QAAQ,UAAW,SAAS,sBAgDxC,CAAC"}
@@ -1,17 +0,0 @@
1
- import React from 'react';
2
- export const StarIcon = (props) => {
3
- const { width = 16, height = 15.273 } = props;
4
- return (React.createElement("svg", { xmlns: "http://www.w3.org/2000/svg", width: width, height: height, viewBox: "0 0 16 15.273", fill: "none", style: {
5
- flexShrink: 0,
6
- aspectRatio: '16.00/15.27',
7
- } },
8
- React.createElement("path", { d: "M16.197 9.21581L11.3573 8.18825L10.3297 3.34854C10.2937 3.16868 10.1345 3.04541 9.95463 3.04541C9.77478 3.04541 9.61558 3.17385 9.57958 3.34854L8.55202 8.18825L3.71231 9.21581C3.53245 9.25181 3.40918 9.41101 3.40918 9.59087C3.40918 9.77072 3.53762 9.92992 3.71231 9.96592L8.55202 10.9935L9.57958 15.8332C9.61558 16.013 9.77478 16.1363 9.95463 16.1363C10.1345 16.1363 10.2937 16.0079 10.3297 15.8332L11.3573 10.9935L16.197 9.96592C16.3768 9.92992 16.5001 9.77072 16.5001 9.59087C16.5001 9.41101 16.3717 9.25181 16.197 9.21581Z", fill: "url(#paint0_linear_5146_16767)" }),
9
- React.createElement("path", { d: "M3.40909 6.68195C3.58647 6.68195 3.74356 6.55526 3.77905 6.38297L4.16931 4.53308L6.0192 4.14282C6.19658 4.10733 6.31818 3.95024 6.31818 3.77286C6.31818 3.59548 6.19149 3.43839 6.0192 3.4029L4.16931 3.01264L3.77905 1.16275C3.74356 0.98537 3.58647 0.86377 3.40909 0.86377C3.23171 0.86377 3.07462 0.990461 3.03913 1.16275L2.64887 3.01264L0.798982 3.4029C0.6216 3.43839 0.5 3.59548 0.5 3.77286C0.5 3.95024 0.626691 4.10733 0.798982 4.14282L2.64887 4.53308L3.03913 6.38297C3.07462 6.56035 3.23171 6.68195 3.40909 6.68195Z", fill: "url(#paint1_linear_5146_16767)" }),
10
- React.createElement("defs", null,
11
- React.createElement("linearGradient", { id: "paint0_linear_5146_16767", x1: "9.95463", y1: "3.04541", x2: "9.95463", y2: "16.1363", gradientUnits: "userSpaceOnUse" },
12
- React.createElement("stop", { stopColor: "#F56E6E" }),
13
- React.createElement("stop", { offset: "1", stopColor: "#5E40BE" })),
14
- React.createElement("linearGradient", { id: "paint1_linear_5146_16767", x1: "3.40909", y1: "0.86377", x2: "3.40909", y2: "6.68195", gradientUnits: "userSpaceOnUse" },
15
- React.createElement("stop", { stopColor: "#F56E6E" }),
16
- React.createElement("stop", { offset: "1", stopColor: "#5E40BE" })))));
17
- };
@@ -1,10 +0,0 @@
1
- import React from 'react';
2
- import { IAIResponseActionType, IAIResponseState } from '../reducers/AIResponseConstNTypes';
3
- export declare const AIResponseStateContext: React.Context<IAIResponseState>;
4
- export declare const AIResponseDispatchContext: React.Context<React.Dispatch<IAIResponseActionType>>;
5
- export declare function AIResponseContextProvider({ children }: {
6
- children: React.ReactNode;
7
- }): React.JSX.Element;
8
- export declare const useAIResponseState: () => IAIResponseState;
9
- export declare const useAIResponseDispatch: () => React.Dispatch<IAIResponseActionType>;
10
- //# sourceMappingURL=AIResponseContext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AIResponseContext.d.ts","sourceRoot":"","sources":["../../../src/context/AIResponseContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAA0B,MAAM,mCAAmC,CAAC;AAKpH,eAAO,MAAM,sBAAsB,iCAAgE,CAAC;AACpG,eAAO,MAAM,yBAAyB,sDACgD,CAAC;AAEvF,wBAAgB,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,qBAUpF;AAGD,eAAO,MAAM,kBAAkB,wBAM9B,CAAC;AAEF,eAAO,MAAM,qBAAqB,6CAMjC,CAAC"}
@@ -1,26 +0,0 @@
1
- import React, { useReducer } from 'react';
2
- import { initialAIResponseState } from '../reducers/AIResponseConstNTypes';
3
- import { aiResponseReducer } from '../reducers/AIResponseReducer';
4
- const initialDispatchContext = () => { };
5
- export const AIResponseStateContext = React.createContext(initialAIResponseState);
6
- export const AIResponseDispatchContext = React.createContext(initialDispatchContext);
7
- export function AIResponseContextProvider({ children }) {
8
- const [aiResponseState, aiResponseDispatch] = useReducer(aiResponseReducer, initialAIResponseState);
9
- return (React.createElement(AIResponseStateContext.Provider, { value: aiResponseState },
10
- React.createElement(AIResponseDispatchContext.Provider, { value: aiResponseDispatch }, children)));
11
- }
12
- // Custom hooks for easy access
13
- export const useAIResponseState = () => {
14
- const context = React.useContext(AIResponseStateContext);
15
- if (context === undefined) {
16
- throw new Error('useAIResponseState must be used within a AIResponseContextProvider');
17
- }
18
- return context;
19
- };
20
- export const useAIResponseDispatch = () => {
21
- const context = React.useContext(AIResponseDispatchContext);
22
- if (context === undefined) {
23
- throw new Error('useAIResponseDispatch must be used within a AIResponseContextProvider');
24
- }
25
- return context;
26
- };
@@ -1,283 +0,0 @@
1
- .ask-redhat {
2
- padding: 1rem 1rem 2rem;
3
- }
4
-
5
- .ask-redhat-title {
6
- display: flex;
7
- flex-direction: row;
8
- width: 387.666px;
9
- height: 24px;
10
- flex-shrink: 0;
11
- color: #000;
12
- font-family: 'Red Hat Display';
13
- font-size: 16px;
14
- font-style: normal;
15
- font-weight: 600;
16
- line-height: normal;
17
- align-items: center;
18
- gap: 0.5rem;
19
- }
20
-
21
- .ask-redhat-content-wrapper {
22
- position: relative;
23
- }
24
-
25
- .ask-redhat-content {
26
- max-height: 120px;
27
- color: #000;
28
- font-family: 'Red Hat Text';
29
- font-size: 16px;
30
- font-style: normal;
31
- font-weight: 400;
32
- line-height: 24px;
33
- overflow: hidden;
34
- position: relative;
35
- transition: max-height 0.8s ease;
36
- }
37
-
38
- .ask-redhat-content--expanded {
39
- max-height: calc(100vh - 390px);
40
- transition: max-height 0.8s ease !important;
41
- }
42
-
43
- .ask-redhat-content--expanded-scrollable {
44
- max-height: calc(100vh - 500px);
45
- overflow-y: auto;
46
- }
47
-
48
- .ask-redhat-list {
49
- margin-left: 1.5rem;
50
- }
51
-
52
- .ask-redhat-cards {
53
- display: flex;
54
- gap: 1rem;
55
- margin-top: 1rem;
56
- }
57
-
58
- .ask-redhat-card {
59
- flex: 1;
60
- }
61
-
62
- .ask-redhat-card-title {
63
- margin: 0;
64
- }
65
-
66
- .ask-redhat-footer-wrapper {
67
- position: relative;
68
- margin-top: 1rem;
69
- padding-bottom: 3rem;
70
- }
71
-
72
- .ask-redhat-footer {
73
- display: flex;
74
- justify-content: space-between;
75
- align-items: center;
76
- margin: 1.5rem 0 2rem;
77
- }
78
-
79
- .ask-redhat-footer-text {
80
- margin: 0;
81
- }
82
-
83
- :root {
84
- --color-red: var(--Core-color-palette-Red-red-40, #f56e6e);
85
- --color-purple: var(--Secondary-color-palette-Purple-purple-50, #5e40be);
86
- --gradient-red-purple: linear-gradient(90deg, var(--color-red), var(--color-purple));
87
- --gorgey: #f56e6e;
88
- }
89
-
90
- .ask-redhat-chat-button {
91
- width: 129px;
92
- height: 30px;
93
- justify-content: center;
94
- align-items: center !important;
95
- gap: 8px;
96
- flex-shrink: 0;
97
- border-radius: 40px;
98
- background: var(--gradient-red-purple);
99
- color: #000;
100
- text-decoration: none;
101
- transition: all 0.2s ease;
102
- cursor: pointer;
103
- position: relative;
104
- display: flex;
105
- padding: 1px;
106
- }
107
-
108
- .ask-redhat-chat-button svg {
109
- display: flex;
110
- align-items: center;
111
- justify-content: center;
112
- margin: 0;
113
- padding: 0;
114
- vertical-align: middle;
115
- }
116
-
117
- .ask-redhat-chat-button .pf-v6-c-button__text {
118
- display: flex;
119
- align-items: center;
120
- justify-content: center;
121
- line-height: 1;
122
- color: #000;
123
- margin: 0;
124
- padding: 0;
125
- height: 100%;
126
- }
127
-
128
- .ask-redhat-chat-button .pf-v6-c-button__icon {
129
- display: flex;
130
- align-items: center;
131
- justify-content: center;
132
- margin: 0;
133
- padding: 0;
134
- height: 100%;
135
- }
136
-
137
- .ask-redhat-chat-button::before {
138
- content: '';
139
- position: absolute;
140
- top: 1px;
141
- left: 1px;
142
- right: 1px;
143
- bottom: 1px;
144
- background: #fff;
145
- border-radius: 39px;
146
- z-index: 1;
147
- }
148
-
149
- .ask-redhat-chat-button > * {
150
- position: relative;
151
- z-index: 2;
152
- }
153
-
154
- .ask-redhat-chat-button:focus {
155
- outline: none;
156
- box-shadow: 0 0 0 2px rgba(94, 64, 190, 0.2);
157
- }
158
-
159
- .ask-redhat-fade-overlay {
160
- position: absolute;
161
- bottom: 0;
162
- left: 0;
163
- width: 1002px;
164
- height: 147px;
165
- flex-shrink: 0;
166
- background: linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, #fff 80%, #fff 100%);
167
- pointer-events: none;
168
- z-index: 1;
169
- }
170
-
171
- .ask-redhat-toggle-button {
172
- display: flex;
173
- justify-content: center;
174
- align-items: center;
175
- gap: 8px;
176
- flex-shrink: 0;
177
- left: 50%;
178
- width: 211.839px;
179
- height: 40px;
180
- transform: translateX(-50%);
181
- background-color: #fff;
182
- z-index: 3;
183
- background: var(--gradient-red-purple);
184
- padding: 2px;
185
- color: #000;
186
- border-radius: 40px;
187
- }
188
-
189
- .ask-redhat-toggle-button .pf-v6-c-button__text {
190
- display: flex;
191
- align-items: center;
192
- justify-content: center;
193
- line-height: 1;
194
- margin: 0;
195
- padding: 0;
196
- gap: 8px;
197
- color: #000;
198
- }
199
-
200
- .ask-redhat-toggle-button svg {
201
- display: flex;
202
- align-items: center;
203
- justify-content: center;
204
- margin: 0;
205
- padding: 0;
206
- vertical-align: middle;
207
- }
208
-
209
- .ask-redhat-toggle-button::before {
210
- content: '';
211
- position: absolute;
212
- top: 2px;
213
- left: 2px;
214
- right: 2px;
215
- bottom: 2px;
216
- background: #fff;
217
- border-radius: 38px;
218
- z-index: 1;
219
- }
220
-
221
- .ask-redhat-toggle-button > * {
222
- position: relative;
223
- z-index: 2;
224
- }
225
-
226
- .ask-redhat-toggle-button-collapsed {
227
- display: flex;
228
- width: 50px;
229
- height: 24px;
230
- padding: 6px 16px;
231
- justify-content: center;
232
- align-items: center;
233
- gap: 8px;
234
- flex-shrink: 0;
235
- border-radius: 40px;
236
- background: var(--gradient-red-purple);
237
- color: #000;
238
- position: absolute;
239
- left: 50%;
240
- transform: translateX(-50%);
241
- z-index: 3;
242
- }
243
-
244
- .ask-redhat-toggle-button-collapsed::before {
245
- content: '';
246
- position: absolute;
247
- top: 1px;
248
- left: 1px;
249
- right: 1px;
250
- bottom: 1px;
251
- background: #fff;
252
- border-radius: 39px;
253
- z-index: 1;
254
- }
255
-
256
- .ask-redhat-toggle-button-collapsed > * {
257
- position: relative;
258
- z-index: 2;
259
- }
260
-
261
- .ask-redhat-toggle-button-collapsed svg {
262
- display: flex;
263
- align-items: center;
264
- justify-content: center;
265
- margin: 0;
266
- padding: 0;
267
- vertical-align: middle;
268
- line-height: 1;
269
- }
270
-
271
- .ask-redhat-toggle-button-wrapper {
272
- position: relative;
273
- }
274
-
275
- .ask-redhat-border-line {
276
- position: absolute;
277
- top: 50%;
278
- left: 0;
279
- right: 0;
280
- height: 1px;
281
- background: #d2d2d2;
282
- z-index: 1;
283
- }
@@ -1,48 +0,0 @@
1
- import { IARHDirectAPIResponse } from '@ifd-ui/ask-redhat-core';
2
- export interface IActionType {
3
- type: string;
4
- payload?: any;
5
- }
6
- export interface IAIResponseState {
7
- aiResponse: IARHDirectAPIResponse | null;
8
- isLoading: boolean;
9
- error: string | null;
10
- lastUpdated: Date | null;
11
- }
12
- export declare const initialAIResponseState: IAIResponseState;
13
- export declare enum AIResponseConstants {
14
- requestAIResponse = "requestAIResponse",
15
- receivedAIResponse = "receivedAIResponse",
16
- receivedAIResponseError = "receivedAIResponseError",
17
- clearAIResponse = "clearAIResponse",
18
- setAIResponseLoading = "setAIResponseLoading"
19
- }
20
- export interface IRequestAIResponseAction extends IActionType {
21
- type: AIResponseConstants.requestAIResponse;
22
- payload: {
23
- question: string;
24
- };
25
- }
26
- export interface IReceivedAIResponseAction extends IActionType {
27
- type: AIResponseConstants.receivedAIResponse;
28
- payload: {
29
- aiResponse: IARHDirectAPIResponse;
30
- };
31
- }
32
- export interface IReceivedAIResponseErrorAction extends IActionType {
33
- type: AIResponseConstants.receivedAIResponseError;
34
- payload: {
35
- error: string;
36
- };
37
- }
38
- export interface IClearAIResponseAction extends IActionType {
39
- type: AIResponseConstants.clearAIResponse;
40
- }
41
- export interface ISetAIResponseLoadingAction extends IActionType {
42
- type: AIResponseConstants.setAIResponseLoading;
43
- payload: {
44
- isLoading: boolean;
45
- };
46
- }
47
- export type IAIResponseActionType = IRequestAIResponseAction | IReceivedAIResponseAction | IReceivedAIResponseErrorAction | IClearAIResponseAction | ISetAIResponseLoadingAction;
48
- //# sourceMappingURL=AIResponseConstNTypes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AIResponseConstNTypes.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseConstNTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,MAAM,WAAW,WAAW;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,GAAG,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,EAAE,IAAI,GAAG,IAAI,CAAC;CAC5B;AAGD,eAAO,MAAM,sBAAsB,EAAE,gBAKpC,CAAC;AAGF,oBAAY,mBAAmB;IAC3B,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;IACzC,uBAAuB,4BAA4B;IACnD,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;CAChD;AAGD,MAAM,WAAW,wBAAyB,SAAQ,WAAW;IACzD,IAAI,EAAE,mBAAmB,CAAC,iBAAiB,CAAC;IAC5C,OAAO,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,MAAM,WAAW,yBAA0B,SAAQ,WAAW;IAC1D,IAAI,EAAE,mBAAmB,CAAC,kBAAkB,CAAC;IAC7C,OAAO,EAAE;QACL,UAAU,EAAE,qBAAqB,CAAC;KACrC,CAAC;CACL;AAED,MAAM,WAAW,8BAA+B,SAAQ,WAAW;IAC/D,IAAI,EAAE,mBAAmB,CAAC,uBAAuB,CAAC;IAClD,OAAO,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC;CACL;AAED,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACvD,IAAI,EAAE,mBAAmB,CAAC,eAAe,CAAC;CAC7C;AAED,MAAM,WAAW,2BAA4B,SAAQ,WAAW;IAC5D,IAAI,EAAE,mBAAmB,CAAC,oBAAoB,CAAC;IAC/C,OAAO,EAAE;QACL,SAAS,EAAE,OAAO,CAAC;KACtB,CAAC;CACL;AAED,MAAM,MAAM,qBAAqB,GAC3B,wBAAwB,GACxB,yBAAyB,GACzB,8BAA8B,GAC9B,sBAAsB,GACtB,2BAA2B,CAAC"}
@@ -1,16 +0,0 @@
1
- // Initial State
2
- export const initialAIResponseState = {
3
- aiResponse: null,
4
- isLoading: false,
5
- error: null,
6
- lastUpdated: null,
7
- };
8
- // Action Constants
9
- export var AIResponseConstants;
10
- (function (AIResponseConstants) {
11
- AIResponseConstants["requestAIResponse"] = "requestAIResponse";
12
- AIResponseConstants["receivedAIResponse"] = "receivedAIResponse";
13
- AIResponseConstants["receivedAIResponseError"] = "receivedAIResponseError";
14
- AIResponseConstants["clearAIResponse"] = "clearAIResponse";
15
- AIResponseConstants["setAIResponseLoading"] = "setAIResponseLoading";
16
- })(AIResponseConstants || (AIResponseConstants = {}));
@@ -1,9 +0,0 @@
1
- import { IARHDirectAPIResponse } from '@ifd-ui/ask-redhat-core';
2
- import { IAIResponseActionType, IAIResponseState } from './AIResponseConstNTypes';
3
- export declare const aiResponseReducer: (state: IAIResponseState, action: IAIResponseActionType) => IAIResponseState;
4
- export declare const requestAIResponse: (question: string) => IAIResponseActionType;
5
- export declare const receivedAIResponse: (aiResponse: IARHDirectAPIResponse) => IAIResponseActionType;
6
- export declare const receivedAIResponseError: (error: string) => IAIResponseActionType;
7
- export declare const clearAIResponse: () => IAIResponseActionType;
8
- export declare const setAIResponseLoading: (isLoading: boolean) => IAIResponseActionType;
9
- //# sourceMappingURL=AIResponseReducer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AIResponseReducer.d.ts","sourceRoot":"","sources":["../../../src/reducers/AIResponseReducer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,EAEH,qBAAqB,EACrB,gBAAgB,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,eAAO,MAAM,iBAAiB,UACnB,gBAAgB,UACf,qBAAqB,KAC9B,gBA0CF,CAAC;AAGF,eAAO,MAAM,iBAAiB,aAAc,MAAM,KAAG,qBAItB,CAAC;AAEhC,eAAO,MAAM,kBAAkB,eAAgB,qBAAqB,KAAG,qBAIxC,CAAC;AAEhC,eAAO,MAAM,uBAAuB,UAAW,MAAM,KAAG,qBAIzB,CAAC;AAEhC,eAAO,MAAM,eAAe,QAAO,qBAGJ,CAAC;AAEhC,eAAO,MAAM,oBAAoB,cAAe,OAAO,KAAG,qBAI3B,CAAC"}
@@ -1,43 +0,0 @@
1
- import { AIResponseConstants, initialAIResponseState, } from './AIResponseConstNTypes';
2
- export const aiResponseReducer = (state = initialAIResponseState, action) => {
3
- switch (action.type) {
4
- case AIResponseConstants.requestAIResponse: {
5
- return Object.assign(Object.assign({}, state), { isLoading: true, error: null });
6
- }
7
- case AIResponseConstants.receivedAIResponse: {
8
- return Object.assign(Object.assign({}, state), { aiResponse: action.payload.aiResponse, isLoading: false, error: null, lastUpdated: new Date() });
9
- }
10
- case AIResponseConstants.receivedAIResponseError: {
11
- return Object.assign(Object.assign({}, state), { aiResponse: null, isLoading: false, error: action.payload.error, lastUpdated: new Date() });
12
- }
13
- case AIResponseConstants.clearAIResponse: {
14
- return Object.assign({}, initialAIResponseState);
15
- }
16
- case AIResponseConstants.setAIResponseLoading: {
17
- return Object.assign(Object.assign({}, state), { isLoading: action.payload.isLoading });
18
- }
19
- default: {
20
- return state;
21
- }
22
- }
23
- };
24
- // Action Creators
25
- export const requestAIResponse = (question) => ({
26
- type: AIResponseConstants.requestAIResponse,
27
- payload: { question },
28
- });
29
- export const receivedAIResponse = (aiResponse) => ({
30
- type: AIResponseConstants.receivedAIResponse,
31
- payload: { aiResponse },
32
- });
33
- export const receivedAIResponseError = (error) => ({
34
- type: AIResponseConstants.receivedAIResponseError,
35
- payload: { error },
36
- });
37
- export const clearAIResponse = () => ({
38
- type: AIResponseConstants.clearAIResponse,
39
- });
40
- export const setAIResponseLoading = (isLoading) => ({
41
- type: AIResponseConstants.setAIResponseLoading,
42
- payload: { isLoading },
43
- });