@pega/cosmos-react-core 10.0.0-build.4.2 → 10.0.0-build.4.21
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/AppShell/AppHeader.d.ts.map +1 -1
- package/lib/components/AppShell/AppHeader.js +44 -7
- package/lib/components/AppShell/AppHeader.js.map +1 -1
- package/lib/components/AppShell/AppHeader.styles.d.ts +6 -2
- package/lib/components/AppShell/AppHeader.styles.d.ts.map +1 -1
- package/lib/components/AppShell/AppHeader.styles.js +36 -18
- package/lib/components/AppShell/AppHeader.styles.js.map +1 -1
- package/lib/components/AppShell/AppNavigationPanel.js +1 -1
- package/lib/components/AppShell/AppNavigationPanel.js.map +1 -1
- package/lib/components/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/AppShell/AppShell.js +27 -9
- package/lib/components/AppShell/AppShell.js.map +1 -1
- package/lib/components/AppShell/AppShellContext.d.ts +1 -0
- package/lib/components/AppShell/AppShellContext.d.ts.map +1 -1
- package/lib/components/AppShell/AppShellContext.js +1 -0
- package/lib/components/AppShell/AppShellContext.js.map +1 -1
- package/lib/components/AppShell/AppShellList.js +1 -1
- package/lib/components/AppShell/AppShellList.js.map +1 -1
- package/lib/components/AppShell/NavigationList.d.ts.map +1 -1
- package/lib/components/AppShell/NavigationList.js +3 -2
- package/lib/components/AppShell/NavigationList.js.map +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.d.ts.map +1 -1
- package/lib/components/AppShell/NavigationListItemWrapper.js +87 -48
- package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
- package/lib/components/Avatar/Avatar.d.ts +1 -1
- package/lib/components/Avatar/Avatar.d.ts.map +1 -1
- package/lib/components/Avatar/Avatar.js.map +1 -1
- package/lib/components/Badges/Selection.js +1 -1
- package/lib/components/Badges/Selection.js.map +1 -1
- package/lib/components/ComboBox/ComboBox.d.ts.map +1 -1
- package/lib/components/ComboBox/ComboBox.js +3 -6
- package/lib/components/ComboBox/ComboBox.js.map +1 -1
- package/lib/components/ComboBox/ComboBox.styles.d.ts.map +1 -1
- package/lib/components/ComboBox/ComboBox.styles.js +9 -1
- package/lib/components/ComboBox/ComboBox.styles.js.map +1 -1
- package/lib/components/ComboBox/ComboBoxInput.d.ts +0 -2
- package/lib/components/ComboBox/ComboBoxInput.d.ts.map +1 -1
- package/lib/components/ComboBox/ComboBoxInput.js +2 -2
- package/lib/components/ComboBox/ComboBoxInput.js.map +1 -1
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.d.ts +4 -6
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.d.ts.map +1 -1
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.js +96 -189
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.js.map +1 -1
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.d.ts +190 -0
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.d.ts.map +1 -0
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.js +72 -0
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.js.map +1 -0
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.types.d.ts +0 -2
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.types.d.ts.map +1 -1
- package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.types.js.map +1 -1
- package/lib/components/Configuration/Configuration.d.ts.map +1 -1
- package/lib/components/Configuration/Configuration.js +3 -1
- package/lib/components/Configuration/Configuration.js.map +1 -1
- package/lib/components/Currency/CurrencyInput.d.ts.map +1 -1
- package/lib/components/Currency/CurrencyInput.js +19 -12
- package/lib/components/Currency/CurrencyInput.js.map +1 -1
- package/lib/components/Currency/utils.d.ts +8 -0
- package/lib/components/Currency/utils.d.ts.map +1 -1
- package/lib/components/Currency/utils.js +34 -4
- package/lib/components/Currency/utils.js.map +1 -1
- package/lib/components/DateTime/DateTimeDisplay.d.ts +2 -2
- package/lib/components/DateTime/DateTimeDisplay.d.ts.map +1 -1
- package/lib/components/DateTime/DateTimeDisplay.js +29 -4
- package/lib/components/DateTime/DateTimeDisplay.js.map +1 -1
- package/lib/components/DateTime/Input/DateInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateInput.js +7 -7
- package/lib/components/DateTime/Input/DateInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateRangeInput.js +8 -2
- package/lib/components/DateTime/Input/DateRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.d.ts +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/DateTimeInput.js +8 -8
- package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/MonthInput.js +2 -2
- package/lib/components/DateTime/Input/MonthInput.js.map +1 -1
- package/lib/components/DateTime/Input/QuarterInput.js +2 -2
- package/lib/components/DateTime/Input/QuarterInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/TimeInput.js +3 -3
- package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/TimeRangeInput.js +12 -4
- package/lib/components/DateTime/Input/TimeRangeInput.js.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.d.ts.map +1 -1
- package/lib/components/DateTime/Input/WeekInput.js +2 -2
- package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
- package/lib/components/DateTime/Input/utils.d.ts +6 -0
- package/lib/components/DateTime/Input/utils.d.ts.map +1 -1
- package/lib/components/DateTime/Input/utils.js +47 -0
- package/lib/components/DateTime/Input/utils.js.map +1 -1
- package/lib/components/DateTime/utils.d.ts +15 -4
- package/lib/components/DateTime/utils.d.ts.map +1 -1
- package/lib/components/DateTime/utils.js +24 -3
- package/lib/components/DateTime/utils.js.map +1 -1
- package/lib/components/Dialog/InfoDialogWrapper.d.ts +4 -0
- package/lib/components/Dialog/InfoDialogWrapper.d.ts.map +1 -0
- package/lib/components/Dialog/InfoDialogWrapper.js +13 -0
- package/lib/components/Dialog/InfoDialogWrapper.js.map +1 -0
- package/lib/components/Dialog/TouchDialog.d.ts +5 -0
- package/lib/components/Dialog/TouchDialog.d.ts.map +1 -0
- package/lib/components/Dialog/TouchDialog.js +85 -0
- package/lib/components/Dialog/TouchDialog.js.map +1 -0
- package/lib/components/Dialog/TouchDialog.styles.d.ts +7 -0
- package/lib/components/Dialog/TouchDialog.styles.d.ts.map +1 -0
- package/lib/components/Dialog/TouchDialog.styles.js +62 -0
- package/lib/components/Dialog/TouchDialog.styles.js.map +1 -0
- package/lib/components/Dialog/TouchDialog.test-ids.d.ts +2 -0
- package/lib/components/Dialog/TouchDialog.test-ids.d.ts.map +1 -0
- package/lib/components/Dialog/TouchDialog.test-ids.js +3 -0
- package/lib/components/Dialog/TouchDialog.test-ids.js.map +1 -0
- package/lib/components/Dialog/TouchDialog.types.d.ts +42 -0
- package/lib/components/Dialog/TouchDialog.types.d.ts.map +1 -0
- package/lib/components/Dialog/TouchDialog.types.js +2 -0
- package/lib/components/Dialog/TouchDialog.types.js.map +1 -0
- package/lib/components/Dialog/TouchInfoDialog.d.ts +4 -0
- package/lib/components/Dialog/TouchInfoDialog.d.ts.map +1 -0
- package/lib/components/Dialog/TouchInfoDialog.js +14 -0
- package/lib/components/Dialog/TouchInfoDialog.js.map +1 -0
- package/lib/components/Dialog/index.d.ts +4 -1
- package/lib/components/Dialog/index.d.ts.map +1 -1
- package/lib/components/Dialog/index.js +3 -1
- package/lib/components/Dialog/index.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroup.d.ts +12 -7
- package/lib/components/FieldGroup/FieldGroup.d.ts.map +1 -1
- package/lib/components/FieldGroup/FieldGroup.js +28 -25
- package/lib/components/FieldGroup/FieldGroup.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.js +1 -1
- package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
- package/lib/components/FieldValueList/FieldValueList.d.ts +3 -1
- package/lib/components/FieldValueList/FieldValueList.d.ts.map +1 -1
- package/lib/components/FieldValueList/FieldValueList.js +15 -6
- package/lib/components/FieldValueList/FieldValueList.js.map +1 -1
- package/lib/components/File/CompactList.js +1 -1
- package/lib/components/File/CompactList.js.map +1 -1
- package/lib/components/File/FileItem.d.ts +38 -0
- package/lib/components/File/FileItem.d.ts.map +1 -1
- package/lib/components/File/FileItem.js +167 -23
- package/lib/components/File/FileItem.js.map +1 -1
- package/lib/components/File/FileList.d.ts.map +1 -1
- package/lib/components/File/FileList.js +6 -2
- package/lib/components/File/FileList.js.map +1 -1
- package/lib/components/File/index.d.ts +1 -1
- package/lib/components/File/index.d.ts.map +1 -1
- package/lib/components/File/index.js.map +1 -1
- package/lib/components/File/mimeTypes.json +1 -0
- package/lib/components/FormField/FormField.d.ts +9 -1
- package/lib/components/FormField/FormField.d.ts.map +1 -1
- package/lib/components/FormField/FormField.js +26 -10
- package/lib/components/FormField/FormField.js.map +1 -1
- package/lib/components/Icon/Icon.d.ts +5 -0
- package/lib/components/Icon/Icon.d.ts.map +1 -1
- package/lib/components/Icon/Icon.js +44 -4
- package/lib/components/Icon/Icon.js.map +1 -1
- package/lib/components/Icon/iconNames.d.ts +1 -0
- package/lib/components/Icon/iconNames.d.ts.map +1 -1
- package/lib/components/Icon/iconNames.js +1 -0
- package/lib/components/Icon/iconNames.js.map +1 -1
- package/lib/components/Icon/icons/search-solid.icon.d.ts +1 -1
- package/lib/components/Icon/icons/search-solid.icon.js +3 -3
- package/lib/components/Icon/icons/search-solid.icon.js.map +1 -1
- package/lib/components/Icon/streamlineIconNames.d.ts +1 -0
- package/lib/components/Icon/streamlineIconNames.d.ts.map +1 -1
- package/lib/components/Icon/streamlineIconNames.js +1 -0
- package/lib/components/Icon/streamlineIconNames.js.map +1 -1
- package/lib/components/Link/Link.d.ts +6 -13
- package/lib/components/Link/Link.d.ts.map +1 -1
- package/lib/components/Link/Link.js.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.d.ts.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.js +1 -1
- package/lib/components/ListToolbar/ListToolbar.js.map +1 -1
- package/lib/components/ListToolbar/PresetMenuPopover.d.ts.map +1 -1
- package/lib/components/ListToolbar/PresetMenuPopover.js +16 -5
- package/lib/components/ListToolbar/PresetMenuPopover.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.d.ts.map +1 -1
- package/lib/components/MenuButton/MenuButton.js +33 -7
- package/lib/components/MenuButton/MenuButton.js.map +1 -1
- package/lib/components/MultiStepForm/FormProgress.styles.d.ts +25 -1
- package/lib/components/MultiStepForm/FormProgress.styles.d.ts.map +1 -1
- package/lib/components/MultiStepForm/FormProgress.styles.js +168 -5
- package/lib/components/MultiStepForm/FormProgress.styles.js.map +1 -1
- package/lib/components/MultiStepForm/HorizontalFormProgress.d.ts +2 -2
- package/lib/components/MultiStepForm/HorizontalFormProgress.d.ts.map +1 -1
- package/lib/components/MultiStepForm/HorizontalFormProgress.js +48 -22
- package/lib/components/MultiStepForm/HorizontalFormProgress.js.map +1 -1
- package/lib/components/MultiStepForm/MultiStepForm.d.ts.map +1 -1
- package/lib/components/MultiStepForm/MultiStepForm.js +2 -2
- package/lib/components/MultiStepForm/MultiStepForm.js.map +1 -1
- package/lib/components/MultiStepForm/MultiStepForm.types.d.ts +5 -0
- package/lib/components/MultiStepForm/MultiStepForm.types.d.ts.map +1 -1
- package/lib/components/MultiStepForm/MultiStepForm.types.js.map +1 -1
- package/lib/components/MultiStepForm/VerticalFormProgress.d.ts +2 -2
- package/lib/components/MultiStepForm/VerticalFormProgress.d.ts.map +1 -1
- package/lib/components/MultiStepForm/VerticalFormProgress.js +45 -20
- package/lib/components/MultiStepForm/VerticalFormProgress.js.map +1 -1
- package/lib/components/MultiStepForm/useFormProgressOverflow.d.ts +1 -1
- package/lib/components/MultiStepForm/useFormProgressOverflow.d.ts.map +1 -1
- package/lib/components/MultiStepForm/useFormProgressOverflow.js +17 -9
- package/lib/components/MultiStepForm/useFormProgressOverflow.js.map +1 -1
- package/lib/components/Number/utils.js +1 -1
- package/lib/components/Number/utils.js.map +1 -1
- package/lib/components/PageTemplates/PageTemplates.js +1 -1
- package/lib/components/PageTemplates/PageTemplates.js.map +1 -1
- package/lib/components/RadioCheckGroup/RadioCheckGroup.d.ts.map +1 -1
- package/lib/components/RadioCheckGroup/RadioCheckGroup.js +1 -1
- package/lib/components/RadioCheckGroup/RadioCheckGroup.js.map +1 -1
- package/lib/components/SelectionCard/SelectionCard.d.ts +1 -1
- package/lib/components/SelectionCard/SelectionCard.d.ts.map +1 -1
- package/lib/components/SelectionCard/SelectionCard.js +3 -3
- package/lib/components/SelectionCard/SelectionCard.js.map +1 -1
- package/lib/components/SelectionCard/SelectionCardDisplay.d.ts +5 -0
- package/lib/components/SelectionCard/SelectionCardDisplay.d.ts.map +1 -1
- package/lib/components/SelectionCard/SelectionCardDisplay.js +4 -2
- package/lib/components/SelectionCard/SelectionCardDisplay.js.map +1 -1
- package/lib/components/SpeechToTextButton/SpeechToTextButton.js +1 -1
- package/lib/components/SpeechToTextButton/SpeechToTextButton.js.map +1 -1
- package/lib/components/SummaryList/SummaryList.d.ts.map +1 -1
- package/lib/components/SummaryList/SummaryList.js +8 -4
- package/lib/components/SummaryList/SummaryList.js.map +1 -1
- package/lib/components/TextArea/TextArea.d.ts.map +1 -1
- package/lib/components/TextArea/TextArea.js +7 -21
- package/lib/components/TextArea/TextArea.js.map +1 -1
- package/lib/components/TextArea/TextArea.styles.d.ts +0 -1
- package/lib/components/TextArea/TextArea.styles.d.ts.map +1 -1
- package/lib/components/TextArea/TextArea.styles.js +1 -2
- package/lib/components/TextArea/TextArea.styles.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +13 -9
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/i18n/default.d.ts +13 -10
- package/lib/i18n/default.d.ts.map +1 -1
- package/lib/i18n/default.js +16 -12
- package/lib/i18n/default.js.map +1 -1
- package/lib/i18n/i18n.d.ts +13 -9
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/lib/styles/GlobalStyle.d.ts.map +1 -1
- package/lib/styles/GlobalStyle.js +3 -3
- package/lib/styles/GlobalStyle.js.map +1 -1
- package/lib/theme/theme.d.ts +48 -0
- package/lib/theme/theme.d.ts.map +1 -1
- package/lib/theme/themeDefinition.json +26 -0
- package/lib/theme/themeOverrides.schema.json +36 -0
- package/lib/theme/themes/aurigaDarkTheme.json +54 -61
- package/lib/theme/themes/aurigaTheme.json +49 -56
- package/lib/theme/themes/virgoTheme.json +3 -3
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.d.ts.map +1 -1
- package/lib/utils/index.js +1 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/isTouchDevice.d.ts +3 -0
- package/lib/utils/isTouchDevice.d.ts.map +1 -0
- package/lib/utils/isTouchDevice.js +4 -0
- package/lib/utils/isTouchDevice.js.map +1 -0
- package/package.json +2 -2
|
@@ -2,6 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { forwardRef, useEffect, useState } from 'react';
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
4
|
import Icon, { registerIcon } from '../Icon';
|
|
5
|
+
import Input from '../Input';
|
|
6
|
+
import ComboBox from '../ComboBox';
|
|
5
7
|
import * as openIcon from '../Icon/icons/open.icon';
|
|
6
8
|
import * as timesIcon from '../Icon/icons/times.icon';
|
|
7
9
|
import * as previewIcon from '../Icon/icons/preview.icon';
|
|
@@ -18,8 +20,9 @@ import Progress from '../Progress';
|
|
|
18
20
|
import { StyledProgressRing } from '../Progress/Progress.styles';
|
|
19
21
|
import { formatNumber } from '../Number';
|
|
20
22
|
import Flex from '../Flex';
|
|
23
|
+
import Grid from '../Grid';
|
|
21
24
|
import { StyledIconShape } from '../Icon/Icon';
|
|
22
|
-
import { getActiveElement, getFocusables } from '../../utils';
|
|
25
|
+
import { getActiveElement, getFocusables, isInstance } from '../../utils';
|
|
23
26
|
import { ellipsisOverflow } from '../../styles/mixins';
|
|
24
27
|
import { StyledLinkPopover, StyledLinkPreviewPopoverBtn } from '../Link/Link';
|
|
25
28
|
import Popover from '../Popover';
|
|
@@ -34,6 +37,28 @@ const StyledErrorIcon = styled(Icon)(({ theme }) => {
|
|
|
34
37
|
`;
|
|
35
38
|
});
|
|
36
39
|
StyledErrorIcon.defaultProps = defaultThemeProp;
|
|
40
|
+
const StyledStatusVisualInEditableLayout = styled.div(({ theme: { components: { input } } }) => {
|
|
41
|
+
return css `
|
|
42
|
+
min-inline-size: ${input.height};
|
|
43
|
+
min-block-size: ${input.height};
|
|
44
|
+
|
|
45
|
+
> ${StyledErrorIcon} {
|
|
46
|
+
margin-inline-start: 0;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
> ${StyledProgressRing} {
|
|
50
|
+
margin-inline-start: 0;
|
|
51
|
+
inline-size: ${input.height};
|
|
52
|
+
block-size: ${input.height};
|
|
53
|
+
|
|
54
|
+
> svg {
|
|
55
|
+
width: 100%;
|
|
56
|
+
height: 100%;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
`;
|
|
60
|
+
});
|
|
61
|
+
StyledStatusVisualInEditableLayout.defaultProps = defaultThemeProp;
|
|
37
62
|
const titleEllipsisStyle = css `
|
|
38
63
|
flex-shrink: 1;
|
|
39
64
|
${ellipsisOverflow}
|
|
@@ -44,11 +69,17 @@ export const StyledPreviewTitle = styled(Button) `
|
|
|
44
69
|
export const StyledTextTitle = styled(Text) `
|
|
45
70
|
${titleEllipsisStyle}
|
|
46
71
|
`;
|
|
47
|
-
const
|
|
72
|
+
export const StyledErrorTextTitle = styled(StyledTextTitle)(({ theme }) => {
|
|
73
|
+
return css `
|
|
74
|
+
font-weight: ${theme.base['font-weight']['semi-bold']};
|
|
75
|
+
`;
|
|
76
|
+
});
|
|
77
|
+
StyledErrorTextTitle.defaultProps = defaultThemeProp;
|
|
78
|
+
const StyledMeta = styled(StyledText)(({ theme, error, alignStart }) => {
|
|
48
79
|
return css `
|
|
49
80
|
/* min width to show percentage in full */
|
|
50
81
|
min-width: 4ch;
|
|
51
|
-
margin-inline-start: auto;
|
|
82
|
+
margin-inline-start: ${alignStart ? 'unset' : 'auto'};
|
|
52
83
|
${titleEllipsisStyle}
|
|
53
84
|
${error &&
|
|
54
85
|
css `
|
|
@@ -63,14 +94,51 @@ const StyledActionsWrapper = styled.div(({ meta }) => {
|
|
|
63
94
|
`;
|
|
64
95
|
});
|
|
65
96
|
StyledActionsWrapper.defaultProps = defaultThemeProp;
|
|
66
|
-
|
|
97
|
+
const StyledMetadataGrid = styled(Grid)(({ theme }) => {
|
|
98
|
+
return css `
|
|
99
|
+
grid-template-columns: repeat(2, 1fr);
|
|
100
|
+
|
|
101
|
+
@container (width < ${theme.base.breakpoints.sm}) {
|
|
102
|
+
grid-template-columns: 1fr;
|
|
103
|
+
}
|
|
104
|
+
`;
|
|
105
|
+
});
|
|
106
|
+
StyledMetadataGrid.defaultProps = defaultThemeProp;
|
|
107
|
+
export const StyledFileItem = styled.div(({ theme: { base: { palette, spacing, 'hit-area': { compact, 'compact-min': compactMin, 'mouse-min': mouseMin, 'finger-min': fingerMin }, 'disabled-opacity': disabledOpacity }, components: { input, 'form-control': { ':disabled': { 'background-color': disabledBackgroundColor, 'border-color': disabledBorderColor } } } }, compactMode, isDisabled, hasMetadata, isErrorOrProgressItem }) => {
|
|
108
|
+
const labelOffset = `calc(${compactMin} + 0.25 * ${spacing})`;
|
|
67
109
|
return css `
|
|
68
110
|
border-radius: calc(var(--container-border-radius) * 0.5);
|
|
69
111
|
border: 0.0625rem solid ${palette['border-line']};
|
|
70
|
-
|
|
112
|
+
${!hasMetadata &&
|
|
113
|
+
css `
|
|
114
|
+
background-color: ${palette['primary-background']};
|
|
115
|
+
`}
|
|
71
116
|
height: ${input.height};
|
|
72
117
|
min-width: calc(${input.height} + 12ch + 1.5 * ${spacing} + ${compact});
|
|
73
118
|
|
|
119
|
+
${hasMetadata &&
|
|
120
|
+
css `
|
|
121
|
+
container-type: inline-size;
|
|
122
|
+
border: none;
|
|
123
|
+
border-block-start: 0.0625rem solid ${palette['border-line']};
|
|
124
|
+
border-start-start-radius: 0;
|
|
125
|
+
border-start-end-radius: 0;
|
|
126
|
+
height: auto;
|
|
127
|
+
min-height: ${input.height};
|
|
128
|
+
|
|
129
|
+
&:first-child {
|
|
130
|
+
border-block-start: none;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
> ${StyledActionsWrapper} {
|
|
134
|
+
align-self: flex-start;
|
|
135
|
+
margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};
|
|
136
|
+
margin-inline-end: calc(-0.5 * ${spacing});
|
|
137
|
+
inline-size: ${input.height};
|
|
138
|
+
block-size: ${input.height};
|
|
139
|
+
}
|
|
140
|
+
`}
|
|
141
|
+
|
|
74
142
|
${compactMode &&
|
|
75
143
|
css `
|
|
76
144
|
height: ${compact};
|
|
@@ -100,12 +168,32 @@ export const StyledFileItem = styled.div(({ theme: { base: { palette, spacing, '
|
|
|
100
168
|
border-start-end-radius: 0;
|
|
101
169
|
border-end-end-radius: 0;
|
|
102
170
|
width: ${input.height};
|
|
171
|
+
min-width: ${mouseMin};
|
|
103
172
|
flex-shrink: 0;
|
|
104
173
|
|
|
174
|
+
@media (pointer: coarse) {
|
|
175
|
+
min-width: ${fingerMin};
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
${hasMetadata &&
|
|
179
|
+
css `
|
|
180
|
+
height: ${input.height};
|
|
181
|
+
min-height: ${mouseMin};
|
|
182
|
+
overflow: hidden;
|
|
183
|
+
border-radius: calc(var(--container-border-radius) * 0.5);
|
|
184
|
+
margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};
|
|
185
|
+
|
|
186
|
+
@media (pointer: coarse) {
|
|
187
|
+
min-height: ${fingerMin};
|
|
188
|
+
}
|
|
189
|
+
`}
|
|
190
|
+
|
|
105
191
|
${compactMode &&
|
|
106
192
|
css `
|
|
107
193
|
height: ${compact};
|
|
108
194
|
width: ${compact};
|
|
195
|
+
min-width: unset;
|
|
196
|
+
min-height: unset;
|
|
109
197
|
`}
|
|
110
198
|
}
|
|
111
199
|
${isDisabled &&
|
|
@@ -118,7 +206,7 @@ export const StyledFileItem = styled.div(({ theme: { base: { palette, spacing, '
|
|
|
118
206
|
});
|
|
119
207
|
StyledFileItem.defaultProps = defaultThemeProp;
|
|
120
208
|
const FileItem = forwardRef(function FileItem(props, ref) {
|
|
121
|
-
const { id, name, thumbnail, format, error, onCancel, onEdit, onPreview, onPreviewPopoverClick, onDownload, onDelete, onOpen, progress, compact = false, previewFromActions = false, disabled = false, ...restProps } = props;
|
|
209
|
+
const { id, name, metadata, thumbnail, format, error, onCancel, onEdit, onPreview, onPreviewPopoverClick, onDownload, onDelete, onOpen, progress, compact = false, previewFromActions = false, disabled = false, ...restProps } = props;
|
|
122
210
|
const [thumbnailError, setThumbnailError] = useState(false);
|
|
123
211
|
const [textTarget, setTextTarget] = useElement();
|
|
124
212
|
const [metaTarget, setMetaTarget] = useElement();
|
|
@@ -129,7 +217,9 @@ const FileItem = forwardRef(function FileItem(props, ref) {
|
|
|
129
217
|
const { previewTriggerRef } = usePreviewContext();
|
|
130
218
|
const t = useI18n();
|
|
131
219
|
const uploading = typeof progress === 'number' && progress < 100;
|
|
220
|
+
const isErrorOrProgressItem = Boolean(error || uploading);
|
|
132
221
|
const itemRef = useConsolidatedRef(ref);
|
|
222
|
+
const hasMetadata = !!metadata;
|
|
133
223
|
const activeElement = getActiveElement();
|
|
134
224
|
const activeElementInItem = itemRef.current?.contains(activeElement);
|
|
135
225
|
let metaMessage;
|
|
@@ -148,7 +238,7 @@ const FileItem = forwardRef(function FileItem(props, ref) {
|
|
|
148
238
|
}
|
|
149
239
|
const definedActions = [
|
|
150
240
|
previewFromActions ? { onClick: onPreview, text: t('preview'), icon: 'preview' } : undefined,
|
|
151
|
-
{ onClick: onEdit, text: t('edit'), icon: 'pencil' },
|
|
241
|
+
{ onClick: hasMetadata ? undefined : onEdit, text: t('edit'), icon: 'pencil' },
|
|
152
242
|
{ onClick: onDownload, text: t('download'), icon: 'download' },
|
|
153
243
|
{ onClick: onDelete, text: t('delete'), icon: 'trash' },
|
|
154
244
|
{ onClick: onOpen, text: t('link_open_in_tab_text'), icon: 'open' }
|
|
@@ -168,11 +258,11 @@ const FileItem = forwardRef(function FileItem(props, ref) {
|
|
|
168
258
|
let visual;
|
|
169
259
|
let contextualLabel;
|
|
170
260
|
if (uploading) {
|
|
171
|
-
visual = _jsx(Progress, { variant: 'ring', placement: 'inline', value: progress });
|
|
261
|
+
visual = hasMetadata ? (_jsx(Flex, { container: { alignItems: 'center', justify: 'center' }, item: { shrink: 0 }, as: StyledStatusVisualInEditableLayout, children: _jsx(Progress, { variant: 'ring', placement: 'inline', value: progress }) })) : (_jsx(Progress, { variant: 'ring', placement: 'inline', value: progress }));
|
|
172
262
|
contextualLabel = t('uploading_file', [name]);
|
|
173
263
|
}
|
|
174
264
|
else if (error) {
|
|
175
|
-
visual = _jsx(StyledErrorIcon, { name: 'warn-solid' });
|
|
265
|
+
visual = hasMetadata ? (_jsx(Flex, { container: { alignItems: 'center', justify: 'center' }, item: { shrink: 0 }, as: StyledStatusVisualInEditableLayout, children: _jsx(StyledErrorIcon, { name: 'warn-solid' }) })) : (_jsx(StyledErrorIcon, { name: 'warn-solid' }));
|
|
176
266
|
contextualLabel = t('upload_failed', [name, error]);
|
|
177
267
|
}
|
|
178
268
|
else {
|
|
@@ -186,25 +276,79 @@ const FileItem = forwardRef(function FileItem(props, ref) {
|
|
|
186
276
|
getFocusables(itemRef.current)[0]?.focus();
|
|
187
277
|
}
|
|
188
278
|
}, [progress, error, onCancel, onDelete, onPreview, onEdit, onDownload]);
|
|
279
|
+
const showInlinePreview = !hasMetadata &&
|
|
280
|
+
!previewFromActions &&
|
|
281
|
+
((!inModal && onPreviewPopoverClick) || onPreview) &&
|
|
282
|
+
!(error || uploading);
|
|
283
|
+
let primaryContent;
|
|
284
|
+
if (metadata && metadata.length > 0 && !error && !uploading) {
|
|
285
|
+
primaryContent = (_jsx(StyledMetadataGrid, { container: { gap: 1 }, children: metadata.map((field, index) => {
|
|
286
|
+
const spanFull = index === metadata.length - 1 && metadata.length % 2 !== 0;
|
|
287
|
+
const gridItem = spanFull ? { colStartEnd: '1 / -1' } : {};
|
|
288
|
+
if (field.options && field.options.length > 0) {
|
|
289
|
+
return (_jsx(Grid, { item: gridItem, children: _jsx(ComboBox, { label: field.label, selected: (() => {
|
|
290
|
+
if (!field.selected)
|
|
291
|
+
return;
|
|
292
|
+
const selectedItem = field.options.find(opt => opt.id === field.selected);
|
|
293
|
+
if (!selectedItem)
|
|
294
|
+
return;
|
|
295
|
+
return {
|
|
296
|
+
items: {
|
|
297
|
+
id: selectedItem.id,
|
|
298
|
+
text: selectedItem.label
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
})(), menu: {
|
|
302
|
+
mode: 'single-select',
|
|
303
|
+
items: field.options.map(opt => ({ id: opt.id, primary: opt.label })),
|
|
304
|
+
onItemClick: (optionId) => field.onChange(optionId)
|
|
305
|
+
}, disabled: disabled }) }, field.id));
|
|
306
|
+
}
|
|
307
|
+
return (_jsx(Grid, { item: gridItem, children: _jsx(Input, { label: field.label, value: field.value, onChange: (e) => field.onChange(e.target.value), additionalInfo: field.additionalInfo, disabled: disabled }) }, field.id));
|
|
308
|
+
}) }));
|
|
309
|
+
}
|
|
310
|
+
else if (showInlinePreview) {
|
|
311
|
+
primaryContent = (_jsxs(Button, { ...restProps, as: StyledPreviewTitle, variant: 'link', ref: setTextTarget, onClick: () => {
|
|
312
|
+
onPreview?.(id);
|
|
313
|
+
}, onKeyDown: (e) => {
|
|
314
|
+
if (e.getModifierState('Alt') && e.code === 'KeyP') {
|
|
315
|
+
if (isInstance(e.currentTarget, HTMLElement)) {
|
|
316
|
+
previewTriggerRef.current = e.currentTarget;
|
|
317
|
+
}
|
|
318
|
+
onPreviewPopoverClick?.(id);
|
|
319
|
+
}
|
|
320
|
+
}, onMouseEnter: onPreviewPopoverClick ? () => setPopover(true) : undefined, onMouseLeave: onPreviewPopoverClick ? () => setPopover(false) : undefined, onFocus: onPreviewPopoverClick ? () => setPreviewPopover(true) : undefined, onBlur: onPreviewPopoverClick ? () => setPreviewPopover(false) : undefined, "aria-label": t('preview_file', [name]), disabled: disabled, children: [name, format === 'url' && _jsx(Icon, { name: 'open' })] }));
|
|
321
|
+
}
|
|
322
|
+
else {
|
|
323
|
+
primaryContent = (_jsx(Text, { ...restProps, as: hasMetadata && !!error ? StyledErrorTextTitle : StyledTextTitle, ref: setTextTarget, children: name }));
|
|
324
|
+
}
|
|
325
|
+
let detailsContent;
|
|
326
|
+
const containerPad = hasMetadata
|
|
327
|
+
? [1, 0.5, 1, undefined]
|
|
328
|
+
: [undefined, 0.5, undefined, undefined];
|
|
329
|
+
const metaContent = metaMessage ? (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledMeta, variant: 'secondary', error: !!error && !uploading, alignStart: hasMetadata && (!!error || uploading), ref: setMetaTarget, children: metaMessage }), metaTarget && (_jsx(Tooltip, { target: metaTarget, describeTarget: false, smart: true, children: metaMessage }))] })) : null;
|
|
330
|
+
if (hasMetadata) {
|
|
331
|
+
detailsContent = (_jsxs(Flex, { item: { grow: 1 }, container: {
|
|
332
|
+
direction: 'column'
|
|
333
|
+
}, children: [primaryContent, metaContent] }));
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
detailsContent = (_jsxs(_Fragment, { children: [primaryContent, metaContent] }));
|
|
337
|
+
}
|
|
189
338
|
return (_jsxs(Flex, { as: StyledFileItem, container: {
|
|
190
|
-
pad:
|
|
191
|
-
alignItems: 'center',
|
|
339
|
+
pad: containerPad,
|
|
340
|
+
alignItems: hasMetadata ? 'start' : 'center',
|
|
192
341
|
justify: 'start',
|
|
193
342
|
gap: 1
|
|
194
|
-
}, isDisabled: disabled, compactMode: compact, ref: itemRef, children: [visual, !previewFromActions &&
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
}, onKeyDown: (e) => {
|
|
199
|
-
if (e.getModifierState('Alt') && e.code === 'KeyP') {
|
|
200
|
-
previewTriggerRef.current = e.currentTarget;
|
|
201
|
-
onPreviewPopoverClick?.(id);
|
|
202
|
-
}
|
|
203
|
-
}, onMouseEnter: onPreviewPopoverClick ? () => setPopover(true) : undefined, onMouseLeave: onPreviewPopoverClick ? () => setPopover(false) : undefined, onFocus: onPreviewPopoverClick ? () => setPreviewPopover(true) : undefined, onBlur: onPreviewPopoverClick ? () => setPreviewPopover(false) : undefined, "aria-label": t('preview_file', [name]), disabled: disabled, children: [name, format === 'url' && _jsx(Icon, { name: 'open' })] })) : (_jsx(Text, { ...restProps, as: StyledTextTitle, ref: setTextTarget, children: name })), metaMessage && (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledMeta, variant: 'secondary', error: error && !uploading, ref: setMetaTarget, children: metaMessage }), metaTarget && (_jsx(Tooltip, { target: metaTarget, describeTarget: false, smart: true, children: metaMessage }))] })), (error || uploading) && onCancel && (_jsx(StyledActionsWrapper, { meta: !!metaMessage, children: _jsx(Button, { label: t('cancel'), "aria-label": `${t('cancel')} - ${contextualLabel}`, variant: 'simple', compact: true, icon: true, onClick: () => onCancel(id), children: _jsx(Icon, { name: 'times' }) }) })), !(error || uploading) && !!definedActions.length && (_jsx(StyledActionsWrapper, { meta: !!metaMessage, children: _jsx(Actions, { items: definedActions, compact: true, iconOnly: true, contextualLabel: name, disabled: disabled }) })), textTarget && !onPreviewPopoverClick && (_jsx(Tooltip, { target: textTarget, smart: true, describeTarget: false, children: name })), onPreviewPopoverClick && !inModal && !previewFromActions && (_jsx(Popover, { as: StyledLinkPopover, show: popover, placement: 'top', groupId: 'tooltip', showDelay: 'short', target: textTarget, onMouseEnter: () => setPopover(true), onMouseLeave: () => setPopover(false), arrow: true, portal: true, children: _jsx(StyledLinkPreviewPopoverBtn, { type: 'button', onClick: () => {
|
|
204
|
-
previewTriggerRef.current = textTarget;
|
|
343
|
+
}, isDisabled: disabled, compactMode: compact, hasMetadata: hasMetadata, isErrorOrProgressItem: isErrorOrProgressItem, ref: itemRef, children: [visual, detailsContent, (error || uploading) && onCancel && (_jsx(StyledActionsWrapper, { meta: !!metaMessage, children: _jsx(Button, { label: t('cancel'), "aria-label": `${t('cancel')} - ${contextualLabel}`, variant: 'simple', compact: !hasMetadata, icon: true, onClick: () => onCancel(id), children: _jsx(Icon, { name: 'times' }) }) })), !(error || uploading) && !!definedActions.length && (_jsx(StyledActionsWrapper, { meta: !!metaMessage, children: _jsx(Actions, { items: definedActions, compact: !hasMetadata, iconOnly: true, contextualLabel: name, disabled: disabled }) })), textTarget && !onPreviewPopoverClick && (_jsx(Tooltip, { target: textTarget, smart: true, describeTarget: false, children: name })), onPreviewPopoverClick && !inModal && !previewFromActions && (_jsx(Popover, { as: StyledLinkPopover, show: popover, placement: 'top', groupId: 'tooltip', showDelay: 'short', target: textTarget, onMouseEnter: () => setPopover(true), onMouseLeave: () => setPopover(false), arrow: true, portal: true, children: _jsx(StyledLinkPreviewPopoverBtn, { type: 'button', onClick: () => {
|
|
344
|
+
if (isInstance(textTarget, HTMLElement)) {
|
|
345
|
+
previewTriggerRef.current = textTarget;
|
|
346
|
+
}
|
|
205
347
|
onPreviewPopoverClick?.(id);
|
|
206
348
|
}, tabIndex: -1, children: _jsx("div", { children: _jsx("span", { children: t('preview') }) }) }) })), onPreviewPopoverClick && !inModal && !previewFromActions && (_jsx(Popover, { as: StyledLinkPopover, show: previewPopover, placement: 'top', groupId: 'tooltip', showDelay: 'short', target: textTarget, arrow: true, portal: true, children: _jsx(StyledLinkPreviewPopoverBtn, { type: 'button', onClick: () => {
|
|
207
|
-
|
|
349
|
+
if (isInstance(textTarget, HTMLElement)) {
|
|
350
|
+
previewTriggerRef.current = textTarget;
|
|
351
|
+
}
|
|
208
352
|
onPreviewPopoverClick?.(id);
|
|
209
353
|
}, tabIndex: -1, children: _jsxs("div", { children: [_jsx("span", { children: t('preview') }), _jsxs(Flex, { container: { inline: true, justify: 'end' }, children: [_jsx(Keyboard, { keyName: 'Alt' }), _jsx(Keyboard, { keyName: 'P' })] })] }) }) }))] }));
|
|
210
354
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport type { PropsWithoutRef, Ref, KeyboardEvent as ReactKeyboardEvent } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon, { registerIcon } from '../Icon';\nimport * as openIcon from '../Icon/icons/open.icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as previewIcon from '../Icon/icons/preview.icon';\nimport * as editIcon from '../Icon/icons/pencil.icon';\nimport * as downloadIcon from '../Icon/icons/download.icon';\nimport * as deleteIcon from '../Icon/icons/trash.icon';\nimport Text, { StyledText } from '../Text';\nimport Tooltip from '../Tooltip';\nimport type { ForwardRefForwardPropsComponent, BaseProps, Action } from '../../types';\nimport { defaultThemeProp } from '../../theme';\nimport Button, { StyledButton } from '../Button';\nimport {\n useI18n,\n useElement,\n useConfiguration,\n useConsolidatedRef,\n usePreviewContext,\n useModalContext\n} from '../../hooks';\nimport Actions from '../Actions';\nimport Progress from '../Progress';\nimport { StyledProgressRing } from '../Progress/Progress.styles';\nimport { formatNumber } from '../Number';\nimport Flex from '../Flex';\nimport { StyledIconShape } from '../Icon/Icon';\nimport { getActiveElement, getFocusables } from '../../utils';\nimport { ellipsisOverflow } from '../../styles/mixins';\nimport { StyledLinkPopover, StyledLinkPreviewPopoverBtn } from '../Link/Link';\nimport Popover from '../Popover';\nimport { Keyboard } from '../Badges';\n\nimport { getKindFromMimeType, getMimeTypeFromFile } from './utils';\nimport FileVisual, { StyledFileVisual } from './FileVisual';\nimport type { FileVisualProps } from './FileVisual';\n\nregisterIcon(openIcon, timesIcon, previewIcon, editIcon, downloadIcon, deleteIcon);\n\nexport interface FileItemProps extends BaseProps {\n /** Unique id for item. */\n id: string;\n /** Name of the file. */\n name: string;\n /** A string to be used as an image src for a attachment thumbnail. Falls back to a provided icon or the default attachment icon. */\n thumbnail?: FileVisualProps['thumbnail'];\n /** File extension. Use 'url' for link */\n format?: string;\n /**\n * Used for a smaller sized FileItem.\n * @default false\n */\n compact?: boolean;\n /** When passed, will render a single icon button for yet to be or in progress uploads. Use this action to trigger xhr request termination. */\n onCancel?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onEdit?: (id: FileItemProps['id']) => void;\n /** When passed, the file name will be rendered as a clickable button. Fires on direct click of the name. Passes file id as the parameter. */\n onPreview?: (id: FileItemProps['id']) => void;\n /** When passed, will render a preview tooltip. Will be fired on click of preview tooltip. Passes file id as the parameter. */\n onPreviewPopoverClick?: (id: FileItemProps['id']) => void;\n /**\n * Moves preview option to actions menu.\n * To be used only in compact mode of single file input when rendered in a table\n */\n previewFromActions?: boolean;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. Passes file id as the parameter. */\n onDownload?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onDelete?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onOpen?: (id: FileItemProps['id']) => void;\n /** If the attachment is in an upload state, pass progress as a number between 0-100 representing the percentage of progress. */\n progress?: number;\n /** Set if there is an error uploading the file. Applies error styling to the meta string passed. */\n error?: string;\n /** Setting the disable state */\n disabled?: boolean;\n /** Ref for the wrapping element. */\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledErrorIcon = styled(Icon)(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledErrorIcon.defaultProps = defaultThemeProp;\n\nconst titleEllipsisStyle = css`\n flex-shrink: 1;\n ${ellipsisOverflow}\n`;\n\nexport const StyledPreviewTitle = styled(Button)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledTextTitle = styled(Text)`\n ${titleEllipsisStyle}\n`;\n\nconst StyledMeta = styled(StyledText)<{ error: boolean }>(({ theme, error }) => {\n return css`\n /* min width to show percentage in full */\n min-width: 4ch;\n margin-inline-start: auto;\n ${titleEllipsisStyle}\n ${error &&\n css`\n color: ${theme.base.palette.urgent};\n `}\n `;\n});\n\nStyledMeta.defaultProps = defaultThemeProp;\n\nconst StyledActionsWrapper = styled.div<{ meta: boolean }>(({ meta }) => {\n return css`\n margin-inline-start: ${meta ? 'unset' : 'auto'};\n `;\n});\n\nStyledActionsWrapper.defaultProps = defaultThemeProp;\n\nexport const StyledFileItem = styled.div<{\n compactMode: FileItemProps['compact'];\n isDisabled?: FileItemProps['disabled'];\n}>(\n ({\n theme: {\n base: {\n palette,\n spacing,\n 'hit-area': { compact },\n 'disabled-opacity': disabledOpacity\n },\n components: {\n input,\n 'form-control': {\n ':disabled': {\n 'background-color': disabledBackgroundColor,\n 'border-color': disabledBorderColor\n }\n }\n }\n },\n compactMode,\n isDisabled\n }) => {\n return css`\n border-radius: calc(var(--container-border-radius) * 0.5);\n border: 0.0625rem solid ${palette['border-line']};\n background-color: ${palette['primary-background']};\n height: ${input.height};\n min-width: calc(${input.height} + 12ch + 1.5 * ${spacing} + ${compact});\n\n ${compactMode &&\n css`\n height: ${compact};\n min-width: calc(${compact} + 12ch + 2 * ${spacing});\n width: fit-content;\n max-width: 25ch;\n\n ${StyledPreviewTitle}, ${StyledTextTitle} {\n min-width: 12ch;\n max-width: calc(25ch - (${compact} + 2 * ${spacing}));\n }\n\n ${StyledActionsWrapper} > ${StyledButton} {\n min-height: 100%;\n min-width: 100%;\n margin-block: ${spacing};\n }\n `}\n\n > ${StyledProgressRing} {\n margin-inline-start: calc(0.5 * ${spacing});\n }\n\n > ${StyledFileVisual}, > ${StyledIconShape} {\n border-start-start-radius: inherit;\n border-end-start-radius: inherit;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n width: ${input.height};\n flex-shrink: 0;\n\n ${compactMode &&\n css`\n height: ${compact};\n width: ${compact};\n `}\n }\n ${isDisabled &&\n css`\n background-color: ${disabledBackgroundColor};\n border-color: ${disabledBorderColor};\n opacity: ${disabledOpacity};\n `}\n `;\n }\n);\n\nStyledFileItem.defaultProps = defaultThemeProp;\n\nconst FileItem: ForwardRefForwardPropsComponent<FileItemProps> = forwardRef(function FileItem(\n props: PropsWithoutRef<FileItemProps>,\n ref: FileItemProps['ref']\n) {\n const {\n id,\n name,\n thumbnail,\n format,\n error,\n onCancel,\n onEdit,\n onPreview,\n onPreviewPopoverClick,\n onDownload,\n onDelete,\n onOpen,\n progress,\n compact = false,\n previewFromActions = false,\n disabled = false,\n ...restProps\n } = props;\n\n const [thumbnailError, setThumbnailError] = useState(false);\n const [textTarget, setTextTarget] = useElement();\n const [metaTarget, setMetaTarget] = useElement();\n const [popover, setPopover] = useState(false);\n const [previewPopover, setPreviewPopover] = useState(false);\n const { locale } = useConfiguration();\n const { initialized: inModal } = useModalContext();\n const { previewTriggerRef } = usePreviewContext();\n const t = useI18n();\n const uploading = typeof progress === 'number' && progress < 100;\n const itemRef = useConsolidatedRef(ref);\n\n const activeElement = getActiveElement();\n const activeElementInItem = itemRef.current?.contains(activeElement);\n\n let metaMessage;\n\n if (uploading) {\n metaMessage = formatNumber(progress, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n });\n } else if (error) {\n metaMessage = error;\n }\n\n const definedActions: Action[] = [\n previewFromActions ? { onClick: onPreview, text: t('preview'), icon: 'preview' } : undefined,\n { onClick: onEdit, text: t('edit'), icon: 'pencil' },\n { onClick: onDownload, text: t('download'), icon: 'download' },\n { onClick: onDelete, text: t('delete'), icon: 'trash' },\n { onClick: onOpen, text: t('link_open_in_tab_text'), icon: 'open' }\n ].flatMap(action => {\n if (!action || !action.onClick) return [];\n\n const { text, icon, onClick: onActionClick } = action;\n return [\n {\n id: text,\n text,\n icon,\n onClick: () => onActionClick(id)\n }\n ];\n });\n\n let visual;\n let contextualLabel;\n\n if (uploading) {\n visual = <Progress variant='ring' placement='inline' value={progress} />;\n contextualLabel = t('uploading_file', [name]);\n } else if (error) {\n visual = <StyledErrorIcon name='warn-solid' />;\n contextualLabel = t('upload_failed', [name, error]);\n } else {\n visual = (\n <FileVisual\n type={\n format === 'url' ? 'link' : getKindFromMimeType(getMimeTypeFromFile(format ?? '') ?? '')\n }\n thumbnail={thumbnailError ? undefined : thumbnail}\n onThumbnailError={() => {\n setThumbnailError(true);\n }}\n />\n );\n contextualLabel = name;\n }\n\n useEffect(() => {\n if (!activeElement?.isConnected && activeElementInItem && itemRef.current) {\n getFocusables(itemRef.current)[0]?.focus();\n }\n }, [progress, error, onCancel, onDelete, onPreview, onEdit, onDownload]);\n\n return (\n <Flex\n as={StyledFileItem}\n container={{\n pad: [undefined, 0.5, undefined, undefined],\n alignItems: 'center',\n justify: 'start',\n gap: 1\n }}\n isDisabled={disabled}\n compactMode={compact}\n ref={itemRef}\n >\n {visual}\n\n {!previewFromActions &&\n ((!inModal && onPreviewPopoverClick) || onPreview) &&\n !(error || uploading) ? (\n <Button\n {...restProps}\n as={StyledPreviewTitle}\n variant='link'\n ref={setTextTarget}\n onClick={() => {\n onPreview?.(id);\n }}\n onKeyDown={(e: ReactKeyboardEvent) => {\n if (e.getModifierState('Alt') && e.code === 'KeyP') {\n previewTriggerRef.current = e.currentTarget as HTMLElement;\n onPreviewPopoverClick?.(id);\n }\n }}\n onMouseEnter={onPreviewPopoverClick ? () => setPopover(true) : undefined}\n onMouseLeave={onPreviewPopoverClick ? () => setPopover(false) : undefined}\n onFocus={onPreviewPopoverClick ? () => setPreviewPopover(true) : undefined}\n onBlur={onPreviewPopoverClick ? () => setPreviewPopover(false) : undefined}\n aria-label={t('preview_file', [name])}\n disabled={disabled}\n >\n {name}\n {format === 'url' && <Icon name='open' />}\n </Button>\n ) : (\n <Text {...restProps} as={StyledTextTitle} ref={setTextTarget}>\n {name}\n </Text>\n )}\n {metaMessage && (\n <>\n <Text as={StyledMeta} variant='secondary' error={error && !uploading} ref={setMetaTarget}>\n {metaMessage}\n </Text>\n\n {metaTarget && (\n <Tooltip target={metaTarget} describeTarget={false} smart>\n {metaMessage}\n </Tooltip>\n )}\n </>\n )}\n\n {(error || uploading) && onCancel && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Button\n label={t('cancel')}\n aria-label={`${t('cancel')} - ${contextualLabel}`}\n variant='simple'\n compact\n icon\n onClick={() => onCancel(id)}\n >\n <Icon name='times' />\n </Button>\n </StyledActionsWrapper>\n )}\n\n {!(error || uploading) && !!definedActions.length && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Actions\n items={definedActions}\n compact\n iconOnly\n contextualLabel={name}\n disabled={disabled}\n />\n </StyledActionsWrapper>\n )}\n\n {textTarget && !onPreviewPopoverClick && (\n <Tooltip target={textTarget} smart describeTarget={false}>\n {name}\n </Tooltip>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={popover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n onMouseEnter={() => setPopover(true)}\n onMouseLeave={() => setPopover(false)}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n previewTriggerRef.current = textTarget as HTMLElement;\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={previewPopover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n previewTriggerRef.current = textTarget as HTMLElement;\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n <Flex container={{ inline: true, justify: 'end' }}>\n <Keyboard keyName='Alt' />\n <Keyboard keyName='P' />\n </Flex>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n </Flex>\n );\n});\n\nexport default FileItem;\n"]}
|
|
1
|
+
{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":"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","sourcesContent":["import { forwardRef, useEffect, useState } from 'react';\nimport type {\n PropsWithoutRef,\n Ref,\n KeyboardEvent as ReactKeyboardEvent,\n ReactNode,\n ChangeEvent\n} from 'react';\nimport styled, { css } from 'styled-components';\n\nimport Icon, { registerIcon } from '../Icon';\nimport Input from '../Input';\nimport ComboBox from '../ComboBox';\nimport * as openIcon from '../Icon/icons/open.icon';\nimport * as timesIcon from '../Icon/icons/times.icon';\nimport * as previewIcon from '../Icon/icons/preview.icon';\nimport * as editIcon from '../Icon/icons/pencil.icon';\nimport * as downloadIcon from '../Icon/icons/download.icon';\nimport * as deleteIcon from '../Icon/icons/trash.icon';\nimport Text, { StyledText } from '../Text';\nimport Tooltip from '../Tooltip';\nimport type { ForwardRefForwardPropsComponent, BaseProps, Action } from '../../types';\nimport { defaultThemeProp } from '../../theme';\nimport Button, { StyledButton } from '../Button';\nimport {\n useI18n,\n useElement,\n useConfiguration,\n useConsolidatedRef,\n usePreviewContext,\n useModalContext\n} from '../../hooks';\nimport Actions from '../Actions';\nimport Progress from '../Progress';\nimport { StyledProgressRing } from '../Progress/Progress.styles';\nimport { formatNumber } from '../Number';\nimport Flex from '../Flex';\nimport type { FlexContainerProps } from '../Flex';\nimport Grid from '../Grid';\nimport { StyledIconShape } from '../Icon/Icon';\nimport { getActiveElement, getFocusables, isInstance } from '../../utils';\nimport { ellipsisOverflow } from '../../styles/mixins';\nimport { StyledLinkPopover, StyledLinkPreviewPopoverBtn } from '../Link/Link';\nimport Popover from '../Popover';\nimport { Keyboard } from '../Badges';\n\nimport { getKindFromMimeType, getMimeTypeFromFile } from './utils';\nimport FileVisual, { StyledFileVisual } from './FileVisual';\nimport type { FileVisualProps } from './FileVisual';\n\nregisterIcon(openIcon, timesIcon, previewIcon, editIcon, downloadIcon, deleteIcon);\n\ninterface FileMetadataFieldBase {\n /** Unique identifier for this metadata field. */\n id: string;\n /** Display label for the field. */\n label: string;\n /** Additional info shown alongside the field label. */\n additionalInfo?: { heading?: string; content: string };\n /** Callback fired when the field value changes. */\n onChange: (value: string) => void;\n}\n\nexport interface FileMetadataTextField extends FileMetadataFieldBase {\n /** Current value of the text input. */\n value?: string;\n selected?: never;\n options?: never;\n}\n\nexport interface FileMetadataSelectField extends FileMetadataFieldBase {\n /** The id of the currently selected option. */\n selected?: string;\n /** Selectable options rendered as a ComboBox. */\n options: { id: string; label: string }[];\n value?: never;\n}\n\nexport type FileMetadataField = FileMetadataTextField | FileMetadataSelectField;\n\nexport type FileMetadata = FileMetadataField[];\n\nexport interface FileItemProps extends BaseProps {\n /** Unique id for item. */\n id: string;\n /** Name of the file. */\n name: string;\n /** File metadata and edit configuration. When provided, enables edit mode with stacked single-column layout and inline editable fields. */\n metadata?: FileMetadata;\n /** A string to be used as an image src for a attachment thumbnail. Falls back to a provided icon or the default attachment icon. */\n thumbnail?: FileVisualProps['thumbnail'];\n /** File extension. Use 'url' for link */\n format?: string;\n /**\n * Used for a smaller sized FileItem.\n * @default false\n */\n compact?: boolean;\n /** When passed, will render a single icon button for yet to be or in progress uploads. Use this action to trigger xhr request termination. */\n onCancel?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onEdit?: (id: FileItemProps['id']) => void;\n /** When passed, the file name will be rendered as a clickable button. Fires on direct click of the name. Passes file id as the parameter. */\n onPreview?: (id: FileItemProps['id']) => void;\n /** When passed, will render a preview tooltip. Will be fired on click of preview tooltip. Passes file id as the parameter. */\n onPreviewPopoverClick?: (id: FileItemProps['id']) => void;\n /**\n * Moves preview option to actions menu.\n * To be used only in compact mode of single file input when rendered in a table\n */\n previewFromActions?: boolean;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. Passes file id as the parameter. */\n onDownload?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onDelete?: (id: FileItemProps['id']) => void;\n /** When passed, will render a single icon button or within a MenuButton if other actions are defined. */\n onOpen?: (id: FileItemProps['id']) => void;\n /** If the attachment is in an upload state, pass progress as a number between 0-100 representing the percentage of progress. */\n progress?: number;\n /** Set if there is an error uploading the file. Applies error styling to the meta string passed. */\n error?: string;\n /** Setting the disable state */\n disabled?: boolean;\n /** Ref for the wrapping element. */\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledErrorIcon = styled(Icon)(({ theme }) => {\n return css`\n color: ${theme.base.palette.urgent};\n margin-inline-start: calc(0.5 * ${theme.base.spacing});\n `;\n});\n\nStyledErrorIcon.defaultProps = defaultThemeProp;\n\nconst StyledStatusVisualInEditableLayout = styled.div(\n ({\n theme: {\n components: { input }\n }\n }) => {\n return css`\n min-inline-size: ${input.height};\n min-block-size: ${input.height};\n\n > ${StyledErrorIcon} {\n margin-inline-start: 0;\n }\n\n > ${StyledProgressRing} {\n margin-inline-start: 0;\n inline-size: ${input.height};\n block-size: ${input.height};\n\n > svg {\n width: 100%;\n height: 100%;\n }\n }\n `;\n }\n);\n\nStyledStatusVisualInEditableLayout.defaultProps = defaultThemeProp;\n\nconst titleEllipsisStyle = css`\n flex-shrink: 1;\n ${ellipsisOverflow}\n`;\n\nexport const StyledPreviewTitle = styled(Button)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledTextTitle = styled(Text)`\n ${titleEllipsisStyle}\n`;\n\nexport const StyledErrorTextTitle = styled(StyledTextTitle)(({ theme }) => {\n return css`\n font-weight: ${theme.base['font-weight']['semi-bold']};\n `;\n});\n\nStyledErrorTextTitle.defaultProps = defaultThemeProp;\n\nconst StyledMeta = styled(StyledText)<{ error: boolean; alignStart?: boolean }>(({\n theme,\n error,\n alignStart\n}) => {\n return css`\n /* min width to show percentage in full */\n min-width: 4ch;\n margin-inline-start: ${alignStart ? 'unset' : 'auto'};\n ${titleEllipsisStyle}\n ${error &&\n css`\n color: ${theme.base.palette.urgent};\n `}\n `;\n});\n\nStyledMeta.defaultProps = defaultThemeProp;\n\nconst StyledActionsWrapper = styled.div<{ meta: boolean }>(({ meta }) => {\n return css`\n margin-inline-start: ${meta ? 'unset' : 'auto'};\n `;\n});\n\nStyledActionsWrapper.defaultProps = defaultThemeProp;\n\nconst StyledMetadataGrid = styled(Grid)(({ theme }) => {\n return css`\n grid-template-columns: repeat(2, 1fr);\n\n @container (width < ${theme.base.breakpoints.sm}) {\n grid-template-columns: 1fr;\n }\n `;\n});\n\nStyledMetadataGrid.defaultProps = defaultThemeProp;\n\nexport const StyledFileItem = styled.div<{\n compactMode: FileItemProps['compact'];\n isDisabled?: FileItemProps['disabled'];\n hasMetadata?: boolean;\n isErrorOrProgressItem?: boolean;\n}>(\n ({\n theme: {\n base: {\n palette,\n spacing,\n 'hit-area': {\n compact,\n 'compact-min': compactMin,\n 'mouse-min': mouseMin,\n 'finger-min': fingerMin\n },\n 'disabled-opacity': disabledOpacity\n },\n components: {\n input,\n 'form-control': {\n ':disabled': {\n 'background-color': disabledBackgroundColor,\n 'border-color': disabledBorderColor\n }\n }\n }\n },\n compactMode,\n isDisabled,\n hasMetadata,\n isErrorOrProgressItem\n }) => {\n const labelOffset = `calc(${compactMin} + 0.25 * ${spacing})`;\n\n return css`\n border-radius: calc(var(--container-border-radius) * 0.5);\n border: 0.0625rem solid ${palette['border-line']};\n ${!hasMetadata &&\n css`\n background-color: ${palette['primary-background']};\n `}\n height: ${input.height};\n min-width: calc(${input.height} + 12ch + 1.5 * ${spacing} + ${compact});\n\n ${hasMetadata &&\n css`\n container-type: inline-size;\n border: none;\n border-block-start: 0.0625rem solid ${palette['border-line']};\n border-start-start-radius: 0;\n border-start-end-radius: 0;\n height: auto;\n min-height: ${input.height};\n\n &:first-child {\n border-block-start: none;\n }\n\n > ${StyledActionsWrapper} {\n align-self: flex-start;\n margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};\n margin-inline-end: calc(-0.5 * ${spacing});\n inline-size: ${input.height};\n block-size: ${input.height};\n }\n `}\n\n ${compactMode &&\n css`\n height: ${compact};\n min-width: calc(${compact} + 12ch + 2 * ${spacing});\n width: fit-content;\n max-width: 25ch;\n\n ${StyledPreviewTitle}, ${StyledTextTitle} {\n min-width: 12ch;\n max-width: calc(25ch - (${compact} + 2 * ${spacing}));\n }\n\n ${StyledActionsWrapper} > ${StyledButton} {\n min-height: 100%;\n min-width: 100%;\n margin-block: ${spacing};\n }\n `}\n\n > ${StyledProgressRing} {\n margin-inline-start: calc(0.5 * ${spacing});\n }\n\n > ${StyledFileVisual}, > ${StyledIconShape} {\n border-start-start-radius: inherit;\n border-end-start-radius: inherit;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n width: ${input.height};\n min-width: ${mouseMin};\n flex-shrink: 0;\n\n @media (pointer: coarse) {\n min-width: ${fingerMin};\n }\n\n ${hasMetadata &&\n css`\n height: ${input.height};\n min-height: ${mouseMin};\n overflow: hidden;\n border-radius: calc(var(--container-border-radius) * 0.5);\n margin-block-start: ${isErrorOrProgressItem ? '0' : labelOffset};\n\n @media (pointer: coarse) {\n min-height: ${fingerMin};\n }\n `}\n\n ${compactMode &&\n css`\n height: ${compact};\n width: ${compact};\n min-width: unset;\n min-height: unset;\n `}\n }\n ${isDisabled &&\n css`\n background-color: ${disabledBackgroundColor};\n border-color: ${disabledBorderColor};\n opacity: ${disabledOpacity};\n `}\n `;\n }\n);\n\nStyledFileItem.defaultProps = defaultThemeProp;\n\nconst FileItem: ForwardRefForwardPropsComponent<FileItemProps> = forwardRef(function FileItem(\n props: PropsWithoutRef<FileItemProps>,\n ref: FileItemProps['ref']\n) {\n const {\n id,\n name,\n metadata,\n thumbnail,\n format,\n error,\n onCancel,\n onEdit,\n onPreview,\n onPreviewPopoverClick,\n onDownload,\n onDelete,\n onOpen,\n progress,\n compact = false,\n previewFromActions = false,\n disabled = false,\n ...restProps\n } = props;\n\n const [thumbnailError, setThumbnailError] = useState(false);\n const [textTarget, setTextTarget] = useElement();\n const [metaTarget, setMetaTarget] = useElement();\n const [popover, setPopover] = useState(false);\n const [previewPopover, setPreviewPopover] = useState(false);\n const { locale } = useConfiguration();\n const { initialized: inModal } = useModalContext();\n const { previewTriggerRef } = usePreviewContext();\n const t = useI18n();\n const uploading = typeof progress === 'number' && progress < 100;\n const isErrorOrProgressItem = Boolean(error || uploading);\n const itemRef = useConsolidatedRef(ref);\n const hasMetadata = !!metadata;\n\n const activeElement = getActiveElement();\n const activeElementInItem = itemRef.current?.contains(activeElement);\n\n let metaMessage;\n\n if (uploading) {\n metaMessage = formatNumber(progress, {\n locale,\n options: {\n style: 'unit',\n unit: 'percent',\n maximumFractionDigits: 0\n }\n });\n } else if (error) {\n metaMessage = error;\n }\n\n const definedActions: Action[] = [\n previewFromActions ? { onClick: onPreview, text: t('preview'), icon: 'preview' } : undefined,\n { onClick: hasMetadata ? undefined : onEdit, text: t('edit'), icon: 'pencil' },\n { onClick: onDownload, text: t('download'), icon: 'download' },\n { onClick: onDelete, text: t('delete'), icon: 'trash' },\n { onClick: onOpen, text: t('link_open_in_tab_text'), icon: 'open' }\n ].flatMap(action => {\n if (!action || !action.onClick) return [];\n\n const { text, icon, onClick: onActionClick } = action;\n return [\n {\n id: text,\n text,\n icon,\n onClick: () => onActionClick(id)\n }\n ];\n });\n\n let visual;\n let contextualLabel;\n\n if (uploading) {\n visual = hasMetadata ? (\n <Flex\n container={{ alignItems: 'center', justify: 'center' }}\n item={{ shrink: 0 }}\n as={StyledStatusVisualInEditableLayout}\n >\n <Progress variant='ring' placement='inline' value={progress} />\n </Flex>\n ) : (\n <Progress variant='ring' placement='inline' value={progress} />\n );\n contextualLabel = t('uploading_file', [name]);\n } else if (error) {\n visual = hasMetadata ? (\n <Flex\n container={{ alignItems: 'center', justify: 'center' }}\n item={{ shrink: 0 }}\n as={StyledStatusVisualInEditableLayout}\n >\n <StyledErrorIcon name='warn-solid' />\n </Flex>\n ) : (\n <StyledErrorIcon name='warn-solid' />\n );\n contextualLabel = t('upload_failed', [name, error]);\n } else {\n visual = (\n <FileVisual\n type={\n format === 'url' ? 'link' : getKindFromMimeType(getMimeTypeFromFile(format ?? '') ?? '')\n }\n thumbnail={thumbnailError ? undefined : thumbnail}\n onThumbnailError={() => {\n setThumbnailError(true);\n }}\n />\n );\n contextualLabel = name;\n }\n\n useEffect(() => {\n if (!activeElement?.isConnected && activeElementInItem && itemRef.current) {\n getFocusables(itemRef.current)[0]?.focus();\n }\n }, [progress, error, onCancel, onDelete, onPreview, onEdit, onDownload]);\n\n const showInlinePreview =\n !hasMetadata &&\n !previewFromActions &&\n ((!inModal && onPreviewPopoverClick) || onPreview) &&\n !(error || uploading);\n\n let primaryContent: ReactNode;\n\n if (metadata && metadata.length > 0 && !error && !uploading) {\n primaryContent = (\n <StyledMetadataGrid container={{ gap: 1 }}>\n {metadata.map((field, index) => {\n const spanFull = index === metadata.length - 1 && metadata.length % 2 !== 0;\n const gridItem = spanFull ? { colStartEnd: '1 / -1' } : {};\n\n if (field.options && field.options.length > 0) {\n return (\n <Grid item={gridItem} key={field.id}>\n <ComboBox\n label={field.label}\n selected={(() => {\n if (!field.selected) return;\n\n const selectedItem = field.options.find(opt => opt.id === field.selected);\n if (!selectedItem) return;\n\n return {\n items: {\n id: selectedItem.id,\n text: selectedItem.label\n }\n };\n })()}\n menu={{\n mode: 'single-select',\n items: field.options.map(opt => ({ id: opt.id, primary: opt.label })),\n onItemClick: (optionId: string) => field.onChange(optionId)\n }}\n disabled={disabled}\n />\n </Grid>\n );\n }\n\n return (\n <Grid item={gridItem} key={field.id}>\n <Input\n label={field.label}\n value={field.value}\n onChange={(e: ChangeEvent<HTMLInputElement>) => field.onChange(e.target.value)}\n additionalInfo={field.additionalInfo}\n disabled={disabled}\n />\n </Grid>\n );\n })}\n </StyledMetadataGrid>\n );\n } else if (showInlinePreview) {\n primaryContent = (\n <Button\n {...restProps}\n as={StyledPreviewTitle}\n variant='link'\n ref={setTextTarget}\n onClick={() => {\n onPreview?.(id);\n }}\n onKeyDown={(e: ReactKeyboardEvent) => {\n if (e.getModifierState('Alt') && e.code === 'KeyP') {\n if (isInstance(e.currentTarget, HTMLElement)) {\n previewTriggerRef.current = e.currentTarget;\n }\n onPreviewPopoverClick?.(id);\n }\n }}\n onMouseEnter={onPreviewPopoverClick ? () => setPopover(true) : undefined}\n onMouseLeave={onPreviewPopoverClick ? () => setPopover(false) : undefined}\n onFocus={onPreviewPopoverClick ? () => setPreviewPopover(true) : undefined}\n onBlur={onPreviewPopoverClick ? () => setPreviewPopover(false) : undefined}\n aria-label={t('preview_file', [name])}\n disabled={disabled}\n >\n {name}\n {format === 'url' && <Icon name='open' />}\n </Button>\n );\n } else {\n primaryContent = (\n <Text\n {...restProps}\n as={hasMetadata && !!error ? StyledErrorTextTitle : StyledTextTitle}\n ref={setTextTarget}\n >\n {name}\n </Text>\n );\n }\n\n let detailsContent: ReactNode;\n\n const containerPad: FlexContainerProps['pad'] = hasMetadata\n ? [1, 0.5, 1, undefined]\n : [undefined, 0.5, undefined, undefined];\n\n const metaContent = metaMessage ? (\n <>\n <Text\n as={StyledMeta}\n variant='secondary'\n error={!!error && !uploading}\n alignStart={hasMetadata && (!!error || uploading)}\n ref={setMetaTarget}\n >\n {metaMessage}\n </Text>\n {metaTarget && (\n <Tooltip target={metaTarget} describeTarget={false} smart>\n {metaMessage}\n </Tooltip>\n )}\n </>\n ) : null;\n\n if (hasMetadata) {\n detailsContent = (\n <Flex\n item={{ grow: 1 }}\n container={{\n direction: 'column'\n }}\n >\n {primaryContent}\n\n {metaContent}\n </Flex>\n );\n } else {\n detailsContent = (\n <>\n {primaryContent}\n {metaContent}\n </>\n );\n }\n\n return (\n <Flex\n as={StyledFileItem}\n container={{\n pad: containerPad,\n alignItems: hasMetadata ? 'start' : 'center',\n justify: 'start',\n gap: 1\n }}\n isDisabled={disabled}\n compactMode={compact}\n hasMetadata={hasMetadata}\n isErrorOrProgressItem={isErrorOrProgressItem}\n ref={itemRef}\n >\n {visual}\n\n {detailsContent}\n\n {(error || uploading) && onCancel && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Button\n label={t('cancel')}\n aria-label={`${t('cancel')} - ${contextualLabel}`}\n variant='simple'\n compact={!hasMetadata}\n icon\n onClick={() => onCancel(id)}\n >\n <Icon name='times' />\n </Button>\n </StyledActionsWrapper>\n )}\n\n {!(error || uploading) && !!definedActions.length && (\n <StyledActionsWrapper meta={!!metaMessage}>\n <Actions\n items={definedActions}\n compact={!hasMetadata}\n iconOnly\n contextualLabel={name}\n disabled={disabled}\n />\n </StyledActionsWrapper>\n )}\n\n {textTarget && !onPreviewPopoverClick && (\n <Tooltip target={textTarget} smart describeTarget={false}>\n {name}\n </Tooltip>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={popover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n onMouseEnter={() => setPopover(true)}\n onMouseLeave={() => setPopover(false)}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n if (isInstance(textTarget, HTMLElement)) {\n previewTriggerRef.current = textTarget;\n }\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n\n {onPreviewPopoverClick && !inModal && !previewFromActions && (\n <Popover\n as={StyledLinkPopover}\n show={previewPopover}\n placement='top'\n groupId='tooltip'\n showDelay='short'\n target={textTarget}\n arrow\n portal\n >\n <StyledLinkPreviewPopoverBtn\n type='button'\n onClick={() => {\n if (isInstance(textTarget, HTMLElement)) {\n previewTriggerRef.current = textTarget;\n }\n onPreviewPopoverClick?.(id);\n }}\n tabIndex={-1}\n >\n <div>\n <span>{t('preview')}</span>\n <Flex container={{ inline: true, justify: 'end' }}>\n <Keyboard keyName='Alt' />\n <Keyboard keyName='P' />\n </Flex>\n </div>\n </StyledLinkPreviewPopoverBtn>\n </Popover>\n )}\n </Flex>\n );\n});\n\nexport default FileItem;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileList.d.ts","sourceRoot":"","sources":["../../../src/components/File/FileList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,aAAa,CAAC;AAW9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CACxC,KAAK,EACH,CAAC,eAAe,GAAG;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC,GACF,CAAC,eAAe,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CACL,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oMAI1B,CAAC;AAuBF,QAAA,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"FileList.d.ts","sourceRoot":"","sources":["../../../src/components/File/FileList.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAG7C,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,aAAa,CAAC;AAW9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAIhD,MAAM,WAAW,eAAe;IAC9B,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;CAC5B;AAED,MAAM,MAAM,aAAa,GAAG,cAAc,CACxC,KAAK,EACH,CAAC,eAAe,GAAG;IACjB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC;CAClB,CAAC,GACF,CAAC,eAAe,GAAG;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC,CACL,CAAC;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oMAI1B,CAAC;AAuBF,QAAA,MAAM,QAAQ,2HAoEb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -33,6 +33,7 @@ const FileList = forwardRef(function FileList({ type, items, onDownloadAll, disa
|
|
|
33
33
|
const listRef = useConsolidatedRef(ref);
|
|
34
34
|
const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: listRef });
|
|
35
35
|
const t = useI18n();
|
|
36
|
+
const isAdvancedEdit = type === 'item' && items.length > 0 && items.every(item => !!item.metadata);
|
|
36
37
|
const prevItems = usePrevious(items);
|
|
37
38
|
const activeElementContained = listRef.current?.contains(getActiveElement());
|
|
38
39
|
useEffect(() => {
|
|
@@ -58,9 +59,12 @@ const FileList = forwardRef(function FileList({ type, items, onDownloadAll, disa
|
|
|
58
59
|
}
|
|
59
60
|
});
|
|
60
61
|
}, [items]);
|
|
61
|
-
return (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [_jsx(Grid, { ...restProps, ref: listRef, container: {
|
|
62
|
+
return (_jsxs(Flex, { container: { direction: 'column', gap: 1 }, children: [_jsx(Grid, { ...restProps, ref: listRef, container: {
|
|
63
|
+
gap: isAdvancedEdit ? 0 : 0.5,
|
|
64
|
+
cols: isAdvancedEdit || !isSmallOrAbove ? '1fr' : 'repeat(2, 1fr)'
|
|
65
|
+
}, as: StyledFileList, children: type === 'display'
|
|
62
66
|
? items.map(item => _jsx(FileDisplay, { ...item }, item.id))
|
|
63
|
-
: items.map(item => _jsx(FileItem, { ...item, disabled: disabled }, item.id)) }), onDownloadAll && items.length > 1 && (_jsx(Button, { as: StyledDownloadAllButton, onClick: onDownloadAll, variant: 'link', children: t('download_all') }))] }));
|
|
67
|
+
: items.map(item => (_jsx(FileItem, { ...item, ...(isAdvancedEdit ? { previewFromActions: true } : {}), disabled: disabled }, item.id))) }), onDownloadAll && items.length > 1 && (_jsx(Button, { as: StyledDownloadAllButton, onClick: onDownloadAll, variant: 'link', children: t('download_all') }))] }));
|
|
64
68
|
});
|
|
65
69
|
export default FileList;
|
|
66
70
|
//# sourceMappingURL=FileList.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileList.js","sourceRoot":"","sources":["../../../src/components/File/FileList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAoBlC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,UAAU,MAAM,UAAU;;;CAG7B,CAAC;AAEF,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAC3C,CAAC,EACC,KAAK,EAAE,EACL,UAAU,EAAE,EAAE,IAAI,EAAE,EACpB,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,EAClE,EACF,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,GAAG,CAAA;mBACK,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAa,CAAC;QAC7D,gBAAgB;;;wCAGgB,OAAO;qCACV,OAAO;KACvC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,uBAAuB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAExD,MAAM,QAAQ,GAAG,UAAU,CACzB,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG;IACnF,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"FileList.js","sourceRoot":"","sources":["../../../src/components/File/FileList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAiB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAIvD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAoBlC,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACtC,UAAU,MAAM,UAAU;;;CAG7B,CAAC;AAEF,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAC3C,CAAC,EACC,KAAK,EAAE,EACL,UAAU,EAAE,EAAE,IAAI,EAAE,EACpB,IAAI,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,EAClE,EACF,EAAE,EAAE;IACH,MAAM,SAAS,GAAG,iBAAiB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACzD,OAAO,GAAG,CAAA;mBACK,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAa,CAAC;QAC7D,gBAAgB;;;wCAGgB,OAAO;qCACV,OAAO;KACvC,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,uBAAuB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAExD,MAAM,QAAQ,GAAG,UAAU,CACzB,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,GAAG,KAAK,EAAE,GAAG,SAAS,EAAE,EAAE,GAAG;IACnF,MAAM,OAAO,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,cAAc,GAAG,aAAa,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,CAAC;IACvE,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IACpB,MAAM,cAAc,GAClB,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE9E,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IACrC,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAE7E,SAAS,CAAC,GAAG,EAAE;QACb,mDAAmD;QACnD,IACE,KAAK,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,sBAAsB;YACvB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,gBAAgB,EAAE,CAAC,EAC7C,CAAC;YACD,OAAO;QACT,CAAC;QAED,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;gBACzC,OAAO,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;YAChC,CAAC,CAAC,CAAC;YAEH,IAAI,QAAQ,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvC,IAAI,QAAQ,KAAK,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtC,kEAAkE;oBAClE,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;gBACxE,CAAC;qBAAM,CAAC;oBACN,4CAA4C;oBAC5C,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,CACL,MAAC,IAAI,IAAC,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,aAC9C,KAAC,IAAI,OACC,SAAS,EACb,GAAG,EAAE,OAAO,EACZ,SAAS,EAAE;oBACT,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;oBAC7B,IAAI,EAAE,cAAc,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB;iBACnE,EACD,EAAE,EAAE,cAAc,YAEjB,IAAI,KAAK,SAAS;oBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAC,WAAW,OAAmB,IAAI,IAAjB,IAAI,CAAC,EAAE,CAAc,CAAC;oBAC5D,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAChB,KAAC,QAAQ,OAEH,IAAI,KACJ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACxD,QAAQ,EAAE,QAAQ,IAHb,IAAI,CAAC,EAAE,CAIZ,CACH,CAAC,GACD,EACN,aAAa,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CACpC,KAAC,MAAM,IAAC,EAAE,EAAE,uBAAuB,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAC,MAAM,YACxE,CAAC,CAAC,cAAc,CAAC,GACX,CACV,IACI,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { forwardRef, useEffect } from 'react';\nimport type { PropsWithoutRef } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport type { RefElement, WithAttributes } from '../../types';\nimport { useBreakpoint, useConsolidatedRef, useI18n, usePrevious } from '../../hooks';\nimport Grid from '../Grid';\nimport { StyledLink } from '../Link';\nimport { getActiveElement, getFocusables } from '../../utils';\nimport Flex from '../Flex';\nimport Button from '../Button';\nimport { defaultThemeProp } from '../../theme';\nimport { calculateFontSize, type FontSize } from '../../styles';\nimport { ellipsisOverflow } from '../../styles/mixins';\n\nimport type { FileDisplayProps } from './FileDisplay';\nimport type { FileItemProps } from './FileItem';\nimport FileDisplay from './FileDisplay';\nimport FileItem from './FileItem';\n\nexport interface CommonFileProps {\n onDownloadAll?: () => void;\n}\n\nexport type FileListProps = WithAttributes<\n 'div',\n | (CommonFileProps & {\n type: 'display';\n items: FileDisplayProps[];\n disabled?: never;\n })\n | (CommonFileProps & {\n type: 'item';\n items: FileItemProps[];\n disabled?: boolean;\n })\n>;\n\nexport const StyledFileList = styled(Grid)`\n ${StyledLink} + ${StyledLink} {\n margin-inline-start: unset;\n }\n`;\n\nconst StyledDownloadAllButton = styled.button(\n ({\n theme: {\n components: { text },\n base: { 'font-size': fontSize, 'font-scale': fontScale, spacing }\n }\n }) => {\n const fontSizes = calculateFontSize(fontSize, fontScale);\n return css`\n font-size: ${fontSizes[text.secondary['font-size'] as FontSize]};\n ${ellipsisOverflow}\n flex-shrink: 1;\n width: fit-content;\n margin-inline-start: calc(0.5 * ${spacing});\n margin-block-end: calc(0.5 * ${spacing});\n `;\n }\n);\n\nStyledDownloadAllButton.defaultProps = defaultThemeProp;\n\nconst FileList = forwardRef<RefElement<FileListProps>, PropsWithoutRef<FileListProps>>(\n function FileList({ type, items, onDownloadAll, disabled = false, ...restProps }, ref) {\n const listRef = useConsolidatedRef(ref);\n const isSmallOrAbove = useBreakpoint('sm', { breakpointRef: listRef });\n const t = useI18n();\n const isAdvancedEdit =\n type === 'item' && items.length > 0 && items.every(item => !!item.metadata);\n\n const prevItems = usePrevious(items);\n const activeElementContained = listRef.current?.contains(getActiveElement());\n\n useEffect(() => {\n // Early exit when focus doesn't need to be grabbed\n if (\n items.length === 0 ||\n !activeElementContained ||\n listRef.current?.contains(getActiveElement())\n ) {\n return;\n }\n\n prevItems?.forEach((item, oldIndex) => {\n const newIndex = items.findIndex(newItem => {\n return item.id === newItem.id;\n });\n\n if (newIndex === -1 && listRef.current) {\n if (oldIndex === prevItems.length - 1) {\n // Move the focus to previous element when last element is removed\n getFocusables(listRef.current.children[items.length - 1])[0]?.focus();\n } else {\n // Otherwise, Move the focus to next element\n getFocusables(listRef.current.children[oldIndex])[0]?.focus();\n }\n }\n });\n }, [items]);\n\n return (\n <Flex container={{ direction: 'column', gap: 1 }}>\n <Grid\n {...restProps}\n ref={listRef}\n container={{\n gap: isAdvancedEdit ? 0 : 0.5,\n cols: isAdvancedEdit || !isSmallOrAbove ? '1fr' : 'repeat(2, 1fr)'\n }}\n as={StyledFileList}\n >\n {type === 'display'\n ? items.map(item => <FileDisplay key={item.id} {...item} />)\n : items.map(item => (\n <FileItem\n key={item.id}\n {...item}\n {...(isAdvancedEdit ? { previewFromActions: true } : {})}\n disabled={disabled}\n />\n ))}\n </Grid>\n {onDownloadAll && items.length > 1 && (\n <Button as={StyledDownloadAllButton} onClick={onDownloadAll} variant='link'>\n {t('download_all')}\n </Button>\n )}\n </Flex>\n );\n }\n);\n\nexport default FileList;\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { default as FileInput } from './FileInput';
|
|
2
2
|
export type { FileInputProps } from './FileInput';
|
|
3
3
|
export { default as FileItem } from './FileItem';
|
|
4
|
-
export type { FileItemProps } from './FileItem';
|
|
4
|
+
export type { FileItemProps, FileMetadata, FileMetadataField, FileMetadataTextField, FileMetadataSelectField } from './FileItem';
|
|
5
5
|
export { default as FileUploadItem } from './FileUploadItem';
|
|
6
6
|
export type { FileUploadItemProps } from './FileUploadItem';
|
|
7
7
|
export { default as FileDisplay } from './FileDisplay';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/File/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/File/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/File/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/File/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAQjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE7D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE/D,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC","sourcesContent":["export { default as FileInput } from './FileInput';\nexport type { FileInputProps } from './FileInput';\nexport { default as FileItem } from './FileItem';\nexport type {\n FileItemProps,\n FileMetadata,\n FileMetadataField,\n FileMetadataTextField,\n FileMetadataSelectField\n} from './FileItem';\nexport { default as FileUploadItem } from './FileUploadItem';\nexport type { FileUploadItemProps } from './FileUploadItem';\nexport { default as FileDisplay } from './FileDisplay';\nexport type { FileDisplayProps } from './FileDisplay';\nexport { default as FileVisual } from './FileVisual';\nexport type { FileVisualProps } from './FileVisual';\nexport { default as FileList } from './FileList';\nexport type { FileListProps } from './FileList';\nexport { default as FileDisplayList } from './FileDisplayList';\nexport type { FileDisplayListProps } from './FileDisplayList';\nexport { getKindFromMimeType, getMimeTypeFromFile } from './utils';\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { FC, ReactNode, ComponentType, ReactElement } from 'react';
|
|
2
|
-
import type { Action, ExcludeStrict, ForwardProps, OmitStrict, TestIdProp } from '../../types';
|
|
2
|
+
import type { Action, ExcludeStrict, ForwardProps, HeadingTag, OmitStrict, TestIdProp } from '../../types';
|
|
3
3
|
import type { FlexProps } from '../Flex';
|
|
4
4
|
import type { FormControlProps } from '../FormControl';
|
|
5
5
|
import type { LabelProps } from '../Label';
|
|
@@ -42,6 +42,11 @@ export interface FormFieldProps extends OmitStrict<FormControlProps, 'placeholde
|
|
|
42
42
|
* @default false
|
|
43
43
|
*/
|
|
44
44
|
labelAfter?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Sets the visual variant/styling of the label.
|
|
47
|
+
* @default 'default'
|
|
48
|
+
*/
|
|
49
|
+
labelVariant?: 'default' | HeadingTag;
|
|
45
50
|
/**
|
|
46
51
|
* Property used to check whether input type is radio to handle styling for RadioCheck
|
|
47
52
|
* @default false
|
|
@@ -73,6 +78,9 @@ export interface FormFieldProps extends OmitStrict<FormControlProps, 'placeholde
|
|
|
73
78
|
export declare const StyledFormFieldInfo: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, Pick<FormControlProps, "status"> & {
|
|
74
79
|
infoAbove?: boolean;
|
|
75
80
|
}>> & string;
|
|
81
|
+
export declare const StyledHeadingLabel: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<Omit<Omit<import("../Text").TextProps, "ref"> & import("react").RefAttributes<HTMLHeadingElement | HTMLSpanElement> & ForwardProps, "ref"> & {
|
|
82
|
+
ref?: ((instance: HTMLHeadingElement | HTMLSpanElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLHeadingElement | HTMLSpanElement> | null | undefined;
|
|
83
|
+
}, never>> & string & Omit<import("../..").ForwardRefForwardPropsComponent<import("../Text").TextProps>, keyof import("react").Component<any, {}, any>>;
|
|
76
84
|
export declare const StyledLabelRow: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components/dist/types").Substitute<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {
|
|
77
85
|
inline: boolean;
|
|
78
86
|
}>> & string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/FormField/FormField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"FormField.d.ts","sourceRoot":"","sources":["../../../src/components/FormField/FormField.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,EAAE,EAEF,SAAS,EACT,aAAa,EACb,YAAY,EAGb,MAAM,OAAO,CAAC;AAKf,OAAO,KAAK,EACV,MAAM,EACN,aAAa,EACb,YAAY,EACZ,UAAU,EACV,UAAU,EACV,UAAU,EACX,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAe3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAIrD,MAAM,WAAW,cACf,SAAQ,UAAU,CAAC,gBAAgB,EAAE,aAAa,GAAG,OAAO,GAAG,cAAc,CAAC,EAC5E,UAAU,CAAC,OAAO,QAAQ,CAAC;IAC7B,kFAAkF;IAClF,QAAQ,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IACxC;;;;;;;;OAQG;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;IACjC;;;OAGG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3B;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACtC;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IAC7C;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,SAAS,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;IACxD,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,SAAS,CAAC;IAC7B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mGAAmG;IACnG,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mDAAmD;IACnD,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC;AAyBD,eAAO,MAAM,mBAAmB;gBACmB,OAAO;YA6BxD,CAAC;AAIH,eAAO,MAAM,kBAAkB;;uJAAiB,CAAC;AAEjD,eAAO,MAAM,cAAc;YAAwB,OAAO;YAUxD,CAAC;AAEH,eAAO,MAAM,eAAe;gBAEZ,OAAO;wBACC,OAAO;kBACb,OAAO;YAwFvB,CAAC;;;;AAoWH,wBAA2D"}
|