@norskvideo/norsk-studio 1.27.0-2025-03-05-b23dba52 → 1.27.0-2025-03-10-85778fae

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 (60) hide show
  1. package/lib/client/controls.d.ts +6 -1
  2. package/lib/client/controls.js +29 -5
  3. package/lib/client/controls.js.map +1 -1
  4. package/lib/client/creator.d.ts +2 -1
  5. package/lib/client/creator.js +74 -66
  6. package/lib/client/creator.js.map +1 -1
  7. package/lib/client/jsx/modal.d.ts +30 -0
  8. package/lib/client/jsx/modal.js +71 -0
  9. package/lib/client/jsx/modal.js.map +1 -0
  10. package/lib/client/jsx/node-editor.d.ts +5 -1
  11. package/lib/client/jsx/node-editor.js +18 -15
  12. package/lib/client/jsx/node-editor.js.map +1 -1
  13. package/lib/client/jsx/node.d.ts +3 -2
  14. package/lib/client/jsx/node.js +7 -8
  15. package/lib/client/jsx/node.js.map +1 -1
  16. package/lib/client/jsx/selected-node.d.ts +2 -0
  17. package/lib/client/jsx/selected-node.js +3 -3
  18. package/lib/client/jsx/selected-node.js.map +1 -1
  19. package/lib/client/jsx/selected.d.ts +2 -0
  20. package/lib/client/jsx/selected.js +1 -1
  21. package/lib/client/jsx/selected.js.map +1 -1
  22. package/lib/client/jsx/selectfilename.js +1 -1
  23. package/lib/client/jsx/selectfilename.js.map +1 -1
  24. package/lib/client/jsx/toolbox.js +3 -2
  25. package/lib/client/jsx/toolbox.js.map +1 -1
  26. package/lib/client/jsx/upload.js +2 -2
  27. package/lib/client/jsx/upload.js.map +1 -1
  28. package/lib/client/rete.js +3 -2
  29. package/lib/client/rete.js.map +1 -1
  30. package/lib/client/session-view.d.ts +2 -1
  31. package/lib/client/session-view.js +7 -8
  32. package/lib/client/session-view.js.map +1 -1
  33. package/lib/client/session.d.ts +3 -2
  34. package/lib/client/session.js +3 -1
  35. package/lib/client/session.js.map +1 -1
  36. package/lib/client/tools.js +14 -11
  37. package/lib/client/tools.js.map +1 -1
  38. package/lib/extension/client-types.d.ts +9 -4
  39. package/lib/extension/client-types.js.map +1 -1
  40. package/lib/server/config.d.ts +2 -0
  41. package/lib/server/config.js +2 -0
  42. package/lib/server/config.js.map +1 -1
  43. package/lib/server/index.js +2 -0
  44. package/lib/server/index.js.map +1 -1
  45. package/lib/shared/server-msg.d.ts +2 -0
  46. package/lib/shared/util.d.ts +8 -3
  47. package/lib/shared/util.js +33 -4
  48. package/lib/shared/util.js.map +1 -1
  49. package/lib/test/client-designview.js +104 -3
  50. package/lib/test/client-designview.js.map +1 -1
  51. package/lib/test/client-session.js +1 -1
  52. package/lib/test/client-session.js.map +1 -1
  53. package/package.json +2 -2
  54. package/static/style.css +72 -94
  55. package/static/tailwind.css +14 -0
  56. package/ui/index.html +22 -43
  57. package/ui/index.js +4224 -11143
  58. package/lib/client/modal.d.ts +0 -27
  59. package/lib/client/modal.js +0 -51
  60. package/lib/client/modal.js.map +0 -1
package/static/style.css CHANGED
@@ -1231,10 +1231,6 @@ input[type="range"]::-ms-fill-lower {
1231
1231
  right: 0.25rem;
1232
1232
  }
1233
1233
 
