@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.
Files changed (253) hide show
  1. package/lib/components/AppShell/AppHeader.d.ts.map +1 -1
  2. package/lib/components/AppShell/AppHeader.js +44 -7
  3. package/lib/components/AppShell/AppHeader.js.map +1 -1
  4. package/lib/components/AppShell/AppHeader.styles.d.ts +6 -2
  5. package/lib/components/AppShell/AppHeader.styles.d.ts.map +1 -1
  6. package/lib/components/AppShell/AppHeader.styles.js +36 -18
  7. package/lib/components/AppShell/AppHeader.styles.js.map +1 -1
  8. package/lib/components/AppShell/AppNavigationPanel.js +1 -1
  9. package/lib/components/AppShell/AppNavigationPanel.js.map +1 -1
  10. package/lib/components/AppShell/AppShell.d.ts.map +1 -1
  11. package/lib/components/AppShell/AppShell.js +27 -9
  12. package/lib/components/AppShell/AppShell.js.map +1 -1
  13. package/lib/components/AppShell/AppShellContext.d.ts +1 -0
  14. package/lib/components/AppShell/AppShellContext.d.ts.map +1 -1
  15. package/lib/components/AppShell/AppShellContext.js +1 -0
  16. package/lib/components/AppShell/AppShellContext.js.map +1 -1
  17. package/lib/components/AppShell/AppShellList.js +1 -1
  18. package/lib/components/AppShell/AppShellList.js.map +1 -1
  19. package/lib/components/AppShell/NavigationList.d.ts.map +1 -1
  20. package/lib/components/AppShell/NavigationList.js +3 -2
  21. package/lib/components/AppShell/NavigationList.js.map +1 -1
  22. package/lib/components/AppShell/NavigationListItemWrapper.d.ts.map +1 -1
  23. package/lib/components/AppShell/NavigationListItemWrapper.js +87 -48
  24. package/lib/components/AppShell/NavigationListItemWrapper.js.map +1 -1
  25. package/lib/components/Avatar/Avatar.d.ts +1 -1
  26. package/lib/components/Avatar/Avatar.d.ts.map +1 -1
  27. package/lib/components/Avatar/Avatar.js.map +1 -1
  28. package/lib/components/Badges/Selection.js +1 -1
  29. package/lib/components/Badges/Selection.js.map +1 -1
  30. package/lib/components/ComboBox/ComboBox.d.ts.map +1 -1
  31. package/lib/components/ComboBox/ComboBox.js +3 -6
  32. package/lib/components/ComboBox/ComboBox.js.map +1 -1
  33. package/lib/components/ComboBox/ComboBox.styles.d.ts.map +1 -1
  34. package/lib/components/ComboBox/ComboBox.styles.js +9 -1
  35. package/lib/components/ComboBox/ComboBox.styles.js.map +1 -1
  36. package/lib/components/ComboBox/ComboBoxInput.d.ts +0 -2
  37. package/lib/components/ComboBox/ComboBoxInput.d.ts.map +1 -1
  38. package/lib/components/ComboBox/ComboBoxInput.js +2 -2
  39. package/lib/components/ComboBox/ComboBoxInput.js.map +1 -1
  40. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.d.ts +4 -6
  41. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.d.ts.map +1 -1
  42. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.js +96 -189
  43. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.js.map +1 -1
  44. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.d.ts +190 -0
  45. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.d.ts.map +1 -0
  46. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.js +72 -0
  47. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.styles.js.map +1 -0
  48. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.types.d.ts +0 -2
  49. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.types.d.ts.map +1 -1
  50. package/lib/components/ComboBox/MultiSelectInput/MultiSelectInput.types.js.map +1 -1
  51. package/lib/components/Configuration/Configuration.d.ts.map +1 -1
  52. package/lib/components/Configuration/Configuration.js +3 -1
  53. package/lib/components/Configuration/Configuration.js.map +1 -1
  54. package/lib/components/Currency/CurrencyInput.d.ts.map +1 -1
  55. package/lib/components/Currency/CurrencyInput.js +19 -12
  56. package/lib/components/Currency/CurrencyInput.js.map +1 -1
  57. package/lib/components/Currency/utils.d.ts +8 -0
  58. package/lib/components/Currency/utils.d.ts.map +1 -1
  59. package/lib/components/Currency/utils.js +34 -4
  60. package/lib/components/Currency/utils.js.map +1 -1
  61. package/lib/components/DateTime/DateTimeDisplay.d.ts +2 -2
  62. package/lib/components/DateTime/DateTimeDisplay.d.ts.map +1 -1
  63. package/lib/components/DateTime/DateTimeDisplay.js +29 -4
  64. package/lib/components/DateTime/DateTimeDisplay.js.map +1 -1
  65. package/lib/components/DateTime/Input/DateInput.d.ts.map +1 -1
  66. package/lib/components/DateTime/Input/DateInput.js +7 -7
  67. package/lib/components/DateTime/Input/DateInput.js.map +1 -1
  68. package/lib/components/DateTime/Input/DateRangeInput.d.ts.map +1 -1
  69. package/lib/components/DateTime/Input/DateRangeInput.js +8 -2
  70. package/lib/components/DateTime/Input/DateRangeInput.js.map +1 -1
  71. package/lib/components/DateTime/Input/DateTimeInput.d.ts +1 -1
  72. package/lib/components/DateTime/Input/DateTimeInput.d.ts.map +1 -1
  73. package/lib/components/DateTime/Input/DateTimeInput.js +8 -8
  74. package/lib/components/DateTime/Input/DateTimeInput.js.map +1 -1
  75. package/lib/components/DateTime/Input/MonthInput.js +2 -2
  76. package/lib/components/DateTime/Input/MonthInput.js.map +1 -1
  77. package/lib/components/DateTime/Input/QuarterInput.js +2 -2
  78. package/lib/components/DateTime/Input/QuarterInput.js.map +1 -1
  79. package/lib/components/DateTime/Input/TimeInput.d.ts.map +1 -1
  80. package/lib/components/DateTime/Input/TimeInput.js +3 -3
  81. package/lib/components/DateTime/Input/TimeInput.js.map +1 -1
  82. package/lib/components/DateTime/Input/TimeRangeInput.d.ts.map +1 -1
  83. package/lib/components/DateTime/Input/TimeRangeInput.js +12 -4
  84. package/lib/components/DateTime/Input/TimeRangeInput.js.map +1 -1
  85. package/lib/components/DateTime/Input/WeekInput.d.ts.map +1 -1
  86. package/lib/components/DateTime/Input/WeekInput.js +2 -2
  87. package/lib/components/DateTime/Input/WeekInput.js.map +1 -1
  88. package/lib/components/DateTime/Input/utils.d.ts +6 -0
  89. package/lib/components/DateTime/Input/utils.d.ts.map +1 -1
  90. package/lib/components/DateTime/Input/utils.js +47 -0
  91. package/lib/components/DateTime/Input/utils.js.map +1 -1
  92. package/lib/components/DateTime/utils.d.ts +15 -4
  93. package/lib/components/DateTime/utils.d.ts.map +1 -1
  94. package/lib/components/DateTime/utils.js +24 -3
  95. package/lib/components/DateTime/utils.js.map +1 -1
  96. package/lib/components/Dialog/InfoDialogWrapper.d.ts +4 -0
  97. package/lib/components/Dialog/InfoDialogWrapper.d.ts.map +1 -0
  98. package/lib/components/Dialog/InfoDialogWrapper.js +13 -0
  99. package/lib/components/Dialog/InfoDialogWrapper.js.map +1 -0
  100. package/lib/components/Dialog/TouchDialog.d.ts +5 -0
  101. package/lib/components/Dialog/TouchDialog.d.ts.map +1 -0
  102. package/lib/components/Dialog/TouchDialog.js +85 -0
  103. package/lib/components/Dialog/TouchDialog.js.map +1 -0
  104. package/lib/components/Dialog/TouchDialog.styles.d.ts +7 -0
  105. package/lib/components/Dialog/TouchDialog.styles.d.ts.map +1 -0
  106. package/lib/components/Dialog/TouchDialog.styles.js +62 -0
  107. package/lib/components/Dialog/TouchDialog.styles.js.map +1 -0
  108. package/lib/components/Dialog/TouchDialog.test-ids.d.ts +2 -0
  109. package/lib/components/Dialog/TouchDialog.test-ids.d.ts.map +1 -0
  110. package/lib/components/Dialog/TouchDialog.test-ids.js +3 -0
  111. package/lib/components/Dialog/TouchDialog.test-ids.js.map +1 -0
  112. package/lib/components/Dialog/TouchDialog.types.d.ts +42 -0
  113. package/lib/components/Dialog/TouchDialog.types.d.ts.map +1 -0
  114. package/lib/components/Dialog/TouchDialog.types.js +2 -0
  115. package/lib/components/Dialog/TouchDialog.types.js.map +1 -0
  116. package/lib/components/Dialog/TouchInfoDialog.d.ts +4 -0
  117. package/lib/components/Dialog/TouchInfoDialog.d.ts.map +1 -0
  118. package/lib/components/Dialog/TouchInfoDialog.js +14 -0
  119. package/lib/components/Dialog/TouchInfoDialog.js.map +1 -0
  120. package/lib/components/Dialog/index.d.ts +4 -1
  121. package/lib/components/Dialog/index.d.ts.map +1 -1
  122. package/lib/components/Dialog/index.js +3 -1
  123. package/lib/components/Dialog/index.js.map +1 -1
  124. package/lib/components/FieldGroup/FieldGroup.d.ts +12 -7
  125. package/lib/components/FieldGroup/FieldGroup.d.ts.map +1 -1
  126. package/lib/components/FieldGroup/FieldGroup.js +28 -25
  127. package/lib/components/FieldGroup/FieldGroup.js.map +1 -1
  128. package/lib/components/FieldGroup/FieldGroupList.js +1 -1
  129. package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
  130. package/lib/components/FieldValueList/FieldValueList.d.ts +3 -1
  131. package/lib/components/FieldValueList/FieldValueList.d.ts.map +1 -1
  132. package/lib/components/FieldValueList/FieldValueList.js +15 -6
  133. package/lib/components/FieldValueList/FieldValueList.js.map +1 -1
  134. package/lib/components/File/CompactList.js +1 -1
  135. package/lib/components/File/CompactList.js.map +1 -1
  136. package/lib/components/File/FileItem.d.ts +38 -0
  137. package/lib/components/File/FileItem.d.ts.map +1 -1
  138. package/lib/components/File/FileItem.js +167 -23
  139. package/lib/components/File/FileItem.js.map +1 -1
  140. package/lib/components/File/FileList.d.ts.map +1 -1
  141. package/lib/components/File/FileList.js +6 -2
  142. package/lib/components/File/FileList.js.map +1 -1
  143. package/lib/components/File/index.d.ts +1 -1
  144. package/lib/components/File/index.d.ts.map +1 -1
  145. package/lib/components/File/index.js.map +1 -1
  146. package/lib/components/File/mimeTypes.json +1 -0
  147. package/lib/components/FormField/FormField.d.ts +9 -1
  148. package/lib/components/FormField/FormField.d.ts.map +1 -1
  149. package/lib/components/FormField/FormField.js +26 -10
  150. package/lib/components/FormField/FormField.js.map +1 -1
  151. package/lib/components/Icon/Icon.d.ts +5 -0
  152. package/lib/components/Icon/Icon.d.ts.map +1 -1
  153. package/lib/components/Icon/Icon.js +44 -4
  154. package/lib/components/Icon/Icon.js.map +1 -1
  155. package/lib/components/Icon/iconNames.d.ts +1 -0
  156. package/lib/components/Icon/iconNames.d.ts.map +1 -1
  157. package/lib/components/Icon/iconNames.js +1 -0
  158. package/lib/components/Icon/iconNames.js.map +1 -1
  159. package/lib/components/Icon/icons/search-solid.icon.d.ts +1 -1
  160. package/lib/components/Icon/icons/search-solid.icon.js +3 -3
  161. package/lib/components/Icon/icons/search-solid.icon.js.map +1 -1
  162. package/lib/components/Icon/streamlineIconNames.d.ts +1 -0
  163. package/lib/components/Icon/streamlineIconNames.d.ts.map +1 -1
  164. package/lib/components/Icon/streamlineIconNames.js +1 -0
  165. package/lib/components/Icon/streamlineIconNames.js.map +1 -1
  166. package/lib/components/Link/Link.d.ts +6 -13
  167. package/lib/components/Link/Link.d.ts.map +1 -1
  168. package/lib/components/Link/Link.js.map +1 -1
  169. package/lib/components/ListToolbar/ListToolbar.d.ts.map +1 -1
  170. package/lib/components/ListToolbar/ListToolbar.js +1 -1
  171. package/lib/components/ListToolbar/ListToolbar.js.map +1 -1
  172. package/lib/components/ListToolbar/PresetMenuPopover.d.ts.map +1 -1
  173. package/lib/components/ListToolbar/PresetMenuPopover.js +16 -5
  174. package/lib/components/ListToolbar/PresetMenuPopover.js.map +1 -1
  175. package/lib/components/MenuButton/MenuButton.d.ts.map +1 -1
  176. package/lib/components/MenuButton/MenuButton.js +33 -7
  177. package/lib/components/MenuButton/MenuButton.js.map +1 -1
  178. package/lib/components/MultiStepForm/FormProgress.styles.d.ts +25 -1
  179. package/lib/components/MultiStepForm/FormProgress.styles.d.ts.map +1 -1
  180. package/lib/components/MultiStepForm/FormProgress.styles.js +168 -5
  181. package/lib/components/MultiStepForm/FormProgress.styles.js.map +1 -1
  182. package/lib/components/MultiStepForm/HorizontalFormProgress.d.ts +2 -2
  183. package/lib/components/MultiStepForm/HorizontalFormProgress.d.ts.map +1 -1
  184. package/lib/components/MultiStepForm/HorizontalFormProgress.js +48 -22
  185. package/lib/components/MultiStepForm/HorizontalFormProgress.js.map +1 -1
  186. package/lib/components/MultiStepForm/MultiStepForm.d.ts.map +1 -1
  187. package/lib/components/MultiStepForm/MultiStepForm.js +2 -2
  188. package/lib/components/MultiStepForm/MultiStepForm.js.map +1 -1
  189. package/lib/components/MultiStepForm/MultiStepForm.types.d.ts +5 -0
  190. package/lib/components/MultiStepForm/MultiStepForm.types.d.ts.map +1 -1
  191. package/lib/components/MultiStepForm/MultiStepForm.types.js.map +1 -1
  192. package/lib/components/MultiStepForm/VerticalFormProgress.d.ts +2 -2
  193. package/lib/components/MultiStepForm/VerticalFormProgress.d.ts.map +1 -1
  194. package/lib/components/MultiStepForm/VerticalFormProgress.js +45 -20
  195. package/lib/components/MultiStepForm/VerticalFormProgress.js.map +1 -1
  196. package/lib/components/MultiStepForm/useFormProgressOverflow.d.ts +1 -1
  197. package/lib/components/MultiStepForm/useFormProgressOverflow.d.ts.map +1 -1
  198. package/lib/components/MultiStepForm/useFormProgressOverflow.js +17 -9
  199. package/lib/components/MultiStepForm/useFormProgressOverflow.js.map +1 -1
  200. package/lib/components/Number/utils.js +1 -1
  201. package/lib/components/Number/utils.js.map +1 -1
  202. package/lib/components/PageTemplates/PageTemplates.js +1 -1
  203. package/lib/components/PageTemplates/PageTemplates.js.map +1 -1
  204. package/lib/components/RadioCheckGroup/RadioCheckGroup.d.ts.map +1 -1
  205. package/lib/components/RadioCheckGroup/RadioCheckGroup.js +1 -1
  206. package/lib/components/RadioCheckGroup/RadioCheckGroup.js.map +1 -1
  207. package/lib/components/SelectionCard/SelectionCard.d.ts +1 -1
  208. package/lib/components/SelectionCard/SelectionCard.d.ts.map +1 -1
  209. package/lib/components/SelectionCard/SelectionCard.js +3 -3
  210. package/lib/components/SelectionCard/SelectionCard.js.map +1 -1
  211. package/lib/components/SelectionCard/SelectionCardDisplay.d.ts +5 -0
  212. package/lib/components/SelectionCard/SelectionCardDisplay.d.ts.map +1 -1
  213. package/lib/components/SelectionCard/SelectionCardDisplay.js +4 -2
  214. package/lib/components/SelectionCard/SelectionCardDisplay.js.map +1 -1
  215. package/lib/components/SpeechToTextButton/SpeechToTextButton.js +1 -1
  216. package/lib/components/SpeechToTextButton/SpeechToTextButton.js.map +1 -1
  217. package/lib/components/SummaryList/SummaryList.d.ts.map +1 -1
  218. package/lib/components/SummaryList/SummaryList.js +8 -4
  219. package/lib/components/SummaryList/SummaryList.js.map +1 -1
  220. package/lib/components/TextArea/TextArea.d.ts.map +1 -1
  221. package/lib/components/TextArea/TextArea.js +7 -21
  222. package/lib/components/TextArea/TextArea.js.map +1 -1
  223. package/lib/components/TextArea/TextArea.styles.d.ts +0 -1
  224. package/lib/components/TextArea/TextArea.styles.d.ts.map +1 -1
  225. package/lib/components/TextArea/TextArea.styles.js +1 -2
  226. package/lib/components/TextArea/TextArea.styles.js.map +1 -1
  227. package/lib/hooks/useI18n.d.ts +13 -9
  228. package/lib/hooks/useI18n.d.ts.map +1 -1
  229. package/lib/i18n/default.d.ts +13 -10
  230. package/lib/i18n/default.d.ts.map +1 -1
  231. package/lib/i18n/default.js +16 -12
  232. package/lib/i18n/default.js.map +1 -1
  233. package/lib/i18n/i18n.d.ts +13 -9
  234. package/lib/i18n/i18n.d.ts.map +1 -1
  235. package/lib/styles/GlobalStyle.d.ts.map +1 -1
  236. package/lib/styles/GlobalStyle.js +3 -3
  237. package/lib/styles/GlobalStyle.js.map +1 -1
  238. package/lib/theme/theme.d.ts +48 -0
  239. package/lib/theme/theme.d.ts.map +1 -1
  240. package/lib/theme/themeDefinition.json +26 -0
  241. package/lib/theme/themeOverrides.schema.json +36 -0
  242. package/lib/theme/themes/aurigaDarkTheme.json +54 -61
  243. package/lib/theme/themes/aurigaTheme.json +49 -56
  244. package/lib/theme/themes/virgoTheme.json +3 -3
  245. package/lib/utils/index.d.ts +1 -0
  246. package/lib/utils/index.d.ts.map +1 -1
  247. package/lib/utils/index.js +1 -0
  248. package/lib/utils/index.js.map +1 -1
  249. package/lib/utils/isTouchDevice.d.ts +3 -0
  250. package/lib/utils/isTouchDevice.d.ts.map +1 -0
  251. package/lib/utils/isTouchDevice.js +4 -0
  252. package/lib/utils/isTouchDevice.js.map +1 -0
  253. 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 StyledMeta = styled(StyledText)(({ theme, error }) => {
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
- export const StyledFileItem = styled.div(({ theme: { base: { palette, spacing, 'hit-area': { compact }, 'disabled-opacity': disabledOpacity }, components: { input, 'form-control': { ':disabled': { 'background-color': disabledBackgroundColor, 'border-color': disabledBorderColor } } } }, compactMode, isDisabled }) => {
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
- background-color: ${palette['primary-background']};
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: [undefined, 0.5, undefined, undefined],
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
- ((!inModal && onPreviewPopoverClick) || onPreview) &&
196
- !(error || uploading) ? (_jsxs(Button, { ...restProps, as: StyledPreviewTitle, variant: 'link', ref: setTextTarget, onClick: () => {
197
- onPreview?.(id);
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
- previewTriggerRef.current = textTarget;
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,2HAwDb,CAAC;AAEF,eAAe,QAAQ,CAAC"}
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: { gap: 0.5, cols: isSmallOrAbove ? 'repeat(2, 1fr)' : '1fr' }, as: StyledFileList, children: type === 'display'
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":"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","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\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={{ gap: 0.5, cols: isSmallOrAbove ? 'repeat(2, 1fr)' : '1fr' }}\n as={StyledFileList}\n >\n {type === 'display'\n ? items.map(item => <FileDisplay key={item.id} {...item} />)\n : items.map(item => <FileItem key={item.id} {...item} disabled={disabled} />)}\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
+ {"version":3,"file":"FileList.js","sourceRoot":"","sources":["../../../src/components/File/FileList.tsx"],"names":[],"mappings":"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","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,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,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
+ {"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;AAEjD,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 { FileItemProps } 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
+ {"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"]}
@@ -101,6 +101,7 @@
101
101
  "vcs": "text/x-vcalendar",
102
102
  "wav": "audio/x-wav",
103
103
  "webm": "video/webm",
104
+ "webp": "image/webp",
104
105
  "wm": "video/x-ms-wm",
105
106
  "wma": "audio/x-ms-wma",
106
107
  "wmv": "video/x-ms-wmv",
@@ -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,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAwB,MAAM,OAAO,CAAC;AAK9F,OAAO,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE/F,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,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,cAAc;YAAwB,OAAO;YAUxD,CAAC;AAEH,eAAO,MAAM,eAAe;gBAEZ,OAAO;wBACC,OAAO;kBACb,OAAO;YAqFvB,CAAC;;;;AAiVH,wBAA2D"}
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"}