@oneplatformdev/ui 0.1.99-beta.27 → 0.1.99-beta.271

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 (252) hide show
  1. package/Accordion/Accordion.d.ts +1 -1
  2. package/Accordion/Accordion.d.ts.map +1 -1
  3. package/Accordion/Accordion.js +48 -26
  4. package/Accordion/Accordion.js.map +1 -1
  5. package/AlertDialog/AlertDialog.stories.js +66 -23
  6. package/AlertDialog/AlertDialog.stories.js.map +1 -1
  7. package/AlertDialog/AlertDialogRoot.d.ts.map +1 -1
  8. package/AlertDialog/AlertDialogRoot.js +19 -18
  9. package/AlertDialog/AlertDialogRoot.js.map +1 -1
  10. package/Button/Button.d.ts.map +1 -1
  11. package/Button/Button.js +40 -40
  12. package/Button/Button.js.map +1 -1
  13. package/Button/Button.stories.js +15 -12
  14. package/Button/Button.stories.js.map +1 -1
  15. package/Button/Button.utils.d.ts +3 -0
  16. package/Button/Button.utils.d.ts.map +1 -0
  17. package/Button/Button.utils.js +14 -0
  18. package/Button/Button.utils.js.map +1 -0
  19. package/Button/buttonVariants.d.ts +2 -2
  20. package/Button/buttonVariants.d.ts.map +1 -1
  21. package/Button/buttonVariants.js +38 -6
  22. package/Button/buttonVariants.js.map +1 -1
  23. package/Button/index.d.ts +1 -0
  24. package/Button/index.d.ts.map +1 -1
  25. package/Button/index.js +8 -6
  26. package/Button/index.js.map +1 -1
  27. package/ButtonIcon/ButtonIcon.d.ts.map +1 -1
  28. package/ButtonIcon/ButtonIcon.js +47 -47
  29. package/ButtonIcon/ButtonIcon.js.map +1 -1
  30. package/ButtonIcon/ButtonIcon.stories.js +35 -33
  31. package/ButtonIcon/ButtonIcon.stories.js.map +1 -1
  32. package/ButtonIcon/buttonIconVariants.d.ts +1 -1
  33. package/ButtonIcon/buttonIconVariants.d.ts.map +1 -1
  34. package/ButtonIcon/buttonIconVariants.js +3 -2
  35. package/ButtonIcon/buttonIconVariants.js.map +1 -1
  36. package/CHANGELOG.md +1527 -0
  37. package/Card/Card.d.ts.map +1 -1
  38. package/Card/Card.js +22 -21
  39. package/Card/Card.js.map +1 -1
  40. package/Checkbox/Checkbox.d.ts.map +1 -1
  41. package/Checkbox/Checkbox.js +35 -33
  42. package/Checkbox/Checkbox.js.map +1 -1
  43. package/Checkbox/Checkbox.stories.js +108 -0
  44. package/Checkbox/Checkbox.stories.js.map +1 -0
  45. package/Checkbox/Checkbox.types.d.ts +2 -1
  46. package/Checkbox/Checkbox.types.d.ts.map +1 -1
  47. package/Combobox/Combobox.d.ts +4 -2
  48. package/Combobox/Combobox.d.ts.map +1 -1
  49. package/Combobox/Combobox.js +222 -192
  50. package/Combobox/Combobox.js.map +1 -1
  51. package/Combobox/Combobox.stories.js +231 -85
  52. package/Combobox/Combobox.stories.js.map +1 -1
  53. package/Combobox/Combobox.types.d.ts +88 -24
  54. package/Combobox/Combobox.types.d.ts.map +1 -1
  55. package/Combobox/Combobox.types.js +4 -1
  56. package/Combobox/Combobox.types.js.map +1 -1
  57. package/Combobox/ComboboxOptionItem.d.ts +5 -3
  58. package/Combobox/ComboboxOptionItem.d.ts.map +1 -1
  59. package/Combobox/ComboboxOptionItem.js +80 -23
  60. package/Combobox/ComboboxOptionItem.js.map +1 -1
  61. package/Combobox/ComboboxRenderContent.d.ts +28 -0
  62. package/Combobox/ComboboxRenderContent.d.ts.map +1 -0
  63. package/Combobox/ComboboxRenderContent.js +142 -0
  64. package/Combobox/ComboboxRenderContent.js.map +1 -0
  65. package/Combobox/ComboboxRenderOptions.d.ts +4 -0
  66. package/Combobox/ComboboxRenderOptions.d.ts.map +1 -0
  67. package/Combobox/ComboboxRenderOptions.js +53 -0
  68. package/Combobox/ComboboxRenderOptions.js.map +1 -0
  69. package/Combobox/ComboboxRenderTrigger.d.ts +18 -0
  70. package/Combobox/ComboboxRenderTrigger.d.ts.map +1 -0
  71. package/Combobox/ComboboxRenderTrigger.js +118 -0
  72. package/Combobox/ComboboxRenderTrigger.js.map +1 -0
  73. package/Command/Command.d.ts +6 -1
  74. package/Command/Command.d.ts.map +1 -1
  75. package/Command/Command.js +66 -48
  76. package/Command/Command.js.map +1 -1
  77. package/ContextPopover/ContextDropdownMenu.d.ts +12 -0
  78. package/ContextPopover/ContextDropdownMenu.d.ts.map +1 -0
  79. package/ContextPopover/ContextDropdownMenu.js +41 -0
  80. package/ContextPopover/ContextDropdownMenu.js.map +1 -0
  81. package/ContextPopover/ContextPopover.d.ts +12 -0
  82. package/ContextPopover/ContextPopover.d.ts.map +1 -0
  83. package/ContextPopover/ContextPopover.js +34 -0
  84. package/ContextPopover/ContextPopover.js.map +1 -0
  85. package/ContextPopover/index.d.ts +4 -0
  86. package/ContextPopover/index.d.ts.map +1 -0
  87. package/ContextPopover/index.js +9 -0
  88. package/ContextPopover/index.js.map +1 -0
  89. package/ContextPopover/useContextPopoverHandler.d.ts +14 -0
  90. package/ContextPopover/useContextPopoverHandler.d.ts.map +1 -0
  91. package/ContextPopover/useContextPopoverHandler.js +21 -0
  92. package/ContextPopover/useContextPopoverHandler.js.map +1 -0
  93. package/DataTable/DataTable.js +6 -6
  94. package/DataTable/useDataTable.d.ts +1 -1
  95. package/Dialog/Dialog.d.ts +4 -1
  96. package/Dialog/Dialog.d.ts.map +1 -1
  97. package/Dialog/Dialog.js +82 -40
  98. package/Dialog/Dialog.js.map +1 -1
  99. package/Dialog/Dialog.stories.js +108 -0
  100. package/Dialog/Dialog.stories.js.map +1 -0
  101. package/Dialog/Dialog.types.d.ts +4 -0
  102. package/Dialog/Dialog.types.d.ts.map +1 -0
  103. package/Dialog/Dialog.types.js +2 -0
  104. package/Dialog/Dialog.types.js.map +1 -0
  105. package/Dialog/index.d.ts +1 -0
  106. package/Dialog/index.d.ts.map +1 -1
  107. package/Dialog/useDialogClosePosition.d.ts +11 -0
  108. package/Dialog/useDialogClosePosition.d.ts.map +1 -0
  109. package/Dialog/useDialogClosePosition.js +50 -0
  110. package/Dialog/useDialogClosePosition.js.map +1 -0
  111. package/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  112. package/DropdownMenu/DropdownMenu.js +33 -20
  113. package/DropdownMenu/DropdownMenu.js.map +1 -1
  114. package/Dropzone/Dropzone.d.ts.map +1 -1
  115. package/Dropzone/Dropzone.js +340 -141
  116. package/Dropzone/Dropzone.js.map +1 -1
  117. package/Dropzone/Dropzone.stories.js +308 -0
  118. package/Dropzone/Dropzone.stories.js.map +1 -0
  119. package/Dropzone/Dropzone.types.d.ts +17 -1
  120. package/Dropzone/Dropzone.types.d.ts.map +1 -1
  121. package/Dropzone/Dropzone.types.js +19 -8
  122. package/Dropzone/Dropzone.types.js.map +1 -1
  123. package/Dropzone/DropzoneFilePreview.d.ts.map +1 -1
  124. package/Dropzone/DropzoneFilePreview.js +46 -26
  125. package/Dropzone/DropzoneFilePreview.js.map +1 -1
  126. package/Dropzone/DropzoneSinglePickPreview.d.ts +5 -2
  127. package/Dropzone/DropzoneSinglePickPreview.d.ts.map +1 -1
  128. package/Dropzone/DropzoneSinglePickPreview.js +119 -22
  129. package/Dropzone/DropzoneSinglePickPreview.js.map +1 -1
  130. package/Dropzone/index.js +7 -5
  131. package/Form/FormRenderControl.d.ts +1 -1
  132. package/Form/FormRenderControl.d.ts.map +1 -1
  133. package/Form/FormRenderControl.js +51 -24
  134. package/Form/FormRenderControl.js.map +1 -1
  135. package/Form/FormRenderControl.types.d.ts +4 -1
  136. package/Form/FormRenderControl.types.d.ts.map +1 -1
  137. package/FormCombobox/FormCombobox.d.ts +4 -2
  138. package/FormCombobox/FormCombobox.d.ts.map +1 -1
  139. package/FormCombobox/FormCombobox.js +30 -17
  140. package/FormCombobox/FormCombobox.js.map +1 -1
  141. package/FormCombobox/FormCombobox.types.d.ts +6 -2
  142. package/FormCombobox/FormCombobox.types.d.ts.map +1 -1
  143. package/FormDatePicker/FormDatePicker.d.ts.map +1 -1
  144. package/FormDatePicker/FormDatePicker.js +18 -16
  145. package/FormDatePicker/FormDatePicker.js.map +1 -1
  146. package/FormDropzone/FormDropzone.d.ts.map +1 -1
  147. package/FormDropzone/FormDropzone.js +11 -9
  148. package/FormDropzone/FormDropzone.js.map +1 -1
  149. package/FormInput/FormInput.d.ts.map +1 -1
  150. package/FormInput/FormInput.js +47 -28
  151. package/FormInput/FormInput.js.map +1 -1
  152. package/FormInput/FormInput.stories.js +61 -0
  153. package/FormInput/FormInput.stories.js.map +1 -0
  154. package/FormInput/FormInput.types.d.ts +1 -0
  155. package/FormInput/FormInput.types.d.ts.map +1 -1
  156. package/FormSelect/FormSelect.d.ts.map +1 -1
  157. package/FormSelect/FormSelect.js +33 -29
  158. package/FormSelect/FormSelect.js.map +1 -1
  159. package/FormTextarea/FormTextarea.d.ts.map +1 -1
  160. package/FormTextarea/FormTextarea.js +15 -12
  161. package/FormTextarea/FormTextarea.js.map +1 -1
  162. package/InfoBlock/InfoBlock.d.ts +7 -0
  163. package/InfoBlock/InfoBlock.d.ts.map +1 -0
  164. package/InfoBlock/InfoBlock.js +28 -0
  165. package/InfoBlock/InfoBlock.js.map +1 -0
  166. package/InfoBlock/InfoBlock.stories.js +50 -0
  167. package/InfoBlock/InfoBlock.stories.js.map +1 -0
  168. package/InfoBlock/InfoBlock.types.d.ts +9 -0
  169. package/InfoBlock/InfoBlock.types.d.ts.map +1 -0
  170. package/InfoBlock/InfoBlock.types.js +2 -0
  171. package/InfoBlock/InfoBlock.types.js.map +1 -0
  172. package/InfoBlock/index.d.ts +3 -0
  173. package/InfoBlock/index.d.ts.map +1 -0
  174. package/InfoBlock/index.js +5 -0
  175. package/InfoBlock/index.js.map +1 -0
  176. package/InfoBlock/infoBlockVariants.d.ts +6 -0
  177. package/InfoBlock/infoBlockVariants.d.ts.map +1 -0
  178. package/InfoBlock/infoBlockVariants.js +27 -0
  179. package/InfoBlock/infoBlockVariants.js.map +1 -0
  180. package/Input/Input.d.ts.map +1 -1
  181. package/Input/Input.js +104 -53
  182. package/Input/Input.js.map +1 -1
  183. package/Input/Input.stories.js +225 -0
  184. package/Input/Input.stories.js.map +1 -0
  185. package/Input/Input.types.d.ts +5 -0
  186. package/Input/Input.types.d.ts.map +1 -1
  187. package/LoadingMask/LoadingMask.d.ts +1 -2
  188. package/LoadingMask/LoadingMask.d.ts.map +1 -1
  189. package/LoadingMask/LoadingMask.js +8 -8
  190. package/LoadingMask/LoadingMask.js.map +1 -1
  191. package/LoadingMask/LoadingMask.types.d.ts +1 -0
  192. package/LoadingMask/LoadingMask.types.d.ts.map +1 -1
  193. package/Popover/Popover.d.ts +3 -1
  194. package/Popover/Popover.d.ts.map +1 -1
  195. package/Popover/Popover.js +15 -10
  196. package/Popover/Popover.js.map +1 -1
  197. package/ScrollArea/ScrollArea.d.ts +5 -1
  198. package/ScrollArea/ScrollArea.d.ts.map +1 -1
  199. package/ScrollArea/ScrollArea.js +23 -17
  200. package/ScrollArea/ScrollArea.js.map +1 -1
  201. package/Search/Search.d.ts.map +1 -1
  202. package/Search/Search.js +40 -31
  203. package/Search/Search.js.map +1 -1
  204. package/Select/Select.d.ts.map +1 -1
  205. package/Select/Select.js +53 -48
  206. package/Select/Select.js.map +1 -1
  207. package/Select/Select.types.d.ts +4 -0
  208. package/Select/Select.types.d.ts.map +1 -1
  209. package/Select/SelectRoot.d.ts.map +1 -1
  210. package/Select/SelectRoot.js +81 -68
  211. package/Select/SelectRoot.js.map +1 -1
  212. package/Switch/Switch.d.ts +1 -1
  213. package/Switch/Switch.d.ts.map +1 -1
  214. package/Switch/Switch.js +19 -9
  215. package/Switch/Switch.js.map +1 -1
  216. package/Switch/Switch.stories.js +62 -0
  217. package/Switch/Switch.stories.js.map +1 -0
  218. package/Textarea/Textarea.d.ts.map +1 -1
  219. package/Textarea/Textarea.js +50 -45
  220. package/Textarea/Textarea.js.map +1 -1
  221. package/Textarea/Textarea.types.d.ts +3 -1
  222. package/Textarea/Textarea.types.d.ts.map +1 -1
  223. package/Toast/Toast.d.ts +1 -1
  224. package/Toast/toastVariants.d.ts +1 -1
  225. package/Tooltip/QuestionMarkIcon.svg.js +6 -0
  226. package/Tooltip/QuestionMarkIcon.svg.js.map +1 -0
  227. package/Tooltip/Tooltip.d.ts.map +1 -1
  228. package/Tooltip/Tooltip.js +52 -32
  229. package/Tooltip/Tooltip.js.map +1 -1
  230. package/Tooltip/Tooltip.types.d.ts +10 -0
  231. package/Tooltip/Tooltip.types.d.ts.map +1 -1
  232. package/Tooltip/tooltipVariants.d.ts +4 -0
  233. package/Tooltip/tooltipVariants.d.ts.map +1 -0
  234. package/Tooltip/tooltipVariants.js +23 -0
  235. package/Tooltip/tooltipVariants.js.map +1 -0
  236. package/index.d.ts +2 -0
  237. package/index.d.ts.map +1 -1
  238. package/index.js +352 -340
  239. package/index.js.map +1 -1
  240. package/package.json +10 -6
  241. package/styles.css +1 -0
  242. package/vite-env.d.js +2 -0
  243. package/vite-env.d.js.map +1 -0
  244. package/vite-env.d.ts +7 -0
  245. package/Combobox/ComboboxOptions.d.ts +0 -4
  246. package/Combobox/ComboboxOptions.d.ts.map +0 -1
  247. package/Combobox/ComboboxOptions.js +0 -64
  248. package/Combobox/ComboboxOptions.js.map +0 -1
  249. package/Form/FormTooltipButton.d.ts +0 -6
  250. package/Form/FormTooltipButton.d.ts.map +0 -1
  251. package/Form/FormTooltipButton.js +0 -33
  252. package/Form/FormTooltipButton.js.map +0 -1