1234
- .right-2\.5 {
1235
- right: 0.625rem;
1236
- }
1237
-
1238
1234
  .top-0 {
1239
1235
  top: 0px;
1240
1236
  }
@@ -1383,6 +1379,11 @@ input[type="range"]::-ms-fill-lower {
1383
1379
  margin-bottom: 2rem;
1384
1380
  }
1385
1381
 
1382
+ .my-auto {
1383
+ margin-top: auto;
1384
+ margin-bottom: auto;
1385
+ }
1386
+
1386
1387
  .-mb-px {
1387
1388
  margin-bottom: -1px;
1388
1389
  }
@@ -1495,10 +1496,6 @@ input[type="range"]::-ms-fill-lower {
1495
1496
  margin-inline-start: 0.75rem;
1496
1497
  }
1497
1498
 
1498
- .ms-auto {
1499
- margin-inline-start: auto;
1500
- }
1501
-
1502
1499
  .mt-0 {
1503
1500
  margin-top: 0px;
1504
1501
  }
@@ -1703,10 +1700,6 @@ input[type="range"]::-ms-fill-lower {
1703
1700
  height: 18px;
1704
1701
  }
1705
1702
 
1706
- .h-\[24px\] {
1707
- height: 24px;
1708
- }
1709
-
1710
1703
  .h-\[32px\] {
1711
1704
  height: 32px;
1712
1705
  }
@@ -1727,10 +1720,6 @@ input[type="range"]::-ms-fill-lower {
1727
1720
  height: 64px;
1728
1721
  }
1729
1722
 
1730
- .h-\[calc\(100\%-1rem\)\] {
1731
- height: calc(100% - 1rem);
1732
- }
1733
-
1734
1723
  .h-auto {
1735
1724
  height: auto;
1736
1725
  }
@@ -1752,18 +1741,10 @@ input[type="range"]::-ms-fill-lower {
1752
1741
  height: 100vh;
1753
1742
  }
1754
1743
 
1755
- .max-h-\[24px\] {
1756
- max-height: 24px;
1757
- }
1758
-
1759
1744
  .max-h-\[90dvh\] {
1760
1745
  max-height: 90dvh;
1761
1746
  }
1762
1747
 
1763
- .max-h-full {
1764
- max-height: 100%;
1765
- }
1766
-
1767
1748
  .w-1\/2 {
1768
1749
  width: 50%;
1769
1750
  }
@@ -1860,10 +1841,6 @@ input[type="range"]::-ms-fill-lower {
1860
1841
  width: 18px;
1861
1842
  }
1862
1843
 
1863
- .w-\[24px\] {
1864
- width: 24px;
1865
- }
1866
-
1867
1844
  .w-\[272px\] {
1868
1845
  width: 272px;
1869
1846
  }
@@ -1942,10 +1919,6 @@ input[type="range"]::-ms-fill-lower {
1942
1919
  max-width: 100vw;
1943
1920
  }
1944
1921
 
1945
- .max-w-\[24px\] {
1946
- max-width: 24px;
1947
- }
1948
-
1949
1922
  .max-w-lg {
1950
1923
  max-width: 32rem;
1951
1924
  }
@@ -2258,6 +2231,10 @@ input[type="range"]::-ms-fill-lower {
2258
2231
  gap: 0.5rem;
2259
2232
  }
2260
2233
 
2234
+ .gap-3 {
2235
+ gap: 0.75rem;
2236
+ }
2237
+
2261
2238
  .gap-4 {
2262
2239
  gap: 1rem;
2263
2240
  }
@@ -2375,6 +2352,10 @@ input[type="range"]::-ms-fill-lower {
2375
2352
  overflow: visible !important;
2376
2353
  }
2377
2354
 
2355
+ .overflow-visible {
2356
+ overflow: visible;
2357
+ }
2358
+
2378
2359
  .overflow-y-auto {
2379
2360
  overflow-y: auto;
2380
2361
  }
