@payloadcms/ui 3.0.0-beta.88 → 3.0.0-beta.89

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 (189) hide show
  1. package/dist/elements/AddNewRelation/index.d.ts.map +1 -0
  2. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.js +98 -82
  3. package/dist/elements/AddNewRelation/index.js.map +1 -0
  4. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.scss +7 -3
  5. package/dist/elements/AddNewRelation/types.d.ts +11 -0
  6. package/dist/elements/AddNewRelation/types.d.ts.map +1 -0
  7. package/dist/elements/AddNewRelation/types.js.map +1 -0
  8. package/dist/elements/AddNewRelation/useRelatedCollections.d.ts.map +1 -0
  9. package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.js +1 -1
  10. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -0
  11. package/dist/elements/BulkUpload/ActionsBar/index.d.ts +9 -0
  12. package/dist/elements/BulkUpload/ActionsBar/index.d.ts.map +1 -0
  13. package/dist/elements/BulkUpload/ActionsBar/index.js +186 -0
  14. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -0
  15. package/dist/elements/BulkUpload/ActionsBar/index.scss +59 -0
  16. package/dist/elements/BulkUpload/AddFilesView/index.d.ts +9 -0
  17. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -0
  18. package/dist/elements/BulkUpload/AddFilesView/index.js +44 -0
  19. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -0
  20. package/dist/elements/BulkUpload/AddFilesView/index.scss +15 -0
  21. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts +4 -0
  22. package/dist/elements/BulkUpload/AddingFilesView/index.d.ts.map +1 -0
  23. package/dist/elements/BulkUpload/AddingFilesView/index.js +98 -0
  24. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -0
  25. package/dist/elements/BulkUpload/AddingFilesView/index.scss +23 -0
  26. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts +4 -0
  27. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.d.ts.map +1 -0
  28. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +89 -0
  29. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -0
  30. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts +9 -0
  31. package/dist/elements/BulkUpload/DrawerCloseButton/index.d.ts.map +1 -0
  32. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +38 -0
  33. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -0
  34. package/dist/elements/BulkUpload/DrawerCloseButton/index.scss +27 -0
  35. package/dist/elements/BulkUpload/EditForm/index.d.ts +5 -0
  36. package/dist/elements/BulkUpload/EditForm/index.d.ts.map +1 -0
  37. package/dist/elements/BulkUpload/EditForm/index.js +176 -0
  38. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -0
  39. package/dist/elements/BulkUpload/EditForm/index.scss +9 -0
  40. package/dist/elements/BulkUpload/EditForm/types.d.ts +4 -0
  41. package/dist/elements/BulkUpload/EditForm/types.d.ts.map +1 -0
  42. package/dist/elements/BulkUpload/EditForm/types.js +2 -0
  43. package/dist/elements/BulkUpload/EditForm/types.js.map +1 -0
  44. package/dist/elements/BulkUpload/FileSidebar/index.d.ts +4 -0
  45. package/dist/elements/BulkUpload/FileSidebar/index.d.ts.map +1 -0
  46. package/dist/elements/BulkUpload/FileSidebar/index.js +242 -0
  47. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -0
  48. package/dist/elements/BulkUpload/FileSidebar/index.scss +275 -0
  49. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts +3 -0
  50. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -0
  51. package/dist/elements/BulkUpload/FormsManager/createFormData.js +22 -0
  52. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -0
  53. package/dist/elements/BulkUpload/FormsManager/index.d.ts +35 -0
  54. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -0
  55. package/dist/elements/BulkUpload/FormsManager/index.js +308 -0
  56. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -0
  57. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts +30 -0
  58. package/dist/elements/BulkUpload/FormsManager/reducer.d.ts.map +1 -0
  59. package/dist/elements/BulkUpload/FormsManager/reducer.js +69 -0
  60. package/dist/elements/BulkUpload/FormsManager/reducer.js.map +1 -0
  61. package/dist/elements/BulkUpload/Header/index.d.ts +9 -0
  62. package/dist/elements/BulkUpload/Header/index.d.ts.map +1 -0
  63. package/dist/elements/BulkUpload/Header/index.js +22 -0
  64. package/dist/elements/BulkUpload/Header/index.js.map +1 -0
  65. package/dist/elements/BulkUpload/Header/index.scss +12 -0
  66. package/dist/elements/BulkUpload/index.d.ts +10 -0
  67. package/dist/elements/BulkUpload/index.d.ts.map +1 -0
  68. package/dist/elements/BulkUpload/index.js +114 -0
  69. package/dist/elements/BulkUpload/index.js.map +1 -0
  70. package/dist/elements/BulkUpload/index.scss +0 -0
  71. package/dist/elements/Button/index.d.ts.map +1 -1
  72. package/dist/elements/Button/index.js +127 -79
  73. package/dist/elements/Button/index.js.map +1 -1
  74. package/dist/elements/Button/index.scss +109 -43
  75. package/dist/elements/Button/types.d.ts +2 -1
  76. package/dist/elements/Button/types.d.ts.map +1 -1
  77. package/dist/elements/Button/types.js.map +1 -1
  78. package/dist/elements/DocumentDrawer/DrawerContent.js +1 -1
  79. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  80. package/dist/elements/DocumentDrawer/index.js +1 -1
  81. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  82. package/dist/elements/Dropzone/index.scss +2 -0
  83. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts +20 -0
  84. package/dist/elements/FileDetails/DraggableFileDetails/index.d.ts.map +1 -0
  85. package/dist/elements/FileDetails/DraggableFileDetails/index.js +116 -0
  86. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -0
  87. package/dist/elements/FileDetails/DraggableFileDetails/index.scss +33 -0
  88. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts +17 -0
  89. package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -0
  90. package/dist/elements/FileDetails/StaticFileDetails/index.js +71 -0
  91. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -0
  92. package/dist/elements/FileDetails/{index.scss → StaticFileDetails/index.scss} +1 -1
  93. package/dist/elements/FileDetails/index.d.ts +19 -4
  94. package/dist/elements/FileDetails/index.d.ts.map +1 -1
  95. package/dist/elements/FileDetails/index.js +11 -62
  96. package/dist/elements/FileDetails/index.js.map +1 -1
  97. package/dist/elements/FullscreenModal/index.d.ts +4 -0
  98. package/dist/elements/FullscreenModal/index.d.ts.map +1 -0
  99. package/dist/elements/FullscreenModal/index.js +38 -0
  100. package/dist/elements/FullscreenModal/index.js.map +1 -0
  101. package/dist/elements/ListControls/index.d.ts.map +1 -1
  102. package/dist/elements/ListControls/index.js +15 -10
  103. package/dist/elements/ListControls/index.js.map +1 -1
  104. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  105. package/dist/elements/ListDrawer/DrawerContent.js +45 -33
  106. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  107. package/dist/elements/ListDrawer/index.d.ts.map +1 -1
  108. package/dist/elements/ListDrawer/index.js.map +1 -1
  109. package/dist/elements/ListDrawer/types.d.ts +4 -1
  110. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  111. package/dist/elements/ListDrawer/types.js.map +1 -1
  112. package/dist/elements/ListHeader/index.d.ts +10 -0
  113. package/dist/elements/ListHeader/index.d.ts.map +1 -0
  114. package/dist/elements/ListHeader/index.js +17 -0
  115. package/dist/elements/ListHeader/index.js.map +1 -0
  116. package/dist/elements/ListHeader/index.scss +10 -0
  117. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
  118. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  119. package/dist/elements/Popup/PopupButtonList/index.js +4 -4
  120. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  121. package/dist/elements/Popup/PopupTrigger/index.d.ts +2 -0
  122. package/dist/elements/Popup/PopupTrigger/index.d.ts.map +1 -1
  123. package/dist/elements/Popup/PopupTrigger/index.js +5 -2
  124. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  125. package/dist/elements/Popup/PopupTrigger/index.scss +4 -1
  126. package/dist/elements/Popup/index.d.ts +2 -0
  127. package/dist/elements/Popup/index.d.ts.map +1 -1
  128. package/dist/elements/Popup/index.js +6 -0
  129. package/dist/elements/Popup/index.js.map +1 -1
  130. package/dist/elements/SelectMany/index.d.ts +6 -0
  131. package/dist/elements/SelectMany/index.d.ts.map +1 -0
  132. package/dist/elements/SelectMany/index.js +29 -0
  133. package/dist/elements/SelectMany/index.js.map +1 -0
  134. package/dist/elements/ViewDescription/index.d.ts +3 -2
  135. package/dist/elements/ViewDescription/index.d.ts.map +1 -1
  136. package/dist/elements/ViewDescription/index.js +39 -16
  137. package/dist/elements/ViewDescription/index.js.map +1 -1
  138. package/dist/exports/client/index.d.ts +4 -0
  139. package/dist/exports/client/index.d.ts.map +1 -1
  140. package/dist/exports/client/index.js +19 -19
  141. package/dist/exports/client/index.js.map +4 -4
  142. package/dist/fields/Blocks/SectionTitle/index.scss +1 -1
  143. package/dist/fields/Relationship/index.d.ts.map +1 -1
  144. package/dist/fields/Relationship/index.js +1 -3
  145. package/dist/fields/Relationship/index.js.map +1 -1
  146. package/dist/fields/Upload/HasMany/index.d.ts +4 -0
  147. package/dist/fields/Upload/HasMany/index.d.ts.map +1 -0
  148. package/dist/fields/Upload/HasMany/index.js +474 -0
  149. package/dist/fields/Upload/HasMany/index.js.map +1 -0
  150. package/dist/fields/Upload/HasMany/index.scss +47 -0
  151. package/dist/fields/Upload/{Input.d.ts → HasOne/Input.d.ts} +1 -1
  152. package/dist/fields/Upload/HasOne/Input.d.ts.map +1 -0
  153. package/dist/fields/Upload/{Input.js → HasOne/Input.js} +12 -12
  154. package/dist/fields/Upload/HasOne/Input.js.map +1 -0
  155. package/dist/fields/Upload/HasOne/index.d.ts +12 -0
  156. package/dist/fields/Upload/HasOne/index.d.ts.map +1 -0
  157. package/dist/fields/Upload/HasOne/index.js +131 -0
  158. package/dist/fields/Upload/HasOne/index.js.map +1 -0
  159. package/dist/fields/Upload/{index.scss → HasOne/index.scss} +1 -1
  160. package/dist/fields/Upload/index.d.ts +4 -4
  161. package/dist/fields/Upload/index.d.ts.map +1 -1
  162. package/dist/fields/Upload/index.js +84 -98
  163. package/dist/fields/Upload/index.js.map +1 -1
  164. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  165. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +1 -27
  166. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  167. package/dist/providers/Config/createClientConfig/collections.d.ts.map +1 -1
  168. package/dist/providers/Config/createClientConfig/collections.js +3 -4
  169. package/dist/providers/Config/createClientConfig/collections.js.map +1 -1
  170. package/dist/providers/ListInfo/index.d.ts +6 -0
  171. package/dist/providers/ListInfo/index.d.ts.map +1 -1
  172. package/dist/providers/ListInfo/index.js.map +1 -1
  173. package/dist/providers/Selection/index.d.ts +5 -3
  174. package/dist/providers/Selection/index.d.ts.map +1 -1
  175. package/dist/providers/Selection/index.js.map +1 -1
  176. package/dist/styles.css +1 -1
  177. package/package.json +4 -4
  178. package/dist/fields/Relationship/AddNew/index.d.ts.map +0 -1
  179. package/dist/fields/Relationship/AddNew/index.js.map +0 -1
  180. package/dist/fields/Relationship/AddNew/types.d.ts +0 -12
  181. package/dist/fields/Relationship/AddNew/types.d.ts.map +0 -1
  182. package/dist/fields/Relationship/AddNew/types.js.map +0 -1
  183. package/dist/fields/Relationship/AddNew/useRelatedCollections.d.ts.map +0 -1
  184. package/dist/fields/Relationship/AddNew/useRelatedCollections.js.map +0 -1
  185. package/dist/fields/Upload/Input.d.ts.map +0 -1
  186. package/dist/fields/Upload/Input.js.map +0 -1
  187. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/index.d.ts +0 -0
  188. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/types.js +0 -0
  189. /package/dist/{fields/Relationship/AddNew → elements/AddNewRelation}/useRelatedCollections.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare function FileSidebar(): React.JSX.Element;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAazB,OAAO,cAAc,CAAA;AASrB,wBAAgB,WAAW,sBAkI1B"}
