@veritone-ce/design-system 2.7.6 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/cjs/FileUploader/controlled.js +310 -0
  2. package/dist/cjs/FileUploader/styles.module.scss.js +1 -1
  3. package/dist/cjs/index.js +8 -8
  4. package/dist/cjs/styles.css +1 -1
  5. package/dist/cjs/unstable/LinearProgress/index.js +41 -0
  6. package/dist/cjs/unstable/LinearProgress/styles.module.scss.js +7 -0
  7. package/dist/cjs/unstable/extras/forms/index.js +4 -0
  8. package/dist/cjs/unstable/extras/forms/select.js +36 -30
  9. package/dist/cjs/unstable/extras/forms/upload.js +103 -0
  10. package/dist/cjs/unstable/index.js +11 -9
  11. package/dist/esm/FileUploader/controlled.js +304 -0
  12. package/dist/esm/FileUploader/styles.module.scss.js +1 -1
  13. package/dist/esm/index.js +1 -1
  14. package/dist/esm/styles.css +1 -1
  15. package/dist/esm/unstable/LinearProgress/index.js +37 -0
  16. package/dist/esm/unstable/LinearProgress/styles.module.scss.js +3 -0
  17. package/dist/esm/unstable/extras/forms/index.js +2 -1
  18. package/dist/esm/unstable/extras/forms/select.js +36 -31
  19. package/dist/esm/unstable/extras/forms/upload.js +100 -0
  20. package/dist/esm/unstable/index.js +1 -0
  21. package/dist/types/FileUploader/controlled.d.ts +59 -0
  22. package/dist/types/FileUploader/index.d.ts +1 -1
  23. package/dist/types/Table/AutoTable/common.d.ts +1 -1
  24. package/dist/types/Table/AutoTable/index.d.ts +1 -1
  25. package/dist/types/extras/uploady/uploady.d.ts +30 -0
  26. package/dist/types/unstable/LinearProgress/index.d.ts +14 -0
  27. package/dist/types/unstable/extras/forms/button.d.ts +3 -3
  28. package/dist/types/unstable/extras/forms/checkbox.d.ts +2 -2
  29. package/dist/types/unstable/extras/forms/index.d.ts +1 -0
  30. package/dist/types/unstable/extras/forms/input.d.ts +2 -2
  31. package/dist/types/unstable/extras/forms/select.d.ts +6 -3
  32. package/dist/types/unstable/extras/forms/shared.d.ts +4 -4
  33. package/dist/types/unstable/extras/forms/textarea.d.ts +2 -2
  34. package/dist/types/unstable/extras/forms/upload.d.ts +13 -0
  35. package/dist/types/unstable/index.d.ts +2 -0
  36. package/package.json +8 -5
  37. package/dist/cjs/FileUploader/components.js +0 -262
  38. package/dist/esm/FileUploader/components.js +0 -256
  39. package/dist/types/FileUploader/components.d.ts +0 -41