@@ -2637,11 +2618,6 @@ input[type="range"]::-ms-fill-lower {
2637
2618
  border-style: none;
2638
2619
  }
2639
2620
 
2640
- .\!border-primary-700 {
2641
- --tw-border-opacity: 1 !important;
2642
- border-color: rgb(29 78 216 / var(--tw-border-opacity, 1)) !important;
2643
- }
2644
-
2645
2621
  .border-amber-500 {
2646
2622
  --tw-border-opacity: 1;
2647
2623
  border-color: rgb(245 158 11 / var(--tw-border-opacity, 1));
@@ -2662,11 +2638,6 @@ input[type="range"]::-ms-fill-lower {
2662
2638
  border-color: rgb(28 100 242 / var(--tw-border-opacity, 1));
2663
2639
  }
2664
2640
 
2665
- .border-blue-700 {
2666
- --tw-border-opacity: 1;
2667
- border-color: rgb(26 86 219 / var(--tw-border-opacity, 1));
2668
- }
2669
-
2670
2641
  .border-blue-800 {
2671
2642
  --tw-border-opacity: 1;
2672
2643
  border-color: rgb(30 66 159 / var(--tw-border-opacity, 1));
@@ -2876,16 +2847,6 @@ input[type="range"]::-ms-fill-lower {
2876
2847
  background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)) !important;
2877
2848
  }
2878
2849
 
2879
- .\!bg-primary-600 {
2880
- --tw-bg-opacity: 1 !important;
2881
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)) !important;
2882
- }
2883
-
2884
- .\!bg-primary-700 {
2885
- --tw-bg-opacity: 1 !important;
2886
- background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)) !important;
2887
- }
2888
-
2889
2850
  .\!bg-transparent {
2890
2851
  background-color: transparent !important;
2891
2852
  }
@@ -3678,6 +3639,10 @@ input[type="range"]::-ms-fill-lower {
3678
3639
  text-align: start;
3679
3640
  }
3680
3641
 
3642
+ .align-bottom {
3643
+ vertical-align: bottom;
3644
+ }
3645
+
3681
3646
  .text-2xl {
3682
3647
  font-size: 1.5rem;
3683
3648
  line-height: 2rem;
@@ -3816,10 +3781,6 @@ input[type="range"]::-ms-fill-lower {
3816
3781
  line-height: 1;
3817
3782
  }
3818
3783
 
3819
- .leading-relaxed {
3820
- line-height: 1.625;
3821
- }
3822
-
3823
3784
  .leading-tight {
3824
3785
  line-height: 1.25;
3825
3786
  }
@@ -3828,6 +3789,11 @@ input[type="range"]::-ms-fill-lower {
3828
3789
  letter-spacing: -0.025em;
3829
3790
  }
3830
3791
 
3792
+ .text-black {
3793
+ --tw-text-opacity: 1;
3794
+ color: rgb(0 0 0 / var(--tw-text-opacity, 1));
3795
+ }
3796
+
3831
3797
  .text-blue-500 {
3832
3798
  --tw-text-opacity: 1;
3833
3799
  color: rgb(63 131 248 / var(--tw-text-opacity, 1));
@@ -4435,6 +4401,12 @@ input[type="range"]::-ms-fill-lower {
4435
4401
  transition-duration: 150ms;
4436
4402
  }
4437
4403
 
4404
+ .transition-colors {
4405
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
4406
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
4407
+ transition-duration: 150ms;
4408
+ }
4409
+
4438
4410
  .transition-opacity {
4439
4411
  transition-property: opacity;
4440
4412
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -4718,6 +4690,21 @@ input[type="range"]::-ms-fill-lower {
4718
4690
  padding-bottom: 1em;
4719
4691
  }
4720
4692
 
4693
+ /* For some reason, type=file was excluded */
4694
+
4695
+ input[type="file"]:focus {
4696
+ outline: 2px solid transparent;
4697
+ outline-offset: 2px;
4698
+ --tw-ring-inset: var(--tw-empty, );
4699
+ --tw-ring-offset-width: 0px;
4700
+ --tw-ring-offset-color: #fff;
4701
+ --tw-ring-color: #1C64F2;
4702
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
4703
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
4704
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
4705
+ border-color: #1C64F2;
4706
+ }
4707
+
4721
4708
  .after\:absolute::after {
4722
4709
  content: var(--tw-content);
4723
4710
  position: absolute;
@@ -4847,6 +4834,12 @@ input[type="range"]::-ms-fill-lower {
4847
4834
  color: rgb(126 58 242 );
4848
4835
  }
4849
4836
 
4837
+ .hover\:scale-\[103\%\]:hover {
4838
+ --tw-scale-x: 103%;
4839
+ --tw-scale-y: 103%;
4840
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
4841
+ }
4842
+
4850
4843
  .hover\:cursor-not-allowed:hover {
4851
4844
  cursor: not-allowed;
4852
4845
  }
@@ -4856,11 +4849,6 @@ input[type="range"]::-ms-fill-lower {
4856
4849
  border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
4857
4850
  }
4858
4851
 
4859
- .hover\:\!bg-primary-800:hover {
4860
- --tw-bg-opacity: 1 !important;
4861
- background-color: rgb(30 64 175 / var(--tw-bg-opacity, 1)) !important;
4862
- }
4863
-
4864
4852
  .hover\:bg-blue-200:hover {
4865
4853
  --tw-bg-opacity: 1;
4866
4854
  background-color: rgb(195 221 253 / var(--tw-bg-opacity, 1));
@@ -5019,6 +5007,11 @@ input[type="range"]::-ms-fill-lower {
5019
5007
  text-decoration-line: underline;
5020
5008
  }
5021
5009
 
5010
+ .hover\:drop-shadow-md:hover {
5011
+ --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06));
5012
+ filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
5013
+ }
5014
+
5022
5015
  .focus\:z-10:focus {
5023
5016
  z-index: 10;
5024
5017
  }
@@ -5111,11 +5104,6 @@ input[type="range"]::-ms-fill-lower {
5111
5104
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
5112
5105
  }
5113
5106
 
5114
- .focus\:\!ring-primary-300:focus {
5115
- --tw-ring-opacity: 1 !important;
5116
- --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity, 1)) !important;
5117
- }
5118
-
5119
5107
  .focus\:ring-blue-300:focus {
5120
5108
  --tw-ring-opacity: 1;
5121
5109
  --tw-ring-color: rgb(164 202 254 / var(--tw-ring-opacity, 1));
@@ -5554,11 +5542,20 @@ input[type="range"]::-ms-fill-lower {
5554
5542
  border-bottom-right-radius: 0.5rem;
5555
5543
  }
5556
5544
 
5545
+ .group:hover .group-hover\:border-transparent {
5546
+ border-color: transparent;
5547
+ }
5548
+
5557
5549
  .group:hover .group-hover\:bg-blue-200 {
5558
5550
  --tw-bg-opacity: 1;
5559
5551
  background-color: rgb(195 221 253 / var(--tw-bg-opacity, 1));
5560
5552
  }
5561
5553
 
5554
+ .group:hover .group-hover\:bg-blue-500 {
5555
+ --tw-bg-opacity: 1;
5556
+ background-color: rgb(63 131 248 / var(--tw-bg-opacity, 1));
5557
+ }
5558
+
5562
5559
  .group:hover .group-hover\:bg-cyan-200 {
5563
5560
  --tw-bg-opacity: 1;
5564
5561
  background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1));
@@ -5633,6 +5630,11 @@ input[type="range"]::-ms-fill-lower {
5633
5630
  color: rgb(17 24 39 / var(--tw-text-opacity, 1));
5634
5631
  }
5635
5632
 
5633
+ .group:hover .group-hover\:text-white {
5634
+ --tw-text-opacity: 1;
5635
+ color: rgb(255 255 255 / var(--tw-text-opacity, 1));
5636
+ }
5637
+
5636
5638
  .group:focus .group-focus\:outline-none {
5637
5639
  outline: 2px solid transparent;
5638
5640
  outline-offset: 2px;
@@ -5891,16 +5893,6 @@ input[type="range"]::-ms-fill-lower {
5891
5893
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1)) !important;
5892
5894
  }
5893
5895
 
5894
- .dark\:\!bg-primary-600:is(.dark *) {
5895
- --tw-bg-opacity: 1 !important;
5896
- background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)) !important;
5897
- }
5898
-
5899
- .dark\:\!bg-primary-700:is(.dark *) {
5900
- --tw-bg-opacity: 1 !important;
5901
- background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)) !important;
5902
- }
5903
-
5904
5896
  .dark\:bg-amber-700:is(.dark *) {
5905
5897
  --tw-bg-opacity: 1;
5906
5898
  background-color: rgb(180 83 9 / var(--tw-bg-opacity, 1));
@@ -6544,11 +6536,6 @@ input[type="range"]::-ms-fill-lower {
6544
6536
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
6545
6537
  }
6546
6538
 
6547
- .dark\:hover\:\!bg-primary-700:hover:is(.dark *) {
6548
- --tw-bg-opacity: 1 !important;
6549
- background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)) !important;
6550
- }
6551
-
6552
6539
  .dark\:hover\:bg-blue-300:hover:is(.dark *) {
6553
6540
  --tw-bg-opacity: 1;
6554
6541
  background-color: rgb(164 202 254 / var(--tw-bg-opacity, 1));
@@ -6579,6 +6566,10 @@ input[type="range"]::-ms-fill-lower {
6579
6566
  background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));
6580
6567
  }
6581
6568
 
6569
+ .dark\:hover\:bg-gray-600\/10:hover:is(.dark *) {
6570
+ background-color: rgb(75 85 99 / 0.1);
6571
+ }
6572
+
6582
6573
  .dark\:hover\:bg-gray-700:hover:is(.dark *) {
6583
6574
  --tw-bg-opacity: 1;
6584
6575
  background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));
@@ -7384,10 +7375,6 @@ input[type="range"]::-ms-fill-lower {
7384
7375
  padding: 0px;
7385
7376
  }
7386
7377
 
7387
- .md\:p-5 {
7388
- padding: 1.25rem;
7389
- }
7390
-
7391
7378
  .md\:text-lg {
7392
7379
  font-size: 1.125rem;
7393
7380
  line-height: 1.75rem;
@@ -7471,15 +7458,6 @@ input[type="range"]::-ms-fill-lower {
7471
7458
  }
7472
7459
  }
7473
7460
 
