@mulmoclaude/mulmoscript-plugin 4.4.0 → 4.5.1
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-BHqxMUWm.cjs +82 -0
- package/dist/contract-BHqxMUWm.cjs.map +1 -0
- package/dist/contract-BnIl6w_f.js +53 -0
- package/dist/contract-BnIl6w_f.js.map +1 -0
- package/dist/core/contract.d.ts +80 -6
- package/dist/core/contract.d.ts.map +1 -1
- package/dist/core/definition.d.ts.map +1 -1
- package/dist/core/paths.d.ts +41 -0
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{plugin-BOq5YkTl.cjs → plugin-C5JC2lNR.cjs} +51 -1
- package/dist/plugin-C5JC2lNR.cjs.map +1 -0
- package/dist/{plugin-CAhxJ5WM.js → plugin-Jo8iGv4K.js} +40 -2
- package/dist/plugin-Jo8iGv4K.js.map +1 -0
- package/dist/server/dispatch.d.ts +0 -6
- package/dist/server/dispatch.d.ts.map +1 -1
- package/dist/server/ops.d.ts +29 -18
- package/dist/server/ops.d.ts.map +1 -1
- package/dist/server/types.d.ts +75 -2
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server.cjs +468 -110
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +468 -110
- package/dist/server.js.map +1 -1
- package/dist/style.css +30 -18
- package/dist/vue/View.vue.d.ts.map +1 -1
- package/dist/vue/composables/useDeckEditor.d.ts.map +1 -1
- package/dist/vue/index.d.ts +1 -1
- package/dist/vue/index.d.ts.map +1 -1
- package/dist/vue/subscription.d.ts +16 -0
- package/dist/vue/subscription.d.ts.map +1 -0
- package/dist/vue/transport.d.ts +16 -5
- package/dist/vue/transport.d.ts.map +1 -1
- package/dist/vue.cjs +110 -21
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +110 -21
- package/dist/vue.js.map +1 -1
- package/package.json +11 -11
- package/dist/contract-BhN3yKJC.cjs +0 -36
- package/dist/contract-BhN3yKJC.cjs.map +0 -1
- package/dist/contract-CIt1ZAtt.js +0 -19
- package/dist/contract-CIt1ZAtt.js.map +0 -1
- package/dist/plugin-BOq5YkTl.cjs.map +0 -1
- package/dist/plugin-CAhxJ5WM.js.map +0 -1
package/dist/style.css
CHANGED
|
@@ -396,6 +396,10 @@
|
|
|
396
396
|
position: relative;
|
|
397
397
|
}
|
|
398
398
|
|
|
399
|
+
.static {
|
|
400
|
+
position: static;
|
|
401
|
+
}
|
|
402
|
+
|
|
399
403
|
.inset-0 {
|
|
400
404
|
inset: 0;
|
|
401
405
|
}
|
|
@@ -546,6 +550,10 @@
|
|
|
546
550
|
display: block;
|
|
547
551
|
}
|
|
548
552
|
|
|
553
|
+
.contents {
|
|
554
|
+
display: contents;
|
|
555
|
+
}
|
|
556
|
+
|
|
549
557
|
.flex {
|
|
550
558
|
display: flex;
|
|
551
559
|
}
|
|
@@ -714,6 +722,10 @@
|
|
|
714
722
|
flex-shrink: 0;
|
|
715
723
|
}
|
|
716
724
|
|
|
725
|
+
.grow {
|
|
726
|
+
flex-grow: 1;
|
|
727
|
+
}
|
|
728
|
+
|
|
717
729
|
.-translate-x-1\/2 {
|
|
718
730
|
--tw-translate-x: calc(calc(1 / 2 * 100%) * -1);
|
|
719
731
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
@@ -1746,18 +1758,18 @@
|
|
|
1746
1758
|
}
|
|
1747
1759
|
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
|
|
1748
1760
|
@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}
|
|
1749
|
-
.bottom-bar-wrapper[data-v-
|
|
1761
|
+
.bottom-bar-wrapper[data-v-2d5f76ac] {
|
|
1750
1762
|
position: relative;
|
|
1751
1763
|
flex-shrink: 0;
|
|
1752
1764
|
}
|
|
1753
|
-
.script-source[data-v-
|
|
1765
|
+
.script-source[data-v-2d5f76ac] {
|
|
1754
1766
|
padding: 0.5rem;
|
|
1755
1767
|
background: #f5f5f5;
|
|
1756
1768
|
border-top: 1px solid #e0e0e0;
|
|
1757
1769
|
font-family: Consolas, "MS Gothic", "BIZ UDGothic", monospace;
|
|
1758
1770
|
font-size: 0.85rem;
|
|
1759
1771
|
}
|
|
1760
|
-
.script-source summary[data-v-
|
|
1772
|
+
.script-source summary[data-v-2d5f76ac] {
|
|
1761
1773
|
cursor: pointer;
|
|
1762
1774
|
user-select: none;
|
|
1763
1775
|
padding: 0.5rem;
|
|
@@ -1766,13 +1778,13 @@
|
|
|
1766
1778
|
font-weight: 500;
|
|
1767
1779
|
color: #333;
|
|
1768
1780
|
}
|
|
1769
|
-
.script-source[open] summary[data-v-
|
|
1781
|
+
.script-source[open] summary[data-v-2d5f76ac] {
|
|
1770
1782
|
margin-bottom: 0.5rem;
|
|
1771
1783
|
}
|
|
1772
|
-
.script-source summary[data-v-
|
|
1784
|
+
.script-source summary[data-v-2d5f76ac]:hover {
|
|
1773
1785
|
background: #d8d8d8;
|
|
1774
1786
|
}
|
|
1775
|
-
.script-editor[data-v-
|
|
1787
|
+
.script-editor[data-v-2d5f76ac] {
|
|
1776
1788
|
width: 100%;
|
|
1777
1789
|
height: 40vh;
|
|
1778
1790
|
padding: 1rem;
|
|
@@ -1786,23 +1798,23 @@
|
|
|
1786
1798
|
margin-bottom: 0.5rem;
|
|
1787
1799
|
line-height: 1.5;
|
|
1788
1800
|
}
|
|
1789
|
-
.script-editor[data-v-
|
|
1801
|
+
.script-editor[data-v-2d5f76ac]:focus {
|
|
1790
1802
|
outline: none;
|
|
1791
1803
|
border-color: #4caf50;
|
|
1792
1804
|
box-shadow: 0 0 0 2px rgba(76, 175, 80, 0.1);
|
|
1793
1805
|
}
|
|
1794
|
-
.script-editor-invalid[data-v-
|
|
1806
|
+
.script-editor-invalid[data-v-2d5f76ac] {
|
|
1795
1807
|
border-color: #ef4444;
|
|
1796
1808
|
}
|
|
1797
|
-
.script-editor-invalid[data-v-
|
|
1809
|
+
.script-editor-invalid[data-v-2d5f76ac]:focus {
|
|
1798
1810
|
border-color: #ef4444;
|
|
1799
1811
|
box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.1);
|
|
1800
1812
|
}
|
|
1801
|
-
.editor-actions[data-v-
|
|
1813
|
+
.editor-actions[data-v-2d5f76ac] {
|
|
1802
1814
|
display: flex;
|
|
1803
1815
|
justify-content: space-between;
|
|
1804
1816
|
}
|
|
1805
|
-
.apply-btn[data-v-
|
|
1817
|
+
.apply-btn[data-v-2d5f76ac] {
|
|
1806
1818
|
padding: 0.5rem 1rem;
|
|
1807
1819
|
background: #4caf50;
|
|
1808
1820
|
color: white;
|
|
@@ -1813,16 +1825,16 @@
|
|
|
1813
1825
|
transition: background 0.2s;
|
|
1814
1826
|
font-weight: 500;
|
|
1815
1827
|
}
|
|
1816
|
-
.apply-btn[data-v-
|
|
1828
|
+
.apply-btn[data-v-2d5f76ac]:hover {
|
|
1817
1829
|
background: #45a049;
|
|
1818
1830
|
}
|
|
1819
|
-
.apply-btn[data-v-
|
|
1831
|
+
.apply-btn[data-v-2d5f76ac]:disabled {
|
|
1820
1832
|
background: #cccccc;
|
|
1821
1833
|
color: #666666;
|
|
1822
1834
|
cursor: not-allowed;
|
|
1823
1835
|
opacity: 0.6;
|
|
1824
1836
|
}
|
|
1825
|
-
.cancel-btn[data-v-
|
|
1837
|
+
.cancel-btn[data-v-2d5f76ac] {
|
|
1826
1838
|
padding: 0.5rem 1rem;
|
|
1827
1839
|
background: #e0e0e0;
|
|
1828
1840
|
color: #333;
|
|
@@ -1833,10 +1845,10 @@
|
|
|
1833
1845
|
transition: background 0.2s;
|
|
1834
1846
|
font-weight: 500;
|
|
1835
1847
|
}
|
|
1836
|
-
.cancel-btn[data-v-
|
|
1848
|
+
.cancel-btn[data-v-2d5f76ac]:hover {
|
|
1837
1849
|
background: #d0d0d0;
|
|
1838
1850
|
}
|
|
1839
|
-
.copy-btn[data-v-
|
|
1851
|
+
.copy-btn[data-v-2d5f76ac] {
|
|
1840
1852
|
position: absolute;
|
|
1841
1853
|
bottom: 0.3rem;
|
|
1842
1854
|
right: 0.65rem;
|
|
@@ -1847,10 +1859,10 @@
|
|
|
1847
1859
|
cursor: pointer;
|
|
1848
1860
|
z-index: 1;
|
|
1849
1861
|
}
|
|
1850
|
-
.copy-btn[data-v-
|
|
1862
|
+
.copy-btn[data-v-2d5f76ac]:hover {
|
|
1851
1863
|
color: #000;
|
|
1852
1864
|
}
|
|
1853
|
-
.copy-btn .material-icons[data-v-
|
|
1865
|
+
.copy-btn .material-icons[data-v-2d5f76ac] {
|
|
1854
1866
|
font-size: 1.15rem;
|
|
1855
1867
|
}
|
|
1856
1868
|
/*$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":"AAw6CA,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;AAmhEF,QAAA,MAAM,YAAY;;;;kFAGhB,CAAC;wBACkB,OAAO,YAAY;AAAxC,wBAAyC"}
|
|
@@ -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;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;
|
|
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;EAc5D"}
|
package/dist/vue/index.d.ts
CHANGED
|
@@ -10,7 +10,7 @@ export type { MulmoScriptDispatchArgs, MulmoScriptDispatchResult, MulmoScriptGen
|
|
|
10
10
|
export { GENERATION_EVENT, SCRIPT_CHANGED_EVENT } from "../core/contract";
|
|
11
11
|
export { TOOL_NAME, TOOL_DEFINITION } from "../core/definition";
|
|
12
12
|
export { MULMOSCRIPT_HOST_ADAPTER_KEY, useHostAdapter, type MulmoScriptHostAdapter } from "./hostAdapter";
|
|
13
|
-
export { useMulmoScriptTransport, type MulmoScriptTransport, type TransportResult } from "./transport";
|
|
13
|
+
export { useMulmoScriptTransport, type MulmoScriptTransport, type TransportResult, type GenerationSubscription, type ScriptChangedSubscription, } from "./transport";
|
|
14
14
|
export { View, Preview };
|
|
15
15
|
declare const _default: {
|
|
16
16
|
plugin: ToolPlugin<MulmoScriptData, MulmoScriptData, SaveMulmoScriptArgs, import("gui-chat-protocol").InputHandler, Record<string, unknown>>;
|
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;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,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,
|
|
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,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,EAAE,4BAA4B,EAAE,cAAc,EAAE,KAAK,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC1G,OAAO,EACL,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;;;AAEzB,wBAA0B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { MulmoScriptGenerationEvent } from "../core/contract";
|
|
2
|
+
export interface GenerationSubscription {
|
|
3
|
+
filePath: () => string;
|
|
4
|
+
root: () => string | undefined;
|
|
5
|
+
handler: (event: MulmoScriptGenerationEvent) => void;
|
|
6
|
+
}
|
|
7
|
+
export interface ScriptChangedSubscription {
|
|
8
|
+
filePath: () => string;
|
|
9
|
+
root: () => string | undefined;
|
|
10
|
+
/** This View's id — its own writes echo back and must not be acted on. */
|
|
11
|
+
ownOrigin: string;
|
|
12
|
+
handler: () => void;
|
|
13
|
+
}
|
|
14
|
+
export declare function normalizeGenerationSubscription(first: GenerationSubscription | (() => string), legacyHandler?: (event: MulmoScriptGenerationEvent) => void): GenerationSubscription;
|
|
15
|
+
export declare function normalizeScriptChangedSubscription(first: ScriptChangedSubscription | (() => string), legacyOwnOrigin?: string, legacyHandler?: () => void): ScriptChangedSubscription;
|
|
16
|
+
//# sourceMappingURL=subscription.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../../src/vue/subscription.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAEnE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,CAAC;CACtD;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;IAC/B,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA6BD,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,sBAAsB,GAAG,CAAC,MAAM,MAAM,CAAC,EAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAC1D,sBAAsB,CAIxB;AAED,wBAAgB,kCAAkC,CAChD,KAAK,EAAE,yBAAyB,GAAG,CAAC,MAAM,MAAM,CAAC,EACjD,eAAe,CAAC,EAAE,MAAM,EACxB,aAAa,CAAC,EAAE,MAAM,IAAI,GACzB,yBAAyB,CAU3B"}
|
package/dist/vue/transport.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type { MulmoScriptDispatchArgs, MulmoScriptDispatchResult, MulmoScriptGenerationEvent } from "../core/contract";
|
|
1
|
+
import type { MulmoScriptChangedEvent, MulmoScriptDispatchArgs, MulmoScriptDispatchResult, MulmoScriptGenerationEvent } from "../core/contract";
|
|
2
|
+
import type { GenerationSubscription, ScriptChangedSubscription } from "./subscription";
|
|
3
|
+
export type { GenerationSubscription, ScriptChangedSubscription } from "./subscription";
|
|
2
4
|
export type TransportResult<T> = {
|
|
3
5
|
ok: true;
|
|
4
6
|
data: T;
|
|
@@ -9,15 +11,24 @@ export type TransportResult<T> = {
|
|
|
9
11
|
type ArgsFor<K extends MulmoScriptDispatchArgs["kind"]> = Omit<Extract<MulmoScriptDispatchArgs, {
|
|
10
12
|
kind: K;
|
|
11
13
|
}>, "kind">;
|
|
14
|
+
export declare function parseScriptChangedEvent(payload: unknown): MulmoScriptChangedEvent | null;
|
|
15
|
+
export declare function parseGenerationEvent(payload: unknown): MulmoScriptGenerationEvent | null;
|
|
12
16
|
export interface MulmoScriptTransport {
|
|
13
17
|
call<K extends MulmoScriptDispatchArgs["kind"]>(kind: K, args: ArgsFor<K>): Promise<TransportResult<MulmoScriptDispatchResult[K]>>;
|
|
14
|
-
/** Subscribe to the host's generation channel, pre-filtered to one
|
|
15
|
-
*
|
|
18
|
+
/** Subscribe to the host's generation channel, pre-filtered to one script —
|
|
19
|
+
* identified by the PAIR `(root, filePath)`, since the same wire path
|
|
20
|
+
* exists in every registered root (#3014). Returns the unsubscribe
|
|
21
|
+
* function. */
|
|
22
|
+
onGenerationEvent(subscription: GenerationSubscription): () => void;
|
|
23
|
+
/** The pre-#3014 form: no root named, so the host's default root. Kept
|
|
24
|
+
* because this interface is exported from `/vue` on a published package. */
|
|
16
25
|
onGenerationEvent(filePath: () => string, handler: (event: MulmoScriptGenerationEvent) => void): () => void;
|
|
17
26
|
/** Subscribe to writes of one script, skipping the echo of this View's own
|
|
18
|
-
* (`ownOrigin`). Returns the unsubscribe
|
|
27
|
+
* (`ownOrigin`). Same pair identity as above. Returns the unsubscribe
|
|
28
|
+
* function. */
|
|
29
|
+
onScriptChanged(subscription: ScriptChangedSubscription): () => void;
|
|
30
|
+
/** The pre-#3014 form — see `onGenerationEvent` above. */
|
|
19
31
|
onScriptChanged(filePath: () => string, ownOrigin: string, handler: () => void): () => void;
|
|
20
32
|
}
|
|
21
33
|
export declare function useMulmoScriptTransport(): MulmoScriptTransport;
|
|
22
|
-
export {};
|
|
23
34
|
//# sourceMappingURL=transport.d.ts.map
|
|
@@ -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,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAGhJ,OAAO,KAAK,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AACxF,YAAY,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,gBAAgB,CAAC;AAIxF,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;AAwBtH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,uBAAuB,GAAG,IAAI,CAexF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,0BAA0B,GAAG,IAAI,CAmBxF;AAED,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;;;oBAGgB;IAChB,iBAAiB,CAAC,YAAY,EAAE,sBAAsB,GAAG,MAAM,IAAI,CAAC;IACpE;iFAC6E;IAC7E,iBAAiB,CAAC,QAAQ,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5G;;oBAEgB;IAChB,eAAe,CAAC,YAAY,EAAE,yBAAyB,GAAG,MAAM,IAAI,CAAC;IACrE,0DAA0D;IAC1D,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,CAmD9D"}
|
package/dist/vue.cjs
CHANGED
|
@@ -2,8 +2,8 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_plugin = require("./plugin-
|
|
6
|
-
const require_contract = require("./contract-
|
|
5
|
+
const require_plugin = require("./plugin-C5JC2lNR.cjs");
|
|
6
|
+
const require_contract = require("./contract-BHqxMUWm.cjs");
|
|
7
7
|
let _mulmocast_types = require("@mulmocast/types");
|
|
8
8
|
let vue = require("vue");
|
|
9
9
|
let _mulmocast_beat_editor = require("@mulmocast/beat-editor");
|
|
@@ -219,6 +219,57 @@ function focusLeftContainer(container, movedTo) {
|
|
|
219
219
|
return !container.contains(movedTo);
|
|
220
220
|
}
|
|
221
221
|
//#endregion
|
|
222
|
+
//#region src/vue/subscription.ts
|
|
223
|
+
/** A caller that predates roots is asking for the host's default root. */
|
|
224
|
+
var DEFAULT_ROOT_GETTER = () => void 0;
|
|
225
|
+
/**
|
|
226
|
+
* The object form is checked at runtime, not only by the type.
|
|
227
|
+
*
|
|
228
|
+
* This package is published, so a JavaScript consumer reaches these functions
|
|
229
|
+
* with no call-site checking at all. An object missing `root` type-checks
|
|
230
|
+
* nowhere and passed through here unchanged, and the failure surfaced much
|
|
231
|
+
* later as `sub.root is not a function` — thrown inside a pubsub delivery,
|
|
232
|
+
* where there is no caller left to catch it and the only symptom is a View
|
|
233
|
+
* that silently stops updating (CodeRabbit on #3015).
|
|
234
|
+
*
|
|
235
|
+
* A missing `root` is the one field with a safe answer: absent means the
|
|
236
|
+
* default root, which is exactly what a caller who did not think about roots
|
|
237
|
+
* intended. A missing `filePath` or `handler` has no such answer, so it
|
|
238
|
+
* throws HERE, at the subscribe call, where the stack points at the bug.
|
|
239
|
+
*/
|
|
240
|
+
function checkedSubscription(subscription, label) {
|
|
241
|
+
if (typeof subscription.filePath !== "function" || typeof subscription.handler !== "function") throw new TypeError(`${label}: filePath and handler must both be functions`);
|
|
242
|
+
if (subscription.root === void 0) return {
|
|
243
|
+
...subscription,
|
|
244
|
+
root: DEFAULT_ROOT_GETTER
|
|
245
|
+
};
|
|
246
|
+
if (typeof subscription.root !== "function") throw new TypeError(`${label}: root must be a function returning the root id, or be omitted`);
|
|
247
|
+
return subscription;
|
|
248
|
+
}
|
|
249
|
+
function normalizeGenerationSubscription(first, legacyHandler) {
|
|
250
|
+
if (typeof first !== "function") return checkedSubscription(first, "onGenerationEvent(subscription)");
|
|
251
|
+
if (!legacyHandler) throw new TypeError("onGenerationEvent(filePath, handler): handler is required");
|
|
252
|
+
return {
|
|
253
|
+
filePath: first,
|
|
254
|
+
root: DEFAULT_ROOT_GETTER,
|
|
255
|
+
handler: legacyHandler
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
function normalizeScriptChangedSubscription(first, legacyOwnOrigin, legacyHandler) {
|
|
259
|
+
if (typeof first !== "function") {
|
|
260
|
+
const checked = checkedSubscription(first, "onScriptChanged(subscription)");
|
|
261
|
+
if (typeof checked.ownOrigin !== "string") throw new TypeError("onScriptChanged(subscription): ownOrigin must be a string");
|
|
262
|
+
return checked;
|
|
263
|
+
}
|
|
264
|
+
if (typeof legacyOwnOrigin !== "string" || !legacyHandler) throw new TypeError("onScriptChanged(filePath, ownOrigin, handler): ownOrigin and handler are required");
|
|
265
|
+
return {
|
|
266
|
+
filePath: first,
|
|
267
|
+
root: DEFAULT_ROOT_GETTER,
|
|
268
|
+
ownOrigin: legacyOwnOrigin,
|
|
269
|
+
handler: legacyHandler
|
|
270
|
+
};
|
|
271
|
+
}
|
|
272
|
+
//#endregion
|
|
222
273
|
//#region src/vue/transport.ts
|
|
223
274
|
var GENERATION_EVENT_KINDS = /* @__PURE__ */ new Set([
|
|
224
275
|
"beatImage",
|
|
@@ -227,26 +278,53 @@ var GENERATION_EVENT_KINDS = /* @__PURE__ */ new Set([
|
|
|
227
278
|
"movie",
|
|
228
279
|
"pdf"
|
|
229
280
|
]);
|
|
281
|
+
/**
|
|
282
|
+
* A field that is absent, or a string.
|
|
283
|
+
*
|
|
284
|
+
* `undefined` is a legitimate answer for both `root` and `origin`, so a
|
|
285
|
+
* present-but-wrong-typed value CANNOT be flattened into it: `root: 42` read
|
|
286
|
+
* as "no root" makes a named root's event look like a default-root one, and
|
|
287
|
+
* the subscriber then routes another repository's script to this View
|
|
288
|
+
* (CodeRabbit on #3015 — the same shape the dispatch boundary was just fixed
|
|
289
|
+
* for). Malformed means malformed; the caller rejects the payload.
|
|
290
|
+
*/
|
|
291
|
+
function optionalString(value) {
|
|
292
|
+
if (value === void 0) return {
|
|
293
|
+
ok: true,
|
|
294
|
+
value: void 0
|
|
295
|
+
};
|
|
296
|
+
return typeof value === "string" ? {
|
|
297
|
+
ok: true,
|
|
298
|
+
value
|
|
299
|
+
} : { ok: false };
|
|
300
|
+
}
|
|
230
301
|
function parseScriptChangedEvent(payload) {
|
|
231
302
|
if (!isRecord(payload)) return null;
|
|
232
|
-
const { filePath, origin } = payload;
|
|
303
|
+
const { filePath, origin, root } = payload;
|
|
233
304
|
if (typeof filePath !== "string") return null;
|
|
305
|
+
const parsedOrigin = optionalString(origin);
|
|
306
|
+
const parsedRoot = optionalString(root);
|
|
307
|
+
if (!parsedOrigin.ok || !parsedRoot.ok) return null;
|
|
234
308
|
return {
|
|
235
309
|
filePath,
|
|
236
|
-
...
|
|
310
|
+
...parsedOrigin.value !== void 0 ? { origin: parsedOrigin.value } : {},
|
|
311
|
+
...parsedRoot.value !== void 0 ? { root: parsedRoot.value } : {}
|
|
237
312
|
};
|
|
238
313
|
}
|
|
239
314
|
function parseGenerationEvent(payload) {
|
|
240
315
|
if (!isRecord(payload)) return null;
|
|
241
|
-
const { kind, filePath, key, done, error } = payload;
|
|
316
|
+
const { kind, filePath, key, done, error, root } = payload;
|
|
242
317
|
if (typeof kind !== "string" || !GENERATION_EVENT_KINDS.has(kind)) return null;
|
|
243
318
|
if (typeof filePath !== "string" || typeof key !== "string" || typeof done !== "boolean") return null;
|
|
319
|
+
const parsedRoot = optionalString(root);
|
|
320
|
+
if (!parsedRoot.ok) return null;
|
|
244
321
|
return {
|
|
245
322
|
kind,
|
|
246
323
|
filePath,
|
|
247
324
|
key,
|
|
248
325
|
done,
|
|
249
|
-
...typeof error === "string" ? { error } : {}
|
|
326
|
+
...typeof error === "string" ? { error } : {},
|
|
327
|
+
...parsedRoot.value !== void 0 ? { root: parsedRoot.value } : {}
|
|
250
328
|
};
|
|
251
329
|
}
|
|
252
330
|
function useMulmoScriptTransport() {
|
|
@@ -273,12 +351,13 @@ function useMulmoScriptTransport() {
|
|
|
273
351
|
data: result
|
|
274
352
|
};
|
|
275
353
|
}
|
|
276
|
-
function onGenerationEvent(
|
|
354
|
+
function onGenerationEvent(first, legacyHandler) {
|
|
355
|
+
const { filePath, root, handler } = normalizeGenerationSubscription(first, legacyHandler);
|
|
277
356
|
return runtime.pubsub.subscribe(require_contract.GENERATION_EVENT, (payload) => {
|
|
278
357
|
const event = parseGenerationEvent(payload);
|
|
279
358
|
if (!event) return;
|
|
280
359
|
const current = filePath();
|
|
281
|
-
if (!current || event.filePath !== current) return;
|
|
360
|
+
if (!current || event.filePath !== current || !require_contract.sameRoot(event.root, root())) return;
|
|
282
361
|
handler(event);
|
|
283
362
|
});
|
|
284
363
|
}
|
|
@@ -289,11 +368,12 @@ function useMulmoScriptTransport() {
|
|
|
289
368
|
* on them would rebuild the element the caret is in on every keystroke, so they are dropped
|
|
290
369
|
* here. A write from the agent carries no origin and always reaches the handler.
|
|
291
370
|
*/
|
|
292
|
-
function onScriptChanged(
|
|
371
|
+
function onScriptChanged(first, legacyOwnOrigin, legacyHandler) {
|
|
372
|
+
const { filePath, root, ownOrigin, handler } = normalizeScriptChangedSubscription(first, legacyOwnOrigin, legacyHandler);
|
|
293
373
|
return runtime.pubsub.subscribe(require_contract.SCRIPT_CHANGED_EVENT, (payload) => {
|
|
294
374
|
const event = parseScriptChangedEvent(payload);
|
|
295
375
|
if (!event) return;
|
|
296
|
-
if (!require_contract.shouldReloadForScriptChange(event, filePath(), ownOrigin)) return;
|
|
376
|
+
if (!require_contract.shouldReloadForScriptChange(event, filePath(), ownOrigin, root())) return;
|
|
297
377
|
handler();
|
|
298
378
|
});
|
|
299
379
|
}
|
|
@@ -650,9 +730,14 @@ function useDeckEditor({ api, filePath, effectiveScript, commitScript }) {
|
|
|
650
730
|
* flushing cannot clobber it out of order.
|
|
651
731
|
*/
|
|
652
732
|
function watchForeignWrites(reload) {
|
|
653
|
-
return api.onScriptChanged(
|
|
654
|
-
|
|
655
|
-
|
|
733
|
+
return api.onScriptChanged({
|
|
734
|
+
filePath: () => filePath.value,
|
|
735
|
+
root: () => void 0,
|
|
736
|
+
ownOrigin: EDITOR_ORIGIN,
|
|
737
|
+
handler: () => {
|
|
738
|
+
flushPendingDeckSave();
|
|
739
|
+
reload();
|
|
740
|
+
}
|
|
656
741
|
});
|
|
657
742
|
}
|
|
658
743
|
return {
|
|
@@ -2014,14 +2099,18 @@ var View_vue_vue_type_script_setup_true_lang_default = /*@__PURE__*/ (0, vue.def
|
|
|
2014
2099
|
}
|
|
2015
2100
|
(0, vue.onMounted)(initializeScript);
|
|
2016
2101
|
(0, vue.watch)(() => props.selectedResult, initializeScript);
|
|
2017
|
-
const unsubscribeGenerationEvents = api.onGenerationEvent(
|
|
2018
|
-
|
|
2019
|
-
|
|
2020
|
-
|
|
2102
|
+
const unsubscribeGenerationEvents = api.onGenerationEvent({
|
|
2103
|
+
filePath: () => filePath.value,
|
|
2104
|
+
root: () => void 0,
|
|
2105
|
+
handler: (event) => {
|
|
2106
|
+
if (!event.done) {
|
|
2107
|
+
reflectGenerationStart(event);
|
|
2108
|
+
return;
|
|
2109
|
+
}
|
|
2110
|
+
reflectGenerationFinish(event).catch((err) => {
|
|
2111
|
+
console.error("[presentMulmoScript] reload on finish failed:", err);
|
|
2112
|
+
});
|
|
2021
2113
|
}
|
|
2022
|
-
reflectGenerationFinish(event).catch((err) => {
|
|
2023
|
-
console.error("[presentMulmoScript] reload on finish failed:", err);
|
|
2024
|
-
});
|
|
2025
2114
|
});
|
|
2026
2115
|
function reflectGenerationStart(entry) {
|
|
2027
2116
|
if (entry.kind === "beatImage") {
|
|
@@ -2357,7 +2446,7 @@ var _plugin_vue_export_helper_default = (sfc, props) => {
|
|
|
2357
2446
|
};
|
|
2358
2447
|
//#endregion
|
|
2359
2448
|
//#region src/vue/View.vue
|
|
2360
|
-
var View_default = /*#__PURE__*/ _plugin_vue_export_helper_default(View_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-
|
|
2449
|
+
var View_default = /*#__PURE__*/ _plugin_vue_export_helper_default(View_vue_vue_type_script_setup_true_lang_default, [["__scopeId", "data-v-2d5f76ac"]]);
|
|
2361
2450
|
//#endregion
|
|
2362
2451
|
//#region src/vue/Preview.vue?vue&type=script&setup=true&lang.ts
|
|
2363
2452
|
var _hoisted_1 = {
|