@@ -0,0 +1,310 @@
1
+ 'use strict';
2
+ 'use client';
3
+ 'use strict';
4
+
5
+ var jsxRuntime = require('react/jsx-runtime');
6
+ var React = require('react');
7
+ var iconsMaterial = require('@mui/icons-material');
8
+ var reactDropzone = require('react-dropzone');
9
+ var cx = require('../styles/cx.js');
10
+ require('../styles/defaultThemeOptions.js');
11
+ require('@capsizecss/core');
12
+ require('color2k');
13
+ var defaultTheme = require('../styles/defaultTheme.js');
14
+ require('../styles/provider.client.js');
15
+ require('../styles/css-vars.js');
16
+ var index = require('../Typography/index.js');
17
+ var index$2 = require('../IconButton/index.js');
18
+ var wrappers = require('../Icon/wrappers.js');
19
+ require('../Icon/factory.js');
20
+ var styles_module = require('./styles.module.scss.js');
21
+ var index$1 = require('../unstable/LinearProgress/index.js');
22
+
23
+ const CloudUploadOutlinedIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.CloudUploadOutlined);
24
+ const DeleteOutlineIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.DeleteOutline);
25
+ const CheckOutlineIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.CheckOutlined);
26
+ const WarningOutlineIcon = wrappers.adaptMuiSvgIcon(iconsMaterial.WarningOutlined);
27
+ var FILE_STATES = /* @__PURE__ */ ((FILE_STATES2) => {
28
+ FILE_STATES2["PENDING"] = "pending";
29
+ FILE_STATES2["ADDED"] = "added";
30
+ FILE_STATES2["UPLOADING"] = "uploading";
31
+ FILE_STATES2["CANCELLED"] = "cancelled";
32
+ FILE_STATES2["FINISHED"] = "finished";
33
+ FILE_STATES2["ERROR"] = "error";
34
+ FILE_STATES2["ABORTED"] = "aborted";
35
+ return FILE_STATES2;
36
+ })(FILE_STATES || {});
37
+ function resolveFileState(state) {
38
+ if (state === void 0 || state === null) {
39
+ return "added" /* ADDED */;
40
+ }
41
+ if (typeof state === "string") {
42
+ switch (state) {
43
+ case "idle":
44
+ return "added" /* ADDED */;
45
+ case "pending":
46
+ return "pending" /* PENDING */;
47
+ case "success":
48
+ return "finished" /* FINISHED */;
49
+ case "error":
50
+ return "error" /* ERROR */;
51
+ default:
52
+ return state;
53
+ }
54
+ } else {
55
+ if (state.error) {
56
+ return "error" /* ERROR */;
57
+ }
58
+ if (state.loading) {
59
+ return "uploading" /* UPLOADING */;
60
+ }
61
+ if (state.called) {
62
+ return "finished" /* FINISHED */;
63
+ }
64
+ return "added" /* ADDED */;
65
+ }
66
+ }
67
+ function resolveFileStates(fileStates) {
68
+ if (fileStates === void 0 || fileStates === null || fileStates.length === 0) {
69
+ return ["added" /* ADDED */, 0];
70
+ }
71
+ let somePending = false;
72
+ let someUploading = false;
73
+ let allAreFinished = true;
74
+ let complete = 0;
75
+ const formatReturn = (state) => {
76
+ return [state, complete / fileStates.length * 100];
77
+ };
78
+ for (const fileState of fileStates) {
79
+ if (fileState === "finished" /* FINISHED */) {
80
+ complete++;
81
+ continue;
82
+ }
83
+ allAreFinished = false;
84
+ switch (fileState) {
85
+ case "pending" /* PENDING */:
86
+ somePending = true;
87
+ break;
88
+ case "uploading" /* UPLOADING */:
89
+ someUploading = true;
90
+ break;
91
+ case "cancelled" /* CANCELLED */:
92
+ return formatReturn("cancelled" /* CANCELLED */);
93
+ case "error" /* ERROR */:
94
+ complete++;
95
+ return formatReturn("error" /* ERROR */);
96
+ case "aborted" /* ABORTED */:
97
+ return formatReturn("aborted" /* ABORTED */);
98
+ }
99
+ }
100
+ if (allAreFinished) {
101
+ return formatReturn("finished" /* FINISHED */);
102
+ }
103
+ if (someUploading) {
104
+ return formatReturn("uploading" /* UPLOADING */);
105
+ }
106
+ if (somePending) {
107
+ return formatReturn("pending" /* PENDING */);
108
+ }
109
+ return formatReturn("added" /* ADDED */);
110
+ }
111
+ function UploadDropzone({
112
+ accept,
113
+ multiple,
114
+ disabled = false,
115
+ mini,
116
+ state: propsState,
117
+ onDrop,
118
+ className,
119
+ ...containerProps
120
+ }) {
121
+ const [state, progress] = React.useMemo(
122
+ () => resolveFileStates(
123
+ Array.isArray(propsState) ? propsState.map((s) => resolveFileState(s)) : [resolveFileState(propsState)]
124
+ ),
125
+ [propsState]
126
+ );
127
+ const { getRootProps, getInputProps } = reactDropzone.useDropzone({
128
+ disabled,
129
+ multiple,
130
+ accept,
131
+ onDrop: (files, fileRejections, event) => {
132
+ onDrop(files, fileRejections, event);
133
+ }
134
+ });
135
+ return /* @__PURE__ */ jsxRuntime.jsxs(
136
+ "div",
137
+ {
138
+ ...getRootProps(),
139
+ "data-testid": "dropzone",
140
+ ...containerProps,
141
+ "data-disabled": disabled,
142
+ "data-mini": mini,
143
+ className: cx.cx(styles_module.default.dropzone, className),
144
+ children: [
145
+ /* @__PURE__ */ jsxRuntime.jsx("input", { type: "file", className: styles_module.default.input, ...getInputProps() }),
146
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: styles_module.default.uploadIconContainer, children: [
147
+ state === "error" /* ERROR */ ? /* @__PURE__ */ jsxRuntime.jsx(WarningOutlineIcon, { className: styles_module.default.icon }) : state === "finished" /* FINISHED */ ? /* @__PURE__ */ jsxRuntime.jsx(CheckOutlineIcon, { className: styles_module.default.icon }) : /* @__PURE__ */ jsxRuntime.jsx(CloudUploadOutlinedIcon, { className: styles_module.default.icon }),
148
+ /* @__PURE__ */ jsxRuntime.jsxs(
149
+ "svg",
150
+ {
151
+ viewBox: "0 0 250 250",
152
+ className: styles_module.default.uploadProgress,
153
+ style: {
154
+ ...{
155
+ "--vt-ce-uploader-progress": progress,
156
+ // FIXME
157
+ "--vt-ce-uploader-error": state === "error" /* ERROR */
158
+ }
159
+ },
160
+ children: [
161
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { className: styles_module.default.uploadProgressBg }),
162
+ progress > 0 && /* @__PURE__ */ jsxRuntime.jsx(
163
+ "circle",
164
+ {
165
+ "data-success": state === "finished" /* FINISHED */,
166
+ "data-error": state === "error" /* ERROR */,
167
+ className: styles_module.default.uploadProgressFg
168
+ }
169
+ )
170
+ ]
171
+ }
172
+ )
173
+ ] }),
174
+ !mini && /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
175
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
176
+ /* @__PURE__ */ jsxRuntime.jsx(
177
+ index.default,
178
+ {
179
+ as: "span",
180
+ variant: "paragraph2",
181
+ className: styles_module.default.browseLabel,
182
+ children: "Browse files"
183
+ }
184
+ ),
185
+ /* @__PURE__ */ jsxRuntime.jsxs(index.default, { as: "span", variant: "paragraph2", children: [
186
+ " ",
187
+ "from your computer or drag and drop here"
188
+ ] })
189
+ ] }),
190
+ /* @__PURE__ */ jsxRuntime.jsxs(
191
+ index.default,
192
+ {
193
+ as: "p",
194
+ variant: "paragraph3",
195
+ className: styles_module.default.fileFormatLabel,
196
+ children: [
197
+ "Supported File Formats: ",
198
+ Object.values(accept).flat().join(", ")
199
+ ]
200
+ }
201
+ )
202
+ ] })
203
+ ]
204
+ }
205
+ );
206
+ }
207
+ function UploadListContainer({
208
+ className,
209
+ children,
210
+ ...props
211
+ }) {
212
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ...props, className: cx.cx(styles_module.default.uploadsContainer, className), children: /* @__PURE__ */ jsxRuntime.jsx("table", { className: styles_module.default.uploads, children: /* @__PURE__ */ jsxRuntime.jsx("tbody", { children }) }) });
213
+ }
214
+ function UploadList({
215
+ items,
216
+ onAbort,
217
+ ...containerProps
218
+ }) {
219
+ return /* @__PURE__ */ jsxRuntime.jsx(UploadListContainer, { ...containerProps, children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
220
+ UploadListItem,
221
+ {
222
+ item,
223
+ onAbort: onAbort && ((e) => {
224
+ onAbort(item, e);
225
+ })
226
+ },
227
+ index
228
+ )) });
229
+ }
230
+ function UploadListItem({
231
+ item,
232
+ onAbort
233
+ }) {
234
+ const state = React.useMemo(() => resolveFileState(item.state), [item.state]);
235
+ const isAborted = state === "aborted" /* ABORTED */;
236
+ const isSuccess = state === "finished" /* FINISHED */;
237
+ const isError = state === "error" /* ERROR */;
238
+ const isFinished = !["pending" /* PENDING */, "uploading" /* UPLOADING */].includes(
239
+ state
240
+ );
241
+ const progress = React.useMemo(() => {
242
+ if (item.progress !== void 0) {
243
+ return item.progress;
244
+ }
245
+ switch (state) {
246
+ case "added" /* ADDED */:
247
+ return 0;
248
+ case "pending" /* PENDING */:
249
+ return 0;
250
+ case "error" /* ERROR */:
251
+ return 100;
252
+ case "finished" /* FINISHED */:
253
+ return 100;
254
+ }
255
+ return 0;
256
+ }, [item.progress, state]);
257
+ return /* @__PURE__ */ jsxRuntime.jsxs("tr", { "data-testid": "file-item", className: styles_module.default.lineItem, children: [
258
+ /* @__PURE__ */ jsxRuntime.jsxs("td", { children: [
259
+ /* @__PURE__ */ jsxRuntime.jsx(index.default, { as: "p", variant: "label", className: styles_module.default.label, children: item.file.name }),
260
+ /* @__PURE__ */ jsxRuntime.jsx(
261
+ index$1.default,
262
+ {
263
+ value: progress,
264
+ variant: state === "uploading" /* UPLOADING */ ? "indeterminate" : "determinate",
265
+ color: (isSuccess ? defaultTheme.defaultThemeCssVariableUsages.palette.indicator.success.base : isError ? defaultTheme.defaultThemeCssVariableUsages.palette.indicator.error.base : defaultTheme.defaultThemeCssVariableUsages.palette.action.primary.base).surface
266
+ }
267
+ ),
268
+ isError && /* @__PURE__ */ jsxRuntime.jsx(
269
+ index.default,
270
+ {
271
+ as: "p",
272
+ variant: "paragraph3",
273
+ className: styles_module.default.feedbackText,
274
+ children: "An error occurred."
275
+ }
276
+ )
277
+ ] }),
278
+ /* @__PURE__ */ jsxRuntime.jsx("td", { className: styles_module.default.deleteBtn, children: isFinished ? isSuccess ? /* @__PURE__ */ jsxRuntime.jsx(
279
+ index$2.default,
280
+ {
281
+ "data-testid": "file-item-success-button",
282
+ "aria-label": "success",
283
+ disabled: true,
284
+ children: /* @__PURE__ */ jsxRuntime.jsx(CheckOutlineIcon, {})
285
+ }
286
+ ) : isError ? /* @__PURE__ */ jsxRuntime.jsx(
287
+ index$2.default,
288
+ {
289
+ "data-testid": "file-item-error-button",
290
+ "aria-label": "error",
291
+ disabled: true,
292
+ children: /* @__PURE__ */ jsxRuntime.jsx(WarningOutlineIcon, {})
293
+ }
294
+ ) : !isAborted && onAbort !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(
295
+ index$2.default,
296
+ {
297
+ "data-testid": "file-item-delete-button",
298
+ "aria-label": "delete",
299
+ onClick: onAbort,
300
+ children: /* @__PURE__ */ jsxRuntime.jsx(DeleteOutlineIcon, {})
301
+ }
302
+ ) : null : null })
303
+ ] });
304
+ }
305
+
306
+ exports.FILE_STATES = FILE_STATES;
307
+ exports.UploadDropzone = UploadDropzone;
308
+ exports.UploadList = UploadList;
309
+ exports.UploadListContainer = UploadListContainer;
310
+ exports.UploadListItem = UploadListItem;
@@ -2,6 +2,6 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var styles = {"dropzone":"vt_ce_FileUploader_dropzone__67a7b572","browseLabel":"vt_ce_FileUploader_browseLabel__6ff61262","input":"vt_ce_FileUploader_input__bc9e7afd","fileFormatLabel":"vt_ce_FileUploader_fileFormatLabel__9046e635","uploadIconContainer":"vt_ce_FileUploader_uploadIconContainer__c1ade8fa","icon":"vt_ce_FileUploader_icon__b16f9b3b","uploadProgress":"vt_ce_FileUploader_uploadProgress__550e3a26","uploadProgressBg":"vt_ce_FileUploader_uploadProgressBg__1c53c2dc","uploadProgressFg":"vt_ce_FileUploader_uploadProgressFg__e908d658","uploadsContainer":"vt_ce_FileUploader_uploadsContainer__0b908e6a","uploads":"vt_ce_FileUploader_uploads__4eaf83ba","lineItem":"vt_ce_FileUploader_lineItem__49e6d4e7","deleteBtn":"vt_ce_FileUploader_deleteBtn__3bd64874","label":"vt_ce_FileUploader_label__f468b603","progressBar":"vt_ce_FileUploader_progressBar__b72a1bf8","feedbackText":"vt_ce_FileUploader_feedbackText__dac0b241"};
5
+ var styles = {"dropzone":"vt_ce_FileUploader_dropzone__67a7b572","browseLabel":"vt_ce_FileUploader_browseLabel__6ff61262","input":"vt_ce_FileUploader_input__bc9e7afd","fileFormatLabel":"vt_ce_FileUploader_fileFormatLabel__9046e635","uploadIconContainer":"vt_ce_FileUploader_uploadIconContainer__c1ade8fa","icon":"vt_ce_FileUploader_icon__b16f9b3b","uploadProgress":"vt_ce_FileUploader_uploadProgress__550e3a26","uploadProgressBg":"vt_ce_FileUploader_uploadProgressBg__1c53c2dc","uploadProgressFg":"vt_ce_FileUploader_uploadProgressFg__e908d658","uploadsContainer":"vt_ce_FileUploader_uploadsContainer__0b908e6a","uploads":"vt_ce_FileUploader_uploads__4eaf83ba","lineItem":"vt_ce_FileUploader_lineItem__49e6d4e7","deleteBtn":"vt_ce_FileUploader_deleteBtn__3bd64874","label":"vt_ce_FileUploader_label__f468b603","feedbackText":"vt_ce_FileUploader_feedbackText__dac0b241"};
6
6
 
