@cloud-ru/ds-dropzone 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +201 -0
  3. package/README.md +356 -0
  4. package/dist/cjs/components/Dropzone/Dropzone.d.ts +25 -0
  5. package/dist/cjs/components/Dropzone/Dropzone.js +11 -0
  6. package/dist/cjs/components/Dropzone/index.d.ts +1 -0
  7. package/dist/cjs/components/Dropzone/index.js +17 -0
  8. package/dist/cjs/components/FileUpload/FileUpload.d.ts +45 -0
  9. package/dist/cjs/components/FileUpload/FileUpload.js +56 -0
  10. package/dist/cjs/components/FileUpload/index.d.ts +1 -0
  11. package/dist/cjs/components/FileUpload/index.js +17 -0
  12. package/dist/cjs/components/FileUpload/styles.module.css +3 -0
  13. package/dist/cjs/components/HiddenDropZone/HiddenDropZone.d.ts +10 -0
  14. package/dist/cjs/components/HiddenDropZone/HiddenDropZone.js +19 -0
  15. package/dist/cjs/components/HiddenDropZone/index.d.ts +1 -0
  16. package/dist/cjs/components/HiddenDropZone/index.js +17 -0
  17. package/dist/cjs/components/HiddenDropZone/styles.module.css +20 -0
  18. package/dist/cjs/components/PrivateDropZone/PrivateDropZone.d.ts +2 -0
  19. package/dist/cjs/components/PrivateDropZone/PrivateDropZone.js +62 -0
  20. package/dist/cjs/components/PrivateDropZone/constants.d.ts +1 -0
  21. package/dist/cjs/components/PrivateDropZone/constants.js +5 -0
  22. package/dist/cjs/components/PrivateDropZone/index.d.ts +2 -0
  23. package/dist/cjs/components/PrivateDropZone/index.js +5 -0
  24. package/dist/cjs/components/PrivateDropZone/styles.module.css +405 -0
  25. package/dist/cjs/components/PrivateDropZone/types.d.ts +23 -0
  26. package/dist/cjs/components/PrivateDropZone/types.js +2 -0
  27. package/dist/cjs/components/index.d.ts +3 -0
  28. package/dist/cjs/components/index.js +19 -0
  29. package/dist/cjs/constants.d.ts +17 -0
  30. package/dist/cjs/constants.js +20 -0
  31. package/dist/cjs/hooks/useDrag.d.ts +7 -0
  32. package/dist/cjs/hooks/useDrag.js +30 -0
  33. package/dist/cjs/index.d.ts +4 -0
  34. package/dist/cjs/index.js +20 -0
  35. package/dist/cjs/package.json +3 -0
  36. package/dist/cjs/style.css +428 -0
  37. package/dist/cjs/types.d.ts +33 -0
  38. package/dist/cjs/types.js +2 -0
  39. package/dist/cjs/utils.d.ts +37 -0
  40. package/dist/cjs/utils.js +70 -0
  41. package/dist/esm/components/Dropzone/Dropzone.d.ts +25 -0
  42. package/dist/esm/components/Dropzone/Dropzone.js +8 -0
  43. package/dist/esm/components/Dropzone/index.d.ts +1 -0
  44. package/dist/esm/components/Dropzone/index.js +1 -0
  45. package/dist/esm/components/FileUpload/FileUpload.d.ts +45 -0
  46. package/dist/esm/components/FileUpload/FileUpload.js +50 -0
  47. package/dist/esm/components/FileUpload/index.d.ts +1 -0
  48. package/dist/esm/components/FileUpload/index.js +1 -0
  49. package/dist/esm/components/FileUpload/styles.module.css +3 -0
  50. package/dist/esm/components/HiddenDropZone/HiddenDropZone.d.ts +10 -0
  51. package/dist/esm/components/HiddenDropZone/HiddenDropZone.js +13 -0
  52. package/dist/esm/components/HiddenDropZone/index.d.ts +1 -0
  53. package/dist/esm/components/HiddenDropZone/index.js +1 -0
  54. package/dist/esm/components/HiddenDropZone/styles.module.css +20 -0
  55. package/dist/esm/components/PrivateDropZone/PrivateDropZone.d.ts +2 -0
  56. package/dist/esm/components/PrivateDropZone/PrivateDropZone.js +56 -0
  57. package/dist/esm/components/PrivateDropZone/constants.d.ts +1 -0
  58. package/dist/esm/components/PrivateDropZone/constants.js +1 -0
  59. package/dist/esm/components/PrivateDropZone/index.d.ts +2 -0
  60. package/dist/esm/components/PrivateDropZone/index.js +1 -0
  61. package/dist/esm/components/PrivateDropZone/styles.module.css +405 -0
  62. package/dist/esm/components/PrivateDropZone/types.d.ts +23 -0
  63. package/dist/esm/components/PrivateDropZone/types.js +1 -0
  64. package/dist/esm/components/index.d.ts +3 -0
  65. package/dist/esm/components/index.js +3 -0
  66. package/dist/esm/constants.d.ts +17 -0
  67. package/dist/esm/constants.js +17 -0
  68. package/dist/esm/hooks/useDrag.d.ts +7 -0
  69. package/dist/esm/hooks/useDrag.js +27 -0
  70. package/dist/esm/index.d.ts +4 -0
  71. package/dist/esm/index.js +4 -0
  72. package/dist/esm/style.css +428 -0
  73. package/dist/esm/types.d.ts +33 -0
  74. package/dist/esm/types.js +1 -0
  75. package/dist/esm/utils.d.ts +37 -0
  76. package/dist/esm/utils.js +64 -0
  77. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  78. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  79. package/package.json +43 -0
  80. package/src/components/Dropzone/Dropzone.tsx +40 -0
  81. package/src/components/Dropzone/index.ts +1 -0
  82. package/src/components/FileUpload/FileUpload.tsx +145 -0
  83. package/src/components/FileUpload/index.ts +1 -0
  84. package/src/components/FileUpload/styles.module.scss +3 -0
  85. package/src/components/HiddenDropZone/HiddenDropZone.tsx +39 -0
  86. package/src/components/HiddenDropZone/index.ts +1 -0
  87. package/src/components/HiddenDropZone/styles.module.scss +20 -0
  88. package/src/components/PrivateDropZone/PrivateDropZone.tsx +122 -0
  89. package/src/components/PrivateDropZone/constants.ts +1 -0
  90. package/src/components/PrivateDropZone/index.ts +2 -0
  91. package/src/components/PrivateDropZone/styles.module.scss +126 -0
  92. package/src/components/PrivateDropZone/types.ts +29 -0
  93. package/src/components/index.ts +3 -0
  94. package/src/constants.ts +19 -0
  95. package/src/hooks/useDrag.ts +49 -0
  96. package/src/index.ts +4 -0
  97. package/src/types.ts +36 -0
  98. package/src/utils.ts +89 -0
