mulmocast-viewer 0.2.2 → 0.2.3

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/README.md CHANGED
@@ -235,7 +235,7 @@ const buildBeatUrl = (index: number) => {
235
235
 
236
236
  **Key Points:**
237
237
  - `beats`: Array of `{ beat: BundleItem, originalIndex: number }` - preserves original indices for linking
238
- - `basePath`: Base path for images (e.g., `/my-content` images at `/my-content/1.jpg`, `/my-content/2.jpg`, etc.)
238
+ - `basePath`: Base path for media files. Images are resolved from `beat.imageSource` if available (e.g., `/my-content/horse.png`), otherwise falls back to sequential numbering (`/my-content/1.jpg`, `/my-content/2.jpg`, etc.)
239
239
  - `textLang`: Language for text display
240
240
  - `linkUrlBuilder`: Optional function `(index: number) => string` - returns URL for each beat
241
241
  - `linkComponent`: Optional component for links - use `RouterLink` for Vue Router, or `'a'` (default) for regular links
@@ -364,7 +364,7 @@ The default slot exposes the following properties and components:
364
364
  | Prop | Type | Required | Default | Description |
365
365
  |------|------|----------|---------|-------------|
366
366
  | `beats` | `Array<{ beat: BundleItem, originalIndex: number }>` | Yes | - | Array of beats with original indices |
367
- | `basePath` | `string` | No | `''` | Base path for images |
367
+ | `basePath` | `string` | No | `''` | Base path for media files. Uses `beat.imageSource` if available, otherwise `{index+1}.jpg` |
368
368
  | `textLang` | `string` | No | `'en'` | Text language |
369
369
  | `linkUrlBuilder` | `(index: number) => string` | No | - | Function to generate link URLs |
370
370
  | `linkComponent` | `string \| Component` | No | `'a'` | Link component (e.g., RouterLink or 'a') |
package/dist/index.d.ts CHANGED
@@ -25,7 +25,7 @@ declare const __VLS_component: DefineComponent<MulmoViewerProps, {
25
25
  onAllCompleted?: (() => any) | undefined;
26
26
  }>, {
27
27
  playbackSpeed: number;
28
- dataSet: ViewerData;
28
+ dataSet: MulmoViewerData;
29
29
  initPage: number;
30
30
  audioLang: string;
31
31
  textLang: string;
@@ -285,7 +285,7 @@ export declare const BeatGridView: DefineComponent<BeatGridViewProps, {}, {}, {}
285
285
 
286
286
  declare interface BeatGridViewProps {
287
287
  beats: Array<{
288
- beat: BundleItem;
288
+ beat: MulmoViewerBeat;
289
289
  originalIndex: number;
290
290
  }>;
291
291
  basePath?: string;
@@ -307,7 +307,7 @@ export declare const BeatListView: DefineComponent<BeatListViewProps, {}, {}, {}
307
307
 
308
308
  declare interface BeatListViewProps {
309
309
  beats: Array<{
310
- beat: BundleItem;
310
+ beat: MulmoViewerBeat;
311
311
  originalIndex: number;
312
312
  }>;
313
313
  basePath?: string;
@@ -316,8 +316,6 @@ declare interface BeatListViewProps {
316
316
  linkComponent?: string | object;
317
317
  }
318
318
 
319
- export declare type BundleItem = MulmoViewerBeat;
320
-
321
319
  declare interface MulmoPlayerProps {
322
320
  index: number;
323
321
  videoWithAudioSource?: string;
@@ -349,7 +347,7 @@ declare interface MulmoViewerHeaderProps {
349
347
  }
350
348
 
351
349
  declare interface MulmoViewerProps {
352
- dataSet?: ViewerData;
350
+ dataSet?: MulmoViewerData;
353
351
  basePath: string;
354
352
  initPage?: number;
355
353
  audioLang?: string;
@@ -367,6 +365,4 @@ declare interface SelectLanguageProps {
367
365
  modelValue: string;
368
366
  }
369
367
 
370
- export declare type ViewerData = MulmoViewerData;
371
-
372
368
  export { }
@@ -1 +1 @@
1
- @media(hover:none){.play-overlay[data-v-843621f0]{opacity:.6}.play-overlay[data-v-843621f0]:active{opacity:1}}.mulmo-text-box[data-v-fdffe885]{background:var(--mulmo-text-bg, #ffffff);color:inherit}.mulmo-text-primary[data-v-fdffe885]{color:var(--mulmo-text-primary, inherit)}.mulmo-text-secondary[data-v-fdffe885]{color:inherit;opacity:var(--mulmo-text-secondary-opacity, .7)}@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--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: 1.5 ;--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.z-50{z-index:50}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.float-left{float:left}.clear-both{clear:both}.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-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-4{height:calc(var(--spacing)*4)}.h-6\!{height:calc(var(--spacing)*6)!important}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.h-auto{height:auto}.h-full{height:100%}.max-h-\[80vh\]{max-height:80vh}.max-h-full{max-height:100%}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-16{width:calc(var(--spacing)*16)}.w-30{width:calc(var(--spacing)*30)}.w-64{width:calc(var(--spacing)*64)}.w-auto{width:auto}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto\,1fr\,auto\]{grid-template-columns:auto,1fr,auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*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-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-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-center{align-self:center}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-600{background-color:var(--color-red-600)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-0\!{opacity:0!important}.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)}.shadow-sm{--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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.\[--mulmo-text-bg\:\#1f2937\]{--mulmo-text-bg:#1f2937}.\[--mulmo-text-primary\:\#fff\]{--mulmo-text-primary:#fff}@media(hover:hover){.group-hover\:text-indigo-600:is(:where(.group):hover *){color:var(--color-indigo-600)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-indigo-400:hover{border-color:var(--color-indigo-400)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--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)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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)}}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:ring-2:focus{--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)}.focus\:ring-indigo-200:focus{--tw-ring-color:var(--color-indigo-200)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (min-width:40rem){.max-sm\:col-span-2{grid-column:span 2/span 2}.max-sm\:col-start-1{grid-column-start:1}.max-sm\:col-start-2{grid-column-start:2}.max-sm\:row-start-2{grid-row-start:2}.max-sm\:row-start-3{grid-row-start:3}.max-sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline-block{display:inline-block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:py-4{padding-block:calc(var(--spacing)*4)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.mulmocast-video::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-video::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-overlay-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-fullscreen-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-video:hover::-webkit-media-controls{opacity:1}.mulmocast-audio::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-audio::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-audio:hover::-webkit-media-controls{opacity:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-duration{syntax:"*";inherits:false}
1
+ @media(hover:none){.play-overlay[data-v-843621f0]{opacity:.6}.play-overlay[data-v-843621f0]:active{opacity:1}}.mulmo-text-box[data-v-46289647]{background:var(--mulmo-text-bg, #ffffff);color:inherit}.mulmo-text-primary[data-v-46289647]{color:var(--mulmo-text-primary, inherit)}.mulmo-text-secondary[data-v-46289647]{color:inherit;opacity:var(--mulmo-text-secondary-opacity, .7)}@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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--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-duration:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-red-600:oklch(57.7% .245 27.325);--color-red-700:oklch(50.5% .213 27.518);--color-amber-600:oklch(66.6% .179 58.318);--color-amber-700:oklch(55.5% .163 48.998);--color-green-600:oklch(62.7% .194 149.214);--color-green-700:oklch(52.7% .154 150.069);--color-indigo-200:oklch(87% .065 274.039);--color-indigo-400:oklch(67.3% .182 276.935);--color-indigo-500:oklch(58.5% .233 277.117);--color-indigo-600:oklch(51.1% .262 276.966);--color-indigo-700:oklch(45.7% .24 277.023);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-800:oklch(27.8% .033 256.848);--color-black:#000;--color-white:#fff;--spacing:.25rem;--container-7xl:80rem;--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: 1.5 ;--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);--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--tracking-wide:.025em;--leading-relaxed:1.625;--radius-lg:.5rem;--radius-2xl:1rem;--aspect-video:16/9;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-2{top:calc(var(--spacing)*2)}.right-0{right:calc(var(--spacing)*0)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-2{bottom:calc(var(--spacing)*2)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-2{left:calc(var(--spacing)*2)}.z-50{z-index:50}.col-start-1{grid-column-start:1}.col-start-2{grid-column-start:2}.col-start-3{grid-column-start:3}.row-start-1{grid-row-start:1}.row-start-2{grid-row-start:2}.float-left{float:left}.clear-both{clear:both}.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-auto{margin-inline:auto}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-3{margin-top:calc(var(--spacing)*3)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-4{margin-right:calc(var(--spacing)*4)}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.ml-1{margin-left:calc(var(--spacing)*1)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.table{display:table}.aspect-video{aspect-ratio:var(--aspect-video)}.h-4{height:calc(var(--spacing)*4)}.h-6\!{height:calc(var(--spacing)*6)!important}.h-8{height:calc(var(--spacing)*8)}.h-16{height:calc(var(--spacing)*16)}.h-auto{height:auto}.h-full{height:100%}.max-h-\[80vh\]{max-height:80vh}.max-h-full{max-height:100%}.w-4{width:calc(var(--spacing)*4)}.w-8{width:calc(var(--spacing)*8)}.w-16{width:calc(var(--spacing)*16)}.w-30{width:calc(var(--spacing)*30)}.w-64{width:calc(var(--spacing)*64)}.w-auto{width:auto}.w-full{width:100%}.max-w-7xl{max-width:var(--container-7xl)}.max-w-full{max-width:100%}.min-w-0{min-width:calc(var(--spacing)*0)}.flex-shrink-0{flex-shrink:0}.shrink{flex-shrink:1}.grow{flex-grow:1}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-\[auto\,1fr\,auto\]{grid-template-columns:auto,1fr,auto}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.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}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.gap-6{gap:calc(var(--spacing)*6)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*1)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*1)*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-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-6>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*6)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*6)*calc(1 - var(--tw-space-y-reverse)))}.gap-x-4{column-gap:calc(var(--spacing)*4)}.gap-y-4{row-gap:calc(var(--spacing)*4)}.self-center{align-self:center}.justify-self-end{justify-self:flex-end}.justify-self-start{justify-self:flex-start}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.bg-amber-600{background-color:var(--color-amber-600)}.bg-black{background-color:var(--color-black)}.bg-black\/50{background-color:#00000080}@supports (color:color-mix(in lab,red,red)){.bg-black\/50{background-color:color-mix(in oklab,var(--color-black)50%,transparent)}}.bg-black\/60{background-color:#0009}@supports (color:color-mix(in lab,red,red)){.bg-black\/60{background-color:color-mix(in oklab,var(--color-black)60%,transparent)}}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-500{background-color:var(--color-gray-500)}.bg-gray-600{background-color:var(--color-gray-600)}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-red-600{background-color:var(--color-red-600)}.bg-white{background-color:var(--color-white)}.object-contain{object-fit:contain}.object-cover{object-fit:cover}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.p-10{padding:calc(var(--spacing)*10)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-8{padding-block:calc(var(--spacing)*8)}.py-12{padding-block:calc(var(--spacing)*12)}.text-center{text-align:center}.text-left{text-align:left}.font-sans{font-family:var(--font-sans)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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))}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-red-600{color:var(--color-red-600)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.opacity-0{opacity:0}.opacity-0\!{opacity:0!important}.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)}.shadow-sm{--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-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.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-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-shadow{transition-property:box-shadow;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-300{--tw-duration:.3s;transition-duration:.3s}.\[--mulmo-text-bg\:\#1f2937\]{--mulmo-text-bg:#1f2937}.\[--mulmo-text-primary\:\#fff\]{--mulmo-text-primary:#fff}@media(hover:hover){.group-hover\:text-indigo-600:is(:where(.group):hover *){color:var(--color-indigo-600)}.group-hover\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\:border-indigo-400:hover{border-color:var(--color-indigo-400)}.hover\:bg-amber-700:hover{background-color:var(--color-amber-700)}.hover\:bg-black\/70:hover{background-color:#000000b3}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/70:hover{background-color:color-mix(in oklab,var(--color-black)70%,transparent)}}.hover\:bg-black\/80:hover{background-color:#000c}@supports (color:color-mix(in lab,red,red)){.hover\:bg-black\/80:hover{background-color:color-mix(in oklab,var(--color-black)80%,transparent)}}.hover\:bg-gray-600:hover{background-color:var(--color-gray-600)}.hover\:bg-gray-700:hover{background-color:var(--color-gray-700)}.hover\:bg-green-700:hover{background-color:var(--color-green-700)}.hover\:bg-indigo-700:hover{background-color:var(--color-indigo-700)}.hover\:bg-red-700:hover{background-color:var(--color-red-700)}.hover\:text-gray-700:hover{color:var(--color-gray-700)}.hover\:opacity-80:hover{opacity:.8}.hover\:shadow-lg:hover{--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)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px 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)}}.focus\:border-indigo-500:focus{border-color:var(--color-indigo-500)}.focus\:ring-2:focus{--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)}.focus\:ring-indigo-200:focus{--tw-ring-color:var(--color-indigo-200)}.focus\:ring-indigo-500:focus{--tw-ring-color:var(--color-indigo-500)}.focus\:outline-none:focus{--tw-outline-style:none;outline-style:none}.disabled\:opacity-50:disabled{opacity:.5}@media not all and (min-width:40rem){.max-sm\:col-span-2{grid-column:span 2/span 2}.max-sm\:col-start-1{grid-column-start:1}.max-sm\:col-start-2{grid-column-start:2}.max-sm\:row-start-2{grid-row-start:2}.max-sm\:row-start-3{grid-row-start:3}.max-sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:40rem){.sm\:block{display:block}.sm\:flex{display:flex}.sm\:hidden{display:none}.sm\:inline-block{display:inline-block}.sm\:w-auto{width:auto}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:gap-4{gap:calc(var(--spacing)*4)}.sm\:py-4{padding-block:calc(var(--spacing)*4)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:80rem){.xl\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}}.mulmocast-video::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-video::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-video::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-overlay-play-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls-fullscreen-button{filter:brightness(1.1)}.mulmocast-video::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-video:hover::-webkit-media-controls{opacity:1}.mulmocast-audio::-webkit-media-controls-enclosure{background-color:#00000080!important;border-radius:0!important}.mulmocast-audio::-webkit-media-controls-current-time-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-time-remaining-display{-webkit-text-fill-color:#fff!important}.mulmocast-audio::-webkit-media-controls-play-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls-mute-button{filter:brightness(1.1)}.mulmocast-audio::-webkit-media-controls{opacity:0;transition:opacity .3s}.mulmocast-audio:hover::-webkit-media-controls{opacity:1}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@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-duration{syntax:"*";inherits:false}
@@ -1,17 +1,17 @@
1
1
  import { defineComponent as R, ref as $, watch as _, onMounted as ae, computed as B, onUnmounted as ve, openBlock as i, createElementBlock as r, createElementVNode as e, normalizeClass as ne, createCommentVNode as k, toDisplayString as L, Fragment as D, renderList as Z, renderSlot as q, normalizeProps as oe, guardReactiveProps as me, createVNode as z, mergeProps as le, unref as fe, withDirectives as ge, createBlock as I, vShow as pe, withModifiers as he, resolveDynamicComponent as se, withCtx as ie } from "vue";
2
2
  const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) => {
3
3
  const o = (l) => l instanceof Error ? l : new Error("Aborted");
4
- return new Promise((l, p) => {
4
+ return new Promise((l, h) => {
5
5
  if (d.aborted) {
6
- p(o(d.reason));
6
+ h(o(d.reason));
7
7
  return;
8
8
  }
9
- const g = () => {
10
- clearTimeout(t), p(o(d.reason));
9
+ const p = () => {
10
+ clearTimeout(t), h(o(d.reason));
11
11
  }, t = setTimeout(() => {
12
- d.removeEventListener("abort", g), l();
12
+ d.removeEventListener("abort", p), l();
13
13
  }, a);
14
- d.addEventListener("abort", g, { once: !0 });
14
+ d.addEventListener("abort", p, { once: !0 });
15
15
  });
16
16
  }, xe = { class: "items-center justify-center w-full" }, be = {
17
17
  key: 0,
@@ -89,9 +89,9 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
89
89
  },
90
90
  emits: ["play", "pause", "ended"],
91
91
  setup(a, { expose: d, emit: o }) {
92
- const l = a, p = o, g = $(), t = $(), u = $(), n = $(), f = $(!1), h = () => {
93
- t.value && u.value && !isNaN(t.value.duration) && !isNaN(u.value.duration) && (f.value = u.value.duration > t.value.duration + 1);
94
- }, v = () => {
92
+ const l = a, h = o, p = $(), t = $(), u = $(), n = $(), v = $(!1), g = () => {
93
+ t.value && u.value && !isNaN(t.value.duration) && !isNaN(u.value.duration) && (v.value = u.value.duration > t.value.duration + 1);
94
+ }, m = () => {
95
95
  if (t.value) {
96
96
  if (l.soundEffectSource) {
97
97
  t.value.volume = 1;
@@ -101,31 +101,31 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
101
101
  }
102
102
  }, x = () => {
103
103
  const y = l.playbackSpeed ?? 1;
104
- g.value && (g.value.playbackRate = y), t.value && (t.value.playbackRate = y), u.value && (u.value.playbackRate = y), n.value && (n.value.playbackRate = y);
104
+ p.value && (p.value.playbackRate = y), t.value && (t.value.playbackRate = y), u.value && (u.value.playbackRate = y), n.value && (n.value.playbackRate = y);
105
105
  };
106
106
  _([() => l.currentLang, () => l.defaultLang, () => l.videoSource, () => l.audioSource], () => {
107
- v();
107
+ m();
108
108
  }), _(
109
109
  () => l.playbackSpeed,
110
110
  () => {
111
111
  x();
112
112
  }
113
113
  ), _(t, (y) => {
114
- y && (v(), x());
115
- }), _([g, u, n], () => {
114
+ y && (m(), x());
115
+ }), _([p, u, n], () => {
116
116
  x();
117
117
  }), ae(() => {
118
- v(), x();
118
+ m(), x();
119
119
  });
120
- const C = $(!1), b = $(!1), P = B(() => m.value || b.value);
120
+ const C = $(!1), b = $(!1), P = B(() => f.value || b.value);
121
121
  let w = null;
122
122
  const V = () => {
123
123
  w && (w.abort(), w = null);
124
124
  }, W = () => {
125
- m.value = !0, u.value && t.value && !u.value.ended && (u.value.currentTime = t.value.currentTime, u.value.play().catch(() => {
126
- })), p("play");
125
+ f.value = !0, u.value && t.value && !u.value.ended && (u.value.currentTime = t.value.currentTime, u.value.play().catch(() => {
126
+ })), h("play");
127
127
  }, J = (y) => {
128
- b.value || t.value?.ended && u.value && !u.value.ended || (document.hidden || (m.value = !1), !t.value?.ended && u?.value && u.value?.pause(), j(y));
128
+ b.value || t.value?.ended && u.value && !u.value.ended || (document.hidden || (f.value = !1), !t.value?.ended && u?.value && u.value?.pause(), j(y));
129
129
  }, H = () => {
130
130
  if (C.value) return;
131
131
  (!u.value || u.value.ended) && U();
@@ -137,35 +137,35 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
137
137
  const y = Math.min(u.value.currentTime, t.value.duration);
138
138
  Math.abs(t.value.currentTime - y) > 0.5 && (t.value.currentTime = y);
139
139
  }, K = () => {
140
- m.value = !0, t.value && !t.value.ended && t.value.play().catch(() => {
141
- }), p("play");
140
+ f.value = !0, t.value && !t.value.ended && t.value.play().catch(() => {
141
+ }), h("play");
142
142
  }, E = () => {
143
- b.value || u.value?.ended || (document.hidden || (m.value = !1), t.value && !t.value.ended && t.value.pause(), p("pause"));
143
+ b.value || u.value?.ended || (document.hidden || (f.value = !1), t.value && !t.value.ended && t.value.pause(), h("pause"));
144
144
  }, G = () => {
145
- m.value = !0, p("play");
145
+ f.value = !0, h("play");
146
146
  }, j = (y) => {
147
147
  if (b.value) return;
148
- document.hidden || (m.value = !1);
148
+ document.hidden || (f.value = !1);
149
149
  const c = y.target;
150
- c.duration !== c.currentTime && p("pause");
150
+ c.duration !== c.currentTime && h("pause");
151
151
  }, U = () => {
152
- C.value || (C.value = !0, m.value = !1, p("ended"));
152
+ C.value || (C.value = !0, f.value = !1, h("ended"));
153
153
  }, s = () => {
154
- g.value?.pause(), t.value?.pause(), u.value?.pause(), n.value?.pause();
155
- }, m = $(!1);
154
+ p.value?.pause(), t.value?.pause(), u.value?.pause(), n.value?.pause();
155
+ }, f = $(!1);
156
156
  let S = null;
157
157
  const M = async () => {
158
- if (b.value = !1, C.value = !1, m.value = !0, g.value && (x(), g.value.play().catch(() => {
159
- })), t.value && (v(), x(), t.value.play().catch(() => {
158
+ if (b.value = !1, C.value = !1, f.value = !0, p.value && (x(), p.value.play().catch(() => {
159
+ })), t.value && (m(), x(), t.value.play().catch(() => {
160
160
  }), u.value && (u.value.currentTime = t.value.currentTime, u.value.play().catch(() => {
161
161
  }))), n.value && (x(), n.value.play().catch(() => {
162
- })), !g.value && !t.value && !n.value)
162
+ })), !p.value && !t.value && !n.value)
163
163
  try {
164
- V(), w = new AbortController(), await ye((l.duration ?? 0) * 1e3, w.signal), w = null, C.value || (m.value = !1, C.value = !0, p("ended"));
164
+ V(), w = new AbortController(), await ye((l.duration ?? 0) * 1e3, w.signal), w = null, C.value || (f.value = !1, C.value = !0, h("ended"));
165
165
  } catch {
166
166
  }
167
167
  }, re = () => {
168
- b.value = !0, m.value = !1, C.value = !0, V(), g.value?.pause(), t.value?.pause(), u.value?.pause(), n.value?.pause();
168
+ b.value = !0, f.value = !1, C.value = !0, V(), p.value?.pause(), t.value?.pause(), u.value?.pause(), n.value?.pause();
169
169
  }, de = () => {
170
170
  !u.value || !t.value || u.value.ended || Math.abs(u.value.currentTime - t.value.currentTime) > 0.5 && (u.value.currentTime = t.value.currentTime);
171
171
  }, O = (y) => {
@@ -175,16 +175,16 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
175
175
  c.paused && !c.ended && (y.ended || (c.currentTime = y.currentTime), c.play().catch(() => {
176
176
  }));
177
177
  }, ee = () => {
178
- m.value && (O(g.value), t.value && u.value ? (O(t.value), ce(t.value, u.value)) : O(t.value), O(n.value));
178
+ f.value && (O(p.value), t.value && u.value ? (O(t.value), ce(t.value, u.value)) : O(t.value), O(n.value));
179
179
  }, te = () => {
180
- document.hidden && m.value ? S || (S = setInterval(ee, 500)) : document.hidden || S && (clearInterval(S), S = null);
180
+ document.hidden && f.value ? S || (S = setInterval(ee, 500)) : document.hidden || S && (clearInterval(S), S = null);
181
181
  }, T = () => {
182
- document.hidden && m.value && setTimeout(ee, 50);
182
+ document.hidden && f.value && setTimeout(ee, 50);
183
183
  };
184
184
  return ae(() => {
185
- document.addEventListener("visibilitychange", te), g.value?.addEventListener("pause", T), t.value?.addEventListener("pause", T), n.value?.addEventListener("pause", T), u.value?.addEventListener("pause", T);
185
+ document.addEventListener("visibilitychange", te), p.value?.addEventListener("pause", T), t.value?.addEventListener("pause", T), n.value?.addEventListener("pause", T), u.value?.addEventListener("pause", T);
186
186
  }), ve(() => {
187
- document.removeEventListener("visibilitychange", te), g.value?.removeEventListener("pause", T), t.value?.removeEventListener("pause", T), n.value?.removeEventListener("pause", T), u.value?.removeEventListener("pause", T), S && (clearInterval(S), S = null), V();
187
+ document.removeEventListener("visibilitychange", te), p.value?.removeEventListener("pause", T), t.value?.removeEventListener("pause", T), n.value?.removeEventListener("pause", T), u.value?.removeEventListener("pause", T), S && (clearInterval(S), S = null), V();
188
188
  }), d({
189
189
  play: M,
190
190
  stop: re
@@ -192,7 +192,7 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
192
192
  a.videoWithAudioSource ? (i(), r("div", be, [
193
193
  e("video", {
194
194
  ref_key: "videoWithAudioRef",
195
- ref: g,
195
+ ref: p,
196
196
  src: a.videoWithAudioSource,
197
197
  class: "mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",
198
198
  controls: !0,
@@ -219,13 +219,13 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
219
219
  ref: t,
220
220
  class: "mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",
221
221
  src: a.soundEffectSource || a.videoSource,
222
- controls: !f.value,
222
+ controls: !v.value,
223
223
  playsinline: "true",
224
224
  onPlay: W,
225
225
  onPause: J,
226
226
  onEnded: H,
227
227
  onSeeked: de,
228
- onLoadedmetadata: h
228
+ onLoadedmetadata: g
229
229
  }, null, 40, Pe),
230
230
  a.audioSource ? (i(), r("audio", {
231
231
  key: 0,
@@ -233,12 +233,12 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
233
233
  ref: u,
234
234
  src: a.audioSource,
235
235
  controls: !0,
236
- class: ne(f.value ? "mulmocast-audio absolute bottom-0 left-0 w-full" : "hidden"),
236
+ class: ne(v.value ? "mulmocast-audio absolute bottom-0 left-0 w-full" : "hidden"),
237
237
  onEnded: A,
238
238
  onSeeked: F,
239
239
  onPlay: K,
240
240
  onPause: E,
241
- onLoadedmetadata: h
241
+ onLoadedmetadata: g
242
242
  }, null, 42, Ce)) : k("", !0),
243
243
  e("div", Ee, [
244
244
  e("button", {
@@ -312,8 +312,8 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
312
312
  }
313
313
  }), ue = (a, d) => {
314
314
  const o = a.__vccOpts || a;
315
- for (const [l, p] of d)
316
- o[l] = p;
315
+ for (const [l, h] of d)
316
+ o[l] = h;
317
317
  return o;
318
318
  }, Y = /* @__PURE__ */ ue(Je, [["__scopeId", "data-v-843621f0"]]), Ke = ["value"], Qe = ["value"], N = /* @__PURE__ */ R({
319
319
  __name: "select_language",
@@ -325,14 +325,14 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
325
325
  const o = ["en", "ja"], l = {
326
326
  en: "English",
327
327
  ja: "日本語"
328
- }, p = d, g = (t) => {
328
+ }, h = d, p = (t) => {
329
329
  const u = t.target;
330
- p("update:modelValue", u.value);
330
+ h("update:modelValue", u.value);
331
331
  };
332
332
  return (t, u) => (i(), r("select", {
333
333
  value: a.modelValue,
334
334
  class: "px-4 py-2 bg-white border-2 border-gray-300 rounded-lg shadow-sm hover:border-indigo-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 focus:outline-none transition-colors cursor-pointer text-base font-medium text-gray-700",
335
- onChange: g
335
+ onChange: p
336
336
  }, [
337
337
  (i(), r(D, null, Z(o, (n) => e("option", {
338
338
  key: n,
@@ -358,18 +358,18 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
358
358
  },
359
359
  emits: ["updatedPage", "update:audioLang", "update:textLang", "allCompleted"],
360
360
  setup(a, { expose: d, emit: o }) {
361
- const l = a, p = o, g = l.dataSet?.beats?.length ?? 0, t = $(l.initPage ?? 0), u = $(!0), n = $(), f = $(), h = B({
361
+ const l = a, h = o, p = l.dataSet?.beats?.length ?? 0, t = $(l.initPage ?? 0), u = $(!0), n = $(), v = $(), g = B({
362
362
  get: () => l.audioLang,
363
- set: (s) => p("update:audioLang", s || "en")
364
- }), v = B({
363
+ set: (s) => h("update:audioLang", s || "en")
364
+ }), m = B({
365
365
  get: () => l.textLang,
366
- set: (s) => p("update:textLang", s || "en")
366
+ set: (s) => h("update:textLang", s || "en")
367
367
  });
368
368
  let x = 0;
369
369
  _(
370
370
  () => l.audioLang,
371
- async (s, m) => {
372
- if (s !== m && w.value) {
371
+ async (s, f) => {
372
+ if (s !== f && w.value) {
373
373
  x++;
374
374
  const S = x;
375
375
  if (n.value?.stop(), await X(500), S !== x) return;
@@ -378,16 +378,16 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
378
378
  }
379
379
  ), _(
380
380
  () => l.textLang,
381
- async (s, m) => {
382
- s !== m && w.value && (await X(100), n.value && await n.value.play());
381
+ async (s, f) => {
382
+ s !== f && w.value && (await X(100), n.value && await n.value.play());
383
383
  }
384
- ), _(f, (s) => {
384
+ ), _(v, (s) => {
385
385
  s && (s.volume = 0.3);
386
386
  });
387
387
  const C = B(() => l.dataSet?.beats[t.value]), b = (s) => s ? l.basePath + "/" + s : "", P = B(() => b(l.dataSet?.bgmSource)), w = $(!1), V = () => {
388
- w.value = !0, f.value && (f.value.volume = 0.3, f.value.play());
388
+ w.value = !0, v.value && (v.value.volume = 0.3, v.value.play());
389
389
  }, W = () => {
390
- w.value = !1, f.value && f.value.pause();
390
+ w.value = !1, v.value && v.value.pause();
391
391
  }, J = async () => {
392
392
  x++;
393
393
  const s = x;
@@ -395,53 +395,53 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
395
395
  }, H = (s) => {
396
396
  t.value !== s && (t.value = s, w.value && u.value && J());
397
397
  }, A = (s) => {
398
- const m = t.value + s;
399
- return m > -1 && m < g ? (H(m), p("updatedPage", m), !0) : !1;
398
+ const f = t.value + s;
399
+ return f > -1 && f < p ? (H(f), h("updatedPage", f), !0) : !1;
400
400
  }, F = () => {
401
- u.value && A(1) || (w.value = !1, f.value && f.value.pause(), p("allCompleted"));
401
+ u.value && A(1) || (w.value = !1, v.value && v.value.pause(), h("allCompleted"));
402
402
  }, K = {
403
403
  onPlay: V,
404
404
  onPause: W,
405
405
  onEnded: F
406
406
  }, E = B(() => {
407
- const s = C.value, m = s?.audioSources?.[h.value], S = s?.multiLinguals?.[v.value] ?? s?.text ?? "", M = l.dataSet?.lang ? s?.multiLinguals?.[l.dataSet.lang] ?? s?.text ?? "" : "";
407
+ const s = C.value, f = s?.audioSources?.[g.value], S = s?.multiLinguals?.[m.value] ?? s?.text ?? "", M = l.dataSet?.lang ? s?.multiLinguals?.[l.dataSet.lang] ?? s?.text ?? "" : "";
408
408
  return {
409
409
  videoWithAudioSource: b(s?.videoWithAudioSource),
410
410
  videoSource: b(s?.videoSource),
411
411
  soundEffectSource: b(s?.soundEffectSource),
412
- audioSource: b(m),
412
+ audioSource: b(f),
413
413
  imageSource: b(s?.imageSource),
414
414
  index: t.value,
415
415
  text: S,
416
416
  originalText: M,
417
417
  duration: s?.duration,
418
418
  defaultLang: l.dataSet?.lang,
419
- currentLang: h.value,
419
+ currentLang: g.value,
420
420
  playbackSpeed: l.playbackSpeed,
421
421
  ...K
422
422
  };
423
423
  }), G = B(() => l.dataSet?.beats[t.value + 1]), j = B(() => {
424
- if (t.value + 1 >= g) return null;
424
+ if (t.value + 1 >= p) return null;
425
425
  const s = G.value;
426
426
  return {
427
427
  videoWithAudioSource: b(s?.videoWithAudioSource),
428
428
  videoSource: b(s?.videoSource),
429
429
  soundEffectSource: b(s?.soundEffectSource),
430
- audioSource: b(s?.audioSources?.[h.value]),
430
+ audioSource: b(s?.audioSources?.[g.value]),
431
431
  imageSource: b(s?.imageSource),
432
432
  index: t.value + 1,
433
- text: s?.multiLinguals?.[v.value] ?? s?.text ?? "",
433
+ text: s?.multiLinguals?.[m.value] ?? s?.text ?? "",
434
434
  duration: s?.duration
435
435
  };
436
436
  }), U = B(() => ({
437
437
  MulmoPlayer: Y,
438
438
  pageProps: E.value,
439
439
  currentPage: t.value,
440
- pageCount: g,
440
+ pageCount: p,
441
441
  pageMove: A,
442
442
  isPlaying: w.value,
443
- audioLang: h,
444
- textLang: v,
443
+ audioLang: g,
444
+ textLang: m,
445
445
  SelectLanguage: N,
446
446
  mediaPlayerRef: n,
447
447
  // Event handlers for direct access
@@ -451,7 +451,7 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
451
451
  }));
452
452
  return d({
453
453
  updatePage: H
454
- }), (s, m) => (i(), r(D, null, [
454
+ }), (s, f) => (i(), r(D, null, [
455
455
  q(s.$slots, "default", oe(me(U.value)), () => [
456
456
  e("div", Xe, [
457
457
  e("div", Ye, [
@@ -459,7 +459,7 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
459
459
  e("button", {
460
460
  class: "col-start-1 row-start-1 justify-self-start w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:row-start-2",
461
461
  disabled: t.value === 0,
462
- onClick: m[0] || (m[0] = (S) => A(-1))
462
+ onClick: f[0] || (f[0] = (S) => A(-1))
463
463
  }, " Prev ", 8, Ie),
464
464
  e("div", et, [
465
465
  z(Y, le({
@@ -469,8 +469,8 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
469
469
  ]),
470
470
  e("button", {
471
471
  class: "col-start-3 row-start-1 justify-self-end w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:col-start-2 max-sm:row-start-2",
472
- disabled: t.value >= fe(g) - 1,
473
- onClick: m[1] || (m[1] = (S) => A(1))
472
+ disabled: t.value >= fe(p) - 1,
473
+ onClick: f[1] || (f[1] = (S) => A(1))
474
474
  }, " Next ", 8, tt),
475
475
  E.value.text ? (i(), r("div", at, [
476
476
  e("p", ot, L(E.value.text), 1),
@@ -486,12 +486,12 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
486
486
  P.value ? (i(), r("audio", {
487
487
  key: 1,
488
488
  ref_key: "bgmRef",
489
- ref: f,
489
+ ref: v,
490
490
  src: P.value
491
491
  }, null, 8, nt)) : k("", !0)
492
492
  ], 64));
493
493
  }
494
- }), Rt = /* @__PURE__ */ ue(st, [["__scopeId", "data-v-fdffe885"]]), it = { class: "container mx-auto px-4 py-2 sm:py-4" }, ut = { class: "flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4" }, rt = { class: "flex items-center gap-4 flex-wrap" }, dt = { class: "flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto" }, ct = {
494
+ }), Rt = /* @__PURE__ */ ue(st, [["__scopeId", "data-v-46289647"]]), it = { class: "container mx-auto px-4 py-2 sm:py-4" }, ut = { class: "flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4" }, rt = { class: "flex items-center gap-4 flex-wrap" }, dt = { class: "flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto" }, ct = {
495
495
  key: 0,
496
496
  class: "hidden sm:flex items-center gap-3"
497
497
  }, vt = ["value"], mt = {
@@ -629,34 +629,34 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
629
629
  },
630
630
  emits: ["beat-click"],
631
631
  setup(a, { emit: d }) {
632
- const o = a, l = d, p = (n) => {
633
- const f = Math.floor(n / 3600), h = Math.floor(n % 3600 / 60), v = Math.floor(n % 60);
634
- return f > 0 ? `${f}:${h.toString().padStart(2, "0")}:${v.toString().padStart(2, "0")}` : `${h}:${v.toString().padStart(2, "0")}`;
635
- }, g = (n) => n.multiLinguals?.[o.textLang] || n.text || "No text available", t = (n) => `${o.basePath}/${n + 1}.jpg`, u = (n, f) => {
636
- o.linkComponent === "a" && o.linkUrlBuilder && f.preventDefault(), l("beat-click", n);
632
+ const o = a, l = d, h = (n) => {
633
+ const v = Math.floor(n / 3600), g = Math.floor(n % 3600 / 60), m = Math.floor(n % 60);
634
+ return v > 0 ? `${v}:${g.toString().padStart(2, "0")}:${m.toString().padStart(2, "0")}` : `${g}:${m.toString().padStart(2, "0")}`;
635
+ }, p = (n) => n.multiLinguals?.[o.textLang] || n.text || "No text available", t = (n, v) => n.imageSource ? `${o.basePath}/${n.imageSource}` : `${o.basePath}/${v + 1}.jpg`, u = (n, v) => {
636
+ o.linkComponent === "a" && o.linkUrlBuilder && v.preventDefault(), l("beat-click", n);
637
637
  };
638
- return (n, f) => (i(), r("div", bt, [
639
- (i(!0), r(D, null, Z(a.beats, ({ beat: h, originalIndex: v }) => (i(), I(se(a.linkComponent), {
640
- key: v,
641
- to: a.linkUrlBuilder ? a.linkUrlBuilder(v) : void 0,
642
- href: a.linkUrlBuilder ? a.linkUrlBuilder(v) : void 0,
638
+ return (n, v) => (i(), r("div", bt, [
639
+ (i(!0), r(D, null, Z(a.beats, ({ beat: g, originalIndex: m }) => (i(), I(se(a.linkComponent), {
640
+ key: m,
641
+ to: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
642
+ href: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
643
643
  class: "group block bg-white rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 overflow-hidden",
644
- onClick: (x) => u(v, x)
644
+ onClick: (x) => u(m, x)
645
645
  }, {
646
646
  default: ie(() => [
647
647
  e("div", kt, [
648
648
  e("img", {
649
- src: t(v),
650
- alt: `Beat ${v + 1}`,
649
+ src: t(g, m),
650
+ alt: `Beat ${m + 1}`,
651
651
  class: "w-full h-full object-cover"
652
652
  }, null, 8, wt),
653
- e("div", St, L(v + 1), 1)
653
+ e("div", St, L(m + 1), 1)
654
654
  ]),
655
655
  e("div", $t, [
656
- e("p", Lt, L(g(h)), 1),
656
+ e("p", Lt, L(p(g)), 1),
657
657
  e("div", Pt, [
658
- h.startTime !== void 0 ? (i(), r("p", Ct, "Start: " + L(p(h.startTime)), 1)) : k("", !0),
659
- h.duration ? (i(), r("p", Et, "Duration: " + L(p(h.duration)), 1)) : k("", !0)
658
+ g.startTime !== void 0 ? (i(), r("p", Ct, "Start: " + L(h(g.startTime)), 1)) : k("", !0),
659
+ g.duration ? (i(), r("p", Et, "Duration: " + L(h(g.duration)), 1)) : k("", !0)
660
660
  ])
661
661
  ])
662
662
  ]),
@@ -681,40 +681,40 @@ const X = async (a) => await new Promise((d) => setTimeout(d, a)), ye = (a, d) =
681
681
  },
682
682
  emits: ["beat-click"],
683
683
  setup(a, { emit: d }) {
684
- const o = a, l = d, p = (n) => {
685
- const f = Math.floor(n / 3600), h = Math.floor(n % 3600 / 60), v = Math.floor(n % 60);
686
- return f > 0 ? `${f}:${h.toString().padStart(2, "0")}:${v.toString().padStart(2, "0")}` : `${h}:${v.toString().padStart(2, "0")}`;
687
- }, g = (n) => n.multiLinguals?.[o.textLang] || n.text || "No text available", t = (n) => `${o.basePath}/${n + 1}.jpg`, u = (n, f) => {
688
- o.linkComponent === "a" && o.linkUrlBuilder && f.preventDefault(), l("beat-click", n);
684
+ const o = a, l = d, h = (n) => {
685
+ const v = Math.floor(n / 3600), g = Math.floor(n % 3600 / 60), m = Math.floor(n % 60);
686
+ return v > 0 ? `${v}:${g.toString().padStart(2, "0")}:${m.toString().padStart(2, "0")}` : `${g}:${m.toString().padStart(2, "0")}`;
687
+ }, p = (n) => n.multiLinguals?.[o.textLang] || n.text || "No text available", t = (n, v) => n.imageSource ? `${o.basePath}/${n.imageSource}` : `${o.basePath}/${v + 1}.jpg`, u = (n, v) => {
688
+ o.linkComponent === "a" && o.linkUrlBuilder && v.preventDefault(), l("beat-click", n);
689
689
  };
690
- return (n, f) => (i(), r("div", Bt, [
691
- (i(!0), r(D, null, Z(a.beats, ({ beat: h, originalIndex: v }) => (i(), r("div", {
692
- id: `beat-${v}`,
693
- key: v,
690
+ return (n, v) => (i(), r("div", Bt, [
691
+ (i(!0), r(D, null, Z(a.beats, ({ beat: g, originalIndex: m }) => (i(), r("div", {
692
+ id: `beat-${m}`,
693
+ key: m,
694
694
  class: "bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"
695
695
  }, [
696
696
  (i(), I(se(a.linkComponent), {
697
- to: a.linkUrlBuilder ? a.linkUrlBuilder(v) : void 0,
698
- href: a.linkUrlBuilder ? a.linkUrlBuilder(v) : void 0,
697
+ to: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
698
+ href: a.linkUrlBuilder ? a.linkUrlBuilder(m) : void 0,
699
699
  class: "float-left mr-4 mb-2 w-64 flex-shrink-0",
700
- onClick: (x) => u(v, x)
700
+ onClick: (x) => u(m, x)
701
701
  }, {
702
702
  default: ie(() => [
703
703
  e("div", Mt, [
704
- e("span", _t, " #" + L(v + 1), 1),
705
- h.startTime !== void 0 ? (i(), r("span", Vt, " Start: " + L(p(h.startTime)), 1)) : k("", !0),
706
- h.duration ? (i(), r("span", At, " Duration: " + L(p(h.duration)), 1)) : k("", !0)
704
+ e("span", _t, " #" + L(m + 1), 1),
705
+ g.startTime !== void 0 ? (i(), r("span", Vt, " Start: " + L(h(g.startTime)), 1)) : k("", !0),
706
+ g.duration ? (i(), r("span", At, " Duration: " + L(h(g.duration)), 1)) : k("", !0)
707
707
  ]),
708
708
  e("img", {
709
- src: t(v),
710
- alt: `Beat ${v + 1}`,
709
+ src: t(g, m),
710
+ alt: `Beat ${m + 1}`,
711
711
  class: "w-full h-auto object-cover rounded-lg hover:opacity-80 transition-opacity shadow-sm"
712
712
  }, null, 8, jt)
713
713
  ]),
714
714
  _: 2
715
715
  }, 1032, ["to", "href", "onClick"])),
716
- e("p", Ut, L(g(h)), 1),
717
- f[0] || (f[0] = e("div", { class: "clear-both" }, null, -1))
716
+ e("p", Ut, L(p(g)), 1),
717
+ v[0] || (v[0] = e("div", { class: "clear-both" }, null, -1))
718
718
  ], 8, Tt))), 128))
719
719
  ]));
720
720
  }
@@ -1 +1 @@
1
- (function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b.MulmoCastViewer={},b.Vue))})(this,(function(b,e){"use strict";const j=async o=>await new Promise(r=>setTimeout(r,o)),O=(o,r)=>{const a=l=>l instanceof Error?l:new Error("Aborted");return new Promise((l,p)=>{if(r.aborted){p(a(r.reason));return}const f=()=>{clearTimeout(t),p(a(r.reason))},t=setTimeout(()=>{r.removeEventListener("abort",f),l()},o);r.addEventListener("abort",f,{once:!0})})},q={class:"items-center justify-center w-full"},J={key:0,class:"group relative"},K=["src"],Q={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},X={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},Y={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},Z={key:1,class:"group relative inline-block"},I=["src","controls"],ee=["src"],te={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},oe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},ae={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},le={key:2,class:"group relative inline-block"},ne=["src"],se=["src"],ie={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},re={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},de={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ce={key:3,class:"group relative inline-block"},ue=["src"],me={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},fe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},pe={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ge={key:4},ye={key:5,class:"mt-4 px-6 py-4 text-left"},he={class:"text-lg leading-relaxed font-sans text-gray-800"},ke={key:0,class:"text-base leading-relaxed font-sans text-gray-400 mt-3 italic"},xe="https://github.com/receptron/mulmocast-cli/blob/main/assets/images/mulmocast_credit.png?raw=true",ve=e.defineComponent({__name:"mulmo_player",props:{index:{},videoWithAudioSource:{default:void 0},soundEffectSource:{default:void 0},videoSource:{default:void 0},imageSource:{default:void 0},audioSource:{default:void 0},text:{default:void 0},originalText:{default:void 0},duration:{default:void 0},defaultLang:{default:void 0},currentLang:{default:void 0},playbackSpeed:{default:1}},emits:["play","pause","ended"],setup(o,{expose:r,emit:a}){const l=o,p=a,f=e.ref(),t=e.ref(),i=e.ref(),n=e.ref(),m=e.ref(!1),g=()=>{t.value&&i.value&&!isNaN(t.value.duration)&&!isNaN(i.value.duration)&&(m.value=i.value.duration>t.value.duration+1)},c=()=>{if(t.value){if(l.soundEffectSource){t.value.volume=1;return}l.videoSource&&(l.audioSource&&l.currentLang&&l.defaultLang&&l.currentLang!==l.defaultLang?t.value.volume=.2:t.value.volume=0)}},h=()=>{const y=l.playbackSpeed??1;f.value&&(f.value.playbackRate=y),t.value&&(t.value.playbackRate=y),i.value&&(i.value.playbackRate=y),n.value&&(n.value.playbackRate=y)};e.watch([()=>l.currentLang,()=>l.defaultLang,()=>l.videoSource,()=>l.audioSource],()=>{c()}),e.watch(()=>l.playbackSpeed,()=>{h()}),e.watch(t,y=>{y&&(c(),h())}),e.watch([f,i,n],()=>{h()}),e.onMounted(()=>{c(),h()});const w=e.ref(!1),k=e.ref(!1),E=e.computed(()=>u.value||k.value);let x=null;const $=()=>{x&&(x.abort(),x=null)},T=()=>{u.value=!0,i.value&&t.value&&!i.value.ended&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{})),p("play")},z=y=>{k.value||t.value?.ended&&i.value&&!i.value.ended||(document.hidden||(u.value=!1),!t.value?.ended&&i?.value&&i.value?.pause(),L(y))},M=()=>{if(w.value)return;(!i.value||i.value.ended)&&P()},C=()=>{if(w.value)return;(!t.value||t.value.ended)&&P()},_=()=>{if(!t.value||!i.value)return;const y=Math.min(i.value.currentTime,t.value.duration);Math.abs(t.value.currentTime-y)>.5&&(t.value.currentTime=y)},R=()=>{u.value=!0,t.value&&!t.value.ended&&t.value.play().catch(()=>{}),p("play")},S=()=>{k.value||i.value?.ended||(document.hidden||(u.value=!1),t.value&&!t.value.ended&&t.value.pause(),p("pause"))},D=()=>{u.value=!0,p("play")},L=y=>{if(k.value)return;document.hidden||(u.value=!1);const d=y.target;d.duration!==d.currentTime&&p("pause")},P=()=>{w.value||(w.value=!0,u.value=!1,p("ended"))},s=()=>{f.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},u=e.ref(!1);let v=null;const V=async()=>{if(k.value=!1,w.value=!1,u.value=!0,f.value&&(h(),f.value.play().catch(()=>{})),t.value&&(c(),h(),t.value.play().catch(()=>{}),i.value&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{}))),n.value&&(h(),n.value.play().catch(()=>{})),!f.value&&!t.value&&!n.value)try{$(),x=new AbortController,await O((l.duration??0)*1e3,x.signal),x=null,w.value||(u.value=!1,w.value=!0,p("ended"))}catch{}},ft=()=>{k.value=!0,u.value=!1,w.value=!0,$(),f.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},pt=()=>{!i.value||!t.value||i.value.ended||Math.abs(i.value.currentTime-t.value.currentTime)>.5&&(i.value.currentTime=t.value.currentTime)},A=y=>{y?.paused&&!y.ended&&y.play().catch(()=>{})},gt=(y,d)=>{d.paused&&!d.ended&&(y.ended||(d.currentTime=y.currentTime),d.play().catch(()=>{}))},H=()=>{u.value&&(A(f.value),t.value&&i.value?(A(t.value),gt(t.value,i.value)):A(t.value),A(n.value))},G=()=>{document.hidden&&u.value?v||(v=setInterval(H,500)):document.hidden||v&&(clearInterval(v),v=null)},B=()=>{document.hidden&&u.value&&setTimeout(H,50)};return e.onMounted(()=>{document.addEventListener("visibilitychange",G),f.value?.addEventListener("pause",B),t.value?.addEventListener("pause",B),n.value?.addEventListener("pause",B),i.value?.addEventListener("pause",B)}),e.onUnmounted(()=>{document.removeEventListener("visibilitychange",G),f.value?.removeEventListener("pause",B),t.value?.removeEventListener("pause",B),n.value?.removeEventListener("pause",B),i.value?.removeEventListener("pause",B),v&&(clearInterval(v),v=null),$()}),r({play:V,stop:ft}),(y,d)=>(e.openBlock(),e.createElementBlock("div",q,[o.videoWithAudioSource?(e.openBlock(),e.createElementBlock("div",J,[e.createElementVNode("video",{ref_key:"videoWithAudioRef",ref:f,src:o.videoWithAudioSource,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",controls:!0,playsinline:"true",onPlay:D,onPause:L,onEnded:P},null,40,K),e.createElementVNode("div",Q,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[0]||(d[0]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",Y,[...d[5]||(d[5]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",X,[...d[4]||(d[4]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.soundEffectSource||o.videoSource?(e.openBlock(),e.createElementBlock("div",Z,[e.createElementVNode("video",{ref_key:"videoRef",ref:t,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",src:o.soundEffectSource||o.videoSource,controls:!m.value,playsinline:"true",onPlay:T,onPause:z,onEnded:M,onSeeked:pt,onLoadedmetadata:g},null,40,I),o.audioSource?(e.openBlock(),e.createElementBlock("audio",{key:0,ref_key:"audioSyncRef",ref:i,src:o.audioSource,controls:!0,class:e.normalizeClass(m.value?"mulmocast-audio absolute bottom-0 left-0 w-full":"hidden"),onEnded:C,onSeeked:_,onPlay:R,onPause:S,onLoadedmetadata:g},null,42,ee)):e.createCommentVNode("",!0),e.createElementVNode("div",te,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[1]||(d[1]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",ae,[...d[7]||(d[7]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",oe,[...d[6]||(d[6]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.audioSource?(e.openBlock(),e.createElementBlock("div",le,[o.imageSource?(e.openBlock(),e.createElementBlock("img",{key:0,src:o.imageSource,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"},null,8,ne)):(e.openBlock(),e.createElementBlock("img",{key:1,src:xe,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"})),e.createElementVNode("audio",{ref_key:"audioRef",ref:n,class:"mulmocast-audio absolute inset-0 w-full h-full",src:o.audioSource,controls:!0,onPlay:D,onPause:L,onEnded:P},null,40,se),e.createElementVNode("div",ie,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[2]||(d[2]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",de,[...d[9]||(d[9]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",re,[...d[8]||(d[8]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.imageSource?(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("img",{src:o.imageSource,class:"max-w-full max-h-full object-contain"},null,8,ue),e.createElementVNode("div",me,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[3]||(d[3]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",pe,[...d[11]||(d[11]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",fe,[...d[10]||(d[10]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):(e.openBlock(),e.createElementBlock("div",ge,"No media available")),o.text?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("p",he,e.toDisplayString(o.text),1),o.originalText&&o.originalText!==o.text?(e.openBlock(),e.createElementBlock("p",ke,e.toDisplayString(o.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),W=(o,r)=>{const a=o.__vccOpts||o;for(const[l,p]of r)a[l]=p;return a},U=W(ve,[["__scopeId","data-v-843621f0"]]),be=["value"],Ee=["value"],N=e.defineComponent({__name:"select_language",props:{modelValue:{}},emits:["update:modelValue"],setup(o,{emit:r}){const a=["en","ja"],l={en:"English",ja:"日本語"},p=r,f=t=>{const i=t.target;p("update:modelValue",i.value)};return(t,i)=>(e.openBlock(),e.createElementBlock("select",{value:o.modelValue,class:"px-4 py-2 bg-white border-2 border-gray-300 rounded-lg shadow-sm hover:border-indigo-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 focus:outline-none transition-colors cursor-pointer text-base font-medium text-gray-700",onChange:f},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,n=>e.createElementVNode("option",{key:n,value:n},e.toDisplayString(l[n]||n),9,Ee)),64))],40,be))}}),we={class:"w-full overflow-hidden"},Se={class:"max-w-7xl mx-auto px-4"},Be={class:"grid grid-cols-[auto,1fr,auto] gap-x-4 gap-y-4 max-sm:grid-cols-2"},Ve=["disabled"],Ne={class:"col-start-2 row-start-1 min-w-0 max-sm:col-span-2 max-sm:col-start-1"},$e=["disabled"],Ce={key:0,class:"mulmo-text-box col-start-2 row-start-2 min-w-0 mt-1 rounded-lg px-6 py-4 text-left max-sm:col-span-2 max-sm:col-start-1 max-sm:row-start-3"},Le={class:"mulmo-text-primary text-lg leading-relaxed font-sans"},Pe={key:0,class:"mulmo-text-secondary text-base leading-relaxed font-sans mt-3 italic"},Te=["src"],Me=W(e.defineComponent({__name:"mulmo_viewer",props:{dataSet:{default:void 0},basePath:{},initPage:{default:void 0},audioLang:{default:"en"},textLang:{default:"en"},playbackSpeed:{default:1}},emits:["updatedPage","update:audioLang","update:textLang","allCompleted"],setup(o,{expose:r,emit:a}){const l=o,p=a,f=l.dataSet?.beats?.length??0,t=e.ref(l.initPage??0),i=e.ref(!0),n=e.ref(),m=e.ref(),g=e.computed({get:()=>l.audioLang,set:s=>p("update:audioLang",s||"en")}),c=e.computed({get:()=>l.textLang,set:s=>p("update:textLang",s||"en")});let h=0;e.watch(()=>l.audioLang,async(s,u)=>{if(s!==u&&x.value){h++;const v=h;if(n.value?.stop(),await j(500),v!==h)return;n.value&&(x.value=!0,await n.value.play())}}),e.watch(()=>l.textLang,async(s,u)=>{s!==u&&x.value&&(await j(100),n.value&&await n.value.play())}),e.watch(m,s=>{s&&(s.volume=.3)});const w=e.computed(()=>l.dataSet?.beats[t.value]),k=s=>s?l.basePath+"/"+s:"",E=e.computed(()=>k(l.dataSet?.bgmSource)),x=e.ref(!1),$=()=>{x.value=!0,m.value&&(m.value.volume=.3,m.value.play())},T=()=>{x.value=!1,m.value&&m.value.pause()},z=async()=>{h++;const s=h;n.value?.stop(),await j(500),s===h&&n.value&&n.value.play()},M=s=>{t.value!==s&&(t.value=s,x.value&&i.value&&z())},C=s=>{const u=t.value+s;return u>-1&&u<f?(M(u),p("updatedPage",u),!0):!1},_=()=>{i.value&&C(1)||(x.value=!1,m.value&&m.value.pause(),p("allCompleted"))},R={onPlay:$,onPause:T,onEnded:_},S=e.computed(()=>{const s=w.value,u=s?.audioSources?.[g.value],v=s?.multiLinguals?.[c.value]??s?.text??"",V=l.dataSet?.lang?s?.multiLinguals?.[l.dataSet.lang]??s?.text??"":"";return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(u),imageSource:k(s?.imageSource),index:t.value,text:v,originalText:V,duration:s?.duration,defaultLang:l.dataSet?.lang,currentLang:g.value,playbackSpeed:l.playbackSpeed,...R}}),D=e.computed(()=>l.dataSet?.beats[t.value+1]),L=e.computed(()=>{if(t.value+1>=f)return null;const s=D.value;return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(s?.audioSources?.[g.value]),imageSource:k(s?.imageSource),index:t.value+1,text:s?.multiLinguals?.[c.value]??s?.text??"",duration:s?.duration}}),P=e.computed(()=>({MulmoPlayer:U,pageProps:S.value,currentPage:t.value,pageCount:f,pageMove:C,isPlaying:x.value,audioLang:g,textLang:c,SelectLanguage:N,mediaPlayerRef:n,handlePlay:$,handlePause:T,handleEnded:_}));return r({updatePage:M}),(s,u)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(P.value)),()=>[e.createElementVNode("div",we,[e.createElementVNode("div",Se,[e.createElementVNode("div",Be,[e.createElementVNode("button",{class:"col-start-1 row-start-1 justify-self-start w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:row-start-2",disabled:t.value===0,onClick:u[0]||(u[0]=v=>C(-1))}," Prev ",8,Ve),e.createElementVNode("div",Ne,[e.createVNode(U,e.mergeProps({ref_key:"mediaPlayer",ref:n},{...S.value,text:"",originalText:""}),null,16)]),e.createElementVNode("button",{class:"col-start-3 row-start-1 justify-self-end w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:col-start-2 max-sm:row-start-2",disabled:t.value>=e.unref(f)-1,onClick:u[1]||(u[1]=v=>C(1))}," Next ",8,$e),S.value.text?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("p",Le,e.toDisplayString(S.value.text),1),S.value.originalText&&S.value.originalText!==S.value.text?(e.openBlock(),e.createElementBlock("p",Pe,e.toDisplayString(S.value.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])],!0),L.value?e.withDirectives((e.openBlock(),e.createBlock(U,e.normalizeProps(e.mergeProps({key:0},L.value)),null,16)),[[e.vShow,!1]]):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("audio",{key:1,ref_key:"bgmRef",ref:m,src:E.value},null,8,Te)):e.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-fdffe885"]]),_e={class:"container mx-auto px-4 py-2 sm:py-4"},De={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4"},Ae={class:"flex items-center gap-4 flex-wrap"},je={class:"flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto"},Ue={key:0,class:"hidden sm:flex items-center gap-3"},ze=["value"],Re={key:1,class:"hidden sm:flex items-center gap-3"},Fe={class:"hidden sm:flex items-center gap-3"},We={class:"flex items-center justify-between mb-4"},He={key:0,class:"space-y-2"},Ge=["value"],Oe={key:1,class:"space-y-2"},qe={class:"space-y-2"},Je=e.defineComponent({__name:"mulmo_viewer_header",props:{audioLang:{},textLang:{},playbackSpeed:{default:1},showSpeedControl:{type:Boolean,default:!0},showAudioLang:{type:Boolean,default:!0},hideDesktopControls:{type:Boolean,default:!1},showMobileSettings:{type:Boolean,default:!1},sticky:{type:Boolean,default:!1}},emits:["update:audioLang","update:textLang","update:playbackSpeed","update:showMobileSettings"],setup(o){return(r,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["bg-white shadow-md border-b border-gray-200",{"sticky top-0 z-50":o.sticky}])},[e.createElementVNode("div",_e,[e.createElementVNode("div",De,[e.createElementVNode("div",Ae,[e.renderSlot(r.$slots,"left")]),e.createElementVNode("div",je,[e.renderSlot(r.$slots,"actions"),o.hideDesktopControls?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",Ue,[a[11]||(a[11]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Speed:",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"px-3 py-2 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 transition-colors",onChange:a[0]||(a[0]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[10]||(a[10]=[e.createElementVNode("option",{value:1},"1x",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x",-1)])],40,ze)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Re,[a[12]||(a[12]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Audio:",-1)),e.createVNode(N,{"model-value":o.audioLang,"onUpdate:modelValue":a[1]||(a[1]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fe,[a[13]||(a[13]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Text:",-1)),e.createVNode(N,{"model-value":o.textLang,"onUpdate:modelValue":a[2]||(a[2]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])])],64)),e.renderSlot(r.$slots,"mobile-actions")])])])],2),o.showMobileSettings?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 z-50 sm:hidden",onClick:a[9]||(a[9]=l=>r.$emit("update:showMobileSettings",!1))},[e.createElementVNode("div",{class:"absolute bottom-0 left-0 right-0 bg-white rounded-t-2xl shadow-xl p-6 space-y-4",onClick:a[8]||(a[8]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",We,[a[14]||(a[14]=e.createElementVNode("h2",{class:"text-xl font-bold text-gray-800"},"Settings",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-gray-700 text-2xl",onClick:a[3]||(a[3]=l=>r.$emit("update:showMobileSettings",!1))}," × ")]),o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",He,[a[16]||(a[16]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Playback Speed",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"w-full px-4 py-3 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500",onChange:a[4]||(a[4]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[15]||(a[15]=[e.createElementVNode("option",{value:1},"1x (Normal)",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x (Double)",-1)])],40,Ge)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Oe,[a[17]||(a[17]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Audio Language",-1)),e.createVNode(N,{"model-value":o.audioLang,class:"w-full","onUpdate:modelValue":a[5]||(a[5]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",qe,[a[18]||(a[18]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Text Language",-1)),e.createVNode(N,{"model-value":o.textLang,class:"w-full","onUpdate:modelValue":a[6]||(a[6]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])]),e.createElementVNode("button",{class:"w-full px-4 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium shadow-sm transition-colors mt-4",onClick:a[7]||(a[7]=l=>r.$emit("update:showMobileSettings",!1))}," Done ")])])):e.createCommentVNode("",!0)],64))}}),Ke={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},Qe={class:"relative aspect-video bg-gray-200"},Xe=["src","alt"],Ye={class:"absolute top-2 left-2 bg-black bg-opacity-70 text-white px-3 py-1 rounded-full text-sm font-semibold"},Ze={class:"p-4"},Ie={class:"text-gray-700 text-sm line-clamp-3 group-hover:text-indigo-600 transition-colors"},et={class:"text-gray-500 text-xs mt-2 space-y-1"},tt={key:0},ot={key:1},at=e.defineComponent({__name:"beat_grid_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,p=n=>{const m=Math.floor(n/3600),g=Math.floor(n%3600/60),c=Math.floor(n%60);return m>0?`${m}:${g.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}`:`${g}:${c.toString().padStart(2,"0")}`},f=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=n=>`${a.basePath}/${n+1}.jpg`,i=(n,m)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&m.preventDefault(),l("beat-click",n)};return(n,m)=>(e.openBlock(),e.createElementBlock("div",Ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:g,originalIndex:c})=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{key:c,to:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,class:"group block bg-white rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 overflow-hidden",onClick:h=>i(c,h)},{default:e.withCtx(()=>[e.createElementVNode("div",Qe,[e.createElementVNode("img",{src:t(c),alt:`Beat ${c+1}`,class:"w-full h-full object-cover"},null,8,Xe),e.createElementVNode("div",Ye,e.toDisplayString(c+1),1)]),e.createElementVNode("div",Ze,[e.createElementVNode("p",Ie,e.toDisplayString(f(g)),1),e.createElementVNode("div",et,[g.startTime!==void 0?(e.openBlock(),e.createElementBlock("p",tt,"Start: "+e.toDisplayString(p(g.startTime)),1)):e.createCommentVNode("",!0),g.duration?(e.openBlock(),e.createElementBlock("p",ot,"Duration: "+e.toDisplayString(p(g.duration)),1)):e.createCommentVNode("",!0)])])]),_:2},1032,["to","href","onClick"]))),128))]))}}),lt={class:"space-y-6"},nt=["id"],st={class:"flex items-center gap-3 mb-2 flex-wrap"},it={class:"bg-indigo-600 text-white px-4 py-1 rounded-full text-sm font-semibold"},rt={key:0,class:"text-gray-500 text-sm"},dt={key:1,class:"text-gray-500 text-sm"},ct=["src","alt"],ut={class:"text-gray-800 text-base leading-relaxed font-sans"},mt=e.defineComponent({__name:"beat_list_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,p=n=>{const m=Math.floor(n/3600),g=Math.floor(n%3600/60),c=Math.floor(n%60);return m>0?`${m}:${g.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}`:`${g}:${c.toString().padStart(2,"0")}`},f=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=n=>`${a.basePath}/${n+1}.jpg`,i=(n,m)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&m.preventDefault(),l("beat-click",n)};return(n,m)=>(e.openBlock(),e.createElementBlock("div",lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:g,originalIndex:c})=>(e.openBlock(),e.createElementBlock("div",{id:`beat-${c}`,key:c,class:"bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{to:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(c):void 0,class:"float-left mr-4 mb-2 w-64 flex-shrink-0",onClick:h=>i(c,h)},{default:e.withCtx(()=>[e.createElementVNode("div",st,[e.createElementVNode("span",it," #"+e.toDisplayString(c+1),1),g.startTime!==void 0?(e.openBlock(),e.createElementBlock("span",rt," Start: "+e.toDisplayString(p(g.startTime)),1)):e.createCommentVNode("",!0),g.duration?(e.openBlock(),e.createElementBlock("span",dt," Duration: "+e.toDisplayString(p(g.duration)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("img",{src:t(c),alt:`Beat ${c+1}`,class:"w-full h-auto object-cover rounded-lg hover:opacity-80 transition-opacity shadow-sm"},null,8,ct)]),_:2},1032,["to","href","onClick"])),e.createElementVNode("p",ut,e.toDisplayString(f(g)),1),m[0]||(m[0]=e.createElementVNode("div",{class:"clear-both"},null,-1))],8,nt))),128))]))}});b.BeatGridView=at,b.BeatListView=mt,b.MulmoViewer=Me,b.MulmoViewerHeader=Je,b.SelectLanguage=N,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
1
+ (function(b,e){typeof exports=="object"&&typeof module<"u"?e(exports,require("vue")):typeof define=="function"&&define.amd?define(["exports","vue"],e):(b=typeof globalThis<"u"?globalThis:b||self,e(b.MulmoCastViewer={},b.Vue))})(this,(function(b,e){"use strict";const j=async o=>await new Promise(r=>setTimeout(r,o)),O=(o,r)=>{const a=l=>l instanceof Error?l:new Error("Aborted");return new Promise((l,g)=>{if(r.aborted){g(a(r.reason));return}const p=()=>{clearTimeout(t),g(a(r.reason))},t=setTimeout(()=>{r.removeEventListener("abort",p),l()},o);r.addEventListener("abort",p,{once:!0})})},q={class:"items-center justify-center w-full"},J={key:0,class:"group relative"},K=["src"],Q={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},X={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},Y={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},Z={key:1,class:"group relative inline-block"},I=["src","controls"],ee=["src"],te={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},oe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},ae={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},le={key:2,class:"group relative inline-block"},ne=["src"],se=["src"],ie={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},re={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},de={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ce={key:3,class:"group relative inline-block"},ue=["src"],me={class:"play-overlay absolute inset-0 flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none"},fe={key:0,class:"w-8 h-8 text-white ml-1",fill:"currentColor",viewBox:"0 0 24 24"},pe={key:1,class:"w-8 h-8 text-white",fill:"currentColor",viewBox:"0 0 24 24"},ge={key:4},ye={key:5,class:"mt-4 px-6 py-4 text-left"},he={class:"text-lg leading-relaxed font-sans text-gray-800"},ke={key:0,class:"text-base leading-relaxed font-sans text-gray-400 mt-3 italic"},xe="https://github.com/receptron/mulmocast-cli/blob/main/assets/images/mulmocast_credit.png?raw=true",ve=e.defineComponent({__name:"mulmo_player",props:{index:{},videoWithAudioSource:{default:void 0},soundEffectSource:{default:void 0},videoSource:{default:void 0},imageSource:{default:void 0},audioSource:{default:void 0},text:{default:void 0},originalText:{default:void 0},duration:{default:void 0},defaultLang:{default:void 0},currentLang:{default:void 0},playbackSpeed:{default:1}},emits:["play","pause","ended"],setup(o,{expose:r,emit:a}){const l=o,g=a,p=e.ref(),t=e.ref(),i=e.ref(),n=e.ref(),c=e.ref(!1),f=()=>{t.value&&i.value&&!isNaN(t.value.duration)&&!isNaN(i.value.duration)&&(c.value=i.value.duration>t.value.duration+1)},u=()=>{if(t.value){if(l.soundEffectSource){t.value.volume=1;return}l.videoSource&&(l.audioSource&&l.currentLang&&l.defaultLang&&l.currentLang!==l.defaultLang?t.value.volume=.2:t.value.volume=0)}},h=()=>{const y=l.playbackSpeed??1;p.value&&(p.value.playbackRate=y),t.value&&(t.value.playbackRate=y),i.value&&(i.value.playbackRate=y),n.value&&(n.value.playbackRate=y)};e.watch([()=>l.currentLang,()=>l.defaultLang,()=>l.videoSource,()=>l.audioSource],()=>{u()}),e.watch(()=>l.playbackSpeed,()=>{h()}),e.watch(t,y=>{y&&(u(),h())}),e.watch([p,i,n],()=>{h()}),e.onMounted(()=>{u(),h()});const w=e.ref(!1),k=e.ref(!1),E=e.computed(()=>m.value||k.value);let x=null;const $=()=>{x&&(x.abort(),x=null)},T=()=>{m.value=!0,i.value&&t.value&&!i.value.ended&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{})),g("play")},z=y=>{k.value||t.value?.ended&&i.value&&!i.value.ended||(document.hidden||(m.value=!1),!t.value?.ended&&i?.value&&i.value?.pause(),L(y))},M=()=>{if(w.value)return;(!i.value||i.value.ended)&&P()},C=()=>{if(w.value)return;(!t.value||t.value.ended)&&P()},_=()=>{if(!t.value||!i.value)return;const y=Math.min(i.value.currentTime,t.value.duration);Math.abs(t.value.currentTime-y)>.5&&(t.value.currentTime=y)},R=()=>{m.value=!0,t.value&&!t.value.ended&&t.value.play().catch(()=>{}),g("play")},S=()=>{k.value||i.value?.ended||(document.hidden||(m.value=!1),t.value&&!t.value.ended&&t.value.pause(),g("pause"))},D=()=>{m.value=!0,g("play")},L=y=>{if(k.value)return;document.hidden||(m.value=!1);const d=y.target;d.duration!==d.currentTime&&g("pause")},P=()=>{w.value||(w.value=!0,m.value=!1,g("ended"))},s=()=>{p.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},m=e.ref(!1);let v=null;const V=async()=>{if(k.value=!1,w.value=!1,m.value=!0,p.value&&(h(),p.value.play().catch(()=>{})),t.value&&(u(),h(),t.value.play().catch(()=>{}),i.value&&(i.value.currentTime=t.value.currentTime,i.value.play().catch(()=>{}))),n.value&&(h(),n.value.play().catch(()=>{})),!p.value&&!t.value&&!n.value)try{$(),x=new AbortController,await O((l.duration??0)*1e3,x.signal),x=null,w.value||(m.value=!1,w.value=!0,g("ended"))}catch{}},ft=()=>{k.value=!0,m.value=!1,w.value=!0,$(),p.value?.pause(),t.value?.pause(),i.value?.pause(),n.value?.pause()},pt=()=>{!i.value||!t.value||i.value.ended||Math.abs(i.value.currentTime-t.value.currentTime)>.5&&(i.value.currentTime=t.value.currentTime)},A=y=>{y?.paused&&!y.ended&&y.play().catch(()=>{})},gt=(y,d)=>{d.paused&&!d.ended&&(y.ended||(d.currentTime=y.currentTime),d.play().catch(()=>{}))},H=()=>{m.value&&(A(p.value),t.value&&i.value?(A(t.value),gt(t.value,i.value)):A(t.value),A(n.value))},G=()=>{document.hidden&&m.value?v||(v=setInterval(H,500)):document.hidden||v&&(clearInterval(v),v=null)},B=()=>{document.hidden&&m.value&&setTimeout(H,50)};return e.onMounted(()=>{document.addEventListener("visibilitychange",G),p.value?.addEventListener("pause",B),t.value?.addEventListener("pause",B),n.value?.addEventListener("pause",B),i.value?.addEventListener("pause",B)}),e.onUnmounted(()=>{document.removeEventListener("visibilitychange",G),p.value?.removeEventListener("pause",B),t.value?.removeEventListener("pause",B),n.value?.removeEventListener("pause",B),i.value?.removeEventListener("pause",B),v&&(clearInterval(v),v=null),$()}),r({play:V,stop:ft}),(y,d)=>(e.openBlock(),e.createElementBlock("div",q,[o.videoWithAudioSource?(e.openBlock(),e.createElementBlock("div",J,[e.createElementVNode("video",{ref_key:"videoWithAudioRef",ref:p,src:o.videoWithAudioSource,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",controls:!0,playsinline:"true",onPlay:D,onPause:L,onEnded:P},null,40,K),e.createElementVNode("div",Q,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[0]||(d[0]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",Y,[...d[5]||(d[5]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",X,[...d[4]||(d[4]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.soundEffectSource||o.videoSource?(e.openBlock(),e.createElementBlock("div",Z,[e.createElementVNode("video",{ref_key:"videoRef",ref:t,class:"mulmocast-video mx-auto h-auto max-h-[80vh] w-auto object-contain",src:o.soundEffectSource||o.videoSource,controls:!c.value,playsinline:"true",onPlay:T,onPause:z,onEnded:M,onSeeked:pt,onLoadedmetadata:f},null,40,I),o.audioSource?(e.openBlock(),e.createElementBlock("audio",{key:0,ref_key:"audioSyncRef",ref:i,src:o.audioSource,controls:!0,class:e.normalizeClass(c.value?"mulmocast-audio absolute bottom-0 left-0 w-full":"hidden"),onEnded:C,onSeeked:_,onPlay:R,onPause:S,onLoadedmetadata:f},null,42,ee)):e.createCommentVNode("",!0),e.createElementVNode("div",te,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[1]||(d[1]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",ae,[...d[7]||(d[7]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",oe,[...d[6]||(d[6]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.audioSource?(e.openBlock(),e.createElementBlock("div",le,[o.imageSource?(e.openBlock(),e.createElementBlock("img",{key:0,src:o.imageSource,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"},null,8,ne)):(e.openBlock(),e.createElementBlock("img",{key:1,src:xe,class:"mx-auto h-auto max-h-[80vh] w-auto object-contain",alt:"Background"})),e.createElementVNode("audio",{ref_key:"audioRef",ref:n,class:"mulmocast-audio absolute inset-0 w-full h-full",src:o.audioSource,controls:!0,onPlay:D,onPause:L,onEnded:P},null,40,se),e.createElementVNode("div",ie,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[2]||(d[2]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",de,[...d[9]||(d[9]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",re,[...d[8]||(d[8]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):o.imageSource?(e.openBlock(),e.createElementBlock("div",ce,[e.createElementVNode("img",{src:o.imageSource,class:"max-w-full max-h-full object-contain"},null,8,ue),e.createElementVNode("div",me,[e.createElementVNode("button",{class:"pointer-events-auto w-16 h-16 bg-black/50 hover:bg-black/70 rounded-full flex items-center justify-center transition-colors cursor-pointer",onClick:d[3]||(d[3]=F=>E.value?s():V())},[E.value?(e.openBlock(),e.createElementBlock("svg",pe,[...d[11]||(d[11]=[e.createElementVNode("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"},null,-1)])])):(e.openBlock(),e.createElementBlock("svg",fe,[...d[10]||(d[10]=[e.createElementVNode("path",{d:"M8 5v14l11-7z"},null,-1)])]))])])])):(e.openBlock(),e.createElementBlock("div",ge,"No media available")),o.text?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("p",he,e.toDisplayString(o.text),1),o.originalText&&o.originalText!==o.text?(e.openBlock(),e.createElementBlock("p",ke,e.toDisplayString(o.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)]))}}),W=(o,r)=>{const a=o.__vccOpts||o;for(const[l,g]of r)a[l]=g;return a},U=W(ve,[["__scopeId","data-v-843621f0"]]),be=["value"],Ee=["value"],N=e.defineComponent({__name:"select_language",props:{modelValue:{}},emits:["update:modelValue"],setup(o,{emit:r}){const a=["en","ja"],l={en:"English",ja:"日本語"},g=r,p=t=>{const i=t.target;g("update:modelValue",i.value)};return(t,i)=>(e.openBlock(),e.createElementBlock("select",{value:o.modelValue,class:"px-4 py-2 bg-white border-2 border-gray-300 rounded-lg shadow-sm hover:border-indigo-400 focus:border-indigo-500 focus:ring-2 focus:ring-indigo-200 focus:outline-none transition-colors cursor-pointer text-base font-medium text-gray-700",onChange:p},[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(a,n=>e.createElementVNode("option",{key:n,value:n},e.toDisplayString(l[n]||n),9,Ee)),64))],40,be))}}),we={class:"w-full overflow-hidden"},Se={class:"max-w-7xl mx-auto px-4"},Be={class:"grid grid-cols-[auto,1fr,auto] gap-x-4 gap-y-4 max-sm:grid-cols-2"},Ve=["disabled"],Ne={class:"col-start-2 row-start-1 min-w-0 max-sm:col-span-2 max-sm:col-start-1"},$e=["disabled"],Ce={key:0,class:"mulmo-text-box col-start-2 row-start-2 min-w-0 mt-1 rounded-lg px-6 py-4 text-left max-sm:col-span-2 max-sm:col-start-1 max-sm:row-start-3"},Le={class:"mulmo-text-primary text-lg leading-relaxed font-sans"},Pe={key:0,class:"mulmo-text-secondary text-base leading-relaxed font-sans mt-3 italic"},Te=["src"],Me=W(e.defineComponent({__name:"mulmo_viewer",props:{dataSet:{default:void 0},basePath:{},initPage:{default:void 0},audioLang:{default:"en"},textLang:{default:"en"},playbackSpeed:{default:1}},emits:["updatedPage","update:audioLang","update:textLang","allCompleted"],setup(o,{expose:r,emit:a}){const l=o,g=a,p=l.dataSet?.beats?.length??0,t=e.ref(l.initPage??0),i=e.ref(!0),n=e.ref(),c=e.ref(),f=e.computed({get:()=>l.audioLang,set:s=>g("update:audioLang",s||"en")}),u=e.computed({get:()=>l.textLang,set:s=>g("update:textLang",s||"en")});let h=0;e.watch(()=>l.audioLang,async(s,m)=>{if(s!==m&&x.value){h++;const v=h;if(n.value?.stop(),await j(500),v!==h)return;n.value&&(x.value=!0,await n.value.play())}}),e.watch(()=>l.textLang,async(s,m)=>{s!==m&&x.value&&(await j(100),n.value&&await n.value.play())}),e.watch(c,s=>{s&&(s.volume=.3)});const w=e.computed(()=>l.dataSet?.beats[t.value]),k=s=>s?l.basePath+"/"+s:"",E=e.computed(()=>k(l.dataSet?.bgmSource)),x=e.ref(!1),$=()=>{x.value=!0,c.value&&(c.value.volume=.3,c.value.play())},T=()=>{x.value=!1,c.value&&c.value.pause()},z=async()=>{h++;const s=h;n.value?.stop(),await j(500),s===h&&n.value&&n.value.play()},M=s=>{t.value!==s&&(t.value=s,x.value&&i.value&&z())},C=s=>{const m=t.value+s;return m>-1&&m<p?(M(m),g("updatedPage",m),!0):!1},_=()=>{i.value&&C(1)||(x.value=!1,c.value&&c.value.pause(),g("allCompleted"))},R={onPlay:$,onPause:T,onEnded:_},S=e.computed(()=>{const s=w.value,m=s?.audioSources?.[f.value],v=s?.multiLinguals?.[u.value]??s?.text??"",V=l.dataSet?.lang?s?.multiLinguals?.[l.dataSet.lang]??s?.text??"":"";return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(m),imageSource:k(s?.imageSource),index:t.value,text:v,originalText:V,duration:s?.duration,defaultLang:l.dataSet?.lang,currentLang:f.value,playbackSpeed:l.playbackSpeed,...R}}),D=e.computed(()=>l.dataSet?.beats[t.value+1]),L=e.computed(()=>{if(t.value+1>=p)return null;const s=D.value;return{videoWithAudioSource:k(s?.videoWithAudioSource),videoSource:k(s?.videoSource),soundEffectSource:k(s?.soundEffectSource),audioSource:k(s?.audioSources?.[f.value]),imageSource:k(s?.imageSource),index:t.value+1,text:s?.multiLinguals?.[u.value]??s?.text??"",duration:s?.duration}}),P=e.computed(()=>({MulmoPlayer:U,pageProps:S.value,currentPage:t.value,pageCount:p,pageMove:C,isPlaying:x.value,audioLang:f,textLang:u,SelectLanguage:N,mediaPlayerRef:n,handlePlay:$,handlePause:T,handleEnded:_}));return r({updatePage:M}),(s,m)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(s.$slots,"default",e.normalizeProps(e.guardReactiveProps(P.value)),()=>[e.createElementVNode("div",we,[e.createElementVNode("div",Se,[e.createElementVNode("div",Be,[e.createElementVNode("button",{class:"col-start-1 row-start-1 justify-self-start w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:row-start-2",disabled:t.value===0,onClick:m[0]||(m[0]=v=>C(-1))}," Prev ",8,Ve),e.createElementVNode("div",Ne,[e.createVNode(U,e.mergeProps({ref_key:"mediaPlayer",ref:n},{...S.value,text:"",originalText:""}),null,16)]),e.createElementVNode("button",{class:"col-start-3 row-start-1 justify-self-end w-auto px-4 py-2 bg-gray-500 text-white rounded hover:bg-gray-600 disabled:opacity-50 self-center max-sm:col-start-2 max-sm:row-start-2",disabled:t.value>=e.unref(p)-1,onClick:m[1]||(m[1]=v=>C(1))}," Next ",8,$e),S.value.text?(e.openBlock(),e.createElementBlock("div",Ce,[e.createElementVNode("p",Le,e.toDisplayString(S.value.text),1),S.value.originalText&&S.value.originalText!==S.value.text?(e.openBlock(),e.createElementBlock("p",Pe,e.toDisplayString(S.value.originalText),1)):e.createCommentVNode("",!0)])):e.createCommentVNode("",!0)])])])],!0),L.value?e.withDirectives((e.openBlock(),e.createBlock(U,e.normalizeProps(e.mergeProps({key:0},L.value)),null,16)),[[e.vShow,!1]]):e.createCommentVNode("",!0),E.value?(e.openBlock(),e.createElementBlock("audio",{key:1,ref_key:"bgmRef",ref:c,src:E.value},null,8,Te)):e.createCommentVNode("",!0)],64))}}),[["__scopeId","data-v-46289647"]]),_e={class:"container mx-auto px-4 py-2 sm:py-4"},De={class:"flex flex-col sm:flex-row justify-between items-start sm:items-center gap-2 sm:gap-4"},Ae={class:"flex items-center gap-4 flex-wrap"},je={class:"flex items-center gap-2 sm:gap-4 flex-wrap w-full sm:w-auto"},Ue={key:0,class:"hidden sm:flex items-center gap-3"},ze=["value"],Re={key:1,class:"hidden sm:flex items-center gap-3"},Fe={class:"hidden sm:flex items-center gap-3"},We={class:"flex items-center justify-between mb-4"},He={key:0,class:"space-y-2"},Ge=["value"],Oe={key:1,class:"space-y-2"},qe={class:"space-y-2"},Je=e.defineComponent({__name:"mulmo_viewer_header",props:{audioLang:{},textLang:{},playbackSpeed:{default:1},showSpeedControl:{type:Boolean,default:!0},showAudioLang:{type:Boolean,default:!0},hideDesktopControls:{type:Boolean,default:!1},showMobileSettings:{type:Boolean,default:!1},sticky:{type:Boolean,default:!1}},emits:["update:audioLang","update:textLang","update:playbackSpeed","update:showMobileSettings"],setup(o){return(r,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.createElementVNode("div",{class:e.normalizeClass(["bg-white shadow-md border-b border-gray-200",{"sticky top-0 z-50":o.sticky}])},[e.createElementVNode("div",_e,[e.createElementVNode("div",De,[e.createElementVNode("div",Ae,[e.renderSlot(r.$slots,"left")]),e.createElementVNode("div",je,[e.renderSlot(r.$slots,"actions"),o.hideDesktopControls?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",Ue,[a[11]||(a[11]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Speed:",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"px-3 py-2 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm hover:border-gray-400 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500 transition-colors",onChange:a[0]||(a[0]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[10]||(a[10]=[e.createElementVNode("option",{value:1},"1x",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x",-1)])],40,ze)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Re,[a[12]||(a[12]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Audio:",-1)),e.createVNode(N,{"model-value":o.audioLang,"onUpdate:modelValue":a[1]||(a[1]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",Fe,[a[13]||(a[13]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide"},"Text:",-1)),e.createVNode(N,{"model-value":o.textLang,"onUpdate:modelValue":a[2]||(a[2]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])])],64)),e.renderSlot(r.$slots,"mobile-actions")])])])],2),o.showMobileSettings?(e.openBlock(),e.createElementBlock("div",{key:0,class:"fixed inset-0 bg-black bg-opacity-50 z-50 sm:hidden",onClick:a[9]||(a[9]=l=>r.$emit("update:showMobileSettings",!1))},[e.createElementVNode("div",{class:"absolute bottom-0 left-0 right-0 bg-white rounded-t-2xl shadow-xl p-6 space-y-4",onClick:a[8]||(a[8]=e.withModifiers(()=>{},["stop"]))},[e.createElementVNode("div",We,[a[14]||(a[14]=e.createElementVNode("h2",{class:"text-xl font-bold text-gray-800"},"Settings",-1)),e.createElementVNode("button",{class:"text-gray-500 hover:text-gray-700 text-2xl",onClick:a[3]||(a[3]=l=>r.$emit("update:showMobileSettings",!1))}," × ")]),o.showSpeedControl?(e.openBlock(),e.createElementBlock("div",He,[a[16]||(a[16]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Playback Speed",-1)),e.createElementVNode("select",{value:o.playbackSpeed,class:"w-full px-4 py-3 border border-gray-300 rounded-lg bg-white text-gray-700 font-medium shadow-sm focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:border-indigo-500",onChange:a[4]||(a[4]=l=>r.$emit("update:playbackSpeed",Number(l.target.value)))},[...a[15]||(a[15]=[e.createElementVNode("option",{value:1},"1x (Normal)",-1),e.createElementVNode("option",{value:1.25},"1.25x",-1),e.createElementVNode("option",{value:1.5},"1.5x",-1),e.createElementVNode("option",{value:1.75},"1.75x",-1),e.createElementVNode("option",{value:2},"2x (Double)",-1)])],40,Ge)])):e.createCommentVNode("",!0),o.showAudioLang?(e.openBlock(),e.createElementBlock("div",Oe,[a[17]||(a[17]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Audio Language",-1)),e.createVNode(N,{"model-value":o.audioLang,class:"w-full","onUpdate:modelValue":a[5]||(a[5]=l=>r.$emit("update:audioLang",l))},null,8,["model-value"])])):e.createCommentVNode("",!0),e.createElementVNode("div",qe,[a[18]||(a[18]=e.createElementVNode("label",{class:"text-sm font-semibold text-gray-700 uppercase tracking-wide block"},"Text Language",-1)),e.createVNode(N,{"model-value":o.textLang,class:"w-full","onUpdate:modelValue":a[6]||(a[6]=l=>r.$emit("update:textLang",l))},null,8,["model-value"])]),e.createElementVNode("button",{class:"w-full px-4 py-3 bg-indigo-600 text-white rounded-lg hover:bg-indigo-700 font-medium shadow-sm transition-colors mt-4",onClick:a[7]||(a[7]=l=>r.$emit("update:showMobileSettings",!1))}," Done ")])])):e.createCommentVNode("",!0)],64))}}),Ke={class:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-6"},Qe={class:"relative aspect-video bg-gray-200"},Xe=["src","alt"],Ye={class:"absolute top-2 left-2 bg-black bg-opacity-70 text-white px-3 py-1 rounded-full text-sm font-semibold"},Ze={class:"p-4"},Ie={class:"text-gray-700 text-sm line-clamp-3 group-hover:text-indigo-600 transition-colors"},et={class:"text-gray-500 text-xs mt-2 space-y-1"},tt={key:0},ot={key:1},at=e.defineComponent({__name:"beat_grid_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,g=n=>{const c=Math.floor(n/3600),f=Math.floor(n%3600/60),u=Math.floor(n%60);return c>0?`${c}:${f.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}`:`${f}:${u.toString().padStart(2,"0")}`},p=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=(n,c)=>n.imageSource?`${a.basePath}/${n.imageSource}`:`${a.basePath}/${c+1}.jpg`,i=(n,c)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&c.preventDefault(),l("beat-click",n)};return(n,c)=>(e.openBlock(),e.createElementBlock("div",Ke,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:f,originalIndex:u})=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{key:u,to:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,class:"group block bg-white rounded-lg shadow-md hover:shadow-xl transition-shadow duration-300 overflow-hidden",onClick:h=>i(u,h)},{default:e.withCtx(()=>[e.createElementVNode("div",Qe,[e.createElementVNode("img",{src:t(f,u),alt:`Beat ${u+1}`,class:"w-full h-full object-cover"},null,8,Xe),e.createElementVNode("div",Ye,e.toDisplayString(u+1),1)]),e.createElementVNode("div",Ze,[e.createElementVNode("p",Ie,e.toDisplayString(p(f)),1),e.createElementVNode("div",et,[f.startTime!==void 0?(e.openBlock(),e.createElementBlock("p",tt,"Start: "+e.toDisplayString(g(f.startTime)),1)):e.createCommentVNode("",!0),f.duration?(e.openBlock(),e.createElementBlock("p",ot,"Duration: "+e.toDisplayString(g(f.duration)),1)):e.createCommentVNode("",!0)])])]),_:2},1032,["to","href","onClick"]))),128))]))}}),lt={class:"space-y-6"},nt=["id"],st={class:"flex items-center gap-3 mb-2 flex-wrap"},it={class:"bg-indigo-600 text-white px-4 py-1 rounded-full text-sm font-semibold"},rt={key:0,class:"text-gray-500 text-sm"},dt={key:1,class:"text-gray-500 text-sm"},ct=["src","alt"],ut={class:"text-gray-800 text-base leading-relaxed font-sans"},mt=e.defineComponent({__name:"beat_list_view",props:{beats:{},basePath:{default:""},textLang:{default:"en"},linkUrlBuilder:{type:Function,default:void 0},linkComponent:{default:"a"}},emits:["beat-click"],setup(o,{emit:r}){const a=o,l=r,g=n=>{const c=Math.floor(n/3600),f=Math.floor(n%3600/60),u=Math.floor(n%60);return c>0?`${c}:${f.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}`:`${f}:${u.toString().padStart(2,"0")}`},p=n=>n.multiLinguals?.[a.textLang]||n.text||"No text available",t=(n,c)=>n.imageSource?`${a.basePath}/${n.imageSource}`:`${a.basePath}/${c+1}.jpg`,i=(n,c)=>{a.linkComponent==="a"&&a.linkUrlBuilder&&c.preventDefault(),l("beat-click",n)};return(n,c)=>(e.openBlock(),e.createElementBlock("div",lt,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.beats,({beat:f,originalIndex:u})=>(e.openBlock(),e.createElementBlock("div",{id:`beat-${u}`,key:u,class:"bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"},[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(o.linkComponent),{to:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,href:o.linkUrlBuilder?o.linkUrlBuilder(u):void 0,class:"float-left mr-4 mb-2 w-64 flex-shrink-0",onClick:h=>i(u,h)},{default:e.withCtx(()=>[e.createElementVNode("div",st,[e.createElementVNode("span",it," #"+e.toDisplayString(u+1),1),f.startTime!==void 0?(e.openBlock(),e.createElementBlock("span",rt," Start: "+e.toDisplayString(g(f.startTime)),1)):e.createCommentVNode("",!0),f.duration?(e.openBlock(),e.createElementBlock("span",dt," Duration: "+e.toDisplayString(g(f.duration)),1)):e.createCommentVNode("",!0)]),e.createElementVNode("img",{src:t(f,u),alt:`Beat ${u+1}`,class:"w-full h-auto object-cover rounded-lg hover:opacity-80 transition-opacity shadow-sm"},null,8,ct)]),_:2},1032,["to","href","onClick"])),e.createElementVNode("p",ut,e.toDisplayString(p(f)),1),c[0]||(c[0]=e.createElementVNode("div",{class:"clear-both"},null,-1))],8,nt))),128))]))}});b.BeatGridView=at,b.BeatListView=mt,b.MulmoViewer=Me,b.MulmoViewerHeader=Je,b.SelectLanguage=N,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})}));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mulmocast-viewer",
3
- "version": "0.2.2",
3
+ "version": "0.2.3",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "main": "dist/mulmocast-viewer.umd.js",
@@ -63,8 +63,5 @@
63
63
  "vue-i18n": "^11.2.8",
64
64
  "vue-router": "^5.0.2",
65
65
  "vue-tsc": "^3.2.4"
66
- },
67
- "resolutions": {
68
- "**/vite-plugin-dts/**/@vue/compiler-core": "3.5.27"
69
66
  }
70
67
  }