@dailies-studio/shot-editor 0.1.0 → 0.2.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 (432) hide show
  1. package/dist/.vite/manifest.json +382 -0
  2. package/dist/assets/AgentPanel-CQejLbiX.js +2 -0
  3. package/dist/assets/AgentPanel-DJEphah0.css +1 -0
  4. package/dist/assets/AgentQuestionDialog-BqkD0kXF.js +1 -0
  5. package/dist/assets/CodeStudio-Dv4ihHpz.js +23 -0
  6. package/dist/assets/CommentsPanel-B4yhhT1T.js +1 -0
  7. package/dist/assets/ComponentLibraryRail-Ch_dsAru.js +1 -0
  8. package/dist/assets/ComponentStage-BRhRotyH.js +1 -0
  9. package/dist/assets/CurvePane-BjFVabKX.css +1 -0
  10. package/dist/assets/CurvePane-R22WzllJ.js +1 -0
  11. package/dist/assets/ExportDialog-CWLQWTmG.js +2 -0
  12. package/dist/assets/FontPicker-DWKaYL7F.js +1 -0
  13. package/dist/assets/FontPicker-v0IOIArM.css +1 -0
  14. package/dist/assets/GenerateDrawer-Bh3SqDKt.js +2 -0
  15. package/dist/assets/InsertDrawer-Ce1fod1L.js +1 -0
  16. package/dist/assets/LibraryBrowser-D9sEGz5w.js +2 -0
  17. package/dist/assets/MakeItYoursSection-CMO4319_.js +2 -0
  18. package/dist/assets/MaterialGraphCanvas-BFzl4wWR.js +23 -0
  19. package/dist/assets/MaterialGraphCanvas-BIUD59ik.css +1 -0
  20. package/dist/assets/MaterialWorkspace-CqTWqaRA.js +14 -0
  21. package/dist/assets/PreferencesDialog-CBf9_OoD.js +1 -0
  22. package/dist/assets/PresetsSection-CUEaoCVU.js +1 -0
  23. package/dist/assets/SoundHistory-BeS8EW1h.js +1 -0
  24. package/dist/assets/SoundMode-BmcZru3i.js +3 -0
  25. package/dist/assets/StockSounds-DdAUGRYK.js +1 -0
  26. package/dist/assets/TemplateFieldSection-CaeXpLFo.js +1 -0
  27. package/dist/assets/VersionHistoryPanel-CxG6XhNP.js +1 -0
  28. package/dist/assets/board-B88EPuLO.css +1 -0
  29. package/dist/assets/board-CL-he7SL.js +3 -0
  30. package/dist/assets/components-0oOSPN0l.js +1 -0
  31. package/dist/assets/googleFontRanges-gp32wJMo.js +1 -0
  32. package/dist/assets/googleFonts-BNon6M7X.js +1 -0
  33. package/dist/assets/iconsAndAliases-DL7gXP5j.js +1863 -0
  34. package/dist/assets/index-4F5NQmI8.css +1 -0
  35. package/dist/assets/index-BGHQGV5z.js +117 -0
  36. package/dist/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2 +0 -0
  37. package/dist/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2 +0 -0
  38. package/dist/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2 +0 -0
  39. package/dist/assets/inter-greek-wght-normal-CkhJZR-_.woff2 +0 -0
  40. package/dist/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2 +0 -0
  41. package/dist/assets/inter-latin-wght-normal-Dx4kXJAl.woff2 +0 -0
  42. package/dist/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2 +0 -0
  43. package/dist/assets/libraryModel-CpIwfFha.js +1 -0
  44. package/dist/assets/lucide-6iK64tTB.js +9319 -0
  45. package/dist/assets/motionStamp-CH-Hew4E.js +1 -0
  46. package/dist/assets/takeMeasure-Tdg0TxEi.js +1 -0
  47. package/dist/assets/webmcp-BsB9gxWC.js +2 -0
  48. package/dist/index.html +34 -3
  49. package/package.json +12 -9
  50. package/src/addFamilies.ts +66 -0
  51. package/src/api.ts +1631 -55
  52. package/src/app/App.tsx +977 -198
  53. package/src/app/lazyPanel.tsx +137 -0
  54. package/src/app/lazySurfaces.tsx +203 -0
  55. package/src/audio/index.tsx +41 -10
  56. package/src/audio/meter.ts +485 -0
  57. package/src/audio/meterMath.ts +273 -0
  58. package/src/audio/meterStore.ts +155 -0
  59. package/src/audio/offlineMix.ts +289 -0
  60. package/src/audio/preview.ts +928 -118
  61. package/src/bridge.ts +15 -5
  62. package/src/bridgeTypes.ts +1611 -36
  63. package/src/channels.ts +17 -32
  64. package/src/fonts/googleFonts.ts +4 -0
  65. package/src/hostApi.ts +174 -0
  66. package/src/icons.tsx +770 -0
  67. package/src/layerWords.ts +61 -0
  68. package/src/main.tsx +56 -4
  69. package/src/panels/ResizeHandle.tsx +33 -43
  70. package/src/panels/agent/AgentDots.tsx +36 -0
  71. package/src/panels/agent/AgentPanel.tsx +119 -43
  72. package/src/panels/agent/AgentQuestionDialog.tsx +202 -0
  73. package/src/panels/agent/agent.css +113 -97
  74. package/src/panels/agent/agentGate.ts +35 -0
  75. package/src/panels/code/CodeDefaultsPanel.tsx +345 -0
  76. package/src/panels/code/CodeStudio.tsx +373 -0
  77. package/src/panels/code/FileTree.tsx +265 -0
  78. package/src/panels/code/codeBufferGuard.ts +52 -0
  79. package/src/panels/code/codeParts.tsx +321 -0
  80. package/src/panels/comments/CommentComposer.tsx +239 -0
  81. package/src/panels/comments/CommentThread.tsx +346 -0
  82. package/src/panels/comments/CommentsPanel.tsx +336 -0
  83. package/src/panels/comments/InboxButton.tsx +131 -0
  84. package/src/panels/comments/MentionMenu.tsx +98 -0
  85. package/src/panels/comments/parts.tsx +171 -0
  86. package/src/panels/export/ExportDialog.tsx +919 -96
  87. package/src/panels/export/ExportScrim.tsx +57 -0
  88. package/src/panels/files/AssetsTab.tsx +656 -0
  89. package/src/panels/files/FilePanel.tsx +1466 -216
  90. package/src/panels/files/LayerMarks.tsx +40 -0
  91. package/src/panels/files/LeftColumn.tsx +37 -0
  92. package/src/panels/files/McpSection.tsx +690 -47
  93. package/src/panels/files/MissingAssetsNotice.tsx +60 -0
  94. package/src/panels/files/assetDrag.ts +79 -0
  95. package/src/panels/files/resourceParts.tsx +255 -0
  96. package/src/panels/fonts/FontPicker.tsx +762 -0
  97. package/src/panels/fonts/faceCache.ts +207 -0
  98. package/src/panels/fonts/fontPicker.css +271 -0
  99. package/src/panels/fonts/pickerModel.ts +265 -0
  100. package/src/panels/fonts/pickerRequest.ts +46 -0
  101. package/src/panels/header/AccountAvatar.tsx +76 -0
  102. package/src/panels/header/AgentChip.tsx +77 -0
  103. package/src/panels/header/AppMenu.tsx +213 -0
  104. package/src/panels/header/Header.tsx +564 -84
  105. package/src/panels/header/HistoryControls.tsx +31 -5
  106. package/src/panels/header/PresenceStack.tsx +329 -0
  107. package/src/panels/header/ProjectTitle.tsx +232 -0
  108. package/src/panels/header/ShareButton.tsx +59 -0
  109. package/src/panels/header/StatusBadges.tsx +358 -27
  110. package/src/panels/header/SyncDeletedDialog.tsx +88 -0
  111. package/src/panels/header/ZoomControls.tsx +46 -15
  112. package/src/panels/header/agentHandoff.ts +52 -0
  113. package/src/panels/header/leave.ts +26 -0
  114. package/src/panels/help/HelpSection.tsx +189 -163
  115. package/src/panels/insert/InsertDrawer.tsx +723 -0
  116. package/src/panels/insert/iconSet.ts +109 -0
  117. package/src/panels/inspector/ExposeDot.tsx +117 -0
  118. package/src/panels/inspector/FramingRows.tsx +314 -44
  119. package/src/panels/inspector/InspectorFooter.tsx +91 -0
  120. package/src/panels/inspector/InspectorHead.tsx +425 -0
  121. package/src/panels/inspector/InspectorPanel.tsx +408 -124
  122. package/src/panels/inspector/KeyframeDot.tsx +373 -0
  123. package/src/panels/inspector/KeyframeSection.tsx +257 -0
  124. package/src/panels/inspector/MarkerSection.tsx +55 -11
  125. package/src/panels/inspector/ParamRow.tsx +84 -53
  126. package/src/panels/inspector/RightColumn.tsx +152 -0
  127. package/src/panels/inspector/TimeSection.tsx +866 -0
  128. package/src/panels/inspector/animate/EaseControl.tsx +244 -0
  129. package/src/panels/inspector/animate/PresetsSection.tsx +135 -0
  130. package/src/panels/inspector/animate/ShotSection.tsx +562 -48
  131. package/src/panels/inspector/design/AlignRow.tsx +95 -31
  132. package/src/panels/inspector/design/AppearanceSection.tsx +118 -9
  133. package/src/panels/inspector/design/ClonerSection.tsx +323 -62
  134. package/src/panels/inspector/design/ComponentSection.tsx +50 -43
  135. package/src/panels/inspector/design/CornerSection.tsx +45 -14
  136. package/src/panels/inspector/design/DefinitionProps.tsx +315 -0
  137. package/src/panels/inspector/design/DefinitionSection.tsx +136 -0
  138. package/src/panels/inspector/design/DeviceSection.tsx +210 -0
  139. package/src/panels/inspector/design/FillSection.tsx +83 -51
  140. package/src/panels/inspector/design/FontField.tsx +196 -0
  141. package/src/panels/inspector/design/HtmlSection.tsx +23 -12
  142. package/src/panels/inspector/design/InstanceSection.tsx +373 -154
  143. package/src/panels/inspector/design/MaskSection.tsx +84 -0
  144. package/src/panels/inspector/design/MaterialSection.tsx +177 -0
  145. package/src/panels/inspector/design/MediaSection.tsx +273 -120
  146. package/src/panels/inspector/design/MeshSection.tsx +910 -82
  147. package/src/panels/inspector/design/PaintRows.tsx +550 -0
  148. package/src/panels/inspector/design/PlateStyleSection.tsx +177 -0
  149. package/src/panels/inspector/design/ShadowSection.tsx +221 -48
  150. package/src/panels/inspector/design/SplineFollowSection.tsx +235 -0
  151. package/src/panels/inspector/design/StrokeSection.tsx +228 -43
  152. package/src/panels/inspector/design/TemplateFieldSection.tsx +57 -0
  153. package/src/panels/inspector/design/TransformSection.tsx +244 -50
  154. package/src/panels/inspector/design/TypographySection.tsx +679 -110
  155. package/src/panels/inspector/layout.ts +295 -0
  156. package/src/panels/inspector/propValue.ts +199 -0
  157. package/src/panels/inspector/scene/CameraSection.tsx +232 -22
  158. package/src/panels/inspector/scene/EffectsSection.tsx +722 -71
  159. package/src/panels/inspector/scene/MakeItYoursSection.tsx +180 -0
  160. package/src/panels/inspector/scene/SceneDocSection.tsx +191 -0
  161. package/src/panels/inspector/scene/SceneSection.tsx +219 -44
  162. package/src/panels/inspector/scene/TransitionSection.tsx +523 -72
  163. package/src/panels/inspector/storyboard/StoryboardReferenceSection.tsx +593 -0
  164. package/src/panels/inspector/storyboard/VideoStill.tsx +120 -0
  165. package/src/panels/inspector/timeModel.ts +190 -0
  166. package/src/panels/inspector/useDocWrite.ts +438 -146
  167. package/src/panels/library/LibraryBrowser.tsx +435 -0
  168. package/src/panels/library/LibraryGrid.tsx +190 -0
  169. package/src/panels/library/LibraryPreviewPanel.tsx +349 -0
  170. package/src/panels/library/LibraryRail.tsx +84 -0
  171. package/src/panels/library/LibrarySoundPanel.tsx +293 -0
  172. package/src/panels/library/SoundHistory.tsx +245 -0
  173. package/src/panels/library/StockSounds.tsx +390 -0
  174. package/src/panels/library/libraryModel.ts +147 -0
  175. package/src/panels/library/stockSearch.ts +77 -0
  176. package/src/panels/maskMarks.tsx +117 -0
  177. package/src/panels/material/MaterialCommentNode.tsx +54 -0
  178. package/src/panels/material/MaterialGraphCanvas.tsx +861 -0
  179. package/src/panels/material/MaterialGraphMenu.tsx +45 -0
  180. package/src/panels/material/MaterialGroupNode.tsx +56 -0
  181. package/src/panels/material/MaterialLibrary.tsx +253 -0
  182. package/src/panels/material/MaterialNode.tsx +453 -0
  183. package/src/panels/material/MaterialNodePalette.tsx +349 -0
  184. package/src/panels/material/MaterialParameterControls.tsx +525 -0
  185. package/src/panels/material/MaterialRerouteNode.tsx +42 -0
  186. package/src/panels/material/MaterialWorkspace.tsx +501 -0
  187. package/src/panels/material/NodePreview.tsx +70 -0
  188. package/src/panels/material/flowModel.ts +441 -0
  189. package/src/panels/material/parameterValues.ts +231 -0
  190. package/src/panels/material/previewScheduler.ts +235 -0
  191. package/src/panels/material/reactFlow.css +6 -0
  192. package/src/panels/material/socketGlyph.ts +85 -0
  193. package/src/panels/material/viewportMemory.ts +58 -0
  194. package/src/panels/preferences/PreferencesDialog.tsx +215 -0
  195. package/src/panels/share/ShareComponentDialog.tsx +247 -0
  196. package/src/panels/stage/StageMenu.tsx +35 -5
  197. package/src/panels/stage/StagePanel.tsx +338 -23
  198. package/src/panels/stage/cellSlots.tsx +70 -0
  199. package/src/panels/storyboard/BoardCanvas.tsx +739 -0
  200. package/src/panels/storyboard/BoardCursors.tsx +158 -0
  201. package/src/panels/storyboard/BoardDropDialog.tsx +161 -0
  202. package/src/panels/storyboard/BoardPlan.tsx +42 -0
  203. package/src/panels/storyboard/ComponentSheet.tsx +187 -0
  204. package/src/panels/storyboard/ComponentStage.tsx +235 -0
  205. package/src/panels/storyboard/MiniSketch.tsx +173 -0
  206. package/src/panels/storyboard/PartPicker.tsx +64 -0
  207. package/src/panels/storyboard/PlanPanel.tsx +617 -0
  208. package/src/panels/storyboard/ReferencePreview.tsx +217 -0
  209. package/src/panels/storyboard/ShotBrief.tsx +360 -0
  210. package/src/panels/storyboard/ShotCard.tsx +251 -0
  211. package/src/panels/storyboard/StagePreview.tsx +348 -0
  212. package/src/panels/storyboard/StillThumbs.tsx +162 -0
  213. package/src/panels/storyboard/StoryboardView.tsx +79 -0
  214. package/src/panels/storyboard/board.css +1065 -0
  215. package/src/panels/storyboard/board.ts +12 -0
  216. package/src/panels/storyboard/boardClipboard.ts +111 -0
  217. package/src/panels/storyboard/boardOrder.ts +68 -0
  218. package/src/panels/storyboard/boardRows.tsx +425 -0
  219. package/src/panels/storyboard/liveCap.ts +90 -0
  220. package/src/panels/storyboard/plan.css +295 -0
  221. package/src/panels/storyboard/posterCache.ts +133 -0
  222. package/src/panels/storyboard/shotboard/ComponentPicker.tsx +373 -0
  223. package/src/panels/storyboard/shotboard/ImagePicker.tsx +145 -0
  224. package/src/panels/storyboard/shotboard/ShotBoard.tsx +292 -0
  225. package/src/panels/storyboard/shotboard/SketchCanvas.tsx +443 -0
  226. package/src/panels/storyboard/shotboard/SketchInspector.tsx +471 -0
  227. package/src/panels/storyboard/shotboard/SketchItem.tsx +240 -0
  228. package/src/panels/storyboard/shotboard/SketchLayers.tsx +130 -0
  229. package/src/panels/storyboard/shotboard/SketchPlay.tsx +108 -0
  230. package/src/panels/storyboard/shotboard/SketchStrip.tsx +178 -0
  231. package/src/panels/storyboard/shotboard/SketchToolFooter.tsx +99 -0
  232. package/src/panels/storyboard/shotboard/sketch.css +1392 -0
  233. package/src/panels/storyboard/shotboard/sketchModel.ts +219 -0
  234. package/src/panels/storyboard/storyboardDrop.ts +164 -0
  235. package/src/panels/studio/ComponentLibraryRail.tsx +346 -0
  236. package/src/panels/studio/ComponentSidePanel.tsx +355 -0
  237. package/src/panels/studio/ComponentStudio.tsx +243 -0
  238. package/src/panels/studio/ComponentsHome.tsx +318 -0
  239. package/src/panels/studio/ComponentsPreview.tsx +179 -0
  240. package/src/panels/studio/EveryUse.tsx +244 -0
  241. package/src/panels/studio/ThisUsePanel.tsx +679 -0
  242. package/src/panels/studio/componentParts.tsx +341 -0
  243. package/src/panels/studio/components.ts +6 -0
  244. package/src/panels/studio/newCodeComponent.ts +66 -0
  245. package/src/panels/timeline/AudioFxButton.tsx +290 -0
  246. package/src/panels/timeline/AudioLane.tsx +674 -85
  247. package/src/panels/timeline/BlockRow.tsx +154 -85
  248. package/src/panels/timeline/ChannelRow.tsx +378 -129
  249. package/src/panels/timeline/CurvePane.tsx +508 -0
  250. package/src/panels/timeline/Filmstrip.tsx +361 -0
  251. package/src/panels/timeline/GenerateDrawer.tsx +407 -0
  252. package/src/panels/timeline/KeyStretch.tsx +115 -0
  253. package/src/panels/timeline/LifespanRow.tsx +730 -47
  254. package/src/panels/timeline/MarkerLane.tsx +46 -8
  255. package/src/panels/timeline/PlayButton.tsx +91 -0
  256. package/src/panels/timeline/PropertyPicker.tsx +254 -0
  257. package/src/panels/timeline/ShotRow.tsx +400 -0
  258. package/src/panels/timeline/SoundMode.tsx +1406 -0
  259. package/src/panels/timeline/TimelineDock.tsx +2338 -272
  260. package/src/panels/timeline/TransportVolume.tsx +163 -0
  261. package/src/panels/timeline/beatRuler.ts +74 -0
  262. package/src/panels/timeline/curveModel.ts +500 -0
  263. package/src/panels/timeline/duckUnderVoice.ts +68 -0
  264. package/src/panels/timeline/keyframeMenu.ts +138 -0
  265. package/src/panels/timeline/labelWidth.ts +49 -0
  266. package/src/panels/timeline/marquee.ts +155 -0
  267. package/src/panels/timeline/model.ts +1860 -199
  268. package/src/panels/timeline/snap.ts +125 -43
  269. package/src/panels/timeline/staggerPreview.tsx +92 -0
  270. package/src/panels/timeline/takeMeasure.ts +72 -0
  271. package/src/panels/timeline/useLive.ts +48 -0
  272. package/src/panels/timeline/viewport.ts +234 -0
  273. package/src/panels/toolbar/BackChip.tsx +116 -0
  274. package/src/panels/toolbar/CameraViewBar.tsx +118 -49
  275. package/src/panels/toolbar/CanvasBar.tsx +117 -0
  276. package/src/panels/toolbar/InsertButton.tsx +38 -0
  277. package/src/panels/toolbar/IsolationTrail.tsx +156 -0
  278. package/src/panels/toolbar/PanelToggles.tsx +86 -0
  279. package/src/panels/toolbar/ShadingBar.tsx +119 -26
  280. package/src/panels/toolbar/ToolDockBar.tsx +329 -80
  281. package/src/panels/toolbar/ToolFooter.tsx +102 -0
  282. package/src/panels/toolbar/ViewModeBar.tsx +247 -38
  283. package/src/panels/toolbar/WorkPlaneBar.tsx +94 -0
  284. package/src/panels/toolbar/useAddRows.tsx +326 -0
  285. package/src/panels/toolbar/useDismiss.ts +122 -0
  286. package/src/panels/versions/VersionHistoryPanel.tsx +274 -0
  287. package/src/panels/versions/versionModel.ts +103 -0
  288. package/src/panels/virtualWindow.ts +271 -0
  289. package/src/shotTokens.css +151 -60
  290. package/src/stage/FrustumGizmo.tsx +504 -84
  291. package/src/stage/GridPlane.tsx +225 -16
  292. package/src/stage/NodePreviews.tsx +628 -0
  293. package/src/stage/PerfHud.tsx +437 -47
  294. package/src/stage/SplitRenderer.tsx +816 -169
  295. package/src/stage/StageApp.tsx +4274 -486
  296. package/src/stage/StageRootBoundary.tsx +114 -0
  297. package/src/stage/StageTools.tsx +651 -151
  298. package/src/stage/TransformGizmo.tsx +696 -0
  299. package/src/stage/adaptivePresentation.ts +145 -0
  300. package/src/stage/bridgeClient.ts +2522 -41
  301. package/src/stage/exportWorker.ts +9 -0
  302. package/src/stage/feed.ts +305 -14
  303. package/src/stage/fontPreview.ts +176 -0
  304. package/src/stage/frustumGeometry.ts +319 -1
  305. package/src/stage/furnitureTokens.ts +33 -0
  306. package/src/stage/gizmoMath.ts +508 -16
  307. package/src/stage/gpuTimer.ts +276 -0
  308. package/src/stage/instanceModules.ts +194 -33
  309. package/src/stage/interactions/move.ts +24 -5
  310. package/src/stage/isolation.ts +291 -33
  311. package/src/stage/jsSelfProfiler.ts +325 -0
  312. package/src/stage/main.tsx +116 -16
  313. package/src/stage/modalState.ts +222 -23
  314. package/src/stage/moduleEpoch.ts +60 -0
  315. package/src/stage/motionPathStage.ts +279 -0
  316. package/src/stage/motionPreview.ts +74 -0
  317. package/src/stage/overlays/Overlays.tsx +1112 -159
  318. package/src/stage/overlays/Rulers.tsx +495 -0
  319. package/src/stage/panes.ts +159 -10
  320. package/src/stage/project.ts +68 -3
  321. package/src/stage/renderScaleController.ts +730 -0
  322. package/src/stage/rulers.ts +129 -0
  323. package/src/stage/sceneExtent.ts +75 -0
  324. package/src/stage/shading.ts +20 -0
  325. package/src/stage/splineStage.ts +632 -0
  326. package/src/stage/stagePerformanceTelemetry.ts +717 -0
  327. package/src/stage/stageTheme.ts +36 -0
  328. package/src/stage/stageWarmup.ts +11 -0
  329. package/src/stage/textAutoSize.ts +124 -0
  330. package/src/stage/tier1Export.ts +641 -0
  331. package/src/stage/tokenColor.ts +14 -9
  332. package/src/stage/view.ts +56 -9
  333. package/src/stage/workingView.ts +277 -33
  334. package/src/state/accountPrefs.ts +261 -0
  335. package/src/state/agentActions.ts +173 -15
  336. package/src/state/agentActivity.ts +198 -0
  337. package/src/state/agentQuestion.ts +239 -0
  338. package/src/state/bootOpen.ts +42 -0
  339. package/src/state/cameraVerbs.ts +139 -0
  340. package/src/state/clientId.ts +6 -1
  341. package/src/state/comments.ts +1099 -0
  342. package/src/state/context.tsx +19 -1
  343. package/src/state/editorPrefs.ts +220 -0
  344. package/src/state/errorReports.ts +121 -0
  345. package/src/state/fieldWrite.ts +161 -0
  346. package/src/state/fontRecents.ts +70 -0
  347. package/src/state/fonts.ts +656 -0
  348. package/src/state/graphClipboard.ts +414 -0
  349. package/src/state/imageThumbs.ts +216 -0
  350. package/src/state/insert.ts +444 -67
  351. package/src/state/isolationTrail.ts +92 -0
  352. package/src/state/keyMoves.ts +134 -0
  353. package/src/state/keyframeClipboard.ts +177 -0
  354. package/src/state/keymap.ts +1153 -117
  355. package/src/state/layoutPrefs.ts +272 -0
  356. package/src/state/layouts.ts +205 -0
  357. package/src/state/measureMedia.ts +167 -0
  358. package/src/state/menu.ts +2341 -28
  359. package/src/state/motionStamp.ts +7 -0
  360. package/src/state/panelSize.ts +375 -5
  361. package/src/state/pendingChanges.ts +119 -0
  362. package/src/state/playHold.ts +78 -0
  363. package/src/state/playbackPreparation.ts +562 -0
  364. package/src/state/posterCapture.ts +242 -0
  365. package/src/state/presence.ts +254 -0
  366. package/src/state/projectComponents.ts +160 -0
  367. package/src/state/renderEvents.ts +298 -18
  368. package/src/state/runtimeErrors.ts +46 -0
  369. package/src/state/selection.ts +12 -0
  370. package/src/state/shortcuts.ts +1606 -0
  371. package/src/state/sketchGuide.ts +51 -0
  372. package/src/state/splineRefs.ts +87 -0
  373. package/src/state/stageHealth.ts +259 -0
  374. package/src/state/stageWatchdog.ts +47 -0
  375. package/src/state/stillStage.ts +330 -0
  376. package/src/state/stillThumbs.ts +474 -0
  377. package/src/state/store.ts +23591 -2982
  378. package/src/state/storyboardModel.ts +528 -0
  379. package/src/state/sync.ts +1257 -0
  380. package/src/state/syncCache.ts +159 -0
  381. package/src/state/triangles.ts +13 -0
  382. package/src/state/types.ts +1698 -55
  383. package/src/state/unsavedGuard.ts +49 -0
  384. package/src/state/viewMode.ts +200 -0
  385. package/src/state/webmcp.ts +1128 -0
  386. package/src/state/workspace.ts +1147 -0
  387. package/src/styles/assets-tab.css +304 -0
  388. package/src/styles/canvas.css +545 -0
  389. package/src/styles/comments.css +1435 -0
  390. package/src/styles/controls.css +162 -0
  391. package/src/styles/dialogs.css +390 -0
  392. package/src/styles/insert-drawer.css +586 -0
  393. package/src/styles/inspector-board.css +207 -0
  394. package/src/styles/inspector-object.css +486 -0
  395. package/src/styles/inspector-shot.css +252 -0
  396. package/src/styles/inspector.css +360 -0
  397. package/src/styles/left-column.css +1628 -0
  398. package/src/styles/library-preview.css +575 -0
  399. package/src/styles/library.css +512 -0
  400. package/src/styles/modes/code.css +569 -0
  401. package/src/styles/modes/component.css +1561 -0
  402. package/src/styles/modes/material.css +1201 -0
  403. package/src/styles/modes/storyboard.css +518 -0
  404. package/src/styles/share-component.css +49 -0
  405. package/src/styles/shell.css +653 -0
  406. package/src/styles/shot-brief.css +360 -0
  407. package/src/styles/states.css +76 -0
  408. package/src/styles/sync.css +380 -0
  409. package/src/styles/timeline-graph.css +384 -0
  410. package/src/styles/timeline-meters.css +89 -0
  411. package/src/styles/timeline-rows.css +1959 -0
  412. package/src/styles/timeline-sound.css +1003 -0
  413. package/src/styles/timeline.css +754 -0
  414. package/src/styles/tool-footer.css +525 -0
  415. package/src/styles/topbar.css +886 -0
  416. package/src/styles/versions.css +262 -0
  417. package/src/styles.css +72 -2921
  418. package/src/tools.ts +108 -23
  419. package/dist/assets/index-B7notge7.css +0 -1
  420. package/dist/assets/index-BBE6Ta9L.js +0 -52
  421. package/src/panels/files/icons.tsx +0 -118
  422. package/src/panels/header/DocSwitcher.tsx +0 -85
  423. package/src/panels/header/TransportBar.tsx +0 -86
  424. package/src/panels/inspector/animate/BlockTiming.tsx +0 -341
  425. package/src/panels/inspector/animate/DuringBlocks.tsx +0 -85
  426. package/src/panels/inspector/animate/InOutPresets.tsx +0 -57
  427. package/src/panels/inspector/animate/ResolvedChannels.tsx +0 -150
  428. package/src/panels/inspector/animate/useBlocks.ts +0 -43
  429. package/src/panels/material/MaterialPicker.tsx +0 -172
  430. package/src/panels/timeline/SceneStrip.tsx +0 -145
  431. package/src/panels/toolbar/AddMenu.tsx +0 -230
  432. package/src/stage/MoveGizmo.tsx +0 -411
@@ -1,52 +0,0 @@
1
- (function(){const l=document.createElement("link").relList;if(l&&l.supports&&l.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const c of r)if(c.type==="childList")for(const d of c.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function s(r){const c={};return r.integrity&&(c.integrity=r.integrity),r.referrerPolicy&&(c.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?c.credentials="include":r.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function i(r){if(r.ep)return;r.ep=!0;const c=s(r);fetch(r.href,c)}})();var wu={exports:{}},Xi={};/**
2
- * @license React
3
- * react-jsx-runtime.production.js
4
- *
5
- * Copyright (c) Meta Platforms, Inc. and affiliates.
6
- *
7
- * This source code is licensed under the MIT license found in the
8
- * LICENSE file in the root directory of this source tree.
9
- */var Xp;function kx(){if(Xp)return Xi;Xp=1;var t=Symbol.for("react.transitional.element"),l=Symbol.for("react.fragment");function s(i,r,c){var d=null;if(c!==void 0&&(d=""+c),r.key!==void 0&&(d=""+r.key),"key"in r){c={};for(var m in r)m!=="key"&&(c[m]=r[m])}else c=r;return r=c.ref,{$$typeof:t,type:i,key:d,ref:r!==void 0?r:null,props:c}}return Xi.Fragment=l,Xi.jsx=s,Xi.jsxs=s,Xi}var Kp;function jx(){return Kp||(Kp=1,wu.exports=kx()),wu.exports}var f=jx(),Tu={exports:{}},je={};/**
10
- * @license React
11
- * react.production.js
12
- *
13
- * Copyright (c) Meta Platforms, Inc. and affiliates.
14
- *
15
- * This source code is licensed under the MIT license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */var qp;function Mx(){if(qp)return je;qp=1;var t=Symbol.for("react.transitional.element"),l=Symbol.for("react.portal"),s=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),c=Symbol.for("react.consumer"),d=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),g=Symbol.for("react.memo"),v=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),E=Symbol.iterator;function M(R){return R===null||typeof R!="object"?null:(R=E&&R[E]||R["@@iterator"],typeof R=="function"?R:null)}var k={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},D=Object.assign,_={};function z(R,ee,le){this.props=R,this.context=ee,this.refs=_,this.updater=le||k}z.prototype.isReactComponent={},z.prototype.setState=function(R,ee){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,ee,"setState")},z.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function G(){}G.prototype=z.prototype;function C(R,ee,le){this.props=R,this.context=ee,this.refs=_,this.updater=le||k}var L=C.prototype=new G;L.constructor=C,D(L,z.prototype),L.isPureReactComponent=!0;var U=Array.isArray;function T(){}var q={H:null,A:null,T:null,S:null},ae=Object.prototype.hasOwnProperty;function me(R,ee,le){var oe=le.ref;return{$$typeof:t,type:R,key:ee,ref:oe!==void 0?oe:null,props:le}}function se(R,ee){return me(R.type,ee,R.props)}function Re(R){return typeof R=="object"&&R!==null&&R.$$typeof===t}function Fe(R){var ee={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(le){return ee[le]})}var vt=/\/+/g;function he(R,ee){return typeof R=="object"&&R!==null&&R.key!=null?Fe(""+R.key):ee.toString(36)}function ke(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(T,T):(R.status="pending",R.then(function(ee){R.status==="pending"&&(R.status="fulfilled",R.value=ee)},function(ee){R.status==="pending"&&(R.status="rejected",R.reason=ee)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function V(R,ee,le,oe,Se){var Ae=typeof R;(Ae==="undefined"||Ae==="boolean")&&(R=null);var _e=!1;if(R===null)_e=!0;else switch(Ae){case"bigint":case"string":case"number":_e=!0;break;case"object":switch(R.$$typeof){case t:case l:_e=!0;break;case v:return _e=R._init,V(_e(R._payload),ee,le,oe,Se)}}if(_e)return Se=Se(R),_e=oe===""?"."+he(R,0):oe,U(Se)?(le="",_e!=null&&(le=_e.replace(vt,"$&/")+"/"),V(Se,ee,le,"",function(Sn){return Sn})):Se!=null&&(Re(Se)&&(Se=se(Se,le+(Se.key==null||R&&R.key===Se.key?"":(""+Se.key).replace(vt,"$&/")+"/")+_e)),ee.push(Se)),1;_e=0;var ft=oe===""?".":oe+":";if(U(R))for(var Me=0;Me<R.length;Me++)oe=R[Me],Ae=ft+he(oe,Me),_e+=V(oe,ee,le,Ae,Se);else if(Me=M(R),typeof Me=="function")for(R=Me.call(R),Me=0;!(oe=R.next()).done;)oe=oe.value,Ae=ft+he(oe,Me++),_e+=V(oe,ee,le,Ae,Se);else if(Ae==="object"){if(typeof R.then=="function")return V(ke(R),ee,le,oe,Se);throw ee=String(R),Error("Objects are not valid as a React child (found: "+(ee==="[object Object]"?"object with keys {"+Object.keys(R).join(", ")+"}":ee)+"). If you meant to render a collection of children, use an array instead.")}return _e}function ne(R,ee,le){if(R==null)return R;var oe=[],Se=0;return V(R,oe,"","",function(Ae){return ee.call(le,Ae,Se++)}),oe}function ue(R){if(R._status===-1){var ee=R._result;ee=ee(),ee.then(function(le){(R._status===0||R._status===-1)&&(R._status=1,R._result=le)},function(le){(R._status===0||R._status===-1)&&(R._status=2,R._result=le)}),R._status===-1&&(R._status=0,R._result=ee)}if(R._status===1)return R._result.default;throw R._result}var Le=typeof reportError=="function"?reportError:function(R){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var ee=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof R=="object"&&R!==null&&typeof R.message=="string"?String(R.message):String(R),error:R});if(!window.dispatchEvent(ee))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",R);return}console.error(R)},$e={map:ne,forEach:function(R,ee,le){ne(R,function(){ee.apply(this,arguments)},le)},count:function(R){var ee=0;return ne(R,function(){ee++}),ee},toArray:function(R){return ne(R,function(ee){return ee})||[]},only:function(R){if(!Re(R))throw Error("React.Children.only expected to receive a single React element child.");return R}};return je.Activity=x,je.Children=$e,je.Component=z,je.Fragment=s,je.Profiler=r,je.PureComponent=C,je.StrictMode=i,je.Suspense=h,je.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=q,je.__COMPILER_RUNTIME={__proto__:null,c:function(R){return q.H.useMemoCache(R)}},je.cache=function(R){return function(){return R.apply(null,arguments)}},je.cacheSignal=function(){return null},je.cloneElement=function(R,ee,le){if(R==null)throw Error("The argument must be a React element, but you passed "+R+".");var oe=D({},R.props),Se=R.key;if(ee!=null)for(Ae in ee.key!==void 0&&(Se=""+ee.key),ee)!ae.call(ee,Ae)||Ae==="key"||Ae==="__self"||Ae==="__source"||Ae==="ref"&&ee.ref===void 0||(oe[Ae]=ee[Ae]);var Ae=arguments.length-2;if(Ae===1)oe.children=le;else if(1<Ae){for(var _e=Array(Ae),ft=0;ft<Ae;ft++)_e[ft]=arguments[ft+2];oe.children=_e}return me(R.type,Se,oe)},je.createContext=function(R){return R={$$typeof:d,_currentValue:R,_currentValue2:R,_threadCount:0,Provider:null,Consumer:null},R.Provider=R,R.Consumer={$$typeof:c,_context:R},R},je.createElement=function(R,ee,le){var oe,Se={},Ae=null;if(ee!=null)for(oe in ee.key!==void 0&&(Ae=""+ee.key),ee)ae.call(ee,oe)&&oe!=="key"&&oe!=="__self"&&oe!=="__source"&&(Se[oe]=ee[oe]);var _e=arguments.length-2;if(_e===1)Se.children=le;else if(1<_e){for(var ft=Array(_e),Me=0;Me<_e;Me++)ft[Me]=arguments[Me+2];Se.children=ft}if(R&&R.defaultProps)for(oe in _e=R.defaultProps,_e)Se[oe]===void 0&&(Se[oe]=_e[oe]);return me(R,Ae,Se)},je.createRef=function(){return{current:null}},je.forwardRef=function(R){return{$$typeof:m,render:R}},je.isValidElement=Re,je.lazy=function(R){return{$$typeof:v,_payload:{_status:-1,_result:R},_init:ue}},je.memo=function(R,ee){return{$$typeof:g,type:R,compare:ee===void 0?null:ee}},je.startTransition=function(R){var ee=q.T,le={};q.T=le;try{var oe=R(),Se=q.S;Se!==null&&Se(le,oe),typeof oe=="object"&&oe!==null&&typeof oe.then=="function"&&oe.then(T,Le)}catch(Ae){Le(Ae)}finally{ee!==null&&le.types!==null&&(ee.types=le.types),q.T=ee}},je.unstable_useCacheRefresh=function(){return q.H.useCacheRefresh()},je.use=function(R){return q.H.use(R)},je.useActionState=function(R,ee,le){return q.H.useActionState(R,ee,le)},je.useCallback=function(R,ee){return q.H.useCallback(R,ee)},je.useContext=function(R){return q.H.useContext(R)},je.useDebugValue=function(){},je.useDeferredValue=function(R,ee){return q.H.useDeferredValue(R,ee)},je.useEffect=function(R,ee){return q.H.useEffect(R,ee)},je.useEffectEvent=function(R){return q.H.useEffectEvent(R)},je.useId=function(){return q.H.useId()},je.useImperativeHandle=function(R,ee,le){return q.H.useImperativeHandle(R,ee,le)},je.useInsertionEffect=function(R,ee){return q.H.useInsertionEffect(R,ee)},je.useLayoutEffect=function(R,ee){return q.H.useLayoutEffect(R,ee)},je.useMemo=function(R,ee){return q.H.useMemo(R,ee)},je.useOptimistic=function(R,ee){return q.H.useOptimistic(R,ee)},je.useReducer=function(R,ee,le){return q.H.useReducer(R,ee,le)},je.useRef=function(R){return q.H.useRef(R)},je.useState=function(R){return q.H.useState(R)},je.useSyncExternalStore=function(R,ee,le){return q.H.useSyncExternalStore(R,ee,le)},je.useTransition=function(){return q.H.useTransition()},je.version="19.2.7",je}var Zp;function kd(){return Zp||(Zp=1,Tu.exports=Mx()),Tu.exports}var H=kd(),Ou={exports:{}},Ki={},Du={exports:{}},zu={};/**
18
- * @license React
19
- * scheduler.production.js
20
- *
21
- * Copyright (c) Meta Platforms, Inc. and affiliates.
22
- *
23
- * This source code is licensed under the MIT license found in the
24
- * LICENSE file in the root directory of this source tree.
25
- */var Qp;function Ex(){return Qp||(Qp=1,(function(t){function l(V,ne){var ue=V.length;V.push(ne);e:for(;0<ue;){var Le=ue-1>>>1,$e=V[Le];if(0<r($e,ne))V[Le]=ne,V[ue]=$e,ue=Le;else break e}}function s(V){return V.length===0?null:V[0]}function i(V){if(V.length===0)return null;var ne=V[0],ue=V.pop();if(ue!==ne){V[0]=ue;e:for(var Le=0,$e=V.length,R=$e>>>1;Le<R;){var ee=2*(Le+1)-1,le=V[ee],oe=ee+1,Se=V[oe];if(0>r(le,ue))oe<$e&&0>r(Se,le)?(V[Le]=Se,V[oe]=ue,Le=oe):(V[Le]=le,V[ee]=ue,Le=ee);else if(oe<$e&&0>r(Se,ue))V[Le]=Se,V[oe]=ue,Le=oe;else break e}}return ne}function r(V,ne){var ue=V.sortIndex-ne.sortIndex;return ue!==0?ue:V.id-ne.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var c=performance;t.unstable_now=function(){return c.now()}}else{var d=Date,m=d.now();t.unstable_now=function(){return d.now()-m}}var h=[],g=[],v=1,x=null,E=3,M=!1,k=!1,D=!1,_=!1,z=typeof setTimeout=="function"?setTimeout:null,G=typeof clearTimeout=="function"?clearTimeout:null,C=typeof setImmediate<"u"?setImmediate:null;function L(V){for(var ne=s(g);ne!==null;){if(ne.callback===null)i(g);else if(ne.startTime<=V)i(g),ne.sortIndex=ne.expirationTime,l(h,ne);else break;ne=s(g)}}function U(V){if(D=!1,L(V),!k)if(s(h)!==null)k=!0,T||(T=!0,Fe());else{var ne=s(g);ne!==null&&ke(U,ne.startTime-V)}}var T=!1,q=-1,ae=5,me=-1;function se(){return _?!0:!(t.unstable_now()-me<ae)}function Re(){if(_=!1,T){var V=t.unstable_now();me=V;var ne=!0;try{e:{k=!1,D&&(D=!1,G(q),q=-1),M=!0;var ue=E;try{t:{for(L(V),x=s(h);x!==null&&!(x.expirationTime>V&&se());){var Le=x.callback;if(typeof Le=="function"){x.callback=null,E=x.priorityLevel;var $e=Le(x.expirationTime<=V);if(V=t.unstable_now(),typeof $e=="function"){x.callback=$e,L(V),ne=!0;break t}x===s(h)&&i(h),L(V)}else i(h);x=s(h)}if(x!==null)ne=!0;else{var R=s(g);R!==null&&ke(U,R.startTime-V),ne=!1}}break e}finally{x=null,E=ue,M=!1}ne=void 0}}finally{ne?Fe():T=!1}}}var Fe;if(typeof C=="function")Fe=function(){C(Re)};else if(typeof MessageChannel<"u"){var vt=new MessageChannel,he=vt.port2;vt.port1.onmessage=Re,Fe=function(){he.postMessage(null)}}else Fe=function(){z(Re,0)};function ke(V,ne){q=z(function(){V(t.unstable_now())},ne)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(V){V.callback=null},t.unstable_forceFrameRate=function(V){0>V||125<V?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):ae=0<V?Math.floor(1e3/V):5},t.unstable_getCurrentPriorityLevel=function(){return E},t.unstable_next=function(V){switch(E){case 1:case 2:case 3:var ne=3;break;default:ne=E}var ue=E;E=ne;try{return V()}finally{E=ue}},t.unstable_requestPaint=function(){_=!0},t.unstable_runWithPriority=function(V,ne){switch(V){case 1:case 2:case 3:case 4:case 5:break;default:V=3}var ue=E;E=V;try{return ne()}finally{E=ue}},t.unstable_scheduleCallback=function(V,ne,ue){var Le=t.unstable_now();switch(typeof ue=="object"&&ue!==null?(ue=ue.delay,ue=typeof ue=="number"&&0<ue?Le+ue:Le):ue=Le,V){case 1:var $e=-1;break;case 2:$e=250;break;case 5:$e=1073741823;break;case 4:$e=1e4;break;default:$e=5e3}return $e=ue+$e,V={id:v++,callback:ne,priorityLevel:V,startTime:ue,expirationTime:$e,sortIndex:-1},ue>Le?(V.sortIndex=ue,l(g,V),s(h)===null&&V===s(g)&&(D?(G(q),q=-1):D=!0,ke(U,ue-Le))):(V.sortIndex=$e,l(h,V),k||M||(k=!0,T||(T=!0,Fe()))),V},t.unstable_shouldYield=se,t.unstable_wrapCallback=function(V){var ne=E;return function(){var ue=E;E=ne;try{return V.apply(this,arguments)}finally{E=ue}}}})(zu)),zu}var Jp;function Nx(){return Jp||(Jp=1,Du.exports=Ex()),Du.exports}var _u={exports:{}},Ct={};/**
26
- * @license React
27
- * react-dom.production.js
28
- *
29
- * Copyright (c) Meta Platforms, Inc. and affiliates.
30
- *
31
- * This source code is licensed under the MIT license found in the
32
- * LICENSE file in the root directory of this source tree.
33
- */var Wp;function Ax(){if(Wp)return Ct;Wp=1;var t=kd();function l(h){var g="https://react.dev/errors/"+h;if(1<arguments.length){g+="?args[]="+encodeURIComponent(arguments[1]);for(var v=2;v<arguments.length;v++)g+="&args[]="+encodeURIComponent(arguments[v])}return"Minified React error #"+h+"; visit "+g+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function s(){}var i={d:{f:s,r:function(){throw Error(l(522))},D:s,C:s,L:s,m:s,X:s,S:s,M:s},p:0,findDOMNode:null},r=Symbol.for("react.portal");function c(h,g,v){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:r,key:x==null?null:""+x,children:h,containerInfo:g,implementation:v}}var d=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function m(h,g){if(h==="font")return"";if(typeof g=="string")return g==="use-credentials"?g:""}return Ct.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=i,Ct.createPortal=function(h,g){var v=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!g||g.nodeType!==1&&g.nodeType!==9&&g.nodeType!==11)throw Error(l(299));return c(h,g,null,v)},Ct.flushSync=function(h){var g=d.T,v=i.p;try{if(d.T=null,i.p=2,h)return h()}finally{d.T=g,i.p=v,i.d.f()}},Ct.preconnect=function(h,g){typeof h=="string"&&(g?(g=g.crossOrigin,g=typeof g=="string"?g==="use-credentials"?g:"":void 0):g=null,i.d.C(h,g))},Ct.prefetchDNS=function(h){typeof h=="string"&&i.d.D(h)},Ct.preinit=function(h,g){if(typeof h=="string"&&g&&typeof g.as=="string"){var v=g.as,x=m(v,g.crossOrigin),E=typeof g.integrity=="string"?g.integrity:void 0,M=typeof g.fetchPriority=="string"?g.fetchPriority:void 0;v==="style"?i.d.S(h,typeof g.precedence=="string"?g.precedence:void 0,{crossOrigin:x,integrity:E,fetchPriority:M}):v==="script"&&i.d.X(h,{crossOrigin:x,integrity:E,fetchPriority:M,nonce:typeof g.nonce=="string"?g.nonce:void 0})}},Ct.preinitModule=function(h,g){if(typeof h=="string")if(typeof g=="object"&&g!==null){if(g.as==null||g.as==="script"){var v=m(g.as,g.crossOrigin);i.d.M(h,{crossOrigin:v,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0})}}else g==null&&i.d.M(h)},Ct.preload=function(h,g){if(typeof h=="string"&&typeof g=="object"&&g!==null&&typeof g.as=="string"){var v=g.as,x=m(v,g.crossOrigin);i.d.L(h,v,{crossOrigin:x,integrity:typeof g.integrity=="string"?g.integrity:void 0,nonce:typeof g.nonce=="string"?g.nonce:void 0,type:typeof g.type=="string"?g.type:void 0,fetchPriority:typeof g.fetchPriority=="string"?g.fetchPriority:void 0,referrerPolicy:typeof g.referrerPolicy=="string"?g.referrerPolicy:void 0,imageSrcSet:typeof g.imageSrcSet=="string"?g.imageSrcSet:void 0,imageSizes:typeof g.imageSizes=="string"?g.imageSizes:void 0,media:typeof g.media=="string"?g.media:void 0})}},Ct.preloadModule=function(h,g){if(typeof h=="string")if(g){var v=m(g.as,g.crossOrigin);i.d.m(h,{as:typeof g.as=="string"&&g.as!=="script"?g.as:void 0,crossOrigin:v,integrity:typeof g.integrity=="string"?g.integrity:void 0})}else i.d.m(h)},Ct.requestFormReset=function(h){i.d.r(h)},Ct.unstable_batchedUpdates=function(h,g){return h(g)},Ct.useFormState=function(h,g,v){return d.H.useFormState(h,g,v)},Ct.useFormStatus=function(){return d.H.useHostTransitionStatus()},Ct.version="19.2.7",Ct}var Pp;function T0(){if(Pp)return _u.exports;Pp=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(l){console.error(l)}}return t(),_u.exports=Ax(),_u.exports}/**
34
- * @license React
35
- * react-dom-client.production.js
36
- *
37
- * Copyright (c) Meta Platforms, Inc. and affiliates.
38
- *
39
- * This source code is licensed under the MIT license found in the
40
- * LICENSE file in the root directory of this source tree.
41
- */var eg;function Cx(){if(eg)return Ki;eg=1;var t=Nx(),l=kd(),s=T0();function i(e){var n="https://react.dev/errors/"+e;if(1<arguments.length){n+="?args[]="+encodeURIComponent(arguments[1]);for(var a=2;a<arguments.length;a++)n+="&args[]="+encodeURIComponent(arguments[a])}return"Minified React error #"+e+"; visit "+n+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function r(e){return!(!e||e.nodeType!==1&&e.nodeType!==9&&e.nodeType!==11)}function c(e){var n=e,a=e;if(e.alternate)for(;n.return;)n=n.return;else{e=n;do n=e,(n.flags&4098)!==0&&(a=n.return),e=n.return;while(e)}return n.tag===3?a:null}function d(e){if(e.tag===13){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function m(e){if(e.tag===31){var n=e.memoizedState;if(n===null&&(e=e.alternate,e!==null&&(n=e.memoizedState)),n!==null)return n.dehydrated}return null}function h(e){if(c(e)!==e)throw Error(i(188))}function g(e){var n=e.alternate;if(!n){if(n=c(e),n===null)throw Error(i(188));return n!==e?null:e}for(var a=e,o=n;;){var u=a.return;if(u===null)break;var p=u.alternate;if(p===null){if(o=u.return,o!==null){a=o;continue}break}if(u.child===p.child){for(p=u.child;p;){if(p===a)return h(u),e;if(p===o)return h(u),n;p=p.sibling}throw Error(i(188))}if(a.return!==o.return)a=u,o=p;else{for(var y=!1,j=u.child;j;){if(j===a){y=!0,a=u,o=p;break}if(j===o){y=!0,o=u,a=p;break}j=j.sibling}if(!y){for(j=p.child;j;){if(j===a){y=!0,a=p,o=u;break}if(j===o){y=!0,o=p,a=u;break}j=j.sibling}if(!y)throw Error(i(189))}}if(a.alternate!==o)throw Error(i(190))}if(a.tag!==3)throw Error(i(188));return a.stateNode.current===a?e:n}function v(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e;for(e=e.child;e!==null;){if(n=v(e),n!==null)return n;e=e.sibling}return null}var x=Object.assign,E=Symbol.for("react.element"),M=Symbol.for("react.transitional.element"),k=Symbol.for("react.portal"),D=Symbol.for("react.fragment"),_=Symbol.for("react.strict_mode"),z=Symbol.for("react.profiler"),G=Symbol.for("react.consumer"),C=Symbol.for("react.context"),L=Symbol.for("react.forward_ref"),U=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),q=Symbol.for("react.memo"),ae=Symbol.for("react.lazy"),me=Symbol.for("react.activity"),se=Symbol.for("react.memo_cache_sentinel"),Re=Symbol.iterator;function Fe(e){return e===null||typeof e!="object"?null:(e=Re&&e[Re]||e["@@iterator"],typeof e=="function"?e:null)}var vt=Symbol.for("react.client.reference");function he(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===vt?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case D:return"Fragment";case z:return"Profiler";case _:return"StrictMode";case U:return"Suspense";case T:return"SuspenseList";case me:return"Activity"}if(typeof e=="object")switch(e.$$typeof){case k:return"Portal";case C:return e.displayName||"Context";case G:return(e._context.displayName||"Context")+".Consumer";case L:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case q:return n=e.displayName||null,n!==null?n:he(e.type)||"Memo";case ae:n=e._payload,e=e._init;try{return he(e(n))}catch{}}return null}var ke=Array.isArray,V=l.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ne=s.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ue={pending:!1,data:null,method:null,action:null},Le=[],$e=-1;function R(e){return{current:e}}function ee(e){0>$e||(e.current=Le[$e],Le[$e]=null,$e--)}function le(e,n){$e++,Le[$e]=e.current,e.current=n}var oe=R(null),Se=R(null),Ae=R(null),_e=R(null);function ft(e,n){switch(le(Ae,n),le(Se,e),le(oe,null),n.nodeType){case 9:case 11:e=(e=n.documentElement)&&(e=e.namespaceURI)?pp(e):0;break;default:if(e=n.tagName,n=n.namespaceURI)n=pp(n),e=gp(n,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}ee(oe),le(oe,e)}function Me(){ee(oe),ee(Se),ee(Ae)}function Sn(e){e.memoizedState!==null&&le(_e,e);var n=oe.current,a=gp(n,e.type);n!==a&&(le(Se,e),le(oe,a))}function Ta(e){Se.current===e&&(ee(oe),ee(Se)),_e.current===e&&(ee(_e),$i._currentValue=ue)}var K,b;function S(e){if(K===void 0)try{throw Error()}catch(a){var n=a.stack.trim().match(/\n( *(at )?)/);K=n&&n[1]||"",b=-1<a.stack.indexOf(`
42
- at`)?" (<anonymous>)":-1<a.stack.indexOf("@")?"@unknown:0:0":""}return`
43
- `+K+e+b}var N=!1;function A(e,n){if(!e||N)return"";N=!0;var a=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var o={DetermineComponentFrameRoot:function(){try{if(n){var P=function(){throw Error()};if(Object.defineProperty(P.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(P,[])}catch(X){var Y=X}Reflect.construct(e,[],P)}else{try{P.call()}catch(X){Y=X}e.call(P.prototype)}}else{try{throw Error()}catch(X){Y=X}(P=e())&&typeof P.catch=="function"&&P.catch(function(){})}}catch(X){if(X&&Y&&typeof X.stack=="string")return[X.stack,Y.stack]}return[null,null]}};o.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var u=Object.getOwnPropertyDescriptor(o.DetermineComponentFrameRoot,"name");u&&u.configurable&&Object.defineProperty(o.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var p=o.DetermineComponentFrameRoot(),y=p[0],j=p[1];if(y&&j){var w=y.split(`
44
- `),$=j.split(`
45
- `);for(u=o=0;o<w.length&&!w[o].includes("DetermineComponentFrameRoot");)o++;for(;u<$.length&&!$[u].includes("DetermineComponentFrameRoot");)u++;if(o===w.length||u===$.length)for(o=w.length-1,u=$.length-1;1<=o&&0<=u&&w[o]!==$[u];)u--;for(;1<=o&&0<=u;o--,u--)if(w[o]!==$[u]){if(o!==1||u!==1)do if(o--,u--,0>u||w[o]!==$[u]){var Q=`
46
- `+w[o].replace(" at new "," at ");return e.displayName&&Q.includes("<anonymous>")&&(Q=Q.replace("<anonymous>",e.displayName)),Q}while(1<=o&&0<=u);break}}}finally{N=!1,Error.prepareStackTrace=a}return(a=e?e.displayName||e.name:"")?S(a):""}function O(e,n){switch(e.tag){case 26:case 27:case 5:return S(e.type);case 16:return S("Lazy");case 13:return e.child!==n&&n!==null?S("Suspense Fallback"):S("Suspense");case 19:return S("SuspenseList");case 0:case 15:return A(e.type,!1);case 11:return A(e.type.render,!1);case 1:return A(e.type,!0);case 31:return S("Activity");default:return""}}function J(e){try{var n="",a=null;do n+=O(e,a),a=e,e=e.return;while(e);return n}catch(o){return`
47
- Error generating stack: `+o.message+`
48
- `+o.stack}}var te=Object.prototype.hasOwnProperty,de=t.unstable_scheduleCallback,re=t.unstable_cancelCallback,ge=t.unstable_shouldYield,Ce=t.unstable_requestPaint,we=t.unstable_now,Pe=t.unstable_getCurrentPriorityLevel,Pl=t.unstable_ImmediatePriority,Kd=t.unstable_UserBlockingPriority,ps=t.unstable_NormalPriority,av=t.unstable_LowPriority,qd=t.unstable_IdlePriority,lv=t.log,iv=t.unstable_setDisableYieldValue,ei=null,It=null;function Zn(e){if(typeof lv=="function"&&iv(e),It&&typeof It.setStrictMode=="function")try{It.setStrictMode(ei,e)}catch{}}var Ut=Math.clz32?Math.clz32:rv,sv=Math.log,ov=Math.LN2;function rv(e){return e>>>=0,e===0?32:31-(sv(e)/ov|0)|0}var gs=256,ys=262144,vs=4194304;function Oa(e){var n=e&42;if(n!==0)return n;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function bs(e,n,a){var o=e.pendingLanes;if(o===0)return 0;var u=0,p=e.suspendedLanes,y=e.pingedLanes;e=e.warmLanes;var j=o&134217727;return j!==0?(o=j&~p,o!==0?u=Oa(o):(y&=j,y!==0?u=Oa(y):a||(a=j&~e,a!==0&&(u=Oa(a))))):(j=o&~p,j!==0?u=Oa(j):y!==0?u=Oa(y):a||(a=o&~e,a!==0&&(u=Oa(a)))),u===0?0:n!==0&&n!==u&&(n&p)===0&&(p=u&-u,a=n&-n,p>=a||p===32&&(a&4194048)!==0)?n:u}function ti(e,n){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&n)===0}function cv(e,n){switch(e){case 1:case 2:case 4:case 8:case 64:return n+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return n+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Zd(){var e=vs;return vs<<=1,(vs&62914560)===0&&(vs=4194304),e}function yr(e){for(var n=[],a=0;31>a;a++)n.push(e);return n}function ni(e,n){e.pendingLanes|=n,n!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function uv(e,n,a,o,u,p){var y=e.pendingLanes;e.pendingLanes=a,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=a,e.entangledLanes&=a,e.errorRecoveryDisabledLanes&=a,e.shellSuspendCounter=0;var j=e.entanglements,w=e.expirationTimes,$=e.hiddenUpdates;for(a=y&~a;0<a;){var Q=31-Ut(a),P=1<<Q;j[Q]=0,w[Q]=-1;var Y=$[Q];if(Y!==null)for($[Q]=null,Q=0;Q<Y.length;Q++){var X=Y[Q];X!==null&&(X.lane&=-536870913)}a&=~P}o!==0&&Qd(e,o,0),p!==0&&u===0&&e.tag!==0&&(e.suspendedLanes|=p&~(y&~n))}function Qd(e,n,a){e.pendingLanes|=n,e.suspendedLanes&=~n;var o=31-Ut(n);e.entangledLanes|=n,e.entanglements[o]=e.entanglements[o]|1073741824|a&261930}function Jd(e,n){var a=e.entangledLanes|=n;for(e=e.entanglements;a;){var o=31-Ut(a),u=1<<o;u&n|e[o]&n&&(e[o]|=n),a&=~u}}function Wd(e,n){var a=n&-n;return a=(a&42)!==0?1:vr(a),(a&(e.suspendedLanes|n))!==0?0:a}function vr(e){switch(e){case 2:e=1;break;case 8:e=4;break;case 32:e=16;break;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:e=128;break;case 268435456:e=134217728;break;default:e=0}return e}function br(e){return e&=-e,2<e?8<e?(e&134217727)!==0?32:268435456:8:2}function Pd(){var e=ne.p;return e!==0?e:(e=window.event,e===void 0?32:Up(e.type))}function ef(e,n){var a=ne.p;try{return ne.p=e,n()}finally{ne.p=a}}var Qn=Math.random().toString(36).slice(2),St="__reactFiber$"+Qn,Ot="__reactProps$"+Qn,rl="__reactContainer$"+Qn,xr="__reactEvents$"+Qn,dv="__reactListeners$"+Qn,fv="__reactHandles$"+Qn,tf="__reactResources$"+Qn,ai="__reactMarker$"+Qn;function Sr(e){delete e[St],delete e[Ot],delete e[xr],delete e[dv],delete e[fv]}function cl(e){var n=e[St];if(n)return n;for(var a=e.parentNode;a;){if(n=a[rl]||a[St]){if(a=n.alternate,n.child!==null||a!==null&&a.child!==null)for(e=jp(e);e!==null;){if(a=e[St])return a;e=jp(e)}return n}e=a,a=e.parentNode}return null}function ul(e){if(e=e[St]||e[rl]){var n=e.tag;if(n===5||n===6||n===13||n===31||n===26||n===27||n===3)return e}return null}function li(e){var n=e.tag;if(n===5||n===26||n===27||n===6)return e.stateNode;throw Error(i(33))}function dl(e){var n=e[tf];return n||(n=e[tf]={hoistableStyles:new Map,hoistableScripts:new Map}),n}function bt(e){e[ai]=!0}var nf=new Set,af={};function Da(e,n){fl(e,n),fl(e+"Capture",n)}function fl(e,n){for(af[e]=n,e=0;e<n.length;e++)nf.add(n[e])}var mv=RegExp("^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$"),lf={},sf={};function hv(e){return te.call(sf,e)?!0:te.call(lf,e)?!1:mv.test(e)?sf[e]=!0:(lf[e]=!0,!1)}function xs(e,n,a){if(hv(n))if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":e.removeAttribute(n);return;case"boolean":var o=n.toLowerCase().slice(0,5);if(o!=="data-"&&o!=="aria-"){e.removeAttribute(n);return}}e.setAttribute(n,""+a)}}function Ss(e,n,a){if(a===null)e.removeAttribute(n);else{switch(typeof a){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(n);return}e.setAttribute(n,""+a)}}function kn(e,n,a,o){if(o===null)e.removeAttribute(a);else{switch(typeof o){case"undefined":case"function":case"symbol":case"boolean":e.removeAttribute(a);return}e.setAttributeNS(n,a,""+o)}}function Zt(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":return e;case"object":return e;default:return""}}function of(e){var n=e.type;return(e=e.nodeName)&&e.toLowerCase()==="input"&&(n==="checkbox"||n==="radio")}function pv(e,n,a){var o=Object.getOwnPropertyDescriptor(e.constructor.prototype,n);if(!e.hasOwnProperty(n)&&typeof o<"u"&&typeof o.get=="function"&&typeof o.set=="function"){var u=o.get,p=o.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return u.call(this)},set:function(y){a=""+y,p.call(this,y)}}),Object.defineProperty(e,n,{enumerable:o.enumerable}),{getValue:function(){return a},setValue:function(y){a=""+y},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}function kr(e){if(!e._valueTracker){var n=of(e)?"checked":"value";e._valueTracker=pv(e,n,""+e[n])}}function rf(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var a=n.getValue(),o="";return e&&(o=of(e)?e.checked?"true":"false":e.value),e=o,e!==a?(n.setValue(e),!0):!1}function ks(e){if(e=e||(typeof document<"u"?document:void 0),typeof e>"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var gv=/[\n"\\]/g;function Qt(e){return e.replace(gv,function(n){return"\\"+n.charCodeAt(0).toString(16)+" "})}function jr(e,n,a,o,u,p,y,j){e.name="",y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"?e.type=y:e.removeAttribute("type"),n!=null?y==="number"?(n===0&&e.value===""||e.value!=n)&&(e.value=""+Zt(n)):e.value!==""+Zt(n)&&(e.value=""+Zt(n)):y!=="submit"&&y!=="reset"||e.removeAttribute("value"),n!=null?Mr(e,y,Zt(n)):a!=null?Mr(e,y,Zt(a)):o!=null&&e.removeAttribute("value"),u==null&&p!=null&&(e.defaultChecked=!!p),u!=null&&(e.checked=u&&typeof u!="function"&&typeof u!="symbol"),j!=null&&typeof j!="function"&&typeof j!="symbol"&&typeof j!="boolean"?e.name=""+Zt(j):e.removeAttribute("name")}function cf(e,n,a,o,u,p,y,j){if(p!=null&&typeof p!="function"&&typeof p!="symbol"&&typeof p!="boolean"&&(e.type=p),n!=null||a!=null){if(!(p!=="submit"&&p!=="reset"||n!=null)){kr(e);return}a=a!=null?""+Zt(a):"",n=n!=null?""+Zt(n):a,j||n===e.value||(e.value=n),e.defaultValue=n}o=o??u,o=typeof o!="function"&&typeof o!="symbol"&&!!o,e.checked=j?e.checked:!!o,e.defaultChecked=!!o,y!=null&&typeof y!="function"&&typeof y!="symbol"&&typeof y!="boolean"&&(e.name=y),kr(e)}function Mr(e,n,a){n==="number"&&ks(e.ownerDocument)===e||e.defaultValue===""+a||(e.defaultValue=""+a)}function ml(e,n,a,o){if(e=e.options,n){n={};for(var u=0;u<a.length;u++)n["$"+a[u]]=!0;for(a=0;a<e.length;a++)u=n.hasOwnProperty("$"+e[a].value),e[a].selected!==u&&(e[a].selected=u),u&&o&&(e[a].defaultSelected=!0)}else{for(a=""+Zt(a),n=null,u=0;u<e.length;u++){if(e[u].value===a){e[u].selected=!0,o&&(e[u].defaultSelected=!0);return}n!==null||e[u].disabled||(n=e[u])}n!==null&&(n.selected=!0)}}function uf(e,n,a){if(n!=null&&(n=""+Zt(n),n!==e.value&&(e.value=n),a==null)){e.defaultValue!==n&&(e.defaultValue=n);return}e.defaultValue=a!=null?""+Zt(a):""}function df(e,n,a,o){if(n==null){if(o!=null){if(a!=null)throw Error(i(92));if(ke(o)){if(1<o.length)throw Error(i(93));o=o[0]}a=o}a==null&&(a=""),n=a}a=Zt(n),e.defaultValue=a,o=e.textContent,o===a&&o!==""&&o!==null&&(e.value=o),kr(e)}function hl(e,n){if(n){var a=e.firstChild;if(a&&a===e.lastChild&&a.nodeType===3){a.nodeValue=n;return}}e.textContent=n}var yv=new Set("animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split(" "));function ff(e,n,a){var o=n.indexOf("--")===0;a==null||typeof a=="boolean"||a===""?o?e.setProperty(n,""):n==="float"?e.cssFloat="":e[n]="":o?e.setProperty(n,a):typeof a!="number"||a===0||yv.has(n)?n==="float"?e.cssFloat=a:e[n]=(""+a).trim():e[n]=a+"px"}function mf(e,n,a){if(n!=null&&typeof n!="object")throw Error(i(62));if(e=e.style,a!=null){for(var o in a)!a.hasOwnProperty(o)||n!=null&&n.hasOwnProperty(o)||(o.indexOf("--")===0?e.setProperty(o,""):o==="float"?e.cssFloat="":e[o]="");for(var u in n)o=n[u],n.hasOwnProperty(u)&&a[u]!==o&&ff(e,u,o)}else for(var p in n)n.hasOwnProperty(p)&&ff(e,p,n[p])}function Er(e){if(e.indexOf("-")===-1)return!1;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var vv=new Map([["acceptCharset","accept-charset"],["htmlFor","for"],["httpEquiv","http-equiv"],["crossOrigin","crossorigin"],["accentHeight","accent-height"],["alignmentBaseline","alignment-baseline"],["arabicForm","arabic-form"],["baselineShift","baseline-shift"],["capHeight","cap-height"],["clipPath","clip-path"],["clipRule","clip-rule"],["colorInterpolation","color-interpolation"],["colorInterpolationFilters","color-interpolation-filters"],["colorProfile","color-profile"],["colorRendering","color-rendering"],["dominantBaseline","dominant-baseline"],["enableBackground","enable-background"],["fillOpacity","fill-opacity"],["fillRule","fill-rule"],["floodColor","flood-color"],["floodOpacity","flood-opacity"],["fontFamily","font-family"],["fontSize","font-size"],["fontSizeAdjust","font-size-adjust"],["fontStretch","font-stretch"],["fontStyle","font-style"],["fontVariant","font-variant"],["fontWeight","font-weight"],["glyphName","glyph-name"],["glyphOrientationHorizontal","glyph-orientation-horizontal"],["glyphOrientationVertical","glyph-orientation-vertical"],["horizAdvX","horiz-adv-x"],["horizOriginX","horiz-origin-x"],["imageRendering","image-rendering"],["letterSpacing","letter-spacing"],["lightingColor","lighting-color"],["markerEnd","marker-end"],["markerMid","marker-mid"],["markerStart","marker-start"],["overlinePosition","overline-position"],["overlineThickness","overline-thickness"],["paintOrder","paint-order"],["panose-1","panose-1"],["pointerEvents","pointer-events"],["renderingIntent","rendering-intent"],["shapeRendering","shape-rendering"],["stopColor","stop-color"],["stopOpacity","stop-opacity"],["strikethroughPosition","strikethrough-position"],["strikethroughThickness","strikethrough-thickness"],["strokeDasharray","stroke-dasharray"],["strokeDashoffset","stroke-dashoffset"],["strokeLinecap","stroke-linecap"],["strokeLinejoin","stroke-linejoin"],["strokeMiterlimit","stroke-miterlimit"],["strokeOpacity","stroke-opacity"],["strokeWidth","stroke-width"],["textAnchor","text-anchor"],["textDecoration","text-decoration"],["textRendering","text-rendering"],["transformOrigin","transform-origin"],["underlinePosition","underline-position"],["underlineThickness","underline-thickness"],["unicodeBidi","unicode-bidi"],["unicodeRange","unicode-range"],["unitsPerEm","units-per-em"],["vAlphabetic","v-alphabetic"],["vHanging","v-hanging"],["vIdeographic","v-ideographic"],["vMathematical","v-mathematical"],["vectorEffect","vector-effect"],["vertAdvY","vert-adv-y"],["vertOriginX","vert-origin-x"],["vertOriginY","vert-origin-y"],["wordSpacing","word-spacing"],["writingMode","writing-mode"],["xmlnsXlink","xmlns:xlink"],["xHeight","x-height"]]),bv=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function js(e){return bv.test(""+e)?"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')":e}function jn(){}var Nr=null;function Ar(e){return e=e.target||e.srcElement||window,e.correspondingUseElement&&(e=e.correspondingUseElement),e.nodeType===3?e.parentNode:e}var pl=null,gl=null;function hf(e){var n=ul(e);if(n&&(e=n.stateNode)){var a=e[Ot]||null;e:switch(e=n.stateNode,n.type){case"input":if(jr(e,a.value,a.defaultValue,a.defaultValue,a.checked,a.defaultChecked,a.type,a.name),n=a.name,a.type==="radio"&&n!=null){for(a=e;a.parentNode;)a=a.parentNode;for(a=a.querySelectorAll('input[name="'+Qt(""+n)+'"][type="radio"]'),n=0;n<a.length;n++){var o=a[n];if(o!==e&&o.form===e.form){var u=o[Ot]||null;if(!u)throw Error(i(90));jr(o,u.value,u.defaultValue,u.defaultValue,u.checked,u.defaultChecked,u.type,u.name)}}for(n=0;n<a.length;n++)o=a[n],o.form===e.form&&rf(o)}break e;case"textarea":uf(e,a.value,a.defaultValue);break e;case"select":n=a.value,n!=null&&ml(e,!!a.multiple,n,!1)}}}var Cr=!1;function pf(e,n,a){if(Cr)return e(n,a);Cr=!0;try{var o=e(n);return o}finally{if(Cr=!1,(pl!==null||gl!==null)&&(uo(),pl&&(n=pl,e=gl,gl=pl=null,hf(n),e)))for(n=0;n<e.length;n++)hf(e[n])}}function ii(e,n){var a=e.stateNode;if(a===null)return null;var o=a[Ot]||null;if(o===null)return null;a=o[n];e:switch(n){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(o=!o.disabled)||(e=e.type,o=!(e==="button"||e==="input"||e==="select"||e==="textarea")),e=!o;break e;default:e=!1}if(e)return null;if(a&&typeof a!="function")throw Error(i(231,n,typeof a));return a}var Mn=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),wr=!1;if(Mn)try{var si={};Object.defineProperty(si,"passive",{get:function(){wr=!0}}),window.addEventListener("test",si,si),window.removeEventListener("test",si,si)}catch{wr=!1}var Jn=null,Tr=null,Ms=null;function gf(){if(Ms)return Ms;var e,n=Tr,a=n.length,o,u="value"in Jn?Jn.value:Jn.textContent,p=u.length;for(e=0;e<a&&n[e]===u[e];e++);var y=a-e;for(o=1;o<=y&&n[a-o]===u[p-o];o++);return Ms=u.slice(e,1<o?1-o:void 0)}function Es(e){var n=e.keyCode;return"charCode"in e?(e=e.charCode,e===0&&n===13&&(e=13)):e=n,e===10&&(e=13),32<=e||e===13?e:0}function Ns(){return!0}function yf(){return!1}function Dt(e){function n(a,o,u,p,y){this._reactName=a,this._targetInst=u,this.type=o,this.nativeEvent=p,this.target=y,this.currentTarget=null;for(var j in e)e.hasOwnProperty(j)&&(a=e[j],this[j]=a?a(p):p[j]);return this.isDefaultPrevented=(p.defaultPrevented!=null?p.defaultPrevented:p.returnValue===!1)?Ns:yf,this.isPropagationStopped=yf,this}return x(n.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():typeof a.returnValue!="unknown"&&(a.returnValue=!1),this.isDefaultPrevented=Ns)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():typeof a.cancelBubble!="unknown"&&(a.cancelBubble=!0),this.isPropagationStopped=Ns)},persist:function(){},isPersistent:Ns}),n}var za={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},As=Dt(za),oi=x({},za,{view:0,detail:0}),xv=Dt(oi),Or,Dr,ri,Cs=x({},oi,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_r,button:0,buttons:0,relatedTarget:function(e){return e.relatedTarget===void 0?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ri&&(ri&&e.type==="mousemove"?(Or=e.screenX-ri.screenX,Dr=e.screenY-ri.screenY):Dr=Or=0,ri=e),Or)},movementY:function(e){return"movementY"in e?e.movementY:Dr}}),vf=Dt(Cs),Sv=x({},Cs,{dataTransfer:0}),kv=Dt(Sv),jv=x({},oi,{relatedTarget:0}),zr=Dt(jv),Mv=x({},za,{animationName:0,elapsedTime:0,pseudoElement:0}),Ev=Dt(Mv),Nv=x({},za,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Av=Dt(Nv),Cv=x({},za,{data:0}),bf=Dt(Cv),wv={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Tv={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Ov={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Dv(e){var n=this.nativeEvent;return n.getModifierState?n.getModifierState(e):(e=Ov[e])?!!n[e]:!1}function _r(){return Dv}var zv=x({},oi,{key:function(e){if(e.key){var n=wv[e.key]||e.key;if(n!=="Unidentified")return n}return e.type==="keypress"?(e=Es(e),e===13?"Enter":String.fromCharCode(e)):e.type==="keydown"||e.type==="keyup"?Tv[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_r,charCode:function(e){return e.type==="keypress"?Es(e):0},keyCode:function(e){return e.type==="keydown"||e.type==="keyup"?e.keyCode:0},which:function(e){return e.type==="keypress"?Es(e):e.type==="keydown"||e.type==="keyup"?e.keyCode:0}}),_v=Dt(zv),Bv=x({},Cs,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),xf=Dt(Bv),Rv=x({},oi,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_r}),Lv=Dt(Rv),Iv=x({},za,{propertyName:0,elapsedTime:0,pseudoElement:0}),Uv=Dt(Iv),Hv=x({},Cs,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Fv=Dt(Hv),$v=x({},za,{newState:0,oldState:0}),Gv=Dt($v),Yv=[9,13,27,32],Br=Mn&&"CompositionEvent"in window,ci=null;Mn&&"documentMode"in document&&(ci=document.documentMode);var Vv=Mn&&"TextEvent"in window&&!ci,Sf=Mn&&(!Br||ci&&8<ci&&11>=ci),kf=" ",jf=!1;function Mf(e,n){switch(e){case"keyup":return Yv.indexOf(n.keyCode)!==-1;case"keydown":return n.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Ef(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var yl=!1;function Xv(e,n){switch(e){case"compositionend":return Ef(n);case"keypress":return n.which!==32?null:(jf=!0,kf);case"textInput":return e=n.data,e===kf&&jf?null:e;default:return null}}function Kv(e,n){if(yl)return e==="compositionend"||!Br&&Mf(e,n)?(e=gf(),Ms=Tr=Jn=null,yl=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(n.ctrlKey||n.altKey||n.metaKey)||n.ctrlKey&&n.altKey){if(n.char&&1<n.char.length)return n.char;if(n.which)return String.fromCharCode(n.which)}return null;case"compositionend":return Sf&&n.locale!=="ko"?null:n.data;default:return null}}var qv={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Nf(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n==="input"?!!qv[e.type]:n==="textarea"}function Af(e,n,a,o){pl?gl?gl.push(o):gl=[o]:pl=o,n=vo(n,"onChange"),0<n.length&&(a=new As("onChange","change",null,a,o),e.push({event:a,listeners:n}))}var ui=null,di=null;function Zv(e){cp(e,0)}function ws(e){var n=li(e);if(rf(n))return e}function Cf(e,n){if(e==="change")return n}var wf=!1;if(Mn){var Rr;if(Mn){var Lr="oninput"in document;if(!Lr){var Tf=document.createElement("div");Tf.setAttribute("oninput","return;"),Lr=typeof Tf.oninput=="function"}Rr=Lr}else Rr=!1;wf=Rr&&(!document.documentMode||9<document.documentMode)}function Of(){ui&&(ui.detachEvent("onpropertychange",Df),di=ui=null)}function Df(e){if(e.propertyName==="value"&&ws(di)){var n=[];Af(n,di,e,Ar(e)),pf(Zv,n)}}function Qv(e,n,a){e==="focusin"?(Of(),ui=n,di=a,ui.attachEvent("onpropertychange",Df)):e==="focusout"&&Of()}function Jv(e){if(e==="selectionchange"||e==="keyup"||e==="keydown")return ws(di)}function Wv(e,n){if(e==="click")return ws(n)}function Pv(e,n){if(e==="input"||e==="change")return ws(n)}function eb(e,n){return e===n&&(e!==0||1/e===1/n)||e!==e&&n!==n}var Ht=typeof Object.is=="function"?Object.is:eb;function fi(e,n){if(Ht(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;var a=Object.keys(e),o=Object.keys(n);if(a.length!==o.length)return!1;for(o=0;o<a.length;o++){var u=a[o];if(!te.call(n,u)||!Ht(e[u],n[u]))return!1}return!0}function zf(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function _f(e,n){var a=zf(e);e=0;for(var o;a;){if(a.nodeType===3){if(o=e+a.textContent.length,e<=n&&o>=n)return{node:a,offset:n-e};e=o}e:{for(;a;){if(a.nextSibling){a=a.nextSibling;break e}a=a.parentNode}a=void 0}a=zf(a)}}function Bf(e,n){return e&&n?e===n?!0:e&&e.nodeType===3?!1:n&&n.nodeType===3?Bf(e,n.parentNode):"contains"in e?e.contains(n):e.compareDocumentPosition?!!(e.compareDocumentPosition(n)&16):!1:!1}function Rf(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var n=ks(e.document);n instanceof e.HTMLIFrameElement;){try{var a=typeof n.contentWindow.location.href=="string"}catch{a=!1}if(a)e=n.contentWindow;else break;n=ks(e.document)}return n}function Ir(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&(n==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||n==="textarea"||e.contentEditable==="true")}var tb=Mn&&"documentMode"in document&&11>=document.documentMode,vl=null,Ur=null,mi=null,Hr=!1;function Lf(e,n,a){var o=a.window===a?a.document:a.nodeType===9?a:a.ownerDocument;Hr||vl==null||vl!==ks(o)||(o=vl,"selectionStart"in o&&Ir(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),mi&&fi(mi,o)||(mi=o,o=vo(Ur,"onSelect"),0<o.length&&(n=new As("onSelect","select",null,n,a),e.push({event:n,listeners:o}),n.target=vl)))}function _a(e,n){var a={};return a[e.toLowerCase()]=n.toLowerCase(),a["Webkit"+e]="webkit"+n,a["Moz"+e]="moz"+n,a}var bl={animationend:_a("Animation","AnimationEnd"),animationiteration:_a("Animation","AnimationIteration"),animationstart:_a("Animation","AnimationStart"),transitionrun:_a("Transition","TransitionRun"),transitionstart:_a("Transition","TransitionStart"),transitioncancel:_a("Transition","TransitionCancel"),transitionend:_a("Transition","TransitionEnd")},Fr={},If={};Mn&&(If=document.createElement("div").style,"AnimationEvent"in window||(delete bl.animationend.animation,delete bl.animationiteration.animation,delete bl.animationstart.animation),"TransitionEvent"in window||delete bl.transitionend.transition);function Ba(e){if(Fr[e])return Fr[e];if(!bl[e])return e;var n=bl[e],a;for(a in n)if(n.hasOwnProperty(a)&&a in If)return Fr[e]=n[a];return e}var Uf=Ba("animationend"),Hf=Ba("animationiteration"),Ff=Ba("animationstart"),nb=Ba("transitionrun"),ab=Ba("transitionstart"),lb=Ba("transitioncancel"),$f=Ba("transitionend"),Gf=new Map,$r="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");$r.push("scrollEnd");function un(e,n){Gf.set(e,n),Da(n,[e])}var Ts=typeof reportError=="function"?reportError:function(e){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var n=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof e=="object"&&e!==null&&typeof e.message=="string"?String(e.message):String(e),error:e});if(!window.dispatchEvent(n))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",e);return}console.error(e)},Jt=[],xl=0,Gr=0;function Os(){for(var e=xl,n=Gr=xl=0;n<e;){var a=Jt[n];Jt[n++]=null;var o=Jt[n];Jt[n++]=null;var u=Jt[n];Jt[n++]=null;var p=Jt[n];if(Jt[n++]=null,o!==null&&u!==null){var y=o.pending;y===null?u.next=u:(u.next=y.next,y.next=u),o.pending=u}p!==0&&Yf(a,u,p)}}function Ds(e,n,a,o){Jt[xl++]=e,Jt[xl++]=n,Jt[xl++]=a,Jt[xl++]=o,Gr|=o,e.lanes|=o,e=e.alternate,e!==null&&(e.lanes|=o)}function Yr(e,n,a,o){return Ds(e,n,a,o),zs(e)}function Ra(e,n){return Ds(e,null,null,n),zs(e)}function Yf(e,n,a){e.lanes|=a;var o=e.alternate;o!==null&&(o.lanes|=a);for(var u=!1,p=e.return;p!==null;)p.childLanes|=a,o=p.alternate,o!==null&&(o.childLanes|=a),p.tag===22&&(e=p.stateNode,e===null||e._visibility&1||(u=!0)),e=p,p=p.return;return e.tag===3?(p=e.stateNode,u&&n!==null&&(u=31-Ut(a),e=p.hiddenUpdates,o=e[u],o===null?e[u]=[n]:o.push(n),n.lane=a|536870912),p):null}function zs(e){if(50<Bi)throw Bi=0,Pc=null,Error(i(185));for(var n=e.return;n!==null;)e=n,n=e.return;return e.tag===3?e.stateNode:null}var Sl={};function ib(e,n,a,o){this.tag=e,this.key=a,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.refCleanup=this.ref=null,this.pendingProps=n,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=o,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Ft(e,n,a,o){return new ib(e,n,a,o)}function Vr(e){return e=e.prototype,!(!e||!e.isReactComponent)}function En(e,n){var a=e.alternate;return a===null?(a=Ft(e.tag,n,e.key,e.mode),a.elementType=e.elementType,a.type=e.type,a.stateNode=e.stateNode,a.alternate=e,e.alternate=a):(a.pendingProps=n,a.type=e.type,a.flags=0,a.subtreeFlags=0,a.deletions=null),a.flags=e.flags&65011712,a.childLanes=e.childLanes,a.lanes=e.lanes,a.child=e.child,a.memoizedProps=e.memoizedProps,a.memoizedState=e.memoizedState,a.updateQueue=e.updateQueue,n=e.dependencies,a.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext},a.sibling=e.sibling,a.index=e.index,a.ref=e.ref,a.refCleanup=e.refCleanup,a}function Vf(e,n){e.flags&=65011714;var a=e.alternate;return a===null?(e.childLanes=0,e.lanes=n,e.child=null,e.subtreeFlags=0,e.memoizedProps=null,e.memoizedState=null,e.updateQueue=null,e.dependencies=null,e.stateNode=null):(e.childLanes=a.childLanes,e.lanes=a.lanes,e.child=a.child,e.subtreeFlags=0,e.deletions=null,e.memoizedProps=a.memoizedProps,e.memoizedState=a.memoizedState,e.updateQueue=a.updateQueue,e.type=a.type,n=a.dependencies,e.dependencies=n===null?null:{lanes:n.lanes,firstContext:n.firstContext}),e}function _s(e,n,a,o,u,p){var y=0;if(o=e,typeof e=="function")Vr(e)&&(y=1);else if(typeof e=="string")y=ux(e,a,oe.current)?26:e==="html"||e==="head"||e==="body"?27:5;else e:switch(e){case me:return e=Ft(31,a,n,u),e.elementType=me,e.lanes=p,e;case D:return La(a.children,u,p,n);case _:y=8,u|=24;break;case z:return e=Ft(12,a,n,u|2),e.elementType=z,e.lanes=p,e;case U:return e=Ft(13,a,n,u),e.elementType=U,e.lanes=p,e;case T:return e=Ft(19,a,n,u),e.elementType=T,e.lanes=p,e;default:if(typeof e=="object"&&e!==null)switch(e.$$typeof){case C:y=10;break e;case G:y=9;break e;case L:y=11;break e;case q:y=14;break e;case ae:y=16,o=null;break e}y=29,a=Error(i(130,e===null?"null":typeof e,"")),o=null}return n=Ft(y,a,n,u),n.elementType=e,n.type=o,n.lanes=p,n}function La(e,n,a,o){return e=Ft(7,e,o,n),e.lanes=a,e}function Xr(e,n,a){return e=Ft(6,e,null,n),e.lanes=a,e}function Xf(e){var n=Ft(18,null,null,0);return n.stateNode=e,n}function Kr(e,n,a){return n=Ft(4,e.children!==null?e.children:[],e.key,n),n.lanes=a,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}var Kf=new WeakMap;function Wt(e,n){if(typeof e=="object"&&e!==null){var a=Kf.get(e);return a!==void 0?a:(n={value:e,source:n,stack:J(n)},Kf.set(e,n),n)}return{value:e,source:n,stack:J(n)}}var kl=[],jl=0,Bs=null,hi=0,Pt=[],en=0,Wn=null,pn=1,gn="";function Nn(e,n){kl[jl++]=hi,kl[jl++]=Bs,Bs=e,hi=n}function qf(e,n,a){Pt[en++]=pn,Pt[en++]=gn,Pt[en++]=Wn,Wn=e;var o=pn;e=gn;var u=32-Ut(o)-1;o&=~(1<<u),a+=1;var p=32-Ut(n)+u;if(30<p){var y=u-u%5;p=(o&(1<<y)-1).toString(32),o>>=y,u-=y,pn=1<<32-Ut(n)+u|a<<u|o,gn=p+e}else pn=1<<p|a<<u|o,gn=e}function qr(e){e.return!==null&&(Nn(e,1),qf(e,1,0))}function Zr(e){for(;e===Bs;)Bs=kl[--jl],kl[jl]=null,hi=kl[--jl],kl[jl]=null;for(;e===Wn;)Wn=Pt[--en],Pt[en]=null,gn=Pt[--en],Pt[en]=null,pn=Pt[--en],Pt[en]=null}function Zf(e,n){Pt[en++]=pn,Pt[en++]=gn,Pt[en++]=Wn,pn=n.id,gn=n.overflow,Wn=e}var kt=null,Qe=null,Be=!1,Pn=null,tn=!1,Qr=Error(i(519));function ea(e){var n=Error(i(418,1<arguments.length&&arguments[1]!==void 0&&arguments[1]?"text":"HTML",""));throw pi(Wt(n,e)),Qr}function Qf(e){var n=e.stateNode,a=e.type,o=e.memoizedProps;switch(n[St]=e,n[Ot]=o,a){case"dialog":Oe("cancel",n),Oe("close",n);break;case"iframe":case"object":case"embed":Oe("load",n);break;case"video":case"audio":for(a=0;a<Li.length;a++)Oe(Li[a],n);break;case"source":Oe("error",n);break;case"img":case"image":case"link":Oe("error",n),Oe("load",n);break;case"details":Oe("toggle",n);break;case"input":Oe("invalid",n),cf(n,o.value,o.defaultValue,o.checked,o.defaultChecked,o.type,o.name,!0);break;case"select":Oe("invalid",n);break;case"textarea":Oe("invalid",n),df(n,o.value,o.defaultValue,o.children)}a=o.children,typeof a!="string"&&typeof a!="number"&&typeof a!="bigint"||n.textContent===""+a||o.suppressHydrationWarning===!0||mp(n.textContent,a)?(o.popover!=null&&(Oe("beforetoggle",n),Oe("toggle",n)),o.onScroll!=null&&Oe("scroll",n),o.onScrollEnd!=null&&Oe("scrollend",n),o.onClick!=null&&(n.onclick=jn),n=!0):n=!1,n||ea(e,!0)}function Jf(e){for(kt=e.return;kt;)switch(kt.tag){case 5:case 31:case 13:tn=!1;return;case 27:case 3:tn=!0;return;default:kt=kt.return}}function Ml(e){if(e!==kt)return!1;if(!Be)return Jf(e),Be=!0,!1;var n=e.tag,a;if((a=n!==3&&n!==27)&&((a=n===5)&&(a=e.type,a=!(a!=="form"&&a!=="button")||hu(e.type,e.memoizedProps)),a=!a),a&&Qe&&ea(e),Jf(e),n===13){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));Qe=kp(e)}else if(n===31){if(e=e.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(317));Qe=kp(e)}else n===27?(n=Qe,ha(e.type)?(e=bu,bu=null,Qe=e):Qe=n):Qe=kt?an(e.stateNode.nextSibling):null;return!0}function Ia(){Qe=kt=null,Be=!1}function Jr(){var e=Pn;return e!==null&&(Rt===null?Rt=e:Rt.push.apply(Rt,e),Pn=null),e}function pi(e){Pn===null?Pn=[e]:Pn.push(e)}var Wr=R(null),Ua=null,An=null;function ta(e,n,a){le(Wr,n._currentValue),n._currentValue=a}function Cn(e){e._currentValue=Wr.current,ee(Wr)}function Pr(e,n,a){for(;e!==null;){var o=e.alternate;if((e.childLanes&n)!==n?(e.childLanes|=n,o!==null&&(o.childLanes|=n)):o!==null&&(o.childLanes&n)!==n&&(o.childLanes|=n),e===a)break;e=e.return}}function ec(e,n,a,o){var u=e.child;for(u!==null&&(u.return=e);u!==null;){var p=u.dependencies;if(p!==null){var y=u.child;p=p.firstContext;e:for(;p!==null;){var j=p;p=u;for(var w=0;w<n.length;w++)if(j.context===n[w]){p.lanes|=a,j=p.alternate,j!==null&&(j.lanes|=a),Pr(p.return,a,e),o||(y=null);break e}p=j.next}}else if(u.tag===18){if(y=u.return,y===null)throw Error(i(341));y.lanes|=a,p=y.alternate,p!==null&&(p.lanes|=a),Pr(y,a,e),y=null}else y=u.child;if(y!==null)y.return=u;else for(y=u;y!==null;){if(y===e){y=null;break}if(u=y.sibling,u!==null){u.return=y.return,y=u;break}y=y.return}u=y}}function El(e,n,a,o){e=null;for(var u=n,p=!1;u!==null;){if(!p){if((u.flags&524288)!==0)p=!0;else if((u.flags&262144)!==0)break}if(u.tag===10){var y=u.alternate;if(y===null)throw Error(i(387));if(y=y.memoizedProps,y!==null){var j=u.type;Ht(u.pendingProps.value,y.value)||(e!==null?e.push(j):e=[j])}}else if(u===_e.current){if(y=u.alternate,y===null)throw Error(i(387));y.memoizedState.memoizedState!==u.memoizedState.memoizedState&&(e!==null?e.push($i):e=[$i])}u=u.return}e!==null&&ec(n,e,a,o),n.flags|=262144}function Rs(e){for(e=e.firstContext;e!==null;){if(!Ht(e.context._currentValue,e.memoizedValue))return!0;e=e.next}return!1}function Ha(e){Ua=e,An=null,e=e.dependencies,e!==null&&(e.firstContext=null)}function jt(e){return Wf(Ua,e)}function Ls(e,n){return Ua===null&&Ha(e),Wf(e,n)}function Wf(e,n){var a=n._currentValue;if(n={context:n,memoizedValue:a,next:null},An===null){if(e===null)throw Error(i(308));An=n,e.dependencies={lanes:0,firstContext:n},e.flags|=524288}else An=An.next=n;return a}var sb=typeof AbortController<"u"?AbortController:function(){var e=[],n=this.signal={aborted:!1,addEventListener:function(a,o){e.push(o)}};this.abort=function(){n.aborted=!0,e.forEach(function(a){return a()})}},ob=t.unstable_scheduleCallback,rb=t.unstable_NormalPriority,ot={$$typeof:C,Consumer:null,Provider:null,_currentValue:null,_currentValue2:null,_threadCount:0};function tc(){return{controller:new sb,data:new Map,refCount:0}}function gi(e){e.refCount--,e.refCount===0&&ob(rb,function(){e.controller.abort()})}var yi=null,nc=0,Nl=0,Al=null;function cb(e,n){if(yi===null){var a=yi=[];nc=0,Nl=iu(),Al={status:"pending",value:void 0,then:function(o){a.push(o)}}}return nc++,n.then(Pf,Pf),n}function Pf(){if(--nc===0&&yi!==null){Al!==null&&(Al.status="fulfilled");var e=yi;yi=null,Nl=0,Al=null;for(var n=0;n<e.length;n++)(0,e[n])()}}function ub(e,n){var a=[],o={status:"pending",value:null,reason:null,then:function(u){a.push(u)}};return e.then(function(){o.status="fulfilled",o.value=n;for(var u=0;u<a.length;u++)(0,a[u])(n)},function(u){for(o.status="rejected",o.reason=u,u=0;u<a.length;u++)(0,a[u])(void 0)}),o}var em=V.S;V.S=function(e,n){Lh=we(),typeof n=="object"&&n!==null&&typeof n.then=="function"&&cb(e,n),em!==null&&em(e,n)};var Fa=R(null);function ac(){var e=Fa.current;return e!==null?e:qe.pooledCache}function Is(e,n){n===null?le(Fa,Fa.current):le(Fa,n.pool)}function tm(){var e=ac();return e===null?null:{parent:ot._currentValue,pool:e}}var Cl=Error(i(460)),lc=Error(i(474)),Us=Error(i(542)),Hs={then:function(){}};function nm(e){return e=e.status,e==="fulfilled"||e==="rejected"}function am(e,n,a){switch(a=e[a],a===void 0?e.push(n):a!==n&&(n.then(jn,jn),n=a),n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,im(e),e;default:if(typeof n.status=="string")n.then(jn,jn);else{if(e=qe,e!==null&&100<e.shellSuspendCounter)throw Error(i(482));e=n,e.status="pending",e.then(function(o){if(n.status==="pending"){var u=n;u.status="fulfilled",u.value=o}},function(o){if(n.status==="pending"){var u=n;u.status="rejected",u.reason=o}})}switch(n.status){case"fulfilled":return n.value;case"rejected":throw e=n.reason,im(e),e}throw Ga=n,Cl}}function $a(e){try{var n=e._init;return n(e._payload)}catch(a){throw a!==null&&typeof a=="object"&&typeof a.then=="function"?(Ga=a,Cl):a}}var Ga=null;function lm(){if(Ga===null)throw Error(i(459));var e=Ga;return Ga=null,e}function im(e){if(e===Cl||e===Us)throw Error(i(483))}var wl=null,vi=0;function Fs(e){var n=vi;return vi+=1,wl===null&&(wl=[]),am(wl,e,n)}function bi(e,n){n=n.props.ref,e.ref=n!==void 0?n:null}function $s(e,n){throw n.$$typeof===E?Error(i(525)):(e=Object.prototype.toString.call(n),Error(i(31,e==="[object Object]"?"object with keys {"+Object.keys(n).join(", ")+"}":e)))}function sm(e){function n(I,B){if(e){var F=I.deletions;F===null?(I.deletions=[B],I.flags|=16):F.push(B)}}function a(I,B){if(!e)return null;for(;B!==null;)n(I,B),B=B.sibling;return null}function o(I){for(var B=new Map;I!==null;)I.key!==null?B.set(I.key,I):B.set(I.index,I),I=I.sibling;return B}function u(I,B){return I=En(I,B),I.index=0,I.sibling=null,I}function p(I,B,F){return I.index=F,e?(F=I.alternate,F!==null?(F=F.index,F<B?(I.flags|=67108866,B):F):(I.flags|=67108866,B)):(I.flags|=1048576,B)}function y(I){return e&&I.alternate===null&&(I.flags|=67108866),I}function j(I,B,F,W){return B===null||B.tag!==6?(B=Xr(F,I.mode,W),B.return=I,B):(B=u(B,F),B.return=I,B)}function w(I,B,F,W){var be=F.type;return be===D?Q(I,B,F.props.children,W,F.key):B!==null&&(B.elementType===be||typeof be=="object"&&be!==null&&be.$$typeof===ae&&$a(be)===B.type)?(B=u(B,F.props),bi(B,F),B.return=I,B):(B=_s(F.type,F.key,F.props,null,I.mode,W),bi(B,F),B.return=I,B)}function $(I,B,F,W){return B===null||B.tag!==4||B.stateNode.containerInfo!==F.containerInfo||B.stateNode.implementation!==F.implementation?(B=Kr(F,I.mode,W),B.return=I,B):(B=u(B,F.children||[]),B.return=I,B)}function Q(I,B,F,W,be){return B===null||B.tag!==7?(B=La(F,I.mode,W,be),B.return=I,B):(B=u(B,F),B.return=I,B)}function P(I,B,F){if(typeof B=="string"&&B!==""||typeof B=="number"||typeof B=="bigint")return B=Xr(""+B,I.mode,F),B.return=I,B;if(typeof B=="object"&&B!==null){switch(B.$$typeof){case M:return F=_s(B.type,B.key,B.props,null,I.mode,F),bi(F,B),F.return=I,F;case k:return B=Kr(B,I.mode,F),B.return=I,B;case ae:return B=$a(B),P(I,B,F)}if(ke(B)||Fe(B))return B=La(B,I.mode,F,null),B.return=I,B;if(typeof B.then=="function")return P(I,Fs(B),F);if(B.$$typeof===C)return P(I,Ls(I,B),F);$s(I,B)}return null}function Y(I,B,F,W){var be=B!==null?B.key:null;if(typeof F=="string"&&F!==""||typeof F=="number"||typeof F=="bigint")return be!==null?null:j(I,B,""+F,W);if(typeof F=="object"&&F!==null){switch(F.$$typeof){case M:return F.key===be?w(I,B,F,W):null;case k:return F.key===be?$(I,B,F,W):null;case ae:return F=$a(F),Y(I,B,F,W)}if(ke(F)||Fe(F))return be!==null?null:Q(I,B,F,W,null);if(typeof F.then=="function")return Y(I,B,Fs(F),W);if(F.$$typeof===C)return Y(I,B,Ls(I,F),W);$s(I,F)}return null}function X(I,B,F,W,be){if(typeof W=="string"&&W!==""||typeof W=="number"||typeof W=="bigint")return I=I.get(F)||null,j(B,I,""+W,be);if(typeof W=="object"&&W!==null){switch(W.$$typeof){case M:return I=I.get(W.key===null?F:W.key)||null,w(B,I,W,be);case k:return I=I.get(W.key===null?F:W.key)||null,$(B,I,W,be);case ae:return W=$a(W),X(I,B,F,W,be)}if(ke(W)||Fe(W))return I=I.get(F)||null,Q(B,I,W,be,null);if(typeof W.then=="function")return X(I,B,F,Fs(W),be);if(W.$$typeof===C)return X(I,B,F,Ls(B,W),be);$s(B,W)}return null}function ce(I,B,F,W){for(var be=null,Ie=null,fe=B,Ne=B=0,ze=null;fe!==null&&Ne<F.length;Ne++){fe.index>Ne?(ze=fe,fe=null):ze=fe.sibling;var Ue=Y(I,fe,F[Ne],W);if(Ue===null){fe===null&&(fe=ze);break}e&&fe&&Ue.alternate===null&&n(I,fe),B=p(Ue,B,Ne),Ie===null?be=Ue:Ie.sibling=Ue,Ie=Ue,fe=ze}if(Ne===F.length)return a(I,fe),Be&&Nn(I,Ne),be;if(fe===null){for(;Ne<F.length;Ne++)fe=P(I,F[Ne],W),fe!==null&&(B=p(fe,B,Ne),Ie===null?be=fe:Ie.sibling=fe,Ie=fe);return Be&&Nn(I,Ne),be}for(fe=o(fe);Ne<F.length;Ne++)ze=X(fe,I,Ne,F[Ne],W),ze!==null&&(e&&ze.alternate!==null&&fe.delete(ze.key===null?Ne:ze.key),B=p(ze,B,Ne),Ie===null?be=ze:Ie.sibling=ze,Ie=ze);return e&&fe.forEach(function(ba){return n(I,ba)}),Be&&Nn(I,Ne),be}function xe(I,B,F,W){if(F==null)throw Error(i(151));for(var be=null,Ie=null,fe=B,Ne=B=0,ze=null,Ue=F.next();fe!==null&&!Ue.done;Ne++,Ue=F.next()){fe.index>Ne?(ze=fe,fe=null):ze=fe.sibling;var ba=Y(I,fe,Ue.value,W);if(ba===null){fe===null&&(fe=ze);break}e&&fe&&ba.alternate===null&&n(I,fe),B=p(ba,B,Ne),Ie===null?be=ba:Ie.sibling=ba,Ie=ba,fe=ze}if(Ue.done)return a(I,fe),Be&&Nn(I,Ne),be;if(fe===null){for(;!Ue.done;Ne++,Ue=F.next())Ue=P(I,Ue.value,W),Ue!==null&&(B=p(Ue,B,Ne),Ie===null?be=Ue:Ie.sibling=Ue,Ie=Ue);return Be&&Nn(I,Ne),be}for(fe=o(fe);!Ue.done;Ne++,Ue=F.next())Ue=X(fe,I,Ne,Ue.value,W),Ue!==null&&(e&&Ue.alternate!==null&&fe.delete(Ue.key===null?Ne:Ue.key),B=p(Ue,B,Ne),Ie===null?be=Ue:Ie.sibling=Ue,Ie=Ue);return e&&fe.forEach(function(Sx){return n(I,Sx)}),Be&&Nn(I,Ne),be}function Ke(I,B,F,W){if(typeof F=="object"&&F!==null&&F.type===D&&F.key===null&&(F=F.props.children),typeof F=="object"&&F!==null){switch(F.$$typeof){case M:e:{for(var be=F.key;B!==null;){if(B.key===be){if(be=F.type,be===D){if(B.tag===7){a(I,B.sibling),W=u(B,F.props.children),W.return=I,I=W;break e}}else if(B.elementType===be||typeof be=="object"&&be!==null&&be.$$typeof===ae&&$a(be)===B.type){a(I,B.sibling),W=u(B,F.props),bi(W,F),W.return=I,I=W;break e}a(I,B);break}else n(I,B);B=B.sibling}F.type===D?(W=La(F.props.children,I.mode,W,F.key),W.return=I,I=W):(W=_s(F.type,F.key,F.props,null,I.mode,W),bi(W,F),W.return=I,I=W)}return y(I);case k:e:{for(be=F.key;B!==null;){if(B.key===be)if(B.tag===4&&B.stateNode.containerInfo===F.containerInfo&&B.stateNode.implementation===F.implementation){a(I,B.sibling),W=u(B,F.children||[]),W.return=I,I=W;break e}else{a(I,B);break}else n(I,B);B=B.sibling}W=Kr(F,I.mode,W),W.return=I,I=W}return y(I);case ae:return F=$a(F),Ke(I,B,F,W)}if(ke(F))return ce(I,B,F,W);if(Fe(F)){if(be=Fe(F),typeof be!="function")throw Error(i(150));return F=be.call(F),xe(I,B,F,W)}if(typeof F.then=="function")return Ke(I,B,Fs(F),W);if(F.$$typeof===C)return Ke(I,B,Ls(I,F),W);$s(I,F)}return typeof F=="string"&&F!==""||typeof F=="number"||typeof F=="bigint"?(F=""+F,B!==null&&B.tag===6?(a(I,B.sibling),W=u(B,F),W.return=I,I=W):(a(I,B),W=Xr(F,I.mode,W),W.return=I,I=W),y(I)):a(I,B)}return function(I,B,F,W){try{vi=0;var be=Ke(I,B,F,W);return wl=null,be}catch(fe){if(fe===Cl||fe===Us)throw fe;var Ie=Ft(29,fe,null,I.mode);return Ie.lanes=W,Ie.return=I,Ie}finally{}}}var Ya=sm(!0),om=sm(!1),na=!1;function ic(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function sc(e,n){e=e.updateQueue,n.updateQueue===e&&(n.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function aa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function la(e,n,a){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(He&2)!==0){var u=o.pending;return u===null?n.next=n:(n.next=u.next,u.next=n),o.pending=n,n=zs(e),Yf(e,null,a),n}return Ds(e,o,n,a),zs(e)}function xi(e,n,a){if(n=n.updateQueue,n!==null&&(n=n.shared,(a&4194048)!==0)){var o=n.lanes;o&=e.pendingLanes,a|=o,n.lanes=a,Jd(e,a)}}function oc(e,n){var a=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,a===o)){var u=null,p=null;if(a=a.firstBaseUpdate,a!==null){do{var y={lane:a.lane,tag:a.tag,payload:a.payload,callback:null,next:null};p===null?u=p=y:p=p.next=y,a=a.next}while(a!==null);p===null?u=p=n:p=p.next=n}else u=p=n;a={baseState:o.baseState,firstBaseUpdate:u,lastBaseUpdate:p,shared:o.shared,callbacks:o.callbacks},e.updateQueue=a;return}e=a.lastBaseUpdate,e===null?a.firstBaseUpdate=n:e.next=n,a.lastBaseUpdate=n}var rc=!1;function Si(){if(rc){var e=Al;if(e!==null)throw e}}function ki(e,n,a,o){rc=!1;var u=e.updateQueue;na=!1;var p=u.firstBaseUpdate,y=u.lastBaseUpdate,j=u.shared.pending;if(j!==null){u.shared.pending=null;var w=j,$=w.next;w.next=null,y===null?p=$:y.next=$,y=w;var Q=e.alternate;Q!==null&&(Q=Q.updateQueue,j=Q.lastBaseUpdate,j!==y&&(j===null?Q.firstBaseUpdate=$:j.next=$,Q.lastBaseUpdate=w))}if(p!==null){var P=u.baseState;y=0,Q=$=w=null,j=p;do{var Y=j.lane&-536870913,X=Y!==j.lane;if(X?(De&Y)===Y:(o&Y)===Y){Y!==0&&Y===Nl&&(rc=!0),Q!==null&&(Q=Q.next={lane:0,tag:j.tag,payload:j.payload,callback:null,next:null});e:{var ce=e,xe=j;Y=n;var Ke=a;switch(xe.tag){case 1:if(ce=xe.payload,typeof ce=="function"){P=ce.call(Ke,P,Y);break e}P=ce;break e;case 3:ce.flags=ce.flags&-65537|128;case 0:if(ce=xe.payload,Y=typeof ce=="function"?ce.call(Ke,P,Y):ce,Y==null)break e;P=x({},P,Y);break e;case 2:na=!0}}Y=j.callback,Y!==null&&(e.flags|=64,X&&(e.flags|=8192),X=u.callbacks,X===null?u.callbacks=[Y]:X.push(Y))}else X={lane:Y,tag:j.tag,payload:j.payload,callback:j.callback,next:null},Q===null?($=Q=X,w=P):Q=Q.next=X,y|=Y;if(j=j.next,j===null){if(j=u.shared.pending,j===null)break;X=j,j=X.next,X.next=null,u.lastBaseUpdate=X,u.shared.pending=null}}while(!0);Q===null&&(w=P),u.baseState=w,u.firstBaseUpdate=$,u.lastBaseUpdate=Q,p===null&&(u.shared.lanes=0),ca|=y,e.lanes=y,e.memoizedState=P}}function rm(e,n){if(typeof e!="function")throw Error(i(191,e));e.call(n)}function cm(e,n){var a=e.callbacks;if(a!==null)for(e.callbacks=null,e=0;e<a.length;e++)rm(a[e],n)}var Tl=R(null),Gs=R(0);function um(e,n){e=Ln,le(Gs,e),le(Tl,n),Ln=e|n.baseLanes}function cc(){le(Gs,Ln),le(Tl,Tl.current)}function uc(){Ln=Gs.current,ee(Tl),ee(Gs)}var $t=R(null),nn=null;function ia(e){var n=e.alternate;le(at,at.current&1),le($t,e),nn===null&&(n===null||Tl.current!==null||n.memoizedState!==null)&&(nn=e)}function dc(e){le(at,at.current),le($t,e),nn===null&&(nn=e)}function dm(e){e.tag===22?(le(at,at.current),le($t,e),nn===null&&(nn=e)):sa()}function sa(){le(at,at.current),le($t,$t.current)}function Gt(e){ee($t),nn===e&&(nn=null),ee(at)}var at=R(0);function Ys(e){for(var n=e;n!==null;){if(n.tag===13){var a=n.memoizedState;if(a!==null&&(a=a.dehydrated,a===null||yu(a)||vu(a)))return n}else if(n.tag===19&&(n.memoizedProps.revealOrder==="forwards"||n.memoizedProps.revealOrder==="backwards"||n.memoizedProps.revealOrder==="unstable_legacy-backwards"||n.memoizedProps.revealOrder==="together")){if((n.flags&128)!==0)return n}else if(n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var wn=0,Ee=null,Ve=null,rt=null,Vs=!1,Ol=!1,Va=!1,Xs=0,ji=0,Dl=null,db=0;function tt(){throw Error(i(321))}function fc(e,n){if(n===null)return!1;for(var a=0;a<n.length&&a<e.length;a++)if(!Ht(e[a],n[a]))return!1;return!0}function mc(e,n,a,o,u,p){return wn=p,Ee=n,n.memoizedState=null,n.updateQueue=null,n.lanes=0,V.H=e===null||e.memoizedState===null?qm:Cc,Va=!1,p=a(o,u),Va=!1,Ol&&(p=mm(n,a,o,u)),fm(e),p}function fm(e){V.H=Ni;var n=Ve!==null&&Ve.next!==null;if(wn=0,rt=Ve=Ee=null,Vs=!1,ji=0,Dl=null,n)throw Error(i(300));e===null||ct||(e=e.dependencies,e!==null&&Rs(e)&&(ct=!0))}function mm(e,n,a,o){Ee=e;var u=0;do{if(Ol&&(Dl=null),ji=0,Ol=!1,25<=u)throw Error(i(301));if(u+=1,rt=Ve=null,e.updateQueue!=null){var p=e.updateQueue;p.lastEffect=null,p.events=null,p.stores=null,p.memoCache!=null&&(p.memoCache.index=0)}V.H=Zm,p=n(a,o)}while(Ol);return p}function fb(){var e=V.H,n=e.useState()[0];return n=typeof n.then=="function"?Mi(n):n,e=e.useState()[0],(Ve!==null?Ve.memoizedState:null)!==e&&(Ee.flags|=1024),n}function hc(){var e=Xs!==0;return Xs=0,e}function pc(e,n,a){n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~a}function gc(e){if(Vs){for(e=e.memoizedState;e!==null;){var n=e.queue;n!==null&&(n.pending=null),e=e.next}Vs=!1}wn=0,rt=Ve=Ee=null,Ol=!1,ji=Xs=0,Dl=null}function Tt(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return rt===null?Ee.memoizedState=rt=e:rt=rt.next=e,rt}function lt(){if(Ve===null){var e=Ee.alternate;e=e!==null?e.memoizedState:null}else e=Ve.next;var n=rt===null?Ee.memoizedState:rt.next;if(n!==null)rt=n,Ve=e;else{if(e===null)throw Ee.alternate===null?Error(i(467)):Error(i(310));Ve=e,e={memoizedState:Ve.memoizedState,baseState:Ve.baseState,baseQueue:Ve.baseQueue,queue:Ve.queue,next:null},rt===null?Ee.memoizedState=rt=e:rt=rt.next=e}return rt}function Ks(){return{lastEffect:null,events:null,stores:null,memoCache:null}}function Mi(e){var n=ji;return ji+=1,Dl===null&&(Dl=[]),e=am(Dl,e,n),n=Ee,(rt===null?n.memoizedState:rt.next)===null&&(n=n.alternate,V.H=n===null||n.memoizedState===null?qm:Cc),e}function qs(e){if(e!==null&&typeof e=="object"){if(typeof e.then=="function")return Mi(e);if(e.$$typeof===C)return jt(e)}throw Error(i(438,String(e)))}function yc(e){var n=null,a=Ee.updateQueue;if(a!==null&&(n=a.memoCache),n==null){var o=Ee.alternate;o!==null&&(o=o.updateQueue,o!==null&&(o=o.memoCache,o!=null&&(n={data:o.data.map(function(u){return u.slice()}),index:0})))}if(n==null&&(n={data:[],index:0}),a===null&&(a=Ks(),Ee.updateQueue=a),a.memoCache=n,a=n.data[n.index],a===void 0)for(a=n.data[n.index]=Array(e),o=0;o<e;o++)a[o]=se;return n.index++,a}function Tn(e,n){return typeof n=="function"?n(e):n}function Zs(e){var n=lt();return vc(n,Ve,e)}function vc(e,n,a){var o=e.queue;if(o===null)throw Error(i(311));o.lastRenderedReducer=a;var u=e.baseQueue,p=o.pending;if(p!==null){if(u!==null){var y=u.next;u.next=p.next,p.next=y}n.baseQueue=u=p,o.pending=null}if(p=e.baseState,u===null)e.memoizedState=p;else{n=u.next;var j=y=null,w=null,$=n,Q=!1;do{var P=$.lane&-536870913;if(P!==$.lane?(De&P)===P:(wn&P)===P){var Y=$.revertLane;if(Y===0)w!==null&&(w=w.next={lane:0,revertLane:0,gesture:null,action:$.action,hasEagerState:$.hasEagerState,eagerState:$.eagerState,next:null}),P===Nl&&(Q=!0);else if((wn&Y)===Y){$=$.next,Y===Nl&&(Q=!0);continue}else P={lane:0,revertLane:$.revertLane,gesture:null,action:$.action,hasEagerState:$.hasEagerState,eagerState:$.eagerState,next:null},w===null?(j=w=P,y=p):w=w.next=P,Ee.lanes|=Y,ca|=Y;P=$.action,Va&&a(p,P),p=$.hasEagerState?$.eagerState:a(p,P)}else Y={lane:P,revertLane:$.revertLane,gesture:$.gesture,action:$.action,hasEagerState:$.hasEagerState,eagerState:$.eagerState,next:null},w===null?(j=w=Y,y=p):w=w.next=Y,Ee.lanes|=P,ca|=P;$=$.next}while($!==null&&$!==n);if(w===null?y=p:w.next=j,!Ht(p,e.memoizedState)&&(ct=!0,Q&&(a=Al,a!==null)))throw a;e.memoizedState=p,e.baseState=y,e.baseQueue=w,o.lastRenderedState=p}return u===null&&(o.lanes=0),[e.memoizedState,o.dispatch]}function bc(e){var n=lt(),a=n.queue;if(a===null)throw Error(i(311));a.lastRenderedReducer=e;var o=a.dispatch,u=a.pending,p=n.memoizedState;if(u!==null){a.pending=null;var y=u=u.next;do p=e(p,y.action),y=y.next;while(y!==u);Ht(p,n.memoizedState)||(ct=!0),n.memoizedState=p,n.baseQueue===null&&(n.baseState=p),a.lastRenderedState=p}return[p,o]}function hm(e,n,a){var o=Ee,u=lt(),p=Be;if(p){if(a===void 0)throw Error(i(407));a=a()}else a=n();var y=!Ht((Ve||u).memoizedState,a);if(y&&(u.memoizedState=a,ct=!0),u=u.queue,kc(ym.bind(null,o,u,e),[e]),u.getSnapshot!==n||y||rt!==null&&rt.memoizedState.tag&1){if(o.flags|=2048,zl(9,{destroy:void 0},gm.bind(null,o,u,a,n),null),qe===null)throw Error(i(349));p||(wn&127)!==0||pm(o,n,a)}return a}function pm(e,n,a){e.flags|=16384,e={getSnapshot:n,value:a},n=Ee.updateQueue,n===null?(n=Ks(),Ee.updateQueue=n,n.stores=[e]):(a=n.stores,a===null?n.stores=[e]:a.push(e))}function gm(e,n,a,o){n.value=a,n.getSnapshot=o,vm(n)&&bm(e)}function ym(e,n,a){return a(function(){vm(n)&&bm(e)})}function vm(e){var n=e.getSnapshot;e=e.value;try{var a=n();return!Ht(e,a)}catch{return!0}}function bm(e){var n=Ra(e,2);n!==null&&Lt(n,e,2)}function xc(e){var n=Tt();if(typeof e=="function"){var a=e;if(e=a(),Va){Zn(!0);try{a()}finally{Zn(!1)}}}return n.memoizedState=n.baseState=e,n.queue={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Tn,lastRenderedState:e},n}function xm(e,n,a,o){return e.baseState=a,vc(e,Ve,typeof o=="function"?o:Tn)}function mb(e,n,a,o,u){if(Ws(e))throw Error(i(485));if(e=n.action,e!==null){var p={payload:u,action:e,next:null,isTransition:!0,status:"pending",value:null,reason:null,listeners:[],then:function(y){p.listeners.push(y)}};V.T!==null?a(!0):p.isTransition=!1,o(p),a=n.pending,a===null?(p.next=n.pending=p,Sm(n,p)):(p.next=a.next,n.pending=a.next=p)}}function Sm(e,n){var a=n.action,o=n.payload,u=e.state;if(n.isTransition){var p=V.T,y={};V.T=y;try{var j=a(u,o),w=V.S;w!==null&&w(y,j),km(e,n,j)}catch($){Sc(e,n,$)}finally{p!==null&&y.types!==null&&(p.types=y.types),V.T=p}}else try{p=a(u,o),km(e,n,p)}catch($){Sc(e,n,$)}}function km(e,n,a){a!==null&&typeof a=="object"&&typeof a.then=="function"?a.then(function(o){jm(e,n,o)},function(o){return Sc(e,n,o)}):jm(e,n,a)}function jm(e,n,a){n.status="fulfilled",n.value=a,Mm(n),e.state=a,n=e.pending,n!==null&&(a=n.next,a===n?e.pending=null:(a=a.next,n.next=a,Sm(e,a)))}function Sc(e,n,a){var o=e.pending;if(e.pending=null,o!==null){o=o.next;do n.status="rejected",n.reason=a,Mm(n),n=n.next;while(n!==o)}e.action=null}function Mm(e){e=e.listeners;for(var n=0;n<e.length;n++)(0,e[n])()}function Em(e,n){return n}function Nm(e,n){if(Be){var a=qe.formState;if(a!==null){e:{var o=Ee;if(Be){if(Qe){t:{for(var u=Qe,p=tn;u.nodeType!==8;){if(!p){u=null;break t}if(u=an(u.nextSibling),u===null){u=null;break t}}p=u.data,u=p==="F!"||p==="F"?u:null}if(u){Qe=an(u.nextSibling),o=u.data==="F!";break e}}ea(o)}o=!1}o&&(n=a[0])}}return a=Tt(),a.memoizedState=a.baseState=n,o={pending:null,lanes:0,dispatch:null,lastRenderedReducer:Em,lastRenderedState:n},a.queue=o,a=Vm.bind(null,Ee,o),o.dispatch=a,o=xc(!1),p=Ac.bind(null,Ee,!1,o.queue),o=Tt(),u={state:n,dispatch:null,action:e,pending:null},o.queue=u,a=mb.bind(null,Ee,u,p,a),u.dispatch=a,o.memoizedState=e,[n,a,!1]}function Am(e){var n=lt();return Cm(n,Ve,e)}function Cm(e,n,a){if(n=vc(e,n,Em)[0],e=Zs(Tn)[0],typeof n=="object"&&n!==null&&typeof n.then=="function")try{var o=Mi(n)}catch(y){throw y===Cl?Us:y}else o=n;n=lt();var u=n.queue,p=u.dispatch;return a!==n.memoizedState&&(Ee.flags|=2048,zl(9,{destroy:void 0},hb.bind(null,u,a),null)),[o,p,e]}function hb(e,n){e.action=n}function wm(e){var n=lt(),a=Ve;if(a!==null)return Cm(n,a,e);lt(),n=n.memoizedState,a=lt();var o=a.queue.dispatch;return a.memoizedState=e,[n,o,!1]}function zl(e,n,a,o){return e={tag:e,create:a,deps:o,inst:n,next:null},n=Ee.updateQueue,n===null&&(n=Ks(),Ee.updateQueue=n),a=n.lastEffect,a===null?n.lastEffect=e.next=e:(o=a.next,a.next=e,e.next=o,n.lastEffect=e),e}function Tm(){return lt().memoizedState}function Qs(e,n,a,o){var u=Tt();Ee.flags|=e,u.memoizedState=zl(1|n,{destroy:void 0},a,o===void 0?null:o)}function Js(e,n,a,o){var u=lt();o=o===void 0?null:o;var p=u.memoizedState.inst;Ve!==null&&o!==null&&fc(o,Ve.memoizedState.deps)?u.memoizedState=zl(n,p,a,o):(Ee.flags|=e,u.memoizedState=zl(1|n,p,a,o))}function Om(e,n){Qs(8390656,8,e,n)}function kc(e,n){Js(2048,8,e,n)}function pb(e){Ee.flags|=4;var n=Ee.updateQueue;if(n===null)n=Ks(),Ee.updateQueue=n,n.events=[e];else{var a=n.events;a===null?n.events=[e]:a.push(e)}}function Dm(e){var n=lt().memoizedState;return pb({ref:n,nextImpl:e}),function(){if((He&2)!==0)throw Error(i(440));return n.impl.apply(void 0,arguments)}}function zm(e,n){return Js(4,2,e,n)}function _m(e,n){return Js(4,4,e,n)}function Bm(e,n){if(typeof n=="function"){e=e();var a=n(e);return function(){typeof a=="function"?a():n(null)}}if(n!=null)return e=e(),n.current=e,function(){n.current=null}}function Rm(e,n,a){a=a!=null?a.concat([e]):null,Js(4,4,Bm.bind(null,n,e),a)}function jc(){}function Lm(e,n){var a=lt();n=n===void 0?null:n;var o=a.memoizedState;return n!==null&&fc(n,o[1])?o[0]:(a.memoizedState=[e,n],e)}function Im(e,n){var a=lt();n=n===void 0?null:n;var o=a.memoizedState;if(n!==null&&fc(n,o[1]))return o[0];if(o=e(),Va){Zn(!0);try{e()}finally{Zn(!1)}}return a.memoizedState=[o,n],o}function Mc(e,n,a){return a===void 0||(wn&1073741824)!==0&&(De&261930)===0?e.memoizedState=n:(e.memoizedState=a,e=Uh(),Ee.lanes|=e,ca|=e,a)}function Um(e,n,a,o){return Ht(a,n)?a:Tl.current!==null?(e=Mc(e,a,o),Ht(e,n)||(ct=!0),e):(wn&42)===0||(wn&1073741824)!==0&&(De&261930)===0?(ct=!0,e.memoizedState=a):(e=Uh(),Ee.lanes|=e,ca|=e,n)}function Hm(e,n,a,o,u){var p=ne.p;ne.p=p!==0&&8>p?p:8;var y=V.T,j={};V.T=j,Ac(e,!1,n,a);try{var w=u(),$=V.S;if($!==null&&$(j,w),w!==null&&typeof w=="object"&&typeof w.then=="function"){var Q=ub(w,o);Ei(e,n,Q,Xt(e))}else Ei(e,n,o,Xt(e))}catch(P){Ei(e,n,{then:function(){},status:"rejected",reason:P},Xt())}finally{ne.p=p,y!==null&&j.types!==null&&(y.types=j.types),V.T=y}}function gb(){}function Ec(e,n,a,o){if(e.tag!==5)throw Error(i(476));var u=Fm(e).queue;Hm(e,u,n,ue,a===null?gb:function(){return $m(e),a(o)})}function Fm(e){var n=e.memoizedState;if(n!==null)return n;n={memoizedState:ue,baseState:ue,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Tn,lastRenderedState:ue},next:null};var a={};return n.next={memoizedState:a,baseState:a,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Tn,lastRenderedState:a},next:null},e.memoizedState=n,e=e.alternate,e!==null&&(e.memoizedState=n),n}function $m(e){var n=Fm(e);n.next===null&&(n=e.alternate.memoizedState),Ei(e,n.next.queue,{},Xt())}function Nc(){return jt($i)}function Gm(){return lt().memoizedState}function Ym(){return lt().memoizedState}function yb(e){for(var n=e.return;n!==null;){switch(n.tag){case 24:case 3:var a=Xt();e=aa(a);var o=la(n,e,a);o!==null&&(Lt(o,n,a),xi(o,n,a)),n={cache:tc()},e.payload=n;return}n=n.return}}function vb(e,n,a){var o=Xt();a={lane:o,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null},Ws(e)?Xm(n,a):(a=Yr(e,n,a,o),a!==null&&(Lt(a,e,o),Km(a,n,o)))}function Vm(e,n,a){var o=Xt();Ei(e,n,a,o)}function Ei(e,n,a,o){var u={lane:o,revertLane:0,gesture:null,action:a,hasEagerState:!1,eagerState:null,next:null};if(Ws(e))Xm(n,u);else{var p=e.alternate;if(e.lanes===0&&(p===null||p.lanes===0)&&(p=n.lastRenderedReducer,p!==null))try{var y=n.lastRenderedState,j=p(y,a);if(u.hasEagerState=!0,u.eagerState=j,Ht(j,y))return Ds(e,n,u,0),qe===null&&Os(),!1}catch{}finally{}if(a=Yr(e,n,u,o),a!==null)return Lt(a,e,o),Km(a,n,o),!0}return!1}function Ac(e,n,a,o){if(o={lane:2,revertLane:iu(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},Ws(e)){if(n)throw Error(i(479))}else n=Yr(e,a,o,2),n!==null&&Lt(n,e,2)}function Ws(e){var n=e.alternate;return e===Ee||n!==null&&n===Ee}function Xm(e,n){Ol=Vs=!0;var a=e.pending;a===null?n.next=n:(n.next=a.next,a.next=n),e.pending=n}function Km(e,n,a){if((a&4194048)!==0){var o=n.lanes;o&=e.pendingLanes,a|=o,n.lanes=a,Jd(e,a)}}var Ni={readContext:jt,use:qs,useCallback:tt,useContext:tt,useEffect:tt,useImperativeHandle:tt,useLayoutEffect:tt,useInsertionEffect:tt,useMemo:tt,useReducer:tt,useRef:tt,useState:tt,useDebugValue:tt,useDeferredValue:tt,useTransition:tt,useSyncExternalStore:tt,useId:tt,useHostTransitionStatus:tt,useFormState:tt,useActionState:tt,useOptimistic:tt,useMemoCache:tt,useCacheRefresh:tt};Ni.useEffectEvent=tt;var qm={readContext:jt,use:qs,useCallback:function(e,n){return Tt().memoizedState=[e,n===void 0?null:n],e},useContext:jt,useEffect:Om,useImperativeHandle:function(e,n,a){a=a!=null?a.concat([e]):null,Qs(4194308,4,Bm.bind(null,n,e),a)},useLayoutEffect:function(e,n){return Qs(4194308,4,e,n)},useInsertionEffect:function(e,n){Qs(4,2,e,n)},useMemo:function(e,n){var a=Tt();n=n===void 0?null:n;var o=e();if(Va){Zn(!0);try{e()}finally{Zn(!1)}}return a.memoizedState=[o,n],o},useReducer:function(e,n,a){var o=Tt();if(a!==void 0){var u=a(n);if(Va){Zn(!0);try{a(n)}finally{Zn(!1)}}}else u=n;return o.memoizedState=o.baseState=u,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:u},o.queue=e,e=e.dispatch=vb.bind(null,Ee,e),[o.memoizedState,e]},useRef:function(e){var n=Tt();return e={current:e},n.memoizedState=e},useState:function(e){e=xc(e);var n=e.queue,a=Vm.bind(null,Ee,n);return n.dispatch=a,[e.memoizedState,a]},useDebugValue:jc,useDeferredValue:function(e,n){var a=Tt();return Mc(a,e,n)},useTransition:function(){var e=xc(!1);return e=Hm.bind(null,Ee,e.queue,!0,!1),Tt().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,n,a){var o=Ee,u=Tt();if(Be){if(a===void 0)throw Error(i(407));a=a()}else{if(a=n(),qe===null)throw Error(i(349));(De&127)!==0||pm(o,n,a)}u.memoizedState=a;var p={value:a,getSnapshot:n};return u.queue=p,Om(ym.bind(null,o,p,e),[e]),o.flags|=2048,zl(9,{destroy:void 0},gm.bind(null,o,p,a,n),null),a},useId:function(){var e=Tt(),n=qe.identifierPrefix;if(Be){var a=gn,o=pn;a=(o&~(1<<32-Ut(o)-1)).toString(32)+a,n="_"+n+"R_"+a,a=Xs++,0<a&&(n+="H"+a.toString(32)),n+="_"}else a=db++,n="_"+n+"r_"+a.toString(32)+"_";return e.memoizedState=n},useHostTransitionStatus:Nc,useFormState:Nm,useActionState:Nm,useOptimistic:function(e){var n=Tt();n.memoizedState=n.baseState=e;var a={pending:null,lanes:0,dispatch:null,lastRenderedReducer:null,lastRenderedState:null};return n.queue=a,n=Ac.bind(null,Ee,!0,a),a.dispatch=n,[e,n]},useMemoCache:yc,useCacheRefresh:function(){return Tt().memoizedState=yb.bind(null,Ee)},useEffectEvent:function(e){var n=Tt(),a={impl:e};return n.memoizedState=a,function(){if((He&2)!==0)throw Error(i(440));return a.impl.apply(void 0,arguments)}}},Cc={readContext:jt,use:qs,useCallback:Lm,useContext:jt,useEffect:kc,useImperativeHandle:Rm,useInsertionEffect:zm,useLayoutEffect:_m,useMemo:Im,useReducer:Zs,useRef:Tm,useState:function(){return Zs(Tn)},useDebugValue:jc,useDeferredValue:function(e,n){var a=lt();return Um(a,Ve.memoizedState,e,n)},useTransition:function(){var e=Zs(Tn)[0],n=lt().memoizedState;return[typeof e=="boolean"?e:Mi(e),n]},useSyncExternalStore:hm,useId:Gm,useHostTransitionStatus:Nc,useFormState:Am,useActionState:Am,useOptimistic:function(e,n){var a=lt();return xm(a,Ve,e,n)},useMemoCache:yc,useCacheRefresh:Ym};Cc.useEffectEvent=Dm;var Zm={readContext:jt,use:qs,useCallback:Lm,useContext:jt,useEffect:kc,useImperativeHandle:Rm,useInsertionEffect:zm,useLayoutEffect:_m,useMemo:Im,useReducer:bc,useRef:Tm,useState:function(){return bc(Tn)},useDebugValue:jc,useDeferredValue:function(e,n){var a=lt();return Ve===null?Mc(a,e,n):Um(a,Ve.memoizedState,e,n)},useTransition:function(){var e=bc(Tn)[0],n=lt().memoizedState;return[typeof e=="boolean"?e:Mi(e),n]},useSyncExternalStore:hm,useId:Gm,useHostTransitionStatus:Nc,useFormState:wm,useActionState:wm,useOptimistic:function(e,n){var a=lt();return Ve!==null?xm(a,Ve,e,n):(a.baseState=e,[e,a.queue.dispatch])},useMemoCache:yc,useCacheRefresh:Ym};Zm.useEffectEvent=Dm;function wc(e,n,a,o){n=e.memoizedState,a=a(o,n),a=a==null?n:x({},n,a),e.memoizedState=a,e.lanes===0&&(e.updateQueue.baseState=a)}var Tc={enqueueSetState:function(e,n,a){e=e._reactInternals;var o=Xt(),u=aa(o);u.payload=n,a!=null&&(u.callback=a),n=la(e,u,o),n!==null&&(Lt(n,e,o),xi(n,e,o))},enqueueReplaceState:function(e,n,a){e=e._reactInternals;var o=Xt(),u=aa(o);u.tag=1,u.payload=n,a!=null&&(u.callback=a),n=la(e,u,o),n!==null&&(Lt(n,e,o),xi(n,e,o))},enqueueForceUpdate:function(e,n){e=e._reactInternals;var a=Xt(),o=aa(a);o.tag=2,n!=null&&(o.callback=n),n=la(e,o,a),n!==null&&(Lt(n,e,a),xi(n,e,a))}};function Qm(e,n,a,o,u,p,y){return e=e.stateNode,typeof e.shouldComponentUpdate=="function"?e.shouldComponentUpdate(o,p,y):n.prototype&&n.prototype.isPureReactComponent?!fi(a,o)||!fi(u,p):!0}function Jm(e,n,a,o){e=n.state,typeof n.componentWillReceiveProps=="function"&&n.componentWillReceiveProps(a,o),typeof n.UNSAFE_componentWillReceiveProps=="function"&&n.UNSAFE_componentWillReceiveProps(a,o),n.state!==e&&Tc.enqueueReplaceState(n,n.state,null)}function Xa(e,n){var a=n;if("ref"in n){a={};for(var o in n)o!=="ref"&&(a[o]=n[o])}if(e=e.defaultProps){a===n&&(a=x({},a));for(var u in e)a[u]===void 0&&(a[u]=e[u])}return a}function Wm(e){Ts(e)}function Pm(e){console.error(e)}function eh(e){Ts(e)}function Ps(e,n){try{var a=e.onUncaughtError;a(n.value,{componentStack:n.stack})}catch(o){setTimeout(function(){throw o})}}function th(e,n,a){try{var o=e.onCaughtError;o(a.value,{componentStack:a.stack,errorBoundary:n.tag===1?n.stateNode:null})}catch(u){setTimeout(function(){throw u})}}function Oc(e,n,a){return a=aa(a),a.tag=3,a.payload={element:null},a.callback=function(){Ps(e,n)},a}function nh(e){return e=aa(e),e.tag=3,e}function ah(e,n,a,o){var u=a.type.getDerivedStateFromError;if(typeof u=="function"){var p=o.value;e.payload=function(){return u(p)},e.callback=function(){th(n,a,o)}}var y=a.stateNode;y!==null&&typeof y.componentDidCatch=="function"&&(e.callback=function(){th(n,a,o),typeof u!="function"&&(ua===null?ua=new Set([this]):ua.add(this));var j=o.stack;this.componentDidCatch(o.value,{componentStack:j!==null?j:""})})}function bb(e,n,a,o,u){if(a.flags|=32768,o!==null&&typeof o=="object"&&typeof o.then=="function"){if(n=a.alternate,n!==null&&El(n,a,u,!0),a=$t.current,a!==null){switch(a.tag){case 31:case 13:return nn===null?fo():a.alternate===null&&nt===0&&(nt=3),a.flags&=-257,a.flags|=65536,a.lanes=u,o===Hs?a.flags|=16384:(n=a.updateQueue,n===null?a.updateQueue=new Set([o]):n.add(o),nu(e,o,u)),!1;case 22:return a.flags|=65536,o===Hs?a.flags|=16384:(n=a.updateQueue,n===null?(n={transitions:null,markerInstances:null,retryQueue:new Set([o])},a.updateQueue=n):(a=n.retryQueue,a===null?n.retryQueue=new Set([o]):a.add(o)),nu(e,o,u)),!1}throw Error(i(435,a.tag))}return nu(e,o,u),fo(),!1}if(Be)return n=$t.current,n!==null?((n.flags&65536)===0&&(n.flags|=256),n.flags|=65536,n.lanes=u,o!==Qr&&(e=Error(i(422),{cause:o}),pi(Wt(e,a)))):(o!==Qr&&(n=Error(i(423),{cause:o}),pi(Wt(n,a))),e=e.current.alternate,e.flags|=65536,u&=-u,e.lanes|=u,o=Wt(o,a),u=Oc(e.stateNode,o,u),oc(e,u),nt!==4&&(nt=2)),!1;var p=Error(i(520),{cause:o});if(p=Wt(p,a),_i===null?_i=[p]:_i.push(p),nt!==4&&(nt=2),n===null)return!0;o=Wt(o,a),a=n;do{switch(a.tag){case 3:return a.flags|=65536,e=u&-u,a.lanes|=e,e=Oc(a.stateNode,o,e),oc(a,e),!1;case 1:if(n=a.type,p=a.stateNode,(a.flags&128)===0&&(typeof n.getDerivedStateFromError=="function"||p!==null&&typeof p.componentDidCatch=="function"&&(ua===null||!ua.has(p))))return a.flags|=65536,u&=-u,a.lanes|=u,u=nh(u),ah(u,e,a,o),oc(a,u),!1}a=a.return}while(a!==null);return!1}var Dc=Error(i(461)),ct=!1;function Mt(e,n,a,o){n.child=e===null?om(n,null,a,o):Ya(n,e.child,a,o)}function lh(e,n,a,o,u){a=a.render;var p=n.ref;if("ref"in o){var y={};for(var j in o)j!=="ref"&&(y[j]=o[j])}else y=o;return Ha(n),o=mc(e,n,a,y,p,u),j=hc(),e!==null&&!ct?(pc(e,n,u),On(e,n,u)):(Be&&j&&qr(n),n.flags|=1,Mt(e,n,o,u),n.child)}function ih(e,n,a,o,u){if(e===null){var p=a.type;return typeof p=="function"&&!Vr(p)&&p.defaultProps===void 0&&a.compare===null?(n.tag=15,n.type=p,sh(e,n,p,o,u)):(e=_s(a.type,null,o,n,n.mode,u),e.ref=n.ref,e.return=n,n.child=e)}if(p=e.child,!Hc(e,u)){var y=p.memoizedProps;if(a=a.compare,a=a!==null?a:fi,a(y,o)&&e.ref===n.ref)return On(e,n,u)}return n.flags|=1,e=En(p,o),e.ref=n.ref,e.return=n,n.child=e}function sh(e,n,a,o,u){if(e!==null){var p=e.memoizedProps;if(fi(p,o)&&e.ref===n.ref)if(ct=!1,n.pendingProps=o=p,Hc(e,u))(e.flags&131072)!==0&&(ct=!0);else return n.lanes=e.lanes,On(e,n,u)}return zc(e,n,a,o,u)}function oh(e,n,a,o){var u=o.children,p=e!==null?e.memoizedState:null;if(e===null&&n.stateNode===null&&(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),o.mode==="hidden"){if((n.flags&128)!==0){if(p=p!==null?p.baseLanes|a:a,e!==null){for(o=n.child=e.child,u=0;o!==null;)u=u|o.lanes|o.childLanes,o=o.sibling;o=u&~p}else o=0,n.child=null;return rh(e,n,p,a,o)}if((a&536870912)!==0)n.memoizedState={baseLanes:0,cachePool:null},e!==null&&Is(n,p!==null?p.cachePool:null),p!==null?um(n,p):cc(),dm(n);else return o=n.lanes=536870912,rh(e,n,p!==null?p.baseLanes|a:a,a,o)}else p!==null?(Is(n,p.cachePool),um(n,p),sa(),n.memoizedState=null):(e!==null&&Is(n,null),cc(),sa());return Mt(e,n,u,a),n.child}function Ai(e,n){return e!==null&&e.tag===22||n.stateNode!==null||(n.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null}),n.sibling}function rh(e,n,a,o,u){var p=ac();return p=p===null?null:{parent:ot._currentValue,pool:p},n.memoizedState={baseLanes:a,cachePool:p},e!==null&&Is(n,null),cc(),dm(n),e!==null&&El(e,n,o,!0),n.childLanes=u,null}function eo(e,n){return n=no({mode:n.mode,children:n.children},e.mode),n.ref=e.ref,e.child=n,n.return=e,n}function ch(e,n,a){return Ya(n,e.child,null,a),e=eo(n,n.pendingProps),e.flags|=2,Gt(n),n.memoizedState=null,e}function xb(e,n,a){var o=n.pendingProps,u=(n.flags&128)!==0;if(n.flags&=-129,e===null){if(Be){if(o.mode==="hidden")return e=eo(n,o),n.lanes=536870912,Ai(null,e);if(dc(n),(e=Qe)?(e=Sp(e,tn),e=e!==null&&e.data==="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:Wn!==null?{id:pn,overflow:gn}:null,retryLane:536870912,hydrationErrors:null},a=Xf(e),a.return=n,n.child=a,kt=n,Qe=null)):e=null,e===null)throw ea(n);return n.lanes=536870912,null}return eo(n,o)}var p=e.memoizedState;if(p!==null){var y=p.dehydrated;if(dc(n),u)if(n.flags&256)n.flags&=-257,n=ch(e,n,a);else if(n.memoizedState!==null)n.child=e.child,n.flags|=128,n=null;else throw Error(i(558));else if(ct||El(e,n,a,!1),u=(a&e.childLanes)!==0,ct||u){if(o=qe,o!==null&&(y=Wd(o,a),y!==0&&y!==p.retryLane))throw p.retryLane=y,Ra(e,y),Lt(o,e,y),Dc;fo(),n=ch(e,n,a)}else e=p.treeContext,Qe=an(y.nextSibling),kt=n,Be=!0,Pn=null,tn=!1,e!==null&&Zf(n,e),n=eo(n,o),n.flags|=4096;return n}return e=En(e.child,{mode:o.mode,children:o.children}),e.ref=n.ref,n.child=e,e.return=n,e}function to(e,n){var a=n.ref;if(a===null)e!==null&&e.ref!==null&&(n.flags|=4194816);else{if(typeof a!="function"&&typeof a!="object")throw Error(i(284));(e===null||e.ref!==a)&&(n.flags|=4194816)}}function zc(e,n,a,o,u){return Ha(n),a=mc(e,n,a,o,void 0,u),o=hc(),e!==null&&!ct?(pc(e,n,u),On(e,n,u)):(Be&&o&&qr(n),n.flags|=1,Mt(e,n,a,u),n.child)}function uh(e,n,a,o,u,p){return Ha(n),n.updateQueue=null,a=mm(n,o,a,u),fm(e),o=hc(),e!==null&&!ct?(pc(e,n,p),On(e,n,p)):(Be&&o&&qr(n),n.flags|=1,Mt(e,n,a,p),n.child)}function dh(e,n,a,o,u){if(Ha(n),n.stateNode===null){var p=Sl,y=a.contextType;typeof y=="object"&&y!==null&&(p=jt(y)),p=new a(o,p),n.memoizedState=p.state!==null&&p.state!==void 0?p.state:null,p.updater=Tc,n.stateNode=p,p._reactInternals=n,p=n.stateNode,p.props=o,p.state=n.memoizedState,p.refs={},ic(n),y=a.contextType,p.context=typeof y=="object"&&y!==null?jt(y):Sl,p.state=n.memoizedState,y=a.getDerivedStateFromProps,typeof y=="function"&&(wc(n,a,y,o),p.state=n.memoizedState),typeof a.getDerivedStateFromProps=="function"||typeof p.getSnapshotBeforeUpdate=="function"||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(y=p.state,typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount(),y!==p.state&&Tc.enqueueReplaceState(p,p.state,null),ki(n,o,p,u),Si(),p.state=n.memoizedState),typeof p.componentDidMount=="function"&&(n.flags|=4194308),o=!0}else if(e===null){p=n.stateNode;var j=n.memoizedProps,w=Xa(a,j);p.props=w;var $=p.context,Q=a.contextType;y=Sl,typeof Q=="object"&&Q!==null&&(y=jt(Q));var P=a.getDerivedStateFromProps;Q=typeof P=="function"||typeof p.getSnapshotBeforeUpdate=="function",j=n.pendingProps!==j,Q||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(j||$!==y)&&Jm(n,p,o,y),na=!1;var Y=n.memoizedState;p.state=Y,ki(n,o,p,u),Si(),$=n.memoizedState,j||Y!==$||na?(typeof P=="function"&&(wc(n,a,P,o),$=n.memoizedState),(w=na||Qm(n,a,w,o,Y,$,y))?(Q||typeof p.UNSAFE_componentWillMount!="function"&&typeof p.componentWillMount!="function"||(typeof p.componentWillMount=="function"&&p.componentWillMount(),typeof p.UNSAFE_componentWillMount=="function"&&p.UNSAFE_componentWillMount()),typeof p.componentDidMount=="function"&&(n.flags|=4194308)):(typeof p.componentDidMount=="function"&&(n.flags|=4194308),n.memoizedProps=o,n.memoizedState=$),p.props=o,p.state=$,p.context=y,o=w):(typeof p.componentDidMount=="function"&&(n.flags|=4194308),o=!1)}else{p=n.stateNode,sc(e,n),y=n.memoizedProps,Q=Xa(a,y),p.props=Q,P=n.pendingProps,Y=p.context,$=a.contextType,w=Sl,typeof $=="object"&&$!==null&&(w=jt($)),j=a.getDerivedStateFromProps,($=typeof j=="function"||typeof p.getSnapshotBeforeUpdate=="function")||typeof p.UNSAFE_componentWillReceiveProps!="function"&&typeof p.componentWillReceiveProps!="function"||(y!==P||Y!==w)&&Jm(n,p,o,w),na=!1,Y=n.memoizedState,p.state=Y,ki(n,o,p,u),Si();var X=n.memoizedState;y!==P||Y!==X||na||e!==null&&e.dependencies!==null&&Rs(e.dependencies)?(typeof j=="function"&&(wc(n,a,j,o),X=n.memoizedState),(Q=na||Qm(n,a,Q,o,Y,X,w)||e!==null&&e.dependencies!==null&&Rs(e.dependencies))?($||typeof p.UNSAFE_componentWillUpdate!="function"&&typeof p.componentWillUpdate!="function"||(typeof p.componentWillUpdate=="function"&&p.componentWillUpdate(o,X,w),typeof p.UNSAFE_componentWillUpdate=="function"&&p.UNSAFE_componentWillUpdate(o,X,w)),typeof p.componentDidUpdate=="function"&&(n.flags|=4),typeof p.getSnapshotBeforeUpdate=="function"&&(n.flags|=1024)):(typeof p.componentDidUpdate!="function"||y===e.memoizedProps&&Y===e.memoizedState||(n.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||y===e.memoizedProps&&Y===e.memoizedState||(n.flags|=1024),n.memoizedProps=o,n.memoizedState=X),p.props=o,p.state=X,p.context=w,o=Q):(typeof p.componentDidUpdate!="function"||y===e.memoizedProps&&Y===e.memoizedState||(n.flags|=4),typeof p.getSnapshotBeforeUpdate!="function"||y===e.memoizedProps&&Y===e.memoizedState||(n.flags|=1024),o=!1)}return p=o,to(e,n),o=(n.flags&128)!==0,p||o?(p=n.stateNode,a=o&&typeof a.getDerivedStateFromError!="function"?null:p.render(),n.flags|=1,e!==null&&o?(n.child=Ya(n,e.child,null,u),n.child=Ya(n,null,a,u)):Mt(e,n,a,u),n.memoizedState=p.state,e=n.child):e=On(e,n,u),e}function fh(e,n,a,o){return Ia(),n.flags|=256,Mt(e,n,a,o),n.child}var _c={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function Bc(e){return{baseLanes:e,cachePool:tm()}}function Rc(e,n,a){return e=e!==null?e.childLanes&~a:0,n&&(e|=Vt),e}function mh(e,n,a){var o=n.pendingProps,u=!1,p=(n.flags&128)!==0,y;if((y=p)||(y=e!==null&&e.memoizedState===null?!1:(at.current&2)!==0),y&&(u=!0,n.flags&=-129),y=(n.flags&32)!==0,n.flags&=-33,e===null){if(Be){if(u?ia(n):sa(),(e=Qe)?(e=Sp(e,tn),e=e!==null&&e.data!=="&"?e:null,e!==null&&(n.memoizedState={dehydrated:e,treeContext:Wn!==null?{id:pn,overflow:gn}:null,retryLane:536870912,hydrationErrors:null},a=Xf(e),a.return=n,n.child=a,kt=n,Qe=null)):e=null,e===null)throw ea(n);return vu(e)?n.lanes=32:n.lanes=536870912,null}var j=o.children;return o=o.fallback,u?(sa(),u=n.mode,j=no({mode:"hidden",children:j},u),o=La(o,u,a,null),j.return=n,o.return=n,j.sibling=o,n.child=j,o=n.child,o.memoizedState=Bc(a),o.childLanes=Rc(e,y,a),n.memoizedState=_c,Ai(null,o)):(ia(n),Lc(n,j))}var w=e.memoizedState;if(w!==null&&(j=w.dehydrated,j!==null)){if(p)n.flags&256?(ia(n),n.flags&=-257,n=Ic(e,n,a)):n.memoizedState!==null?(sa(),n.child=e.child,n.flags|=128,n=null):(sa(),j=o.fallback,u=n.mode,o=no({mode:"visible",children:o.children},u),j=La(j,u,a,null),j.flags|=2,o.return=n,j.return=n,o.sibling=j,n.child=o,Ya(n,e.child,null,a),o=n.child,o.memoizedState=Bc(a),o.childLanes=Rc(e,y,a),n.memoizedState=_c,n=Ai(null,o));else if(ia(n),vu(j)){if(y=j.nextSibling&&j.nextSibling.dataset,y)var $=y.dgst;y=$,o=Error(i(419)),o.stack="",o.digest=y,pi({value:o,source:null,stack:null}),n=Ic(e,n,a)}else if(ct||El(e,n,a,!1),y=(a&e.childLanes)!==0,ct||y){if(y=qe,y!==null&&(o=Wd(y,a),o!==0&&o!==w.retryLane))throw w.retryLane=o,Ra(e,o),Lt(y,e,o),Dc;yu(j)||fo(),n=Ic(e,n,a)}else yu(j)?(n.flags|=192,n.child=e.child,n=null):(e=w.treeContext,Qe=an(j.nextSibling),kt=n,Be=!0,Pn=null,tn=!1,e!==null&&Zf(n,e),n=Lc(n,o.children),n.flags|=4096);return n}return u?(sa(),j=o.fallback,u=n.mode,w=e.child,$=w.sibling,o=En(w,{mode:"hidden",children:o.children}),o.subtreeFlags=w.subtreeFlags&65011712,$!==null?j=En($,j):(j=La(j,u,a,null),j.flags|=2),j.return=n,o.return=n,o.sibling=j,n.child=o,Ai(null,o),o=n.child,j=e.child.memoizedState,j===null?j=Bc(a):(u=j.cachePool,u!==null?(w=ot._currentValue,u=u.parent!==w?{parent:w,pool:w}:u):u=tm(),j={baseLanes:j.baseLanes|a,cachePool:u}),o.memoizedState=j,o.childLanes=Rc(e,y,a),n.memoizedState=_c,Ai(e.child,o)):(ia(n),a=e.child,e=a.sibling,a=En(a,{mode:"visible",children:o.children}),a.return=n,a.sibling=null,e!==null&&(y=n.deletions,y===null?(n.deletions=[e],n.flags|=16):y.push(e)),n.child=a,n.memoizedState=null,a)}function Lc(e,n){return n=no({mode:"visible",children:n},e.mode),n.return=e,e.child=n}function no(e,n){return e=Ft(22,e,null,n),e.lanes=0,e}function Ic(e,n,a){return Ya(n,e.child,null,a),e=Lc(n,n.pendingProps.children),e.flags|=2,n.memoizedState=null,e}function hh(e,n,a){e.lanes|=n;var o=e.alternate;o!==null&&(o.lanes|=n),Pr(e.return,n,a)}function Uc(e,n,a,o,u,p){var y=e.memoizedState;y===null?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:o,tail:a,tailMode:u,treeForkCount:p}:(y.isBackwards=n,y.rendering=null,y.renderingStartTime=0,y.last=o,y.tail=a,y.tailMode=u,y.treeForkCount=p)}function ph(e,n,a){var o=n.pendingProps,u=o.revealOrder,p=o.tail;o=o.children;var y=at.current,j=(y&2)!==0;if(j?(y=y&1|2,n.flags|=128):y&=1,le(at,y),Mt(e,n,o,a),o=Be?hi:0,!j&&e!==null&&(e.flags&128)!==0)e:for(e=n.child;e!==null;){if(e.tag===13)e.memoizedState!==null&&hh(e,a,n);else if(e.tag===19)hh(e,a,n);else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;e.sibling===null;){if(e.return===null||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}switch(u){case"forwards":for(a=n.child,u=null;a!==null;)e=a.alternate,e!==null&&Ys(e)===null&&(u=a),a=a.sibling;a=u,a===null?(u=n.child,n.child=null):(u=a.sibling,a.sibling=null),Uc(n,!1,u,a,p,o);break;case"backwards":case"unstable_legacy-backwards":for(a=null,u=n.child,n.child=null;u!==null;){if(e=u.alternate,e!==null&&Ys(e)===null){n.child=u;break}e=u.sibling,u.sibling=a,a=u,u=e}Uc(n,!0,a,null,p,o);break;case"together":Uc(n,!1,null,null,void 0,o);break;default:n.memoizedState=null}return n.child}function On(e,n,a){if(e!==null&&(n.dependencies=e.dependencies),ca|=n.lanes,(a&n.childLanes)===0)if(e!==null){if(El(e,n,a,!1),(a&n.childLanes)===0)return null}else return null;if(e!==null&&n.child!==e.child)throw Error(i(153));if(n.child!==null){for(e=n.child,a=En(e,e.pendingProps),n.child=a,a.return=n;e.sibling!==null;)e=e.sibling,a=a.sibling=En(e,e.pendingProps),a.return=n;a.sibling=null}return n.child}function Hc(e,n){return(e.lanes&n)!==0?!0:(e=e.dependencies,!!(e!==null&&Rs(e)))}function Sb(e,n,a){switch(n.tag){case 3:ft(n,n.stateNode.containerInfo),ta(n,ot,e.memoizedState.cache),Ia();break;case 27:case 5:Sn(n);break;case 4:ft(n,n.stateNode.containerInfo);break;case 10:ta(n,n.type,n.memoizedProps.value);break;case 31:if(n.memoizedState!==null)return n.flags|=128,dc(n),null;break;case 13:var o=n.memoizedState;if(o!==null)return o.dehydrated!==null?(ia(n),n.flags|=128,null):(a&n.child.childLanes)!==0?mh(e,n,a):(ia(n),e=On(e,n,a),e!==null?e.sibling:null);ia(n);break;case 19:var u=(e.flags&128)!==0;if(o=(a&n.childLanes)!==0,o||(El(e,n,a,!1),o=(a&n.childLanes)!==0),u){if(o)return ph(e,n,a);n.flags|=128}if(u=n.memoizedState,u!==null&&(u.rendering=null,u.tail=null,u.lastEffect=null),le(at,at.current),o)break;return null;case 22:return n.lanes=0,oh(e,n,a,n.pendingProps);case 24:ta(n,ot,e.memoizedState.cache)}return On(e,n,a)}function gh(e,n,a){if(e!==null)if(e.memoizedProps!==n.pendingProps)ct=!0;else{if(!Hc(e,a)&&(n.flags&128)===0)return ct=!1,Sb(e,n,a);ct=(e.flags&131072)!==0}else ct=!1,Be&&(n.flags&1048576)!==0&&qf(n,hi,n.index);switch(n.lanes=0,n.tag){case 16:e:{var o=n.pendingProps;if(e=$a(n.elementType),n.type=e,typeof e=="function")Vr(e)?(o=Xa(e,o),n.tag=1,n=dh(null,n,e,o,a)):(n.tag=0,n=zc(null,n,e,o,a));else{if(e!=null){var u=e.$$typeof;if(u===L){n.tag=11,n=lh(null,n,e,o,a);break e}else if(u===q){n.tag=14,n=ih(null,n,e,o,a);break e}}throw n=he(e)||e,Error(i(306,n,""))}}return n;case 0:return zc(e,n,n.type,n.pendingProps,a);case 1:return o=n.type,u=Xa(o,n.pendingProps),dh(e,n,o,u,a);case 3:e:{if(ft(n,n.stateNode.containerInfo),e===null)throw Error(i(387));o=n.pendingProps;var p=n.memoizedState;u=p.element,sc(e,n),ki(n,o,null,a);var y=n.memoizedState;if(o=y.cache,ta(n,ot,o),o!==p.cache&&ec(n,[ot],a,!0),Si(),o=y.element,p.isDehydrated)if(p={element:o,isDehydrated:!1,cache:y.cache},n.updateQueue.baseState=p,n.memoizedState=p,n.flags&256){n=fh(e,n,o,a);break e}else if(o!==u){u=Wt(Error(i(424)),n),pi(u),n=fh(e,n,o,a);break e}else{switch(e=n.stateNode.containerInfo,e.nodeType){case 9:e=e.body;break;default:e=e.nodeName==="HTML"?e.ownerDocument.body:e}for(Qe=an(e.firstChild),kt=n,Be=!0,Pn=null,tn=!0,a=om(n,null,o,a),n.child=a;a;)a.flags=a.flags&-3|4096,a=a.sibling}else{if(Ia(),o===u){n=On(e,n,a);break e}Mt(e,n,o,a)}n=n.child}return n;case 26:return to(e,n),e===null?(a=Ap(n.type,null,n.pendingProps,null))?n.memoizedState=a:Be||(a=n.type,e=n.pendingProps,o=bo(Ae.current).createElement(a),o[St]=n,o[Ot]=e,Et(o,a,e),bt(o),n.stateNode=o):n.memoizedState=Ap(n.type,e.memoizedProps,n.pendingProps,e.memoizedState),null;case 27:return Sn(n),e===null&&Be&&(o=n.stateNode=Mp(n.type,n.pendingProps,Ae.current),kt=n,tn=!0,u=Qe,ha(n.type)?(bu=u,Qe=an(o.firstChild)):Qe=u),Mt(e,n,n.pendingProps.children,a),to(e,n),e===null&&(n.flags|=4194304),n.child;case 5:return e===null&&Be&&((u=o=Qe)&&(o=Jb(o,n.type,n.pendingProps,tn),o!==null?(n.stateNode=o,kt=n,Qe=an(o.firstChild),tn=!1,u=!0):u=!1),u||ea(n)),Sn(n),u=n.type,p=n.pendingProps,y=e!==null?e.memoizedProps:null,o=p.children,hu(u,p)?o=null:y!==null&&hu(u,y)&&(n.flags|=32),n.memoizedState!==null&&(u=mc(e,n,fb,null,null,a),$i._currentValue=u),to(e,n),Mt(e,n,o,a),n.child;case 6:return e===null&&Be&&((e=a=Qe)&&(a=Wb(a,n.pendingProps,tn),a!==null?(n.stateNode=a,kt=n,Qe=null,e=!0):e=!1),e||ea(n)),null;case 13:return mh(e,n,a);case 4:return ft(n,n.stateNode.containerInfo),o=n.pendingProps,e===null?n.child=Ya(n,null,o,a):Mt(e,n,o,a),n.child;case 11:return lh(e,n,n.type,n.pendingProps,a);case 7:return Mt(e,n,n.pendingProps,a),n.child;case 8:return Mt(e,n,n.pendingProps.children,a),n.child;case 12:return Mt(e,n,n.pendingProps.children,a),n.child;case 10:return o=n.pendingProps,ta(n,n.type,o.value),Mt(e,n,o.children,a),n.child;case 9:return u=n.type._context,o=n.pendingProps.children,Ha(n),u=jt(u),o=o(u),n.flags|=1,Mt(e,n,o,a),n.child;case 14:return ih(e,n,n.type,n.pendingProps,a);case 15:return sh(e,n,n.type,n.pendingProps,a);case 19:return ph(e,n,a);case 31:return xb(e,n,a);case 22:return oh(e,n,a,n.pendingProps);case 24:return Ha(n),o=jt(ot),e===null?(u=ac(),u===null&&(u=qe,p=tc(),u.pooledCache=p,p.refCount++,p!==null&&(u.pooledCacheLanes|=a),u=p),n.memoizedState={parent:o,cache:u},ic(n),ta(n,ot,u)):((e.lanes&a)!==0&&(sc(e,n),ki(n,null,null,a),Si()),u=e.memoizedState,p=n.memoizedState,u.parent!==o?(u={parent:o,cache:o},n.memoizedState=u,n.lanes===0&&(n.memoizedState=n.updateQueue.baseState=u),ta(n,ot,o)):(o=p.cache,ta(n,ot,o),o!==u.cache&&ec(n,[ot],a,!0))),Mt(e,n,n.pendingProps.children,a),n.child;case 29:throw n.pendingProps}throw Error(i(156,n.tag))}function Dn(e){e.flags|=4}function Fc(e,n,a,o,u){if((n=(e.mode&32)!==0)&&(n=!1),n){if(e.flags|=16777216,(u&335544128)===u)if(e.stateNode.complete)e.flags|=8192;else if(Gh())e.flags|=8192;else throw Ga=Hs,lc}else e.flags&=-16777217}function yh(e,n){if(n.type!=="stylesheet"||(n.state.loading&4)!==0)e.flags&=-16777217;else if(e.flags|=16777216,!Dp(n))if(Gh())e.flags|=8192;else throw Ga=Hs,lc}function ao(e,n){n!==null&&(e.flags|=4),e.flags&16384&&(n=e.tag!==22?Zd():536870912,e.lanes|=n,Ll|=n)}function Ci(e,n){if(!Be)switch(e.tailMode){case"hidden":n=e.tail;for(var a=null;n!==null;)n.alternate!==null&&(a=n),n=n.sibling;a===null?e.tail=null:a.sibling=null;break;case"collapsed":a=e.tail;for(var o=null;a!==null;)a.alternate!==null&&(o=a),a=a.sibling;o===null?n||e.tail===null?e.tail=null:e.tail.sibling=null:o.sibling=null}}function Je(e){var n=e.alternate!==null&&e.alternate.child===e.child,a=0,o=0;if(n)for(var u=e.child;u!==null;)a|=u.lanes|u.childLanes,o|=u.subtreeFlags&65011712,o|=u.flags&65011712,u.return=e,u=u.sibling;else for(u=e.child;u!==null;)a|=u.lanes|u.childLanes,o|=u.subtreeFlags,o|=u.flags,u.return=e,u=u.sibling;return e.subtreeFlags|=o,e.childLanes=a,n}function kb(e,n,a){var o=n.pendingProps;switch(Zr(n),n.tag){case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Je(n),null;case 1:return Je(n),null;case 3:return a=n.stateNode,o=null,e!==null&&(o=e.memoizedState.cache),n.memoizedState.cache!==o&&(n.flags|=2048),Cn(ot),Me(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),(e===null||e.child===null)&&(Ml(n)?Dn(n):e===null||e.memoizedState.isDehydrated&&(n.flags&256)===0||(n.flags|=1024,Jr())),Je(n),null;case 26:var u=n.type,p=n.memoizedState;return e===null?(Dn(n),p!==null?(Je(n),yh(n,p)):(Je(n),Fc(n,u,null,o,a))):p?p!==e.memoizedState?(Dn(n),Je(n),yh(n,p)):(Je(n),n.flags&=-16777217):(e=e.memoizedProps,e!==o&&Dn(n),Je(n),Fc(n,u,e,o,a)),null;case 27:if(Ta(n),a=Ae.current,u=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==o&&Dn(n);else{if(!o){if(n.stateNode===null)throw Error(i(166));return Je(n),null}e=oe.current,Ml(n)?Qf(n):(e=Mp(u,o,a),n.stateNode=e,Dn(n))}return Je(n),null;case 5:if(Ta(n),u=n.type,e!==null&&n.stateNode!=null)e.memoizedProps!==o&&Dn(n);else{if(!o){if(n.stateNode===null)throw Error(i(166));return Je(n),null}if(p=oe.current,Ml(n))Qf(n);else{var y=bo(Ae.current);switch(p){case 1:p=y.createElementNS("http://www.w3.org/2000/svg",u);break;case 2:p=y.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;default:switch(u){case"svg":p=y.createElementNS("http://www.w3.org/2000/svg",u);break;case"math":p=y.createElementNS("http://www.w3.org/1998/Math/MathML",u);break;case"script":p=y.createElement("div"),p.innerHTML="<script><\/script>",p=p.removeChild(p.firstChild);break;case"select":p=typeof o.is=="string"?y.createElement("select",{is:o.is}):y.createElement("select"),o.multiple?p.multiple=!0:o.size&&(p.size=o.size);break;default:p=typeof o.is=="string"?y.createElement(u,{is:o.is}):y.createElement(u)}}p[St]=n,p[Ot]=o;e:for(y=n.child;y!==null;){if(y.tag===5||y.tag===6)p.appendChild(y.stateNode);else if(y.tag!==4&&y.tag!==27&&y.child!==null){y.child.return=y,y=y.child;continue}if(y===n)break e;for(;y.sibling===null;){if(y.return===null||y.return===n)break e;y=y.return}y.sibling.return=y.return,y=y.sibling}n.stateNode=p;e:switch(Et(p,u,o),u){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break e;case"img":o=!0;break e;default:o=!1}o&&Dn(n)}}return Je(n),Fc(n,n.type,e===null?null:e.memoizedProps,n.pendingProps,a),null;case 6:if(e&&n.stateNode!=null)e.memoizedProps!==o&&Dn(n);else{if(typeof o!="string"&&n.stateNode===null)throw Error(i(166));if(e=Ae.current,Ml(n)){if(e=n.stateNode,a=n.memoizedProps,o=null,u=kt,u!==null)switch(u.tag){case 27:case 5:o=u.memoizedProps}e[St]=n,e=!!(e.nodeValue===a||o!==null&&o.suppressHydrationWarning===!0||mp(e.nodeValue,a)),e||ea(n,!0)}else e=bo(e).createTextNode(o),e[St]=n,n.stateNode=e}return Je(n),null;case 31:if(a=n.memoizedState,e===null||e.memoizedState!==null){if(o=Ml(n),a!==null){if(e===null){if(!o)throw Error(i(318));if(e=n.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(557));e[St]=n}else Ia(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Je(n),e=!1}else a=Jr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=a),e=!0;if(!e)return n.flags&256?(Gt(n),n):(Gt(n),null);if((n.flags&128)!==0)throw Error(i(558))}return Je(n),null;case 13:if(o=n.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(u=Ml(n),o!==null&&o.dehydrated!==null){if(e===null){if(!u)throw Error(i(318));if(u=n.memoizedState,u=u!==null?u.dehydrated:null,!u)throw Error(i(317));u[St]=n}else Ia(),(n.flags&128)===0&&(n.memoizedState=null),n.flags|=4;Je(n),u=!1}else u=Jr(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=u),u=!0;if(!u)return n.flags&256?(Gt(n),n):(Gt(n),null)}return Gt(n),(n.flags&128)!==0?(n.lanes=a,n):(a=o!==null,e=e!==null&&e.memoizedState!==null,a&&(o=n.child,u=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(u=o.alternate.memoizedState.cachePool.pool),p=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(p=o.memoizedState.cachePool.pool),p!==u&&(o.flags|=2048)),a!==e&&a&&(n.child.flags|=8192),ao(n,n.updateQueue),Je(n),null);case 4:return Me(),e===null&&cu(n.stateNode.containerInfo),Je(n),null;case 10:return Cn(n.type),Je(n),null;case 19:if(ee(at),o=n.memoizedState,o===null)return Je(n),null;if(u=(n.flags&128)!==0,p=o.rendering,p===null)if(u)Ci(o,!1);else{if(nt!==0||e!==null&&(e.flags&128)!==0)for(e=n.child;e!==null;){if(p=Ys(e),p!==null){for(n.flags|=128,Ci(o,!1),e=p.updateQueue,n.updateQueue=e,ao(n,e),n.subtreeFlags=0,e=a,a=n.child;a!==null;)Vf(a,e),a=a.sibling;return le(at,at.current&1|2),Be&&Nn(n,o.treeForkCount),n.child}e=e.sibling}o.tail!==null&&we()>ro&&(n.flags|=128,u=!0,Ci(o,!1),n.lanes=4194304)}else{if(!u)if(e=Ys(p),e!==null){if(n.flags|=128,u=!0,e=e.updateQueue,n.updateQueue=e,ao(n,e),Ci(o,!0),o.tail===null&&o.tailMode==="hidden"&&!p.alternate&&!Be)return Je(n),null}else 2*we()-o.renderingStartTime>ro&&a!==536870912&&(n.flags|=128,u=!0,Ci(o,!1),n.lanes=4194304);o.isBackwards?(p.sibling=n.child,n.child=p):(e=o.last,e!==null?e.sibling=p:n.child=p,o.last=p)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=we(),e.sibling=null,a=at.current,le(at,u?a&1|2:a&1),Be&&Nn(n,o.treeForkCount),e):(Je(n),null);case 22:case 23:return Gt(n),uc(),o=n.memoizedState!==null,e!==null?e.memoizedState!==null!==o&&(n.flags|=8192):o&&(n.flags|=8192),o?(a&536870912)!==0&&(n.flags&128)===0&&(Je(n),n.subtreeFlags&6&&(n.flags|=8192)):Je(n),a=n.updateQueue,a!==null&&ao(n,a.retryQueue),a=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),o=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(o=n.memoizedState.cachePool.pool),o!==a&&(n.flags|=2048),e!==null&&ee(Fa),null;case 24:return a=null,e!==null&&(a=e.memoizedState.cache),n.memoizedState.cache!==a&&(n.flags|=2048),Cn(ot),Je(n),null;case 25:return null;case 30:return null}throw Error(i(156,n.tag))}function jb(e,n){switch(Zr(n),n.tag){case 1:return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 3:return Cn(ot),Me(),e=n.flags,(e&65536)!==0&&(e&128)===0?(n.flags=e&-65537|128,n):null;case 26:case 27:case 5:return Ta(n),null;case 31:if(n.memoizedState!==null){if(Gt(n),n.alternate===null)throw Error(i(340));Ia()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 13:if(Gt(n),e=n.memoizedState,e!==null&&e.dehydrated!==null){if(n.alternate===null)throw Error(i(340));Ia()}return e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 19:return ee(at),null;case 4:return Me(),null;case 10:return Cn(n.type),null;case 22:case 23:return Gt(n),uc(),e!==null&&ee(Fa),e=n.flags,e&65536?(n.flags=e&-65537|128,n):null;case 24:return Cn(ot),null;case 25:return null;default:return null}}function vh(e,n){switch(Zr(n),n.tag){case 3:Cn(ot),Me();break;case 26:case 27:case 5:Ta(n);break;case 4:Me();break;case 31:n.memoizedState!==null&&Gt(n);break;case 13:Gt(n);break;case 19:ee(at);break;case 10:Cn(n.type);break;case 22:case 23:Gt(n),uc(),e!==null&&ee(Fa);break;case 24:Cn(ot)}}function wi(e,n){try{var a=n.updateQueue,o=a!==null?a.lastEffect:null;if(o!==null){var u=o.next;a=u;do{if((a.tag&e)===e){o=void 0;var p=a.create,y=a.inst;o=p(),y.destroy=o}a=a.next}while(a!==u)}}catch(j){Ye(n,n.return,j)}}function oa(e,n,a){try{var o=n.updateQueue,u=o!==null?o.lastEffect:null;if(u!==null){var p=u.next;o=p;do{if((o.tag&e)===e){var y=o.inst,j=y.destroy;if(j!==void 0){y.destroy=void 0,u=n;var w=a,$=j;try{$()}catch(Q){Ye(u,w,Q)}}}o=o.next}while(o!==p)}}catch(Q){Ye(n,n.return,Q)}}function bh(e){var n=e.updateQueue;if(n!==null){var a=e.stateNode;try{cm(n,a)}catch(o){Ye(e,e.return,o)}}}function xh(e,n,a){a.props=Xa(e.type,e.memoizedProps),a.state=e.memoizedState;try{a.componentWillUnmount()}catch(o){Ye(e,n,o)}}function Ti(e,n){try{var a=e.ref;if(a!==null){switch(e.tag){case 26:case 27:case 5:var o=e.stateNode;break;case 30:o=e.stateNode;break;default:o=e.stateNode}typeof a=="function"?e.refCleanup=a(o):a.current=o}}catch(u){Ye(e,n,u)}}function yn(e,n){var a=e.ref,o=e.refCleanup;if(a!==null)if(typeof o=="function")try{o()}catch(u){Ye(e,n,u)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof a=="function")try{a(null)}catch(u){Ye(e,n,u)}else a.current=null}function Sh(e){var n=e.type,a=e.memoizedProps,o=e.stateNode;try{e:switch(n){case"button":case"input":case"select":case"textarea":a.autoFocus&&o.focus();break e;case"img":a.src?o.src=a.src:a.srcSet&&(o.srcset=a.srcSet)}}catch(u){Ye(e,e.return,u)}}function $c(e,n,a){try{var o=e.stateNode;Vb(o,e.type,a,n),o[Ot]=n}catch(u){Ye(e,e.return,u)}}function kh(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&ha(e.type)||e.tag===4}function Gc(e){e:for(;;){for(;e.sibling===null;){if(e.return===null||kh(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&ha(e.type)||e.flags&2||e.child===null||e.tag===4)continue e;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Yc(e,n,a){var o=e.tag;if(o===5||o===6)e=e.stateNode,n?(a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a).insertBefore(e,n):(n=a.nodeType===9?a.body:a.nodeName==="HTML"?a.ownerDocument.body:a,n.appendChild(e),a=a._reactRootContainer,a!=null||n.onclick!==null||(n.onclick=jn));else if(o!==4&&(o===27&&ha(e.type)&&(a=e.stateNode,n=null),e=e.child,e!==null))for(Yc(e,n,a),e=e.sibling;e!==null;)Yc(e,n,a),e=e.sibling}function lo(e,n,a){var o=e.tag;if(o===5||o===6)e=e.stateNode,n?a.insertBefore(e,n):a.appendChild(e);else if(o!==4&&(o===27&&ha(e.type)&&(a=e.stateNode),e=e.child,e!==null))for(lo(e,n,a),e=e.sibling;e!==null;)lo(e,n,a),e=e.sibling}function jh(e){var n=e.stateNode,a=e.memoizedProps;try{for(var o=e.type,u=n.attributes;u.length;)n.removeAttributeNode(u[0]);Et(n,o,a),n[St]=e,n[Ot]=a}catch(p){Ye(e,e.return,p)}}var zn=!1,ut=!1,Vc=!1,Mh=typeof WeakSet=="function"?WeakSet:Set,xt=null;function Mb(e,n){if(e=e.containerInfo,fu=No,e=Rf(e),Ir(e)){if("selectionStart"in e)var a={start:e.selectionStart,end:e.selectionEnd};else e:{a=(a=e.ownerDocument)&&a.defaultView||window;var o=a.getSelection&&a.getSelection();if(o&&o.rangeCount!==0){a=o.anchorNode;var u=o.anchorOffset,p=o.focusNode;o=o.focusOffset;try{a.nodeType,p.nodeType}catch{a=null;break e}var y=0,j=-1,w=-1,$=0,Q=0,P=e,Y=null;t:for(;;){for(var X;P!==a||u!==0&&P.nodeType!==3||(j=y+u),P!==p||o!==0&&P.nodeType!==3||(w=y+o),P.nodeType===3&&(y+=P.nodeValue.length),(X=P.firstChild)!==null;)Y=P,P=X;for(;;){if(P===e)break t;if(Y===a&&++$===u&&(j=y),Y===p&&++Q===o&&(w=y),(X=P.nextSibling)!==null)break;P=Y,Y=P.parentNode}P=X}a=j===-1||w===-1?null:{start:j,end:w}}else a=null}a=a||{start:0,end:0}}else a=null;for(mu={focusedElem:e,selectionRange:a},No=!1,xt=n;xt!==null;)if(n=xt,e=n.child,(n.subtreeFlags&1028)!==0&&e!==null)e.return=n,xt=e;else for(;xt!==null;){switch(n=xt,p=n.alternate,e=n.flags,n.tag){case 0:if((e&4)!==0&&(e=n.updateQueue,e=e!==null?e.events:null,e!==null))for(a=0;a<e.length;a++)u=e[a],u.ref.impl=u.nextImpl;break;case 11:case 15:break;case 1:if((e&1024)!==0&&p!==null){e=void 0,a=n,u=p.memoizedProps,p=p.memoizedState,o=a.stateNode;try{var ce=Xa(a.type,u);e=o.getSnapshotBeforeUpdate(ce,p),o.__reactInternalSnapshotBeforeUpdate=e}catch(xe){Ye(a,a.return,xe)}}break;case 3:if((e&1024)!==0){if(e=n.stateNode.containerInfo,a=e.nodeType,a===9)gu(e);else if(a===1)switch(e.nodeName){case"HEAD":case"HTML":case"BODY":gu(e);break;default:e.textContent=""}}break;case 5:case 26:case 27:case 6:case 4:case 17:break;default:if((e&1024)!==0)throw Error(i(163))}if(e=n.sibling,e!==null){e.return=n.return,xt=e;break}xt=n.return}}function Eh(e,n,a){var o=a.flags;switch(a.tag){case 0:case 11:case 15:Bn(e,a),o&4&&wi(5,a);break;case 1:if(Bn(e,a),o&4)if(e=a.stateNode,n===null)try{e.componentDidMount()}catch(y){Ye(a,a.return,y)}else{var u=Xa(a.type,n.memoizedProps);n=n.memoizedState;try{e.componentDidUpdate(u,n,e.__reactInternalSnapshotBeforeUpdate)}catch(y){Ye(a,a.return,y)}}o&64&&bh(a),o&512&&Ti(a,a.return);break;case 3:if(Bn(e,a),o&64&&(e=a.updateQueue,e!==null)){if(n=null,a.child!==null)switch(a.child.tag){case 27:case 5:n=a.child.stateNode;break;case 1:n=a.child.stateNode}try{cm(e,n)}catch(y){Ye(a,a.return,y)}}break;case 27:n===null&&o&4&&jh(a);case 26:case 5:Bn(e,a),n===null&&o&4&&Sh(a),o&512&&Ti(a,a.return);break;case 12:Bn(e,a);break;case 31:Bn(e,a),o&4&&Ch(e,a);break;case 13:Bn(e,a),o&4&&wh(e,a),o&64&&(e=a.memoizedState,e!==null&&(e=e.dehydrated,e!==null&&(a=zb.bind(null,a),Pb(e,a))));break;case 22:if(o=a.memoizedState!==null||zn,!o){n=n!==null&&n.memoizedState!==null||ut,u=zn;var p=ut;zn=o,(ut=n)&&!p?Rn(e,a,(a.subtreeFlags&8772)!==0):Bn(e,a),zn=u,ut=p}break;case 30:break;default:Bn(e,a)}}function Nh(e){var n=e.alternate;n!==null&&(e.alternate=null,Nh(n)),e.child=null,e.deletions=null,e.sibling=null,e.tag===5&&(n=e.stateNode,n!==null&&Sr(n)),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}var et=null,zt=!1;function _n(e,n,a){for(a=a.child;a!==null;)Ah(e,n,a),a=a.sibling}function Ah(e,n,a){if(It&&typeof It.onCommitFiberUnmount=="function")try{It.onCommitFiberUnmount(ei,a)}catch{}switch(a.tag){case 26:ut||yn(a,n),_n(e,n,a),a.memoizedState?a.memoizedState.count--:a.stateNode&&(a=a.stateNode,a.parentNode.removeChild(a));break;case 27:ut||yn(a,n);var o=et,u=zt;ha(a.type)&&(et=a.stateNode,zt=!1),_n(e,n,a),Ui(a.stateNode),et=o,zt=u;break;case 5:ut||yn(a,n);case 6:if(o=et,u=zt,et=null,_n(e,n,a),et=o,zt=u,et!==null)if(zt)try{(et.nodeType===9?et.body:et.nodeName==="HTML"?et.ownerDocument.body:et).removeChild(a.stateNode)}catch(p){Ye(a,n,p)}else try{et.removeChild(a.stateNode)}catch(p){Ye(a,n,p)}break;case 18:et!==null&&(zt?(e=et,bp(e.nodeType===9?e.body:e.nodeName==="HTML"?e.ownerDocument.body:e,a.stateNode),Vl(e)):bp(et,a.stateNode));break;case 4:o=et,u=zt,et=a.stateNode.containerInfo,zt=!0,_n(e,n,a),et=o,zt=u;break;case 0:case 11:case 14:case 15:oa(2,a,n),ut||oa(4,a,n),_n(e,n,a);break;case 1:ut||(yn(a,n),o=a.stateNode,typeof o.componentWillUnmount=="function"&&xh(a,n,o)),_n(e,n,a);break;case 21:_n(e,n,a);break;case 22:ut=(o=ut)||a.memoizedState!==null,_n(e,n,a),ut=o;break;default:_n(e,n,a)}}function Ch(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null))){e=e.dehydrated;try{Vl(e)}catch(a){Ye(n,n.return,a)}}}function wh(e,n){if(n.memoizedState===null&&(e=n.alternate,e!==null&&(e=e.memoizedState,e!==null&&(e=e.dehydrated,e!==null))))try{Vl(e)}catch(a){Ye(n,n.return,a)}}function Eb(e){switch(e.tag){case 31:case 13:case 19:var n=e.stateNode;return n===null&&(n=e.stateNode=new Mh),n;case 22:return e=e.stateNode,n=e._retryCache,n===null&&(n=e._retryCache=new Mh),n;default:throw Error(i(435,e.tag))}}function io(e,n){var a=Eb(e);n.forEach(function(o){if(!a.has(o)){a.add(o);var u=_b.bind(null,e,o);o.then(u,u)}})}function _t(e,n){var a=n.deletions;if(a!==null)for(var o=0;o<a.length;o++){var u=a[o],p=e,y=n,j=y;e:for(;j!==null;){switch(j.tag){case 27:if(ha(j.type)){et=j.stateNode,zt=!1;break e}break;case 5:et=j.stateNode,zt=!1;break e;case 3:case 4:et=j.stateNode.containerInfo,zt=!0;break e}j=j.return}if(et===null)throw Error(i(160));Ah(p,y,u),et=null,zt=!1,p=u.alternate,p!==null&&(p.return=null),u.return=null}if(n.subtreeFlags&13886)for(n=n.child;n!==null;)Th(n,e),n=n.sibling}var dn=null;function Th(e,n){var a=e.alternate,o=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:_t(n,e),Bt(e),o&4&&(oa(3,e,e.return),wi(3,e),oa(5,e,e.return));break;case 1:_t(n,e),Bt(e),o&512&&(ut||a===null||yn(a,a.return)),o&64&&zn&&(e=e.updateQueue,e!==null&&(o=e.callbacks,o!==null&&(a=e.shared.hiddenCallbacks,e.shared.hiddenCallbacks=a===null?o:a.concat(o))));break;case 26:var u=dn;if(_t(n,e),Bt(e),o&512&&(ut||a===null||yn(a,a.return)),o&4){var p=a!==null?a.memoizedState:null;if(o=e.memoizedState,a===null)if(o===null)if(e.stateNode===null){e:{o=e.type,a=e.memoizedProps,u=u.ownerDocument||u;t:switch(o){case"title":p=u.getElementsByTagName("title")[0],(!p||p[ai]||p[St]||p.namespaceURI==="http://www.w3.org/2000/svg"||p.hasAttribute("itemprop"))&&(p=u.createElement(o),u.head.insertBefore(p,u.querySelector("head > title"))),Et(p,o,a),p[St]=e,bt(p),o=p;break e;case"link":var y=Tp("link","href",u).get(o+(a.href||""));if(y){for(var j=0;j<y.length;j++)if(p=y[j],p.getAttribute("href")===(a.href==null||a.href===""?null:a.href)&&p.getAttribute("rel")===(a.rel==null?null:a.rel)&&p.getAttribute("title")===(a.title==null?null:a.title)&&p.getAttribute("crossorigin")===(a.crossOrigin==null?null:a.crossOrigin)){y.splice(j,1);break t}}p=u.createElement(o),Et(p,o,a),u.head.appendChild(p);break;case"meta":if(y=Tp("meta","content",u).get(o+(a.content||""))){for(j=0;j<y.length;j++)if(p=y[j],p.getAttribute("content")===(a.content==null?null:""+a.content)&&p.getAttribute("name")===(a.name==null?null:a.name)&&p.getAttribute("property")===(a.property==null?null:a.property)&&p.getAttribute("http-equiv")===(a.httpEquiv==null?null:a.httpEquiv)&&p.getAttribute("charset")===(a.charSet==null?null:a.charSet)){y.splice(j,1);break t}}p=u.createElement(o),Et(p,o,a),u.head.appendChild(p);break;default:throw Error(i(468,o))}p[St]=e,bt(p),o=p}e.stateNode=o}else Op(u,e.type,e.stateNode);else e.stateNode=wp(u,o,e.memoizedProps);else p!==o?(p===null?a.stateNode!==null&&(a=a.stateNode,a.parentNode.removeChild(a)):p.count--,o===null?Op(u,e.type,e.stateNode):wp(u,o,e.memoizedProps)):o===null&&e.stateNode!==null&&$c(e,e.memoizedProps,a.memoizedProps)}break;case 27:_t(n,e),Bt(e),o&512&&(ut||a===null||yn(a,a.return)),a!==null&&o&4&&$c(e,e.memoizedProps,a.memoizedProps);break;case 5:if(_t(n,e),Bt(e),o&512&&(ut||a===null||yn(a,a.return)),e.flags&32){u=e.stateNode;try{hl(u,"")}catch(ce){Ye(e,e.return,ce)}}o&4&&e.stateNode!=null&&(u=e.memoizedProps,$c(e,u,a!==null?a.memoizedProps:u)),o&1024&&(Vc=!0);break;case 6:if(_t(n,e),Bt(e),o&4){if(e.stateNode===null)throw Error(i(162));o=e.memoizedProps,a=e.stateNode;try{a.nodeValue=o}catch(ce){Ye(e,e.return,ce)}}break;case 3:if(ko=null,u=dn,dn=xo(n.containerInfo),_t(n,e),dn=u,Bt(e),o&4&&a!==null&&a.memoizedState.isDehydrated)try{Vl(n.containerInfo)}catch(ce){Ye(e,e.return,ce)}Vc&&(Vc=!1,Oh(e));break;case 4:o=dn,dn=xo(e.stateNode.containerInfo),_t(n,e),Bt(e),dn=o;break;case 12:_t(n,e),Bt(e);break;case 31:_t(n,e),Bt(e),o&4&&(o=e.updateQueue,o!==null&&(e.updateQueue=null,io(e,o)));break;case 13:_t(n,e),Bt(e),e.child.flags&8192&&e.memoizedState!==null!=(a!==null&&a.memoizedState!==null)&&(oo=we()),o&4&&(o=e.updateQueue,o!==null&&(e.updateQueue=null,io(e,o)));break;case 22:u=e.memoizedState!==null;var w=a!==null&&a.memoizedState!==null,$=zn,Q=ut;if(zn=$||u,ut=Q||w,_t(n,e),ut=Q,zn=$,Bt(e),o&8192)e:for(n=e.stateNode,n._visibility=u?n._visibility&-2:n._visibility|1,u&&(a===null||w||zn||ut||Ka(e)),a=null,n=e;;){if(n.tag===5||n.tag===26){if(a===null){w=a=n;try{if(p=w.stateNode,u)y=p.style,typeof y.setProperty=="function"?y.setProperty("display","none","important"):y.display="none";else{j=w.stateNode;var P=w.memoizedProps.style,Y=P!=null&&P.hasOwnProperty("display")?P.display:null;j.style.display=Y==null||typeof Y=="boolean"?"":(""+Y).trim()}}catch(ce){Ye(w,w.return,ce)}}}else if(n.tag===6){if(a===null){w=n;try{w.stateNode.nodeValue=u?"":w.memoizedProps}catch(ce){Ye(w,w.return,ce)}}}else if(n.tag===18){if(a===null){w=n;try{var X=w.stateNode;u?xp(X,!0):xp(w.stateNode,!1)}catch(ce){Ye(w,w.return,ce)}}}else if((n.tag!==22&&n.tag!==23||n.memoizedState===null||n===e)&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break e;for(;n.sibling===null;){if(n.return===null||n.return===e)break e;a===n&&(a=null),n=n.return}a===n&&(a=null),n.sibling.return=n.return,n=n.sibling}o&4&&(o=e.updateQueue,o!==null&&(a=o.retryQueue,a!==null&&(o.retryQueue=null,io(e,a))));break;case 19:_t(n,e),Bt(e),o&4&&(o=e.updateQueue,o!==null&&(e.updateQueue=null,io(e,o)));break;case 30:break;case 21:break;default:_t(n,e),Bt(e)}}function Bt(e){var n=e.flags;if(n&2){try{for(var a,o=e.return;o!==null;){if(kh(o)){a=o;break}o=o.return}if(a==null)throw Error(i(160));switch(a.tag){case 27:var u=a.stateNode,p=Gc(e);lo(e,p,u);break;case 5:var y=a.stateNode;a.flags&32&&(hl(y,""),a.flags&=-33);var j=Gc(e);lo(e,j,y);break;case 3:case 4:var w=a.stateNode.containerInfo,$=Gc(e);Yc(e,$,w);break;default:throw Error(i(161))}}catch(Q){Ye(e,e.return,Q)}e.flags&=-3}n&4096&&(e.flags&=-4097)}function Oh(e){if(e.subtreeFlags&1024)for(e=e.child;e!==null;){var n=e;Oh(n),n.tag===5&&n.flags&1024&&n.stateNode.reset(),e=e.sibling}}function Bn(e,n){if(n.subtreeFlags&8772)for(n=n.child;n!==null;)Eh(e,n.alternate,n),n=n.sibling}function Ka(e){for(e=e.child;e!==null;){var n=e;switch(n.tag){case 0:case 11:case 14:case 15:oa(4,n,n.return),Ka(n);break;case 1:yn(n,n.return);var a=n.stateNode;typeof a.componentWillUnmount=="function"&&xh(n,n.return,a),Ka(n);break;case 27:Ui(n.stateNode);case 26:case 5:yn(n,n.return),Ka(n);break;case 22:n.memoizedState===null&&Ka(n);break;case 30:Ka(n);break;default:Ka(n)}e=e.sibling}}function Rn(e,n,a){for(a=a&&(n.subtreeFlags&8772)!==0,n=n.child;n!==null;){var o=n.alternate,u=e,p=n,y=p.flags;switch(p.tag){case 0:case 11:case 15:Rn(u,p,a),wi(4,p);break;case 1:if(Rn(u,p,a),o=p,u=o.stateNode,typeof u.componentDidMount=="function")try{u.componentDidMount()}catch($){Ye(o,o.return,$)}if(o=p,u=o.updateQueue,u!==null){var j=o.stateNode;try{var w=u.shared.hiddenCallbacks;if(w!==null)for(u.shared.hiddenCallbacks=null,u=0;u<w.length;u++)rm(w[u],j)}catch($){Ye(o,o.return,$)}}a&&y&64&&bh(p),Ti(p,p.return);break;case 27:jh(p);case 26:case 5:Rn(u,p,a),a&&o===null&&y&4&&Sh(p),Ti(p,p.return);break;case 12:Rn(u,p,a);break;case 31:Rn(u,p,a),a&&y&4&&Ch(u,p);break;case 13:Rn(u,p,a),a&&y&4&&wh(u,p);break;case 22:p.memoizedState===null&&Rn(u,p,a),Ti(p,p.return);break;case 30:break;default:Rn(u,p,a)}n=n.sibling}}function Xc(e,n){var a=null;e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(a=e.memoizedState.cachePool.pool),e=null,n.memoizedState!==null&&n.memoizedState.cachePool!==null&&(e=n.memoizedState.cachePool.pool),e!==a&&(e!=null&&e.refCount++,a!=null&&gi(a))}function Kc(e,n){e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&gi(e))}function fn(e,n,a,o){if(n.subtreeFlags&10256)for(n=n.child;n!==null;)Dh(e,n,a,o),n=n.sibling}function Dh(e,n,a,o){var u=n.flags;switch(n.tag){case 0:case 11:case 15:fn(e,n,a,o),u&2048&&wi(9,n);break;case 1:fn(e,n,a,o);break;case 3:fn(e,n,a,o),u&2048&&(e=null,n.alternate!==null&&(e=n.alternate.memoizedState.cache),n=n.memoizedState.cache,n!==e&&(n.refCount++,e!=null&&gi(e)));break;case 12:if(u&2048){fn(e,n,a,o),e=n.stateNode;try{var p=n.memoizedProps,y=p.id,j=p.onPostCommit;typeof j=="function"&&j(y,n.alternate===null?"mount":"update",e.passiveEffectDuration,-0)}catch(w){Ye(n,n.return,w)}}else fn(e,n,a,o);break;case 31:fn(e,n,a,o);break;case 13:fn(e,n,a,o);break;case 23:break;case 22:p=n.stateNode,y=n.alternate,n.memoizedState!==null?p._visibility&2?fn(e,n,a,o):Oi(e,n):p._visibility&2?fn(e,n,a,o):(p._visibility|=2,_l(e,n,a,o,(n.subtreeFlags&10256)!==0||!1)),u&2048&&Xc(y,n);break;case 24:fn(e,n,a,o),u&2048&&Kc(n.alternate,n);break;default:fn(e,n,a,o)}}function _l(e,n,a,o,u){for(u=u&&((n.subtreeFlags&10256)!==0||!1),n=n.child;n!==null;){var p=e,y=n,j=a,w=o,$=y.flags;switch(y.tag){case 0:case 11:case 15:_l(p,y,j,w,u),wi(8,y);break;case 23:break;case 22:var Q=y.stateNode;y.memoizedState!==null?Q._visibility&2?_l(p,y,j,w,u):Oi(p,y):(Q._visibility|=2,_l(p,y,j,w,u)),u&&$&2048&&Xc(y.alternate,y);break;case 24:_l(p,y,j,w,u),u&&$&2048&&Kc(y.alternate,y);break;default:_l(p,y,j,w,u)}n=n.sibling}}function Oi(e,n){if(n.subtreeFlags&10256)for(n=n.child;n!==null;){var a=e,o=n,u=o.flags;switch(o.tag){case 22:Oi(a,o),u&2048&&Xc(o.alternate,o);break;case 24:Oi(a,o),u&2048&&Kc(o.alternate,o);break;default:Oi(a,o)}n=n.sibling}}var Di=8192;function Bl(e,n,a){if(e.subtreeFlags&Di)for(e=e.child;e!==null;)zh(e,n,a),e=e.sibling}function zh(e,n,a){switch(e.tag){case 26:Bl(e,n,a),e.flags&Di&&e.memoizedState!==null&&dx(a,dn,e.memoizedState,e.memoizedProps);break;case 5:Bl(e,n,a);break;case 3:case 4:var o=dn;dn=xo(e.stateNode.containerInfo),Bl(e,n,a),dn=o;break;case 22:e.memoizedState===null&&(o=e.alternate,o!==null&&o.memoizedState!==null?(o=Di,Di=16777216,Bl(e,n,a),Di=o):Bl(e,n,a));break;default:Bl(e,n,a)}}function _h(e){var n=e.alternate;if(n!==null&&(e=n.child,e!==null)){n.child=null;do n=e.sibling,e.sibling=null,e=n;while(e!==null)}}function zi(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var a=0;a<n.length;a++){var o=n[a];xt=o,Rh(o,e)}_h(e)}if(e.subtreeFlags&10256)for(e=e.child;e!==null;)Bh(e),e=e.sibling}function Bh(e){switch(e.tag){case 0:case 11:case 15:zi(e),e.flags&2048&&oa(9,e,e.return);break;case 3:zi(e);break;case 12:zi(e);break;case 22:var n=e.stateNode;e.memoizedState!==null&&n._visibility&2&&(e.return===null||e.return.tag!==13)?(n._visibility&=-3,so(e)):zi(e);break;default:zi(e)}}function so(e){var n=e.deletions;if((e.flags&16)!==0){if(n!==null)for(var a=0;a<n.length;a++){var o=n[a];xt=o,Rh(o,e)}_h(e)}for(e=e.child;e!==null;){switch(n=e,n.tag){case 0:case 11:case 15:oa(8,n,n.return),so(n);break;case 22:a=n.stateNode,a._visibility&2&&(a._visibility&=-3,so(n));break;default:so(n)}e=e.sibling}}function Rh(e,n){for(;xt!==null;){var a=xt;switch(a.tag){case 0:case 11:case 15:oa(8,a,n);break;case 23:case 22:if(a.memoizedState!==null&&a.memoizedState.cachePool!==null){var o=a.memoizedState.cachePool.pool;o!=null&&o.refCount++}break;case 24:gi(a.memoizedState.cache)}if(o=a.child,o!==null)o.return=a,xt=o;else e:for(a=e;xt!==null;){o=xt;var u=o.sibling,p=o.return;if(Nh(o),o===a){xt=null;break e}if(u!==null){u.return=p,xt=u;break e}xt=p}}}var Nb={getCacheForType:function(e){var n=jt(ot),a=n.data.get(e);return a===void 0&&(a=e(),n.data.set(e,a)),a},cacheSignal:function(){return jt(ot).controller.signal}},Ab=typeof WeakMap=="function"?WeakMap:Map,He=0,qe=null,Te=null,De=0,Ge=0,Yt=null,ra=!1,Rl=!1,qc=!1,Ln=0,nt=0,ca=0,qa=0,Zc=0,Vt=0,Ll=0,_i=null,Rt=null,Qc=!1,oo=0,Lh=0,ro=1/0,co=null,ua=null,mt=0,da=null,Il=null,In=0,Jc=0,Wc=null,Ih=null,Bi=0,Pc=null;function Xt(){return(He&2)!==0&&De!==0?De&-De:V.T!==null?iu():Pd()}function Uh(){if(Vt===0)if((De&536870912)===0||Be){var e=ys;ys<<=1,(ys&3932160)===0&&(ys=262144),Vt=e}else Vt=536870912;return e=$t.current,e!==null&&(e.flags|=32),Vt}function Lt(e,n,a){(e===qe&&(Ge===2||Ge===9)||e.cancelPendingCommit!==null)&&(Ul(e,0),fa(e,De,Vt,!1)),ni(e,a),((He&2)===0||e!==qe)&&(e===qe&&((He&2)===0&&(qa|=a),nt===4&&fa(e,De,Vt,!1)),vn(e))}function Hh(e,n,a){if((He&6)!==0)throw Error(i(327));var o=!a&&(n&127)===0&&(n&e.expiredLanes)===0||ti(e,n),u=o?Tb(e,n):tu(e,n,!0),p=o;do{if(u===0){Rl&&!o&&fa(e,n,0,!1);break}else{if(a=e.current.alternate,p&&!Cb(a)){u=tu(e,n,!1),p=!1;continue}if(u===2){if(p=n,e.errorRecoveryDisabledLanes&p)var y=0;else y=e.pendingLanes&-536870913,y=y!==0?y:y&536870912?536870912:0;if(y!==0){n=y;e:{var j=e;u=_i;var w=j.current.memoizedState.isDehydrated;if(w&&(Ul(j,y).flags|=256),y=tu(j,y,!1),y!==2){if(qc&&!w){j.errorRecoveryDisabledLanes|=p,qa|=p,u=4;break e}p=Rt,Rt=u,p!==null&&(Rt===null?Rt=p:Rt.push.apply(Rt,p))}u=y}if(p=!1,u!==2)continue}}if(u===1){Ul(e,0),fa(e,n,0,!0);break}e:{switch(o=e,p=u,p){case 0:case 1:throw Error(i(345));case 4:if((n&4194048)!==n)break;case 6:fa(o,n,Vt,!ra);break e;case 2:Rt=null;break;case 3:case 5:break;default:throw Error(i(329))}if((n&62914560)===n&&(u=oo+300-we(),10<u)){if(fa(o,n,Vt,!ra),bs(o,0,!0)!==0)break e;In=n,o.timeoutHandle=yp(Fh.bind(null,o,a,Rt,co,Qc,n,Vt,qa,Ll,ra,p,"Throttled",-0,0),u);break e}Fh(o,a,Rt,co,Qc,n,Vt,qa,Ll,ra,p,null,-0,0)}}break}while(!0);vn(e)}function Fh(e,n,a,o,u,p,y,j,w,$,Q,P,Y,X){if(e.timeoutHandle=-1,P=n.subtreeFlags,P&8192||(P&16785408)===16785408){P={stylesheets:null,count:0,imgCount:0,imgBytes:0,suspenseyImages:[],waitingForImages:!0,waitingForViewTransition:!1,unsuspend:jn},zh(n,p,P);var ce=(p&62914560)===p?oo-we():(p&4194048)===p?Lh-we():0;if(ce=fx(P,ce),ce!==null){In=p,e.cancelPendingCommit=ce(Zh.bind(null,e,n,p,a,o,u,y,j,w,Q,P,null,Y,X)),fa(e,p,y,!$);return}}Zh(e,n,p,a,o,u,y,j,w)}function Cb(e){for(var n=e;;){var a=n.tag;if((a===0||a===11||a===15)&&n.flags&16384&&(a=n.updateQueue,a!==null&&(a=a.stores,a!==null)))for(var o=0;o<a.length;o++){var u=a[o],p=u.getSnapshot;u=u.value;try{if(!Ht(p(),u))return!1}catch{return!1}}if(a=n.child,n.subtreeFlags&16384&&a!==null)a.return=n,n=a;else{if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return!0;n=n.return}n.sibling.return=n.return,n=n.sibling}}return!0}function fa(e,n,a,o){n&=~Zc,n&=~qa,e.suspendedLanes|=n,e.pingedLanes&=~n,o&&(e.warmLanes|=n),o=e.expirationTimes;for(var u=n;0<u;){var p=31-Ut(u),y=1<<p;o[p]=-1,u&=~y}a!==0&&Qd(e,a,n)}function uo(){return(He&6)===0?(Ri(0),!1):!0}function eu(){if(Te!==null){if(Ge===0)var e=Te.return;else e=Te,An=Ua=null,gc(e),wl=null,vi=0,e=Te;for(;e!==null;)vh(e.alternate,e),e=e.return;Te=null}}function Ul(e,n){var a=e.timeoutHandle;a!==-1&&(e.timeoutHandle=-1,qb(a)),a=e.cancelPendingCommit,a!==null&&(e.cancelPendingCommit=null,a()),In=0,eu(),qe=e,Te=a=En(e.current,null),De=n,Ge=0,Yt=null,ra=!1,Rl=ti(e,n),qc=!1,Ll=Vt=Zc=qa=ca=nt=0,Rt=_i=null,Qc=!1,(n&8)!==0&&(n|=n&32);var o=e.entangledLanes;if(o!==0)for(e=e.entanglements,o&=n;0<o;){var u=31-Ut(o),p=1<<u;n|=e[u],o&=~p}return Ln=n,Os(),a}function $h(e,n){Ee=null,V.H=Ni,n===Cl||n===Us?(n=lm(),Ge=3):n===lc?(n=lm(),Ge=4):Ge=n===Dc?8:n!==null&&typeof n=="object"&&typeof n.then=="function"?6:1,Yt=n,Te===null&&(nt=1,Ps(e,Wt(n,e.current)))}function Gh(){var e=$t.current;return e===null?!0:(De&4194048)===De?nn===null:(De&62914560)===De||(De&536870912)!==0?e===nn:!1}function Yh(){var e=V.H;return V.H=Ni,e===null?Ni:e}function Vh(){var e=V.A;return V.A=Nb,e}function fo(){nt=4,ra||(De&4194048)!==De&&$t.current!==null||(Rl=!0),(ca&134217727)===0&&(qa&134217727)===0||qe===null||fa(qe,De,Vt,!1)}function tu(e,n,a){var o=He;He|=2;var u=Yh(),p=Vh();(qe!==e||De!==n)&&(co=null,Ul(e,n)),n=!1;var y=nt;e:do try{if(Ge!==0&&Te!==null){var j=Te,w=Yt;switch(Ge){case 8:eu(),y=6;break e;case 3:case 2:case 9:case 6:$t.current===null&&(n=!0);var $=Ge;if(Ge=0,Yt=null,Hl(e,j,w,$),a&&Rl){y=0;break e}break;default:$=Ge,Ge=0,Yt=null,Hl(e,j,w,$)}}wb(),y=nt;break}catch(Q){$h(e,Q)}while(!0);return n&&e.shellSuspendCounter++,An=Ua=null,He=o,V.H=u,V.A=p,Te===null&&(qe=null,De=0,Os()),y}function wb(){for(;Te!==null;)Xh(Te)}function Tb(e,n){var a=He;He|=2;var o=Yh(),u=Vh();qe!==e||De!==n?(co=null,ro=we()+500,Ul(e,n)):Rl=ti(e,n);e:do try{if(Ge!==0&&Te!==null){n=Te;var p=Yt;t:switch(Ge){case 1:Ge=0,Yt=null,Hl(e,n,p,1);break;case 2:case 9:if(nm(p)){Ge=0,Yt=null,Kh(n);break}n=function(){Ge!==2&&Ge!==9||qe!==e||(Ge=7),vn(e)},p.then(n,n);break e;case 3:Ge=7;break e;case 4:Ge=5;break e;case 7:nm(p)?(Ge=0,Yt=null,Kh(n)):(Ge=0,Yt=null,Hl(e,n,p,7));break;case 5:var y=null;switch(Te.tag){case 26:y=Te.memoizedState;case 5:case 27:var j=Te;if(y?Dp(y):j.stateNode.complete){Ge=0,Yt=null;var w=j.sibling;if(w!==null)Te=w;else{var $=j.return;$!==null?(Te=$,mo($)):Te=null}break t}}Ge=0,Yt=null,Hl(e,n,p,5);break;case 6:Ge=0,Yt=null,Hl(e,n,p,6);break;case 8:eu(),nt=6;break e;default:throw Error(i(462))}}Ob();break}catch(Q){$h(e,Q)}while(!0);return An=Ua=null,V.H=o,V.A=u,He=a,Te!==null?0:(qe=null,De=0,Os(),nt)}function Ob(){for(;Te!==null&&!ge();)Xh(Te)}function Xh(e){var n=gh(e.alternate,e,Ln);e.memoizedProps=e.pendingProps,n===null?mo(e):Te=n}function Kh(e){var n=e,a=n.alternate;switch(n.tag){case 15:case 0:n=uh(a,n,n.pendingProps,n.type,void 0,De);break;case 11:n=uh(a,n,n.pendingProps,n.type.render,n.ref,De);break;case 5:gc(n);default:vh(a,n),n=Te=Vf(n,Ln),n=gh(a,n,Ln)}e.memoizedProps=e.pendingProps,n===null?mo(e):Te=n}function Hl(e,n,a,o){An=Ua=null,gc(n),wl=null,vi=0;var u=n.return;try{if(bb(e,u,n,a,De)){nt=1,Ps(e,Wt(a,e.current)),Te=null;return}}catch(p){if(u!==null)throw Te=u,p;nt=1,Ps(e,Wt(a,e.current)),Te=null;return}n.flags&32768?(Be||o===1?e=!0:Rl||(De&536870912)!==0?e=!1:(ra=e=!0,(o===2||o===9||o===3||o===6)&&(o=$t.current,o!==null&&o.tag===13&&(o.flags|=16384))),qh(n,e)):mo(n)}function mo(e){var n=e;do{if((n.flags&32768)!==0){qh(n,ra);return}e=n.return;var a=kb(n.alternate,n,Ln);if(a!==null){Te=a;return}if(n=n.sibling,n!==null){Te=n;return}Te=n=e}while(n!==null);nt===0&&(nt=5)}function qh(e,n){do{var a=jb(e.alternate,e);if(a!==null){a.flags&=32767,Te=a;return}if(a=e.return,a!==null&&(a.flags|=32768,a.subtreeFlags=0,a.deletions=null),!n&&(e=e.sibling,e!==null)){Te=e;return}Te=e=a}while(e!==null);nt=6,Te=null}function Zh(e,n,a,o,u,p,y,j,w){e.cancelPendingCommit=null;do ho();while(mt!==0);if((He&6)!==0)throw Error(i(327));if(n!==null){if(n===e.current)throw Error(i(177));if(p=n.lanes|n.childLanes,p|=Gr,uv(e,a,p,y,j,w),e===qe&&(Te=qe=null,De=0),Il=n,da=e,In=a,Jc=p,Wc=u,Ih=o,(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?(e.callbackNode=null,e.callbackPriority=0,Bb(ps,function(){return ep(),null})):(e.callbackNode=null,e.callbackPriority=0),o=(n.flags&13878)!==0,(n.subtreeFlags&13878)!==0||o){o=V.T,V.T=null,u=ne.p,ne.p=2,y=He,He|=4;try{Mb(e,n,a)}finally{He=y,ne.p=u,V.T=o}}mt=1,Qh(),Jh(),Wh()}}function Qh(){if(mt===1){mt=0;var e=da,n=Il,a=(n.flags&13878)!==0;if((n.subtreeFlags&13878)!==0||a){a=V.T,V.T=null;var o=ne.p;ne.p=2;var u=He;He|=4;try{Th(n,e);var p=mu,y=Rf(e.containerInfo),j=p.focusedElem,w=p.selectionRange;if(y!==j&&j&&j.ownerDocument&&Bf(j.ownerDocument.documentElement,j)){if(w!==null&&Ir(j)){var $=w.start,Q=w.end;if(Q===void 0&&(Q=$),"selectionStart"in j)j.selectionStart=$,j.selectionEnd=Math.min(Q,j.value.length);else{var P=j.ownerDocument||document,Y=P&&P.defaultView||window;if(Y.getSelection){var X=Y.getSelection(),ce=j.textContent.length,xe=Math.min(w.start,ce),Ke=w.end===void 0?xe:Math.min(w.end,ce);!X.extend&&xe>Ke&&(y=Ke,Ke=xe,xe=y);var I=_f(j,xe),B=_f(j,Ke);if(I&&B&&(X.rangeCount!==1||X.anchorNode!==I.node||X.anchorOffset!==I.offset||X.focusNode!==B.node||X.focusOffset!==B.offset)){var F=P.createRange();F.setStart(I.node,I.offset),X.removeAllRanges(),xe>Ke?(X.addRange(F),X.extend(B.node,B.offset)):(F.setEnd(B.node,B.offset),X.addRange(F))}}}}for(P=[],X=j;X=X.parentNode;)X.nodeType===1&&P.push({element:X,left:X.scrollLeft,top:X.scrollTop});for(typeof j.focus=="function"&&j.focus(),j=0;j<P.length;j++){var W=P[j];W.element.scrollLeft=W.left,W.element.scrollTop=W.top}}No=!!fu,mu=fu=null}finally{He=u,ne.p=o,V.T=a}}e.current=n,mt=2}}function Jh(){if(mt===2){mt=0;var e=da,n=Il,a=(n.flags&8772)!==0;if((n.subtreeFlags&8772)!==0||a){a=V.T,V.T=null;var o=ne.p;ne.p=2;var u=He;He|=4;try{Eh(e,n.alternate,n)}finally{He=u,ne.p=o,V.T=a}}mt=3}}function Wh(){if(mt===4||mt===3){mt=0,Ce();var e=da,n=Il,a=In,o=Ih;(n.subtreeFlags&10256)!==0||(n.flags&10256)!==0?mt=5:(mt=0,Il=da=null,Ph(e,e.pendingLanes));var u=e.pendingLanes;if(u===0&&(ua=null),br(a),n=n.stateNode,It&&typeof It.onCommitFiberRoot=="function")try{It.onCommitFiberRoot(ei,n,void 0,(n.current.flags&128)===128)}catch{}if(o!==null){n=V.T,u=ne.p,ne.p=2,V.T=null;try{for(var p=e.onRecoverableError,y=0;y<o.length;y++){var j=o[y];p(j.value,{componentStack:j.stack})}}finally{V.T=n,ne.p=u}}(In&3)!==0&&ho(),vn(e),u=e.pendingLanes,(a&261930)!==0&&(u&42)!==0?e===Pc?Bi++:(Bi=0,Pc=e):Bi=0,Ri(0)}}function Ph(e,n){(e.pooledCacheLanes&=n)===0&&(n=e.pooledCache,n!=null&&(e.pooledCache=null,gi(n)))}function ho(){return Qh(),Jh(),Wh(),ep()}function ep(){if(mt!==5)return!1;var e=da,n=Jc;Jc=0;var a=br(In),o=V.T,u=ne.p;try{ne.p=32>a?32:a,V.T=null,a=Wc,Wc=null;var p=da,y=In;if(mt=0,Il=da=null,In=0,(He&6)!==0)throw Error(i(331));var j=He;if(He|=4,Bh(p.current),Dh(p,p.current,y,a),He=j,Ri(0,!1),It&&typeof It.onPostCommitFiberRoot=="function")try{It.onPostCommitFiberRoot(ei,p)}catch{}return!0}finally{ne.p=u,V.T=o,Ph(e,n)}}function tp(e,n,a){n=Wt(a,n),n=Oc(e.stateNode,n,2),e=la(e,n,2),e!==null&&(ni(e,2),vn(e))}function Ye(e,n,a){if(e.tag===3)tp(e,e,a);else for(;n!==null;){if(n.tag===3){tp(n,e,a);break}else if(n.tag===1){var o=n.stateNode;if(typeof n.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(ua===null||!ua.has(o))){e=Wt(a,e),a=nh(2),o=la(n,a,2),o!==null&&(ah(a,o,n,e),ni(o,2),vn(o));break}}n=n.return}}function nu(e,n,a){var o=e.pingCache;if(o===null){o=e.pingCache=new Ab;var u=new Set;o.set(n,u)}else u=o.get(n),u===void 0&&(u=new Set,o.set(n,u));u.has(a)||(qc=!0,u.add(a),e=Db.bind(null,e,n,a),n.then(e,e))}function Db(e,n,a){var o=e.pingCache;o!==null&&o.delete(n),e.pingedLanes|=e.suspendedLanes&a,e.warmLanes&=~a,qe===e&&(De&a)===a&&(nt===4||nt===3&&(De&62914560)===De&&300>we()-oo?(He&2)===0&&Ul(e,0):Zc|=a,Ll===De&&(Ll=0)),vn(e)}function np(e,n){n===0&&(n=Zd()),e=Ra(e,n),e!==null&&(ni(e,n),vn(e))}function zb(e){var n=e.memoizedState,a=0;n!==null&&(a=n.retryLane),np(e,a)}function _b(e,n){var a=0;switch(e.tag){case 31:case 13:var o=e.stateNode,u=e.memoizedState;u!==null&&(a=u.retryLane);break;case 19:o=e.stateNode;break;case 22:o=e.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(n),np(e,a)}function Bb(e,n){return de(e,n)}var po=null,Fl=null,au=!1,go=!1,lu=!1,ma=0;function vn(e){e!==Fl&&e.next===null&&(Fl===null?po=Fl=e:Fl=Fl.next=e),go=!0,au||(au=!0,Lb())}function Ri(e,n){if(!lu&&go){lu=!0;do for(var a=!1,o=po;o!==null;){if(e!==0){var u=o.pendingLanes;if(u===0)var p=0;else{var y=o.suspendedLanes,j=o.pingedLanes;p=(1<<31-Ut(42|e)+1)-1,p&=u&~(y&~j),p=p&201326741?p&201326741|1:p?p|2:0}p!==0&&(a=!0,sp(o,p))}else p=De,p=bs(o,o===qe?p:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(p&3)===0||ti(o,p)||(a=!0,sp(o,p));o=o.next}while(a);lu=!1}}function Rb(){ap()}function ap(){go=au=!1;var e=0;ma!==0&&Kb()&&(e=ma);for(var n=we(),a=null,o=po;o!==null;){var u=o.next,p=lp(o,n);p===0?(o.next=null,a===null?po=u:a.next=u,u===null&&(Fl=a)):(a=o,(e!==0||(p&3)!==0)&&(go=!0)),o=u}mt!==0&&mt!==5||Ri(e),ma!==0&&(ma=0)}function lp(e,n){for(var a=e.suspendedLanes,o=e.pingedLanes,u=e.expirationTimes,p=e.pendingLanes&-62914561;0<p;){var y=31-Ut(p),j=1<<y,w=u[y];w===-1?((j&a)===0||(j&o)!==0)&&(u[y]=cv(j,n)):w<=n&&(e.expiredLanes|=j),p&=~j}if(n=qe,a=De,a=bs(e,e===n?a:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),o=e.callbackNode,a===0||e===n&&(Ge===2||Ge===9)||e.cancelPendingCommit!==null)return o!==null&&o!==null&&re(o),e.callbackNode=null,e.callbackPriority=0;if((a&3)===0||ti(e,a)){if(n=a&-a,n===e.callbackPriority)return n;switch(o!==null&&re(o),br(a)){case 2:case 8:a=Kd;break;case 32:a=ps;break;case 268435456:a=qd;break;default:a=ps}return o=ip.bind(null,e),a=de(a,o),e.callbackPriority=n,e.callbackNode=a,n}return o!==null&&o!==null&&re(o),e.callbackPriority=2,e.callbackNode=null,2}function ip(e,n){if(mt!==0&&mt!==5)return e.callbackNode=null,e.callbackPriority=0,null;var a=e.callbackNode;if(ho()&&e.callbackNode!==a)return null;var o=De;return o=bs(e,e===qe?o:0,e.cancelPendingCommit!==null||e.timeoutHandle!==-1),o===0?null:(Hh(e,o,n),lp(e,we()),e.callbackNode!=null&&e.callbackNode===a?ip.bind(null,e):null)}function sp(e,n){if(ho())return null;Hh(e,n,!0)}function Lb(){Zb(function(){(He&6)!==0?de(Pl,Rb):ap()})}function iu(){if(ma===0){var e=Nl;e===0&&(e=gs,gs<<=1,(gs&261888)===0&&(gs=256)),ma=e}return ma}function op(e){return e==null||typeof e=="symbol"||typeof e=="boolean"?null:typeof e=="function"?e:js(""+e)}function rp(e,n){var a=n.ownerDocument.createElement("input");return a.name=n.name,a.value=n.value,e.id&&a.setAttribute("form",e.id),n.parentNode.insertBefore(a,n),e=new FormData(e),a.parentNode.removeChild(a),e}function Ib(e,n,a,o,u){if(n==="submit"&&a&&a.stateNode===u){var p=op((u[Ot]||null).action),y=o.submitter;y&&(n=(n=y[Ot]||null)?op(n.formAction):y.getAttribute("formAction"),n!==null&&(p=n,y=null));var j=new As("action","action",null,o,u);e.push({event:j,listeners:[{instance:null,listener:function(){if(o.defaultPrevented){if(ma!==0){var w=y?rp(u,y):new FormData(u);Ec(a,{pending:!0,data:w,method:u.method,action:p},null,w)}}else typeof p=="function"&&(j.preventDefault(),w=y?rp(u,y):new FormData(u),Ec(a,{pending:!0,data:w,method:u.method,action:p},p,w))},currentTarget:u}]})}}for(var su=0;su<$r.length;su++){var ou=$r[su],Ub=ou.toLowerCase(),Hb=ou[0].toUpperCase()+ou.slice(1);un(Ub,"on"+Hb)}un(Uf,"onAnimationEnd"),un(Hf,"onAnimationIteration"),un(Ff,"onAnimationStart"),un("dblclick","onDoubleClick"),un("focusin","onFocus"),un("focusout","onBlur"),un(nb,"onTransitionRun"),un(ab,"onTransitionStart"),un(lb,"onTransitionCancel"),un($f,"onTransitionEnd"),fl("onMouseEnter",["mouseout","mouseover"]),fl("onMouseLeave",["mouseout","mouseover"]),fl("onPointerEnter",["pointerout","pointerover"]),fl("onPointerLeave",["pointerout","pointerover"]),Da("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),Da("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),Da("onBeforeInput",["compositionend","keypress","textInput","paste"]),Da("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),Da("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),Da("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Li="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fb=new Set("beforetoggle cancel close invalid load scroll scrollend toggle".split(" ").concat(Li));function cp(e,n){n=(n&4)!==0;for(var a=0;a<e.length;a++){var o=e[a],u=o.event;o=o.listeners;e:{var p=void 0;if(n)for(var y=o.length-1;0<=y;y--){var j=o[y],w=j.instance,$=j.currentTarget;if(j=j.listener,w!==p&&u.isPropagationStopped())break e;p=j,u.currentTarget=$;try{p(u)}catch(Q){Ts(Q)}u.currentTarget=null,p=w}else for(y=0;y<o.length;y++){if(j=o[y],w=j.instance,$=j.currentTarget,j=j.listener,w!==p&&u.isPropagationStopped())break e;p=j,u.currentTarget=$;try{p(u)}catch(Q){Ts(Q)}u.currentTarget=null,p=w}}}}function Oe(e,n){var a=n[xr];a===void 0&&(a=n[xr]=new Set);var o=e+"__bubble";a.has(o)||(up(n,e,2,!1),a.add(o))}function ru(e,n,a){var o=0;n&&(o|=4),up(a,e,o,n)}var yo="_reactListening"+Math.random().toString(36).slice(2);function cu(e){if(!e[yo]){e[yo]=!0,nf.forEach(function(a){a!=="selectionchange"&&(Fb.has(a)||ru(a,!1,e),ru(a,!0,e))});var n=e.nodeType===9?e:e.ownerDocument;n===null||n[yo]||(n[yo]=!0,ru("selectionchange",!1,n))}}function up(e,n,a,o){switch(Up(n)){case 2:var u=px;break;case 8:u=gx;break;default:u=Mu}a=u.bind(null,n,a,e),u=void 0,!wr||n!=="touchstart"&&n!=="touchmove"&&n!=="wheel"||(u=!0),o?u!==void 0?e.addEventListener(n,a,{capture:!0,passive:u}):e.addEventListener(n,a,!0):u!==void 0?e.addEventListener(n,a,{passive:u}):e.addEventListener(n,a,!1)}function uu(e,n,a,o,u){var p=o;if((n&1)===0&&(n&2)===0&&o!==null)e:for(;;){if(o===null)return;var y=o.tag;if(y===3||y===4){var j=o.stateNode.containerInfo;if(j===u)break;if(y===4)for(y=o.return;y!==null;){var w=y.tag;if((w===3||w===4)&&y.stateNode.containerInfo===u)return;y=y.return}for(;j!==null;){if(y=cl(j),y===null)return;if(w=y.tag,w===5||w===6||w===26||w===27){o=p=y;continue e}j=j.parentNode}}o=o.return}pf(function(){var $=p,Q=Ar(a),P=[];e:{var Y=Gf.get(e);if(Y!==void 0){var X=As,ce=e;switch(e){case"keypress":if(Es(a)===0)break e;case"keydown":case"keyup":X=_v;break;case"focusin":ce="focus",X=zr;break;case"focusout":ce="blur",X=zr;break;case"beforeblur":case"afterblur":X=zr;break;case"click":if(a.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":X=vf;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":X=kv;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":X=Lv;break;case Uf:case Hf:case Ff:X=Ev;break;case $f:X=Uv;break;case"scroll":case"scrollend":X=xv;break;case"wheel":X=Fv;break;case"copy":case"cut":case"paste":X=Av;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":X=xf;break;case"toggle":case"beforetoggle":X=Gv}var xe=(n&4)!==0,Ke=!xe&&(e==="scroll"||e==="scrollend"),I=xe?Y!==null?Y+"Capture":null:Y;xe=[];for(var B=$,F;B!==null;){var W=B;if(F=W.stateNode,W=W.tag,W!==5&&W!==26&&W!==27||F===null||I===null||(W=ii(B,I),W!=null&&xe.push(Ii(B,W,F))),Ke)break;B=B.return}0<xe.length&&(Y=new X(Y,ce,null,a,Q),P.push({event:Y,listeners:xe}))}}if((n&7)===0){e:{if(Y=e==="mouseover"||e==="pointerover",X=e==="mouseout"||e==="pointerout",Y&&a!==Nr&&(ce=a.relatedTarget||a.fromElement)&&(cl(ce)||ce[rl]))break e;if((X||Y)&&(Y=Q.window===Q?Q:(Y=Q.ownerDocument)?Y.defaultView||Y.parentWindow:window,X?(ce=a.relatedTarget||a.toElement,X=$,ce=ce?cl(ce):null,ce!==null&&(Ke=c(ce),xe=ce.tag,ce!==Ke||xe!==5&&xe!==27&&xe!==6)&&(ce=null)):(X=null,ce=$),X!==ce)){if(xe=vf,W="onMouseLeave",I="onMouseEnter",B="mouse",(e==="pointerout"||e==="pointerover")&&(xe=xf,W="onPointerLeave",I="onPointerEnter",B="pointer"),Ke=X==null?Y:li(X),F=ce==null?Y:li(ce),Y=new xe(W,B+"leave",X,a,Q),Y.target=Ke,Y.relatedTarget=F,W=null,cl(Q)===$&&(xe=new xe(I,B+"enter",ce,a,Q),xe.target=F,xe.relatedTarget=Ke,W=xe),Ke=W,X&&ce)t:{for(xe=$b,I=X,B=ce,F=0,W=I;W;W=xe(W))F++;W=0;for(var be=B;be;be=xe(be))W++;for(;0<F-W;)I=xe(I),F--;for(;0<W-F;)B=xe(B),W--;for(;F--;){if(I===B||B!==null&&I===B.alternate){xe=I;break t}I=xe(I),B=xe(B)}xe=null}else xe=null;X!==null&&dp(P,Y,X,xe,!1),ce!==null&&Ke!==null&&dp(P,Ke,ce,xe,!0)}}e:{if(Y=$?li($):window,X=Y.nodeName&&Y.nodeName.toLowerCase(),X==="select"||X==="input"&&Y.type==="file")var Ie=Cf;else if(Nf(Y))if(wf)Ie=Pv;else{Ie=Jv;var fe=Qv}else X=Y.nodeName,!X||X.toLowerCase()!=="input"||Y.type!=="checkbox"&&Y.type!=="radio"?$&&Er($.elementType)&&(Ie=Cf):Ie=Wv;if(Ie&&(Ie=Ie(e,$))){Af(P,Ie,a,Q);break e}fe&&fe(e,Y,$),e==="focusout"&&$&&Y.type==="number"&&$.memoizedProps.value!=null&&Mr(Y,"number",Y.value)}switch(fe=$?li($):window,e){case"focusin":(Nf(fe)||fe.contentEditable==="true")&&(vl=fe,Ur=$,mi=null);break;case"focusout":mi=Ur=vl=null;break;case"mousedown":Hr=!0;break;case"contextmenu":case"mouseup":case"dragend":Hr=!1,Lf(P,a,Q);break;case"selectionchange":if(tb)break;case"keydown":case"keyup":Lf(P,a,Q)}var Ne;if(Br)e:{switch(e){case"compositionstart":var ze="onCompositionStart";break e;case"compositionend":ze="onCompositionEnd";break e;case"compositionupdate":ze="onCompositionUpdate";break e}ze=void 0}else yl?Mf(e,a)&&(ze="onCompositionEnd"):e==="keydown"&&a.keyCode===229&&(ze="onCompositionStart");ze&&(Sf&&a.locale!=="ko"&&(yl||ze!=="onCompositionStart"?ze==="onCompositionEnd"&&yl&&(Ne=gf()):(Jn=Q,Tr="value"in Jn?Jn.value:Jn.textContent,yl=!0)),fe=vo($,ze),0<fe.length&&(ze=new bf(ze,e,null,a,Q),P.push({event:ze,listeners:fe}),Ne?ze.data=Ne:(Ne=Ef(a),Ne!==null&&(ze.data=Ne)))),(Ne=Vv?Xv(e,a):Kv(e,a))&&(ze=vo($,"onBeforeInput"),0<ze.length&&(fe=new bf("onBeforeInput","beforeinput",null,a,Q),P.push({event:fe,listeners:ze}),fe.data=Ne)),Ib(P,e,$,a,Q)}cp(P,n)})}function Ii(e,n,a){return{instance:e,listener:n,currentTarget:a}}function vo(e,n){for(var a=n+"Capture",o=[];e!==null;){var u=e,p=u.stateNode;if(u=u.tag,u!==5&&u!==26&&u!==27||p===null||(u=ii(e,a),u!=null&&o.unshift(Ii(e,u,p)),u=ii(e,n),u!=null&&o.push(Ii(e,u,p))),e.tag===3)return o;e=e.return}return[]}function $b(e){if(e===null)return null;do e=e.return;while(e&&e.tag!==5&&e.tag!==27);return e||null}function dp(e,n,a,o,u){for(var p=n._reactName,y=[];a!==null&&a!==o;){var j=a,w=j.alternate,$=j.stateNode;if(j=j.tag,w!==null&&w===o)break;j!==5&&j!==26&&j!==27||$===null||(w=$,u?($=ii(a,p),$!=null&&y.unshift(Ii(a,$,w))):u||($=ii(a,p),$!=null&&y.push(Ii(a,$,w)))),a=a.return}y.length!==0&&e.push({event:n,listeners:y})}var Gb=/\r\n?/g,Yb=/\u0000|\uFFFD/g;function fp(e){return(typeof e=="string"?e:""+e).replace(Gb,`
49
- `).replace(Yb,"")}function mp(e,n){return n=fp(n),fp(e)===n}function Xe(e,n,a,o,u,p){switch(a){case"children":typeof o=="string"?n==="body"||n==="textarea"&&o===""||hl(e,o):(typeof o=="number"||typeof o=="bigint")&&n!=="body"&&hl(e,""+o);break;case"className":Ss(e,"class",o);break;case"tabIndex":Ss(e,"tabindex",o);break;case"dir":case"role":case"viewBox":case"width":case"height":Ss(e,a,o);break;case"style":mf(e,o,p);break;case"data":if(n!=="object"){Ss(e,"data",o);break}case"src":case"href":if(o===""&&(n!=="a"||a!=="href")){e.removeAttribute(a);break}if(o==null||typeof o=="function"||typeof o=="symbol"||typeof o=="boolean"){e.removeAttribute(a);break}o=js(""+o),e.setAttribute(a,o);break;case"action":case"formAction":if(typeof o=="function"){e.setAttribute(a,"javascript:throw new Error('A React form was unexpectedly submitted. If you called form.submit() manually, consider using form.requestSubmit() instead. If you\\'re trying to use event.stopPropagation() in a submit event handler, consider also calling event.preventDefault().')");break}else typeof p=="function"&&(a==="formAction"?(n!=="input"&&Xe(e,n,"name",u.name,u,null),Xe(e,n,"formEncType",u.formEncType,u,null),Xe(e,n,"formMethod",u.formMethod,u,null),Xe(e,n,"formTarget",u.formTarget,u,null)):(Xe(e,n,"encType",u.encType,u,null),Xe(e,n,"method",u.method,u,null),Xe(e,n,"target",u.target,u,null)));if(o==null||typeof o=="symbol"||typeof o=="boolean"){e.removeAttribute(a);break}o=js(""+o),e.setAttribute(a,o);break;case"onClick":o!=null&&(e.onclick=jn);break;case"onScroll":o!=null&&Oe("scroll",e);break;case"onScrollEnd":o!=null&&Oe("scrollend",e);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(i(61));if(a=o.__html,a!=null){if(u.children!=null)throw Error(i(60));e.innerHTML=a}}break;case"multiple":e.multiple=o&&typeof o!="function"&&typeof o!="symbol";break;case"muted":e.muted=o&&typeof o!="function"&&typeof o!="symbol";break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"defaultValue":case"defaultChecked":case"innerHTML":case"ref":break;case"autoFocus":break;case"xlinkHref":if(o==null||typeof o=="function"||typeof o=="boolean"||typeof o=="symbol"){e.removeAttribute("xlink:href");break}a=js(""+o),e.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",a);break;case"contentEditable":case"spellCheck":case"draggable":case"value":case"autoReverse":case"externalResourcesRequired":case"focusable":case"preserveAlpha":o!=null&&typeof o!="function"&&typeof o!="symbol"?e.setAttribute(a,""+o):e.removeAttribute(a);break;case"inert":case"allowFullScreen":case"async":case"autoPlay":case"controls":case"default":case"defer":case"disabled":case"disablePictureInPicture":case"disableRemotePlayback":case"formNoValidate":case"hidden":case"loop":case"noModule":case"noValidate":case"open":case"playsInline":case"readOnly":case"required":case"reversed":case"scoped":case"seamless":case"itemScope":o&&typeof o!="function"&&typeof o!="symbol"?e.setAttribute(a,""):e.removeAttribute(a);break;case"capture":case"download":o===!0?e.setAttribute(a,""):o!==!1&&o!=null&&typeof o!="function"&&typeof o!="symbol"?e.setAttribute(a,o):e.removeAttribute(a);break;case"cols":case"rows":case"size":case"span":o!=null&&typeof o!="function"&&typeof o!="symbol"&&!isNaN(o)&&1<=o?e.setAttribute(a,o):e.removeAttribute(a);break;case"rowSpan":case"start":o==null||typeof o=="function"||typeof o=="symbol"||isNaN(o)?e.removeAttribute(a):e.setAttribute(a,o);break;case"popover":Oe("beforetoggle",e),Oe("toggle",e),xs(e,"popover",o);break;case"xlinkActuate":kn(e,"http://www.w3.org/1999/xlink","xlink:actuate",o);break;case"xlinkArcrole":kn(e,"http://www.w3.org/1999/xlink","xlink:arcrole",o);break;case"xlinkRole":kn(e,"http://www.w3.org/1999/xlink","xlink:role",o);break;case"xlinkShow":kn(e,"http://www.w3.org/1999/xlink","xlink:show",o);break;case"xlinkTitle":kn(e,"http://www.w3.org/1999/xlink","xlink:title",o);break;case"xlinkType":kn(e,"http://www.w3.org/1999/xlink","xlink:type",o);break;case"xmlBase":kn(e,"http://www.w3.org/XML/1998/namespace","xml:base",o);break;case"xmlLang":kn(e,"http://www.w3.org/XML/1998/namespace","xml:lang",o);break;case"xmlSpace":kn(e,"http://www.w3.org/XML/1998/namespace","xml:space",o);break;case"is":xs(e,"is",o);break;case"innerText":case"textContent":break;default:(!(2<a.length)||a[0]!=="o"&&a[0]!=="O"||a[1]!=="n"&&a[1]!=="N")&&(a=vv.get(a)||a,xs(e,a,o))}}function du(e,n,a,o,u,p){switch(a){case"style":mf(e,o,p);break;case"dangerouslySetInnerHTML":if(o!=null){if(typeof o!="object"||!("__html"in o))throw Error(i(61));if(a=o.__html,a!=null){if(u.children!=null)throw Error(i(60));e.innerHTML=a}}break;case"children":typeof o=="string"?hl(e,o):(typeof o=="number"||typeof o=="bigint")&&hl(e,""+o);break;case"onScroll":o!=null&&Oe("scroll",e);break;case"onScrollEnd":o!=null&&Oe("scrollend",e);break;case"onClick":o!=null&&(e.onclick=jn);break;case"suppressContentEditableWarning":case"suppressHydrationWarning":case"innerHTML":case"ref":break;case"innerText":case"textContent":break;default:if(!af.hasOwnProperty(a))e:{if(a[0]==="o"&&a[1]==="n"&&(u=a.endsWith("Capture"),n=a.slice(2,u?a.length-7:void 0),p=e[Ot]||null,p=p!=null?p[a]:null,typeof p=="function"&&e.removeEventListener(n,p,u),typeof o=="function")){typeof p!="function"&&p!==null&&(a in e?e[a]=null:e.hasAttribute(a)&&e.removeAttribute(a)),e.addEventListener(n,o,u);break e}a in e?e[a]=o:o===!0?e.setAttribute(a,""):xs(e,a,o)}}}function Et(e,n,a){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"img":Oe("error",e),Oe("load",e);var o=!1,u=!1,p;for(p in a)if(a.hasOwnProperty(p)){var y=a[p];if(y!=null)switch(p){case"src":o=!0;break;case"srcSet":u=!0;break;case"children":case"dangerouslySetInnerHTML":throw Error(i(137,n));default:Xe(e,n,p,y,a,null)}}u&&Xe(e,n,"srcSet",a.srcSet,a,null),o&&Xe(e,n,"src",a.src,a,null);return;case"input":Oe("invalid",e);var j=p=y=u=null,w=null,$=null;for(o in a)if(a.hasOwnProperty(o)){var Q=a[o];if(Q!=null)switch(o){case"name":u=Q;break;case"type":y=Q;break;case"checked":w=Q;break;case"defaultChecked":$=Q;break;case"value":p=Q;break;case"defaultValue":j=Q;break;case"children":case"dangerouslySetInnerHTML":if(Q!=null)throw Error(i(137,n));break;default:Xe(e,n,o,Q,a,null)}}cf(e,p,j,w,$,y,u,!1);return;case"select":Oe("invalid",e),o=y=p=null;for(u in a)if(a.hasOwnProperty(u)&&(j=a[u],j!=null))switch(u){case"value":p=j;break;case"defaultValue":y=j;break;case"multiple":o=j;default:Xe(e,n,u,j,a,null)}n=p,a=y,e.multiple=!!o,n!=null?ml(e,!!o,n,!1):a!=null&&ml(e,!!o,a,!0);return;case"textarea":Oe("invalid",e),p=u=o=null;for(y in a)if(a.hasOwnProperty(y)&&(j=a[y],j!=null))switch(y){case"value":o=j;break;case"defaultValue":u=j;break;case"children":p=j;break;case"dangerouslySetInnerHTML":if(j!=null)throw Error(i(91));break;default:Xe(e,n,y,j,a,null)}df(e,o,u,p);return;case"option":for(w in a)if(a.hasOwnProperty(w)&&(o=a[w],o!=null))switch(w){case"selected":e.selected=o&&typeof o!="function"&&typeof o!="symbol";break;default:Xe(e,n,w,o,a,null)}return;case"dialog":Oe("beforetoggle",e),Oe("toggle",e),Oe("cancel",e),Oe("close",e);break;case"iframe":case"object":Oe("load",e);break;case"video":case"audio":for(o=0;o<Li.length;o++)Oe(Li[o],e);break;case"image":Oe("error",e),Oe("load",e);break;case"details":Oe("toggle",e);break;case"embed":case"source":case"link":Oe("error",e),Oe("load",e);case"area":case"base":case"br":case"col":case"hr":case"keygen":case"meta":case"param":case"track":case"wbr":case"menuitem":for($ in a)if(a.hasOwnProperty($)&&(o=a[$],o!=null))switch($){case"children":case"dangerouslySetInnerHTML":throw Error(i(137,n));default:Xe(e,n,$,o,a,null)}return;default:if(Er(n)){for(Q in a)a.hasOwnProperty(Q)&&(o=a[Q],o!==void 0&&du(e,n,Q,o,a,void 0));return}}for(j in a)a.hasOwnProperty(j)&&(o=a[j],o!=null&&Xe(e,n,j,o,a,null))}function Vb(e,n,a,o){switch(n){case"div":case"span":case"svg":case"path":case"a":case"g":case"p":case"li":break;case"input":var u=null,p=null,y=null,j=null,w=null,$=null,Q=null;for(X in a){var P=a[X];if(a.hasOwnProperty(X)&&P!=null)switch(X){case"checked":break;case"value":break;case"defaultValue":w=P;default:o.hasOwnProperty(X)||Xe(e,n,X,null,o,P)}}for(var Y in o){var X=o[Y];if(P=a[Y],o.hasOwnProperty(Y)&&(X!=null||P!=null))switch(Y){case"type":p=X;break;case"name":u=X;break;case"checked":$=X;break;case"defaultChecked":Q=X;break;case"value":y=X;break;case"defaultValue":j=X;break;case"children":case"dangerouslySetInnerHTML":if(X!=null)throw Error(i(137,n));break;default:X!==P&&Xe(e,n,Y,X,o,P)}}jr(e,y,j,w,$,Q,p,u);return;case"select":X=y=j=Y=null;for(p in a)if(w=a[p],a.hasOwnProperty(p)&&w!=null)switch(p){case"value":break;case"multiple":X=w;default:o.hasOwnProperty(p)||Xe(e,n,p,null,o,w)}for(u in o)if(p=o[u],w=a[u],o.hasOwnProperty(u)&&(p!=null||w!=null))switch(u){case"value":Y=p;break;case"defaultValue":j=p;break;case"multiple":y=p;default:p!==w&&Xe(e,n,u,p,o,w)}n=j,a=y,o=X,Y!=null?ml(e,!!a,Y,!1):!!o!=!!a&&(n!=null?ml(e,!!a,n,!0):ml(e,!!a,a?[]:"",!1));return;case"textarea":X=Y=null;for(j in a)if(u=a[j],a.hasOwnProperty(j)&&u!=null&&!o.hasOwnProperty(j))switch(j){case"value":break;case"children":break;default:Xe(e,n,j,null,o,u)}for(y in o)if(u=o[y],p=a[y],o.hasOwnProperty(y)&&(u!=null||p!=null))switch(y){case"value":Y=u;break;case"defaultValue":X=u;break;case"children":break;case"dangerouslySetInnerHTML":if(u!=null)throw Error(i(91));break;default:u!==p&&Xe(e,n,y,u,o,p)}uf(e,Y,X);return;case"option":for(var ce in a)if(Y=a[ce],a.hasOwnProperty(ce)&&Y!=null&&!o.hasOwnProperty(ce))switch(ce){case"selected":e.selected=!1;break;default:Xe(e,n,ce,null,o,Y)}for(w in o)if(Y=o[w],X=a[w],o.hasOwnProperty(w)&&Y!==X&&(Y!=null||X!=null))switch(w){case"selected":e.selected=Y&&typeof Y!="function"&&typeof Y!="symbol";break;default:Xe(e,n,w,Y,o,X)}return;case"img":case"link":case"area":case"base":case"br":case"col":case"embed":case"hr":case"keygen":case"meta":case"param":case"source":case"track":case"wbr":case"menuitem":for(var xe in a)Y=a[xe],a.hasOwnProperty(xe)&&Y!=null&&!o.hasOwnProperty(xe)&&Xe(e,n,xe,null,o,Y);for($ in o)if(Y=o[$],X=a[$],o.hasOwnProperty($)&&Y!==X&&(Y!=null||X!=null))switch($){case"children":case"dangerouslySetInnerHTML":if(Y!=null)throw Error(i(137,n));break;default:Xe(e,n,$,Y,o,X)}return;default:if(Er(n)){for(var Ke in a)Y=a[Ke],a.hasOwnProperty(Ke)&&Y!==void 0&&!o.hasOwnProperty(Ke)&&du(e,n,Ke,void 0,o,Y);for(Q in o)Y=o[Q],X=a[Q],!o.hasOwnProperty(Q)||Y===X||Y===void 0&&X===void 0||du(e,n,Q,Y,o,X);return}}for(var I in a)Y=a[I],a.hasOwnProperty(I)&&Y!=null&&!o.hasOwnProperty(I)&&Xe(e,n,I,null,o,Y);for(P in o)Y=o[P],X=a[P],!o.hasOwnProperty(P)||Y===X||Y==null&&X==null||Xe(e,n,P,Y,o,X)}function hp(e){switch(e){case"css":case"script":case"font":case"img":case"image":case"input":case"link":return!0;default:return!1}}function Xb(){if(typeof performance.getEntriesByType=="function"){for(var e=0,n=0,a=performance.getEntriesByType("resource"),o=0;o<a.length;o++){var u=a[o],p=u.transferSize,y=u.initiatorType,j=u.duration;if(p&&j&&hp(y)){for(y=0,j=u.responseEnd,o+=1;o<a.length;o++){var w=a[o],$=w.startTime;if($>j)break;var Q=w.transferSize,P=w.initiatorType;Q&&hp(P)&&(w=w.responseEnd,y+=Q*(w<j?1:(j-$)/(w-$)))}if(--o,n+=8*(p+y)/(u.duration/1e3),e++,10<e)break}}if(0<e)return n/e/1e6}return navigator.connection&&(e=navigator.connection.downlink,typeof e=="number")?e:5}var fu=null,mu=null;function bo(e){return e.nodeType===9?e:e.ownerDocument}function pp(e){switch(e){case"http://www.w3.org/2000/svg":return 1;case"http://www.w3.org/1998/Math/MathML":return 2;default:return 0}}function gp(e,n){if(e===0)switch(n){case"svg":return 1;case"math":return 2;default:return 0}return e===1&&n==="foreignObject"?0:e}function hu(e,n){return e==="textarea"||e==="noscript"||typeof n.children=="string"||typeof n.children=="number"||typeof n.children=="bigint"||typeof n.dangerouslySetInnerHTML=="object"&&n.dangerouslySetInnerHTML!==null&&n.dangerouslySetInnerHTML.__html!=null}var pu=null;function Kb(){var e=window.event;return e&&e.type==="popstate"?e===pu?!1:(pu=e,!0):(pu=null,!1)}var yp=typeof setTimeout=="function"?setTimeout:void 0,qb=typeof clearTimeout=="function"?clearTimeout:void 0,vp=typeof Promise=="function"?Promise:void 0,Zb=typeof queueMicrotask=="function"?queueMicrotask:typeof vp<"u"?function(e){return vp.resolve(null).then(e).catch(Qb)}:yp;function Qb(e){setTimeout(function(){throw e})}function ha(e){return e==="head"}function bp(e,n){var a=n,o=0;do{var u=a.nextSibling;if(e.removeChild(a),u&&u.nodeType===8)if(a=u.data,a==="/$"||a==="/&"){if(o===0){e.removeChild(u),Vl(n);return}o--}else if(a==="$"||a==="$?"||a==="$~"||a==="$!"||a==="&")o++;else if(a==="html")Ui(e.ownerDocument.documentElement);else if(a==="head"){a=e.ownerDocument.head,Ui(a);for(var p=a.firstChild;p;){var y=p.nextSibling,j=p.nodeName;p[ai]||j==="SCRIPT"||j==="STYLE"||j==="LINK"&&p.rel.toLowerCase()==="stylesheet"||a.removeChild(p),p=y}}else a==="body"&&Ui(e.ownerDocument.body);a=u}while(a);Vl(n)}function xp(e,n){var a=e;e=0;do{var o=a.nextSibling;if(a.nodeType===1?n?(a._stashedDisplay=a.style.display,a.style.display="none"):(a.style.display=a._stashedDisplay||"",a.getAttribute("style")===""&&a.removeAttribute("style")):a.nodeType===3&&(n?(a._stashedText=a.nodeValue,a.nodeValue=""):a.nodeValue=a._stashedText||""),o&&o.nodeType===8)if(a=o.data,a==="/$"){if(e===0)break;e--}else a!=="$"&&a!=="$?"&&a!=="$~"&&a!=="$!"||e++;a=o}while(a)}function gu(e){var n=e.firstChild;for(n&&n.nodeType===10&&(n=n.nextSibling);n;){var a=n;switch(n=n.nextSibling,a.nodeName){case"HTML":case"HEAD":case"BODY":gu(a),Sr(a);continue;case"SCRIPT":case"STYLE":continue;case"LINK":if(a.rel.toLowerCase()==="stylesheet")continue}e.removeChild(a)}}function Jb(e,n,a,o){for(;e.nodeType===1;){var u=a;if(e.nodeName.toLowerCase()!==n.toLowerCase()){if(!o&&(e.nodeName!=="INPUT"||e.type!=="hidden"))break}else if(o){if(!e[ai])switch(n){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if(p=e.getAttribute("rel"),p==="stylesheet"&&e.hasAttribute("data-precedence"))break;if(p!==u.rel||e.getAttribute("href")!==(u.href==null||u.href===""?null:u.href)||e.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin)||e.getAttribute("title")!==(u.title==null?null:u.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(p=e.getAttribute("src"),(p!==(u.src==null?null:u.src)||e.getAttribute("type")!==(u.type==null?null:u.type)||e.getAttribute("crossorigin")!==(u.crossOrigin==null?null:u.crossOrigin))&&p&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else if(n==="input"&&e.type==="hidden"){var p=u.name==null?null:""+u.name;if(u.type==="hidden"&&e.getAttribute("name")===p)return e}else return e;if(e=an(e.nextSibling),e===null)break}return null}function Wb(e,n,a){if(n==="")return null;for(;e.nodeType!==3;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!a||(e=an(e.nextSibling),e===null))return null;return e}function Sp(e,n){for(;e.nodeType!==8;)if((e.nodeType!==1||e.nodeName!=="INPUT"||e.type!=="hidden")&&!n||(e=an(e.nextSibling),e===null))return null;return e}function yu(e){return e.data==="$?"||e.data==="$~"}function vu(e){return e.data==="$!"||e.data==="$?"&&e.ownerDocument.readyState!=="loading"}function Pb(e,n){var a=e.ownerDocument;if(e.data==="$~")e._reactRetry=n;else if(e.data!=="$?"||a.readyState!=="loading")n();else{var o=function(){n(),a.removeEventListener("DOMContentLoaded",o)};a.addEventListener("DOMContentLoaded",o),e._reactRetry=o}}function an(e){for(;e!=null;e=e.nextSibling){var n=e.nodeType;if(n===1||n===3)break;if(n===8){if(n=e.data,n==="$"||n==="$!"||n==="$?"||n==="$~"||n==="&"||n==="F!"||n==="F")break;if(n==="/$"||n==="/&")return null}}return e}var bu=null;function kp(e){e=e.nextSibling;for(var n=0;e;){if(e.nodeType===8){var a=e.data;if(a==="/$"||a==="/&"){if(n===0)return an(e.nextSibling);n--}else a!=="$"&&a!=="$!"&&a!=="$?"&&a!=="$~"&&a!=="&"||n++}e=e.nextSibling}return null}function jp(e){e=e.previousSibling;for(var n=0;e;){if(e.nodeType===8){var a=e.data;if(a==="$"||a==="$!"||a==="$?"||a==="$~"||a==="&"){if(n===0)return e;n--}else a!=="/$"&&a!=="/&"||n++}e=e.previousSibling}return null}function Mp(e,n,a){switch(n=bo(a),e){case"html":if(e=n.documentElement,!e)throw Error(i(452));return e;case"head":if(e=n.head,!e)throw Error(i(453));return e;case"body":if(e=n.body,!e)throw Error(i(454));return e;default:throw Error(i(451))}}function Ui(e){for(var n=e.attributes;n.length;)e.removeAttributeNode(n[0]);Sr(e)}var ln=new Map,Ep=new Set;function xo(e){return typeof e.getRootNode=="function"?e.getRootNode():e.nodeType===9?e:e.ownerDocument}var Un=ne.d;ne.d={f:ex,r:tx,D:nx,C:ax,L:lx,m:ix,X:ox,S:sx,M:rx};function ex(){var e=Un.f(),n=uo();return e||n}function tx(e){var n=ul(e);n!==null&&n.tag===5&&n.type==="form"?$m(n):Un.r(e)}var $l=typeof document>"u"?null:document;function Np(e,n,a){var o=$l;if(o&&typeof n=="string"&&n){var u=Qt(n);u='link[rel="'+e+'"][href="'+u+'"]',typeof a=="string"&&(u+='[crossorigin="'+a+'"]'),Ep.has(u)||(Ep.add(u),e={rel:e,crossOrigin:a,href:n},o.querySelector(u)===null&&(n=o.createElement("link"),Et(n,"link",e),bt(n),o.head.appendChild(n)))}}function nx(e){Un.D(e),Np("dns-prefetch",e,null)}function ax(e,n){Un.C(e,n),Np("preconnect",e,n)}function lx(e,n,a){Un.L(e,n,a);var o=$l;if(o&&e&&n){var u='link[rel="preload"][as="'+Qt(n)+'"]';n==="image"&&a&&a.imageSrcSet?(u+='[imagesrcset="'+Qt(a.imageSrcSet)+'"]',typeof a.imageSizes=="string"&&(u+='[imagesizes="'+Qt(a.imageSizes)+'"]')):u+='[href="'+Qt(e)+'"]';var p=u;switch(n){case"style":p=Gl(e);break;case"script":p=Yl(e)}ln.has(p)||(e=x({rel:"preload",href:n==="image"&&a&&a.imageSrcSet?void 0:e,as:n},a),ln.set(p,e),o.querySelector(u)!==null||n==="style"&&o.querySelector(Hi(p))||n==="script"&&o.querySelector(Fi(p))||(n=o.createElement("link"),Et(n,"link",e),bt(n),o.head.appendChild(n)))}}function ix(e,n){Un.m(e,n);var a=$l;if(a&&e){var o=n&&typeof n.as=="string"?n.as:"script",u='link[rel="modulepreload"][as="'+Qt(o)+'"][href="'+Qt(e)+'"]',p=u;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":p=Yl(e)}if(!ln.has(p)&&(e=x({rel:"modulepreload",href:e},n),ln.set(p,e),a.querySelector(u)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(a.querySelector(Fi(p)))return}o=a.createElement("link"),Et(o,"link",e),bt(o),a.head.appendChild(o)}}}function sx(e,n,a){Un.S(e,n,a);var o=$l;if(o&&e){var u=dl(o).hoistableStyles,p=Gl(e);n=n||"default";var y=u.get(p);if(!y){var j={loading:0,preload:null};if(y=o.querySelector(Hi(p)))j.loading=5;else{e=x({rel:"stylesheet",href:e,"data-precedence":n},a),(a=ln.get(p))&&xu(e,a);var w=y=o.createElement("link");bt(w),Et(w,"link",e),w._p=new Promise(function($,Q){w.onload=$,w.onerror=Q}),w.addEventListener("load",function(){j.loading|=1}),w.addEventListener("error",function(){j.loading|=2}),j.loading|=4,So(y,n,o)}y={type:"stylesheet",instance:y,count:1,state:j},u.set(p,y)}}}function ox(e,n){Un.X(e,n);var a=$l;if(a&&e){var o=dl(a).hoistableScripts,u=Yl(e),p=o.get(u);p||(p=a.querySelector(Fi(u)),p||(e=x({src:e,async:!0},n),(n=ln.get(u))&&Su(e,n),p=a.createElement("script"),bt(p),Et(p,"link",e),a.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},o.set(u,p))}}function rx(e,n){Un.M(e,n);var a=$l;if(a&&e){var o=dl(a).hoistableScripts,u=Yl(e),p=o.get(u);p||(p=a.querySelector(Fi(u)),p||(e=x({src:e,async:!0,type:"module"},n),(n=ln.get(u))&&Su(e,n),p=a.createElement("script"),bt(p),Et(p,"link",e),a.head.appendChild(p)),p={type:"script",instance:p,count:1,state:null},o.set(u,p))}}function Ap(e,n,a,o){var u=(u=Ae.current)?xo(u):null;if(!u)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return typeof a.precedence=="string"&&typeof a.href=="string"?(n=Gl(a.href),a=dl(u).hoistableStyles,o=a.get(n),o||(o={type:"style",instance:null,count:0,state:null},a.set(n,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(a.rel==="stylesheet"&&typeof a.href=="string"&&typeof a.precedence=="string"){e=Gl(a.href);var p=dl(u).hoistableStyles,y=p.get(e);if(y||(u=u.ownerDocument||u,y={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},p.set(e,y),(p=u.querySelector(Hi(e)))&&!p._p&&(y.instance=p,y.state.loading=5),ln.has(e)||(a={rel:"preload",as:"style",href:a.href,crossOrigin:a.crossOrigin,integrity:a.integrity,media:a.media,hrefLang:a.hrefLang,referrerPolicy:a.referrerPolicy},ln.set(e,a),p||cx(u,e,a,y.state))),n&&o===null)throw Error(i(528,""));return y}if(n&&o!==null)throw Error(i(529,""));return null;case"script":return n=a.async,a=a.src,typeof a=="string"&&n&&typeof n!="function"&&typeof n!="symbol"?(n=Yl(a),a=dl(u).hoistableScripts,o=a.get(n),o||(o={type:"script",instance:null,count:0,state:null},a.set(n,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function Gl(e){return'href="'+Qt(e)+'"'}function Hi(e){return'link[rel="stylesheet"]['+e+"]"}function Cp(e){return x({},e,{"data-precedence":e.precedence,precedence:null})}function cx(e,n,a,o){e.querySelector('link[rel="preload"][as="style"]['+n+"]")?o.loading=1:(n=e.createElement("link"),o.preload=n,n.addEventListener("load",function(){return o.loading|=1}),n.addEventListener("error",function(){return o.loading|=2}),Et(n,"link",a),bt(n),e.head.appendChild(n))}function Yl(e){return'[src="'+Qt(e)+'"]'}function Fi(e){return"script[async]"+e}function wp(e,n,a){if(n.count++,n.instance===null)switch(n.type){case"style":var o=e.querySelector('style[data-href~="'+Qt(a.href)+'"]');if(o)return n.instance=o,bt(o),o;var u=x({},a,{"data-href":a.href,"data-precedence":a.precedence,href:null,precedence:null});return o=(e.ownerDocument||e).createElement("style"),bt(o),Et(o,"style",u),So(o,a.precedence,e),n.instance=o;case"stylesheet":u=Gl(a.href);var p=e.querySelector(Hi(u));if(p)return n.state.loading|=4,n.instance=p,bt(p),p;o=Cp(a),(u=ln.get(u))&&xu(o,u),p=(e.ownerDocument||e).createElement("link"),bt(p);var y=p;return y._p=new Promise(function(j,w){y.onload=j,y.onerror=w}),Et(p,"link",o),n.state.loading|=4,So(p,a.precedence,e),n.instance=p;case"script":return p=Yl(a.src),(u=e.querySelector(Fi(p)))?(n.instance=u,bt(u),u):(o=a,(u=ln.get(p))&&(o=x({},a),Su(o,u)),e=e.ownerDocument||e,u=e.createElement("script"),bt(u),Et(u,"link",o),e.head.appendChild(u),n.instance=u);case"void":return null;default:throw Error(i(443,n.type))}else n.type==="stylesheet"&&(n.state.loading&4)===0&&(o=n.instance,n.state.loading|=4,So(o,a.precedence,e));return n.instance}function So(e,n,a){for(var o=a.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),u=o.length?o[o.length-1]:null,p=u,y=0;y<o.length;y++){var j=o[y];if(j.dataset.precedence===n)p=j;else if(p!==u)break}p?p.parentNode.insertBefore(e,p.nextSibling):(n=a.nodeType===9?a.head:a,n.insertBefore(e,n.firstChild))}function xu(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.title==null&&(e.title=n.title)}function Su(e,n){e.crossOrigin==null&&(e.crossOrigin=n.crossOrigin),e.referrerPolicy==null&&(e.referrerPolicy=n.referrerPolicy),e.integrity==null&&(e.integrity=n.integrity)}var ko=null;function Tp(e,n,a){if(ko===null){var o=new Map,u=ko=new Map;u.set(a,o)}else u=ko,o=u.get(a),o||(o=new Map,u.set(a,o));if(o.has(e))return o;for(o.set(e,null),a=a.getElementsByTagName(e),u=0;u<a.length;u++){var p=a[u];if(!(p[ai]||p[St]||e==="link"&&p.getAttribute("rel")==="stylesheet")&&p.namespaceURI!=="http://www.w3.org/2000/svg"){var y=p.getAttribute(n)||"";y=e+y;var j=o.get(y);j?j.push(p):o.set(y,[p])}}return o}function Op(e,n,a){e=e.ownerDocument||e,e.head.insertBefore(a,n==="title"?e.querySelector("head > title"):null)}function ux(e,n,a){if(a===1||n.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof n.precedence!="string"||typeof n.href!="string"||n.href==="")break;return!0;case"link":if(typeof n.rel!="string"||typeof n.href!="string"||n.href===""||n.onLoad||n.onError)break;switch(n.rel){case"stylesheet":return e=n.disabled,typeof n.precedence=="string"&&e==null;default:return!0}case"script":if(n.async&&typeof n.async!="function"&&typeof n.async!="symbol"&&!n.onLoad&&!n.onError&&n.src&&typeof n.src=="string")return!0}return!1}function Dp(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function dx(e,n,a,o){if(a.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(a.state.loading&4)===0){if(a.instance===null){var u=Gl(o.href),p=n.querySelector(Hi(u));if(p){n=p._p,n!==null&&typeof n=="object"&&typeof n.then=="function"&&(e.count++,e=jo.bind(e),n.then(e,e)),a.state.loading|=4,a.instance=p,bt(p);return}p=n.ownerDocument||n,o=Cp(o),(u=ln.get(u))&&xu(o,u),p=p.createElement("link"),bt(p);var y=p;y._p=new Promise(function(j,w){y.onload=j,y.onerror=w}),Et(p,"link",o),a.instance=p}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(a,n),(n=a.state.preload)&&(a.state.loading&3)===0&&(e.count++,a=jo.bind(e),n.addEventListener("load",a),n.addEventListener("error",a))}}var ku=0;function fx(e,n){return e.stylesheets&&e.count===0&&Eo(e,e.stylesheets),0<e.count||0<e.imgCount?function(a){var o=setTimeout(function(){if(e.stylesheets&&Eo(e,e.stylesheets),e.unsuspend){var p=e.unsuspend;e.unsuspend=null,p()}},6e4+n);0<e.imgBytes&&ku===0&&(ku=62500*Xb());var u=setTimeout(function(){if(e.waitingForImages=!1,e.count===0&&(e.stylesheets&&Eo(e,e.stylesheets),e.unsuspend)){var p=e.unsuspend;e.unsuspend=null,p()}},(e.imgBytes>ku?50:800)+n);return e.unsuspend=a,function(){e.unsuspend=null,clearTimeout(o),clearTimeout(u)}}:null}function jo(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Eo(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Mo=null;function Eo(e,n){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Mo=new Map,n.forEach(mx,e),Mo=null,jo.call(e))}function mx(e,n){if(!(n.state.loading&4)){var a=Mo.get(e);if(a)var o=a.get(null);else{a=new Map,Mo.set(e,a);for(var u=e.querySelectorAll("link[data-precedence],style[data-precedence]"),p=0;p<u.length;p++){var y=u[p];(y.nodeName==="LINK"||y.getAttribute("media")!=="not all")&&(a.set(y.dataset.precedence,y),o=y)}o&&a.set(null,o)}u=n.instance,y=u.getAttribute("data-precedence"),p=a.get(y)||o,p===o&&a.set(null,u),a.set(y,u),this.count++,o=jo.bind(this),u.addEventListener("load",o),u.addEventListener("error",o),p?p.parentNode.insertBefore(u,p.nextSibling):(e=e.nodeType===9?e.head:e,e.insertBefore(u,e.firstChild)),n.state.loading|=4}}var $i={$$typeof:C,Provider:null,Consumer:null,_currentValue:ue,_currentValue2:ue,_threadCount:0};function hx(e,n,a,o,u,p,y,j,w){this.tag=1,this.containerInfo=e,this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.next=this.pendingContext=this.context=this.cancelPendingCommit=null,this.callbackPriority=0,this.expirationTimes=yr(-1),this.entangledLanes=this.shellSuspendCounter=this.errorRecoveryDisabledLanes=this.expiredLanes=this.warmLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=yr(0),this.hiddenUpdates=yr(null),this.identifierPrefix=o,this.onUncaughtError=u,this.onCaughtError=p,this.onRecoverableError=y,this.pooledCache=null,this.pooledCacheLanes=0,this.formState=w,this.incompleteTransitions=new Map}function zp(e,n,a,o,u,p,y,j,w,$,Q,P){return e=new hx(e,n,a,y,w,$,Q,P,j),n=1,p===!0&&(n|=24),p=Ft(3,null,null,n),e.current=p,p.stateNode=e,n=tc(),n.refCount++,e.pooledCache=n,n.refCount++,p.memoizedState={element:o,isDehydrated:a,cache:n},ic(p),e}function _p(e){return e?(e=Sl,e):Sl}function Bp(e,n,a,o,u,p){u=_p(u),o.context===null?o.context=u:o.pendingContext=u,o=aa(n),o.payload={element:a},p=p===void 0?null:p,p!==null&&(o.callback=p),a=la(e,o,n),a!==null&&(Lt(a,e,n),xi(a,e,n))}function Rp(e,n){if(e=e.memoizedState,e!==null&&e.dehydrated!==null){var a=e.retryLane;e.retryLane=a!==0&&a<n?a:n}}function ju(e,n){Rp(e,n),(e=e.alternate)&&Rp(e,n)}function Lp(e){if(e.tag===13||e.tag===31){var n=Ra(e,67108864);n!==null&&Lt(n,e,67108864),ju(e,67108864)}}function Ip(e){if(e.tag===13||e.tag===31){var n=Xt();n=vr(n);var a=Ra(e,n);a!==null&&Lt(a,e,n),ju(e,n)}}var No=!0;function px(e,n,a,o){var u=V.T;V.T=null;var p=ne.p;try{ne.p=2,Mu(e,n,a,o)}finally{ne.p=p,V.T=u}}function gx(e,n,a,o){var u=V.T;V.T=null;var p=ne.p;try{ne.p=8,Mu(e,n,a,o)}finally{ne.p=p,V.T=u}}function Mu(e,n,a,o){if(No){var u=Eu(o);if(u===null)uu(e,n,o,Ao,a),Hp(e,o);else if(vx(u,e,n,a,o))o.stopPropagation();else if(Hp(e,o),n&4&&-1<yx.indexOf(e)){for(;u!==null;){var p=ul(u);if(p!==null)switch(p.tag){case 3:if(p=p.stateNode,p.current.memoizedState.isDehydrated){var y=Oa(p.pendingLanes);if(y!==0){var j=p;for(j.pendingLanes|=2,j.entangledLanes|=2;y;){var w=1<<31-Ut(y);j.entanglements[1]|=w,y&=~w}vn(p),(He&6)===0&&(ro=we()+500,Ri(0))}}break;case 31:case 13:j=Ra(p,2),j!==null&&Lt(j,p,2),uo(),ju(p,2)}if(p=Eu(o),p===null&&uu(e,n,o,Ao,a),p===u)break;u=p}u!==null&&o.stopPropagation()}else uu(e,n,o,null,a)}}function Eu(e){return e=Ar(e),Nu(e)}var Ao=null;function Nu(e){if(Ao=null,e=cl(e),e!==null){var n=c(e);if(n===null)e=null;else{var a=n.tag;if(a===13){if(e=d(n),e!==null)return e;e=null}else if(a===31){if(e=m(n),e!==null)return e;e=null}else if(a===3){if(n.stateNode.current.memoizedState.isDehydrated)return n.tag===3?n.stateNode.containerInfo:null;e=null}else n!==e&&(e=null)}}return Ao=e,null}function Up(e){switch(e){case"beforetoggle":case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"toggle":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 2;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 8;case"message":switch(Pe()){case Pl:return 2;case Kd:return 8;case ps:case av:return 32;case qd:return 268435456;default:return 32}default:return 32}}var Au=!1,pa=null,ga=null,ya=null,Gi=new Map,Yi=new Map,va=[],yx="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset".split(" ");function Hp(e,n){switch(e){case"focusin":case"focusout":pa=null;break;case"dragenter":case"dragleave":ga=null;break;case"mouseover":case"mouseout":ya=null;break;case"pointerover":case"pointerout":Gi.delete(n.pointerId);break;case"gotpointercapture":case"lostpointercapture":Yi.delete(n.pointerId)}}function Vi(e,n,a,o,u,p){return e===null||e.nativeEvent!==p?(e={blockedOn:n,domEventName:a,eventSystemFlags:o,nativeEvent:p,targetContainers:[u]},n!==null&&(n=ul(n),n!==null&&Lp(n)),e):(e.eventSystemFlags|=o,n=e.targetContainers,u!==null&&n.indexOf(u)===-1&&n.push(u),e)}function vx(e,n,a,o,u){switch(n){case"focusin":return pa=Vi(pa,e,n,a,o,u),!0;case"dragenter":return ga=Vi(ga,e,n,a,o,u),!0;case"mouseover":return ya=Vi(ya,e,n,a,o,u),!0;case"pointerover":var p=u.pointerId;return Gi.set(p,Vi(Gi.get(p)||null,e,n,a,o,u)),!0;case"gotpointercapture":return p=u.pointerId,Yi.set(p,Vi(Yi.get(p)||null,e,n,a,o,u)),!0}return!1}function Fp(e){var n=cl(e.target);if(n!==null){var a=c(n);if(a!==null){if(n=a.tag,n===13){if(n=d(a),n!==null){e.blockedOn=n,ef(e.priority,function(){Ip(a)});return}}else if(n===31){if(n=m(a),n!==null){e.blockedOn=n,ef(e.priority,function(){Ip(a)});return}}else if(n===3&&a.stateNode.current.memoizedState.isDehydrated){e.blockedOn=a.tag===3?a.stateNode.containerInfo:null;return}}}e.blockedOn=null}function Co(e){if(e.blockedOn!==null)return!1;for(var n=e.targetContainers;0<n.length;){var a=Eu(e.nativeEvent);if(a===null){a=e.nativeEvent;var o=new a.constructor(a.type,a);Nr=o,a.target.dispatchEvent(o),Nr=null}else return n=ul(a),n!==null&&Lp(n),e.blockedOn=a,!1;n.shift()}return!0}function $p(e,n,a){Co(e)&&a.delete(n)}function bx(){Au=!1,pa!==null&&Co(pa)&&(pa=null),ga!==null&&Co(ga)&&(ga=null),ya!==null&&Co(ya)&&(ya=null),Gi.forEach($p),Yi.forEach($p)}function wo(e,n){e.blockedOn===n&&(e.blockedOn=null,Au||(Au=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,bx)))}var To=null;function Gp(e){To!==e&&(To=e,t.unstable_scheduleCallback(t.unstable_NormalPriority,function(){To===e&&(To=null);for(var n=0;n<e.length;n+=3){var a=e[n],o=e[n+1],u=e[n+2];if(typeof o!="function"){if(Nu(o||a)===null)continue;break}var p=ul(a);p!==null&&(e.splice(n,3),n-=3,Ec(p,{pending:!0,data:u,method:a.method,action:o},o,u))}}))}function Vl(e){function n(w){return wo(w,e)}pa!==null&&wo(pa,e),ga!==null&&wo(ga,e),ya!==null&&wo(ya,e),Gi.forEach(n),Yi.forEach(n);for(var a=0;a<va.length;a++){var o=va[a];o.blockedOn===e&&(o.blockedOn=null)}for(;0<va.length&&(a=va[0],a.blockedOn===null);)Fp(a),a.blockedOn===null&&va.shift();if(a=(e.ownerDocument||e).$$reactFormReplay,a!=null)for(o=0;o<a.length;o+=3){var u=a[o],p=a[o+1],y=u[Ot]||null;if(typeof p=="function")y||Gp(a);else if(y){var j=null;if(p&&p.hasAttribute("formAction")){if(u=p,y=p[Ot]||null)j=y.formAction;else if(Nu(u)!==null)continue}else j=y.action;typeof j=="function"?a[o+1]=j:(a.splice(o,3),o-=3),Gp(a)}}}function Yp(){function e(p){p.canIntercept&&p.info==="react-transition"&&p.intercept({handler:function(){return new Promise(function(y){return u=y})},focusReset:"manual",scroll:"manual"})}function n(){u!==null&&(u(),u=null),o||setTimeout(a,20)}function a(){if(!o&&!navigation.transition){var p=navigation.currentEntry;p&&p.url!=null&&navigation.navigate(p.url,{state:p.getState(),info:"react-transition",history:"replace"})}}if(typeof navigation=="object"){var o=!1,u=null;return navigation.addEventListener("navigate",e),navigation.addEventListener("navigatesuccess",n),navigation.addEventListener("navigateerror",n),setTimeout(a,100),function(){o=!0,navigation.removeEventListener("navigate",e),navigation.removeEventListener("navigatesuccess",n),navigation.removeEventListener("navigateerror",n),u!==null&&(u(),u=null)}}}function Cu(e){this._internalRoot=e}Oo.prototype.render=Cu.prototype.render=function(e){var n=this._internalRoot;if(n===null)throw Error(i(409));var a=n.current,o=Xt();Bp(a,o,e,n,null,null)},Oo.prototype.unmount=Cu.prototype.unmount=function(){var e=this._internalRoot;if(e!==null){this._internalRoot=null;var n=e.containerInfo;Bp(e.current,2,null,e,null,null),uo(),n[rl]=null}};function Oo(e){this._internalRoot=e}Oo.prototype.unstable_scheduleHydration=function(e){if(e){var n=Pd();e={blockedOn:null,target:e,priority:n};for(var a=0;a<va.length&&n!==0&&n<va[a].priority;a++);va.splice(a,0,e),a===0&&Fp(e)}};var Vp=l.version;if(Vp!=="19.2.7")throw Error(i(527,Vp,"19.2.7"));ne.findDOMNode=function(e){var n=e._reactInternals;if(n===void 0)throw typeof e.render=="function"?Error(i(188)):(e=Object.keys(e).join(","),Error(i(268,e)));return e=g(n),e=e!==null?v(e):null,e=e===null?null:e.stateNode,e};var xx={bundleType:0,version:"19.2.7",rendererPackageName:"react-dom",currentDispatcherRef:V,reconcilerVersion:"19.2.7"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Do=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Do.isDisabled&&Do.supportsFiber)try{ei=Do.inject(xx),It=Do}catch{}}return Ki.createRoot=function(e,n){if(!r(e))throw Error(i(299));var a=!1,o="",u=Wm,p=Pm,y=eh;return n!=null&&(n.unstable_strictMode===!0&&(a=!0),n.identifierPrefix!==void 0&&(o=n.identifierPrefix),n.onUncaughtError!==void 0&&(u=n.onUncaughtError),n.onCaughtError!==void 0&&(p=n.onCaughtError),n.onRecoverableError!==void 0&&(y=n.onRecoverableError)),n=zp(e,1,!1,null,null,a,o,null,u,p,y,Yp),e[rl]=n.current,cu(e),new Cu(n)},Ki.hydrateRoot=function(e,n,a){if(!r(e))throw Error(i(299));var o=!1,u="",p=Wm,y=Pm,j=eh,w=null;return a!=null&&(a.unstable_strictMode===!0&&(o=!0),a.identifierPrefix!==void 0&&(u=a.identifierPrefix),a.onUncaughtError!==void 0&&(p=a.onUncaughtError),a.onCaughtError!==void 0&&(y=a.onCaughtError),a.onRecoverableError!==void 0&&(j=a.onRecoverableError),a.formState!==void 0&&(w=a.formState)),n=zp(e,1,!0,n,a??null,o,u,w,p,y,j,Yp),n.context=_p(null),a=n.current,o=Xt(),o=vr(o),u=aa(o),u.callback=null,la(a,u,o),a=o,n.current.lanes=a,ni(n,a),vn(n),e[rl]=n.current,cu(e),new Oo(n)},Ki.version="19.2.7",Ki}var tg;function wx(){if(tg)return Ou.exports;tg=1;function t(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(l){console.error(l)}}return t(),Ou.exports=Cx(),Ou.exports}var Tx=wx();function Ja(t,l){return t*l.den/l.num}const Ox=8,Dx=1e-6,ng=1e-7;class O0{ax;bx;cx;ay;by;cy;constructor(l,s,i,r){const c=Math.min(1,Math.max(0,l)),d=Math.min(1,Math.max(0,i));this.cx=3*c,this.bx=3*(d-c)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*s,this.by=3*(r-s)-this.cy,this.ay=1-this.cy-this.by}sampleX(l){return((this.ax*l+this.bx)*l+this.cx)*l}sampleY(l){return((this.ay*l+this.by)*l+this.cy)*l}sampleDerivativeX(l){return(3*this.ax*l+2*this.bx)*l+this.cx}sampleDerivativeY(l){return(3*this.ay*l+2*this.by)*l+this.cy}sampleSecondDerivativeX(l){return 6*this.ax*l+2*this.bx}sampleSecondDerivativeY(l){return 6*this.ay*l+2*this.by}solveT(l){if(l<=0)return 0;if(l>=1)return 1;let s=l;for(let c=0;c<Ox;c++){const d=this.sampleX(s)-l;if(Math.abs(d)<ng)return s;const m=this.sampleDerivativeX(s);if(Math.abs(m)<Dx)break;s-=d/m}let i=0,r=1;for(s=l;r-i>ng;){const c=(i+r)/2;this.sampleX(c)<l?i=c:r=c}return(i+r)/2}solve(l){return this.sampleY(this.solveT(l))}}const zx=[1/3,1/3,2/3,2/3],_x=1e-6;function D0(t,l,s,i,r){if(i<=0)return{value:t,velocity:s};const c=Math.max(r.mass,1e-9),d=Math.max(r.stiffness,1e-9),m=Math.max(r.damping,0),h=Math.sqrt(d/c),g=m/(2*Math.sqrt(d*c)),v=t-l;let x,E;if(Math.abs(g-1)<_x){const M=s+h*v,k=Math.exp(-h*i);x=k*(v+M*i),E=k*(M-h*(v+M*i))}else if(g<1){const M=h*Math.sqrt(1-g*g),k=(s+g*h*v)/M,D=Math.exp(-g*h*i),_=Math.cos(M*i),z=Math.sin(M*i);x=D*(v*_+k*z),E=D*(-g*h*(v*_+k*z)+M*(-v*z+k*_))}else{const M=h*Math.sqrt(g*g-1),k=-g*h-M;if(k===Number.NEGATIVE_INFINITY)return{value:t,velocity:0};const D=h*h/k,_=(s-k*v)/(D-k),z=v-_,G=Math.exp(D*i),C=Math.exp(k*i);x=_*G+z*C,E=_*D*G+z*k*C}return{value:l+x,velocity:E}}const Bx=1e-5;function Yo(t){const l=t.trim(),s=/^#([0-9a-fA-F]{3,8})$/.exec(l);if(!s||![3,4,6,8].includes(s[1].length))throw new Error(`Unsupported color "${t}": expected #rgb, #rgba, #rrggbb or #rrggbbaa`);const i=s[1];if(i.length<=4){const h=parseInt(i[0]+i[0],16)/255,g=parseInt(i[1]+i[1],16)/255,v=parseInt(i[2]+i[2],16)/255,x=i.length===4?parseInt(i[3]+i[3],16)/255:1;return{r:h,g,b:v,alpha:x}}const r=parseInt(i.slice(0,2),16)/255,c=parseInt(i.slice(2,4),16)/255,d=parseInt(i.slice(4,6),16)/255,m=i.length===8?parseInt(i.slice(6,8),16)/255:1;return{r,g:c,b:d,alpha:m}}function Bu(t){return Math.round(Math.min(1,Math.max(0,t))*255).toString(16).padStart(2,"0")}function ss(t){const l=`#${Bu(t.r)}${Bu(t.g)}${Bu(t.b)}`,s=Math.round(Math.min(1,Math.max(0,t.alpha))*255);return s>=255?l:l+s.toString(16).padStart(2,"0")}function Ru(t){return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Lu(t){return t<=.0031308?t*12.92:1.055*Math.pow(t,1/2.4)-.055}function Rx(t){const l=Ru(t.r),s=Ru(t.g),i=Ru(t.b),r=Math.cbrt(.4122214708*l+.5363325363*s+.0514459929*i),c=Math.cbrt(.2119034982*l+.6806995451*s+.1073969566*i),d=Math.cbrt(.0883024619*l+.2817188376*s+.6299787005*i);return{L:.2104542553*r+.793617785*c-.0040720468*d,a:1.9779984951*r-2.428592205*c+.4505937099*d,b:.0259040371*r+.7827717662*c-.808675766*d}}function Iu(t){return t*t*t}function z0(t,l,s){return{l:t+.3963377774*l+.2158037573*s,m:t-.1055613458*l-.0638541728*s,s:t-.0894841775*l-1.291485548*s}}function ls(t,l,s){return{r:4.0767416621*t-3.3077115913*l+.2309699292*s,g:-1.2684380046*t+2.6097574011*l-.3413193965*s,b:-.0041960863*t-.7034186147*l+1.707614701*s}}function Lx(t,l,s){const i=z0(t,l,s);return ls(Iu(i.l),Iu(i.m),Iu(i.s))}function ag(t){const{L:l,a:s,b:i}=Rx(t),r=Math.sqrt(s*s+i*i),c=r<Bx?NaN:(Math.atan2(i,s)*180/Math.PI+360)%360;return{l,c:r,h:c,alpha:t.alpha}}function lg(t,l,s,i){return Lx(t,i*l,i*s)}const Yn=-1e-6,Vn=1+1e-6;function Ix(t){return t.r>=Yn&&t.r<=Vn&&t.g>=Yn&&t.g<=Vn&&t.b>=Yn&&t.b<=Vn}const pt=new Float64Array(12),cd=new Float64Array(6);let Vo=0;function ud(t,l){const s=t*4;return((pt[s+3]*l+pt[s+2])*l+pt[s+1])*l+pt[s]}function Ux(t,l,s){const i=z0(0,l,s),r=t*t,c=r*t,d=ls(c,c,c),m=ls(3*r*i.l,3*r*i.m,3*r*i.s),h=ls(3*t*i.l*i.l,3*t*i.m*i.m,3*t*i.s*i.s),g=ls(i.l*i.l*i.l,i.m*i.m*i.m,i.s*i.s*i.s);pt[0]=d.r,pt[1]=m.r,pt[2]=h.r,pt[3]=g.r,pt[4]=d.g,pt[5]=m.g,pt[6]=h.g,pt[7]=g.g,pt[8]=d.b,pt[9]=m.b,pt[10]=h.b,pt[11]=g.b}function Uu(t,l){t>0&&t<l&&Vo<cd.length&&(cd[Vo++]=t)}function Hx(t){Vo=0;for(let l=0;l<3;l++){const s=l*4,i=3*pt[s+3],r=2*pt[s+2],c=pt[s+1];if(i===0){r!==0&&Uu(-c/r,t);continue}const d=r*r-4*i*c;if(d<=0)continue;const m=Math.sqrt(d),h=-.5*(r+(r>=0?m:-m));Uu(h/i,t),h!==0&&Uu(c/h,t)}}const Fx=50;function zo(t,l,s,i,r){for(let c=0;c<Fx;c++){const d=(l+s)/2,m=ud(t,d);(r?m>=i:m<=i)?l=d:s=d}return l}function $x(t,l){let s=t,i=l;for(let r=0;r<3;r++){const c=ud(r,t),d=ud(r,l);if(c<=d){if(d<Yn||c>Vn)return NaN;if(c<Yn){const m=zo(r,l,t,Yn,!0);m>s&&(s=m)}if(d>Vn){const m=zo(r,t,l,Vn,!1);m<i&&(i=m)}}else{if(c<Yn||d>Vn)return NaN;if(d<Yn){const m=zo(r,t,l,Yn,!0);m<i&&(i=m)}if(c>Vn){const m=zo(r,l,t,Vn,!1);m>s&&(s=m)}}if(s>i)return NaN}return i}function Gx(t,l,s,i){Ux(t,l,s),Hx(i);let r=i;for(;;){let c=0;for(let m=0;m<Vo;m++){const h=cd[m];h<r&&h>c&&(c=h)}const d=$x(c,r);if(!Number.isNaN(d))return d;if(c===0)return 0;r=c}}function Yx(t){const l=(Number.isNaN(t.h)?0:t.h)*(Math.PI/180),s=Math.cos(l),i=Math.sin(l);let r=lg(t.l,s,i,t.c);return Ix(r)||(r=lg(t.l,s,i,Gx(t.l,s,i,t.c))),{r:Math.min(1,Math.max(0,Lu(r.r))),g:Math.min(1,Math.max(0,Lu(r.g))),b:Math.min(1,Math.max(0,Lu(r.b))),alpha:t.alpha}}function qi(t){return(t%360+360)%360}function Vx(t,l,s,i){const r=Number.isNaN(t)?l:t,c=Number.isNaN(l)?t:l;if(Number.isNaN(r)&&Number.isNaN(c))return NaN;if(Number.isNaN(r))return qi(c);if(Number.isNaN(c))return qi(r);const d=qi(r);let m=qi(c)-d;return i==="shorter"?m>180?m-=360:m<-180&&(m+=360):m>0&&m<180?m-=360:m>-180&&m<=0&&(m+=360),qi(d+s*m)}function Xx(t,l,s,i="shorter"){const r=ag(Yo(t)),c=ag(Yo(l)),d={l:r.l+(c.l-r.l)*s,c:Math.max(0,r.c+(c.c-r.c)*s),h:Vx(r.h,c.h,s,i),alpha:Math.min(1,Math.max(0,r.alpha+(c.alpha-r.alpha)*s))};return ss(Yx(d))}function Kx(t,l,s,i,r,c=0){const d=(G,C)=>{let L=0;for(let U=0;U<G.length;U++){const T=C[U]-G[U];L+=T*T}return L};let m=Math.sqrt(Math.sqrt(d(t,l))),h=Math.sqrt(Math.sqrt(d(l,s))),g=Math.sqrt(Math.sqrt(d(s,i)));h<1e-4&&(h=1),m<1e-4&&(m=h),g<1e-4&&(g=h);const v=1-c,x=r*r,E=x*r,M=2*E-3*x+1,k=E-2*x+r,D=-2*E+3*x,_=E-x,z=new Array(l.length);for(let G=0;G<l.length;G++){const C=t[G],L=l[G],U=s[G],T=i[G],q=((L-C)/m-(U-C)/(m+h)+(U-L)/h)*h*v,ae=((U-L)/h-(T-L)/(h+g)+(T-U)/g)*h*v;z[G]=M*L+k*q+D*U+_*ae}return z}function Xo(t){return{start:t.at,end:t.at+t.durationFrames}}function qx(t,l,s){return Ja(t.offsetFrames+(l-t.at),s)}const ig=t=>t<0?0:t>1?1:t;function Zx(t,l,s){if(t.muted)return 0;const{start:i,end:r}=Xo(t);if(l<i||l>=r)return 0;const c=s??t.gain,d=t.fadeInFrames>0?ig((l-i)/t.fadeInFrames):1,m=t.fadeOutFrames>0?ig((r-l)/t.fadeOutFrames):1,h=c*d*m;return h<0?0:h>2?2:h}function Qx(t,l,s,i){if(t.muted)return[];const{start:r,end:c}=Xo(t),d=Math.max(r,l),m=Math.min(c,s);if(d>=m)return[];const h=v=>Zx(t,v,i?.(v)),g=[];for(let v=d;v<m;v++)g.push({frame:v,gain:h(v)});return g.push({frame:m,gain:m===c&&t.fadeOutFrames>0?0:h(m-1)}),g}const Hu=t=>t<0?0:t>1?1:t;function _0(t,l,s){const i=Hu((l-t.frame)/t.durationFrames),r=t.ease;if(r===void 0)return i;switch(r.type){case"bezier":{const[c,d,m,h]=r.handles;return Hu(new O0(c,d,m,h).solve(i))}case"hold":return i>=1?1:0;case"spring":{const c=Ja(Math.max(0,l-t.frame),s);return Hu(D0(0,1,0,c,r).value)}}}function sg(t){let l=t;const s=[],i=[],r=new Set;let c;function d(g){if(g!==l){l=g;for(const v of r)v(g)}}function m(g){if(c)throw new Error("Cannot start a transaction while a scrub is active");const v=l,x=g(v);return x!==v&&(s.push(v),i.length=0,d(x)),l}function h(){if(c)throw new Error("A scrub is already active");const g=l;let v=!0;const x=()=>{v=!1,c=void 0},E={capture(M){if(!v)throw new Error("Scrub already committed or discarded");d(M(g))},commit(){if(!v)throw new Error("Scrub already committed or discarded");l!==g&&(s.push(g),i.length=0),x()},discard(){if(!v)throw new Error("Scrub already committed or discarded");d(g),x()}};return c=E,E}return{get current(){return l},get canUndo(){return s.length>0},get canRedo(){return i.length>0},transaction:m,scrub:h,undo(){const g=s.pop();if(g!==void 0)return i.push(l),d(g),g},redo(){const g=i.pop();if(g!==void 0)return s.push(l),d(g),g},subscribe(g){return r.add(g),()=>r.delete(g)}}}const og=1e21;function rg(t){if(!Number.isFinite(t))return"0";const l=Math.abs(t),s=t<0?-1:1,i=l>=og?t:s*Math.round(l*1e3)/1e3;return i===0?"0":Math.abs(i)>=og?BigInt(i).toString():i.toFixed(3).replace(/\.?0+$/,"")}function Zi(t){return`${rg(t[0])} ${rg(t[1])}`}function B0(t,l){return t.out!==void 0||l.in!==void 0}function Jx(t){const l=t.points;if(l.length===0)return"";const s=[`M ${Zi(l[0].p)}`],i=(r,c)=>{if(!B0(r,c))return`L ${Zi(c.p)}`;const d=r.out??r.p,m=c.in??c.p;return`C ${Zi(d)} ${Zi(m)} ${Zi(c.p)}`};for(let r=1;r<l.length;r+=1)s.push(i(l[r-1],l[r]));return t.closed&&l.length>1&&(s.push(i(l[l.length-1],l[0])),s.push("Z")),s.join(" ")}function Wx(t){const l=t.points;if(l.length===0)return{x:0,y:0,w:0,h:0};let s=Number.POSITIVE_INFINITY,i=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,c=Number.NEGATIVE_INFINITY;const d=h=>{const g=Number.isFinite(h[0])?h[0]:0,v=Number.isFinite(h[1])?h[1]:0;g<s&&(s=g),g>r&&(r=g),v<i&&(i=v),v>c&&(c=v)};for(const h of l)d(h.p);const m=(h,g)=>{B0(h,g)&&(d(h.out??h.p),d(g.in??g.p))};for(let h=1;h<l.length;h+=1)m(l[h-1],l[h]);return t.closed&&l.length>1&&m(l[l.length-1],l[0]),{x:s,y:i,w:r-s,h:c-i}}function Px(t,l,s){const i=r=>[r[0]+l,r[1]+s];return{closed:t.closed,points:t.points.map(r=>({p:i(r.p),...r.in!==void 0?{in:i(r.in)}:{},...r.out!==void 0?{out:i(r.out)}:{}}))}}const e1={number:{track:"number",continuous:!0,encode:"identity"},vec2:{track:"vec2",continuous:!0,encode:"identity"},vec3:{track:"vec3",continuous:!0,encode:"identity"},quaternion:{track:"quaternion",continuous:!0,encode:"identity"},color:{track:"color",continuous:!0,encode:"identity"},enum:{track:"enum",continuous:!1,encode:"identity"},boolean:{track:"boolean",continuous:!1,encode:"identity"},string:{track:"string",continuous:!1,encode:"identity"},asset:{track:"string",continuous:!1,encode:"identity"},curve:{track:"string",continuous:!1,encode:"json"},gradient:{track:"string",continuous:!1,encode:"json"},slot:{track:null,continuous:!1,encode:"identity"},event:{track:null,continuous:!1,encode:"identity"}},jd=new Set(["min","max","step","unit"]),R0=new Set(["label","description","order","provenance","as","axes","accept","multiline","spring"]),t1=new Set(["key","propName","renamedFrom","internal","hook"]);function n1(t){throw new Error(`Unhandled ControlSpec kind: ${JSON.stringify(t)}`)}const a1=14695981039346656037n,l1=1099511628211n,i1=(1n<<64n)-1n;function L0(t){let l=a1;const s=i=>{l=(l^BigInt(i))*l1&i1};for(const i of t){const r=i.codePointAt(0);r<128?s(r):r<2048?(s(192|r>>6),s(128|r&63)):r<65536?(s(224|r>>12),s(128|r>>6&63),s(128|r&63)):(s(240|r>>18),s(128|r>>12&63),s(128|r>>6&63),s(128|r&63))}return l.toString(16).padStart(16,"0")}const s1=new Set;function Ko(t,l=s1){if(t===null)return"null";if(t===void 0)throw new Error("canonicalJSON: undefined is not serializable");if(typeof t=="number"){if(!Number.isFinite(t))throw new Error(`canonicalJSON: non-finite number (${t})`);return Object.is(t,-0)?"0":JSON.stringify(t)}if(typeof t!="object")return JSON.stringify(t);if(Array.isArray(t))return"["+t.map(r=>Ko(r,l)).join(",")+"]";const s=t,i=[];for(const r of Object.keys(s).sort())s[r]===void 0||l.has(r)||i.push(JSON.stringify(r)+":"+Ko(s[r],l));return"{"+i.join(",")+"}"}const o1=new Set([...jd,...R0]);[...jd,...R0,...t1];const I0="";function r1(t,l){const s=t,i={};for(const r of Object.keys(s))l.has(r)||(i[r]=s[r]);return i}function c1(t){return Ko(r1(t,o1))}function u1(t){const l={},s=t;for(const i of jd)s[i]!==void 0&&(l[i]=s[i]);return Ko(l)}function d1(t){const l=Object.keys(t).sort().map(s=>c1(t[s])).join(I0);return"fnv1a64-"+L0(l)}function f1(t){const l=Object.keys(t).sort().map(s=>JSON.stringify(s)+":"+u1(t[s])).join(I0);return"fnv1a64-"+L0(l)}const m1=/^#([0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/;function Fo(t){return typeof t=="number"&&Number.isFinite(t)}function qo(t,l){for(const s of Object.keys(t))if(!l.includes(s))return s;return null}const h1=["kind","points"],p1=["x","y","handles"];function Md(t){if(typeof t!="object"||t===null)return"curve must be an object";const l=t;if(l.kind!=="curve")return'curve.kind must be "curve"';const s=qo(l,h1);if(s)return`curve has unexpected key "${s}"`;if(!Array.isArray(l.points)||l.points.length<1)return"curve.points must be a non-empty array";let i=-1/0;for(let r=0;r<l.points.length;r++){const c=l.points[r];if(typeof c!="object"||c===null)return`curve.points[${r}] must be an object`;const d=qo(c,p1);if(d)return`curve.points[${r}] has unexpected key "${d}"`;if(!Fo(c.x)||c.x<0||c.x>1)return`curve.points[${r}].x must be a finite number in [0,1]`;if(c.x<=i)return`curve.points[${r}].x must be strictly ascending`;if(i=c.x,!Fo(c.y))return`curve.points[${r}].y must be finite`;if(!Array.isArray(c.handles)||c.handles.length!==4||!c.handles.every(Fo))return`curve.points[${r}].handles must be 4 finite numbers`}return null}const g1=["kind","stops","space","hueFixup"],y1=["at","color"];function Ed(t){if(typeof t!="object"||t===null)return"gradient must be an object";const l=t;if(l.kind!=="gradient")return'gradient.kind must be "gradient"';const s=qo(l,g1);if(s)return`gradient has unexpected key "${s}"`;if(!Array.isArray(l.stops)||l.stops.length<1)return"gradient.stops must be a non-empty array";let i=-1/0;for(let r=0;r<l.stops.length;r++){const c=l.stops[r];if(typeof c!="object"||c===null)return`gradient.stops[${r}] must be an object`;const d=qo(c,y1);if(d)return`gradient.stops[${r}] has unexpected key "${d}"`;if(!Fo(c.at)||c.at<0||c.at>1)return`gradient.stops[${r}].at must be a finite number in [0,1]`;if(c.at<=i)return`gradient.stops[${r}].at must be strictly ascending`;if(i=c.at,typeof c.color!="string"||!m1.test(c.color))return`gradient.stops[${r}].color must be a hex color`}return l.space!==void 0&&l.space!=="oklch"?'gradient.space must be "oklch"':l.hueFixup!==void 0&&l.hueFixup!=="shorter"&&l.hueFixup!=="longer"?'gradient.hueFixup must be "shorter" or "longer"':null}function v1(t){let l;try{l=JSON.parse(t)}catch{throw new Error("Invalid curve value: not JSON")}const s=Md(l);if(s)throw new Error(`Invalid curve value: ${s}`);return l}function b1(t){let l;try{l=JSON.parse(t)}catch{throw new Error("Invalid gradient value: not JSON")}const s=Ed(l);if(s)throw new Error(`Invalid gradient value: ${s}`);return l}function U0(t){const l=t.points,s=l[0];if(l.length===1){const c=s.y;return()=>c}const i=l[l.length-1],r=l.slice(0,-1).map(c=>new O0(c.handles[0],c.handles[1],c.handles[2],c.handles[3]));return c=>{if(!(c>s.x))return s.y;if(c>=i.x)return i.y;let d=0;for(;l[d+1].x<=c;)d++;const m=l[d],h=l[d+1],g=(c-m.x)/(h.x-m.x);return m.y+(h.y-m.y)*r[d].solve(g)}}function H0(t){const l=t.stops,s=t.hueFixup??"shorter",i=l[0];if(l.length===1){const c=i.color;return()=>c}const r=l[l.length-1];return c=>{if(!(c>i.at))return i.color;if(c>=r.at)return r.color;let d=0;for(;l[d+1].at<=c;)d++;const m=l[d],h=l[d+1];if(c===m.at)return m.color;const g=(c-m.at)/(h.at-m.at);return Xx(m.color,h.color,g,s)}}function F0(t){if(t.animatable===!1)return null;const l=e1[t.kind];if(l.track===null)return null;if(t.kind==="color"){const s={};return t.space!==void 0&&(s.space=t.space),t.hueFixup!==void 0&&(s.hueFixup=t.hueFixup),Object.keys(s).length>0?{kind:"color",interp:s}:{kind:"color"}}return{kind:l.track}}const x1=new Set(["asset","curve","gradient"]);function Fu(t,l,s){const i=t.keys[s];if(!i)return!1;const r=F0(i);return!r||r.kind!==l.kind?!1:l.contractKind!==void 0?i.kind===l.contractKind:!x1.has(i.kind)}function S1(t){const l=new Map;for(const s of Object.values(t.keys))for(const i of s.renamedFrom??[])l.has(i)||l.set(i,s.key);return l}function k1(t,l){const s=S1(l),i=new Map,r=new Set(t.map(x=>x.key)),c=[],d=[];for(const x of t)l.keys[x.key]&&Fu(l,x,x.key)?(r.add(x.key),i.set(x.trackId,{op:x.status==="orphaned"?"reattach":"noop",trackId:x.trackId,key:x.key})):!l.keys[x.key]&&s.has(x.key)?c.push(x):d.push(x);for(const x of c){const E=s.get(x.key);!r.has(E)&&Fu(l,x,E)?(r.add(E),i.set(x.trackId,{op:"rebind",trackId:x.trackId,fromKey:x.key,toKey:E})):d.push(x)}const m=new Map,h=x=>`${x.kind}|${x.contractKind??""}`;for(const x of d)m.set(h(x),(m.get(h(x))??0)+1);for(const x of d){const E={op:"orphan",trackId:x.trackId,key:x.key};if(m.get(h(x))===1){const M=Object.values(l.keys).filter(k=>!r.has(k.key)&&Fu(l,x,k.key));M.length===1&&(E.suggest=M[0].key)}i.set(x.trackId,E)}const g=t.map(x=>i.get(x.trackId)),v=g.some(x=>x.op==="orphan"||x.op==="rebind");return{ops:g,hasUnresolved:v}}function j1(t){const l=JSON.parse(JSON.stringify(t)),s=M1(l);if(s!==null)throw new Error(`cannot snapshot embed contract: ${s}`);return l}function M1(t){if(typeof t!="object"||t===null||Array.isArray(t))return"must be an object";const l=t;if(typeof l.version!="number"||!Number.isInteger(l.version))return"version must be an integer";const s=l.keys;if(typeof s!="object"||s===null||Array.isArray(s))return"keys must be an object";if(typeof l.contractHash!="string"||typeof l.metadataHash!="string")return"contractHash and metadataHash must be strings";const i=s;for(const[c,d]of Object.entries(i)){if(typeof d!="object"||d===null||Array.isArray(d))return`key ${JSON.stringify(c)} must be a ControlSpec object`;if(d.key!==c)return`key ${JSON.stringify(c)} holds a spec keyed ${JSON.stringify(d.key)}`;if(typeof d.propName!="string"||d.propName.length===0)return`key ${JSON.stringify(c)} has no propName`;if(typeof d.kind!="string")return`key ${JSON.stringify(c)} has no kind`}let r;try{r={contract:d1(s),metadata:f1(s)}}catch(c){return`is not hashable (${c instanceof Error?c.message:String(c)})`}return r.contract!==l.contractHash?`contractHash ${JSON.stringify(l.contractHash)} does not describe its own keys (recomputed ${JSON.stringify(r.contract)}) — the snapshot was hand-edited`:r.metadata!==l.metadataHash?`metadataHash ${JSON.stringify(l.metadataHash)} does not describe its own keys (recomputed ${JSON.stringify(r.metadata)})`:null}const Ma="l3_",E1="sc_",cs="ab_",N1="sh_",A1="au_",C1="mk_",$0="cmp_",cg="as_",w1={num:30,den:1},T1={width:1920,height:1080},O1=60,G0=35,ug=Object.freeze({unit:"word",spread:.6,risePx:0,fadeFrom:0}),D1=["linear","grid","radial","scatter"],z1=["start","end","center","edges","index","random"],_1=["unlit","toon"],B1=["hold","loop"],R1=["text","image","video","rect","ellipse","line","arrow","path","html","group","device","mesh","cloner","instance","component"];function dt(t){const l=t.kind==="group"?t.children:t.kind==="device"?t.device?.children:t.kind==="cloner"?t.cloner?.children:void 0;return Array.isArray(l)?l:L1}const L1=Object.freeze([]);function Xn(t,l){return t.kind==="group"?{...t,children:l}:t.kind==="device"?{...t,device:{...t.device,children:l}}:t.kind==="cloner"?{...t,cloner:{...t.cloner,children:l}}:t}function I1(t){return t.kind==="group"||t.kind==="device"||t.kind==="cloner"}function ir(t){const l=[];let s=0;for(const i of t.scenes){const r=t.scenesById[i];if(r===void 0)continue;const c=s+Math.max(0,Math.trunc(r.durationFrames));l.push({id:i,start:s,end:c}),s=c}return l}function Wa(t){let l=0;for(const s of t.scenes){const i=t.scenesById[s];i!==void 0&&(l+=Math.max(0,Math.trunc(i.durationFrames)))}return l}function U1(t,l){if(!Number.isFinite(l)||l<0)return null;const s=Math.floor(l);let i=0;for(const r of t.scenes){const c=t.scenesById[r];if(c===void 0)continue;const d=Math.max(0,Math.trunc(c.durationFrames));if(d>0&&s<i+d)return{sceneId:r,scene:c,sceneFrame:l-i};i+=d}return null}function H1(t,l,s){let i=0;for(const r of t.scenes){const c=t.scenesById[r];if(c!==void 0){if(r===l)return i+Math.max(0,Math.trunc(s));i+=Math.max(0,Math.trunc(c.durationFrames))}}return null}function F1(t,l){if(t.scenes.length<=1)return!1;const s=t.scenes.indexOf(l);if(s<=0)return!1;for(let i=s-1;i>=0;i-=1){const r=t.scenesById[t.scenes[i]];if(r!==void 0&&Math.max(0,Math.trunc(r.durationFrames))!==0)return r.transition!==void 0}return!1}const $1=6364136223846793005n,_o=(1n<<64n)-1n;function G1(t,l){const s=(BigInt(l)<<1n|1n)&_o;let i=0n;const r=()=>{const c=i;i=c*$1+s&_o;const d=Number((c>>18n^c)>>27n&0xffffffffn),m=Number(c>>59n);return(d>>>m|d<<(-m&31))>>>0};return i=s,i=i+(BigInt(t)&_o)&_o,r(),{nextU32:r,next01:()=>r()/4294967296}}function Y1(t,l){const s={};for(const i of t){const r=l(i.name);let c=i.default;r!==void 0&&V1(i.kind,r)&&(c=r),i.kind==="number"&&typeof c=="number"&&(i.min!==void 0&&c<i.min&&(c=i.min),i.max!==void 0&&c>i.max&&(c=i.max)),s[i.name]=c}return s}function V1(t,l){switch(t){case"number":return typeof l=="number"&&Number.isFinite(l);case"boolean":return typeof l=="boolean";case"vec2":return Array.isArray(l)&&l.length===2&&l.every(s=>Number.isFinite(s))}}const Y0={fade:{id:"gl/fade",label:"Fade",params:[],author:"gre"},"directional-wipe":{id:"gl/directional-wipe",label:"Directional Wipe",params:[{name:"direction",kind:"vec2",default:[1,-1]},{name:"smoothness",kind:"number",default:.5,min:0,max:1,step:.01}],author:"gre"},directional:{id:"gl/directional",label:"Directional",params:[{name:"direction",kind:"vec2",default:[0,1]}],author:"Gaëtan Renaudeau"},"circle-open":{id:"gl/circle-open",label:"Circle Open",params:[{name:"smoothness",kind:"number",default:.3,min:0,max:1,step:.01},{name:"opening",kind:"boolean",default:!0}],author:"gre"},"cross-warp":{id:"gl/cross-warp",label:"Cross Warp",params:[],author:"Eke Péter <peterekepeter@gmail.com>"},cube:{id:"gl/cube",label:"Cube",params:[{name:"persp",kind:"number",default:.7,min:0,max:1,step:.01},{name:"unzoom",kind:"number",default:.3,min:0,max:1,step:.01},{name:"reflection",kind:"number",default:.4,min:0,max:1,step:.01},{name:"floating",kind:"number",default:3,min:0,max:100,step:.1}],author:"gre"},doorway:{id:"gl/doorway",label:"Doorway",params:[{name:"reflection",kind:"number",default:.4,min:0,max:1,step:.01},{name:"perspective",kind:"number",default:.4,min:0,max:1,step:.01},{name:"depth",kind:"number",default:3,min:1,max:100,step:.1}],author:"gre"},swap:{id:"gl/swap",label:"Swap",params:[{name:"reflection",kind:"number",default:.4,min:0,max:1,step:.01},{name:"perspective",kind:"number",default:.2,min:0,max:1,step:.01},{name:"depth",kind:"number",default:3,min:1,max:100,step:.1}],author:"gre"},wind:{id:"gl/wind",label:"Wind",params:[{name:"size",kind:"number",default:.2,min:0,max:1,step:.01},{name:"reversed",kind:"boolean",default:!1}],author:"gre"},ripple:{id:"gl/ripple",label:"Ripple",params:[{name:"amplitude",kind:"number",default:100,min:0,max:1e3,step:1},{name:"speed",kind:"number",default:50,min:0,max:1e3,step:1}],author:"gre"},pixelize:{id:"gl/pixelize",label:"Pixelize",params:[{name:"squaresMin",kind:"vec2",default:[20,20]},{name:"steps",kind:"number",default:50,min:0,max:100,step:1}],author:"gre"},radial:{id:"gl/radial",label:"Radial",params:[{name:"smoothness",kind:"number",default:1,min:0,max:4,step:.01}],author:"Xaychru"},"linear-blur":{id:"gl/linear-blur",label:"Linear Blur",params:[{name:"intensity",kind:"number",default:.1,min:0,max:1,step:.01}],author:"gre"},dreamy:{id:"gl/dreamy",label:"Dreamy",params:[],author:"mikolalysenko"},morph:{id:"gl/morph",label:"Morph",params:[{name:"strength",kind:"number",default:.1,min:0,max:1,step:.01}],author:"paniq"},"glitch-memories":{id:"gl/glitch-memories",label:"Glitch Memories",params:[],author:"Gunnar Roth"},"simple-zoom":{id:"gl/simple-zoom",label:"Simple Zoom",params:[{name:"zoom_quickness",kind:"number",default:.8,min:.2,max:1,step:.01}],author:"0gust1"},"wipe-left":{id:"gl/wipe-left",label:"Wipe Left",params:[],author:"Jake Nelson"}};function X1(t){if(t.startsWith("gl/"))return Y0[t.slice(3)]}function ht(t,l,s){const i=t[l];return typeof i=="number"?i:s}function K1(t,l,s){const i=t[l];return Array.isArray(i)&&i.length===2&&typeof i[0]=="number"&&typeof i[1]=="number"?[i[0],i[1]]:s}const Bo=["in","out"],Qi=["in","during","out"];function Hn(t,l){return l==="out"?1-t:t}const V0="__slot";function Fn(t){const l=t[V0];return l==="in"||l==="out"||l==="during"?l:"during"}const Nd=[{id:"fade",label:"Fade",slots:Qi,params:[{name:"from",kind:"number",default:0,min:0,max:1,step:.01,label:"From"},{name:"to",kind:"number",default:1,min:0,max:1,step:.01,label:"To"}],delta(t,l){const s=Hn(t,Fn(l)),i=ht(l,"from",0),r=ht(l,"to",1);return{opacity:i+(r-i)*s}}},{id:"move",label:"Move",slots:Qi,params:[{name:"dx",kind:"number",default:0,step:1,label:"X"},{name:"dy",kind:"number",default:0,step:1,label:"Y"},{name:"dz",kind:"number",default:0,step:1,label:"Z"}],delta(t,l){const s=Hn(t,Fn(l));return{offset:[ht(l,"dx",0)*s,ht(l,"dy",0)*s,ht(l,"dz",0)*s]}}},{id:"slide",label:"Slide",slots:Bo,params:[{name:"distance",kind:"number",default:120,step:1,label:"Distance"},{name:"angleDeg",kind:"number",default:90,min:0,max:360,step:1,label:"Angle"}],delta(t,l){const s=Hn(t,Fn(l)),i=ht(l,"distance",120)*(1-s),r=ht(l,"angleDeg",90)*Math.PI/180;return{offset:[Math.cos(r)*i,Math.sin(r)*i,0]}}},{id:"scale",label:"Scale",slots:Qi,params:[{name:"from",kind:"number",default:.9,min:0,max:4,step:.01,label:"From"},{name:"to",kind:"number",default:1,min:0,max:8,step:.01,label:"To"}],delta(t,l){const s=Hn(t,Fn(l)),i=ht(l,"from",.9),r=ht(l,"to",1),c=i+(r-i)*s;return{scale:[c,c]}}},{id:"blur",label:"Blur",slots:Bo,params:[{name:"amount",kind:"number",default:12,min:0,max:64,step:1,label:"Amount"}],delta(t,l){const s=Hn(t,Fn(l));return{blurPx:ht(l,"amount",12)*(1-s)}}},{id:"typewriter",label:"Typewriter",slots:Bo,params:[],delta(t,l){return{reveal:Hn(t,Fn(l))}}},{id:"stagger",label:"Stagger",slots:Bo,params:[],delta(t,l){return{textPhase:Hn(t,Fn(l))}}},{id:"tilt",label:"Tilt",slots:Qi,params:[{name:"dx",kind:"number",default:0,min:-180,max:180,step:1,label:"X"},{name:"dy",kind:"number",default:0,min:-180,max:180,step:1,label:"Y"}],delta(t,l){const s=Hn(t,Fn(l));return{tilt:[ht(l,"dx",0)*s,ht(l,"dy",0)*s]}}},{id:"roll",label:"Roll",slots:Qi,params:[{name:"deg",kind:"number",default:0,min:-720,max:720,step:1,label:"Degrees"}],delta(t,l){const s=Hn(t,Fn(l));return{roll:ht(l,"deg",0)*s}}},{id:"float",label:"Float",slots:["during"],params:[{name:"amplitude",kind:"number",default:12,step:1,label:"Amplitude"},{name:"cycles",kind:"number",default:1,min:0,max:32,step:.5,label:"Cycles"},{name:"axis",kind:"vec2",default:[0,1],label:"Axis"}],delta(t,l){const s=ht(l,"amplitude",12),i=ht(l,"cycles",1),r=K1(l,"axis",[0,1]),c=Math.sin(t*i*Math.PI*2)*s;return{offset:[r[0]*c,r[1]*c,0]}}},{id:"spin",label:"Spin",slots:["during"],params:[{name:"cycles",kind:"number",default:1,min:-32,max:32,step:.25,label:"Cycles"}],delta(t,l){return{roll:ht(l,"cycles",1)*360*t}}},{id:"shake",label:"Shake",slots:["during"],params:[{name:"amplitude",kind:"number",default:8,min:0,max:400,step:1,label:"Amplitude"},{name:"frequency",kind:"number",default:.5,min:.01,max:8,step:.05,label:"Frequency"},{name:"seed",kind:"number",default:1,min:0,max:65535,step:1,label:"Seed"}],delta(t,l,s){const i=ht(l,"amplitude",8),r=Math.trunc(ht(l,"seed",1)),[c,d]=q1(r,s*ht(l,"frequency",.5));return{offset:[c*i,d*i,0]}}}];function dg(t,l){const s=G1(t,l);return[s.next01()*2-1,s.next01()*2-1]}function q1(t,l){const s=Math.floor(l),i=l-s,r=dg(t,s),c=dg(t,s+1),d=i*i*(3-2*i);return[r[0]+(c[0]-r[0])*d,r[1]+(c[1]-r[1])*d]}const us=Object.freeze(Object.fromEntries(Nd.map(t=>[t.id,t])));Object.freeze(Nd.map(t=>t.id));function Ad(t){return Nd.filter(l=>l.slots.includes(t))}function sr(t,l,s,i,r=0){const c=us[t];if(c===void 0)return{};const d=Y1(c.params,m=>s[m]);return d[V0]=l,c.delta(i,d,Number.isFinite(r)?r:0)}const xa={opacity:1,offset:[0,0,0],scale:[1,1],tilt:[0,0],roll:0,blurPx:0,reveal:1,textPhase:1};function Z1(t,l){l.opacity!==void 0&&(t.opacity*=l.opacity),l.offset!==void 0&&(t.offset=[t.offset[0]+l.offset[0],t.offset[1]+l.offset[1],t.offset[2]+l.offset[2]]),l.scale!==void 0&&(t.scale=[t.scale[0]*l.scale[0],t.scale[1]*l.scale[1]]),l.tilt!==void 0&&(t.tilt=[t.tilt[0]+l.tilt[0],t.tilt[1]+l.tilt[1]]),l.roll!==void 0&&(t.roll+=l.roll),l.blurPx!==void 0&&(t.blurPx=Math.max(t.blurPx,l.blurPx)),l.reveal!==void 0&&(t.reveal=Math.min(t.reveal,l.reveal)),l.textPhase!==void 0&&(t.textPhase=Math.min(t.textPhase,l.textPhase))}function Cd(t,l,s){const i=Math.max(1,Math.trunc(t.durationFrames));if(l>=t.frame+i)return 1;if(l<t.frame)return t.slot==="in"?0:null;const r=t.ease;return r?.type==="spring"?D0(0,1,0,Ja(Math.max(0,l-t.frame),s),r).value:_0({...t,durationFrames:i},l,s)}function sl(t,l,s){const i={opacity:xa.opacity,offset:[...xa.offset],scale:[...xa.scale],tilt:[...xa.tilt],roll:xa.roll,blurPx:xa.blurPx,reveal:xa.reveal,textPhase:xa.textPhase};for(const r of t.blocks){const c=Cd(r,l,s);c!==null&&Z1(i,sr(r.preset,r.slot,r.params,c,Q1(r,l)))}return i}function Q1(t,l){const s=Math.max(1,Math.trunc(t.durationFrames));return Math.min(Math.max(0,l-t.frame),s)}function Pa(t,l,s){const i=t.transform,r=sl(t,l,s);return{position:[i.position[0]+r.offset[0],i.position[1]+r.offset[1],i.position[2]+r.offset[2]],size:[Math.max(0,i.size[0]*r.scale[0]),Math.max(0,i.size[1]*r.scale[1])],tilt:[i.tilt[0]+r.tilt[0],i.tilt[1]+r.tilt[1]],rollDeg:i.rollDeg+r.roll,opacity:$u(i.opacity*r.opacity),blurPx:r.blurPx,reveal:$u(r.reveal),textPhase:$u(r.textPhase),flipX:i.flip?.x===!0,flipY:i.flip?.y===!0}}function J1(t,l,s){const i=l*Math.PI/360,r=s;return t/(2*Math.tan(i))/r}function os(t,l,s){let i=t.camera;for(const r of t.shots){const c=Math.max(1,Math.trunc(r.durationFrames));if(l<r.frame)break;if(l>=r.frame+c){i=W1(r).at(-1)??i;continue}const d=_0({...r,durationFrames:c},l,s);i=P1(r,d)??i;break}return i}function W1(t){return t.kind==="path"?t.waypoints:[t.from,t.to]}function P1(t,l){return t.kind==="path"?eS(t.waypoints,l):nS(t.from,t.to,l)}function eS(t,l){if(t.length===0)return null;if(t.length===1)return t[0];const s=t.length-1,i=Number.isFinite(l)?l*s:0,r=Math.min(s-1,Math.max(0,Math.floor(i))),c=i-r,d=h=>tS(t[Math.min(t.length-1,Math.max(0,h))]),m=Kx(d(r-1),d(r),d(r+1),d(r+2),c);return{x:m[0],y:m[1],zoom:m[2],rollDeg:m[3],focusZ:m[4]}}function tS(t){return[t.x,t.y,t.zoom,t.rollDeg,t.focusZ]}function nS(t,l,s){return{x:Ji(t.x,l.x,s),y:Ji(t.y,l.y,s),zoom:Ji(t.zoom,l.zoom,s),rollDeg:Ji(t.rollDeg,l.rollDeg,s),focusZ:Ji(t.focusZ,l.focusZ,s)}}function Ji(t,l,s){return t+(l-t)*s}function $u(t){return t<0?0:t>1?1:t}const dd=256,fg=100;function aS(t){return t>fg?`${t} clones is ${t} draw calls per frame — above ${fg} this lane is no longer free. The cap is ${dd}.`:null}function lS(t){return t.kind!=="group"&&t.kind!=="cloner"}const iS=9;function yt(t,l,s){const i=`${l}${s}`;if(!t.has(i))return i;for(let r=2;;r+=1){const c=`${i}-${r}`;if(!t.has(c))return c}}function sS(){return{x:0,y:0,zoom:1,rollDeg:0,focusZ:0}}function oS(t){const l=X0(new Set,"scene-1","Shot 1",t.background);return{schemaVersion:iS,id:t.id,name:t.name,fps:t.fps??w1,size:t.size??{...T1},scenes:[l.id],scenesById:{[l.id]:l},audio:{},assets:{}}}function X0(t,l,s,i){return{id:yt(t,E1,l),name:s,durationFrames:O1,background:i??{type:"solid",color:"#0b0b0d"},fovDeg:G0,camera:sS(),shots:[],layers:[],layersById:{},effects:{}}}function Nt(t){const l=new Set;for(const[s,i]of Object.entries(t.scenesById)){l.add(s);for(const r of i.shots)l.add(r.id);for(const[r,c]of Object.entries(i.layersById)){l.add(r);for(const d of c.blocks)l.add(d.id)}}for(const[s,i]of Object.entries(t.components??{})){l.add(s);for(const[r,c]of Object.entries(i.layersById)){l.add(r);for(const d of c.blocks)l.add(d.id)}}for(const s of Object.keys(t.assets))l.add(s);for(const s of Object.keys(t.audio))l.add(s);for(const s of t.markers??[])l.add(s.id);return l}function Ea(t){return t.components??rS}const rS=Object.freeze({});function or(t){let l=-1;for(const s of Object.values(t.layersById))l=Math.max(l,s.order);return l+1}function cS(t,l){const s=t.scenesById[l.sceneId];if(s===void 0)throw new Error(`no scene "${l.sceneId}"`);const i=Nt(t),r=l.layer.id??yt(i,Ma,l.slug??l.layer.kind),c={...l.layer,id:r,order:l.layer.order??or(s)},d={...s.layersById,[r]:c};let m=s.layers;if(l.parent===void 0)m=[...s.layers,r];else{const h=d[l.parent];if(h===void 0)throw new Error(`no parent layer "${l.parent}"`);d[l.parent]=hS(h,[...dt(h),r])}return Z0(t,l.sceneId,{...s,layers:m,layersById:d})}function K0(t,l,s,i="shot"){const r=t.scenesById[l];if(r===void 0)throw new Error(`no scene "${l}"`);const c=yt(Nt(t),N1,i),d={...s,id:c},m=[...r.shots,d].sort((h,g)=>h.frame-g.frame);return Z0(t,l,{...r,shots:m})}function uS(t,l,s=l.asset){const i=yt(Nt(t),A1,s);return{...t,audio:{...t.audio,[i]:{...l,id:i}}}}function mg(t,l,s){const i=t.audio[l];return i===void 0?t:{...t,audio:{...t.audio,[l]:{...i,...s,id:l}}}}function dS(t,l){if(t.audio[l]===void 0)return t;const s={...t.audio};return delete s[l],{...t,audio:s}}function fS(t,l,s="marker"){const i=yt(Nt(t),C1,s);return{...t,markers:q0([...t.markers??[],{...l,id:i}])}}function hg(t,l,s){const i=t.markers??[],r=i.findIndex(d=>d.id===l);if(r<0)return t;const c=[...i];return c[r]={...i[r],...s,id:l},{...t,markers:q0(c)}}function mS(t,l){const s=t.markers??[],i=s.filter(r=>r.id!==l);return i.length===s.length?t:{...t,markers:i}}function q0(t){return t.sort((l,s)=>l.frame-s.frame)}function Z0(t,l,s){return{...t,scenesById:{...t.scenesById,[l]:s}}}function hS(t,l){const s=Xn(t,l);if(s===t)throw new Error(`layer kind "${t.kind}" cannot have children`);return s}function Q0(t){let l=!1,s,i;return(...r)=>(l&&r.length===s.length&&r.every((c,d)=>Object.is(c,s[d]))||(i=t(...r),s=r,l=!0),i)}const bn=Q0(U1),pg=Q0(Wa),pS=Object.freeze({phone:{inset:.028,radius:.12,depth:.11,color:"#1d1d1f"},tablet:{inset:.034,radius:.055,depth:.033,color:"#2c2c2e"},browser:{inset:.006,topInset:.032,radius:.01,depth:.012,color:"#26262b"}}),gS=Object.freeze(Object.keys(pS).sort());function yS(t){return t.kind==="instance"}function vS(t){const l=[],s=i=>{for(const r of Object.keys(i??{}).sort()){const c=i[r];c!==void 0&&yS(c)&&l.push(c)}};for(const i of Object.keys(t.scenesById).sort())s(t.scenesById[i]?.layersById);for(const i of Object.keys(t.components??{}).sort())s(t.components[i]?.layersById);return l}function bS(t){return t.availability==="inferred"?{source:"snapshot",contract:j1(t.contract)}:{source:t.availability}}function xS(t,l){const s=[],i=new Map,r=c=>(i.has(c)||i.set(c,l(c)),i.get(c));for(const c of vS(t)){const{component:d,contractHash:m,contract:h}=c.instance,g=r(d);if(g===null)continue;const v={layerId:c.id,layerLabel:c.label,component:d};h!==void 0&&h.source!=="snapshot"&&g.availability==="inferred"?s.push({...v,code:"declared-contract-gone",message:`instance "${c.label}" (${c.id}) imports a declared contract from ${JSON.stringify(d)}, but that component no longer declares one — the generated import will not resolve. Re-bind the instance to snapshot its inferred contract.`}):h!==void 0&&h.source==="snapshot"&&g.availability!=="inferred"&&s.push({...v,code:"stale-snapshot",message:`instance "${c.label}" (${c.id}) carries a frozen snapshot of ${JSON.stringify(d)}, which now declares its own contract. Re-bind the instance to import it instead of shipping a copy.`}),m!==void 0&&m!==g.contract.contractHash&&s.push({...v,code:"contract-hash",message:`instance "${c.label}" (${c.id}) was bound to ${JSON.stringify(d)} at contract ${m}, but the component's contract is now ${g.contract.contractHash} — its props may no longer match. Re-bind it in the shot editor.`})}return s}function J0(t,l,s){const i=[],r=[];for(const d of Object.keys(t).sort()){const m=l?.keys[d]??s.keys[d],h=m===void 0?null:F0(m);if(m===void 0||h===null){r.push(d);continue}i.push({trackId:d,key:d,kind:h.kind,status:"bound",contractKind:m.kind})}return[...k1(i,s).ops,...r.map(d=>({op:"orphan",trackId:d,key:d}))]}function SS(t){return t.filter(l=>l.op==="orphan").map(l=>l.key)}function kS(t,l){const s={...t};for(const i of l){if(i.op!=="rebind")continue;const r=s[i.fromKey];r!==void 0&&(delete s[i.fromKey],s[i.toKey]=r)}return s}const fd=2,Xl=Math.PI/180,wd=Object.freeze({position:[0,0,0],rotation:[[1,0,0],[0,1,0],[0,0,1]]});function hn(t){return{position:[t.position[0],-t.position[1],-t.position[2]],rotation:ES(t.tilt[0]*Xl,t.tilt[1]*Xl,-t.rollDeg*Xl)}}function Td(t,l){return{position:AS(t.position,cr(t.rotation,l.position)),rotation:ey(t.rotation,l.rotation)}}function el(t,l){const s=ty(t.rotation),i=cr(s,CS(l.position,t.position)),r=ey(s,l.rotation),[c,d,m]=NS(r);return{position:[i[0],-i[1],-i[2]],tilt:[c/Xl,d/Xl],rollDeg:-m/Xl}}function rr(t,l,s,i){const r=MS(t,l);let c=wd;for(let d=0;d<r.length-i;d+=1){const m=t.layersById[r[d]];m!==void 0&&(c=Td(c,s(m)))}return c}const W0=t=>hn(t.transform);function Kn(t,l){return rr(t,l,W0,0)}function Gu(t,l,s,i){return rr(t,l,r=>hn(Pa(r,s,i)),0)}function P0(t,l){return rr(t,l,W0,1)}function Ro(t,l,s,i){return rr(t,l,r=>hn(Pa(r,s,i)),1)}function Wi(t,l){const s=cr(ty(t.rotation),[l[0],-l[1],-l[2]]);return[s[0],-s[1],-s[2]]}function jS(t,l){const s=cr(t.rotation,[l[0],-l[1],-0]);return[s[0],-s[1],-s[2]]}function MS(t,l){if(t.layersById[l]===void 0)return[];const s=new Map;for(const[c,d]of Object.entries(t.layersById))for(const m of dt(d))s.set(m,c);const i=[];let r=l;for(let c=0;r!==void 0&&c<=Object.keys(t.layersById).length;c+=1)i.push(r),r=s.get(r);return i.reverse()}function ES(t,l,s){const i=Math.cos(t),r=Math.sin(t),c=Math.cos(l),d=Math.sin(l),m=Math.cos(s),h=Math.sin(s);return[[m*c,m*d*r-h*i,m*d*i+h*r],[h*c,h*d*r+m*i,h*d*i-m*r],[-d,c*r,c*i]]}function NS(t){const l=wS(t[2][0],-1,1),s=Math.asin(-l);return Math.abs(l)<.9999999?[Math.atan2(t[2][1],t[2][2]),s,Math.atan2(t[1][0],t[0][0])]:[0,s,Math.atan2(-t[0][1],t[1][1])]}function ey(t,l){const s=[[0,0,0],[0,0,0],[0,0,0]];for(let i=0;i<3;i+=1)for(let r=0;r<3;r+=1)s[i][r]=t[i][0]*l[0][r]+t[i][1]*l[1][r]+t[i][2]*l[2][r];return s}function ty(t){return[[t[0][0],t[1][0],t[2][0]],[t[0][1],t[1][1],t[2][1]],[t[0][2],t[1][2],t[2][2]]]}function cr(t,l){return[t[0][0]*l[0]+t[0][1]*l[1]+t[0][2]*l[2],t[1][0]*l[0]+t[1][1]*l[1]+t[1][2]*l[2],t[2][0]*l[0]+t[2][1]*l[1]+t[2][2]*l[2]]}function AS(t,l){return[t[0]+l[0],t[1]+l[1],t[2]+l[2]]}function CS(t,l){return[t[0]-l[0],t[1]-l[1],t[2]-l[2]]}function wS(t,l,s){return t<l?l:t>s?s:t}const TS=1,OS=16384,Na=.001;function DS(t){switch(t){case"move":case"depth":return["offset"];case"resize":case"scale":return["scale"];case"tilt":return["tilt"];case"roll":return["roll"]}}function zS(t,l,s,i){if(!DS(l).includes("scale"))return null;const r=sl(t,s,i),[c,d]=r.scale;return Math.abs(c)>=Na&&Math.abs(d)>=Na?null:`"${t.label}" is scaled to nothing by a block at this frame, so there is no size that would put its edges where you dragged them. Move the playhead out of the block, or turn on Animate (⇧A) to change the block itself.`}function _S(t,l,s,i,r,c){const d=t.scenesById[l];if(d===void 0)return{doc:t,refusals:[]};if(i.kind==="scale"&&!(typeof i.ratio=="number"&&Number.isFinite(i.ratio)&&i.ratio>0))return{doc:t,refusals:[`A scale needs a positive factor, and this one asked for ${String(i.ratio)} — nothing was changed.`]};const m=[],h={...d.layersById};let g=!1;for(const v of s){const x=h[v];if(x===void 0)continue;if(x.locked===!0){m.push(`"${x.label}" is locked, so it did not move — unlock it to include it.`);continue}const E=zS(x,i.kind,r,c);if(E!==null){m.push(E);continue}const M=BS(d,x,i,r,c),k=ny(x.transform,M,sl(x,r,c).scale);k!==x.transform&&(h[v]={...x,transform:k},g=!0)}return g?{doc:{...t,scenesById:{...t.scenesById,[l]:{...d,layersById:h}}},refusals:m}:{doc:t,refusals:m}}function BS(t,l,s,i,r){switch(s.kind){case"move":{const c=Ro(t,l.id,i,r),[d,m,h]=Wi(c,[s.dx,s.dy,s.dz??0]);return{...s,dx:d,dy:m,dz:h}}case"depth":{const c=Ro(t,l.id,i,r),[d,m,h]=Wi(c,[0,0,s.dy]);return{kind:"move",dx:d,dy:m,dz:h}}case"resize":{const c=Gu(t,l.id,i,r),[d,m]=Wi(c,[s.dx,s.dy,s.dz??0]);return{...s,dx:d,dy:m}}case"scale":{if(s.pivot===null||s.pivot===void 0)return{...s,dx:0,dy:0,dz:0};const c=s.ratio??1,d=s.axis==="y"?1:c,m=s.axis==="x"?1:c,h=s.axis===void 0||s.axis==="both"?c:1,g=Gu(t,l.id,i,r),v=[g.position[0],-g.position[1],-g.position[2]],x=[(v[0]-s.pivot[0])*(d-1),(v[1]-s.pivot[1])*(m-1),(v[2]-s.pivot[2])*(h-1)],E=Ro(t,l.id,i,r),[M,k,D]=Wi(E,x);return{...s,dx:M,dy:k,dz:D}}case"roll":{if(s.pivot===null||s.pivot===void 0)return s;const c=Gu(t,l.id,i,r),d=[c.position[0],-c.position[1],-c.position[2]],m=s.dx*(Math.PI/180),h=Math.cos(m),g=Math.sin(m),v=d[0]-s.pivot[0],x=d[1]-s.pivot[1],E=[v*h-x*g-v,v*g+x*h-x,0],M=Ro(t,l.id,i,r),[k,D,_]=Wi(M,E);return{...s,offset:[k,D,_]}}case"tilt":return s}}function ny(t,l,s=[1,1]){const i=LS(t,l,s);return RS(t,i)?t:i}function RS(t,l){return t.position[0]===l.position[0]&&t.position[1]===l.position[1]&&t.position[2]===l.position[2]&&t.size[0]===l.size[0]&&t.size[1]===l.size[1]&&t.tilt[0]===l.tilt[0]&&t.tilt[1]===l.tilt[1]&&t.rollDeg===l.rollDeg}function LS(t,l,s){switch(l.kind){case"move":return{...t,position:[t.position[0]+l.dx,t.position[1]+l.dy,t.position[2]+(l.dz??0)]};case"depth":return{...t,position:[t.position[0],t.position[1],t.position[2]+l.dy]};case"tilt":return{...t,tilt:[t.tilt[0]+l.dy,t.tilt[1]+l.dx]};case"roll":{const i={...t,rollDeg:t.rollDeg+l.dx},r=l.offset;return r===void 0?i:{...i,position:[t.position[0]+r[0],t.position[1]+r[1],t.position[2]+r[2]]}}case"resize":return IS(t,l,s);case"scale":{const i=l.ratio??1,r=l.axis==="y"?1:i,c=l.axis==="x"?1:i;return{...t,size:[tl(t.size[0]*r),tl(t.size[1]*c)],position:[t.position[0]+l.dx,t.position[1]+l.dy,t.position[2]+(l.dz??0)]}}}}function IS(t,l,s){const i=l.handle;if(i===void 0)return t;let r=i.sx===0?0:l.dx/gg(s[0]),c=i.sy===0?0:l.dy/gg(s[1]);const[d,m]=t.size;if(l.keepAspect===!0&&i.sx!==0&&i.sy!==0&&m!==0){const k=d/m;Math.abs(r)>Math.abs(c*k)?c=r/k*i.sx*i.sy:r=c*k*i.sx*i.sy}const h=l.aboutCentre===!0?2:1,g=tl(d+i.sx*r*h),v=tl(m+i.sy*c*h),x=l.aboutCentre===!0||i.sx===0||g!==d+i.sx*r,E=l.aboutCentre===!0||i.sy===0||v!==m+i.sy*c,M=jS(hn(t),[x?0:r/2,E?0:c/2,0]);return{...t,size:[g,v],position:[t.position[0]+M[0],t.position[1]+M[1],t.position[2]+M[2]]}}function tl(t){return Math.min(OS,Math.max(TS,t))}function gg(t){return Math.abs(t)<Na?1:t}function ds(t,l,s){const i=sl(t,l,s),r=t.transform;return{...r,position:[r.position[0]+i.offset[0],r.position[1]+i.offset[1],r.position[2]+i.offset[2]],size:[r.size[0]*i.scale[0],r.size[1]*i.scale[1]],tilt:[r.tilt[0]+i.tilt[0],r.tilt[1]+i.tilt[1]],rollDeg:r.rollDeg+i.roll,opacity:r.opacity*i.opacity}}function US(t,l,s,i,r){const c=t.transform,d=sl(t,i,r),m=ds(t,i,r);switch(l){case"x":case"y":case"z":{const h=l==="x"?0:l==="y"?1:2,g=[...c.position];return g[h]=c.position[h]+(s-m.position[h]),{transform:{...c,position:g},refusal:null}}case"w":case"h":{const h=l==="w"?0:1,g=d.scale[h];if(Math.abs(g)<Na)return{transform:c,refusal:HS(t)};const v=[...c.size];return v[h]=tl(s/g),{transform:{...c,size:v},refusal:null}}case"tiltX":case"tiltY":{const h=l==="tiltX"?0:1,g=[...c.tilt];return g[h]=c.tilt[h]+(s-m.tilt[h]),{transform:{...c,tilt:g},refusal:null}}case"roll":return{transform:{...c,rollDeg:c.rollDeg+(s-m.rollDeg)},refusal:null};case"opacity":return Math.abs(d.opacity)<Na?{transform:c,refusal:FS(t)}:{transform:{...c,opacity:$S(s/d.opacity)},refusal:null}}}function HS(t){return`"${t.label}" is scaled to nothing by a block at this frame, so no size would render at the value you typed. Move the playhead out of the block, or turn on Animate (⇧A) to change the block itself.`}function FS(t){return`"${t.label}" is faded out by a block at this frame, so no opacity would render at the value you typed. Move the playhead out of the block, or turn on Animate (⇧A).`}function $S(t){return t<0?0:t>1?1:t}function GS(t,l,s,i,r){if(t.length===0||r<=0)return{dx:i.dx,dy:i.dy,guides:[]};const c=[0,-s.width/2,s.width/2],d=[0,-s.height/2,s.height/2];for(const v of l)c.push(v.position[0],v.position[0]-v.size[0]/2,v.position[0]+v.size[0]/2),d.push(v.position[1],v.position[1]-v.size[1]/2,v.position[1]+v.size[1]/2);const m=vg(t.flatMap(v=>yg(v.position[0],v.size[0])),c,i.dx,r),h=vg(t.flatMap(v=>yg(v.position[1],v.size[1])),d,i.dy,r),g=[];return m!==null&&g.push({axis:"x",at:m.at}),h!==null&&g.push({axis:"y",at:h.at}),{dx:m?.delta??i.dx,dy:h?.delta??i.dy,guides:g}}function yg(t,l){return[t-l/2,t,t+l/2]}function vg(t,l,s,i){let r=null;for(const c of t){const d=c+s;for(const m of l){const h=Math.abs(d-m);h>i||r!==null&&h>=r.distance||(r={delta:s+(m-d),at:m,distance:h})}}return r===null?null:{delta:r.delta,at:r.at}}const Od={type:"spring",stiffness:180,damping:22,mass:1},qn=2;function ay(t,l,s){let i=t.lifetime?.in??0;for(const r of t.blocks)r.slot===l&&(i=Math.max(i,r.frame+Math.max(1,Math.trunc(r.durationFrames))));return Math.max(0,Math.min(i,s-qn))}function YS(t){switch(t.kind){case"move":case"depth":return"move";case"tilt":return"tilt";case"roll":return"roll";case"resize":case"scale":return"scale"}}function VS(t,l,s,i,r,c){const d=t.scenesById[l],m=YS(i);if(d===void 0||m===null)return{doc:t,refusals:[],blockIds:[]};if(r<qn)return{doc:t,refusals:[`Animate authors a block that ENDS at the playhead, and the playhead is at frame ${r} — move it later in the scene, or turn Animate off (⇧A) to edit the layer's own values.`],blockIds:[]};if(i.pivot!==null&&i.pivot!==void 0||i.kind==="scale"&&(i.axis==="x"||i.axis==="y"))return{doc:t,refusals:["An animate block carries ONE scale factor or ONE angle, about the layer's own centre — so a shared pivot or a single-axis scale has no block form. Turn Animate off (⇧A) to make this edit, or scale uniformly."],blockIds:[]};const h=[],g=[],v={...d.layersById},x=Nt(t);let E=!1;for(const M of s){const k=v[M];if(k===void 0)continue;if(k.locked===!0){h.push(`"${k.label}" is locked, so no block was written — unlock it to animate it.`);continue}const D=ly(k,m,r),_=D?.frame??ay(k,"during",r),z=XS(m,i,k,_,c,D);if(z===null){h.push(iy(k));continue}if(D!==void 0){const L=k.blocks.map(U=>U.id===D.id?{...U,params:z}:U);v[M]={...k,blocks:L},g.push(D.id),E=!0;continue}const G=yt(x,cs,`during-${m}`);x.add(G);const C={id:G,slot:"during",preset:m,params:z,frame:_,durationFrames:Math.max(qn,r-_),ease:Od};v[M]={...k,blocks:[...k.blocks,C]},g.push(G),E=!0}return E?{doc:{...t,scenesById:{...t.scenesById,[l]:{...d,layersById:v}}},refusals:h,blockIds:g}:{doc:t,refusals:h,blockIds:g}}function ly(t,l,s){return t.blocks.find(i=>i.slot==="during"&&i.preset===l&&i.frame+Math.max(1,Math.trunc(i.durationFrames))===s)}function XS(t,l,s,i,r,c){const d=m=>{const h=c?.params[m];return typeof h=="number"?h:0};switch(t){case"move":return{dx:d("dx")+(l.kind==="depth"?0:l.dx),dy:d("dy")+(l.kind==="depth"?0:l.dy),dz:d("dz")+(l.kind==="depth"?l.dy:l.dz??0)};case"tilt":return{dx:d("dx")+l.dy,dy:d("dy")+l.dx};case"roll":return{deg:d("deg")+l.dx};case"scale":{const m=typeof c?.params.to=="number"?c.params.to:1;if(l.kind==="scale")return{from:1,to:md(m*(l.ratio??1))};const g=Pa(s,i,r).size[0];if(Math.abs(g)<Na)return null;const v=l.handle,x=v===void 0||v.sx===0?l.dy:l.dx;return{from:1,to:md(m+x/g)}}default:return{}}}const KS=.01,qS=100;function md(t){return Number.isFinite(t)?Math.min(qS,Math.max(KS,t)):1}function iy(t){return`"${t.label}" has no width to scale from at this frame, so Animate cannot express the resize as a block. Turn Animate off (⇧A) to resize the layer itself.`}const ZS={x:"move",y:"move",z:"move",w:"scale",h:"scale",tiltX:"tilt",tiltY:"tilt",roll:"roll",opacity:"fade"};function QS(t,l,s,i,r,c,d){const m=t.scenesById[l];if(m===void 0)return{doc:t,refusals:[],blockIds:[]};if(c<qn)return{doc:t,refusals:[`Animate authors a block that ENDS at the playhead, and the playhead is at frame ${c} — move it later in the scene, or turn Animate off (⇧A) to edit the layer's own values.`],blockIds:[]};const h=ZS[i],g=[],v=[],x={...m.layersById},E=Nt(t);let M=!1;for(const k of s){const D=x[k];if(D===void 0)continue;if(D.locked===!0){g.push(`"${D.label}" is locked, so no block was written — unlock it to animate it.`);continue}const _=ly(D,h,c),z=JS(i,r,D,c,d,_);if("refusal"in z){g.push(z.refusal);continue}if(_!==void 0){const U=D.blocks.map(T=>T.id===_.id?{...T,params:z.params}:T);x[k]={...D,blocks:U},v.push(_.id),M=!0;continue}const G=yt(E,cs,`during-${h}`);E.add(G);const C=ay(D,"during",c),L={id:G,slot:"during",preset:h,params:z.params,frame:C,durationFrames:Math.max(qn,c-C),ease:Od};x[k]={...D,blocks:[...D.blocks,L]},v.push(G),M=!0}return M?{doc:{...t,scenesById:{...t.scenesById,[l]:{...m,layersById:x}}},refusals:g,blockIds:v}:{doc:t,refusals:g,blockIds:v}}function JS(t,l,s,i,r,c){const d=ds(s,i,r),m=(h,g)=>{const v=c?.params[h];return typeof v=="number"?v:g};switch(t){case"x":case"y":case"z":{const h=t==="x"?0:t==="y"?1:2,g=t==="x"?"dx":t==="y"?"dy":"dz";return{params:{dx:m("dx",0),dy:m("dy",0),dz:m("dz",0),[g]:m(g,0)+(l-d.position[h])}}}case"tiltX":case"tiltY":{const h=t==="tiltX"?"dx":"dy",g=t==="tiltX"?0:1;return{params:{dx:m("dx",0),dy:m("dy",0),[h]:m(h,0)+(l-d.tilt[g])}}}case"roll":return{params:{deg:m("deg",0)+(l-d.rollDeg)}};case"w":case"h":{const h=d.size[t==="w"?0:1];if(Math.abs(h)<Na)return{refusal:iy(s)};const g=md(m("to",1)*(l/h));return{params:{from:c===void 0?1:m("from",.9),to:g}}}case"opacity":{const h=d.opacity;if(Math.abs(h)<Na)return{refusal:`"${s.label}" is fully transparent at this frame, and opacity composes by multiplying — no fade can bring 0 up to the value typed. Turn Animate off (⇧A) to set the layer's own opacity.`};const g=Math.max(0,m("to",1)*(l/h));return{params:{from:c===void 0?1:m("from",0),to:g}}}}}function WS(t,l,s,i,r,c,d){const m=t.scenesById[l];if(m===void 0||s.length===0)return{doc:t,blockIds:[],refusals:[]};const h=Nt(t),g={...m.layersById},v=[],x=[];let E=!1;for(const M of s){const k=g[M];if(k===void 0)continue;if(k.locked===!0){x.push(`"${k.label}" is locked, so no block was written — unlock it to animate it.`);continue}const D=PS(k,m,i,c,d),_=yt(h,cs,`${i}-${r}`);h.add(_);const z={id:_,slot:i,preset:r,params:{},frame:D,durationFrames:Math.max(qn,Math.trunc(c)),ease:Od};g[M]={...k,blocks:[...k.blocks,z]},v.push(_),E=!0}return E?{doc:{...t,scenesById:{...t.scenesById,[l]:{...m,layersById:g}}},blockIds:v,refusals:x}:{doc:t,blockIds:v,refusals:x}}function PS(t,l,s,i,r){const c=t.lifetime,d=c?.in??0,m=c?.out??l.durationFrames;return s==="in"?d:s==="out"?Math.max(d,m-Math.max(1,Math.trunc(i))):Math.max(0,Math.min(r,m-qn))}function ek(t,l,s,i,r){const c=t.scenesById[l],d=c?.layersById[s];if(c===void 0||d===void 0)return t;let m=!1;const h=d.blocks.map(g=>g.id!==i||g.preset===r?g:(m=!0,{...g,preset:r,params:{}}));return m?{...t,scenesById:{...t.scenesById,[l]:{...c,layersById:{...c.layersById,[s]:{...d,blocks:h}}}}}:t}function tk(t,l,s,i,r){const c=t.scenesById[l],d=c?.layersById[s];if(c===void 0||d===void 0)return t;let m=!1;const h=d.blocks.map(g=>g.id!==i?g:(m=!0,{...g,params:{...g.params,...r}}));return m?{...t,scenesById:{...t.scenesById,[l]:{...c,layersById:{...c.layersById,[s]:{...d,blocks:h}}}}}:t}const nl=1,hd=1;function sy(t){return t.ease?.type==="spring"}function Ql(t,l,s){return{...t,scenesById:{...t.scenesById,[l]:s}}}function Dd(t,l,s,i,r){const c=t.scenesById[l],d=c?.layersById[s];if(c===void 0||d===void 0)return t;const m=d.blocks.findIndex(x=>x.id===i);if(m<0)return t;const h=d.blocks[m],g=r(h);if(g.frame===h.frame&&g.durationFrames===h.durationFrames&&g.ease===h.ease&&g.params===h.params)return t;const v=[...d.blocks];return v[m]=g,Ql(t,l,{...c,layersById:{...c.layersById,[s]:{...d,blocks:v}}})}function bg(t,l,s,i,r){return Dd(t,l,s,i,c=>({...c,frame:Math.max(0,Math.round(r))}))}function xg(t,l,s,i,r,c){return Dd(t,l,s,i,d=>{const m=Math.round(c);if(r==="out")return{...d,durationFrames:Math.max(nl,m-d.frame)};const h=d.frame+d.durationFrames,g=Math.max(0,Math.min(h-nl,m));return{...d,frame:g,durationFrames:h-g}})}function nk(t,l,s,i,r){const c=t.scenesById[l],d=c?.layersById[s];if(c===void 0||d===void 0)return{doc:t,id:null};const m=d.blocks.findIndex(k=>k.id===i);if(m<0)return{doc:t,id:null};const h=d.blocks[m],g=Math.round(r);if(g<=h.frame||g>=h.frame+h.durationFrames)return{doc:t,id:null};const v=yt(Nt(t),cs,`${h.slot}-${h.preset}`),x={...h,durationFrames:g-h.frame},E={...h,id:v,frame:g,durationFrames:h.frame+h.durationFrames-g},M=[...d.blocks];return M.splice(m,1,x,E),{doc:Ql(t,l,{...c,layersById:{...c.layersById,[s]:{...d,blocks:M}}}),id:v}}function Yu(t,l,s,i){const r=t.scenesById[l],c=r?.layersById[s];if(r===void 0||c===void 0)return t;const d=c.blocks.filter(m=>m.id!==i);return d.length===c.blocks.length?t:Ql(t,l,{...r,layersById:{...r.layersById,[s]:{...c,blocks:d}}})}function ak(t,l,s,i,r){return Dd(t,l,s,i,c=>r===void 0?lk(c):{...c,ease:r})}function lk(t){if(t.ease===void 0)return t;const{ease:l,...s}=t;return s}function ik(t,l,s,i){return oy(t,l,s,r=>({...r,frame:Math.max(0,Math.round(i))}))}function sk(t,l,s,i,r){return oy(t,l,s,c=>{const d=Math.round(r);if(i==="out")return{...c,durationFrames:Math.max(nl,d-c.frame)};const m=c.frame+c.durationFrames,h=Math.max(0,Math.min(m-nl,d));return{...c,frame:h,durationFrames:m-h}})}function ok(t,l,s){const i=t.scenesById[l];if(i===void 0)return t;const r=i.shots.filter(c=>c.id!==s);return r.length===i.shots.length?t:Ql(t,l,{...i,shots:r})}function oy(t,l,s,i){const r=t.scenesById[l];if(r===void 0)return t;const c=r.shots.findIndex(g=>g.id===s);if(c<0)return t;const d=r.shots[c],m=i(d);if(m.frame===d.frame&&m.durationFrames===d.durationFrames)return t;const h=[...r.shots];return h[c]=m,h.sort((g,v)=>g.frame-v.frame),Ql(t,l,{...r,shots:h})}function Sg(t,l,s){const i=t.scenesById[l];if(i===void 0)return t;const r=Math.max(hd,Math.round(s));return r===i.durationFrames?t:Ql(t,l,{...i,durationFrames:r})}function rk(t,l,s){const i=t.scenes.indexOf(l);if(i<0)return t;const r=Math.max(0,Math.min(t.scenes.length-1,Math.trunc(s)));if(r===i)return t;const c=[...t.scenes];return c.splice(i,1),c.splice(r,0,l),{...t,scenes:c}}function ck(t,l,s){const i=t.scenesById[l];if(i===void 0)return{doc:t,id:null};const r=Math.round(s);if(r<hd||r>i.durationFrames-hd)return{doc:t,id:null};const c=Nt(t),d=new Map,m=(_,z)=>{const G=yt(c,z,`${_.replace(z,"")}-b`);return c.add(G),d.set(_,G),G},h=m(l,"sc_"),g={};for(const[_,z]of Object.entries(i.layersById)){const G=m(_,"l3_"),C={...z,id:G,blocks:z.blocks.filter(U=>U.frame+U.durationFrames>r).map(U=>({...U,id:m(U.id,cs),frame:Math.max(0,U.frame-r)}))};let L=C.lifetime===void 0?C:{...C,lifetime:{in:Math.max(0,C.lifetime.in-r),out:C.lifetime.out-r}};L.kind==="video"?L={...L,video:{...L.video,offsetFrames:(L.video.offsetFrames??0)-r}}:L.kind==="mesh"&&L.mesh.clipStartFrame!==void 0?L={...L,mesh:{...L.mesh,clipStartFrame:L.mesh.clipStartFrame-r}}:L.kind==="instance"&&L.instance.clockOffsetFrames!==void 0&&(L={...L,instance:{...L.instance,clockOffsetFrames:L.instance.clockOffsetFrames+r}}),g[G]=L}for(const[_,z]of Object.entries(g)){const G=dt(z);let C=G.length===0?z:Xn(z,G.map(L=>d.get(L)??L));if(C.kind==="cloner"&&C.cloner.overrides!==void 0){const L={};for(const[U,T]of Object.entries(C.cloner.overrides))L[U]=typeof T?.content=="string"?{...T,content:d.get(T.content)??T.content}:T;C={...C,cloner:{...C.cloner,overrides:L}}}g[_]=C}const v={...i,id:h,name:`${i.name} (2)`,durationFrames:i.durationFrames-r,layers:i.layers.map(_=>d.get(_)??_),layersById:g,shots:i.shots.filter(_=>_.frame+_.durationFrames>r).map(_=>({..._,id:m(_.id,"sh_"),frame:Math.max(0,_.frame-r)}))},{transition:x,...E}=i,M={...E,durationFrames:r,shots:i.shots.filter(_=>_.frame<r)},k=t.scenes.indexOf(l),D=[...t.scenes];return D.splice(k+1,0,h),{doc:{...t,scenes:D,scenesById:{...t.scenesById,[l]:M,[h]:v}},id:h}}function uk(t,l,s){const i=t.scenesById[l];if(i===void 0)return t;if(s===null){if(i.transition===void 0)return t;const{transition:d,...m}=i;return{...t,scenesById:{...t.scenesById,[l]:m}}}const r=Math.max(pd,Math.trunc(s.durationFrames)),c={kind:s.kind,durationFrames:r,...s.params===void 0?{}:{params:s.params}};return{...t,scenesById:{...t.scenesById,[l]:{...i,transition:c}}}}const pd=1,zd=.05,_d=50,Vu=nl;function ry(t,l){let s=null;for(const i of t.shots){if(i.frame>l)break;s=i}return s}function dk(t,l){return t.shots.find(s=>l>=s.frame&&l<=s.frame+cy(s))}function fk(t,l){const s=Number.isFinite(l.dzoom)&&l.dzoom>0?l.dzoom:1;return{...t,x:t.x+(Number.isFinite(l.dx)?l.dx:0),y:t.y+(Number.isFinite(l.dy)?l.dy:0),zoom:t.zoom*s}}function mk(t,l,s,i,r,c){const d=t.scenesById[l];if(d===void 0)return{doc:t,refusal:null};const m=Math.max(0,Math.trunc(s));if(!r){const E=ry(d,m);if(E!==null)return{doc:t,refusal:hk(E)};const M=Xu(c(d.camera));return Ku(M,d.camera)?{doc:t,refusal:null}:{doc:jg(t,l,{...d,camera:M}),refusal:null}}if(m<Vu)return{doc:t,refusal:`Animate authors a camera move that ENDS at the playhead, and the playhead is at frame ${m} — move it later in the scene, or turn Animate off (⇧A) to set the scene's own framing.`};const h=dk(d,m);if(h?.kind==="path")return{doc:t,refusal:`"${h.label}" is a camera PATH, and a drag can only reshape a two-pose move. Edit its waypoints, or put the playhead outside the path to author a new move.`};if(h!==void 0){const E=Xu(c(h.to));if(Ku(E,h.to))return{doc:t,refusal:null};const M=d.shots.map(k=>k.id===h.id?{...k,to:E}:k);return{doc:jg(t,l,{...d,shots:M}),refusal:null}}const g=Math.max(0,Math.min(pk(d,m),m-Vu)),v=os(d,g,i),x=Xu(c(v));return Ku(x,v)?{doc:t,refusal:null}:{doc:K0(t,l,{label:"Camera move",kind:"dolly",from:v,to:x,frame:g,durationFrames:Math.max(Vu,m-g)},"camera-move"),refusal:null}}function kg(t,l,s,i,r,c){let d=1/0,m=1/0,h=-1/0,g=-1/0;for(const _ of l){const z=t.layersById[_];if(z===void 0)continue;const G=ds(z,s,i);d=Math.min(d,G.position[0]-G.size[0]/2),h=Math.max(h,G.position[0]+G.size[0]/2),m=Math.min(m,G.position[1]-G.size[1]/2),g=Math.max(g,G.position[1]+G.size[1]/2)}if(!Number.isFinite(d)||!Number.isFinite(m))return null;const v=Math.max(.01,1-c*2),x=h-d,E=g-m,M=x>0?r.width*v/x:1/0,k=E>0?r.height*v/E:1/0,D=Math.min(M,k);return Number.isFinite(D)?{x:(d+h)/2,y:(m+g)/2,zoom:uy(D)}:null}function hk(t){return`The camera here is set by the shot "${t.label}", which holds its framing from frame ${t.frame} on — so moving the scene's own camera would change a value you cannot see. Turn on Animate (⇧A) to author the move itself, or put the playhead before "${t.label}".`}function pk(t,l){let s=0;for(const i of t.shots){const r=i.frame+cy(i);if(r>l)break;s=Math.max(s,r)}return s}function cy(t){return Math.max(1,Math.trunc(t.durationFrames))}function uy(t){return Math.max(zd,Math.min(_d,t))}function Xu(t){return{x:Pi(t.x,0),y:Pi(t.y,0),zoom:uy(Pi(t.zoom,1)),rollDeg:Pi(t.rollDeg,0),focusZ:Pi(t.focusZ,0)}}function Pi(t,l){return Number.isFinite(t)?t:l}function Ku(t,l){return t.x===l.x&&t.y===l.y&&t.zoom===l.zoom&&t.rollDeg===l.rollDeg&&t.focusZ===l.focusZ}function jg(t,l,s){return{...t,scenesById:{...t.scenesById,[l]:s}}}function dy(t){return t.startsWith($0)}function gt(t,l){if(dy(l)){const i=t.components?.[l];return i===void 0?null:{layers:i.roots,layersById:i.layersById}}const s=t.scenesById[l];return s===void 0?null:{layers:s.layers,layersById:s.layersById}}function Kt(t,l,s){if(dy(l)){const r=t.components?.[l];return r===void 0?t:{...t,components:{...t.components,[l]:{...r,roots:[...s.layers],layersById:s.layersById}}}}const i=t.scenesById[l];return i===void 0?t:{...t,scenesById:{...t.scenesById,[l]:{...i,layers:[...s.layers],layersById:s.layersById}}}}const gk=1e-9;function yk(t,l){for(let s=0;s<3;s+=1)for(let i=0;i<3;i+=1)if(Math.abs(t[s][i]-l[s][i])>gk)return!1;return!0}function vk(t){const l=Math.max(1,Math.trunc(t.durationFrames));for(const s of[0,.25,.5,.75,1]){const i=sr(t.preset,t.slot,t.params,s,s*l);if(i.offset!==void 0&&i.offset.some(r=>r!==0)||i.tilt!==void 0&&i.tilt.some(r=>r!==0)||i.roll!==void 0&&i.roll!==0)return!0}return!1}function Bd(t,l,s){for(const i of l){const r=t.layersById[i];if(r===void 0||yk(bk(t,i),s))continue;const c=r.blocks.find(vk);if(c!==void 0)return`"${r.label}" animates its position or rotation (${c.preset}), and the new parent is rotated differently — the motion would play in a different direction. Remove that block, or match the rotation first.`}return null}function bk(t,l){const s=xk(t,l);return s===null?fy:Kn(t,s).rotation}const fy=[[1,0,0],[0,1,0],[0,0,1]];function xk(t,l){for(const s of Object.values(t.layersById))if(dt(s).includes(l))return s.id;return null}function my(t,l,s){return{...l.transform,...el(s,Kn(t,l.id))}}function Sk(t,l){return{...l,...el(kk,Td(hn(t),hn(l)))}}const kk={position:[0,0,0],rotation:fy},Mg=24;function Aa(t,l){const s=new Set,i=r=>{if(s.has(r))return;s.add(r);const c=t.layersById[r];if(c!==void 0)for(const d of dt(c))i(d)};for(const r of l)i(r);return s}function on(t,l){for(const s of Object.values(t.layersById))if(dt(s).includes(l))return s.id;return null}function jk(t,l,s){let i=l;for(let r=0;r<=Object.keys(t.layersById).length;r+=1){const c=on(t,i);if(c===null||c===s)return i;i=c}return i}function Mk(t,l){const s=Aa(t,l);for(const i of l){let r=i;for(let c=0;c<=Object.keys(t.layersById).length;c+=1){const d=on(t,r);if(d===null)break;s.add(d),r=d}}return s}function Rd(t,l){const s={...t.layersById};for(const i of Object.values(s)){const r=dt(i);r.length===0||!r.some(c=>l.has(c))||(s[i.id]=Xn(i,r.filter(c=>!l.has(c))))}return{layers:t.layers.filter(i=>!l.has(i)),layersById:s}}function hy(t,l,s){const i=gt(t,l);if(i===null||s.length===0)return t;const r=Aa(i,s),c=Rd(i,r),d={};for(const[m,h]of Object.entries(c.layersById))r.has(m)||(d[m]=h);return Object.keys(d).length===Object.keys(i.layersById).length?t:Kt(t,l,{...c,layersById:d})}function Ek(t,l,s){const i=gt(t,l);if(i===null||s.length===0)return{doc:t,ids:[]};const r=Aa(i,s),c=Nt(t),d=new Map;for(const v of r){const x=yt(c,Ma,v.replace(Ma,"")+"-copy");c.add(x),d.set(v,x)}const m={...i.layersById};let h=or(i);for(const v of r){const x=i.layersById[v];if(x===void 0)continue;const E={...x,id:d.get(v),order:h++,transform:{...x.transform,position:s.includes(v)?[x.transform.position[0]+Mg,x.transform.position[1]+Mg,x.transform.position[2]]:x.transform.position}},M=dt(x);m[E.id]=M.length===0?E:Xn(E,M.map(k=>d.get(k)??k))}const g=[...i.layers];for(const v of s){const x=d.get(v);if(x===void 0)continue;const E=on(i,v);if(E===null)g.push(x);else{const M=m[E];M!==void 0&&(m[E]=Xn(M,[...dt(M),x]))}}return{doc:Kt(t,l,{layers:g,layersById:m}),ids:s.map(v=>d.get(v)).filter(v=>v!==void 0)}}function Eg(t,l,s,i){const r=gt(t,l);if(r===null||s.length===0)return t;const c={...r.layersById};let d=!1;for(const m of s){const h=c[m];if(h===void 0)continue;const g={...h};i.hidden!==void 0&&(g.hidden=i.hidden),i.locked!==void 0&&(g.locked=i.locked),!(g.hidden===h.hidden&&g.locked===h.locked)&&(c[m]=g,d=!0)}return d?Kt(t,l,{layers:r.layers,layersById:c}):t}function Nk(t,l,s,i="Group"){return py(t,l,s,2,"group",r=>({...r,kind:"group",label:i,children:[...r.members]}))}function Ak(t,l,s){return py(t,l,s,1,"cloner",i=>({...i,kind:"cloner",label:"Cloner",cloner:{children:[...i.members],count:Ck,mode:{kind:"linear",step:[i.transform.size[0]+wk,0,0]}}}))}const Ck=3,wk=40;function py(t,l,s,i,r,c){const d=gt(t,l);if(d===null||s.length<i)return{doc:t,id:null};const m=Aa(d,s),h=s.filter(q=>{const ae=on(d,q);return ae===null||!m.has(ae)||!s.includes(ae)});if(h.length<i)return{doc:t,id:null};const g=Tk(d,h),v=g===null?wd:Kn(d,g);let x=1/0,E=1/0,M=-1/0,k=-1/0;for(const q of h){const ae=d.layersById[q];if(ae===void 0)continue;const me=el(v,Kn(d,q)).position,se=ae.transform.size;x=Math.min(x,me[0]-se[0]/2),M=Math.max(M,me[0]+se[0]/2),E=Math.min(E,me[1]-se[1]/2),k=Math.max(k,me[1]+se[1]/2)}if(!Number.isFinite(x))return{doc:t,id:null};const D={position:[(x+M)/2,(E+k)/2,0],size:[M-x,k-E],tilt:[0,0],rollDeg:0,opacity:1},_=Bd(d,h,v.rotation);if(_!==null)return{doc:t,id:null,refusal:_};const z=yt(Nt(t),Ma,r),G=c({id:z,order:or(d),transform:D,paint:{},blocks:[],members:h}),C=Td(v,hn(D)),L=Rd(d,new Set(h)),U={...L.layersById,[z]:G};for(const q of h){const ae=d.layersById[q];ae!==void 0&&(U[q]={...ae,transform:my(d,ae,C)})}const T=g===null?{layers:[...L.layers,z],layersById:U}:{layers:L.layers,layersById:{...U,[g]:Xn(U[g],[...dt(U[g]),z])}};return{doc:Kt(t,l,T),id:z}}function Tk(t,l){let s=null;for(const i of l){const r=Ok(t,i);if(s===null){s=r;continue}let c=0;for(;c<s.length&&c<r.length&&s[c]===r[c];)c+=1;s=s.slice(0,c)}return s===null||s.length===0?null:s[s.length-1]}function Ok(t,l){const s=[];let i=on(t,l);for(let r=0;i!==null&&r<=Object.keys(t.layersById).length;r+=1)s.push(i),i=on(t,i);return s.reverse()}function Dk(t,l,s){const i=gt(t,l),r=i?.layersById[s];if(i===null||r===void 0)return{doc:t,ids:[]};const c=[...dt(r)];if(c.length===0)return{doc:hy(t,l,[s]),ids:[]};if(r.blocks.length>0)return{doc:t,ids:[],refusal:`"${r.label}" animates its whole subtree, and nothing can hold that once it is gone. Delete its blocks first, or keep the group.`};const d=P0(i,s),m=Bd(i,c,d.rotation);if(m!==null)return{doc:t,ids:[],refusal:m};const h=on(i,s),g={...i.layersById};delete g[s];for(const x of c){const E=i.layersById[x];E!==void 0&&(g[x]={...E,transform:Sk(r.transform,E.transform)})}let v=i.layers;if(h===null){const x=i.layers.indexOf(s),E=[...i.layers];E.splice(x<0?E.length:x,x<0?0:1,...c),v=E}else{const x=g[h];if(x!==void 0){const E=dt(x),M=E.indexOf(s),k=[...E];k.splice(M<0?k.length:M,M<0?0:1,...c),g[h]=Xn(x,k)}v=i.layers.filter(E=>E!==s)}return{doc:Kt(t,l,{layers:v,layersById:g}),ids:c}}function zk(t,l,s,i){const r=gt(t,l),c=r?.layersById[s];if(r===null||c===void 0)return{doc:t};const d=on(r,s),m=i.parent===void 0?d:i.parent;if(m!==null&&r.layersById[m]===void 0)return{doc:t,refusal:`there is no layer "${m}" in this shot`};if(m!==null&&Aa(r,[s]).has(m))return{doc:t,refusal:`"${c.label}" cannot go inside itself or its own children.`};if(m!==null&&dt(r.layersById[m]).length===0){const D=r.layersById[m];if(!_k.has(D.kind))return{doc:t,refusal:`a ${D.kind} layer cannot hold children.`}}const h=Bk(r,d,s);if(h!==null)return{doc:t,refusal:h};const g=m===null?wd:Kn(r,m),v=Bd(r,[s],g.rotation);if(v!==null)return{doc:t,refusal:v};const x={...c,transform:my(r,c,g)},E=Rd(r,new Set([s])),M={...E.layersById,[s]:x};if(d!==null){const D=M[d];D!==void 0&&D.kind==="device"&&D.device.screen===s&&(M[d]={...D,device:{...D.device,screen:null}})}let k=E.layers;if(m===null){const D=[...k];D.splice(Ng(i.index,D.length),0,s),k=D}else{const D=M[m],_=[...dt(D)];_.splice(Ng(i.index,_.length),0,s),M[m]=Xn(D,_)}return{doc:Kt(t,l,{layers:k,layersById:M})}}const _k=new Set(["group","cloner","device"]);function Bk(t,l,s){if(l===null)return null;const i=t.layersById[l];if(i===void 0||i.kind!=="cloner")return null;if(i.cloner.children.length<=1)return`"${i.label}" would have nothing left to clone. Delete the cloner, or add another template first.`;for(const[r,c]of Object.entries(i.cloner.overrides??{}))if(c.content===s)return`clone ${r} of "${i.label}" is set to use this layer. Clear that override first.`;return null}function Ng(t,l){return t===void 0?l:Math.max(0,Math.min(l,Math.trunc(t)))}function Rk(t,l,s,i){const r=gt(t,l);if(r===null)return t;const c=r.layers.indexOf(s);if(c<0)return t;const d=Math.max(0,Math.min(r.layers.length-1,Math.trunc(i)));if(d===c)return t;const m=[...r.layers];return m.splice(c,1),m.splice(d,0,s),Kt(t,l,{layers:m,layersById:r.layersById})}function Lk(t,l,s,i){const r=gt(t,l);if(r===null||r.layersById[s]===void 0)return t;const c=Object.values(r.layersById).sort((v,x)=>v.order-x.order),d=c.findIndex(v=>v.id===s),m=i==="front"?c.length-1:i==="back"?0:i==="forward"?Math.min(c.length-1,d+1):Math.max(0,d-1);if(m===d)return t;const[h]=c.splice(d,1);c.splice(m,0,h);const g={...r.layersById};for(const[v,x]of c.entries())x.order!==v&&(g[x.id]={...x,order:v});return Kt(t,l,{layers:r.layers,layersById:g})}function Ik(t,l,s,i){const r=gt(t,l),c=r?.layersById[s];if(r===null||c===void 0)return t;const d=i.trim();return d.length===0||d===c.label?t:Kt(t,l,{layers:r.layers,layersById:{...r.layersById,[s]:{...c,label:d}}})}function gy(t){const s=t.replace(/[^A-Za-z0-9]+/g," ").trim().split(/\s+/).map(i=>i.charAt(0).toUpperCase()+i.slice(1)).join("");return/^[A-Z]/.test(s)?s:`Component${s}`}function Uk(t,l,s,i){const r=gt(t,l);if(r===null||s.length===0)return{doc:t,defId:null,instanceId:null};const c=Aa(r,s),d=s.filter(he=>{const ke=on(r,he);return ke===null||!c.has(ke)||!s.includes(ke)});if(d.length===0)return{doc:t,defId:null,instanceId:null};const m=new Set(d.map(he=>on(r,he)));if(m.size>1)return{doc:t,defId:null,instanceId:null,refusal:"These layers live in different groups, and a component is one tree. Group them first, then make the group a component."};const h=[...m][0]??null,g=h===null?Fk:Kn(r,h);let v=1/0,x=1/0,E=-1/0,M=-1/0;for(const he of d){const ke=r.layersById[he];if(ke===void 0)continue;const V=el(g,Kn(r,he)).position,[ne,ue]=ke.transform.size;v=Math.min(v,V[0]-ne/2),E=Math.max(E,V[0]+ne/2),x=Math.min(x,V[1]-ue/2),M=Math.max(M,V[1]+ue/2)}if(!Number.isFinite(v))return{doc:t,defId:null,instanceId:null};const k=[Math.max(1,E-v),Math.max(1,M-x)],D=[(v+E)/2,(x+M)/2,0],_=[...c].map(he=>r.layersById[he]).filter(he=>he!==void 0);let z=1/0;for(const he of _){z=Math.min(z,he.lifetime?.in??0);for(const ke of he.blocks)z=Math.min(z,ke.frame)}const G=Number.isFinite(z)?Math.max(0,Math.trunc(z)):0,C={};for(const he of _){const V=d.includes(he.id)?{...he.transform,...el(hn({position:D,tilt:[0,0],rollDeg:0}),Hk(g,r,he.id))}:he.transform;C[he.id]={...he,transform:V,blocks:he.blocks.map(ne=>({...ne,frame:ne.frame-G})),...he.lifetime===void 0?{}:{lifetime:{in:he.lifetime.in-G,out:he.lifetime.out-G}}}}const L=Nt(t),U=i??r.layersById[d[0]]?.label??"Component",T=gy(U),q=yt(L,$0,gd(T));L.add(q);const ae={id:q,name:T,roots:[...d],layersById:C,size:k,exposed:[]},me=yt(L,Ma,gd(T).toLowerCase()),se={kind:"component",id:me,label:T,order:Math.min(..._.map(he=>he.order)),transform:{position:D,size:k,tilt:[0,0],rollDeg:0,opacity:1},paint:{},blocks:[],...G===0?{}:{lifetime:{in:G,out:Number.MAX_SAFE_INTEGER}},component:{def:q,overrides:{}}},Re={};for(const[he,ke]of Object.entries(r.layersById))c.has(he)||(Re[he]=ke);Re[me]=se;let Fe=r.layers;if(h===null){const he=r.layers.filter(V=>!c.has(V)),ke=r.layers.findIndex(V=>d.includes(V));he.splice(ke<0?he.length:Math.min(ke,he.length),0,me),Fe=he}else{const he=Re[h];if(he!==void 0){const ke=dt(he).filter(V=>!c.has(V));Re[h]=Xn(he,[...ke,me])}Fe=r.layers.filter(ke=>!c.has(ke))}const vt={...t,components:{...Ea(t),[q]:ae}};return{doc:Kt(vt,l,{layers:Fe,layersById:Re}),defId:q,instanceId:me}}function Hk(t,l,s){const i=el(t,Kn(l,s));return hn(i)}const Fk=hn({position:[0,0,0],tilt:[0,0],rollDeg:0});function $k(t,l,s,i){const r=gt(t,l),c=Ea(t)[s];if(r===null||c===void 0)return{doc:t,defId:null,instanceId:null,refusal:`no component "${s}"`};const d=Nt(t),m=yt(d,Ma,gd(c.name).toLowerCase()),h={kind:"component",id:m,label:c.name,order:or(r),transform:{position:[0,0,0],size:[...c.size],tilt:[0,0],rollDeg:0,opacity:1},paint:{},blocks:[],component:{def:s,overrides:{}}};return{doc:Kt(t,l,{layers:[...r.layers,m],layersById:{...r.layersById,[m]:h}}),defId:s,instanceId:m}}function Gk(t,l){const s=Ea(t);if(s[l]===void 0)return{doc:t};const i=Ld(t,l);if(i.length>0){const c=i.slice(0,3).join(", "),d=i.length>3?` and ${i.length-3} more`:"";return{doc:t,refusal:`"${s[l].name}" is still placed in ${c}${d}. Delete those first.`}}const r={...s};if(delete r[l],Object.keys(r).length===0){const{components:c,...d}=t;return{doc:d}}return{doc:{...t,components:r}}}function Ld(t,l){const s=[],i=(r,c)=>{for(const d of Object.values(r))d.kind==="component"&&d.component.def===l&&s.push(`${c} / ${d.label}`)};for(const r of Object.values(t.scenesById))i(r.layersById,r.name);for(const r of Object.values(Ea(t)))r.id!==l&&i(r.layersById,r.name);return s}function Yk(t,l,s){const i=Ea(t)[l],r=gy(s.trim());return i===void 0||r.length===0||r===i.name?t:{...t,components:{...Ea(t),[l]:{...i,name:r}}}}function gd(t){const l=t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"");return l.length===0?"component":l}const Vk=["left","hcenter","right","top","vcenter","bottom","hdistribute","vdistribute"],Xk={left:"x",hcenter:"x",right:"x",top:"y",vcenter:"y",bottom:"y",hdistribute:"x",vdistribute:"y"},Kk=new Set(["hdistribute","vdistribute"]),Ag=3;function qk(t,l,s,i,r){const c=t.scenesById[l];if(c===void 0)return{doc:t,refusal:null};const m=Xk[i]==="x"?0:1,h=t.fps,g=[];for(const E of s){const M=c.layersById[E];if(M===void 0||M.locked===!0)continue;const k=ds(M,r,h);g.push({id:E,centre:k.position[m],extent:k.size[m],offset:sl(M,r,h).offset[m]})}if(g.length===0)return{doc:t,refusal:"Nothing to align — the selection is empty or every layer in it is locked."};const v=Kk.has(i);if(v&&g.length<Ag)return{doc:t,refusal:`Distributing needs at least ${Ag} layers — with two there is nothing between them to space.`};const x=v?Qk(g):Zk(g,i,t,m);return{doc:Jk(t,l,g,x,m),refusal:null}}function Zk(t,l,s,i){const r=(i===0?s.size.width:s.size.height)/2,c=t.length===1?-r:Math.min(...t.map(g=>g.centre-g.extent/2)),d=t.length===1?r:Math.max(...t.map(g=>g.centre+g.extent/2)),m=(c+d)/2,h=new Map;for(const g of t)switch(l){case"left":case"top":h.set(g.id,c+g.extent/2);break;case"right":case"bottom":h.set(g.id,d-g.extent/2);break;default:h.set(g.id,m);break}return h}function Qk(t){const l=[...t].sort((g,v)=>g.centre-v.centre),s=l[0],i=l[l.length-1],r=i.centre+i.extent/2-(s.centre-s.extent/2),c=l.reduce((g,v)=>g+v.extent,0),d=(r-c)/(l.length-1),m=new Map;let h=s.centre-s.extent/2;for(const g of l)m.set(g.id,h+g.extent/2),h+=g.extent+d;return m}function Jk(t,l,s,i,r){const c=t.scenesById[l],d={...c.layersById};let m=!1;for(const h of s){const g=i.get(h.id);if(g===void 0)continue;const v=d[h.id],x=v.transform.position,E=g-h.offset;if(E===x[r])continue;const M=[x[0],x[1],x[2]];M[r]=E,d[h.id]={...v,transform:{...v.transform,position:M}},m=!0}return m?{...t,scenesById:{...t.scenesById,[l]:{...c,layersById:d}}}:t}const Zo=Object.freeze([{id:"studio",label:"Studio",crf:14,bitsPerPixel:.24},{id:"high",label:"High",crf:18,bitsPerPixel:.15},{id:"social",label:"Social Media",crf:21,bitsPerPixel:.1},{id:"web",label:"Web",crf:26,bitsPerPixel:.05}]),Wk="social";Object.freeze(Zo.map(t=>t.id));function Pk(t){return Zo.find(l=>l.id===t)??Zo.find(l=>l.id===Wk)}const ej=192e3,Cg=.4;function tj(t){const l=oj(t.durationFrames,t.fps),i=t.width*t.height*t.durationFrames*t.quality.bitsPerPixel,r=t.audio?ej*l:0,c=(i+r)/8;return{bytes:Math.round(c),low:Math.round(c*(1-Cg)),high:Math.round(c*(1+Cg))}}function qu(t){if(t<1024)return`${Math.round(t)} B`;const l=t/1024;if(l<1024)return`${Math.round(l)} KB`;const s=l/1024;if(s<100)return`${s.toFixed(1)} MB`;const i=s/1024;return s<1024?`${Math.round(s)} MB`:`${i.toFixed(1)} GB`}function nj(t){return`~${qu(t.bytes)} (${qu(t.low)}–${qu(t.high)})`}function aj(t,l){const s=t.runs.filter(r=>r.megapixels>0&&r.msPerFrame>0);if(s.length===0||l<=0)return null;const i=s.map(r=>r.msPerFrame/r.megapixels).sort((r,c)=>r-c);return lj(i)*l}function lj(t){const l=t.length,s=l>>1;return l%2===1?t[s]:(t[s-1]+t[s])/2}function ij(t){const l=Math.max(1,Math.round(t/1e3));if(l<60)return`about ${l}s`;const s=Math.floor(l/60),i=Math.round(l%60/10)*10;return i===0?`about ${s}m`:`about ${s}m ${i}s`}function sj(t,l,s){const i=aj(t,l);return i===null?"estimating…":ij(i*s)}function oj(t,l){return l.num===0?0:t*l.den/l.num}function rj(t){return t.kind==="edit"||t.kind==="create"}function cj(t){return t.kind==="proposal"&&(t.proposalKind==="canvas"||t.proposalKind==="motion"||t.proposalKind==="scene"||t.proposalKind==="shot")}async function uj(t,l){const s=t.getReader(),i=new TextDecoder;let r="";const c=d=>{let m="message";const h=[];for(const g of d.split(/\r?\n/))g.startsWith("event:")?m=g.slice(6).trimStart():g.startsWith("data:")&&h.push(g.slice(5).replace(/^ /,""));h.length>0&&l(m,h.join(`
50
- `))};for(;;){const{value:d,done:m}=await s.read();if(m)break;for(r+=i.decode(d,{stream:!0});;){const h=r.match(/\r?\n\r?\n/);if(h===null||h.index===void 0)break;c(r.slice(0,h.index)),r=r.slice(h.index+h[0].length)}}r.trim()!==""&&c(r)}async function dj(t,l){await uj(t,(s,i)=>{let r;try{r=JSON.parse(i)}catch{return}typeof r=="object"&&r!==null&&"type"in r&&l(r)})}function fj(t="ai"){let l=0;return()=>(l+=1,`${t}_${l}`)}function mj(t,l){return rj(t)?{id:t.id,kind:"proposal",sessionId:l,proposalKind:t.kind,path:t.path,diff:t.diff,status:"pending",error:null,warning:null}:{id:t.id,kind:"proposal",sessionId:l,proposalKind:t.kind,docName:t.docName,baseRev:t.baseRev,intent:t.intent??`Update ${t.docName}`,summary:t.summary,status:"pending",error:null,warning:null}}function hj(t,l,s,i){switch(s.type){case"assistant_text":t.append({id:i(),kind:"assistant",text:s.text});return;case"tool_use":t.append({id:i(),kind:"tool",text:s.name});return;case"proposal":t.append(mj(s,l));return;case"proposal_update":t.patchProposal(s.id,{status:s.status,error:s.error??null,warning:s.warning??null});return;case"done":t.setCost(s.costUsd),s.cancelled===!0&&t.append({id:i(),kind:"info",text:"Cancelled."});return;case"error":t.append({id:i(),kind:"error",text:s.message});return}}function pj(t,l,s){const i=t.findIndex(m=>m.kind==="proposal"&&m.id===l);if(i===-1)return t;const r=t[i],c=r.proposalKind==="canvas"?{...r,...s}:{...r,...s},d=[...t];return d[i]=c,d}class yy extends Error{constructor(l,s){super(s),this.status=l}}const Zu=encodeURIComponent;function gj(t){return{credentials:()=>t.json("/api/agent/credentials"),setKey:l=>t.json("/api/agent/credentials",{method:"PUT",body:JSON.stringify({key:l})}),clearKey:()=>t.json("/api/agent/credentials",{method:"DELETE"}),createSession:l=>t.json("/api/agent/sessions",{method:"POST",body:JSON.stringify(l)}),async events(l,s){const i=await t.raw(`/api/agent/sessions/${Zu(l)}/events`);if(!i.ok||i.body===null)throw new yy(i.status,`agent event stream -> ${i.status}`);await dj(i.body,s)},apply:(l,s)=>t.json(`/api/agent/sessions/${Zu(l)}/apply`,{method:"POST",body:JSON.stringify({proposalId:s})}),async cancel(l){await t.json(`/api/agent/sessions/${Zu(l)}/cancel`,{method:"POST",body:"{}"})}}}const vy=crypto.randomUUID(),yj="x-studio-client-id",vj="shot-editor";function bj(t){return t.clientId!==void 0?t.clientId===vy:t.origin===vj}class Kl extends Error{constructor(l,s,i){super(s),this.status=l,this.reason=i,this.name="ApiError"}get conflict(){return this.status===409}}async function xn(t,l){const s=await fetch(t,{...l,headers:{...l?.body!==void 0?{"content-type":"application/json"}:{},[yj]:vy,...l?.headers}}),i=await s.text();let r=null;if(i.length>0)try{r=JSON.parse(i)}catch{throw new Kl(s.status,i.slice(0,400))}if(!s.ok){const c=r;throw new Kl(s.status,typeof c?.error=="string"?c.error:`${l?.method??"GET"} ${t} failed (${s.status})`,typeof c?.reason=="string"?c.reason:void 0)}return r}function xj(){return xn("/api/shots")}function Sj(t){return xn(`/api/shots/${encodeURIComponent(t)}`)}function wg(t,l,s){return xn(`/api/shots/${encodeURIComponent(t)}`,{method:"PUT",body:JSON.stringify({doc:l,baseRev:s})})}function kj(){return xn("/api/components")}function Qu(t){return xn(`/api/components/${encodeURIComponent(t)}`)}function jj(t){return xn("/api/assets",{method:"POST",body:t,headers:{"content-type":"application/octet-stream","x-studio-filename":encodeURIComponent(t.name)}})}async function Mj(t){const l=`/studio/assets/${encodeURIComponent(t)}`,s=await fetch(l);if(!s.ok)throw new Kl(s.status,`GET ${l} -> ${s.status}`);return s.arrayBuffer()}async function Ej(t,l){return(await xn(`/api/shots/${encodeURIComponent(t)}/render`,{method:"POST",body:JSON.stringify(l)})).job}function Nj(t){return xn(`/api/shots/${encodeURIComponent(t)}/render`)}function Aj(t){return xn(`/api/shots/${encodeURIComponent(t)}/render`,{method:"DELETE"})}const Cj={json:(t,l)=>xn(t,l),raw:t=>fetch(t)},al=gj(Cj),Qo={min:168,max:460,default:232},ql={min:120,max:640,default:300};function Tg(t,l,s){return Number.isFinite(t)?Math.round(Math.min(s,Math.max(l,t))):l}function wj(t){return Math.max(ql.min,Math.min(ql.max,Math.round(t*.7)))}const Tj=.02,Oj=32;function Dj(t){return!Number.isFinite(t)||t<=0?1:Math.max(Tj,Math.min(Oj,t))}const yd=.08,fs=G0,Jo=.3,Og=15,by=5,xy=175,Dg=1,zj=1e7,Sy=320,_j=1/100,Bj=10;function Rj(t,l=fs){const s=ky(t,l).distance;return{min:s*_j,max:s*Bj}}const Lj=35,Ij=65,Wo=Math.PI/180;function vd(t){return Number.isFinite(t)?Math.max(by,Math.min(xy,t)):90}function Zl(t){return Number.isFinite(t)?Math.max(Dg,Math.min(zj,t)):Dg}function Id(t){return Number.isFinite(t)?((t+180)%360+360)%360-180:0}function Uj(t){const l=vd(t.phi)*Wo,s=Id(t.theta)*Wo,i=Zl(t.distance),r=Math.sin(l);return{position:[t.target[0]+i*r*Math.sin(s),t.target[1]+i*Math.cos(l),t.target[2]+i*r*Math.cos(s)]}}function Hj(t,l,s){return{...t,theta:Id(t.theta-l*Jo),phi:vd(vd(t.phi)-s*Jo)}}function Fj(t,l,s){return Hj(t,-l/Jo,-s/Jo)}function $j(t,l,s){const i=Number.isFinite(l)?l:0,r=Zl(Zl(t.distance)*Math.exp(i/Sy)),c=s===void 0?r:Math.max(s.min,Math.min(s.max,r));return{...t,distance:c}}function ky(t,l){const s=Math.hypot(t.width,t.height);return{theta:Lj,phi:Ij,distance:Zl(J1(s,l,1)/(1-yd*2)),target:[0,0,0]}}function Gj(t,l){switch(l){case"front":return{...t,theta:0,phi:90};case"back":return{...t,theta:Id(180),phi:90};case"right":return{...t,theta:90,phi:90};case"left":return{...t,theta:-90,phi:90};case"top":return{...t,phi:by};case"bottom":return{...t,phi:xy}}}const Yj=ky({width:1920,height:1080},fs);function Vj(t,l,s=fs){const i=Uj(t).position,r=t.target,c=[r[0]-i[0],r[1]-i[1],r[2]-i[2]],d=Math.hypot(c[0],c[1],c[2]);if(!Number.isFinite(d))return{ok:!1,refusal:"The working camera is not looking anywhere a framing could describe — press Home to put it back, then align."};if(i[2]<=0)return{ok:!1,refusal:"The working camera is behind the canvas, and the shot camera always looks at it from the front — orbit back round to the front of the layers, then align."};const m=c[2]/d;if(m>-1e-4)return{ok:!1,refusal:"The working camera is looking along the canvas rather than at it, so there is no rectangle for the shot camera to frame — orbit until the canvas faces you, then align."};const h=-i[2]/m,g=[i[0]+c[0]/d*h,i[1]+c[1]/d*h],v=t.ortho===!0?Zl(t.distance):h,x=l.height/(2*v*Math.tan(s*Wo/2));return!Number.isFinite(x)||x<=0?{ok:!1,refusal:"The working camera is too close to the canvas to express as a framing — dolly back, then align."}:{ok:!0,x:g[0],y:-g[1],zoom:x}}function Xj(t,l,s=fs){const i=t.zoom>0?t.zoom:1;return{theta:0,phi:90,distance:Zl(l.height/(2*i*Math.tan(s*Wo/2))),target:[t.x,-t.y,0]}}const jy={zoom:1,panX:0,panY:0},Kj={mode:"camera",splitRatio:.5},zg={shots:[],name:null,doc:null,rev:null,frame:0,playing:!1,sceneId:null,selection:[],isolation:null,isolationOrbit:!1,previousShading:"solid",editingDef:null,tool:"select",inspectorMode:"design",animateMode:!1,selectedBlock:null,selectedMarker:null,imagePick:null,stageMenu:null,materialPicker:null,meshTriangles:{},exportOpen:!1,renderJob:null,agentOpen:!1,agentItems:[],agentRunning:!1,agentError:null,agentSessionId:null,agentModel:null,agentCostUsd:null,agentCredentials:null,agentCredentialsError:null,dockCollapsed:!1,railCollapsed:!1,inspectorCollapsed:!1,focusRestoreInspector:null,focusRestoreDock:null,railWidth:Qo.default,dockHeight:ql.default,dockPpf:6,previewMuted:!1,previewVolume:1,view:jy,stageLayout:Kj,workingView:Yj,activePane:"camera",cameraFollowsView:!1,shadingMode:"solid",stageInfo:null,stageError:null,library:[],libraryLoaded:!1,libraryError:null,contracts:{},saveState:"idle",dirty:!1,error:null,emitWarning:null,canUndo:!1,canRedo:!1},qj=[240,160],Zj=[480,480],Qj=[400,800],Jj=[720,360],Wj=[480,480],_g={type:"solid",color:"#ffffff"},$o={color:"#ffffff",widthPx:4,align:"center"},Pj={fontFamily:"Inter, system-ui, sans-serif",weight:600,sizePx:64,lineHeight:1.2,letterSpacingPx:0,align:"left",color:"#ffffff"},e2=.12;function Ud(t){const l=t[0],s=t[t.length-1];if(l===void 0||s===void 0)return null;let i=1/0,r=1/0,c=-1/0,d=-1/0;for(const[v,x]of t){if(!Number.isFinite(v)||!Number.isFinite(x))return null;i=Math.min(i,v),c=Math.max(c,v),r=Math.min(r,x),d=Math.max(d,x)}const m=c-i,h=d-r;if(m<=0&&h<=0){const[v,x]=qj;return Ud([[i-v/2,r-x/2],[i+v/2,r+x/2]])}const g=v=>[m>0?(v[0]-i)/m:.5,h>0?(v[1]-r)/h:.5];return{min:[i,r],position:[(i+c)/2,(r+d)/2,0],size:[tl(m),tl(h)],from:g(l),to:g(s)}}const t2={rect:t=>({kind:"rect",label:"Rect",...Gn(t),paint:{fill:_g}}),ellipse:t=>({kind:"ellipse",label:"Ellipse",...Gn(t),paint:{fill:_g}}),text:t=>({kind:"text",label:"Text",...Gn(t),paint:{},text:{content:"Text",style:Pj}}),image:(t,l,s)=>{if(s.asset===void 0)return null;if(s.assetKind!=="video")return{kind:"image",label:"Image",...Gn(t),paint:{},image:{asset:s.asset,fit:"fill"}};const i=My(s);return{kind:"video",label:"Video",...Gn(t),paint:{},video:{asset:s.asset,fit:"fill",...i>0?{offsetFrames:i}:{}}}},line:t=>({kind:"line",label:"Line",...Gn(t),paint:{stroke:$o},line:{from:t.from,to:t.to}}),arrow:t=>({kind:"arrow",label:"Arrow",...Gn(t),paint:{stroke:$o},arrow:{from:t.from,to:t.to,head:e2}}),path:(t,l)=>({kind:"path",label:"Path",...Gn(t),paint:{stroke:$o},path:{d:n2(l,t.min),viewBox:[t.size[0],t.size[1]]}})};function Gn(t){return{transform:{position:[t.position[0],t.position[1],t.position[2]],size:[t.size[0],t.size[1]],tilt:[0,0],rollDeg:0,opacity:1},blocks:[]}}function n2(t,l){const s=i=>String(Math.round(i*100)/100);return t.map((i,r)=>`${r===0?"M":"L"} ${s(i[0]-l[0])} ${s(i[1]-l[1])}`).join(" ")}function Bg(t,l,s){if(t==="path"&&Rg(l).length<2)return null;const i=t==="path"?Rg(l):l,r=Ud(i);if(r===null)return null;const c=t2[t](r,i,s);return c===null?null:Jl(c,s)}function a2(t,l){if(t.points.length<2)return null;const s=Wx(t),i=Ud([[s.x,s.y],[s.x+s.w,s.y+s.h]]);if(i===null)return null;const r=Px(t,-s.x,-s.y);return Jl({kind:"path",label:"Path",...Gn(i),paint:{stroke:$o},path:{d:Jx(r),viewBox:[i.size[0],i.size[1]],points:r}},l)}function l2(t,l){return Jl({kind:"mesh",label:"Model",transform:ur(Zj),paint:{},blocks:[],mesh:{asset:t}},l)}function i2(t,l){return Jl({kind:"device",label:t.charAt(0).toUpperCase()+t.slice(1),transform:ur(Qj),paint:{},blocks:[],device:{preset:t,children:[]}},l)}function s2(t){return Jl({kind:"html",label:"Html",transform:ur(Jj),paint:{},blocks:[],html:{markup:'<div class="root"><span>Html</span></div>',css:".root{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font:600 64px Inter,system-ui,sans-serif;color:#fff}"}},t)}function o2(t,l,s,i){return Jl({kind:"instance",label:l,transform:ur(Wj),paint:{},blocks:[],instance:{component:t,props:{},...s}},i)}function ur(t){return{position:[0,0,0],size:[t[0],t[1]],tilt:[0,0],rollDeg:0,opacity:1}}function Jl(t,l){const s=My(l),i=Math.trunc(l.durationFrames);return s<=0||i<=s?t:{...t,lifetime:{in:s,out:i}}}function My(t){return Math.max(0,Math.trunc(t.sceneFrame))}function Rg(t){return t.filter((l,s)=>{const i=t[s-1];return i===void 0||i[0]!==l[0]||i[1]!==l[1]})}function Za(t){return R1.includes(t)}const Ey=5e5,Ny=2e6;function Ay(t){let l=0;for(const s of Object.values(t))l+=s;return l}function r2(t){return t>=1e6?`${(t/1e6).toFixed(1)}M`:t>=1e3?`${(t/1e3).toFixed(t>=1e4?0:1)}k`:String(t)}function c2(t){return`THIS SCENE CARRIES ${t.toLocaleString()} TRIANGLES. ABOVE ${Ey.toLocaleString()} THE WORKING PANE STOPS FEELING INSTANT.`}const u2=`A SCENE HOLDS AT MOST ${Ny.toLocaleString()} TRIANGLES. REMOVE OR SIMPLIFY A MODEL BEFORE ADDING ANOTHER.`,dr={select:{label:"Select",key:"v",surface:"dock",draws:!1,cursor:"default"},move:{label:"Move",key:"g",surface:"dock",draws:!1,cursor:"move"},text:{label:"Text",key:"t",surface:"dock",draws:!0,cursor:"text"},image:{label:"Frame",key:"i",surface:"dock",draws:!0,cursor:"crosshair"},rect:{label:"Rect",key:"r",surface:"dock",draws:!0,cursor:"crosshair"},ellipse:{label:"Ellipse",key:"o",surface:"flyout",draws:!0,cursor:"crosshair"},line:{label:"Line",key:"l",surface:"flyout",draws:!0,cursor:"crosshair"},arrow:{label:"Arrow",key:"l",shift:!0,surface:"flyout",draws:!0,cursor:"crosshair"},path:{label:"Pen",key:"p",surface:"dock",draws:!1,cursor:"crosshair"}},fr=Object.keys(dr);function Po(t){return dr[t]}const d2=t=>dr[t].surface==="dock",f2=t=>dr[t].surface==="flyout",m2=fr.filter(d2),Lg=fr.filter(f2),h2=new Map(fr.flatMap(t=>{const l=Po(t);return l.key===null?[]:[[Cy(l.key,l.shift===!0),t]]}));function Cy(t,l){return`${t.toLowerCase()}${l?"+":""}`}function p2(t,l=!1){return h2.get(Cy(t,l))??null}const g2=1,y2=10,v2={1:"working",2:"split",3:"camera"},b2={ArrowLeft:[-1,0],ArrowRight:[1,0],ArrowUp:[0,-1],ArrowDown:[0,1]};function x2(t,l){if(l.editing)return null;const s=t.key,i=s.length===1?s.toLowerCase():s,r=t.metaKey||t.ctrlKey;if(l.penActive===!0&&!r){if(s==="Enter")return{kind:"penCommit"};if(s==="Escape")return{kind:"penAbandon"}}if(l.transformModal===!0&&!r&&!t.altKey)return s==="Enter"?{kind:"modalConfirm"}:s==="Escape"?{kind:"modalCancel"}:i==="x"?{kind:"modalAxis",axis:"x"}:i==="y"?{kind:"modalAxis",axis:"y"}:i==="z"?{kind:"modalAxis",axis:"z"}:i==="g"?{kind:"modalStart",mode:"move"}:i==="r"&&l.hasSelection?{kind:"modalStart",mode:"rotate"}:i==="s"?{kind:"modalStart",mode:"scale"}:/^[0-9.-]$/.test(s)?{kind:"modalNumber",ch:s}:s==="Backspace"?{kind:"modalNumberBack"}:null;if(t.code!==void 0&&t.code.startsWith("Numpad")){switch(t.code){case"Numpad1":return{kind:"workingViewPreset",preset:r?"back":"front"};case"Numpad3":return{kind:"workingViewPreset",preset:r?"left":"right"};case"Numpad7":return{kind:"workingViewPreset",preset:r?"bottom":"top"};case"Numpad9":if(!r)return{kind:"orbitStep",dx:180,dy:0};break;case"Numpad2":case"Numpad4":case"Numpad6":case"Numpad8":{if(r||s.length!==1)break;const g={Numpad4:{dx:-1,dy:0},Numpad6:{dx:1,dy:0},Numpad8:{dx:0,dy:-1},Numpad2:{dx:0,dy:1}}[t.code];return{kind:"orbitStep",dx:g.dx*Og,dy:g.dy*Og}}case"Numpad0":if(!r)return{kind:"stageLayout",mode:"camera",toggle:!0};break;case"NumpadAdd":case"NumpadSubtract":if(!r)return{kind:"zoom",direction:t.code==="NumpadAdd"?1:-1};break;case"NumpadDivide":if(!r)return{kind:"toggleIsolation"};break;case"NumpadDecimal":if(!r)return{kind:"fitSelection"};break;case"Numpad5":if(!r)return{kind:"toggleWorkingOrtho"};break}if(!r&&s.length===1)return null}if(r)switch(i){case"z":return t.shiftKey?{kind:"redo"}:{kind:"undo"};case"y":return{kind:"redo"};case"s":return{kind:"save"};case"d":return{kind:"duplicate"};case"e":return{kind:"openExport"};case"a":return{kind:"selectAll"};case"b":return{kind:"splitAtPlayhead"};case"g":return t.shiftKey?{kind:"ungroup"}:{kind:"group"};case"0":return{kind:"zoomReset"};case"=":case"+":return{kind:"zoom",direction:1};case"-":return{kind:"zoom",direction:-1};default:return null}if(t.altKey)switch(i){case"l":return{kind:"toggleLock"};case"h":return{kind:"setHidden",scope:"reveal"};case"a":return{kind:"deselect"};case"c":return{kind:"alignCameraToView"};case"g":return{kind:"clearTransform",channel:"offset"};case"r":return{kind:"clearTransform",channel:"rotation"};case"s":return{kind:"clearTransform",channel:"scale"};default:return null}const c=b2[s];if(c!==void 0){const h=t.shiftKey?y2:g2;return l.hasSelection?{kind:"nudge",dx:c[0]*h,dy:c[1]*h}:{kind:"step",delta:c[0]!==0?c[0]:c[1]}}const d=v2[s];if(d!==void 0)return{kind:"stageLayout",mode:d};if(s===" ")return{kind:"playToggle"};if(s==="\\")return{kind:"fitTimeline"};if(s==="[")return{kind:"togglePanel",panel:"rail"};if(s==="]")return{kind:"togglePanel",panel:"inspector"};if(s===".")return{kind:"togglePanel",panel:"all"};if(s==="Escape")return l.hasSelection?{kind:"deselect"}:l.isolation===!0?{kind:"exitIsolation"}:{kind:"deselect"};if(s==="Enter"&&l.hasSelection)return{kind:"enterIsolation"};if(s==="Delete"||s==="Backspace")return{kind:"deleteSelection"};if(s==="Home")return{kind:"fit"};if(i==="a"&&t.shiftKey)return{kind:"animateToggle"};if(i==="a"&&!t.shiftKey)return{kind:"selectAll"};if(i==="b"&&!t.shiftKey)return{kind:"boxSelect"};if(i==="d"&&t.shiftKey)return{kind:"duplicate"};if(i==="h"&&!t.shiftKey&&!t.altKey)return{kind:"setHidden",scope:"selection"};if(i==="h"&&t.shiftKey)return{kind:"setHidden",scope:"others"};if(i==="z"&&t.shiftKey)return{kind:"wireframeToggle"};if(i==="z"&&!t.shiftKey)return{kind:"shadingCycle"};if(i==="c"&&t.shiftKey)return{kind:"fit"};if(i==="m"&&!t.shiftKey)return{kind:"addMarker"};if(l.workingPane===!0&&!t.shiftKey){if(i==="g")return{kind:"modalStart",mode:"move"};if(i==="s")return{kind:"modalStart",mode:"scale"};if(i==="r"&&l.hasSelection)return{kind:"modalStart",mode:"rotate"}}const m=p2(i,t.shiftKey);return m===null?null:{kind:"tool",tool:m}}function S2(t){if(t===null||typeof t.tagName!="string")return!1;const l=t;return l.isContentEditable?!0:l.tagName==="INPUT"||l.tagName==="TEXTAREA"||l.tagName==="SELECT"}const k2=.2,j2=.8;function M2(t){return Number.isFinite(t)?Math.max(k2,Math.min(j2,t)):.5}const Go=["solid","wireframe","material","rendered"];function E2(t){const l=Go.indexOf(t);return Go[(l+1)%Go.length]}const Ig=t=>t>="0"&&t<="9",N2=t=>t>="a"&&t<="z"||t>="A"&&t<="Z";function A2(t,l){const s=l&&l!=="%"?l.toLowerCase():null,i=t,r=i.length,c=[];let d=0;for(;d<r;){const m=i[d];if(m===" "||m===" "||m===`
51
- `||m==="\r"){d++;continue}if(m==="+"||m==="-"||m==="*"||m==="/"||m==="%"||m==="^"){c.push({t:"op",v:m}),d++;continue}if(m==="("){c.push({t:"("}),d++;continue}if(m===")"){c.push({t:")"}),d++;continue}if(Ig(m)||m==="."){let h=d,g=!1;for(;h<r;){const E=i[h];if(Ig(E))h++;else if(E==="."){if(g)return null;g=!0,h++}else break}const v=i.slice(d,h);if(v===".")return null;const x=Number(v);if(!Number.isFinite(x))return null;if(c.push({t:"num",v:x}),d=h,s){let E=d;for(;E<r&&(i[E]===" "||i[E]===" ");)E++;if(i.slice(E,E+s.length).toLowerCase()===s){const M=i[E+s.length];(M===void 0||!N2(M))&&(d=E+s.length)}}continue}return null}return c}function C2(t){let l=0,s=!1;const i=()=>t[l],r=()=>(s=!0,0),c=()=>{let x=d();for(;!s;){const E=i();if(E&&E.t==="op"&&(E.v==="+"||E.v==="-")){l++;const M=d();x=E.v==="+"?x+M:x-M}else break}return x},d=()=>{let x=m();for(;!s;){const E=i();if(E&&E.t==="op"&&(E.v==="*"||E.v==="/"||E.v==="%")){l++;const M=m();x=E.v==="*"?x*M:E.v==="/"?x/M:x%M}else break}return x},m=()=>{const x=i();if(x&&x.t==="op"&&(x.v==="+"||x.v==="-")){l++;const E=m();return x.v==="-"?-E:E}return h()},h=()=>{const x=g(),E=i();if(!s&&E&&E.t==="op"&&E.v==="^"){l++;const M=m();return Math.pow(x,M)}return x},g=()=>{const x=i();if(!x)return r();if(x.t==="num")return l++,x.v;if(x.t==="("){l++;const E=c(),M=i();return s||!M||M.t!==")"?r():(l++,E)}return r()},v=c();return s||l!==t.length?null:v}function w2(t,l){if(typeof t!="string")return null;let s=t.trim();if(s===""||s.length>256)return null;if(l?.unit==="%"){const c=s.replace(/\s+$/,"");c.endsWith("%")&&(s=c.slice(0,-1))}const i=A2(s,l?.unit);if(i===null||i.length===0)return null;const r=C2(i);return r===null||!Number.isFinite(r)?null:r}function Ju(t,l,s){return l!==void 0&&(t=Math.max(l,t)),s!==void 0&&(t=Math.min(s,t)),t}function er(t){const l=String(t),s=l.indexOf(".");return s===-1?0:l.length-s-1}function wt(t,l=1){const s=er(l),i=t.toFixed(Math.min(6,Math.max(s,0)));return s===0?i:i.replace(/(\.\d*?)0+$/,"$1").replace(/\.$/,"")}function T2(t){const l=String(t);if(l.indexOf("e")!==-1)return 6;const s=l.indexOf(".");return s===-1?0:l.length-s-1}function Ug(t,l){const s=Math.min(6,Math.max(er(l),T2(t))),i=t.toFixed(s);return s===0?i:i.replace(/(\.\d*?)0+$/,"$1").replace(/\.$/,"")}function Hg(t,l){return Number(t.toFixed(Math.min(12,Math.max(l,0))))}const O2=3;function Wu(t){return t.shiftKey?10:t.altKey?.1:1}function pe(t){const l=t.step??1,[s,i]=H.useState(null),r=H.useRef(null),c=H.useRef(null),d=H.useRef(!1);H.useEffect(()=>{s!==null&&document.activeElement!==r.current&&i(null)},[t.value,s]),H.useEffect(()=>()=>{const C=c.current;c.current=null,C?.moved&&C.onScrubEnd?.(!1)},[]);const m=()=>{if(d.current){d.current=!1;return}if(s===null)return;const C=w2(s,t.unit!==void 0?{unit:t.unit}:void 0);i(null),C!==null&&Number.isFinite(C)&&t.onCommit(Ju(C,t.min,t.max))},h=(C,L)=>{i(null),t.onCommit(Ju(Hg(t.value+C,L),t.min,t.max))},g=C=>{if(C.key==="Enter")m(),r.current?.blur();else if(C.key==="Escape")d.current=!0,i(null),r.current?.blur();else if(C.key==="ArrowUp"||C.key==="ArrowDown"){C.preventDefault();const L=Wu(C),U=er(l)+(L<1?1:0);h((C.key==="ArrowUp"?1:-1)*l*L,U)}},v=C=>{if(t.disabled||C.button!==0)return;C.preventDefault(),C.currentTarget.setPointerCapture(C.pointerId),c.current={startX:C.clientX,startValue:t.value,moved:!1,last:t.value,mult:Wu(C),onScrubEnd:t.onScrubEnd}},x=C=>{const L=c.current;if(!L)return;const U=Wu(C);U!==L.mult&&(L.moved&&(L.startX=C.clientX,L.startValue=L.last),L.mult=U);const T=l*U,q=er(l)+(U<1?1:0),ae=Math.round((C.clientX-L.startX)/O2),me=Ju(Hg(L.startValue+ae*T,q),t.min,t.max);!L.moved&&ae!==0&&(L.moved=!0,t.onScrubStart?.()),L.moved&&(L.last=me,t.onScrub?t.onScrub(me):i(Ug(me,T)))},E=C=>{const L=c.current;c.current=null,C.currentTarget.releasePointerCapture(C.pointerId),L?.moved&&(t.onScrub?t.onScrubEnd?.(!0):(i(null),t.onCommit(L.last)))},M=()=>{const C=c.current;c.current=null,i(null),C?.moved&&C.onScrubEnd?.(!1)},k=s??(t.mixed===!0?"":Ug(t.value,l)),D=t.min!==void 0&&t.max!==void 0&&Number.isFinite(t.min)&&Number.isFinite(t.max)&&t.max>t.min;let _=t.value;if(s!==null){const C=Number(s);Number.isFinite(C)&&(_=C)}const z=D?Math.min(1,Math.max(0,(_-t.min)/(t.max-t.min))):0,G={onPointerDown:v,onPointerMove:x,onPointerUp:E,onPointerCancel:M,onLostPointerCapture:M};return f.jsxs("label",{className:`numfield${t.disabled?" is-disabled":""} ${t.className??""}`,...t.title!==void 0?{title:t.title}:{},children:[f.jsx("span",{className:"numfield-fill",style:{width:`${z*100}%`},"aria-hidden":"true"}),t.label!==void 0&&f.jsx("span",{className:"numfield-label",...G,children:t.label}),f.jsx("input",{ref:r,className:"numfield-input",type:"text",inputMode:"decimal",value:k,...t.mixed===!0&&s===null?{placeholder:"Mixed"}:{},disabled:t.disabled??!1,onChange:C=>i(C.target.value),onBlur:m,onKeyDown:g,"aria-label":t.ariaLabel??(typeof t.label=="string"?t.label:void 0)}),t.unit!==void 0&&f.jsx("span",{className:"numfield-unit",...G,children:t.unit})]})}function Ca(t,l){const s=t.currentTarget,i=t.pointerId;let r=!1;const c=v=>{r||(r=!0,s.removeEventListener("pointermove",d),s.removeEventListener("pointerup",m),s.removeEventListener("pointercancel",h),s.removeEventListener("lostpointercapture",h),window.removeEventListener("keydown",g,!0),s.hasPointerCapture(i)&&s.releasePointerCapture(i),l.onEnd(v))},d=v=>{v.pointerId===i&&l.onMove(v)},m=v=>{v.pointerId===i&&c(!0)},h=v=>{v.pointerId===i&&c(!1)},g=v=>{v.key==="Escape"&&(v.stopPropagation(),c(!1))};s.setPointerCapture(i),s.addEventListener("pointermove",d),s.addEventListener("pointerup",m),s.addEventListener("pointercancel",h),s.addEventListener("lostpointercapture",h),window.addEventListener("keydown",g,!0)}function rn(t){const[l,s]=H.useState(null),i=H.useRef(null),r=H.useRef(!1);H.useEffect(()=>{l!==null&&document.activeElement!==i.current&&s(null)},[t.value,l]);const c=t.autoFocus===!0;H.useEffect(()=>{c&&(i.current?.focus(),i.current?.select())},[]);const d=()=>{if(r.current){r.current=!1;return}l!==null&&(s(null),l!==t.value&&t.onCommit(l))},m=g=>{g.key==="Enter"&&t.multiline!==!0?i.current?.blur():g.key==="Escape"&&(r.current=!0,s(null),i.current?.blur())},h={className:`text-input ${t.className??""}`,value:l??t.value,onChange:g=>s(g.target.value),onBlur:d,onKeyDown:m,...t.placeholder!==void 0?{placeholder:t.placeholder}:{},...t.ariaLabel!==void 0?{"aria-label":t.ariaLabel}:{}};return t.multiline===!0?f.jsx("textarea",{...h,className:`${h.className} insp-textarea`,rows:3,ref:g=>{i.current=g}}):f.jsx("input",{...h,type:"text",ref:g=>{i.current=g}})}const ll=1.2;function ms(t){const{children:l,...s}=t;return f.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none","aria-hidden":"true",...s,children:l})}const Hd=t=>f.jsx(ms,{...t,children:f.jsx("path",{d:"M5.5 1.5v8M1.5 5.5h8",stroke:"currentColor",strokeWidth:ll,strokeLinecap:"round"})}),wy=t=>f.jsx(ms,{...t,children:f.jsx("path",{d:"M2 3.5h8M4.8 1.5h2.4M3 3.5l.6 7h4.8l.6-7",stroke:"currentColor",strokeWidth:ll,strokeLinecap:"round",strokeLinejoin:"round"})}),mr=t=>f.jsx(ms,{...t,children:f.jsx("path",{d:"M4.2 2.5 8 6l-3.8 3.5",stroke:"currentColor",strokeWidth:ll,strokeLinecap:"round",strokeLinejoin:"round"})}),D2=t=>f.jsxs(ms,{...t,children:[f.jsx("circle",{cx:"5.5",cy:"5.5",r:"3",stroke:"currentColor",strokeWidth:ll}),f.jsx("path",{d:"m7.7 7.7 2.3 2.3",stroke:"currentColor",strokeWidth:ll,strokeLinecap:"round"})]}),z2=t=>f.jsxs(ms,{...t,children:[f.jsx("path",{d:"M7.5 2.5a1.4 1.4 0 0 1 2 2L6 8l-2.5.5L4 6l3.5-3.5Z",stroke:"currentColor",strokeWidth:ll,strokeLinejoin:"round"}),f.jsx("path",{d:"M2.2 9.8 4 8",stroke:"currentColor",strokeWidth:ll,strokeLinecap:"round"})]}),_2=["x","y","z","w"];function B2(t,l){return Array.isArray(t)&&t.length===l&&t.every(s=>typeof s=="number")?[...t]:new Array(l).fill(0)}function Fg(t,l,s){const i=[...t];return i[l]=s,i}function Ty(t,l,s,i){if(t.length<2)return null;let r=1/0,c=-1/0;for(const v of t)r=Math.min(r,v.value),c=Math.max(c,v.value);const d=c-r||1,m=t[0].frame,h=t[t.length-1].frame-m||1;return{points:t.map(v=>{const x=(v.frame-m)/h*l,E=i+(1-(v.value-r)/d)*(s-2*i);return`${x.toFixed(2)},${E.toFixed(2)}`}).join(" "),min:r,max:c}}const R2=/^#[0-9a-f]{6}$/i;function L2(t){return typeof t=="string"&&R2.test(t)}function I2(t,l){let s=l;if(typeof s=="string")try{s=JSON.parse(s)}catch{s=null}if(t==="curve"){const r=s?.points;return Array.isArray(r)?`curve · ${r.length} pts`:"curve"}const i=s?.stops;return Array.isArray(i)?`gradient · ${i.length} stops`:"gradient"}const tr=.001,U2=[1/3,1/3,2/3,2/3];function H2(t){if(typeof t=="string")try{return v1(t)}catch{return null}return Md(t)===null?t:null}function F2(t){if(typeof t=="string")try{return b1(t)}catch{return null}return Ed(t)===null?t:null}function hr(t){return Md(t)===null?t:null}function Oy(t,l,s){const i=l===0?0:s[l-1]+tr,r=l===s.length-1?1:s[l+1]-tr;return i>r?null:Math.min(r,Math.max(i,t))}function $g(t,l,s,i){const r=t.points[l];if(!r)return null;let c;if(s==="x"){const d=Oy(i,l,t.points.map(m=>m.x));if(d===null)return null;c={...r,x:d}}else c={...r,y:i};return hr({...t,points:t.points.map((d,m)=>m===l?c:d)})}function $2(t,l,s,i){const r=t.points[l];if(!r)return null;const c=s===0||s===2?Math.min(1,Math.max(0,i)):i,d=[...r.handles];return d[s]=c,hr({...t,points:t.points.map((m,h)=>h===l?{...m,handles:d}:m)})}function Gg(t){const l=[0,...t.points.map(m=>m.x),1];let s=0,i=0;for(let m=0;m<l.length-1;m++)l[m+1]-l[m]>i-s&&(s=l[m],i=l[m+1]);if(i-s<tr*2)return null;const r=(s+i)/2,c={x:r,y:K2(t,r),handles:[...U2]},d=[...t.points,c].sort((m,h)=>m.x-h.x);return hr({...t,points:d})}function G2(t,l){return t.points.length<=1||!t.points[l]?null:hr({...t,points:t.points.filter((s,i)=>i!==l)})}function pr(t){return Ed(t)===null?t:null}function Y2(t,l,s){if(!t.stops[l])return null;const r=Oy(s,l,t.stops.map(c=>c.at));return r===null?null:pr({...t,stops:t.stops.map((c,d)=>d===l?{...c,at:r}:c)})}function V2(t,l,s){return t.stops[l]?pr({...t,stops:t.stops.map((i,r)=>r===l?{...i,color:s}:i)}):null}function Yg(t){const l=[0,...t.stops.map(d=>d.at),1];let s=0,i=0;for(let d=0;d<l.length-1;d++)l[d+1]-l[d]>i-s&&(s=l[d],i=l[d+1]);if(i-s<tr*2)return null;const r=(s+i)/2,c=[...t.stops,{at:r,color:H0(t)(r)}].sort((d,m)=>d.at-m.at);return pr({...t,stops:c})}function X2(t,l){return t.stops.length<=1||!t.stops[l]?null:pr({...t,stops:t.stops.filter((s,i)=>i!==l)})}function K2(t,l){return U0(t)(l)}const Vg=64;function q2(t){const l=U0(t),s=[];for(let i=0;i<Vg;i++){const r=i/(Vg-1);s.push({frame:r,value:l(r)})}return s}const Xg=16;function Z2(t){const l=H0(t),s=[];for(let i=0;i<Xg;i++){const r=i/(Xg-1);s.push(`${l(r)} ${(r*100).toFixed(1)}%`)}return`linear-gradient(90deg, ${s.join(", ")})`}function Dy(t){return f.jsx("button",{type:"button",className:"badge insp-composite-toggle",title:t.valid?`${t.open?"Hide":"Edit"} ${t.kind}`:`malformed ${t.kind} value`,disabled:!t.valid,onClick:t.onToggle,children:I2(t.kind,t.value)})}function Q2(t){const[l,s]=H.useState(!1),i=H2(t.value);return f.jsxs("div",{className:"insp-composite",children:[f.jsx(Dy,{kind:"curve",value:t.value,valid:i!==null,open:l,onToggle:()=>s(!l)}),l&&i!==null&&f.jsx(P2,{propKey:t.propKey,value:i,onCommit:t.commit})]})}const Kg=148,qg=56,J2=4,W2=["x1","y1","x2","y2"];function P2(t){const{value:l}=t,s=Ty(q2(l),Kg,qg,J2),i=r=>{r!==null&&t.onCommit(r)};return f.jsxs("div",{className:"insp-composite-editor",children:[f.jsx("svg",{className:"insp-composite-curve",width:Kg,height:qg,"aria-label":`${t.propKey} curve preview`,children:s&&f.jsx("polyline",{points:s.points})}),l.points.map((r,c)=>f.jsxs("div",{className:"insp-composite-point",children:[f.jsxs("div",{className:"insp-row",children:[f.jsx(pe,{label:"X",value:r.x,min:0,max:1,step:.01,onCommit:d=>i($g(l,c,"x",d))}),f.jsx(pe,{label:"Y",value:r.y,step:.01,onCommit:d=>i($g(l,c,"y",d))}),f.jsx("button",{type:"button",className:"btn is-icon is-danger","aria-label":`Remove point ${c+1}`,disabled:l.points.length<=1,onClick:()=>i(G2(l,c)),children:f.jsx(wy,{})})]}),f.jsx("div",{className:"insp-row insp-composite-handles",children:W2.map((d,m)=>f.jsx(pe,{label:d,value:r.handles[m],step:.01,...m%2===0?{min:0,max:1}:{},onCommit:h=>i($2(l,c,m,h))},d))})]},c)),f.jsx("div",{className:"insp-row",children:f.jsxs("button",{type:"button",className:"btn",disabled:Gg(l)===null,onClick:()=>i(Gg(l)),children:[f.jsx(Hd,{})," Add point"]})})]})}function eM(t){const[l,s]=H.useState(!1),i=F2(t.value);return f.jsxs("div",{className:"insp-composite",children:[f.jsx(Dy,{kind:"gradient",value:t.value,valid:i!==null,open:l,onToggle:()=>s(!l)}),l&&i!==null&&f.jsx(tM,{propKey:t.propKey,value:i,onCommit:t.commit,scrub:t.scrub})]})}function tM(t){const{value:l}=t,s=i=>{i!==null&&t.onCommit(i)};return f.jsxs("div",{className:"insp-composite-editor",children:[f.jsx("div",{className:"insp-gradient-preview",role:"img","aria-label":`${t.propKey} gradient preview`,style:{background:Z2(l)}}),l.stops.map((i,r)=>f.jsxs("div",{className:"insp-row",children:[f.jsx(pe,{label:"At",value:i.at,min:0,max:1,step:.01,onCommit:c=>s(Y2(l,r,c))}),L2(i.color)&&f.jsx(nM,{propKey:t.propKey,value:l,stopIndex:r,color:i.color,scrub:t.scrub}),f.jsx("button",{type:"button",className:"btn is-icon is-danger","aria-label":`Remove stop ${r+1}`,disabled:l.stops.length<=1,onClick:()=>s(X2(l,r)),children:f.jsx(wy,{})})]},r)),f.jsx("div",{className:"insp-row",children:f.jsxs("button",{type:"button",className:"btn",disabled:Yg(l)===null,onClick:()=>s(Yg(l)),children:[f.jsx(Hd,{})," Add stop"]})})]})}function nM(t){const{scrub:l}=t,s=H.useRef(!1),i=H.useRef(t.value),r=H.useRef(l.end);return r.current=l.end,H.useEffect(()=>()=>{s.current&&(s.current=!1,r.current(!1))},[]),f.jsx("input",{type:"color",className:"insp-color",value:t.color,"aria-label":`${t.propKey} stop ${t.stopIndex+1} color`,onChange:c=>{s.current||(s.current=!0,i.current=t.value,l.start());const d=V2(i.current,t.stopIndex,c.target.value);d!==null&&l.move(d)},onBlur:()=>{s.current&&(s.current=!1,l.end(!0))}})}function qt(t){const l=H.useRef(null),s=(r,c)=>{const d=t.options.length;if(d===0)return;const m=((c+r)%d+d)%d,h=t.options[m];h&&(t.onChange(h.value),l.current?.querySelectorAll("[role=radio]")?.[m]?.focus())},i=(r,c)=>{r.key==="ArrowRight"||r.key==="ArrowDown"?(r.preventDefault(),s(1,c)):(r.key==="ArrowLeft"||r.key==="ArrowUp")&&(r.preventDefault(),s(-1,c))};return f.jsx("div",{ref:l,className:`segmented${t.className?` ${t.className}`:""}`,role:"radiogroup","aria-label":t.ariaLabel,children:t.options.map((r,c)=>{const d=r.value===t.value;return f.jsx("button",{type:"button",role:"radio","aria-checked":d,title:r.title,tabIndex:d||t.value===""&&c===0?0:-1,className:`btn segmented-item${d?" is-active":""}`,onClick:()=>t.onChange(r.value),onKeyDown:m=>i(m,c),children:r.label??r.value},r.value)})})}function rs(t){return f.jsx("button",{type:"button",role:"switch","aria-checked":t.checked,"aria-label":t.ariaLabel,disabled:t.disabled??!1,className:`toggle${t.checked?" is-on":""}${t.className?` ${t.className}`:""}`,onClick:()=>t.onChange(!t.checked),children:f.jsx("span",{className:"toggle-knob"})})}var Fd=T0();function zy(t){const l=H.useRef(null),[s,i]=H.useState(null),r=()=>{const c=t.anchor.current,d=l.current;if(!c||!d)return;const m=c.getBoundingClientRect(),h=t.gap??4,g=d.offsetHeight,v=d.offsetWidth,E=window.innerHeight-m.bottom<g+h&&m.top>g+h?m.top-g-h:m.bottom+h;let M=t.align==="right"?m.right-v:m.left;M=Math.max(4,Math.min(M,window.innerWidth-v-4)),i({left:M,top:E,minWidth:m.width})};return H.useLayoutEffect(()=>{if(!t.open){i(null);return}r();const c=()=>r();return window.addEventListener("scroll",c,!0),window.addEventListener("resize",c),()=>{window.removeEventListener("scroll",c,!0),window.removeEventListener("resize",c)}},[t.open]),H.useEffect(()=>{if(!t.open)return;const c=m=>{const h=m.target;l.current?.contains(h)||t.anchor.current?.contains(h)||t.onClose()},d=m=>{m.key==="Escape"&&(m.stopPropagation(),t.onClose())};return window.addEventListener("pointerdown",c,!0),window.addEventListener("keydown",d,!0),()=>{window.removeEventListener("pointerdown",c,!0),window.removeEventListener("keydown",d,!0)}},[t.open]),t.open?Fd.createPortal(f.jsx("div",{ref:l,className:`popover popover-float${t.className?` ${t.className}`:""}`,style:{position:"fixed",left:s?`${s.left}px`:"-9999px",top:s?`${s.top}px`:"-9999px",minWidth:s?`${s.minWidth}px`:void 0,visibility:s?"visible":"hidden"},children:t.children}),document.body):null}function _y(t){const[l,s]=H.useState(!1),[i,r]=H.useState(""),[c,d]=H.useState(0),m=H.useRef(null),h=M=>t.options.find(k=>k.value===M)?.label??M,g=H.useMemo(()=>{const M=i.trim().toLowerCase();return M===""?t.options:t.options.filter(k=>k.value.toLowerCase().includes(M)||(k.label??"").toLowerCase().includes(M))},[i,t.options]),v=()=>{r("");const M=t.options.findIndex(k=>k.value===t.value);d(M>=0?M:0),s(!0)},x=M=>{t.onChange(M),s(!1)},E=M=>{if(M.key==="ArrowDown")M.preventDefault(),d(k=>Math.min(k+1,g.length-1));else if(M.key==="ArrowUp")M.preventDefault(),d(k=>Math.max(k-1,0));else if(M.key==="Enter"){M.preventDefault();const k=g[c];k&&x(k.value)}else M.key==="Escape"&&(M.preventDefault(),s(!1))};return f.jsxs(f.Fragment,{children:[f.jsxs("button",{ref:m,type:"button",className:`select combobox-trigger${t.className?` ${t.className}`:""}`,"aria-label":t.ariaLabel,"aria-haspopup":"listbox","aria-expanded":l,onClick:()=>l?s(!1):v(),children:[f.jsx("span",{className:"combobox-value",children:t.value===""?t.placeholder??"":h(t.value)}),f.jsx(mr,{className:"combobox-caret"})]}),f.jsxs(zy,{open:l,anchor:m,onClose:()=>s(!1),className:"combobox-pop",children:[f.jsxs("div",{className:"combobox-search",children:[f.jsx(D2,{className:"combobox-search-icon"}),f.jsx("input",{className:"text-input",autoFocus:!0,value:i,placeholder:"Search…","aria-label":"Filter options",onChange:M=>{r(M.target.value),d(0)},onKeyDown:E})]}),f.jsxs("ul",{className:"combobox-list",role:"listbox","aria-label":t.ariaLabel,children:[g.length===0&&f.jsx("li",{className:"combobox-empty",children:"No matches"}),g.map((M,k)=>f.jsx("li",{role:"option","aria-selected":M.value===t.value,className:`combobox-option${k===c?" is-active":""}${M.value===t.value?" is-selected":""}`,onPointerDown:D=>{D.preventDefault(),x(M.value)},onPointerEnter:()=>d(k),children:M.label??M.value},M.value))]})]})]})}function aM(t,l,s,i){return Math.atan2(-(i-l),s-t)*180/Math.PI}function lM(t,l){const s=((t-l)%360+540)%360-180;return l+s}function iM(t,l,s){return l!==void 0&&(t=Math.max(l,t)),s!==void 0&&(t=Math.min(s,t)),t}function sM(t){const l=t.size??20,s=l/2,i=s-2.5,r=H.useRef(null),c=H.useRef(null);H.useEffect(()=>()=>{const k=c.current;c.current=null,k?.moved&&k.onScrubEnd?.(!1)},[]);const d=k=>{const D=r.current;if(!D)return null;const _=D.getBoundingClientRect();return aM(_.left+_.width/2,_.top+_.height/2,k.clientX,k.clientY)},m=k=>{t.disabled||k.button!==0||(k.preventDefault(),k.currentTarget.setPointerCapture(k.pointerId),c.current={moved:!1,last:t.value,onScrubEnd:t.onScrubEnd})},h=k=>{const D=c.current;if(!D)return;const _=d(k);if(_===null)return;const z=iM(lM(_,D.last),t.min,t.max);D.moved||(D.moved=!0,t.onScrubStart?.()),D.last=z,t.onScrub&&t.onScrub(z)},g=k=>{const D=c.current;c.current=null,k.currentTarget.releasePointerCapture(k.pointerId),D?.moved&&(t.onScrub?t.onScrubEnd?.(!0):t.onCommit(D.last))},v=()=>{const k=c.current;c.current=null,k?.moved&&k.onScrubEnd?.(!1)},x=t.value*Math.PI/180,E=s+i*Math.cos(x),M=s-i*Math.sin(x);return f.jsxs("svg",{ref:r,className:`angle-dial${t.disabled?" is-disabled":""}`,width:l,height:l,viewBox:`0 0 ${l} ${l}`,role:"slider","aria-label":t.ariaLabel??"Angle","aria-valuenow":Math.round(t.value),onPointerDown:m,onPointerMove:h,onPointerUp:g,onPointerCancel:v,onLostPointerCapture:v,children:[f.jsx("circle",{className:"angle-dial-ring",cx:s,cy:s,r:i}),f.jsx("line",{className:"angle-dial-arm",x1:s,y1:s,x2:E,y2:M}),f.jsx("circle",{className:"angle-dial-handle",cx:E,cy:M,r:1.6})]})}const nr=t=>Math.min(1,Math.max(0,t));function oM(t,l,s){const i=Math.max(t,l,s),r=Math.min(t,l,s),c=i-r;let d=0;c!==0&&(i===t?d=(l-s)/c%6:i===l?d=(s-t)/c+2:d=(t-l)/c+4,d*=60,d<0&&(d+=360));const m=i===0?0:c/i;return{h:d,s:m,v:i}}function bd(t,l,s){t=(t%360+360)%360,l=nr(l),s=nr(s);const i=s*l,r=i*(1-Math.abs(t/60%2-1)),c=s-i;let d=0,m=0,h=0;return t<60?(d=i,m=r):t<120?(d=r,m=i):t<180?(m=i,h=r):t<240?(m=r,h=i):t<300?(d=r,h=i):(d=i,h=r),{r:d+c,g:m+c,b:h+c}}const Pu=t=>Math.round(nr(t)*255),rM=t=>nr(t/255),cM=["#ffffff","#c9ccd3","#6d6d7a","#000000","#ff5c69","#ffb454","#e8c34a","#58c7a5","#4f8cff","#8b5cf6","#ec4899","#14b8a6"];function Zg(t){try{const l=Yo(t);return{hsv:oM(l.r,l.g,l.b),alpha:l.alpha}}catch{return{hsv:{h:0,s:0,v:0},alpha:1}}}function Lo(t,l){const{r:s,g:i,b:r}=bd(t.h,t.s,t.v);return ss({r:s,g:i,b:r,alpha:l})}const Qg=t=>Math.min(1,Math.max(0,t));function ed(t){const l=H.useRef(null),s=H.useRef(!1);H.useEffect(()=>()=>{s.current&&(s.current=!1,t.onEnd(!1))},[]);const i=h=>{const g=l.current;if(!g)return;const v=g.getBoundingClientRect(),x=v.width?Qg((h.clientX-v.left)/v.width):0,E=v.height?Qg((h.clientY-v.top)/v.height):0;t.onPos(x,E)},r=h=>{h.button===0&&(h.preventDefault(),h.currentTarget.setPointerCapture(h.pointerId),s.current=!0,t.onStart(),i(h))},c=h=>{s.current&&i(h)},d=h=>{s.current&&(s.current=!1,h.currentTarget.releasePointerCapture(h.pointerId),t.onEnd(!0))},m=()=>{s.current&&(s.current=!1,t.onEnd(!1))};return f.jsx("div",{ref:l,className:t.className,role:"slider","aria-label":t.ariaLabel,style:t.style,onPointerDown:r,onPointerMove:c,onPointerUp:d,onPointerCancel:m,onLostPointerCapture:m,children:t.children})}function ol(t){const[l,s]=H.useState(!1),[i,r]=H.useState(()=>Zg(t.value)),c=H.useRef(null),d=H.useRef(!1),m=H.useRef(i);m.current=i,H.useEffect(()=>{d.current||r(Zg(t.value))},[t.value]);const h=U=>{m.current=U,r(U)},g=()=>{d.current=!0,t.scrub.start()},v=U=>{d.current=!1,t.scrub.end(U)},x=(U,T)=>{const q={...m.current,hsv:{...m.current.hsv,s:U,v:1-T}};h(q),t.scrub.move(Lo(q.hsv,q.alpha))},E=U=>{const T={...m.current,hsv:{...m.current.hsv,h:U*360}};h(T),t.scrub.move(Lo(T.hsv,T.alpha))},M=U=>{const T={...m.current,alpha:U};h(T),t.scrub.move(Lo(T.hsv,T.alpha))},k=U=>{try{const T=Yo(U);t.commit(ss(T))}catch{}},D=(U,T)=>{const ae={...bd(i.hsv.h,i.hsv.s,i.hsv.v),[U]:rM(T),alpha:i.alpha};t.commit(ss(ae))},_=async()=>{const U=window.EyeDropper;if(U)try{const T=await new U().open();k(T.sRGBHex)}catch{}},z=bd(i.hsv.h,i.hsv.s,i.hsv.v),G=ss({...z,alpha:1}),C=Lo(i.hsv,i.alpha),L=typeof window<"u"&&"EyeDropper"in window;return f.jsxs(f.Fragment,{children:[f.jsx("button",{ref:c,type:"button",className:"insp-color colorpicker-swatch","aria-label":`${t.ariaLabel??"color"} picker`,onClick:()=>s(U=>!U),children:f.jsx("span",{className:"colorpicker-swatch-fill",style:{background:C}})}),f.jsxs(zy,{open:l,anchor:c,onClose:()=>s(!1),className:"colorpicker-pop",children:[f.jsx(ed,{className:"colorpicker-sv",ariaLabel:"Saturation and brightness",style:{backgroundColor:G},onStart:g,onPos:x,onEnd:v,children:f.jsx("span",{className:"colorpicker-sv-thumb",style:{left:`${i.hsv.s*100}%`,top:`${(1-i.hsv.v)*100}%`}})}),f.jsx(ed,{className:"colorpicker-hue",ariaLabel:"Hue",onStart:g,onPos:U=>E(U),onEnd:v,children:f.jsx("span",{className:"colorpicker-slider-thumb",style:{left:`${i.hsv.h/360*100}%`}})}),f.jsxs(ed,{className:"colorpicker-alpha",ariaLabel:"Opacity",onStart:g,onPos:U=>M(U),onEnd:v,children:[f.jsx("span",{className:"colorpicker-alpha-bar",style:{background:`linear-gradient(to right, transparent, ${G})`}}),f.jsx("span",{className:"colorpicker-slider-thumb",style:{left:`${i.alpha*100}%`}})]}),f.jsxs("div",{className:"colorpicker-fields",children:[f.jsx(rn,{className:"colorpicker-hex",value:C,ariaLabel:"hex",onCommit:k}),f.jsx(pe,{className:"colorpicker-ch",label:"R",value:Pu(z.r),min:0,max:255,step:1,ariaLabel:"red",onCommit:U=>D("r",U)}),f.jsx(pe,{className:"colorpicker-ch",label:"G",value:Pu(z.g),min:0,max:255,step:1,ariaLabel:"green",onCommit:U=>D("g",U)}),f.jsx(pe,{className:"colorpicker-ch",label:"B",value:Pu(z.b),min:0,max:255,step:1,ariaLabel:"blue",onCommit:U=>D("b",U)}),L&&f.jsx("button",{type:"button",className:"btn is-icon colorpicker-eyedrop","aria-label":"Pick color from screen",onClick:()=>void _(),children:f.jsx(z2,{})})]}),f.jsx("div",{className:"colorpicker-swatches",children:cM.map(U=>f.jsx("button",{type:"button",className:"colorpicker-swatch-chip",style:{background:U},"aria-label":U,title:U,onPointerDown:T=>{T.preventDefault(),t.commit(U)}},U))})]})]})}const uM=8;function By(t){const{spec:l,value:s,commit:i,scrub:r}=t;switch(l.kind){case"number":{const c={};l.min!==void 0&&(c.min=l.min),l.max!==void 0&&(c.max=l.max),l.unit!==void 0&&(c.unit=l.unit);const d=typeof s=="number"?s:l.default,m=f.jsx(pe,{className:"insp-num",label:l.label??l.key,value:d,...c,step:l.step??.01,onCommit:i,onScrubStart:r.start,onScrub:r.move,onScrubEnd:r.end});if(l.unit==="deg"){const h={};return l.min!==void 0&&(h.min=l.min),l.max!==void 0&&(h.max=l.max),f.jsxs(f.Fragment,{children:[m,f.jsx(sM,{value:d,...h,ariaLabel:`${l.key} dial`,onCommit:i,onScrubStart:r.start,onScrub:r.move,onScrubEnd:r.end})]})}return m}case"vec2":case"vec3":case"quaternion":return f.jsx(fM,{spec:l,value:s,commit:i,scrub:r});case"color":{const c=typeof s=="string"?s:"";return f.jsx(dM,{spec:l,str:c,commit:i,scrub:r})}case"enum":{const c=typeof s=="string"?s:"",d=l.options.map(m=>({value:m}));return l.as==="switch"||l.as==="radio"?f.jsx(qt,{className:"insp-num",options:d,value:c,ariaLabel:l.key,onChange:i}):l.as!=="select"&&l.options.length>uM?f.jsx(_y,{className:"insp-num",options:d,value:c,ariaLabel:l.key,onChange:i}):f.jsx("select",{className:"select insp-num",value:c,"aria-label":l.key,onChange:m=>i(m.target.value),children:l.options.map(m=>f.jsx("option",{value:m,children:m},m))})}case"boolean":return l.as==="switch"?f.jsx(rs,{checked:s===!0,ariaLabel:l.key,onChange:i}):f.jsx("input",{type:"checkbox",className:"insp-check",checked:s===!0,"aria-label":l.key,onChange:c=>i(c.target.checked)});case"string":return f.jsx(rn,{value:typeof s=="string"?s:"",ariaLabel:l.key,...l.multiline===!0?{multiline:!0}:{},onCommit:i});case"asset":return f.jsxs(f.Fragment,{children:[f.jsx(rn,{value:typeof s=="string"?s:"",placeholder:"asset id",ariaLabel:l.key,onCommit:i}),f.jsx("span",{className:"badge",children:l.assetKind})]});case"curve":return f.jsx(Q2,{propKey:l.key,value:s,commit:i});case"gradient":return f.jsx(eM,{propKey:l.key,value:s,commit:i,scrub:r});case"slot":case"event":return f.jsx("span",{className:"badge",children:l.kind});default:return n1(l)}}function dM(t){const{spec:l,str:s,commit:i,scrub:r}=t;return f.jsxs(f.Fragment,{children:[f.jsx(ol,{value:s,ariaLabel:l.key,commit:i,scrub:r}),f.jsx(rn,{value:s,ariaLabel:l.key,onCommit:i})]})}function fM(t){const{spec:l,commit:s,scrub:i}=t,r=l.kind==="vec2"?2:l.kind==="vec3"?3:4,c=(l.kind==="quaternion"?void 0:l.axes)??_2.slice(0,r),d=l.kind==="quaternion"?.01:l.step??.01,m={};l.kind!=="quaternion"&&(l.min!==void 0&&(m.min=l.min),l.max!==void 0&&(m.max=l.max));const h=B2(t.value,r),g=H.useRef(h);return f.jsx("div",{className:"insp-vec",children:h.map((v,x)=>f.jsx(pe,{label:c[x]??"·",value:v,step:d,...m,onCommit:E=>s(Fg(h,x,E)),onScrubStart:()=>{g.current=h,i.start()},onScrub:E=>i.move(Fg(g.current,x,E)),onScrubEnd:i.end},c[x]??x))})}function mM(t){const l=t.collapsed!==void 0,s=()=>{if(t.persistKey===void 0)return t.defaultCollapsed??!1;try{const m=localStorage.getItem(t.persistKey);return m===null?t.defaultCollapsed??!1:m==="1"}catch{return t.defaultCollapsed??!1}},[i,r]=H.useState(s),c=l?t.collapsed:i,d=H.useCallback(()=>{const m=!c;if(l)t.onCollapsedChange?.(m);else if(r(m),t.persistKey!==void 0)try{localStorage.setItem(t.persistKey,m?"1":"0")}catch{}},[c,l,t]);return[c,d]}function We(t){const l=t.collapsible??!0,[s,i]=mM(t),r=H.useId(),c=l?!s:!0,d=l?f.jsxs("button",{type:"button",className:"insp-section-header","aria-expanded":c,"aria-controls":r,onClick:i,children:[f.jsx(mr,{className:`chevron insp-section-disclosure${c?" is-open":""}`}),f.jsx("span",{className:"insp-section-title",children:t.title})]}):f.jsx("div",{className:"insp-section-header is-static",children:f.jsx("span",{className:"insp-section-title",children:t.title})}),m=t.onAdd?f.jsx("button",{type:"button",className:"btn is-icon insp-section-action",title:t.addTitle,"aria-label":t.addTitle??"Add",onClick:h=>{h.stopPropagation(),t.onAdd?.()},children:f.jsx(Hd,{})}):t.action;return f.jsxs("section",{className:`insp-section${l?" is-collapsible":""}${c?"":" is-collapsed"}${t.className?` ${t.className}`:""}`,children:[f.jsxs("div",{className:"insp-section-headrow",children:[d,m!=null&&f.jsx("div",{className:"insp-section-actions",children:m})]}),c&&f.jsx("div",{id:r,className:"insp-section-body",children:t.children})]})}function hM(t){const l=`insp-label${t.icon!==void 0?" is-icon":""}`,s=t.icon??t.children;return t.htmlFor!==void 0?f.jsx("label",{className:l,title:t.title,htmlFor:t.htmlFor,children:s}):f.jsx("span",{className:l,title:t.title,children:s})}function ie(t){const l=t.label!==void 0||t.icon!==void 0;return f.jsx("div",{className:`insp-prop${t.inert?" is-inert":""}${t.className?` ${t.className}`:""}`,children:f.jsxs("div",{className:`insp-row${t.align==="start"?" is-align-start":""}`,children:[l&&f.jsx(hM,{icon:t.icon,title:t.labelTitle,htmlFor:t.htmlFor,children:t.label}),f.jsx("div",{className:"insp-control",children:t.children}),t.trailing]})})}function Ry(t){return f.jsx("div",{className:`insp-grid${t.className?` ${t.className}`:""}`,style:{"--insp-cols":String(t.columns??2)},children:t.children})}const Sa=4,pM=140;function ar(t){return t===void 0||t.kind==="separator"?!1:!(t.kind==="action"&&t.disabled===!0)}function Jg(t,l,s){if(t.length===0)return-1;for(let i=1;i<=t.length;i+=1){const r=(l+s*i+t.length*i)%t.length;if(ar(t[r]))return r}return ar(t[l])?l:-1}function Wg(t){for(let l=0;l<t.length;l+=1)if(ar(t[l]))return l;return-1}function gM(t){for(let l=t.length-1;l>=0;l-=1)if(ar(t[l]))return l;return-1}function Ly(t){const l=H.useRef(null),s=H.useRef(new Map),i=H.useRef(null),[r,c]=H.useState(null),[d,m]=H.useState(()=>Wg(t.items)),[h,g]=H.useState(null),v=H.useId(),{at:x,flip:E}=t.place;H.useLayoutEffect(()=>{const C=l.current;if(!C)return;const L=C.offsetWidth,U=C.offsetHeight,T=window.innerWidth,q=window.innerHeight;let ae=x.x;ae+L>T-Sa&&(ae=E.x-L),ae=Math.max(Sa,Math.min(ae,T-L-Sa));let me=x.y;me+U>q-Sa&&(me=E.y-U),me=Math.max(Sa,Math.min(me,q-U-Sa)),c({left:ae,top:me})},[x.x,x.y,E.x,E.y]),H.useEffect(()=>(l.current?.focus(),()=>{i.current!==null&&clearTimeout(i.current)}),[]),H.useEffect(()=>{const C=s.current.get(d);C&&typeof C.scrollIntoView=="function"&&C.scrollIntoView({block:"nearest"})},[d]);const M=()=>{i.current!==null&&(clearTimeout(i.current),i.current=null)},k=C=>{M(),m(C);const L=s.current.get(C)?.getBoundingClientRect(),U=L?{at:{x:L.right-2,y:L.top-Sa},flip:{x:L.left+2,y:L.bottom+Sa}}:{at:{x:0,y:0},flip:{x:0,y:0}};g({index:C,place:U})},D=C=>{C.kind!=="action"||C.disabled===!0||(C.onSelect(),t.onClose())},_=C=>{C.stopPropagation();const L=d>=0?t.items[d]:void 0;switch(C.key){case"ArrowDown":C.preventDefault(),g(null),m(U=>Jg(t.items,U,1));break;case"ArrowUp":C.preventDefault(),g(null),m(U=>Jg(t.items,U,-1));break;case"Home":C.preventDefault(),g(null),m(Wg(t.items));break;case"End":C.preventDefault(),g(null),m(gM(t.items));break;case"ArrowRight":L?.kind==="submenu"&&(C.preventDefault(),k(d));break;case"ArrowLeft":t.onDismissLevel&&(C.preventDefault(),t.onDismissLevel());break;case"Enter":case" ":if(L===void 0)break;C.preventDefault(),L.kind==="submenu"?k(d):D(L);break}},z=(C,L)=>{M(),m(C),L.kind==="submenu"?i.current=setTimeout(()=>k(C),pM):h!==null&&(g(null),l.current?.focus())},G=h!==null?t.items[h.index]:void 0;return f.jsxs("div",{ref:C=>{l.current=C,t.elementRef&&(t.elementRef.current=C)},role:"menu",tabIndex:-1,"aria-label":t.label,"aria-activedescendant":d>=0?`${v}-${d}`:void 0,className:"menu",style:{position:"fixed",left:r?`${r.left}px`:"-9999px",top:r?`${r.top}px`:"-9999px",visibility:r?"visible":"hidden"},onKeyDown:_,onPointerLeave:M,children:[t.items.map((C,L)=>{if(C.kind==="separator")return f.jsx("div",{role:"separator",className:"menu-separator"},`sep-${L}`);const U=C.kind==="action"&&C.disabled===!0,T=C.kind==="action"&&C.danger===!0;return f.jsxs("div",{id:`${v}-${L}`,ref:q=>{q?s.current.set(L,q):s.current.delete(L)},role:"menuitem","aria-disabled":U?!0:void 0,"aria-haspopup":C.kind==="submenu"?"menu":void 0,"aria-expanded":C.kind==="submenu"?h?.index===L:void 0,className:`menu-item${L===d?" is-active":""}${T?" is-danger":""}${U?" is-disabled":""}`,onPointerEnter:()=>z(L,C),onClick:()=>{C.kind==="submenu"?k(L):D(C)},children:[f.jsx("span",{className:"menu-label",children:C.label}),C.kind==="action"&&C.shortcut!==void 0&&f.jsx("span",{className:"menu-shortcut",children:C.shortcut}),C.kind==="submenu"&&f.jsx(mr,{className:"menu-caret"})]},C.kind==="action"?C.id:`sub-${L}`)}),h!==null&&G?.kind==="submenu"&&f.jsx(Ly,{items:G.items,place:h.place,label:G.label,onClose:t.onClose,onDismissLevel:()=>{g(null),l.current?.focus()}})]})}function yM(t){const l=H.useRef(null),{onClose:s}=t;return H.useEffect(()=>{const i=h=>h instanceof Node&&l.current!==null&&l.current.contains(h),r=h=>{i(h.target)||s()},c=h=>{h.key==="Escape"&&(h.stopPropagation(),s())},d=h=>{i(h.target)||s()},m=()=>s();return window.addEventListener("pointerdown",r,!0),window.addEventListener("keydown",c,!0),window.addEventListener("scroll",d,!0),window.addEventListener("resize",m),()=>{window.removeEventListener("pointerdown",r,!0),window.removeEventListener("keydown",c,!0),window.removeEventListener("scroll",d,!0),window.removeEventListener("resize",m)}},[s]),Fd.createPortal(f.jsx(Ly,{items:t.items,place:{at:t.at,flip:t.at},onClose:s,elementRef:l}),document.body)}function Iy(){const[t,l]=H.useState(null),s=H.useRef(null),i=H.useCallback((d,m)=>{const h=document.activeElement;(h===null||h.closest(".menu")===null)&&(s.current=h),l({at:d,items:m})},[]),r=H.useCallback(()=>{l(null);const d=s.current;s.current=null,d&&d.isConnected&&d.focus()},[]),c=t===null?null:f.jsx(yM,{at:t.at,items:t.items,onClose:r});return{open:i,close:r,menu:c}}const vM='a[href],button:not([disabled]),input:not([disabled]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"])';function Pg(t){return Array.from(t.querySelectorAll(vM))}function bM(t){const l=H.useRef(null),s=H.useRef(null),i=H.useId(),{open:r,onClose:c}=t;H.useEffect(()=>{if(!r)return;s.current=document.activeElement;const h=l.current;return(h?Pg(h)[0]??h:null)?.focus(),()=>{const g=s.current;s.current=null,g&&g.isConnected&&g.focus()}},[r]);const d=h=>{if(h.key==="Escape"){if(t.dismissOnEscape===!1)return;h.stopPropagation(),c();return}if(h.key!=="Tab")return;const g=l.current;if(!g)return;const v=Pg(g);if(v.length===0){h.preventDefault();return}const x=v[0],E=v[v.length-1],M=document.activeElement;h.shiftKey?(M===x||!g.contains(M))&&(h.preventDefault(),E.focus()):(M===E||!g.contains(M))&&(h.preventDefault(),x.focus())},m=h=>{t.dismissOnOverlay!==!1&&h.target===h.currentTarget&&c()};return r?Fd.createPortal(f.jsx("div",{className:"dialog-overlay",onPointerDown:m,children:f.jsxs("div",{ref:l,role:"dialog","aria-modal":"true","aria-labelledby":i,tabIndex:-1,className:`dialog${t.className?` ${t.className}`:""}`,onKeyDown:d,children:[f.jsx("div",{className:"dialog-title",id:i,children:t.title}),t.children!==void 0&&f.jsx("div",{className:"dialog-body",children:t.children}),t.actions!==void 0&&f.jsx("div",{className:"dialog-actions",children:t.actions})]})}),document.body):null}const $d=[{key:"opacity",label:"Opacity",read:t=>wt(t.opacity,.01)},{key:"offset",label:"Position",read:t=>t.position.map(l=>wt(l,.1)).join(", ")},{key:"scale",label:"Size",read:t=>`${wt(t.size[0],.1)} × ${wt(t.size[1],.1)}`},{key:"tilt",label:"Tilt",read:t=>`${wt(t.tilt[0],.1)}°, ${wt(t.tilt[1],.1)}°`},{key:"roll",label:"Roll",read:t=>`${wt(t.rollDeg,.1)}°`},{key:"blurPx",label:"Blur",read:t=>`${wt(t.blurPx,.1)} px`},{key:"reveal",label:"Reveal",read:t=>`${wt(t.reveal*100,1)}%`},{key:"textPhase",label:"Stagger",read:t=>`${wt(t.textPhase*100,1)}%`}],Uy=new Map($d.map(t=>[t.key,t]));function Hy(t){return ir(t).map(l=>({id:l.id,name:t.scenesById[l.id]?.name??l.id,start:l.start,end:l.end}))}function e0(t){return Wa(t)}function xM(t,l=null){const s=[],i=(c,d)=>{for(const m of c){const h=t.layersById[m];h!==void 0&&(s.push({layerId:m,label:h.label,depth:d,blocks:h.blocks.map(g=>SM(g,m)),empty:h.blocks.length===0}),i(dt(h),d+1))}},r=l===null?null:t.layersById[l];return r!=null?i([r.id],0):i(t.layers,0),s}function SM(t,l){return{id:t.id,layerId:l,slot:t.slot,preset:t.preset,frame:t.frame,durationFrames:Math.max(1,Math.trunc(t.durationFrames)),spring:sy(t)}}function Fy(t,l){if(l===void 0)return[];const s=t.frame+t.durationFrames,i=[];return t.frame<l.in&&i.push({from:t.frame,to:Math.min(s,l.in)}),s>l.out&&i.push({from:Math.max(t.frame,l.out),to:s}),i}function kM(t,l){const s=new Map;for(const i of t.blocks){const r=Object.keys(sr(i.preset,i.slot,i.params,.5));if(r.length===0)continue;const c=Math.trunc(i.frame),d=Math.max(1,Math.trunc(i.durationFrames)),m=Pa(t,c,l),h=Pa(t,c+d,l);for(const g of r){const v=Uy.get(g);if(v===void 0)continue;const x={blockId:i.id,slot:i.slot,preset:us[i.preset]?.label??i.preset,frame:c,durationFrames:d,spring:sy(i),from:v.read(m),to:v.read(h)},E=s.get(g);E===void 0?s.set(g,[x]):E.push(x)}}return $d.flatMap(i=>{const r=s.get(i.key);return r===void 0?[]:[{key:i.key,label:i.label,spans:r}]})}function jM(t){return t.shots.map(l=>({id:l.id,layerId:ja,slot:"during",preset:l.kind,frame:l.frame,durationFrames:Math.max(1,Math.trunc(l.durationFrames)),spring:l.ease?.type==="spring"}))}function Wl(t,l){return Math.round(t/Math.max(1e-6,l))}const ja="camera";function Gd(t,l){const s=t.lifetime;return s===void 0?{in:0,out:Math.max(1,Math.trunc(l.durationFrames))}:{in:Math.trunc(s.in),out:Math.trunc(s.out)}}function MM(t,l=null){return ir(t).flatMap(s=>{const i=t.scenesById[s.id];return i===void 0?[]:[{id:s.id,name:i.name,start:s.start,end:s.end,camera:jM(i),rows:xM(i,i.layersById[l??""]===void 0?null:l).map(r=>({...r,lifespan:Gd(i.layersById[r.layerId],i)}))}]})}function EM(t,l){let s=Wa(t);for(const i of l){for(const r of i.rows){s=Math.max(s,i.start+r.lifespan.out);for(const c of r.blocks)s=Math.max(s,i.start+c.frame+c.durationFrames)}for(const r of i.camera)s=Math.max(s,i.start+r.frame+r.durationFrames)}return s}function Qa(t,l){const s=t*l.den/l.num,i=Math.floor(s/60),r=s-i*60;if(t*l.den%l.num===0)return`${i}:${String(Math.round(r)).padStart(2,"0")}`;const c=r.toFixed(2);return i===0?c:`${i}:${c.padStart(5,"0")}`}const t0=1;function NM(t,l,s,i,r){const c=t.scenesById[l],d=c?.layersById[s];if(c===void 0||d===void 0)return t;const m=Gd(d,c),h=Math.round(r);let g;switch(i){case"body":{const v=Math.max(h,-Math.min(m.in,n0(d)));if(v===0)return t;g={...d,lifetime:{in:m.in+v,out:m.out+v},blocks:a0(d.blocks,v)};break}case"slip":{const v=n0(d);if(!Number.isFinite(v))return t;const x=Math.max(h,-v);if(x===0)return t;g={...d,blocks:a0(d.blocks,x)};break}case"in":{const v=Math.max(0,Math.min(m.out-t0,m.in+h));if(v===m.in)return t;g={...d,lifetime:{in:v,out:m.out}};break}case"out":{const v=Math.max(m.in+t0,m.out+h);if(v===m.out)return t;g={...d,lifetime:{in:m.in,out:v}};break}}return{...t,scenesById:{...t.scenesById,[l]:{...c,layersById:{...c.layersById,[s]:g}}}}}function n0(t){return t.blocks.reduce((l,s)=>Math.min(l,s.frame),1/0)}function $y(t){return{frame:Math.trunc(t.frame),durationFrames:Math.max(1,Math.trunc(t.durationFrames)),offsetFrames:Math.max(0,Math.trunc(t.offsetFrames??0)),gain:t.gain??1,fadeInFrames:Math.max(0,Math.trunc(t.fadeInFrames??0)),fadeOutFrames:Math.max(0,Math.trunc(t.fadeOutFrames??0)),muted:t.muted??!1}}function AM(t,l,s,i){const r=t.audio[l];if(r===void 0)return t;const c=$y(r),d=Math.round(i),m=Math.max(1,c.fadeInFrames+c.fadeOutFrames);let h,g=0;switch(s){case"body":{const M=Math.max(d,-c.frame);if(M===0)return t;h={frame:c.frame+M},g=M;break}case"in":{const M=Math.max(-c.frame,Math.max(-c.offsetFrames,Math.min(c.durationFrames-m,d)));if(M===0)return t;h={frame:c.frame+M,offsetFrames:c.offsetFrames+M,durationFrames:c.durationFrames-M};break}case"out":{const M=Math.max(m,c.durationFrames+d);if(M===c.durationFrames)return t;h={durationFrames:M};break}case"slip":{const M=Math.max(0,c.offsetFrames+d);if(M===c.offsetFrames)return t;h={offsetFrames:M};break}case"fade-in":{const M=Math.max(0,Math.min(c.durationFrames-c.fadeOutFrames,c.fadeInFrames+d));if(M===c.fadeInFrames)return t;h={fadeInFrames:M};break}case"fade-out":{const M=Math.max(0,Math.min(c.durationFrames-c.fadeInFrames,c.fadeOutFrames-d));if(M===c.fadeOutFrames)return t;h={fadeOutFrames:M};break}}const v={...t,audio:{...t.audio,[l]:{...r,...h}}};if(g===0)return v;const x=c.frame+c.durationFrames,E=(t.markers??[]).map(M=>M.frame>=c.frame&&M.frame<x?{...M,frame:Math.max(0,M.frame+g)}:M);return{...v,markers:[...E].sort((M,k)=>M.frame-k.frame)}}function a0(t,l){return t.map(s=>({...s,frame:s.frame+l}))}const l0=50,CM=[1,2,5,10,30,60,120,300];function wM(t){for(const l of CM)if(l*t>=l0)return l;for(let l=10;;l*=10)for(const s of[60,120,300]){const i=s*l;if(i*t>=l0)return i}}function Ze(t,l){return t*l}function TM(t,l){return Math.max(0,Math.round(t/l))}const Gy=Object.freeze({type:"spring",stiffness:170,damping:26,mass:1}),xd=[{id:"linear",label:"Linear",ease:{type:"bezier",handles:[...zx]}},{id:"ease",label:"Ease",ease:{type:"bezier",handles:[.25,.1,.25,1]}},{id:"ease-in",label:"Ease In",ease:{type:"bezier",handles:[.42,0,1,1]}},{id:"ease-out",label:"Ease Out",ease:{type:"bezier",handles:[0,0,.58,1]}},{id:"ease-in-out",label:"Ease In-Out",ease:{type:"bezier",handles:[.42,0,.58,1]}},{id:"hold",label:"Hold",ease:{type:"hold"}},{id:"spring",label:"Spring",ease:Gy}];function OM(t){if(t.type==="hold")return"hold";if(t.type==="spring")return"spring";for(const c of xd)if(c.ease.type==="bezier"&&c.ease.handles.every((d,m)=>d===t.handles[m]))return c.id;const[l,s,i,r]=t.handles;return l===s&&i===r?"linear":null}function DM(t,l){return t.type!==l.type?!1:t.type==="bezier"&&l.type==="bezier"?t.handles.every((s,i)=>s===l.handles[i]):t.type==="spring"&&l.type==="spring"?t.stiffness===l.stiffness&&t.damping===l.damping&&t.mass===l.mass:!0}function zM(t){const l=t[0];if(l===void 0)return{ease:null,selectValue:"mixed"};for(const s of t)if(!DM(l,s))return{ease:null,selectValue:"mixed"};return{ease:l,selectValue:OM(l)??"custom"}}function Io(t,l,s){return[l*t.width,t.padY+(1-s)*(t.height-2*t.padY)]}function _M(t,l,s){const i=Math.min(1,Math.max(0,l/t.width)),r=1-(s-t.padY)/(t.height-2*t.padY);return[i,r]}const BM=256,i0=-48;function RM(t){return`/studio/assets/${encodeURIComponent(t)}`}function Yd(t){return t.length>>1}function s0(t){const l=Math.round(t*127);return l<-127?-127:l>127?127:l}function LM(t,l=BM){const s=Math.max(0,Math.trunc(t.length)),i=Math.max(1,Math.trunc(l));if(s===0)return new Int8Array(0);const r=Math.max(1,Math.trunc(t.numberOfChannels??1)),c=[];for(let h=0;h<r;h++)c.push(t.getChannelData(h));const d=Math.ceil(s/i),m=new Int8Array(d*2);for(let h=0;h<d;h++){const g=h*i,v=Math.min(s,g+i);let x=1/0,E=-1/0;for(let M=g;M<v;M++){let k=0;for(const _ of c)k+=_[M]??0;const D=k/r;D<x&&(x=D),D>E&&(E=D)}x===1/0&&(x=0,E=0),m[h*2]=s0(x),m[h*2+1]=s0(E)}return m}function IM(t,l){const s=Math.max(1,Math.trunc(l));if(s===1)return t;const i=Yd(t),r=Math.ceil(i/s),c=new Int8Array(r*2);for(let d=0;d<r;d++){const m=d*s,h=Math.min(i,m+s);let g=127,v=-127;for(let x=m;x<h;x++){const E=t[x*2],M=t[x*2+1];E<g&&(g=E),M>v&&(v=M)}c[d*2]=g,c[d*2+1]=v}return c}function UM(t,l){if(!(l>0)||t<=0)return 1;let s=1;for(;t/(s*2)>=l;)s*=2;return s}const o0=new WeakMap;function HM(t,l){const s=Math.max(1,Math.trunc(l));if(s===1)return t;let i=o0.get(t);i===void 0&&(i=new Map,o0.set(t,i));const r=i.get(s);if(r!==void 0)return r;const c=IM(t,s);return i.set(s,c),c}function FM(t,l,s){const i=Math.max(0,l.end-l.start),r=UM(i,s);return r===1?{peaks:t,range:l}:{peaks:HM(t,r),range:{start:Math.floor(l.start/r),end:Math.ceil(l.end/r)}}}function r0(t){const l=Math.abs(t);if(!(l>0))return 0;const s=20*Math.log10(l);return s<=i0?0:1-s/i0}function $M(t,l,s,i){if(!(i>0)||t<=0)return{start:0,end:t};const r=Math.max(0,Math.min(t-1,Math.floor(l/i*t))),c=Math.max(r+1,Math.min(t,Math.ceil(s/i*t)));return{start:r,end:c}}function GM(t,l,s,i,r){const c=t.getContext("2d");if(!c)return;const d=t.height;c.clearRect(0,0,t.width,d);const m=Math.min(t.width,Math.max(0,Math.trunc(r??t.width))),h=s.end-s.start,g=Yd(l);if(h<=0||g===0||m<=0)return;c.fillStyle=i;const v=d/2;for(let x=0;x<m;x++){const E=s.start+Math.floor(x*h/m),M=Math.max(E+1,s.start+Math.ceil((x+1)*h/m));let k=0,D=0;for(let G=E;G<M&&G<g;G++){const C=l[G*2]/127,L=l[G*2+1]/127;C<k&&(k=C),L>D&&(D=L)}const _=v-r0(D)*v,z=v+r0(k)*v;c.fillRect(x,_,1,Math.max(1,z-_))}}const YM=8192;function VM(t,l){const{data:s,fromSeconds:i,toSeconds:r,color:c}=l;if(t.width=Math.min(YM,Math.max(1,Math.round(l.widthPx))),t.height=Math.max(1,Math.round(l.heightPx)),s.peaks.length===0)return;const d=r-i,m=s.sourceSeconds,h=m>0?Math.min(d,m-i):d;if(!(d>0)||!(h>0)){t.getContext("2d")?.clearRect(0,0,t.width,t.height);return}const g=Math.max(1,Math.round(t.width*h/d)),v=$M(Yd(s.peaks),i,i+h,m),x=FM(s.peaks,v,g);GM(t,x.peaks,x.range,c,g)}function Yy(t){const l=new DataView(t);if(l.byteLength<44)return null;const s=g=>String.fromCharCode(l.getUint8(g),l.getUint8(g+1),l.getUint8(g+2),l.getUint8(g+3));if(s(0)!=="RIFF"||s(8)!=="WAVE")return null;let i=0,r=0,c=0,d=0,m=-1,h=0;for(let g=12;g+8<=l.byteLength;){const v=s(g),x=l.getUint32(g+4,!0),E=g+8;v==="fmt "&&x>=16?(c=l.getUint16(E,!0),i=l.getUint16(E+2,!0),d=l.getUint32(E+4,!0),r=l.getUint16(E+14,!0)):v==="data"&&(m=E,h=Math.min(x,l.byteLength-E)),g=E+x+x%2}return c!==1&&c!==65534||r!==16||i<1||m<0||!(d>0)?null:{sampleRate:d,channels:i,frames:Math.floor(h/(i*2)),dataAt:m}}function XM(t){const l=Yy(t);if(l===null)return null;const s=new DataView(t),{channels:i,frames:r,dataAt:c}=l,d=[];for(let m=0;m<i;m++)d.push(new Float32Array(r));for(let m=0;m<r;m++){const h=c+m*i*2;for(let g=0;g<i;g++)d[g][m]=s.getInt16(h+g*2,!0)/32768}return{length:r,numberOfChannels:i,sampleRate:l.sampleRate,getChannelData:m=>d[m]??d[0]}}function KM(t){const l=Yy(t);return l===null?null:l.frames/l.sampleRate}const td=new Map,qM=Object.freeze({peaks:new Int8Array(0),sourceSeconds:0});async function ZM(t){const l=await fetch(t);if(!l.ok)throw new Error(`GET ${t} -> ${l.status}`);return l.arrayBuffer()}function QM(t,l={}){const s=td.get(t.path);if(s)return s;const i=l.fetchBytes??ZM,r=l.decode??(async d=>XM(d)),c=i(RM(t.path)).then(r).then(d=>d===null?qM:{peaks:LM(d),sourceSeconds:d.sampleRate?d.length/d.sampleRate:0});return td.set(t.path,c),c.catch(()=>td.delete(t.path)),c}function JM(t){return f.jsx("div",{className:t.className,style:{translate:`${t.offset+Ze(t.frame,t.ppf)}px 0`,willChange:"translate"}})}function WM(t){const{ppf:l}=t,s=wM(l),i=[];for(let c=0;c<=t.contentF;c+=s)i.push(c);const r=c=>{if(c.button!==0)return;const d=c.currentTarget.getBoundingClientRect().left,m=h=>{t.onSeek(TM(h-d,l))};m(c.clientX),Ca(c,{onMove:h=>m(h.clientX),onEnd:()=>{}})};return f.jsxs("div",{className:"tl-ruler",style:{minWidth:t.timeW},onPointerDown:r,children:[f.jsx("div",{className:"tl-overhang",style:{left:Ze(t.durationFrames,l)}}),i.map(c=>f.jsx("span",{className:"tl-tick",style:{left:Ze(c,l)},children:t.formatTick===void 0?c:t.formatTick(c)},c)),t.children]})}function PM(t){const{scrollRef:l,labelWidth:s,min:i,max:r,ppf:c}=t,d=t.enabled??!0,m=H.useRef(null),h=H.useRef(t.read);h.current=t.read;const g=H.useRef(t.setPxPerFrame);g.current=t.setPxPerFrame,H.useEffect(()=>{const v=l.current;if(!v)return;const x=E=>{if(!E.ctrlKey&&!E.metaKey)return;E.preventDefault();const M=h.current(),k=Math.min(r,Math.max(i,M*Math.exp(-E.deltaY*.002)));if(k===M)return;const D=E.clientX-v.getBoundingClientRect().left,_=D-s+v.scrollLeft;_>=0&&(m.current=_/M*k-(D-s)),g.current(k)};return v.addEventListener("wheel",x,{passive:!1}),()=>v.removeEventListener("wheel",x)},[l,s,i,r,d]),H.useLayoutEffect(()=>{const v=l.current;v&&m.current!==null&&(v.scrollLeft=Math.max(0,m.current),m.current=null)},[c])}const eE=6,tE={tagName:"INPUT",isContentEditable:!1},nE=400,c0={selection:[],selectedBlock:null,selectedMarker:null,imagePick:null,isolation:null,editingDef:null},aE=180,lE=100,u0=Sy*Math.log(1.25),iE=1,nd="A drag is still running, so this would land inside its own undo entry — finish the drag, then try again.";function sE(){let t=zg;const l=new Set;let s=null,i=null,r=null,c=null,d=null,m=null,h=null,g=null,v=null,x=null,E=Promise.resolve(),M=0;function k(b){let S=!1;for(const N of Object.keys(b))if(!Object.is(t[N],b[N])){S=!0;break}if(S){t={...t,...b};for(const N of l)N()}}function D(b){i?.loadDoc(b),i?.setIsolation(t.isolation),t.isolationOrbit&&i?.setIsolationOrbit(!0)}function _(){i?.setStageLayout(t.stageLayout),i?.setWorkingView(t.workingView),i?.setCameraFollowsView(t.cameraFollowsView),i?.setShadingMode(t.shadingMode),i?.setTool(t.tool)}function z(b,S){if(b===null)return 0;const N=Math.max(0,pg(b)-1);return Math.max(0,Math.min(N,Math.round(S)))}function G(){return t.editingDef??t.sceneId}function C(b,S){return b===null?null:bn(b,S)?.scene.id??b.scenes[0]??null}function L(b){const S=z(b,t.frame),N=C(b,S),O=(U(b,t.isolation)?t.isolation:null)===null?null:T(N,b),J=t.editingDef!==null&&b.components?.[t.editingDef]!==void 0?t.editingDef:null;k({doc:b,frame:S,sceneId:N,isolation:O,...O===null?{isolationOrbit:!1}:{},editingDef:J,dirty:!0,canUndo:s?.canUndo??!1,canRedo:s?.canRedo??!1}),D(b),i?.seek(S),Re()}function U(b,S){return S===null?!1:Object.values(b.scenesById).some(N=>N.layersById[S]!==void 0)}function T(b,S=t.doc){const N=t.isolation;return N===null||b===null?N:S?.scenesById[b]?.layersById[N]===void 0?null:N}function q(){k({canUndo:s?.canUndo??!1,canRedo:s?.canRedo??!1})}function ae(){return h===null&&g===null?!1:(k({error:nd}),!0)}function me(b,S){b&&k({error:S})}function se(){return t.stageLayout.mode!=="camera"?!1:(k({error:"that key aims the working view, and this layout shows the camera only. Press 1 for the working view or 2 for the split."}),!0)}function Re(){c!==null&&clearTimeout(c),c=setTimeout(()=>{c=null,Fe()},nE)}function Fe(){const b=t.name,S=t.doc;if(b===null||S===null)return Promise.resolve();const N=M;return k({saveState:"saving"}),E=E.then(async()=>{if(N===M)try{const A=await wg(b,S,t.rev);if(N!==M)return;k({rev:A.rev,saveState:"saved",dirty:t.doc!==S,error:null,emitWarning:A.warning??null}),t.doc!==S&&Re()}catch(A){if(N!==M)return;const O=A instanceof Error?A.message:String(A);k({saveState:"error",error:A instanceof Kl&&A.conflict?`${O} (your edits are still here — copy anything you need before reloading)`:O})}}),E}function vt(b,S,N,A,O){if(A.kind!=="move")return{delta:A,guides:[]};const J=b.scenesById[S];if(J===void 0)return{delta:A,guides:[]};let te=h?.snap??null;if(te===null||te.forScene!==S){const re=new Set(N),ge=[],Ce=[];for(const we of Object.values(J.layersById)){const Pe=Kn(J,we.id).position,Pl={position:[Pe[0],-Pe[1],-Pe[2]],size:we.transform.size};re.has(we.id)?ge.push(Pl):Ce.push(Pl)}te={forScene:S,moving:ge,others:Ce},h!==null&&(h.snap=te)}const de=GS(te.moving,te.others,b.size,A,eE/Math.max(O,1e-6));return{delta:{...A,dx:de.dx,dy:de.dy},guides:de.guides}}function he(b){const S=t.sceneId,N=t.doc;if(S===null||N===null)return;if(g===null&&h!==null){k({error:nd});return}const A=bn(N,t.frame)?.sceneFrame??0;let O=null;const J=te=>{const de=mk(te,S,A,te.fps,t.animateMode,b);return O=de.refusal,de.doc};g===null?K.edit(J):g.capture(J),k({error:O})}function ke(b){const S=t.doc;if(S===null)return;if(t.isolation!==null&&!t.isolationOrbit){k({error:"The working pane is showing this subtree head-on rather than a viewpoint the shot camera could take — orbit the pane to take the camera, or leave isolation (Esc), then align."});return}const N=Vj(b,S.size,fs);if(!N.ok){k({error:N.refusal});return}he(A=>({...A,x:N.x,y:N.y,zoom:N.zoom}))}function V(){if(x!==null)clearTimeout(x);else if(h!==null||g!==null||(ft.onFramingGestureStart(),g===null))return;x=setTimeout(ne,aE)}function ne(){x!==null&&(clearTimeout(x),x=null,ft.onFramingGestureEnd(!0))}function ue(){const b=t.doc;if(b===null)return null;const S=bn(b,t.frame),N=S?.sceneId??t.sceneId,A=N===null?void 0:b.scenesById[N];if(N===null||A===void 0)return null;const O=t.isolation===null?void 0:A.layersById[t.isolation],J=O!==void 0&&I1(O)?O.id:void 0;return{sceneId:N,scene:A,ctx:{sceneFrame:S?.sceneId===N?S.sceneFrame:0,durationFrames:A.durationFrames},...J===void 0?{}:{parent:J}}}function Le(b){const S=ue(),N=t.doc;if(S===null||N===null)return;const A=yt(Nt(N),Ma,b.kind);K.edit(O=>$e(O,S,{...b,id:A})),Me([A])}function $e(b,S,N){return cS(b,{sceneId:S.sceneId,layer:{...N,transform:R(b,S.sceneId,S.parent,N.transform)},...S.parent===void 0?{}:{parent:S.parent}})}function R(b,S,N,A){const O=b.scenesById[S];return N===void 0||O===void 0?A:{...A,...el(P0(O,N),hn(A))}}function ee(b,S,N,A){const O=ue();if(O===null)return;let J=null;K.edit(te=>{const de=Nt(te),re=Object.values(te.assets).find(Pe=>Pe.path===b.path),ge=re??{id:yt(de,cg,ld(S.replace(/\.[^.]*$/,""))),path:b.path,hash:b.hash,kind:N},Ce=A(ge.id,O.ctx);if(Ce===null)return te;de.add(ge.id),J=yt(de,Ma,Ce.kind);const we=re===void 0?{...te,assets:{...te.assets,[ge.id]:ge}}:te;return $e(we,O,{...Ce,id:J})}),J!==null&&Me([J])}function le(b,S){const N=t.sceneId;N!==null&&K.edit(A=>{const O=A.scenesById[N],J=O?.layersById[b];if(O===void 0||J===void 0||J.kind!=="instance")return A;const te=S(J.instance);return te===J.instance?A:{...A,scenesById:{...A.scenesById,[N]:{...O,layersById:{...O.layersById,[b]:{...J,instance:te}}}}}})}function oe(b){return{contractHash:b.contract.contractHash,contract:bS({availability:b.contractAvailability??"inferred",contract:b.contract})}}async function Se(b,S,N){const A=await jj(b);if(N!==M)throw new Error(`${b.name} was imported into a scene that has closed`);const O=A.kind;if(O===void 0||!S.includes(O))throw new Error(`${b.name} is not ${hE(S)} (the store saw it as ${A.kind??"an unknown kind"})`);return{uploaded:A,kind:O}}function Ae(b,S){const N=ue();if(N===null)return;const A=Bg(b,S,N.ctx);A!==null&&Le(A),K.setTool("select")}function _e(b){const S=t.sceneId,N=S===null?void 0:t.doc?.scenesById[S];return N===void 0?b:jk(N,b,t.isolation)}const ft={onReady(b){k({stageInfo:b,stageError:null}),t.doc!==null&&(D(t.doc),i?.seek(t.frame),i?.setSelection(t.selection)),_()},onError(b){k({stageError:b})},onPick(b,S,N){if(k({activePane:N}),b.length===0){if(S.shift)return;if(t.isolation!==null&&S.marquee!==!0){K.exitIsolation(),Me([]);return}Me([]);return}if(S.marquee===!0){const O=b.map(_e);Me(S.shift?[...t.selection,...O]:O);return}const A=_e(b[0]);if(S.meta){const O=b.indexOf(t.selection[0]??"");Me([b[(O+1)%b.length]]);return}if(S.shift){Me(t.selection.includes(A)?t.selection.filter(O=>O!==A):[...t.selection,A]);return}Me([A])},onEnterLayer(b,S){k({activePane:S});const N=b[0];N!==void 0&&K.enterIsolation(_e(N))},onIsolationOrbitTaken(){t.isolation===null||t.isolationOrbit||(k({isolationOrbit:!0}),i?.setIsolationOrbit(!0))},onViewChange(b){k({view:b})},onWorkingViewChange(b,S="gesture"){if(S==="fit"||!t.cameraFollowsView){if(d=b,m??=setTimeout(()=>{m=null,d!==null&&k({workingView:d}),d=null},lE),S==="fit")return}else k({workingView:b});t.cameraFollowsView&&(S==="wheel"&&V(),ke(b))},onActivePane(b){t.stageMenu!==null?k({activePane:b,stageMenu:null}):k({activePane:b})},onDraw(b,S){if(!(t.doc===null||t.sceneId===null)){if(b==="image"){k({imagePick:S.map(N=>[N[0],N[1]])}),K.setTool("select");return}Ae(b,S)}},onPenCommit(b){const S=ue();if(S===null)return;const N=a2(b,S.ctx);N!==null&&Le(N),K.setTool("select")},onKey(b,S){return K.handleKey({...b,target:S?tE:null})},onGestureStart(b,S,N){return s===null||t.doc===null||(ne(),h!==null||g!==null)?!1:(h={kind:b,layerIds:[...S],scrub:s.scrub(),screenScale:N??null,snap:null},k({error:null}),!0)},onGesture(b){const S=h;if(S===null||t.sceneId===null||t.doc===null)return;const N=t.sceneId,A=bn(t.doc,t.frame)?.sceneFrame??0;let O=[],J=[];S.scrub.capture(re=>{if(t.animateMode){const we=VS(re,N,S.layerIds,b,A,re.fps);return O=we.refusals,J=[],we.doc}const ge=vt(re,N,S.layerIds,b,S.screenScale??t.view.zoom);J=ge.guides;const Ce=_S(re,N,S.layerIds,ge.delta,A,re.fps);return O=Ce.refusals,Ce.doc}),i?.setSnapGuides(J);const te=t.doc.scenesById[N]?.layersById??{},de=b.kind==="resize"?S.layerIds.map(re=>te[re]).find(re=>re!==void 0&&!lS(re)):void 0;k({error:O[0]??(de===void 0?null:`"${de.label}" is a ${de.kind}, so its box only bounds its children. Dragging the handle moves it, but growing the box draws nothing.`)})},onGestureEnd(b){const S=h;h=null,S!==null&&(i?.setSnapGuides([]),b?S.scrub.commit():S.scrub.discard(),q())},onFramingGestureStart(){return s===null||t.doc===null||(ne(),h!==null||g!==null)?!1:(g=s.scrub(),k({error:null}),!0)},onFramingGesture(b){g!==null&&he(S=>fk(S,b))},onFramingGestureEnd(b){const S=g;g=null,S!==null&&(b?S.commit():S.discard(),q())},onKeyLightStart(b){return s===null||t.doc===null||(ne(),h!==null||g!==null||v!==null)?!1:(v={layerId:b,scrub:s.scrub()},k({error:null}),!0)},onKeyLight(b){const S=v;if(S===null||t.sceneId===null)return;const N=t.sceneId;b.every(A=>Number.isFinite(A))&&S.scrub.capture(A=>{const O=A.scenesById[N],J=O?.layersById[S.layerId];if(O===void 0||J===void 0||J.kind!=="mesh")return A;const te=J.mesh.shading;return{...A,scenesById:{...A.scenesById,[N]:{...O,layersById:{...O.layersById,[S.layerId]:{...J,mesh:{...J.mesh,shading:{...te?.mode==="toon"?te:{},mode:"toon",keyDir:[b[0],b[1],b[2]]}}}}}}}})},onKeyLightEnd(b){const S=v;v=null,S!==null&&(b?S.scrub.commit():S.scrub.discard(),q())},onContextMenu(b,S,N){k({activePane:S});const A=b[0];if(A===void 0)return;const O=_e(A);t.selection.includes(O)||Me([O]),k({stageMenu:{at:{x:N.x,y:N.y},hits:[...b],pane:S}})},onMeshStats(b,S){const N=t.meshTriangles;if(S===null){if(!(b in N))return;const A={...N};delete A[b],k({meshTriangles:A});return}N[b]!==S&&k({meshTriangles:{...N,[b]:S}})}};function Me(b){const S=G(),N=t.doc,A=N!==null&&S!==null?gt(N,S):null,O=N!==null&&t.sceneId!==null&&S!==t.sceneId?gt(N,t.sceneId):null,J=new Set(b),te=new Map;for(const ge of Object.values(A?.layersById??{}))J.has(ge.id)&&te.set(ge.id,ge.order);let de=!1;if(te.size<J.size&&O!==null)for(const ge of Object.values(O.layersById))!J.has(ge.id)||te.has(ge.id)||(te.set(ge.id,ge.order),de=!0);const re=A===null&&O===null?[...J]:[...te.entries()].sort((ge,Ce)=>ge[1]-Ce[1]).map(([ge])=>ge);de&&k({editingDef:null}),t.selectedBlock!==null&&!re.includes(t.selectedBlock.layerId)&&k({selectedBlock:null}),t.selectedMarker!==null&&k({selectedMarker:null}),!rE(re,t.selection)&&(k({selection:re,selectedBlock:null}),i?.setSelection(re))}function Sn(){if(typeof window>"u")return;const b=new URL(window.location.href);t.name===null?b.searchParams.delete("shot"):b.searchParams.set("shot",t.name),window.history.replaceState(null,"",b)}async function Ta(b,S){const N=await Sj(b);if(S!==M)return;h?.scrub.discard(),h=null,g?.discard(),g=null,x!==null&&(clearTimeout(x),x=null),s=sg(N.doc),s.subscribe(L);const A=0;k({name:N.name,doc:N.doc,rev:N.rev,frame:A,sceneId:C(N.doc,A),...c0,playing:!1,dirty:!1,saveState:"idle",error:null,emitWarning:null,canUndo:!1,canRedo:!1}),Sn(),D(N.doc),i?.seek(A),i?.setSelection([])}const K={getState:()=>t,subscribe(b){return l.add(b),()=>l.delete(b)},stageHandlers:ft,attachStage(b){if(i=b,b===null){k({stageInfo:null});return}t.doc!==null&&(D(t.doc),b.seek(t.frame),b.setSelection(t.selection)),_()},stage:()=>i,selectionQuads:()=>i?.selectionQuads()??null,async refreshShots(){try{const{shots:b}=await xj();k({shots:b})}catch(b){k({error:b instanceof Error?b.message:String(b)})}},async openShot(b){if(b===t.name)return;try{await K.flush()}catch{return}const S=++M;try{await Ta(b,S)}catch(N){if(S!==M)return;k({error:N instanceof Error?N.message:String(N)})}},async createShot(b){try{await K.flush()}catch{return}const S=++M,N=fE(b),A=oS({id:`sht_${ld(b)}`,name:N});try{const O=await wg(b,A,null);if(S!==M)return;s=sg(A),s.subscribe(L),k({name:b,doc:A,rev:O.rev,frame:0,sceneId:A.scenes[0]??null,...c0,dirty:!1,saveState:"saved",error:null,emitWarning:O.warning??null,canUndo:!1,canRedo:!1}),Sn(),D(A),i?.seek(0),i?.setSelection([]),K.refreshShots()}catch(O){if(S!==M)return;k({error:O instanceof Error?O.message:String(O)})}},closeShot(){x!==null&&(clearTimeout(x),x=null),h?.scrub.discard(),h=null,g?.discard(),g=null,M++,s=null,i?.closeDoc(),i?.clearCaches(),k({...zg,shots:t.shots,...oE(t)}),Sn()},adoptExternalChange(b){if(bj(b))return;if(b.name!==void 0&&b.name!==t.name){K.refreshShots();return}if(t.name===null)return;if(t.dirty){k({error:"this scene changed somewhere else while you had unsaved edits — your version is still open; save it under another name or reload to take theirs"});return}const S=++M;Ta(t.name,S).catch(()=>{})},edit(b){return s===null||(ne(),ae())?!1:(s.transaction(b),!0)},undo(){ne(),!ae()&&s?.undo()},redo(){ne(),!ae()&&s?.redo()},async flush(){if(c!==null&&(clearTimeout(c),c=null,await Fe()),await E,t.saveState==="error")throw new Error(`${t.error??"the last save failed"}. This scene is not on disk, so nothing that replaces or closes it may run yet`)},seek(b){const S=z(t.doc,b);if(S===t.frame)return;const N=C(t.doc,S),A=T(N),O=t.isolation;k({frame:S,sceneId:N,isolation:A,...A===null?{isolationOrbit:!1}:{}}),i?.seek(S),A!==O&&i?.setIsolation(A)},setPlaying(b){k({playing:b})},step(b){if(t.doc===null)return;const S=pg(t.doc);if(S<=0)return;const N=((t.frame+b)%S+S)%S;K.seek(N)},select:Me,focusScene(b){if(t.doc===null||b===t.sceneId)return;const S=H1(t.doc,b,0);S!==null&&K.seek(S),K.setScene(b)},setTool(b){k({tool:b}),i?.setTool(b)},setInspectorMode(b){k({inspectorMode:b})},setAnimateMode(b){k({animateMode:b,inspectorMode:b?"animate":t.inspectorMode})},handleKey(b){const S=x2(b,{editing:S2(b.target??null),hasSelection:t.selection.length>0,isolation:t.isolation!==null});if(S===null)return!1;switch(S.kind){case"tool":return K.setTool(S.tool),!0;case"undo":return K.undo(),!0;case"redo":return K.redo(),!0;case"save":return K.flush().catch(()=>{}),!0;case"playToggle":return K.setPlaying(!t.playing),!0;case"step":return K.setPlaying(!1),K.step(S.delta),!0;case"nudge":return K.nudge(S.dx,S.dy),!0;case"fit":return K.fitActivePane(),!0;case"fitTimeline":return K.fitDock(),!0;case"zoom":return K.zoomActivePane(S.direction),!0;case"zoomReset":return t.activePane==="working"?K.fitWorkingView():K.setView({...t.view,zoom:1}),!0;case"stageLayout":{const N=S.toggle===!0&&t.stageLayout.mode===S.mode?"split":S.mode;return K.setStageLayout({...t.stageLayout,mode:N}),!0}case"shadingCycle":return t.stageLayout.mode!=="camera"&&K.setShadingMode(E2(t.shadingMode)),!0;case"alignCameraToView":return K.alignCameraToWorkingView(),!0;case"addMarker":return K.addMarkerAtPlayhead(),!0;case"togglePanel":return S.panel==="rail"?K.setRailCollapsed(!t.railCollapsed):S.panel==="inspector"?K.setInspectorCollapsed(!t.inspectorCollapsed):K.togglePanels(),!0;case"animateToggle":return K.setAnimateMode(!t.animateMode),!0;case"openExport":return t.name!==null&&K.setExportOpen(!0),!0;case"deleteSelection":return K.deleteSelection(),!0;case"duplicate":return K.duplicateSelection(),!0;case"selectAll":return K.selectAll(),!0;case"deselect":return Me([]),!0;case"group":return K.groupSelection(),!0;case"ungroup":return K.ungroupSelection(),!0;case"toggleLock":return K.toggleFlag("locked"),!0;case"toggleHidden":return K.toggleFlag("hidden"),!0;case"splitAtPlayhead":return K.splitAtPlayhead(),!0;case"enterIsolation":{const N=t.selection[0];return N!==void 0&&K.enterIsolation(N),!0}case"exitIsolation":return K.exitIsolation(),!0;case"workingViewPreset":return se()||K.setWorkingView(Gj(t.workingView,S.preset)),!0;case"fitSelection":return se()||K.fitWorkingViewToSelection(),!0;case"orbitStep":return se()||K.setWorkingView(Fj(t.workingView,S.dx,S.dy)),!0;case"toggleWorkingOrtho":return se()||K.setWorkingView({...t.workingView,ortho:t.workingView.ortho!==!0}),!0;case"setHidden":{const N=G(),A=t.doc===null||N===null?null:gt(t.doc,N);if(N===null||A===null)return!0;const O=t.isolation===null?Object.keys(A.layersById):[...Aa(A,[t.isolation])],J=Mk(A,t.selection),te=S.scope==="reveal"?O:S.scope==="others"?O.filter(de=>!J.has(de)):[...new Set(t.selection)];return te.length===0||K.edit(de=>Eg(de,N,te,{hidden:S.scope!=="reveal"})),!0}case"clearTransform":{const N=G();if(N===null||t.selection.length===0)return!0;const A=t.selection;return K.edit(O=>{const J=gt(O,N);if(J===null)return O;const te={...J.layersById};let de=!1;for(const re of A){const ge=te[re];if(ge===void 0||ge.locked===!0)continue;const Ce=ge.transform,we=S.channel==="offset"?{...Ce,position:[0,0,0]}:S.channel==="rotation"?{...Ce,tilt:[0,0],rollDeg:0}:Ce;we!==Ce&&(te[re]={...ge,transform:we},de=!0)}return de?Kt(O,N,{...J,layersById:te}):O}),S.channel==="scale"&&k({error:"A layer's size is its own geometry rather than a transform, so there is no scale to clear — set W and H in the inspector, or undo the resize."}),!0}case"wireframeToggle":return t.stageLayout.mode!=="camera"&&K.setShadingMode(t.shadingMode==="wireframe"?t.previousShading??"solid":"wireframe"),!0;case"boxSelect":return!1;case"toggleIsolation":return t.isolation!==null?K.exitIsolation():t.selection[0]!==void 0&&K.enterIsolation(t.selection[0]),!0;case"penCommit":case"penAbandon":case"modalStart":case"modalAxis":case"modalNumber":case"modalNumberBack":case"modalConfirm":case"modalCancel":return!1}},deleteSelection(){const b=t.selectedMarker;if(b!==null){K.removeMarker(b);return}const S=t.sceneId;if(S===null)return;const N=t.selectedBlock;if(N!==null){k({selectedBlock:null}),K.edit(O=>N.layerId===ja?ok(O,N.sceneId,N.blockId):Yu(O,N.sceneId,N.layerId,N.blockId));return}const A=t.selection;A.length!==0&&(Me([]),K.edit(O=>hy(O,S,A)))},duplicateSelection(){const b=t.selection;if(b.length===0||t.sceneId===null)return;const S=G();let N=[];K.edit(A=>{const O=Ek(A,S,b);return N=O.ids,O.doc}),N.length>0&&Me(N)},alignSelection(b){const S=t.sceneId,N=t.doc;if(S===null||N===null||t.selection.length===0)return;const A=t.selection,O=bn(N,t.frame)?.sceneFrame??0;let J=null;const te=K.edit(de=>{const re=qk(de,S,A,b,O);return J=re.refusal,re.doc});me(te,J)},enterIsolation(b){const S=t.sceneId,N=S===null?void 0:t.doc?.scenesById[S];N===void 0||N.layersById[b]===void 0||(k({isolation:b,isolationOrbit:!1,selection:[b]}),t.stageLayout.mode==="camera"&&K.setStageLayout({...t.stageLayout,mode:"split"}),i?.setIsolation(b))},exitIsolationAll(){t.isolation!==null&&(k({isolation:null,isolationOrbit:!1}),i?.setIsolation(null))},exitIsolation(){const b=t.isolation;if(b===null)return;const S=t.sceneId,N=S===null?void 0:t.doc?.scenesById[S],A=N===void 0?null:on(N,b);k({isolation:A,isolationOrbit:!1,selection:[b]}),i?.setIsolation(A)},moveLayerTo(b,S){const N=G();if(N===null)return;let A=null;const O=K.edit(J=>{const te=zk(J,N,b,S);return A=te.refusal??null,te.doc});me(O,A)},groupSelection(){const b=t.selection,S=G();if(b.length<2||S===null)return;let N=null,A=null;const O=K.edit(J=>{const te=Nk(J,S,b);return N=te.id,A=te.refusal??null,te.doc});me(O,A),N!==null&&Me([N])},ungroupSelection(){const b=G();if(b===null||t.selection.length===0)return;const S=t.selection;let N=[],A=null;const O=K.edit(J=>{let te=J;for(const de of S){const re=Dk(te,b,de);te=re.doc,N=[...N,...re.ids],A===null&&re.refusal!==void 0&&(A=re.refusal)}return te});me(O,A),N.length>0&&Me(N)},toggleFlag(b){const S=t.selection,N=G();if(S.length===0||N===null||t.doc===null)return;const O=gt(t.doc,N)?.layersById[S[0]]?.[b]!==!0;K.edit(J=>Eg(J,N,S,{[b]:O}))},renameLayer(b,S){const N=G();N!==null&&K.edit(A=>Ik(A,N,b,S))},reorderLayer(b,S){const N=G();N!==null&&K.edit(A=>Rk(A,N,b,S))},restack(b,S){const N=G();N!==null&&K.edit(A=>Lk(A,N,b,S))},nudge(b,S){const N=t.selection,A=t.sceneId;if(N.length===0||A===null)return;let O=null;const J=K.edit(te=>{const de=te.scenesById[A];if(de===void 0)return te;const re={...de.layersById};let ge=!1;for(const Ce of N){const we=re[Ce];if(we===void 0)continue;if(we.locked===!0){O??=`"${we.label}" is locked, so it did not move — unlock it to include it.`;continue}const Pe=ny(we.transform,{kind:"move",dx:b,dy:S});Pe!==we.transform&&(re[Ce]={...we,transform:Pe},ge=!0)}return ge?{...te,scenesById:{...te.scenesById,[A]:{...de,layersById:re}}}:te});me(J,O)},setDockCollapsed(b){k({dockCollapsed:b,focusRestoreDock:null})},setRailCollapsed(b){k({railCollapsed:b})},setRailWidth(b){k({railWidth:Tg(b,Qo.min,Qo.max)})},setDockHeight(b){const S=wj(typeof window>"u"?ql.max:window.innerHeight);k({dockHeight:Tg(b,ql.min,S)})},setInspectorCollapsed(b){k({inspectorCollapsed:b,focusRestoreInspector:null})},togglePanels(){const b=K.getState(),S=!b.railCollapsed||!b.inspectorCollapsed||!b.dockCollapsed;k({railCollapsed:S,inspectorCollapsed:S,dockCollapsed:S,focusRestoreInspector:null,focusRestoreDock:null})},setDockPpf(b){k({dockPpf:Math.max(.2,Math.min(60,b))})},attachDockFit(b){r=b},fitDock(b){r?.(b)},async importAudio(b,S){if(t.doc===null)throw new Error("open a scene before importing audio");const A=M,{uploaded:O}=await Se(b,["audio"],A),J=await Mj(O.path);if(A!==M)throw new Error(`${b.name} was imported into a scene that has closed`);const te=KM(J);if(te===null||!(te>0))throw new Error(`${b.name} stored, but its duration could not be read from the stored WAV`);const de=Math.max(0,Math.round(S??t.frame));K.edit(re=>{const ge=Object.values(re.assets).find(Pe=>Pe.path===O.path),Ce=ge??{id:yt(Nt(re),cg,ld(b.name.replace(/\.[^.]*$/,""))),path:O.path,hash:O.hash,kind:"audio"},we=ge===void 0?{...re,assets:{...re.assets,[Ce.id]:Ce}}:re;return uS(we,{asset:Ce.id,frame:de,durationFrames:Math.max(1,Math.ceil(te*re.fps.num/re.fps.den))})})},dragAudio(b,S,N){const A=h;A!==null&&A.scrub.capture(O=>AM(O,b,S,N))},dragAudioGain(b,S){const N=h;if(N===null)return;const A=Math.max(0,Math.min(fd,S));N.scrub.capture(O=>mg(O,b,{gain:A}))},toggleAudioMute(b){const S=t.doc?.audio[b];S!==void 0&&K.edit(N=>mg(N,b,{muted:!(S.muted??!1)}))},removeAudio(b){K.edit(S=>dS(S,b))},setPreviewMuted(b){k({previewMuted:b})},setPreviewVolume(b){k({previewVolume:Math.max(0,Math.min(1,b))})},selectMarker(b){k(b===null?{selectedMarker:b}:{selectedMarker:b,selectedBlock:null})},addMarkerAtPlayhead(){const b=t.doc;if(b===null)return;const S=t.frame,N=(b.markers??[]).find(J=>J.frame===S);if(N!==void 0){K.selectMarker(N.id);return}const A=new Set((b.markers??[]).map(J=>J.id));K.edit(J=>fS(J,{frame:S}));const O=K.getState().doc?.markers?.find(J=>!A.has(J.id));O!==void 0&&K.selectMarker(O.id)},dragMarker(b,S){const N=h;if(N===null)return;const A=Math.max(0,Math.round(S));N.scrub.capture(O=>{const J=O.markers?.find(te=>te.id===b);return J===void 0||J.frame===A?O:hg(O,b,{frame:A})})},setMarker(b,S){K.edit(N=>hg(N,b,S))},removeMarker(b){K.edit(S=>mS(S,b)),t.selectedMarker===b&&k({selectedMarker:null})},setAgentOpen(b){k({agentOpen:b})},setAgentModel(b){k({agentModel:b})},setAgentCredentials(b,S){k({agentCredentials:b,agentCredentialsError:S??null})},setAgentRunning(b){k({agentRunning:b})},setAgentError(b){k({agentError:b})},setAgentSession(b){k({agentSessionId:b})},setAgentCost(b){k({agentCostUsd:b})},appendAgentItem(b){k({agentItems:[...t.agentItems,b]})},patchAgentProposal(b,S){k({agentItems:pj(t.agentItems,b,S)})},clearAgentTranscript(){k({agentItems:[],agentError:null,agentSessionId:null,agentCostUsd:null})},setExportOpen(b){k({exportOpen:b})},setRenderJob(b){const S=t.renderJob;b!==null&&S!==null&&S.id===b.id&&S.phase!=="running"&&b.phase==="running"||k({renderJob:b})},selectBlock(b){k(b===null?{selectedBlock:b}:{selectedBlock:b,selectedMarker:null})},beginBlockDrag(){s!==null&&(ne(),!(h!==null||g!==null)&&(h={kind:"move",layerIds:[],scrub:s.scrub(),screenScale:null,snap:null}))},dragBlock(b,S,N,A,O){const J=h;J!==null&&J.scrub.capture(te=>S===ja?A==="body"?ik(te,b,N,O):sk(te,b,N,A,O):A==="body"?bg(te,b,S,N,O):xg(te,b,S,N,A,O))},dragLifespan(b,S,N,A){const O=h;O!==null&&O.scrub.capture(J=>NM(J,b,S,N,A))},endBlockDrag(b){const S=h;h=null,S!==null&&(b?S.scrub.commit():S.scrub.discard(),q())},trimScene(b,S){const N=h;if(N===null){K.edit(A=>Sg(A,b,S));return}N.scrub.capture(A=>Sg(A,b,S))},reorderScene(b,S){K.edit(N=>rk(N,b,S))},setSceneTransition(b,S){K.edit(N=>uk(N,b,S))},addScene(){const b=t.doc;if(b===null)return;const S=new Set(b.scenes);K.edit(A=>{const O=X0(Nt(A),"scene",`Shot ${A.scenes.length+1}`);return{...A,scenes:[...A.scenes,O.id],scenesById:{...A.scenesById,[O.id]:O}}});const N=K.getState().doc?.scenes.find(A=>!S.has(A));N!==void 0&&K.focusScene(N)},splitAtPlayhead(){const b=t.sceneId,S=t.doc;if(b===null||S===null)return;const N=bn(S,t.frame)?.sceneFrame??0,A=t.selectedBlock;if(A!==null&&A.sceneId===b){K.edit(O=>nk(O,b,A.layerId,A.blockId,N).doc);return}K.edit(O=>ck(O,b,N).doc)},addBlock(b,S,N=12){const A=t.sceneId,O=t.selection;if(A===null||O.length===0||t.doc===null)return;const J=bn(t.doc,t.frame)?.sceneFrame??0;let te=null,de=null;const re=K.edit(ge=>{const Ce=WS(ge,A,O,b,S,N,J);return te=Ce.blockIds[0]??null,de=Ce.refusals[0]??null,Ce.doc});me(re,de),te!==null&&k({selectedBlock:{sceneId:A,layerId:O[0],blockId:te}})},setBlockPreset(b,S,N){const A=t.sceneId;A!==null&&K.edit(O=>ek(O,A,b,S,N))},removeBlock(b,S){const N=t.sceneId;if(N===null)return;K.edit(O=>Yu(O,N,b,S)),t.selectedBlock?.blockId===S&&k({selectedBlock:null})},removeBlocksByPreset(b,S){const N=t.sceneId,A=t.doc;if(N===null||A===null)return;const O=A.scenesById[N];if(O===void 0)return;const J=t.selection;K.edit(te=>{let de=te;for(const re of J){const ge=O.layersById[re];if(ge!==void 0)for(const Ce of ge.blocks)Ce.slot===b&&Ce.preset===S&&(de=Yu(de,N,re,Ce.id))}return de})},setBlockParams(b,S,N){const A=t.sceneId;A!==null&&K.edit(O=>tk(O,A,b,S,N))},setBlockEase(b,S,N){const A=t.sceneId;A!==null&&K.edit(O=>ak(O,A,b,S,N))},setBlockTiming(b,S,N,A){const O=t.sceneId;O!==null&&K.edit(J=>{const te=bg(J,O,b,S,N);return xg(te,O,b,S,"out",N+A)})},selectAll(){const b=t.doc,S=b===null?null:gt(b,t.editingDef??t.sceneId??"");if(S===null)return;const N=Object.keys(S.layersById);if(t.editingDef!==null||t.isolation===null){Me(N);return}const A=Aa(S,[t.isolation]);Me(N.filter(O=>O!==t.isolation&&A.has(O)))},async completeImageDraw(b){const S=t.imagePick;if(k({imagePick:null}),b===null||S===null)return;const N=M,{uploaded:A,kind:O}=await Se(b,["image","video"],N);ee(A,b.name,O,(J,te)=>Bg("image",S,{...te,asset:J,assetKind:O}))},async addMeshLayer(b){if(Ay(t.meshTriangles)>=Ny){k({error:u2});return}const S=M,{uploaded:N}=await Se(b,["model"],S);ee(N,b.name,"model",(A,O)=>l2(A,O))},addDeviceLayer(b){const S=ue();S!==null&&Le(i2(b,S.ctx))},addHtmlLayer(){const b=ue();b!==null&&Le(s2(b.ctx))},addClonerLayer(){const b=t.sceneId,S=t.selection;if(b===null||S.length===0)return;let N=null;K.edit(A=>{const O=Ak(A,b,S);return N=O.id,O.doc}),N!==null&&Me([N])},createComponentFromSelection(b){const S=t.sceneId,N=t.selection;if(S===null||N.length===0)return;let A=null,O=null;const J=K.edit(te=>{const de=Uk(te,S,N,b);return A=de.instanceId,O=de.refusal??null,de.doc});me(J,O),A!==null&&Me([A])},placeComponent(b){const S=t.sceneId;if(S===null)return;let N=null,A=null;const O=K.edit(J=>{const te=$k(J,S,b);return N=te.instanceId,A=te.refusal??null,te.doc});me(O,A),N!==null&&Me([N])},deleteComponent(b){let S=null;const N=K.edit(A=>{const O=Gk(A,b);return S=O.refusal??null,O.doc});N&&S===null&&t.editingDef===b&&k({editingDef:null}),me(N,S)},renameComponent(b,S){K.edit(N=>Yk(N,b,S))},setComponentOverride(b,S,N){const A=t.sceneId;A!==null&&K.edit(O=>{const J=gt(O,A),te=J?.layersById[b];if(J===null||te===void 0||te.kind!=="component")return O;const de={...te.component.overrides};return N===null?delete de[S]:de[S]=N,Kt(O,A,{layers:J.layers,layersById:{...J.layersById,[b]:{...te,component:{...te.component,overrides:de}}}})})},editComponent(b){b!==t.editingDef&&(k({editingDef:b,selection:[],selectedBlock:null}),i?.setSelection([]))},async refreshLibrary(){try{const b=await kj();k({library:b,libraryLoaded:!0,libraryError:null})}catch(b){k({libraryError:b instanceof Error?b.message:String(b)})}},async loadContract(b){if(t.contracts[b]===void 0)try{const S=await Qu(b);k({contracts:{...K.getState().contracts,[b]:S.contract}})}catch{}},async addInstanceLayer(b){t.libraryLoaded||await K.refreshLibrary();const S=K.getState().library.find(O=>O.id===b);if(S===void 0){K.reportError(`no component ${JSON.stringify(b)} in the registry`);return}if(S.host!=="three"){K.reportError(`${S.name} is a "${S.host}" component — an instance layer mounts inside the scene's 3D canvas, so only three-class components can be instanced.`);return}let N;try{N=await Qu(b)}catch(O){K.reportError(O instanceof Error?O.message:String(O));return}k({contracts:{...K.getState().contracts,[b]:N.contract}});const A=ue();A!==null&&Le(o2(b,S.name,oe(N),A.ctx))},setInstanceProp(b,S,N){le(b,A=>({...A,props:{...A.props,[S]:N}}))},clearInstanceProp(b,S){le(b,N=>{if(!(S in N.props))return N;const A={...N.props};return delete A[S],{...N,props:A}})},setInstanceClockOffset(b,S){const N=Math.round(S);le(b,A=>{if(N===0){const{clockOffsetFrames:O,...J}=A;return J}return{...A,clockOffsetFrames:N}})},async rebindInstance(b){const S=t.doc,N=t.sceneId;if(S===null||N===null)return"no document";const A=S.scenesById[N]?.layersById[b];if(A===void 0||A.kind!=="instance")return"not an instance layer";const O=A.instance.component;let J;try{J=await Qu(O)}catch(ge){return ge instanceof Error?ge.message:String(ge)}k({contracts:{...K.getState().contracts,[O]:J.contract}});const te=A.instance.contract,de=te?.source==="snapshot"?te.contract:K.getState().contracts[O]??null,re=J0(A.instance.props,de,J.contract);return le(b,ge=>({...ge,props:kS(ge.props,re),...oe(J)})),null},setScene(b){const S=T(b),N=t.isolation;k({sceneId:b,isolation:S,...S===null?{isolationOrbit:!1}:{}}),S!==N&&i?.setIsolation(S)},setView(b){k({view:b}),i?.setView(b)},fitView(){const b=i?.fitView();k(b!==void 0?{view:b}:{view:jy})},zoomActivePane(b){if(t.activePane==="working"){const S=t.doc===null?void 0:Rj(t.doc.size);K.setWorkingView($j(t.workingView,b===1?-u0:u0,S));return}K.setView({...t.view,zoom:Dj(t.view.zoom*(b===1?1.25:.8))})},fitActivePane(){t.activePane==="working"?K.fitWorkingView():K.fitView()},setStageLayout(b){const S={mode:b.mode,splitRatio:M2(b.splitRatio)},N=S.mode==="split"?t.activePane:S.mode,A=S.mode==="working"&&t.stageLayout.mode!=="working",O=S.mode!=="working"&&t.stageLayout.mode==="working";k({stageLayout:S,activePane:N,...A?{focusRestoreInspector:t.inspectorCollapsed,focusRestoreDock:t.dockCollapsed,inspectorCollapsed:!0,dockCollapsed:!0}:{},...O?{...t.focusRestoreInspector===null?{}:{inspectorCollapsed:t.focusRestoreInspector},...t.focusRestoreDock===null?{}:{dockCollapsed:t.focusRestoreDock},focusRestoreInspector:null,focusRestoreDock:null}:{}}),i?.setStageLayout(S)},setWorkingView(b){k({workingView:b}),i?.setWorkingView(b),t.cameraFollowsView&&ke(b)},fitWorkingView(){if(t.isolation!==null){if(!t.isolationOrbit)return;k({isolationOrbit:!1}),i?.setIsolationOrbit(!1);return}const b=i?.fitWorkingView();b!==void 0&&(k({workingView:b}),t.cameraFollowsView&&ke(b))},fitWorkingViewToSelection(){const b=t.doc,S=t.sceneId,N=b===null||S===null?void 0:b.scenesById[S];if(b===null||N===void 0)return;if(t.isolation!==null){K.fitWorkingView();return}if(t.selection.length===0){K.fitWorkingView();return}const A=bn(b,t.frame)?.sceneFrame??0,O=kg(N,t.selection,A,b.fps,b.size,yd);if(O===null){K.fitWorkingView();return}const J=Xj(O,b.size);K.setWorkingView({...J,theta:t.workingView.theta,phi:t.workingView.phi,...t.workingView.ortho===!0?{ortho:!0}:{}})},setActivePane(b){k({activePane:b})},setCameraFollowsView(b){k({cameraFollowsView:b}),i?.setCameraFollowsView(b)},setShadingMode(b){k({shadingMode:b,...b===t.shadingMode?{}:{previousShading:t.shadingMode}}),i?.setShadingMode(b)},openMaterialPicker(b){const S=t.sceneId,N=t.doc===null||S===null?void 0:t.doc.scenesById[S];if(N===void 0)return;const A=b.filter(O=>N.layersById[O]?.kind==="mesh");if(A.length===0){k({error:"A material paints a model's surface, so it needs a mesh layer selected."});return}k({materialPicker:{layerIds:A},stageMenu:null})},closeMaterialPicker(){t.materialPicker!==null&&k({materialPicker:null})},applyMeshMaterial(b,S){const N=t.sceneId;if(N===null)return;const A=K.edit(O=>{const J=O.scenesById[N];if(J===void 0)return O;const te={...J.layersById};let de=!1;for(const re of b){const ge=te[re];ge===void 0||ge.kind!=="mesh"||(te[re]={...ge,mesh:{...ge.mesh,material:{generator:S}}},de=!0)}return de?{...O,scenesById:{...O.scenesById,[N]:{...J,layersById:te}}}:O});me(A,null),A&&(t.stageLayout.mode!=="camera"&&(t.shadingMode==="solid"||t.shadingMode==="wireframe")&&K.setShadingMode("material"),k({materialPicker:null}))},removeMeshMaterial(b){const S=t.sceneId;if(S===null)return;const N=K.edit(A=>{const O=A.scenesById[S];if(O===void 0)return A;const J={...O.layersById};let te=!1;for(const de of b){const re=J[de];if(re===void 0||re.kind!=="mesh"||re.mesh.material===void 0)continue;const{material:ge,...Ce}=re.mesh;J[de]={...re,mesh:Ce},te=!0}return te?{...A,scenesById:{...A.scenesById,[S]:{...O,layersById:J}}}:A});me(N,null)},alignCameraToWorkingView(){ke(t.workingView)},fitCameraToSelection(){const b=t.doc,S=t.sceneId,N=b===null||S===null?void 0:b.scenesById[S];if(b===null||N===void 0)return;if(t.selection.length===0){k({error:"Select the layers you want in shot, then fit the camera to them."});return}const A=bn(b,t.frame)?.sceneFrame??0,O=kg(N,t.selection,A,b.fps,b.size,yd);if(O===null){k({error:"That selection has no width or height at this frame, so there is nothing for the camera to frame."});return}he(J=>({...J,...O}))},setSceneCamera(b){he(S=>({...S,...b}))},setShotFraming(b,S,N){const A=t.sceneId;A!==null&&K.edit(O=>ad(O,A,b,J=>{if(J.kind==="path")return J;const te=uE({...J[S],...N});return dE(te,J[S])?J:S==="from"?{...J,from:te}:{...J,to:te}}))},setShotKind(b,S){const N=t.sceneId;N!==null&&K.edit(A=>ad(A,N,b,O=>O.kind===S||O.kind==="path"?O:{...O,kind:S}))},setShotEase(b,S){const N=t.sceneId;N!==null&&K.edit(A=>ad(A,N,b,O=>({...O,ease:S})))},addShotAtPlayhead(b){const S=t.doc,N=t.sceneId,A=S===null||N===null?void 0:S.scenesById[N];if(S===null||N===null||A===void 0)return;if(b!==void 0&&b!==N){k({error:`The playhead is in "${A.name}", so there is nowhere in "${S.scenesById[b]?.name??b}" to put a camera move. Move the playhead into that shot first.`});return}if(h!==null||g!==null&&x===null){k({error:nd});return}const O=bn(S,t.frame)?.sceneFrame??0,J=A.shots.find(Pe=>O>=Pe.frame&&O<Pe.frame+cE(Pe));if(J!==void 0){k({error:`The camera is already moving here: "${J.label}" covers frame ${O}. Edit that move, or put the playhead after it and add another.`});return}const te=A.shots.find(Pe=>Pe.frame>O)?.frame??1/0,de=Math.min(te,Math.max(1,Math.trunc(A.durationFrames)))-O;if(de<nl){k({error:`There is no room for a camera move at frame ${O}: the next move, or the end of the shot, is too close. Move the playhead earlier, or make the shot longer.`});return}const re=Math.max(nl,Math.min(de,Math.round(S.fps.num/S.fps.den*iE))),ge=os(A,O,S.fps),Ce=new Set(A.shots.map(Pe=>Pe.id));K.edit(Pe=>K0(Pe,N,{label:"Camera move",kind:"dolly",from:ge,to:ge,frame:O,durationFrames:re},"camera-move"));const we=K.getState().doc?.scenesById[N]?.shots.find(Pe=>!Ce.has(Pe.id));we!==void 0&&k({selectedBlock:{sceneId:N,layerId:ja,blockId:we.id},inspectorMode:"animate",error:null})},dismissError(){k({error:null})},reportError(b){k({error:b})}};return K}function oE(t){return{view:t.view,stageLayout:t.stageLayout,workingView:t.workingView,activePane:t.activePane,cameraFollowsView:t.cameraFollowsView,shadingMode:t.shadingMode,tool:t.tool,inspectorMode:t.inspectorMode,animateMode:t.animateMode,dockCollapsed:t.dockCollapsed,railCollapsed:t.railCollapsed,inspectorCollapsed:t.inspectorCollapsed,focusRestoreInspector:t.focusRestoreInspector,focusRestoreDock:t.focusRestoreDock,railWidth:t.railWidth,dockHeight:t.dockHeight,dockPpf:t.dockPpf,previewMuted:t.previewMuted,previewVolume:t.previewVolume}}function rE(t,l){return t.length===l.length&&t.every((s,i)=>s===l[i])}function cE(t){return Math.max(1,Math.trunc(t.durationFrames))}function ad(t,l,s,i){const r=t.scenesById[l];if(r===void 0)return t;const c=r.shots.findIndex(g=>g.id===s);if(c<0)return t;const d=r.shots[c],m=i(d);if(m===d)return t;const h=[...r.shots];return h[c]=m,{...t,scenesById:{...t.scenesById,[l]:{...r,shots:h}}}}function uE(t){return{...t,zoom:Math.max(zd,Math.min(_d,t.zoom))}}function dE(t,l){return t.x===l.x&&t.y===l.y&&t.zoom===l.zoom&&t.rollDeg===l.rollDeg&&t.focusZ===l.focusZ}function fE(t){const s=t.split(/[^A-Za-z0-9]+/).filter(i=>i.length>0).map(i=>i[0].toUpperCase()+i.slice(1)).join("");return/^[A-Za-z]/.test(s)?s:`Shot${s}`}const mE={image:"an image",video:"a video",audio:"audio",model:"a model (.glb / .gltf)",font:"a font"};function hE(t){const l=t.map(i=>mE[i]),s=l.pop();return s===void 0?"a supported asset":l.length===0?s:`${l.join(", ")} or ${s}`}function ld(t){return t.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")||"shot"}const Vy=H.createContext(null);function pE(t){return f.jsx(Vy.Provider,{value:t.store,children:t.children})}function ye(){const t=H.useContext(Vy);if(!t)throw new Error("useStore outside <StoreProvider>");return t}function Z(t){const l=ye();return H.useSyncExternalStore(l.subscribe,()=>t(l.getState()),()=>t(l.getState()))}function Xy(t,l,s){if(s.ids.length===0)return[];const r=(l.sceneId===null?void 0:l.doc?.scenesById[l.sceneId]?.layersById)?.[s.ids[0]],c=r?.hidden===!0,d=r?.locked===!0,m=[{kind:"action",id:"duplicate",label:"Duplicate",onSelect:()=>t.duplicateSelection()},{kind:"separator"},{kind:"action",id:"hidden",label:c?"Show":"Hide",onSelect:()=>t.toggleFlag("hidden")},{kind:"action",id:"locked",label:d?"Unlock":"Lock",onSelect:()=>t.toggleFlag("locked")},{kind:"separator"}];return l.isolation!==null?m.push({kind:"action",id:"isolation",label:"Exit isolation",onSelect:()=>t.exitIsolation()}):m.push({kind:"action",id:"isolation",label:"Isolate",onSelect:()=>{const h=s.ids[0];h!==void 0&&t.enterIsolation(h)}}),s.meshIds.length>0&&(m.push({kind:"separator"}),m.push({kind:"action",id:"material",label:"Apply material…",onSelect:()=>t.openMaterialPicker(s.meshIds)}),s.hasMaterial&&m.push({kind:"action",id:"material-remove",label:"Remove material",onSelect:()=>t.removeMeshMaterial(s.meshIds)})),m.push({kind:"separator"}),m.push({kind:"action",id:"delete",label:"Delete",danger:!0,onSelect:()=>t.deleteSelection()}),m}function Ky(t,l){const s=t.editingDef!==null?t.doc?.components?.[t.editingDef]?.layersById:t.sceneId===null?void 0:t.doc?.scenesById[t.sceneId]?.layersById,i=[];let r=!1;for(const c of l){const d=s?.[c];d===void 0||d.kind!=="mesh"||(i.push(c),d.mesh.material!==void 0&&(r=!0))}return{ids:l,meshIds:i,hasMaterial:r}}function gE(){const[t,l]=H.useState(null),[s,i]=H.useState(!1);return H.useEffect(()=>{let r=!0;return(async()=>{try{const c=await fetch("/auth/mcp-token",{headers:{accept:"application/json"}});if(!c.ok)return;const d=await c.json();r&&typeof d.command=="string"&&l(d.command)}catch{}})(),()=>{r=!1}},[]),f.jsxs("div",{className:"mcp-section","data-testid":"mcp-section",children:[f.jsx("div",{className:"file-section-label",children:"MCP"}),t===null?f.jsxs("p",{className:"help-note",children:["Run ",f.jsx("code",{children:"npx dailies-studio connect"})," in this project, then start Claude Code in the same folder — it picks up ",f.jsx("code",{children:".mcp.json"})," and can edit this scene."]}):f.jsxs(f.Fragment,{children:[f.jsx("p",{className:"help-note",children:"Paste into your terminal — Claude Code connects to this workspace over MCP:"}),f.jsxs("div",{className:"help-command",children:[f.jsx("code",{children:t}),f.jsx("button",{type:"button",onClick:()=>{navigator.clipboard?.writeText(t),i(!0),window.setTimeout(()=>i(!1),1500)},children:s?"Copied":"Copy"})]})]})]})}function it(t){return f.jsx("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:t})}const yE={text:it(f.jsx("path",{d:"M6 6h12M12 6v13"})),image:it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"2"}),f.jsx("circle",{cx:"9",cy:"9.5",r:"1.5"}),f.jsx("path",{d:"m4.5 17 4-4 4 4 3-3 4 4"})]})),video:it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"2"}),f.jsx("path",{d:"M10.5 9.5v5l4-2.5z"})]})),rect:it(f.jsx("rect",{x:"4.5",y:"6.5",width:"15",height:"11",rx:"1.5"})),ellipse:it(f.jsx("circle",{cx:"12",cy:"12",r:"7.5"})),line:it(f.jsx("path",{d:"M5.5 18.5 18.5 5.5"})),arrow:it(f.jsx("path",{d:"M6 18 18 6M9 6h9v9"})),path:it(f.jsx("path",{d:"M4.5 19.5c7 0 8-15 15-15"})),html:it(f.jsx("path",{d:"m9 8-4 4 4 4M15 8l4 4-4 4"})),group:it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"4",y:"4",width:"12",height:"12",rx:"2"}),f.jsx("path",{d:"M20 9v9a2 2 0 0 1-2 2H9"})]})),device:it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"7",y:"3.5",width:"10",height:"17",rx:"2"}),f.jsx("path",{d:"M10.5 17.5h3"})]})),mesh:it(f.jsx("path",{d:"M12 3.5 19.5 8v8L12 20.5 4.5 16V8z"})),cloner:it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"4.5",y:"4.5",width:"6",height:"6",rx:"1"}),f.jsx("rect",{x:"13.5",y:"4.5",width:"6",height:"6",rx:"1"}),f.jsx("rect",{x:"4.5",y:"13.5",width:"6",height:"6",rx:"1"}),f.jsx("rect",{x:"13.5",y:"13.5",width:"6",height:"6",rx:"1"})]})),instance:it(f.jsx("path",{d:"m12 4 8 8-8 8-8-8z"}))},vE=it(f.jsx("path",{d:"m12 6 6 6-6 6-6-6z"}));function bE(t){return yE[t]??vE}const xE=it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"3.5",y:"5",width:"17",height:"14",rx:"2"}),f.jsx("path",{d:"M3.5 9.5h17M9 5.5l1.5 4M14 5.5l1.5 4"})]})),SE=it(f.jsx("path",{d:"M12 3.5 15 6.5 12 9.5 9 6.5zM17.5 9l3 3-3 3-3-3zM12 14.5l3 3-3 3-3-3zM6.5 9l3 3-3 3-3-3z"})),kE=it(f.jsxs(f.Fragment,{children:[f.jsx("path",{d:"M3.5 12S6.5 6 12 6s8.5 6 8.5 6-3 6-8.5 6S3.5 12 3.5 12z"}),f.jsx("circle",{cx:"12",cy:"12",r:"2.5"})]})),jE=it(f.jsxs(f.Fragment,{children:[f.jsx("path",{d:"M3.5 12S6.5 6 12 6s8.5 6 8.5 6-3 6-8.5 6S3.5 12 3.5 12z"}),f.jsx("path",{d:"m5 4.5 14 15"})]})),ME=it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"5.5",y:"10.5",width:"13",height:"9",rx:"2"}),f.jsx("path",{d:"M8.5 10.5V8a3.5 3.5 0 0 1 7 0v2.5"})]})),EE=it(f.jsxs(f.Fragment,{children:[f.jsx("rect",{x:"5.5",y:"10.5",width:"13",height:"9",rx:"2"}),f.jsx("path",{d:"M8.5 10.5V8a3.5 3.5 0 0 1 6.8-1.2"})]}));function NE(){const t=ye(),l=Z(C=>C.doc),s=Z(C=>C.sceneId),i=Z(C=>C.isolation),r=Z(C=>C.editingDef),[c,d]=H.useState(""),[m,h]=H.useState(new Set),[g,v]=H.useState(null),x=l?.id??null;if(H.useEffect(()=>{h(new Set),v(null)},[x]),l===null)return null;const E=s===null?void 0:l.scenesById[s],M=Ea(l),k=gt(l,r??s??""),D=c.trim().toLowerCase(),_=k===null?[]:i===null||r!==null?k.layers:dt(k.layersById[i]??{}),z=C=>{h(L=>{const U=new Set(L);return U.has(C)?U.delete(C):U.add(C),U})},G=(C,L)=>{const U=t.getState().selection;if(L.shiftKey&&g!==null&&k!==null){const T=Zy(k,_,m,D),q=T.indexOf(g),ae=T.indexOf(C);if(q!==-1&&ae!==-1){t.select(T.slice(Math.min(q,ae),Math.max(q,ae)+1));return}}if(L.ctrlKey||L.metaKey){t.select(U.includes(C)?U.filter(T=>T!==C):[...U,C]),v(C);return}t.select([C]),v(C)};return f.jsxs("div",{className:"file-panel","data-testid":"file-panel",children:[f.jsx("label",{className:"file-search",children:f.jsx("input",{type:"search",value:c,placeholder:"Search layers","aria-label":"Search layers",onChange:C=>d(C.target.value)})}),f.jsx("div",{className:"file-section-label",children:"Shots"}),f.jsx("ul",{className:"scene-list",children:l.scenes.map(C=>{const L=l.scenesById[C];return L===void 0?null:f.jsx("li",{children:f.jsxs("button",{type:"button",className:`scene-row${C===s?" is-current":""}`,"aria-current":C===s,onClick:()=>t.focusScene(C),children:[f.jsx("span",{className:"layer-kind","aria-hidden":"true",children:xE}),f.jsx("span",{className:"row-label",children:L.name})]})},C)})}),Object.keys(M).length===0?null:f.jsxs(f.Fragment,{children:[f.jsx("div",{className:"file-section-label",children:"Components"}),f.jsx("ul",{className:"component-list","data-testid":"component-list",children:Object.values(M).map(C=>f.jsxs("li",{className:`component-row${C.id===r?" is-current":""}`,children:[f.jsx("span",{className:"layer-kind","aria-hidden":"true",children:SE}),f.jsx("button",{type:"button",className:"layer-name","aria-current":C.id===r,onClick:()=>t.editComponent(C.id===r?null:C.id),children:C.name}),f.jsx("span",{className:"component-count","aria-hidden":"true",children:Ld(l,C.id).length}),f.jsx("button",{type:"button",className:"layer-flag","aria-label":`Place ${C.name}`,title:"Place another one",onClick:()=>t.placeComponent(C.id),children:"+"})]},C.id))})]}),f.jsx("div",{className:"file-section-label",children:r===null?"Layers":"Inside"}),E!==void 0&&i!==null?f.jsxs("nav",{className:"isolation-crumbs","data-testid":"isolation-crumbs",children:[f.jsx("button",{type:"button",className:"crumb",onClick:()=>t.exitIsolationAll(),children:E.name}),AE(E,i).map((C,L,U)=>f.jsx("button",{type:"button",className:`crumb${L===U.length-1?" is-current":""}`,"aria-current":L===U.length-1,onClick:()=>t.enterIsolation(C),children:E.layersById[C]?.label??C},C))]}):null,k===null?null:f.jsx("ul",{className:"layer-list","data-testid":"layer-list",children:f.jsx(qy,{scene:k,containerId:r??s??"",ids:_,depth:0,parent:r===null?i:null,query:D,collapsed:m,onToggleCollapse:z,onRowClick:G})}),f.jsx(gE,{})]})}function qy({scene:t,containerId:l,ids:s,depth:i,parent:r,query:c,collapsed:d,onToggleCollapse:m,onRowClick:h}){return f.jsx(f.Fragment,{children:s.map((g,v)=>{const x=t.layersById[g];if(x===void 0)return null;const E=dt(x);if(c.length>0&&!Vd(t,x,c))return null;const M=!d.has(g)||c.length>0;return f.jsx(CE,{layer:x,depth:i,index:v,parent:r,containerId:l,hasChildren:E.length>0&&c.length===0,open:M,onToggleCollapse:m,onRowClick:h,children:E.length>0&&M?f.jsx("ul",{className:"layer-children",children:f.jsx(qy,{scene:t,containerId:l,ids:E,depth:i+1,parent:x.id,query:c,collapsed:d,onToggleCollapse:m,onRowClick:h})}):null},g)})})}function Zy(t,l,s,i){const r=[];for(const c of l){const d=t.layersById[c];if(d===void 0||i.length>0&&!Vd(t,d,i))continue;r.push(c);const m=dt(d),h=!s.has(c)||i.length>0;m.length>0&&h&&r.push(...Zy(t,m,s,i))}return r}function AE(t,l){const s=[];let i=l;for(let r=0;i!==null&&r<=Object.keys(t.layersById).length;r+=1)s.push(i),i=on(t,i);return s.reverse()}function d0(t,l){const s=l.getBoundingClientRect(),i=(t.clientY-s.top)/Math.max(1,s.height);return i<.28?"before":i>.72?"after":"into"}function Vd(t,l,s){return l.label.toLowerCase().includes(s)?!0:dt(l).some(i=>{const r=t.layersById[i];return r!==void 0&&Vd(t,r,s)})}function CE({layer:t,depth:l,index:s,parent:i,containerId:r,hasChildren:c,open:d,onToggleCollapse:m,onRowClick:h,children:g}){const v=ye(),x=Z(L=>L.selection.includes(t.id)),E=Z(L=>L.meshTriangles[t.id]),M=Z(L=>Ay(L.meshTriangles)),k=E!==void 0&&M>Ey,[D,_]=H.useState(!1),[z,G]=H.useState(null),C=Iy();return f.jsxs("li",{className:"layer-item",children:[C.menu,f.jsxs("div",{className:`layer-row${x?" is-selected":""}${z===null?"":` is-drop-${z}`}`,style:{paddingLeft:8+l*12},"data-layer":t.id,onContextMenu:L=>{L.preventDefault();const U=v.getState(),T=U.selection.includes(t.id)?U.selection:[t.id];U.selection.includes(t.id)||v.select([t.id]);const q=v.getState();C.open({x:L.clientX,y:L.clientY},Xy(v,q,Ky(q,T)))},draggable:!0,onDragStart:L=>L.dataTransfer.setData("text/plain",t.id),onDragOver:L=>{L.preventDefault(),G(d0(L,L.currentTarget))},onDragLeave:()=>G(null),onDrop:L=>{L.preventDefault();const U=d0(L,L.currentTarget);G(null);const T=L.dataTransfer.getData("text/plain");T.length===0||T===t.id||(U==="into"?v.moveLayerTo(T,{parent:t.id}):v.moveLayerTo(T,{parent:i,index:U==="before"?s:s+1}))},children:[c?f.jsx("button",{type:"button",className:`layer-toggle${d?" is-open":""}`,"aria-expanded":d,"aria-label":`${d?"Collapse":"Expand"} ${t.label}`,onClick:()=>m(t.id),children:f.jsx(mr,{})}):f.jsx("span",{className:"layer-toggle-spacer","aria-hidden":"true"}),f.jsx("span",{className:"layer-kind","aria-hidden":"true",children:bE(t.kind)}),D?f.jsx("input",{className:"layer-rename",autoFocus:!0,defaultValue:t.label,"aria-label":`Rename ${t.label}`,onBlur:L=>{v.renameLayer(t.id,L.target.value),_(!1)},onKeyDown:L=>{L.key==="Enter"&&L.currentTarget.blur(),L.key==="Escape"&&_(!1)}}):f.jsx("button",{type:"button",className:"layer-name",onClick:L=>h(t.id,L),onDoubleClick:()=>_(!0),children:t.label}),E===void 0?null:f.jsx("span",{className:`layer-tris${k?" is-over-budget":""}`,"aria-hidden":"true",title:k?c2(M):`${E.toLocaleString()} triangles`,children:r2(E)}),f.jsx("button",{type:"button",className:"layer-flag","aria-pressed":t.hidden===!0,"aria-label":`${t.hidden===!0?"Show":"Hide"} ${t.label}`,onClick:()=>{v.select([t.id]),v.toggleFlag("hidden")},children:t.hidden===!0?jE:kE}),f.jsx("button",{type:"button",className:"layer-flag","aria-pressed":t.locked===!0,"aria-label":`${t.locked===!0?"Unlock":"Lock"} ${t.label}`,onClick:()=>{v.select([t.id]),v.toggleFlag("locked")},children:t.locked===!0?ME:EE})]}),g]})}const ve=(t,l={})=>({key:t,shiftKey:l.shift===!0,altKey:l.alt===!0,ctrlKey:l.ctrl===!0,metaKey:!1,...l.code===void 0?{}:{code:l.code}}),wE=[{group:"View",combo:"Space",does:"Play / pause",probe:ve(" "),action:"playToggle"},{group:"View",combo:"← →",does:"Step one frame (nothing selected)",probe:ve("ArrowRight"),action:"step"},{group:"View",combo:"1 / 2 / 3",does:"Working / split / camera view",probe:ve("1"),action:"stageLayout"},{group:"View",combo:"[",does:"Hide / show the left panel",probe:ve("["),action:"togglePanel"},{group:"View",combo:"]",does:"Hide / show the right panel",probe:ve("]"),action:"togglePanel"},{group:"View",combo:".",does:"Hide every panel",probe:ve("."),action:"togglePanel"},{group:"View",combo:"\\",does:"Fit the timeline",probe:ve("\\"),action:"fitTimeline"},{group:"View",combo:"⌘+ / ⌘−",does:"Zoom in / out",probe:ve("=",{ctrl:!0}),action:"zoom"},{group:"View",combo:"⌘0",does:"Zoom to 100%",probe:ve("0",{ctrl:!0}),action:"zoomReset"},{group:"View",combo:"Home",does:"Fit the active pane",probe:ve("Home"),action:"fit"},{group:"View",combo:"⇧C",does:"Fit the active pane (Blender's frame all)",probe:ve("c",{shift:!0}),action:"fit"},{group:"View",combo:"Z",does:"Cycle working-pane shading (solid / wire / material / rendered)",probe:ve("z"),action:"shadingCycle"},{group:"View",combo:"⇧Z",does:"Wireframe on / off",probe:ve("z",{shift:!0}),action:"wireframeToggle"},{group:"Working view",combo:"G",does:"Grab the selection — move it with the mouse, click to place",probe:ve("g"),workingPane:!0,hasSelection:!0,action:"modalStart"},{group:"Working view",combo:"R",does:"Rotate the selection (roll)",probe:ve("r"),workingPane:!0,hasSelection:!0,action:"modalStart"},{group:"Working view",combo:"S",does:"Scale the selection",probe:ve("s"),workingPane:!0,hasSelection:!0,action:"modalStart"},{group:"Working view",combo:"G / S",does:"Nothing selected: move / zoom the camera",probe:ve("g"),workingPane:!0,action:"modalStart"},{group:"Working view",combo:"X / Y / Z",does:"Constrain the transform to an axis (again clears; G+Z = depth)",probe:ve("x"),transformModal:!0,action:"modalAxis"},{group:"Working view",combo:"0-9",does:"Type an exact value: G X 200 Enter",probe:ve("2"),transformModal:!0,action:"modalNumber"},{group:"Working view",combo:"G / R / S",does:"Switch transform without leaving the gesture",probe:ve("r"),transformModal:!0,hasSelection:!0,action:"modalStart"},{group:"Working view",combo:"Enter",does:"Confirm the transform (or click)",probe:ve("Enter"),transformModal:!0,action:"modalConfirm"},{group:"Working view",combo:"Esc",does:"Cancel the transform (or right-click)",probe:ve("Escape"),transformModal:!0,action:"modalCancel"},{group:"Working view",combo:"Num1 / 3 / 7",does:"Front / right / top view (⌘ = the opposite)",probe:ve("1",{code:"Numpad1"}),action:"workingViewPreset"},{group:"Working view",combo:"Num0",does:"Camera view, and back again",probe:ve("0",{code:"Numpad0"}),action:"stageLayout"},{group:"Working view",combo:"Num.",does:"Frame the selection",probe:ve(".",{code:"NumpadDecimal"}),action:"fitSelection"},{group:"Working view",combo:"Num2 / 4 / 6 / 8",does:"Orbit 15°; Num9 looks from the opposite side",probe:ve("4",{code:"Numpad4"}),action:"orbitStep"},{group:"Working view",combo:"Num5",does:"Orthographic / perspective",probe:ve("5",{code:"Numpad5"}),action:"toggleWorkingOrtho"},{group:"Working view",combo:"Num/",does:"Go inside the selection, and back out",probe:ve("/",{code:"NumpadDivide"}),action:"toggleIsolation"},{group:"Working view",combo:"Num+ / Num−",does:"Zoom the active pane",probe:ve("+",{code:"NumpadAdd"}),action:"zoom"},{group:"Edit",combo:"Arrows",does:"Nudge selection 1 px (⇧ = 10)",probe:ve("ArrowRight"),hasSelection:!0,action:"nudge"},{group:"Edit",combo:"⌘Z",does:"Undo",probe:ve("z",{ctrl:!0}),action:"undo"},{group:"Edit",combo:"⌘⇧Z",does:"Redo",probe:ve("z",{ctrl:!0,shift:!0}),action:"redo"},{group:"Edit",combo:"⌘S",does:"Save",probe:ve("s",{ctrl:!0}),action:"save"},{group:"Edit",combo:"⌘D",does:"Duplicate",probe:ve("d",{ctrl:!0}),action:"duplicate"},{group:"Edit",combo:"⌘A / A",does:"Select all, in the scope you are in",probe:ve("a",{ctrl:!0}),action:"selectAll"},{group:"Edit",combo:"⌥A",does:"Deselect all",probe:ve("a",{alt:!0}),action:"deselect"},{group:"Edit",combo:"B",does:"Box select with the next drag",probe:ve("b"),action:"boxSelect"},{group:"Edit",combo:"⇧D",does:"Duplicate",probe:ve("d",{shift:!0}),action:"duplicate"},{group:"Edit",combo:"Esc",does:"Deselect",probe:ve("Escape"),action:"deselect"},{group:"Edit",combo:"Del",does:"Delete selection",probe:ve("Delete"),action:"deleteSelection"},{group:"Edit",combo:"⌘G",does:"Group",probe:ve("g",{ctrl:!0}),action:"group"},{group:"Edit",combo:"⌘⇧G",does:"Ungroup",probe:ve("g",{ctrl:!0,shift:!0}),action:"ungroup"},{group:"Edit",combo:"⌥L",does:"Lock / unlock",probe:ve("l",{alt:!0}),action:"toggleLock"},{group:"Edit",combo:"H",does:"Hide the selection",probe:ve("h"),action:"setHidden"},{group:"Edit",combo:"⇧H",does:"Hide everything else",probe:ve("h",{shift:!0}),action:"setHidden"},{group:"Edit",combo:"⌥H",does:"Show everything again",probe:ve("h",{alt:!0}),action:"setHidden"},{group:"Edit",combo:"⌥G / ⌥R",does:"Clear the position / the rotation",probe:ve("g",{alt:!0}),action:"clearTransform"},{group:"Edit",combo:"Enter",does:"Edit inside the selection",probe:ve("Enter"),hasSelection:!0,action:"enterIsolation"},{group:"Edit",combo:"Esc",does:"Come back out one level",probe:ve("Escape"),isolation:!0,action:"exitIsolation"},{group:"Edit",combo:"Enter",does:"Finish the path you are drawing",probe:ve("Enter"),penActive:!0,action:"penCommit"},{group:"Edit",combo:"Esc",does:"Throw away the path you are drawing",probe:ve("Escape"),penActive:!0,action:"penAbandon"},{group:"Animate & camera",combo:"⇧A",does:"Animate mode — edits become blocks",probe:ve("a",{shift:!0}),action:"animateToggle"},{group:"Animate & camera",combo:"M",does:"Drop a marker at the playhead",probe:ve("m"),action:"addMarker"},{group:"Animate & camera",combo:"⌥C",does:"Point the camera at the working view",probe:ve("c",{alt:!0}),action:"alignCameraToView"},{group:"Animate & camera",combo:"⌘B",does:"Split layer at the playhead",probe:ve("b",{ctrl:!0}),action:"splitAtPlayhead"},{group:"Animate & camera",combo:"⌘E",does:"Export video",probe:ve("e",{ctrl:!0}),action:"openExport"}],TE=["View","Working view","Edit","Animate & camera"],OE=["Camera view: scroll to pan, ctrl+scroll to zoom at the pointer, space-drag to pan.","Working view (1 / 2): drag empty space or middle-drag to orbit, scroll to dolly, space-drag or ⇧middle-drag to pan. Click a layer to select it, then G / R / S transform it Blender-style; the panels tuck away while you work.","Working view aids: a ground grid under the frame that coarsens as you pull back, three coloured world axes (X red, Y green, Z blue) through the canvas centre, and an axis ball top-right — click an end to look down that axis.","Right-click a layer, on the stage or in the outline, for duplicate, hide, lock, isolate, delete — and on a model, a material.","Models: the outline shows each one's triangle count, and tints it once the scene gets heavy enough to feel it. Give a model a surface with right-click → Apply material; a toon model also grows a sun handle you can drag to aim its key.","Double-click a layer to go INSIDE it: the working pane frames that subtree flat and head-on and everything else dims. Orbit, pan or dolly and the camera is yours; Home puts it back head-on. A blue bar over the pane says you are inside; Esc backs out one level, or click a crumb in the left panel.","Drag arms (red/green/blue) sit on the selection, or on the CAMERA when nothing is selected — the same subject G and S pick. Z moves a layer in depth; on the camera it dollies.","Header zoom, ⌘+ / ⌘− and ⇧C all act on the pane you last clicked. ⇧Z is the wireframe toggle.","Draw: arm a tool in the top bar, then drag on the stage. Text takes a click.","Animate: toggle ⇧A, then edit — the change becomes a block ending at the playhead.","Camera: use the timeline's + shot button for a move, or in the working view (1) drag the yellow frustum's edge to pan, its apex to zoom, or its arms for one axis at a time.","Audio: drop a file on the timeline's audio lane. Markers ride their clip.","Everything exports exactly as previewed — same engine, same frames."];function DE(){return f.jsxs("details",{className:"help-section","data-testid":"help-section",children:[f.jsx("summary",{className:"file-section-label help-summary",children:"Manual"}),f.jsx("ul",{className:"help-basics",children:OE.map(t=>f.jsx("li",{children:t},t))}),f.jsx("div",{className:"file-section-label",children:"Tools"}),f.jsx("ul",{className:"help-rows",children:fr.map(t=>{const l=Po(t);return f.jsxs("li",{className:"help-row",children:[f.jsx("span",{children:l.label}),l.key!==null&&f.jsx("kbd",{children:`${l.shift===!0?"⇧":""}${l.key.toUpperCase()}`})]},t)})}),TE.map(t=>f.jsxs("div",{children:[f.jsx("div",{className:"file-section-label",children:t}),f.jsx("ul",{className:"help-rows",children:wE.filter(l=>l.group===t).map(l=>f.jsxs("li",{className:"help-row",children:[f.jsx("span",{children:l.does}),f.jsx("kbd",{children:l.combo})]},`${l.combo}:${l.does}`))})]},t)),f.jsx("p",{className:"help-note",children:"⌘ is Ctrl on Windows and Linux."})]})}function Sd({axis:t,getValue:l,sign:s,onChange:i,onReset:r,className:c,label:d}){const m=H.useRef(null),h=H.useRef(null),g=H.useRef(0);H.useEffect(()=>()=>{g.current!==0&&cancelAnimationFrame(g.current)},[]);const v=E=>t==="x"?E.clientX:E.clientY,x=()=>{if(g.current=0,h.current===null)return;const E=h.current;h.current=null,i(E)};return f.jsx("div",{className:c,role:"separator","aria-orientation":t==="x"?"vertical":"horizontal","aria-label":d,title:`${d} — drag to resize, double-click to reset`,onDoubleClick:r,onPointerDown:E=>{E.preventDefault(),E.currentTarget.setPointerCapture(E.pointerId),m.current={base:l(),origin:v(E)}},onPointerMove:E=>{const M=m.current;M!==null&&(h.current=M.base+(v(E)-M.origin)*s,g.current===0&&(g.current=requestAnimationFrame(x)))},onPointerUp:()=>{m.current=null,x()},onPointerCancel:()=>{m.current=null,h.current=null}})}function zE(){const t=ye(),l=Z(h=>h.shots),s=Z(h=>h.name),[i,r]=H.useState(!1),[c,d]=H.useState(""),m=()=>{const h=c.trim();r(!1),d(""),h.length>0&&t.createShot(h)};return i?f.jsx("form",{className:"doc-switcher",onSubmit:h=>{h.preventDefault(),m()},children:f.jsx("input",{className:"doc-switcher-input",autoFocus:!0,value:c,placeholder:"scene name","aria-label":"New scene name",onChange:h=>d(h.target.value),onKeyDown:h=>{h.key==="Escape"&&(h.stopPropagation(),r(!1),d(""))}})}):f.jsxs("div",{className:"doc-switcher",children:[f.jsxs("select",{className:"doc-switcher-select","aria-label":"Open scene",value:s??"",onChange:h=>{const g=h.target.value;g===""?t.flush().then(()=>t.closeShot(),()=>{}):t.openShot(g)},children:[f.jsx("option",{value:"",children:l.length===0?"no scenes yet":"choose a scene…"}),l.map(h=>f.jsx("option",{value:h.name,children:h.name},h.name))]}),f.jsx("button",{type:"button",className:"doc-switcher-new",title:"New scene",onClick:()=>r(!0),children:"+"})]})}function _E(){const t=ye(),l=Z(i=>i.canUndo),s=Z(i=>i.canRedo);return f.jsxs("div",{className:"history-controls",children:[f.jsx("button",{type:"button",disabled:!l,title:"Undo (⌘Z)",onClick:()=>t.undo(),children:"↶"}),f.jsx("button",{type:"button",disabled:!s,title:"Redo (⌘⇧Z)",onClick:()=>t.redo(),children:"↷"})]})}function BE(){const t=Z(c=>c.saveState),l=Z(c=>c.dirty),s=Z(c=>c.emitWarning),i=Z(c=>c.stageInfo),r=Z(c=>c.name);return f.jsxs("div",{className:"status-badges",children:[i===null?null:f.jsx("span",{className:"badge badge-quiet",title:`${i.width}x${i.height}`,children:i.backend}),s===null?null:f.jsx("span",{className:"badge badge-warn",title:s,children:"codegen"}),r===null?null:f.jsx("span",{className:`badge badge-${t}`,title:f0(t,l),children:f0(t,l)})]})}function f0(t,l){return t==="error"?"save failed":t==="saving"?"saving…":l?"unsaved":t==="saved"?"saved":"—"}function RE({total:t,playing:l}){const s=ye(),i=Z(r=>r.frame);return f.jsxs(f.Fragment,{children:[f.jsx("input",{className:"transport-scrub",type:"range",min:0,max:Math.max(0,t-1),step:1,value:i,"aria-label":"Playhead",onChange:r=>{l&&s.setPlaying(!1),s.seek(Number(r.target.value))}}),f.jsxs("span",{className:"transport-readout","data-testid":"frame-readout",children:[i," / ",Math.max(0,t-1)]})]})}function LE(){const t=ye(),l=Z(m=>m.playing),s=Z(m=>m.doc),i=s===null?0:Wa(s),r=s===null?30:s.fps.num/s.fps.den,c=H.useRef(0),d=H.useRef(0);return H.useEffect(()=>{if(!l||s===null||i<=0)return;c.current=performance.now(),d.current=t.getState().frame;let m=0;const h=()=>{const g=(performance.now()-c.current)/1e3,v=d.current+Math.round(g*r);t.seek((v%i+i)%i),m=requestAnimationFrame(h)};return m=requestAnimationFrame(h),()=>cancelAnimationFrame(m)},[l,s,i,r,t]),f.jsxs("div",{className:"transport",children:[f.jsx("button",{type:"button",className:"transport-play",title:l?"Pause (Space)":"Play (Space)",onClick:()=>t.setPlaying(!l),children:l?"❚❚":"▶"}),f.jsx(RE,{total:i,playing:l})]})}function IE(){const t=ye(),l=Z(r=>r.view.zoom),s=Z(r=>r.activePane==="working");return Z(r=>r.name!==null)?f.jsxs("div",{className:"zoom-controls",children:[f.jsx("button",{type:"button",title:"Zoom out",onClick:()=>t.zoomActivePane(-1),children:"−"}),f.jsx("button",{type:"button",className:"zoom-readout",title:s?"Fit the working view (⇧Z)":"Fit (⇧Z)",onClick:()=>t.fitActivePane(),children:s?"3D":`${Math.round(l*100)}%`}),f.jsx("button",{type:"button",title:"Zoom in",onClick:()=>t.zoomActivePane(1),children:"+"})]}):null}function UE(){const t=ye();H.useEffect(()=>{t.refreshShots()},[t]);const l=Z(s=>s.name);return f.jsxs("header",{className:"shell-header","data-testid":"shot-header",children:[f.jsx(zE,{}),f.jsx(_E,{}),l===null?null:f.jsx(LE,{}),f.jsx("div",{className:"shell-header-spacer"}),l===null?null:f.jsx(HE,{}),f.jsx(IE,{}),f.jsx(BE,{}),f.jsx(FE,{}),l!==null&&f.jsx($E,{})]})}function HE(){const t=ye(),l=Z(c=>c.railCollapsed),s=Z(c=>c.inspectorCollapsed),i=Z(c=>c.dockCollapsed),r=[{on:!l,glyph:"▙",label:"Left panel",key:"[",run:()=>t.setRailCollapsed(!l)},{on:!i,glyph:"▄",label:"Timeline",key:"",run:()=>t.setDockCollapsed(!i)},{on:!s,glyph:"▟",label:"Right panel",key:"]",run:()=>t.setInspectorCollapsed(!s)}];return f.jsxs("div",{className:"panel-toggles",role:"group","aria-label":"Panels",children:[r.map(({on:c,glyph:d,label:m,key:h,run:g})=>f.jsx("button",{type:"button",className:`btn btn-icon${c?" is-active":""}`,"aria-pressed":c,title:`${c?"Hide":"Show"} ${m.toLowerCase()}${h===""?"":` (${h})`}`,onClick:g,children:d},m)),f.jsx("button",{type:"button",className:"btn btn-icon",title:"Hide every panel (.)",onClick:()=>t.togglePanels(),children:"⛶"})]})}function FE(){const t=ye(),l=Z(i=>i.agentOpen),s=Z(i=>i.agentRunning);return f.jsx("button",{type:"button",className:`btn${l?" is-active":""}`,"aria-label":"Agent","aria-pressed":l,title:"Agent — describe the scene you want",onClick:()=>t.setAgentOpen(!l),children:s?"Agent…":"Agent"})}function $E(){const t=ye(),l=Z(r=>r.renderJob),s=l?.phase==="running",i=s&&l.total>0?Math.round(l.done/l.total*100):null;return f.jsx("button",{type:"button",className:`btn is-primary header-export${s?" is-running":""}`,"aria-label":"Export",title:"Export (⌘E)",onClick:()=>t.setExportOpen(!0),children:i===null?"Export":`Exporting ${i}%`})}const wa={start:()=>{},move:()=>{},end:()=>{}};function Xd(t,l,s){let i=0;for(const r of t.scenes){const c=Math.max(1,Math.trunc(t.scenesById[r]?.durationFrames??0));if(r===l)break;i+=c}return Math.max(0,s-i)}const m0=100;function Qy(){const t=ye(),[l,s]=H.useState(()=>t.getState().frame);return H.useEffect(()=>{let i=null,r=0;const c=h=>{r=performance.now(),s(h)},d=()=>{const h=t.getState();if(h.playing)return;i!==null&&(clearTimeout(i),i=null);const g=performance.now()-r;if(g>=m0){c(h.frame);return}i=setTimeout(()=>{i=null,c(t.getState().frame)},m0-g)};s(t.getState().frame);const m=t.subscribe(d);return()=>{m(),i!==null&&clearTimeout(i)}},[t]),l}function gr(){const t=Z(i=>i.sceneId),l=Qy(),s=Z(i=>i.doc);return s===null||t===null?{sceneId:null,sceneFrame:0}:{sceneId:t,sceneFrame:Xd(s,t,l)}}function At(){const t=Z(r=>r.doc),l=Z(r=>r.sceneId),s=Z(r=>r.selection);if(t===null||l===null)return[];const i=t.scenesById[l];return i===void 0?[]:s.map(r=>i.layersById[r]).filter(r=>r!==void 0)}function st(t){const l=At(),{sceneFrame:s}=gr(),i=Z(d=>d.doc);if(l.length===0||i===null)return{value:void 0,mixed:!1};const r=l.map(d=>t(d,ds(d,s,i.fps))),c=r[0];return{value:c,mixed:r.some(d=>!Object.is(d,c))}}function cn(){const t=ye();return H.useCallback((l,s)=>{const i=t.getState().sceneId;if(i===null)return;const r=t.getState().selection;r.length!==0&&t.edit(c=>{const d=c.scenesById[i];if(d===void 0)return c;const m={...d.layersById};let h=!1;for(const g of r){const v=m[g];if(v===void 0||v.locked===!0&&s?.includeLocked!==!0)continue;const x=l(v);x!==v&&(m[g]=x,h=!0)}return h?{...c,scenesById:{...c.scenesById,[i]:{...d,layersById:m}}}:c})},[t])}function Jy(){const t=ye(),l=cn();return H.useCallback((s,i)=>{const r=t.getState(),c=r.doc;if(c===null||r.sceneId===null)return;const d=r.sceneId,m=Xd(c,d,r.frame);let h=null;if(r.animateMode){t.edit(g=>{const v=QS(g,d,r.selection,s,i,m,g.fps);return h=v.refusals[0]??null,v.doc}),t.reportError(h);return}l(g=>{const v=US(g,s,i,m,c.fps);return v.refusal!==null?(h??=v.refusal,g):v.transform===g.transform?g:{...g,transform:v.transform}}),t.reportError(h)},[t,l])}const GE={left:{label:"Align left",bar:[2,2,1.6,12],marks:[[4,3.5,8,3],[4,9.5,5,3]]},hcenter:{label:"Align horizontal centres",bar:[7.2,2,1.6,12],marks:[[3,3.5,10,3],[4.5,9.5,7,3]]},right:{label:"Align right",bar:[12.4,2,1.6,12],marks:[[4,3.5,8,3],[7,9.5,5,3]]},top:{label:"Align top",bar:[2,2,12,1.6],marks:[[3.5,4,3,8],[9.5,4,3,5]]},vcenter:{label:"Align vertical centres",bar:[2,7.2,12,1.6],marks:[[3.5,3,3,10],[9.5,4.5,3,7]]},bottom:{label:"Align bottom",bar:[2,12.4,12,1.6],marks:[[3.5,4,3,8],[9.5,7,3,5]]},hdistribute:{label:"Distribute horizontally",bar:null,marks:[[2,4,3,8],[6.5,4,3,8],[11,4,3,8]]},vdistribute:{label:"Distribute vertically",bar:null,marks:[[4,2,8,3],[4,6.5,8,3],[4,11,8,3]]}};function YE(){const t=ye(),l=At();return Z(i=>i.doc)===null||l.length===0?null:f.jsx("div",{className:"align-grid",role:"group","aria-label":"Align and distribute","data-testid":"align-row",children:Vk.map(i=>{const r=GE[i],c=r.bar===null&&l.length<3;return f.jsx("button",{type:"button",className:"align-button","aria-label":r.label,title:c?`${r.label} — needs 3 or more layers`:r.label,disabled:c,onClick:()=>t.alignSelection(i),children:f.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 16 16","aria-hidden":"true",children:[r.bar!==null&&f.jsx("rect",{x:r.bar[0],y:r.bar[1],width:r.bar[2],height:r.bar[3],className:"align-icon-rule"}),r.marks.map((d,m)=>f.jsx("rect",{x:d[0],y:d[1],width:d[2],height:d[3],rx:"1",className:"align-icon-box"},m))]})},i)})})}function VE(){return f.jsxs(We,{title:"Transform",persistKey:"shot:transform",children:[f.jsx(YE,{}),f.jsxs(Ry,{children:[f.jsx(ka,{field:"x",label:"X",unit:"px"}),f.jsx(ka,{field:"y",label:"Y",unit:"px"}),f.jsx(ka,{field:"w",label:"W",unit:"px",min:1}),f.jsx(ka,{field:"h",label:"H",unit:"px",min:1}),f.jsx(ka,{field:"z",label:"Z",unit:"px"}),f.jsx(ka,{field:"roll",label:"Roll",unit:"°",step:1}),f.jsx(ka,{field:"tiltX",label:"Tilt X",unit:"°",step:1,min:-180,max:180}),f.jsx(ka,{field:"tiltY",label:"Tilt Y",unit:"°",step:1,min:-180,max:180})]})]})}function ka({field:t,label:l,unit:s,step:i=1,min:r,max:c}){const d=Jy(),{value:m,mixed:h}=st((g,v)=>XE(v,t));return m===void 0?null:f.jsx(ie,{children:f.jsx(pe,{value:m,mixed:h,label:l,ariaLabel:l,...s===void 0?{}:{unit:s},step:i,...r===void 0?{}:{min:r},...c===void 0?{}:{max:c},onCommit:g=>d(t,g)})})}function XE(t,l){switch(l){case"x":return t.position[0];case"y":return t.position[1];case"z":return t.position[2];case"w":return t.size[0];case"h":return t.size[1];case"tiltX":return t.tilt[0];case"tiltY":return t.tilt[1];case"roll":return t.rollDeg;case"opacity":return t.opacity}}function KE(){const t=cn(),l=Jy(),s=st((c,d)=>Math.round(d.opacity*100)),i=st(c=>c.hidden===!0),r=st(c=>c.locked===!0);return f.jsxs(We,{title:"Appearance",persistKey:"shot:appearance",children:[f.jsx(ie,{children:f.jsx(pe,{value:s.value??100,mixed:s.mixed,label:"Opacity",ariaLabel:"Opacity",unit:"%",min:0,max:100,step:1,onCommit:c=>l("opacity",c/100)})}),f.jsx(ie,{label:"Visible",children:f.jsx(rs,{checked:i.value!==!0,ariaLabel:"Visible",onChange:c=>t(d=>({...d,hidden:!c}))})}),f.jsx(ie,{label:"Locked",children:f.jsx(rs,{checked:r.value===!0,ariaLabel:"Locked",onChange:c=>t(d=>({...d,locked:c}),{includeLocked:!0})})})]})}const lr="#ffffff";function qE(){const t=cn(),l=At(),s=st(r=>ZE(r.paint.fill)),i=st(r=>r.paint.fill!==void 0);return l.length>0&&l.every(QE)?null:f.jsx(We,{title:"Fill",persistKey:"shot:fill",action:f.jsx("button",{type:"button",className:"section-action",title:i.value===!0?"Remove fill":"Add fill",onClick:()=>t(r=>i.value===!0?{...r,paint:JE(r.paint)}:{...r,paint:{...r.paint,fill:{type:"solid",color:lr}}}),children:i.value===!0?"−":"+"}),children:i.value===!0?f.jsx(ie,{label:"Color",children:f.jsx(ol,{value:s.value??lr,ariaLabel:"Fill colour",scrub:wa,commit:r=>t(c=>({...c,paint:{...c.paint,fill:{type:"solid",color:r}}}))})}):null})}function ZE(t){return t===void 0?lr:t.type==="solid"?t.color:t.stops[0]?.color??lr}function QE(t){return t.kind==="image"||t.kind==="video"}function JE(t){const{fill:l,...s}=t;return s}const es={color:"#ffffff",widthPx:1,align:"center"};function WE(){const t=cn(),l=st(d=>d.paint.stroke!==void 0),s=st(d=>d.paint.stroke?.color??es.color),i=st(d=>d.paint.stroke?.widthPx??es.widthPx),r=st(d=>d.paint.stroke?.align??es.align),c=d=>t(m=>({...m,paint:{...m.paint,stroke:{...es,...m.paint.stroke,...d}}}));return f.jsx(We,{title:"Stroke",persistKey:"shot:stroke",action:f.jsx("button",{type:"button",className:"section-action",title:l.value===!0?"Remove stroke":"Add stroke",onClick:()=>l.value===!0?t(d=>({...d,paint:PE(d.paint)})):c({}),children:l.value===!0?"−":"+"}),children:l.value===!0?f.jsxs(f.Fragment,{children:[f.jsx(ie,{label:"Color",children:f.jsx(ol,{value:s.value??es.color,ariaLabel:"Stroke colour",scrub:wa,commit:d=>c({color:d})})}),f.jsx(ie,{children:f.jsx(pe,{value:i.value??1,mixed:i.mixed,label:"Width",ariaLabel:"Stroke width",unit:"px",min:0,step:.5,onCommit:d=>c({widthPx:d})})}),f.jsx(ie,{label:"Align",children:f.jsx(qt,{ariaLabel:"Stroke align",value:r.value??"center",options:[{value:"inside",label:"In"},{value:"center",label:"Mid"},{value:"outside",label:"Out"}],onChange:d=>c({align:d})})})]}):null})}function PE(t){const{stroke:l,...s}=t;return s}const id={xPx:0,yPx:12,blurPx:32,spreadPx:0,color:"#00000080"};function eN(){const t=cn(),l=st(c=>(c.paint.shadows??[]).length>0),s=st(c=>c.paint.shadows?.[0]),i=c=>t(d=>{const m=[...d.paint.shadows??[id]];return m[0]={...id,...m[0],...c},{...d,paint:{...d.paint,shadows:m}}}),r=s.value??id;return f.jsx(We,{title:"Shadow",persistKey:"shot:shadow",action:f.jsx("button",{type:"button",className:"section-action",title:l.value===!0?"Remove shadow":"Add shadow",onClick:()=>l.value===!0?t(c=>({...c,paint:{...c.paint,shadows:[]}})):i({}),children:l.value===!0?"−":"+"}),children:l.value===!0?f.jsxs(f.Fragment,{children:[f.jsx(ie,{label:"Color",children:f.jsx(ol,{value:r.color,ariaLabel:"Shadow colour",scrub:wa,commit:c=>i({color:c})})}),f.jsx(ie,{children:f.jsx(pe,{value:r.xPx,label:"X",ariaLabel:"Shadow X",unit:"px",step:1,onCommit:c=>i({xPx:c})})}),f.jsx(ie,{children:f.jsx(pe,{value:r.yPx,label:"Y",ariaLabel:"Shadow Y",unit:"px",step:1,onCommit:c=>i({yPx:c})})}),f.jsx(ie,{children:f.jsx(pe,{value:r.blurPx,label:"Blur",ariaLabel:"Shadow blur",unit:"px",min:0,step:1,onCommit:c=>i({blurPx:c})})}),f.jsx(ie,{children:f.jsx(pe,{value:r.spreadPx,label:"Spread",ariaLabel:"Shadow spread",unit:"px",step:1,onCommit:c=>i({spreadPx:c})})})]}):null})}function tN(){const t=cn(),l=st(s=>nN(s.paint.radius));return f.jsx(We,{title:"Corner",persistKey:"shot:corner",children:f.jsx(ie,{children:f.jsx(pe,{value:l.value??0,mixed:l.mixed,label:"Radius",ariaLabel:"Corner radius",unit:"px",min:0,step:1,onCommit:s=>t(i=>({...i,paint:s<=0?aN(i.paint):{...i.paint,radius:{tl:s,tr:s,br:s,bl:s}}}))})})})}function nN(t){return t===void 0?0:Math.max(t.tl,t.tr,t.br,t.bl)}function aN(t){const{radius:l,...s}=t;return s}function lN(){const t=cn(),s=At().some(d=>d.kind==="html"),i=st(d=>d.kind==="html"?d.html.markup:void 0),r=st(d=>d.kind==="html"?d.html.css??"":void 0);if(!s||i.value===void 0)return null;const c=d=>t(m=>m.kind==="html"?{...m,html:{...m.html,...d}}:m);return f.jsxs(We,{title:"Html",persistKey:"shot:html",children:[f.jsx(ie,{label:"Markup",children:f.jsx(rn,{value:i.value,multiline:!0,ariaLabel:"Html markup",placeholder:"<div>…</div>",onCommit:d=>c({markup:d})})}),f.jsx(ie,{label:"CSS",children:f.jsx(rn,{value:r.value??"",multiline:!0,ariaLabel:"Html css",placeholder:".root { … }",onCommit:d=>c({css:d})})})]})}function iN(){const t=cn(),s=At().some(m=>m.kind==="text"),i=st(m=>m.kind==="text"?m.text.style:void 0),r=st(m=>m.kind==="text"?m.text.content:"");if(!s||i.value===void 0)return null;const c=m=>t(h=>h.kind==="text"?{...h,text:{...h.text,style:{...h.text.style,...m}}}:h),d=i.value;return f.jsxs(We,{title:"Text",persistKey:"shot:text",children:[f.jsx(ie,{label:"Content",children:f.jsx(rn,{value:r.value??"",ariaLabel:"Text content",onCommit:m=>t(h=>h.kind==="text"?{...h,text:{...h.text,content:m}}:h)})}),f.jsx(ie,{label:"Font",children:f.jsx(rn,{value:d.fontFamily,ariaLabel:"Font family",onCommit:m=>c({fontFamily:m})})}),f.jsx(ie,{children:f.jsx(pe,{value:d.sizePx,label:"Size",ariaLabel:"Font size",unit:"px",min:1,step:1,onCommit:m=>c({sizePx:m})})}),f.jsx(ie,{children:f.jsx(pe,{value:d.weight,label:"Weight",ariaLabel:"Font weight",min:100,max:900,step:100,onCommit:m=>c({weight:m})})}),f.jsx(ie,{children:f.jsx(pe,{value:d.lineHeight,label:"Line",ariaLabel:"Line height",step:.05,min:.5,onCommit:m=>c({lineHeight:m})})}),f.jsx(ie,{children:f.jsx(pe,{value:d.letterSpacingPx,label:"Letter",ariaLabel:"Letter spacing",unit:"px",step:.1,onCommit:m=>c({letterSpacingPx:m})})}),f.jsx(ie,{label:"Color",children:f.jsx(ol,{value:d.color,ariaLabel:"Text colour",scrub:wa,commit:m=>c({color:m})})}),f.jsx(ie,{label:"Align",children:f.jsx(qt,{ariaLabel:"Text align",value:d.align,options:[{value:"left",label:"L"},{value:"center",label:"C"},{value:"right",label:"R"}],onChange:m=>c({align:m})})}),f.jsx(ie,{label:"Vertical",children:f.jsx(qt,{ariaLabel:"Vertical align",value:d.verticalAlign??"top",options:[{value:"top",label:"T"},{value:"middle",label:"M"},{value:"bottom",label:"B"}],onChange:m=>c({verticalAlign:m})})})]})}function sN(){const t=cn(),s=At().some(d=>d.kind==="text"),i=st(d=>d.kind==="text"?d.text.stagger??ug:void 0);if(!s||i.value===void 0)return null;const r=d=>t(m=>m.kind==="text"?{...m,text:{...m.text,stagger:{...ug,...m.text.stagger,...d}}}:m),c=i.value;return f.jsxs(We,{title:"Stagger",persistKey:"shot:textStagger",children:[f.jsx(ie,{label:"Unit",children:f.jsx(qt,{ariaLabel:"Stagger unit",value:c.unit,options:[{value:"char",label:"Char"},{value:"word",label:"Word"},{value:"line",label:"Line"}],onChange:d=>r({unit:d})})}),f.jsx(ie,{children:f.jsx(pe,{value:c.spread,label:"Spread",ariaLabel:"Stagger spread",min:0,max:1,step:.05,onCommit:d=>r({spread:d})})}),f.jsx(ie,{children:f.jsx(pe,{value:c.risePx,label:"Rise",ariaLabel:"Stagger rise",unit:"px",step:1,onCommit:d=>r({risePx:d})})}),f.jsx(ie,{children:f.jsx(pe,{value:c.fadeFrom,label:"Fade from",ariaLabel:"Stagger fade from",min:0,max:1,step:.05,onCommit:d=>r({fadeFrom:d})})})]})}function oN(){const t=cn(),l=At(),s=ye(),i=Z(x=>x.doc),r=Z(x=>x.library),c=st(x=>x.kind==="mesh"?x.mesh:void 0);if(!l.some(x=>x.kind==="mesh")||c.value===void 0)return null;const d=c.value,m=d.material===void 0?null:r.find(x=>x.id===d.material?.generator)?.name??d.material.generator,h=Object.entries(i?.assets??{}).filter(([,x])=>x.kind==="model").map(([x,E])=>({value:x,label:E.path.split("/").pop()??x})),g=x=>t(E=>E.kind==="mesh"?{...E,mesh:x(E.mesh)}:E),v=(x,E)=>g(M=>({...M,[x]:E}));return f.jsxs(We,{title:"Model",persistKey:"shot:mesh",children:[f.jsx(ie,{label:"Asset",children:f.jsx(_y,{options:h,value:d.asset,ariaLabel:"Model asset",placeholder:"Search models",onChange:x=>v("asset",x)})}),f.jsx(ie,{label:"Shading",children:f.jsx(qt,{ariaLabel:"Mesh shading",value:d.shading?.mode??"unlit",options:_1.map(x=>({value:x,label:x})),onChange:x=>v("shading",{mode:x})})}),f.jsx(ie,{label:"Material",children:f.jsxs("div",{className:"mesh-material-row",children:[f.jsx("button",{type:"button",className:"mesh-material-name",onClick:()=>s.openMaterialPicker(l.filter(x=>x.kind==="mesh").map(x=>x.id)),children:m??"Choose…"}),d.material===void 0?null:f.jsx("button",{type:"button",className:"mesh-material-clear","aria-label":"Remove material",title:"Back to the model's own materials",onClick:()=>s.removeMeshMaterial(l.filter(x=>x.kind==="mesh").map(x=>x.id)),children:"×"})]})}),f.jsx(ie,{label:"Clip",children:f.jsx(rn,{value:d.clip??"",ariaLabel:"Animation clip",onCommit:x=>g(E=>{const M=x.trim();if(M!=="")return{...E,clip:M};const{clip:k,...D}=E;return D})})}),f.jsx(ie,{label:"Start",children:f.jsx(pe,{value:d.clipStartFrame??0,mixed:c.mixed,ariaLabel:"Clip start frame",unit:"f",step:1,onCommit:x=>v("clipStartFrame",Math.round(x))})}),f.jsx(ie,{label:"Loop",children:f.jsx(qt,{ariaLabel:"Clip loop",value:d.loop??"hold",options:B1.map(x=>({value:x,label:x})),onChange:x=>v("loop",x)})}),f.jsx(ie,{label:"Rate",children:f.jsx(pe,{value:d.timeScale??1,mixed:c.mixed,ariaLabel:"Clip rate",step:.1,onCommit:x=>v("timeScale",x===0?1:x)})})]})}function rN(t){switch(t){case"grid":return{kind:t,columns:3,spacing:[240,240]};case"radial":return{kind:t,radiusPx:320};case"scatter":return{kind:t,extent:[320,320,0]};default:return{kind:"linear",step:[240,0,0]}}}function cN(){const t=cn(),l=At(),s=st(h=>h.kind==="cloner"?h.cloner:void 0);if(!l.some(h=>h.kind==="cloner")||s.value===void 0)return null;const i=s.value,r=h=>t(g=>g.kind==="cloner"?{...g,cloner:h(g.cloner)}:g),c=(h,g)=>r(v=>({...v,[h]:g})),d=i.stagger,m=aS(i.count);return f.jsxs(We,{title:"Cloner",persistKey:"shot:cloner",children:[f.jsx(ie,{label:"Count",children:f.jsx(pe,{value:i.count,mixed:s.mixed,ariaLabel:"Clone count",step:1,min:1,max:dd,onCommit:h=>c("count",Math.min(dd,Math.max(1,Math.round(h))))})}),m===null?null:f.jsx("p",{className:"inspector-empty","data-testid":"cloner-count-warning",children:m}),f.jsx(ie,{label:"Arrange",children:f.jsx(qt,{ariaLabel:"Cloner mode",value:i.mode?.kind??"linear",options:D1.map(h=>({value:h,label:h})),onChange:h=>c("mode",rN(h))})}),f.jsx(ie,{label:"Stagger",children:f.jsx(pe,{value:d?.each??0,mixed:s.mixed,ariaLabel:"Stagger each",unit:"f",step:1,onCommit:h=>r(g=>{const v=Math.round(h);if(v===0){const{stagger:M,...k}=g;return k}const{span:x,...E}=g.stagger??{};return{...g,stagger:{...E,each:v}}})})}),f.jsx(ie,{label:"From",children:f.jsx(qt,{ariaLabel:"Stagger from",value:d?.from??"start",options:z1.map(h=>({value:h,label:h})),onChange:h=>r(g=>({...g,stagger:{...g.stagger,from:h}}))})})]})}const uN=["fill","fit","stretch"],h0={x:0,y:0,w:1,h:1};function dN(){const t=cn(),l=At(),s=st(h=>p0(h)),i=l.find(fN);if(i===void 0)return null;const r=p0(i);if(r===void 0)return null;const c=(h,g)=>t(v=>v.kind==="image"&&g!=="video"?{...v,image:h(v.image)}:v.kind==="video"&&g!=="image"?{...v,video:h(v.video)}:v),d=(h,g)=>c(v=>({...v,crop:{...v.crop??h0,[h]:mN(g)}})),m=r.crop;return f.jsxs(We,{title:i.kind==="video"?"Video":"Image",persistKey:"shot:media",action:f.jsx("button",{type:"button",className:"section-action",title:m===void 0?"Add crop":"Remove crop",onClick:()=>c(h=>h.crop===void 0?{...h,crop:h0}:sd(h,"crop")),children:m===void 0?"+":"−"}),children:[f.jsx(ie,{label:"Fit",children:f.jsx(qt,{ariaLabel:"Media fit",value:r.fit,options:uN.map(h=>({value:h,label:h})),onChange:h=>c(g=>({...g,fit:h}))})}),m!==void 0?f.jsxs(Ry,{children:[f.jsx(ie,{children:f.jsx(pe,{value:m.x,mixed:s.mixed,label:"X",ariaLabel:"Crop x",min:0,max:1,step:.01,onCommit:h=>d("x",h)})}),f.jsx(ie,{children:f.jsx(pe,{value:m.y,mixed:s.mixed,label:"Y",ariaLabel:"Crop y",min:0,max:1,step:.01,onCommit:h=>d("y",h)})}),f.jsx(ie,{children:f.jsx(pe,{value:m.w,mixed:s.mixed,label:"W",ariaLabel:"Crop width",min:0,max:1,step:.01,onCommit:h=>d("w",h)})}),f.jsx(ie,{children:f.jsx(pe,{value:m.h,mixed:s.mixed,label:"H",ariaLabel:"Crop height",min:0,max:1,step:.01,onCommit:h=>d("h",h)})})]}):null,i.kind==="image"?f.jsx(ie,{label:"Alt",children:f.jsx(rn,{value:r.alt??"",ariaLabel:"Alt text",onCommit:h=>c(g=>{const v=h.trim();return v===""?sd(g,"alt"):{...g,alt:v}},"image")})}):null,i.kind==="video"?f.jsx(ie,{label:"Starts at",labelTitle:"The scene frame this clip's first frame lands on — a delay, never a trim into the source",children:f.jsx(pe,{value:r.offsetFrames??0,mixed:s.mixed,ariaLabel:"Video start frame",unit:"f",step:1,onCommit:h=>{const g=Math.round(h);c(v=>g===0?sd(v,"offsetFrames"):{...v,offsetFrames:g},"video")}})}):null]})}function fN(t){return t.kind==="image"||t.kind==="video"}function p0(t){if(t.kind==="image")return t.image;if(t.kind==="video")return t.video}function sd(t,l){const{[l]:s,...i}=t;return i}function mN(t){return Math.max(0,Math.min(1,t))}const hN=new Set(["number","string","color","boolean","enum","asset","vec2","vec3","quaternion","curve","gradient"]);function pN(t){return Object.values(t.keys).sort((l,s)=>{const i=l.order??Number.MAX_SAFE_INTEGER,r=s.order??Number.MAX_SAFE_INTEGER;return i!==r?i-r:l.key.localeCompare(s.key)})}function gN(t){return typeof t=="number"&&Number.isFinite(t)||typeof t=="string"||typeof t=="boolean"||Array.isArray(t)&&(t.length===2||t.length===3||t.length===4)&&t.every(l=>typeof l=="number"&&Number.isFinite(l))?t:null}function yN(){const t=ye(),l=Z(T=>T.doc),s=Z(T=>T.contracts),i=Z(T=>T.library),r=Z(T=>T.libraryLoaded),c=Z(T=>T.libraryError),d=At(),[m,h]=H.useState(!1),[g,v]=H.useState(null),x=d.length===1&&d[0]?.kind==="instance"?d[0]:null,E=x?.instance.component??null;if(H.useEffect(()=>{E!==null&&(t.loadContract(E),t.getState().libraryLoaded||t.refreshLibrary())},[t,E]),l===null||x===null||E===null)return null;const M=i.find(T=>T.id===E),k=x.instance.contract,D=k?.source==="snapshot"?k.contract:null,_=s[E],z=_??D,G=r?xS(l,T=>{const q=i.find(me=>me.id===T),ae=s[T];return q===void 0||ae===void 0?null:{availability:q.contractAvailability??"inferred",contract:ae}}).filter(T=>T.layerId===x.id):[],C=r&&M===void 0,L=z==null?[]:pN(z),U=_===void 0?[]:SS(J0(x.instance.props,D??_,_));return f.jsxs(We,{title:"Component",persistKey:"shot:instance",children:[f.jsx(ie,{label:"Module",children:f.jsx("span",{className:"insp-fixed",title:E,children:M?.name??E})}),f.jsx(ie,{label:"Clock",children:f.jsx(pe,{value:x.instance.clockOffsetFrames??0,ariaLabel:"Instance clock offset",unit:"f",step:1,onCommit:T=>t.setInstanceClockOffset(x.id,T)})}),c!==null&&f.jsx("div",{className:"insp-inline-error",children:`The component registry could not be read (${c}) — this instance cannot be checked.`}),C&&f.jsx("div",{className:"insp-notice is-warn",children:`${E} is not in the component registry. The generated scene's import will not resolve and the save will be refused until the component is back or the layer is removed.`}),G.length>0&&f.jsxs("div",{className:"insp-notice is-warn",children:[G.map(T=>f.jsx("span",{children:T.message},T.code)),f.jsx("button",{className:"btn",disabled:m,"data-instance-rebind":x.id,title:"Re-record this instance's contract hash and source from the project's current component, following any renames",onClick:()=>{h(!0),t.rebindInstance(x.id).then(T=>{h(!1),v(T)})},children:"Accept current contract"})]}),g!==null&&f.jsx("div",{className:"insp-inline-error",children:g}),U.map(T=>f.jsxs("div",{className:"insp-notice is-warn","data-instance-orphan":T,children:[`"${T}" is not a prop of this component any more. Its value is kept here and is not passed to the component — nothing was deleted.`,f.jsx("button",{className:"btn","data-instance-drop":T,title:`Delete the stored value for "${T}". This is the only thing that ever removes it.`,onClick:()=>t.clearInstanceProp(x.id,T),children:"Discard"})]},`orphan:${T}`)),z==null?f.jsx("div",{className:"insp-notice",children:"No contract available for this component — its props cannot be edited here."}):f.jsxs(f.Fragment,{children:[_===void 0&&D!==null&&f.jsx("div",{className:"insp-notice",children:"Showing the contract snapshot recorded with this layer (the project's copy is not loaded)."}),L.length===0&&f.jsx("div",{className:"insp-notice",children:"This component has no props."}),L.map(T=>f.jsx(vN,{layerId:x.id,spec:T,value:x.instance.props[T.key]},T.key))]})]})}function vN(t){const{layerId:l,spec:s}=t,i=ye(),[r,c]=H.useState(null),d=t.value??("default"in s?s.default:void 0),m=hN.has(s.kind),h=t.value===void 0,g=v=>{const x=gN(v);if(x===null){c("instance props hold engine values only (number, string, boolean, vec2/3/4)");return}c(null),i.setInstanceProp(l,s.key,x)};return f.jsxs("div",{className:`insp-prop${h?" is-inherited":""}`,children:[f.jsxs("div",{className:"insp-row",children:[s.kind!=="number"&&f.jsx("span",{className:"insp-label",title:s.description??s.key,children:s.label??s.key}),f.jsxs("div",{className:"insp-control",children:[m?f.jsx(By,{spec:s,value:d,commit:g,scrub:wa}):f.jsxs("span",{className:"badge",title:`"${s.kind}" values are not engine Values, so they cannot be stored on an instance — set this prop inside the component itself.`,children:[s.kind," — not editable on an instance"]}),!h&&f.jsx("button",{className:"btn","data-instance-reset":s.key,title:`Clear the stored value for "${s.label??s.key}" and fall back to the component's default.`,onClick:()=>i.clearInstanceProp(l,s.key),children:"Reset"})]})]}),r!==null&&f.jsx("div",{className:"insp-inline-error",children:r})]})}function bN(){const t=ye(),l=Z(m=>m.doc),s=At(),i=s.length===1&&s[0]?.kind==="component"?s[0]:null;if(l===null||i===null)return null;const r=Ea(l)[i.component.def];if(r===void 0)return f.jsx(We,{title:"Component",persistKey:"shot:component",children:f.jsx("p",{className:"inspector-note",children:"This places a component that is not in this document. Its definition was probably deleted — undo, or delete this layer."})});const c=i.component.overrides,d=Ld(l,r.id).length;return f.jsxs(We,{title:"Component",persistKey:"shot:component",children:[f.jsx(ie,{label:"Definition",children:f.jsx("button",{type:"button",className:"link-button","aria-label":`Edit ${r.name}`,onClick:()=>t.editComponent(r.id),children:r.name})}),f.jsx("p",{className:"inspector-note",children:d===1?"The only one placed.":`${d} placed — editing it changes all of them.`}),r.exposed.length===0?f.jsx("p",{className:"inspector-note",children:"Nothing is exposed yet. Open the definition and expose a field to make it overridable here."}):r.exposed.map(m=>{const h=c[m.key];return f.jsxs(ie,{label:m.label,children:[f.jsx(By,{spec:{key:m.key,label:m.label,kind:m.kind,default:m.default},value:h??m.default,commit:g=>t.setComponentOverride(i.id,m.key,g),scrub:wa}),f.jsx("button",{type:"button",className:"layer-flag","aria-label":`Reset ${m.label}`,title:"Follow the component again",disabled:h===void 0,onClick:()=>t.setComponentOverride(i.id,m.key,null),children:"↺"})]},m.key)})]})}function xN(){const t=ye(),l=Z(c=>c.doc),s=Z(c=>c.sceneId);if(l===null||s===null)return null;const i=l.scenesById[s];if(i===void 0)return null;const r=c=>{t.edit(d=>({...d,scenesById:{...d.scenesById,[s]:{...d.scenesById[s],...c}}}))};return f.jsxs(We,{title:"Shot",persistKey:"shot:scene",collapsible:!1,children:[f.jsx(ie,{label:"Name",children:f.jsx(rn,{value:i.name,ariaLabel:"Shot name",onCommit:c=>r({name:c})})}),f.jsx(ie,{children:f.jsx(pe,{value:i.durationFrames,label:"Frames",ariaLabel:"Shot duration",min:1,step:1,onCommit:c=>t.trimScene(s,c)})}),f.jsx(ie,{children:f.jsx(pe,{value:i.fovDeg,label:"Lens",ariaLabel:"Field of view",unit:"deg",min:5,max:120,step:1,onCommit:c=>r({fovDeg:c})})}),f.jsx(ie,{label:"Background",children:f.jsx(ol,{value:i.background.type==="solid"?i.background.color:"#0b0b0d",ariaLabel:"Background colour",scrub:wa,commit:c=>r({background:{type:"solid",color:c}})})})]})}const g0=[{key:"x",label:"X",step:1},{key:"y",label:"Y",step:1},{key:"zoom",label:"Zoom",step:.01,min:zd,max:_d},{key:"rollDeg",label:"Roll",unit:"deg",step:.5},{key:"focusZ",label:"Focus",step:1}];function Wy(t){return f.jsx(f.Fragment,{children:[g0.slice(0,2),g0.slice(2)].map((l,s)=>f.jsx(ie,{children:l.map(i=>{const r={};return i.min!==void 0&&(r.min=i.min),i.max!==void 0&&(r.max=i.max),f.jsx(pe,{value:t.framing[i.key],label:i.label,ariaLabel:`${t.name} ${i.label.toLowerCase()}`,...i.unit===void 0?{}:{unit:i.unit},...r,step:i.step,onCommit:c=>t.onCommit({[i.key]:c})},i.key)})},s))})}function SN(){const t=ye(),l=Z(m=>m.doc),s=Z(m=>m.animateMode),{sceneId:i,sceneFrame:r}=gr();if(l===null||i===null)return null;const c=l.scenesById[i];if(c===void 0)return null;const d=s?null:ry(c,r);return f.jsxs(We,{title:"Camera",persistKey:"shot:camera",children:[f.jsx(Wy,{framing:os(c,r,l.fps),name:"Camera",onCommit:m=>t.setSceneCamera(m)}),d!==null&&f.jsxs("span",{className:"insp-dim","data-testid":"camera-held-by",children:["Held by the camera move “",d.label,"” from frame ",d.frame,". Turn on Animate (⇧A) to author the move, or put the playhead before it."]})]})}const y0={dof:{fStop:2.8,bokehScale:2,quality:"mip"},bloom:{strength:.6,radius:.5,threshold:.7},vignette:{amount:.5,radius:.55,softness:.4},grain:{amount:.08,size:1.5},colorSplit:{strength:1.5,scale:1.05},ghost:{amount:.25,offset:[.004,.002],count:3},grade:{slope:[1,1,1],offset:[0,0,0],power:[1,1,1],saturation:1},edgeFade:{size:.12,softness:.08},motionBlur:{shutterDeg:180,samples:8}};function kN(){const t=ye(),l=Z(m=>m.doc),s=Z(m=>m.sceneId);if(l===null||s===null)return null;const i=l.scenesById[s]?.effects;if(i===void 0)return null;const r=m=>{t.edit(h=>({...h,scenesById:{...h.scenesById,[s]:{...h.scenesById[s],effects:m}}}))},c=(m,h)=>{const g={...i};h?g[m]=y0[m]:delete g[m],r(g)},d=(m,h,g)=>{const v=i[m]??y0[m];r({...i,[m]:{...v,[h]:g}})};return f.jsxs(We,{title:"Effects",persistKey:"shot:effects",children:[f.jsxs($n,{label:"Depth of field",on:i.dof!==void 0,onToggle:m=>c("dof",m),children:[f.jsx(pe,{value:i.dof?.fStop??2.8,label:"f/",ariaLabel:"Aperture",min:.7,max:32,step:.1,onCommit:m=>d("dof","fStop",m)}),f.jsx(pe,{value:i.dof?.bokehScale??2,label:"Amount",ariaLabel:"Bokeh scale",min:0,max:20,step:.5,onCommit:m=>d("dof","bokehScale",m)})]}),f.jsxs($n,{label:"Bloom",on:i.bloom!==void 0,onToggle:m=>c("bloom",m),children:[f.jsx(pe,{value:i.bloom?.strength??.6,label:"Amount",ariaLabel:"Bloom strength",min:0,max:5,step:.05,onCommit:m=>d("bloom","strength",m)}),f.jsx(pe,{value:i.bloom?.threshold??.7,label:"Cut",ariaLabel:"Bloom threshold",min:0,max:2,step:.05,onCommit:m=>d("bloom","threshold",m)})]}),f.jsxs($n,{label:"Vignette",on:i.vignette!==void 0,onToggle:m=>c("vignette",m),children:[f.jsx(pe,{value:i.vignette?.amount??.5,label:"Amount",ariaLabel:"Vignette amount",min:0,max:1,step:.05,onCommit:m=>d("vignette","amount",m)}),f.jsx(pe,{value:i.vignette?.radius??.55,label:"Size",ariaLabel:"Vignette radius",min:0,max:1.5,step:.05,onCommit:m=>d("vignette","radius",m)})]}),f.jsxs($n,{label:"Grain",on:i.grain!==void 0,onToggle:m=>c("grain",m),children:[f.jsx(pe,{value:i.grain?.amount??.08,label:"Amount",ariaLabel:"Grain amount",min:0,max:1,step:.01,onCommit:m=>d("grain","amount",m)}),f.jsx(pe,{value:i.grain?.size??1.5,label:"Size",ariaLabel:"Grain size",min:1,max:16,step:.5,onCommit:m=>d("grain","size",m)})]}),f.jsx($n,{label:"Color split",on:i.colorSplit!==void 0,onToggle:m=>c("colorSplit",m),children:f.jsx(pe,{value:i.colorSplit?.strength??1.5,label:"Amount",ariaLabel:"Colour split strength",min:0,max:20,step:.1,onCommit:m=>d("colorSplit","strength",m)})}),f.jsxs($n,{label:"Ghost",on:i.ghost!==void 0,onToggle:m=>c("ghost",m),children:[f.jsx(pe,{value:i.ghost?.amount??.25,label:"Amount",ariaLabel:"Ghost amount",min:0,max:1,step:.05,onCommit:m=>d("ghost","amount",m)}),f.jsx(pe,{value:i.ghost?.count??3,label:"Copies",ariaLabel:"Ghost count",min:1,max:8,step:1,onCommit:m=>d("ghost","count",m)})]}),f.jsx($n,{label:"Edge fade",on:i.edgeFade!==void 0,onToggle:m=>c("edgeFade",m),children:f.jsx(pe,{value:i.edgeFade?.size??.12,label:"Size",ariaLabel:"Edge fade size",min:0,max:.5,step:.01,onCommit:m=>d("edgeFade","size",m)})}),f.jsx($n,{label:"Grade",on:i.grade!==void 0,onToggle:m=>c("grade",m),children:f.jsx(pe,{value:i.grade?.saturation??1,label:"Sat",ariaLabel:"Saturation",min:0,max:3,step:.05,onCommit:m=>d("grade","saturation",m)})}),f.jsxs($n,{label:"Motion blur",on:i.motionBlur!==void 0,onToggle:m=>c("motionBlur",m),children:[f.jsx(pe,{value:i.motionBlur?.shutterDeg??180,label:"Shutter",ariaLabel:"Shutter angle",unit:"deg",min:0,max:360,step:10,onCommit:m=>d("motionBlur","shutterDeg",m)}),f.jsx(pe,{value:i.motionBlur?.samples??8,label:"Samples",ariaLabel:"Motion blur samples",min:2,max:32,step:1,onCommit:m=>d("motionBlur","samples",m)})]})]})}function $n({label:t,on:l,onToggle:s,children:i}){return f.jsxs("div",{className:"effect-row","data-effect":t,children:[f.jsx(ie,{label:t,children:f.jsx(rs,{checked:l,ariaLabel:t,onChange:s})}),l?f.jsx("div",{className:"effect-params",children:i}):null]})}function Py(t){const{spec:l}=t,s=l.label??l.name,i={};if(l.min!==void 0&&(i.min=l.min),l.max!==void 0&&(i.max=l.max),l.kind==="boolean")return f.jsx(ie,{label:s,children:f.jsx(rs,{checked:t.value===!0,ariaLabel:s,onChange:r=>t.onCommit(r)})});if(l.kind==="vec2"){const r=jN(t.value);return f.jsx(ie,{label:s,children:[0,1].map(c=>f.jsx(pe,{value:r[c],ariaLabel:`${s} ${c===0?"X":"Y"}`,...i,step:l.step??.01,onCommit:d=>t.onCommit(c===0?[d,r[1]]:[r[0],d])},c))})}return f.jsx(ie,{label:s,children:f.jsx(pe,{value:typeof t.value=="number"?t.value:0,ariaLabel:s,...i,step:l.step??.01,onCommit:r=>t.onCommit(r)})})}function jN(t){return Array.isArray(t)&&typeof t[0]=="number"&&typeof t[1]=="number"?[t[0],t[1]]:[0,0]}const od="",MN=10;function EN(){const t=ye(),l=Z(v=>v.doc),s=Z(v=>v.sceneId);if(l===null||s===null)return null;const i=l.scenesById[s];if(i===void 0)return null;const r=i.transition,c=r===void 0?void 0:X1(r.kind),d=l.scenes[l.scenes.length-1]===s,m=d?null:l.scenesById[l.scenes[l.scenes.indexOf(s)+1]]??null,h=v=>{if(v===od){t.setSceneTransition(s,null);return}t.setSceneTransition(s,{kind:v,durationFrames:r?.durationFrames??MN})},g=(v,x)=>{r!==void 0&&t.setSceneTransition(s,{...r,params:{...r.params,[v]:x}})};return f.jsxs(We,{title:"Into next shot",persistKey:"shot:transition",children:[f.jsx(ie,{label:"Transition",children:f.jsxs("select",{className:"select","aria-label":"Transition preset",value:r?.kind??od,onChange:v=>h(v.target.value),children:[f.jsx("option",{value:od,children:"Cut"}),Object.values(Y0).map(v=>f.jsx("option",{value:v.id,children:v.label},v.id)),r!==void 0&&c===void 0?f.jsxs("option",{value:r.kind,children:[r.kind," (unknown)"]}):null]})}),r!==void 0?f.jsxs(f.Fragment,{children:[f.jsx(ie,{label:"Frames",children:f.jsx(pe,{value:r.durationFrames,ariaLabel:"Transition frames",min:pd,step:1,onCommit:v=>t.setSceneTransition(s,{...r,durationFrames:Math.max(pd,Math.round(v))})})}),m!==null&&r.durationFrames>m.durationFrames?f.jsxs("p",{className:"inspector-note",children:["Longer than ",m.name," (",m.durationFrames,"f) — it plays over that whole shot."]}):null,d?f.jsx("p",{className:"inspector-note",children:"This is the last shot, so nothing plays. Kept for when one follows it."}):null,c?.params.map(v=>f.jsx(Py,{spec:v,value:r.params?.[v.name]??v.default,onCommit:x=>g(v.name,x)},v.name))]}):null]})}function ev(t){const l=At(),s=[];for(const i of l)for(const r of i.blocks)r.slot===t&&s.push({layer:i,block:r});return s.sort((i,r)=>i.block.frame-r.block.frame||i.block.id.localeCompare(r.block.id)),s}function NN(){const t=Z(r=>r.selectedBlock),l=At();if(t===null)return null;const s=l.find(r=>r.id===t.layerId),i=s?.blocks.find(r=>r.id===t.blockId);return s!==void 0&&i!==void 0?{layer:s,block:i}:null}const AN=12;function v0(t){const l=ye(),s=At(),i=ev(t.slot);if(s.length===0)return null;const r=new Map;for(const{block:c}of i)r.set(c.preset,(r.get(c.preset)??0)+1);return f.jsx(We,{title:t.title,persistKey:`shot:animate:${t.slot}`,children:f.jsx("div",{className:"animate-palette",role:"group","aria-label":`${t.title} presets`,children:Ad(t.slot).map(c=>{const d=(r.get(c.id)??0)>=s.length;return f.jsx("button",{type:"button",className:"animate-preset","aria-label":`${t.title} ${c.label}`,"aria-pressed":d,onClick:()=>{d?l.removeBlocksByPreset(t.slot,c.id):l.addBlock(t.slot,c.id,AN)},children:c.label},c.id)})})})}const CN=24;function wN(){const t=ye(),l=At(),s=ev("during"),i=Z(d=>d.selectedBlock),r=Z(d=>d.sceneId),c=l.length>1;return l.length===0||r===null?null:f.jsxs(We,{title:"During",persistKey:"shot:animate:during",children:[s.length===0?f.jsx("p",{className:"inspector-empty",children:"Press ⇧A, then drag on the canvas. The edit becomes a block ending at the playhead."}):f.jsx("ul",{className:"animate-blocks","aria-label":"During blocks",children:s.map(({layer:d,block:m})=>{const h=i?.layerId===d.id&&i.blockId===m.id,g=us[m.preset]?.label??m.preset;return f.jsxs("li",{children:[f.jsxs("button",{type:"button",className:"animate-block-row","aria-pressed":h,"aria-label":`Block ${g} on ${d.label}`,onClick:()=>t.selectBlock({sceneId:r,layerId:d.id,blockId:m.id}),children:[f.jsxs("span",{className:"animate-block-name",children:[g,c&&f.jsxs("em",{className:"animate-block-owner",children:[" · ",d.label]})]}),f.jsxs("span",{className:"animate-block-span",children:["f",m.frame,"–",m.frame+Math.max(1,Math.trunc(m.durationFrames))]})]}),f.jsx("button",{type:"button",className:"animate-block-remove","aria-label":`Remove ${g} on ${d.label}`,onClick:()=>t.removeBlock(d.id,m.id),children:"✕"})]},`${d.id}:${m.id}`)})}),f.jsx("div",{className:"animate-palette",role:"group","aria-label":"During presets",children:Ad("during").map(d=>f.jsxs("button",{type:"button",className:"animate-preset","aria-label":`Add ${d.label}`,onClick:()=>t.addBlock("during",d.id,CN),children:["+ ",d.label]},d.id))})]})}const mn={width:216,height:132,padY:30},ts=216,ns=72,TN=8,b0=96,ON=2;function DN(){const t=ye(),l=Z(h=>h.doc?.fps??null)??{num:30,den:1},s=NN();if(s===null)return null;const{layer:i,block:r}=s,c=us[r.preset],d=Math.max(1,Math.trunc(r.durationFrames)),m=r.ease?.type==="spring";return f.jsxs(We,{title:"Timing",persistKey:"shot:animate:timing",children:[f.jsxs(ie,{children:[f.jsx(pe,{value:r.frame,label:"Start",ariaLabel:"Block start",min:0,step:1,onCommit:h=>t.setBlockTiming(i.id,r.id,Math.max(0,h),d)}),f.jsx(pe,{value:d,label:"Frames",ariaLabel:"Block frames",min:qn,step:1,disabled:m,...m?{title:"A spring settles in its own time — edit stiffness and damping."}:{},onCommit:h=>t.setBlockTiming(i.id,r.id,r.frame,Math.max(qn,h))})]}),c!==void 0&&c.params.map(h=>f.jsx(Py,{spec:h,value:zN(r,h.name,h.default),onCommit:g=>t.setBlockParams(i.id,r.id,{[h.name]:g})},h.name)),f.jsx(tv,{...r.ease===void 0?{}:{ease:r.ease},onEase:h=>t.setBlockEase(i.id,r.id,h),onScrub:h=>t.setBlockEase(i.id,r.id,h)}),f.jsx(LN,{block:r,fps:l}),f.jsx(ie,{label:"Preset",children:f.jsx("select",{className:"select","aria-label":"Block preset",value:r.preset,onChange:h=>t.setBlockPreset(i.id,r.id,h.target.value),children:Ad(r.slot).map(h=>f.jsx("option",{value:h.id,children:h.label},h.id))})})]})}function zN(t,l,s){const i=t.params[l];return i===void 0?s:i}function tv(t){const l=t.ease,s=zM(l===void 0?[]:[l]);return f.jsxs(f.Fragment,{children:[f.jsx(ie,{label:"Ease",children:f.jsxs("select",{className:"select","aria-label":t.ariaLabel??"Block ease",value:s.selectValue,onChange:i=>{const r=xd.find(c=>c.id===i.target.value);r!==void 0&&t.onEase(r.ease)},children:[xd.map(i=>f.jsx("option",{value:i.id,children:i.label},i.id)),s.selectValue==="custom"&&f.jsx("option",{value:"custom",disabled:!0,children:"Custom"}),s.selectValue==="mixed"&&f.jsx("option",{value:"mixed",disabled:!0,children:"—"})]})}),s.ease?.type==="bezier"&&f.jsx(_N,{handles:s.ease.handles,onEase:t.onScrub}),s.ease?.type==="spring"&&f.jsx(RN,{spring:s.ease,onEase:t.onEase})]})}function _N(t){const l=H.useRef(null),s=H.useRef(null),i=_=>z=>{if(z.button!==0)return;z.currentTarget.setPointerCapture(z.pointerId);const G=t.handles;s.current={index:_,base:[G[0],G[1],G[2],G[3]]}},r=_=>{const z=s.current,G=l.current;if(z===null||G===null)return;const C=G.getBoundingClientRect(),[L,U]=_M(mn,_.clientX-C.left,_.clientY-C.top),T=z.index===0?[L,U,z.base[2],z.base[3]]:[z.base[0],z.base[1],L,U];t.onEase({type:"bezier",handles:T})},c=_=>{s.current!==null&&(s.current=null,_.currentTarget.releasePointerCapture(_.pointerId))},d=t.handles,[m,h]=Io(mn,0,0),[g,v]=Io(mn,1,1),[x,E]=Io(mn,d[0],d[1]),[M,k]=Io(mn,d[2],d[3]),D=_=>({className:"insp-pad-handle",r:4.5,onPointerDown:i(_),onPointerMove:r,onPointerUp:c,onPointerCancel:()=>{s.current=null}});return f.jsxs("svg",{ref:l,className:"insp-pad",width:mn.width,height:mn.height,children:[f.jsx("rect",{className:"insp-pad-box",x:.5,y:mn.padY+.5,width:mn.width-1,height:mn.height-2*mn.padY-1,rx:3}),f.jsx("path",{className:"insp-pad-curve",d:`M ${m} ${h} C ${x} ${E} ${M} ${k} ${g} ${v}`}),f.jsx("line",{className:"insp-pad-arm",x1:m,y1:h,x2:x,y2:E}),f.jsx("line",{className:"insp-pad-arm",x1:g,y1:v,x2:M,y2:k}),f.jsx("circle",{...D(0),cx:x,cy:E}),f.jsx("circle",{...D(1),cx:M,cy:k})]})}const BN=[{key:"stiffness",label:"Stiffness",min:1,max:1e3,step:1},{key:"damping",label:"Damping",min:0,max:200,step:.5},{key:"mass",label:"Mass",min:.05,max:20,step:.05}];function RN(t){return f.jsx(ie,{children:BN.map(l=>f.jsx(pe,{value:t.spring[l.key],label:l.label,ariaLabel:`Spring ${l.label.toLowerCase()}`,min:l.min,max:l.max,step:l.step,onCommit:s=>t.onEase({...Gy,...t.spring,[l.key]:s})},l.key))})}function LN(t){const{block:l,fps:s}=t,i=Math.max(1,Math.trunc(l.durationFrames)),r=l.ease?.type==="spring",c=l.frame+(r?i*(1+ON):i),d=[];for(let g=0;g<b0;g+=1){const v=l.frame+(c-l.frame)*g/(b0-1);d.push({frame:v,value:Cd(l,v,s)??0})}const m=Ty(d,ts,ns,TN);if(m===null)return null;const h=r?i/(c-l.frame)*ts:ts;return f.jsxs("div",{className:"insp-preview animate-preview","data-testid":"block-preview",children:[f.jsxs("svg",{width:ts,height:ns,children:[f.jsxs("defs",{children:[f.jsx("clipPath",{id:"blk-in",children:f.jsx("rect",{x:0,y:0,width:h,height:ns})}),f.jsx("clipPath",{id:"blk-out",children:f.jsx("rect",{x:h,y:0,width:ts-h,height:ns})})]}),f.jsx("polyline",{className:r?"is-spring":"",points:m.points,clipPath:"url(#blk-in)"}),r&&f.jsxs(f.Fragment,{children:[f.jsx("polyline",{className:"is-tail",points:m.points,clipPath:"url(#blk-out)"}),f.jsx("line",{className:"animate-preview-edge",x1:h,y1:0,x2:h,y2:ns})]})]}),r&&f.jsx("span",{className:"insp-dim animate-preview-note",children:"dashed = after the block ends; the spring holds at its clipped value"})]})}function IN(){const t=At(),{sceneFrame:l}=gr(),s=Z(m=>m.doc?.fps??null),i=t[0];if(i===void 0||s===null)return null;const r=Pa(i,l,s),c=sl(i,l,s),d=UN(i,l,s);return f.jsx(We,{title:"Resolved",persistKey:"shot:animate:resolved",action:f.jsxs("span",{className:"insp-dim",children:[t.length>1?`${i.label} · `:"","f",l]}),children:f.jsx("dl",{className:"resolved-list","aria-label":"Resolved channels",children:$d.map(m=>{const h=d.get(m.key);return f.jsxs("div",{className:"resolved-row","data-channel":m.key,"data-live":h!==void 0,children:[f.jsx("dt",{className:"resolved-label",children:m.label}),f.jsx("dd",{className:"resolved-value",children:m.read(r)}),f.jsx("dd",{className:"resolved-by",title:h===void 0?void 0:`${h.join(", ")} → ${HN(m.key,c)}`,children:h?.join(", ")??""})]},m.key)})})})}function UN(t,l,s){const i=new Map;for(const r of t.blocks){const c=Cd(r,l,s);if(c===null)continue;const d=us[r.preset]?.label??r.preset;for(const m of Object.keys(sr(r.preset,r.slot,r.params,c))){const h=i.get(m);h===void 0?i.set(m,[d]):h.includes(d)||h.push(d)}}return i}function HN(t,l){switch(t){case"opacity":return`×${wt(l.opacity,.01)}`;case"offset":return l.offset.map(rd).join(", ");case"scale":return l.scale.map(s=>`×${wt(s,.01)}`).join(", ");case"tilt":return l.tilt.map(s=>`${rd(s)}°`).join(", ");case"roll":return`${rd(l.roll)}°`;case"blurPx":return`${wt(l.blurPx,.1)} px`;case"reveal":return`${wt(l.reveal*100,1)}%`;case"textPhase":return`${wt(l.textPhase*100,1)}%`}}function rd(t){return`${t>=0?"+":""}${wt(t,.1)}`}const FN=[{value:"dolly",label:"Dolly"},{value:"zoom",label:"Zoom"}];function $N(){const t=ye(),l=Z(h=>h.doc),s=Z(h=>h.selectedBlock),{sceneId:i,sceneFrame:r}=gr();if(l===null||i===null||s===null||s.layerId!==ja)return null;const c=l.scenesById[i],d=c?.shots.find(h=>h.id===s.blockId);if(c===void 0||d===void 0)return null;const m=()=>{const h=t.getState();if(h.doc===null||h.sceneId===null)return os(c,r,l.fps);const g=h.doc.scenesById[h.sceneId]??c;return os(g,Xd(h.doc,h.sceneId,h.frame),h.doc.fps)};return f.jsxs(We,{title:"Camera move",persistKey:"shot:animate:shot",collapsible:!1,children:[d.kind==="path"?f.jsx("span",{className:"insp-dim",children:`A camera path through ${d.waypoints.length} waypoints, curved with a centripetal spline. Its ends are the first and last waypoint. Edit it through the agent.`}):f.jsxs(f.Fragment,{children:[f.jsx(ie,{label:"Kind",children:f.jsx(qt,{ariaLabel:"Move kind",value:d.kind,options:FN,onChange:h=>t.setShotKind(d.id,h)})}),f.jsx("span",{className:"insp-dim",children:d.kind==="dolly"?"Dolly derives the distance from the live zoom, so the camera moves and layers at different depths shift against each other.":"Zoom pins the distance at the move's start and narrows the lens instead, so nothing shifts."})]}),f.jsx(tv,{...d.ease===void 0?{}:{ease:d.ease},ariaLabel:"Move ease",onEase:h=>t.setShotEase(d.id,h),onScrub:h=>t.setShotEase(d.id,h)}),d.kind==="path"?null:f.jsxs(f.Fragment,{children:[f.jsx(x0,{shot:d,end:"from",title:"From",read:m}),f.jsx(x0,{shot:d,end:"to",title:"To",read:m})]})]})}function x0(t){const l=ye(),{shot:s,end:i,title:r}=t;return f.jsxs(f.Fragment,{children:[f.jsx(ie,{label:r,children:f.jsx("button",{type:"button",className:"btn",onClick:()=>l.setShotFraming(s.id,i,t.read()),children:"Set from current framing"})}),f.jsx(Wy,{framing:s[i],name:r,onCommit:c=>l.setShotFraming(s.id,i,c)})]})}const GN="#ffffff";function YN(){const t=ye(),l=Z(r=>r.doc),s=Z(r=>r.selectedMarker);if(l===null||s===null)return null;const i=(l.markers??[]).find(r=>r.id===s);return i===void 0?null:f.jsxs(We,{title:"Marker",persistKey:"shot:marker",collapsible:!1,children:[f.jsx(ie,{label:"Label",children:f.jsx(rn,{value:i.label??"",ariaLabel:"Marker label",onCommit:r=>t.setMarker(i.id,{label:r})})}),f.jsxs(ie,{children:[f.jsx(pe,{value:i.frame,label:"Frame",ariaLabel:"Marker frame",min:0,step:1,onCommit:r=>t.setMarker(i.id,{frame:Math.max(0,Math.round(r))})}),f.jsx("span",{className:"insp-dim",children:Qa(i.frame,l.fps)})]}),f.jsx(ie,{label:"Colour",children:f.jsx(ol,{value:i.color??GN,ariaLabel:"Marker colour",scrub:wa,commit:r=>t.setMarker(i.id,{color:r})})}),f.jsx(ie,{children:f.jsx("button",{type:"button",className:"btn",onClick:()=>t.removeMarker(i.id),children:"Delete marker"})})]})}function VN(){const t=ye(),l=Z(d=>d.doc),s=Z(d=>d.inspectorMode),i=Z(d=>{const m=d.selectedBlock;return m===null||m.layerId!==ja||m.sceneId!==d.sceneId?!1:d.doc?.scenesById[m.sceneId]?.shots.some(h=>h.id===m.blockId)??!1}),r=At(),c=Z(d=>d.selectedMarker!==null&&(d.doc?.markers??[]).some(m=>m.id===d.selectedMarker));return l===null?null:c?f.jsx("aside",{className:"inspector","data-testid":"inspector",children:f.jsx(YN,{})}):f.jsxs("aside",{className:"inspector","data-testid":"inspector",children:[f.jsx(qt,{ariaLabel:"Inspector mode",value:s,options:[{value:"design",label:"Design"},{value:"animate",label:"Animate"}],onChange:d=>t.setInspectorMode(d)}),s==="animate"?i?f.jsx($N,{}):r.length===0?f.jsx("p",{className:"inspector-empty","data-testid":"animate-placeholder",children:"Select a layer to add an entrance, an exit, or a During block."}):f.jsxs(f.Fragment,{children:[f.jsx(IN,{}),f.jsx(v0,{slot:"in",title:"In"}),f.jsx(wN,{}),f.jsx(v0,{slot:"out",title:"Out"}),f.jsx(DN,{})]}):r.length===0?f.jsxs(f.Fragment,{children:[f.jsx(xN,{}),f.jsx(SN,{}),f.jsx(kN,{}),f.jsx(EN,{})]}):f.jsxs(f.Fragment,{children:[f.jsx(VE,{}),f.jsx(KE,{}),f.jsx(oN,{}),f.jsx(yN,{}),f.jsx(bN,{}),f.jsx(cN,{}),f.jsx(dN,{}),f.jsx(qE,{}),f.jsx(WE,{}),f.jsx(tN,{}),f.jsx(eN,{}),f.jsx(iN,{}),f.jsx(lN,{}),f.jsx(sN,{})]})]})}const S0=11,XN=50,KN=2e4;async function qN(t,l,s={}){const i=performance.now()+(s.timeoutMs??KN);for(;;){if(s.signal?.aborted)throw new Error("stage connect aborted");const r=t.contentWindow?.__shotStudio;if(r){if(r.version!==S0)throw new Error(`stage bridge version ${r.version}, chrome needs ${S0} — rebuild @dailies-studio/shot-editor`);return r.connect(l),r}if(performance.now()>i)throw new Error("stage bridge did not appear (is /shot-stage.html loading?)");await new Promise(c=>setTimeout(c,XN))}}const ZN="/shot-stage.html"+(typeof window<"u"&&new URLSearchParams(window.location.search).get("perf")==="1"?"?perf=1":"");function QN({onConnectError:t}){const l=ye(),s=H.useRef(null);return H.useEffect(()=>{const i=s.current;if(!i)return;const r=new AbortController,c=()=>{t(null),qN(i,l.stageHandlers,{signal:r.signal}).then(d=>{r.signal.aborted||l.attachStage(d)}).catch(d=>{r.signal.aborted||t(d instanceof Error?d.message:String(d))})};return i.addEventListener("load",c),c(),()=>{r.abort(),i.removeEventListener("load",c),l.attachStage(null),t(null)}},[l,t]),f.jsx("iframe",{ref:s,className:"stage-frame",src:ZN,title:"Stage",allow:"pointer-lock",onPointerEnter:JN})}function JN(t){const l=document.activeElement;l!==null&&(l.isContentEditable||l.tagName==="INPUT"||l.tagName==="TEXTAREA")||t.currentTarget.focus()}const WN=6;function PN(t){return WN/Math.max(t,1e-6)}function eA(t,l){const s=[],i=new Set,r=(c,d,m)=>{const h=Math.round(c);h<0||i.has(h)||(i.add(h),s.push({frame:h,kind:d,label:m}))};r(l.playhead,"playhead","playhead");for(const c of t.markers??[])c.id!==l.exclude?.markerId&&r(c.frame,"marker",c.label??"marker");for(const c of Object.values(t.audio))c.id!==l.exclude?.audioClipId&&(r(c.frame,"audio","audio in"),r(c.frame+c.durationFrames,"audio","audio out"));for(const c of ir(t)){const d=t.scenesById[c.id];if(d!==void 0){r(c.start,"scene",`${d.name} start`),r(c.end,"scene",`${d.name} end`);for(const m of Object.values(d.layersById)){const h=l.exclude?.sceneId===c.id&&l.exclude.layerId===m.id?l.exclude:void 0;if(h!==void 0&&h.blockId===void 0)continue;const g=Gd(m,d);r(c.start+g.in,"lifespan",`${m.label} in`),r(c.start+g.out,"lifespan",`${m.label} out`);for(const v of m.blocks)v.id!==h?.blockId&&(r(c.start+v.frame,"block",`${m.label} ${v.preset}`),r(c.start+v.frame+v.durationFrames,"block",`${m.label} ${v.preset} end`))}}}return s}function tA(t,l,s){const i=Math.round(t);if(!(s>0))return{frame:i,target:null};let r=null,c=1/0;for(const d of l){const m=Math.abs(d.frame-t);m<=s&&m<c&&(r=d,c=m)}return r===null?{frame:i,target:null}:{frame:r.frame,target:r}}function hs(t){return t.metaKey||t.ctrlKey}const nA="rgba(150, 205, 255, 0.7)",is=26;function aA(t){const{ppf:l,labelWidth:s,beginSnap:i}=t,r=ye(),c=Z(D=>D.doc),[d,m]=H.useState(null),[h,g]=H.useState(!1),[v,x]=H.useState(!1),E=H.useRef(null);if(c===null)return null;const M=Object.values(c.audio),k=D=>{const _=D?.[0];_!==void 0&&(m(null),g(!0),r.importAudio(_).catch(z=>m(z instanceof Error?z.message:String(z))).finally(()=>g(!1)))};return f.jsxs("div",{className:`audio-lane${v?" is-over":""}`,"data-testid":"audio-lane",onDragOver:D=>{D.preventDefault(),x(!0)},onDragLeave:()=>x(!1),onDrop:D=>{D.preventDefault(),x(!1),k(D.dataTransfer?.files??null)},children:[f.jsxs("div",{className:"audio-label-cell",style:{width:s},children:[f.jsx("span",{className:"audio-lane-name",children:"Audio"}),f.jsx("button",{type:"button",className:"audio-add",title:"Import audio at the playhead",disabled:h,onClick:()=>E.current?.click(),children:h?"…":"+"}),f.jsx("input",{ref:E,className:"audio-file-input",type:"file",accept:"audio/*",hidden:!0,"data-testid":"audio-file-input",onChange:D=>{k(D.currentTarget.files),D.currentTarget.value=""}})]}),f.jsxs("div",{className:"audio-track",children:[M.length===0&&!h?f.jsx("span",{className:"audio-empty",children:"Drop an audio file here, or press +"}):null,M.map(D=>f.jsx(lA,{clip:D,asset:c.assets[D.asset],fps:c.fps,ppf:l,beginSnap:i},D.id))]}),d===null?null:f.jsx("p",{className:"audio-error",role:"status","data-testid":"audio-error",children:d})]})}function lA(t){const{clip:l,asset:s,fps:i,ppf:r,beginSnap:c}=t,d=ye(),m=$y(l),h=Ze(m.frame,r),g=Math.max(8,Ze(m.durationFrames,r)),v=k=>D=>{D.preventDefault(),D.stopPropagation();const _=k==="body"&&D.altKey?"slip":k,z=D.clientX,G=c?.({audioClipId:l.id},hs(D)),C=_==="out"?m.frame+m.durationFrames:_==="fade-in"?m.frame+m.fadeInFrames:_==="fade-out"?m.frame+m.durationFrames-m.fadeOutFrames:m.frame;d.beginBlockDrag(),Ca(D,{onMove(L){const U=Wl(L.clientX-z,r),T=G===void 0?U:G(C+U)-C;d.dragAudio(l.id,_,T)},onEnd:L=>d.endBlockDrag(L)})},x=k=>{k.preventDefault(),k.stopPropagation();const D=k.clientY,_=m.gain,z=k.currentTarget.parentElement?.clientHeight??is;d.beginBlockDrag(),Ca(k,{onMove(G){d.dragAudioGain(l.id,_-(G.clientY-D)/Math.max(1,z)*fd)},onEnd:G=>d.endBlockDrag(G)})},E=Ze(m.fadeInFrames,r),M=Ze(m.fadeOutFrames,r);return f.jsxs("div",{className:`audio-clip${m.muted?" is-muted":""}`,"data-audio-clip":l.id,style:{left:h,width:g},onPointerDown:v("body"),title:`${s?.path??l.asset} · drag to move it and its markers, ⌥drag to slip the source, ⌘drag to ignore snapping`,children:[f.jsx(iA,{clip:m,asset:s,fps:i,widthPx:g}),m.fadeInFrames>0||m.fadeOutFrames>0?f.jsx("svg",{className:"audio-fade-curve",viewBox:`0 0 ${g} ${is}`,preserveAspectRatio:"none","aria-hidden":"true",children:f.jsx("polyline",{points:`0,${is} ${E},0 ${Math.max(E,g-M)},0 ${g},${is}`,fill:"none"})}):null,f.jsx("span",{className:"audio-gain-band","data-handle":"audio-gain",style:{bottom:`${m.gain/fd*100}%`},onPointerDown:x,title:`Gain ${m.gain.toFixed(2)} — drag up or down`}),f.jsx("span",{className:"audio-clip-name",children:s?.path.replace(/^[0-9a-f]{8}-/,"")??l.asset}),f.jsx("span",{className:"audio-handle audio-handle-in","data-handle":"audio-in",onPointerDown:v("in"),"aria-hidden":"true"}),f.jsx("span",{className:"audio-handle audio-handle-out","data-handle":"audio-out",onPointerDown:v("out"),"aria-hidden":"true"}),f.jsx("span",{className:"audio-fade audio-fade-in","data-handle":"audio-fade-in",style:{left:E},onPointerDown:v("fade-in"),title:`Fade in ${m.fadeInFrames}f`}),f.jsx("span",{className:"audio-fade audio-fade-out","data-handle":"audio-fade-out",style:{left:Math.max(0,g-M)},onPointerDown:v("fade-out"),title:`Fade out ${m.fadeOutFrames}f`}),f.jsxs("span",{className:"audio-clip-buttons",children:[f.jsx("button",{type:"button",className:"audio-clip-btn","aria-label":m.muted?"Unmute clip":"Mute clip","aria-pressed":m.muted,onPointerDown:k=>k.stopPropagation(),onClick:()=>d.toggleAudioMute(l.id),children:m.muted?"🔇":"🔊"}),f.jsx("button",{type:"button",className:"audio-clip-btn","aria-label":"Remove clip",onPointerDown:k=>k.stopPropagation(),onClick:()=>d.removeAudio(l.id),children:"×"})]})]})}function iA(t){const{clip:l,asset:s,fps:i,widthPx:r}=t,c=H.useRef(null),[d,m]=H.useState(null);return H.useEffect(()=>{if(s===void 0)return;let h=!0;return QM(s).then(g=>{h&&m(g)}).catch(()=>{}),()=>{h=!1}},[s]),H.useEffect(()=>{const h=c.current;h===null||d===null||d.peaks.length===0||VM(h,{data:d,fromSeconds:Ja(l.offsetFrames,i),toSeconds:Ja(l.offsetFrames+l.durationFrames,i),widthPx:r,heightPx:is,color:nA})},[d,r,i,l.offsetFrames,l.durationFrames]),f.jsx("canvas",{className:"audio-wave",ref:c,"aria-hidden":"true"})}function sA({label:t,sceneId:l,layerId:s,depth:i,bars:r,ppf:c,labelWidth:d,offsetFrames:m=0,lifespan:h,beginSnap:g,onAdd:v,addLabel:x}){const E=ye(),M=Z(D=>D.selection.includes(s)),k=Z(D=>D.selectedBlock);return f.jsxs("div",{className:`block-row${M?" is-selected":""}`,"data-track":s,"data-row-scene":l,children:[f.jsxs("div",{className:"block-row-label-cell",style:{width:d},children:[f.jsx("button",{type:"button",className:"block-row-label",style:{paddingLeft:8+i*12},onClick:()=>{E.focusScene(l),s!==ja&&E.select([s])},children:t}),v!==void 0&&f.jsx("button",{type:"button",className:"block-row-add",onClick:v,children:x??"+"})]}),f.jsx("div",{className:"block-row-lane",children:r.map(D=>f.jsx(oA,{bar:D,ppf:c,offsetFrames:m,lifespan:h,beginSnap:g,sceneId:l,selected:k?.blockId===D.id,onSelect:()=>{E.focusScene(l),E.selectBlock({sceneId:l,layerId:D.layerId,blockId:D.id})},onDrag:(_,z)=>E.dragBlock(l,D.layerId,D.id,_,z),onDragEnd:_=>E.endBlockDrag(_),onDragStart:()=>E.beginBlockDrag()},D.id))})]})}function oA({bar:t,ppf:l,offsetFrames:s,lifespan:i,beginSnap:r,sceneId:c,selected:d,onSelect:m,onDragStart:h,onDrag:g,onDragEnd:v}){const x=Ze(t.frame+s,l),E=Math.max(4,Ze(t.durationFrames,l)),M=Fy(t,i),k=D=>_=>{_.preventDefault(),_.stopPropagation(),m();const z=_.clientX,G=t.frame,C=t.frame+t.durationFrames,L=r?.({sceneId:c,layerId:t.layerId,blockId:t.id},hs(_)),U=(T,q)=>L===void 0?T+q:L(T+q+s)-s;h(),Ca(_,{onMove(T){const q=Wl(T.clientX-z,l);D==="out"?g("out",U(C,q)):g(D,U(G,q))},onEnd:T=>v(T)})};return f.jsxs("div",{className:`block-bar slot-${t.slot}${d?" is-selected":""}${M.length>0?" is-clipped":""}`,style:{left:x,width:E},"data-block":t.id,"data-clipped":M.length>0?"true":void 0,onPointerDown:k("body"),title:`${t.preset} · ${t.slot} · ${t.frame}–${t.frame+t.durationFrames}`+(M.length>0?" · outside the layer's lifespan, so this part never plays":""),children:[M.map(D=>f.jsx("span",{className:"block-dead","aria-hidden":"true",style:{left:Ze(D.from-t.frame,l),width:Ze(D.to-D.from,l)}},D.from)),f.jsx("span",{className:"block-handle block-handle-in","data-handle":"in",onPointerDown:k("in"),"aria-hidden":"true"}),f.jsx("span",{className:"block-label",children:t.preset}),t.spring?f.jsx("span",{className:"block-spring-tail","aria-hidden":"true"}):f.jsx("span",{className:"block-handle block-handle-out","data-handle":"out",onPointerDown:k("out"),"aria-hidden":"true"})]})}function rA({layer:t,sceneId:l,depth:s,ppf:i,labelWidth:r,offsetFrames:c,fps:d,lifespan:m,beginSnap:h}){const g=H.useMemo(()=>kM(t,d),[t,d]);return g.length===0?f.jsxs("div",{className:"channel-row channel-empty","data-testid":"channel-empty",children:[f.jsx("div",{className:"channel-label-cell",style:{width:r,paddingLeft:8+s*12},children:f.jsx("span",{className:"channel-name",children:"No animation"})}),f.jsx("div",{className:"channel-lane channel-empty-hint",children:"Toggle ⇧A and edit — the change becomes keyframes ending at the playhead."})]}):f.jsx(f.Fragment,{children:g.map(v=>f.jsx(cA,{row:v,layer:t,sceneId:l,depth:s,ppf:i,labelWidth:r,offsetFrames:c,fps:d,lifespan:m,beginSnap:h},v.key))})}function cA({row:t,layer:l,sceneId:s,depth:i,ppf:r,labelWidth:c,offsetFrames:d,fps:m,lifespan:h,beginSnap:g}){return f.jsxs("div",{className:"channel-row","data-channel-row":t.key,"data-row-scene":s,children:[f.jsxs("div",{className:"channel-label-cell",style:{width:c,paddingLeft:8+i*12},children:[f.jsx("span",{className:"channel-name",children:t.label}),f.jsx(uA,{layer:l,channel:t.key,offsetFrames:d,fps:m})]}),f.jsx("div",{className:"channel-lane",children:t.spans.map(v=>f.jsx(dA,{span:v,channelLabel:t.label,layerId:l.id,sceneId:s,ppf:r,offsetFrames:d,lifespan:h,beginSnap:g},v.blockId))})]})}function uA({layer:t,channel:l,offsetFrames:s,fps:i}){const r=Qy(),c=Uy.get(l);return c===void 0?null:f.jsx("span",{className:"channel-value","data-testid":`channel-value-${l}`,children:c.read(Pa(t,r-s,i))})}function dA({span:t,channelLabel:l,layerId:s,sceneId:i,ppf:r,offsetFrames:c,lifespan:d,beginSnap:m}){const h=ye(),g=Z(k=>k.selectedBlock?.blockId===t.blockId),v=Ze(t.frame+c,r),x=Math.max(4,Ze(t.durationFrames,r)),E=Fy(t,d),M=k=>D=>{D.preventDefault(),D.stopPropagation(),h.focusScene(i),h.selectBlock({sceneId:i,layerId:s,blockId:t.blockId});const _=D.clientX,z=t.frame,G=t.frame+t.durationFrames,C=m?.({sceneId:i,layerId:s,blockId:t.blockId},hs(D)),L=(U,T)=>C===void 0?U+T:C(U+T+c)-c;h.beginBlockDrag(),Ca(D,{onMove(U){const T=Wl(U.clientX-_,r);k==="out"?h.dragBlock(i,s,t.blockId,"out",L(G,T)):h.dragBlock(i,s,t.blockId,k,L(z,T))},onEnd:U=>h.endBlockDrag(U)})};return f.jsxs("div",{className:`channel-span slot-${t.slot}${g?" is-selected":""}${E.length>0?" is-clipped":""}`,style:{left:v,width:x},"data-channel-span":t.blockId,"data-clipped":E.length>0?"true":void 0,onPointerDown:M("body"),title:`${t.preset} · ${l}: ${t.from} → ${t.to}`+(E.length>0?" · outside the layer's lifespan, so this part never plays":""),children:[f.jsx("span",{className:"channel-connector","aria-hidden":"true"}),E.map(k=>f.jsx("span",{className:"channel-dead","aria-hidden":"true",style:{left:Ze(k.from-t.frame,r),width:Ze(k.to-k.from,r)}},k.from)),f.jsx("span",{className:"channel-key channel-key-in","data-key":"in",onPointerDown:M("in"),"aria-hidden":"true"}),t.spring?f.jsx("span",{className:"channel-spring-tail","aria-hidden":"true"}):f.jsx("span",{className:"channel-key channel-key-out","data-key":"out",onPointerDown:M("out"),"aria-hidden":"true"})]})}function fA(t){return t.altKey}function mA({row:t,sceneId:l,sceneStart:s,ppf:i,labelWidth:r,expanded:c,onToggle:d,beginSnap:m}){const h=ye(),g=Z(D=>D.selection.includes(t.layerId)),{lifespan:v}=t,x=()=>{h.focusScene(l),h.select([t.layerId])},E=D=>_=>{_.preventDefault(),_.stopPropagation(),x();const z=_.clientX,C=D==="body"&&fA(_)?"slip":D,L=m?.({sceneId:l,layerId:t.layerId},hs(_)),U=C==="out"?v.out:C==="slip"?t.blocks.reduce((T,q)=>Math.min(T,q.frame),1/0):v.in;h.beginBlockDrag(),Ca(_,{onMove(T){const q=Wl(T.clientX-z,i),ae=L===void 0||!Number.isFinite(U)?q:L(U+q+s)-s-U;h.dragLifespan(l,t.layerId,C,ae)},onEnd:T=>h.endBlockDrag(T)})},M=Ze(s+v.in,i),k=Math.max(8,Ze(v.out-v.in,i));return f.jsxs("div",{className:`lifespan-row${g?" is-selected":""}`,"data-lifespan":t.layerId,"data-row-scene":l,children:[f.jsxs("div",{className:"lifespan-label-cell",style:{width:r,paddingLeft:4+t.depth*12},children:[f.jsx("button",{type:"button",className:"lifespan-disclosure","aria-expanded":c,"aria-label":c?`Hide ${t.label}'s blocks`:`Show ${t.label}'s blocks`,onClick:d,children:c?"▾":"▸"}),f.jsx("button",{type:"button",className:"lifespan-name",onClick:x,children:t.label})]}),f.jsx("div",{className:"lifespan-lane",children:f.jsxs("div",{className:`lifespan-bar${g?" is-selected":""}`,style:{left:M,width:k},"data-bar":t.layerId,onPointerDown:E("body"),title:`${t.label} · ${v.in}–${v.out} · drag to move it and its blocks, ⌥drag to slip the blocks alone, ⌘drag to ignore snapping`,children:[f.jsx("span",{className:"lifespan-handle lifespan-handle-in","data-handle":"lifespan-in",onPointerDown:E("in"),"aria-hidden":"true"}),f.jsx("span",{className:"lifespan-bar-name",children:t.label}),f.jsx("span",{className:"lifespan-handle lifespan-handle-out","data-handle":"lifespan-out",onPointerDown:E("out"),"aria-hidden":"true"})]})})]})}function hA(t){const{ppf:l,labelWidth:s,beginSnap:i}=t,r=ye(),c=Z(h=>h.doc),d=Z(h=>h.selectedMarker);if(c===null)return null;const m=c.markers??[];return f.jsxs("div",{className:"marker-lane","data-testid":"marker-lane",children:[f.jsxs("div",{className:"marker-label-cell",style:{width:s},children:[f.jsx("span",{className:"marker-lane-name",children:"Markers"}),f.jsx("button",{type:"button",className:"marker-add",title:"Add a marker at the playhead (M)","aria-label":"Add a marker at the playhead",onClick:()=>r.addMarkerAtPlayhead(),children:"+"})]}),f.jsx("div",{className:"marker-track",children:m.length===0?f.jsx("span",{className:"marker-empty",children:"Press M to mark this frame"}):m.map(h=>f.jsx(pA,{marker:h,selected:h.id===d,ppf:l,fps:c.fps,beginSnap:i},h.id))})]})}function pA(t){const{marker:l,selected:s,ppf:i,fps:r,beginSnap:c}=t,d=ye(),m=Z(v=>v.frame===l.frame),h=v=>{v.preventDefault(),v.stopPropagation(),d.selectMarker(l.id);const x=v.clientX,E=c?.({markerId:l.id},hs(v));d.beginBlockDrag(),Ca(v,{onMove(M){const k=l.frame+Wl(M.clientX-x,i);d.dragMarker(l.id,E===void 0?k:E(k))},onEnd:M=>d.endBlockDrag(M)})},g=l.label===void 0||l.label===""?"Marker":l.label;return f.jsxs("span",{className:`marker-pin${s?" is-selected":""}${m?" is-at-playhead":""}`,"data-marker":l.id,style:{left:Ze(l.frame,i)},role:"button",tabIndex:-1,"aria-label":`${g} at ${Qa(l.frame,r)}`,"aria-pressed":s,title:`${g} · ${Qa(l.frame,r)} · drag to move it, ⌘drag to ignore snapping`,onPointerDown:h,children:[f.jsx("span",{className:"marker-diamond",style:l.color===void 0?void 0:{background:l.color},"aria-hidden":"true"}),f.jsx("span",{className:"marker-pin-label",children:g})]})}function gA({ppf:t}){const l=Z(s=>s.frame);return f.jsx("div",{className:"scene-playhead",style:{left:Ze(l,t)}})}function yA({ppf:t,labelWidth:l}){const s=ye(),i=Z(d=>d.doc),r=Z(d=>d.sceneId);if(i===null)return null;const c=Hy(i);return f.jsxs("div",{className:"scene-strip","data-testid":"scene-strip",children:[f.jsxs("div",{className:"scene-strip-label",style:{width:l},children:[f.jsx("span",{children:"Shots"}),f.jsx("button",{type:"button",className:"scene-strip-add","aria-label":"Add shot",title:"Add a shot at the end, and go to it",onClick:()=>s.addScene(),children:"+"})]}),f.jsxs("div",{className:"scene-strip-lane",children:[c.map((d,m)=>f.jsxs("div",{className:`scene-bar${d.id===r?" is-current":""}`,style:{left:Ze(d.start,t),width:Math.max(8,Ze(d.end-d.start,t))},"data-scene":d.id,draggable:!0,onDragStart:h=>h.dataTransfer.setData("text/plain",d.id),onDragOver:h=>h.preventDefault(),onDrop:h=>{h.preventDefault();const g=h.dataTransfer.getData("text/plain");g.length>0&&g!==d.id&&s.reorderScene(g,m)},onClick:()=>{s.setScene(d.id);const h=s.getState().frame;(h<d.start||h>=d.end)&&s.seek(d.start)},onDoubleClick:()=>s.fitDock(d.id),title:"Double-click to zoom the timeline to this shot",children:[f.jsx("span",{className:"scene-bar-name",children:d.name}),f.jsx(vA,{onDrag:h=>s.trimScene(d.id,d.end-d.start+Wl(h,t)),onStart:()=>s.beginBlockDrag(),onEnd:h=>s.endBlockDrag(h)})]},d.id)),c.slice(0,-1).map(d=>f.jsx("button",{type:"button",className:`scene-cut${i.scenesById[d.id]?.transition!==void 0?" is-blend":""}`,style:{left:Ze(d.end,t)},"aria-label":`Transition after ${d.name}`,title:i.scenesById[d.id]?.transition===void 0?`Cut after ${d.name}`:`${i.scenesById[d.id].transition.kind} after ${d.name}`,onClick:m=>{m.stopPropagation(),s.setScene(d.id),s.seek(Math.max(d.start,d.end-1))}},`cut-${d.id}`)),f.jsx(gA,{ppf:t})]})]})}function vA({onStart:t,onDrag:l,onEnd:s}){const i=r=>{r.preventDefault(),r.stopPropagation();const c=r.clientX;t(),Ca(r,{onMove:d=>l(d.clientX-c),onEnd:d=>s(d)})};return f.jsx("span",{className:"scene-trim","data-handle":"scene-out",onPointerDown:i,"aria-hidden":"true"})}const sn=150;function bA({fps:t}){const l=Z(s=>s.frame);return f.jsx("span",{className:"dock-time","data-testid":"dock-time",children:Qa(l,t)})}function xA({total:t}){const l=Z(s=>s.frame);return f.jsxs("span",{className:"dock-readout","data-testid":"dock-readout",children:[l," / ",Math.max(0,t-1)]})}function k0({ppf:t}){const l=Z(s=>s.frame);return f.jsx(JM,{frame:l,ppf:t,offset:0,className:"dock-playhead"})}function SA(){const t=ye(),l=Z(T=>T.doc),s=Z(T=>T.isolation),i=Z(T=>T.playing),r=Z(T=>T.dockCollapsed),c=Z(T=>T.dockPpf),d=Z(T=>T.previewMuted),m=Z(T=>T.previewVolume),h=H.useRef(null),[g,v]=H.useState(()=>new Set),[x,E]=H.useState(null),M=H.useCallback(()=>t.getState().dockPpf,[t]),k=H.useCallback(T=>t.setDockPpf(T),[t]);PM({scrollRef:h,labelWidth:sn,ppf:c,min:.2,max:60,read:M,setPxPerFrame:k,enabled:!r&&l!==null}),H.useEffect(()=>{const T=h.current;if(T===null)return;const q=ae=>{!ae.shiftKey||ae.ctrlKey||ae.metaKey||(ae.preventDefault(),T.scrollLeft+=ae.deltaX!==0?ae.deltaX:ae.deltaY)};return T.addEventListener("wheel",q,{passive:!1}),()=>T.removeEventListener("wheel",q)},[r,l===null]);const D=H.useRef(null);H.useLayoutEffect(()=>{const T=h.current;T===null||D.current===null||(T.scrollLeft=D.current,D.current=null)},[c]);const _=H.useCallback(T=>{const q=h.current,ae=t.getState().doc;if(q===null||ae===null)return;const me=q.clientWidth-sn;if(me<=0)return;if(T===void 0){const ke=e0(ae);if(ke<=0)return;t.setDockPpf(me/ke),q.scrollLeft=0;return}const se=Hy(ae).find(ke=>ke.id===T);if(se===void 0)return;const Re=se.end-se.start;if(Re<=0)return;const Fe=t.getState().dockPpf;t.setDockPpf(me/Re);const vt=t.getState().dockPpf,he=Ze(se.start,vt);vt===Fe?q.scrollLeft=he:D.current=he},[t]);H.useEffect(()=>(t.attachDockFit(_),()=>t.attachDockFit(null)),[t,_]);const z=H.useCallback((T,q)=>{const ae=t.getState(),me=q||ae.doc===null?[]:eA(ae.doc,T===void 0?{playhead:ae.frame}:{playhead:ae.frame,exclude:T}),se=PN(ae.dockPpf);return Re=>{const Fe=tA(Re,me,se);return E(Fe.target===null?null:Fe.frame),Fe.frame}},[t]);H.useEffect(()=>{const T=()=>E(null),q=ae=>{ae.key==="Escape"&&T()};return window.addEventListener("pointerup",T),window.addEventListener("pointercancel",T),window.addEventListener("keydown",q),()=>{window.removeEventListener("pointerup",T),window.removeEventListener("pointercancel",T),window.removeEventListener("keydown",q)}},[]);const G=H.useMemo(()=>l===null?[]:MM(l,s),[l,s]),C=H.useMemo(()=>l===null?0:EM(l,G),[l,G]);if(l===null)return null;const L=e0(l),U=Ze(C,c);return f.jsxs("section",{className:`timeline-dock${r?" is-collapsed":""}`,"data-testid":"timeline-dock","aria-label":"Timeline",children:[r?null:f.jsx(Sd,{axis:"y",getValue:()=>t.getState().dockHeight,sign:-1,onChange:T=>t.setDockHeight(T),onReset:()=>t.setDockHeight(ql.default),className:"dock-resize",label:"Resize the timeline"}),f.jsxs("header",{className:"dock-head",children:[f.jsx("button",{type:"button",className:"dock-collapse","aria-expanded":!r,"aria-label":r?"Expand timeline":"Collapse timeline",onClick:()=>t.setDockCollapsed(!r),children:r?"▴":"▾"}),f.jsx("button",{type:"button",className:"dock-play","aria-label":i?"Pause":"Play",title:i?"Pause (Space)":"Play (Space)",onClick:()=>t.setPlaying(!i),children:i?"❚❚":"▶"}),f.jsx(bA,{fps:l.fps}),f.jsxs("span",{className:"dock-span","data-testid":"dock-span",children:["Start ",Qa(0,l.fps)," / End ",Qa(L,l.fps)]}),f.jsx("button",{type:"button",className:"dock-fit",title:"Fit the timeline (\\)",onClick:()=>_(),children:"Fit"}),f.jsx("button",{type:"button",className:"dock-mute","aria-label":d?"Unmute preview":"Mute preview","aria-pressed":d,title:d?"Preview muted":"Mute the preview",onClick:()=>t.setPreviewMuted(!d),children:d?"🔇":"🔊"}),f.jsx("input",{className:"dock-volume",type:"range",min:0,max:1,step:.01,value:m,"aria-label":"Preview volume",onChange:T=>t.setPreviewVolume(Number(T.currentTarget.value))}),f.jsx(xA,{total:L})]}),f.jsx("div",{className:"dock-body",hidden:r,"data-testid":"dock-body",children:f.jsxs("div",{className:"dock-scroll",ref:h,"data-testid":"dock-scroll",children:[f.jsx("div",{style:{minWidth:sn+U},children:f.jsx(yA,{ppf:c,labelWidth:sn})}),f.jsx("div",{className:"dock-ruler",style:{marginLeft:sn,minWidth:U},children:f.jsx(WM,{durationFrames:L,contentF:C,ppf:c,timeW:U,formatTick:T=>Qa(T,l.fps),onSeek:T=>t.seek(T),children:f.jsx(k0,{ppf:c})})}),f.jsxs("div",{className:"dock-tracks","data-testid":"dock-tracks",style:{minWidth:sn+U},children:[f.jsxs("div",{className:"dock-overlay",style:{left:sn},"aria-hidden":"true",children:[G.map(T=>T.start===0?null:f.jsx("span",{className:"dock-boundary","data-boundary":T.id,style:{left:Ze(T.start,c)}},T.id)),x===null?null:f.jsx("span",{className:"dock-snap-guide","data-testid":"snap-guide",style:{left:Ze(x,c)}}),f.jsx(k0,{ppf:c})]}),G.map(T=>f.jsxs("div",{className:"dock-scene-group","data-scene-group":T.id,children:[f.jsx(sA,{label:"Camera",sceneId:T.id,layerId:ja,depth:0,bars:T.camera,ppf:c,labelWidth:sn,offsetFrames:T.start,beginSnap:z,onAdd:()=>t.addShotAtPlayhead(T.id),addLabel:"+ move"}),T.rows.map(q=>f.jsxs(H.Fragment,{children:[f.jsx(mA,{row:q,sceneId:T.id,sceneStart:T.start,ppf:c,labelWidth:sn,expanded:g.has(q.layerId),onToggle:()=>v(ae=>{const me=new Set(ae);return me.delete(q.layerId)||me.add(q.layerId),me}),beginSnap:z}),g.has(q.layerId)&&(()=>{const ae=l.scenesById[T.id]?.layersById[q.layerId];return ae===void 0?null:f.jsx(rA,{layer:ae,sceneId:T.id,depth:q.depth+1,ppf:c,labelWidth:sn,offsetFrames:T.start,fps:l.fps,lifespan:q.lifespan,beginSnap:z})})()]},q.layerId))]},T.id)),f.jsx(hA,{ppf:c,labelWidth:sn,beginSnap:z}),f.jsx(aA,{ppf:c,labelWidth:sn,beginSnap:z})]})]})})]})}function kA(){const t=ye(),l=Z(_=>_.imagePick),s=Z(_=>_.selection.length>0),i=Z(_=>_.selection.length>=2),r=Z(_=>_.library),c=Z(_=>_.libraryLoaded),[d,m]=H.useState(!1),[h,g]=H.useState(!1),[v,x]=H.useState(null),E=H.useRef(null);H.useEffect(()=>{l!==null&&x({kind:"image"})},[l]),H.useEffect(()=>{v!==null&&E.current?.click()},[v]),H.useEffect(()=>{d&&!c&&t.refreshLibrary()},[d,c,t]);const M=_=>t.reportError(_ instanceof Error?_.message:String(_)),k=_=>{const z=v;if(x(null),z===null)return;g(!0),(z.kind==="image"?t.completeImageDraw(_):_===null?Promise.resolve():t.addMeshLayer(_)).catch(M).finally(()=>g(!1))},D=[];if(Za("mesh")&&D.push({key:"mesh",label:"3D model…",run:()=>x({kind:"model"})}),Za("device"))for(const _ of gS)D.push({key:`device:${_}`,label:_.charAt(0).toUpperCase()+_.slice(1),run:()=>t.addDeviceLayer(_)});if(Za("html")&&D.push({key:"html",label:"Html snippet",run:()=>t.addHtmlLayer()}),Za("instance"))for(const _ of r.filter(z=>z.host==="three"))D.push({key:`instance:${_.id}`,label:_.name,title:_.id,run:()=>void t.addInstanceLayer(_.id).catch(M)});return Za("group")&&D.push({key:"group",label:"Group",disabled:!i,title:i?"Group the selection (Ctrl/Cmd+G)":"Select two or more layers to group",run:()=>t.groupSelection()}),Za("cloner")&&D.push({key:"cloner",label:"Cloner",disabled:!s,title:s?"Wrap the selection in a cloner":"Select a layer to clone first",run:()=>t.addClonerLayer()}),Za("component")&&D.push({key:"component",label:"Component",disabled:!s,title:s?"Make the selection reusable, and leave one placement here":"Select the layers to turn into a component first",run:()=>t.createComponentFromSelection()}),D.length===0?null:f.jsxs("div",{className:"tool-flyout-anchor",children:[f.jsx("button",{type:"button",className:"tool-button","aria-haspopup":"menu","aria-expanded":d,title:"Add a layer at the playhead","data-testid":"add-menu-button",disabled:h,onClick:()=>m(_=>!_),children:h?"…":"+"}),d?f.jsx("div",{className:"tool-flyout",role:"menu","data-testid":"add-menu",children:D.map(_=>f.jsx("button",{type:"button",role:"menuitem",className:"tool-button",disabled:_.disabled===!0,title:_.title??_.label,onClick:()=>{m(!1),_.run()},children:_.label},_.key))}):null,f.jsx("input",{ref:E,className:"audio-file-input",type:"file",accept:v?.kind==="model"?".glb,.gltf,model/gltf-binary":".png,.jpg,.jpeg,.webp,.avif,.gif,.mp4,.webm,.mov,.m4v,image/png,image/jpeg,image/webp,image/avif,image/gif,video/mp4,video/webm,video/quicktime",hidden:!0,"data-testid":"add-file-input",onChange:_=>{k(_.currentTarget.files?.[0]??null),_.currentTarget.value=""}})]})}const jA={select:"▹",move:"✥",text:"T",image:"▤",rect:"▭",path:"✎"},MA={ellipse:"◯",line:"╱",arrow:"↗"};function EA(){const t=ye(),l=Z(m=>m.tool),s=Z(m=>m.animateMode),i=Z(m=>m.name!==null),[r,c]=H.useState(!1);if(!i)return null;const d=m=>{const h=Po(m),g=h.key===null?"":` (${h.shift===!0?"⇧":""}${h.key.toUpperCase()})`;return`${h.label}${g}`};return f.jsxs("div",{className:"tool-dock",role:"toolbar","aria-label":"Tools","data-testid":"tool-dock",children:[m2.map(m=>f.jsx("button",{type:"button",className:`tool-button${l===m?" is-armed":""}`,"aria-pressed":l===m,title:d(m),onClick:()=>t.setTool(m),children:jA[m]},m)),f.jsxs("div",{className:"tool-flyout-anchor",children:[f.jsx("button",{type:"button",className:`tool-button${Lg.includes(l)?" is-armed":""}`,"aria-haspopup":"menu","aria-expanded":r,title:"Shapes",onClick:()=>c(m=>!m),children:"◇"}),r?f.jsx("div",{className:"tool-flyout",role:"menu",children:Lg.map(m=>f.jsxs("button",{type:"button",role:"menuitem",className:`tool-button${l===m?" is-armed":""}`,title:d(m),onClick:()=>{t.setTool(m),c(!1)},children:[MA[m]," ",Po(m).label]},m))}):null]}),f.jsx(kA,{}),f.jsx("span",{className:"tool-separator","aria-hidden":"true"}),f.jsx("button",{type:"button",className:`tool-button tool-animate${s?" is-armed":""}`,"aria-pressed":s,title:"Animate (⇧A) — a canvas edit becomes a block ending at the playhead",onClick:()=>t.setAnimateMode(!s),children:"⏺"})]})}const NA=[{mode:"working",glyph:"◱",label:"Working view",key:"1"},{mode:"split",glyph:"▥",label:"Split",key:"2"},{mode:"camera",glyph:"▣",label:"Camera view",key:"3"}];function AA(){const t=ye(),l=Z(i=>i.stageLayout);return Z(i=>i.name!==null)?f.jsx("div",{className:"view-mode-bar",role:"group","aria-label":"View mode","data-testid":"view-mode-bar",children:NA.map(({mode:i,glyph:r,label:c,key:d})=>f.jsx("button",{type:"button",className:`tool-button${l.mode===i?" is-armed":""}`,"aria-pressed":l.mode===i,title:`${c} (${d})`,onClick:()=>t.setStageLayout({...l,mode:i}),children:r},i))}):null}const j0={solid:{glyph:"◯",label:"Solid"},wireframe:{glyph:"◇",label:"Wireframe"},material:{glyph:"◑",label:"Material"},rendered:{glyph:"✦",label:"Rendered"}};function CA(){const t=ye(),l=Z(r=>r.shadingMode),s=Z(r=>r.stageLayout.mode);return!Z(r=>r.name!==null)||s==="camera"?null:f.jsx("div",{className:"view-mode-bar",role:"group","aria-label":"Working-pane shading","data-testid":"shading-bar",children:Go.map(r=>f.jsx("button",{type:"button",className:`tool-button${l===r?" is-armed":""}`,"aria-pressed":l===r,title:`${j0[r].label} — working pane (Z cycles)`,onClick:()=>t.setShadingMode(r),children:j0[r].glyph},r))})}function wA(){const t=ye(),l=Z(c=>c.stageLayout.mode),s=Z(c=>c.cameraFollowsView),i=Z(c=>c.selection.length>0);return!Z(c=>c.name!==null)||l==="camera"?null:f.jsxs("div",{className:"camera-view-bar",role:"group","aria-label":"Camera","data-testid":"camera-view-bar",children:[f.jsx("button",{type:"button",className:"btn",title:"Point the shot camera where this view is looking (⌥C)",onClick:()=>t.alignCameraToWorkingView(),children:"Align camera"}),f.jsx("button",{type:"button",className:`btn${s?" is-armed":""}`,"aria-pressed":s,title:"Keep the shot camera pointed where this view looks, while you orbit",onClick:()=>t.setCameraFollowsView(!s),children:"Follow view"}),f.jsx("button",{type:"button",className:"btn",disabled:!i,title:"Frame the selected layers",onClick:()=>t.fitCameraToSelection(),children:"Fit to selection"})]})}const as="";function TA(t){const l=ye(),s=Z(se=>se.doc),i=Z(se=>se.name),r=Z(se=>se.sceneId),c=Z(se=>se.renderJob),[d,m]=H.useState("mp4"),[h,g]=H.useState("social"),[v,x]=H.useState(as),[E,M]=H.useState({runs:[]}),[k,D]=H.useState(null),[_,z]=H.useState(!0);if(H.useEffect(()=>{if(i===null)return;let se=!0;return Nj(i).then(Re=>{se&&(M(Re.stats),Re.job!==null&&l.setRenderJob(Re.job))}).catch(()=>{}),()=>{se=!1}},[i,l,c?.phase]),s===null||i===null)return null;const G=ir(s),C=v===as?Wa(s):(G.find(se=>se.id===v)?.end??0)-(G.find(se=>se.id===v)?.start??0),L=s.size.width*s.size.height/1e6,U=Object.keys(s.audio).length,T=d==="mp4"&&_&&U>0,q=tj({width:s.size.width,height:s.size.height,durationFrames:C,fps:s.fps,quality:Pk(h),audio:T}),ae=c?.phase==="running",me=()=>{D(null),Ej(i,{format:d,quality:h,...v===as?{}:{sceneId:v},..._?{}:{audio:!1}}).then(se=>l.setRenderJob(se)).catch(se=>{se instanceof Kl&&se.conflict?D(se.message):D(se instanceof Error?se.message:String(se))})};return f.jsx(bM,{open:!0,title:"Export",className:"shot-export-dialog",onClose:t.onClose,actions:f.jsxs(f.Fragment,{children:[ae?f.jsx("button",{type:"button",className:"btn",onClick:()=>void Aj(i),children:"Cancel render"}):f.jsx("button",{type:"button",className:"btn is-primary",onClick:me,children:"Export"}),f.jsx("button",{type:"button",className:"btn",onClick:t.onClose,children:"Close"})]}),children:f.jsxs("div",{className:"export-dialog","data-testid":"export-dialog",children:[f.jsxs("label",{className:"export-row",children:[f.jsx("span",{children:"Format"}),f.jsx(qt,{ariaLabel:"Export format",value:d,options:[{value:"mp4",label:"MP4"},{value:"gif",label:"GIF"}],onChange:se=>m(se)})]}),f.jsxs("label",{className:"export-row",children:[f.jsx("span",{children:"Quality"}),f.jsx("select",{className:"select","aria-label":"Export quality",value:h,onChange:se=>g(se.target.value),children:Zo.map(se=>f.jsx("option",{value:se.id,children:se.label},se.id))})]}),f.jsxs("label",{className:"export-row",children:[f.jsx("span",{children:"Range"}),f.jsxs("select",{className:"select","aria-label":"Export range",value:v,onChange:se=>x(se.target.value),children:[f.jsx("option",{value:as,children:"Whole timeline"}),s.scenes.map(se=>f.jsxs("option",{value:se,children:[s.scenesById[se]?.name??se,se===r?" (open)":""]},se))]})]}),v!==as&&F1(s,v)?f.jsx("p",{className:"export-note","data-testid":"export-transition-note",children:"The transition into this shot plays from the shot before it, so a single-shot render starts on a cut. Render the whole timeline to include it."}):null,f.jsxs("label",{className:"export-row",children:[f.jsx("span",{children:"Audio"}),f.jsxs("span",{className:"export-audio","data-testid":"export-audio",children:[f.jsx("input",{type:"checkbox","aria-label":"Include audio",checked:_,disabled:d==="gif"||U===0,onChange:se=>z(se.currentTarget.checked)}),f.jsx("span",{children:U===0?"no clips in this scene":d==="gif"?`${U} clip${U===1?"":"s"} — GIF has no audio track`:_?`${U} clip${U===1?"":"s"} included`:`${U} clip${U===1?"":"s"} will be dropped`})]})]}),f.jsxs("dl",{className:"export-estimate","data-testid":"export-estimate",children:[f.jsx("dt",{children:"Frames"}),f.jsx("dd",{children:C}),f.jsx("dt",{children:"Size"}),f.jsx("dd",{children:d==="gif"?"varies with palette":nj(q)}),f.jsx("dt",{children:"Time"}),f.jsx("dd",{children:sj(E,L,C)})]}),c!==null&&f.jsx(OA,{job:c}),k!==null&&f.jsx("p",{className:"export-error",children:k})]})})}function OA(t){const{job:l}=t;return l.phase==="running"?f.jsxs("p",{className:"export-progress","data-testid":"export-progress",children:["Rendering frame ",l.done,"/",l.total||"?"]}):l.phase==="done"?f.jsxs("p",{className:"export-progress is-done","data-testid":"export-progress",children:["Written to ",f.jsx("code",{children:l.out})]}):l.phase==="cancelled"?f.jsx("p",{className:"export-progress","data-testid":"export-progress",children:"Render cancelled — nothing was written."}):f.jsx("p",{className:"export-error","data-testid":"export-progress",children:l.error??"The render failed."})}function DA(){const t=ye(),l=Z(c=>c.stageMenu),s=Iy(),{open:i,close:r}=s;return H.useEffect(()=>{if(l===null){r();return}const c=t.getState(),d=Xy(t,c,Ky(c,c.selection));d.length!==0&&i(l.at,d)},[l,t,i,r]),f.jsx(f.Fragment,{children:s.menu})}const zA="@dailies-studio/effects",Uo=["noise","patterns","organic","space","material","decor"],_A={noise:"Noise",patterns:"Patterns",organic:"Organic",space:"Space",material:"Material",decor:"Decor"};function BA(t){return _A[t]??t.charAt(0).toUpperCase()+t.slice(1)}function RA(t){let l=2166136261;for(let r=0;r<t.length;r+=1)l^=t.charCodeAt(r),l=Math.imul(l,16777619);l=l>>>0;const s=l%360,i=(s+40+(l>>>9)%160)%360;return`linear-gradient(${(l>>>17)%360}deg, hsl(${s} 45% 30%), hsl(${i} 60% 55%))`}function LA(){const t=ye(),l=Z(h=>h.materialPicker),s=Z(h=>h.library),i=Z(h=>h.libraryLoaded),[r,c]=H.useState("");H.useEffect(()=>{i||t.refreshLibrary()},[i,t]);const d=H.useMemo(()=>{const h=r.trim().toLowerCase(),g=s.filter(E=>E.builtin===!0&&E.host==="three"&&E.rel===zA&&E.effect!==void 0),v=h===""?g:g.filter(E=>E.name.toLowerCase().includes(h)||E.effect.tags.some(M=>M.toLowerCase().includes(h))),x=new Map;for(const E of v){const M=x.get(E.effect.category);M?M.push(E):x.set(E.effect.category,[E])}return[...x.entries()].sort((E,M)=>{const k=Uo.indexOf(E[0]),D=Uo.indexOf(M[0]);return k===D?E[0].localeCompare(M[0]):(k<0?Uo.length:k)-(D<0?Uo.length:D)})},[s,r]);if(l===null)return null;const m=l.layerIds.length;return f.jsx("div",{className:"dialog-overlay",onPointerDown:()=>t.closeMaterialPicker(),children:f.jsxs("div",{className:"dialog material-picker",role:"dialog","aria-label":"Choose a material",onPointerDown:h=>h.stopPropagation(),children:[f.jsx("div",{className:"dialog-title",children:"Material"}),f.jsxs("div",{className:"dialog-field",children:[f.jsx("span",{className:"dialog-label",children:m===1?"1 mesh layer":`${m} mesh layers`}),f.jsx("input",{className:"material-search",type:"search",placeholder:"Search materials",value:r,onChange:h=>c(h.target.value),autoFocus:!0})]}),f.jsx("div",{className:"dialog-body",children:i?d.length===0?f.jsxs("p",{className:"dialog-message",children:["No material matches “",r,"”."]}):d.map(([h,g])=>f.jsxs("section",{className:"material-shelf",children:[f.jsx("h3",{children:BA(h)}),f.jsx("div",{className:"material-grid",children:g.map(v=>f.jsxs("button",{type:"button",className:"material-card",title:v.effect.softwareRaster==="unfinished"?`${v.name} — may not finish a software-rasterized render (--gl swangle); use --gl angle.`:v.name,onClick:()=>t.applyMeshMaterial(l.layerIds,v.id),children:[v.effect.thumb===void 0?f.jsx("span",{className:"material-thumb",style:{background:RA(v.id)}}):f.jsx("img",{className:"material-thumb",src:v.effect.thumb,alt:""}),f.jsx("span",{className:"material-name",children:v.name}),v.effect.softwareRaster==="unfinished"?f.jsx("span",{className:"material-badge","aria-hidden":"true",children:"slow"}):null]},v.id))})]},h)):f.jsx("p",{className:"dialog-message",children:"Loading…"})}),f.jsx("div",{className:"dialog-actions",children:f.jsx("button",{type:"button",onClick:()=>t.closeMaterialPicker(),children:"Cancel"})})]})})}function il(t){return t instanceof Error?t.message:String(t)}function IA(t){return(t instanceof yy||t instanceof Kl)&&t.status===409}const M0=fj("sh");async function E0(t){try{t.setAgentCredentials(await al.credentials())}catch(l){t.setAgentCredentials(null,il(l))}}async function UA(t,l){try{t.setAgentCredentials(await al.setKey(l))}catch(s){t.setAgentCredentials(t.getState().agentCredentials,il(s))}}async function HA(t){try{t.setAgentCredentials(await al.clearKey())}catch(l){t.setAgentCredentials(t.getState().agentCredentials,il(l))}}function FA(t){const l={};t.name!==null&&(l.docName=t.name),t.doc!==null&&(l.componentName=t.doc.name),l.frame=t.frame,t.sceneId!==null&&(l.sceneId=t.sceneId);const s=t.selection[0];return s!==void 0&&(l.selectedLayerId=s),{surface:"shot",...Object.keys(l).length>0?{shot:l}:{}}}function $A(t){return{append:l=>t.appendAgentItem(l),patchProposal:(l,s)=>t.patchAgentProposal(l,s),setCost:l=>t.setAgentCost(l)}}async function GA(t,l){const s=t.getState();if(!(s.agentRunning||l.trim()==="")){t.setAgentError(null),t.appendAgentItem({id:M0(),kind:"user",text:l}),t.setAgentRunning(!0);try{const{sessionId:i}=await al.createSession({prompt:l,...s.agentModel!==null?{model:s.agentModel}:{},context:FA(s)});t.setAgentSession(i),await al.events(i,r=>{hj($A(t),i,r,M0)})}catch(i){t.setAgentError(il(i))}finally{t.setAgentRunning(!1)}}}async function YA(t){const l=t.getState().agentSessionId;if(!(l===null||!t.getState().agentRunning))try{await al.cancel(l)}catch(s){t.setAgentError(il(s))}}function VA(t,l){return t.getState().agentItems.find(s=>s.kind==="proposal"&&s.id===l)}async function XA(t,l){const s=VA(t,l);if(!(s===void 0||s.status!=="pending")){t.patchAgentProposal(l,{status:"applying",error:null});try{await t.flush()}catch{}try{const i=await al.apply(s.sessionId,l),r=typeof i?.warning=="string"?i.warning:null;t.patchAgentProposal(l,{status:"applied",warning:r})}catch(i){t.patchAgentProposal(l,{status:IA(i)?"stale":"failed",error:il(i)});return}if(s.proposalKind==="shot"){if(t.getState().name!==s.docName&&s.baseRev===null)try{await t.openShot(s.docName)}catch(i){t.patchAgentProposal(l,{status:"applied",warning:`the shot was written, but opening "${s.docName}" failed: ${il(i)}`})}t.refreshShots()}}}const KA={"claude-sonnet-5":"Sonnet 5","claude-opus-4-8":"Opus 4.8"};function qA(t){return KA[t]??t}function nv(t){const l=ye(),{item:s}=t;return s.status==="pending"?f.jsx("button",{type:"button",className:"btn agent-apply",onClick:()=>void XA(l,s.id),children:"Apply"}):f.jsx("span",{className:`agent-card-status is-${s.status}`,children:s.status==="applying"?"Applying…":s.status})}function ZA(t){return t.lines.length===0?f.jsx("div",{className:"agent-card-note",children:"No shots reported."}):f.jsx("pre",{className:"agent-tree",children:t.lines.map((l,s)=>f.jsx("div",{className:"agent-tree-line",children:l},s))})}function QA(t){const{item:l}=t,s=Z(c=>c.name),{summary:i}=l,r=s!==null&&s!==l.docName&&l.baseRev!==null;return f.jsxs("div",{className:`agent-card agent-card-shot agent-card-${l.status}`,children:[f.jsxs("div",{className:"agent-card-head",children:[f.jsx("span",{className:"agent-card-path",title:l.intent,children:l.intent}),f.jsx(nv,{item:l})]}),f.jsxs("div",{className:"agent-card-meta",children:[f.jsx("span",{className:"agent-card-doc",title:`scene "${i.shotName}"`,children:i.shotName}),f.jsxs("span",{className:"agent-card-count",children:[i.durationFrames,"f"]}),f.jsxs("span",{className:"agent-card-count",children:[i.sceneCount," ",i.sceneCount===1?"shot":"shots"]}),f.jsxs("span",{className:"agent-card-count",children:[i.layerCount," ",i.layerCount===1?"layer":"layers"]}),i.blockCount>0&&f.jsxs("span",{className:"agent-card-count",children:[i.blockCount," ",i.blockCount===1?"block":"blocks"]}),i.shotCount>0&&f.jsxs("span",{className:"agent-card-count",children:[i.shotCount," ",i.shotCount===1?"camera move":"camera moves"]})]}),f.jsx(ZA,{lines:i.outline}),l.error!==null&&f.jsx("div",{className:"error-strip agent-card-error",children:l.error}),l.status==="applied"&&l.warning!==null&&f.jsxs("div",{className:"agent-card-note agent-card-warning",children:["Applied with warnings — the scene document was saved, but: ",l.warning]}),l.status==="applied"&&l.error===null&&l.warning===null&&f.jsx("div",{className:"agent-card-note",children:"Applied — the change is live in the editor. Ctrl+Z takes it back."}),l.status==="stale"&&f.jsx("div",{className:"agent-card-note",children:"The scene changed after this was proposed — ask the agent again so it can re-read the document and re-propose."}),r&&l.status==="pending"&&f.jsxs("div",{className:"agent-card-note",children:["Edits scene “",l.docName,"”, not the open one — applying writes it, but this editor stays on “",s,"”."]})]})}function JA(t){return t.startsWith("+++")||t.startsWith("---")||t.startsWith("@@")?"agent-diff-hunk":t.startsWith("+")?"agent-diff-add":t.startsWith("-")?"agent-diff-del":"agent-diff-ctx"}function WA(t){const{item:l}=t,s=l.diff.replace(/\n$/,"").split(`
52
- `);return f.jsxs("div",{className:`agent-card agent-card-${l.status}`,children:[f.jsxs("div",{className:"agent-card-head",children:[f.jsx("span",{className:"agent-card-path",title:l.path,children:l.proposalKind==="create"?`new file ${l.path}`:l.path}),f.jsx(nv,{item:l})]}),f.jsx("pre",{className:"agent-diff",children:s.map((i,r)=>f.jsx("div",{className:JA(i),children:i},r))}),l.error!==null&&f.jsx("div",{className:"error-strip agent-card-error",children:l.error}),l.status==="stale"&&f.jsx("div",{className:"agent-card-note",children:"The file changed on disk after this was proposed — ask the agent again to re-read and re-propose."})]})}function PA(t){const{item:l}=t;return l.kind==="proposal"?l.proposalKind==="shot"?f.jsx(QA,{item:l}):cj(l)?f.jsxs("div",{className:`agent-card agent-card-${l.status}`,children:[f.jsxs("div",{className:"agent-card-head",children:[f.jsx("span",{className:"agent-card-path",title:l.intent,children:l.intent}),f.jsx("span",{className:`agent-card-status is-${l.status}`,children:l.status})]}),f.jsxs("div",{className:"agent-card-note",children:["A ",l.proposalKind," document — “",l.docName,"”. Open that editor to review and apply it."]})]}):f.jsx(WA,{item:l}):l.kind==="tool"?f.jsx("div",{className:"agent-tool",children:l.text}):f.jsx("div",{className:`agent-msg agent-msg-${l.kind}`,children:l.text})}function N0(t){const l=ye(),s=Z(g=>g.agentCredentials),i=Z(g=>g.agentCredentialsError),[r,c]=H.useState(""),[d,m]=H.useState(!1),h=async()=>{r.trim()===""||d||(m(!0),await UA(l,r.trim()),m(!1),l.getState().agentCredentials?.source==="stored"&&(c(""),t.onDone?.()))};return f.jsxs("div",{className:"agent-setup",children:[!t.compact&&f.jsxs("p",{className:"agent-setup-blurb",children:["The agent builds scenes through the studio's validated document API and needs an Anthropic API key. Bring your own: it is stored in ",f.jsx("code",{children:".studio/agent/"})," (kept out of git) on this machine, sent only to Anthropic, and never shown again."]}),s?.source==="env"&&f.jsxs("p",{className:"agent-setup-blurb",children:["Using ",f.jsx("code",{children:"ANTHROPIC_API_KEY"})," from the environment. Paste a key to override it."]}),s?.source==="stored"&&f.jsxs("p",{className:"agent-setup-blurb",children:["Using your stored key (…",s.last4,")."," ",f.jsx("button",{type:"button",className:"btn is-danger",onClick:()=>void HA(l),children:"Remove key"})]}),f.jsxs("div",{className:"agent-setup-row",children:[f.jsx("input",{type:"password",className:"agent-key-input",placeholder:"sk-ant-…",value:r,autoComplete:"off",onChange:g=>c(g.target.value),onKeyDown:g=>{g.key==="Enter"&&!g.nativeEvent.isComposing&&h()}}),f.jsx("button",{type:"button",className:"btn",disabled:r.trim()===""||d,onClick:()=>void h(),children:d?"Saving…":"Save key"})]}),i!==null&&f.jsx("div",{className:"error-strip",children:i})]})}function eC(){const t=ye(),l=Z(z=>z.agentCredentials),s=Z(z=>z.agentCredentialsError),i=Z(z=>z.agentItems),r=Z(z=>z.agentRunning),c=Z(z=>z.agentError),d=Z(z=>z.agentModel),m=Z(z=>z.agentCostUsd),h=Z(z=>z.name),[g,v]=H.useState(""),[x,E]=H.useState(!1),M=H.useRef(null);H.useEffect(()=>{t.getState().agentCredentials===null&&E0(t)},[t]),H.useEffect(()=>{const z=M.current;z&&(z.scrollTop=z.scrollHeight)},[i]);const k=()=>{const z=g.trim();z===""||r||l?.configured!==!0||(v(""),GA(t,z))},D=z=>{z.stopPropagation()},_=d??l?.model??"";return f.jsxs("div",{className:"agent-panel","data-testid":"agent-panel",onKeyDown:D,children:[f.jsxs("div",{className:"panel-title agent-title",children:[f.jsx("span",{className:"agent-title-label",children:"Agent"}),l!==null&&l.configured&&f.jsx("div",{className:"agent-models",role:"tablist",children:l.models.map(z=>f.jsx("button",{type:"button",role:"tab","aria-selected":z===_,className:`btn${z===_?" is-active":""}`,title:z,onClick:()=>t.setAgentModel(z===l.model?null:z),children:qA(z)},z))}),f.jsx("button",{type:"button",className:`btn${x?" is-active":""}`,title:"API key (bring your own)",onClick:()=>E(z=>!z),children:"Key"}),f.jsx("button",{type:"button",className:"btn",disabled:i.length===0||r,title:"Start a new chat",onClick:()=>t.clearAgentTranscript(),children:"New"}),f.jsx("button",{type:"button",className:"btn is-icon","aria-label":"Close agent panel",onClick:()=>t.setAgentOpen(!1),children:"×"})]}),l!==null&&!l.configured?f.jsx(N0,{compact:!1}):x?f.jsx(N0,{compact:!0,onDone:()=>E(!1)}):null,l===null&&s!==null&&f.jsxs("div",{className:"error-strip agent-strip",children:[f.jsx("span",{className:"agent-strip-msg",children:s}),f.jsx("button",{type:"button",className:"btn",onClick:()=>void E0(t),children:"Retry"})]}),f.jsxs("div",{className:"agent-transcript",ref:M,children:[i.length===0?f.jsx("div",{className:"panel-empty",children:"Ask for a scene — “a product video: the screenshot pushes in while the headline fades up”. You get real layers at real depths; nothing lands until you apply it."}):i.map(z=>f.jsx(PA,{item:z},z.id)),r&&f.jsx("div",{className:"agent-msg agent-msg-info agent-thinking",children:"Working…"})]}),c!==null&&f.jsx("div",{className:"error-strip agent-strip",children:c}),m!==null&&!r&&f.jsxs("div",{className:"agent-cost",children:["last turn ≈ $",m.toFixed(m<.1?3:2)]}),f.jsxs("div",{className:"agent-composer",children:[h!==null&&f.jsxs("span",{className:"agent-pin",title:"Sent as context with your next ask",children:["◎ ",h]}),f.jsx("textarea",{className:"agent-input",rows:2,placeholder:l===null?"Waiting for the agent backend…":l.configured?"Ask the agent… (Enter to send, Shift+Enter for a new line)":"Add an API key above to start",value:g,disabled:l===null||!l.configured,onChange:z=>v(z.target.value),onKeyDown:z=>{z.key==="Enter"&&!z.shiftKey&&!z.nativeEvent.isComposing&&(z.preventDefault(),k())}}),r?f.jsx("button",{type:"button",className:"btn is-danger",onClick:()=>void YA(t),children:"Stop"}):f.jsx("button",{type:"button",className:"btn agent-send",disabled:g.trim()===""||l?.configured!==!0,onClick:k,children:"Ask"})]})]})}const tC=10;function A0(t){return{id:t.id,name:t.id,asset:t.asset,at:t.frame,offsetFrames:t.offsetFrames??0,durationFrames:t.durationFrames,gain:t.gain??1,fadeInFrames:t.fadeInFrames??0,fadeOutFrames:t.fadeOutFrames??0,...t.muted===void 0?{}:{muted:t.muted}}}function nC(t){let l=null,s=!1,i=null,r=!1,c=1,d=!1,m={playing:!1,frame:0,doc:null};const h=new Map;let g=null;function v(){return t.now?t.now():l.currentTime}function x(){if(s)return!1;if(!l){try{l=t.createContext()}catch(z){return s=!0,console.error("[audio] preview disabled: AudioContext unavailable",z),!1}i=l.createGain(),i.gain.value=c,i.connect(l.destination)}try{l.resume?.()}catch{}return!0}function E(z,G,C,L,U,T){const q=A0(z),{start:ae,end:me}=Xo(q),se=Math.min(me,C),Re=Math.max(ae,U);if(Re>=se)return;const Fe=qx(q,Re,L);if(Fe>=G.duration)return;const vt=ue=>T+Ja(ue-U,L),he=l,ke=he.createBufferSource();ke.buffer=G;const V=he.createGain();ke.connect(V),V.connect(i);const ne=Qx(q,Re,C);if(ne.length!==0){V.gain.setValueAtTime(ne[0].gain,vt(ne[0].frame));for(const ue of ne.slice(1))V.gain.linearRampToValueAtTime(ue.gain,vt(ue.frame));ke.start(vt(Re),Fe,Ja(ne.at(-1).frame-Re,L)),g.set(q.id,{source:ke,gain:V})}}function M(z){const G=m.doc;if(G===null||r||!x())return;g=new Map;const C=v(),L=Wa(G);for(const U of Object.values(G.audio)){if(U.muted===!0)continue;const T=Xo(A0(U));if(Math.min(T.end,L)<=Math.max(T.start,z))continue;const q=G.assets[U.asset];if(q===void 0)continue;const ae=h.get(q.path);ae?.status==="ready"?E(U,ae.buffer,L,G.fps,z,C):ae===void 0&&k(q.path)}}function k(z){const G=l;h.set(z,{status:"pending"}),t.fetchBytes(`/studio/assets/${encodeURIComponent(z)}`).then(C=>t.decode(G,C)).then(C=>{h.set(z,{status:"ready",buffer:C}),D(z,C)},C=>{h.set(z,{status:"failed"}),console.error(`[audio] asset ${z} failed to load; its clips stay silent`,C)})}function D(z,G){if(d||g===null||!m.playing)return;const C=m.doc;if(C===null)return;const L=v(),U=Wa(C);for(const T of Object.values(C.audio))C.assets[T.asset]?.path===z&&(T.muted===!0||g.has(T.id)||E(T,G,U,C.fps,m.frame,L))}function _(){if(g!==null){for(const{source:z,gain:G}of g.values()){try{z.stop()}catch{}z.disconnect(),G.disconnect()}g=null}}return{update(z){if(d)return;const G=m;if(m=z,!z.playing){G.playing&&_();return}if(!G.playing){M(z.frame);return}const C=z.frame<G.frame||z.frame-G.frame>tC;(z.doc!==G.doc||C)&&(_(),M(z.frame))},setMasterMute(z){d||z===r||(r=z,z?_():m.playing&&M(m.frame))},setMasterVolume(z){const G=Math.max(0,Math.min(1,z));d||G===c||(c=G,i!==null&&(i.gain.value=G))},dispose(){if(!d){d=!0,_(),i?.disconnect(),i=null;try{l?.close?.()}catch{}l=null}}}}async function aC(t){const l=await fetch(t);if(!l.ok)throw new Error(`GET ${t} -> ${l.status}`);return l.arrayBuffer()}const lC={createContext:()=>new AudioContext,fetchBytes:aC,decode:(t,l)=>t.decodeAudioData(l)};function iC(t={}){const l=ye(),s=t.create;return H.useEffect(()=>{const i=s?s():nC(lC);let r=null,c=null;const d=()=>{const h=l.getState();h.previewMuted!==r&&(r=h.previewMuted,i.setMasterMute(r)),h.previewVolume!==c&&(c=h.previewVolume,i.setMasterVolume(c)),i.update({playing:h.playing,frame:h.frame,doc:h.doc})};d();const m=l.subscribe(d);return()=>{m(),i.dispose()}},[l,s]),null}const C0="shot-render",w0="doc-changed";function sC(t){const l=globalThis.EventSource;if(l===void 0)return()=>{};const s=new l("/api/events"),i=c=>{const d=rC(c.data);d!==null&&d.name===t.getState().name&&t.setRenderJob(d)},r=c=>{const d=oC(c.data);d!==null&&d.lane==="shot"&&t.adoptExternalChange(d)};return s.addEventListener(C0,i),s.addEventListener(w0,r),()=>{s.removeEventListener(C0,i),s.removeEventListener(w0,r),s.close()}}function oC(t){try{const l=JSON.parse(t);if(l===null||typeof l!="object")return null;const s=l;return typeof s.lane!="string"?null:{lane:s.lane,...typeof s.name=="string"?{name:s.name}:{},...typeof s.origin=="string"?{origin:s.origin}:{},...typeof s.clientId=="string"?{clientId:s.clientId}:{}}}catch{return null}}function rC(t){try{const l=JSON.parse(t);if(l===null||typeof l!="object")return null;const s=l;return typeof s.id!="string"||typeof s.name!="string"||s.phase!=="running"&&s.phase!=="done"&&s.phase!=="failed"&&s.phase!=="cancelled"?null:s}catch{return null}}function cC(){const t=ye(),[l,s]=H.useState(null),i=H.useCallback(M=>s(M),[]),r=Z(M=>M.name),c=Z(M=>M.error),d=Z(M=>M.stageError),m=Z(M=>M.exportOpen),h=Z(M=>M.agentOpen);uC(),fC(),hC(),H.useEffect(()=>sC(t),[t]);const g=Z(M=>M.railCollapsed),v=Z(M=>M.inspectorCollapsed),x={mode:Z(M=>M.stageLayout.mode)},E=H.useRef(null);return H.useEffect(()=>{const M=E.current;if(M===null)return;let k=0,D="";const _=T=>[T.railCollapsed,T.inspectorCollapsed,T.dockCollapsed,T.railWidth,T.dockHeight,T.agentOpen,T.name].join("|"),z=T=>{k=0;const q=t.getState();q.railCollapsed?M.style.removeProperty("--rail-w"):M.style.setProperty("--rail-w",`${q.railWidth}px`),M.style.setProperty("--dock-h",`${q.dockHeight}px`),M.style.setProperty("--split-x",`${Math.round(q.stageLayout.splitRatio*window.innerWidth)}px`);const ae=_(q);!T&&ae===D||(D=ae,t.stage()?.setStageInset(dC(M)))};let G=!1;const C=T=>{G=G||T,k===0&&(k=requestAnimationFrame(()=>{const q=G;G=!1,z(q)}))};z(!0);const L=t.subscribe(()=>C(!1)),U=new ResizeObserver(()=>C(!0));return U.observe(M),()=>{k!==0&&cancelAnimationFrame(k),L(),U.disconnect()}},[t]),f.jsxs("div",{ref:E,className:`shell${g?" is-rail-collapsed":""}${v?" is-inspector-collapsed":""}`,children:[f.jsx(QN,{onConnectError:i}),f.jsx(UE,{}),f.jsxs("aside",{className:"left-rail",children:[f.jsx(NE,{}),f.jsx(DE,{})]}),g?null:f.jsx(Sd,{axis:"x",getValue:()=>t.getState().railWidth,sign:1,onChange:M=>t.setRailWidth(M),onReset:()=>t.setRailWidth(Qo.default),className:"rail-resize",label:"Resize the left panel"}),x.mode!=="split"?null:f.jsx(Sd,{axis:"x",getValue:()=>t.getState().stageLayout.splitRatio*window.innerWidth,sign:1,onChange:M=>t.setStageLayout({...t.getState().stageLayout,splitRatio:M/Math.max(1,window.innerWidth)}),onReset:()=>t.setStageLayout({...t.getState().stageLayout,splitRatio:.5}),className:"split-resize",label:"Resize the split"}),f.jsxs("div",{className:"control-strip",children:[f.jsx(AA,{}),f.jsx(CA,{}),f.jsx(wA,{}),f.jsx(EA,{})]}),h?f.jsx(eC,{}):f.jsx(VN,{}),f.jsx(SA,{}),f.jsx(iC,{}),m&&r!==null&&f.jsx(TA,{onClose:()=>t.setExportOpen(!1)}),f.jsx(DA,{}),f.jsx(LA,{}),r===null?f.jsxs("div",{className:"empty-state",children:[f.jsx("h1",{children:"Dailies shot"}),f.jsx("p",{children:"Open a scene, or create one, to start."})]}):null,f.jsx("div",{className:"overlay-strip",role:"status","aria-live":"polite",children:[l,d,c].filter(M=>M!==null).map(M=>f.jsxs("div",{className:"overlay-message",children:[f.jsx("span",{children:M}),f.jsx("button",{type:"button",onClick:()=>t.dismissError(),title:"Dismiss",children:"×"})]},M))})]})}function uC(){const t=ye();H.useEffect(()=>{const l=new URLSearchParams(window.location.search).get("shot");if(l!==null&&l.length>0){t.openShot(l);return}(async()=>{await t.refreshShots();const s=t.getState().shots[0];s!==void 0&&t.getState().name===null&&await t.openShot(s.name)})()},[t])}const Ho={top:[".shell-header",".control-strip"],left:[".left-rail"],right:[".inspector",".agent-panel"],bottom:[".timeline-dock"]};function dC(t){const l=t.getBoundingClientRect(),s=(i,r)=>{let c=0;for(const d of i){const m=t.querySelector(d);if(m===null)continue;const h=m.getBoundingClientRect();h.width===0||h.height===0||(c=Math.max(c,r(h)))}return c};return{top:s(Ho.top,i=>i.bottom-l.top),left:s(Ho.left,i=>i.right-l.left),right:s(Ho.right,i=>l.right-i.left),bottom:s(Ho.bottom,i=>l.bottom-i.top)}}function fC(){const t=ye();H.useEffect(()=>{const l=s=>{t.handleKey({...mC(s),target:s.target})&&s.preventDefault()};return window.addEventListener("keydown",l),()=>window.removeEventListener("keydown",l)},[t])}function mC(t){return{key:t.key,shiftKey:t.shiftKey,altKey:t.altKey,ctrlKey:t.ctrlKey,metaKey:t.metaKey,code:t.code}}function hC(){const t=ye();H.useEffect(()=>{const l=s=>{if(s.origin!==window.location.origin)return;const i=s.data;i?.type==="studio:shot-doc-changed"&&t.adoptExternalChange(i.data??{})};return window.addEventListener("message",l),()=>window.removeEventListener("message",l)},[t])}const pC=sE();Tx.createRoot(document.getElementById("root")).render(f.jsx(H.StrictMode,{children:f.jsx(pE,{store:pC,children:f.jsx(cC,{})})}));