mulmoclaude 0.6.4 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. package/bin/mulmoclaude.js +1 -1
  2. package/client/assets/{html2canvas-CDGcmOD3-XVrO-eyz.js → html2canvas-CDGcmOD3-CKJ6vKPo.js} +1 -1
  3. package/client/assets/{index-zZIqEbNX.js → index-BG_JJcKI.js} +193 -197
  4. package/client/assets/index-DCoo3kpR.css +2 -0
  5. package/client/assets/{index.es-DqtpmBm8-DHT6q10o.js → index.es-DqtpmBm8-DFXjJgCa.js} +1 -1
  6. package/client/assets/lib-Dpph7PBN.js +114 -0
  7. package/client/assets/marp-cCGismx0.js +3452 -0
  8. package/client/assets/schemas-DuYzyHQc.js +64 -0
  9. package/client/index.html +5 -4
  10. package/package.json +7 -5
  11. package/server/agent/backend/claude-code.ts +44 -10
  12. package/server/agent/backend/fake-echo.ts +5 -1
  13. package/server/agent/config.ts +49 -12
  14. package/server/agent/mcp-server.ts +13 -2
  15. package/server/agent/mcp-tools/handlePermission.ts +115 -0
  16. package/server/agent/mcp-tools/index.ts +2 -1
  17. package/server/agent/mcp-tools/x.ts +18 -2
  18. package/server/agent/prompt.ts +3 -45
  19. package/server/api/csrfGuard.ts +122 -32
  20. package/server/api/routes/collections.ts +320 -0
  21. package/server/api/routes/config.ts +45 -0
  22. package/server/api/routes/feeds.ts +70 -0
  23. package/server/api/routes/files.ts +167 -0
  24. package/server/api/routes/marp-themes.ts +15 -0
  25. package/server/api/routes/mulmo-script.ts +139 -0
  26. package/server/api/routes/pdf.ts +108 -0
  27. package/server/api/routes/plugins.ts +10 -0
  28. package/server/api/routes/shortcuts.ts +49 -0
  29. package/server/api/routes/wiki.ts +35 -0
  30. package/server/build/dispatcher.mjs +40 -22
  31. package/server/events/notifications.ts +14 -9
  32. package/server/index.ts +49 -14
  33. package/server/plugins/preset-list.ts +18 -10
  34. package/server/plugins/preset-loader.ts +11 -4
  35. package/server/prompts/index.ts +1 -3
  36. package/server/prompts/system/system.md +7 -2
  37. package/server/system/env.ts +14 -0
  38. package/server/utils/clientDir.ts +7 -0
  39. package/server/utils/files/index.ts +0 -2
  40. package/server/utils/files/shortcuts-io.ts +63 -0
  41. package/server/utils/slug.ts +3 -4
  42. package/server/workspace/billing-migration.ts +69 -0
  43. package/server/workspace/collections/delete.ts +186 -0
  44. package/server/workspace/collections/discovery.ts +730 -0
  45. package/server/workspace/collections/index.ts +23 -0
  46. package/server/workspace/collections/io.ts +287 -0
  47. package/server/workspace/collections/notifications.ts +404 -0
  48. package/server/workspace/collections/paths.ts +125 -0
  49. package/server/workspace/collections/spawn.ts +213 -0
  50. package/server/workspace/collections/templatePath.ts +36 -0
  51. package/server/workspace/collections/types.ts +334 -0
  52. package/server/workspace/collections/watcher.ts +398 -0
  53. package/server/workspace/feeds/engine.ts +135 -0
  54. package/server/workspace/feeds/fetch/httpClient.ts +127 -0
  55. package/server/workspace/feeds/fetch/rssParser.ts +117 -0
  56. package/server/workspace/feeds/index.ts +8 -0
  57. package/server/workspace/feeds/ingestTypes.ts +66 -0
  58. package/server/workspace/feeds/pathResolver.ts +74 -0
  59. package/server/workspace/feeds/paths.ts +30 -0
  60. package/server/workspace/feeds/projectItem.ts +92 -0
  61. package/server/workspace/feeds/registry.ts +43 -0
  62. package/server/workspace/feeds/retrievers/httpJson.ts +19 -0
  63. package/server/workspace/feeds/retrievers/index.ts +27 -0
  64. package/server/workspace/feeds/retrievers/registerAll.ts +5 -0
  65. package/server/workspace/feeds/retrievers/rss.ts +24 -0
  66. package/server/workspace/feeds/state.ts +55 -0
  67. package/server/workspace/helps/billing-clients-worklog.md +215 -0
  68. package/server/workspace/helps/billing-invoice.md +457 -0
  69. package/server/workspace/helps/collection-skills.md +664 -0
  70. package/server/workspace/helps/feeds.md +110 -0
  71. package/server/workspace/helps/index.md +9 -3
  72. package/server/workspace/helps/portfolio-tracker.md +211 -0
  73. package/server/workspace/helps/presentation-deck.md +828 -0
  74. package/server/workspace/helps/todo-collection.md +140 -0
  75. package/server/workspace/helps/vocabulary.md +106 -0
  76. package/server/workspace/hooks/handlers/skillBridge.ts +101 -40
  77. package/server/workspace/marp-themes.ts +46 -0
  78. package/server/workspace/paths.ts +46 -11
  79. package/server/workspace/skills-preset/mc-manage-skills/SKILL.md +13 -0
  80. package/server/workspace/skills-preset/mc-wiki-deep-lint/SKILL.md +108 -0
  81. package/server/workspace/skills-preset/mc-wiki-health-check/SKILL.md +61 -0
  82. package/server/workspace/skills-preset/mc-wiki-ingest/SKILL.md +182 -0
  83. package/server/workspace/skills-preset/mc-wiki-promote/SKILL.md +175 -0
  84. package/server/workspace/skills-preset.ts +376 -2
  85. package/server/workspace/wiki-pages/io.ts +34 -2
  86. package/server/workspace/workspace.ts +20 -1
  87. package/src/App.vue +70 -41
  88. package/src/components/BackendOfflineBanner.vue +56 -0
  89. package/src/components/ChatInput.vue +72 -6
  90. package/src/components/CollectionCalendarView.vue +243 -0
  91. package/src/components/CollectionDashboardView.vue +181 -0
  92. package/src/components/CollectionDayView.vue +308 -0
  93. package/src/components/CollectionEmbedView.vue +69 -0
  94. package/src/components/CollectionKanbanView.vue +196 -0
  95. package/src/components/CollectionRecordModal.vue +93 -0
  96. package/src/components/CollectionRecordPanel.vue +567 -0
  97. package/src/components/CollectionView.vue +1748 -0
  98. package/src/components/CollectionsIndexView.vue +152 -0
  99. package/src/components/ConfirmModal.vue +344 -0
  100. package/src/components/FeedsView.vue +225 -0
  101. package/src/components/FileContentRenderer.vue +122 -30
  102. package/src/components/FileTree.vue +218 -2
  103. package/src/components/FileTreePane.vue +2 -0
  104. package/src/components/FilesView.vue +95 -17
  105. package/src/components/PinToggle.vue +52 -0
  106. package/src/components/PluginLauncher.vue +97 -37
  107. package/src/components/RightSidebar.vue +74 -3
  108. package/src/components/RolesView.vue +1 -1
  109. package/src/components/SettingsModal.vue +146 -72
  110. package/src/components/SlashCommandMenu.vue +56 -0
  111. package/src/components/StackView.vue +128 -48
  112. package/src/components/collectionEmbed.ts +29 -0
  113. package/src/components/collectionTypes.ts +177 -0
  114. package/src/composables/collections/useCollectionRendering.ts +350 -0
  115. package/src/composables/useConfirm.ts +70 -0
  116. package/src/composables/useFileTree.ts +35 -3
  117. package/src/composables/useImeAwareEnter.ts +14 -0
  118. package/src/composables/usePdfDownload.ts +6 -1
  119. package/src/composables/useShortcuts.ts +163 -0
  120. package/src/composables/useSlashCommandMenu.ts +138 -0
  121. package/src/config/apiRoutes.ts +46 -13
  122. package/src/config/createFilePolicy.ts +82 -0
  123. package/src/config/roles.ts +46 -47
  124. package/src/config/systemFileDescriptors.ts +0 -30
  125. package/src/config/toolNames.ts +1 -5
  126. package/src/config/workspacePaths.ts +4 -9
  127. package/src/lang/de.ts +154 -221
  128. package/src/lang/en.ts +153 -218
  129. package/src/lang/es.ts +154 -219
  130. package/src/lang/fr.ts +155 -221
  131. package/src/lang/index.ts +55 -0
  132. package/src/lang/ja.ts +153 -219
  133. package/src/lang/ko.ts +153 -218
  134. package/src/lang/pt-BR.ts +154 -219
  135. package/src/lang/zh.ts +152 -218
  136. package/src/lib/vue-i18n.ts +15 -45
  137. package/src/lib/wiki-page/graph.ts +108 -0
  138. package/src/main.ts +2 -5
  139. package/src/plugins/_generated/metas.ts +2 -8
  140. package/src/plugins/_generated/registrations.ts +2 -4
  141. package/src/plugins/_generated/server-bindings.ts +5 -12
  142. package/src/plugins/manageSkills/View.vue +36 -68
  143. package/src/plugins/manageSkills/presetDetection.ts +25 -0
  144. package/src/plugins/markdown/MarpView.vue +301 -0
  145. package/src/plugins/markdown/Preview.vue +26 -3
  146. package/src/plugins/markdown/View.vue +230 -1
  147. package/src/plugins/markdown/definition.ts +21 -1
  148. package/src/plugins/presentCollection/Preview.vue +30 -0
  149. package/src/plugins/presentCollection/View.vue +78 -0
  150. package/src/plugins/presentCollection/definition.ts +30 -0
  151. package/src/plugins/presentCollection/index.ts +25 -0
  152. package/src/plugins/presentCollection/meta.ts +15 -0
  153. package/src/plugins/presentCollection/plugin.ts +39 -0
  154. package/src/plugins/presentCollection/types.ts +13 -0
  155. package/src/plugins/presentForm/View.vue +56 -6
  156. package/src/plugins/presentForm/types.ts +3 -3
  157. package/src/plugins/presentMulmoScript/View.vue +252 -5
  158. package/src/plugins/presentMulmoScript/helpers.ts +18 -0
  159. package/src/plugins/presentMulmoScript/meta.ts +11 -0
  160. package/src/plugins/scheduler/AutomationsView.vue +13 -11
  161. package/src/plugins/scheduler/automationsDefinition.ts +7 -10
  162. package/src/plugins/scheduler/automationsMeta.ts +27 -0
  163. package/src/plugins/scheduler/index.ts +19 -38
  164. package/src/plugins/wiki/View.vue +120 -27
  165. package/src/plugins/wiki/components/WikiGraphView.vue +75 -0
  166. package/src/plugins/wiki/components/WikiPageBody.vue +18 -0
  167. package/src/plugins/wiki/index.ts +6 -0
  168. package/src/plugins/wiki/route.ts +8 -1
  169. package/src/router/index.ts +31 -34
  170. package/src/router/pageRoutes.ts +2 -7
  171. package/src/tools/types.ts +4 -3
  172. package/src/types/notification.ts +5 -9
  173. package/src/types/session.ts +11 -0
  174. package/src/types/shortcuts.ts +37 -0
  175. package/src/utils/agent/eventDispatch.ts +4 -0
  176. package/src/utils/api.ts +47 -1
  177. package/src/utils/canvas/stackGrouping.ts +96 -0
  178. package/src/utils/chat/permalink.ts +20 -0
  179. package/src/utils/collections/actionVisible.ts +55 -0
  180. package/src/utils/collections/calendarGrid.ts +328 -0
  181. package/src/utils/collections/collectionViewMode.ts +42 -0
  182. package/src/utils/collections/derivedFormula.ts +364 -0
  183. package/src/utils/collections/draft.ts +160 -0
  184. package/src/utils/collections/enumColors.ts +130 -0
  185. package/src/utils/collections/itemLabel.ts +42 -0
  186. package/src/utils/confirmDelete.ts +13 -0
  187. package/src/utils/markdown/marpAspect.ts +28 -0
  188. package/src/utils/markdown/marpCustomSize.ts +120 -0
  189. package/src/utils/markdown/marpDetect.ts +15 -0
  190. package/src/utils/markdown/marpTheme.ts +109 -0
  191. package/src/utils/markdown/wikiEmbedHandlers.ts +1 -1
  192. package/src/utils/path/workspaceLinkRouter.ts +126 -9
  193. package/src/utils/session/sessionEntries.ts +1 -0
  194. package/src/utils/session/sessionFactory.ts +1 -0
  195. package/src/utils/session/sessionHelpers.ts +6 -1
  196. package/client/assets/index-CyBr8Mkr.css +0 -2
  197. package/server/api/routes/encore.ts +0 -55
  198. package/server/api/routes/news.ts +0 -133
  199. package/server/api/routes/sources.ts +0 -550
  200. package/server/encore/INVARIANTS.md +0 -272
  201. package/server/encore/boot.ts +0 -39
  202. package/server/encore/closure.ts +0 -36
  203. package/server/encore/cycle.ts +0 -276
  204. package/server/encore/dispatch.ts +0 -103
  205. package/server/encore/handlers/amend.ts +0 -99
  206. package/server/encore/handlers/appendNote.ts +0 -74
  207. package/server/encore/handlers/defineEncore.ts +0 -42
  208. package/server/encore/handlers/listTickets.ts +0 -107
  209. package/server/encore/handlers/markStepDone.ts +0 -41
  210. package/server/encore/handlers/markTargetSkipped.ts +0 -33
  211. package/server/encore/handlers/query.ts +0 -138
  212. package/server/encore/handlers/recordValues.ts +0 -44
  213. package/server/encore/handlers/resolveNotification.ts +0 -121
  214. package/server/encore/handlers/setup.ts +0 -81
  215. package/server/encore/handlers/shared.ts +0 -137
  216. package/server/encore/handlers/snooze.ts +0 -87
  217. package/server/encore/handlers/startObligationChat.ts +0 -64
  218. package/server/encore/handlers/startSetupChat.ts +0 -50
  219. package/server/encore/lock.ts +0 -61
  220. package/server/encore/notifier.ts +0 -123
  221. package/server/encore/obligation.ts +0 -25
  222. package/server/encore/paths.ts +0 -78
  223. package/server/encore/reconcile.ts +0 -661
  224. package/server/encore/tick.ts +0 -191
  225. package/server/encore/yaml-fm.ts +0 -63
  226. package/server/prompts/system/news-concierge.md +0 -24
  227. package/server/prompts/system/sources-context.md +0 -16
  228. package/server/utils/files/encore-io.ts +0 -111
  229. package/server/workspace/helps/encore-dsl.md +0 -482
  230. package/server/workspace/helps/sources.md +0 -42
  231. package/server/workspace/news/reader.ts +0 -247
  232. package/server/workspace/skills-preset/mc-manage-sources/SKILL.md +0 -106
  233. package/server/workspace/sources/arxivDiscovery.ts +0 -182
  234. package/server/workspace/sources/classifier.ts +0 -268
  235. package/server/workspace/sources/fetchers/arxiv.ts +0 -170
  236. package/server/workspace/sources/fetchers/github.ts +0 -106
  237. package/server/workspace/sources/fetchers/githubIssues.ts +0 -210
  238. package/server/workspace/sources/fetchers/githubReleases.ts +0 -186
  239. package/server/workspace/sources/fetchers/index.ts +0 -71
  240. package/server/workspace/sources/fetchers/registerAll.ts +0 -15
  241. package/server/workspace/sources/fetchers/rss.ts +0 -141
  242. package/server/workspace/sources/fetchers/rssParser.ts +0 -295
  243. package/server/workspace/sources/httpFetcher.ts +0 -230
  244. package/server/workspace/sources/interests.ts +0 -120
  245. package/server/workspace/sources/paths.ts +0 -110
  246. package/server/workspace/sources/pipeline/dedup.ts +0 -60
  247. package/server/workspace/sources/pipeline/fetch.ts +0 -182
  248. package/server/workspace/sources/pipeline/index.ts +0 -301
  249. package/server/workspace/sources/pipeline/notify.ts +0 -80
  250. package/server/workspace/sources/pipeline/plan.ts +0 -68
  251. package/server/workspace/sources/pipeline/summarize.ts +0 -189
  252. package/server/workspace/sources/pipeline/write.ts +0 -185
  253. package/server/workspace/sources/rateLimiter.ts +0 -148
  254. package/server/workspace/sources/registry.ts +0 -304
  255. package/server/workspace/sources/robots.ts +0 -271
  256. package/server/workspace/sources/sourceState.ts +0 -142
  257. package/server/workspace/sources/taxonomy.ts +0 -74
  258. package/server/workspace/sources/types.ts +0 -153
  259. package/server/workspace/sources/urls.ts +0 -112
  260. package/src/components/NewsView.vue +0 -267
  261. package/src/components/SourcesManager.vue +0 -915
  262. package/src/components/SourcesView.vue +0 -45
  263. package/src/components/TodoExplorer.vue +0 -423
  264. package/src/components/todo/TodoAddDialog.vue +0 -135
  265. package/src/components/todo/TodoEditDialog.vue +0 -51
  266. package/src/components/todo/TodoEditPanel.vue +0 -117
  267. package/src/components/todo/TodoKanbanView.vue +0 -290
  268. package/src/components/todo/TodoListView.vue +0 -88
  269. package/src/components/todo/TodoTableView.vue +0 -210
  270. package/src/composables/useNewsItems.ts +0 -38
  271. package/src/composables/useNewsReadState.ts +0 -75
  272. package/src/plugins/encore/EncoreDashboard.vue +0 -504
  273. package/src/plugins/encore/EncoreRedirect.vue +0 -116
  274. package/src/plugins/encore/View.vue +0 -36
  275. package/src/plugins/encore/defineEncoreDefinition.ts +0 -74
  276. package/src/plugins/encore/defineEncoreMeta.ts +0 -13
  277. package/src/plugins/encore/index.ts +0 -93
  278. package/src/plugins/encore/manageEncoreDefinition.ts +0 -100
  279. package/src/plugins/encore/manageEncoreMeta.ts +0 -36
  280. package/src/plugins/manageSource/Preview.vue +0 -33
  281. package/src/plugins/manageSource/View.vue +0 -13
  282. package/src/plugins/manageSource/definition.ts +0 -66
  283. package/src/plugins/manageSource/index.ts +0 -75
  284. package/src/plugins/manageSource/meta.ts +0 -21
  285. package/src/plugins/scheduler/CalendarView.vue +0 -23
  286. package/src/plugins/scheduler/Preview.vue +0 -73
  287. package/src/plugins/scheduler/View.vue +0 -608
  288. package/src/plugins/scheduler/calendarDefinition.ts +0 -47
  289. package/src/plugins/scheduler/calendarMeta.ts +0 -28
  290. package/src/plugins/scheduler/multiDayHelpers.ts +0 -95
  291. package/src/plugins/scheduler/viewModes.ts +0 -26
  292. package/src/types/encore-dsl/at-expression.ts +0 -120
  293. package/src/types/encore-dsl/at-resolver.ts +0 -32
  294. package/src/types/encore-dsl/cadence.ts +0 -289
  295. package/src/types/encore-dsl/schema.ts +0 -288
  296. package/src/utils/filesPreview/schedulerPreview.ts +0 -44
  297. package/src/utils/filesPreview/todoPreview.ts +0 -51
  298. package/src/utils/sources/filter.ts +0 -69
  299. /package/client/assets/{JsonEditor-D6WBWLoa.js → JsonEditor-C_RDoefj.js} +0 -0
  300. /package/client/assets/{chunk-D8eiyYIV-LcKZGJv5.js → chunk-D8eiyYIV-BY16KEZc.js} +0 -0
  301. /package/client/assets/{purify.es-Fx1Nqyry-Dwtk-9WZ.js → purify.es-Fx1Nqyry-BufT4RJl.js} +0 -0
  302. /package/client/assets/{typeof-DBp4T-Ny-CSr8wx1e.js → typeof-DBp4T-Ny-z2wCIsir.js} +0 -0