@@ -0,0 +1,308 @@
1
+ import { jsx as o, jsxs as v } from "react/jsx-runtime";
2
+ import { useState as s, useRef as F, useEffect as M } from "react";
3
+ import { Dropzone as x } from "./Dropzone.js";
4
+ import { DEFAULT_IMAGES_TYPES as p, DEFAULT_DOCUMENT_TYPES as y, DEFAULT_VIDEO_TYPES as u } from "./Dropzone.types.js";
5
+ function r({ initialValue: e = [], ...g }) {
6
+ const [l, i] = s(e);
7
+ return /* @__PURE__ */ v("div", { className: "w-full space-y-3", children: [
8
+ /* @__PURE__ */ o(
9
+ x,
10
+ {
11
+ ...g,
12
+ value: l,
13
+ onChangeValue: (t) => i(t)
14
+ }
15
+ ),
16
+ /* @__PURE__ */ v("div", { className: "text-xs text-muted-foreground", children: [
17
+ "value:",
18
+ /* @__PURE__ */ o("pre", { className: "mt-1 text-[11px] bg-muted p-2 rounded", children: JSON.stringify(l, null, 2) })
19
+ ] })
20
+ ] });
21
+ }
22
+ const N = {
23
+ title: "Dropzone",
24
+ component: x,
25
+ parameters: {
26
+ layout: "centered"
27
+ },
28
+ args: {
29
+ labelSelectedFiles: "Selected files",
30
+ labelFileTooLarge: "File is too large",
31
+ maxFiles: 1,
32
+ maxSizeMB: 100,
33
+ singlePick: !0,
34
+ className: "w-full"
35
+ },
36
+ argTypes: {
37
+ onChangeValue: { control: !1 },
38
+ value: { control: !1 }
39
+ },
40
+ decorators: [
41
+ (e) => /* @__PURE__ */ o("div", { className: "p-6 w-[680px]", children: /* @__PURE__ */ o(e, {}) })
42
+ ]
43
+ }, I = {
44
+ args: {
45
+ acceptTypes: p,
46
+ labelDropzonePrompt: "Upload image",
47
+ labelDropzoneSubPrompt: "Formats: .jpg .jpeg .png .webp",
48
+ maxSizeMB: 5
49
+ },
50
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
51
+ }, k = {
52
+ args: {
53
+ acceptTypes: y,
54
+ labelDropzonePrompt: "Upload file",
55
+ labelDropzoneSubPrompt: "Formats: pdf, doc/docx, xls/xlsx, ppt/pptx, txt, csv",
56
+ maxSizeMB: 100,
57
+ maxFiles: 1,
58
+ singlePick: !0
59
+ },
60
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
61
+ }, V = {
62
+ args: {
63
+ acceptTypes: u,
64
+ labelDropzonePrompt: "Upload video",
65
+ labelDropzoneSubPrompt: "Formats: .mp4 .mov .avi .webm",
66
+ maxSizeMB: 100,
67
+ maxFiles: 1,
68
+ singlePick: !0
69
+ },
70
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
71
+ }, L = {
72
+ args: {
73
+ acceptTypes: u,
74
+ labelDropzonePrompt: "Upload video",
75
+ labelDropzoneSubPrompt: "Formats: .mp4 .mov .avi .webm or YouTube URL as value",
76
+ maxSizeMB: 100,
77
+ maxFiles: 1,
78
+ singlePick: !0
79
+ },
80
+ render: (e) => /* @__PURE__ */ o(() => {
81
+ const [l, i] = s("https://www.youtube.com/watch?v=dQw4w9WgXcQ"), t = l.trim() ? [l.trim()] : [];
82
+ return /* @__PURE__ */ v("div", { className: "w-full space-y-3", children: [
83
+ /* @__PURE__ */ o(
84
+ "input",
85
+ {
86
+ type: "text",
87
+ value: l,
88
+ onChange: (m) => i(m.target.value),
89
+ placeholder: "Paste YouTube URL",
90
+ className: "w-full h-10 rounded-md border border-[#E4E4E7] px-3 text-sm"
91
+ }
92
+ ),
93
+ /* @__PURE__ */ o(
94
+ x,
95
+ {
96
+ ...e,
97
+ value: t,
98
+ onChangeValue: (m) => {
99
+ const n = m[0];
100
+ typeof n == "string" && i(n);
101
+ }
102
+ }
103
+ )
104
+ ] });
105
+ }, {})
106
+ };
107
+ function w(e) {
108
+ const [g, l] = s([]), [i, t] = s(!1), [m, n] = s(0), [T, b] = s(0), [D, z] = s(0), a = F(null);
109
+ return M(() => () => {
110
+ a.current && clearInterval(a.current);
111
+ }, []), /* @__PURE__ */ o("div", { className: "w-full space-y-3", children: /* @__PURE__ */ o(
112
+ x,
113
+ {
114
+ ...e,
115
+ value: g,
116
+ isUploading: i,
117
+ uploadProgress: m,
118
+ uploadLoadedBytes: T,
119
+ uploadTotalBytes: D,
120
+ onCancelUpload: () => {
121
+ a.current && clearInterval(a.current), a.current = null, t(!1), n(0), b(0), z(0);
122
+ },
123
+ onChangeValue: (P) => {
124
+ if (l(P), !P.length) return;
125
+ a.current && clearInterval(a.current), a.current = null;
126
+ const f = P[0], c = f instanceof File ? f.size : 50 * 1024 * 1024;
127
+ let d = 0;
128
+ z(c), b(0), n(0), t(!0), a.current = setInterval(() => {
129
+ d = Math.min(c, d + c * 0.08);
130
+ const S = c ? Math.round(d / c * 100) : 0;
131
+ b(d), n(S), d >= c && (a.current && clearInterval(a.current), a.current = null, setTimeout(() => t(!1), 350));
132
+ }, 250);
133
+ }
134
+ }
135
+ ) });
136
+ }
137
+ const C = {
138
+ args: {
139
+ acceptTypes: u,
140
+ labelDropzonePrompt: "Upload video",
141
+ labelDropzoneSubPrompt: "Formats: .mp4 .mov .avi .webm",
142
+ labelUploadingTitle: "Завантаження відео...",
143
+ labelUploadingHint: "Будь ласка, не закривайте сторінку",
144
+ labelUploadingActionCancel: "Скасувати",
145
+ maxSizeMB: 100,
146
+ maxFiles: 1,
147
+ singlePick: !0
148
+ },
149
+ render: (e) => /* @__PURE__ */ o(w, { ...e })
150
+ }, O = {
151
+ args: {
152
+ acceptTypes: p,
153
+ labelDropzonePrompt: "Перетягніть фото або оберіть файли",
154
+ labelDropzoneSubPrompt: "JPG, PNG, WEBP, HEIC · до 5 МБ кожне",
155
+ labelOrClickToSelect: "Завантажити файл",
156
+ maxSizeMB: 5,
157
+ maxFiles: 20,
158
+ singlePick: !1,
159
+ persistentDropzone: !0,
160
+ previewVariant: "image-grid",
161
+ className: "w-[598px]",
162
+ classNames: {
163
+ previewWraper: "w-[75px] h-[75px] rounded-[8px] border-0",
164
+ previewImage: "rounded-[8px] object-cover"
165
+ }
166
+ },
167
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
168
+ }, G = {
169
+ args: {
170
+ acceptTypes: p,
171
+ labelDropzonePrompt: `Додайте файл
172
+ Перетягніть сюди або натисніть`,
173
+ labelDropzoneSubPrompt: "JPG, PNG, WEBP до 5 МБ кожне",
174
+ labelOrClickToSelect: "Обрати",
175
+ maxSizeMB: 5,
176
+ maxFiles: 1,
177
+ singlePick: !0,
178
+ className: "w-[598px]"
179
+ },
180
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
181
+ }, W = {
182
+ args: {
183
+ acceptTypes: y,
184
+ labelDropzonePrompt: "Upload file...",
185
+ labelDropzoneSubPrompt: "PDF only, max 1 MB",
186
+ labelFileTooLarge: "File is too large. Max size is 1 MB.",
187
+ maxSizeMB: 1,
188
+ maxFiles: 1,
189
+ singlePick: !0,
190
+ className: "w-[598px]"
191
+ },
192
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
193
+ }, Y = {
194
+ args: {
195
+ acceptTypes: ["application/pdf"],
196
+ labelDropzonePrompt: "Upload file...",
197
+ labelDropzoneSubPrompt: "Only PDF is supported",
198
+ labelInvalidFileType: "Invalid file type. Please upload a PDF file.",
199
+ maxSizeMB: 5,
200
+ maxFiles: 1,
201
+ singlePick: !0,
202
+ className: "w-[598px]"
203
+ },
204
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
205
+ }, j = {
206
+ args: {
207
+ acceptTypes: p,
208
+ labelDropzonePrompt: "Upload photo...",
209
+ labelDropzoneSubPrompt: "JPG/PNG/WEBP, max 1 MB",
210
+ labelFileTooLarge: "Photo is too large. Max size is 1 MB.",
211
+ maxSizeMB: 1,
212
+ maxFiles: 1,
213
+ singlePick: !0,
214
+ className: "w-[598px]"
215
+ },
216
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
217
+ }, A = {
218
+ args: {
219
+ acceptTypes: p,
220
+ labelDropzonePrompt: "Upload photo...",
221
+ labelDropzoneSubPrompt: "Only image files are supported",
222
+ labelInvalidFileType: "Invalid file type. Please upload an image file.",
223
+ maxSizeMB: 5,
224
+ maxFiles: 1,
225
+ singlePick: !0,
226
+ className: "w-[598px]"
227
+ },
228
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
229
+ }, _ = {
230
+ args: {
231
+ acceptTypes: p,
232
+ labelDropzonePrompt: "Drag photos or choose files",
233
+ labelDropzoneSubPrompt: "JPG, PNG, WEBP · max 1 MB each",
234
+ labelFileTooLarge: "One or more photos are too large. Max size is 1 MB each.",
235
+ maxSizeMB: 1,
236
+ maxFiles: 20,
237
+ singlePick: !1,
238
+ persistentDropzone: !0,
239
+ previewVariant: "image-grid",
240
+ className: "w-[598px]",
241
+ classNames: {
242
+ previewWraper: "w-[75px] h-[75px] rounded-[8px] border-0",
243
+ previewImage: "rounded-[8px] object-cover"
244
+ }
245
+ },
246
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
247
+ }, J = {
248
+ args: {
249
+ acceptTypes: p,
250
+ labelDropzonePrompt: "Drag photos or choose files",
251
+ labelDropzoneSubPrompt: "Only image files are supported",
252
+ labelInvalidFileType: "One or more files have invalid type.",
253
+ maxSizeMB: 5,
254
+ maxFiles: 20,
255
+ singlePick: !1,
256
+ persistentDropzone: !0,
257
+ previewVariant: "image-grid",
258
+ className: "w-[598px]",
259
+ classNames: {
260
+ previewWraper: "w-[75px] h-[75px] rounded-[8px] border-0",
261
+ previewImage: "rounded-[8px] object-cover"
262
+ }
263
+ },
264
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
265
+ }, R = {
266
+ args: {
267
+ acceptTypes: u,
268
+ labelDropzonePrompt: "Upload video...",
269
+ labelDropzoneSubPrompt: "MP4/MOV/AVI/WEBM, max 1 MB",
270
+ labelFileTooLarge: "Video is too large. Max size is 1 MB.",
271
+ maxSizeMB: 1,
272
+ maxFiles: 1,
273
+ singlePick: !0,
274
+ className: "w-[598px]"
275
+ },
276
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
277
+ }, H = {
278
+ args: {
279
+ acceptTypes: u,
280
+ labelDropzonePrompt: "Upload video...",
281
+ labelDropzoneSubPrompt: "Only video files are supported",
282
+ labelInvalidFileType: "Invalid file type. Please upload a video file.",
283
+ maxSizeMB: 100,
284
+ maxFiles: 1,
285
+ singlePick: !0,
286
+ className: "w-[598px]"
287
+ },
288
+ render: (e) => /* @__PURE__ */ o(r, { ...e })
289
+ };
290
+ export {
291
+ Y as FileErrorInvalidType,
292
+ W as FileErrorTooLarge,
293
+ k as Files,
294
+ I as Images,
295
+ O as MultiImagesPersistent,
296
+ G as MultilinePromptSpacing,
297
+ A as PhotoErrorInvalidType,
298
+ j as PhotoErrorTooLarge,
299
+ J as PhotosMultiErrorInvalidType,
300
+ _ as PhotosMultiErrorTooLarge,
301
+ H as VideoErrorInvalidType,
302
+ R as VideoErrorTooLarge,
303
+ C as VideoUploadingMock,
304
+ L as VideoYoutubeLink,
305
+ V as Videos,
306
+ N as default
307
+ };
308
+ //# sourceMappingURL=Dropzone.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Dropzone.stories.js","sources":["../../src/Dropzone/Dropzone.stories.tsx"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\r\nimport type { Meta, StoryObj } from '@storybook/react';\r\n\r\nimport { Dropzone } from './Dropzone';\r\nimport {\r\n DEFAULT_DOCUMENT_TYPES,\r\n DEFAULT_IMAGES_TYPES,\r\n DropzoneValueItem,\r\n DEFAULT_VIDEO_TYPES,\r\n} from './Dropzone.types';\r\n\r\ntype ControlledProps = React.ComponentProps<typeof Dropzone> & {\r\n initialValue?: string[];\r\n};\r\n\r\nfunction ControlledDropzone({ initialValue = [], ...args }: ControlledProps) {\r\n const [value, setValue] = useState<DropzoneValueItem[]>(initialValue);\r\n\r\n return (\r\n <div className=\"w-full space-y-3\">\r\n <Dropzone\r\n {...args}\r\n value={value}\r\n onChangeValue={(items) => setValue(items)}\r\n />\r\n\r\n <div className=\"text-xs text-muted-foreground\">\r\n value:\r\n <pre className=\"mt-1 text-[11px] bg-muted p-2 rounded\">\r\n {JSON.stringify(value, null, 2)}\r\n </pre>\r\n </div>\r\n </div>\r\n );\r\n}\r\n\r\nconst meta = {\r\n title: 'Dropzone',\r\n component: Dropzone,\r\n parameters: {\r\n layout: 'centered',\r\n },\r\n args: {\r\n labelSelectedFiles: 'Selected files',\r\n labelFileTooLarge: 'File is too large',\r\n maxFiles: 1,\r\n maxSizeMB: 100,\r\n singlePick: true,\r\n className: 'w-full',\r\n },\r\n argTypes: {\r\n onChangeValue: { control: false },\r\n value: { control: false },\r\n },\r\n decorators: [\r\n (Story) => (\r\n <div className=\"p-6 w-[680px]\">\r\n <Story />\r\n </div>\r\n ),\r\n ],\r\n} satisfies Meta<typeof Dropzone>;\r\n\r\nexport default meta;\r\n\r\ntype Story = StoryObj<typeof meta>;\r\n\r\nexport const Images: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Upload image',\r\n labelDropzoneSubPrompt: 'Formats: .jpg .jpeg .png .webp',\r\n maxSizeMB: 5,\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const Files: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_DOCUMENT_TYPES,\r\n labelDropzonePrompt: 'Upload file',\r\n labelDropzoneSubPrompt: 'Formats: pdf, doc/docx, xls/xlsx, ppt/pptx, txt, csv',\r\n maxSizeMB: 100,\r\n maxFiles: 1,\r\n singlePick: true,\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const Videos: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_VIDEO_TYPES,\r\n labelDropzonePrompt: 'Upload video',\r\n labelDropzoneSubPrompt: 'Formats: .mp4 .mov .avi .webm',\r\n maxSizeMB: 100,\r\n maxFiles: 1,\r\n singlePick: true,\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const VideoYoutubeLink: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_VIDEO_TYPES,\r\n labelDropzonePrompt: 'Upload video',\r\n labelDropzoneSubPrompt: 'Formats: .mp4 .mov .avi .webm or YouTube URL as value',\r\n maxSizeMB: 100,\r\n maxFiles: 1,\r\n singlePick: true,\r\n },\r\n render: (args) => {\r\n const YoutubeStory = () => {\r\n const [url, setUrl] = useState('https://www.youtube.com/watch?v=dQw4w9WgXcQ');\r\n const value = url.trim() ? [url.trim()] : [];\r\n\r\n return (\r\n <div className=\"w-full space-y-3\">\r\n <input\r\n type=\"text\"\r\n value={url}\r\n onChange={(event) => setUrl(event.target.value)}\r\n placeholder=\"Paste YouTube URL\"\r\n className=\"w-full h-10 rounded-md border border-[#E4E4E7] px-3 text-sm\"\r\n />\r\n\r\n <Dropzone\r\n {...args}\r\n value={value}\r\n onChangeValue={(items) => {\r\n const next = items[0];\r\n if (typeof next === 'string') {\r\n setUrl(next);\r\n }\r\n }}\r\n />\r\n </div>\r\n );\r\n };\r\n\r\n return <YoutubeStory />;\r\n },\r\n};\r\n\r\nfunction UploadingDropzoneMock(args: React.ComponentProps<typeof Dropzone>) {\r\n const [value, setValue] = useState<DropzoneValueItem[]>([]);\r\n const [isUploading, setIsUploading] = useState(false);\r\n const [uploadProgress, setUploadProgress] = useState(0);\r\n const [uploadLoadedBytes, setUploadLoadedBytes] = useState(0);\r\n const [uploadTotalBytes, setUploadTotalBytes] = useState(0);\r\n const timerRef = useRef<ReturnType<typeof setInterval> | null>(null);\r\n\r\n useEffect(() => {\r\n return () => {\r\n if (timerRef.current) clearInterval(timerRef.current);\r\n };\r\n }, []);\r\n\r\n return (\r\n <div className=\"w-full space-y-3\">\r\n <Dropzone\r\n {...args}\r\n value={value}\r\n isUploading={isUploading}\r\n uploadProgress={uploadProgress}\r\n uploadLoadedBytes={uploadLoadedBytes}\r\n uploadTotalBytes={uploadTotalBytes}\r\n onCancelUpload={() => {\r\n if (timerRef.current) clearInterval(timerRef.current);\r\n timerRef.current = null;\r\n setIsUploading(false);\r\n setUploadProgress(0);\r\n setUploadLoadedBytes(0);\r\n setUploadTotalBytes(0);\r\n }}\r\n onChangeValue={(items) => {\r\n setValue(items);\r\n if (!items.length) return;\r\n\r\n if (timerRef.current) clearInterval(timerRef.current);\r\n timerRef.current = null;\r\n\r\n const selected = items[0];\r\n const totalBytes =\r\n selected instanceof File ? selected.size : 50 * 1024 * 1024;\r\n let loadedBytes = 0;\r\n\r\n setUploadTotalBytes(totalBytes);\r\n setUploadLoadedBytes(0);\r\n setUploadProgress(0);\r\n setIsUploading(true);\r\n\r\n timerRef.current = setInterval(() => {\r\n loadedBytes = Math.min(totalBytes, loadedBytes + totalBytes * 0.08);\r\n const progress = totalBytes ? Math.round((loadedBytes / totalBytes) * 100) : 0;\r\n\r\n setUploadLoadedBytes(loadedBytes);\r\n setUploadProgress(progress);\r\n\r\n if (loadedBytes >= totalBytes) {\r\n if (timerRef.current) clearInterval(timerRef.current);\r\n timerRef.current = null;\r\n setTimeout(() => setIsUploading(false), 350);\r\n }\r\n }, 250);\r\n }}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport const VideoUploadingMock: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_VIDEO_TYPES,\r\n labelDropzonePrompt: 'Upload video',\r\n labelDropzoneSubPrompt: 'Formats: .mp4 .mov .avi .webm',\r\n labelUploadingTitle: 'Завантаження відео...',\r\n labelUploadingHint: 'Будь ласка, не закривайте сторінку',\r\n labelUploadingActionCancel: 'Скасувати',\r\n maxSizeMB: 100,\r\n maxFiles: 1,\r\n singlePick: true,\r\n },\r\n render: (args) => <UploadingDropzoneMock {...args} />,\r\n};\r\n\r\nexport const MultiImagesPersistent: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Перетягніть фото або оберіть файли',\r\n labelDropzoneSubPrompt: 'JPG, PNG, WEBP, HEIC · до 5 МБ кожне',\r\n labelOrClickToSelect: 'Завантажити файл',\r\n maxSizeMB: 5,\r\n maxFiles: 20,\r\n singlePick: false,\r\n persistentDropzone: true,\r\n previewVariant: 'image-grid',\r\n className: 'w-[598px]',\r\n classNames: {\r\n previewWraper: 'w-[75px] h-[75px] rounded-[8px] border-0',\r\n previewImage: 'rounded-[8px] object-cover',\r\n },\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const MultilinePromptSpacing: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Додайте файл\\nПеретягніть сюди або натисніть',\r\n labelDropzoneSubPrompt: 'JPG, PNG, WEBP до 5 МБ кожне',\r\n labelOrClickToSelect: 'Обрати',\r\n maxSizeMB: 5,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const FileErrorTooLarge: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_DOCUMENT_TYPES,\r\n labelDropzonePrompt: 'Upload file...',\r\n labelDropzoneSubPrompt: 'PDF only, max 1 MB',\r\n labelFileTooLarge: 'File is too large. Max size is 1 MB.',\r\n maxSizeMB: 1,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const FileErrorInvalidType: Story = {\r\n args: {\r\n acceptTypes: ['application/pdf'],\r\n labelDropzonePrompt: 'Upload file...',\r\n labelDropzoneSubPrompt: 'Only PDF is supported',\r\n labelInvalidFileType: 'Invalid file type. Please upload a PDF file.',\r\n maxSizeMB: 5,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const PhotoErrorTooLarge: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Upload photo...',\r\n labelDropzoneSubPrompt: 'JPG/PNG/WEBP, max 1 MB',\r\n labelFileTooLarge: 'Photo is too large. Max size is 1 MB.',\r\n maxSizeMB: 1,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const PhotoErrorInvalidType: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Upload photo...',\r\n labelDropzoneSubPrompt: 'Only image files are supported',\r\n labelInvalidFileType: 'Invalid file type. Please upload an image file.',\r\n maxSizeMB: 5,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const PhotosMultiErrorTooLarge: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Drag photos or choose files',\r\n labelDropzoneSubPrompt: 'JPG, PNG, WEBP · max 1 MB each',\r\n labelFileTooLarge: 'One or more photos are too large. Max size is 1 MB each.',\r\n maxSizeMB: 1,\r\n maxFiles: 20,\r\n singlePick: false,\r\n persistentDropzone: true,\r\n previewVariant: 'image-grid',\r\n className: 'w-[598px]',\r\n classNames: {\r\n previewWraper: 'w-[75px] h-[75px] rounded-[8px] border-0',\r\n previewImage: 'rounded-[8px] object-cover',\r\n },\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const PhotosMultiErrorInvalidType: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_IMAGES_TYPES,\r\n labelDropzonePrompt: 'Drag photos or choose files',\r\n labelDropzoneSubPrompt: 'Only image files are supported',\r\n labelInvalidFileType: 'One or more files have invalid type.',\r\n maxSizeMB: 5,\r\n maxFiles: 20,\r\n singlePick: false,\r\n persistentDropzone: true,\r\n previewVariant: 'image-grid',\r\n className: 'w-[598px]',\r\n classNames: {\r\n previewWraper: 'w-[75px] h-[75px] rounded-[8px] border-0',\r\n previewImage: 'rounded-[8px] object-cover',\r\n },\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const VideoErrorTooLarge: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_VIDEO_TYPES,\r\n labelDropzonePrompt: 'Upload video...',\r\n labelDropzoneSubPrompt: 'MP4/MOV/AVI/WEBM, max 1 MB',\r\n labelFileTooLarge: 'Video is too large. Max size is 1 MB.',\r\n maxSizeMB: 1,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n\r\nexport const VideoErrorInvalidType: Story = {\r\n args: {\r\n acceptTypes: DEFAULT_VIDEO_TYPES,\r\n labelDropzonePrompt: 'Upload video...',\r\n labelDropzoneSubPrompt: 'Only video files are supported',\r\n labelInvalidFileType: 'Invalid file type. Please upload a video file.',\r\n maxSizeMB: 100,\r\n maxFiles: 1,\r\n singlePick: true,\r\n className: 'w-[598px]',\r\n },\r\n render: (args) => <ControlledDropzone {...args} />,\r\n};\r\n"],"names":["ControlledDropzone","initialValue","args","value","setValue","useState","jsxs","jsx","Dropzone","items","meta","Story","Images","DEFAULT_IMAGES_TYPES","Files","DEFAULT_DOCUMENT_TYPES","Videos","DEFAULT_VIDEO_TYPES","VideoYoutubeLink","url","setUrl","event","next","UploadingDropzoneMock","isUploading","setIsUploading","uploadProgress","setUploadProgress","uploadLoadedBytes","setUploadLoadedBytes","uploadTotalBytes","setUploadTotalBytes","timerRef","useRef","useEffect","selected","totalBytes","loadedBytes","progress","VideoUploadingMock","MultiImagesPersistent","MultilinePromptSpacing","FileErrorTooLarge","FileErrorInvalidType","PhotoErrorTooLarge","PhotoErrorInvalidType","PhotosMultiErrorTooLarge","PhotosMultiErrorInvalidType","VideoErrorTooLarge","VideoErrorInvalidType"],"mappings":"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"}
@@ -13,6 +13,8 @@ export interface DropzoneTranslations {
13
13
  labelUploadErrors?: string;
14
14
  labelFileTooLarge?: string;
15
15
  labelInvalidFileType?: string;
16
+ labelVideoUploaded?: string;
17
+ labelVideoReplace?: string;
16
18
  }
