@pega/cosmos-react-work 7.0.0-build.16.1 → 7.0.0-build.17.0
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/lib/components/ArticleList/ArticleBuddy.d.ts +1 -3
- package/lib/components/ArticleList/ArticleBuddy.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleBuddy.js +29 -52
- package/lib/components/ArticleList/ArticleBuddy.js.map +1 -1
- package/lib/components/ArticleList/ArticleBuddyList.d.ts +5 -0
- package/lib/components/ArticleList/ArticleBuddyList.d.ts.map +1 -0
- package/lib/components/ArticleList/ArticleBuddyList.js +22 -0
- package/lib/components/ArticleList/ArticleBuddyList.js.map +1 -0
- package/lib/components/ArticleList/ArticleBuddyResponse.d.ts +9 -0
- package/lib/components/ArticleList/ArticleBuddyResponse.d.ts.map +1 -0
- package/lib/components/ArticleList/ArticleBuddyResponse.js +56 -0
- package/lib/components/ArticleList/ArticleBuddyResponse.js.map +1 -0
- package/lib/components/ArticleList/ArticleList.types.d.ts +30 -9
- package/lib/components/ArticleList/ArticleList.types.d.ts.map +1 -1
- package/lib/components/ArticleList/ArticleList.types.js.map +1 -1
- package/lib/components/ArticleList/QuestionList.d.ts +13 -0
- package/lib/components/ArticleList/QuestionList.d.ts.map +1 -0
- package/lib/components/ArticleList/QuestionList.js +78 -0
- package/lib/components/ArticleList/QuestionList.js.map +1 -0
- package/lib/components/ArticleList/index.d.ts +1 -1
- package/lib/components/ArticleList/index.d.ts.map +1 -1
- package/lib/components/ArticleList/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import type { FunctionComponent } from 'react';
|
|
2
2
|
import type { ForwardProps } from '@pega/cosmos-react-core';
|
|
3
3
|
import type { ArticleBuddyProps } from './ArticleList.types';
|
|
4
|
-
export declare const
|
|
5
|
-
export declare const StyledDisclaimerText: import("styled-components").StyledComponent<FunctionComponent<import("@pega/cosmos-react-core").TextProps & ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
6
|
-
export declare const StyledBuddyContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
4
|
+
export declare const StyledQueryContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
7
5
|
declare const ArticleBuddy: FunctionComponent<ArticleBuddyProps & ForwardProps>;
|
|
8
6
|
export default ArticleBuddy;
|
|
9
7
|
//# sourceMappingURL=ArticleBuddy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArticleBuddy.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddy.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"ArticleBuddy.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddy.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,MAAM,OAAO,CAAC;AAc9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI7D,eAAO,MAAM,oBAAoB,yGAWhC,CAAC;AAIF,QAAA,MAAM,YAAY,EAAE,iBAAiB,CAAC,iBAAiB,GAAG,YAAY,CA2ErE,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -1,69 +1,46 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect } from 'react';
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
export const
|
|
8
|
-
return css `
|
|
9
|
-
font-weight: bold;
|
|
10
|
-
border-block-start: 0.0625rem solid ${palette['border-line']};
|
|
11
|
-
padding-block: ${spacing};
|
|
12
|
-
`;
|
|
13
|
-
});
|
|
14
|
-
StyledDisclaimerHeader.defaultProps = defaultThemeProp;
|
|
15
|
-
export const StyledDisclaimerText = styled(Text)(({ theme: { base: { 'font-size': fontSize, 'font-scale': fontScale, spacing } } }) => {
|
|
16
|
-
const systemFontSize = calculateFontSize(fontSize, fontScale).xs;
|
|
17
|
-
return css `
|
|
18
|
-
font-style: italic;
|
|
19
|
-
font-size: ${systemFontSize};
|
|
20
|
-
margin-block-end: calc(2.5 * ${spacing});
|
|
21
|
-
`;
|
|
22
|
-
});
|
|
23
|
-
StyledDisclaimerText.defaultProps = defaultThemeProp;
|
|
24
|
-
export const StyledBuddyContainer = styled.div(({ theme: { base: { spacing } } }) => {
|
|
4
|
+
import { Flex, defaultThemeProp, useI18n, Button, useLiveLog, TextArea, AIButton, Progress, getFocusables } from '@pega/cosmos-react-core';
|
|
5
|
+
import ArticleBuddyList from './ArticleBuddyList';
|
|
6
|
+
import ArticleBuddyResponse from './ArticleBuddyResponse';
|
|
7
|
+
export const StyledQueryContainer = styled.div(({ theme: { base: { spacing, colors } } }) => {
|
|
25
8
|
return css `
|
|
26
9
|
padding: calc(2 * ${spacing});
|
|
27
|
-
|
|
28
|
-
max-height: inherit;
|
|
29
|
-
height: 100%;
|
|
10
|
+
background-color: ${colors.gray['extra-light']};
|
|
30
11
|
`;
|
|
31
12
|
});
|
|
32
|
-
|
|
33
|
-
const
|
|
34
|
-
const ArticleBuddy = ({ query, onClear, onSubmit, title, content, actions, references, disclaimer, loading = false, error = false, feedback, ...restProps }) => {
|
|
13
|
+
StyledQueryContainer.defaultProps = defaultThemeProp;
|
|
14
|
+
const ArticleBuddy = ({ query, onClear, onSubmit, response, list, loading, ...restProps }) => {
|
|
35
15
|
const t = useI18n();
|
|
36
|
-
const
|
|
16
|
+
const buddyRef = useRef(null);
|
|
37
17
|
const { announcePolite } = useLiveLog();
|
|
38
18
|
useEffect(() => {
|
|
39
|
-
if (content) {
|
|
19
|
+
if (response?.content) {
|
|
40
20
|
announcePolite({
|
|
41
21
|
message: t('result_available'),
|
|
42
22
|
type: 'acknowledgement'
|
|
43
23
|
});
|
|
44
24
|
}
|
|
45
|
-
}, [content]);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}
|
|
65
|
-
}) }) }))] }, reference.id));
|
|
66
|
-
})] })), feedback && (_jsx(ArticleFeedback, { comment: feedback.comment, reaction: feedback.reaction, onReaction: feedback.onReaction, onSubmit: feedback.onSubmit }))] })), error && !content && !loading && (_jsx(Flex, { container: { justify: 'center', pad: 1, gap: 1 }, children: _jsx(ErrorState, { message: t('error_message') }) })), disclaimer && (_jsxs(Flex, { container: { direction: 'column' }, children: [_jsx(StyledDisclaimerHeader, { children: t('disclaimer') }), _jsx(StyledDisclaimerText, { children: disclaimer })] }))] }));
|
|
25
|
+
}, [response?.content]);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
const focusables = getFocusables(buddyRef);
|
|
28
|
+
if (focusables.length > 0) {
|
|
29
|
+
focusables[0].focus();
|
|
30
|
+
}
|
|
31
|
+
}, []);
|
|
32
|
+
return (_jsxs(Flex, { ...restProps, container: { direction: 'column' }, ref: buddyRef, children: [_jsxs(Flex, { as: StyledQueryContainer, container: { direction: 'column', gap: 1 }, children: [_jsx(TextArea, { ...query, autoResize: false, onKeyDown: (e) => {
|
|
33
|
+
if (e.key === 'Enter' && !e.shiftKey) {
|
|
34
|
+
e.preventDefault();
|
|
35
|
+
if (query.value?.trim()) {
|
|
36
|
+
onSubmit();
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
} }), _jsxs(Flex, { container: { gap: 1, justify: 'end' }, children: [query.value && onClear && (_jsx(Button, { variant: 'link', onClick: () => {
|
|
40
|
+
onClear();
|
|
41
|
+
}, children: t('clear') })), _jsx(AIButton, { label: t('ask'), disabled: loading, "aria-label": t('ask_buddy'), onClick: () => {
|
|
42
|
+
onSubmit();
|
|
43
|
+
} })] })] }), _jsx(Progress, { visible: !!loading, placement: 'block', message: t('loading') }), !loading && (_jsxs(_Fragment, { children: [response && _jsx(ArticleBuddyResponse, { ...response }), list && _jsx(ArticleBuddyList, { ...list })] }))] }));
|
|
67
44
|
};
|
|
68
45
|
export default ArticleBuddy;
|
|
69
46
|
//# sourceMappingURL=ArticleBuddy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArticleBuddy.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddy.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,IAAI,EACJ,iBAAiB,EACjB,QAAQ,EACR,MAAM,EACN,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,QAAQ,EACR,QAAQ,EACR,UAAU,EACX,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExE,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAClD,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAC3B,EACF,EAAE,EAAE;IACH,OAAO,GAAG,CAAA;;0CAE8B,OAAO,CAAC,aAAa,CAAC;qBAC3C,OAAO;GACzB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,sBAAsB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEvD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAChD,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,EAClE,EACF,EAAE,EAAE;IACH,MAAM,cAAc,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC;IACjE,OAAO,GAAG,CAAA;;iBAEK,cAAc;mCACI,OAAO;GACvC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CAC5C,CAAC,EACC,KAAK,EAAE,EACL,IAAI,EAAE,EAAE,OAAO,EAAE,EAClB,EACF,EAAE,EAAE;IACH,OAAO,GAAG,CAAA;0BACY,OAAO;;;;KAI5B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAA,EAAE,CAAC;AAEjD,MAAM,YAAY,GAAwD,CAAC,EACzE,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,EACL,OAAO,EACP,OAAO,EACP,UAAU,EACV,UAAU,EACV,OAAO,GAAG,KAAK,EACf,KAAK,GAAG,KAAK,EACb,QAAQ,EACR,GAAG,SAAS,EACb,EAAE,EAAE;IACH,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,EAAE,cAAc,EAAE,GAAG,UAAU,EAAE,CAAC;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE;YACX,cAAc,CAAC;gBACb,OAAO,EAAE,CAAC,CAAC,kBAAkB,CAAC;gBAC9B,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAC;SACJ;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO,CACL,MAAC,IAAI,OACC,SAAS,EACb,EAAE,EAAE,oBAAoB,EACxB,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,eAC/B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,aAErC,KAAC,QAAQ,OACH,KAAK,EACT,UAAU,EAAE,KAAK,EACjB,SAAS,EAAE,CAAC,CAAqC,EAAE,EAAE;oBACnD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,QAAQ,EAAE;wBACpC,CAAC,CAAC,cAAc,EAAE,CAAC;wBACnB,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;4BACvB,QAAQ,EAAE,CAAC;yBACZ;qBACF;gBACH,CAAC,GACD,EACF,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,aACxC,KAAK,CAAC,KAAK,IAAI,OAAO,IAAI,CACzB,KAAC,MAAM,IACL,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,GAAG,EAAE;4BACZ,OAAO,EAAE,CAAC;wBACZ,CAAC,YAEA,CAAC,CAAC,OAAO,CAAC,GACJ,CACV,EACD,KAAC,QAAQ,IACP,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,EACf,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,GAAG,EAAE;4BACZ,QAAQ,EAAE,CAAC;wBACb,CAAC,GACD,IACG,EAEN,OAAO,IAAI,KAAC,QAAQ,IAAC,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,SAAS,EAAC,OAAO,EAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,GAAI,EACpF,CAAC,OAAO,IAAI,KAAK,IAAI,OAAO,IAAI,CAC/B,8BACE,8BACE,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aACzD,KAAC,IAAI,IACH,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAClC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,EACjB,EAAE,EAAE,wBAAwB,YAE5B,KAAC,IAAI,IAAC,OAAO,EAAC,IAAI,YAAE,KAAK,GAAQ,GAC5B,EAEN,OAAO,IAAI,KAAC,OAAO,IAAC,KAAK,EAAE,OAAO,GAAI,IAClC,EACP,KAAC,IAAI,IAAC,SAAS,QAAC,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YAC9B,OAAO,GACH,IACC,EACT,UAAU,IAAI,CACb,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC9C,KAAC,IAAI,IAAC,OAAO,EAAC,IAAI,YAAE,CAAC,CAAC,YAAY,CAAC,GAAQ,EAC1C,UAAU,EAAE,GAAG,CAAC,SAAS,CAAC,EAAE;gCAC3B,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,mBACb,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,aAChE,cAAc,CAAC,SAAS,CAAC,IAAI,CAC5B,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,MAAM,EAAC,QAAQ,YACxC,SAAS,CAAC,IAAI,IADgC,SAAS,CAAC,EAAE,CAEtD,CACR,EACA,iBAAiB,CAAC,SAAS,CAAC,IAAI,CAC/B,KAAC,MAAM,IACL,OAAO,EAAC,MAAM,EACd,OAAO,EAAE,CAAC,CAAgC,EAAE,EAAE,CAC5C,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC,YAGnC,SAAS,CAAC,IAAI,GACR,CACV,IACI,EACN,SAAS,CAAC,UAAU,IAAI,CACvB,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,YACzD,KAAC,IAAI,cACF,YAAY,CAAC,SAAS,CAAC,UAAU,EAAE;oDAClC,MAAM;oDACN,OAAO,EAAE;wDACP,KAAK,EAAE,MAAM;wDACb,IAAI,EAAE,SAAS;wDACf,qBAAqB,EAAE,CAAC;qDACzB;iDACF,CAAC,GACG,GACF,CACR,KA/BkB,SAAS,CAAC,EAAE,CAgC1B,CACR,CAAC;4BACJ,CAAC,CAAC,IACG,CACR,EACA,QAAQ,IAAI,CACX,KAAC,eAAe,IACd,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU,EAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAC3B,CACH,IACA,CACJ,EACA,KAAK,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,IAAI,CAChC,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,YACpD,KAAC,UAAU,IAAC,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,GAAI,GACtC,CACR,EAEA,UAAU,IAAI,CACb,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aACtC,KAAC,sBAAsB,cAAE,CAAC,CAAC,YAAY,CAAC,GAA0B,EAClE,KAAC,oBAAoB,cAAE,UAAU,GAAwB,IACpD,CACR,IACI,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport type { FunctionComponent, MouseEvent, KeyboardEvent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Text,\n Actions,\n Flex,\n defaultThemeProp,\n useI18n,\n Link,\n calculateFontSize,\n Progress,\n Button,\n useConfiguration,\n formatNumber,\n useLiveLog,\n TextArea,\n AIButton,\n ErrorState\n} from '@pega/cosmos-react-core';\nimport type { ForwardProps } from '@pega/cosmos-react-core';\n\nimport { isExternalLink, isInternalArticle } from './ArticleList.types';\nimport type { ArticleBuddyProps } from './ArticleList.types';\nimport ArticleFeedback from './ArticleFeedback';\n\nexport const StyledDisclaimerHeader = styled(Text)(({\n theme: {\n base: { spacing, palette }\n }\n}) => {\n return css`\n font-weight: bold;\n border-block-start: 0.0625rem solid ${palette['border-line']};\n padding-block: ${spacing};\n `;\n});\n\nStyledDisclaimerHeader.defaultProps = defaultThemeProp;\n\nexport const StyledDisclaimerText = styled(Text)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, spacing }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n return css`\n font-style: italic;\n font-size: ${systemFontSize};\n margin-block-end: calc(2.5 * ${spacing});\n `;\n});\n\nStyledDisclaimerText.defaultProps = defaultThemeProp;\n\nexport const StyledBuddyContainer = styled.div(\n ({\n theme: {\n base: { spacing }\n }\n }) => {\n return css`\n padding: calc(2 * ${spacing});\n overflow-y: auto;\n max-height: inherit;\n height: 100%;\n `;\n }\n);\n\nStyledBuddyContainer.defaultProps = defaultThemeProp;\n\nconst StyledBuddyArticleHeader = styled.header``;\n\nconst ArticleBuddy: FunctionComponent<ArticleBuddyProps & ForwardProps> = ({\n query,\n onClear,\n onSubmit,\n title,\n content,\n actions,\n references,\n disclaimer,\n loading = false,\n error = false,\n feedback,\n ...restProps\n}) => {\n const t = useI18n();\n const { locale } = useConfiguration();\n const { announcePolite } = useLiveLog();\n\n useEffect(() => {\n if (content) {\n announcePolite({\n message: t('result_available'),\n type: 'acknowledgement'\n });\n }\n }, [content]);\n\n return (\n <Flex\n {...restProps}\n as={StyledBuddyContainer}\n container={{ direction: 'column', gap: 1 }}\n aria-busy={loading ? true : undefined}\n >\n <TextArea\n {...query}\n autoResize={false}\n onKeyDown={(e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n if (query.value?.trim()) {\n onSubmit();\n }\n }\n }}\n />\n <Flex container={{ gap: 1, justify: 'end' }}>\n {query.value && onClear && (\n <Button\n variant='link'\n onClick={() => {\n onClear();\n }}\n >\n {t('clear')}\n </Button>\n )}\n <AIButton\n label={t('ask')}\n disabled={loading}\n onClick={() => {\n onSubmit();\n }}\n />\n </Flex>\n\n {loading && <Progress visible={!!loading} placement='block' message={t('loading')} />}\n {!loading && title && content && (\n <>\n <article>\n <Flex container={{ alignItems: 'start' }} item={{ grow: 1 }}>\n <Flex\n container={{ pad: [1, undefined] }}\n item={{ grow: 1 }}\n as={StyledBuddyArticleHeader}\n >\n <Text variant='h3'>{title}</Text>\n </Flex>\n\n {actions && <Actions items={actions} />}\n </Flex>\n <Flex container item={{ grow: 1 }}>\n {content}\n </Flex>\n </article>\n {references && (\n <Flex container={{ direction: 'column', gap: 1 }}>\n <Text variant='h3'>{t('references')}</Text>\n {references?.map(reference => {\n return (\n <Flex container key={reference.id}>\n <Flex container={{ alignItems: 'start', gap: 1 }} item={{ grow: 1 }}>\n {isExternalLink(reference) && (\n <Link href={reference.href} target='_blank' key={reference.id}>\n {reference.name}\n </Link>\n )}\n {isInternalArticle(reference) && (\n <Button\n variant='link'\n onClick={(e: MouseEvent<HTMLButtonElement>) =>\n reference.onClick(reference.id, e)\n }\n >\n {reference.name}\n </Button>\n )}\n </Flex>\n {reference.confidence && (\n <Flex container={{ alignItems: 'start' }} item={{ grow: 0 }}>\n <Text>\n {formatNumber(reference.confidence, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n })}\n </Text>\n </Flex>\n )}\n </Flex>\n );\n })}\n </Flex>\n )}\n {feedback && (\n <ArticleFeedback\n comment={feedback.comment}\n reaction={feedback.reaction}\n onReaction={feedback.onReaction}\n onSubmit={feedback.onSubmit}\n />\n )}\n </>\n )}\n {error && !content && !loading && (\n <Flex container={{ justify: 'center', pad: 1, gap: 1 }}>\n <ErrorState message={t('error_message')} />\n </Flex>\n )}\n\n {disclaimer && (\n <Flex container={{ direction: 'column' }}>\n <StyledDisclaimerHeader>{t('disclaimer')}</StyledDisclaimerHeader>\n <StyledDisclaimerText>{disclaimer}</StyledDisclaimerText>\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport default ArticleBuddy;\n"]}
|
|
1
|
+
{"version":3,"file":"ArticleBuddy.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddy.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { FunctionComponent, KeyboardEvent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Flex,\n defaultThemeProp,\n useI18n,\n Button,\n useLiveLog,\n TextArea,\n AIButton,\n Progress,\n getFocusables\n} from '@pega/cosmos-react-core';\nimport type { ForwardProps } from '@pega/cosmos-react-core';\n\nimport type { ArticleBuddyProps } from './ArticleList.types';\nimport ArticleBuddyList from './ArticleBuddyList';\nimport ArticleBuddyResponse from './ArticleBuddyResponse';\n\nexport const StyledQueryContainer = styled.div(\n ({\n theme: {\n base: { spacing, colors }\n }\n }) => {\n return css`\n padding: calc(2 * ${spacing});\n background-color: ${colors.gray['extra-light']};\n `;\n }\n);\n\nStyledQueryContainer.defaultProps = defaultThemeProp;\n\nconst ArticleBuddy: FunctionComponent<ArticleBuddyProps & ForwardProps> = ({\n query,\n onClear,\n onSubmit,\n response,\n list,\n loading,\n ...restProps\n}) => {\n const t = useI18n();\n const buddyRef = useRef<HTMLDivElement>(null);\n const { announcePolite } = useLiveLog();\n\n useEffect(() => {\n if (response?.content) {\n announcePolite({\n message: t('result_available'),\n type: 'acknowledgement'\n });\n }\n }, [response?.content]);\n\n useEffect(() => {\n const focusables = getFocusables(buddyRef);\n if (focusables.length > 0) {\n focusables[0].focus();\n }\n }, []);\n\n return (\n <Flex {...restProps} container={{ direction: 'column' }} ref={buddyRef}>\n <Flex as={StyledQueryContainer} container={{ direction: 'column', gap: 1 }}>\n <TextArea\n {...query}\n autoResize={false}\n onKeyDown={(e: KeyboardEvent<HTMLTextAreaElement>) => {\n if (e.key === 'Enter' && !e.shiftKey) {\n e.preventDefault();\n if (query.value?.trim()) {\n onSubmit();\n }\n }\n }}\n />\n <Flex container={{ gap: 1, justify: 'end' }}>\n {query.value && onClear && (\n <Button\n variant='link'\n onClick={() => {\n onClear();\n }}\n >\n {t('clear')}\n </Button>\n )}\n <AIButton\n label={t('ask')}\n disabled={loading}\n aria-label={t('ask_buddy')}\n onClick={() => {\n onSubmit();\n }}\n />\n </Flex>\n </Flex>\n <Progress visible={!!loading} placement='block' message={t('loading')} />\n {!loading && (\n <>\n {response && <ArticleBuddyResponse {...response} />}\n\n {list && <ArticleBuddyList {...list} />}\n </>\n )}\n </Flex>\n );\n};\n\nexport default ArticleBuddy;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { BuddyListProps } from './ArticleList.types';
|
|
2
|
+
export declare const StyledListContainer: import("styled-components").StyledComponent<"div", import("styled-components").DefaultTheme, {}, never>;
|
|
3
|
+
declare const _default: import("react").ForwardRefExoticComponent<Omit<BuddyListProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
4
|
+
export default _default;
|
|
5
|
+
//# sourceMappingURL=ArticleBuddyList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArticleBuddyList.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddyList.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAG1D,eAAO,MAAM,mBAAmB,yGAQ9B,CAAC;;AAIH,wBAsDE"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import styled, { css } from 'styled-components';
|
|
4
|
+
import { Flex, defaultThemeProp, useI18n, Button, EmptyState, StyledButton } from '@pega/cosmos-react-core';
|
|
5
|
+
import QuestionList from './QuestionList';
|
|
6
|
+
export const StyledListContainer = styled.div(() => {
|
|
7
|
+
return css `
|
|
8
|
+
overflow-y: auto;
|
|
9
|
+
max-height: inherit;
|
|
10
|
+
${StyledButton} {
|
|
11
|
+
margin: auto;
|
|
12
|
+
}
|
|
13
|
+
`;
|
|
14
|
+
});
|
|
15
|
+
StyledListContainer.defaultProps = defaultThemeProp;
|
|
16
|
+
export default forwardRef(function ArticleBuddyList({ autoAnswered, detected, pastQuestions, notRelevantQuestions, showMore = false, onShowMoreToggle, ...restProps }, ref) {
|
|
17
|
+
const t = useI18n();
|
|
18
|
+
return (_jsxs(Flex, { ...restProps, ref: ref, container: { direction: 'column', gap: 1, pad: [1, 2] }, as: StyledListContainer, children: [autoAnswered && autoAnswered.length > 0 && (_jsx(QuestionList, { list: autoAnswered, questionType: 'AUTO_ANSWERED' })), detected && detected.length > 0 && (_jsx(QuestionList, { list: detected, questionType: 'DETECTED' })), pastQuestions && pastQuestions.length > 0 && (_jsx(QuestionList, { list: pastQuestions, questionType: 'PAST_QUESTIONS' })), notRelevantQuestions && notRelevantQuestions.length > 0 && (_jsx(QuestionList, { list: notRelevantQuestions, questionType: 'NOT_RELEVANT' })), !autoAnswered && !detected && !notRelevantQuestions && !pastQuestions && _jsx(EmptyState, {}), onShowMoreToggle && (_jsx(Button, { variant: 'link', as: StyledButton, onClick: () => {
|
|
19
|
+
onShowMoreToggle();
|
|
20
|
+
}, children: t(showMore ? 'show_less' : 'show_more') }))] }));
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=ArticleBuddyList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArticleBuddyList.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddyList.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EACL,IAAI,EACJ,gBAAgB,EAChB,OAAO,EACP,MAAM,EACN,UAAU,EACV,YAAY,EAEb,MAAM,yBAAyB,CAAC;AAGjC,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE;IACjD,OAAO,GAAG,CAAA;;;MAGN,YAAY;;;GAGf,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,mBAAmB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEpD,eAAe,UAAU,CACvB,SAAS,gBAAgB,CACvB,EACE,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,oBAAoB,EACpB,QAAQ,GAAG,KAAK,EAChB,gBAAgB,EAChB,GAAG,SAAS,EACb,EACD,GAAG;IAEH,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,OAAO,CACL,MAAC,IAAI,OACC,SAAS,EACb,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EACvD,EAAE,EAAE,mBAAmB,aAEtB,YAAY,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1C,KAAC,YAAY,IAAC,IAAI,EAAE,YAAY,EAAE,YAAY,EAAC,eAAe,GAAG,CAClE,EAEA,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,KAAC,YAAY,IAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAC,UAAU,GAAG,CACzD,EAEA,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,KAAC,YAAY,IAAC,IAAI,EAAE,aAAa,EAAE,YAAY,EAAC,gBAAgB,GAAG,CACpE,EAEA,oBAAoB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,IAAI,CAC1D,KAAC,YAAY,IAAC,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAC,cAAc,GAAG,CACzE,EAEA,CAAC,YAAY,IAAI,CAAC,QAAQ,IAAI,CAAC,oBAAoB,IAAI,CAAC,aAAa,IAAI,KAAC,UAAU,KAAG,EAEvF,gBAAgB,IAAI,CACnB,KAAC,MAAM,IACL,OAAO,EAAC,MAAM,EACd,EAAE,EAAE,YAAY,EAChB,OAAO,EAAE,GAAG,EAAE;oBACZ,gBAAgB,EAAE,CAAC;gBACrB,CAAC,YAEA,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GACjC,CACV,IACI,CACR,CAAC;AACJ,CAAC,CACF,CAAC","sourcesContent":["import type { PropsWithoutRef } from 'react';\nimport { forwardRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Flex,\n defaultThemeProp,\n useI18n,\n Button,\n EmptyState,\n StyledButton,\n type RefElement\n} from '@pega/cosmos-react-core';\n\nimport type { BuddyListProps } from './ArticleList.types';\nimport QuestionList from './QuestionList';\n\nexport const StyledListContainer = styled.div(() => {\n return css`\n overflow-y: auto;\n max-height: inherit;\n ${StyledButton} {\n margin: auto;\n }\n `;\n});\n\nStyledListContainer.defaultProps = defaultThemeProp;\n\nexport default forwardRef<RefElement<BuddyListProps>, PropsWithoutRef<BuddyListProps>>(\n function ArticleBuddyList(\n {\n autoAnswered,\n detected,\n pastQuestions,\n notRelevantQuestions,\n showMore = false,\n onShowMoreToggle,\n ...restProps\n },\n ref\n ) {\n const t = useI18n();\n\n return (\n <Flex\n {...restProps}\n ref={ref}\n container={{ direction: 'column', gap: 1, pad: [1, 2] }}\n as={StyledListContainer}\n >\n {autoAnswered && autoAnswered.length > 0 && (\n <QuestionList list={autoAnswered} questionType='AUTO_ANSWERED' />\n )}\n\n {detected && detected.length > 0 && (\n <QuestionList list={detected} questionType='DETECTED' />\n )}\n\n {pastQuestions && pastQuestions.length > 0 && (\n <QuestionList list={pastQuestions} questionType='PAST_QUESTIONS' />\n )}\n\n {notRelevantQuestions && notRelevantQuestions.length > 0 && (\n <QuestionList list={notRelevantQuestions} questionType='NOT_RELEVANT' />\n )}\n\n {!autoAnswered && !detected && !notRelevantQuestions && !pastQuestions && <EmptyState />}\n\n {onShowMoreToggle && (\n <Button\n variant='link'\n as={StyledButton}\n onClick={() => {\n onShowMoreToggle();\n }}\n >\n {t(showMore ? 'show_less' : 'show_more')}\n </Button>\n )}\n </Flex>\n );\n }\n);\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FunctionComponent } from 'react';
|
|
2
|
+
import type { ForwardProps } from '@pega/cosmos-react-core';
|
|
3
|
+
import type { BuddyResponseProps } from './ArticleList.types';
|
|
4
|
+
export declare const StyledDisclaimerHeader: import("styled-components").StyledComponent<FunctionComponent<import("@pega/cosmos-react-core").TextProps & ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
5
|
+
export declare const StyledDisclaimerText: import("styled-components").StyledComponent<FunctionComponent<import("@pega/cosmos-react-core").TextProps & ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
6
|
+
export declare const StyledBackButton: import("styled-components").StyledComponent<FunctionComponent<import("@pega/cosmos-react-core").ButtonProps & ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
7
|
+
declare const ArticleBuddyResponse: FunctionComponent<BuddyResponseProps & ForwardProps>;
|
|
8
|
+
export default ArticleBuddyResponse;
|
|
9
|
+
//# sourceMappingURL=ArticleBuddyResponse.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArticleBuddyResponse.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddyResponse.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAc,MAAM,OAAO,CAAC;AAmB3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAK5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAK9D,eAAO,MAAM,sBAAsB,iLAUjC,CAAC;AAIH,eAAO,MAAM,oBAAoB,iLAW/B,CAAC;AAMH,eAAO,MAAM,gBAAgB,mLAS3B,CAAC;AAIH,QAAA,MAAM,oBAAoB,EAAE,iBAAiB,CAAC,kBAAkB,GAAG,YAAY,CAkH9E,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useRef } from 'react';
|
|
3
|
+
import styled, { css } from 'styled-components';
|
|
4
|
+
import { Text, Actions, Flex, defaultThemeProp, useI18n, Link, calculateFontSize, Button, useConfiguration, formatNumber, ErrorState, Icon, useDirection, registerIcon } from '@pega/cosmos-react-core';
|
|
5
|
+
import * as caretLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-left.icon';
|
|
6
|
+
import * as caretRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-right.icon';
|
|
7
|
+
import { isExternalLink, isInternalArticle } from './ArticleList.types';
|
|
8
|
+
import ArticleFeedback from './ArticleFeedback';
|
|
9
|
+
registerIcon(caretLeftIcon, caretRightIcon);
|
|
10
|
+
export const StyledDisclaimerHeader = styled(Text)(({ theme: { base: { spacing, palette } } }) => {
|
|
11
|
+
return css `
|
|
12
|
+
font-weight: bold;
|
|
13
|
+
border-block-start: 0.0625rem solid ${palette['border-line']};
|
|
14
|
+
padding-block: ${spacing};
|
|
15
|
+
`;
|
|
16
|
+
});
|
|
17
|
+
StyledDisclaimerHeader.defaultProps = defaultThemeProp;
|
|
18
|
+
export const StyledDisclaimerText = styled(Text)(({ theme: { base: { 'font-size': fontSize, 'font-scale': fontScale, spacing } } }) => {
|
|
19
|
+
const systemFontSize = calculateFontSize(fontSize, fontScale).xs;
|
|
20
|
+
return css `
|
|
21
|
+
font-style: italic;
|
|
22
|
+
font-size: ${systemFontSize};
|
|
23
|
+
margin-block-end: calc(2.5 * ${spacing});
|
|
24
|
+
`;
|
|
25
|
+
});
|
|
26
|
+
StyledDisclaimerText.defaultProps = defaultThemeProp;
|
|
27
|
+
const StyledBuddyArticleHeader = styled.header ``;
|
|
28
|
+
export const StyledBackButton = styled(Button)(({ theme: { base: { spacing } } }) => {
|
|
29
|
+
return css `
|
|
30
|
+
align-self: flex-start;
|
|
31
|
+
margin-block: ${spacing};
|
|
32
|
+
`;
|
|
33
|
+
});
|
|
34
|
+
StyledBackButton.defaultProps = defaultThemeProp;
|
|
35
|
+
const ArticleBuddyResponse = ({ title, content, references, actions, feedback, error = false, disclaimer, onBackNavigation, ...restProps }) => {
|
|
36
|
+
const t = useI18n();
|
|
37
|
+
const { locale } = useConfiguration();
|
|
38
|
+
const backButtonRef = useRef(null);
|
|
39
|
+
const { rtl, ltr, end, start } = useDirection();
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (backButtonRef)
|
|
42
|
+
backButtonRef.current?.focus();
|
|
43
|
+
}, []);
|
|
44
|
+
return (_jsxs(Flex, { ...restProps, container: { direction: 'column', pad: [undefined, 2] }, children: [title && content && (_jsxs(_Fragment, { children: [onBackNavigation && (_jsxs(StyledBackButton, { onClick: onBackNavigation, variant: 'link', ref: backButtonRef, children: [ltr && _jsx(Icon, { name: `caret-${start}` }), t('back_to_ai_suggestions'), rtl && _jsx(Icon, { name: `caret-${end}` })] })), _jsxs("article", { children: [_jsxs(Flex, { container: { alignItems: 'start' }, item: { grow: 1 }, children: [_jsx(Flex, { container: { pad: [1, undefined] }, item: { grow: 1 }, as: StyledBuddyArticleHeader, children: _jsx(Text, { variant: 'h3', children: title }) }), actions && _jsx(Actions, { items: actions })] }), _jsx(Flex, { container: true, item: { grow: 1 }, children: content })] }), references && (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [_jsx(Text, { variant: 'h3', children: t('references') }), references?.map(reference => {
|
|
45
|
+
return (_jsxs(Flex, { container: true, children: [_jsxs(Flex, { container: { alignItems: 'start', gap: 1 }, item: { grow: 1 }, children: [isExternalLink(reference) && (_jsx(Link, { href: reference.href, target: '_blank', children: reference.name }, reference.id)), isInternalArticle(reference) && (_jsx(Button, { variant: 'link', onClick: (e) => reference.onClick(reference.id, e), children: reference.name }))] }), reference.confidence && (_jsx(Flex, { container: { alignItems: 'start' }, item: { grow: 0 }, children: _jsx(Text, { children: formatNumber(reference.confidence, {
|
|
46
|
+
locale,
|
|
47
|
+
options: {
|
|
48
|
+
style: 'unit',
|
|
49
|
+
unit: 'percent',
|
|
50
|
+
maximumFractionDigits: 0
|
|
51
|
+
}
|
|
52
|
+
}) }) }))] }, reference.id));
|
|
53
|
+
})] })), feedback && (_jsx(ArticleFeedback, { comment: feedback.comment, reaction: feedback.reaction, onReaction: feedback.onReaction, onSubmit: feedback.onSubmit }))] })), error && !content && (_jsx(Flex, { container: { justify: 'center', pad: 1, gap: 1 }, children: _jsx(ErrorState, { message: t('error_message') }) })), disclaimer && (_jsxs(Flex, { container: { direction: 'column' }, children: [_jsx(StyledDisclaimerHeader, { children: t('disclaimer') }), _jsx(StyledDisclaimerText, { children: disclaimer })] }))] }));
|
|
54
|
+
};
|
|
55
|
+
export default ArticleBuddyResponse;
|
|
56
|
+
//# sourceMappingURL=ArticleBuddyResponse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ArticleBuddyResponse.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleBuddyResponse.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useRef } from 'react';\nimport type { FunctionComponent, MouseEvent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Text,\n Actions,\n Flex,\n defaultThemeProp,\n useI18n,\n Link,\n calculateFontSize,\n Button,\n useConfiguration,\n formatNumber,\n ErrorState,\n Icon,\n useDirection,\n registerIcon\n} from '@pega/cosmos-react-core';\nimport type { ForwardProps } from '@pega/cosmos-react-core';\nimport * as caretLeftIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/caret-right.icon';\n\nimport { isExternalLink, isInternalArticle } from './ArticleList.types';\nimport type { BuddyResponseProps } from './ArticleList.types';\nimport ArticleFeedback from './ArticleFeedback';\n\nregisterIcon(caretLeftIcon, caretRightIcon);\n\nexport const StyledDisclaimerHeader = styled(Text)(({\n theme: {\n base: { spacing, palette }\n }\n}) => {\n return css`\n font-weight: bold;\n border-block-start: 0.0625rem solid ${palette['border-line']};\n padding-block: ${spacing};\n `;\n});\n\nStyledDisclaimerHeader.defaultProps = defaultThemeProp;\n\nexport const StyledDisclaimerText = styled(Text)(({\n theme: {\n base: { 'font-size': fontSize, 'font-scale': fontScale, spacing }\n }\n}) => {\n const systemFontSize = calculateFontSize(fontSize, fontScale).xs;\n return css`\n font-style: italic;\n font-size: ${systemFontSize};\n margin-block-end: calc(2.5 * ${spacing});\n `;\n});\n\nStyledDisclaimerText.defaultProps = defaultThemeProp;\n\nconst StyledBuddyArticleHeader = styled.header``;\n\nexport const StyledBackButton = styled(Button)(({\n theme: {\n base: { spacing }\n }\n}) => {\n return css`\n align-self: flex-start;\n margin-block: ${spacing};\n `;\n});\n\nStyledBackButton.defaultProps = defaultThemeProp;\n\nconst ArticleBuddyResponse: FunctionComponent<BuddyResponseProps & ForwardProps> = ({\n title,\n content,\n references,\n actions,\n feedback,\n error = false,\n disclaimer,\n onBackNavigation,\n ...restProps\n}) => {\n const t = useI18n();\n const { locale } = useConfiguration();\n const backButtonRef = useRef<HTMLButtonElement>(null);\n const { rtl, ltr, end, start } = useDirection();\n\n useEffect(() => {\n if (backButtonRef) backButtonRef.current?.focus();\n }, []);\n\n return (\n <Flex {...restProps} container={{ direction: 'column', pad: [undefined, 2] }}>\n {title && content && (\n <>\n {onBackNavigation && (\n <StyledBackButton onClick={onBackNavigation} variant='link' ref={backButtonRef}>\n {ltr && <Icon name={`caret-${start}`} />}\n {t('back_to_ai_suggestions')}\n {rtl && <Icon name={`caret-${end}`} />}\n </StyledBackButton>\n )}\n\n <article>\n <Flex container={{ alignItems: 'start' }} item={{ grow: 1 }}>\n <Flex\n container={{ pad: [1, undefined] }}\n item={{ grow: 1 }}\n as={StyledBuddyArticleHeader}\n >\n <Text variant='h3'>{title}</Text>\n </Flex>\n\n {actions && <Actions items={actions} />}\n </Flex>\n <Flex container item={{ grow: 1 }}>\n {content}\n </Flex>\n </article>\n {references && (\n <Flex container={{ direction: 'column', gap: 1 }}>\n <Text variant='h3'>{t('references')}</Text>\n {references?.map(reference => {\n return (\n <Flex container key={reference.id}>\n <Flex container={{ alignItems: 'start', gap: 1 }} item={{ grow: 1 }}>\n {isExternalLink(reference) && (\n <Link href={reference.href} target='_blank' key={reference.id}>\n {reference.name}\n </Link>\n )}\n {isInternalArticle(reference) && (\n <Button\n variant='link'\n onClick={(e: MouseEvent<HTMLButtonElement>) =>\n reference.onClick(reference.id, e)\n }\n >\n {reference.name}\n </Button>\n )}\n </Flex>\n {reference.confidence && (\n <Flex container={{ alignItems: 'start' }} item={{ grow: 0 }}>\n <Text>\n {formatNumber(reference.confidence, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n })}\n </Text>\n </Flex>\n )}\n </Flex>\n );\n })}\n </Flex>\n )}\n {feedback && (\n <ArticleFeedback\n comment={feedback.comment}\n reaction={feedback.reaction}\n onReaction={feedback.onReaction}\n onSubmit={feedback.onSubmit}\n />\n )}\n </>\n )}\n {error && !content && (\n <Flex container={{ justify: 'center', pad: 1, gap: 1 }}>\n <ErrorState message={t('error_message')} />\n </Flex>\n )}\n\n {disclaimer && (\n <Flex container={{ direction: 'column' }}>\n <StyledDisclaimerHeader>{t('disclaimer')}</StyledDisclaimerHeader>\n <StyledDisclaimerText>{disclaimer}</StyledDisclaimerText>\n </Flex>\n )}\n </Flex>\n );\n};\n\nexport default ArticleBuddyResponse;\n"]}
|
|
@@ -47,7 +47,7 @@ type Reference = ExternalLinkProps | InternalArticleProps;
|
|
|
47
47
|
export type Reaction = 'liked' | 'disliked' | undefined;
|
|
48
48
|
export interface ArticleFeedbackProps {
|
|
49
49
|
/** Handles comment section */
|
|
50
|
-
comment:
|
|
50
|
+
comment: Pick<TextAreaProps, 'value' | 'placeholder' | 'onChange' | 'label' | 'labelHidden'>;
|
|
51
51
|
/** handles reaction */
|
|
52
52
|
reaction: Reaction;
|
|
53
53
|
/** Callback to handle reaction */
|
|
@@ -58,13 +58,7 @@ export interface ArticleFeedbackProps {
|
|
|
58
58
|
comment: string;
|
|
59
59
|
}, e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLTextAreaElement>) => void;
|
|
60
60
|
}
|
|
61
|
-
export interface
|
|
62
|
-
/** search params */
|
|
63
|
-
query: ArticleFeedbackProps['comment'];
|
|
64
|
-
/** callback to fetch the search result */
|
|
65
|
-
onSubmit: () => void;
|
|
66
|
-
/** callback to clear the textArea */
|
|
67
|
-
onClear: () => void;
|
|
61
|
+
export interface BuddyResponseProps {
|
|
68
62
|
/** title of the search content */
|
|
69
63
|
title?: string;
|
|
70
64
|
/** Main body of search content */
|
|
@@ -79,7 +73,8 @@ export interface ArticleBuddyProps {
|
|
|
79
73
|
* Optionally renders an indeterminate progress indicator while result are being fetched.
|
|
80
74
|
* @default false
|
|
81
75
|
*/
|
|
82
|
-
|
|
76
|
+
/** back button from the response */
|
|
77
|
+
onBackNavigation?: (e: MouseEvent<HTMLButtonElement>) => void;
|
|
83
78
|
/**
|
|
84
79
|
* error state
|
|
85
80
|
* @default false
|
|
@@ -88,6 +83,32 @@ export interface ArticleBuddyProps {
|
|
|
88
83
|
/** Feedback for buddy response */
|
|
89
84
|
feedback?: ArticleFeedbackProps;
|
|
90
85
|
}
|
|
86
|
+
export interface AutoAnsweredItem {
|
|
87
|
+
id: string;
|
|
88
|
+
query: string;
|
|
89
|
+
onTitleClick: (id: string) => void;
|
|
90
|
+
actions?: Action[];
|
|
91
|
+
abstract: string;
|
|
92
|
+
}
|
|
93
|
+
export interface DetectedItem extends OmitStrict<AutoAnsweredItem, 'abstract'> {
|
|
94
|
+
confidence?: number;
|
|
95
|
+
}
|
|
96
|
+
export type BuddyListProps = WithAttributes<'div', NoChildrenProp & {
|
|
97
|
+
autoAnswered?: AutoAnsweredItem[];
|
|
98
|
+
detected?: DetectedItem[];
|
|
99
|
+
pastQuestions?: string[];
|
|
100
|
+
notRelevantQuestions?: string[];
|
|
101
|
+
showMore?: boolean;
|
|
102
|
+
onShowMoreToggle?: () => void;
|
|
103
|
+
}>;
|
|
104
|
+
export interface ArticleBuddyProps {
|
|
105
|
+
query: ArticleFeedbackProps['comment'];
|
|
106
|
+
onSubmit: () => void;
|
|
107
|
+
onClear: () => void;
|
|
108
|
+
loading?: boolean;
|
|
109
|
+
list?: BuddyListProps;
|
|
110
|
+
response?: BuddyResponseProps;
|
|
111
|
+
}
|
|
91
112
|
export declare const isExternalLink: (reference: Reference) => reference is ExternalLinkProps;
|
|
92
113
|
export declare const isInternalArticle: (reference: Reference) => reference is InternalArticleProps;
|
|
93
114
|
export interface Articles {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArticleList.types.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAErF,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAChG,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,GAAG;QACxD,UAAU,EAAE,CACV,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAC3C,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,KACrC,IAAI,CAAC;KACX,CAAC;IACF,wCAAwC;IACxC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAChD,IAAI,EACJ,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC,GAAG,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC,CAC3F,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACnF,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE1D,uBAAuB;AACvB,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ArticleList.types.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAErF,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,WAAW,mBAAoB,SAAQ,SAAS;IACpD,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAChG,+DAA+D;IAC/D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,UAAU,CAAC,kBAAkB,EAAE,YAAY,CAAC,GAAG;QACxD,UAAU,EAAE,CACV,SAAS,EAAE,mBAAmB,CAAC,WAAW,CAAC,EAC3C,QAAQ,EAAE,kBAAkB,CAAC,UAAU,CAAC,KACrC,IAAI,CAAC;KACX,CAAC;IACF,wCAAwC;IACxC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;CAC7D;AAED,MAAM,MAAM,qBAAqB,GAAG,cAAc,CAChD,IAAI,EACJ,cAAc,GAAG;IACf,KAAK,CAAC,EAAE,kBAAkB,CAAC,OAAO,CAAC,CAAC;CACrC,GAAG,IAAI,CAAC,mBAAmB,EAAE,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,GAAG,SAAS,CAAC,CAC3F,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpF,MAAM,MAAM,oBAAoB,GAAG,kBAAkB,GAAG;IACtD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,CAAC,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;CACnF,CAAC;AAEF,KAAK,SAAS,GAAG,iBAAiB,GAAG,oBAAoB,CAAC;AAE1D,uBAAuB;AACvB,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAExD,MAAM,WAAW,oBAAoB;IACnC,8BAA8B;IAC9B,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,GAAG,UAAU,GAAG,OAAO,GAAG,aAAa,CAAC,CAAC;IAC7F,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,kCAAkC;IAClC,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IACzC,sCAAsC;IACtC,QAAQ,EAAE,CACR,QAAQ,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACjD,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,GAAG,aAAa,CAAC,mBAAmB,CAAC,KAClE,IAAI,CAAC;CACX;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,gCAAgC;IAChC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uCAAuC;IACvC,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;OAGG;IAEH,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAE9D;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,YAAa,SAAQ,UAAU,CAAC,gBAAgB,EAAE,UAAU,CAAC;IAC5E,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,cAAc,GAAG,cAAc,CACzC,KAAK,EACL,cAAc,GAAG;IACf,YAAY,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAClC,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B,CACF,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,oBAAoB,CAAC,SAAS,CAAC,CAAC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,eAAO,MAAM,cAAc,cAAe,SAAS,mCAElD,CAAC;AAEF,eAAO,MAAM,iBAAiB,cAAe,SAAS,sCAErD,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,uBAAuB;IACvB,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,wBAAwB;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,WAAW,EAAE,UAAU,CACrB,gBAAgB,EACd,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,gBAAgB,GAChB,oBAAoB,GACpB,gBAAgB,CACnB,CAAC;IACF,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,UAAU,CACnB,aAAa,EACX,IAAI,GACJ,aAAa,GACb,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,SAAS,GACT,gBAAgB,CACnB,CAAC;IACF,yCAAyC;IACzC,MAAM,CAAC,EAAE,UAAU,CACjB,aAAa,EACX,IAAI,GACJ,aAAa,GACb,UAAU,GACV,UAAU,GACV,UAAU,GACV,QAAQ,GACR,MAAM,GACN,MAAM,GACN,SAAS,GACT,gBAAgB,GAChB,UAAU,GACV,OAAO,CACV,CAAC;IACF,kDAAkD;IAClD,YAAY,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACpD,uCAAuC;IACvC,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,0DAA0D;IAC1D,uBAAuB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,yCAAyC;IACzC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAC9C;IACE,2CAA2C;IAC3C,MAAM,CAAC,EAAE,sBAAsB,CAAC;IAChC,iCAAiC;IACjC,SAAS,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,GAAG;QACjD,mBAAmB,CAAC,EAAE,qBAAqB,EAAE,CAAC;KAC/C,CAAC;IACF,gCAAgC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,iBAAiB,CAAC;KAC5B,CAAC;IACF,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC/F;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,CACnB,gBAAgB,EAAE,WAAW,EAC7B,KAAK,EAAE,UAAU,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KACrD,IAAI,CAAC;IACV,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,EACD,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAC9C,CAAC;AAEF,MAAM,WAAW,WAAW;IAC1B,gCAAgC;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArticleList.types.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ArticleList.types.js","sourceRoot":"","sources":["../../../src/components/ArticleList/ArticleList.types.ts"],"names":[],"mappings":"AAkJA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAkC,EAAE;IACrF,OAAO,SAAS,CAAC,IAAI,KAAK,MAAM,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,SAAoB,EAAqC,EAAE;IAC3F,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ,CAAC;AACrC,CAAC,CAAC","sourcesContent":["import type { MouseEvent, MouseEventHandler, ReactNode, KeyboardEvent } from 'react';\n\nimport type {\n Action,\n BaseProps,\n ComboBoxProps,\n NoChildrenProp,\n NumberDisplayProps,\n OmitStrict,\n RequireAtLeastOne,\n SearchInputProps,\n TextAreaProps,\n WithAttributes\n} from '@pega/cosmos-react-core';\n\nimport type { ArticleRatingProps } from '../Article/ArticleRating';\nimport type { ArticleMetaProps } from '../Article/ArticleMeta';\n\nexport interface ArticleSummaryProps extends BaseProps {\n /** Unique id of article */\n articleId: string;\n /** URL or DOM id to navigate to. This will render the nav item as a link. */\n href?: string;\n /** Article title */\n title: string;\n /** Article content */\n abstract: string;\n /** Callback fired when article title is clicked */\n onTitleClick?: (id?: string, event?: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /** Primary actions which needs to be displayed with an icon */\n actions?: Action[];\n /** A list of elements to be rendered within a MetaList. */\n meta?: ArticleMetaProps;\n /** Rating - likes and dislikes of the article. */\n feedback?: OmitStrict<ArticleRatingProps, 'onReaction'> & {\n onReaction: (\n articleId: ArticleSummaryProps['articleId'],\n reaction: ArticleRatingProps['reaction']\n ) => void;\n };\n /** Quick filters to filter articles. */\n quickFilters?: QuickFilter[];\n /** callback fired when quick filter is clicked */\n onQuickFilterClick?: ArticleListProps['onQuickFilterClick'];\n}\n\nexport type AIArticleSummaryProps = WithAttributes<\n 'li',\n NoChildrenProp & {\n score?: NumberDisplayProps['value'];\n } & Pick<ArticleSummaryProps, 'articleId' | 'href' | 'title' | 'onTitleClick' | 'actions'>\n>;\n\nexport interface BaseReferenceProps {\n id: string;\n name: string;\n confidence?: number;\n}\n\nexport type ExternalLinkProps = BaseReferenceProps & { type: 'link'; href: string };\n\nexport type InternalArticleProps = BaseReferenceProps & {\n type: 'object';\n onClick: (id: BaseReferenceProps['id'], e: MouseEvent<HTMLButtonElement>) => void;\n};\n\ntype Reference = ExternalLinkProps | InternalArticleProps;\n\n/** Handles reaction */\nexport type Reaction = 'liked' | 'disliked' | undefined;\n\nexport interface ArticleFeedbackProps {\n /** Handles comment section */\n comment: Pick<TextAreaProps, 'value' | 'placeholder' | 'onChange' | 'label' | 'labelHidden'>;\n /** handles reaction */\n reaction: Reaction;\n /** Callback to handle reaction */\n onReaction: (reaction: Reaction) => void;\n /** Callback on the click of submit */\n onSubmit: (\n feedback: { reaction: Reaction; comment: string },\n e: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLTextAreaElement>\n ) => void;\n}\n\nexport interface BuddyResponseProps {\n /** title of the search content */\n title?: string;\n /** Main body of search content */\n content?: ReactNode;\n /** Action for share and copy */\n actions?: Action[];\n /** References with confidence level */\n references?: Reference[];\n /** Disclaimer for the genAI response */\n disclaimer?: string;\n /**\n * Optionally renders an indeterminate progress indicator while result are being fetched.\n * @default false\n */\n\n /** back button from the response */\n onBackNavigation?: (e: MouseEvent<HTMLButtonElement>) => void;\n\n /**\n * error state\n * @default false\n */\n error?: boolean;\n /** Feedback for buddy response */\n feedback?: ArticleFeedbackProps;\n}\n\nexport interface AutoAnsweredItem {\n id: string;\n query: string;\n onTitleClick: (id: string) => void;\n actions?: Action[];\n abstract: string;\n}\n\nexport interface DetectedItem extends OmitStrict<AutoAnsweredItem, 'abstract'> {\n confidence?: number;\n}\n\nexport type BuddyListProps = WithAttributes<\n 'div',\n NoChildrenProp & {\n autoAnswered?: AutoAnsweredItem[];\n detected?: DetectedItem[];\n pastQuestions?: string[];\n notRelevantQuestions?: string[];\n showMore?: boolean;\n onShowMoreToggle?: () => void;\n }\n>;\n\nexport interface ArticleBuddyProps {\n query: ArticleFeedbackProps['comment'];\n onSubmit: () => void;\n onClear: () => void;\n loading?: boolean;\n list?: BuddyListProps;\n response?: BuddyResponseProps;\n}\n\nexport const isExternalLink = (reference: Reference): reference is ExternalLinkProps => {\n return reference.type === 'link';\n};\n\nexport const isInternalArticle = (reference: Reference): reference is InternalArticleProps => {\n return reference.type === 'object';\n};\n\nexport interface Articles {\n /** List of articles */\n articles: ArticleSummaryProps[];\n /** count of articles */\n count?: number;\n /** Props related to the Search Input. */\n searchInput: OmitStrict<\n SearchInputProps,\n | 'placeholder'\n | 'onSearchSubmit'\n | 'searchResults'\n | 'recentSearches'\n | 'advancedSearchLink'\n | 'resultsPopover'\n >;\n /** Props related to the Category Input. */\n category?: OmitStrict<\n ComboBoxProps,\n | 'id'\n | 'labelHidden'\n | 'required'\n | 'disabled'\n | 'readOnly'\n | 'status'\n | 'info'\n | 'actions'\n | 'additionalInfo'\n >;\n /** Props related to the SortBy Input. */\n sortBy?: OmitStrict<\n ComboBoxProps,\n | 'id'\n | 'labelHidden'\n | 'required'\n | 'disabled'\n | 'readOnly'\n | 'status'\n | 'info'\n | 'mode'\n | 'actions'\n | 'additionalInfo'\n | 'onChange'\n | 'value'\n >;\n /** Callback fired when clear button is clicked */\n onClearClick?: MouseEventHandler<HTMLButtonElement>;\n /** Quick filters to filter articles */\n quickFilters?: QuickFilter[];\n /** Callback fired when applied quick filter is removed */\n handleQuickFilterRemove?: (id: string) => void;\n /** Prop to enable show / hide results */\n showResults?: boolean;\n}\n\nexport interface ArticleListHeaderProps {\n /** Title of article list */\n title: string;\n /** Article list header icon */\n icon?: string;\n /** Actions which needs to be displayed with an icon */\n actions?: Action[];\n}\n\nexport type ArticleListProps = RequireAtLeastOne<\n {\n /** Props related to article list header */\n header?: ArticleListHeaderProps;\n /** Data of suggested articles */\n suggested?: Pick<Articles, 'articles' | 'count'> & {\n aiSuggestedArticles?: AIArticleSummaryProps[];\n };\n /** Data of followed articles */\n followed?: Articles;\n /** Data of search articles */\n search?: Articles;\n buddy?: {\n title: string;\n content: ArticleBuddyProps;\n };\n /** current active tab whose list has to be rendered */\n activeTab: string;\n /** Callback fired when tab is clicked */\n onTabClick?: (name: string, event?: MouseEvent<HTMLButtonElement | HTMLAnchorElement>) => void;\n /**\n * Optionally renders an indeterminate progress indicator while articles are being fetched.\n * @default false\n */\n loading?: boolean;\n /**\n * Optionally renders an indeterminate progress indicator while progressively fetching articles\n * @default false\n */\n loadingMore?: boolean;\n /** callback fired when quick filter is clicked */\n onQuickFilterClick?: (\n quickFilterParam: QuickFilter,\n event: MouseEvent<HTMLButtonElement | HTMLAnchorElement>\n ) => void;\n /** Callback to fetch more rows */\n onLoadMore?: () => void;\n },\n 'suggested' | 'followed' | 'search' | 'buddy'\n>;\n\nexport interface QuickFilter {\n /** Unique id of quick Filter */\n id: string;\n /** Name of quick Filter */\n name: string;\n}\n\nexport type ArticleListTabId = 'Suggested' | 'Followed' | 'Search' | 'Buddy';\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { NoChildrenProp, WithAttributes } from '@pega/cosmos-react-core';
|
|
2
|
+
import type { AutoAnsweredItem, DetectedItem } from './ArticleList.types';
|
|
3
|
+
export declare const StyledListItem: import("styled-components").StyledComponent<"li", import("styled-components").DefaultTheme, {}, never>;
|
|
4
|
+
export declare const StyledList: import("styled-components").StyledComponent<"ul", import("styled-components").DefaultTheme, {}, never>;
|
|
5
|
+
export declare const StyledAbstract: import("styled-components").StyledComponent<import("react").FunctionComponent<import("@pega/cosmos-react-core").TextProps & import("@pega/cosmos-react-core").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
6
|
+
type List = AutoAnsweredItem[] | DetectedItem[] | string[];
|
|
7
|
+
type QuestionListProps = WithAttributes<'div', NoChildrenProp & {
|
|
8
|
+
list: List;
|
|
9
|
+
questionType: 'AUTO_ANSWERED' | 'DETECTED' | 'PAST_QUESTIONS' | 'NOT_RELEVANT';
|
|
10
|
+
}>;
|
|
11
|
+
declare const _default: import("react").ForwardRefExoticComponent<Omit<QuestionListProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
12
|
+
export default _default;
|
|
13
|
+
//# sourceMappingURL=QuestionList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionList.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/QuestionList.tsx"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,cAAc,EAAc,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE1F,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAI1E,eAAO,MAAM,cAAc,wGAU1B,CAAC;AAIF,eAAO,MAAM,UAAU,wGAUtB,CAAC;AAIF,eAAO,MAAM,cAAc,mOAIzB,CAAC;AAIH,KAAK,IAAI,GAAG,gBAAgB,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;AAgB3D,KAAK,iBAAiB,GAAG,cAAc,CACrC,KAAK,EACL,cAAc,GAAG;IACf,IAAI,EAAE,IAAI,CAAC;IACX,YAAY,EAAE,eAAe,GAAG,UAAU,GAAG,gBAAgB,GAAG,cAAc,CAAC;CAChF,CACF,CAAC;;AAEF,wBAyHE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { forwardRef } from 'react';
|
|
3
|
+
import styled, { css } from 'styled-components';
|
|
4
|
+
import { Text, Actions, Flex, defaultThemeProp, Button, Icon, registerIcon, createUID, useTheme, formatNumber, useConfiguration, useI18n, VisuallyHiddenText } from '@pega/cosmos-react-core';
|
|
5
|
+
import { lineClamp } from '@pega/cosmos-react-core/lib/styles/mixins';
|
|
6
|
+
import * as PolarisIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';
|
|
7
|
+
registerIcon(PolarisIcon);
|
|
8
|
+
export const StyledListItem = styled.li(({ theme: { base: { palette } } }) => {
|
|
9
|
+
return css `
|
|
10
|
+
border-block-end: 0.0625rem solid ${palette['border-line']};
|
|
11
|
+
`;
|
|
12
|
+
});
|
|
13
|
+
StyledListItem.defaultProps = defaultThemeProp;
|
|
14
|
+
export const StyledList = styled.ul(({ theme: { base: { palette } } }) => {
|
|
15
|
+
return css `
|
|
16
|
+
border-block-end: 0.0625rem solid ${palette['border-line']};
|
|
17
|
+
`;
|
|
18
|
+
});
|
|
19
|
+
StyledList.defaultProps = defaultThemeProp;
|
|
20
|
+
export const StyledAbstract = styled(Text)(() => {
|
|
21
|
+
return css `
|
|
22
|
+
${lineClamp(3)}
|
|
23
|
+
`;
|
|
24
|
+
});
|
|
25
|
+
StyledAbstract.defaultProps = defaultThemeProp;
|
|
26
|
+
function isAutoAnsweredItem(item) {
|
|
27
|
+
return 'abstract' in item;
|
|
28
|
+
}
|
|
29
|
+
function isDetectedItem(item) {
|
|
30
|
+
return 'confidence' in item;
|
|
31
|
+
}
|
|
32
|
+
export default forwardRef(function QuestionList({ list, questionType }, ref) {
|
|
33
|
+
const theme = useTheme();
|
|
34
|
+
const t = useI18n();
|
|
35
|
+
const { locale } = useConfiguration();
|
|
36
|
+
const listHeaderId = createUID();
|
|
37
|
+
const titleMap = {
|
|
38
|
+
AUTO_ANSWERED: 'auto_answered',
|
|
39
|
+
DETECTED: 'questions_detected',
|
|
40
|
+
PAST_QUESTIONS: 'past_answered_questions',
|
|
41
|
+
NOT_RELEVANT: 'not_relevant_questions'
|
|
42
|
+
};
|
|
43
|
+
switch (questionType) {
|
|
44
|
+
case 'AUTO_ANSWERED':
|
|
45
|
+
case 'DETECTED':
|
|
46
|
+
return (_jsxs(_Fragment, { children: [_jsxs(Flex, { container: { gap: 0.5, pad: [0.5, undefined, undefined] }, ref: ref, children: [_jsx(Icon, { name: 'polaris-solid', color: theme.base.palette.ai }), _jsx(Text, { variant: 'h3', "aria-describedby": listHeaderId, children: t(titleMap[questionType]) }), _jsx(VisuallyHiddenText, { id: listHeaderId, children: `${t(titleMap[questionType])} ${t('ai_generated')}` })] }), _jsx(Flex, { container: { direction: 'column' }, children: list.map((item) => {
|
|
47
|
+
if (typeof item !== 'string') {
|
|
48
|
+
const { id, query, actions, onTitleClick } = item;
|
|
49
|
+
const abstract = isAutoAnsweredItem(item) ? item.abstract : undefined;
|
|
50
|
+
const confidence = isDetectedItem(item) && item.confidence;
|
|
51
|
+
return (_jsx(_Fragment, { children: (questionType === 'AUTO_ANSWERED' || questionType === 'DETECTED') && (_jsxs(Flex, { container: { direction: 'column', pad: [1, undefined] }, as: StyledListItem, children: [_jsxs(Flex, { container: { alignItems: 'start' }, item: { grow: 1 }, children: [_jsx(Flex, { container: {
|
|
52
|
+
pad: [undefined, undefined, 0.5]
|
|
53
|
+
}, item: { grow: 1 }, children: _jsx(Button, { variant: 'link', onClick: () => {
|
|
54
|
+
onTitleClick(id);
|
|
55
|
+
}, children: query }) }), actions && _jsx(Actions, { items: actions })] }), abstract && _jsx(StyledAbstract, { children: abstract }), confidence && (_jsxs(Text, { variant: 'secondary', children: [t('confidence'), ":", formatNumber(confidence, {
|
|
56
|
+
locale,
|
|
57
|
+
options: {
|
|
58
|
+
style: 'unit',
|
|
59
|
+
unit: 'percent',
|
|
60
|
+
maximumFractionDigits: 0
|
|
61
|
+
}
|
|
62
|
+
})] }))] }, id)) }));
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}) })] }));
|
|
66
|
+
case 'PAST_QUESTIONS':
|
|
67
|
+
case 'NOT_RELEVANT':
|
|
68
|
+
return (_jsxs(Flex, { container: { direction: 'column', gap: 0.5 }, children: [_jsx(Text, { variant: 'h3', children: t(titleMap[questionType]) }), list.length && (_jsx(StyledList, { children: list.map(item => {
|
|
69
|
+
if (typeof item === 'string') {
|
|
70
|
+
return (_jsx(Flex, { container: { direction: 'column', pad: [1, undefined] }, as: 'li', children: item }, item));
|
|
71
|
+
}
|
|
72
|
+
return null;
|
|
73
|
+
}) }))] }));
|
|
74
|
+
default:
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
//# sourceMappingURL=QuestionList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QuestionList.js","sourceRoot":"","sources":["../../../src/components/ArticleList/QuestionList.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef } from 'react';\nimport type { PropsWithoutRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport {\n Text,\n Actions,\n Flex,\n defaultThemeProp,\n Button,\n Icon,\n registerIcon,\n createUID,\n useTheme,\n formatNumber,\n useConfiguration,\n useI18n,\n VisuallyHiddenText\n} from '@pega/cosmos-react-core';\nimport { lineClamp } from '@pega/cosmos-react-core/lib/styles/mixins';\nimport * as PolarisIcon from '@pega/cosmos-react-core/lib/components/Icon/icons/polaris-solid.icon';\nimport type { NoChildrenProp, RefElement, WithAttributes } from '@pega/cosmos-react-core';\n\nimport type { AutoAnsweredItem, DetectedItem } from './ArticleList.types';\n\nregisterIcon(PolarisIcon);\n\nexport const StyledListItem = styled.li(\n ({\n theme: {\n base: { palette }\n }\n }) => {\n return css`\n border-block-end: 0.0625rem solid ${palette['border-line']};\n `;\n }\n);\n\nStyledListItem.defaultProps = defaultThemeProp;\n\nexport const StyledList = styled.ul(\n ({\n theme: {\n base: { palette }\n }\n }) => {\n return css`\n border-block-end: 0.0625rem solid ${palette['border-line']};\n `;\n }\n);\n\nStyledList.defaultProps = defaultThemeProp;\n\nexport const StyledAbstract = styled(Text)(() => {\n return css`\n ${lineClamp(3)}\n `;\n});\n\nStyledAbstract.defaultProps = defaultThemeProp;\n\ntype List = AutoAnsweredItem[] | DetectedItem[] | string[];\n\ntype QuestionTypeI18NKeys =\n | 'auto_answered'\n | 'questions_detected'\n | 'past_answered_questions'\n | 'not_relevant_questions';\n\nfunction isAutoAnsweredItem(item: AutoAnsweredItem | DetectedItem): item is AutoAnsweredItem {\n return 'abstract' in item;\n}\n\nfunction isDetectedItem(item: AutoAnsweredItem | DetectedItem): item is DetectedItem {\n return 'confidence' in item;\n}\n\ntype QuestionListProps = WithAttributes<\n 'div',\n NoChildrenProp & {\n list: List;\n questionType: 'AUTO_ANSWERED' | 'DETECTED' | 'PAST_QUESTIONS' | 'NOT_RELEVANT';\n }\n>;\n\nexport default forwardRef<RefElement<QuestionListProps>, PropsWithoutRef<QuestionListProps>>(\n function QuestionList({ list, questionType }, ref) {\n const theme = useTheme();\n const t = useI18n();\n const { locale } = useConfiguration();\n const listHeaderId = createUID();\n\n const titleMap: {\n [key in QuestionListProps['questionType']]: QuestionTypeI18NKeys;\n } = {\n AUTO_ANSWERED: 'auto_answered',\n DETECTED: 'questions_detected',\n PAST_QUESTIONS: 'past_answered_questions',\n NOT_RELEVANT: 'not_relevant_questions'\n };\n\n switch (questionType) {\n case 'AUTO_ANSWERED':\n case 'DETECTED':\n return (\n <>\n <Flex container={{ gap: 0.5, pad: [0.5, undefined, undefined] }} ref={ref}>\n <Icon name='polaris-solid' color={theme.base.palette.ai} />\n <Text variant='h3' aria-describedby={listHeaderId}>\n {t(titleMap[questionType])}\n </Text>\n <VisuallyHiddenText id={listHeaderId}>{`${t(\n titleMap[questionType]\n )} ${t('ai_generated')}`}</VisuallyHiddenText>\n </Flex>\n <Flex container={{ direction: 'column' }}>\n {list.map((item: AutoAnsweredItem | DetectedItem | string) => {\n if (typeof item !== 'string') {\n const { id, query, actions, onTitleClick } = item;\n\n const abstract = isAutoAnsweredItem(item) ? item.abstract : undefined;\n const confidence = isDetectedItem(item) && item.confidence;\n\n return (\n <>\n {(questionType === 'AUTO_ANSWERED' || questionType === 'DETECTED') && (\n <Flex\n container={{ direction: 'column', pad: [1, undefined] }}\n as={StyledListItem}\n key={id}\n >\n <Flex container={{ alignItems: 'start' }} item={{ grow: 1 }}>\n <Flex\n container={{\n pad: [undefined, undefined, 0.5]\n }}\n item={{ grow: 1 }}\n >\n <Button\n variant='link'\n onClick={() => {\n onTitleClick(id);\n }}\n >\n {query}\n </Button>\n </Flex>\n\n {actions && <Actions items={actions} />}\n </Flex>\n {abstract && <StyledAbstract>{abstract}</StyledAbstract>}\n\n {confidence && (\n <Text variant='secondary'>\n {t('confidence')}:\n {formatNumber(confidence, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n })}\n </Text>\n )}\n </Flex>\n )}\n </>\n );\n }\n return null;\n })}\n </Flex>\n </>\n );\n\n case 'PAST_QUESTIONS':\n case 'NOT_RELEVANT':\n return (\n <Flex container={{ direction: 'column', gap: 0.5 }}>\n <Text variant='h3'>{t(titleMap[questionType])}</Text>\n {list.length && (\n <StyledList>\n {list.map(item => {\n if (typeof item === 'string') {\n return (\n <Flex\n container={{ direction: 'column', pad: [1, undefined] }}\n as='li'\n key={item}\n >\n {item}\n </Flex>\n );\n }\n return null;\n })}\n </StyledList>\n )}\n </Flex>\n );\n\n default:\n return null;\n }\n }\n);\n"]}
|
|
@@ -3,6 +3,6 @@ export type { ArticleListProps } from './ArticleList.types';
|
|
|
3
3
|
export { default as ArticleSummary } from './ArticleSummary';
|
|
4
4
|
export type { ArticleSummaryProps, AIArticleSummaryProps, Articles, QuickFilter } from './ArticleList.types';
|
|
5
5
|
export { default as ArticleListFilter } from './ArticleListFilter';
|
|
6
|
-
export type { ArticleBuddyProps, Reaction } from './ArticleList.types';
|
|
6
|
+
export type { ArticleBuddyProps, Reaction, BuddyListProps, BuddyResponseProps, AutoAnsweredItem, DetectedItem } from './ArticleList.types';
|
|
7
7
|
export { default as ArticleBuddy } from './ArticleBuddy';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ArticleList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,YAAY,EACV,iBAAiB,EACjB,QAAQ,EACR,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ArticleList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAO7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/ArticleList/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAO7D,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AASnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC","sourcesContent":["export { default } from './ArticleList';\nexport type { ArticleListProps } from './ArticleList.types';\nexport { default as ArticleSummary } from './ArticleSummary';\nexport type {\n ArticleSummaryProps,\n AIArticleSummaryProps,\n Articles,\n QuickFilter\n} from './ArticleList.types';\nexport { default as ArticleListFilter } from './ArticleListFilter';\nexport type {\n ArticleBuddyProps,\n Reaction,\n BuddyListProps,\n BuddyResponseProps,\n AutoAnsweredItem,\n DetectedItem\n} from './ArticleList.types';\nexport { default as ArticleBuddy } from './ArticleBuddy';\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pega/cosmos-react-work",
|
|
3
|
-
"version": "7.0.0-build.
|
|
3
|
+
"version": "7.0.0-build.17.0",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/pegasystems/cosmos-react.git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"build": "tsc -b tsconfig.build.json"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@pega/cosmos-react-core": "7.0.0-build.
|
|
22
|
+
"@pega/cosmos-react-core": "7.0.0-build.17.0",
|
|
23
23
|
"@types/react": "^17.0.62",
|
|
24
24
|
"@types/react-dom": "^17.0.20",
|
|
25
25
|
"@types/styled-components": "^5.1.26",
|