@@ -0,0 +1,242 @@
1
+ 'use client';
2
+
3
+ import { c as _c } from "react/compiler-runtime";
4
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
+ import { useModal } from '@faceless-ui/modal';
6
+ import { useWindowInfo } from '@faceless-ui/window-info';
7
+ import React from 'react';
8
+ import AnimateHeightImport from 'react-animate-height';
9
+ import { ChevronIcon } from '../../../icons/Chevron/index.js';
10
+ import { XIcon } from '../../../icons/X/index.js';
11
+ import { useTranslation } from '../../../providers/Translation/index.js';
12
+ import { Button } from '../../Button/index.js';
13
+ import { Drawer } from '../../Drawer/index.js';
14
+ import { ErrorPill } from '../../ErrorPill/index.js';
15
+ import { Pill } from '../../Pill/index.js';
16
+ import { Actions } from '../ActionsBar/index.js';
17
+ import { AddFilesView } from '../AddFilesView/index.js';
18
+ import { useFormsManager } from '../FormsManager/index.js';
19
+ import './index.scss';
20
+ const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
21
+ const drawerSlug = 'bulk-upload-drawer--add-more-files';
22
+ const baseClass = 'file-selections';
23
+ export function FileSidebar() {
24
+ const $ = _c(32);
25
+ const {
26
+ activeIndex,
27
+ addFiles,
28
+ forms,
29
+ removeFile,
30
+ setActiveIndex,
31
+ totalErrorCount
32
+ } = useFormsManager();
33
+ const {
34
+ i18n,
35
+ t
36
+ } = useTranslation();
37
+ const {
38
+ closeModal,
39
+ openModal
40
+ } = useModal();
41
+ const [showFiles, setShowFiles] = React.useState(false);
42
+ const {
43
+ breakpoints
44
+ } = useWindowInfo();
45
+ let t0;
46
+ if ($[0] !== removeFile) {
47
+ t0 = indexToRemove => {
48
+ removeFile(indexToRemove);
49
+ };
50
+ $[0] = removeFile;
51
+ $[1] = t0;
52
+ } else {
53
+ t0 = $[1];
54
+ }
55
+ const handleRemoveFile = t0;
56
+ let t1;
57
+ if ($[2] !== addFiles || $[3] !== closeModal) {
58
+ t1 = filelist => {
59
+ addFiles(filelist);
60
+ closeModal(drawerSlug);
61
+ };
62
+ $[2] = addFiles;
63
+ $[3] = closeModal;
64
+ $[4] = t1;
65
+ } else {
66
+ t1 = $[4];
67
+ }
68
+ const handleAddFiles = t1;
69
+ const getFileSize = _temp;
70
+ const t2 = showFiles && `${baseClass}__showingFiles`;
71
+ let t3;
72
+ if ($[5] !== t2) {
73
+ t3 = [baseClass, t2].filter(Boolean);
74
+ $[5] = t2;
75
+ $[6] = t3;
76
+ } else {
77
+ t3 = $[6];
78
+ }
79
+ const t4 = t3.join(" ");
80
+ let t5;
81
+ if ($[7] !== breakpoints.m || $[8] !== showFiles || $[9] !== totalErrorCount || $[10] !== i18n || $[11] !== forms || $[12] !== t || $[13] !== openModal || $[14] !== closeModal || $[15] !== handleAddFiles || $[16] !== activeIndex || $[17] !== setActiveIndex || $[18] !== handleRemoveFile || $[19] !== t4) {
82
+ let t6;
83
+ if ($[21] !== openModal) {
84
+ t6 = () => openModal(drawerSlug);
85
+ $[21] = openModal;
86
+ $[22] = t6;
87
+ } else {
88
+ t6 = $[22];
89
+ }
90
+ let t7;
91
+ if ($[23] === Symbol.for("react.memo_cache_sentinel")) {
92
+ t7 = () => setShowFiles(prev => !prev);
93
+ $[23] = t7;
94
+ } else {
95
+ t7 = $[23];
96
+ }
97
+ let t8;
98
+ if ($[24] !== closeModal) {
99
+ t8 = () => closeModal(drawerSlug);
100
+ $[24] = closeModal;
101
+ $[25] = t8;
102
+ } else {
103
+ t8 = $[25];
104
+ }
105
+ let t9;
106
+ if ($[26] !== activeIndex || $[27] !== setActiveIndex || $[28] !== i18n || $[29] !== t || $[30] !== handleRemoveFile) {
107
+ t9 = (t10, index) => {
108
+ const {
109
+ errorCount,
110
+ formState
111
+ } = t10;
112
+ const currentFile = formState.file.value;
113
+ return _jsxs("div", {
114
+ className: [`${baseClass}__fileRowContainer`, index === activeIndex && `${baseClass}__fileRowContainer--active`, errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`].filter(Boolean).join(" "),
115
+ children: [_jsxs("button", {
116
+ className: `${baseClass}__fileRow`,
117
+ onClick: () => setActiveIndex(index),
118
+ type: "button",
119
+ children: [_jsx("img", {
120
+ alt: currentFile.name,
121
+ src: URL.createObjectURL(currentFile)
122
+ }), _jsx("div", {
123
+ className: `${baseClass}__fileDetails`,
124
+ children: _jsx("p", {
125
+ className: `${baseClass}__fileName`,
126
+ title: currentFile.name,
127
+ children: currentFile.name
128
+ })
129
+ }), _jsx("p", {
130
+ className: `${baseClass}__fileSize`,
131
+ children: getFileSize(currentFile)
132
+ }), _jsx("div", {
133
+ className: `${baseClass}__remove ${baseClass}__remove--underlay`,
134
+ children: _jsx(XIcon, {})
135
+ }), errorCount ? _jsx(ErrorPill, {
136
+ className: `${baseClass}__errorCount`,
137
+ count: errorCount,
138
+ i18n
139
+ }) : null]
140
+ }), _jsx("button", {
141
+ "aria-label": t("general:remove"),
142
+ className: `${baseClass}__remove ${baseClass}__remove--overlay`,
143
+ onClick: () => handleRemoveFile(index),
144
+ type: "button",
145
+ children: _jsx(XIcon, {})
146
+ })]
147
+ }, index);
148
+ };
149
+ $[26] = activeIndex;
150
+ $[27] = setActiveIndex;
151
+ $[28] = i18n;
152
+ $[29] = t;
153
+ $[30] = handleRemoveFile;
154
+ $[31] = t9;
155
+ } else {
156
+ t9 = $[31];
157
+ }
158
+ t5 = _jsxs("div", {
159
+ className: t4,
160
+ children: [breakpoints.m && showFiles ? _jsx("div", {
161
+ className: `${baseClass}__mobileBlur`
162
+ }) : null, _jsxs("div", {
163
+ className: `${baseClass}__header`,
164
+ children: [_jsxs("div", {
165
+ className: `${baseClass}__headerTopRow`,
166
+ children: [_jsxs("div", {
167
+ className: `${baseClass}__header__text`,
168
+ children: [_jsx(ErrorPill, {
169
+ count: totalErrorCount,
170
+ i18n,
171
+ withMessage: true
172
+ }), _jsx("p", {
173
+ children: _jsxs("strong", {
174
+ title: `${forms.length} ${t(forms.length > 1 ? "upload:filesToUpload" : "upload:fileToUpload")}`,
175
+ children: [forms.length, " ", t(forms.length > 1 ? "upload:filesToUpload" : "upload:fileToUpload")]
176
+ })
177
+ })]
178
+ }), _jsxs("div", {
179
+ className: `${baseClass}__header__actions`,
180
+ children: [_jsx(Pill, {
181
+ onClick: t6,
182
+ children: t("upload:addFile")
183
+ }), _jsx(Button, {
184
+ buttonStyle: "transparent",
185
+ className: `${baseClass}__toggler`,
186
+ onClick: t7,
187
+ children: _jsx(ChevronIcon, {
188
+ direction: showFiles ? "down" : "up"
189
+ })
190
+ }), _jsx(Drawer, {
191
+ Header: null,
192
+ gutter: false,
193
+ slug: drawerSlug,
194
+ children: _jsx(AddFilesView, {
195
+ onCancel: t8,
196
+ onDrop: handleAddFiles
197
+ })
198
+ })]
199
+ })]
200
+ }), _jsx("div", {
201
+ className: `${baseClass}__header__mobileDocActions`,
202
+ children: _jsx(Actions, {})
203
+ })]
204
+ }), _jsx("div", {
205
+ className: `${baseClass}__animateWrapper`,
206
+ children: _jsx(AnimateHeight, {
207
+ duration: 200,
208
+ height: !breakpoints.m || showFiles ? "auto" : 0,
209
+ children: _jsx("div", {
210
+ className: `${baseClass}__filesContainer`,
211
+ children: forms.map(t9)
212
+ })
213
+ })
214
+ })]
215
+ });
216
+ $[7] = breakpoints.m;
217
+ $[8] = showFiles;
218
+ $[9] = totalErrorCount;
219
+ $[10] = i18n;
220
+ $[11] = forms;
221
+ $[12] = t;
222
+ $[13] = openModal;
223
+ $[14] = closeModal;
224
+ $[15] = handleAddFiles;
225
+ $[16] = activeIndex;
226
+ $[17] = setActiveIndex;
227
+ $[18] = handleRemoveFile;
228
+ $[19] = t4;
229
+ $[20] = t5;
230
+ } else {
231
+ t5 = $[20];
232
+ }
233
+ return t5;
234
+ }
235
+ function _temp(file) {
236
+ const size = file.size;
237
+ const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024));
238
+ const decimals = i > 1 ? 1 : 0;
239
+ const formattedSize = (size / Math.pow(1024, i)).toFixed(decimals) + " " + ["B", "kB", "MB", "GB", "TB"][i];
240
+ return formattedSize;
241
+ }
242
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["c","_c","useModal","useWindowInfo","React","AnimateHeightImport","ChevronIcon","XIcon","useTranslation","Button","Drawer","ErrorPill","Pill","Actions","AddFilesView","useFormsManager","AnimateHeight","default","drawerSlug","baseClass","FileSidebar","$","activeIndex","addFiles","forms","removeFile","setActiveIndex","totalErrorCount","i18n","t","closeModal","openModal","showFiles","setShowFiles","useState","breakpoints","t0","indexToRemove","handleRemoveFile","t1","filelist","handleAddFiles","getFileSize","_temp","t2","t3","filter","Boolean","t4","join","t5","m","t6","t7","Symbol","for","prev","t8","t9","t10","index","errorCount","formState","currentFile","file","value","_jsxs","className","children","onClick","type","_jsx","alt","name","src","URL","createObjectURL","title","count","withMessage","length","buttonStyle","direction","Header","gutter","slug","onCancel","onDrop","duration","height","map","size","i","Math","floor","log","decimals","formattedSize","pow","toFixed"],"sources":["../../../../src/elements/BulkUpload/FileSidebar/index.tsx"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { useWindowInfo } from '@faceless-ui/window-info'\nimport React from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nimport { ChevronIcon } from '../../../icons/Chevron/index.js'\nimport { XIcon } from '../../../icons/X/index.js'\nimport { useTranslation } from '../../../providers/Translation/index.js'\nimport { Button } from '../../Button/index.js'\nimport { Drawer } from '../../Drawer/index.js'\nimport { ErrorPill } from '../../ErrorPill/index.js'\nimport { Pill } from '../../Pill/index.js'\nimport { Actions } from '../ActionsBar/index.js'\nimport { AddFilesView } from '../AddFilesView/index.js'\nimport { useFormsManager } from '../FormsManager/index.js'\nimport './index.scss'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nconst drawerSlug = 'bulk-upload-drawer--add-more-files'\n\nconst baseClass = 'file-selections'\n\nexport function FileSidebar() {\n const { activeIndex, addFiles, forms, removeFile, setActiveIndex, totalErrorCount } =\n useFormsManager()\n const { i18n, t } = useTranslation()\n const { closeModal, openModal } = useModal()\n const [showFiles, setShowFiles] = React.useState(false)\n const { breakpoints } = useWindowInfo()\n\n const handleRemoveFile = React.useCallback(\n (indexToRemove: number) => {\n removeFile(indexToRemove)\n },\n [removeFile],\n )\n\n const handleAddFiles = React.useCallback(\n (filelist: FileList) => {\n addFiles(filelist)\n closeModal(drawerSlug)\n },\n [addFiles, closeModal],\n )\n\n const getFileSize = React.useCallback((file: File) => {\n const size = file.size\n const i = size === 0 ? 0 : Math.floor(Math.log(size) / Math.log(1024))\n const decimals = i > 1 ? 1 : 0\n const formattedSize =\n (size / Math.pow(1024, i)).toFixed(decimals) + ' ' + ['B', 'kB', 'MB', 'GB', 'TB'][i]\n return formattedSize\n }, [])\n\n return (\n <div\n className={[baseClass, showFiles && `${baseClass}__showingFiles`].filter(Boolean).join(' ')}\n >\n {breakpoints.m && showFiles ? <div className={`${baseClass}__mobileBlur`} /> : null}\n <div className={`${baseClass}__header`}>\n <div className={`${baseClass}__headerTopRow`}>\n <div className={`${baseClass}__header__text`}>\n <ErrorPill count={totalErrorCount} i18n={i18n} withMessage />\n <p>\n <strong\n title={`${forms.length} ${t(forms.length > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}`}\n >\n {forms.length}{' '}\n {t(forms.length > 1 ? 'upload:filesToUpload' : 'upload:fileToUpload')}\n </strong>\n </p>\n </div>\n\n <div className={`${baseClass}__header__actions`}>\n <Pill onClick={() => openModal(drawerSlug)}>{t('upload:addFile')}</Pill>\n <Button\n buttonStyle=\"transparent\"\n className={`${baseClass}__toggler`}\n onClick={() => setShowFiles((prev) => !prev)}\n >\n <ChevronIcon direction={showFiles ? 'down' : 'up'} />\n </Button>\n\n <Drawer Header={null} gutter={false} slug={drawerSlug}>\n <AddFilesView onCancel={() => closeModal(drawerSlug)} onDrop={handleAddFiles} />\n </Drawer>\n </div>\n </div>\n\n <div className={`${baseClass}__header__mobileDocActions`}>\n <Actions />\n </div>\n </div>\n\n <div className={`${baseClass}__animateWrapper`}>\n <AnimateHeight duration={200} height={!breakpoints.m || showFiles ? 'auto' : 0}>\n <div className={`${baseClass}__filesContainer`}>\n {forms.map(({ errorCount, formState }, index) => {\n const currentFile = formState.file.value as File\n\n return (\n <div\n className={[\n `${baseClass}__fileRowContainer`,\n index === activeIndex && `${baseClass}__fileRowContainer--active`,\n errorCount && errorCount > 0 && `${baseClass}__fileRowContainer--error`,\n ]\n .filter(Boolean)\n .join(' ')}\n key={index}\n >\n <button\n className={`${baseClass}__fileRow`}\n onClick={() => setActiveIndex(index)}\n type=\"button\"\n >\n <img alt={currentFile.name} src={URL.createObjectURL(currentFile)} />\n <div className={`${baseClass}__fileDetails`}>\n <p className={`${baseClass}__fileName`} title={currentFile.name}>\n {currentFile.name}\n </p>\n </div>\n <p className={`${baseClass}__fileSize`}>{getFileSize(currentFile)}</p>\n <div className={`${baseClass}__remove ${baseClass}__remove--underlay`}>\n <XIcon />\n </div>\n\n {errorCount ? (\n <ErrorPill\n className={`${baseClass}__errorCount`}\n count={errorCount}\n i18n={i18n}\n />\n ) : null}\n </button>\n\n <button\n aria-label={t('general:remove')}\n className={`${baseClass}__remove ${baseClass}__remove--overlay`}\n onClick={() => handleRemoveFile(index)}\n type=\"button\"\n >\n <XIcon />\n </button>\n </div>\n )\n })}\n </div>\n </AnimateHeight>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,275 @@
1
+ @import '../../../scss/styles.scss';
2
+
3
+ .file-selections {
4
+ --file-gutter-h: calc(var(--gutter-h) / 4);
5
+ border-right: 1px solid var(--theme-border-color);
6
+ padding: 0;
7
+ display: flex;
8
+ flex-direction: column;
9
+ width: 300px;
10
+ overflow: auto;
11
+ max-height: 100%;
12
+
13
+ &__header {
14
+ position: sticky;
15
+ top: 0;
16
+ margin-top: var(--base);
17
+ z-index: 1;
18
+ display: flex;
19
+ align-items: center;
20
+ justify-content: space-between;
21
+ width: 100%;
22
+ background: var(--theme-bg);
23
+ flex-wrap: wrap;
24
+
25
+ p {
26
+ margin: 0;
27
+ }
28
+ }
29
+
30
+ &__headerTopRow {
31
+ display: flex;
32
+ align-items: center;
33
+ justify-content: space-between;
34
+ gap: var(--base);
35
+ width: 100%;
36
+ padding-block: var(--base);
37
+ padding-inline: var(--file-gutter-h);
38
+ }
39
+
40
+ &__header__text {
41
+ display: flex;
42
+ flex-direction: column;
43
+
44
+ .error-pill {
45
+ align-self: flex-start;
46
+ }
47
+ }
48
+
49
+ &__filesContainer {
50
+ display: flex;
51
+ flex-direction: column;
52
+ gap: calc(var(--base) / 4);
53
+ margin-top: calc(var(--base) / 2);
54
+ width: 100%;
55
+ padding-inline: var(--file-gutter-h);
56
+ }
57
+
58
+ &__fileRowContainer {
59
+ --rowPadding: calc(var(--base) / 4);
60
+ position: relative;
61
+ &:last-child {
62
+ margin-bottom: calc(var(--base) / 4);
63
+ }
64
+ }
65
+
66
+ &__fileRow {
67
+ @include btn-reset;
68
+ display: flex;
69
+ padding: var(--rowPadding);
70
+ align-items: center;
71
+ gap: calc(var(--base) / 2);
72
+ border-radius: var(--style-radius-m);
73
+ max-width: 100%;
74
+ cursor: pointer;
75
+ width: 100%;
76
+
77
+ &:hover {
78
+ background-color: var(--theme-elevation-100);
79
+ }
80
+
81
+ img {
82
+ width: 25px;
83
+ height: 25px;
84
+ flex-shrink: 0;
85
+ object-fit: cover;
86
+ border-radius: var(--style-radius-m);
87
+ }
88
+
89
+ p {
90
+ margin: 0;
91
+ }
92
+ }
93
+
94
+ &__fileDetails {
95
+ display: flex;
96
+ flex-direction: column;
97
+ min-width: 0;
98
+ }
99
+
100
+ &__fileRowContainer--active {
101
+ .file-selections__fileRow {
102
+ background-color: var(--theme-elevation-100);
103
+ }
104
+
105
+ .file-selections__remove {
106
+ .icon--x {
107
+ opacity: 1;
108
+ }
109
+ }
110
+ }
111
+
112
+ &__fileRowContainer--error {
113
+ .file-selections__fileRow {
114
+ background-color: var(--theme-error-100);
115
+ }
116
+
117
+ &.file-selections__fileRowContainer--active .file-selections__fileRow,
118
+ .file-selections__fileRow:hover {
119
+ background-color: var(--theme-error-200);
120
+ }
121
+
122
+ .file-selections__remove--overlay:hover {
123
+ background-color: var(--theme-error-50);
124
+
125
+ .icon--x {
126
+ opacity: 1;
127
+ }
128
+ }
129
+ }
130
+
131
+ &__errorCount {
132
+ margin-left: auto;
133
+ position: absolute;
134
+ transform: translate(50%, -50%);
135
+ top: 0;
136
+ right: 0;
137
+ }
138
+
139
+ &__fileName {
140
+ white-space: nowrap;
141
+ overflow: hidden;
142
+ text-overflow: ellipsis;
143
+ }
144
+
145
+ &__fileSize {
146
+ font-size: calc(var(--base) / 2);
147
+ color: var(--theme-elvation-400);
148
+ flex-shrink: 0;
149
+ }
150
+
151
+ &__remove {
152
+ @include btn-reset;
153
+ margin: 0;
154
+ margin-left: auto;
155
+
156
+ .icon--x {
157
+ opacity: 0.75;
158
+ }
159
+ }
160
+
161
+ &__remove--underlay {
162
+ pointer-events: none;
163
+ opacity: 0;
164
+ }
165
+
166
+ &__remove--overlay {
167
+ position: absolute;
168
+ transform: translateY(-50%);
169
+ top: 50%;
170
+ bottom: 50%;
171
+ right: var(--rowPadding);
172
+ height: 20px;
173
+ border-radius: var(--style-radius-m);
174
+ cursor: pointer;
175
+
176
+ &:hover {
177
+ background-color: var(--theme-elevation-200);
178
+ }
179
+ }
180
+
181
+ &__header__actions {
182
+ display: flex;
183
+ gap: var(--base);
184
+ }
185
+
186
+ &__toggler {
187
+ display: none;
188
+ margin: 0;
189
+ padding-block: 0;
190
+ }
191
+
192
+ &__header__mobileDocActions {
193
+ display: none;
194
+ }
195
+
196
+ &__animateWrapper {
197
+ overflow: auto;
198
+ }
199
+
200
+ &__mobileBlur {
201
+ @include blur-bg;
202
+ position: fixed;
203
+ top: 0;
204
+ left: 0;
205
+ width: 100%;
206
+ height: 100%;
207
+ opacity: 0;
208
+ transition: opacity 100ms cubic-bezier(0, 0.2, 0.2, 1);
209
+
210
+ }
211
+
212
+ &__showingFiles {
213
+ .file-selections__mobileBlur {
214
+ opacity: 1;
215
+ }
216
+ }
217
+
218
+ @include mid-break {
219
+ --file-gutter-h: var(--gutter-h);
220
+ flex-direction: column-reverse;
221
+ width: 100%;
222
+ position: sticky;
223
+ bottom: 0;
224
+ flex-shrink: 0;
225
+
226
+ &__showingFiles {
227
+ z-index: 2;
228
+ }
229
+
230
+ &__filesContainer {
231
+ @include blur-bg;
232
+ }
233
+
234
+ &__fileRowContainer {
235
+ z-index: 1;
236
+ }
237
+
238
+ &__header {
239
+ margin-top: 0;
240
+ }
241
+
242
+ &__headerTopRow {
243
+ border-top: 1px solid var(--theme-border-color);
244
+ padding-block: calc(var(--base) * 0.8);
245
+ }
246
+
247
+ &__header__mobileDocActions {
248
+ position: relative;
249
+ display: flex;
250
+ width: 100%;
251
+ padding-block: calc(var(--base) * 0.8);
252
+ padding-inline: var(--file-gutter-h);
253
+ border-top: 1px solid var(--theme-border-color);
254
+
255
+ > div {
256
+ display: flex;
257
+ justify-content: flex-end;
258
+ width: 100%;
259
+ button {
260
+ flex: .5;
261
+ }
262
+ }
263
+ }
264
+
265
+ &__toggler {
266
+ padding-right: 0;
267
+ display: block;
268
+ }
269
+
270
+ .btn {
271
+ margin: 0;
272
+ }
273
+ }
274
+
275
+ }
@@ -0,0 +1,3 @@
1
+ import type { FormState } from 'payload';
2
+ export declare function createFormData(formState?: FormState, overrides?: Record<string, any>): FormData;
3
+ //# sourceMappingURL=createFormData.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFormData.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/createFormData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AAKxC,wBAAgB,cAAc,CAAC,SAAS,GAAE,SAAc,EAAE,SAAS,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,YAmB5F"}
@@ -0,0 +1,22 @@
1
+ import { serialize } from 'object-to-formdata';
2
+ import { reduceFieldsToValues } from 'payload/shared';
3
+ export function createFormData(formState = {}, overrides = {}) {
4
+ const data = reduceFieldsToValues(formState, true);
5
+ const file = data?.file;
6
+ if (file) {
7
+ delete data.file;
8
+ }
9
+ const dataWithOverrides = {
10
+ ...data,
11
+ ...overrides
12
+ };
13
+ const dataToSerialize = {
14
+ _payload: JSON.stringify(dataWithOverrides),
15
+ file
16
+ };
17
+ return serialize(dataToSerialize, {
18
+ indices: true,
19
+ nullsAsUndefineds: false
20
+ });
21
+ }
22
+ //# sourceMappingURL=createFormData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFormData.js","names":["serialize","reduceFieldsToValues","createFormData","formState","overrides","data","file","dataWithOverrides","dataToSerialize","_payload","JSON","stringify","indices","nullsAsUndefineds"],"sources":["../../../../src/elements/BulkUpload/FormsManager/createFormData.ts"],"sourcesContent":["import type { FormState } from 'payload'\n\nimport { serialize } from 'object-to-formdata'\nimport { reduceFieldsToValues } from 'payload/shared'\n\nexport function createFormData(formState: FormState = {}, overrides: Record<string, any> = {}) {\n const data = reduceFieldsToValues(formState, true)\n const file = data?.file\n\n if (file) {\n delete data.file\n }\n\n const dataWithOverrides = {\n ...data,\n ...overrides,\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(dataWithOverrides),\n file,\n }\n\n return serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n}\n"],"mappings":"AAEA,SAASA,SAAS,QAAQ;AAC1B,SAASC,oBAAoB,QAAQ;AAErC,OAAO,SAASC,eAAeC,SAAA,GAAuB,CAAC,CAAC,EAAEC,SAAA,GAAiC,CAAC,CAAC;EAC3F,MAAMC,IAAA,GAAOJ,oBAAA,CAAqBE,SAAA,EAAW;EAC7C,MAAMG,IAAA,GAAOD,IAAA,EAAMC,IAAA;EAEnB,IAAIA,IAAA,EAAM;IACR,OAAOD,IAAA,CAAKC,IAAI;EAClB;EAEA,MAAMC,iBAAA,GAAoB;IACxB,GAAGF,IAAI;IACP,GAAGD;EACL;EAEA,MAAMI,eAAA,GAAkB;IACtBC,QAAA,EAAUC,IAAA,CAAKC,SAAS,CAACJ,iBAAA;IACzBD;EACF;EAEA,OAAON,SAAA,CAAUQ,eAAA,EAAiB;IAAEI,OAAA,EAAS;IAAMC,iBAAA,EAAmB;EAAM;AAC9E","ignoreList":[]}
@@ -0,0 +1,35 @@
1
+ import type { Data, DocumentPermissions } from 'payload';
2
+ import React from 'react';
3
+ import type { BulkUploadProps } from '../index.js';
4
+ import type { State } from './reducer.js';
5
+ type FormsManagerContext = {
6
+ readonly activeIndex: State['activeIndex'];
7
+ readonly addFiles: (filelist: FileList) => void;
8
+ readonly collectionSlug: string;
9
+ readonly docPermissions?: DocumentPermissions;
10
+ readonly forms: State['forms'];
11
+ getFormDataRef: React.RefObject<() => Data>;
12
+ readonly hasPublishPermission: boolean;
13
+ readonly hasSavePermission: boolean;
14
+ readonly hasSubmitted: boolean;
15
+ readonly isLoadingFiles: boolean;
16
+ readonly removeFile: (index: number) => void;
17
+ readonly saveAllDocs: ({ overrides }?: {
18
+ overrides?: Record<string, unknown>;
19
+ }) => Promise<void>;
20
+ readonly setActiveIndex: (index: number) => void;
21
+ readonly setFormTotalErrorCount: ({ errorCount, index, }: {
22
+ errorCount: number;
23
+ index: number;
24
+ }) => void;
25
+ readonly totalErrorCount?: number;
26
+ };
27
+ type Props = {
28
+ readonly children: React.ReactNode;
29
+ readonly collectionSlug: string;
30
+ readonly onSuccess: BulkUploadProps['onSuccess'];
31
+ };
32
+ export declare function FormsManagerProvider({ children, collectionSlug, onSuccess }: Props): React.JSX.Element;
33
+ export declare function useFormsManager(): FormsManagerContext;
34
+ export {};
35
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/BulkUpload/FormsManager/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAa,MAAM,SAAS,CAAA;AAInE,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAClD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AAazC,KAAK,mBAAmB,GAAG;IACzB,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,CAAA;IAC1C,QAAQ,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAA;IAC/C,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,cAAc,CAAC,EAAE,mBAAmB,CAAA;IAC7C,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IAC9B,cAAc,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAA;IAC3C,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAA;IACnC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAA;IAC9B,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAChG,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;IAChD,QAAQ,CAAC,sBAAsB,EAAE,CAAC,EAChC,UAAU,EACV,KAAK,GACN,EAAE;QACD,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,MAAM,CAAA;KACd,KAAK,IAAI,CAAA;IACV,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;AA0BD,KAAK,KAAK,GAAG;IACX,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IAClC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;CACjD,CAAA;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,KAAK,qBA2RlF;AAED,wBAAgB,eAAe,wBAE9B"}