@@ -0,0 +1,405 @@
1
+ @charset "UTF-8";
2
+ .hidden{
3
+ display:none;
4
+ }
5
+
6
+ .content{
7
+ z-index:1;
8
+ display:flex;
9
+ align-items:center;
10
+ justify-content:center;
11
+ width:100%;
12
+ height:100%;
13
+ }
14
+
15
+ .overLayer{
16
+ pointer-events:none;
17
+ position:absolute;
18
+ inset:0;
19
+ border-radius:inherit;
20
+ visibility:hidden;
21
+ background-color:var(--sn-theme-color-material-stateLayer-activated-hovered-filled, var(--sn-brand-color-state-activated-hovered-background, var(--sn-brandRole-color-brandA-backgroundActivatedHovered, rgba(56, 159, 116, 0.3490196078))));
22
+ }
23
+
24
+ .borderLayer{
25
+ visibility:initial;
26
+ }
27
+
28
+ .acrylic{
29
+ pointer-events:none;
30
+ position:absolute;
31
+ inset:0;
32
+ border-radius:inherit;
33
+ }
34
+
35
+ .container{
36
+ cursor:pointer;
37
+ position:relative;
38
+ z-index:0;
39
+ display:flex;
40
+ flex-direction:column;
41
+ align-items:center;
42
+ justify-content:center;
43
+ box-sizing:border-box;
44
+ width:100%;
45
+ margin:0;
46
+ padding:0;
47
+ border:none;
48
+ font-family:inherit;
49
+ text-decoration:none;
50
+ background:transparent;
51
+ background-color:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
52
+ outline:0;
53
+ outline-offset:0;
54
+ }
55
+ .container[data-acrylic-appearance=primary][data-acrylic-level=default]{
56
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
57
+ }
58
+ .container[data-acrylic-appearance=primary][data-acrylic-level=default] .acrylic{
59
+ opacity:var(--sn-acrylic-opacityBackground, 1);
60
+ background:var(--sn-theme-color-primary-background, var(--sn-brand-color-primary-90, var(--sn-brandRole-color-brandA-90, var(--sn-primitive-color-brandA-90, #edf7f1))));
61
+ }
62
+ .container[data-acrylic-appearance=primary][data-acrylic-level="1Level"]{
63
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
64
+ }
65
+ .container[data-acrylic-appearance=primary][data-acrylic-level="1Level"] .acrylic{
66
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
67
+ background:var(--sn-theme-color-primary-background1Level, var(--sn-brand-color-primary-95, var(--sn-brandRole-color-brandA-95, var(--sn-primitive-color-brandA-95, #f5fdf8))));
68
+ }
69
+ .container[data-acrylic-appearance=primary][data-acrylic-level="2Level"]{
70
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
71
+ }
72
+ .container[data-acrylic-appearance=primary][data-acrylic-level="2Level"] .acrylic{
73
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
74
+ background:var(--sn-theme-color-primary-background2Level, var(--sn-brand-color-primary-99, var(--sn-brandRole-color-brandA-99, var(--sn-primitive-color-brandA-99, #fbfffc))));
75
+ }
76
+ .container[data-acrylic-appearance=neutral][data-acrylic-level=default]{
77
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
78
+ }
79
+ .container[data-acrylic-appearance=neutral][data-acrylic-level=default] .acrylic{
80
+ opacity:var(--sn-acrylic-opacityBackground, 1);
81
+ background:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
82
+ }
83
+ .container[data-acrylic-appearance=neutral][data-acrylic-level="1Level"]{
84
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
85
+ }
86
+ .container[data-acrylic-appearance=neutral][data-acrylic-level="1Level"] .acrylic{
87
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
88
+ background:var(--sn-theme-color-neutral-background1Level, var(--sn-brand-color-neutral-95, var(--sn-primitive-color-gray-95, #fdfdfd)));
89
+ }
90
+ .container[data-acrylic-appearance=neutral][data-acrylic-level="2Level"]{
91
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
92
+ }
93
+ .container[data-acrylic-appearance=neutral][data-acrylic-level="2Level"] .acrylic{
94
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
95
+ background:var(--sn-theme-color-neutral-background2Level, var(--sn-brand-color-neutral-99, var(--sn-primitive-color-gray-99, #ffffff)));
96
+ }
97
+ .container[data-acrylic-appearance=red][data-acrylic-level=default]{
98
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
99
+ }
100
+ .container[data-acrylic-appearance=red][data-acrylic-level=default] .acrylic{
101
+ opacity:var(--sn-acrylic-opacityBackground, 1);
102
+ background:var(--sn-theme-color-red-background, var(--sn-primitive-color-red-90, #fee8e5));
103
+ }
104
+ .container[data-acrylic-appearance=red][data-acrylic-level="1Level"]{
105
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
106
+ }
107
+ .container[data-acrylic-appearance=red][data-acrylic-level="1Level"] .acrylic{
108
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
109
+ background:var(--sn-theme-color-red-background1Level, var(--sn-primitive-color-red-95, #fef5f1));
110
+ }
111
+ .container[data-acrylic-appearance=red][data-acrylic-level="2Level"]{
112
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
113
+ }
114
+ .container[data-acrylic-appearance=red][data-acrylic-level="2Level"] .acrylic{
115
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
116
+ background:var(--sn-theme-color-red-background2Level, var(--sn-primitive-color-red-99, #fffaf7));
117
+ }
118
+ .container[data-acrylic-appearance=orange][data-acrylic-level=default]{
119
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
120
+ }
121
+ .container[data-acrylic-appearance=orange][data-acrylic-level=default] .acrylic{
122
+ opacity:var(--sn-acrylic-opacityBackground, 1);
123
+ background:var(--sn-theme-color-orange-background, var(--sn-primitive-color-orange-90, #ffedcf));
124
+ }
125
+ .container[data-acrylic-appearance=orange][data-acrylic-level="1Level"]{
126
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
127
+ }
128
+ .container[data-acrylic-appearance=orange][data-acrylic-level="1Level"] .acrylic{
129
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
130
+ background:var(--sn-theme-color-orange-background1Level, var(--sn-primitive-color-orange-95, #fff6e5));
131
+ }
132
+ .container[data-acrylic-appearance=orange][data-acrylic-level="2Level"]{
133
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
134
+ }
135
+ .container[data-acrylic-appearance=orange][data-acrylic-level="2Level"] .acrylic{
136
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
137
+ background:var(--sn-theme-color-orange-background2Level, var(--sn-primitive-color-orange-99, #fffcf4));
138
+ }
139
+ .container[data-acrylic-appearance=yellow][data-acrylic-level=default]{
140
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
141
+ }
142
+ .container[data-acrylic-appearance=yellow][data-acrylic-level=default] .acrylic{
143
+ opacity:var(--sn-acrylic-opacityBackground, 1);
144
+ background:var(--sn-theme-color-yellow-background, var(--sn-primitive-color-yellow-90, #fdf4cc));
145
+ }
146
+ .container[data-acrylic-appearance=yellow][data-acrylic-level="1Level"]{
147
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
148
+ }
149
+ .container[data-acrylic-appearance=yellow][data-acrylic-level="1Level"] .acrylic{
150
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
151
+ background:var(--sn-theme-color-yellow-background1Level, var(--sn-primitive-color-yellow-95, #fffbe6));
152
+ }
153
+ .container[data-acrylic-appearance=yellow][data-acrylic-level="2Level"]{
154
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
155
+ }
156
+ .container[data-acrylic-appearance=yellow][data-acrylic-level="2Level"] .acrylic{
157
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
158
+ background:var(--sn-theme-color-yellow-background2Level, var(--sn-primitive-color-yellow-99, #fffef6));
159
+ }
160
+ .container[data-acrylic-appearance=green][data-acrylic-level=default]{
161
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
162
+ }
163
+ .container[data-acrylic-appearance=green][data-acrylic-level=default] .acrylic{
164
+ opacity:var(--sn-acrylic-opacityBackground, 1);
165
+ background:var(--sn-theme-color-green-background, var(--sn-primitive-color-green-90, #e4f5df));
166
+ }
167
+ .container[data-acrylic-appearance=green][data-acrylic-level="1Level"]{
168
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
169
+ }
170
+ .container[data-acrylic-appearance=green][data-acrylic-level="1Level"] .acrylic{
171
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
172
+ background:var(--sn-theme-color-green-background1Level, var(--sn-primitive-color-green-95, #f1faed));
173
+ }
174
+ .container[data-acrylic-appearance=green][data-acrylic-level="2Level"]{
175
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
176
+ }
177
+ .container[data-acrylic-appearance=green][data-acrylic-level="2Level"] .acrylic{
178
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
179
+ background:var(--sn-theme-color-green-background2Level, var(--sn-primitive-color-green-99, #fcfefa));
180
+ }
181
+ .container[data-acrylic-appearance=blue][data-acrylic-level=default]{
182
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
183
+ }
184
+ .container[data-acrylic-appearance=blue][data-acrylic-level=default] .acrylic{
185
+ opacity:var(--sn-acrylic-opacityBackground, 1);
186
+ background:var(--sn-theme-color-blue-background, var(--sn-primitive-color-blue-90, #e6f4fd));
187
+ }
188
+ .container[data-acrylic-appearance=blue][data-acrylic-level="1Level"]{
189
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
190
+ }
191
+ .container[data-acrylic-appearance=blue][data-acrylic-level="1Level"] .acrylic{
192
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
193
+ background:var(--sn-theme-color-blue-background1Level, var(--sn-primitive-color-blue-95, #f2f9ff));
194
+ }
195
+ .container[data-acrylic-appearance=blue][data-acrylic-level="2Level"]{
196
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
197
+ }
198
+ .container[data-acrylic-appearance=blue][data-acrylic-level="2Level"] .acrylic{
199
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
200
+ background:var(--sn-theme-color-blue-background2Level, var(--sn-primitive-color-blue-99, #fdfeff));
201
+ }
202
+ .container[data-acrylic-appearance=violet][data-acrylic-level=default]{
203
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
204
+ }
205
+ .container[data-acrylic-appearance=violet][data-acrylic-level=default] .acrylic{
206
+ opacity:var(--sn-acrylic-opacityBackground, 1);
207
+ background:var(--sn-theme-color-violet-background, var(--sn-primitive-color-violet-90, #f3edfc));
208
+ }
209
+ .container[data-acrylic-appearance=violet][data-acrylic-level="1Level"]{
210
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
211
+ }
212
+ .container[data-acrylic-appearance=violet][data-acrylic-level="1Level"] .acrylic{
213
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
214
+ background:var(--sn-theme-color-violet-background1Level, var(--sn-primitive-color-violet-95, #f9f5ff));
215
+ }
216
+ .container[data-acrylic-appearance=violet][data-acrylic-level="2Level"]{
217
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
218
+ }
219
+ .container[data-acrylic-appearance=violet][data-acrylic-level="2Level"] .acrylic{
220
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
221
+ background:var(--sn-theme-color-violet-background2Level, var(--sn-primitive-color-violet-99, #fdfdfd));
222
+ }
223
+ .container[data-acrylic-appearance=pink][data-acrylic-level=default]{
224
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground, 0) / 2));
225
+ }
226
+ .container[data-acrylic-appearance=pink][data-acrylic-level=default] .acrylic{
227
+ opacity:var(--sn-acrylic-opacityBackground, 1);
228
+ background:var(--sn-theme-color-pink-background, var(--sn-primitive-color-pink-90, #fceaf0));
229
+ }
230
+ .container[data-acrylic-appearance=pink][data-acrylic-level="1Level"]{
231
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
232
+ }
233
+ .container[data-acrylic-appearance=pink][data-acrylic-level="1Level"] .acrylic{
234
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
235
+ background:var(--sn-theme-color-pink-background1Level, var(--sn-primitive-color-pink-95, #fff5f7));
236
+ }
237
+ .container[data-acrylic-appearance=pink][data-acrylic-level="2Level"]{
238
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground2Level, 0) / 2));
239
+ }
240
+ .container[data-acrylic-appearance=pink][data-acrylic-level="2Level"] .acrylic{
241
+ opacity:var(--sn-acrylic-opacityBackground2Level, 1);
242
+ background:var(--sn-theme-color-pink-background2Level, var(--sn-primitive-color-pink-99, #fdfcfc));
243
+ }
244
+ .container[data-acrylic-appearance=transparent]{
245
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
246
+ }
247
+ .container[data-acrylic-appearance=transparent] .acrylic{
248
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
249
+ background:transparent;
250
+ }
251
+ .container[data-acrylic-appearance=decorTransparent]{
252
+ backdrop-filter:blur(calc(var(--sn-acrylic-blurBackground1Level, 0) / 2));
253
+ }
254
+ .container[data-acrylic-appearance=decorTransparent] .acrylic{
255
+ opacity:var(--sn-acrylic-opacityBackground1Level, 1);
256
+ background:var(--sn-theme-color-neutral-decorTransparent, var(--sn-brand-color-neutral-transparent-forLightMode, rgba(124, 131, 182, 0.0784313725)));
257
+ }
258
+ .container .content{
259
+ color:var(--sn-theme-color-available-version-textMain, var(--sn-brand-color-text-version-main, #41424e));
260
+ }
261
+ .container:focus-visible{
262
+ outline:var(--sn-brand-anatomy-focusLine-field-strokeWeight, var(--sn-primitive-strokeWeight-strokeBold, 3px)) solid var(--sn-theme-color-primary-accent, var(--sn-brand-color-primary-55, var(--sn-brandRole-color-brandA-55, var(--sn-primitive-color-brandA-55, #389f74))));
263
+ outline-offset:0;
264
+ }
265
+ .container[data-over] .overLayer{
266
+ visibility:inherit;
267
+ }
268
+ .container[data-size=s]{
269
+ border-radius:var(--sn-dropzone-anatomy-size-s-borderRadius, var(--sn-brand-anatomy-radius-field-s, var(--sn-primitive-dimension-2, 2px)));
270
+ min-height:var(--sn-dropzone-anatomy-size-s-minHeight, var(--sn-density-size-s, var(--sn-primitive-dimension-48, 48px)));
271
+ border-width:var(--sn-dropzone-anatomy-size-s-borderWidth, var(--sn-brand-anatomy-line-field-strokeWeight, var(--sn-primitive-strokeWeight-strokeRegular, 1px)));
272
+ padding-left:var(--sn-dropzone-anatomy-size-s-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
273
+ padding-right:var(--sn-dropzone-anatomy-size-s-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-s, var(--sn-primitive-dimension-12, 12px)));
274
+ padding-top:var(--sn-dropzone-anatomy-size-s-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
275
+ padding-bottom:var(--sn-dropzone-anatomy-size-s-paddingVertical, var(--sn-density-spacing-control-container-vertical-s, var(--sn-primitive-dimension-6, 6px)));
276
+ }
277
+ .container[data-size=s] .content{
278
+ padding-left:var(--sn-dropzone-anatomy-size-s-contentWrapper-paddingHorizontal, var(--sn-density-spacing-control-wrapper-horizontal-s, var(--sn-primitive-dimension-8, 8px)));
279
+ padding-right:var(--sn-dropzone-anatomy-size-s-contentWrapper-paddingHorizontal, var(--sn-density-spacing-control-wrapper-horizontal-s, var(--sn-primitive-dimension-8, 8px)));
280
+ padding-top:var(--sn-dropzone-anatomy-size-s-contentWrapper-paddingVertical, var(--sn-density-spacing-control-wrapper-vertical-s, var(--sn-primitive-dimension-8, 8px)));
281
+ padding-bottom:var(--sn-dropzone-anatomy-size-s-contentWrapper-paddingVertical, var(--sn-density-spacing-control-wrapper-vertical-s, var(--sn-primitive-dimension-8, 8px)));
282
+ }
283
+ .container[data-size=m]{
284
+ border-radius:var(--sn-dropzone-anatomy-size-m-borderRadius, var(--sn-brand-anatomy-radius-field-m, var(--sn-primitive-dimension-2, 2px)));
285
+ padding-left:var(--sn-dropzone-anatomy-size-m-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px)));
286
+ padding-right:var(--sn-dropzone-anatomy-size-m-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-m, var(--sn-primitive-dimension-16, 16px)));
287
+ padding-top:var(--sn-dropzone-anatomy-size-m-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
288
+ padding-bottom:var(--sn-dropzone-anatomy-size-m-paddingVertical, var(--sn-density-spacing-control-container-vertical-m, var(--sn-primitive-dimension-8, 8px)));
289
+ min-height:var(--sn-dropzone-anatomy-size-m-minHeight, var(--sn-density-size-m, var(--sn-primitive-dimension-56, 56px)));
290
+ border-width:var(--sn-dropzone-anatomy-size-m-borderWidth, var(--sn-brand-anatomy-line-field-strokeWeight, var(--sn-primitive-strokeWeight-strokeRegular, 1px)));
291
+ }
292
+ .container[data-size=m] .content{
293
+ padding-left:var(--sn-dropzone-anatomy-size-m-contentWrapper-paddingHorizontal, var(--sn-density-spacing-control-wrapper-horizontal-m, var(--sn-primitive-dimension-8, 8px)));
294
+ padding-right:var(--sn-dropzone-anatomy-size-m-contentWrapper-paddingHorizontal, var(--sn-density-spacing-control-wrapper-horizontal-m, var(--sn-primitive-dimension-8, 8px)));
295
+ padding-top:var(--sn-dropzone-anatomy-size-m-contentWrapper-paddingVertical, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-primitive-dimension-8, 8px)));
296
+ padding-bottom:var(--sn-dropzone-anatomy-size-m-contentWrapper-paddingVertical, var(--sn-density-spacing-control-wrapper-vertical-m, var(--sn-primitive-dimension-8, 8px)));
297
+ }
298
+ .container[data-size=l]{
299
+ border-radius:var(--sn-dropzone-anatomy-size-l-borderRadius, var(--sn-brand-anatomy-radius-field-l, var(--sn-primitive-dimension-2, 2px)));
300
+ padding-left:var(--sn-dropzone-anatomy-size-l-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-l, var(--sn-primitive-dimension-20, 20px)));
301
+ padding-right:var(--sn-dropzone-anatomy-size-l-paddingHorizontal, var(--sn-density-spacing-control-container-horizontal-l, var(--sn-primitive-dimension-20, 20px)));
302
+ padding-top:var(--sn-dropzone-anatomy-size-l-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
303
+ padding-bottom:var(--sn-dropzone-anatomy-size-l-paddingVertical, var(--sn-density-spacing-control-container-vertical-l, var(--sn-primitive-dimension-10, 10px)));
304
+ min-height:var(--sn-dropzone-anatomy-size-l-minHeight, var(--sn-density-size-l, var(--sn-primitive-dimension-64, 64px)));
305
+ border-width:var(--sn-dropzone-anatomy-size-l-borderWidth, var(--sn-brand-anatomy-line-field-strokeWeight, var(--sn-primitive-strokeWeight-strokeRegular, 1px)));
306
+ }
307
+ .container[data-size=l] .content{
308
+ padding-left:var(--sn-dropzone-anatomy-size-l-contentWrapper-paddingHorizontal, var(--sn-density-spacing-control-wrapper-horizontal-l, var(--sn-primitive-dimension-12, 12px)));
309
+ padding-right:var(--sn-dropzone-anatomy-size-l-contentWrapper-paddingHorizontal, var(--sn-density-spacing-control-wrapper-horizontal-l, var(--sn-primitive-dimension-12, 12px)));
310
+ padding-top:var(--sn-dropzone-anatomy-size-l-contentWrapper-paddingVertical, var(--sn-density-spacing-control-wrapper-vertical-l, var(--sn-primitive-dimension-8, 8px)));
311
+ padding-bottom:var(--sn-dropzone-anatomy-size-l-contentWrapper-paddingVertical, var(--sn-density-spacing-control-wrapper-vertical-l, var(--sn-primitive-dimension-8, 8px)));
312
+ }
313
+ .container[data-disabled]{
314
+ cursor:not-allowed;
315
+ background-color:var(--sn-theme-color-neutral-background, var(--sn-brand-color-neutral-90, var(--sn-primitive-color-gray-90, #eeeff3)));
316
+ }
317
+ .container[data-disabled] .content{
318
+ opacity:var(--sn-theme-effect-opacity-disabled, 0.4);
319
+ }
320
+ .container .borderLayer{
321
+ position:absolute;
322
+ inset:0;
323
+ border-radius:inherit;
324
+ }
325
+ .container .borderLayer[data-state=borderOnBackground]{
326
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-default-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-default-borderColor, rgba(159, 166, 198, 0.3019607843)));
327
+ border-style:solid;
328
+ border-width:var(--sn-primitive-strokeWeight-strokeRegular, 1px);
329
+ }
330
+ .container .borderLayer[data-state=emptyNeutralOnBackground]{
331
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-defaultEmpty-filled, var(--sn-brand-color-state-neutral-forLightMode-default-background, rgba(120, 123, 138, 0)));
332
+ }
333
+ .container .borderLayer[data-state=activatedOnBackground]{
334
+ background:var(--sn-theme-color-material-stateLayer-activated-default-filled, var(--sn-brand-color-state-activated-default-background, var(--sn-brandRole-color-brandA-backgroundActivatedDefault, rgba(56, 159, 116, 0.1490196078))));
335
+ }
336
+ .container .borderLayer[data-state=versionOnColor]{
337
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-default-filled, rgba(0, 0, 0, 0.0509803922));
338
+ }
339
+ .container .borderLayer[data-state=emptyVersionOnColor]{
340
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-defaultEmpty-filled, rgba(0, 0, 0, 0));
341
+ }
342
+ .container .borderLayer[data-state=inversionOnColor]{
343
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-default-filled, rgba(255, 255, 255, 0.1019607843));
344
+ }
345
+ .container .borderLayer[data-state=emptyInversionOnColor]{
346
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-defaultEmpty-filled, rgba(255, 255, 255, 0));
347
+ }
348
+ .container .borderLayer[data-state=emptyDarkOnAccent]{
349
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-defaultEmpty-filled, rgba(0, 0, 0, 0));
350
+ }
351
+ @media (hover: hover){
352
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=borderOnBackground]{
353
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-hovered-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-hovered-borderColor, rgba(159, 166, 198, 0.6509803922)));
354
+ }
355
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyNeutralOnBackground]{
356
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-hovered-filled, var(--sn-brand-color-state-neutral-forLightMode-hovered-background, rgba(188, 195, 220, 0.1490196078)));
357
+ }
358
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=activatedOnBackground]{
359
+ background:var(--sn-theme-color-material-stateLayer-activated-hovered-filled, var(--sn-brand-color-state-activated-hovered-background, var(--sn-brandRole-color-brandA-backgroundActivatedHovered, rgba(56, 159, 116, 0.3490196078))));
360
+ }
361
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=versionOnColor]{
362
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-hovered-filled, rgba(0, 0, 0, 0.1019607843));
363
+ }
364
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyVersionOnColor]{
365
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-hovered-filled, rgba(0, 0, 0, 0.1019607843));
366
+ }
367
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=inversionOnColor]{
368
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-hovered-filled, rgba(255, 255, 255, 0.1490196078));
369
+ }
370
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyInversionOnColor]{
371
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-hovered-filled, rgba(255, 255, 255, 0.1490196078));
372
+ }
373
+ .container:hover:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyDarkOnAccent]{
374
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-hovered-filled, rgba(0, 0, 0, 0.0588235294));
375
+ }
376
+ }
377
+ .container{
378
+ }
379
+ .container[data-loading] .borderLayer[data-state=borderOnBackground], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=borderOnBackground], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=borderOnBackground]{
380
+ border-color:var(--sn-theme-color-material-stateLayer-neutral-border-pressed-borderColor, var(--sn-brand-color-state-neutralBorder-forLightMode-pressed-borderColor, rgba(159, 166, 198, 0.8)));
381
+ }
382
+ .container[data-loading] .borderLayer[data-state=emptyNeutralOnBackground], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyNeutralOnBackground], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyNeutralOnBackground]{
383
+ background:var(--sn-theme-color-material-stateLayer-neutral-onBackground-pressed-filled, var(--sn-brand-color-state-neutral-forLightMode-pressed-background, rgba(188, 195, 220, 0.3019607843)));
384
+ }
385
+ .container[data-loading] .borderLayer[data-state=activatedOnBackground], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=activatedOnBackground], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=activatedOnBackground]{
386
+ background:var(--sn-theme-color-material-stateLayer-activated-pressed-filled, var(--sn-brand-color-state-activated-pressed-background, var(--sn-brandRole-color-brandA-backgroundActivatedPressed, rgba(56, 159, 116, 0.4509803922))));
387
+ }
388
+ .container[data-loading] .borderLayer[data-state=versionOnColor], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=versionOnColor], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=versionOnColor]{
389
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-pressed-filled, rgba(0, 0, 0, 0.1490196078));
390
+ }
391
+ .container[data-loading] .borderLayer[data-state=emptyVersionOnColor], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyVersionOnColor], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyVersionOnColor]{
392
+ background:var(--sn-theme-color-material-stateLayer-versionOnColor-pressed-filled, rgba(0, 0, 0, 0.1490196078));
393
+ }
394
+ .container[data-loading] .borderLayer[data-state=inversionOnColor], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=inversionOnColor], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=inversionOnColor]{
395
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-pressed-filled, rgba(255, 255, 255, 0.0509803922));
396
+ }
397
+ .container[data-loading] .borderLayer[data-state=emptyInversionOnColor], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyInversionOnColor], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyInversionOnColor]{
398
+ background:var(--sn-theme-color-material-stateLayer-inversionOnColor-pressed-filled, rgba(255, 255, 255, 0.0509803922));
399
+ }
400
+ .container[data-loading] .borderLayer[data-state=emptyDarkOnAccent], .container:active:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyDarkOnAccent], .container[data-pressed=true]:not([data-disabled], [data-loading]) .borderLayer[data-state=emptyDarkOnAccent]{
401
+ background:var(--sn-theme-color-material-stateLayer-darkOnAccent-pressed-filled, rgba(0, 0, 0, 0.1215686275));
402
+ }
403
+ .container > [data-state-layer][data-state=borderOnBackground]{
404
+ border-style:dashed !important;
405
+ }
@@ -0,0 +1,23 @@
1
+ import { WithSupportProps } from '@cloud-ru/ds-utils';
2
+ import { ButtonHTMLAttributes, DetailedHTMLProps, ReactNode } from 'react';
3
+ import { FileFieldProps, Size } from '../../types';
4
+ import { UPLOAD_MODE } from './constants';
5
+ export type DragAndDropEventNames = 'onDragLeave' | 'onDragOver' | 'onDrop';
6
+ export type PrivateDropZoneProps = WithSupportProps<{
7
+ isOver: boolean;
8
+ /** Колбек с принятыми файлами (прошедшими проверку `maxSize` и `accept`). */
9
+ onFilesUpload(files: File[]): void;
10
+ /** Контент dropzone */
11
+ children?: ReactNode;
12
+ /** Деактивирован ли компонент */
13
+ disabled?: boolean;
14
+ /**
15
+ * Режим
16
+ * @default multiple
17
+ */
18
+ mode?: (typeof UPLOAD_MODE)[keyof typeof UPLOAD_MODE];
19
+ /** Размер компонента */
20
+ size?: Size;
21
+ /** CSS-класс */
22
+ className?: string;
23
+ } & FileFieldProps> & Pick<DetailedHTMLProps<ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, DragAndDropEventNames>;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,3 @@
1
+ export * from './Dropzone';
2
+ export * from './FileUpload';
3
+ export * from './HiddenDropZone';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Dropzone"), exports);
18
+ __exportStar(require("./FileUpload"), exports);
19
+ __exportStar(require("./HiddenDropZone"), exports);
@@ -0,0 +1,17 @@
1
+ export declare const UPLOAD_MODE: {
2
+ readonly Single: "single";
3
+ readonly Multiple: "multiple";
4
+ };
5
+ export declare const SIZE: {
6
+ readonly S: "s";
7
+ readonly M: "m";
8
+ readonly L: "l";
9
+ };
10
+ export declare const TEST_IDS: {
11
+ readonly dropzone: {
12
+ readonly nativeInput: "file-input";
13
+ };
14
+ readonly fileUpload: {
15
+ readonly nativeInput: "file-upload__native-input";
16
+ };
17
+ };
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEST_IDS = exports.SIZE = exports.UPLOAD_MODE = void 0;
4
+ exports.UPLOAD_MODE = {
5
+ Single: 'single',
6
+ Multiple: 'multiple',
7
+ };
8
+ exports.SIZE = {
9
+ S: 's',
10
+ M: 'm',
11
+ L: 'l',
12
+ };
13
+ exports.TEST_IDS = {
14
+ dropzone: {
15
+ nativeInput: 'file-input',
16
+ },
17
+ fileUpload: {
18
+ nativeInput: 'file-upload__native-input',
19
+ },
20
+ };
@@ -0,0 +1,7 @@
1
+ import { DragEventHandler } from 'react';
2
+ type UseDragResult = {
3
+ events: Record<'onDragLeave' | 'onDragOver' | 'onDrop', DragEventHandler<HTMLElement>>;
4
+ isOver: boolean;
5
+ };
6
+ export declare function useDrag(disabled: boolean): UseDragResult;
7
+ export {};
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDrag = useDrag;
4
+ const utils_1 = require("@cloud-ru/ds-utils");
5
+ const react_1 = require("react");
6
+ function useDrag(disabled) {
7
+ const [isOver, setIsOver] = (0, react_1.useState)(false);
8
+ const debouncedSetIsOver = (0, react_1.useMemo)(() => (0, utils_1.debounce)(setIsOver, 5), []);
9
+ const handleDragLeave = (0, react_1.useCallback)(e => {
10
+ if (!disabled) {
11
+ e.preventDefault();
12
+ debouncedSetIsOver(false);
13
+ }
14
+ }, [debouncedSetIsOver, disabled]);
15
+ const handleDragOver = (0, react_1.useCallback)(e => {
16
+ if (!disabled) {
17
+ e.preventDefault();
18
+ debouncedSetIsOver(true);
19
+ }
20
+ }, [debouncedSetIsOver, disabled]);
21
+ const handleDrop = (0, react_1.useCallback)(e => {
22
+ if (!disabled) {
23
+ e.preventDefault();
24
+ debouncedSetIsOver(false);
25
+ }
26
+ }, [debouncedSetIsOver, disabled]);
27
+ (0, react_1.useEffect)(() => () => debouncedSetIsOver.cancel(), [debouncedSetIsOver]);
28
+ const events = { onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop };
29
+ return { events, isOver };
30
+ }
@@ -0,0 +1,4 @@
1
+ export * from './components';
2
+ export * from './constants';
3
+ export * from './types';
4
+ export * from './utils';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./components"), exports);
18
+ __exportStar(require("./constants"), exports);
19
+ __exportStar(require("./types"), exports);
20
+ __exportStar(require("./utils"), exports);
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }