@pega/cosmos-react-work 7.0.0-build.17.9 → 7.0.0-build.18.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/CasePreview/CasePreview.d.ts.map +1 -1
- package/lib/components/CasePreview/CasePreview.js +22 -3
- package/lib/components/CasePreview/CasePreview.js.map +1 -1
- package/lib/components/CaseView/CaseView.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.js +36 -10
- package/lib/components/CaseView/CaseView.js.map +1 -1
- package/lib/components/CaseView/CaseView.styles.d.ts +7 -1
- package/lib/components/CaseView/CaseView.styles.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.styles.js +51 -11
- package/lib/components/CaseView/CaseView.styles.js.map +1 -1
- package/lib/components/CaseView/CaseView.types.d.ts +10 -2
- package/lib/components/CaseView/CaseView.types.d.ts.map +1 -1
- package/lib/components/CaseView/CaseView.types.js.map +1 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.d.ts.map +1 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.js +0 -1
- package/lib/components/CaseView/UtilitySummaryItemDialog.js.map +1 -1
- package/lib/components/Details/Details.d.ts +22 -17
- package/lib/components/Details/Details.d.ts.map +1 -1
- package/lib/components/Details/Details.js +61 -49
- package/lib/components/Details/Details.js.map +1 -1
- package/lib/components/Details/Details.styles.d.ts +17 -27
- package/lib/components/Details/Details.styles.d.ts.map +1 -1
- package/lib/components/Details/Details.styles.js +168 -127
- package/lib/components/Details/Details.styles.js.map +1 -1
- package/lib/components/Details/DetailsList.d.ts +14 -0
- package/lib/components/Details/DetailsList.d.ts.map +1 -0
- package/lib/components/Details/DetailsList.js +31 -0
- package/lib/components/Details/DetailsList.js.map +1 -0
- package/lib/components/Details/index.d.ts +2 -1
- package/lib/components/Details/index.d.ts.map +1 -1
- package/lib/components/Details/index.js +2 -1
- package/lib/components/Details/index.js.map +1 -1
- package/lib/components/GenAICoach/GenAICoach.d.ts +7 -0
- package/lib/components/GenAICoach/GenAICoach.d.ts.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.js +151 -0
- package/lib/components/GenAICoach/GenAICoach.js.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.styles.d.ts +29 -0
- package/lib/components/GenAICoach/GenAICoach.styles.d.ts.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.styles.js +211 -0
- package/lib/components/GenAICoach/GenAICoach.styles.js.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts +2 -0
- package/lib/components/GenAICoach/GenAICoach.test-ids.d.ts.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.test-ids.js +3 -0
- package/lib/components/GenAICoach/GenAICoach.test-ids.js.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.types.d.ts +53 -0
- package/lib/components/GenAICoach/GenAICoach.types.d.ts.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.types.js +2 -0
- package/lib/components/GenAICoach/GenAICoach.types.js.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.utils.d.ts +9 -0
- package/lib/components/GenAICoach/GenAICoach.utils.d.ts.map +1 -0
- package/lib/components/GenAICoach/GenAICoach.utils.js +10 -0
- package/lib/components/GenAICoach/GenAICoach.utils.js.map +1 -0
- package/lib/components/GenAICoach/GenAIMessage.d.ts +5 -0
- package/lib/components/GenAICoach/GenAIMessage.d.ts.map +1 -0
- package/lib/components/GenAICoach/GenAIMessage.js +25 -0
- package/lib/components/GenAICoach/GenAIMessage.js.map +1 -0
- package/lib/components/GenAICoach/InitialSuggestedMessage.d.ts +5 -0
- package/lib/components/GenAICoach/InitialSuggestedMessage.d.ts.map +1 -0
- package/lib/components/GenAICoach/InitialSuggestedMessage.js +18 -0
- package/lib/components/GenAICoach/InitialSuggestedMessage.js.map +1 -0
- package/lib/components/GenAICoach/index.d.ts +6 -0
- package/lib/components/GenAICoach/index.d.ts.map +1 -0
- package/lib/components/GenAICoach/index.js +5 -0
- package/lib/components/GenAICoach/index.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,50 +1,40 @@
|
|
|
1
1
|
import type { DefaultTheme } from 'styled-components';
|
|
2
2
|
import type { StyledFieldValueListProps } from '@pega/cosmos-react-core';
|
|
3
|
-
|
|
3
|
+
import type { DetailsTwoColumnArrangement } from './Details';
|
|
4
|
+
interface StyledDetailsListProps extends StyledFieldValueListProps {
|
|
4
5
|
/** Whether individual list items all have labels stacks on top */
|
|
5
6
|
stacked?: boolean;
|
|
6
|
-
/** Whether the list is a flex row of other lists */
|
|
7
|
-
flex?: boolean;
|
|
8
|
-
/** Whether the list is nested */
|
|
9
|
-
nested?: boolean;
|
|
10
7
|
/** The character length applied to all list labels */
|
|
11
8
|
labelLength?: number;
|
|
12
9
|
/**
|
|
13
|
-
* Whether
|
|
10
|
+
* Whether to apply narrow list styles
|
|
14
11
|
* @default false
|
|
15
12
|
*/
|
|
16
|
-
|
|
13
|
+
narrow?: boolean;
|
|
14
|
+
theme: DefaultTheme;
|
|
15
|
+
}
|
|
16
|
+
interface StyledDetailColumnsProps {
|
|
17
17
|
/**
|
|
18
18
|
* Number of columns in the list
|
|
19
19
|
* @default 1
|
|
20
20
|
*/
|
|
21
21
|
columnCount?: 1 | 2 | 3;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
24
|
-
* @default false
|
|
23
|
+
* Arrangement of two-column configurations.
|
|
25
24
|
*/
|
|
26
|
-
|
|
25
|
+
arrangement?: DetailsTwoColumnArrangement;
|
|
27
26
|
theme: DefaultTheme;
|
|
28
27
|
}
|
|
29
|
-
export declare const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
colWidth: number;
|
|
33
|
-
};
|
|
34
|
-
'2': {
|
|
35
|
-
containerWidth: number;
|
|
36
|
-
colWidth: number;
|
|
37
|
-
};
|
|
38
|
-
'3': {
|
|
39
|
-
containerWidth: number;
|
|
40
|
-
colWidth: number;
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
export declare const flexGapProp = 5.5;
|
|
28
|
+
export declare const columnGapMultiplier = 5.5;
|
|
29
|
+
export declare const oneColumnDetailsColumnWidth = "100ch";
|
|
30
|
+
export declare const multiColumnDetailsColumnWidth = "80ch";
|
|
44
31
|
export declare const StyledFieldValueGroupLabel: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
45
32
|
export declare const StyledDetailDescription: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
46
|
-
export declare const StyledHighlightedDetailList: import("styled-components").StyledComponent<"dl", DefaultTheme, {}, never>;
|
|
47
33
|
export declare const StyledDetails: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
48
|
-
export declare const
|
|
34
|
+
export declare const StyledDetailColumn: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
35
|
+
export declare const StyledDetailColumns: import("styled-components").StyledComponent<"div", DefaultTheme, StyledDetailColumnsProps, never>;
|
|
36
|
+
export declare const StyledHighlightedDetailList: import("styled-components").StyledComponent<"dl", DefaultTheme, {}, never>;
|
|
37
|
+
export declare const StyledInlineFieldValueItem: import("styled-components").StyledComponent<"div", DefaultTheme, {}, never>;
|
|
38
|
+
export declare const StyledDetailsList: import("styled-components").StyledComponent<"dl", DefaultTheme, StyledFieldValueListProps & Pick<StyledDetailsListProps, keyof StyledDetailsListProps> & Required<Pick<StyledDetailsListProps, never>>, never>;
|
|
49
39
|
export {};
|
|
50
40
|
//# sourceMappingURL=Details.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Details.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Details/Details.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYtD,OAAO,KAAK,EACV,yBAAyB,EAG1B,MAAM,yBAAyB,CAAC;AAEjC,UAAU,
|
|
1
|
+
{"version":3,"file":"Details.styles.d.ts","sourceRoot":"","sources":["../../../src/components/Details/Details.styles.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAYtD,OAAO,KAAK,EACV,yBAAyB,EAG1B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAE7D,UAAU,sBAAuB,SAAQ,yBAAyB;IAChE,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED,UAAU,wBAAwB;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB;;OAEG;IACH,WAAW,CAAC,EAAE,2BAA2B,CAAC;IAC1C,KAAK,EAAE,YAAY,CAAC;CACrB;AAKD,eAAO,MAAM,mBAAmB,MAAM,CAAC;AACvC,eAAO,MAAM,2BAA2B,UAAU,CAAC;AACnD,eAAO,MAAM,6BAA6B,SAAS,CAAC;AAEpD,eAAO,MAAM,0BAA0B,6EAuBrC,CAAC;AAIH,eAAO,MAAM,uBAAuB,6EAYlC,CAAC;AAgBH,eAAO,MAAM,aAAa,6EAUxB,CAAC;AAIH,eAAO,MAAM,kBAAkB,6EAW7B,CAAC;AAIH,eAAO,MAAM,mBAAmB,mGA4E/B,CAAC;AAIF,eAAO,MAAM,2BAA2B,4EAuBtC,CAAC;AAIH,eAAO,MAAM,0BAA0B,6EAItC,CAAC;AAEF,eAAO,MAAM,iBAAiB,gNAyF5B,CAAC"}
|
|
@@ -1,31 +1,16 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
2
|
import { calculateFontSize, defaultThemeProp, StyledFieldValue, StyledStackedFieldValue, StyledFieldValueList, StyledIcon, useDirection, StyledButtonLink } from '@pega/cosmos-react-core';
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
export const
|
|
6
|
-
|
|
7
|
-
containerWidth: 100,
|
|
8
|
-
colWidth: 100
|
|
9
|
-
},
|
|
10
|
-
'2': {
|
|
11
|
-
containerWidth: 80 * 2,
|
|
12
|
-
colWidth: 80
|
|
13
|
-
},
|
|
14
|
-
'3': {
|
|
15
|
-
containerWidth: 64 * 3,
|
|
16
|
-
colWidth: 64
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
export const flexGapProp = 5.5;
|
|
3
|
+
const rowGapMultiplier = 1;
|
|
4
|
+
export const columnGapMultiplier = 5.5;
|
|
5
|
+
export const oneColumnDetailsColumnWidth = '100ch';
|
|
6
|
+
export const multiColumnDetailsColumnWidth = '80ch';
|
|
20
7
|
export const StyledFieldValueGroupLabel = styled.div(({ theme }) => {
|
|
21
8
|
const { base: { spacing, animation } } = theme;
|
|
22
9
|
const { rtl } = useDirection();
|
|
23
10
|
return css `
|
|
24
11
|
width: 100%;
|
|
25
|
-
grid-column
|
|
26
|
-
|
|
27
|
-
margin-block-end: calc(0.5 * ${spacing});
|
|
28
|
-
margin-block-start: calc(1.5 * ${spacing});
|
|
12
|
+
grid-column: 1 / -1;
|
|
13
|
+
margin-block-end: calc(${rowGapMultiplier} * ${spacing});
|
|
29
14
|
|
|
30
15
|
${StyledButtonLink} ${StyledIcon} {
|
|
31
16
|
transition: transform ${animation.speed} ${animation.timing.ease};
|
|
@@ -45,15 +30,118 @@ export const StyledDetailDescription = styled.div(({ theme }) => {
|
|
|
45
30
|
const { base: { spacing, 'content-width': { xl } } } = theme;
|
|
46
31
|
return css `
|
|
47
32
|
max-width: ${xl};
|
|
48
|
-
margin-block: calc(1.5 * ${spacing});
|
|
33
|
+
margin-block-end: calc(1.5 * ${spacing});
|
|
49
34
|
`;
|
|
50
35
|
});
|
|
51
36
|
StyledDetailDescription.defaultProps = defaultThemeProp;
|
|
37
|
+
const spacingTop = (spacing) => {
|
|
38
|
+
return css `
|
|
39
|
+
> ${StyledFieldValueGroupLabel} {
|
|
40
|
+
margin-block-start: calc((1.5 * ${rowGapMultiplier}) * ${spacing});
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
> ${StyledDetailDescription}:first-child {
|
|
44
|
+
margin-block-start: calc(1.5 * ${spacing});
|
|
45
|
+
}
|
|
46
|
+
`;
|
|
47
|
+
};
|
|
48
|
+
export const StyledDetails = styled.div(({ theme }) => {
|
|
49
|
+
const { base: { spacing } } = theme;
|
|
50
|
+
return css `
|
|
51
|
+
&:not(:first-child) {
|
|
52
|
+
${spacingTop(spacing)}
|
|
53
|
+
}
|
|
54
|
+
`;
|
|
55
|
+
});
|
|
56
|
+
StyledDetails.defaultProps = defaultThemeProp;
|
|
57
|
+
export const StyledDetailColumn = styled.div(({ theme }) => {
|
|
58
|
+
const { base: { spacing } } = theme;
|
|
59
|
+
return css `
|
|
60
|
+
display: flex;
|
|
61
|
+
flex-direction: column;
|
|
62
|
+
row-gap: calc(${rowGapMultiplier} * ${spacing});
|
|
63
|
+
width: 100%;
|
|
64
|
+
`;
|
|
65
|
+
});
|
|
66
|
+
StyledDetailColumn.defaultProps = defaultThemeProp;
|
|
67
|
+
export const StyledDetailColumns = styled.div(({ theme, arrangement, columnCount = 1 }) => {
|
|
68
|
+
const { base: { spacing } } = theme;
|
|
69
|
+
return css `
|
|
70
|
+
width: 100%;
|
|
71
|
+
|
|
72
|
+
${columnCount === 2 &&
|
|
73
|
+
!arrangement &&
|
|
74
|
+
css `
|
|
75
|
+
flex-wrap: wrap;
|
|
76
|
+
`}
|
|
77
|
+
|
|
78
|
+
${columnCount === 1 &&
|
|
79
|
+
css `
|
|
80
|
+
flex-direction: column;
|
|
81
|
+
row-gap: calc(${rowGapMultiplier} * ${spacing});
|
|
82
|
+
`};
|
|
83
|
+
|
|
84
|
+
/* Column Widths */
|
|
85
|
+
> ${StyledDetailColumn} {
|
|
86
|
+
overflow: hidden;
|
|
87
|
+
|
|
88
|
+
${columnCount === 3 &&
|
|
89
|
+
css `
|
|
90
|
+
width: ${multiColumnDetailsColumnWidth};
|
|
91
|
+
max-width: calc(33.33% - (${columnGapMultiplier} * ${spacing} * 2) / 3);
|
|
92
|
+
`}
|
|
93
|
+
|
|
94
|
+
${columnCount === 2 &&
|
|
95
|
+
css `
|
|
96
|
+
width: calc(50% - (${columnGapMultiplier} * ${spacing}) / 2);
|
|
97
|
+
max-width: unset;
|
|
98
|
+
|
|
99
|
+
&:nth-child(3) > ${StyledDetails}:first-child {
|
|
100
|
+
${spacingTop(spacing)}
|
|
101
|
+
}
|
|
102
|
+
`}
|
|
103
|
+
|
|
104
|
+
${columnCount !== 1 &&
|
|
105
|
+
css `
|
|
106
|
+
${arrangement === 'narrowWide' &&
|
|
107
|
+
css `
|
|
108
|
+
&:nth-child(2) {
|
|
109
|
+
width: calc(
|
|
110
|
+
${multiColumnDetailsColumnWidth} * 2 + ${columnGapMultiplier} * ${spacing}
|
|
111
|
+
);
|
|
112
|
+
max-width: calc(66.66% - (${columnGapMultiplier} * ${spacing}) / 3);
|
|
113
|
+
}
|
|
114
|
+
`}
|
|
115
|
+
|
|
116
|
+
${arrangement === 'wideNarrow' &&
|
|
117
|
+
css `
|
|
118
|
+
&:nth-child(1) {
|
|
119
|
+
width: calc(
|
|
120
|
+
${multiColumnDetailsColumnWidth} * 2 + ${columnGapMultiplier} * ${spacing}
|
|
121
|
+
);
|
|
122
|
+
max-width: calc(66.66% - (${columnGapMultiplier} * ${spacing}) / 3);
|
|
123
|
+
}
|
|
124
|
+
`}
|
|
125
|
+
`}
|
|
126
|
+
|
|
127
|
+
${columnCount === 1 &&
|
|
128
|
+
css `
|
|
129
|
+
width: 100%;
|
|
130
|
+
max-width: 100%;
|
|
131
|
+
|
|
132
|
+
&:not(:first-child) > ${StyledDetails}:first-child {
|
|
133
|
+
${spacingTop(spacing)}
|
|
134
|
+
}
|
|
135
|
+
`}
|
|
136
|
+
}
|
|
137
|
+
`;
|
|
138
|
+
});
|
|
139
|
+
StyledDetailColumns.defaultProps = defaultThemeProp;
|
|
52
140
|
export const StyledHighlightedDetailList = styled.dl(({ theme }) => {
|
|
53
141
|
const { base: { spacing, palette } } = theme;
|
|
54
142
|
const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);
|
|
55
143
|
return css `
|
|
56
|
-
max-width: ${
|
|
144
|
+
max-width: calc(${multiColumnDetailsColumnWidth} * 3 + ${columnGapMultiplier} * ${spacing} * 2);
|
|
57
145
|
padding-block-end: calc(1.5 * ${spacing});
|
|
58
146
|
|
|
59
147
|
dd {
|
|
@@ -71,134 +159,87 @@ export const StyledHighlightedDetailList = styled.dl(({ theme }) => {
|
|
|
71
159
|
`;
|
|
72
160
|
});
|
|
73
161
|
StyledHighlightedDetailList.defaultProps = defaultThemeProp;
|
|
74
|
-
export const
|
|
75
|
-
|
|
76
|
-
|
|
162
|
+
export const StyledInlineFieldValueItem = styled.div `
|
|
163
|
+
> * {
|
|
164
|
+
min-width: 0;
|
|
165
|
+
}
|
|
166
|
+
`;
|
|
167
|
+
export const StyledDetailsList = styled(StyledFieldValueList)(({ stacked, labelLength, variant, theme, narrow = false }) => {
|
|
168
|
+
const { base: { spacing }, components: { details: { 'field-label': fieldLabelPosition } } } = theme;
|
|
169
|
+
const labelTop = (stacked || fieldLabelPosition === 'stacked') && variant !== 'value-comparison';
|
|
77
170
|
const isValueComparison = variant === 'value-comparison';
|
|
78
|
-
const
|
|
79
|
-
const columnWidthCh = colCountChWidth[columnCount].colWidth;
|
|
80
|
-
const containerWidthMinusLabel = `${containerWidthCh - (labelLength ?? 0)}ch`;
|
|
171
|
+
const fieldValueGapMultiplier = 2;
|
|
81
172
|
return css `
|
|
82
|
-
/*
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
173
|
+
/* Field Grid Styles */
|
|
174
|
+
display: flex;
|
|
175
|
+
flex-direction: column;
|
|
176
|
+
row-gap: calc(${rowGapMultiplier} * ${spacing});
|
|
177
|
+
width: 100%;
|
|
178
|
+
max-width: ${oneColumnDetailsColumnWidth};
|
|
179
|
+
height: fit-content;
|
|
89
180
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
181
|
+
${StyledFieldValue} {
|
|
182
|
+
word-break: break-word;
|
|
183
|
+
overflow: auto;
|
|
184
|
+
}
|
|
94
185
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
grid-column: 1 / -1;
|
|
99
|
-
`}
|
|
186
|
+
${StyledInlineFieldValueItem}, ${StyledStackedFieldValue} {
|
|
187
|
+
width: 100%;
|
|
188
|
+
}
|
|
100
189
|
|
|
101
|
-
|
|
102
|
-
${!flex &&
|
|
103
|
-
css `
|
|
104
|
-
display: grid;
|
|
190
|
+
${StyledInlineFieldValueItem} {
|
|
105
191
|
grid-template-columns: minmax(14ch, ${labelLength}ch) minmax(14ch, 1fr);
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
${stacked &&
|
|
110
|
-
css `
|
|
111
|
-
grid-template-columns: minmax(0, 1fr);
|
|
112
|
-
row-gap: 0;
|
|
113
|
-
|
|
114
|
-
${!isValueComparison &&
|
|
115
|
-
css `
|
|
116
|
-
> dt,
|
|
117
|
-
${StyledStackedFieldValue} {
|
|
118
|
-
margin-block-start: calc(${verticalGapSpacingMultiplier} * ${spacing});
|
|
119
|
-
}
|
|
120
|
-
`}
|
|
121
|
-
`}
|
|
122
|
-
|
|
123
|
-
> ${StyledStackedFieldValue} {
|
|
124
|
-
max-width: ${containerWidthCh}ch;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
> ${StyledFieldValue} {
|
|
128
|
-
max-width: calc(${containerWidthMinusLabel} - calc(2 * ${spacing}));
|
|
129
|
-
|
|
130
|
-
${!isValueComparison &&
|
|
131
|
-
css `
|
|
132
|
-
width: 100%;
|
|
133
|
-
`}
|
|
134
|
-
}
|
|
192
|
+
grid-template-rows: max-content;
|
|
193
|
+
column-gap: calc(${fieldValueGapMultiplier} * ${spacing});
|
|
194
|
+
}
|
|
135
195
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
max-width: ${containerWidthCh}ch;
|
|
142
|
-
|
|
143
|
-
> dd {
|
|
144
|
-
display: flex;
|
|
145
|
-
flex-direction: column;
|
|
146
|
-
justify-content: flex-end;
|
|
147
|
-
}
|
|
148
|
-
`}
|
|
196
|
+
/* Stacked Label Styles */
|
|
197
|
+
${labelTop &&
|
|
198
|
+
css `
|
|
199
|
+
grid-template-columns: minmax(0, 1fr);
|
|
200
|
+
row-gap: 0;
|
|
149
201
|
|
|
150
|
-
|
|
151
|
-
|
|
202
|
+
dt {
|
|
203
|
+
max-width: 100%;
|
|
152
204
|
}
|
|
153
|
-
`}
|
|
154
|
-
|
|
155
|
-
/* As Flex Container */
|
|
156
|
-
${flex &&
|
|
157
|
-
css `
|
|
158
|
-
display: flex;
|
|
159
|
-
flex-direction: ${wrapped ? 'column' : 'row'};
|
|
160
|
-
column-gap: calc(${flexGapProp} * ${spacing});
|
|
161
|
-
align-items: flex-start;
|
|
162
|
-
max-width: ${containerWidthCh}ch;
|
|
163
205
|
|
|
164
|
-
${!
|
|
206
|
+
${!isValueComparison &&
|
|
165
207
|
css `
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
max-width: ${columnWidthCh}%;
|
|
208
|
+
${StyledStackedFieldValue}:not(:first-child) {
|
|
209
|
+
margin-block-start: calc(${rowGapMultiplier} * ${spacing});
|
|
169
210
|
}
|
|
170
211
|
`}
|
|
171
|
-
|
|
172
|
-
> ${StyledDetails} {
|
|
173
|
-
width: 100%;
|
|
174
|
-
|
|
175
|
-
${wrapped &&
|
|
176
|
-
!stacked &&
|
|
177
|
-
css `
|
|
178
|
-
+ ${StyledDetails} > ${StyledDetailList}:first-child {
|
|
179
|
-
margin-block-start: ${theme.base.spacing};
|
|
180
|
-
}
|
|
181
|
-
`}
|
|
182
|
-
}
|
|
183
212
|
`}
|
|
184
213
|
|
|
185
|
-
|
|
186
|
-
${
|
|
187
|
-
!isValueComparison &&
|
|
214
|
+
/* Value Comparison Styles */
|
|
215
|
+
${isValueComparison &&
|
|
188
216
|
css `
|
|
189
|
-
|
|
190
|
-
|
|
217
|
+
display: grid;
|
|
218
|
+
grid-template-columns: auto auto;
|
|
219
|
+
column-gap: 0;
|
|
220
|
+
row-gap: calc(0.5 * ${spacing});
|
|
221
|
+
|
|
222
|
+
> dd {
|
|
223
|
+
display: flex;
|
|
224
|
+
flex-direction: column;
|
|
225
|
+
justify-content: flex-end;
|
|
191
226
|
}
|
|
192
227
|
`}
|
|
193
228
|
|
|
194
229
|
/* Responsive behavior */
|
|
195
230
|
${narrow &&
|
|
196
|
-
!
|
|
231
|
+
!labelTop &&
|
|
197
232
|
!isValueComparison &&
|
|
198
233
|
css `
|
|
199
|
-
|
|
234
|
+
${StyledInlineFieldValueItem} {
|
|
235
|
+
grid-template-columns: minmax(0, ${labelLength}ch) minmax(50%, 1fr);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
dd {
|
|
239
|
+
min-width: 50%;
|
|
240
|
+
}
|
|
200
241
|
`}
|
|
201
242
|
`;
|
|
202
243
|
});
|
|
203
|
-
|
|
244
|
+
StyledDetailsList.defaultProps = defaultThemeProp;
|
|
204
245
|
//# sourceMappingURL=Details.styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Details.styles.js","sourceRoot":"","sources":["../../../src/components/Details/Details.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport type { DefaultTheme } from 'styled-components';\n\nimport {\n calculateFontSize,\n defaultThemeProp,\n StyledFieldValue,\n StyledStackedFieldValue,\n StyledFieldValueList,\n StyledIcon,\n useDirection,\n StyledButtonLink\n} from '@pega/cosmos-react-core';\nimport type {\n StyledFieldValueListProps,\n FontSize,\n PropsWithDefaults\n} from '@pega/cosmos-react-core';\n\ninterface StyledDetailListProps extends StyledFieldValueListProps {\n /** Whether individual list items all have labels stacks on top */\n stacked?: boolean;\n /** Whether the list is a flex row of other lists */\n flex?: boolean;\n /** Whether the list is nested */\n nested?: boolean;\n /** The character length applied to all list labels */\n labelLength?: number;\n /**\n * Whether the list is wrapped to 1 column\n * @default false\n */\n wrapped?: boolean;\n /**\n * Number of columns in the list\n * @default 1\n */\n columnCount?: 1 | 2 | 3;\n /**\n * Whether to apply narrow list styles\n * @default false\n */\n narrow?: boolean;\n theme: DefaultTheme;\n}\n\ntype StyledDetailListPropsWithDefaults = PropsWithDefaults<\n StyledDetailListProps,\n 'wrapped' | 'columnCount'\n>;\n\nconst verticalGapSpacingMultiplier = 1;\n\n// colWidth reduces by 20% as column count increases\nexport const colCountChWidth = {\n '1': {\n containerWidth: 100,\n colWidth: 100\n },\n '2': {\n containerWidth: 80 * 2,\n colWidth: 80\n },\n '3': {\n containerWidth: 64 * 3,\n colWidth: 64\n }\n};\n\nexport const flexGapProp = 5.5;\n\nexport const StyledFieldValueGroupLabel = styled.div(({ theme }) => {\n const {\n base: { spacing, animation }\n } = theme;\n const { rtl } = useDirection();\n\n return css`\n width: 100%;\n grid-column-start: 1;\n grid-column-end: -1;\n margin-block-end: calc(0.5 * ${spacing});\n margin-block-start: calc(1.5 * ${spacing});\n\n ${StyledButtonLink} ${StyledIcon} {\n transition: transform ${animation.speed} ${animation.timing.ease};\n }\n\n ${StyledButtonLink}[aria-expanded='true'] ${StyledIcon} {\n transform: rotate(90deg);\n }\n\n ${StyledButtonLink}[aria-expanded='false'] ${StyledIcon} {\n transform: rotate(${rtl ? 180 : 0}deg);\n }\n `;\n});\n\nStyledFieldValueGroupLabel.defaultProps = defaultThemeProp;\n\nexport const StyledDetailDescription = styled.div(({ theme }) => {\n const {\n base: {\n spacing,\n 'content-width': { xl }\n }\n } = theme;\n\n return css`\n max-width: ${xl};\n margin-block: calc(1.5 * ${spacing});\n `;\n});\n\nStyledDetailDescription.defaultProps = defaultThemeProp;\n\nexport const StyledHighlightedDetailList = styled.dl(({ theme }) => {\n const {\n base: { spacing, palette }\n } = theme;\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n max-width: ${colCountChWidth[3].containerWidth}ch;\n padding-block-end: calc(1.5 * ${spacing});\n\n dd {\n font-size: ${fontSize[theme.components.text.h1['font-size'] as FontSize]};\n font-weight: ${theme.components.text.h1['font-weight']};\n }\n\n + hr {\n border-top: unset;\n border-radius: unset;\n border-style: unset;\n border-bottom: 0.0625rem solid ${palette['border-line']};\n margin-block-end: calc(1.5 * ${spacing});\n }\n `;\n});\n\nStyledHighlightedDetailList.defaultProps = defaultThemeProp;\n\nexport const StyledDetails = styled.div``;\n\nexport const StyledDetailList = styled(StyledFieldValueList)<StyledDetailListPropsWithDefaults>(({\n stacked,\n flex,\n nested,\n labelLength,\n variant,\n theme,\n wrapped = false,\n columnCount = 1,\n narrow = false\n}): any => {\n const {\n base: { spacing }\n } = theme;\n\n const isValueComparison = variant === 'value-comparison';\n const containerWidthCh = colCountChWidth[columnCount].containerWidth;\n const columnWidthCh = colCountChWidth[columnCount].colWidth;\n const containerWidthMinusLabel = `${containerWidthCh - (labelLength ?? 0)}ch`;\n\n return css`\n /* Top Level Styles */\n ${!nested &&\n css`\n ${StyledFieldValue} {\n word-break: break-word;\n overflow: auto;\n }\n\n ${StyledStackedFieldValue} {\n grid-column: 1 / -1;\n }\n `}\n\n /* Nested List */\n ${nested &&\n css`\n grid-column: 1 / -1;\n `}\n\n /* As Field Grid */\n ${!flex &&\n css`\n display: grid;\n grid-template-columns: minmax(14ch, ${labelLength}ch) minmax(14ch, 1fr);\n column-gap: calc(2 * ${spacing});\n row-gap: calc(${verticalGapSpacingMultiplier} * ${spacing});\n\n ${stacked &&\n css`\n grid-template-columns: minmax(0, 1fr);\n row-gap: 0;\n\n ${!isValueComparison &&\n css`\n > dt,\n ${StyledStackedFieldValue} {\n margin-block-start: calc(${verticalGapSpacingMultiplier} * ${spacing});\n }\n `}\n `}\n\n > ${StyledStackedFieldValue} {\n max-width: ${containerWidthCh}ch;\n }\n\n > ${StyledFieldValue} {\n max-width: calc(${containerWidthMinusLabel} - calc(2 * ${spacing}));\n\n ${!isValueComparison &&\n css`\n width: 100%;\n `}\n }\n\n ${isValueComparison &&\n css`\n grid-template-columns: auto auto;\n column-gap: 0;\n row-gap: calc(0.5 * ${spacing});\n max-width: ${containerWidthCh}ch;\n\n > dd {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n }\n `}\n\n > ${StyledDetails} {\n grid-column: 1 / -1;\n }\n `}\n\n /* As Flex Container */\n ${flex &&\n css`\n display: flex;\n flex-direction: ${wrapped ? 'column' : 'row'};\n column-gap: calc(${flexGapProp} * ${spacing});\n align-items: flex-start;\n max-width: ${containerWidthCh}ch;\n\n ${!wrapped &&\n css`\n > * {\n width: 100%;\n max-width: ${columnWidthCh}%;\n }\n `}\n\n > ${StyledDetails} {\n width: 100%;\n\n ${wrapped &&\n !stacked &&\n css`\n + ${StyledDetails} > ${StyledDetailList}:first-child {\n margin-block-start: ${theme.base.spacing};\n }\n `}\n }\n `}\n\n /* Key / Group Label Spacing */\n ${stacked &&\n !isValueComparison &&\n css`\n > dt {\n margin-block-start: calc(${verticalGapSpacingMultiplier} * ${spacing});\n }\n `}\n\n /* Responsive behavior */\n ${narrow &&\n !stacked &&\n !isValueComparison &&\n css`\n grid-template-columns: minmax(14ch, ${labelLength}ch) minmax(50%, 1fr);\n `}\n `;\n});\n\nStyledDetailList.defaultProps = defaultThemeProp;\n"]}
|
|
1
|
+
{"version":3,"file":"Details.styles.js","sourceRoot":"","sources":["../../../src/components/Details/Details.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport type { DefaultTheme } from 'styled-components';\n\nimport {\n calculateFontSize,\n defaultThemeProp,\n StyledFieldValue,\n StyledStackedFieldValue,\n StyledFieldValueList,\n StyledIcon,\n useDirection,\n StyledButtonLink\n} from '@pega/cosmos-react-core';\nimport type {\n StyledFieldValueListProps,\n FontSize,\n PropsWithDefaults\n} from '@pega/cosmos-react-core';\n\nimport type { DetailsTwoColumnArrangement } from './Details';\n\ninterface StyledDetailsListProps extends StyledFieldValueListProps {\n /** Whether individual list items all have labels stacks on top */\n stacked?: boolean;\n /** The character length applied to all list labels */\n labelLength?: number;\n /**\n * Whether to apply narrow list styles\n * @default false\n */\n narrow?: boolean;\n theme: DefaultTheme;\n}\n\ninterface StyledDetailColumnsProps {\n /**\n * Number of columns in the list\n * @default 1\n */\n columnCount?: 1 | 2 | 3;\n /**\n * Arrangement of two-column configurations.\n */\n arrangement?: DetailsTwoColumnArrangement;\n theme: DefaultTheme;\n}\n\ntype StyledDetailsListPropsWithDefaults = PropsWithDefaults<StyledDetailsListProps>;\n\nconst rowGapMultiplier = 1;\nexport const columnGapMultiplier = 5.5;\nexport const oneColumnDetailsColumnWidth = '100ch';\nexport const multiColumnDetailsColumnWidth = '80ch';\n\nexport const StyledFieldValueGroupLabel = styled.div(({ theme }) => {\n const {\n base: { spacing, animation }\n } = theme;\n const { rtl } = useDirection();\n\n return css`\n width: 100%;\n grid-column: 1 / -1;\n margin-block-end: calc(${rowGapMultiplier} * ${spacing});\n\n ${StyledButtonLink} ${StyledIcon} {\n transition: transform ${animation.speed} ${animation.timing.ease};\n }\n\n ${StyledButtonLink}[aria-expanded='true'] ${StyledIcon} {\n transform: rotate(90deg);\n }\n\n ${StyledButtonLink}[aria-expanded='false'] ${StyledIcon} {\n transform: rotate(${rtl ? 180 : 0}deg);\n }\n `;\n});\n\nStyledFieldValueGroupLabel.defaultProps = defaultThemeProp;\n\nexport const StyledDetailDescription = styled.div(({ theme }) => {\n const {\n base: {\n spacing,\n 'content-width': { xl }\n }\n } = theme;\n\n return css`\n max-width: ${xl};\n margin-block-end: calc(1.5 * ${spacing});\n `;\n});\n\nStyledDetailDescription.defaultProps = defaultThemeProp;\n\nconst spacingTop = (spacing: string) => {\n return css`\n > ${StyledFieldValueGroupLabel} {\n margin-block-start: calc((1.5 * ${rowGapMultiplier}) * ${spacing});\n }\n\n > ${StyledDetailDescription}:first-child {\n margin-block-start: calc(1.5 * ${spacing});\n }\n `;\n};\n\nexport const StyledDetails = styled.div(({ theme }) => {\n const {\n base: { spacing }\n } = theme;\n\n return css`\n &:not(:first-child) {\n ${spacingTop(spacing)}\n }\n `;\n});\n\nStyledDetails.defaultProps = defaultThemeProp;\n\nexport const StyledDetailColumn = styled.div(({ theme }) => {\n const {\n base: { spacing }\n } = theme;\n\n return css`\n display: flex;\n flex-direction: column;\n row-gap: calc(${rowGapMultiplier} * ${spacing});\n width: 100%;\n `;\n});\n\nStyledDetailColumn.defaultProps = defaultThemeProp;\n\nexport const StyledDetailColumns = styled.div<StyledDetailColumnsProps>(\n ({ theme, arrangement, columnCount = 1 }) => {\n const {\n base: { spacing }\n } = theme;\n\n return css`\n width: 100%;\n\n ${columnCount === 2 &&\n !arrangement &&\n css`\n flex-wrap: wrap;\n `}\n\n ${columnCount === 1 &&\n css`\n flex-direction: column;\n row-gap: calc(${rowGapMultiplier} * ${spacing});\n `};\n\n /* Column Widths */\n > ${StyledDetailColumn} {\n overflow: hidden;\n\n ${columnCount === 3 &&\n css`\n width: ${multiColumnDetailsColumnWidth};\n max-width: calc(33.33% - (${columnGapMultiplier} * ${spacing} * 2) / 3);\n `}\n\n ${columnCount === 2 &&\n css`\n width: calc(50% - (${columnGapMultiplier} * ${spacing}) / 2);\n max-width: unset;\n\n &:nth-child(3) > ${StyledDetails}:first-child {\n ${spacingTop(spacing)}\n }\n `}\n\n ${columnCount !== 1 &&\n css`\n ${arrangement === 'narrowWide' &&\n css`\n &:nth-child(2) {\n width: calc(\n ${multiColumnDetailsColumnWidth} * 2 + ${columnGapMultiplier} * ${spacing}\n );\n max-width: calc(66.66% - (${columnGapMultiplier} * ${spacing}) / 3);\n }\n `}\n\n ${arrangement === 'wideNarrow' &&\n css`\n &:nth-child(1) {\n width: calc(\n ${multiColumnDetailsColumnWidth} * 2 + ${columnGapMultiplier} * ${spacing}\n );\n max-width: calc(66.66% - (${columnGapMultiplier} * ${spacing}) / 3);\n }\n `}\n `}\n\n ${columnCount === 1 &&\n css`\n width: 100%;\n max-width: 100%;\n\n &:not(:first-child) > ${StyledDetails}:first-child {\n ${spacingTop(spacing)}\n }\n `}\n }\n `;\n }\n);\n\nStyledDetailColumns.defaultProps = defaultThemeProp;\n\nexport const StyledHighlightedDetailList = styled.dl(({ theme }) => {\n const {\n base: { spacing, palette }\n } = theme;\n const fontSize = calculateFontSize(theme.base['font-size'], theme.base['font-scale']);\n\n return css`\n max-width: calc(${multiColumnDetailsColumnWidth} * 3 + ${columnGapMultiplier} * ${spacing} * 2);\n padding-block-end: calc(1.5 * ${spacing});\n\n dd {\n font-size: ${fontSize[theme.components.text.h1['font-size'] as FontSize]};\n font-weight: ${theme.components.text.h1['font-weight']};\n }\n\n + hr {\n border-top: unset;\n border-radius: unset;\n border-style: unset;\n border-bottom: 0.0625rem solid ${palette['border-line']};\n margin-block-end: calc(1.5 * ${spacing});\n }\n `;\n});\n\nStyledHighlightedDetailList.defaultProps = defaultThemeProp;\n\nexport const StyledInlineFieldValueItem = styled.div`\n > * {\n min-width: 0;\n }\n`;\n\nexport const StyledDetailsList = styled(StyledFieldValueList)<StyledDetailsListPropsWithDefaults>(({\n stacked,\n labelLength,\n variant,\n theme,\n narrow = false\n}) => {\n const {\n base: { spacing },\n components: {\n details: { 'field-label': fieldLabelPosition }\n }\n } = theme;\n\n const labelTop = (stacked || fieldLabelPosition === 'stacked') && variant !== 'value-comparison';\n const isValueComparison = variant === 'value-comparison';\n const fieldValueGapMultiplier = 2;\n\n return css`\n /* Field Grid Styles */\n display: flex;\n flex-direction: column;\n row-gap: calc(${rowGapMultiplier} * ${spacing});\n width: 100%;\n max-width: ${oneColumnDetailsColumnWidth};\n height: fit-content;\n\n ${StyledFieldValue} {\n word-break: break-word;\n overflow: auto;\n }\n\n ${StyledInlineFieldValueItem}, ${StyledStackedFieldValue} {\n width: 100%;\n }\n\n ${StyledInlineFieldValueItem} {\n grid-template-columns: minmax(14ch, ${labelLength}ch) minmax(14ch, 1fr);\n grid-template-rows: max-content;\n column-gap: calc(${fieldValueGapMultiplier} * ${spacing});\n }\n\n /* Stacked Label Styles */\n ${labelTop &&\n css`\n grid-template-columns: minmax(0, 1fr);\n row-gap: 0;\n\n dt {\n max-width: 100%;\n }\n\n ${!isValueComparison &&\n css`\n ${StyledStackedFieldValue}:not(:first-child) {\n margin-block-start: calc(${rowGapMultiplier} * ${spacing});\n }\n `}\n `}\n\n /* Value Comparison Styles */\n ${isValueComparison &&\n css`\n display: grid;\n grid-template-columns: auto auto;\n column-gap: 0;\n row-gap: calc(0.5 * ${spacing});\n\n > dd {\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n }\n `}\n\n /* Responsive behavior */\n ${narrow &&\n !labelTop &&\n !isValueComparison &&\n css`\n ${StyledInlineFieldValueItem} {\n grid-template-columns: minmax(0, ${labelLength}ch) minmax(50%, 1fr);\n }\n\n dd {\n min-width: 50%;\n }\n `}\n `;\n});\n\nStyledDetailsList.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Ref } from 'react';
|
|
2
|
+
import type { FieldValueListItem, NoChildrenProp, WithAttributes } from '@pega/cosmos-react-core';
|
|
3
|
+
export type DetailsListProps = WithAttributes<'dl', NoChildrenProp & {
|
|
4
|
+
/** Field value list items */
|
|
5
|
+
items: FieldValueListItem[];
|
|
6
|
+
/** Whether to apply `value-comparison` styles to list items
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
valueComparison?: boolean;
|
|
10
|
+
ref?: Ref<HTMLDListElement>;
|
|
11
|
+
}>;
|
|
12
|
+
declare const DetailsList: import("react").ForwardRefExoticComponent<Omit<DetailsListProps, "ref"> & import("react").RefAttributes<HTMLDListElement>>;
|
|
13
|
+
export default DetailsList;
|
|
14
|
+
//# sourceMappingURL=DetailsList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailsList.d.ts","sourceRoot":"","sources":["../../../src/components/Details/DetailsList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgB,GAAG,EAAE,MAAM,OAAO,CAAC;AAS/C,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EAEd,cAAc,EACf,MAAM,yBAAyB,CAAC;AAKjC,MAAM,MAAM,gBAAgB,GAAG,cAAc,CAC3C,IAAI,EACJ,cAAc,GAAG;IACf,6BAA6B;IAC7B,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,GAAG,CAAC,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAC;CAC7B,CACF,CAAC;AAEF,QAAA,MAAM,WAAW,4HAyDhB,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createElement as _createElement } from "react";
|
|
3
|
+
import { forwardRef, useContext } from 'react';
|
|
4
|
+
import { FieldValueItem, Grid, useBreakpoint, useConsolidatedRef, useTheme } from '@pega/cosmos-react-core';
|
|
5
|
+
import DetailsContext from './DetailsContext';
|
|
6
|
+
import { StyledDetailsList, StyledInlineFieldValueItem } from './Details.styles';
|
|
7
|
+
const DetailsList = forwardRef(function DetailsList({ items, valueComparison = false }, ref) {
|
|
8
|
+
const { components: { details: { 'field-label': fieldLabelPosition } } } = useTheme();
|
|
9
|
+
const { longestLabelLength, mobileView: inMobileView } = useContext(DetailsContext);
|
|
10
|
+
const containerRef = useConsolidatedRef(ref);
|
|
11
|
+
const isSmallOrAbove = useBreakpoint('sm');
|
|
12
|
+
const isSmContentWidthOrAbove = useBreakpoint('sm', {
|
|
13
|
+
breakpointRef: containerRef,
|
|
14
|
+
themeProp: 'content-width'
|
|
15
|
+
});
|
|
16
|
+
const isMdContentWidthOrAbove = useBreakpoint('md', {
|
|
17
|
+
breakpointRef: containerRef,
|
|
18
|
+
themeProp: 'content-width'
|
|
19
|
+
});
|
|
20
|
+
const labelLength = Math.max(14, Math.min(longestLabelLength ?? 16, 40));
|
|
21
|
+
const applyMobileView = inMobileView || !isSmallOrAbove || !isSmContentWidthOrAbove;
|
|
22
|
+
return items.length > 0 ? (_jsx(StyledDetailsList, { ref: containerRef, labelLength: labelLength, stacked: applyMobileView, variant: valueComparison && !applyMobileView ? 'value-comparison' : undefined, narrow: !isMdContentWidthOrAbove, children: items.map(({ id, name, value, variant: fieldVariant, ...restProps }) => {
|
|
23
|
+
const isStacked = applyMobileView ||
|
|
24
|
+
fieldVariant === 'stacked' ||
|
|
25
|
+
(fieldLabelPosition === 'stacked' && !valueComparison);
|
|
26
|
+
const item = (_createElement(FieldValueItem, { ...restProps, name: name, value: value, variant: isStacked ? 'stacked' : 'inline', key: id ?? name }));
|
|
27
|
+
return isStacked || valueComparison ? (item) : (_jsx(Grid, { as: StyledInlineFieldValueItem, container: { cols: '16ch minmax(0, 1fr)' }, children: item }));
|
|
28
|
+
}) })) : null;
|
|
29
|
+
});
|
|
30
|
+
export default DetailsList;
|
|
31
|
+
//# sourceMappingURL=DetailsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DetailsList.js","sourceRoot":"","sources":["../../../src/components/Details/DetailsList.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAG/C,OAAO,EACL,cAAc,EACd,IAAI,EACJ,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACT,MAAM,yBAAyB,CAAC;AAQjC,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAejF,MAAM,WAAW,GAAG,UAAU,CAC5B,SAAS,WAAW,CAAC,EAAE,KAAK,EAAE,eAAe,GAAG,KAAK,EAAE,EAAE,GAAG;IAC1D,MAAM,EACJ,UAAU,EAAE,EACV,OAAO,EAAE,EAAE,aAAa,EAAE,kBAAkB,EAAE,EAC/C,EACF,GAAG,QAAQ,EAAE,CAAC;IACf,MAAM,EAAE,kBAAkB,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACpF,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,EAAE;QAClD,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IACH,MAAM,uBAAuB,GAAG,aAAa,CAAC,IAAI,EAAE;QAClD,aAAa,EAAE,YAAY;QAC3B,SAAS,EAAE,eAAe;KAC3B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IACzE,MAAM,eAAe,GAAG,YAAY,IAAI,CAAC,cAAc,IAAI,CAAC,uBAAuB,CAAC;IAEpF,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACxB,KAAC,iBAAiB,IAChB,GAAG,EAAE,YAAY,EACjB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,eAAe,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,EAC7E,MAAM,EAAE,CAAC,uBAAuB,YAE/B,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE;YACtE,MAAM,SAAS,GACb,eAAe;gBACf,YAAY,KAAK,SAAS;gBAC1B,CAAC,kBAAkB,KAAK,SAAS,IAAI,CAAC,eAAe,CAAC,CAAC;YAEzD,MAAM,IAAI,GAAG,CACX,eAAC,cAAc,OACT,SAAS,EACb,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,EACzC,GAAG,EAAE,EAAE,IAAI,IAAI,GACf,CACH,CAAC;YAEF,OAAO,SAAS,IAAI,eAAe,CAAC,CAAC,CAAC,CACpC,IAAI,CACL,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAE,0BAA0B,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,YAC7E,IAAI,GACA,CACR,CAAC;QACJ,CAAC,CAAC,GACgB,CACrB,CAAC,CAAC,CAAC,IAAI,CAAC;AACX,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC","sourcesContent":["import { forwardRef, useContext } from 'react';\nimport type { PropsWithRef, Ref } from 'react';\n\nimport {\n FieldValueItem,\n Grid,\n useBreakpoint,\n useConsolidatedRef,\n useTheme\n} from '@pega/cosmos-react-core';\nimport type {\n FieldValueListItem,\n NoChildrenProp,\n RefElement,\n WithAttributes\n} from '@pega/cosmos-react-core';\n\nimport DetailsContext from './DetailsContext';\nimport { StyledDetailsList, StyledInlineFieldValueItem } from './Details.styles';\n\nexport type DetailsListProps = WithAttributes<\n 'dl',\n NoChildrenProp & {\n /** Field value list items */\n items: FieldValueListItem[];\n /** Whether to apply `value-comparison` styles to list items\n * @default false\n */\n valueComparison?: boolean;\n ref?: Ref<HTMLDListElement>;\n }\n>;\n\nconst DetailsList = forwardRef<RefElement<DetailsListProps>, PropsWithRef<DetailsListProps>>(\n function DetailsList({ items, valueComparison = false }, ref) {\n const {\n components: {\n details: { 'field-label': fieldLabelPosition }\n }\n } = useTheme();\n const { longestLabelLength, mobileView: inMobileView } = useContext(DetailsContext);\n const containerRef = useConsolidatedRef(ref);\n const isSmallOrAbove = useBreakpoint('sm');\n const isSmContentWidthOrAbove = useBreakpoint('sm', {\n breakpointRef: containerRef,\n themeProp: 'content-width'\n });\n const isMdContentWidthOrAbove = useBreakpoint('md', {\n breakpointRef: containerRef,\n themeProp: 'content-width'\n });\n\n const labelLength = Math.max(14, Math.min(longestLabelLength ?? 16, 40));\n const applyMobileView = inMobileView || !isSmallOrAbove || !isSmContentWidthOrAbove;\n\n return items.length > 0 ? (\n <StyledDetailsList\n ref={containerRef}\n labelLength={labelLength}\n stacked={applyMobileView}\n variant={valueComparison && !applyMobileView ? 'value-comparison' : undefined}\n narrow={!isMdContentWidthOrAbove}\n >\n {items.map(({ id, name, value, variant: fieldVariant, ...restProps }) => {\n const isStacked =\n applyMobileView ||\n fieldVariant === 'stacked' ||\n (fieldLabelPosition === 'stacked' && !valueComparison);\n\n const item = (\n <FieldValueItem\n {...restProps}\n name={name}\n value={value}\n variant={isStacked ? 'stacked' : 'inline'}\n key={id ?? name}\n />\n );\n\n return isStacked || valueComparison ? (\n item\n ) : (\n <Grid as={StyledInlineFieldValueItem} container={{ cols: '16ch minmax(0, 1fr)' }}>\n {item}\n </Grid>\n );\n })}\n </StyledDetailsList>\n ) : null;\n }\n);\n\nexport default DetailsList;\n"]}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default } from './Details';
|
|
2
|
+
export { default as DetailsList } from './DetailsList';
|
|
2
3
|
export { default as DetailsContext } from './DetailsContext';
|
|
3
|
-
export { StyledFieldValueGroupLabel,
|
|
4
|
+
export { StyledFieldValueGroupLabel, StyledDetailsList, StyledDetails, StyledHighlightedDetailList } from './Details.styles';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Details/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Details/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default } from './Details';
|
|
2
|
+
export { default as DetailsList } from './DetailsList';
|
|
2
3
|
export { default as DetailsContext } from './DetailsContext';
|
|
3
|
-
export { StyledFieldValueGroupLabel,
|
|
4
|
+
export { StyledFieldValueGroupLabel, StyledDetailsList, StyledDetails, StyledHighlightedDetailList } from './Details.styles';
|
|
4
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Details/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Details/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,aAAa,EACb,2BAA2B,EAC5B,MAAM,kBAAkB,CAAC","sourcesContent":["export { default } from './Details';\nexport { default as DetailsList } from './DetailsList';\nexport { default as DetailsContext } from './DetailsContext';\nexport {\n StyledFieldValueGroupLabel,\n StyledDetailsList,\n StyledDetails,\n StyledHighlightedDetailList\n} from './Details.styles';\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { FunctionComponent } from 'react';
|
|
2
|
+
import type { GenAICoachProps } from './GenAICoach.types';
|
|
3
|
+
declare const _default: FunctionComponent<GenAICoachProps> & {
|
|
4
|
+
getTestIds: (testIdProp?: string | undefined) => import("@pega/cosmos-react-core").TestIdsRecord<readonly []>;
|
|
5
|
+
};
|
|
6
|
+
export default _default;
|
|
7
|
+
//# sourceMappingURL=GenAICoach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GenAICoach.d.ts","sourceRoot":"","sources":["../../../src/components/GenAICoach/GenAICoach.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAkC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;;;;AAiX1D,wBAA6D"}
|