7
7
  exports.default = styles;
package/dist/cjs/index.js CHANGED
@@ -27,7 +27,7 @@ var factory = require('./Dialog/factory.js');
27
27
  var components$1 = require('./Drawer/components.js');
28
28
  var factory$1 = require('./Drawer/factory.js');
29
29
  var index$8 = require('./ErrorBoundary/index.js');
30
- var components$2 = require('./FileUploader/components.js');
30
+ var controlled$1 = require('./FileUploader/controlled.js');
31
31
  var index$9 = require('./FormControl/index.js');
32
32
  var wrappers = require('./Icon/wrappers.js');
33
33
  var factory$2 = require('./Icon/factory.js');
@@ -37,7 +37,7 @@ var controlled = require('./Menu/controlled.js');
37
37
  var factory$3 = require('./Menu/factory.js');
38
38
  var index$c = require('./Pagination/index.js');
39
39
  var index$d = require('./RadioButton/index.js');
40
- var controlled$1 = require('./Select/controlled.js');
40
+ var controlled$2 = require('./Select/controlled.js');
41
41
  var uncontrolled = require('./Select/uncontrolled.js');
42
42
  var factory$4 = require('./Select/factory.js');
43
43
  var index$e = require('./StatusChip/index.js');
@@ -110,11 +110,11 @@ exports.DrawerTitle = components$1.DrawerTitle;
110
110
  exports.DrawerTypography = components$1.DrawerTypography;
