diplotocus 0.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.
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,622 @@
1
+ * {
2
+ box-sizing: border-box;
3
+ }
4
+
5
+ html {
6
+ color-scheme: dark;
7
+ }
8
+
9
+ body {
10
+ margin: 0;
11
+ font-family: Arial, sans-serif;
12
+ background-color: #323232;
13
+ color: #e4e4e4;
14
+ position: relative;
15
+ min-height: 100vh;
16
+ overflow-x: hidden;
17
+ }
18
+
19
+ .body-bg{
20
+ background-image: url('src/bg.png');
21
+ background-size: 100px;
22
+ position: fixed;
23
+ inset: 0;
24
+ margin: 0 auto;
25
+ backdrop-filter: blur(100px);
26
+ z-index: 2;
27
+ pointer-events: none;
28
+ }
29
+
30
+ .app-shell{
31
+ position: relative;
32
+ z-index: 3;
33
+ }
34
+
35
+ .workspace {
36
+ display: grid;
37
+ grid-template-columns: 100px 1fr 100px;
38
+ gap: 10px;
39
+ background-color: rgba(0, 0, 0,.5);
40
+ }
41
+
42
+ .circle{
43
+ width:300px;
44
+ height: 300px;
45
+ position: fixed;
46
+ transition: background-color 0.5s ease, opacity 0.5s ease;
47
+ top: 0;
48
+ left: 0;
49
+ background-color: gray;
50
+ opacity: .1;
51
+ border-radius: 1000px;
52
+ transform: translate(-50%,-50%);
53
+ z-index: 1;
54
+ pointer-events: none;
55
+ }
56
+
57
+ .topbar {
58
+ margin: 0 auto;
59
+ max-width: 1200px;
60
+ display: flex;
61
+ justify-content: space-between;
62
+ align-items: center;
63
+ margin-bottom: 10px;
64
+ }
65
+
66
+ .actions {
67
+ max-width: 1200px;
68
+ display: flex;
69
+ gap: 8px;
70
+ }
71
+
72
+ button {
73
+ border: 1px solid #656565;
74
+ background: #4b4b4b;
75
+ padding: 6px 10px;
76
+ cursor: pointer;
77
+ transition: background 0.1s ease-in-out;
78
+ }
79
+
80
+ button:hover{
81
+ background: #646464;
82
+ }
83
+
84
+ #previewResizeHandle {
85
+ height: 5px;
86
+ border-radius: 4px;
87
+ background: #4b4b4b;
88
+ cursor: ns-resize;
89
+ width: 100px;
90
+ margin: 0 auto;
91
+ margin-bottom: 10px;
92
+ }
93
+
94
+ #previewResizeHandle:hover {
95
+ background: #5d5d5d;
96
+ }
97
+
98
+ .timeline-controls {
99
+ display: flex;
100
+ gap: 4px;
101
+ justify-content: center;
102
+ }
103
+
104
+ .timeline-controls button {
105
+ width: 40px;
106
+ height: 33px;
107
+ font-size: 15px;
108
+ line-height: 1;
109
+ display: inline-flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ color: #e4e4e4;
113
+ }
114
+
115
+ .control-gap {
116
+ width: 14px;
117
+ height: 1px;
118
+ flex: 0 0 14px;
119
+ }
120
+
121
+ #btnLoop.active,
122
+ #btnSaveVideo.active {
123
+ background: #7c7c7c;
124
+ }
125
+
126
+ #btnToStart,#btnToEnd,#btnSaveVideo{
127
+ font-family: math;
128
+ padding-bottom: 2px;
129
+ }
130
+
131
+ #btnPlayPause{
132
+ font-family: math;
133
+ font-size: 8px;
134
+ }
135
+
136
+ #btnPlayPause[aria-label="Pause"]{
137
+ font-family: math;
138
+ font-size: 16px;
139
+ padding-top: 10px;
140
+ }
141
+
142
+ #btnSaveVideo {
143
+ font-family: math;
144
+ padding-bottom: 2px;
145
+ color: #ff2e2e;
146
+ }
147
+
148
+ #btnLoop{
149
+ font-size: 23px;
150
+ padding-top: 3px;
151
+ }
152
+
153
+ #btnSaveVideo:disabled {
154
+ opacity: 0.7;
155
+ cursor: default;
156
+ }
157
+
158
+ #previewImage {
159
+ display: block;
160
+ width: 100%;
161
+ height: 400px;
162
+ max-height: none;
163
+ object-fit: contain;
164
+ pointer-events: none;
165
+ }
166
+
167
+ #frameText {
168
+ font-size: 14px;
169
+ position: absolute;
170
+ top: 25px;
171
+ left: 25px;
172
+ opacity: 1;
173
+ transition: opacity 0.35s ease;
174
+ }
175
+
176
+ #frameText.is-faded {
177
+ opacity: 0;
178
+ }
179
+
180
+ .palette {
181
+ padding: 3px;
182
+ }
183
+
184
+ .palette-item {
185
+ margin-bottom: 2px;
186
+ cursor: grab;
187
+ user-select: none;
188
+ pointer-events: all;
189
+ font-size: 13px;
190
+ font-weight: 600;
191
+ padding-left: 4px;
192
+ padding-top: 2px;
193
+ background-size: auto 150%;
194
+ background-position-y: 25%;
195
+ border-radius: 5px;
196
+ height: 35px;
197
+ }
198
+
199
+ .palette small {
200
+ color: #666;
201
+ }
202
+
203
+ .timeline-panel {
204
+ overflow: hidden;
205
+ }
206
+
207
+ .timeline-shell {
208
+ display: grid;
209
+ grid-template-columns: 30px 1fr;
210
+ height: 100%;
211
+ position: relative;
212
+ }
213
+
214
+ #trackControls {
215
+ padding-top: 20px;
216
+ position: relative;
217
+ z-index: 100;
218
+ margin-right: 5px;
219
+ background: rgba(23, 23, 23,.5);
220
+ }
221
+
222
+ .track-control {
223
+ height: 52px;
224
+ margin-bottom: 2px;
225
+ display: flex;
226
+ align-items: center;
227
+ justify-content: center;
228
+ }
229
+
230
+ .delete-track {
231
+ width: 34px;
232
+ height: 24px;
233
+ padding: 0;
234
+ line-height: 1;
235
+ color: #e4e4e4;
236
+ }
237
+
238
+ .track-controls-spacer {
239
+ margin-top: 4px;
240
+ height: 28px;
241
+ }
242
+
243
+ .timeline-main {
244
+ min-width: 0;
245
+ position: relative;
246
+ overflow: hidden;
247
+ z-index: 1;
248
+ }
249
+
250
+ #timelineHeader {
251
+ position: relative;
252
+ height: 33px;
253
+ width: 100%;
254
+ min-width: var(--timeline-width, 1000px);
255
+ z-index: 2;
256
+ }
257
+
258
+ #frameStrip {
259
+ position: absolute;
260
+ left: 0;
261
+ right: 0;
262
+ top: 15px;
263
+ height: 13px;
264
+ z-index: 1;
265
+ overflow: visible;
266
+ }
267
+
268
+ .frame-indicator {
269
+ position: absolute;
270
+ top: 0;
271
+ width: 2px;
272
+ height: 13px;
273
+ background: #0ea35b;
274
+ z-index: 2;
275
+ }
276
+
277
+ .frame-major-tick {
278
+ position: absolute;
279
+ top: 10px;
280
+ width: 1px;
281
+ height: 14px;
282
+ background: #8a8a8a;
283
+ opacity: 0.5;
284
+ z-index: 1;
285
+ }
286
+
287
+ .frame-major-label {
288
+ position: absolute;
289
+ top: -1px;
290
+ transform: translateX(-50%);
291
+ font-size: 10px;
292
+ line-height: 10px;
293
+ color: #9a9a9a;
294
+ opacity: 0.5;
295
+ pointer-events: none;
296
+ user-select: none;
297
+ z-index: 3;
298
+ }
299
+
300
+ #timelineViewport {
301
+ position: relative;
302
+ overflow-x: auto;
303
+ padding: 8px;
304
+ padding-left: 0px;
305
+ padding-top: 0px;
306
+ z-index: 2;
307
+ }
308
+
309
+ #timelineResizeHandle {
310
+ position: absolute;
311
+ top: 40px;
312
+ left: 0;
313
+ width: 4px;
314
+ height: 20px;
315
+ background: #595959;
316
+ cursor: ew-resize;
317
+ z-index: 7;
318
+ border-radius: 5px;
319
+ }
320
+
321
+ #timelineResizeHandle:hover{
322
+ background: #787878;
323
+ }
324
+
325
+ #timeline {
326
+ position: relative;
327
+ width: 100%;
328
+ min-width: var(--timeline-width, 1000px);
329
+ margin-left: 10px;
330
+ }
331
+
332
+ #timelineRuler {
333
+ position: absolute;
334
+ left: 0;
335
+ right: 0;
336
+ top: 4px;
337
+ height: 20px;
338
+ width: 100%;
339
+ min-width: var(--timeline-width, 1000px);
340
+ overflow: visible;
341
+ z-index: 2;
342
+ pointer-events: none;
343
+ }
344
+
345
+ .track-row {
346
+ position: relative;
347
+ height: 52px;
348
+ margin-bottom: 2px;
349
+ background: rgba(255, 255, 255, 0.03);
350
+ font-style: italic;
351
+ width: 100%;
352
+ min-width: var(--timeline-width, 1000px);
353
+ }
354
+
355
+ .track-row::before {
356
+ content: attr(data-label);
357
+ position: absolute;
358
+ left: 6px;
359
+ top: 6px;
360
+ color: #666;
361
+ font-size: 12px;
362
+ z-index: 2;
363
+ }
364
+
365
+ .track-row::after {
366
+ content: "";
367
+ position: absolute;
368
+ top: 0;
369
+ bottom: 0;
370
+ left: calc(var(--timeline-width, 1000px) + 0px);
371
+ right: 0;
372
+ background: rgba(0, 0, 0, 0.35);
373
+ pointer-events: none;
374
+ z-index: 1;
375
+ }
376
+
377
+ .clip {
378
+ position: absolute;
379
+ top: 0px;
380
+ height: 100%;
381
+ border-radius: 5px;
382
+ background: #9bb8ff;
383
+ color: #e4e4e4;
384
+ font-weight: 600;
385
+ padding: 3px 6px;
386
+ font-size: 12px;
387
+ white-space: nowrap;
388
+ overflow: hidden;
389
+ text-overflow: ellipsis;
390
+ cursor: grab;
391
+ background-size: auto 150%;
392
+ background-position-y: 25%;
393
+ font-style: normal;
394
+ z-index: 2;
395
+ transition: filter .1s ease-in-out;
396
+ filter: brightness(1);
397
+ }
398
+
399
+ .clip span{
400
+ font-weight: normal;
401
+ color: rgb(222, 222, 222);
402
+ font-style: italic;
403
+ }
404
+
405
+ .clip.selected{
406
+ filter: brightness(0.75) contrast(1.1);
407
+ }
408
+
409
+ .clip:not(.selected):hover,.palette-item:hover{
410
+ filter: brightness(1.1) contrast(0.9);
411
+ }
412
+
413
+ .clip,.palette-item{
414
+ background-color: hsl(191, 39%, 20%);
415
+ border-bottom: 1.5px solid hsl(191, 39%, 10%);
416
+ border-right: 1.5px solid hsl(191, 39%, 10%);
417
+ border-top: 1.5px solid hsl(191, 39%, 30%);
418
+ border-left: 1.5px solid hsl(191, 39%, 30%);
419
+ background-image: url('src/btn/btn_bg_default.png');
420
+ }
421
+
422
+ /*
423
+ Translate : #4b91e2
424
+ Rotate : #d9125b
425
+ Scale : # f5a524
426
+ Tween : #1cc4b6
427
+ Morph : #a24ea0
428
+ Draw : #459140
429
+ Sequence : #FF4949
430
+ Other : #1f4047
431
+ */
432
+
433
+ .clip.Translate,.palette-item[data-type="Translate"]{
434
+ background-color: hsl(212, 72%, 59%);
435
+ border-bottom: 1.5px solid hsl(212, 72%, 49%);
436
+ border-right: 1.5px solid hsl(212, 72%, 49%);
437
+ border-top: 1.5px solid hsl(212, 72%, 69%);
438
+ border-left: 1.5px solid hsl(212, 72%, 69%);
439
+ background-image: url('src/btn/btn_bg_Translate.png');
440
+ }
441
+
442
+ .clip.Rotate,.palette-item[data-type="Rotate"]{
443
+ background-color: hsl(338, 85%, 46%);
444
+ border-bottom: 1.5px solid hsl(338, 85%, 36%);
445
+ border-right: 1.5px solid hsl(338, 85%, 36%);
446
+ border-top: 1.5px solid hsl(338, 85%, 56%);
447
+ border-left: 1.5px solid hsl(338, 85%, 56%);
448
+ background-image: url('src/btn/btn_bg_Rotate.png');
449
+ }
450
+
451
+ .clip.Scale,.palette-item[data-type="Scale"]{
452
+ background-color: hsl(37, 91%, 55%);
453
+ border-bottom: 1.5px solid hsl(37, 91%, 45%);
454
+ border-right: 1.5px solid hsl(37, 91%, 45%);
455
+ border-top: 1.5px solid hsl(37, 91%, 65%);
456
+ border-left: 1.5px solid hsl(37, 91%, 65%);
457
+ background-image: url('src/btn/btn_bg_Scale.png');
458
+ }
459
+
460
+ .clip.Tween,.palette-item[data-type="Tween"]{
461
+ background-color: hsl(175, 75%, 44%);
462
+ border-bottom: 1.5px solid hsl(175, 75%, 34%);
463
+ border-right: 1.5px solid hsl(175, 75%, 34%);
464
+ border-top: 1.5px solid hsl(175, 75%, 54%);
465
+ border-left: 1.5px solid hsl(175, 75%, 54%);
466
+ background-image: url('src/btn/btn_bg_Tween.png');
467
+ }
468
+
469
+ .clip.Morph,.palette-item[data-type="Morph"]{
470
+ background-color: hsl(301, 35%, 47%);
471
+ border-bottom: 1.5px solid hsl(301, 35%, 37%);
472
+ border-right: 1.5px solid hsl(301, 35%, 37%);
473
+ border-top: 1.5px solid hsl(301, 35%, 57%);
474
+ border-left: 1.5px solid hsl(301, 35%, 57%);
475
+ background-image: url('src/btn/btn_bg_Morph.png');
476
+ }
477
+
478
+ .clip.Draw,.palette-item[data-type="Draw"]{
479
+ background-color: hsl(116, 39%, 41%);
480
+ border-bottom: 1.5px solid hsl(116, 39%, 31%);
481
+ border-right: 1.5px solid hsl(116, 39%, 31%);
482
+ border-top: 1.5px solid hsl(116, 39%, 51%);
483
+ border-left: 1.5px solid hsl(116, 39%, 51%);
484
+ background-image: url('src/btn/btn_bg_Draw.png');
485
+ }
486
+
487
+ .clip.Sequence,.palette-item[data-type="Sequence"]{
488
+ background-color: hsl(0, 100%, 64%);
489
+ border-bottom: 1.5px solid hsl(0, 71%, 53%);
490
+ border-right: 1.5px solid hsl(0, 71%, 53%);
491
+ border-top: 1.5px solid hsl(0, 100%, 69%);
492
+ border-left: 1.5px solid hsl(0, 100%, 69%);
493
+ background-image: url('src/btn/btn_bg_Sequence.png');
494
+ }
495
+
496
+ .clip.resize-left,
497
+ .clip.resize-right {
498
+ cursor: ew-resize;
499
+ }
500
+
501
+ .add-track {
502
+ margin-top: 4px;
503
+ height: 28px;
504
+ width: 100%;
505
+ display: flex;
506
+ align-items: center;
507
+ justify-content: center;
508
+ color: #e4e4e4;
509
+ background: #2b2b2b;
510
+ user-select: none;
511
+ cursor: pointer;
512
+ width: 100%;
513
+ min-width: var(--timeline-width, 1000px);
514
+ }
515
+
516
+ .add-track:hover{
517
+ background: #323232;
518
+ }
519
+
520
+ #pinLayer {
521
+ position: absolute;
522
+ left: 8px;
523
+ top: 22px;
524
+ pointer-events: none;
525
+ z-index: 30;
526
+ }
527
+
528
+ .dialog-backdrop {
529
+ position: fixed;
530
+ inset: 0;
531
+ background: rgba(0, 0, 0, 0.3);
532
+ display: flex;
533
+ align-items: center;
534
+ justify-content: center;
535
+ z-index: 20;
536
+ }
537
+
538
+ .dialog-backdrop.hidden {
539
+ display: none;
540
+ }
541
+
542
+ .dialog {
543
+ width: 460px;
544
+ max-width: calc(100vw - 24px);
545
+ background: #2b2b2b;
546
+ padding: 10px;
547
+ border: 2px solid #4b4b4b;
548
+ }
549
+
550
+ .dialog h3 {
551
+ margin: 0 0 10px;
552
+ }
553
+
554
+ .dialog-grid {
555
+ display: grid;
556
+ grid-template-columns: repeat(6, minmax(0, 1fr));
557
+ gap: 8px;
558
+ }
559
+
560
+ .dialog-grid label {
561
+ display: flex;
562
+ flex-direction: column;
563
+ gap: 4px;
564
+ font-size: 12px;
565
+ grid-column: span 3;
566
+ }
567
+
568
+ #dlgObjectWrap {
569
+ grid-column: 1 / -1;
570
+ }
571
+
572
+ #dlgTweenPropsWrap,
573
+ #dlgTweenStartsWrap,
574
+ #dlgTweenEndsWrap {
575
+ grid-column: span 2;
576
+ }
577
+
578
+ .dialog-grid input,
579
+ .dialog-grid select {
580
+ border: 1px solid #bbb;
581
+ padding: 5px;
582
+ }
583
+
584
+ .dialog-actions {
585
+ display: flex;
586
+ justify-content: flex-end;
587
+ gap: 8px;
588
+ margin-top: 10px;
589
+ }
590
+
591
+ .dialog-actions button{
592
+ color: #e4e4e4;
593
+ }
594
+
595
+ #timelinePin {
596
+ position: absolute;
597
+ top: 0;
598
+ width: 2px;
599
+ background: #ff3131;
600
+ pointer-events: auto;
601
+ transform: translateX(-7px);
602
+ z-index: 21;
603
+ }
604
+
605
+ #pinHandle {
606
+ position: absolute;
607
+ top: -17px;
608
+ left: 1px;
609
+ transform: translateX(-50%);
610
+ min-width: 18px;
611
+ height: 17px;
612
+ padding: 0 4px;
613
+ background: #ff3131;
614
+ color: #fff;
615
+ font-size: 11px;
616
+ line-height: 14px;
617
+ text-align: center;
618
+ border-radius: 2px;
619
+ user-select: none;
620
+ cursor: ew-resize;
621
+ z-index: 22;
622
+ }
diplotocus/__init__.py ADDED
@@ -0,0 +1,4 @@
1
+ from ._version import __version__
2
+ from .core import *
3
+ import diplotocus.easings as easings
4
+ from .GUI import GUI
diplotocus/_version.py ADDED
@@ -0,0 +1 @@
1
+ __version__ = "0.1"