17
19
  export interface DropzoneProps extends DropzoneTranslations, React.HTMLAttributes<HTMLDivElement> {
18
20
  acceptTypes?: string[];
@@ -27,6 +29,18 @@ export interface DropzoneProps extends DropzoneTranslations, React.HTMLAttribute
27
29
  singlePick?: boolean;
28
30
  labelDropzoneClassname?: string;
29
31
  labelDropzoneSubClassname?: string;
32
+ isUploading?: boolean;
33
+ uploadProgress?: number;
34
+ uploadLoadedBytes?: number;
35
+ uploadTotalBytes?: number;
36
+ onCancelUpload?: () => void;
37
+ labelUploadingTitle?: string;
38
+ labelUploadingHint?: string;
39
+ labelUploadingActionCancel?: string;
40
+ persistentDropzone?: boolean;
41
+ previewVariant?: 'default' | 'image-grid';
42
+ designVariant?: 'legacy' | 'modern';
43
+ documentUploadCard?: boolean;
30
44
  }
31
45
  export interface DropzoneStyles {
32
46
  idleWrapper?: string;
@@ -36,8 +50,10 @@ export interface DropzoneStyles {
36
50
  previewImage?: string;
37
51
  previewFile?: string;
38
52
  }
39
- export declare const DEFAULT_FILE_TYPES: string[];
53
+ export declare const DEFAULT_DOCUMENT_TYPES: string[];
40
54
  export declare const DEFAULT_IMAGES_TYPES: string[];
55
+ export declare const DEFAULT_VIDEO_TYPES: string[];
56
+ export declare const DEFAULT_FILE_TYPES: string[];
41
57
  export interface DropzoneControl {
42
58
  setItems: Dispatch<SetStateAction<DropzoneValueItem[]>>;
43
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Dropzone.types.d.ts","sourceRoot":"","sources":["../../src/Dropzone/Dropzone.types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,eAAe,GAAG,cAAc,GAAG,aAAa,CACjD,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,aACf,SAAQ,oBAAoB,EAC1B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAMhC,CAAC;AAGF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;CACzD"}
1
+ {"version":3,"file":"Dropzone.types.d.ts","sourceRoot":"","sources":["../../src/Dropzone/Dropzone.types.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEjD,MAAM,MAAM,iBAAiB,GAAG,IAAI,GAAG,MAAM,CAAC;AAE9C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,iBAAiB,CAAC;IACxB,MAAM,CAAC,EAAE,IAAI,CACX,cAAc,EACd,eAAe,GAAG,cAAc,GAAG,aAAa,CACjD,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,aACf,SAAQ,oBAAoB,EAC1B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;IAC7C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,cAAc,CAAC;IAC5B,KAAK,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,iBAAiB,EAAE,KAAK,IAAI,CAAC;IACrD,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,IAAI,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,cAAc,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC;IAC1C,aAAa,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACpC,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,sBAAsB,UAUlC,CAAC;AAEF,eAAO,MAAM,oBAAoB,UAMhC,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAK/B,CAAC;AAGF,eAAO,MAAM,kBAAkB,UAAyB,CAAC;AAGzD,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC;CACzD"}
@@ -1,18 +1,29 @@
1
1
  const e = [
2
+ "application/pdf",
2
3
  "application/msword",
3
4
  "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
5
+ "application/vnd.ms-excel",
6
+ "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
7
+ "application/vnd.ms-powerpoint",
8
+ "application/vnd.openxmlformats-officedocument.presentationml.presentation",
4
9
  "text/csv",
5
- "text/plain",
6
- "application/pdf"
7
- ], i = [
10
+ "text/plain"
11
+ ], o = [
8
12
  "image/png",
9
13
  "image/jpeg",
10
14
  "image/jpg",
11
- "image/webp",
12
- "image/gif"
13
- ];
15
+ "image/webp"
16
+ // 'image/gif', // TODO: normalize this type
17
+ ], i = [
18
+ "video/mp4",
19
+ "video/quicktime",
20
+ "video/x-msvideo",
21
+ "video/webm"
22
+ ], n = e;
14
23
  export {
15
- e as DEFAULT_FILE_TYPES,
16
- i as DEFAULT_IMAGES_TYPES
24
+ e as DEFAULT_DOCUMENT_TYPES,
25
+ n as DEFAULT_FILE_TYPES,
26
+ o as DEFAULT_IMAGES_TYPES,
27
+ i as DEFAULT_VIDEO_TYPES
17
28
  };
18
29
  //# sourceMappingURL=Dropzone.types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropzone.types.js","sources":["../../src/Dropzone/Dropzone.types.tsx"],"sourcesContent":["import { FileRejection } from 'react-dropzone';\r\nimport { Dispatch, SetStateAction } from 'react';\r\n\r\nexport type DropzoneValueItem = File | string;\r\n\r\nexport interface FilePreviewProps {\r\n item: DropzoneValueItem;\r\n styles?: Pick<\r\n DropzoneStyles,\r\n 'previewWraper' | 'previewImage' | 'previewFile'\r\n >;\r\n}\r\n\r\nexport interface DropzoneTranslations {\r\n labelDropzonePrompt?: string;\r\n labelDropzoneSubPrompt?: string;\r\n labelOrClickToSelect?: string;\r\n labelSelectedFiles?: string;\r\n labelUploadErrors?: string;\r\n labelFileTooLarge?: string;\r\n labelInvalidFileType?: string;\r\n}\r\n\r\nexport interface DropzoneProps\r\n extends DropzoneTranslations,\r\n React.HTMLAttributes<HTMLDivElement> {\r\n acceptTypes?: string[];\r\n maxSizeMB: number;\r\n maxFiles?: number;\r\n onErrors?: (errors: FileRejection[]) => void;\r\n hideErrors?: boolean;\r\n disabled?: boolean;\r\n classNames?: DropzoneStyles;\r\n value?: DropzoneValueItem[];\r\n onChangeValue?: (items: DropzoneValueItem[]) => void;\r\n singlePick?: boolean;\r\n labelDropzoneClassname?: string;\r\n labelDropzoneSubClassname?: string;\r\n}\r\n\r\nexport interface DropzoneStyles {\r\n idleWrapper?: string;\r\n previewWrapper?: string;\r\n errorWrapper?: string;\r\n previewWraper?: string;\r\n previewImage?: string;\r\n previewFile?: string;\r\n}\r\n\r\nexport const DEFAULT_FILE_TYPES = [\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'text/csv',\r\n 'text/plain',\r\n 'application/pdf',\r\n];\r\n\r\nexport const DEFAULT_IMAGES_TYPES = [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/jpg',\r\n 'image/webp',\r\n 'image/gif',\r\n];\r\n\r\n\r\nexport interface DropzoneControl {\r\n setItems: Dispatch<SetStateAction<DropzoneValueItem[]>>;\r\n}\r\n"],"names":["DEFAULT_FILE_TYPES","DEFAULT_IMAGES_TYPES"],"mappings":"AAiDO,MAAMA,IAAqB;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
1
+ {"version":3,"file":"Dropzone.types.js","sources":["../../src/Dropzone/Dropzone.types.tsx"],"sourcesContent":["import { FileRejection } from 'react-dropzone';\r\nimport { Dispatch, SetStateAction } from 'react';\r\n\r\nexport type DropzoneValueItem = File | string;\r\n\r\nexport interface FilePreviewProps {\r\n item: DropzoneValueItem;\r\n styles?: Pick<\r\n DropzoneStyles,\r\n 'previewWraper' | 'previewImage' | 'previewFile'\r\n >;\r\n}\r\n\r\nexport interface DropzoneTranslations {\r\n labelDropzonePrompt?: string;\r\n labelDropzoneSubPrompt?: string;\r\n labelOrClickToSelect?: string;\r\n labelSelectedFiles?: string;\r\n labelUploadErrors?: string;\r\n labelFileTooLarge?: string;\r\n labelInvalidFileType?: string;\r\n labelVideoUploaded?: string;\r\n labelVideoReplace?: string;\r\n}\r\n\r\nexport interface DropzoneProps\r\n extends DropzoneTranslations,\r\n React.HTMLAttributes<HTMLDivElement> {\r\n acceptTypes?: string[];\r\n maxSizeMB: number;\r\n maxFiles?: number;\r\n onErrors?: (errors: FileRejection[]) => void;\r\n hideErrors?: boolean;\r\n disabled?: boolean;\r\n classNames?: DropzoneStyles;\r\n value?: DropzoneValueItem[];\r\n onChangeValue?: (items: DropzoneValueItem[]) => void;\r\n singlePick?: boolean;\r\n labelDropzoneClassname?: string;\r\n labelDropzoneSubClassname?: string;\r\n isUploading?: boolean;\r\n uploadProgress?: number;\r\n uploadLoadedBytes?: number;\r\n uploadTotalBytes?: number;\r\n onCancelUpload?: () => void;\r\n labelUploadingTitle?: string;\r\n labelUploadingHint?: string;\r\n labelUploadingActionCancel?: string;\r\n persistentDropzone?: boolean;\r\n previewVariant?: 'default' | 'image-grid';\r\n designVariant?: 'legacy' | 'modern';\r\n documentUploadCard?: boolean;\r\n}\r\n\r\nexport interface DropzoneStyles {\r\n idleWrapper?: string;\r\n previewWrapper?: string;\r\n errorWrapper?: string;\r\n previewWraper?: string;\r\n previewImage?: string;\r\n previewFile?: string;\r\n}\r\n\r\nexport const DEFAULT_DOCUMENT_TYPES = [\r\n 'application/pdf',\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/vnd.ms-powerpoint',\r\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\r\n 'text/csv',\r\n 'text/plain',\r\n];\r\n\r\nexport const DEFAULT_IMAGES_TYPES = [\r\n 'image/png',\r\n 'image/jpeg',\r\n 'image/jpg',\r\n 'image/webp',\r\n // 'image/gif', // TODO: normalize this type\r\n];\r\n\r\nexport const DEFAULT_VIDEO_TYPES = [\r\n 'video/mp4',\r\n 'video/quicktime',\r\n 'video/x-msvideo',\r\n 'video/webm',\r\n];\r\n\r\n// Backward-compatible alias.\r\nexport const DEFAULT_FILE_TYPES = DEFAULT_DOCUMENT_TYPES;\r\n\r\n\r\nexport interface DropzoneControl {\r\n setItems: Dispatch<SetStateAction<DropzoneValueItem[]>>;\r\n}\r\n"],"names":["DEFAULT_DOCUMENT_TYPES","DEFAULT_IMAGES_TYPES","DEFAULT_VIDEO_TYPES","DEFAULT_FILE_TYPES"],"mappings":"AA+DO,MAAMA,IAAyB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEaC,IAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAEF,GAEaC,IAAsB;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAGaC,IAAqBH;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DropzoneFilePreview.d.ts","sourceRoot":"","sources":["../../src/Dropzone/DropzoneFilePreview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAwB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAI1E,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA8D5C,CAAC"}
1
+ {"version":3,"file":"DropzoneFilePreview.d.ts","sourceRoot":"","sources":["../../src/Dropzone/DropzoneFilePreview.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAuB,MAAM,OAAO,CAAC;AAEhD,OAAO,EAAwB,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAM1E,OAAO,wCAAwC,CAAC;AAChD,OAAO,iDAAiD,CAAC;AACzD,OAAO,yDAAyD,CAAC;AAEjE,eAAO,MAAM,WAAW,EAAE,EAAE,CAAC,gBAAgB,CA8E5C,CAAC"}
@@ -1,48 +1,68 @@
1
- import { jsx as n, jsxs as d } from "react/jsx-runtime";
2
- import { useState as u, useEffect as f } from "react";
1
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
2
+ import { useState as p, useEffect as f } from "react";
3
3
  import { File as m } from "lucide-react";
4
- import { DEFAULT_IMAGES_TYPES as p } from "./Dropzone.types.js";
4
+ import { DEFAULT_IMAGES_TYPES as w } from "./Dropzone.types.js";
5
5
  import { isFile as a } from "./DropzoneUtils.js";
6
- import { cn as t } from "@oneplatformdev/utils";
7
- const N = ({ item: e, styles: s }) => {
8
- const [c, r] = u(null), i = a(e) && p.includes(e.type);
6
+ import { cn as i } from "@oneplatformdev/utils";
7
+ import { MediaPlayer as x, MediaProvider as v } from "@vidstack/react";
8
+ import { DefaultVideoLayout as h, defaultLayoutIcons as y } from "@vidstack/react/player/layouts/default";
9
+ import "@vidstack/react/player/styles/base.css";
10
+ import "@vidstack/react/player/styles/default/theme.css";
11
+ import "@vidstack/react/player/styles/default/layouts/video.css";
12
+ const E = ({ item: e, styles: t }) => {
13
+ const [s, o] = p(null), d = a(e) && w.includes(e.type), c = a(e) && e.type.includes("video");
9
14
  return f(() => {
10
- let l = null;
11
- if (a(e) && i) {
12
- const o = new FileReader();
13
- return o.onloadend = () => r(o.result), o.readAsDataURL(e), () => r(null);
15
+ let r = null;
16
+ if (a(e) && d) {
17
+ const n = new FileReader();
18
+ return n.onloadend = () => o(n.result), n.readAsDataURL(e), () => o(null);
14
19
  } else {
15
20
  if (typeof e == "string")
16
- return l = new Image(), l.src = e, l.onload = () => r(e), l.onerror = () => r(null), () => {
17
- l.onload = null, l.onerror = null;
21
+ return r = new Image(), r.src = e, r.onload = () => o(e), r.onerror = () => o(null), () => {
22
+ r.onload = null, r.onerror = null;
18
23
  };
19
- r(null);
24
+ if (a(e) && c) {
25
+ const n = URL.createObjectURL(e);
26
+ return o(n), () => URL.revokeObjectURL(n);
27
+ } else
28
+ o(null);
20
29
  }
21
- return () => r(null);
22
- }, [e, i]), /* @__PURE__ */ n(
30
+ return () => o(null);
31
+ }, [e, d, c]), /* @__PURE__ */ l(
23
32
  "div",
24
33
  {
25
- className: t(
34
+ className: i(
26
35
  "w-32 h-32 border border-gray-300 rounded-md overflow-hidden flex items-center justify-center",
27
- s?.previewWraper
36
+ t?.previewWraper
28
37
  ),
29
- children: c ? /* @__PURE__ */ n(
38
+ children: s && c ? /* @__PURE__ */ l("div", { className: "w-full h-full bg-black", onClick: (r) => r.stopPropagation(), children: /* @__PURE__ */ u(
39
+ x,
40
+ {
41
+ src: a(e) ? { src: s, type: e.type } : s,
42
+ className: "h-full w-full bg-black text-white",
43
+ playsInline: !0,
44
+ children: [
45
+ /* @__PURE__ */ l(v, {}),
46
+ /* @__PURE__ */ l(h, { icons: y })
47
+ ]
48
+ }
49
+ ) }) : s ? /* @__PURE__ */ l(
30
50
  "img",
31
51
  {
32
- src: c,
52
+ src: s,
33
53
  alt: a(e) ? e.name : "external-image",
34
- className: t("w-full h-full object-cover", s?.previewImage)
54
+ className: i("w-full h-full object-cover", t?.previewImage)
35
55
  }
36
- ) : /* @__PURE__ */ d(
56
+ ) : /* @__PURE__ */ u(
37
57
  "div",
38
58
  {
39
- className: t(
59
+ className: i(
40
60
  "flex flex-col items-center justify-center text-gray-500 text-sm p-2 text-center",
41
- s?.previewFile
61
+ t?.previewFile
42
62
  ),
43
63
  children: [
44
- /* @__PURE__ */ n(m, { className: "w-6 h-6" }),
45
- a(e) ? /* @__PURE__ */ n("span", { className: "text-xs break-all", children: e.name }) : /* @__PURE__ */ n("span", { className: "text-xs break-all", children: e })
64
+ /* @__PURE__ */ l(m, { className: "w-6 h-6" }),
65
+ a(e) ? /* @__PURE__ */ l("span", { className: "text-xs break-all", children: e.name }) : /* @__PURE__ */ l("span", { className: "text-xs break-all", children: e })
46
66
  ]
47
67
  }
48
68
  )
@@ -50,6 +70,6 @@ const N = ({ item: e, styles: s }) => {
50
70
  );
51
71
  };
52
72
  export {
53
- N as FilePreview
73
+ E as FilePreview
54
74
  };
55
75
  //# sourceMappingURL=DropzoneFilePreview.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropzoneFilePreview.js","sources":["../../src/Dropzone/DropzoneFilePreview.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react';\r\nimport { File as FileIcon } from 'lucide-react';\r\nimport { DEFAULT_IMAGES_TYPES, FilePreviewProps } from './Dropzone.types';\r\nimport { isFile } from './DropzoneUtils';\r\nimport { cn } from '@oneplatformdev/utils';\r\n\r\nexport const FilePreview: FC<FilePreviewProps> = ({ item, styles }) => {\r\n const [preview, setPreview] = useState<string | null>(null);\r\n\r\n const isFileTypeImage =\r\n isFile(item) && DEFAULT_IMAGES_TYPES.includes(item.type);\r\n\r\n useEffect(() => {\r\n let img: HTMLImageElement | null = null;\r\n\r\n if (isFile(item) && isFileTypeImage) {\r\n const reader = new FileReader();\r\n reader.onloadend = () => setPreview(reader.result as string);\r\n reader.readAsDataURL(item);\r\n\r\n return () => setPreview(null);\r\n } else if (typeof item === 'string') {\r\n img = new Image();\r\n img.src = item;\r\n img.onload = () => setPreview(item);\r\n img.onerror = () => setPreview(null);\r\n\r\n return () => {\r\n img!.onload = null;\r\n img!.onerror = null;\r\n };\r\n } else {\r\n setPreview(null);\r\n }\r\n\r\n return () => setPreview(null);\r\n }, [item, isFileTypeImage]);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n 'w-32 h-32 border border-gray-300 rounded-md overflow-hidden flex items-center justify-center',\r\n styles?.previewWraper\r\n )}\r\n >\r\n {preview ? (\r\n <img\r\n src={preview}\r\n alt={isFile(item) ? item.name : 'external-image'}\r\n className={cn('w-full h-full object-cover', styles?.previewImage)}\r\n />\r\n ) : (\r\n <div\r\n className={cn(\r\n 'flex flex-col items-center justify-center text-gray-500 text-sm p-2 text-center',\r\n styles?.previewFile\r\n )}\r\n >\r\n <FileIcon className=\"w-6 h-6\" />\r\n {!isFile(item) ? (\r\n <span className=\"text-xs break-all\">{item}</span>\r\n ) : (\r\n <span className=\"text-xs break-all\">{item.name}</span>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n"],"names":["FilePreview","item","styles","preview","setPreview","useState","isFileTypeImage","isFile","DEFAULT_IMAGES_TYPES","useEffect","img","reader","jsx","cn","jsxs","FileIcon"],"mappings":";;;;;;AAMO,MAAMA,IAAoC,CAAC,EAAE,MAAAC,GAAM,QAAAC,QAAa;AACrE,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAwB,IAAI,GAEpDC,IACJC,EAAON,CAAI,KAAKO,EAAqB,SAASP,EAAK,IAAI;AAEzD,SAAAQ,EAAU,MAAM;AACd,QAAIC,IAA+B;AAEnC,QAAIH,EAAON,CAAI,KAAKK,GAAiB;AACnC,YAAMK,IAAS,IAAI,WAAA;AACnB,aAAAA,EAAO,YAAY,MAAMP,EAAWO,EAAO,MAAgB,GAC3DA,EAAO,cAAcV,CAAI,GAElB,MAAMG,EAAW,IAAI;AAAA,IAC9B,OAAA;AAAA,UAAW,OAAOH,KAAS;AACzB,eAAAS,IAAM,IAAI,MAAA,GACVA,EAAI,MAAMT,GACVS,EAAI,SAAS,MAAMN,EAAWH,CAAI,GAClCS,EAAI,UAAU,MAAMN,EAAW,IAAI,GAE5B,MAAM;AACX,UAAAM,EAAK,SAAS,MACdA,EAAK,UAAU;AAAA,QACjB;AAEA,MAAAN,EAAW,IAAI;AAAA;AAGjB,WAAO,MAAMA,EAAW,IAAI;AAAA,EAC9B,GAAG,CAACH,GAAMK,CAAe,CAAC,GAGxB,gBAAAM;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAX,GAAQ;AAAA,MAAA;AAAA,MAGT,UAAAC,IACC,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKT;AAAA,UACL,KAAKI,EAAON,CAAI,IAAIA,EAAK,OAAO;AAAA,UAChC,WAAWY,EAAG,8BAA8BX,GAAQ,YAAY;AAAA,QAAA;AAAA,MAAA,IAGlE,gBAAAY;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWD;AAAA,YACT;AAAA,YACAX,GAAQ;AAAA,UAAA;AAAA,UAGV,UAAA;AAAA,YAAA,gBAAAU,EAACG,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,YAC5BR,EAAON,CAAI,IAGX,gBAAAW,EAAC,QAAA,EAAK,WAAU,qBAAqB,YAAK,KAAA,CAAK,sBAF9C,QAAA,EAAK,WAAU,qBAAqB,UAAAX,EAAA,CAAK;AAAA,UAEK;AAAA,QAAA;AAAA,MAAA;AAAA,IAEnD;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"DropzoneFilePreview.js","sources":["../../src/Dropzone/DropzoneFilePreview.tsx"],"sourcesContent":["import { FC, useEffect, useState } from 'react';\r\nimport { File as FileIcon } from 'lucide-react';\r\nimport { DEFAULT_IMAGES_TYPES, FilePreviewProps } from './Dropzone.types';\r\nimport { isFile } from './DropzoneUtils';\r\nimport { cn } from '@oneplatformdev/utils';\r\nimport { MediaPlayer, MediaProvider } from '@vidstack/react';\r\nimport { defaultLayoutIcons, DefaultVideoLayout } from '@vidstack/react/player/layouts/default';\r\n\r\nimport '@vidstack/react/player/styles/base.css';\r\nimport '@vidstack/react/player/styles/default/theme.css';\r\nimport '@vidstack/react/player/styles/default/layouts/video.css';\r\n\r\nexport const FilePreview: FC<FilePreviewProps> = ({ item, styles }) => {\r\n const [preview, setPreview] = useState<string | null>(null);\r\n\r\n const isFileTypeImage =\r\n isFile(item) && DEFAULT_IMAGES_TYPES.includes(item.type);\r\n const isFileTypeVideo = isFile(item) && item.type.includes('video');\r\n\r\n useEffect(() => {\r\n let img: HTMLImageElement | null = null;\r\n\r\n if (isFile(item) && isFileTypeImage) {\r\n const reader = new FileReader();\r\n reader.onloadend = () => setPreview(reader.result as string);\r\n reader.readAsDataURL(item);\r\n\r\n return () => setPreview(null);\r\n } else if (typeof item === 'string') {\r\n img = new Image();\r\n img.src = item;\r\n img.onload = () => setPreview(item);\r\n img.onerror = () => setPreview(null);\r\n\r\n return () => {\r\n img!.onload = null;\r\n img!.onerror = null;\r\n };\r\n } else if (isFile(item) && isFileTypeVideo) {\r\n const objectUrl = URL.createObjectURL(item);\r\n setPreview(objectUrl);\r\n return () => URL.revokeObjectURL(objectUrl);\r\n } else {\r\n setPreview(null);\r\n }\r\n\r\n return () => setPreview(null);\r\n }, [item, isFileTypeImage, isFileTypeVideo]);\r\n\r\n return (\r\n <div\r\n className={cn(\r\n 'w-32 h-32 border border-gray-300 rounded-md overflow-hidden flex items-center justify-center',\r\n styles?.previewWraper\r\n )}\r\n >\r\n {preview && isFileTypeVideo ? (\r\n <div className=\"w-full h-full bg-black\" onClick={(event) => event.stopPropagation()}>\r\n <MediaPlayer\r\n src={isFile(item) ? { src: preview, type: item.type } : preview}\r\n className=\"h-full w-full bg-black text-white\"\r\n playsInline\r\n >\r\n <MediaProvider />\r\n <DefaultVideoLayout icons={defaultLayoutIcons} />\r\n </MediaPlayer>\r\n </div>\r\n ) : preview ? (\r\n <img\r\n src={preview}\r\n alt={isFile(item) ? item.name : 'external-image'}\r\n className={cn('w-full h-full object-cover', styles?.previewImage)}\r\n />\r\n ) : (\r\n <div\r\n className={cn(\r\n 'flex flex-col items-center justify-center text-gray-500 text-sm p-2 text-center',\r\n styles?.previewFile\r\n )}\r\n >\r\n <FileIcon className=\"w-6 h-6\" />\r\n {!isFile(item) ? (\r\n <span className=\"text-xs break-all\">{item}</span>\r\n ) : (\r\n <span className=\"text-xs break-all\">{item.name}</span>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n"],"names":["FilePreview","item","styles","preview","setPreview","useState","isFileTypeImage","isFile","DEFAULT_IMAGES_TYPES","isFileTypeVideo","useEffect","img","reader","objectUrl","jsx","cn","event","jsxs","MediaPlayer","MediaProvider","DefaultVideoLayout","defaultLayoutIcons","FileIcon"],"mappings":";;;;;;;;;;;AAYO,MAAMA,IAAoC,CAAC,EAAE,MAAAC,GAAM,QAAAC,QAAa;AACrE,QAAM,CAACC,GAASC,CAAU,IAAIC,EAAwB,IAAI,GAEpDC,IACJC,EAAON,CAAI,KAAKO,EAAqB,SAASP,EAAK,IAAI,GACnDQ,IAAkBF,EAAON,CAAI,KAAKA,EAAK,KAAK,SAAS,OAAO;AAElE,SAAAS,EAAU,MAAM;AACd,QAAIC,IAA+B;AAEnC,QAAIJ,EAAON,CAAI,KAAKK,GAAiB;AACnC,YAAMM,IAAS,IAAI,WAAA;AACnB,aAAAA,EAAO,YAAY,MAAMR,EAAWQ,EAAO,MAAgB,GAC3DA,EAAO,cAAcX,CAAI,GAElB,MAAMG,EAAW,IAAI;AAAA,IAC9B,OAAA;AAAA,UAAW,OAAOH,KAAS;AACzB,eAAAU,IAAM,IAAI,MAAA,GACVA,EAAI,MAAMV,GACVU,EAAI,SAAS,MAAMP,EAAWH,CAAI,GAClCU,EAAI,UAAU,MAAMP,EAAW,IAAI,GAE5B,MAAM;AACX,UAAAO,EAAK,SAAS,MACdA,EAAK,UAAU;AAAA,QACjB;AACF,UAAWJ,EAAON,CAAI,KAAKQ,GAAiB;AAC1C,cAAMI,IAAY,IAAI,gBAAgBZ,CAAI;AAC1C,eAAAG,EAAWS,CAAS,GACb,MAAM,IAAI,gBAAgBA,CAAS;AAAA,MAC5C;AACE,QAAAT,EAAW,IAAI;AAAA;AAGjB,WAAO,MAAMA,EAAW,IAAI;AAAA,EAC9B,GAAG,CAACH,GAAMK,GAAiBG,CAAe,CAAC,GAGzC,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC;AAAA,QACT;AAAA,QACAb,GAAQ;AAAA,MAAA;AAAA,MAGT,UAAAC,KAAWM,IACV,gBAAAK,EAAC,OAAA,EAAI,WAAU,0BAAyB,SAAS,CAACE,MAAUA,EAAM,gBAAA,GAChE,UAAA,gBAAAC;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,KAAKX,EAAON,CAAI,IAAI,EAAE,KAAKE,GAAS,MAAMF,EAAK,KAAA,IAASE;AAAA,UACxD,WAAU;AAAA,UACV,aAAW;AAAA,UAEX,UAAA;AAAA,YAAA,gBAAAW,EAACK,GAAA,EAAc;AAAA,YACf,gBAAAL,EAACM,GAAA,EAAmB,OAAOC,EAAA,CAAoB;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA,EACjD,CACF,IACElB,IACF,gBAAAW;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKX;AAAA,UACL,KAAKI,EAAON,CAAI,IAAIA,EAAK,OAAO;AAAA,UAChC,WAAWc,EAAG,8BAA8Bb,GAAQ,YAAY;AAAA,QAAA;AAAA,MAAA,IAGlE,gBAAAe;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWF;AAAA,YACT;AAAA,YACAb,GAAQ;AAAA,UAAA;AAAA,UAGV,UAAA;AAAA,YAAA,gBAAAY,EAACQ,GAAA,EAAS,WAAU,UAAA,CAAU;AAAA,YAC5Bf,EAAON,CAAI,IAGX,gBAAAa,EAAC,QAAA,EAAK,WAAU,qBAAqB,YAAK,KAAA,CAAK,sBAF9C,QAAA,EAAK,WAAU,qBAAqB,UAAAb,EAAA,CAAK;AAAA,UAEK;AAAA,QAAA;AAAA,MAAA;AAAA,IAEnD;AAAA,EAAA;AAIR;"}
@@ -3,8 +3,11 @@ export declare const transformImageToSrc: (preview?: string | File | null) => st
3
3
  interface SinglePickPreviewProps {
4
4
  item: DropzoneValueItem;
5
5
  disabled?: boolean;
6
- onRemoveClick: (e: React.MouseEvent<HTMLDivElement>) => void;
6
+ onRemoveClick: (e: React.MouseEvent<HTMLElement>) => void;
7
+ onReplaceClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
8
+ labelUploaded?: string;
9
+ labelReplace?: string;
7
10
  }
8
- export declare const DropzoneSinglePickPreview: ({ item, disabled, onRemoveClick, }: SinglePickPreviewProps) => import("react/jsx-runtime").JSX.Element;
11
+ export declare const DropzoneSinglePickPreview: ({ item, disabled, onRemoveClick, onReplaceClick, labelReplace, }: SinglePickPreviewProps) => import("react/jsx-runtime").JSX.Element;
9
12
  export {};
10
13
  //# sourceMappingURL=DropzoneSinglePickPreview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DropzoneSinglePickPreview.d.ts","sourceRoot":"","sources":["../../src/Dropzone/DropzoneSinglePickPreview.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAIrD,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,GAAG,IAAI,GAAG,IAAI,KAAG,MAYpE,CAAC;AAEF,UAAU,sBAAsB;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CAC9D;AAED,eAAO,MAAM,yBAAyB,GAAI,oCAIvC,sBAAsB,4CAkCxB,CAAC"}
1
+ {"version":3,"file":"DropzoneSinglePickPreview.d.ts","sourceRoot":"","sources":["../../src/Dropzone/DropzoneSinglePickPreview.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAOrD,OAAO,wCAAwC,CAAC;AAChD,OAAO,iDAAiD,CAAC;AACzD,OAAO,yDAAyD,CAAC;AACjE,OAAO,iCAAiC,CAAC;AAGzC,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,GAAG,IAAI,GAAG,IAAI,KAAG,MAYpE,CAAC;AAqCF,UAAU,sBAAsB;IAC9B,IAAI,EAAE,iBAAiB,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;IAC1D,cAAc,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,eAAO,MAAM,yBAAyB,GAAI,kEAMvC,sBAAsB,4CAyIxB,CAAC"}