@@ -0,0 +1,114 @@
1
+ import{Er as e,F as t,J as n,K as r,O as i,Or as a,Pt as o,Wt as s,X as c,Xt as l,Y as u,Yn as d,ar as f,at as p,i as m,jr as h,nt as g,q as _,rt as v,wn as y,yn as b}from"./vue.runtime.esm-bundler-BTyIdNAI.js";import{a as x,c as S,d as C,h as w,i as T,l as E,m as D,p as O,r as k,s as A,t as j,u as M}from"./schemas-DuYzyHQc.js";var N=e=>String(e||``).replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`).replace(/'/g,`&#39;`),P=e=>e?` data-mulmo-path="${N(e)}"`:``,F=e=>e?` data-mulmo-item-path="${N(e)}"`:``,I=(e,t)=>e?`${e}.${t}`:t,ee=new Set([`primary`,`accent`,`success`,`warning`,`danger`,`info`,`highlight`]),L=e=>{let t=N(e);return t=t.replace(/\*\*(.+?)\*\*/g,`<strong>$1</strong>`),t=t.replace(/(?<![*\w])\*(?!\s)([^*\n]+?)(?<!\s)\*(?!\w)/g,`<em class="text-d-warning not-italic font-bold">$1</em>`),t=t.replace(/\{([a-z]+):(.+?)\}/g,(e,t,n)=>ee.has(t)?`<span class="text-${R(t)}">${n}</span>`:`{${t}:${n}}`),t=t.replace(/\n/g,`<br>`),t},te=e=>e.replace(/[^a-zA-Z0-9-]/g,``),ne=e=>e.replace(/[^0-9A-Fa-f]/g,``),R=e=>`d-${te(e)}`,re=`primary`,z=e=>e||re,B=(e,t)=>e||t||re,V=(e,t)=>`<div class="h-[3px] bg-${R(e)} shrink-0 ${t||``}"></div>`,ie=e=>e?`<p class="text-sm font-bold text-d-text font-body mb-2">${L(e)}</p>`:``,ae=e=>/\+/.test(e)?`success`:`danger`,H=e=>e?`<div class="mt-auto pb-4">${de(e)}</div>`:``,oe={bg:`bg`,bgCard:`card`,bgCardAlt:`alt`,text:`text`,textMuted:`muted`,textDim:`dim`,primary:`primary`,accent:`accent`,success:`success`,warning:`warning`,danger:`danger`,info:`info`,highlight:`highlight`},se=e=>{let t={};Object.entries(e.colors).forEach(([e,n])=>{let r=oe[e];r&&(t[r]=`#${n}`)});let n={title:[e.fonts.title,`serif`],body:[e.fonts.body,`Arial`,`sans-serif`],mono:[e.fonts.mono,`monospace`]};return e.fonts.accent&&(n.accent=[e.fonts.accent,`ui-sans-serif`,`system-ui`,`sans-serif`]),JSON.stringify({theme:{extend:{colors:{d:t},fontFamily:n}}})},ce=e=>!(!e||typeof e!=`string`||e.length>2e3||/[<>"'`{};:\\\r\n]/.test(e)||/(javascript|vbscript|data\s+|expression\s*\(|behavior|@import|url\s*\(|attr\s*\(|content\s*\()/i.test(e)),le=(e,t)=>`<div class="w-10 h-10 rounded-full bg-${R(t)} flex items-center justify-center shrink-0">
2
+ <span class="text-white font-bold text-sm">${e}</span>
3
+ </div>`,ue=(e,t)=>`<div class="w-16 h-16 bg-d-alt flex items-center justify-center rounded">
4
+ <span class="text-2xl font-mono font-bold text-${R(t)}">${N(e)}</span>
5
+ </div>`,U=(e,t,n,r)=>`<div class="bg-d-card rounded-lg shadow-lg overflow-hidden flex flex-col min-h-0 ${te(n||``)}"${r?` data-mulmo-item-path="${N(r)}"`:``}>
6
+ ${V(e)}
7
+ <div class="p-5 flex flex-col flex-1 min-h-0 overflow-hidden">
8
+ ${t}
9
+ </div>
10
+ </div>`,de=e=>{let t=e.color||`warning`,n=e.leftBar?`<div class="w-1 bg-${R(t)} shrink-0"></div>`:``;return`<div class="mx-12 bg-d-card rounded flex overflow-hidden ${e.align===`center`?`text-center`:``}">
11
+ ${n}
12
+ <div class="px-4 py-3 text-sm font-body flex-1">${e.label?`<span class="font-bold text-${R(t)}">${L(e.label)}:</span> <span class="text-d-muted">${L(e.text)}</span>`:`<span class="text-d-muted">${L(e.text)}</span>`}</div>
13
+ </div>`},fe=(e,t,n=``)=>{if(!e)return``;let r=R(e.color??t??`primary`);return`<span class="inline-flex items-center gap-2 font-accent font-extrabold uppercase tracking-[0.16em] text-[12px] px-3 py-1 rounded-full border border-d-textDim/30 bg-${r}/10 text-${r}"${P(I(n,`eyebrow.label`))}>${L(e.label)}</span>`},pe=(e,t=``)=>!e||e.length===0?``:`<div class="flex gap-2 flex-wrap mt-4">${e.map((e,n)=>`<span class="text-sm px-3 py-1.5 rounded-full border border-d-textDim/30 bg-d-card/40 text-d-text"${P(I(t,`chips[${n}]`))}>${L(e)}</span>`).join(``)}</div>`,me=(e,t)=>e?`<span class="font-accent font-extrabold text-${R(t??`primary`)} mr-2">${L(e)}</span>`:``,he={small:`text-[34px]`,default:`text-[42px]`,large:`text-[52px]`,hero:`text-[64px]`},ge={default:`text-[15px]`,lead:`text-[17px]`,big:`text-[22px]`},_e=(e,t=``)=>{let n=z(e.accentColor),r=[],i=fe(e.eyebrow,n,t);i&&r.push(`<div class="mb-3">${i}</div>`),e.stepLabel&&r.push(`<p class="text-sm font-bold text-${R(n)} font-body"${P(I(t,`stepLabel`))}>${L(e.stepLabel)}</p>`);let a=he[e.titleSize??`default`];if(r.push(`<h2 class="${a} leading-tight font-title font-bold text-d-text"${P(I(t,`title`))}>${L(e.title)}</h2>`),e.subtitle){let n=ge[e.subtitleSize??`default`];r.push(`<p class="${n} text-d-dim mt-2 font-body"${P(I(t,`subtitle`))}>${L(e.subtitle)}</p>`)}return r.join(`
14
+ `)},W=e=>[V(z(e.accentColor)),`<div class="px-12 pt-8 shrink-0">`,_e(e),`</div>`].join(`
15
+ `),ve=e=>[V(z(e.accentColor)),`<div class="flex-1 flex flex-col justify-center px-12 min-h-0">`,_e(e)].join(`
16
+ `),ye=0,be=e=>`${e}-${ye++}`,xe={sankey:`https://cdn.jsdelivr.net/npm/chartjs-chart-sankey`,treemap:`https://cdn.jsdelivr.net/npm/chartjs-chart-treemap@3`},Se=e=>{let t=[],n=e=>{e&&t.push(e)};switch(e.layout){case`columns`:e.columns.forEach(e=>n(e.content));break;case`comparison`:n(e.left.content),n(e.right.content);break;case`grid`:e.items.forEach(e=>n(e.content));break;case`split`:n(e.left?.content),n(e.right?.content);break;case`matrix`:e.cells.forEach(e=>n(e.content));break}return t},Ce=(e,t)=>{if(e.type===`chart`){let n=e.chartData?.type;n&&xe[n]&&t.add(xe[n])}},we=e=>{let t=Se(e),n=!1,r=!1,i=new Set;return t.forEach(e=>{e.forEach(e=>{e.type===`chart`&&(n=!0),e.type===`mermaid`&&(r=!0),Ce(e,i),e.type===`section`&&e.content&&e.content.forEach(e=>{e.type===`chart`&&(n=!0),e.type===`mermaid`&&(r=!0),Ce(e,i)})})}),{hasChart:n,hasMermaid:r,chartPlugins:[...i]}},Te={small:`text-[48px]`,default:`text-[60px]`,large:`text-[68px]`,hero:`text-[76px]`},Ee=e=>{let t=z(e.accentColor),n=fe(e.eyebrow,t),r=pe(e.chips),i=Te[e.titleSize??`default`];return[V(`primary`),`<div class="absolute -top-20 -right-8 w-[360px] h-[360px] rounded-full bg-d-primary opacity-10"></div>`,`<div class="absolute -bottom-12 -left-16 w-[280px] h-[280px] rounded-full bg-d-accent opacity-10"></div>`,`<div class="flex flex-col justify-center h-full px-16 relative z-10">`,n?` <div class="mb-4">${n}</div>`:``,` <h1 class="${i} leading-tight font-title font-bold text-d-text"${P(`title`)}>${L(e.title)}</h1>`,e.subtitle?` <p class="text-2xl text-d-muted mt-6 font-body"${P(`subtitle`)}>${L(e.subtitle)}</p>`:``,e.author?` <p class="text-lg text-d-dim mt-10 font-body"${P(`author`)}>${L(e.author)}</p>`:``,e.note?` <div class="bg-d-card px-4 py-2 mt-6 inline-block rounded"><p class="text-sm text-d-dim font-body"${P(`note`)}>${L(e.note)}</p></div>`:``,r,`</div>`,V(`accent`,`absolute bottom-0 left-0 right-0`)].filter(Boolean).join(`
17
+ `)},De={default:{fontCls:`text-[15px]`,colorCls:`text-d-muted`},lead:{fontCls:`text-[17px] leading-relaxed`,colorCls:`text-d-muted`},big:{fontCls:`text-[19px] leading-snug`,colorCls:`text-d-text`},sub:{fontCls:`text-[13px] leading-snug`,colorCls:`text-d-dim`}},Oe=(e,t)=>e.color?`text-${R(e.color)}`:t?`text-d-text`:`text-d-muted`,ke=(e,t)=>`<span class="px-2 py-0.5 rounded-full text-xs font-bold text-white bg-${R(t)}">${L(e)}</span>`,Ae=(e,t)=>{let n=typeof e==`object`&&e?e:{text:String(e)};return n.badge&&n.color?`<td class="px-4 py-3 text-sm font-body border-b border-d-alt">${ke(n.text,n.color)}</td>`:`<td class="px-4 py-3 text-sm ${Oe(n,t)} ${n.bold||t?`font-bold`:``} font-body border-b border-d-alt">${L(n.text)}</td>`},je=(e,t,n,r)=>{let i=[],a=r!==!1;return i.push(`<table class="w-full border-collapse">`),e&&e.length>0&&(i.push(`<thead>`),i.push(`<tr>`),e.forEach(e=>{i.push(` <th class="text-left px-4 py-3 text-sm font-bold text-d-text font-body border-b-2 border-d-alt">${L(e)}</th>`)}),i.push(`</tr>`),i.push(`</thead>`)),i.push(`<tbody>`),t.forEach((e,t)=>{let r=a&&t%2==1?`bg-d-alt/30`:``;i.push(`<tr class="${r}">`),(e||[]).forEach((e,t)=>{let r=t===0&&!!n;i.push(` ${Ae(e,r)}`)}),i.push(`</tr>`)}),i.push(`</tbody>`),i.push(`</table>`),i.join(`
18
+ `)},Me=e=>`<div class="overflow-auto">${ie(e.title)}${je(e.headers,e.rows,e.rowHeaders,e.striped)}</div>`,Ne=(e,t=``)=>{switch(e.type){case`text`:return ze(e,t);case`bullets`:return We(e,t);case`code`:return Ge(e);case`callout`:return Ke(e,t);case`metric`:return qe(e,t);case`divider`:return Je(e);case`image`:return Ye(e);case`imageRef`:return Xe(e);case`chart`:return Ze(e);case`mermaid`:return Qe(e);case`section`:return nt(e);case`table`:return Me(e);case`tag`:return Pe(e,t);default:return`<p class="text-sm text-d-muted font-body">[unknown block type]</p>`}},Pe=(e,t=``)=>`<span class="text-xs font-bold uppercase tracking-[0.12em] text-${R(e.color||`primary`)} font-accent"${P(t?`${t}.text`:``)}>${L(e.text)}</span>`,Fe=(e,t=``)=>e.map((e,n)=>Ne(e,t?`${t}[${n}]`:`content[${n}]`)).join(`
19
+ `),Ie=(e,t=``)=>e.map((e,n)=>{let r=t?`${t}[${n}]`:`content[${n}]`;return e.type===`image`?`<div class="aspect-video shrink-0 overflow-hidden">${Ne(e,r)}</div>`:Ne(e,r)}).join(`
20
+ `),Le=e=>{if(e.color)return`text-${R(e.color)}`;if(e.dim)return`text-d-dim`},Re=e=>e===`center`?`text-center`:e===`right`?`text-right`:``,ze=(e,t=``)=>{let n=e.fontSize!==void 0&&e.fontSize>=18,r=De[e.size??`default`];return`<p class="${n?`text-xl`:r.fontCls} ${Le(e)??r.colorCls??`text-d-muted`} ${e.bold?`font-bold`:``} ${Re(e.align)} font-body leading-relaxed"${P(t?`${t}.value`:``)}>${L(e.value)}</p>`},Be=e=>typeof e==`string`?e:e.text,Ve=e=>typeof e==`string`||!e.items||e.items.length===0?``:`\n${e.items.map(e=>` <li class="flex gap-2 ml-6 text-[14px]"><span class="text-d-dim shrink-0">\u25E6</span><span>${L(Be(e))}</span></li>`).join(`
21
+ `)}`,He={ok:{glyph:`✓`,color:`success`},no:{glyph:`✕`,color:`danger`},warn:{glyph:`⚠`,color:`warning`}},Ue=(e,t)=>typeof t==`object`&&t.size?t.size:e.size??`default`,We=(e,t=``)=>{let n=e.ordered?`ol`:`ul`,r=De[e.size??`default`],i=e.items.map((n,i)=>{let a=typeof n==`object`&&n.icon?He[n.icon]:void 0,o=a?`<span class="text-${R(a.color)} font-extrabold shrink-0">${a.glyph}</span>`:`<span class="text-d-dim shrink-0">${e.ordered?`${i+1}.`:N(e.icon||`•`)}</span>`,s=Be(n),c=Ve(n),l=De[Ue(e,n)],u=l.fontCls===r.fontCls&&l.colorCls===r.colorCls?``:` ${l.fontCls} ${l.colorCls}`,d=t?typeof n==`string`?`${t}.items[${i}]`:`${t}.items[${i}].text`:``;return` <li class="flex flex-col gap-1${u}"${F(t?`${t}.items[${i}]`:``)}><div class="flex gap-2">${o}<span${P(d)}>${L(s)}</span></div>${c}</li>`}).join(`
22
+ `);return`<${n} class="space-y-2 ${r.fontCls} ${r.colorCls} font-body">\n${i}\n</${n}>`},Ge=e=>`<pre class="bg-[#0D1117] p-4 rounded text-sm font-mono text-d-dim leading-relaxed whitespace-pre-wrap">${N(e.code)}</pre>`,Ke=(e,t=``)=>{let n=e.style===`quote`,r=(e=>e===`warning`?`border-l-2 border-${R(`warning`)}`:e===`info`?`border-l-2 border-${R(`info`)}`:``)(e.style),i=n?`bg-d-alt`:`bg-d-card`,a=e.size?De[e.size]:{fontCls:`text-sm`,colorCls:`text-d-muted`},o=n?`italic ${a.colorCls}`:a.colorCls,s=P(t?`${t}.label`:``),c=P(t?`${t}.text`:``),l=e.label?`<span class="font-bold text-${R(e.color||`warning`)}"${s}>${L(e.label)}:</span> <span class="${o}"${c}>${L(e.text)}</span>`:`<span class="${o}"${c}>${L(e.text)}</span>`;return`<div class="${i} ${r} p-3 rounded ${a.fontCls} font-body">${l}</div>`},qe=(e,t=``)=>{let n=[];return n.push(`<div class="text-center">`),n.push(` <p class="text-4xl font-bold text-${R(z(e.color))}"${P(t?`${t}.value`:``)}>${L(e.value)}</p>`),n.push(` <p class="text-sm text-d-dim mt-1"${P(t?`${t}.label`:``)}>${L(e.label)}</p>`),e.change&&n.push(` <p class="text-sm font-bold text-${R(ae(e.change))} mt-1"${P(t?`${t}.change`:``)}>${N(e.change)}</p>`),n.push(`</div>`),n.join(`
23
+ `)},Je=e=>`<div class="h-[2px] ${e.color?`bg-${R(e.color)}`:`bg-d-alt`} my-2 rounded-full"></div>`,Ye=e=>{let t=e.fit===`cover`?`object-cover`:`object-contain`;return`<div class="min-h-0 flex-1 overflow-hidden flex items-center"><img src="${N(e.src)}" alt="${N(e.alt||``)}" class="rounded ${t} w-full h-full" /></div>`},Xe=e=>`<div class="min-h-0 flex-1 overflow-hidden flex items-center justify-center bg-d-alt rounded"><p class="text-sm text-d-dim font-body">[imageRef: ${N(e.ref)}]</p></div>`,Ze=e=>{let t=be(`chart`),n=JSON.stringify(e.chartData);return`<div class="flex-1 min-h-0 flex flex-col">
24
+ ${ie(e.title)}
25
+ <div class="flex-1 min-h-0 relative">
26
+ <canvas id="${t}" data-chart-ready="false"></canvas>
27
+ </div>
28
+ <script>(function(){
29
+ const ctx=document.getElementById('${t}');
30
+ const d=${n};
31
+ if(!d.options)d.options={};
32
+ d.options.animation=false;
33
+ d.options.responsive=true;
34
+ d.options.maintainAspectRatio=false;
35
+ new Chart(ctx,d);
36
+ requestAnimationFrame(()=>requestAnimationFrame(()=>{ctx.dataset.chartReady="true"}));
37
+ })()<\/script>
38
+ </div>`},Qe=e=>{let t=be(`mermaid`);return`<div class="flex-1 min-h-0 flex flex-col">
39
+ ${ie(e.title)}
40
+ <div class="flex-1 min-h-0 flex justify-center items-center">
41
+ <div id="${t}" class="mermaid">${N(e.code)}</div>
42
+ </div>
43
+ </div>`},$e=e=>{let t=[];return e.text&&t.push(`<p class="text-[15px] text-d-muted font-body">${L(e.text)}</p>`),e.content&&t.push(e.content.map(e=>Ne(e)).join(`
44
+ `)),t.join(`
45
+ `)},et=e=>{let t=z(e.color),n=e.label.split(``).map(e=>N(e)).join(`<br>`);return`<div class="flex rounded overflow-hidden bg-d-card">
46
+ ${`<div class="w-[48px] shrink-0 rounded-l bg-${R(t)} flex items-center justify-center"><span class="text-sm font-bold text-white font-body leading-snug text-center">${n}</span></div>`}
47
+ <div class="flex-1 space-y-2 p-3">${$e(e)}</div>
48
+ </div>`},tt=e=>`<div class="flex gap-4 items-start">
49
+ ${`<span class="min-w-[80px] px-3 py-1 rounded text-sm font-bold text-white bg-${R(z(e.color))} shrink-0">${L(e.label)}</span>`}
50
+ <div class="flex-1 space-y-2">${$e(e)}</div>
51
+ </div>`,nt=e=>e.sidebar?et(e):tt(e),rt=(e,t)=>{let n=z(e.accentColor),r=[],i=P(`${t}.title`);if(e.icon)r.push(`<div class="flex flex-col items-center mb-3">`),r.push(` ${ue(e.icon,n)}`),r.push(`</div>`),r.push(`<h3 class="text-lg font-bold text-d-text text-center font-body"${i}>${L(e.title)}</h3>`);else if(e.num!=null)r.push(`<div class="flex items-center gap-3 mb-1">`),r.push(` ${le(e.num,n)}`),r.push(` <h3 class="text-lg font-bold text-d-text font-body"${i}>${L(e.title)}</h3>`),r.push(`</div>`);else{e.label&&r.push(`<p class="text-sm font-bold text-${R(n)} font-body"${P(`${t}.label`)}>${L(e.label)}</p>`);let a=me(e.numLabel,n);r.push(`<h3 class="text-2xl font-title font-bold text-d-text mt-1"${i}>${a}${L(e.title)}</h3>`)}if(e.content){let n=e.icon?`text-center`:``;r.push(`<div class="mt-4 space-y-4 flex-1 min-h-0 overflow-auto flex flex-col ${n}">`),r.push(Ie(e.content,`${t}.content`)),r.push(`</div>`)}return e.footer&&r.push(`<p class="text-sm text-d-dim font-body mt-auto pt-3"${P(`${t}.footer`)}>${L(e.footer)}</p>`),U(n,r.join(`
52
+ `),`flex-1`,t)},it=e=>{let t=e.columns||[],n=[W(e)],r=[];return t.forEach((n,i)=>{r.push(rt(n,`columns[${i}]`)),e.showArrows&&i<t.length-1&&r.push(`<div class="flex items-center shrink-0"><span class="text-2xl text-d-dim">▶</span></div>`)}),n.push(`<div class="flex gap-4 px-12 mt-5 flex-1 min-h-0 items-start">`),n.push(r.join(`
53
+ `)),n.push(`</div>`),n.push(H(e.callout)),e.bottomText&&n.push(`<p class="text-center text-sm text-d-dim font-body pb-4"${P(`bottomText`)}>${L(e.bottomText)}</p>`),n.join(`
54
+ `)},at=(e,t)=>{let n=z(e.accentColor),r=[];r.push(`<h3 class="text-xl font-bold text-${R(n)} font-body"${P(`${t}.title`)}>${L(e.title)}</h3>`),e.content&&(r.push(`<div class="mt-5 space-y-4 flex-1 min-h-0 overflow-auto flex flex-col">`),r.push(Fe(e.content,`${t}.content`)),r.push(`</div>`)),e.footer&&r.push(`<p class="text-sm text-d-dim font-body mt-auto pt-3"${P(`${t}.footer`)}>${L(e.footer)}</p>`);let i=e.ratio===void 0?``:` style="flex-grow:${e.ratio};flex-shrink:1;flex-basis:0"`,a=e.ratio===void 0?` flex-1`:``;return e.cardless?`<div class="flex flex-col min-h-0${a} py-1"${i}>
55
+ ${r.join(`
56
+ `)}
57
+ </div>`:`<div class="bg-d-card rounded-lg shadow-lg overflow-hidden flex flex-col min-h-0${a}"${i}>
58
+ ${V(n)}
59
+ <div class="p-5 flex flex-col flex-1 min-h-0 overflow-hidden">
60
+ ${r.join(`
61
+ `)}
62
+ </div>
63
+ </div>`},ot=e=>{let t=[W(e)];return t.push(`<div class="flex gap-5 px-12 mt-5 flex-1 min-h-0 items-start">`),t.push(at(e.left,`left`)),t.push(at(e.right,`right`)),t.push(`</div>`),t.push(H(e.callout)),t.join(`
64
+ `)},st=e=>{let t=e.gridColumns||3,n=[W(e)];return n.push(`<div class="grid grid-cols-${t} gap-4 px-12 mt-5 flex-1 min-h-0 overflow-hidden content-center">`),(e.items||[]).forEach((e,t)=>{let r=z(e.accentColor),i=[],a=`items[${t}]`,o=P(`${a}.title`);e.icon?(i.push(`<div class="flex flex-col items-center mb-2">`),i.push(` ${ue(e.icon,r)}`),i.push(`</div>`),i.push(`<h3 class="text-lg font-bold text-d-text text-center font-body"${o}>${L(e.title)}</h3>`)):e.num==null?i.push(`<h3 class="text-lg font-bold text-d-text font-body"${o}>${L(e.title)}</h3>`):(i.push(`<div class="flex items-center gap-3">`),i.push(` ${le(e.num,r)}`),i.push(` <h3 class="text-sm font-bold text-d-text font-body"${o}>${L(e.title)}</h3>`),i.push(`</div>`)),e.description&&i.push(`<p class="text-sm text-d-muted font-body mt-3"${P(`${a}.description`)}>${L(e.description)}</p>`),e.content&&i.push(`<div class="mt-3 space-y-3 flex-1 min-h-0 overflow-hidden flex flex-col">${Ie(e.content,`${a}.content`)}</div>`);let s=e.span&&e.span>1&&{1:``,2:`col-span-2`,3:`col-span-3`,4:`col-span-4`}[e.span]||``;n.push(U(r,i.join(`
65
+ `),s,a))}),n.push(`</div>`),e.footer&&n.push(`<p class="text-xs text-d-dim font-body px-12 pb-3"${P(`footer`)}>${L(e.footer)}</p>`),n.join(`
66
+ `)},ct=e=>{let t=z(e.accentColor),n=fe(e.eyebrow,t),r=[];return r.push(`<div class="flex flex-col items-center justify-center h-full px-20">`),n&&r.push(` <div class="mb-6">${n}</div>`),r.push(` ${V(t,`w-24 mb-8`)}`),r.push(` <blockquote class="text-[32px] text-d-text font-title italic text-center leading-relaxed"${P(`quote`)}>`),r.push(` &ldquo;${L(e.quote)}&rdquo;`),r.push(` </blockquote>`),r.push(` ${V(t,`w-24 mt-8 mb-6`)}`),e.author&&r.push(` <p class="text-lg text-d-muted font-body"${P(`author`)}>${L(e.author)}</p>`),e.role&&r.push(` <p class="text-sm text-d-dim font-body mt-1"${P(`role`)}>${L(e.role)}</p>`),r.push(`</div>`),r.join(`
67
+ `)},lt=e=>{let t=e.stats||[],n=[];return n.push(ve(e)),n.push(`<div class="flex gap-6 mt-10">`),t.forEach((t,r)=>{let i=B(t.color,e.accentColor),a=`stats[${r}]`;n.push(`<div class="flex-1 bg-d-card rounded-lg shadow-lg p-10 text-center"${F(a)}>`),n.push(` <div class="h-[3px] bg-${R(i)} rounded-full w-12 mx-auto mb-6"></div>`),t.numLabel&&n.push(` <p class="font-accent font-extrabold text-${R(i)} text-sm tracking-wider mb-2"${P(`${a}.numLabel`)}>${L(t.numLabel)}</p>`),n.push(` <p class="text-[52px] font-bold text-${R(i)} font-body leading-none"${P(`${a}.value`)}>${L(t.value)}</p>`),n.push(` <p class="text-lg text-d-muted font-body mt-4"${P(`${a}.label`)}>${L(t.label)}</p>`),t.change&&n.push(` <p class="text-base font-bold text-${R(ae(t.change))} font-body mt-3"${P(`${a}.change`)}>${L(t.change)}</p>`),n.push(`</div>`)}),n.push(`</div>`),n.push(`</div>`),n.push(H(e.callout)),n.join(`
68
+ `)},ut=e=>{let t=[],n=e.items||[];return t.push(ve(e)),t.push(`<div class="flex items-start mt-10 relative">`),t.push(`<div class="absolute left-4 right-4 top-[52px] h-[2px] bg-d-alt"></div>`),n.forEach((n,r)=>{let i=B(n.color,e.accentColor),a=n.hot?n.color||`warning`:i,o=n.done?`bg-${R(a)}`:`bg-d-alt`,s=n.done?`bg-d-text`:`bg-${R(a)}`,c=n.hot?` ring-2 ring-${R(a)} ring-offset-2 ring-offset-d-bg`:``,l=`items[${r}]`;t.push(`<div class="flex-1 flex flex-col items-center text-center relative z-10"${F(l)}>`),t.push(` <div class="w-10 h-10 rounded-full ${o} flex items-center justify-center shadow-lg${c}">`),t.push(` <div class="w-4 h-4 rounded-full ${s}"></div>`),t.push(` </div>`),t.push(` <p class="text-sm font-bold text-${R(a)} font-body mt-4"${P(`${l}.date`)}>${L(n.date)}</p>`),t.push(` <p class="text-base font-bold text-d-text font-body mt-2"${P(`${l}.title`)}>${L(n.title)}</p>`),n.description&&t.push(` <p class="text-sm text-d-muted font-body mt-1 px-3"${P(`${l}.description`)}>${L(n.description)}</p>`),t.push(`</div>`)}),t.push(`</div>`),t.push(`</div>`),t.join(`
69
+ `)},dt=e=>e===`top`?`justify-start`:e===`bottom`?`justify-end`:`justify-center`,ft=(e,t,n,r)=>{let i=e.accentColor||t,a=e.dark?`bg-d-card`:``,o=dt(e.valign),s=[];return s.push(`<div class="${a} flex flex-col ${o} px-10 py-8" style="flex: ${n}">`),e.label&&(e.labelBadge?s.push(` <span class="inline-block self-start px-6 py-2.5 rounded-lg bg-${R(i)} text-lg font-bold text-white font-title mb-4"${P(`${r}.label`)}>${L(e.label)}</span>`):s.push(` <p class="text-sm font-bold text-${R(i)} font-body mb-2"${P(`${r}.label`)}>${L(e.label)}</p>`)),e.title&&s.push(` <h2 class="text-[36px] leading-tight font-title font-bold text-d-text"${P(`${r}.title`)}>${L(e.title)}</h2>`),e.subtitle&&s.push(` <p class="text-base text-d-dim font-body mt-3"${P(`${r}.subtitle`)}>${L(e.subtitle)}</p>`),e.content&&s.push(` <div class="mt-6 space-y-3">${Fe(e.content,`${r}.content`)}</div>`),s.push(`</div>`),s.join(`
70
+ `)},pt=e=>{let t=z(e.accentColor),n=[];n.push(V(t));let r=e.left?.ratio||50,i=e.right?.ratio||50;return n.push(`<div class="flex h-full">`),e.left&&n.push(ft(e.left,t,r,`left`)),e.right&&n.push(ft(e.right,t,i,`right`)),n.push(`</div>`),n.join(`
71
+ `)},mt=e=>{let t=[W(e)],n=e.rows||2,r=e.cols||2,i=e.cells||[];return t.push(`<div class="flex flex-1 px-12 mt-4 gap-2">`),e.yAxis&&(t.push(`<div class="flex flex-col justify-between items-center w-6 shrink-0 py-4">`),t.push(` <span class="text-xs text-d-dim font-body [writing-mode:vertical-lr] rotate-180">${L(e.yAxis.high||``)}</span>`),e.yAxis.label&&t.push(` <span class="text-xs font-bold text-d-muted font-body [writing-mode:vertical-lr] rotate-180">${L(e.yAxis.label)}</span>`),t.push(` <span class="text-xs text-d-dim font-body [writing-mode:vertical-lr] rotate-180">${L(e.yAxis.low||``)}</span>`),t.push(`</div>`)),t.push(`<div class="flex-1 flex flex-col gap-3">`),Array.from({length:n}).forEach((e,n)=>{t.push(`<div class="flex gap-3 flex-1">`),Array.from({length:r}).forEach((e,a)=>{let o=n*r+a,s=i[o]||{label:``},c=z(s.accentColor),l=`cells[${o}]`,u=[];u.push(`<h3 class="text-lg font-bold text-${R(c)} font-body"${P(`${l}.label`)}>${L(s.label)}</h3>`),s.items&&(u.push(`<ul class="mt-2 space-y-1 text-sm text-d-muted font-body">`),s.items.forEach((e,t)=>{u.push(` <li class="flex gap-2"><span class="text-d-dim shrink-0">&bull;</span><span${P(`${l}.items[${t}]`)}>${L(e)}</span></li>`)}),u.push(`</ul>`)),s.content&&u.push(`<div class="mt-2 space-y-2">${Fe(s.content,`${l}.content`)}</div>`),t.push(U(c,u.join(`
72
+ `),`flex-1`))}),t.push(`</div>`)}),e.xAxis&&(t.push(`<div class="flex justify-between px-2 mt-1">`),t.push(` <span class="text-xs text-d-dim font-body">${L(e.xAxis.low||``)}</span>`),e.xAxis.label&&t.push(` <span class="text-xs font-bold text-d-muted font-body">${L(e.xAxis.label)}</span>`),t.push(` <span class="text-xs text-d-dim font-body">${L(e.xAxis.high||``)}</span>`),t.push(`</div>`)),t.push(`</div>`),t.push(`</div>`),t.join(`
73
+ `)},ht=e=>{let t=[W(e)];return t.push(`<div class="px-12 mt-5 flex-1 overflow-auto">`),t.push(je(e.headers,e.rows,e.rowHeaders,e.striped)),t.push(`</div>`),t.push(H(e.callout)),t.join(`
74
+ `)},gt=e=>{let t=[W(e)],n=e.stages||[],r=n.length;return t.push(`<div class="flex flex-col items-center gap-2 px-12 mt-6 flex-1">`),n.forEach((n,i)=>{let a=B(n.color,e.accentColor),o=100-i/Math.max(r-1,1)*55,s=`stages[${i}]`;t.push(`<div class="bg-${R(a)} rounded-lg flex items-center justify-between px-6 py-4" style="width: ${o}%">`),t.push(` <div class="flex items-center gap-3">`),t.push(` <span class="text-base font-bold text-white font-body"${P(`${s}.label`)}>${L(n.label)}</span>`),n.description&&t.push(` <span class="text-sm text-white/70 font-body"${P(`${s}.description`)}>${L(n.description)}</span>`),t.push(` </div>`),n.value&&t.push(` <span class="text-lg font-bold text-white font-body"${P(`${s}.value`)}>${L(n.value)}</span>`),t.push(`</div>`)}),t.push(`</div>`),t.push(H(e.callout)),t.join(`
75
+ `)},_t=75,vt=e=>{let t=[W(e)],n=e.items||[],r=yt(n),i=Math.max(...r.map(e=>e.top)),a=Math.min(...r.map(e=>e.bottom)),o=i-a||1;return t.push(`<div class="flex gap-1 px-12 mt-4 flex-1" style="min-height: 0">`),n.forEach((n,i)=>{let s=r[i],c=n.isTotal??!1,l=n.value>=0,u=bt(n.color,c,l),d=(s.bottom-a)/o*_t,f=Math.max((s.top-s.bottom)/o*_t,1.5),p=100-(d+f),m=xt(n.value,e.unit,c);t.push(`<div class="flex-1 relative" style="height: 100%">`),t.push(` <p class="absolute w-full text-xs font-bold text-d-text font-body text-center" style="top: ${p-4}%">${L(m)}</p>`),t.push(` <div class="absolute left-1 right-1 bg-${R(u)} rounded-t" style="bottom: ${d}%; height: ${f}%"></div>`),t.push(` <p class="absolute bottom-0 w-full text-xs text-d-muted font-body text-center" style="transform: translateY(100%)"${P(`items[${i}].label`)}>${L(n.label)}</p>`),t.push(`</div>`)}),t.push(`</div>`),t.push(`<div class="h-10 shrink-0"></div>`),t.push(H(e.callout)),t.join(`
76
+ `)},yt=e=>{let t=0;return e.map(e=>{if(e.isTotal)return t=e.value,{top:Math.max(e.value,0),bottom:Math.min(e.value,0)};let n=t;return t+=e.value,e.value>=0?{top:t,bottom:n}:{top:n,bottom:t}})},bt=(e,t,n)=>e||(t?`primary`:n?`success`:`danger`),xt=(e,t,n)=>`${!n&&e>0?`+`:``}${e}${t?` ${t}`:``}`,St=(e,t,n)=>{let r=B(e.accentColor,t),i=[];return i.push(`<div class="relative bg-d-card rounded-lg shadow-md overflow-hidden flex flex-col"${F(n)}>`),i.push(` <div class="absolute left-0 top-0 bottom-0 w-1 bg-${R(r)}"></div>`),i.push(` <div class="px-5 py-4 pl-6 flex-1">`),i.push(` <h3 class="text-lg font-bold text-d-text font-body leading-snug"${P(`${n}.title`)}>${L(e.title)}</h3>`),e.description&&i.push(` <p class="text-sm text-d-muted font-body mt-1 leading-relaxed"${P(`${n}.description`)}>${L(e.description)}</p>`),i.push(` </div>`),i.push(`</div>`),i.join(`
77
+ `)},Ct=2,wt=4,Tt=e=>{let t={1:`grid-cols-1`,2:`grid-cols-2`,3:`grid-cols-3`,4:`grid-cols-4`};return t[e]||t[Ct]},Et=e=>{let t=Math.min(Math.max(e.columns??Ct,1),wt),n=e.items||[],r=[W(e)];return r.push(`<div class="grid ${Tt(t)} gap-4 px-12 mt-5 flex-1 min-h-0 content-start">`),n.forEach((t,n)=>{r.push(St(t,e.accentColor,`items[${n}]`))}),r.push(`</div>`),r.push(H(e.callout)),r.join(`
78
+ `)},Dt=e=>{switch(e.layout){case`title`:return Ee(e);case`columns`:return it(e);case`comparison`:return ot(e);case`grid`:return st(e);case`bigQuote`:return ct(e);case`stats`:return lt(e);case`timeline`:return ut(e);case`split`:return pt(e);case`matrix`:return mt(e);case`table`:return ht(e);case`funnel`:return gt(e);case`waterfall`:return vt(e);case`manifesto`:return Et(e);default:return`<p class="text-white p-8">Unknown layout: ${N(String(e.layout))}</p>`}},Ot={fade:`@keyframes mulmoIntroFade{from{opacity:0}to{opacity:1}}`,"fade-up":`@keyframes mulmoIntroFadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}`,"fade-down":`@keyframes mulmoIntroFadeDown{from{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}`,"slide-left":`@keyframes mulmoIntroSlideLeft{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}`,"slide-right":`@keyframes mulmoIntroSlideRight{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}`,"zoom-in":`@keyframes mulmoIntroZoomIn{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}`},kt={fade:`mulmoIntroFade`,"fade-up":`mulmoIntroFadeUp`,"fade-down":`mulmoIntroFadeDown`,"slide-left":`mulmoIntroSlideLeft`,"slide-right":`mulmoIntroSlideRight`,"zoom-in":`mulmoIntroZoomIn`},At=40,jt=(e,t)=>{let n=Ot[e],r=kt[e];if(!(t!==void 0&&t>0))return`\n<style>${n} .mulmo-intro{animation:${r} .5s cubic-bezier(.22,.61,.36,1) both}</style>`;let i=[];for(let e=0;e<At;e++)i.push(`.mulmo-stagger [data-mulmo-item-path]:nth-child(${e+1}){animation-delay:${e*t}ms}`);return`\n<style>${n} .mulmo-stagger [data-mulmo-item-path]{animation:${r} .5s cubic-bezier(.22,.61,.36,1) both;animation-delay:0ms}${i.join(``)}</style>`},Mt=e=>{let t=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);return(t*299+n*587+r*114)/1e3<128},Nt=(e,t)=>{let{hasChart:n,hasMermaid:r,chartPlugins:i}=we(t),a=[];if(n&&(a.push(`<script src="https://cdn.jsdelivr.net/npm/chart.js"><\/script>`),i.forEach(e=>{a.push(`<script src="${e}"><\/script>`)})),r){let t=Mt(e.colors.bg)?`dark`:`default`;a.push(`<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"><\/script>
79
+ <script>mermaid.initialize({startOnLoad:true,theme:'${t}'})<\/script>`)}return a.join(`
80
+ `)},Pt={"top-left":`top-5 left-6`,"top-right":`top-5 right-6`,"bottom-left":`bottom-5 left-6`,"bottom-right":`bottom-5 right-6`},Ft=(e,t)=>{if(!e.backgroundImage)return``;let{dataUrl:n,size:r,opacity:i,bgOpacity:a}=e.backgroundImage,o=r===`fill`?`100% 100%`:r;if(a!==void 0){let e=[];return e.push(`<div class="absolute inset-0 z-0" style="background-image:url('${n}');background-size:${o};background-position:center;background-repeat:no-repeat;opacity:${i}"></div>`),e.push(`<div class="absolute inset-0 z-0" style="background-color:#${t};opacity:${a}"></div>`),e.join(`
81
+ `)}return`<div class="absolute inset-0 z-0" style="background-image:url('${n}');background-size:${o};background-position:center;background-repeat:no-repeat;opacity:${i}"></div>`},It=e=>{if(!e.logo)return``;let{dataUrl:t,position:n,width:r}=e.logo;return`<img class="absolute ${Pt[n]??Pt[`top-right`]} z-10" src="${t}" width="${r}" alt="" style="pointer-events:none">`},Lt=(e,t,n,r)=>{let i=Dt(t),a=se(e),o=Nt(e,t),s=t.style,c=r?.backgroundImage?.bgOpacity!==void 0,l=``,u=``;if(!c){let t=s?.bgGradient&&ce(s.bgGradient)?s.bgGradient:void 0,n=!t&&e.bgGradient&&ce(e.bgGradient)?e.bgGradient:void 0,r=t??n;r?u=` style="background:${r}"`:s?.bgColor?u=` style="background-color:#${ne(s.bgColor)}"`:l=`bg-d-bg`}let d=e.titleGradient&&ce(e.titleGradient)?`\n<style>h1.font-title.font-bold{background:${e.titleGradient};-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;}</style>`:``,f=t.density===`compact`?`
82
+ <style>.density-compact p,.density-compact li{font-size:14px!important;line-height:1.5}.density-compact h2{font-size:32px!important}.density-compact h3{font-size:17px!important}.density-compact .px-12{padding-left:28px!important;padding-right:28px!important}.density-compact .px-16{padding-left:36px!important;padding-right:36px!important}.density-compact .pt-5{padding-top:10px!important}.density-compact .mt-10{margin-top:16px!important}.density-compact .mt-5{margin-top:10px!important}.density-compact .gap-4{gap:10px!important}.density-compact .gap-6{gap:14px!important}.density-compact .space-y-2>*+*{margin-top:4px!important}.density-compact .space-y-4>*+*{margin-top:8px!important}.density-compact .p-5{padding:14px!important}.density-compact .p-10{padding:20px!important}</style>`:``,p=t.density===`compact`?` density-compact`:``,m=e.cardStyle===`glass`?`
83
+ <style>.card-glass .bg-d-card{background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02))!important;border:1px solid rgba(120,150,220,.22)!important;box-shadow:none!important}.card-glass .rounded-lg{border-radius:16px!important}</style>`:``,h=e.cardStyle===`glass`?` card-glass`:``,g=t.intro?jt(t.intro,t.staggerMs):``,_=t.intro&&t.staggerMs!==void 0&&t.staggerMs>0,v=t.intro?_?` mulmo-stagger`:` mulmo-intro`:``,y=s?.footer?`<p class="absolute bottom-2 right-4 text-xs text-d-dim font-body">${N(s.footer)}</p>`:``,b=n?`<div class="mt-auto px-4 pb-2"><p class="text-sm text-d-muted font-body opacity-80">${N(n)}</p></div>`:``,x=ne(s?.bgColor??e.colors.bg),S=r?Ft(r,x):``,C=r?It(r):``;return`<!DOCTYPE html>
84
+ <html lang="en" class="h-full">
85
+ <head>
86
+ <meta charset="UTF-8">
87
+ <meta name="viewport" content="width=1280">
88
+ <script src="https://cdn.tailwindcss.com"><\/script>
89
+ <script>tailwind.config = ${a}<\/script>
90
+ ${o}
91
+ <style>
92
+ html, body { height: 100%; margin: 0; padding: 0; overflow: hidden; }
93
+ </style>${d}${f}${m}${g}
94
+ </head>
95
+ <body class="h-full">
96
+ <div class="relative overflow-hidden ${l}${p}${h}${v} w-full h-full flex flex-col"${u}>
97
+ ${S}
98
+ <div class="relative z-[1] flex flex-col flex-1">
99
+ ${i}
100
+ ${b}
101
+ ${y}
102
+ </div>
103
+ ${C}
104
+ </div>
105
+ </body>
106
+ </html>`},G=C().regex(/^[0-9A-Fa-f]{6}$/),K=j([`primary`,`accent`,`success`,`warning`,`danger`,`info`,`highlight`]),Rt=E({bg:G,bgCard:G,bgCardAlt:G,text:G,textMuted:G,textDim:G,primary:G,accent:G,success:G,warning:G,danger:G,info:G,highlight:G}),zt=E({title:C(),body:C(),mono:C(),accent:C().optional()}),Bt=j([`glass`,`solid`]),Vt=E({colors:Rt,fonts:zt,bgGradient:C().optional(),titleGradient:C().optional(),cardStyle:Bt.optional()}),Ht=j([`lead`,`big`,`sub`]),Ut=E({type:A(`text`),value:C(),align:j([`left`,`center`,`right`]).optional(),bold:T().optional(),dim:T().optional(),fontSize:S().optional(),color:K.optional(),size:Ht.optional()}),Wt=O([C(),E({text:C()})]),Gt=j([`ok`,`no`,`warn`]),Kt=O([C(),E({text:C(),items:k(Wt).optional(),icon:Gt.optional(),size:Ht.optional()})]),qt=E({type:A(`bullets`),items:k(Kt),ordered:T().optional(),icon:C().optional(),size:Ht.optional()}),Jt=E({type:A(`code`),code:C(),language:C().optional()}),Yt=E({type:A(`callout`),text:C(),label:C().optional(),color:K.optional(),style:j([`quote`,`info`,`warning`]).optional(),size:Ht.optional()}),Xt=E({type:A(`metric`),value:C(),label:C(),color:K.optional(),change:C().optional()}),Zt=E({type:A(`divider`),color:K.optional()}),Qt=E({type:A(`tag`),text:C(),color:K.optional()}),$t=E({type:A(`image`),src:C(),alt:C().optional(),fit:j([`contain`,`cover`]).optional()}),en=E({type:A(`imageRef`),ref:C(),alt:C().optional(),fit:j([`contain`,`cover`]).optional()}),tn=E({type:A(`chart`),chartData:M(C(),D()),title:C().optional()}),nn=E({type:A(`mermaid`),code:C(),title:C().optional()}),rn=O([C(),E({text:C(),color:K.optional(),bold:T().optional(),badge:T().optional()})]),an=[Ut,qt,Jt,Yt,Xt,Zt,$t,en,tn,nn,E({type:A(`table`),title:C().optional(),headers:k(C()).optional(),rows:k(k(rn)),rowHeaders:T().optional(),striped:T().optional()}),Qt],on=x(`type`,[...an]),sn=E({type:A(`section`),label:C(),color:K.optional(),content:k(on).optional(),text:C().optional(),sidebar:T().optional()}),q=x(`type`,[...an,sn]),J=E({text:C(),label:C().optional(),color:K.optional(),align:j([`left`,`center`]).optional(),leftBar:T().optional()}),cn=E({title:C(),accentColor:K.optional(),content:k(q).optional(),footer:C().optional(),label:C().optional(),num:S().optional(),numLabel:C().optional(),icon:C().optional()}),ln=E({bgColor:C().optional(),bgGradient:C().optional(),decorations:T().optional(),bgOpacity:S().optional(),footer:C().optional()}),un=E({label:C(),color:K.optional()}),dn=j([`compact`,`default`]),fn=j([`small`,`default`,`large`,`hero`]),pn=j([`default`,`big`,`lead`]),mn=j([`fade`,`fade-up`,`fade-down`,`slide-left`,`slide-right`,`zoom-in`]),Y={accentColor:K.optional(),style:ln.optional(),eyebrow:un.optional(),density:dn.optional(),titleSize:fn.optional(),subtitleSize:pn.optional(),intro:mn.optional(),staggerMs:S().int().min(0).max(2e3).optional()},hn=E({layout:A(`title`),...Y,title:C(),subtitle:C().optional(),author:C().optional(),note:C().optional(),chips:k(C()).optional()}),gn=E({layout:A(`columns`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),columns:k(cn),showArrows:T().optional(),callout:J.optional(),bottomText:C().optional()}),_n=E({title:C(),accentColor:K.optional(),content:k(q).optional(),footer:C().optional(),ratio:S().positive().optional(),cardless:T().optional()}),vn=E({layout:A(`comparison`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),left:_n,right:_n,callout:J.optional()}),yn=E({title:C(),description:C().optional(),accentColor:K.optional(),num:S().optional(),icon:C().optional(),content:k(q).optional(),span:S().int().min(1).max(4).optional()}),bn=E({layout:A(`grid`),...Y,title:C(),subtitle:C().optional(),gridColumns:S().optional(),items:k(yn),footer:C().optional()}),xn=E({layout:A(`bigQuote`),...Y,quote:C(),author:C().optional(),role:C().optional()}),Sn=E({value:C(),label:C(),color:K.optional(),change:C().optional(),numLabel:C().optional()}),Cn=E({layout:A(`stats`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),stats:k(Sn),callout:J.optional()}),wn=E({date:C(),title:C(),description:C().optional(),color:K.optional(),done:T().optional(),hot:T().optional()}),Tn=E({layout:A(`timeline`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),items:k(wn)}),En=E({title:C().optional(),subtitle:C().optional(),label:C().optional(),labelBadge:T().optional(),accentColor:K.optional(),content:k(q).optional(),dark:T().optional(),ratio:S().optional(),valign:j([`top`,`center`,`bottom`]).optional()}),Dn=E({layout:A(`split`),...Y,left:En.optional(),right:En.optional()}),On=E({label:C(),items:k(C()).optional(),content:k(q).optional(),accentColor:K.optional()}),kn=E({layout:A(`matrix`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),rows:S().optional(),cols:S().optional(),xAxis:E({low:C().optional(),high:C().optional(),label:C().optional()}).optional(),yAxis:E({low:C().optional(),high:C().optional(),label:C().optional()}).optional(),cells:k(On)}),An=E({layout:A(`table`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),headers:k(C()),rows:k(k(rn)),rowHeaders:T().optional(),striped:T().optional(),callout:J.optional()}),jn=E({label:C(),value:S(),isTotal:T().optional(),color:K.optional()}),Mn=E({layout:A(`waterfall`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),items:k(jn),unit:C().optional(),callout:J.optional()}),Nn=E({label:C(),value:C().optional(),description:C().optional(),color:K.optional()}),Pn=E({layout:A(`funnel`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),stages:k(Nn),callout:J.optional()}),Fn=E({title:C(),description:C().optional(),accentColor:K.optional()}),In=E({layout:A(`manifesto`),...Y,title:C(),stepLabel:C().optional(),subtitle:C().optional(),items:k(Fn),columns:S().int().min(1).max(4).optional(),callout:J.optional()}),Ln=x(`kind`,[E({kind:A(`url`),url:w()}).strict(),E({kind:A(`base64`),data:C().min(1)}).strict(),E({kind:A(`path`),path:C().min(1)}).strict()]),Rn=E({source:Ln,size:j([`cover`,`contain`,`fill`,`auto`]).optional(),opacity:S().min(0).max(1).optional(),bgOpacity:S().min(0).max(1).optional()}),zn=E({logo:E({source:Ln,position:j([`top-left`,`top-right`,`bottom-left`,`bottom-right`]).default(`top-right`),width:S().positive().default(120)}).strict().optional(),backgroundImage:Rn.optional()}).strict(),Bn=x(`layout`,[hn,gn,vn,bn,xn,Cn,Tn,Dn,kn,An,Pn,Mn,In]);E({type:A(`slide`),theme:Vt.optional(),slide:Bn,reference:C().optional(),branding:zn.nullable().optional()}).strict();var Vn={colors:{bg:`FFFBEB`,bgCard:`FFFFFF`,bgCardAlt:`FEF3C7`,text:`1C1917`,textMuted:`57534E`,textDim:`A8A29E`,primary:`EA580C`,accent:`D946EF`,success:`16A34A`,warning:`CA8A04`,danger:`DC2626`,info:`0284C7`,highlight:`E11D48`},fonts:{title:`Georgia`,body:`Calibri`,mono:`Consolas`}},X=[`primary`,`accent`,`success`,`warning`,`danger`,`info`,`highlight`],Hn=[`lead`,`big`,`sub`],Un=[`ok`,`no`,`warn`],Wn=[`compact`,`default`],Gn=[`small`,`default`,`large`,`hero`],Kn=[`default`,`lead`,`big`],qn=[`top`,`center`,`bottom`],Jn=[`left`,`center`,`right`],Yn=[`quote`,`info`,`warning`],Xn=[`title`,`bigQuote`,`columns`,`comparison`,`grid`,`stats`,`timeline`,`split`,`matrix`,`table`,`funnel`,`waterfall`,`manifesto`],Zn=[`text`,`bullets`,`callout`,`tag`,`code`,`metric`,`divider`,`image`,`imageRef`,`chart`,`mermaid`,`section`,`table`],Z=e=>JSON.parse(JSON.stringify(e)),Qn=e=>{switch(e){case`text`:return{type:`text`,value:`新しいテキスト`};case`bullets`:return{type:`bullets`,items:[`新しい項目`]};case`callout`:return{type:`callout`,text:`強調するテキスト`};case`tag`:return{type:`tag`,text:`TAG`};case`code`:return{type:`code`,code:`// code`,language:`ts`};case`metric`:return{type:`metric`,value:`+42%`,label:`label`};case`divider`:return{type:`divider`};case`image`:return{type:`image`,src:``};case`imageRef`:return{type:`imageRef`,ref:``};case`chart`:return{type:`chart`,chartData:{type:`bar`}};case`mermaid`:return{type:`mermaid`,code:`graph TD;
107
+ A-->B;`};case`section`:return{type:`section`,label:`セクション`};case`table`:return{type:`table`,headers:[`A`,`B`],rows:[[`1`,`2`]]}}},$n=e=>{switch(e){case`title`:return{layout:`title`,title:`New title`};case`bigQuote`:return{layout:`bigQuote`,quote:`Quote here.`};case`columns`:return{layout:`columns`,title:`Columns`,columns:[{title:`Column A`},{title:`Column B`}]};case`comparison`:return{layout:`comparison`,title:`Compare`,left:{title:`Left`},right:{title:`Right`}};case`grid`:return{layout:`grid`,title:`Grid`,items:[{title:`A`},{title:`B`},{title:`C`}]};case`stats`:return{layout:`stats`,title:`Stats`,stats:[{value:`1`,label:`A`}]};case`timeline`:return{layout:`timeline`,title:`Timeline`,items:[{date:`Q1`,title:`Kickoff`}]};case`split`:return{layout:`split`,left:{title:`Left`},right:{title:`Right`}};case`matrix`:return{layout:`matrix`,title:`Matrix`,rows:2,cols:2,cells:[{label:`TL`},{label:`TR`},{label:`BL`},{label:`BR`}]};case`table`:return{layout:`table`,title:`Table`,headers:[`A`,`B`],rows:[[`1`,`2`]]};case`funnel`:return{layout:`funnel`,title:`Funnel`,stages:[{label:`Step 1`,value:`100`}]};case`waterfall`:return{layout:`waterfall`,title:`Waterfall`,items:[{label:`Start`,value:100}]};case`manifesto`:return{layout:`manifesto`,title:`Manifesto`,items:[{title:`Principle 1`}]}}},Q=(e,t,n)=>{let r=Math.max(0,Math.min(e.length-1,t+n));if(r===t)return e;let i=e.slice(),[a]=i.splice(t,1);return i.splice(r,0,a),i},er=e=>{if(!e)return null;let t=[],n=/([^.[\]]+)|\[(\d+)\]/g,r;for(;(r=n.exec(e))!==null;)r[2]===void 0?t.push(r[1]):t.push(Number(r[2]));return t.length?t:null},tr=(e,t,n)=>{let r=er(t);if(!r)return e;let i=JSON.parse(JSON.stringify(e)),a=i;for(let t=0;t<r.length-1;t++){let n=r[t];if(a&&typeof a==`object`){let t=a;if(t[n]===void 0||t[n]===null)return e;a=t[n]}else return e}let o=r[r.length-1];return a&&typeof a==`object`&&(a[o]=n),i},nr=e=>{let t=/^(.*?)\[(\d+)\]$/.exec(e);return t?{parent:t[1].replace(/\.$/,``),index:Number(t[2])}:null},rr=(e,t,n)=>{let r=nr(t),i=nr(n);if(!r||!i||r.parent!==i.parent)return e;let a=ir(e,r.parent);if(!Array.isArray(a)||r.index<0||r.index>=a.length||i.index<0||i.index>=a.length||r.index===i.index)return e;let o=Z(a),[s]=o.splice(r.index,1);return o.splice(i.index,0,s),tr(e,r.parent,o)},ir=(e,t)=>{let n=er(t);if(!n)return;let r=e;for(let e of n)if(r&&typeof r==`object`)r=r[e];else return;return r},ar=new Set([`primary`,`accent`,`success`,`warning`,`danger`,`info`,`highlight`]),or=(e,t,n,r,i)=>{let a=i[r-1]??``,o=i[r+e.length]??``,s=e=>/\w/.test(e),c=/^\s/.test(n),l=/\s$/.test(n);return s(a)||s(o)||c||l?`{warning:${n}}`:`*${n}*`},sr=e=>{let t=e;t=t.replace(/<br\s*\/?>/gi,`
108
+ `);for(let e=0;e<50;e++){let e=t;if(t=t.replace(/<(strong|b)\b[^>]*>([^<]*?)<\/\1>/gi,`**$2**`),t=t.replace(/<(em|i)\b[^>]*>([^<]*?)<\/\1>/gi,or),t=t.replace(/<span\b[^>]*class="([^"]*)"[^>]*>([^<]*?)<\/span>/gi,(e,t,n)=>{let r=/\btext-d-([a-z]+)\b/.exec(t);return r&&ar.has(r[1])?`{${r[1]}:${n}}`:n}),t=t.replace(/<span\b[^>]*>([^<]*?)<\/span>/gi,`$1`),t===e)break}let n=``;for(;n!==t;)n=t,t=t.replace(/<[^>]+>/g,``);return t=t.replace(/&(amp|lt|gt|quot|#39);/g,(e,t)=>{switch(t){case`amp`:return`&`;case`lt`:return`<`;case`gt`:return`>`;case`quot`:return`"`;case`#39`:return`'`;default:return e}}),t},cr={class:`flex h-full flex-col`},lr={class:`flex items-center justify-between border-b border-stone-200 px-4 py-3`},ur=[`value`],dr=[`onClick`,`onDragstart`,`onDragover`,`onDrop`],fr={class:`min-w-0 flex-1`},pr={class:`truncate font-medium`},mr={class:`text-[10px] uppercase tracking-wider text-stone-400`},hr={class:`flex shrink-0 items-center gap-0.5 opacity-0 group-hover:opacity-100`},gr=[`disabled`,`onClick`],_r=[`disabled`,`onClick`],vr=[`onClick`],yr=[`onClick`],br=((e,t)=>{let n=e.__vccOpts||e;for(let[e,r]of t)n[e]=r;return n})(p({__name:`DeckList`,props:{slides:{},selectedIndex:{}},emits:[`select`,`add`,`remove`,`duplicate`,`move`,`reorder`],setup(n,{emit:r}){let a=new WeakMap,o=0,p=e=>{let t=a.get(e);return t||(o+=1,t=`slide-${o}`,a.set(e,t)),t},g=r,b=(e,t)=>`title`in e&&typeof e.title==`string`&&e.title?e.title:e.layout===`bigQuote`&&e.quote?e.quote.slice(0,40):`Slide ${t+1}`,x=d(null),S=d(null),C=(e,t)=>{x.value=t,e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,String(t)))},w=(e,t)=>{x.value===null||x.value===t||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),S.value=t)},T=(e,t)=>{x.value===null||x.value===t||(e.preventDefault(),g(`reorder`,x.value,t),x.value=null,S.value=null)},E=()=>{x.value=null,S.value=null};return(r,a)=>(s(),c(`div`,cr,[_(`header`,lr,[a[2]||=_(`h2`,{class:`text-sm font-semibold tracking-wide text-stone-700`},`Deck`,-1),_(`select`,{class:`rounded-md bg-stone-900 px-2.5 py-1 text-xs font-medium text-white hover:bg-stone-800`,onChange:a[0]||=e=>{let t=e.target.value;t&&(g(`add`,t),e.target.value=``)}},[a[1]||=_(`option`,{value:``},`+ Add slide`,-1),(s(!0),c(t,null,l(f(Xn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,ur))),128))],32)]),v(m,{tag:`ul`,name:`slide`,class:`flex-1 overflow-y-auto py-2`},{default:y(()=>[(s(!0),c(t,null,l(n.slides,(t,r)=>(s(),c(`li`,{key:p(t),class:e([`slide-item group flex items-center justify-between gap-1 border-l-2 px-3 py-2 text-sm cursor-pointer`,r===n.selectedIndex?`border-stone-900 bg-stone-100 text-stone-900`:`border-transparent text-stone-600 hover:bg-stone-50`,S.value===r&&x.value!==null&&x.value!==r?`bg-emerald-50 border-emerald-500`:``,x.value===r?`opacity-40`:``]),draggable:!0,onClick:e=>g(`select`,r),onDragstart:e=>C(e,r),onDragover:e=>w(e,r),onDrop:e=>T(e,r),onDragend:E},[_(`div`,fr,[_(`div`,pr,h(b(t,r)),1),_(`div`,mr,h(t.layout),1)]),_(`div`,hr,[_(`button`,{type:`button`,class:`rounded px-1 text-xs text-stone-500 hover:bg-stone-200 hover:text-stone-700 disabled:opacity-30`,disabled:r===0,title:`up`,onClick:i(e=>g(`move`,r,-1),[`stop`])},` ↑ `,8,gr),_(`button`,{type:`button`,class:`rounded px-1 text-xs text-stone-500 hover:bg-stone-200 hover:text-stone-700 disabled:opacity-30`,disabled:r===n.slides.length-1,title:`down`,onClick:i(e=>g(`move`,r,1),[`stop`])},` ↓ `,8,_r),_(`button`,{type:`button`,class:`rounded px-1 text-xs text-stone-500 hover:bg-stone-200 hover:text-stone-700`,title:`duplicate`,onClick:i(e=>g(`duplicate`,r),[`stop`])},` ⎘ `,8,vr),n.slides.length>1?(s(),c(`button`,{key:0,type:`button`,class:`rounded px-1 text-xs text-stone-400 hover:bg-rose-100 hover:text-rose-700`,title:`remove`,onClick:i(e=>g(`remove`,r),[`stop`])},` × `,8,yr)):u(``,!0)])],42,dr))),128))]),_:1})]))}}),[[`__scopeId`,`data-v-a7f90e20`]]),xr=[`title`,`onClick`],Sr=p({__name:`InlineToolbar`,props:{x:{},y:{},visible:{type:Boolean}},emits:[`bold`,`emphasis`,`color`,`clear`],setup(n,{emit:r}){let o=r;return(r,d)=>n.visible?(s(),c(`div`,{key:0,class:`fixed z-50 flex items-center gap-1 rounded-lg border border-stone-300 bg-white px-1.5 py-1 text-xs shadow-lg`,style:a({left:`${n.x}px`,top:`${n.y}px`}),onMousedown:d[3]||=i(()=>{},[`prevent`])},[_(`button`,{type:`button`,class:`rounded px-2 py-1 font-bold hover:bg-stone-100`,title:`Bold (** … **) — click again to remove`,onClick:d[0]||=e=>o(`bold`)},`B`),_(`button`,{type:`button`,class:`rounded px-2 py-1 font-extrabold text-amber-500 hover:bg-stone-100`,title:`Highlight in amber (* … *) — click again to remove`,onClick:d[1]||=e=>o(`emphasis`)},` ★ `),d[4]||=_(`div`,{class:`mx-1 h-4 w-px bg-stone-200`},null,-1),(s(!0),c(t,null,l(f(X),t=>(s(),c(`button`,{key:t,type:`button`,class:e([`h-5 w-5 rounded-full border border-stone-200 hover:scale-110 transition-transform`,{"bg-sky-500":t===`primary`,"bg-violet-500":t===`accent`,"bg-emerald-500":t===`success`,"bg-amber-500":t===`warning`,"bg-rose-500":t===`danger`,"bg-cyan-500":t===`info`,"bg-fuchsia-500":t===`highlight`}]),title:`Color: ${t} ({${t}:...})`,onClick:e=>o(`color`,t)},null,10,xr))),128)),d[5]||=_(`div`,{class:`mx-1 h-4 w-px bg-stone-200`},null,-1),_(`button`,{type:`button`,class:`rounded px-2 py-1 text-stone-500 hover:bg-stone-100`,title:`Clear all formatting in selection`,onClick:d[2]||=e=>o(`clear`)},` × `)],36)):u(``,!0)}}),Cr={class:`flex h-full flex-col p-6`},wr={class:`mb-3 flex items-center justify-between`},Tr={class:`text-xs text-stone-400`},Er={class:`relative flex-1 overflow-hidden rounded-lg border border-stone-300 bg-white shadow-sm`},Dr=[`srcdoc`],Or=p({__name:`SlidePreview`,props:{slide:{},theme:{}},emits:[`update`],setup(e,{emit:t}){let n=e,i=t,a=r(()=>{try{return Lt(n.theme,n.slide)}catch(e){return`<!doctype html><html><body><pre style="padding:24px;color:#dc2626;font-family:monospace">${String(e)}</pre></body></html>`}}),l=d(null),u=d({x:0,y:0,visible:!1}),f=d(null),p=new Map,m=()=>{let e=l.value?.contentDocument;e&&(p.clear(),e.querySelectorAll(`[data-mulmo-item-path]`).forEach(e=>{let t=e.getAttribute(`data-mulmo-item-path`);if(!t)return;let n=e.getBoundingClientRect();p.set(t,{x:n.left,y:n.top})}))},y=()=>{if(p.size===0)return;let e=l.value?.contentDocument;if(!e){p.clear();return}e.querySelectorAll(`[data-mulmo-item-path]`).forEach(e=>{let t=e.getAttribute(`data-mulmo-item-path`);if(!t)return;let n=p.get(t);if(!n)return;let r=e.getBoundingClientRect(),i=n.x-r.left,a=n.y-r.top;if(i===0&&a===0)return;e.style.transition=`none`,e.style.transform=`translate(${i}px, ${a}px)`,e.offsetWidth,e.style.transition=`transform 280ms cubic-bezier(0.22, 0.61, 0.36, 1)`,e.style.transform=``;let o=()=>{e.style.transition=``,e.style.transform=``,e.removeEventListener(`transitionend`,o)};e.addEventListener(`transitionend`,o)}),p.clear()},b=()=>{u.value={x:0,y:0,visible:!1}},x=e=>{let t=e.contentDocument;if(!t)return;let n=t.getSelection();if(!n||n.isCollapsed||n.rangeCount===0){b();return}let r=n.anchorNode,i=r instanceof Element?r.closest(`[data-mulmo-path]`):r?.parentElement?.closest(`[data-mulmo-path]`)??null;if(!i||i.getAttribute(`contenteditable`)!==`true`){b();return}let a=n.getRangeAt(0).getBoundingClientRect(),o=e.getBoundingClientRect();u.value={x:o.left+a.left,y:Math.max(0,o.top+a.top-36-4),visible:!0}},S=e=>{let t=e.getAttribute(`data-mulmo-path`);if(!t)return;let r=sr(e.innerHTML).replace(/\r/g,``);e.removeAttribute(`contenteditable`),b(),i(`update`,tr(n.slide,t,r))},C=e=>{let t=e.contentDocument;if(!t||!t.body)return;if(!t.getElementById(`__mulmo_edit_style`)){let e=t.createElement(`style`);e.id=`__mulmo_edit_style`,e.textContent=`
109
+ [data-mulmo-path]:hover { outline: 2px solid rgba(56,189,248,.55); outline-offset: 2px; cursor: text; }
110
+ [data-mulmo-path][contenteditable="true"] { outline: 2px solid rgba(56,189,248,.9); outline-offset: 2px; box-shadow: 0 0 0 4px rgba(56,189,248,.15); }
111
+ [data-mulmo-item-path][draggable="true"] { cursor: grab; }
112
+ [data-mulmo-item-path].mulmo-dragging { opacity: 0.4; }
113
+ [data-mulmo-item-path].mulmo-drop-target { outline: 2px dashed rgba(16,185,129,.8); outline-offset: 2px; }
114
+ `,t.head?.appendChild(e)}let r=()=>{t.querySelectorAll(`[data-mulmo-item-path]`).forEach(e=>{e.hasAttribute(`draggable`)||e.setAttribute(`draggable`,`true`)})};r(),new MutationObserver(r).observe(t.body,{childList:!0,subtree:!0});let a=null;t.body.addEventListener(`dragstart`,e=>{let t=e.target?.closest(`[data-mulmo-item-path]`);t&&(a=t.getAttribute(`data-mulmo-item-path`),t.classList.add(`mulmo-dragging`),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`,e.dataTransfer.setData(`text/plain`,a??``)))}),t.body.addEventListener(`dragend`,e=>{(e.target?.closest(`[data-mulmo-item-path]`))?.classList.remove(`mulmo-dragging`),t.querySelectorAll(`.mulmo-drop-target`).forEach(e=>e.classList.remove(`mulmo-drop-target`)),a=null}),t.body.addEventListener(`dragover`,e=>{if(!a)return;let n=e.target?.closest(`[data-mulmo-item-path]`);if(!n)return;let r=n.getAttribute(`data-mulmo-item-path`);if(!r||r===a)return;let i=nr(a),o=nr(r);!i||!o||i.parent!==o.parent||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),t.querySelectorAll(`.mulmo-drop-target`).forEach(e=>e!==n&&e.classList.remove(`mulmo-drop-target`)),n.classList.add(`mulmo-drop-target`))}),t.body.addEventListener(`drop`,e=>{if(!a)return;let r=e.target?.closest(`[data-mulmo-item-path]`);if(!r)return;let o=r.getAttribute(`data-mulmo-item-path`);if(!o||o===a)return;e.preventDefault();let s=rr(n.slide,a,o);a=null,t.querySelectorAll(`.mulmo-drop-target`).forEach(e=>e.classList.remove(`mulmo-drop-target`)),s!==n.slide&&(m(),i(`update`,s))}),t.body.addEventListener(`click`,n=>{let r=n.target?.closest(`[data-mulmo-path]`);if(!r){b();return}r.getAttribute(`contenteditable`)!==`true`&&(r.setAttribute(`contenteditable`,`true`),f.value=r,t.activeElement!==r&&r.focus(),x(e))}),t.body.addEventListener(`blur`,e=>{let t=e.target;t?.getAttribute(`contenteditable`)===`true`&&S(t)},!0),t.body.addEventListener(`keydown`,e=>{let t=e.target?.closest(`[data-mulmo-path]`);!t||t.getAttribute(`contenteditable`)!==`true`||(e.key===`Enter`&&!e.shiftKey?(e.preventDefault(),t.blur()):e.key===`Escape`&&(e.preventDefault(),t.removeAttribute(`contenteditable`),b(),t.blur()))}),t.addEventListener(`selectionchange`,()=>x(e)),t.addEventListener(`scroll`,()=>x(e),!0)},w=()=>{let e=l.value;e&&(C(e),y())},T=()=>{let e=l.value?.contentDocument,t=e?.getSelection();return!e||!t||t.isCollapsed||t.rangeCount===0?null:{doc:e,sel:t,range:t.getRangeAt(0)}},E=e=>{let t=e;for(;t&&t.nodeType===3;)t=t.parentNode;return t?.closest(`[data-mulmo-path]`)??null},D=e=>{let t=e=>{let t=e.tagName.toLowerCase();return t===`strong`||t===`em`||t===`b`||t===`i`?!0:t===`span`?/text-d-[a-z]+/.test(e.getAttribute(`class`)??``):!1},n=(e,t)=>e.tagName===t.tagName?(e.getAttribute(`class`)??``)===(t.getAttribute(`class`)??``):!1,r=e=>{let t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}};for(Array.from(e.querySelectorAll(`strong, em, b, i, span`)).forEach(e=>{t(e)&&e.textContent===``&&e.remove()});;){let i=Array.from(e.querySelectorAll(`strong, em, b, i, span`)).find(e=>t(e)&&e.parentElement&&t(e.parentElement)&&n(e,e.parentElement));if(!i)break;r(i)}for(;;){let r=!1;if(Array.from(e.querySelectorAll(`strong, em, b, i, span`)).forEach(e=>{if(!t(e))return;let i=e.nextSibling;if(i&&i.nodeType===1&&n(e,i)){for(;i.firstChild;)e.appendChild(i.firstChild);i.remove(),r=!0}}),!r)break}e.normalize()},O=(e,t,n,r)=>{let i=e;for(;i&&i!==r;){if(i.nodeType===1){let e=i;if(e.tagName.toLowerCase()===t.toLowerCase()&&(e.getAttribute(`class`)??``)===(n??``))return e}i=i.parentNode}return null},k=(e,t,n,r)=>{if(!r)return;let i=e.createTreeWalker(n,NodeFilter.SHOW_TEXT),a;for(;a=i.nextNode();){let n=(a.nodeValue??``).indexOf(r);if(n>=0){let i=e.createRange();i.setStart(a,n),i.setEnd(a,n+r.length),t.removeAllRanges(),t.addRange(i);return}}},A=e=>{let t=e.parentNode;if(t){for(;e.firstChild;)t.insertBefore(e.firstChild,e);t.removeChild(e)}},j=(e,t,n,r)=>{try{let i=e.createElement(n);return r&&i.setAttribute(`class`,r),t.surroundContents(i),i}catch{let i=t.extractContents(),a=e.createElement(n);return r&&a.setAttribute(`class`,r),a.appendChild(i),t.insertNode(a),a}},M=(e,t,n)=>{t.removeAllRanges();let r=e.createRange();r.selectNodeContents(n),t.addRange(r)},N=(e,t)=>{let n=T();if(!n||!n.range.toString().trim())return;let r=E(n.range.commonAncestorContainer);if(!r)return;let i=O(n.range.startContainer,e,t,r),a=O(n.range.endContainer,e,t,r);if(i&&i===a){let e=i.textContent??``;A(i),D(r),k(n.doc,n.sel,r,e),x(l.value);return}let o=j(n.doc,n.range,e,t);D(r),M(n.doc,n.sel,o),x(l.value)},P=()=>N(`strong`),F=()=>N(`em`,`text-d-warning not-italic font-bold`),I=e=>N(`span`,`text-d-${e}`),ee=()=>{let e=T();if(!e)return;let t=e.range.toString();if(!t)return;e.range.deleteContents(),e.range.insertNode(e.doc.createTextNode(t));let n=E(e.range.commonAncestorContainer);n&&D(n),x(l.value)};return o(()=>b()),(t,n)=>(s(),c(`div`,Cr,[_(`div`,wr,[n[0]||=_(`h2`,{class:`text-sm font-semibold tracking-wide text-stone-700`},[g(` Live preview `),_(`span`,{class:`text-[10px] font-normal text-stone-400`},`— click text to edit, select for toolbar`)],-1),_(`span`,Tr,h(e.slide.layout),1)]),_(`div`,Er,[_(`iframe`,{ref_key:`iframeRef`,ref:l,srcdoc:a.value,class:`absolute inset-0 h-full w-full`,sandbox:`allow-scripts allow-same-origin`,title:`slide preview`,onLoad:w},null,40,Dr)]),v(Sr,{x:u.value.x,y:u.value.y,visible:u.value.visible,onBold:P,onEmphasis:F,onColor:I,onClear:ee},null,8,[`x`,`y`,`visible`])]))}}),kr={class:`rounded-md border border-stone-200 bg-stone-50/40 p-2.5 space-y-2 text-xs`},Ar={class:`flex items-center gap-2`},jr=[`value`],Mr=[`value`],Nr={class:`text-[10px] text-stone-400`},Pr={class:`ml-auto flex items-center gap-1`},Fr=[`disabled`],Ir=[`disabled`],Lr=[`value`],Rr={class:`flex flex-wrap gap-2`},zr={class:`flex items-center gap-1`},Br=[`value`],Vr=[`value`],Hr={class:`flex items-center gap-1`},Ur=[`value`],Wr=[`value`],Gr={class:`flex items-center gap-1`},Kr=[`value`],qr=[`value`],Jr={class:`flex items-center gap-1`},Yr=[`checked`],Xr={class:`flex items-center gap-1`},Zr=[`checked`],Qr={class:`flex flex-wrap gap-2`},$r={class:`flex items-center gap-1`},ei=[`value`],ti=[`value`],ni={class:`flex items-center gap-1`},ri=[`checked`],ii={class:`flex items-center gap-1`},ai=[`value`],oi={class:`space-y-1`},si=[`value`,`onInput`],ci=[`value`,`onChange`],li=[`value`],ui=[`value`,`onChange`],di=[`value`],fi=[`onClick`],pi=[`value`],mi=[`value`],hi={class:`flex flex-wrap gap-2`},gi={class:`flex items-center gap-1`},_i=[`value`],vi=[`value`],yi={class:`flex items-center gap-1`},bi=[`value`],xi=[`value`],Si={class:`flex items-center gap-1`},Ci=[`value`],wi=[`value`],Ti=[`value`],Ei={class:`flex items-center gap-1 text-[11px]`},Di=[`value`],Oi=[`value`],ki=[`value`],Ai=[`value`],ji={class:`flex gap-2`},Mi=[`value`],Ni=[`value`],Pi={class:`flex gap-2`},Fi=[`value`],Ii=[`value`],Li=[`value`],Ri={key:6,class:`flex items-center gap-1 text-[11px]`},zi=[`value`],Bi=[`value`],Vi=[`value`],Hi=[`value`],Ui=[`value`],Wi=[`value`],Gi=[`value`],Ki=[`value`],qi=[`value`],Ji=[`value`],Yi=[`value`],Xi=[`value`],Zi=[`value`],Qi={class:`w-full text-[11px]`},$i={class:`flex items-center gap-1`},ea=[`value`,`onInput`],ta=[`onClick`],na=[`value`,`onInput`],ra={class:`px-1`},ia=[`onClick`],aa=p({__name:`ContentBlockEditor`,props:{block:{},index:{},total:{}},emits:[`update`,`remove`,`move`],setup(e,{emit:n}){let r=e,i=n,a=e=>{i(`update`,{...r.block,...e})},o=e=>{e!==r.block.type&&i(`update`,Qn(e))},d=e=>typeof e==`string`?e:e.text,p=e=>typeof e!=`string`,m=(e,t)=>{r.block.type===`bullets`&&a({items:r.block.items.map((n,r)=>{if(r!==e)return n;let i=p(n)?{...n}:{text:n};return Object.assign(i,t),i.icon!==void 0||i.size!==void 0||(i.items?.length??0)>0?i:i.text})})},v=(e,t)=>{r.block.type===`bullets`&&a({items:r.block.items.map((n,r)=>r===e?p(n)?{...n,text:t}:t:n)})},y=()=>{r.block.type===`bullets`&&a({items:[...r.block.items,`新しい項目`]})},b=e=>{if(r.block.type!==`bullets`)return;let t=r.block.items.slice();t.splice(e,1),a({items:t})},x=(e,t,n)=>{if(r.block.type!==`table`)return;let i=Z(r.block.rows);i[e]||(i[e]=[]),i[e][t]=n,a({rows:i})},S=()=>{if(r.block.type!==`table`)return;let e=r.block.headers?.length??1,t=Z(r.block.rows);t.push(Array(e).fill(``)),a({rows:t})},C=e=>{if(r.block.type!==`table`)return;let t=Z(r.block.rows);t.splice(e,1),a({rows:t})},w=()=>{r.block.type===`table`&&a({headers:(r.block.headers??[]).concat([`新列`]),rows:r.block.rows.map(e=>e.concat([``]))})},T=e=>{if(r.block.type!==`table`)return;let t=(r.block.headers??[]).slice();t.splice(e,1),a({headers:t,rows:r.block.rows.map(t=>{let n=t.slice();return n.splice(e,1),n})})},E=(e,t)=>{if(r.block.type!==`table`)return;let n=(r.block.headers??[]).slice();n[e]=t,a({headers:n})},D=e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e?String(e.text):``;return(n,r)=>(s(),c(`div`,kr,[_(`div`,Ar,[_(`select`,{value:e.block.type,class:`rounded border border-stone-300 bg-white px-1.5 py-1 text-[11px] font-mono`,onChange:r[0]||=e=>o(e.target.value)},[(s(!0),c(t,null,l(f(Zn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Mr))),128))],40,jr),_(`span`,Nr,`#`+h(e.index+1),1),_(`div`,Pr,[_(`button`,{type:`button`,disabled:e.index===0,class:`rounded px-1.5 py-0.5 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:r[1]||=e=>i(`move`,-1)},` ↑ `,8,Fr),_(`button`,{type:`button`,disabled:e.index===e.total-1,class:`rounded px-1.5 py-0.5 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:r[2]||=e=>i(`move`,1)},` ↓ `,8,Ir),_(`button`,{type:`button`,class:`rounded px-1.5 py-0.5 text-rose-600 hover:bg-rose-100`,onClick:r[3]||=e=>i(`remove`)},`×`)])]),e.block.type===`text`?(s(),c(t,{key:0},[_(`textarea`,{value:e.block.value,rows:`2`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1 font-mono`,onInput:r[4]||=e=>a({value:e.target.value})},null,40,Lr),_(`div`,Rr,[_(`label`,zr,[r[38]||=g(`size `,-1),_(`select`,{value:e.block.size??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[5]||=e=>a({size:e.target.value||void 0})},[r[37]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(Hn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Vr))),128))],40,Br)]),_(`label`,Hr,[r[40]||=g(`align `,-1),_(`select`,{value:e.block.align??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[6]||=e=>a({align:e.target.value||void 0})},[r[39]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(Jn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Wr))),128))],40,Ur)]),_(`label`,Gr,[r[42]||=g(`color `,-1),_(`select`,{value:e.block.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[7]||=e=>a({color:e.target.value||void 0})},[r[41]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,qr))),128))],40,Kr)]),_(`label`,Jr,[_(`input`,{type:`checkbox`,checked:!!e.block.bold,onChange:r[8]||=e=>a({bold:e.target.checked||void 0})},null,40,Yr),r[43]||=g(`bold`,-1)]),_(`label`,Xr,[_(`input`,{type:`checkbox`,checked:!!e.block.dim,onChange:r[9]||=e=>a({dim:e.target.checked||void 0})},null,40,Zr),r[44]||=g(`dim`,-1)])])],64)):u(``,!0),e.block.type===`bullets`?(s(),c(t,{key:1},[_(`div`,Qr,[_(`label`,$r,[r[46]||=g(`size `,-1),_(`select`,{value:e.block.size??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[10]||=e=>a({size:e.target.value||void 0})},[r[45]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(Hn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,ti))),128))],40,ei)]),_(`label`,ni,[_(`input`,{type:`checkbox`,checked:!!e.block.ordered,onChange:r[11]||=e=>a({ordered:e.target.checked||void 0})},null,40,ri),r[47]||=g(`ordered`,-1)]),_(`label`,ii,[r[48]||=g(`marker `,-1),_(`input`,{type:`text`,value:e.block.icon??``,placeholder:`• ★ ▶`,class:`w-12 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:r[12]||=e=>a({icon:e.target.value||void 0})},null,40,ai)])]),_(`ul`,oi,[(s(!0),c(t,null,l(e.block.items,(e,n)=>(s(),c(`li`,{key:n,class:`flex flex-wrap items-start gap-1 rounded border border-stone-200 bg-white p-1`},[_(`input`,{type:`text`,value:d(e),class:`min-w-0 flex-1 rounded border border-stone-200 px-1.5 py-0.5`,onInput:e=>v(n,e.target.value)},null,40,si),_(`select`,{value:p(e)?e.icon??``:``,class:`rounded border border-stone-300 bg-white px-1 py-0.5 text-[10px]`,onChange:e=>m(n,{icon:e.target.value||void 0})},[r[49]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(Un),e=>(s(),c(`option`,{key:e,value:e},h(e),9,li))),128))],40,ci),_(`select`,{value:p(e)?e.size??``:``,class:`rounded border border-stone-300 bg-white px-1 py-0.5 text-[10px]`,onChange:e=>m(n,{size:e.target.value||void 0})},[r[50]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(Hn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,di))),128))],40,ui),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>b(n)},`×`,8,fi)]))),128))]),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:y},`+ 項目を追加`)],64)):u(``,!0),e.block.type===`callout`?(s(),c(t,{key:2},[_(`input`,{type:`text`,value:e.block.label??``,placeholder:`label (optional)`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[13]||=e=>a({label:e.target.value||void 0})},null,40,pi),_(`textarea`,{value:e.block.text,rows:`2`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[14]||=e=>a({text:e.target.value})},null,40,mi),_(`div`,hi,[_(`label`,gi,[r[52]||=g(`style `,-1),_(`select`,{value:e.block.style??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[15]||=e=>a({style:e.target.value||void 0})},[r[51]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(Yn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,vi))),128))],40,_i)]),_(`label`,yi,[r[54]||=g(`color `,-1),_(`select`,{value:e.block.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[16]||=e=>a({color:e.target.value||void 0})},[r[53]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,xi))),128))],40,bi)]),_(`label`,Si,[r[56]||=g(`size `,-1),_(`select`,{value:e.block.size??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[17]||=e=>a({size:e.target.value||void 0})},[r[55]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(Hn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,wi))),128))],40,Ci)])])],64)):u(``,!0),e.block.type===`tag`?(s(),c(t,{key:3},[_(`input`,{type:`text`,value:e.block.text,placeholder:`TAG TEXT`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1 font-mono uppercase tracking-wider`,onInput:r[18]||=e=>a({text:e.target.value})},null,40,Ti),_(`label`,Ei,[r[58]||=g(`color `,-1),_(`select`,{value:e.block.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[19]||=e=>a({color:e.target.value||void 0})},[r[57]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Oi))),128))],40,Di)])],64)):u(``,!0),e.block.type===`code`?(s(),c(t,{key:4},[_(`input`,{type:`text`,value:e.block.language??``,placeholder:`language`,class:`w-32 rounded border border-stone-300 bg-white px-2 py-1 font-mono`,onInput:r[20]||=e=>a({language:e.target.value||void 0})},null,40,ki),_(`textarea`,{value:e.block.code,rows:`4`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1 font-mono text-[11px]`,onInput:r[21]||=e=>a({code:e.target.value})},null,40,Ai)],64)):u(``,!0),e.block.type===`metric`?(s(),c(t,{key:5},[_(`div`,ji,[_(`input`,{type:`text`,value:e.block.value,placeholder:`value`,class:`flex-1 rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[22]||=e=>a({value:e.target.value})},null,40,Mi),_(`input`,{type:`text`,value:e.block.label,placeholder:`label`,class:`flex-1 rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[23]||=e=>a({label:e.target.value})},null,40,Ni)]),_(`div`,Pi,[_(`input`,{type:`text`,value:e.block.change??``,placeholder:`+5%`,class:`w-24 rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[24]||=e=>a({change:e.target.value||void 0})},null,40,Fi),_(`select`,{value:e.block.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[25]||=e=>a({color:e.target.value||void 0})},[r[59]||=_(`option`,{value:``},`color`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Li))),128))],40,Ii)])],64)):u(``,!0),e.block.type===`divider`?(s(),c(`label`,Ri,[r[61]||=g(`color `,-1),_(`select`,{value:e.block.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[26]||=e=>a({color:e.target.value||void 0})},[r[60]||=_(`option`,{value:``},`default`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Bi))),128))],40,zi)])):u(``,!0),e.block.type===`image`?(s(),c(t,{key:7},[_(`input`,{type:`text`,value:e.block.src,placeholder:`src (url / data url)`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[27]||=e=>a({src:e.target.value})},null,40,Vi),_(`input`,{type:`text`,value:e.block.alt??``,placeholder:`alt`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[28]||=e=>a({alt:e.target.value||void 0})},null,40,Hi)],64)):u(``,!0),e.block.type===`imageRef`?(s(),c(t,{key:8},[_(`input`,{type:`text`,value:e.block.ref,placeholder:`ref key`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1 font-mono`,onInput:r[29]||=e=>a({ref:e.target.value})},null,40,Ui),_(`input`,{type:`text`,value:e.block.alt??``,placeholder:`alt`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[30]||=e=>a({alt:e.target.value||void 0})},null,40,Wi)],64)):u(``,!0),e.block.type===`chart`?(s(),c(t,{key:9},[_(`input`,{type:`text`,value:e.block.title??``,placeholder:`title`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[31]||=e=>a({title:e.target.value||void 0})},null,40,Gi),_(`textarea`,{value:JSON.stringify(e.block.chartData,null,2),rows:`5`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1 font-mono text-[11px]`,onInput:r[32]||=e=>{(()=>{try{a({chartData:JSON.parse(e.target.value)})}catch{}})()}},null,40,Ki)],64)):u(``,!0),e.block.type===`mermaid`?(s(),c(t,{key:10},[_(`input`,{type:`text`,value:e.block.title??``,placeholder:`title`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[33]||=e=>a({title:e.target.value||void 0})},null,40,qi),_(`textarea`,{value:e.block.code,rows:`5`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1 font-mono text-[11px]`,onInput:r[34]||=e=>a({code:e.target.value})},null,40,Ji)],64)):u(``,!0),e.block.type===`section`?(s(),c(t,{key:11},[_(`input`,{type:`text`,value:e.block.label,placeholder:`section label`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[35]||=e=>a({label:e.target.value})},null,40,Yi),_(`select`,{value:e.block.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[36]||=e=>a({color:e.target.value||void 0})},[r[62]||=_(`option`,{value:``},`color`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Zi))),128))],40,Xi),r[63]||=_(`p`,{class:`text-[10px] text-stone-400`},`section の中身は現状 JSON 編集 (将来拡張)。`,-1)],64)):u(``,!0),e.block.type===`table`?(s(),c(t,{key:12},[_(`table`,Qi,[_(`thead`,null,[_(`tr`,null,[(s(!0),c(t,null,l(e.block.headers??[],(e,t)=>(s(),c(`th`,{key:t,class:`px-1 py-0.5 text-left`},[_(`div`,$i,[_(`input`,{type:`text`,value:e,class:`min-w-0 flex-1 rounded border border-stone-300 bg-white px-1 py-0.5 font-bold`,onInput:e=>E(t,e.target.value)},null,40,ea),_(`button`,{type:`button`,class:`text-rose-600`,onClick:e=>T(t)},`×`,8,ta)])]))),128))])]),_(`tbody`,null,[(s(!0),c(t,null,l(e.block.rows,(e,n)=>(s(),c(`tr`,{key:n},[(s(!0),c(t,null,l(e,(e,t)=>(s(),c(`td`,{key:t,class:`px-1 py-0.5`},[_(`input`,{type:`text`,value:D(e),class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>x(n,t,e.target.value)},null,40,na)]))),128)),_(`td`,ra,[_(`button`,{type:`button`,class:`text-rose-600`,onClick:e=>C(n)},`×`,8,ia)])]))),128))])]),_(`div`,{class:`flex gap-2`},[_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:S},`+ 行`),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:w},`+ 列`)])],64)):u(``,!0)]))}}),oa={class:`space-y-2`},sa={class:`flex items-center justify-between`},ca={class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},la=[`value`],ua={key:0,class:`rounded border border-dashed border-stone-300 bg-stone-50 p-3 text-center text-[11px] text-stone-400`},$=p({__name:`ContentBlocksEditor`,props:{blocks:{},label:{}},emits:[`update`],setup(e,{emit:r}){let i=e,a=r,o=()=>i.blocks??[],d=(e,t)=>{let n=o().slice();n[e]=t,a(`update`,n)},p=e=>{let t=o().slice();t.splice(e,1),a(`update`,t)},m=(e,t)=>{a(`update`,Q(o(),e,t))},g=e=>{a(`update`,o().concat([Qn(e)]))};return(r,i)=>(s(),c(`div`,oa,[_(`div`,sa,[_(`span`,ca,h(e.label??`Content`),1),_(`select`,{class:`rounded border border-stone-300 bg-white px-1.5 py-0.5 text-[11px]`,onChange:i[0]||=e=>{let t=e.target.value;t&&(g(t),e.target.value=``)}},[i[1]||=_(`option`,{value:``},`+ ブロック追加`,-1),(s(!0),c(t,null,l(f(Zn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,la))),128))],32)]),o().length===0?(s(),c(`div`,ua,` No content blocks `)):u(``,!0),(s(!0),c(t,null,l(o(),(e,t)=>(s(),n(aa,{key:t,block:e,index:t,total:o().length,onUpdate:e=>d(t,e),onRemove:e=>p(t),onMove:e=>m(t,e)},null,8,[`block`,`index`,`total`,`onUpdate`,`onRemove`,`onMove`]))),128))]))}}),da={class:`space-y-5 p-4 text-xs`},fa={class:`flex items-center justify-between border-b border-stone-200 pb-3`},pa=[`value`],ma=[`value`],ha={class:`space-y-2`},ga={key:0,class:`block`},_a=[`value`],va={key:1,class:`block`},ya=[`value`],ba={class:`flex flex-wrap gap-2`},xa={class:`flex items-center gap-1`},Sa=[`value`],Ca=[`value`],wa={class:`flex items-center gap-1`},Ta=[`value`],Ea=[`value`],Da={class:`flex items-center gap-1`},Oa=[`value`],ka=[`value`],Aa={class:`flex items-center gap-1`},ja=[`value`],Ma=[`value`],Na={class:`rounded border border-stone-200 bg-stone-50/40 p-2`},Pa={class:`flex gap-2`},Fa=[`value`],Ia=[`value`],La=[`value`],Ra={key:0,class:`space-y-2`},za={class:`block`},Ba=[`value`],Va={class:`block`},Ha=[`value`],Ua={class:`space-y-1`},Wa=[`value`,`onInput`],Ga=[`onClick`],Ka={key:1,class:`space-y-2`},qa=[`value`],Ja={class:`block`},Ya=[`value`],Xa={class:`block`},Za=[`value`],Qa={key:2,class:`space-y-2`},$a={class:`flex items-center justify-between text-[10px] text-stone-400`},eo={class:`flex gap-1`},to=[`disabled`,`onClick`],no=[`disabled`,`onClick`],ro=[`onClick`],io={class:`grid grid-cols-2 gap-1`},ao=[`value`,`onInput`],oo=[`value`,`onInput`],so={class:`grid grid-cols-3 gap-1`},co=[`value`,`onInput`],lo=[`value`,`onInput`],uo=[`value`,`onChange`],fo=[`value`],po={key:3,class:`space-y-2`},mo={class:`flex items-center justify-between text-[10px] text-stone-400`},ho={class:`flex gap-1`},go=[`disabled`,`onClick`],_o=[`disabled`,`onClick`],vo=[`onClick`],yo={class:`grid grid-cols-2 gap-1`},bo=[`value`,`onInput`],xo=[`value`,`onInput`],So=[`value`,`onInput`],Co={class:`flex flex-wrap gap-2`},wo={class:`flex items-center gap-1`},To=[`value`,`onChange`],Eo=[`value`],Do={class:`flex items-center gap-1`},Oo=[`checked`,`onChange`],ko={class:`flex items-center gap-1`},Ao=[`checked`,`onChange`],jo={key:4,class:`space-y-2`},Mo={class:`block`},No=[`value`],Po={class:`flex items-center justify-between text-[10px] text-stone-400`},Fo={class:`flex gap-1`},Io=[`disabled`,`onClick`],Lo=[`disabled`,`onClick`],Ro=[`onClick`],zo=[`value`,`onInput`],Bo=[`value`,`onInput`],Vo={class:`flex items-center gap-1`},Ho=[`value`,`onChange`],Uo=[`value`],Wo={key:5,class:`space-y-2`},Go={class:`flex items-center gap-1`},Ko=[`checked`],qo={class:`flex items-center justify-between text-[10px] text-stone-400`},Jo={class:`flex gap-1`},Yo=[`disabled`,`onClick`],Xo=[`disabled`,`onClick`],Zo=[`onClick`],Qo={class:`grid grid-cols-3 gap-1`},$o=[`value`,`onInput`],es=[`value`,`onChange`],ts=[`value`],ns={class:`grid grid-cols-3 gap-1`},rs=[`value`,`onInput`],is=[`value`,`onInput`],as=[`value`,`onInput`],os={key:6,class:`space-y-2`},ss={class:`text-[10px] font-semibold uppercase tracking-wider text-stone-500`},cs=[`value`,`onInput`],ls={class:`flex flex-wrap gap-2`},us={class:`flex items-center gap-1`},ds=[`value`,`onChange`],fs=[`value`],ps={class:`flex items-center gap-1`},ms=[`value`,`onInput`],hs={class:`flex items-center gap-1`},gs=[`checked`,`onChange`],_s=[`value`,`onInput`],vs={key:7,class:`space-y-2`},ys={class:`block`},bs=[`value`],xs=[`value`],Ss={class:`flex items-center justify-between text-[10px] text-stone-400`},Cs={class:`flex gap-1`},ws=[`disabled`,`onClick`],Ts=[`disabled`,`onClick`],Es=[`onClick`],Ds=[`value`,`onInput`],Os=[`value`,`onInput`],ks={class:`grid grid-cols-4 gap-1`},As=[`value`,`onChange`],js=[`value`],Ms=[`value`,`onInput`],Ns=[`value`,`onInput`],Ps=[`value`,`onInput`],Fs={key:8,class:`space-y-2`},Is={class:`text-[10px] font-semibold uppercase tracking-wider text-stone-500`},Ls=[`value`,`onInput`],Rs=[`value`,`onInput`],zs={class:`flex flex-wrap gap-2`},Bs={class:`flex items-center gap-1`},Vs=[`value`,`onChange`],Hs=[`value`],Us={class:`flex items-center gap-1`},Ws=[`value`,`onInput`],Gs={class:`flex items-center gap-1`},Ks=[`value`,`onChange`],qs=[`value`],Js={key:9,class:`space-y-2`},Ys={class:`flex gap-2`},Xs={class:`flex items-center gap-1`},Zs=[`value`],Qs={class:`flex items-center gap-1`},$s=[`value`],ec={class:`text-[10px] text-stone-400`},tc=[`value`,`onInput`],nc={key:10,class:`space-y-2`},rc={class:`w-full text-[11px]`},ic={class:`flex items-center gap-1`},ac=[`value`,`onInput`],oc=[`onClick`],sc=[`value`,`onInput`],cc={class:`px-1`},lc=[`onClick`],uc={key:11,class:`space-y-2`},dc={class:`flex items-center justify-between text-[10px] text-stone-400`},fc=[`onClick`],pc={class:`grid grid-cols-3 gap-1`},mc=[`value`,`onInput`],hc=[`value`,`onInput`],gc=[`value`,`onChange`],_c=[`value`],vc={key:12,class:`space-y-2`},yc={class:`flex items-center justify-between text-[10px] text-stone-400`},bc=[`onClick`],xc={class:`grid grid-cols-3 gap-1`},Sc=[`value`,`onInput`],Cc=[`value`,`onInput`],wc=p({__name:`Inspector`,props:{slide:{}},emits:[`update`],setup(e,{emit:n}){let r=e,i=n,a=e=>i(`update`,e),o=e=>{i(`update`,{...r.slide,...e})},d=e=>{if(e===r.slide.layout)return;let t=$n(e),n={};`title`in r.slide&&typeof r.slide.title==`string`&&(n.title=r.slide.title),r.slide.accentColor&&(n.accentColor=r.slide.accentColor),r.slide.eyebrow&&(n.eyebrow=r.slide.eyebrow),r.slide.density&&(n.density=r.slide.density),r.slide.titleSize&&(n.titleSize=r.slide.titleSize),r.slide.subtitleSize&&(n.subtitleSize=r.slide.subtitleSize),a({...t,...n})},p=e=>{let t={...r.slide.eyebrow??{label:``},...e};if(!t.label){o({eyebrow:void 0});return}o({eyebrow:t})},m=(e,t)=>{if(r.slide.layout!==`title`)return;let n=(r.slide.chips??[]).slice();n[e]=t,o({chips:n})},y=()=>{r.slide.layout===`title`&&o({chips:[...r.slide.chips??[],`🚀 new chip`]})},b=e=>{if(r.slide.layout!==`title`)return;let t=(r.slide.chips??[]).slice();t.splice(e,1),o({chips:t.length?t:void 0})},x=(e,t)=>{r.slide.layout===`stats`&&o({stats:r.slide.stats.map((n,r)=>r===e?{...n,...t}:n)})},S=()=>{r.slide.layout===`stats`&&o({stats:[...r.slide.stats,{value:`0`,label:`新指標`}]})},C=e=>{if(r.slide.layout!==`stats`)return;let t=r.slide.stats.slice();t.splice(e,1),o({stats:t})},w=(e,t)=>{r.slide.layout===`stats`&&o({stats:Q(r.slide.stats,e,t)})},T=(e,t)=>{r.slide.layout===`timeline`&&o({items:r.slide.items.map((n,r)=>r===e?{...n,...t}:n)})},E=()=>{r.slide.layout===`timeline`&&o({items:[...r.slide.items,{date:`Qn`,title:`新ステップ`}]})},D=e=>{if(r.slide.layout!==`timeline`)return;let t=r.slide.items.slice();t.splice(e,1),o({items:t})},O=(e,t)=>{r.slide.layout===`timeline`&&o({items:Q(r.slide.items,e,t)})},k=(e,t)=>{r.slide.layout===`manifesto`&&o({items:r.slide.items.map((n,r)=>r===e?{...n,...t}:n)})},A=()=>{r.slide.layout===`manifesto`&&o({items:[...r.slide.items,{title:`新しい原則`}]})},j=e=>{if(r.slide.layout!==`manifesto`)return;let t=r.slide.items.slice();t.splice(e,1),o({items:t})},M=(e,t)=>{r.slide.layout===`manifesto`&&o({items:Q(r.slide.items,e,t)})},N=(e,t)=>{r.slide.layout===`columns`&&o({columns:r.slide.columns.map((n,r)=>r===e?{...n,...t}:n)})},P=(e,t)=>N(e,{content:t.length?t:void 0}),F=()=>{r.slide.layout===`columns`&&o({columns:[...r.slide.columns,{title:`新しい列`}]})},I=e=>{if(r.slide.layout!==`columns`)return;let t=r.slide.columns.slice();t.splice(e,1),o({columns:t})},ee=(e,t)=>{r.slide.layout===`columns`&&o({columns:Q(r.slide.columns,e,t)})},L=(e,t)=>{r.slide.layout===`grid`&&o({items:r.slide.items.map((n,r)=>r===e?{...n,...t}:n)})},te=(e,t)=>L(e,{content:t.length?t:void 0}),ne=()=>{r.slide.layout===`grid`&&o({items:[...r.slide.items,{title:`新項目`}]})},R=e=>{if(r.slide.layout!==`grid`)return;let t=r.slide.items.slice();t.splice(e,1),o({items:t})},re=(e,t)=>{r.slide.layout===`grid`&&o({items:Q(r.slide.items,e,t)})},z=(e,t)=>{r.slide.layout===`comparison`&&o({[e]:{...r.slide[e],...t}})},B=(e,t)=>z(e,{content:t.length?t:void 0}),V=(e,t)=>{if(r.slide.layout!==`split`)return;let n=r.slide[e]??{};o({[e]:{...n,...t}})},ie=(e,t)=>V(e,{content:t.length?t:void 0}),ae=(e,t)=>{r.slide.layout===`matrix`&&o({cells:r.slide.cells.map((n,r)=>r===e?{...n,...t}:n)})},H=(e,t)=>ae(e,{content:t.length?t:void 0}),oe=(e,t)=>{r.slide.layout===`funnel`&&o({stages:r.slide.stages.map((n,r)=>r===e?{...n,...t}:n)})},se=()=>{r.slide.layout===`funnel`&&o({stages:[...r.slide.stages,{label:`Step`,value:`0`}]})},ce=e=>{if(r.slide.layout!==`funnel`)return;let t=r.slide.stages.slice();t.splice(e,1),o({stages:t})},le=(e,t)=>{r.slide.layout===`waterfall`&&o({items:r.slide.items.map((n,r)=>r===e?{...n,...t}:n)})},ue=()=>{r.slide.layout===`waterfall`&&o({items:[...r.slide.items,{label:`Step`,value:0}]})},U=e=>{if(r.slide.layout!==`waterfall`)return;let t=r.slide.items.slice();t.splice(e,1),o({items:t})},de=(e,t)=>{if(r.slide.layout!==`table`)return;let n=(r.slide.headers??[]).slice();n[e]=t,o({headers:n})},fe=(e,t,n)=>{if(r.slide.layout!==`table`)return;let i=Z(r.slide.rows);i[e]||(i[e]=[]),i[e][t]=n,o({rows:i})},pe=()=>{if(r.slide.layout!==`table`)return;let e=(r.slide.headers??[]).length||1,t=Z(r.slide.rows);t.push(Array(e).fill(``)),o({rows:t})},me=e=>{if(r.slide.layout!==`table`)return;let t=Z(r.slide.rows);t.splice(e,1),o({rows:t})},he=()=>{r.slide.layout===`table`&&o({headers:(r.slide.headers??[]).concat([`新列`]),rows:r.slide.rows.map(e=>e.concat([``]))})},ge=e=>{if(r.slide.layout!==`table`)return;let t=(r.slide.headers??[]).slice();t.splice(e,1),o({headers:t,rows:r.slide.rows.map(t=>{let n=t.slice();return n.splice(e,1),n})})},_e=e=>typeof e==`string`?e:e&&typeof e==`object`&&`text`in e?String(e.text):``;return(n,r)=>(s(),c(`div`,da,[_(`header`,fa,[r[20]||=_(`h2`,{class:`text-sm font-semibold tracking-wide text-stone-700`},`Inspector`,-1),_(`select`,{value:e.slide.layout,class:`rounded border border-stone-300 bg-white px-1.5 py-0.5 text-[11px] font-mono`,onChange:r[0]||=e=>d(e.target.value)},[(s(!0),c(t,null,l(f(Xn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,ma))),128))],40,pa)]),_(`section`,ha,[r[33]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Slide`,-1),`title`in e.slide?(s(),c(`label`,ga,[r[21]||=g(` Title `,-1),_(`input`,{type:`text`,value:e.slide.title??``,class:`mt-0.5 w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[1]||=e=>o({title:e.target.value})},null,40,_a)])):u(``,!0),`subtitle`in e.slide?(s(),c(`label`,va,[r[22]||=g(` Subtitle `,-1),_(`input`,{type:`text`,value:e.slide.subtitle??``,class:`mt-0.5 w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[2]||=e=>o({subtitle:e.target.value||void 0})},null,40,ya)])):u(``,!0),_(`div`,ba,[_(`label`,xa,[r[24]||=g(`accent `,-1),_(`select`,{value:e.slide.accentColor??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[3]||=e=>o({accentColor:e.target.value||void 0})},[r[23]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Ca))),128))],40,Sa)]),_(`label`,wa,[r[26]||=g(`density `,-1),_(`select`,{value:e.slide.density??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[4]||=e=>o({density:e.target.value||void 0})},[r[25]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(Wn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Ea))),128))],40,Ta)]),_(`label`,Da,[r[28]||=g(`titleSize `,-1),_(`select`,{value:e.slide.titleSize??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[5]||=e=>o({titleSize:e.target.value||void 0})},[r[27]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(Gn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,ka))),128))],40,Oa)]),_(`label`,Aa,[r[30]||=g(`subtitleSize `,-1),_(`select`,{value:e.slide.subtitleSize??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[6]||=e=>o({subtitleSize:e.target.value||void 0})},[r[29]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(Kn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Ma))),128))],40,ja)])]),_(`div`,Na,[r[32]||=_(`div`,{class:`mb-1 text-[10px] font-semibold uppercase tracking-wider text-stone-500`},`Eyebrow`,-1),_(`div`,Pa,[_(`input`,{type:`text`,value:e.slide.eyebrow?.label??``,placeholder:`(empty = none)`,class:`flex-1 rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[7]||=e=>p({label:e.target.value})},null,40,Fa),_(`select`,{value:e.slide.eyebrow?.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:r[8]||=e=>p({color:e.target.value||void 0})},[r[31]||=_(`option`,{value:``},`color`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,La))),128))],40,Ia)])])]),e.slide.layout===`title`?(s(),c(`section`,Ra,[r[37]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Title slide`,-1),_(`label`,za,[r[34]||=g(`Author `,-1),_(`input`,{type:`text`,value:e.slide.author??``,class:`mt-0.5 w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[9]||=e=>o({author:e.target.value||void 0})},null,40,Ba)]),_(`label`,Va,[r[35]||=g(`Note `,-1),_(`input`,{type:`text`,value:e.slide.note??``,class:`mt-0.5 w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[10]||=e=>o({note:e.target.value||void 0})},null,40,Ha)]),_(`div`,null,[_(`div`,{class:`mb-1 flex items-center justify-between`},[r[36]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Chips`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:y},`+ chip`)]),_(`ul`,Ua,[(s(!0),c(t,null,l(e.slide.chips??[],(e,t)=>(s(),c(`li`,{key:t,class:`flex gap-1`},[_(`input`,{type:`text`,value:e,class:`flex-1 rounded border border-stone-300 bg-white px-2 py-1`,onInput:e=>m(t,e.target.value)},null,40,Wa),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>b(t)},`×`,8,Ga)]))),128))])])])):u(``,!0),e.slide.layout===`bigQuote`?(s(),c(`section`,Ka,[r[40]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Big quote`,-1),_(`textarea`,{value:e.slide.quote,rows:`3`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[11]||=e=>o({quote:e.target.value})},null,40,qa),_(`label`,Ja,[r[38]||=g(`Author `,-1),_(`input`,{type:`text`,value:e.slide.author??``,class:`mt-0.5 w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[12]||=e=>o({author:e.target.value||void 0})},null,40,Ya)]),_(`label`,Xa,[r[39]||=g(`Role `,-1),_(`input`,{type:`text`,value:e.slide.role??``,class:`mt-0.5 w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[13]||=e=>o({role:e.target.value||void 0})},null,40,Za)])])):u(``,!0),e.slide.layout===`stats`?(s(),c(`section`,Qa,[_(`div`,{class:`flex items-center justify-between`},[r[41]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Stats`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:S},`+ stat`)]),(s(!0),c(t,null,l(e.slide.stats,(n,i)=>(s(),c(`div`,{key:i,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,$a,[_(`span`,null,`#`+h(i+1),1),_(`div`,eo,[_(`button`,{type:`button`,disabled:i===0,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>w(i,-1)},` ↑ `,8,to),_(`button`,{type:`button`,disabled:i===e.slide.stats.length-1,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>w(i,1)},` ↓ `,8,no),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>C(i)},`×`,8,ro)])]),_(`div`,io,[_(`input`,{type:`text`,value:n.value,placeholder:`value`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>x(i,{value:e.target.value})},null,40,ao),_(`input`,{type:`text`,value:n.label,placeholder:`label`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>x(i,{label:e.target.value})},null,40,oo)]),_(`div`,so,[_(`input`,{type:`text`,value:n.numLabel??``,placeholder:`numLabel`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>x(i,{numLabel:e.target.value||void 0})},null,40,co),_(`input`,{type:`text`,value:n.change??``,placeholder:`+5%`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>x(i,{change:e.target.value||void 0})},null,40,lo),_(`select`,{value:n.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>x(i,{color:e.target.value||void 0})},[r[42]||=_(`option`,{value:``},`color`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,fo))),128))],40,uo)])]))),128))])):u(``,!0),e.slide.layout===`timeline`?(s(),c(`section`,po,[_(`div`,{class:`flex items-center justify-between`},[r[43]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Timeline`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:E},`+ step`)]),(s(!0),c(t,null,l(e.slide.items,(n,i)=>(s(),c(`div`,{key:i,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,mo,[_(`span`,null,`#`+h(i+1),1),_(`div`,ho,[_(`button`,{type:`button`,disabled:i===0,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>O(i,-1)},` ↑ `,8,go),_(`button`,{type:`button`,disabled:i===e.slide.items.length-1,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>O(i,1)},` ↓ `,8,_o),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>D(i)},`×`,8,vo)])]),_(`div`,yo,[_(`input`,{type:`text`,value:n.date,placeholder:`date`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>T(i,{date:e.target.value})},null,40,bo),_(`input`,{type:`text`,value:n.title,placeholder:`title`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>T(i,{title:e.target.value})},null,40,xo)]),_(`input`,{type:`text`,value:n.description??``,placeholder:`description`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>T(i,{description:e.target.value||void 0})},null,40,So),_(`div`,Co,[_(`label`,wo,[r[45]||=g(`color `,-1),_(`select`,{value:n.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>T(i,{color:e.target.value||void 0})},[r[44]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Eo))),128))],40,To)]),_(`label`,Do,[_(`input`,{type:`checkbox`,checked:!!n.done,onChange:e=>T(i,{done:e.target.checked||void 0})},null,40,Oo),r[46]||=g(`done`,-1)]),_(`label`,ko,[_(`input`,{type:`checkbox`,checked:!!n.hot,onChange:e=>T(i,{hot:e.target.checked||void 0})},null,40,Ao),r[47]||=g(`hot`,-1)])])]))),128))])):u(``,!0),e.slide.layout===`manifesto`?(s(),c(`section`,jo,[_(`div`,{class:`flex items-center justify-between`},[r[48]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Manifesto`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:A},`+ line`)]),_(`label`,Mo,[r[49]||=g(`columns `,-1),_(`input`,{type:`number`,min:`1`,max:`4`,value:e.slide.columns??2,class:`ml-1 w-14 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:r[14]||=e=>o({columns:Number(e.target.value)||void 0})},null,40,No)]),(s(!0),c(t,null,l(e.slide.items,(n,i)=>(s(),c(`div`,{key:i,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,Po,[_(`span`,null,`#`+h(i+1),1),_(`div`,Fo,[_(`button`,{type:`button`,disabled:i===0,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>M(i,-1)},` ↑ `,8,Io),_(`button`,{type:`button`,disabled:i===e.slide.items.length-1,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>M(i,1)},` ↓ `,8,Lo),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>j(i)},`×`,8,Ro)])]),_(`input`,{type:`text`,value:n.title,placeholder:`title`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>k(i,{title:e.target.value})},null,40,zo),_(`input`,{type:`text`,value:n.description??``,placeholder:`description`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>k(i,{description:e.target.value||void 0})},null,40,Bo),_(`label`,Vo,[r[51]||=g(`accent `,-1),_(`select`,{value:n.accentColor??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>k(i,{accentColor:e.target.value||void 0})},[r[50]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Uo))),128))],40,Ho)])]))),128))])):u(``,!0),e.slide.layout===`columns`?(s(),c(`section`,Wo,[_(`div`,{class:`flex items-center justify-between`},[r[52]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Columns`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:F},`+ column`)]),_(`label`,Go,[_(`input`,{type:`checkbox`,checked:!!e.slide.showArrows,onChange:r[15]||=e=>o({showArrows:e.target.checked||void 0})},null,40,Ko),r[53]||=g(`show arrows`,-1)]),(s(!0),c(t,null,l(e.slide.columns,(n,i)=>(s(),c(`div`,{key:i,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,qo,[_(`span`,null,`#`+h(i+1),1),_(`div`,Jo,[_(`button`,{type:`button`,disabled:i===0,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>ee(i,-1)},` ↑ `,8,Yo),_(`button`,{type:`button`,disabled:i===e.slide.columns.length-1,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>ee(i,1)},` ↓ `,8,Xo),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>I(i)},`×`,8,Zo)])]),_(`div`,Qo,[_(`input`,{type:`text`,value:n.title,placeholder:`title`,class:`col-span-2 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>N(i,{title:e.target.value})},null,40,$o),_(`select`,{value:n.accentColor??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>N(i,{accentColor:e.target.value||void 0})},[r[54]||=_(`option`,{value:``},`accent`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,ts))),128))],40,es)]),_(`div`,ns,[_(`input`,{type:`text`,value:n.label??``,placeholder:`label`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>N(i,{label:e.target.value||void 0})},null,40,rs),_(`input`,{type:`text`,value:n.numLabel??``,placeholder:`numLabel`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>N(i,{numLabel:e.target.value||void 0})},null,40,is),_(`input`,{type:`text`,value:n.icon??``,placeholder:`icon`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>N(i,{icon:e.target.value||void 0})},null,40,as)]),v($,{blocks:n.content,label:`column content`,onUpdate:e=>P(i,e)},null,8,[`blocks`,`onUpdate`])]))),128))])):u(``,!0),e.slide.layout===`comparison`?(s(),c(`section`,os,[r[59]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Comparison`,-1),(s(),c(t,null,l([`left`,`right`],n=>_(`div`,{key:n,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,ss,h(n),1),_(`input`,{type:`text`,value:e.slide[n].title,placeholder:`title`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>z(n,{title:e.target.value})},null,40,cs),_(`div`,ls,[_(`label`,us,[r[56]||=g(`accent `,-1),_(`select`,{value:e.slide[n].accentColor??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>z(n,{accentColor:e.target.value||void 0})},[r[55]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,fs))),128))],40,ds)]),_(`label`,ps,[r[57]||=g(`ratio `,-1),_(`input`,{type:`number`,step:`0.1`,min:`0.1`,value:e.slide[n].ratio??``,class:`w-16 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>z(n,{ratio:Number(e.target.value)||void 0})},null,40,ms)]),_(`label`,hs,[_(`input`,{type:`checkbox`,checked:!!e.slide[n].cardless,onChange:e=>z(n,{cardless:e.target.checked||void 0})},null,40,gs),r[58]||=g(`cardless`,-1)])]),_(`input`,{type:`text`,value:e.slide[n].footer??``,placeholder:`footer`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>z(n,{footer:e.target.value||void 0})},null,40,_s),v($,{blocks:e.slide[n].content,label:`${n} content`,onUpdate:e=>B(n,e)},null,8,[`blocks`,`label`,`onUpdate`])])),64))])):u(``,!0),e.slide.layout===`grid`?(s(),c(`section`,vs,[_(`div`,{class:`flex items-center justify-between`},[r[60]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Grid`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:ne},`+ item`)]),_(`label`,ys,[r[61]||=g(`gridColumns `,-1),_(`input`,{type:`number`,min:`1`,max:`6`,value:e.slide.gridColumns??3,class:`ml-1 w-14 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:r[16]||=e=>o({gridColumns:Number(e.target.value)||void 0})},null,40,bs)]),_(`input`,{type:`text`,value:e.slide.footer??``,placeholder:`footer (optional)`,class:`w-full rounded border border-stone-300 bg-white px-2 py-1`,onInput:r[17]||=e=>o({footer:e.target.value||void 0})},null,40,xs),(s(!0),c(t,null,l(e.slide.items,(n,i)=>(s(),c(`div`,{key:i,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,Ss,[_(`span`,null,`#`+h(i+1),1),_(`div`,Cs,[_(`button`,{type:`button`,disabled:i===0,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>re(i,-1)},` ↑ `,8,ws),_(`button`,{type:`button`,disabled:i===e.slide.items.length-1,class:`rounded px-1 text-stone-500 hover:bg-stone-200 disabled:opacity-30`,onClick:e=>re(i,1)},` ↓ `,8,Ts),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>R(i)},`×`,8,Es)])]),_(`input`,{type:`text`,value:n.title,placeholder:`title`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>L(i,{title:e.target.value})},null,40,Ds),_(`input`,{type:`text`,value:n.description??``,placeholder:`description`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>L(i,{description:e.target.value||void 0})},null,40,Os),_(`div`,ks,[_(`select`,{value:n.accentColor??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>L(i,{accentColor:e.target.value||void 0})},[r[62]||=_(`option`,{value:``},`accent`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,js))),128))],40,As),_(`input`,{type:`number`,value:n.num??``,placeholder:`num`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>L(i,{num:Number(e.target.value)||void 0})},null,40,Ms),_(`input`,{type:`text`,value:n.icon??``,placeholder:`icon`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>L(i,{icon:e.target.value||void 0})},null,40,Ns),_(`input`,{type:`number`,min:`1`,max:`4`,value:n.span??``,placeholder:`span`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>L(i,{span:Number(e.target.value)||void 0})},null,40,Ps)]),v($,{blocks:n.content,label:`item content`,onUpdate:e=>te(i,e)},null,8,[`blocks`,`onUpdate`])]))),128))])):u(``,!0),e.slide.layout===`split`?(s(),c(`section`,Fs,[r[68]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Split`,-1),(s(),c(t,null,l([`left`,`right`],n=>_(`div`,{key:n,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,Is,h(n),1),_(`input`,{type:`text`,value:e.slide[n]?.title??``,placeholder:`title`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>V(n,{title:e.target.value||void 0})},null,40,Ls),_(`input`,{type:`text`,value:e.slide[n]?.label??``,placeholder:`label`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>V(n,{label:e.target.value||void 0})},null,40,Rs),_(`div`,zs,[_(`label`,Bs,[r[64]||=g(`accent `,-1),_(`select`,{value:e.slide[n]?.accentColor??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>V(n,{accentColor:e.target.value||void 0})},[r[63]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,Hs))),128))],40,Vs)]),_(`label`,Us,[r[65]||=g(`ratio `,-1),_(`input`,{type:`number`,step:`0.1`,min:`0.1`,value:e.slide[n]?.ratio??``,class:`w-16 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>V(n,{ratio:Number(e.target.value)||void 0})},null,40,Ws)]),_(`label`,Gs,[r[67]||=g(`valign `,-1),_(`select`,{value:e.slide[n]?.valign??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>V(n,{valign:e.target.value||void 0})},[r[66]||=_(`option`,{value:``},`—`,-1),(s(!0),c(t,null,l(f(qn),e=>(s(),c(`option`,{key:e,value:e},h(e),9,qs))),128))],40,Ks)])]),v($,{blocks:e.slide[n]?.content,label:`${n} content`,onUpdate:e=>ie(n,e)},null,8,[`blocks`,`label`,`onUpdate`])])),64))])):u(``,!0),e.slide.layout===`matrix`?(s(),c(`section`,Js,[r[71]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Matrix`,-1),_(`div`,Ys,[_(`label`,Xs,[r[69]||=g(`rows `,-1),_(`input`,{type:`number`,min:`1`,max:`6`,value:e.slide.rows??2,class:`w-14 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:r[18]||=e=>o({rows:Number(e.target.value)||void 0})},null,40,Zs)]),_(`label`,Qs,[r[70]||=g(`cols `,-1),_(`input`,{type:`number`,min:`1`,max:`6`,value:e.slide.cols??2,class:`w-14 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:r[19]||=e=>o({cols:Number(e.target.value)||void 0})},null,40,$s)])]),(s(!0),c(t,null,l(e.slide.cells,(e,t)=>(s(),c(`div`,{key:t,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,ec,`Cell #`+h(t+1),1),_(`input`,{type:`text`,value:e.label,placeholder:`label`,class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>ae(t,{label:e.target.value})},null,40,tc),v($,{blocks:e.content,label:`cell content`,onUpdate:e=>H(t,e)},null,8,[`blocks`,`onUpdate`])]))),128))])):u(``,!0),e.slide.layout===`table`?(s(),c(`section`,nc,[r[72]||=_(`span`,{class:`block text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Table`,-1),_(`table`,rc,[_(`thead`,null,[_(`tr`,null,[(s(!0),c(t,null,l(e.slide.headers??[],(e,t)=>(s(),c(`th`,{key:t,class:`px-1 py-0.5 text-left`},[_(`div`,ic,[_(`input`,{type:`text`,value:e,class:`min-w-0 flex-1 rounded border border-stone-300 bg-white px-1 py-0.5 font-bold`,onInput:e=>de(t,e.target.value)},null,40,ac),_(`button`,{type:`button`,class:`text-rose-600`,onClick:e=>ge(t)},`×`,8,oc)])]))),128))])]),_(`tbody`,null,[(s(!0),c(t,null,l(e.slide.rows,(e,n)=>(s(),c(`tr`,{key:n},[(s(!0),c(t,null,l(e,(e,t)=>(s(),c(`td`,{key:t,class:`px-1 py-0.5`},[_(`input`,{type:`text`,value:_e(e),class:`w-full rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>fe(n,t,e.target.value)},null,40,sc)]))),128)),_(`td`,cc,[_(`button`,{type:`button`,class:`text-rose-600`,onClick:e=>me(n)},`×`,8,lc)])]))),128))])]),_(`div`,{class:`flex gap-2`},[_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:pe},`+ 行`),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:he},`+ 列`)])])):u(``,!0),e.slide.layout===`funnel`?(s(),c(`section`,uc,[_(`div`,{class:`flex items-center justify-between`},[r[73]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Funnel`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:se},`+ stage`)]),(s(!0),c(t,null,l(e.slide.stages,(e,n)=>(s(),c(`div`,{key:n,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,dc,[_(`span`,null,`#`+h(n+1),1),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>ce(n)},`×`,8,fc)]),_(`div`,pc,[_(`input`,{type:`text`,value:e.label,placeholder:`label`,class:`col-span-2 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>oe(n,{label:e.target.value})},null,40,mc),_(`input`,{type:`text`,value:e.value,placeholder:`value`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>oe(n,{value:e.target.value})},null,40,hc)]),_(`select`,{value:e.color??``,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onChange:e=>oe(n,{color:e.target.value||void 0})},[r[74]||=_(`option`,{value:``},`color`,-1),(s(!0),c(t,null,l(f(X),e=>(s(),c(`option`,{key:e,value:e},h(e),9,_c))),128))],40,gc)]))),128))])):u(``,!0),e.slide.layout===`waterfall`?(s(),c(`section`,vc,[_(`div`,{class:`flex items-center justify-between`},[r[75]||=_(`span`,{class:`text-[11px] font-semibold uppercase tracking-wider text-stone-500`},`Waterfall`,-1),_(`button`,{type:`button`,class:`text-[11px] text-stone-600 hover:text-stone-900`,onClick:ue},`+ item`)]),(s(!0),c(t,null,l(e.slide.items,(e,t)=>(s(),c(`div`,{key:t,class:`rounded border border-stone-200 bg-stone-50/40 p-2 space-y-1`},[_(`div`,yc,[_(`span`,null,`#`+h(t+1),1),_(`button`,{type:`button`,class:`rounded px-1 text-rose-600 hover:bg-rose-100`,onClick:e=>U(t)},`×`,8,bc)]),_(`div`,xc,[_(`input`,{type:`text`,value:e.label,placeholder:`label`,class:`col-span-2 rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>le(t,{label:e.target.value})},null,40,Sc),_(`input`,{type:`number`,value:e.value,placeholder:`value`,class:`rounded border border-stone-300 bg-white px-1 py-0.5`,onInput:e=>le(t,{value:Number(e.target.value)})},null,40,Cc)])]))),128))])):u(``,!0)]))}}),Tc={key:0,class:`flex h-full w-full overflow-hidden bg-stone-50 text-stone-900`},Ec={class:`w-64 shrink-0 border-r border-stone-200 bg-white`},Dc={class:`flex-1 min-w-0 bg-stone-100`},Oc={key:1,class:`flex h-full items-center justify-center text-stone-400`},kc={class:`w-96 shrink-0 border-l border-stone-200 bg-white overflow-y-auto`},Ac={key:1,class:`flex h-full w-full flex-col overflow-hidden bg-stone-50 text-stone-900`},jc={class:`flex h-9 shrink-0 items-center gap-1 border-b border-stone-200 bg-white px-2 text-sm`},Mc=[`disabled`],Nc={class:`min-w-[5rem] text-center tabular-nums text-stone-600`},Pc=[`disabled`],Fc=[`disabled`],Ic=[`disabled`],Lc={class:`ml-auto`},Rc=[`title`],zc={"aria-hidden":`true`},Bc={class:`flex min-h-0 flex-1`},Vc={class:`flex-1 min-w-0 bg-stone-100`},Hc={key:1,class:`flex h-full items-center justify-center text-stone-400`},Uc={key:0,class:`w-96 shrink-0 overflow-y-auto border-l border-stone-200 bg-white`},Wc=p({__name:`DeckEditor`,props:{slides:{},theme:{default:()=>Vn},selectedIndex:{default:0},layout:{default:`split`}},emits:[`update:slides`,`update:selectedIndex`],setup(e,{emit:t}){let i=e,a=t,o=d(i.selectedIndex??0);b(()=>i.selectedIndex,e=>{typeof e==`number`&&(o.value=e)});let l=e=>{o.value=e,a(`update:selectedIndex`,e)},f=r(()=>i.slides[o.value]),p=e=>a(`update:slides`,e),m=e=>{let t=o.value;if(t<0||t>=i.slides.length)return;let n=i.slides.slice();n.splice(t,1,e),p(n)},g=e=>{let t=i.slides.concat([$n(e)]);p(t),l(t.length-1)},y=e=>{if(i.slides.length<=1)return;let t=i.slides.slice();t.splice(e,1),p(t),o.value>=t.length&&l(t.length-1)},x=e=>{let t=i.slides.slice();t.splice(e+1,0,Z(i.slides[e])),p(t),l(e+1)},S=(e,t)=>{let n=Q(i.slides,e,t);p(n),l(Math.max(0,Math.min(n.length-1,e+t)))},C=(e,t)=>{if(e===t)return;let n=i.slides.slice(),[r]=n.splice(e,1);n.splice(t,0,r),p(n),l(t)},w=d(!0),T=()=>{w.value=!w.value},E=()=>{o.value>0&&l(o.value-1)},D=()=>{o.value<i.slides.length-1&&l(o.value+1)},O=()=>g(`title`),k=()=>x(o.value),A=()=>y(o.value),j=r(()=>o.value>0),M=r(()=>o.value<i.slides.length-1),N=r(()=>i.slides.length>1);return(t,r)=>e.layout===`split`?(s(),c(`div`,Tc,[_(`aside`,Ec,[v(br,{slides:e.slides,"selected-index":o.value,onSelect:l,onAdd:g,onRemove:y,onDuplicate:x,onMove:S,onReorder:C},null,8,[`slides`,`selected-index`])]),_(`main`,Dc,[f.value?(s(),n(Or,{key:0,slide:f.value,theme:e.theme,onUpdate:m},null,8,[`slide`,`theme`])):(s(),c(`div`,Oc,`No slide selected`))]),_(`aside`,kc,[f.value?(s(),n(wc,{key:0,slide:f.value,onUpdate:m},null,8,[`slide`])):u(``,!0)])])):(s(),c(`div`,Ac,[_(`div`,jc,[_(`button`,{type:`button`,disabled:!j.value,class:`flex h-7 items-center gap-1 rounded px-2 text-stone-700 hover:bg-stone-100 disabled:cursor-not-allowed disabled:opacity-30`,onClick:E},[...r[0]||=[_(`span`,{"aria-hidden":`true`},`◀`,-1),_(`span`,null,`Prev`,-1)]],8,Mc),_(`div`,Nc,h(e.slides.length===0?`0 / 0`:`${o.value+1} / ${e.slides.length}`),1),_(`button`,{type:`button`,disabled:!M.value,class:`flex h-7 items-center gap-1 rounded px-2 text-stone-700 hover:bg-stone-100 disabled:cursor-not-allowed disabled:opacity-30`,onClick:D},[...r[1]||=[_(`span`,null,`Next`,-1),_(`span`,{"aria-hidden":`true`},`▶`,-1)]],8,Pc),r[6]||=_(`div`,{class:`mx-2 h-5 w-px bg-stone-200`},null,-1),_(`button`,{type:`button`,class:`flex h-7 items-center gap-1 rounded px-2 text-stone-700 hover:bg-stone-100`,title:`Add slide`,onClick:O},[...r[2]||=[_(`span`,{"aria-hidden":`true`},`+`,-1),_(`span`,null,`Add`,-1)]]),_(`button`,{type:`button`,disabled:!f.value,class:`flex h-7 items-center gap-1 rounded px-2 text-stone-700 hover:bg-stone-100 disabled:cursor-not-allowed disabled:opacity-30`,title:`Duplicate current slide`,onClick:k},[...r[3]||=[_(`span`,{"aria-hidden":`true`},`⧉`,-1),_(`span`,null,`Dup`,-1)]],8,Fc),_(`button`,{type:`button`,disabled:!N.value,class:`flex h-7 items-center gap-1 rounded px-2 text-rose-600 hover:bg-rose-50 disabled:cursor-not-allowed disabled:opacity-30`,title:`Delete current slide`,onClick:A},[...r[4]||=[_(`span`,{"aria-hidden":`true`},`🗑`,-1),_(`span`,null,`Del`,-1)]],8,Ic),_(`div`,Lc,[_(`button`,{type:`button`,class:`flex h-7 items-center gap-1 rounded px-2 text-stone-700 hover:bg-stone-100`,title:w.value?`Hide inspector`:`Show inspector`,onClick:T},[_(`span`,zc,h(w.value?`▶`:`◀`),1),r[5]||=_(`span`,null,`Inspector`,-1)],8,Rc)])]),_(`div`,Bc,[_(`main`,Vc,[f.value?(s(),n(Or,{key:0,slide:f.value,theme:e.theme,onUpdate:m},null,8,[`slide`,`theme`])):(s(),c(`div`,Hc,`No slide selected`))]),w.value?(s(),c(`aside`,Uc,[f.value?(s(),n(wc,{key:0,slide:f.value,onUpdate:m},null,8,[`slide`])):u(``,!0)])):u(``,!0)])]))}}),Gc={class:`flex h-full w-full flex-col`},Kc={key:0,class:`border-b border-amber-200 bg-amber-50 px-4 py-1.5 text-xs text-amber-700`},qc={class:`flex-1 min-h-0`},Jc=p({__name:`MulmoScriptDeckEditor`,props:{script:{},theme:{},layout:{}},emits:[`update:script`],setup(e,{emit:t}){let n=e,i=t,a=r(()=>(n.script.beats??[]).flatMap((e,t)=>e.image?.type===`slide`&&e.image.slide?[t]:[])),o=r(()=>a.value.map(e=>n.script.beats[e].image.slide)),l=r(()=>{if(n.theme)return n.theme;for(let e of n.script.beats??[])if(e?.image?.type===`slide`&&e.image.theme)return e.image.theme;return n.script.presentationStyle?.slideParams?.theme??n.script.slideParams?.theme}),d=r(()=>(n.script.beats?.length??0)-a.value.length),f=e=>{let t=n.script,r=(t.beats??[]).slice(),s=a.value,c=o.value;if(e.length===c.length){for(let t=0;t<e.length;t++){let n=s[t];r[n]={...r[n],image:{...r[n].image,type:`slide`,slide:e[t]}}}i(`update:script`,{...t,beats:r});return}let l=new Set(e),u=[];c.forEach((e,t)=>{l.has(e)||u.push(s[t])}),u.sort((e,t)=>t-e).forEach(e=>r.splice(e,1));let d=r.flatMap((e,t)=>e.image?.type===`slide`?[t]:[]),f=new Set(c),p=0;for(let t of e)if(f.has(t)&&p<d.length){let e=d[p];r[e]={...r[e],image:{...r[e].image,type:`slide`,slide:t}},p++}else r.push({image:{type:`slide`,slide:t}});i(`update:script`,{...t,beats:r})};return(t,n)=>(s(),c(`div`,Gc,[d.value>0?(s(),c(`div`,Kc,h(d.value)+` non-slide beat`+h(d.value===1?``:`s`)+` hidden (movie / textSlide / etc.) `,1)):u(``,!0),_(`div`,qc,[v(Wc,{slides:o.value,theme:l.value,layout:e.layout,"onUpdate:slides":f},null,8,[`slides`,`theme`,`layout`])])]))}});export{Jc as MulmoScriptDeckEditor};