111
111
  exports.createDrawerComponent = factory$1.createDrawerComponent;
112
112
  exports.ErrorBoundary = index$8.default;
113
- exports.UploadButton = components$2.UploadButton;
114
- exports.UploadDropzone = components$2.UploadDropzone;
115
- exports.UploadList = components$2.UploadList;
116
- exports.UploadListItem = components$2.UploadListItem;
117
- exports.useUploadStatus = components$2.useUploadStatus;
113
+ exports.FILE_STATES = controlled$1.FILE_STATES;
114
+ exports.UploadDropzone = controlled$1.UploadDropzone;
115
+ exports.UploadList = controlled$1.UploadList;
116
+ exports.UploadListContainer = controlled$1.UploadListContainer;
117
+ exports.UploadListItem = controlled$1.UploadListItem;
118
118
  exports.FormControl = index$9.default;
119
119
  exports.adaptMuiSvgIcon = wrappers.adaptMuiSvgIcon;
120
120
  exports.adaptSvgIcon = wrappers.adaptSvgIcon;
@@ -128,7 +128,7 @@ exports.NestedMenu = controlled.NestedMenu;
128
128
  exports.createMenuComponent = factory$3.createMenuComponent;
129
129
  exports.Pagination = index$c.default;
130
130
  exports.RadioButton = index$d.default;
131
- exports.ControlledSelect = controlled$1.default;
131
+ exports.ControlledSelect = controlled$2.default;
132
132
  exports.Select = uncontrolled.default;
133
133
  exports.createControlledSelectComponent = factory$4.createControlledSelectComponent;
134
134
  exports.createSelectComponent = factory$4.createSelectComponent;