7474
- .rtl\:rotate-180:where([dir="rtl"], [dir="rtl"] *) {
7475
- --tw-rotate: 180deg;
7476
- transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
7477
- }
7478
-
7479
- .rtl\:space-x-reverse:where([dir="rtl"], [dir="rtl"] *) > :not([hidden]) ~ :not([hidden]) {
7480
- --tw-space-x-reverse: 1;
7481
- }
7482
-
7483
7461
  .rtl\:after\:right-1:where([dir="rtl"], [dir="rtl"] *)::after {
7484
7462
  content: var(--tw-content);
7485
7463
  right: 0.25rem;
@@ -54,3 +54,17 @@
54
54
  .form-group {
55
55
  padding-bottom: 1em;
56
56
  }
57
+
58
+ /* For some reason, type=file was excluded */
59
+ input[type="file"]:focus {
60
+ outline: 2px solid transparent;
61
+ outline-offset: 2px;
62
+ --tw-ring-inset: var(--tw-empty, );
63
+ --tw-ring-offset-width: 0px;
64
+ --tw-ring-offset-color: #fff;
65
+ --tw-ring-color: #1C64F2;
66
+ --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
67
+ --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
68
+ box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
69
+ border-color: #1C64F2;
70
+ }
package/ui/index.html CHANGED
@@ -23,14 +23,14 @@
23
23
  </a>
24
24
  </div>
25
25
  <form class="flex m-0">
26
- <a target="_blank" href="docs" id="btn-docs"
27
- class="text-gray-800 dark:text-gray-200 dark:bg-gray-600 hover:bg-gray-200 dark:hover:bg-gray-700 mr-2 display-inline-block rounded-lg text-sm font-semibold px-2.5 py-3">
28
- Docs
26
+ <a target="_blank" href="https://docs.norsk.video/studio/index.html" id="btn-docs"
27
+ class="whitespace-nowrap text-gray-800 dark:text-gray-200 dark:bg-gray-600 hover:bg-gray-200 dark:hover:bg-gray-700 mr-2 display-inline-block rounded-lg text-sm font-semibold px-2.5 py-3">
28
+ Studio Docs
29
29
  </a>
30
30
 
31
- <a target="_blank" href="live/docs" id="btn-live-docs"
32
- class="hidden whitespace-nowrap text-gray-800 dark:text-gray-200 dark:bg-gray-600 hover:bg-gray-200 dark:hover:bg-gray-700 mr-2 display-inline-block rounded-lg text-sm font-semibold px-2.5 py-3">
33
- Live Docs
31
+ <a target="_blank" href="docs" id="btn-live-docs"
32
+ class="whitespace-nowrap text-gray-800 dark:text-gray-200 dark:bg-gray-600 hover:bg-gray-200 dark:hover:bg-gray-700 mr-2 display-inline-block rounded-lg text-sm font-semibold px-2.5 py-3">
33
+ API Docs
34
34
  </a>
35
35
 
36
36
  <button id="btn-start" type="button"
@@ -70,13 +70,23 @@
70
70
  class="bg-gray-50 border border-gray-300 text-gray-900 disabled:text-gray-500 text-sm rounded-lg focus:ring-primary-500 focus:border-primary-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white disabled:dark:text-gray-400 dark:focus:ring-primary-500 dark:focus:border-primary-500">
71
71
  </select>
72
72
 
73
- <button id="btn-save" type="button"
74
- class="disabled:bg-gray-100 dark:disabled:bg-gray-700 disabled:text-gray-600 dark:disabled:text-gray-600 ml-2 text-white bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm p-2.5 text-center inline-flex items-center me-2 dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800"
75
- data-modal-target="modal-center" data-modal-toggle="modal-center">
73
+ <button id="btn-upload" type="button"
74
+ class="disabled:bg-gray-100 dark:disabled:bg-gray-700 disabled:text-gray-600 dark:disabled:text-gray-600 ml-2 text-white bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm p-2.5 text-center inline-flex items-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800">
76
75
  <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
77
76
  stroke="currentColor" class="w-6 h-6">
78
77
  <path stroke-linecap="round" stroke-linejoin="round"
79
- d="M9 13.5l3 3m0 0l3-3m-3 3v-6m1.06-4.19l-2.12-2.12a1.5 1.5 0 00-1.061-.44H4.5A2.25 2.25 0 002.25 6v12a2.25 2.25 0 002.25 2.25h15A2.25 2.25 0 0021.75 18V9a2.25 2.25 0 00-2.25-2.25h-5.379a1.5 1.5 0 01-1.06-.44z" />
78
+ d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m6.75 12-3-3m0 0-3 3m3-3v6m-1.5-15H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z"></path>
79
+ </svg>
80
+ <span class="sr-only">Upload</span>
81
+ </button>
82
+
83
+ <button id="btn-save" type="button"
84
+ class="disabled:bg-gray-100 dark:disabled:bg-gray-700 disabled:text-gray-600 dark:disabled:text-gray-600 ml-2 text-white bg-primary-700 hover:bg-primary-800 focus:ring-4 focus:outline-none focus:ring-primary-300 font-medium rounded-lg text-sm p-2.5 text-center inline-flex items-center dark:bg-primary-600 dark:hover:bg-primary-700 dark:focus:ring-primary-800">
85
+ <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5"
86
+ stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" class="w-6 h-6">
87
+ <path d="M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" />
88
+ <polyline points="17 21 17 13 7 13 7 21" />
89
+ <polyline points="7 3 7 8 15 8" />
80
90
  </svg>
81
91
  <span class="sr-only">Save</span>
82
92
  </button>
@@ -93,7 +103,7 @@
93
103
  </div>
94
104
  </div>
95
105
  </div>
96
- <div>
106
+ <div style="z-index: 41">
97
107
  <div id="drawer-console"
98
108
  class="h-20 w-full overflow-y-auto bg-white border-t border-gray-200 dark:border-gray-700 dark:bg-gray-800"
99
109
  tabindex="-1" aria-labelledby="drawer-console-label">
@@ -106,38 +116,7 @@
106
116
  </div>
107
117
  </div>
108
118
  </div>
109
- <div id="modal-center" tabindex="-1" aria-hidden="true"
110
- class="hidden overflow-y-auto overflow-x-hidden fixed top-0 right-0 left-0 z-50 justify-center items-center w-full md:inset-0 h-[calc(100%-1rem)] max-h-full">
111
- <div class="relative p-4 w-full max-w-2xl max-h-full">
112
- <div class="relative bg-white rounded-lg shadow dark:bg-gray-700">
113
- <div class="flex items-center justify-between p-4 md:p-5 border-b rounded-t dark:border-gray-600">
114
- <h3 id="modal-title" class="text-xl font-semibold text-gray-900 dark:text-white">
115
- </h3>
116
- <button id="modal-close" type="button"
117
- class="text-gray-400 bg-transparent hover:bg-gray-200 hover:text-gray-900 rounded-lg text-sm w-8 h-8 ms-auto inline-flex justify-center items-center dark:hover:bg-gray-600 dark:hover:text-white"
118
- data-modal-hide="modal-center">
119
- <svg class="w-3 h-3" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 14 14">
120
- <path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2"
121
- d="m1 1 6 6m0 0 6 6M7 7l6-6M7 7l-6 6" />
122
- </svg>
123
- <span class="sr-only">Close modal</span>
124
- </button>
125
- </div>
126
- <div class="p-4 md:p-5 space-y-4">
127
- <div class="text-base leading-relaxed text-gray-500 dark:text-gray-400" id="modal-body">
128
- </div>
129
- </div>
130
- <div class="flex items-center p-4 md:p-5 border-t border-gray-200 rounded-b dark:border-gray-600">
131
- <button id="modal-ok" data-modal-hide="modal-center" type="button"
132
- class="text-white bg-blue-700 hover:bg-blue-800 dark:bg-blue-600 dark:hover:bg-blue-700 disabled:bg-gray-700 disabled:dark:bg-gray-600 disabled:cursor-not-allowed focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:focus:ring-blue-800"></button>
133
- <button id="modal-cancel" data-modal-hide="modal-center" type="button" class="ms-3 text-gray-modal-body500 bg-white hover:bg-gray-100 focus:ring-4 focus:outline-none focus:ring-blue-300 rounded-lg
134
- border border-gray-200 text-sm font-medium px-5 py-2.5 hover:text-gray-900 focus:z-10 dark:bg-gray-700
135
- dark:text-gray-300 dark:border-gray-500 dark:hover:text-white dark:hover:bg-gray-600
136
- dark:focus:ring-gray-600"></button>
137
- </div>
138
- </div>
139
- </div>
140
- </div>
119
+ <div id="modal-react-root"></div>
141
120
  <script type="module" src="bypass-esbuild.js"></script>
142
121
  <script src="static/flowbite.min.js" type="text/javascript"></script>
143
122
  <script type="module" src="static/webrtc.js"></script>