@mulmoclaude/mulmoscript-plugin 3.1.0 → 4.1.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.
- package/dist/contract-BhN3yKJC.cjs +36 -0
- package/dist/contract-BhN3yKJC.cjs.map +1 -0
- package/dist/contract-CIt1ZAtt.js +19 -0
- package/dist/contract-CIt1ZAtt.js.map +1 -0
- package/dist/core/contract.d.ts +24 -0
- package/dist/core/contract.d.ts.map +1 -1
- package/dist/server/dispatch.d.ts.map +1 -1
- package/dist/server/ops.d.ts +1 -0
- package/dist/server/ops.d.ts.map +1 -1
- package/dist/server/types.d.ts +6 -1
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server.cjs +18 -2
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +18 -2
- package/dist/server.js.map +1 -1
- package/dist/style.css +119 -19
- package/dist/vue/View.vue.d.ts.map +1 -1
- package/dist/vue/composables/useDeckEditor.d.ts +1 -0
- package/dist/vue/composables/useDeckEditor.d.ts.map +1 -1
- package/dist/vue/helpers.d.ts +2 -2
- package/dist/vue/index.d.ts +1 -0
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/transport.d.ts +3 -0
- package/dist/vue/transport.d.ts.map +1 -1
- package/dist/vue/viewTypes.d.ts +1 -1
- package/dist/vue/viewTypes.d.ts.map +1 -1
- package/dist/vue.cjs +73 -14
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +73 -14
- package/dist/vue.js.map +1 -1
- package/package.json +4 -2
- package/dist/contract-DxKVCRQk.cjs +0 -13
- package/dist/contract-DxKVCRQk.cjs.map +0 -1
- package/dist/contract-vY0niHkh.js +0 -8
- package/dist/contract-vY0niHkh.js.map +0 -1
package/dist/style.css
CHANGED
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
--color-gray-600: oklch(44.6% .03 256.802);
|
|
83
83
|
--color-gray-700: oklch(37.3% .034 259.733);
|
|
84
84
|
--color-gray-800: oklch(27.8% .033 256.848);
|
|
85
|
+
--color-gray-900: oklch(21% .034 264.665);
|
|
85
86
|
--color-black: #000;
|
|
86
87
|
--color-white: #fff;
|
|
87
88
|
--spacing: .25rem;
|
|
@@ -93,6 +94,8 @@
|
|
|
93
94
|
--text-base--line-height: calc(1.5 / 1);
|
|
94
95
|
--text-lg: 1.125rem;
|
|
95
96
|
--text-lg--line-height: calc(1.75 / 1.125);
|
|
97
|
+
--text-xl: 1.25rem;
|
|
98
|
+
--text-xl--line-height: calc(1.75 / 1.25);
|
|
96
99
|
--text-3xl: 1.875rem;
|
|
97
100
|
--text-3xl--line-height: calc(2.25 / 1.875);
|
|
98
101
|
--text-4xl: 2.25rem;
|
|
@@ -373,6 +376,10 @@
|
|
|
373
376
|
visibility: collapse;
|
|
374
377
|
}
|
|
375
378
|
|
|
379
|
+
.invisible {
|
|
380
|
+
visibility: hidden;
|
|
381
|
+
}
|
|
382
|
+
|
|
376
383
|
.visible {
|
|
377
384
|
visibility: visible;
|
|
378
385
|
}
|
|
@@ -461,6 +468,40 @@
|
|
|
461
468
|
z-index: 50;
|
|
462
469
|
}
|
|
463
470
|
|
|
471
|
+
.container {
|
|
472
|
+
width: 100%;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
@media (min-width: 40rem) {
|
|
476
|
+
.container {
|
|
477
|
+
max-width: 40rem;
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
@media (min-width: 48rem) {
|
|
482
|
+
.container {
|
|
483
|
+
max-width: 48rem;
|
|
484
|
+
}
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
@media (min-width: 64rem) {
|
|
488
|
+
.container {
|
|
489
|
+
max-width: 64rem;
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
@media (min-width: 80rem) {
|
|
494
|
+
.container {
|
|
495
|
+
max-width: 80rem;
|
|
496
|
+
}
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
@media (min-width: 96rem) {
|
|
500
|
+
.container {
|
|
501
|
+
max-width: 96rem;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
|
|
464
505
|
.m-auto {
|
|
465
506
|
margin: auto;
|
|
466
507
|
}
|
|
@@ -509,6 +550,10 @@
|
|
|
509
550
|
display: flex;
|
|
510
551
|
}
|
|
511
552
|
|
|
553
|
+
.grid {
|
|
554
|
+
display: grid;
|
|
555
|
+
}
|
|
556
|
+
|
|
512
557
|
.hidden {
|
|
513
558
|
display: none;
|
|
514
559
|
}
|
|
@@ -569,6 +614,10 @@
|
|
|
569
614
|
height: calc(var(--spacing) * 36);
|
|
570
615
|
}
|
|
571
616
|
|
|
617
|
+
.h-\[720px\] {
|
|
618
|
+
height: 720px;
|
|
619
|
+
}
|
|
620
|
+
|
|
572
621
|
.h-full {
|
|
573
622
|
height: 100%;
|
|
574
623
|
}
|
|
@@ -581,6 +630,14 @@
|
|
|
581
630
|
max-height: 85vh;
|
|
582
631
|
}
|
|
583
632
|
|
|
633
|
+
.min-h-0 {
|
|
634
|
+
min-height: 0;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
.min-h-screen {
|
|
638
|
+
min-height: 100vh;
|
|
639
|
+
}
|
|
640
|
+
|
|
584
641
|
.w-3 {
|
|
585
642
|
width: calc(var(--spacing) * 3);
|
|
586
643
|
}
|
|
@@ -617,6 +674,10 @@
|
|
|
617
674
|
width: calc(var(--spacing) * 48);
|
|
618
675
|
}
|
|
619
676
|
|
|
677
|
+
.w-96 {
|
|
678
|
+
width: calc(var(--spacing) * 96);
|
|
679
|
+
}
|
|
680
|
+
|
|
620
681
|
.w-\[45\%\] {
|
|
621
682
|
width: 45%;
|
|
622
683
|
}
|
|
@@ -745,12 +806,28 @@
|
|
|
745
806
|
margin-block-end: calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)));
|
|
746
807
|
}
|
|
747
808
|
|
|
809
|
+
:where(.space-y-2 > :not(:last-child)) {
|
|
810
|
+
--tw-space-y-reverse: 0;
|
|
811
|
+
margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
|
|
812
|
+
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
:where(.space-y-4 > :not(:last-child)) {
|
|
816
|
+
--tw-space-y-reverse: 0;
|
|
817
|
+
margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
|
|
818
|
+
margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
|
|
819
|
+
}
|
|
820
|
+
|
|
748
821
|
.truncate {
|
|
749
822
|
text-overflow: ellipsis;
|
|
750
823
|
white-space: nowrap;
|
|
751
824
|
overflow: hidden;
|
|
752
825
|
}
|
|
753
826
|
|
|
827
|
+
.overflow-auto {
|
|
828
|
+
overflow: auto;
|
|
829
|
+
}
|
|
830
|
+
|
|
754
831
|
.overflow-hidden {
|
|
755
832
|
overflow: hidden;
|
|
756
833
|
}
|
|
@@ -781,6 +858,11 @@
|
|
|
781
858
|
border-top-width: 1px;
|
|
782
859
|
}
|
|
783
860
|
|
|
861
|
+
.border-r {
|
|
862
|
+
border-right-style: var(--tw-border-style);
|
|
863
|
+
border-right-width: 1px;
|
|
864
|
+
}
|
|
865
|
+
|
|
784
866
|
.border-b {
|
|
785
867
|
border-bottom-style: var(--tw-border-style);
|
|
786
868
|
border-bottom-width: 1px;
|
|
@@ -898,6 +980,10 @@
|
|
|
898
980
|
background-color: var(--color-gray-50);
|
|
899
981
|
}
|
|
900
982
|
|
|
983
|
+
.bg-gray-100 {
|
|
984
|
+
background-color: var(--color-gray-100);
|
|
985
|
+
}
|
|
986
|
+
|
|
901
987
|
.bg-green-600 {
|
|
902
988
|
background-color: var(--color-green-600);
|
|
903
989
|
}
|
|
@@ -966,6 +1052,10 @@
|
|
|
966
1052
|
padding: calc(var(--spacing) * 2);
|
|
967
1053
|
}
|
|
968
1054
|
|
|
1055
|
+
.p-6 {
|
|
1056
|
+
padding: calc(var(--spacing) * 6);
|
|
1057
|
+
}
|
|
1058
|
+
|
|
969
1059
|
.px-1 {
|
|
970
1060
|
padding-inline: var(--spacing);
|
|
971
1061
|
}
|
|
@@ -1076,6 +1166,11 @@
|
|
|
1076
1166
|
line-height: var(--tw-leading, var(--text-sm--line-height));
|
|
1077
1167
|
}
|
|
1078
1168
|
|
|
1169
|
+
.text-xl {
|
|
1170
|
+
font-size: var(--text-xl);
|
|
1171
|
+
line-height: var(--tw-leading, var(--text-xl--line-height));
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1079
1174
|
.text-xs {
|
|
1080
1175
|
font-size: var(--text-xs);
|
|
1081
1176
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
@@ -1160,6 +1255,10 @@
|
|
|
1160
1255
|
color: var(--color-gray-800);
|
|
1161
1256
|
}
|
|
1162
1257
|
|
|
1258
|
+
.text-gray-900 {
|
|
1259
|
+
color: var(--color-gray-900);
|
|
1260
|
+
}
|
|
1261
|
+
|
|
1163
1262
|
.text-green-400 {
|
|
1164
1263
|
color: var(--color-green-400);
|
|
1165
1264
|
}
|
|
@@ -1629,19 +1728,20 @@
|
|
|
1629
1728
|
transform: rotate(360deg);
|
|
1630
1729
|
}
|
|
1631
1730
|
}
|
|
1632
|
-
|
|
1633
|
-
.bottom-bar-wrapper[data-v-f8c0d52b] {
|
|
1731
|
+
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
1732
|
+
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50:oklch(97.1% .013 17.38);--color-red-400:oklch(70.4% .191 22.216);--color-red-600:oklch(57.7% .245 27.325);--color-amber-500:oklch(76.9% .188 70.08);--color-amber-700:oklch(55.5% .163 48.998);--color-emerald-500:oklch(69.6% .17 162.48);--color-cyan-500:oklch(71.5% .143 215.221);--color-sky-500:oklch(68.5% .169 237.323);--color-violet-500:oklch(60.6% .25 292.717);--color-fuchsia-500:oklch(66.7% .295 322.15);--color-rose-100:oklch(94.1% .03 12.58);--color-rose-500:oklch(64.5% .246 16.439);--color-rose-600:oklch(58.6% .253 17.585);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-stone-50:oklch(98.5% .001 106.423);--color-stone-100:oklch(97% .001 106.424);--color-stone-200:oklch(92.3% .003 48.717);--color-stone-300:oklch(86.9% .005 56.366);--color-stone-400:oklch(70.9% .01 56.259);--color-stone-500:oklch(55.3% .013 58.071);--color-stone-600:oklch(44.4% .011 73.639);--color-stone-700:oklch(37.4% .01 67.558);--color-stone-900:oklch(21.6% .006 56.043);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-3xl:48rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--tracking-wide:.025em;--tracking-wider:.05em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-md:.375rem;--radius-lg:.5rem;--aspect-video:16 / 9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1)}}@layer base,components;@layer utilities{.\@container{container-type:inline-size}.collapse{visibility:collapse}.invisible{visibility:hidden}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.-top-20{top:calc(var(--spacing) * -20)}.top-0{top:0}.top-5{top:calc(var(--spacing) * 5)}.top-\[52px\]{top:52px}.-right-8{right:calc(var(--spacing) * -8)}.right-0{right:0}.right-1{right:var(--spacing)}.right-4{right:calc(var(--spacing) * 4)}.right-6{right:calc(var(--spacing) * 6)}.-bottom-12{bottom:calc(var(--spacing) * -12)}.bottom-0{bottom:0}.bottom-2{bottom:calc(var(--spacing) * 2)}.bottom-5{bottom:calc(var(--spacing) * 5)}.-left-16{left:calc(var(--spacing) * -16)}.left-0{left:0}.left-1{left:var(--spacing)}.left-4{left:calc(var(--spacing) * 4)}.left-6{left:calc(var(--spacing) * 6)}.z-0{z-index:0}.z-10{z-index:10}.z-50{z-index:50}.z-\[1\]{z-index:1}.col-span-2{grid-column:span 2/span 2}.col-span-3{grid-column:span 3/span 3}.col-span-4{grid-column:span 4/span 4}.row-2{grid-row:2}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.mx-1{margin-inline:var(--spacing)}.mx-12{margin-inline:calc(var(--spacing) * 12)}.mx-auto{margin-inline:auto}.my-2{margin-block:calc(var(--spacing) * 2)}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-auto{margin-top:auto}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:var(--spacing)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.mb-8{margin-bottom:calc(var(--spacing) * 8)}.ml-1{margin-left:var(--spacing)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-3{margin-left:calc(var(--spacing) * 3)}.ml-6{margin-left:calc(var(--spacing) * 6)}.ml-auto{margin-left:auto}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.list-item{display:list-item}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-10{height:calc(var(--spacing) * 10)}.h-16{height:calc(var(--spacing) * 16)}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-\[280px\]{height:280px}.h-\[360px\]{height:360px}.h-full{height:100%}.max-h-1\/2{max-height:50%}.min-h-0{min-height:0}.w-1{width:var(--spacing)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-14{width:calc(var(--spacing) * 14)}.w-16{width:calc(var(--spacing) * 16)}.w-24{width:calc(var(--spacing) * 24)}.w-32{width:calc(var(--spacing) * 32)}.w-56{width:calc(var(--spacing) * 56)}.w-\[48px\]{width:48px}.w-\[280px\]{width:280px}.w-\[360px\]{width:360px}.w-full{width:100%}.w-px{width:1px}.max-w-2xl{max-width:var(--container-2xl)}.max-w-3xl{max-width:var(--container-3xl)}.max-w-none{max-width:none}.min-w-0{min-width:0}.min-w-\[80px\]{min-width:80px}.flex-1{flex:1}.flex-\[1\.5\]{flex:1.5}.shrink{flex-shrink:1}.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.border-collapse{border-collapse:collapse}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-rows-2{grid-template-rows:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.content-center{align-content:center}.content-start{align-content:flex-start}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-1{gap:var(--spacing)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-3>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}.self-start{align-self:flex-start}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.rounded-l{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-2{border-left-style:var(--tw-border-style);border-left-width:2px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-gray-200{border-color:var(--color-gray-200)}.border-red-400{border-color:var(--color-red-400)}.border-stone-200{border-color:var(--color-stone-200)}.border-stone-300{border-color:var(--color-stone-300)}.border-stone-700{border-color:var(--color-stone-700)}.border-transparent{border-color:#0000}.bg-\[\#0D1117\]{background-color:#0d1117}.bg-amber-500{background-color:var(--color-amber-500)}.bg-cyan-500{background-color:var(--color-cyan-500)}.bg-emerald-500{background-color:var(--color-emerald-500)}.bg-fuchsia-500{background-color:var(--color-fuchsia-500)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-red-50{background-color:var(--color-red-50)}.bg-rose-500{background-color:var(--color-rose-500)}.bg-sky-500{background-color:var(--color-sky-500)}.bg-stone-50{background-color:var(--color-stone-50)}.bg-stone-50\/40{background-color:#fafaf966}@supports (color:color-mix(in lab, red, red)){.bg-stone-50\/40{background-color:color-mix(in oklab, var(--color-stone-50) 40%, transparent)}}.bg-stone-200{background-color:var(--color-stone-200)}.bg-stone-700{background-color:var(--color-stone-700)}.bg-violet-500{background-color:var(--color-violet-500)}.bg-white{background-color:var(--color-white)}.bg-white\/60{background-color:#fff9}@supports (color:color-mix(in lab, red, red)){.bg-white\/60{background-color:color-mix(in oklab, var(--color-white) 60%, transparent)}}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-1{padding:var(--spacing)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.p-10{padding:calc(var(--spacing) * 10)}.px-1{padding-inline:var(--spacing)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.px-8{padding-inline:calc(var(--spacing) * 8)}.px-10{padding-inline:calc(var(--spacing) * 10)}.px-12{padding-inline:calc(var(--spacing) * 12)}.px-16{padding-inline:calc(var(--spacing) * 16)}.px-20{padding-inline:calc(var(--spacing) * 20)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.py-8{padding-block:calc(var(--spacing) * 8)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-8{padding-top:calc(var(--spacing) * 8)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pb-4{padding-bottom:calc(var(--spacing) * 4)}.pl-6{padding-left:calc(var(--spacing) * 6)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[12px\]{font-size:12px}.text-\[13px\]{font-size:13px}.text-\[14px\]{font-size:14px}.text-\[15px\]{font-size:15px}.text-\[17px\]{font-size:17px}.text-\[19px\]{font-size:19px}.text-\[22px\]{font-size:22px}.text-\[32px\]{font-size:32px}.text-\[34px\]{font-size:34px}.text-\[36px\]{font-size:36px}.text-\[42px\]{font-size:42px}.text-\[48px\]{font-size:48px}.text-\[52px\]{font-size:52px}.text-\[60px\]{font-size:60px}.text-\[64px\]{font-size:64px}.text-\[68px\]{font-size:68px}.text-\[76px\]{font-size:76px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.12em\]{--tw-tracking:.12em;letter-spacing:.12em}.tracking-\[0\.16em\]{--tw-tracking:.16em;letter-spacing:.16em}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-wider{--tw-tracking:var(--tracking-wider);letter-spacing:var(--tracking-wider)}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-500{color:var(--color-amber-500)}.text-amber-700{color:var(--color-amber-700)}.text-red-600{color:var(--color-red-600)}.text-rose-600{color:var(--color-rose-600)}.text-stone-400{color:var(--color-stone-400)}.text-stone-500{color:var(--color-stone-500)}.text-stone-600{color:var(--color-stone-600)}.text-stone-700{color:var(--color-stone-700)}.text-white{color:var(--color-white)}.text-white\/70{color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.text-white\/70{color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.opacity-10{opacity:.1}.opacity-80{opacity:.8}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a), 0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-2{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring-offset-2{--tw-ring-offset-width:2px;--tw-ring-offset-shadow:var(--tw-ring-inset,) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);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,)}.invert{--tw-invert:invert(100%);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,)}.filter{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,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:scale-110:hover{--tw-scale-x:110%;--tw-scale-y:110%;--tw-scale-z:110%;scale:var(--tw-scale-x) var(--tw-scale-y)}.hover\:border-stone-300:hover{border-color:var(--color-stone-300)}.hover\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\:bg-rose-100:hover{background-color:var(--color-rose-100)}.hover\:bg-stone-100:hover{background-color:var(--color-stone-100)}.hover\:bg-stone-200:hover{background-color:var(--color-stone-200)}.hover\:text-stone-900:hover{color:var(--color-stone-900)}}.disabled\:opacity-30:disabled{opacity:.3}@media (min-width:40rem){.sm\:inline{display:inline}}@container (min-width:48rem){.\@3xl\:max-h-none{max-height:none}.\@3xl\:w-\[var\(--beat-editor-pane-width\,24rem\)\]{width:var(--beat-editor-pane-width,24rem)}.\@3xl\:flex-row{flex-direction:row}.\@3xl\:border-t-0{border-top-style:var(--tw-border-style);border-top-width:0}.\@3xl\:border-l{border-left-style:var(--tw-border-style);border-left-width:1px}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}
|
|
1733
|
+
.bottom-bar-wrapper[data-v-87bf6e4c] {
|
|
1634
1734
|
position: relative;
|
|
1635
1735
|
flex-shrink: 0;
|
|
1636
1736
|
}
|
|
1637
|
-
.script-source[data-v-
|
|
1737
|
+
.script-source[data-v-87bf6e4c] {
|
|
1638
1738
|
padding: 0.5rem;
|
|
1639
1739
|
background: #f5f5f5;
|
|
1640
1740
|
border-top: 1px solid #e0e0e0;
|
|
1641
1741
|
font-family: Consolas, "MS Gothic", "BIZ UDGothic", monospace;
|
|
1642
1742
|
font-size: 0.85rem;
|
|
1643
1743
|
}
|
|
1644
|
-
.script-source summary[data-v-
|
|
1744
|
+
.script-source summary[data-v-87bf6e4c] {
|
|
1645
1745
|
cursor: pointer;
|
|
1646
1746
|
user-select: none;
|
|
1647
1747
|
padding: 0.5rem;
|
|
@@ -1650,13 +1750,13 @@
|
|
|
1650
1750
|
font-weight: 500;
|
|
1651
1751
|
color: #333;
|
|
1652
1752
|
}
|
|
1653
|
-
.script-source[open] summary[data-v-
|
|
1753
|
+
.script-source[open] summary[data-v-87bf6e4c] {
|
|
1654
1754
|
margin-bottom: 0.5rem;
|
|
1655
1755
|
}
|
|
1656
|
-
.script-source summary[data-v-
|
|
1756
|
+
.script-source summary[data-v-87bf6e4c]:hover {
|
|
1657
1757
|
background: #d8d8d8;
|
|
1658
1758
|
}
|
|
1659
|
-
.script-editor[data-v-
|
|
1759
|
+
.script-editor[data-v-87bf6e4c] {
|
|
1660
1760
|
width: 100%;
|
|
1661
1761
|
height: 40vh;
|
|
1662
1762
|
padding: 1rem;
|
|
@@ -1670,23 +1770,23 @@
|
|
|
1670
1770
|
margin-bottom: 0.5rem;
|
|
1671
1771
|
line-height: 1.5;
|
|
1672
1772
|
}
|
|
1673
|
-
.script-editor[data-v-
|
|
1773
|
+
.script-editor[data-v-87bf6e4c]:focus {
|
|
1674
1774
|
outline: none;
|
|
1675
1775
|
border-color: #4caf50;
|
|
1676
1776
|
box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.1);
|
|
1677
1777
|
}
|
|
1678
|
-
.script-editor-invalid[data-v-
|
|
1778
|
+
.script-editor-invalid[data-v-87bf6e4c] {
|
|
1679
1779
|
border-color: #ef4444;
|
|
1680
1780
|
}
|
|
1681
|
-
.script-editor-invalid[data-v-
|
|
1781
|
+
.script-editor-invalid[data-v-87bf6e4c]:focus {
|
|
1682
1782
|
border-color: #ef4444;
|
|
1683
1783
|
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.1);
|
|
1684
1784
|
}
|
|
1685
|
-
.editor-actions[data-v-
|
|
1785
|
+
.editor-actions[data-v-87bf6e4c] {
|
|
1686
1786
|
display: flex;
|
|
1687
1787
|
justify-content: space-between;
|
|
1688
1788
|
}
|
|
1689
|
-
.apply-btn[data-v-
|
|
1789
|
+
.apply-btn[data-v-87bf6e4c] {
|
|
1690
1790
|
padding: 0.5rem 1rem;
|
|
1691
1791
|
background: #4caf50;
|
|
1692
1792
|
color: white;
|
|
@@ -1697,16 +1797,16 @@
|
|
|
1697
1797
|
transition: background 0.2s;
|
|
1698
1798
|
font-weight: 500;
|
|
1699
1799
|
}
|
|
1700
|
-
.apply-btn[data-v-
|
|
1800
|
+
.apply-btn[data-v-87bf6e4c]:hover {
|
|
1701
1801
|
background: #45a049;
|
|
1702
1802
|
}
|
|
1703
|
-
.apply-btn[data-v-
|
|
1803
|
+
.apply-btn[data-v-87bf6e4c]:disabled {
|
|
1704
1804
|
background: #cccccc;
|
|
1705
1805
|
color: #666666;
|
|
1706
1806
|
cursor: not-allowed;
|
|
1707
1807
|
opacity: 0.6;
|
|
1708
1808
|
}
|
|
1709
|
-
.cancel-btn[data-v-
|
|
1809
|
+
.cancel-btn[data-v-87bf6e4c] {
|
|
1710
1810
|
padding: 0.5rem 1rem;
|
|
1711
1811
|
background: #e0e0e0;
|
|
1712
1812
|
color: #333;
|
|
@@ -1717,10 +1817,10 @@
|
|
|
1717
1817
|
transition: background 0.2s;
|
|
1718
1818
|
font-weight: 500;
|
|
1719
1819
|
}
|
|
1720
|
-
.cancel-btn[data-v-
|
|
1820
|
+
.cancel-btn[data-v-87bf6e4c]:hover {
|
|
1721
1821
|
background: #d0d0d0;
|
|
1722
1822
|
}
|
|
1723
|
-
.copy-btn[data-v-
|
|
1823
|
+
.copy-btn[data-v-87bf6e4c] {
|
|
1724
1824
|
position: absolute;
|
|
1725
1825
|
bottom: 0.3rem;
|
|
1726
1826
|
right: 0.65rem;
|
|
@@ -1731,10 +1831,10 @@
|
|
|
1731
1831
|
cursor: pointer;
|
|
1732
1832
|
z-index: 1;
|
|
1733
1833
|
}
|
|
1734
|
-
.copy-btn[data-v-
|
|
1834
|
+
.copy-btn[data-v-87bf6e4c]:hover {
|
|
1735
1835
|
color: #000;
|
|
1736
1836
|
}
|
|
1737
|
-
.copy-btn .material-icons[data-v-
|
|
1837
|
+
.copy-btn .material-icons[data-v-87bf6e4c] {
|
|
1738
1838
|
font-size: 1.15rem;
|
|
1739
1839
|
}
|
|
1740
1840
|
/*$vite$:1*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.vue.d.ts","sourceRoot":"","sources":["../../src/vue/View.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"View.vue.d.ts","sourceRoot":"","sources":["../../src/vue/View.vue"],"names":[],"mappings":"AAk3CA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA8CrD,KAAK,WAAW,GAAG;IACjB,cAAc,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACrD,CAAC;AAk8DF,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -14,5 +14,6 @@ export declare function useDeckEditor({ api, filePath, effectiveScript, commitSc
|
|
|
14
14
|
deckScriptInput: ComputedRef<DeckScriptShape>;
|
|
15
15
|
onDeckUpdate: (next: DeckScriptShape) => void;
|
|
16
16
|
flushPendingDeckSave: () => void;
|
|
17
|
+
watchForeignWrites: (reload: () => void) => () => void;
|
|
17
18
|
};
|
|
18
19
|
//# sourceMappingURL=useDeckEditor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDeckEditor.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useDeckEditor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"useDeckEditor.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useDeckEditor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAgBjE,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C;gFAC4E;IAC5E,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,oBAAoB;;;yBA+BtE,eAAe,KAAG,IAAI;gCAOjB,IAAI;iCAcD,MAAM,IAAI,KAAG,MAAM,IAAI;EAY5D"}
|
package/dist/vue/helpers.d.ts
CHANGED
|
@@ -70,8 +70,8 @@ export declare function isBeatImageReference(beat: {
|
|
|
70
70
|
};
|
|
71
71
|
}): boolean;
|
|
72
72
|
/** Pure check: is every beat in the script a `slide`-typed beat?
|
|
73
|
-
* When true, the View mounts `@mulmocast/
|
|
74
|
-
* `
|
|
73
|
+
* When true, the View mounts `@mulmocast/beat-editor`'s
|
|
74
|
+
* `BeatListEditor` instead of the per-beat list UI (#1575).
|
|
75
75
|
* Empty / missing `beats[]` returns false — there's nothing to edit
|
|
76
76
|
* as a deck, fall through to the existing UI which renders an empty
|
|
77
77
|
* state. Mixed scripts (any non-`slide` beat) also return false; that
|
package/dist/vue/index.d.ts
CHANGED
package/dist/vue/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vue/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAMtB,OAAO,kCAAkC,CAAC;AAE1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,OAAO,MAAM,eAAe,CAAC;AAEpC,eAAO,MAAM,MAAM,EAAE,UAAU,CAAC,eAAe,EAAE,eAAe,EAAE,mBAAmB,CAIpF,CAAC;AAEF,YAAY,EAAE,eAAe,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACrG,YAAY,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAC1J,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EAAE,uBAAuB,EAAE,KAAK,oBAAoB,EAAE,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;;;AAEzB,wBAA0B"}
|
package/dist/vue/transport.d.ts
CHANGED
|
@@ -14,6 +14,9 @@ export interface MulmoScriptTransport {
|
|
|
14
14
|
/** Subscribe to the host's generation channel, pre-filtered to one
|
|
15
15
|
* script's wire path. Returns the unsubscribe function. */
|
|
16
16
|
onGenerationEvent(filePath: () => string, handler: (event: MulmoScriptGenerationEvent) => void): () => void;
|
|
17
|
+
/** Subscribe to writes of one script, skipping the echo of this View's own
|
|
18
|
+
* (`ownOrigin`). Returns the unsubscribe function. */
|
|
19
|
+
onScriptChanged(filePath: () => string, ownOrigin: string, handler: () => void): () => void;
|
|
17
20
|
}
|
|
18
21
|
export declare function useMulmoScriptTransport(): MulmoScriptTransport;
|
|
19
22
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/vue/transport.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/vue/transport.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAA2B,uBAAuB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAKhJ,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,KAAK,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAyBtH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,CAAC,SAAS,uBAAuB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI;gEAC4D;IAC5D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5G;2DACuD;IACvD,eAAe,CAAC,QAAQ,EAAE,MAAM,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7F;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CA4C9D"}
|
package/dist/vue/viewTypes.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewTypes.d.ts","sourceRoot":"","sources":["../../src/vue/viewTypes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"viewTypes.d.ts","sourceRoot":"","sources":["../../src/vue/viewTypes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;mDAEmD;AACnD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;IACF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,UAAU,CAAA;SAAE,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB"}
|
package/dist/vue.cjs
CHANGED
|
@@ -3,9 +3,10 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_plugin = require("./plugin-BLp8tSYt.cjs");
|
|
6
|
-
const require_contract = require("./contract-
|
|
6
|
+
const require_contract = require("./contract-BhN3yKJC.cjs");
|
|
7
7
|
let _mulmocast_types = require("@mulmocast/types");
|
|
8
8
|
let vue = require("vue");
|
|
9
|
+
let _mulmocast_beat_editor = require("@mulmocast/beat-editor");
|
|
9
10
|
let gui_chat_protocol_vue = require("gui-chat-protocol/vue");
|
|
10
11
|
//#region src/vue/support.ts
|
|
11
12
|
function isRecord(value) {
|
|
@@ -119,8 +120,8 @@ function isBeatImageReference(beat) {
|
|
|
119
120
|
return beat.image?.type === "beat";
|
|
120
121
|
}
|
|
121
122
|
/** Pure check: is every beat in the script a `slide`-typed beat?
|
|
122
|
-
* When true, the View mounts `@mulmocast/
|
|
123
|
-
* `
|
|
123
|
+
* When true, the View mounts `@mulmocast/beat-editor`'s
|
|
124
|
+
* `BeatListEditor` instead of the per-beat list UI (#1575).
|
|
124
125
|
* Empty / missing `beats[]` returns false — there's nothing to edit
|
|
125
126
|
* as a deck, fall through to the existing UI which renders an empty
|
|
126
127
|
* state. Mixed scripts (any non-`slide` beat) also return false; that
|
|
@@ -212,6 +213,15 @@ var GENERATION_EVENT_KINDS = /* @__PURE__ */ new Set([
|
|
|
212
213
|
"movie",
|
|
213
214
|
"pdf"
|
|
214
215
|
]);
|
|
216
|
+
function parseScriptChangedEvent(payload) {
|
|
217
|
+
if (!isRecord(payload)) return null;
|
|
218
|
+
const { filePath, origin } = payload;
|
|
219
|
+
if (typeof filePath !== "string") return null;
|
|
220
|
+
return {
|
|
221
|
+
filePath,
|
|
222
|
+
...typeof origin === "string" ? { origin } : {}
|
|
223
|
+
};
|
|
224
|
+
}
|
|
215
225
|
function parseGenerationEvent(payload) {
|
|
216
226
|
if (!isRecord(payload)) return null;
|
|
217
227
|
const { kind, filePath, key, done, error } = payload;
|
|
@@ -258,9 +268,25 @@ function useMulmoScriptTransport() {
|
|
|
258
268
|
handler(event);
|
|
259
269
|
});
|
|
260
270
|
}
|
|
271
|
+
/**
|
|
272
|
+
* A write to this script landed — reload from disk.
|
|
273
|
+
*
|
|
274
|
+
* `ownOrigin` is this View's id. Its own writes echo back on the same channel, and acting
|
|
275
|
+
* on them would rebuild the element the caret is in on every keystroke, so they are dropped
|
|
276
|
+
* here. A write from the agent carries no origin and always reaches the handler.
|
|
277
|
+
*/
|
|
278
|
+
function onScriptChanged(filePath, ownOrigin, handler) {
|
|
279
|
+
return runtime.pubsub.subscribe(require_contract.SCRIPT_CHANGED_EVENT, (payload) => {
|
|
280
|
+
const event = parseScriptChangedEvent(payload);
|
|
281
|
+
if (!event) return;
|
|
282
|
+
if (!require_contract.shouldReloadForScriptChange(event, filePath(), ownOrigin)) return;
|
|
283
|
+
handler();
|
|
284
|
+
});
|
|
285
|
+
}
|
|
261
286
|
return {
|
|
262
287
|
call,
|
|
263
|
-
onGenerationEvent
|
|
288
|
+
onGenerationEvent,
|
|
289
|
+
onScriptChanged
|
|
264
290
|
};
|
|
265
291
|
}
|
|
266
292
|
//#endregion
|
|
@@ -554,6 +580,17 @@ function useCharacterImages({ api, filePath, chatSessionId, getImages }) {
|
|
|
554
580
|
//#endregion
|
|
555
581
|
//#region src/vue/composables/useDeckEditor.ts
|
|
556
582
|
var DECK_SAVE_DEBOUNCE_MS = 300;
|
|
583
|
+
/**
|
|
584
|
+
* Who this editor is, on the wire.
|
|
585
|
+
*
|
|
586
|
+
* Every write carries it so the server's "this script changed" broadcast can be told apart
|
|
587
|
+
* from someone else's. Without it a save would echo back and reload the editor mid-keystroke,
|
|
588
|
+
* rebuilding the element the caret sits in.
|
|
589
|
+
*
|
|
590
|
+
* Per module instance rather than per component: one View is mounted at a time, and a value
|
|
591
|
+
* that survives a remount keeps a save in flight from being mistaken for a foreign write.
|
|
592
|
+
*/
|
|
593
|
+
var EDITOR_ORIGIN = `deck-editor-${Math.random().toString(36).slice(2)}`;
|
|
557
594
|
function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
558
595
|
const isDeck = (0, vue.computed)(() => isAllSlideDeck(effectiveScript.value));
|
|
559
596
|
const deckScriptInput = (0, vue.computed)(() => effectiveScript.value);
|
|
@@ -573,7 +610,8 @@ function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
|
573
610
|
if (!next || !filePath.value) return;
|
|
574
611
|
const response = await api.call("updateScript", {
|
|
575
612
|
filePath: filePath.value,
|
|
576
|
-
script: next
|
|
613
|
+
script: next,
|
|
614
|
+
origin: EDITOR_ORIGIN
|
|
577
615
|
});
|
|
578
616
|
if (!response.ok) {
|
|
579
617
|
console.error("[presentMulmoScript] deck save failed:", response.error);
|
|
@@ -590,11 +628,25 @@ function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
|
590
628
|
flushDeckSave();
|
|
591
629
|
}
|
|
592
630
|
}
|
|
631
|
+
/**
|
|
632
|
+
* Reload when someone else writes this script — the agent, or another window.
|
|
633
|
+
*
|
|
634
|
+
* A pending local edit is flushed first rather than dropped: the user's keystrokes are the
|
|
635
|
+
* thing they would notice losing, and the write that triggered this has already landed, so
|
|
636
|
+
* flushing cannot clobber it out of order.
|
|
637
|
+
*/
|
|
638
|
+
function watchForeignWrites(reload) {
|
|
639
|
+
return api.onScriptChanged(() => filePath.value, EDITOR_ORIGIN, () => {
|
|
640
|
+
flushPendingDeckSave();
|
|
641
|
+
reload();
|
|
642
|
+
});
|
|
643
|
+
}
|
|
593
644
|
return {
|
|
594
645
|
isDeck,
|
|
595
646
|
deckScriptInput,
|
|
596
647
|
onDeckUpdate,
|
|
597
|
-
flushPendingDeckSave
|
|
648
|
+
flushPendingDeckSave,
|
|
649
|
+
watchForeignWrites
|
|
598
650
|
};
|
|
599
651
|
}
|
|
600
652
|
/** Reactive message bundle for the active host locale. The plugin carries its
|
|
@@ -1376,7 +1428,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
1376
1428
|
props: { selectedResult: {} },
|
|
1377
1429
|
emits: ["updateResult"],
|
|
1378
1430
|
setup(__props, { emit: __emit }) {
|
|
1379
|
-
const
|
|
1431
|
+
const BeatListEditor = (0, vue.defineAsyncComponent)(() => import("@mulmocast/beat-editor").then((mod) => mod.BeatListEditor));
|
|
1380
1432
|
const api = useMulmoScriptTransport();
|
|
1381
1433
|
const adapter = useHostAdapter();
|
|
1382
1434
|
const canFetchMedia = (0, vue.computed)(() => Boolean(adapter.fetchMediaBlob));
|
|
@@ -1537,16 +1589,24 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
1537
1589
|
}
|
|
1538
1590
|
});
|
|
1539
1591
|
}
|
|
1540
|
-
const { isDeck, deckScriptInput, onDeckUpdate, flushPendingDeckSave } = useDeckEditor({
|
|
1592
|
+
const { isDeck, deckScriptInput, onDeckUpdate, flushPendingDeckSave, watchForeignWrites } = useDeckEditor({
|
|
1541
1593
|
api,
|
|
1542
1594
|
filePath,
|
|
1543
1595
|
effectiveScript,
|
|
1544
1596
|
commitScript
|
|
1545
1597
|
});
|
|
1598
|
+
const unsubscribeForeignWrites = watchForeignWrites(() => {
|
|
1599
|
+
refreshScriptFromDisk();
|
|
1600
|
+
});
|
|
1601
|
+
const deckBeats = (0, vue.computed)(() => (0, _mulmocast_beat_editor.beatsOf)(deckScriptInput.value));
|
|
1602
|
+
function onDeckBeatsUpdate(beats) {
|
|
1603
|
+
onDeckUpdate((0, _mulmocast_beat_editor.withBeats)(deckScriptInput.value, beats));
|
|
1604
|
+
}
|
|
1546
1605
|
(0, vue.onBeforeUnmount)(() => {
|
|
1547
1606
|
flushPendingDeckSave();
|
|
1548
1607
|
resetBeatMovies();
|
|
1549
1608
|
unsubscribeGenerationEvents();
|
|
1609
|
+
unsubscribeForeignWrites();
|
|
1550
1610
|
});
|
|
1551
1611
|
const loadedSource = (0, vue.ref)("");
|
|
1552
1612
|
const sourceChanged = (0, vue.computed)(() => editableSource.value !== loadedSource.value);
|
|
@@ -2019,11 +2079,10 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2019
2079
|
"onCharDrop",
|
|
2020
2080
|
"onRenderCharacter"
|
|
2021
2081
|
])) : (0, vue.createCommentVNode)("", true),
|
|
2022
|
-
(0, vue.unref)(isDeck) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_14, [(0, vue.createVNode)((0, vue.unref)(
|
|
2023
|
-
|
|
2024
|
-
|
|
2025
|
-
|
|
2026
|
-
}, null, 8, ["script", "onUpdate:script"])])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
2082
|
+
(0, vue.unref)(isDeck) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_14, [(0, vue.createVNode)((0, vue.unref)(BeatListEditor), {
|
|
2083
|
+
beats: deckBeats.value,
|
|
2084
|
+
"onUpdate:beats": onDeckBeatsUpdate
|
|
2085
|
+
}, null, 8, ["beats"])])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
2027
2086
|
key: 3,
|
|
2028
2087
|
ref_key: "beatListEl",
|
|
2029
2088
|
ref: beatListEl,
|
|
@@ -2225,7 +2284,7 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
|
2225
2284
|
};
|
|
2226
2285
|
//#endregion
|
|
2227
2286
|
//#region src/vue/View.vue
|
|
2228
|
-
var View_default = /*#__PURE__*/ _plugin_vue_export_helper_default(View_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2287
|
+
var View_default = /*#__PURE__*/ _plugin_vue_export_helper_default(View_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-87bf6e4c"]]);
|
|
2229
2288
|
//#endregion
|
|
2230
2289
|
//#region src/vue/Preview.vue?vue&type=script&setup=true&lang.ts
|
|
2231
2290
|
var _hoisted_1 = {
|