ErisPulse-Raffle 1.0.0__py3-none-any.whl

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.
Raffle/__init__.py ADDED
@@ -0,0 +1 @@
1
+ from .Core import Main
File without changes
@@ -0,0 +1,433 @@
1
+ .raffle-grid-4 {
2
+ display: grid;
3
+ grid-template-columns: repeat(4, 1fr);
4
+ gap: 16px;
5
+ }
6
+
7
+ @media (max-width: 768px) {
8
+ .raffle-grid-4 {
9
+ grid-template-columns: repeat(2, 1fr);
10
+ }
11
+ }
12
+
13
+ .rf-form-group {
14
+ margin-bottom: 12px;
15
+ }
16
+
17
+ .rf-label {
18
+ display: block;
19
+ font-size: 13px;
20
+ font-weight: 600;
21
+ margin-bottom: 4px;
22
+ color: var(--tx-p);
23
+ }
24
+
25
+ .rf-activity-item {
26
+ display: flex;
27
+ align-items: center;
28
+ gap: 8px;
29
+ padding: 10px 12px;
30
+ border-radius: 10px;
31
+ border: 1px solid transparent;
32
+ margin-bottom: 6px;
33
+ transition: all 0.15s ease;
34
+ }
35
+
36
+ .rf-activity-item:hover {
37
+ background: var(--bg-s);
38
+ border-color: var(--bd);
39
+ }
40
+
41
+ .rf-activity-item.rf-current {
42
+ background: var(--bg-s);
43
+ border-color: var(--accent);
44
+ box-shadow: 0 0 0 1px var(--accent);
45
+ }
46
+
47
+ .rf-table {
48
+ border-collapse: collapse;
49
+ font-size: 14px;
50
+ }
51
+
52
+ .rf-table th {
53
+ text-align: left;
54
+ padding: 8px 10px;
55
+ border-bottom: 2px solid var(--bd);
56
+ color: var(--tx-s);
57
+ font-weight: 600;
58
+ font-size: 12px;
59
+ text-transform: uppercase;
60
+ letter-spacing: 0.5px;
61
+ }
62
+
63
+ .rf-table td {
64
+ padding: 8px 10px;
65
+ border-bottom: 1px solid var(--bd);
66
+ vertical-align: middle;
67
+ }
68
+
69
+ .rf-table tr:hover td {
70
+ background: var(--bg-s);
71
+ }
72
+
73
+ .rf-draw-slot {
74
+ font-size: 48px;
75
+ font-weight: 800;
76
+ color: var(--accent);
77
+ letter-spacing: 2px;
78
+ text-shadow: 0 2px 12px rgba(0, 0, 0, 0.15);
79
+ animation: rf-slot-pulse 0.3s ease-in-out infinite alternate;
80
+ }
81
+
82
+ @keyframes rf-slot-pulse {
83
+ from { transform: scale(1); opacity: 0.8; }
84
+ to { transform: scale(1.05); opacity: 1; }
85
+ }
86
+
87
+ .rf-winners-grid {
88
+ display: grid;
89
+ grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
90
+ gap: 12px;
91
+ }
92
+
93
+ .rf-winner-card {
94
+ background: linear-gradient(135deg, var(--ok-bg), var(--pr-bg));
95
+ border: 1px solid var(--ok-bd);
96
+ border-radius: 12px;
97
+ padding: 16px;
98
+ text-align: center;
99
+ position: relative;
100
+ }
101
+
102
+ .rf-winner-rank {
103
+ position: absolute;
104
+ top: 8px;
105
+ left: 12px;
106
+ font-size: 12px;
107
+ font-weight: 700;
108
+ color: var(--ok-c);
109
+ background: rgba(255, 255, 255, 0.5);
110
+ width: 22px;
111
+ height: 22px;
112
+ border-radius: 50%;
113
+ display: flex;
114
+ align-items: center;
115
+ justify-content: center;
116
+ }
117
+
118
+ .rf-winner-name {
119
+ font-size: 18px;
120
+ font-weight: 700;
121
+ color: var(--tx-p);
122
+ margin: 4px 0;
123
+ }
124
+
125
+ .rf-winner-id {
126
+ font-size: 11px;
127
+ font-family: monospace;
128
+ color: var(--tx-t);
129
+ margin-bottom: 6px;
130
+ }
131
+
132
+ .rf-winner-platform {
133
+ margin-top: 4px;
134
+ }
135
+
136
+ .rf-group-tag {
137
+ display: inline-block;
138
+ padding: 2px 8px;
139
+ border-radius: 6px;
140
+ font-size: 11px;
141
+ font-weight: 600;
142
+ letter-spacing: 0.3px;
143
+ }
144
+
145
+ .rf-group-confirmed {
146
+ background: var(--ok-bg, rgba(34,197,94,0.1));
147
+ color: var(--ok-c, #22c55e);
148
+ border: 1px solid var(--ok-bd, rgba(34,197,94,0.2));
149
+ }
150
+
151
+ .rf-group-pending {
152
+ background: var(--wr-bg, rgba(245,158,11,0.1));
153
+ color: var(--wr-c, #f59e0b);
154
+ border: 1px solid var(--wr-bd, rgba(245,158,11,0.2));
155
+ }
156
+
157
+ .rf-tab-group {
158
+ display: inline-flex;
159
+ border: 1px solid var(--bd);
160
+ border-radius: 8px;
161
+ overflow: hidden;
162
+ }
163
+
164
+ .rf-tab {
165
+ padding: 4px 12px;
166
+ font-size: 12px;
167
+ font-weight: 500;
168
+ background: transparent;
169
+ border: none;
170
+ color: var(--tx-s);
171
+ cursor: pointer;
172
+ transition: all 0.15s ease;
173
+ }
174
+
175
+ .rf-tab:not(:last-child) {
176
+ border-right: 1px solid var(--bd);
177
+ }
178
+
179
+ .rf-tab:hover {
180
+ background: var(--bg-s);
181
+ }
182
+
183
+ .rf-tab.rf-tab-active {
184
+ background: var(--accent);
185
+ color: #fff;
186
+ }
187
+
188
+ .rf-user-tag {
189
+ display: inline-flex;
190
+ align-items: center;
191
+ gap: 4px;
192
+ padding: 4px 10px;
193
+ border-radius: 8px;
194
+ font-size: 12px;
195
+ margin: 3px 4px 3px 0;
196
+ font-weight: 500;
197
+ }
198
+
199
+ .rf-user-tag-bl {
200
+ background: var(--er-bg, rgba(239,68,68,0.1));
201
+ color: var(--er-c, #ef4444);
202
+ border: 1px solid var(--er-bd, rgba(239,68,68,0.2));
203
+ }
204
+
205
+ .rf-user-tag-wl {
206
+ background: var(--ok-bg, rgba(34,197,94,0.1));
207
+ color: var(--ok-c, #22c55e);
208
+ border: 1px solid var(--ok-bd, rgba(34,197,94,0.2));
209
+ }
210
+
211
+ .rf-user-tag-x {
212
+ cursor: pointer;
213
+ font-weight: 700;
214
+ font-size: 14px;
215
+ line-height: 1;
216
+ opacity: 0.6;
217
+ margin-left: 2px;
218
+ }
219
+
220
+ .rf-user-tag-x:hover {
221
+ opacity: 1;
222
+ }
223
+
224
+ .rf-switch {
225
+ position: relative;
226
+ display: inline-block;
227
+ width: 40px;
228
+ height: 22px;
229
+ }
230
+
231
+ .rf-switch input {
232
+ opacity: 0;
233
+ width: 0;
234
+ height: 0;
235
+ }
236
+
237
+ .rf-switch-slider {
238
+ position: absolute;
239
+ cursor: pointer;
240
+ top: 0;
241
+ left: 0;
242
+ right: 0;
243
+ bottom: 0;
244
+ background-color: var(--bd, #ccc);
245
+ border-radius: 22px;
246
+ transition: 0.2s;
247
+ }
248
+
249
+ .rf-switch-slider:before {
250
+ position: absolute;
251
+ content: "";
252
+ height: 16px;
253
+ width: 16px;
254
+ left: 3px;
255
+ bottom: 3px;
256
+ background-color: white;
257
+ border-radius: 50%;
258
+ transition: 0.2s;
259
+ }
260
+
261
+ .rf-switch input:checked + .rf-switch-slider {
262
+ background-color: var(--accent);
263
+ }
264
+
265
+ .rf-switch input:checked + .rf-switch-slider:before {
266
+ transform: translateX(18px);
267
+ }
268
+
269
+ .rf-modal {
270
+ position: fixed;
271
+ inset: 0;
272
+ z-index: 1000;
273
+ display: flex;
274
+ align-items: center;
275
+ justify-content: center;
276
+ }
277
+
278
+ .rf-modal-overlay {
279
+ position: absolute;
280
+ inset: 0;
281
+ background: rgba(0, 0, 0, 0.5);
282
+ }
283
+
284
+ .rf-modal-box {
285
+ position: relative;
286
+ background: var(--bg-p);
287
+ border-radius: 16px;
288
+ max-width: 580px;
289
+ width: 92%;
290
+ max-height: 82vh;
291
+ display: flex;
292
+ flex-direction: column;
293
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
294
+ }
295
+
296
+ .rf-modal-header {
297
+ display: flex;
298
+ justify-content: space-between;
299
+ align-items: center;
300
+ padding: 16px 20px;
301
+ border-bottom: 1px solid var(--bd);
302
+ font-size: 16px;
303
+ font-weight: 700;
304
+ }
305
+
306
+ .rf-modal-body {
307
+ padding: 20px;
308
+ overflow-y: auto;
309
+ flex: 1;
310
+ }
311
+
312
+ .rf-modal-footer {
313
+ padding: 12px 20px;
314
+ border-top: 1px solid var(--bd);
315
+ display: flex;
316
+ justify-content: flex-end;
317
+ gap: 8px;
318
+ }
319
+
320
+ .rf-modal-tabs {
321
+ display: flex;
322
+ border-bottom: 1px solid var(--bd);
323
+ padding: 0 20px;
324
+ }
325
+
326
+ .rf-modal-tabs .rf-tab {
327
+ padding: 10px 16px;
328
+ font-size: 13px;
329
+ border-bottom: 2px solid transparent;
330
+ border-radius: 0;
331
+ margin-bottom: -1px;
332
+ }
333
+
334
+ .rf-modal-tabs .rf-tab.rf-tab-active {
335
+ border-bottom-color: var(--accent);
336
+ color: var(--accent);
337
+ background: transparent;
338
+ }
339
+
340
+ .rf-target-item {
341
+ display: flex;
342
+ align-items: center;
343
+ gap: 8px;
344
+ padding: 8px 10px;
345
+ background: var(--bg-s);
346
+ border-radius: 8px;
347
+ margin-bottom: 6px;
348
+ font-size: 13px;
349
+ }
350
+
351
+ .rf-target-item select,
352
+ .rf-target-item input {
353
+ font-size: 13px;
354
+ padding: 4px 8px;
355
+ border: 1px solid var(--bd);
356
+ border-radius: 6px;
357
+ background: var(--bg-p);
358
+ color: var(--tx-p);
359
+ }
360
+
361
+ .rf-target-item select {
362
+ width: 110px;
363
+ }
364
+
365
+ .rf-target-item input {
366
+ flex: 1;
367
+ min-width: 0;
368
+ }
369
+
370
+ .rf-notify-preview {
371
+ background: var(--bg-s);
372
+ border: 1px solid var(--bd);
373
+ border-radius: 8px;
374
+ padding: 12px;
375
+ font-size: 13px;
376
+ white-space: pre-wrap;
377
+ word-break: break-all;
378
+ color: var(--tx-s);
379
+ max-height: 200px;
380
+ overflow-y: auto;
381
+ margin-top: 8px;
382
+ }
383
+
384
+ .rf-history-item {
385
+ padding: 10px 12px;
386
+ border: 1px solid var(--bd);
387
+ border-radius: 8px;
388
+ margin-bottom: 8px;
389
+ }
390
+
391
+ .rf-history-header {
392
+ display: flex;
393
+ justify-content: space-between;
394
+ align-items: center;
395
+ margin-bottom: 6px;
396
+ }
397
+
398
+ .rf-history-targets {
399
+ font-size: 12px;
400
+ color: var(--tx-t);
401
+ margin-bottom: 6px;
402
+ }
403
+
404
+ .rf-history-msg {
405
+ font-size: 12px;
406
+ color: var(--tx-s);
407
+ background: var(--bg-s);
408
+ padding: 8px;
409
+ border-radius: 6px;
410
+ white-space: pre-wrap;
411
+ word-break: break-all;
412
+ max-height: 80px;
413
+ overflow-y: auto;
414
+ }
415
+
416
+ .rf-notify-send-btn {
417
+ width: 100%;
418
+ justify-content: center;
419
+ }
420
+
421
+ .btn-xs {
422
+ padding: 2px 8px;
423
+ font-size: 11px;
424
+ }
425
+
426
+ .btn-danger {
427
+ background: var(--er-c, #ef4444);
428
+ color: #fff;
429
+ border: 1px solid var(--er-c, #ef4444);
430
+ }
431
+ .btn-danger:hover {
432
+ opacity: 0.9;
433
+ }