@faststore/components 3.98.0-dev.1 → 3.98.0-dev.8

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 (198) hide show
  1. package/dist/cjs/atoms/Link/Link.d.ts +1 -1
  2. package/dist/cjs/atoms/Link/Link.d.ts.map +1 -1
  3. package/dist/cjs/atoms/Link/Link.js.map +1 -1
  4. package/dist/cjs/atoms/List/List.d.ts.map +1 -1
  5. package/dist/cjs/atoms/List/List.js.map +1 -1
  6. package/dist/cjs/hooks/index.d.ts +7 -3
  7. package/dist/cjs/hooks/index.d.ts.map +1 -1
  8. package/dist/cjs/hooks/index.js +12 -6
  9. package/dist/cjs/hooks/index.js.map +1 -1
  10. package/dist/cjs/hooks/useCSVParser.d.ts +43 -0
  11. package/dist/cjs/hooks/useCSVParser.d.ts.map +1 -0
  12. package/dist/cjs/hooks/useCSVParser.js +264 -0
  13. package/dist/cjs/hooks/useCSVParser.js.map +1 -0
  14. package/dist/cjs/hooks/useFileUpload.d.ts +26 -0
  15. package/dist/cjs/hooks/useFileUpload.d.ts.map +1 -0
  16. package/dist/cjs/hooks/useFileUpload.js +68 -0
  17. package/dist/cjs/hooks/useFileUpload.js.map +1 -0
  18. package/dist/cjs/index.d.ts +58 -50
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/index.js +47 -32
  21. package/dist/cjs/index.js.map +1 -1
  22. package/dist/cjs/molecules/Accordion/AccordionItem.d.ts.map +1 -1
  23. package/dist/cjs/molecules/Accordion/AccordionItem.js.map +1 -1
  24. package/dist/cjs/molecules/Dropzone/Dropzone.d.ts +87 -0
  25. package/dist/cjs/molecules/Dropzone/Dropzone.d.ts.map +1 -0
  26. package/dist/cjs/molecules/Dropzone/Dropzone.js +85 -0
  27. package/dist/cjs/molecules/Dropzone/Dropzone.js.map +1 -0
  28. package/dist/cjs/molecules/Dropzone/index.d.ts +3 -0
  29. package/dist/cjs/molecules/Dropzone/index.d.ts.map +1 -0
  30. package/dist/cjs/molecules/Dropzone/index.js +9 -0
  31. package/dist/cjs/molecules/Dropzone/index.js.map +1 -0
  32. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.d.ts +113 -0
  33. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -0
  34. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.js +169 -0
  35. package/dist/cjs/molecules/FileUploadCard/FileUploadCard.js.map +1 -0
  36. package/dist/cjs/molecules/FileUploadCard/index.d.ts +3 -0
  37. package/dist/cjs/molecules/FileUploadCard/index.d.ts.map +1 -0
  38. package/dist/cjs/molecules/FileUploadCard/index.js +9 -0
  39. package/dist/cjs/molecules/FileUploadCard/index.js.map +1 -0
  40. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.d.ts +93 -0
  41. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -0
  42. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.js +77 -0
  43. package/dist/cjs/molecules/FileUploadStatus/FileUploadStatus.js.map +1 -0
  44. package/dist/cjs/molecules/FileUploadStatus/index.d.ts +3 -0
  45. package/dist/cjs/molecules/FileUploadStatus/index.d.ts.map +1 -0
  46. package/dist/cjs/molecules/FileUploadStatus/index.js +11 -0
  47. package/dist/cjs/molecules/FileUploadStatus/index.js.map +1 -0
  48. package/dist/cjs/molecules/SearchInputField/SearchInputField.d.ts +23 -1
  49. package/dist/cjs/molecules/SearchInputField/SearchInputField.d.ts.map +1 -1
  50. package/dist/cjs/molecules/SearchInputField/SearchInputField.js +9 -4
  51. package/dist/cjs/molecules/SearchInputField/SearchInputField.js.map +1 -1
  52. package/dist/cjs/molecules/SearchProducts/SearchProductItem.d.ts +1 -1
  53. package/dist/cjs/molecules/SearchProducts/SearchProductItem.d.ts.map +1 -1
  54. package/dist/cjs/molecules/SearchProducts/SearchProductItem.js +2 -2
  55. package/dist/cjs/molecules/SearchProducts/SearchProductItem.js.map +1 -1
  56. package/dist/cjs/molecules/SearchProvider/SearchProvider.d.ts +5 -1
  57. package/dist/cjs/molecules/SearchProvider/SearchProvider.d.ts.map +1 -1
  58. package/dist/cjs/molecules/SearchProvider/SearchProvider.js +2 -2
  59. package/dist/cjs/molecules/SearchProvider/SearchProvider.js.map +1 -1
  60. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts +24 -0
  61. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts.map +1 -0
  62. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.js +14 -0
  63. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawer.js.map +1 -0
  64. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts +16 -0
  65. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts.map +1 -0
  66. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js +37 -0
  67. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js.map +1 -0
  68. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts +9 -0
  69. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts.map +1 -0
  70. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js +24 -0
  71. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js.map +1 -0
  72. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts +35 -0
  73. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts.map +1 -0
  74. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js +91 -0
  75. package/dist/cjs/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js.map +1 -0
  76. package/dist/cjs/organisms/QuickOrderDrawer/index.d.ts +11 -0
  77. package/dist/cjs/organisms/QuickOrderDrawer/index.d.ts.map +1 -0
  78. package/dist/cjs/organisms/QuickOrderDrawer/index.js +18 -0
  79. package/dist/cjs/organisms/QuickOrderDrawer/index.js.map +1 -0
  80. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts +61 -0
  81. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts.map +1 -0
  82. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js +86 -0
  83. package/dist/cjs/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js.map +1 -0
  84. package/dist/cjs/organisms/SearchInput/SearchInput.d.ts +8 -0
  85. package/dist/cjs/organisms/SearchInput/SearchInput.d.ts.map +1 -1
  86. package/dist/cjs/organisms/SearchInput/SearchInput.js +2 -2
  87. package/dist/cjs/organisms/SearchInput/SearchInput.js.map +1 -1
  88. package/dist/esm/atoms/Link/Link.d.ts +1 -1
  89. package/dist/esm/atoms/Link/Link.d.ts.map +1 -1
  90. package/dist/esm/atoms/Link/Link.js.map +1 -1
  91. package/dist/esm/atoms/List/List.d.ts.map +1 -1
  92. package/dist/esm/atoms/List/List.js.map +1 -1
  93. package/dist/esm/hooks/index.d.ts +7 -3
  94. package/dist/esm/hooks/index.d.ts.map +1 -1
  95. package/dist/esm/hooks/index.js +6 -3
  96. package/dist/esm/hooks/index.js.map +1 -1
  97. package/dist/esm/hooks/useCSVParser.d.ts +43 -0
  98. package/dist/esm/hooks/useCSVParser.d.ts.map +1 -0
  99. package/dist/esm/hooks/useCSVParser.js +259 -0
  100. package/dist/esm/hooks/useCSVParser.js.map +1 -0
  101. package/dist/esm/hooks/useFileUpload.d.ts +26 -0
  102. package/dist/esm/hooks/useFileUpload.d.ts.map +1 -0
  103. package/dist/esm/hooks/useFileUpload.js +64 -0
  104. package/dist/esm/hooks/useFileUpload.js.map +1 -0
  105. package/dist/esm/index.d.ts +58 -50
  106. package/dist/esm/index.d.ts.map +1 -1
  107. package/dist/esm/index.js +24 -20
  108. package/dist/esm/index.js.map +1 -1
  109. package/dist/esm/molecules/Accordion/AccordionItem.d.ts.map +1 -1
  110. package/dist/esm/molecules/Accordion/AccordionItem.js.map +1 -1
  111. package/dist/esm/molecules/Dropzone/Dropzone.d.ts +87 -0
  112. package/dist/esm/molecules/Dropzone/Dropzone.d.ts.map +1 -0
  113. package/dist/esm/molecules/Dropzone/Dropzone.js +82 -0
  114. package/dist/esm/molecules/Dropzone/Dropzone.js.map +1 -0
  115. package/dist/esm/molecules/Dropzone/index.d.ts +3 -0
  116. package/dist/esm/molecules/Dropzone/index.d.ts.map +1 -0
  117. package/dist/esm/molecules/Dropzone/index.js +2 -0
  118. package/dist/esm/molecules/Dropzone/index.js.map +1 -0
  119. package/dist/esm/molecules/FileUploadCard/FileUploadCard.d.ts +113 -0
  120. package/dist/esm/molecules/FileUploadCard/FileUploadCard.d.ts.map +1 -0
  121. package/dist/esm/molecules/FileUploadCard/FileUploadCard.js +166 -0
  122. package/dist/esm/molecules/FileUploadCard/FileUploadCard.js.map +1 -0
  123. package/dist/esm/molecules/FileUploadCard/index.d.ts +3 -0
  124. package/dist/esm/molecules/FileUploadCard/index.d.ts.map +1 -0
  125. package/dist/esm/molecules/FileUploadCard/index.js +2 -0
  126. package/dist/esm/molecules/FileUploadCard/index.js.map +1 -0
  127. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.d.ts +93 -0
  128. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.d.ts.map +1 -0
  129. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.js +73 -0
  130. package/dist/esm/molecules/FileUploadStatus/FileUploadStatus.js.map +1 -0
  131. package/dist/esm/molecules/FileUploadStatus/index.d.ts +3 -0
  132. package/dist/esm/molecules/FileUploadStatus/index.d.ts.map +1 -0
  133. package/dist/esm/molecules/FileUploadStatus/index.js +2 -0
  134. package/dist/esm/molecules/FileUploadStatus/index.js.map +1 -0
  135. package/dist/esm/molecules/SearchInputField/SearchInputField.d.ts +23 -1
  136. package/dist/esm/molecules/SearchInputField/SearchInputField.d.ts.map +1 -1
  137. package/dist/esm/molecules/SearchInputField/SearchInputField.js +9 -4
  138. package/dist/esm/molecules/SearchInputField/SearchInputField.js.map +1 -1
  139. package/dist/esm/molecules/SearchProducts/SearchProductItem.d.ts +1 -1
  140. package/dist/esm/molecules/SearchProducts/SearchProductItem.d.ts.map +1 -1
  141. package/dist/esm/molecules/SearchProducts/SearchProductItem.js +2 -2
  142. package/dist/esm/molecules/SearchProducts/SearchProductItem.js.map +1 -1
  143. package/dist/esm/molecules/SearchProvider/SearchProvider.d.ts +5 -1
  144. package/dist/esm/molecules/SearchProvider/SearchProvider.d.ts.map +1 -1
  145. package/dist/esm/molecules/SearchProvider/SearchProvider.js +2 -2
  146. package/dist/esm/molecules/SearchProvider/SearchProvider.js.map +1 -1
  147. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts +24 -0
  148. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.d.ts.map +1 -0
  149. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.js +11 -0
  150. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawer.js.map +1 -0
  151. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts +16 -0
  152. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.d.ts.map +1 -0
  153. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js +34 -0
  154. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.js.map +1 -0
  155. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts +9 -0
  156. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.d.ts.map +1 -0
  157. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js +21 -0
  158. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.js.map +1 -0
  159. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts +35 -0
  160. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.d.ts.map +1 -0
  161. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js +88 -0
  162. package/dist/esm/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.js.map +1 -0
  163. package/dist/esm/organisms/QuickOrderDrawer/index.d.ts +11 -0
  164. package/dist/esm/organisms/QuickOrderDrawer/index.d.ts.map +1 -0
  165. package/dist/esm/organisms/QuickOrderDrawer/index.js +6 -0
  166. package/dist/esm/organisms/QuickOrderDrawer/index.js.map +1 -0
  167. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts +61 -0
  168. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.d.ts.map +1 -0
  169. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js +80 -0
  170. package/dist/esm/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.js.map +1 -0
  171. package/dist/esm/organisms/SearchInput/SearchInput.d.ts +8 -0
  172. package/dist/esm/organisms/SearchInput/SearchInput.d.ts.map +1 -1
  173. package/dist/esm/organisms/SearchInput/SearchInput.js +2 -2
  174. package/dist/esm/organisms/SearchInput/SearchInput.js.map +1 -1
  175. package/package.json +5 -2
  176. package/src/atoms/Link/Link.tsx +4 -1
  177. package/src/atoms/List/List.tsx +18 -16
  178. package/src/hooks/index.ts +11 -3
  179. package/src/hooks/useCSVParser.ts +367 -0
  180. package/src/hooks/useFileUpload.ts +88 -0
  181. package/src/index.ts +97 -66
  182. package/src/molecules/Accordion/AccordionItem.tsx +4 -3
  183. package/src/molecules/Dropzone/Dropzone.tsx +248 -0
  184. package/src/molecules/Dropzone/index.ts +2 -0
  185. package/src/molecules/FileUploadCard/FileUploadCard.tsx +406 -0
  186. package/src/molecules/FileUploadCard/index.tsx +2 -0
  187. package/src/molecules/FileUploadStatus/FileUploadStatus.tsx +258 -0
  188. package/src/molecules/FileUploadStatus/index.tsx +6 -0
  189. package/src/molecules/SearchInputField/SearchInputField.tsx +72 -23
  190. package/src/molecules/SearchProducts/SearchProductItem.tsx +8 -3
  191. package/src/molecules/SearchProvider/SearchProvider.tsx +6 -1
  192. package/src/organisms/QuickOrderDrawer/QuickOrderDrawer.tsx +58 -0
  193. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerFooter.tsx +72 -0
  194. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerHeader.tsx +43 -0
  195. package/src/organisms/QuickOrderDrawer/QuickOrderDrawerProducts.tsx +323 -0
  196. package/src/organisms/QuickOrderDrawer/index.ts +19 -0
  197. package/src/organisms/QuickOrderDrawer/provider/QuickOrderDrawerProvider.tsx +205 -0
  198. package/src/organisms/SearchInput/SearchInput.tsx +6 -0
@@ -0,0 +1,87 @@
1
+ import type { HTMLAttributes, ReactNode } from 'react';
2
+ import React from 'react';
3
+ import { type Accept, type FileRejection } from 'react-dropzone';
4
+ export interface DropzoneProps extends HTMLAttributes<HTMLDivElement> {
5
+ /**
6
+ * ID to find this component in testing tools (e.g.: cypress,
7
+ * testing-library, and jest).
8
+ */
9
+ testId?: string;
10
+ /**
11
+ * A React component that will be rendered as an icon.
12
+ */
13
+ icon?: ReactNode;
14
+ /**
15
+ * Callback function called when files are accepted.
16
+ */
17
+ onFilesAccepted?: (files: File[]) => void;
18
+ /**
19
+ * Callback function called when files are rejected.
20
+ */
21
+ onFilesRejected?: (fileRejections: FileRejection[]) => void;
22
+ /**
23
+ * Maximum number of files that can be selected.
24
+ */
25
+ maxFiles?: number;
26
+ /**
27
+ * Maximum file size in bytes.
28
+ */
29
+ maxSize?: number;
30
+ /**
31
+ * Minimum file size in bytes.
32
+ */
33
+ minSize?: number;
34
+ /**
35
+ * Accepted file types.
36
+ */
37
+ accept?: Accept;
38
+ /**
39
+ * Whether multiple files can be selected.
40
+ */
41
+ multiple?: boolean;
42
+ /**
43
+ * Whether the dropzone is disabled.
44
+ */
45
+ disabled?: boolean;
46
+ /**
47
+ * Custom text to display when dragging files over the dropzone.
48
+ */
49
+ dragActiveText?: string;
50
+ /**
51
+ * Custom text to display in the dropzone.
52
+ */
53
+ text?: string;
54
+ /**
55
+ * Whether to disable opening the file dialog on click.
56
+ */
57
+ noClick?: boolean;
58
+ /**
59
+ * Whether to disable opening the file dialog via keyboard.
60
+ */
61
+ noKeyboard?: boolean;
62
+ /**
63
+ * Whether to disable drag-and-drop on the drop zone.
64
+ */
65
+ noDrag?: boolean;
66
+ /**
67
+ * Custom content for the select files button.
68
+ */
69
+ selectFilesButton?: ReactNode;
70
+ /**
71
+ * Accessible label for the dropzone root element.
72
+ * When disabled, `aria-disabled` is also set so assistive tech
73
+ * can still identify the dropzone and its state.
74
+ */
75
+ ariaLabel?: string;
76
+ }
77
+ export interface DropzoneState {
78
+ acceptedFiles: File[];
79
+ fileRejections: FileRejection[];
80
+ }
81
+ export interface DropzoneState {
82
+ acceptedFiles: File[];
83
+ fileRejections: FileRejection[];
84
+ }
85
+ declare const Dropzone: React.ForwardRefExoticComponent<DropzoneProps & React.RefAttributes<HTMLDivElement>>;
86
+ export default Dropzone;
87
+ //# sourceMappingURL=Dropzone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropzone.d.ts","sourceRoot":"","sources":["../../../../src/molecules/Dropzone/Dropzone.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtD,OAAO,KAAkC,MAAM,OAAO,CAAA;AACtD,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAmB7E,MAAM,WAAW,aAAc,SAAQ,cAAc,CAAC,cAAc,CAAC;IACnE;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IACzC;;OAEG;IACH,eAAe,CAAC,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,KAAK,IAAI,CAAA;IAC3D;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;OAEG;IACH,iBAAiB,CAAC,EAAE,SAAS,CAAA;IAC7B;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,IAAI,EAAE,CAAA;IACrB,cAAc,EAAE,aAAa,EAAE,CAAA;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,IAAI,EAAE,CAAA;IACrB,cAAc,EAAE,aAAa,EAAE,CAAA;CAChC;AAED,QAAA,MAAM,QAAQ,sFA4IZ,CAAA;AAEF,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const react_dropzone_1 = require("react-dropzone");
6
+ /**
7
+ * Merges multiple refs (object refs and callback refs) into a single callback ref.
8
+ */
9
+ function mergeRefs(...refs) {
10
+ return (instance) => {
11
+ for (const ref of refs) {
12
+ if (typeof ref === 'function') {
13
+ ref(instance);
14
+ }
15
+ else if (ref && typeof ref === 'object') {
16
+ ;
17
+ ref.current = instance;
18
+ }
19
+ }
20
+ };
21
+ }
22
+ const Dropzone = (0, react_1.forwardRef)(function Dropzone({ icon, testId = 'fs-dropzone', children, onFilesAccepted, onFilesRejected, maxFiles = 0, maxSize, minSize, accept, multiple = true, disabled = false, dragActiveText, text, noClick = false, noKeyboard = false, noDrag = false, selectFilesButton = null, ariaLabel, ...otherProps }, ref) {
23
+ const onDrop = (0, react_1.useCallback)((acceptedFiles) => {
24
+ if (onFilesAccepted && acceptedFiles.length > 0) {
25
+ onFilesAccepted(acceptedFiles);
26
+ }
27
+ }, [onFilesAccepted]);
28
+ const onDropRejected = (0, react_1.useCallback)((fileRejections) => {
29
+ if (onFilesRejected && fileRejections.length > 0) {
30
+ onFilesRejected(fileRejections);
31
+ }
32
+ }, [onFilesRejected]);
33
+ const { getRootProps, getInputProps, isDragActive, isDragAccept, isDragReject, acceptedFiles, fileRejections, } = (0, react_dropzone_1.useDropzone)({
34
+ onDrop,
35
+ onDropRejected,
36
+ accept,
37
+ maxFiles,
38
+ maxSize,
39
+ minSize,
40
+ multiple,
41
+ disabled,
42
+ noClick,
43
+ noKeyboard,
44
+ noDrag,
45
+ });
46
+ const rootProps = getRootProps();
47
+ const mergedRef = mergeRefs(ref, rootProps.ref);
48
+ const accessibilityProps = ariaLabel
49
+ ? disabled
50
+ ? {
51
+ role: 'button',
52
+ 'aria-label': ariaLabel,
53
+ 'aria-disabled': true,
54
+ }
55
+ : {
56
+ role: 'button',
57
+ 'aria-label': ariaLabel,
58
+ }
59
+ : {};
60
+ return (react_1.default.createElement("div", { "data-fs-dropzone": true, "data-fs-dropzone-drag-active": isDragActive, "data-fs-dropzone-drag-accept": isDragAccept, "data-fs-dropzone-drag-reject": isDragReject, "data-fs-dropzone-disabled": disabled, "data-testid": testId, ...rootProps, ...accessibilityProps, ...otherProps, ref: mergedRef },
61
+ react_1.default.createElement("input", { ...getInputProps() }),
62
+ icon && react_1.default.createElement("div", { "data-fs-dropzone-icon": true }, icon),
63
+ react_1.default.createElement("div", { "data-fs-dropzone-content": true },
64
+ isDragActive ? (react_1.default.createElement("p", { "data-fs-dropzone-text": true }, dragActiveText)) : (react_1.default.createElement(react_1.default.Fragment, null, children || react_1.default.createElement("p", { "data-fs-dropzone-text": true }, text))),
65
+ selectFilesButton && !noClick && !disabled && selectFilesButton),
66
+ acceptedFiles.length > 0 && (react_1.default.createElement("div", { "data-fs-dropzone-files": true },
67
+ react_1.default.createElement("ul", null, acceptedFiles.map((file, index) => (react_1.default.createElement("li", { key: index, "data-fs-dropzone-file": true },
68
+ file.name,
69
+ " - ",
70
+ file.size,
71
+ " bytes")))))),
72
+ fileRejections.length > 0 && (react_1.default.createElement("div", { "data-fs-dropzone-errors": true },
73
+ react_1.default.createElement("ul", null, fileRejections.map((fileRejection, index) => {
74
+ const { file, errors } = fileRejection;
75
+ return (react_1.default.createElement("li", { key: index, "data-fs-dropzone-error": true },
76
+ file.name,
77
+ " -",
78
+ ' ',
79
+ errors
80
+ .map((e) => e.message)
81
+ .join(', ')));
82
+ }))))));
83
+ });
84
+ exports.default = Dropzone;
85
+ //# sourceMappingURL=Dropzone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropzone.js","sourceRoot":"","sources":["../../../../src/molecules/Dropzone/Dropzone.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { default } from './Dropzone';
2
+ export type { DropzoneProps, DropzoneState } from './Dropzone';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecules/Dropzone/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AACpC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ var Dropzone_1 = require("./Dropzone");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(Dropzone_1).default; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/Dropzone/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAoC;AAA3B,oHAAA,OAAO,OAAA"}
@@ -0,0 +1,113 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import React from 'react';
3
+ import { FileUploadErrorType } from '../FileUploadStatus/FileUploadStatus';
4
+ export interface FileUploadCardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onDrop'> {
5
+ /**
6
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
7
+ */
8
+ testId?: string;
9
+ /**
10
+ * Controls whether the component is visible.
11
+ */
12
+ isOpen: boolean;
13
+ /**
14
+ * Callback function when the component should be closed.
15
+ */
16
+ onDismiss?: () => void;
17
+ /**
18
+ * Callback function when a file is selected.
19
+ */
20
+ onFileSelect?: (files: File[]) => void;
21
+ /**
22
+ * Callback function when download template is clicked.
23
+ */
24
+ onDownloadTemplate?: () => void;
25
+ /**
26
+ * Callback function when search button is clicked after file upload.
27
+ */
28
+ onSearch?: (file: File) => void;
29
+ /**
30
+ * Accepted file types.
31
+ * @default '.csv'
32
+ */
33
+ accept?: string;
34
+ /**
35
+ * Allow multiple file selection.
36
+ * @default false
37
+ */
38
+ multiple?: boolean;
39
+ /**
40
+ * Card title (e.g. from CMS).
41
+ */
42
+ title: string;
43
+ /**
44
+ * Aria-label for the file input (e.g. from CMS).
45
+ */
46
+ fileInputAriaLabel: string;
47
+ /**
48
+ * Aria-label for the dropzone region (e.g. from CMS).
49
+ */
50
+ dropzoneAriaLabel: string;
51
+ /**
52
+ * Dropzone title text (e.g. from CMS).
53
+ */
54
+ dropzoneTitle: string;
55
+ /**
56
+ * Label for the select file button (e.g. from CMS).
57
+ */
58
+ selectFileButtonLabel: string;
59
+ /**
60
+ * Label for the download template button (e.g. from CMS).
61
+ */
62
+ downloadTemplateButtonLabel: string;
63
+ /**
64
+ * Aria-label for the remove button in FileUploadStatus (e.g. from CMS).
65
+ */
66
+ removeButtonAriaLabel: string;
67
+ /**
68
+ * Label for the search button in FileUploadStatus (e.g. from CMS).
69
+ */
70
+ searchButtonLabel: string;
71
+ /**
72
+ * Status text when uploading in FileUploadStatus (e.g. from CMS).
73
+ */
74
+ uploadingStatusText: string;
75
+ /**
76
+ * Status text when completed in FileUploadStatus (e.g. from CMS). Receives file size in bytes.
77
+ */
78
+ getCompletedStatusText: (fileSize: number) => string;
79
+ /**
80
+ * Error messages per error type for FileUploadStatus (e.g. from CMS).
81
+ */
82
+ errorMessages: Partial<Record<FileUploadErrorType, {
83
+ title: string;
84
+ description: string;
85
+ }>>;
86
+ /**
87
+ * Formatter for file size display.
88
+ */
89
+ formatterFileSize?: (size: number) => string;
90
+ /**
91
+ * Formatter for file name display.
92
+ */
93
+ formatterFileName?: (name: string) => string;
94
+ /**
95
+ * Indicates if the file is being uploaded.
96
+ */
97
+ isUploading?: boolean;
98
+ /**
99
+ * Indicates if there was an error during file upload.
100
+ */
101
+ hasError?: boolean;
102
+ /**
103
+ * Type of error when hasError is true.
104
+ */
105
+ errorType?: FileUploadErrorType;
106
+ /**
107
+ * Custom error message to display when hasError is true.
108
+ */
109
+ errorMessage?: string;
110
+ }
111
+ declare const FileUploadCard: ({ testId, isOpen, onDismiss, onFileSelect, onDownloadTemplate, onSearch, accept, multiple, title, fileInputAriaLabel, dropzoneAriaLabel, dropzoneTitle, selectFileButtonLabel, downloadTemplateButtonLabel, removeButtonAriaLabel, searchButtonLabel, uploadingStatusText, getCompletedStatusText, errorMessages, formatterFileSize, formatterFileName, isUploading, hasError, errorType: errorTypeProp, errorMessage, ...otherProps }: FileUploadCardProps) => React.JSX.Element;
112
+ export default FileUploadCard;
113
+ //# sourceMappingURL=FileUploadCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadCard.d.ts","sourceRoot":"","sources":["../../../../src/molecules/FileUploadCard/FileUploadCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,cAAc,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAI1D,OAAyB,EACvB,mBAAmB,EAEpB,MAAM,sCAAsC,CAAA;AAE7C,MAAM,WAAW,mBACf,SAAQ,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC;IACtD;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,MAAM,EAAE,OAAO,CAAA;IACf;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAA;IACtC;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAA;IACb;;OAEG;IACH,kBAAkB,EAAE,MAAM,CAAA;IAC1B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,sBAAsB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,CAAA;IACpD;;OAEG;IACH,aAAa,EAAE,OAAO,CACpB,MAAM,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE,CAAA;IACD;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IAC5C;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,QAAA,MAAM,cAAc,2aA2BjB,mBAAmB,sBAkQrB,CAAA;AAED,eAAe,cAAc,CAAA"}
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const react_1 = tslib_1.__importStar(require("react"));
5
+ const __1 = require("../..");
6
+ const hooks_1 = require("../../hooks");
7
+ const FileUploadStatus_1 = tslib_1.__importStar(require("../FileUploadStatus/FileUploadStatus"));
8
+ const FileUploadCard = ({ testId = 'fs-file-upload-card', isOpen, onDismiss, onFileSelect, onDownloadTemplate, onSearch, accept = '.csv', multiple = false, title, fileInputAriaLabel, dropzoneAriaLabel, dropzoneTitle, selectFileButtonLabel, downloadTemplateButtonLabel, removeButtonAriaLabel, searchButtonLabel, uploadingStatusText, getCompletedStatusText, errorMessages, formatterFileSize, formatterFileName, isUploading = false, hasError = false, errorType: errorTypeProp, errorMessage, ...otherProps }) => {
9
+ const fileInputRef = (0, react_1.useRef)(null);
10
+ const containerRef = (0, react_1.useRef)(null);
11
+ const [dragActive, setDragActive] = (0, react_1.useState)(false);
12
+ const [selectedFile, setSelectedFile] = (0, react_1.useState)(null);
13
+ const [uploadState, setUploadState] = (0, react_1.useState)(FileUploadStatus_1.FileUploadState.Uploading);
14
+ const [errorType, setErrorType] = (0, react_1.useState)(undefined);
15
+ (0, hooks_1.useOnClickOutside)(isOpen ? containerRef : undefined, () => {
16
+ if (isOpen) {
17
+ onDismiss?.();
18
+ }
19
+ });
20
+ (0, react_1.useEffect)(() => {
21
+ const handleEscape = (e) => {
22
+ if (e.key === 'Escape' && isOpen) {
23
+ onDismiss?.();
24
+ }
25
+ };
26
+ window.addEventListener('keydown', handleEscape);
27
+ return () => window.removeEventListener('keydown', handleEscape);
28
+ }, [isOpen, onDismiss]);
29
+ (0, react_1.useEffect)(() => {
30
+ if (!selectedFile)
31
+ return;
32
+ if (hasError) {
33
+ setUploadState(FileUploadStatus_1.FileUploadState.Error);
34
+ setErrorType(errorTypeProp ?? FileUploadStatus_1.FileUploadErrorType.InvalidStructure);
35
+ return;
36
+ }
37
+ if (isUploading) {
38
+ setUploadState(FileUploadStatus_1.FileUploadState.Uploading);
39
+ setErrorType(undefined);
40
+ return;
41
+ }
42
+ setUploadState(FileUploadStatus_1.FileUploadState.Completed);
43
+ setErrorType(undefined);
44
+ }, [hasError, selectedFile, isUploading, errorTypeProp]);
45
+ const isValidFileType = (file) => {
46
+ const fileName = file.name.toLowerCase();
47
+ const acceptedTypes = accept
48
+ .split(',')
49
+ .map((value) => value.trim().toLowerCase())
50
+ .filter(Boolean);
51
+ if (acceptedTypes.length === 0) {
52
+ return fileName.endsWith('.csv');
53
+ }
54
+ return acceptedTypes.some((value) => value.startsWith('.')
55
+ ? fileName.endsWith(value)
56
+ : file.type.toLowerCase() === value);
57
+ };
58
+ const handleFileChange = (e) => {
59
+ const files = Array.from(e.target.files || []);
60
+ if (files.length > 0) {
61
+ const file = files[0];
62
+ setSelectedFile(file);
63
+ if (!isValidFileType(file)) {
64
+ setUploadState(FileUploadStatus_1.FileUploadState.Error);
65
+ setErrorType(FileUploadStatus_1.FileUploadErrorType.Unsupported);
66
+ return;
67
+ }
68
+ setErrorType(undefined);
69
+ if (isUploading) {
70
+ setUploadState(FileUploadStatus_1.FileUploadState.Uploading);
71
+ }
72
+ else {
73
+ setUploadState(FileUploadStatus_1.FileUploadState.Completed);
74
+ }
75
+ if (onFileSelect) {
76
+ onFileSelect(files);
77
+ }
78
+ }
79
+ };
80
+ const handleDrag = (e) => {
81
+ if (!isOpen)
82
+ return;
83
+ e.preventDefault();
84
+ e.stopPropagation();
85
+ if (e.type === 'dragenter' || e.type === 'dragover') {
86
+ setDragActive(true);
87
+ }
88
+ else if (e.type === 'dragleave') {
89
+ setDragActive(false);
90
+ }
91
+ };
92
+ const handleDrop = (e) => {
93
+ if (!isOpen)
94
+ return;
95
+ e.preventDefault();
96
+ e.stopPropagation();
97
+ setDragActive(false);
98
+ if (e.dataTransfer.files && e.dataTransfer.files[0]) {
99
+ const files = Array.from(e.dataTransfer.files);
100
+ const file = files[0];
101
+ setSelectedFile(file);
102
+ if (!isValidFileType(file)) {
103
+ setUploadState(FileUploadStatus_1.FileUploadState.Error);
104
+ setErrorType(FileUploadStatus_1.FileUploadErrorType.Unsupported);
105
+ return;
106
+ }
107
+ setErrorType(undefined);
108
+ if (isUploading) {
109
+ setUploadState(FileUploadStatus_1.FileUploadState.Uploading);
110
+ }
111
+ else {
112
+ setUploadState(FileUploadStatus_1.FileUploadState.Completed);
113
+ }
114
+ if (onFileSelect) {
115
+ onFileSelect(files);
116
+ }
117
+ }
118
+ };
119
+ const triggerFileInput = () => {
120
+ if (fileInputRef.current) {
121
+ fileInputRef.current.value = '';
122
+ }
123
+ fileInputRef.current?.click();
124
+ };
125
+ const handleDownloadTemplate = () => {
126
+ if (onDownloadTemplate) {
127
+ onDownloadTemplate();
128
+ }
129
+ else {
130
+ const csvContent = 'SKU,Quantity\nAB001,2\nAB100,5\nAB999,49';
131
+ const blob = new Blob([csvContent], { type: 'text/csv' });
132
+ const url = window.URL.createObjectURL(blob);
133
+ const a = document.createElement('a');
134
+ a.href = url;
135
+ a.download = 'template.csv';
136
+ a.click();
137
+ window.URL.revokeObjectURL(url);
138
+ }
139
+ };
140
+ const handleRemoveFile = () => {
141
+ setSelectedFile(null);
142
+ setUploadState(FileUploadStatus_1.FileUploadState.Uploading);
143
+ setErrorType(undefined);
144
+ if (fileInputRef.current) {
145
+ fileInputRef.current.value = '';
146
+ }
147
+ };
148
+ const handleSearch = () => {
149
+ if (selectedFile && onSearch) {
150
+ onSearch(selectedFile);
151
+ }
152
+ };
153
+ return (react_1.default.createElement(__1.Card, { ref: containerRef, title: title, "data-fs-file-upload-card": true, "data-fs-file-upload-card-open": isOpen, "data-fs-file-upload-card-has-file": selectedFile !== null, testId: testId, "aria-hidden": !isOpen, ...otherProps },
154
+ react_1.default.createElement(__1.Input, { ref: fileInputRef, type: "file", onChange: handleFileChange, accept: accept, multiple: multiple, style: { display: 'none' }, "aria-label": fileInputAriaLabel }),
155
+ selectedFile ? (react_1.default.createElement(FileUploadStatus_1.default, { file: selectedFile, state: uploadState, errorType: errorTypeProp ?? errorType, errorMessages: errorMessages, errorMessage: errorMessage, onRemove: handleRemoveFile, onSearch: handleSearch, onDownloadTemplate: handleDownloadTemplate, onSelectFile: triggerFileInput, removeButtonAriaLabel: removeButtonAriaLabel, searchButtonLabel: searchButtonLabel, downloadTemplateButtonLabel: downloadTemplateButtonLabel, selectFileButtonLabel: selectFileButtonLabel, uploadingStatusText: uploadingStatusText, completedStatusText: getCompletedStatusText(selectedFile.size), fileName: formatterFileName
156
+ ? formatterFileName(selectedFile.name)
157
+ : selectedFile.name })) : (react_1.default.createElement("div", { "data-fs-file-upload-card-dropzone": true, "data-fs-file-upload-card-dragging": dragActive, onDragEnter: handleDrag, onDragLeave: handleDrag, onDragOver: handleDrag, onDrop: handleDrop, role: "region", "aria-label": dropzoneAriaLabel },
158
+ react_1.default.createElement("div", { "data-fs-file-upload-card-icon": true },
159
+ react_1.default.createElement("div", { "data-fs-file-upload-card-icon-shadow": true }),
160
+ react_1.default.createElement("div", { "data-fs-file-upload-card-icon-wrapper": true },
161
+ react_1.default.createElement(__1.Icon, { name: "Paperclip", width: 24, height: 32 })),
162
+ react_1.default.createElement("div", { "data-fs-file-upload-card-icon-badge": true },
163
+ react_1.default.createElement(__1.Icon, { name: "Plus", width: 16, height: 16 }))),
164
+ react_1.default.createElement("p", { "data-fs-file-upload-card-title": true }, dropzoneTitle),
165
+ react_1.default.createElement(__1.Button, { variant: "secondary", size: "regular", onClick: triggerFileInput, "data-fs-file-upload-card-select-button": true }, selectFileButtonLabel),
166
+ react_1.default.createElement(__1.Button, { type: "button", onClick: handleDownloadTemplate, "data-fs-file-upload-card-template-link": true }, downloadTemplateButtonLabel)))));
167
+ };
168
+ exports.default = FileUploadCard;
169
+ //# sourceMappingURL=FileUploadCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadCard.js","sourceRoot":"","sources":["../../../../src/molecules/FileUploadCard/FileUploadCard.tsx"],"names":[],"mappings":";;;AACA,uDAA0D;AAE1D,6BAAiD;AACjD,uCAA+C;AAC/C,iGAG6C;AA8G7C,MAAM,cAAc,GAAG,CAAC,EACtB,MAAM,GAAG,qBAAqB,EAC9B,MAAM,EACN,SAAS,EACT,YAAY,EACZ,kBAAkB,EAClB,QAAQ,EACR,MAAM,GAAG,MAAM,EACf,QAAQ,GAAG,KAAK,EAChB,KAAK,EACL,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,iBAAiB,EACjB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,GAAG,KAAK,EACnB,QAAQ,GAAG,KAAK,EAChB,SAAS,EAAE,aAAa,EACxB,YAAY,EACZ,GAAG,UAAU,EACO,EAAE,EAAE;IACxB,MAAM,YAAY,GAAG,IAAA,cAAM,EAAmB,IAAI,CAAC,CAAA;IACnD,MAAM,YAAY,GAAG,IAAA,cAAM,EAAiB,IAAI,CAAC,CAAA;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,EAAC,KAAK,CAAC,CAAA;IACnD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,EAAc,IAAI,CAAC,CAAA;IACnE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,IAAA,gBAAQ,EAC5C,kCAAe,CAAC,SAAS,CAC1B,CAAA;IACD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EACxC,SAAS,CACV,CAAA;IAED,IAAA,yBAAiB,EAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE;QACxD,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,EAAE,EAAE,CAAA;QACf,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,CAAC,CAAgB,EAAE,EAAE;YACxC,IAAI,CAAC,CAAC,GAAG,KAAK,QAAQ,IAAI,MAAM,EAAE,CAAC;gBACjC,SAAS,EAAE,EAAE,CAAA;YACf,CAAC;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QAChD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAEvB,IAAA,iBAAS,EAAC,GAAG,EAAE;QACb,IAAI,CAAC,YAAY;YAAE,OAAM;QAEzB,IAAI,QAAQ,EAAE,CAAC;YACb,cAAc,CAAC,kCAAe,CAAC,KAAK,CAAC,CAAA;YACrC,YAAY,CAAC,aAAa,IAAI,sCAAmB,CAAC,gBAAgB,CAAC,CAAA;YACnE,OAAM;QACR,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;YACzC,YAAY,CAAC,SAAS,CAAC,CAAA;YACvB,OAAM;QACR,CAAC;QAED,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;QACzC,YAAY,CAAC,SAAS,CAAC,CAAA;IACzB,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAA;IAExD,MAAM,eAAe,GAAG,CAAC,IAAU,EAAW,EAAE;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAA;QACxC,MAAM,aAAa,GAAG,MAAM;aACzB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC1C,MAAM,CAAC,OAAO,CAAC,CAAA;QAElB,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/B,OAAO,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC;QAED,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAClC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC;YACnB,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;YAC1B,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,KAAK,CACtC,CAAA;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,CAAC,CAAgC,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAA;QAC9C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,eAAe,CAAC,IAAI,CAAC,CAAA;YAErB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,cAAc,CAAC,kCAAe,CAAC,KAAK,CAAC,CAAA;gBACrC,YAAY,CAAC,sCAAmB,CAAC,WAAW,CAAC,CAAA;gBAC7C,OAAM;YACR,CAAC;YAED,YAAY,CAAC,SAAS,CAAC,CAAA;YAEvB,IAAI,WAAW,EAAE,CAAC;gBAChB,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,CAA4B,EAAE,EAAE;QAClD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YACpD,aAAa,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;aAAM,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAClC,aAAa,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACH,CAAC,CAAA;IAED,MAAM,UAAU,GAAG,CAAC,CAA4B,EAAE,EAAE;QAClD,IAAI,CAAC,MAAM;YAAE,OAAM;QACnB,CAAC,CAAC,cAAc,EAAE,CAAA;QAClB,CAAC,CAAC,eAAe,EAAE,CAAA;QACnB,aAAa,CAAC,KAAK,CAAC,CAAA;QAEpB,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACrB,eAAe,CAAC,IAAI,CAAC,CAAA;YAErB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3B,cAAc,CAAC,kCAAe,CAAC,KAAK,CAAC,CAAA;gBACrC,YAAY,CAAC,sCAAmB,CAAC,WAAW,CAAC,CAAA;gBAC7C,OAAM;YACR,CAAC;YAED,YAAY,CAAC,SAAS,CAAC,CAAA;YAEvB,IAAI,WAAW,EAAE,CAAC;gBAChB,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,YAAY,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;QACjC,CAAC;QACD,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;IAC/B,CAAC,CAAA;IAED,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,IAAI,kBAAkB,EAAE,CAAC;YACvB,kBAAkB,EAAE,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,0CAA0C,CAAA;YAC7D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;YACzD,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;YAC5C,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAA;YACrC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAA;YACZ,CAAC,CAAC,QAAQ,GAAG,cAAc,CAAA;YAC3B,CAAC,CAAC,KAAK,EAAE,CAAA;YACT,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,GAAG,EAAE;QAC5B,eAAe,CAAC,IAAI,CAAC,CAAA;QACrB,cAAc,CAAC,kCAAe,CAAC,SAAS,CAAC,CAAA;QACzC,YAAY,CAAC,SAAS,CAAC,CAAA;QACvB,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;YACzB,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAA;QACjC,CAAC;IACH,CAAC,CAAA;IAED,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;YAC7B,QAAQ,CAAC,YAAY,CAAC,CAAA;QACxB,CAAC;IACH,CAAC,CAAA;IAED,OAAO,CACL,8BAAC,QAAI,IACH,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,KAAK,qEAEmB,MAAM,uCACF,YAAY,KAAK,IAAI,EACxD,MAAM,EAAE,MAAM,iBACD,CAAC,MAAM,KAChB,UAAU;QAEd,8BAAC,SAAK,IACJ,GAAG,EAAE,YAAY,EACjB,IAAI,EAAC,MAAM,EACX,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,gBACd,kBAAkB,GAC9B;QAED,YAAY,CAAC,CAAC,CAAC,CACd,8BAAC,0BAAgB,IACf,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,IAAI,SAAS,EACrC,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,YAAY,EACtB,kBAAkB,EAAE,sBAAsB,EAC1C,YAAY,EAAE,gBAAgB,EAC9B,qBAAqB,EAAE,qBAAqB,EAC5C,iBAAiB,EAAE,iBAAiB,EACpC,2BAA2B,EAAE,2BAA2B,EACxD,qBAAqB,EAAE,qBAAqB,EAC5C,mBAAmB,EAAE,mBAAmB,EACxC,mBAAmB,EAAE,sBAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,EAC9D,QAAQ,EACN,iBAAiB;gBACf,CAAC,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI,CAAC;gBACtC,CAAC,CAAC,YAAY,CAAC,IAAI,GAEvB,CACH,CAAC,CAAC,CAAC,CACF,uHAEqC,UAAU,EAC7C,WAAW,EAAE,UAAU,EACvB,WAAW,EAAE,UAAU,EACvB,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,UAAU,EAClB,IAAI,EAAC,QAAQ,gBACD,iBAAiB;YAE7B;gBACE,sFAA4C;gBAC5C;oBACE,8BAAC,QAAI,IAAC,IAAI,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,CAC5C;gBACN;oBACE,8BAAC,QAAI,IAAC,IAAI,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,GAAI,CACvC,CACF;YAEN,+EAAmC,aAAa,CAAK;YAErD,8BAAC,UAAM,IACL,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,SAAS,EACd,OAAO,EAAE,gBAAgB,oDAGxB,qBAAqB,CACf;YAET,8BAAC,UAAM,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,sBAAsB,oDAG9B,2BAA2B,CACrB,CACL,CACP,CACI,CACR,CAAA;AACH,CAAC,CAAA;AAED,kBAAe,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { default } from './FileUploadCard';
2
+ export type { FileUploadCardProps } from './FileUploadCard';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/molecules/FileUploadCard/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = void 0;
7
+ var FileUploadCard_1 = require("./FileUploadCard");
8
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return __importDefault(FileUploadCard_1).default; } });
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/molecules/FileUploadCard/index.tsx"],"names":[],"mappings":";;;;;;AAAA,mDAA0C;AAAjC,0HAAA,OAAO,OAAA"}
@@ -0,0 +1,93 @@
1
+ import type { HTMLAttributes } from 'react';
2
+ import React from 'react';
3
+ export declare enum FileUploadState {
4
+ Uploading = "uploading",
5
+ Completed = "completed",
6
+ Error = "error"
7
+ }
8
+ export declare enum FileUploadErrorType {
9
+ Unexpected = "unexpected",
10
+ Unsupported = "unsupported",
11
+ Unreadable = "unreadable",
12
+ InvalidStructure = "invalid-structure",
13
+ Empty = "empty",
14
+ TooLarge = "too-large",
15
+ NoProductsFound = "no-products-found"
16
+ }
17
+ export interface FileUploadStatusProps extends HTMLAttributes<HTMLDivElement> {
18
+ /**
19
+ * ID to find this component in testing tools (e.g.: cypress, testing library, and jest).
20
+ */
21
+ testId?: string;
22
+ /**
23
+ * The file being uploaded.
24
+ */
25
+ file: File;
26
+ /**
27
+ * Current upload state.
28
+ * @default 'uploading'
29
+ */
30
+ state?: FileUploadState;
31
+ /**
32
+ * Type of error when state is 'error'.
33
+ */
34
+ errorType?: FileUploadErrorType;
35
+ /**
36
+ * Custom error message. If provided, overrides the default error message for the errorType.
37
+ */
38
+ errorMessage?: string;
39
+ /**
40
+ * Callback when the remove/cancel button is clicked.
41
+ */
42
+ onRemove?: () => void;
43
+ /**
44
+ * Callback when the search button is clicked (only shown when state is 'completed').
45
+ */
46
+ onSearch?: () => void;
47
+ /**
48
+ * Callback when download template is clicked (only shown when state is 'error').
49
+ */
50
+ onDownloadTemplate?: () => void;
51
+ /**
52
+ * Callback when select file is clicked (only shown when state is 'error').
53
+ */
54
+ onSelectFile?: () => void;
55
+ /**
56
+ * Aria-label for the remove button (e.g. from CMS).
57
+ */
58
+ removeButtonAriaLabel: string;
59
+ /**
60
+ * Label for the search button when state is 'completed' (e.g. from CMS).
61
+ */
62
+ searchButtonLabel: string;
63
+ /**
64
+ * Label for the download template button (e.g. from CMS).
65
+ */
66
+ downloadTemplateButtonLabel: string;
67
+ /**
68
+ * Label for the select file button (e.g. from CMS).
69
+ */
70
+ selectFileButtonLabel: string;
71
+ /**
72
+ * Error messages per error type (e.g. from CMS). Required when state is Error to show messages.
73
+ */
74
+ errorMessages: Partial<Record<FileUploadErrorType, {
75
+ title: string;
76
+ description: string;
77
+ }>>;
78
+ /**
79
+ * Status text when state is Uploading (e.g. from CMS).
80
+ */
81
+ uploadingStatusText: string;
82
+ /**
83
+ * Status text when state is Completed (e.g. from CMS). May include file size.
84
+ */
85
+ completedStatusText: string;
86
+ /**
87
+ * Custom file name display (optional).
88
+ */
89
+ fileName?: string;
90
+ }
91
+ declare const FileUploadStatus: ({ testId, file, state, errorType, errorMessage, onRemove, onSearch, onDownloadTemplate, onSelectFile, removeButtonAriaLabel, searchButtonLabel, downloadTemplateButtonLabel, selectFileButtonLabel, errorMessages, uploadingStatusText, completedStatusText, fileName, ...otherProps }: FileUploadStatusProps) => React.JSX.Element;
92
+ export default FileUploadStatus;
93
+ //# sourceMappingURL=FileUploadStatus.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadStatus.d.ts","sourceRoot":"","sources":["../../../../src/molecules/FileUploadStatus/FileUploadStatus.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,oBAAY,eAAe;IACzB,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,KAAK,UAAU;CAChB;AAED,oBAAY,mBAAmB;IAC7B,UAAU,eAAe;IACzB,WAAW,gBAAgB;IAC3B,UAAU,eAAe;IACzB,gBAAgB,sBAAsB;IACtC,KAAK,UAAU;IACf,QAAQ,cAAc;IACtB,eAAe,sBAAsB;CACtC;AAED,MAAM,WAAW,qBAAsB,SAAQ,cAAc,CAAC,cAAc,CAAC;IAC3E;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;OAEG;IACH,IAAI,EAAE,IAAI,CAAA;IACV;;;OAGG;IACH,KAAK,CAAC,EAAE,eAAe,CAAA;IACvB;;OAEG;IACH,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAA;IACrB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAA;IAC/B;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAA;IACzB;;OAEG;IACH,2BAA2B,EAAE,MAAM,CAAA;IACnC;;OAEG;IACH,qBAAqB,EAAE,MAAM,CAAA;IAC7B;;OAEG;IACH,aAAa,EAAE,OAAO,CACpB,MAAM,CAAC,mBAAmB,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CACpE,CAAA;IACD;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAA;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB;AAED,QAAA,MAAM,gBAAgB,2RAmBnB,qBAAqB,sBA6IvB,CAAA;AAED,eAAe,gBAAgB,CAAA"}