@mulmoclaude/mulmoscript-plugin 4.1.1 → 4.4.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/core/definition.d.ts.map +1 -1
- package/dist/core/plugin.d.ts.map +1 -1
- package/dist/core/types.d.ts +4 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/lang/de.d.ts.map +1 -1
- package/dist/lang/en.d.ts.map +1 -1
- package/dist/lang/es.d.ts.map +1 -1
- package/dist/lang/fr.d.ts.map +1 -1
- package/dist/lang/ja.d.ts.map +1 -1
- package/dist/lang/ko.d.ts.map +1 -1
- package/dist/lang/messages.d.ts +4 -0
- package/dist/lang/messages.d.ts.map +1 -1
- package/dist/lang/ptBR.d.ts.map +1 -1
- package/dist/lang/zh.d.ts.map +1 -1
- package/dist/{plugin-BLp8tSYt.cjs → plugin-BOq5YkTl.cjs} +24 -4
- package/dist/plugin-BOq5YkTl.cjs.map +1 -0
- package/dist/{plugin-CXhOP_xU.js → plugin-CAhxJ5WM.js} +24 -4
- package/dist/plugin-CAhxJ5WM.js.map +1 -0
- package/dist/server.cjs +1 -1
- package/dist/server.js +1 -1
- package/dist/style.css +34 -18
- package/dist/vue/View.vue.d.ts.map +1 -1
- package/dist/vue/composables/useDeckEditor.d.ts +1 -1
- package/dist/vue/helpers.d.ts +23 -8
- package/dist/vue/helpers.d.ts.map +1 -1
- package/dist/vue.cjs +106 -33
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +106 -33
- package/dist/vue.js.map +1 -1
- package/package.json +3 -3
- package/dist/plugin-BLp8tSYt.cjs.map +0 -1
- package/dist/plugin-CXhOP_xU.js.map +0 -1
package/dist/style.css
CHANGED
|
@@ -984,6 +984,10 @@
|
|
|
984
984
|
background-color: var(--color-gray-100);
|
|
985
985
|
}
|
|
986
986
|
|
|
987
|
+
.bg-gray-700 {
|
|
988
|
+
background-color: var(--color-gray-700);
|
|
989
|
+
}
|
|
990
|
+
|
|
987
991
|
.bg-green-600 {
|
|
988
992
|
background-color: var(--color-green-600);
|
|
989
993
|
}
|
|
@@ -1136,6 +1140,10 @@
|
|
|
1136
1140
|
font-family: var(--font-mono);
|
|
1137
1141
|
}
|
|
1138
1142
|
|
|
1143
|
+
.font-sans {
|
|
1144
|
+
font-family: var(--font-sans);
|
|
1145
|
+
}
|
|
1146
|
+
|
|
1139
1147
|
.text-3xl {
|
|
1140
1148
|
font-size: var(--text-3xl);
|
|
1141
1149
|
line-height: var(--tw-leading, var(--text-3xl--line-height));
|
|
@@ -1176,6 +1184,10 @@
|
|
|
1176
1184
|
line-height: var(--tw-leading, var(--text-xs--line-height));
|
|
1177
1185
|
}
|
|
1178
1186
|
|
|
1187
|
+
.text-\[11px\] {
|
|
1188
|
+
font-size: 11px;
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1179
1191
|
.text-\[clamp\(0\.8rem\,1\.76vw\,1\.6rem\)\] {
|
|
1180
1192
|
font-size: clamp(.8rem, 1.76vw, 1.6rem);
|
|
1181
1193
|
}
|
|
@@ -1418,6 +1430,10 @@
|
|
|
1418
1430
|
background-color: var(--color-gray-100);
|
|
1419
1431
|
}
|
|
1420
1432
|
|
|
1433
|
+
.hover\:bg-gray-200:hover {
|
|
1434
|
+
background-color: var(--color-gray-200);
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1421
1437
|
.hover\:bg-green-50:hover {
|
|
1422
1438
|
background-color: var(--color-green-50);
|
|
1423
1439
|
}
|
|
@@ -1730,18 +1746,18 @@
|
|
|
1730
1746
|
}
|
|
1731
1747
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
1732
1748
|
@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-
|
|
1749
|
+
.bottom-bar-wrapper[data-v-f9957eaf] {
|
|
1734
1750
|
position: relative;
|
|
1735
1751
|
flex-shrink: 0;
|
|
1736
1752
|
}
|
|
1737
|
-
.script-source[data-v-
|
|
1753
|
+
.script-source[data-v-f9957eaf] {
|
|
1738
1754
|
padding: 0.5rem;
|
|
1739
1755
|
background: #f5f5f5;
|
|
1740
1756
|
border-top: 1px solid #e0e0e0;
|
|
1741
1757
|
font-family: Consolas, "MS Gothic", "BIZ UDGothic", monospace;
|
|
1742
1758
|
font-size: 0.85rem;
|
|
1743
1759
|
}
|
|
1744
|
-
.script-source summary[data-v-
|
|
1760
|
+
.script-source summary[data-v-f9957eaf] {
|
|
1745
1761
|
cursor: pointer;
|
|
1746
1762
|
user-select: none;
|
|
1747
1763
|
padding: 0.5rem;
|
|
@@ -1750,13 +1766,13 @@
|
|
|
1750
1766
|
font-weight: 500;
|
|
1751
1767
|
color: #333;
|
|
1752
1768
|
}
|
|
1753
|
-
.script-source[open] summary[data-v-
|
|
1769
|
+
.script-source[open] summary[data-v-f9957eaf] {
|
|
1754
1770
|
margin-bottom: 0.5rem;
|
|
1755
1771
|
}
|
|
1756
|
-
.script-source summary[data-v-
|
|
1772
|
+
.script-source summary[data-v-f9957eaf]:hover {
|
|
1757
1773
|
background: #d8d8d8;
|
|
1758
1774
|
}
|
|
1759
|
-
.script-editor[data-v-
|
|
1775
|
+
.script-editor[data-v-f9957eaf] {
|
|
1760
1776
|
width: 100%;
|
|
1761
1777
|
height: 40vh;
|
|
1762
1778
|
padding: 1rem;
|
|
@@ -1770,23 +1786,23 @@
|
|
|
1770
1786
|
margin-bottom: 0.5rem;
|
|
1771
1787
|
line-height: 1.5;
|
|
1772
1788
|
}
|
|
1773
|
-
.script-editor[data-v-
|
|
1789
|
+
.script-editor[data-v-f9957eaf]:focus {
|
|
1774
1790
|
outline: none;
|
|
1775
1791
|
border-color: #4caf50;
|
|
1776
1792
|
box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.1);
|
|
1777
1793
|
}
|
|
1778
|
-
.script-editor-invalid[data-v-
|
|
1794
|
+
.script-editor-invalid[data-v-f9957eaf] {
|
|
1779
1795
|
border-color: #ef4444;
|
|
1780
1796
|
}
|
|
1781
|
-
.script-editor-invalid[data-v-
|
|
1797
|
+
.script-editor-invalid[data-v-f9957eaf]:focus {
|
|
1782
1798
|
border-color: #ef4444;
|
|
1783
1799
|
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.1);
|
|
1784
1800
|
}
|
|
1785
|
-
.editor-actions[data-v-
|
|
1801
|
+
.editor-actions[data-v-f9957eaf] {
|
|
1786
1802
|
display: flex;
|
|
1787
1803
|
justify-content: space-between;
|
|
1788
1804
|
}
|
|
1789
|
-
.apply-btn[data-v-
|
|
1805
|
+
.apply-btn[data-v-f9957eaf] {
|
|
1790
1806
|
padding: 0.5rem 1rem;
|
|
1791
1807
|
background: #4caf50;
|
|
1792
1808
|
color: white;
|
|
@@ -1797,16 +1813,16 @@
|
|
|
1797
1813
|
transition: background 0.2s;
|
|
1798
1814
|
font-weight: 500;
|
|
1799
1815
|
}
|
|
1800
|
-
.apply-btn[data-v-
|
|
1816
|
+
.apply-btn[data-v-f9957eaf]:hover {
|
|
1801
1817
|
background: #45a049;
|
|
1802
1818
|
}
|
|
1803
|
-
.apply-btn[data-v-
|
|
1819
|
+
.apply-btn[data-v-f9957eaf]:disabled {
|
|
1804
1820
|
background: #cccccc;
|
|
1805
1821
|
color: #666666;
|
|
1806
1822
|
cursor: not-allowed;
|
|
1807
1823
|
opacity: 0.6;
|
|
1808
1824
|
}
|
|
1809
|
-
.cancel-btn[data-v-
|
|
1825
|
+
.cancel-btn[data-v-f9957eaf] {
|
|
1810
1826
|
padding: 0.5rem 1rem;
|
|
1811
1827
|
background: #e0e0e0;
|
|
1812
1828
|
color: #333;
|
|
@@ -1817,10 +1833,10 @@
|
|
|
1817
1833
|
transition: background 0.2s;
|
|
1818
1834
|
font-weight: 500;
|
|
1819
1835
|
}
|
|
1820
|
-
.cancel-btn[data-v-
|
|
1836
|
+
.cancel-btn[data-v-f9957eaf]:hover {
|
|
1821
1837
|
background: #d0d0d0;
|
|
1822
1838
|
}
|
|
1823
|
-
.copy-btn[data-v-
|
|
1839
|
+
.copy-btn[data-v-f9957eaf] {
|
|
1824
1840
|
position: absolute;
|
|
1825
1841
|
bottom: 0.3rem;
|
|
1826
1842
|
right: 0.65rem;
|
|
@@ -1831,10 +1847,10 @@
|
|
|
1831
1847
|
cursor: pointer;
|
|
1832
1848
|
z-index: 1;
|
|
1833
1849
|
}
|
|
1834
|
-
.copy-btn[data-v-
|
|
1850
|
+
.copy-btn[data-v-f9957eaf]:hover {
|
|
1835
1851
|
color: #000;
|
|
1836
1852
|
}
|
|
1837
|
-
.copy-btn .material-icons[data-v-
|
|
1853
|
+
.copy-btn .material-icons[data-v-f9957eaf] {
|
|
1838
1854
|
font-size: 1.15rem;
|
|
1839
1855
|
}
|
|
1840
1856
|
/*$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":"AAy6CA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AA+CrD,KAAK,WAAW,GAAG;IACjB,cAAc,EAAE,kBAAkB,CAAC,eAAe,CAAC,CAAC;CACrD,CAAC;AA0gEF,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -10,7 +10,7 @@ export interface UseDeckEditorOptions {
|
|
|
10
10
|
commitScript: (next: MulmoScript) => void;
|
|
11
11
|
}
|
|
12
12
|
export declare function useDeckEditor({ api, filePath, effectiveScript, commitScript }: UseDeckEditorOptions): {
|
|
13
|
-
|
|
13
|
+
canEditBeats: ComputedRef<boolean>;
|
|
14
14
|
deckScriptInput: ComputedRef<DeckScriptShape>;
|
|
15
15
|
onDeckUpdate: (next: DeckScriptShape) => void;
|
|
16
16
|
flushPendingDeckSave: () => void;
|
package/dist/vue/helpers.d.ts
CHANGED
|
@@ -69,14 +69,17 @@ export declare function isBeatImageReference(beat: {
|
|
|
69
69
|
[key: string]: unknown;
|
|
70
70
|
};
|
|
71
71
|
}): boolean;
|
|
72
|
-
/**
|
|
73
|
-
*
|
|
74
|
-
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
|
|
72
|
+
/** Whether the beat editor has anything to edit.
|
|
73
|
+
*
|
|
74
|
+
* Any beat type, not just `slide`: `@mulmocast/beat-editor` renders and edits all eight
|
|
75
|
+
* (`textSlide` / `markdown` / `chart` / `mermaid` / `image` / `movie` / `slide` /
|
|
76
|
+
* `html_tailwind`). The all-slide test this replaces was a limit of the OLD iframe deck
|
|
77
|
+
* editor, which only understood decks — it stayed in place through the migration and kept a
|
|
78
|
+
* markdown script read-only for no reason.
|
|
79
|
+
*
|
|
80
|
+
* Empty / missing `beats[]` is false: there is nothing to edit, and the per-beat list already
|
|
81
|
+
* renders an empty state. */
|
|
82
|
+
export declare function hasEditableBeats(script: unknown): boolean;
|
|
80
83
|
/** A single MulmoScript beat as the View consumes it — every field
|
|
81
84
|
* optional so the empty-beat fallback (`effectiveBeat` on an
|
|
82
85
|
* out-of-range index) is a valid instance without a cast. */
|
|
@@ -142,4 +145,16 @@ export declare function resolveSilentAdvanceSeconds(raw: unknown, defaultSec: nu
|
|
|
142
145
|
* reactive proxies mutates them so the template re-renders empty. Replaces a
|
|
143
146
|
* wall of hand-rolled `Object.keys(map).forEach(delete)` loops. */
|
|
144
147
|
export declare function clearReactiveRecords(...records: object[]): void;
|
|
148
|
+
/**
|
|
149
|
+
* Whether a `focusout` means focus actually LEFT `container`, rather than moving between two
|
|
150
|
+
* fields inside it.
|
|
151
|
+
*
|
|
152
|
+
* The distinction decides whether pending edits are written: treating every focusout as a
|
|
153
|
+
* departure would write on each hop between inputs, and treating none as one would let the user
|
|
154
|
+
* walk away with the last keystroke unsaved.
|
|
155
|
+
*
|
|
156
|
+
* `null` is focus going nowhere the document can name — clicking the page chrome, or the window
|
|
157
|
+
* losing focus. That counts as leaving: the editor is no longer where the typing goes.
|
|
158
|
+
*/
|
|
159
|
+
export declare function focusLeftContainer(container: Node | null, movedTo: EventTarget | null): boolean;
|
|
145
160
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vue/helpers.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAAE,GAAG,SAAS,CAAA;CAAE,EAC3D,aAAa,EAAE,OAAO,EACtB,eAAe,EAAE,SAAS,MAAM,EAAE,GACjC,OAAO,CAKT;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAE3J;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAQ/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,OAAO,CAGxH;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,OAAO,CAEzG;AAED
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vue/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/vue.cjs
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_plugin = require("./plugin-
|
|
5
|
+
const require_plugin = require("./plugin-BOq5YkTl.cjs");
|
|
6
6
|
const require_contract = require("./contract-BhN3yKJC.cjs");
|
|
7
7
|
let _mulmocast_types = require("@mulmocast/types");
|
|
8
8
|
let vue = require("vue");
|
|
@@ -119,22 +119,20 @@ function beatMayHaveMovie(beat) {
|
|
|
119
119
|
function isBeatImageReference(beat) {
|
|
120
120
|
return beat.image?.type === "beat";
|
|
121
121
|
}
|
|
122
|
-
/**
|
|
123
|
-
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
129
|
-
|
|
122
|
+
/** Whether the beat editor has anything to edit.
|
|
123
|
+
*
|
|
124
|
+
* Any beat type, not just `slide`: `@mulmocast/beat-editor` renders and edits all eight
|
|
125
|
+
* (`textSlide` / `markdown` / `chart` / `mermaid` / `image` / `movie` / `slide` /
|
|
126
|
+
* `html_tailwind`). The all-slide test this replaces was a limit of the OLD iframe deck
|
|
127
|
+
* editor, which only understood decks — it stayed in place through the migration and kept a
|
|
128
|
+
* markdown script read-only for no reason.
|
|
129
|
+
*
|
|
130
|
+
* Empty / missing `beats[]` is false: there is nothing to edit, and the per-beat list already
|
|
131
|
+
* renders an empty state. */
|
|
132
|
+
function hasEditableBeats(script) {
|
|
130
133
|
if (!isRecord(script)) return false;
|
|
131
134
|
const { beats } = script;
|
|
132
|
-
|
|
133
|
-
return beats.every((beat) => {
|
|
134
|
-
if (!isRecord(beat)) return false;
|
|
135
|
-
const { image } = beat;
|
|
136
|
-
return isRecord(image) && image.type === "slide";
|
|
137
|
-
});
|
|
135
|
+
return Array.isArray(beats) && beats.length > 0;
|
|
138
136
|
}
|
|
139
137
|
/** Resolve the beat the View should render at `index`: the user's
|
|
140
138
|
* in-place edit (`overrides`) wins over the on-disk beat, and an
|
|
@@ -204,6 +202,22 @@ function clearReactiveRecords(...records) {
|
|
|
204
202
|
Object.keys(record).forEach((key) => Reflect.deleteProperty(record, key));
|
|
205
203
|
});
|
|
206
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Whether a `focusout` means focus actually LEFT `container`, rather than moving between two
|
|
207
|
+
* fields inside it.
|
|
208
|
+
*
|
|
209
|
+
* The distinction decides whether pending edits are written: treating every focusout as a
|
|
210
|
+
* departure would write on each hop between inputs, and treating none as one would let the user
|
|
211
|
+
* walk away with the last keystroke unsaved.
|
|
212
|
+
*
|
|
213
|
+
* `null` is focus going nowhere the document can name — clicking the page chrome, or the window
|
|
214
|
+
* losing focus. That counts as leaving: the editor is no longer where the typing goes.
|
|
215
|
+
*/
|
|
216
|
+
function focusLeftContainer(container, movedTo) {
|
|
217
|
+
if (!container) return false;
|
|
218
|
+
if (!(movedTo instanceof Node)) return true;
|
|
219
|
+
return !container.contains(movedTo);
|
|
220
|
+
}
|
|
207
221
|
//#endregion
|
|
208
222
|
//#region src/vue/transport.ts
|
|
209
223
|
var GENERATION_EVENT_KINDS = /* @__PURE__ */ new Set([
|
|
@@ -592,7 +606,7 @@ var DECK_SAVE_DEBOUNCE_MS = 300;
|
|
|
592
606
|
*/
|
|
593
607
|
var EDITOR_ORIGIN = `deck-editor-${Math.random().toString(36).slice(2)}`;
|
|
594
608
|
function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
595
|
-
const
|
|
609
|
+
const canEditBeats = (0, vue.computed)(() => hasEditableBeats(effectiveScript.value));
|
|
596
610
|
const deckScriptInput = (0, vue.computed)(() => effectiveScript.value);
|
|
597
611
|
let deckSaveTimer = null;
|
|
598
612
|
let pendingDeckScript = null;
|
|
@@ -642,7 +656,7 @@ function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
|
642
656
|
});
|
|
643
657
|
}
|
|
644
658
|
return {
|
|
645
|
-
|
|
659
|
+
canEditBeats,
|
|
646
660
|
deckScriptInput,
|
|
647
661
|
onDeckUpdate,
|
|
648
662
|
flushPendingDeckSave,
|
|
@@ -656,6 +670,8 @@ function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
|
656
670
|
var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
657
671
|
de: {
|
|
658
672
|
beatCount: (count) => count === 1 ? `${count} Beat` : `${count} Beats`,
|
|
673
|
+
editTab: "Bearbeiten",
|
|
674
|
+
mediaTab: "Medien",
|
|
659
675
|
movie: "Video",
|
|
660
676
|
generating: "Wird generiert…",
|
|
661
677
|
rendering: "Wird gerendert…",
|
|
@@ -688,6 +704,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
688
704
|
},
|
|
689
705
|
en: {
|
|
690
706
|
beatCount: (count) => count === 1 ? `${count} beat` : `${count} beats`,
|
|
707
|
+
editTab: "Edit",
|
|
708
|
+
mediaTab: "Media",
|
|
691
709
|
movie: "Movie",
|
|
692
710
|
generating: "Generating…",
|
|
693
711
|
rendering: "Rendering…",
|
|
@@ -720,6 +738,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
720
738
|
},
|
|
721
739
|
es: {
|
|
722
740
|
beatCount: (count) => count === 1 ? `${count} beat` : `${count} beats`,
|
|
741
|
+
editTab: "Editar",
|
|
742
|
+
mediaTab: "Medios",
|
|
723
743
|
movie: "Vídeo",
|
|
724
744
|
generating: "Generando…",
|
|
725
745
|
rendering: "Renderizando…",
|
|
@@ -752,6 +772,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
752
772
|
},
|
|
753
773
|
fr: {
|
|
754
774
|
beatCount: (count) => count === 1 ? `${count} beat` : `${count} beats`,
|
|
775
|
+
editTab: "Éditer",
|
|
776
|
+
mediaTab: "Médias",
|
|
755
777
|
movie: "Film",
|
|
756
778
|
generating: "Génération…",
|
|
757
779
|
rendering: "Rendu…",
|
|
@@ -784,6 +806,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
784
806
|
},
|
|
785
807
|
ja: {
|
|
786
808
|
beatCount: (count) => `${count} ビート`,
|
|
809
|
+
editTab: "編集",
|
|
810
|
+
mediaTab: "メディア",
|
|
787
811
|
movie: "動画",
|
|
788
812
|
generating: "生成中…",
|
|
789
813
|
rendering: "レンダリング中…",
|
|
@@ -816,6 +840,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
816
840
|
},
|
|
817
841
|
ko: {
|
|
818
842
|
beatCount: (count) => `${count}개 비트`,
|
|
843
|
+
editTab: "편집",
|
|
844
|
+
mediaTab: "미디어",
|
|
819
845
|
movie: "영상",
|
|
820
846
|
generating: "생성 중…",
|
|
821
847
|
rendering: "렌더링 중…",
|
|
@@ -848,6 +874,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
848
874
|
},
|
|
849
875
|
"pt-BR": {
|
|
850
876
|
beatCount: (count) => count === 1 ? `${count} beat` : `${count} beats`,
|
|
877
|
+
editTab: "Editar",
|
|
878
|
+
mediaTab: "Mídia",
|
|
851
879
|
movie: "Vídeo",
|
|
852
880
|
generating: "Gerando…",
|
|
853
881
|
rendering: "Renderizando…",
|
|
@@ -880,6 +908,8 @@ var useT = (0, gui_chat_protocol_vue.createUseT)({
|
|
|
880
908
|
},
|
|
881
909
|
zh: {
|
|
882
910
|
beatCount: (count) => `${count} 个 beat`,
|
|
911
|
+
editTab: "编辑",
|
|
912
|
+
mediaTab: "媒体",
|
|
883
913
|
movie: "视频",
|
|
884
914
|
generating: "生成中…",
|
|
885
915
|
rendering: "渲染中…",
|
|
@@ -1311,8 +1341,7 @@ var _hoisted_12 = { class: "break-words whitespace-pre-wrap mt-0.5" };
|
|
|
1311
1341
|
var _hoisted_13 = ["disabled"];
|
|
1312
1342
|
var _hoisted_14 = {
|
|
1313
1343
|
key: 2,
|
|
1314
|
-
class: "flex-1
|
|
1315
|
-
"data-testid": "mulmo-script-deck-editor"
|
|
1344
|
+
class: "flex shrink-0 gap-1 px-2 pt-1 text-[11px]"
|
|
1316
1345
|
};
|
|
1317
1346
|
var _hoisted_15 = { class: "flex gap-3 items-stretch" };
|
|
1318
1347
|
var _hoisted_16 = [
|
|
@@ -1423,6 +1452,7 @@ var _hoisted_53 = ["title"];
|
|
|
1423
1452
|
var _hoisted_54 = { class: "material-icons" };
|
|
1424
1453
|
var SILENT_BEAT_DEFAULT_SEC = 3;
|
|
1425
1454
|
var MS_PER_SECOND = 1e3;
|
|
1455
|
+
var BEAT_TAB_BASE = "rounded px-2 py-0.5 font-sans";
|
|
1426
1456
|
var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.defineComponent)({
|
|
1427
1457
|
__name: "View",
|
|
1428
1458
|
props: { selectedResult: {} },
|
|
@@ -1589,12 +1619,27 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
1589
1619
|
}
|
|
1590
1620
|
});
|
|
1591
1621
|
}
|
|
1592
|
-
const {
|
|
1622
|
+
const { canEditBeats, deckScriptInput, onDeckUpdate, flushPendingDeckSave, watchForeignWrites } = useDeckEditor({
|
|
1593
1623
|
api,
|
|
1594
1624
|
filePath,
|
|
1595
1625
|
effectiveScript,
|
|
1596
1626
|
commitScript
|
|
1597
1627
|
});
|
|
1628
|
+
/**
|
|
1629
|
+
* Which pane the beats are shown in.
|
|
1630
|
+
*
|
|
1631
|
+
* `edit` is the beat editor — every beat type, edited in place. `media` is the per-beat list,
|
|
1632
|
+
* which is the only place audio / image / movie generation lives. A script with nothing to edit
|
|
1633
|
+
* has only the list, so the switch is hidden and this is ignored.
|
|
1634
|
+
*
|
|
1635
|
+
* `media` is the default because opening the script is what triggers rendering each beat's
|
|
1636
|
+
* image: the auto-render on mount lives in that list, so defaulting to `edit` silently stopped
|
|
1637
|
+
* thumbnails from being produced at all. Someone who wants to edit clicks once; nobody has to
|
|
1638
|
+
* click to get the previews they always got.
|
|
1639
|
+
*/
|
|
1640
|
+
const beatPane = (0, vue.ref)("media");
|
|
1641
|
+
const showBeatEditor = (0, vue.computed)(() => canEditBeats.value && beatPane.value === "edit");
|
|
1642
|
+
const beatPaneTabClass = (active) => [BEAT_TAB_BASE, active ? "bg-gray-700 text-white" : "bg-gray-100 text-gray-600 hover:bg-gray-200"];
|
|
1598
1643
|
const unsubscribeForeignWrites = watchForeignWrites(() => {
|
|
1599
1644
|
refreshScriptFromDisk();
|
|
1600
1645
|
});
|
|
@@ -1602,6 +1647,18 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
1602
1647
|
function onDeckBeatsUpdate(beats) {
|
|
1603
1648
|
onDeckUpdate((0, _mulmocast_beat_editor.withBeats)(deckScriptInput.value, beats));
|
|
1604
1649
|
}
|
|
1650
|
+
/**
|
|
1651
|
+
* Leaving the editor writes whatever is still in the debounce.
|
|
1652
|
+
*
|
|
1653
|
+
* Asking the agent to change the script means moving focus out of here first, so this lands
|
|
1654
|
+
* ahead of every request without the host having to announce one — MulmoTerminal's agent is a
|
|
1655
|
+
* terminal, and there is no "sent" event to hook. The debounce is short enough that it has
|
|
1656
|
+
* usually fired already; this closes the case where it has not, which would otherwise have the
|
|
1657
|
+
* agent read a file missing the last thing the user typed.
|
|
1658
|
+
*/
|
|
1659
|
+
function onDeckFocusOut(event) {
|
|
1660
|
+
if (focusLeftContainer(event.currentTarget instanceof Node ? event.currentTarget : null, event.relatedTarget)) flushPendingDeckSave();
|
|
1661
|
+
}
|
|
1605
1662
|
(0, vue.onBeforeUnmount)(() => {
|
|
1606
1663
|
flushPendingDeckSave();
|
|
1607
1664
|
resetBeatMovies();
|
|
@@ -2039,7 +2096,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2039
2096
|
"onDownloadPdf"
|
|
2040
2097
|
])]),
|
|
2041
2098
|
(0, vue.unref)(movieError) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_9, [
|
|
2042
|
-
_cache[
|
|
2099
|
+
_cache[5] || (_cache[5] = (0, vue.createElementVNode)("span", { class: "material-icons text-base shrink-0 mt-px" }, "error_outline", -1)),
|
|
2043
2100
|
(0, vue.createElementVNode)("div", _hoisted_10, [(0, vue.createElementVNode)("div", _hoisted_11, (0, vue.toDisplayString)((0, vue.unref)(m).movieGenerationFailed), 1), (0, vue.createElementVNode)("div", _hoisted_12, (0, vue.toDisplayString)((0, vue.unref)(movieError)), 1)]),
|
|
2044
2101
|
(0, vue.createElementVNode)("button", {
|
|
2045
2102
|
class: "shrink-0 h-7 px-2 text-xs rounded border border-red-300 text-red-700 hover:bg-red-100 disabled:opacity-50",
|
|
@@ -2079,11 +2136,27 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2079
2136
|
"onCharDrop",
|
|
2080
2137
|
"onRenderCharacter"
|
|
2081
2138
|
])) : (0, vue.createCommentVNode)("", true),
|
|
2082
|
-
(0, vue.unref)(
|
|
2139
|
+
(0, vue.unref)(canEditBeats) ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_14, [(0, vue.createElementVNode)("button", {
|
|
2140
|
+
type: "button",
|
|
2141
|
+
class: (0, vue.normalizeClass)(beatPaneTabClass(beatPane.value === "edit")),
|
|
2142
|
+
"data-testid": "mulmo-script-tab-edit",
|
|
2143
|
+
onClick: _cache[1] || (_cache[1] = ($event) => beatPane.value = "edit")
|
|
2144
|
+
}, (0, vue.toDisplayString)((0, vue.unref)(m).editTab), 3), (0, vue.createElementVNode)("button", {
|
|
2145
|
+
type: "button",
|
|
2146
|
+
class: (0, vue.normalizeClass)(beatPaneTabClass(beatPane.value === "media")),
|
|
2147
|
+
"data-testid": "mulmo-script-tab-media",
|
|
2148
|
+
onClick: _cache[2] || (_cache[2] = ($event) => beatPane.value = "media")
|
|
2149
|
+
}, (0, vue.toDisplayString)((0, vue.unref)(m).mediaTab), 3)])) : (0, vue.createCommentVNode)("", true),
|
|
2150
|
+
showBeatEditor.value ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
2151
|
+
key: 3,
|
|
2152
|
+
class: "flex-1 overflow-hidden",
|
|
2153
|
+
"data-testid": "mulmo-script-deck-editor",
|
|
2154
|
+
onFocusout: onDeckFocusOut
|
|
2155
|
+
}, [(0, vue.createVNode)((0, vue.unref)(BeatListEditor), {
|
|
2083
2156
|
beats: deckBeats.value,
|
|
2084
2157
|
"onUpdate:beats": onDeckBeatsUpdate
|
|
2085
|
-
}, null, 8, ["beats"])])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
2086
|
-
key:
|
|
2158
|
+
}, null, 8, ["beats"])], 32)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
|
|
2159
|
+
key: 4,
|
|
2087
2160
|
ref_key: "beatListEl",
|
|
2088
2161
|
ref: beatListEl,
|
|
2089
2162
|
class: "flex-1 overflow-y-auto p-2 space-y-1.5"
|
|
@@ -2113,7 +2186,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2113
2186
|
"aria-label": (0, vue.unref)(m).close,
|
|
2114
2187
|
"data-testid": `mulmo-script-beat-movie-close-${index}`,
|
|
2115
2188
|
onClick: (0, vue.withModifiers)(($event) => (0, vue.unref)(closeBeatMovie)(index), ["stop"])
|
|
2116
|
-
}, [..._cache[
|
|
2189
|
+
}, [..._cache[6] || (_cache[6] = [(0, vue.createElementVNode)("span", { class: "material-icons text-sm" }, "close", -1)])], 8, _hoisted_19)], 64)) : ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 1 }, [
|
|
2117
2190
|
renderedImages[index] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("img", {
|
|
2118
2191
|
key: 0,
|
|
2119
2192
|
src: renderedImages[index],
|
|
@@ -2128,7 +2201,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2128
2201
|
"aria-label": (0, vue.unref)(m).play,
|
|
2129
2202
|
"data-testid": `mulmo-script-beat-movie-play-${index}`,
|
|
2130
2203
|
onClick: (0, vue.withModifiers)(($event) => (0, vue.unref)(playBeatMovie)(index), ["stop"])
|
|
2131
|
-
}, [(0, vue.unref)(beatMovieLoading)[index] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_22, [..._cache[
|
|
2204
|
+
}, [(0, vue.unref)(beatMovieLoading)[index] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_22, [..._cache[7] || (_cache[7] = [(0, vue.createElementVNode)("circle", {
|
|
2132
2205
|
class: "opacity-25",
|
|
2133
2206
|
cx: "12",
|
|
2134
2207
|
cy: "12",
|
|
@@ -2145,7 +2218,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2145
2218
|
class: "absolute top-1.5 right-1.5 flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-gray-400 text-gray-600 bg-white hover:bg-gray-50 disabled:opacity-60 disabled:cursor-not-allowed",
|
|
2146
2219
|
disabled: (0, vue.unref)(movieGenerating),
|
|
2147
2220
|
onClick: (0, vue.withModifiers)(($event) => regenerateBeat(index), ["stop"])
|
|
2148
|
-
}, " ↺ ", 8, _hoisted_24)) : !renderedImages[index] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_25, [renderState[index] === "rendering" || (0, vue.unref)(movieGenerating) && !renderedImages[index] && effectiveBeat$1(index).imagePrompt ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [_cache[
|
|
2221
|
+
}, " ↺ ", 8, _hoisted_24)) : !renderedImages[index] ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", _hoisted_25, [renderState[index] === "rendering" || (0, vue.unref)(movieGenerating) && !renderedImages[index] && effectiveBeat$1(index).imagePrompt ? ((0, vue.openBlock)(), (0, vue.createElementBlock)(vue.Fragment, { key: 0 }, [_cache[8] || (_cache[8] = (0, vue.createElementVNode)("svg", {
|
|
2149
2222
|
class: "animate-spin w-4 h-4 text-green-400",
|
|
2150
2223
|
viewBox: "0 0 24 24",
|
|
2151
2224
|
fill: "none"
|
|
@@ -2168,7 +2241,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2168
2241
|
class: "absolute top-1.5 right-1.5 flex items-center gap-1 px-2 py-0.5 text-xs rounded border border-blue-400 text-blue-600 bg-white hover:bg-blue-50",
|
|
2169
2242
|
onClick: ($event) => renderBeat(index)
|
|
2170
2243
|
}, (0, vue.toDisplayString)((0, vue.unref)(m).generate), 9, _hoisted_33)) : (0, vue.createCommentVNode)("", true)
|
|
2171
|
-
], 42, _hoisted_16), (0, vue.createElementVNode)("div", _hoisted_34, [(0, vue.createElementVNode)("span", _hoisted_35, (0, vue.toDisplayString)(effectiveBeat$1(index).text), 1), (0, vue.createElementVNode)("div", _hoisted_36, [(0, vue.createElementVNode)("div", _hoisted_37, [audioState[index] === "generating" || (0, vue.unref)(movieGenerating) && !beatAudios[index] && effectiveBeat$1(index).text ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_38, [..._cache[
|
|
2244
|
+
], 42, _hoisted_16), (0, vue.createElementVNode)("div", _hoisted_34, [(0, vue.createElementVNode)("span", _hoisted_35, (0, vue.toDisplayString)(effectiveBeat$1(index).text), 1), (0, vue.createElementVNode)("div", _hoisted_36, [(0, vue.createElementVNode)("div", _hoisted_37, [audioState[index] === "generating" || (0, vue.unref)(movieGenerating) && !beatAudios[index] && effectiveBeat$1(index).text ? ((0, vue.openBlock)(), (0, vue.createElementBlock)("svg", _hoisted_38, [..._cache[9] || (_cache[9] = [(0, vue.createElementVNode)("circle", {
|
|
2172
2245
|
class: "opacity-25",
|
|
2173
2246
|
cx: "12",
|
|
2174
2247
|
cy: "12",
|
|
@@ -2200,7 +2273,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2200
2273
|
title: sourceOpen[index] ? "Hide source" : "Show source",
|
|
2201
2274
|
"data-testid": `mulmo-script-beat-source-toggle-${index}`,
|
|
2202
2275
|
onClick: ($event) => toggleSource(index)
|
|
2203
|
-
}, [..._cache[
|
|
2276
|
+
}, [..._cache[10] || (_cache[10] = [(0, vue.createElementVNode)("svg", {
|
|
2204
2277
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2205
2278
|
class: "w-3.5 h-3.5",
|
|
2206
2279
|
viewBox: "0 0 24 24",
|
|
@@ -2226,11 +2299,11 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2226
2299
|
ref_key: "sourceDetails",
|
|
2227
2300
|
ref: sourceDetails,
|
|
2228
2301
|
class: "script-source",
|
|
2229
|
-
onToggle: _cache[
|
|
2302
|
+
onToggle: _cache[4] || (_cache[4] = ($event) => onSourceToggle($event.target.open))
|
|
2230
2303
|
}, [
|
|
2231
2304
|
(0, vue.createElementVNode)("summary", null, (0, vue.toDisplayString)((0, vue.unref)(m).editSource), 1),
|
|
2232
2305
|
(0, vue.withDirectives)((0, vue.createElementVNode)("textarea", {
|
|
2233
|
-
"onUpdate:modelValue": _cache[
|
|
2306
|
+
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => editableSource.value = $event),
|
|
2234
2307
|
class: (0, vue.normalizeClass)(["script-editor", { "script-editor-invalid": sourceChanged.value && !sourceValid.value }]),
|
|
2235
2308
|
spellcheck: "false"
|
|
2236
2309
|
}, null, 2), [[vue.vModelText, editableSource.value]]),
|
|
@@ -2248,7 +2321,7 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2248
2321
|
onClick: copyText
|
|
2249
2322
|
}, [(0, vue.createElementVNode)("span", _hoisted_54, (0, vue.toDisplayString)((0, vue.unref)(copied) ? "check" : "content_copy"), 1)], 8, _hoisted_53), [[vue.vShow, !editing.value]])]),
|
|
2250
2323
|
lightbox.value ? ((0, vue.openBlock)(), (0, vue.createBlock)(BeatLightbox_default, {
|
|
2251
|
-
key:
|
|
2324
|
+
key: 5,
|
|
2252
2325
|
lightbox: lightbox.value,
|
|
2253
2326
|
"beat-count": beats.value.length,
|
|
2254
2327
|
"beat-texts": beatTexts.value,
|
|
@@ -2284,7 +2357,7 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
|
2284
2357
|
};
|
|
2285
2358
|
//#endregion
|
|
2286
2359
|
//#region src/vue/View.vue
|
|
2287
|
-
var View_default = /*#__PURE__*/ _plugin_vue_export_helper_default(View_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2360
|
+
var View_default = /*#__PURE__*/ _plugin_vue_export_helper_default(View_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-f9957eaf"]]);
|
|
2288
2361
|
//#endregion
|
|
2289
2362
|
//#region src/vue/Preview.vue?vue&type=script&setup=true&lang.ts
|
|
2290
2363
|
var _hoisted_1 = {
|