keating 4.0.2 → 4.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/bin/keating.js +1 -1
  2. package/dist/src/core/version.js +1 -1
  3. package/package.json +1 -1
  4. package/web/.output/nitro.json +1 -1
  5. package/web/.output/public/assets/{AnimationPlayer-Bj9E6XAF.js → AnimationPlayer-CYbhLL_R.js} +1 -1
  6. package/web/.output/public/assets/{AssistantChatPanel-CPiSdBQo.js → AssistantChatPanel-DQSKpGWP.js} +122 -122
  7. package/web/.output/public/assets/{CategoricalChart-ZCOId7ho.js → CategoricalChart-BVb9-7_N.js} +1 -1
  8. package/web/.output/public/assets/{Chat-BPuDBuv7.js → Chat-C6p8yxAr.js} +2 -2
  9. package/web/.output/public/assets/{CodeHighlighter-CUd-nVJG.js → CodeHighlighter-DhI0IV5H.js} +1 -1
  10. package/web/.output/public/assets/{ComingUp-BM3f_QSf.js → ComingUp-DFaRgEbt.js} +1 -1
  11. package/web/.output/public/assets/{CourseJoin--37EPPeg.js → CourseJoin-DMZ6foZO.js} +1 -1
  12. package/web/.output/public/assets/CourseWorkspace-l_bPGNhE.js +25 -0
  13. package/web/.output/public/assets/{Courses-DgryGTWV.js → Courses-DIqulPB-.js} +1 -1
  14. package/web/.output/public/assets/{EvolutionDetail-BHwyObAD.js → EvolutionDetail-C-NYL1qL.js} +1 -1
  15. package/web/.output/public/assets/{FlashcardRenderer-hzqoLbnQ.js → FlashcardRenderer-iDgfcwk4.js} +1 -1
  16. package/web/.output/public/assets/{FlashcardShaderField-pDI9y_r4.js → FlashcardShaderField-JGgL2kgp.js} +1 -1
  17. package/web/.output/public/assets/{FlashcardTimer-BANuXJze.js → FlashcardTimer-vPNL9_0N.js} +1 -1
  18. package/web/.output/public/assets/{HyperframesPlayer-BQFYx43N.js → HyperframesPlayer-DEtdwGBR.js} +1 -1
  19. package/web/.output/public/assets/KeatingBench-XnWxgfUC.js +2 -0
  20. package/web/.output/public/assets/{LearningInsightsHeader-Do3bROTu.js → LearningInsightsHeader-DWj2-1xb.js} +1 -1
  21. package/web/.output/public/assets/{Live-HZjRDq-V.js → Live-BasKZMuE.js} +1 -1
  22. package/web/.output/public/assets/{MarkdownBlock-KUcDESQo.js → MarkdownBlock-C89ecD-M.js} +3 -3
  23. package/web/.output/public/assets/ModelSelector-B_EaHvVz.js +1 -0
  24. package/web/.output/public/assets/{Nav-GcfPhZc3.js → Nav-DQ-5KEsA.js} +1 -1
  25. package/web/.output/public/assets/{NotOrganicAccessPromptDialog-CKb6iTFn.js → NotOrganicAccessPromptDialog-DS7PLMx4.js} +1 -1
  26. package/web/.output/public/assets/{NotOrganicCallback-DWbhlP2j.js → NotOrganicCallback-BxKOsisT.js} +1 -1
  27. package/web/.output/public/assets/{OAuthCallback-D15ohKxE.js → OAuthCallback-dk2EQnAU.js} +1 -1
  28. package/web/.output/public/assets/OpenUIPreview-BrBXAEt4.js +1 -0
  29. package/web/.output/public/assets/PatternDigestPanel-jmxcLCUX.js +1 -0
  30. package/web/.output/public/assets/Plus-RIb_ldNd.js +1 -0
  31. package/web/.output/public/assets/{QuizRenderer-CLQqGwub.js → QuizRenderer-DaPQ7ySS.js} +1 -1
  32. package/web/.output/public/assets/{RenderingSmoke-DRHji-yz.js → RenderingSmoke-D3aD8prv.js} +1 -1
  33. package/web/.output/public/assets/{Select-BE2GfDud.js → Select-BYfJxqbI.js} +1 -1
  34. package/web/.output/public/assets/{SharedSession-DAM8ydVu.js → SharedSession-CEsTcr4j.js} +3 -3
  35. package/web/.output/public/assets/{ThemeToggle-BdGijxoN.js → ThemeToggle-BZH64Rpu.js} +1 -1
  36. package/web/.output/public/assets/{TrainingData-7EbVIzmQ.js → TrainingData-DujNU5sy.js} +3 -3
  37. package/web/.output/public/assets/TrajectoryReview-OjkaW6a6.js +35 -0
  38. package/web/.output/public/assets/TrajectoryReviewIndex-C5QAijKT.js +1 -0
  39. package/web/.output/public/assets/TrajectoryReviewWorkspace-DSn96Dxb.js +1 -0
  40. package/web/.output/public/assets/{Usage-BU1OfvzO.js → Usage-C5HU0Yc5.js} +1 -1
  41. package/web/.output/public/assets/activity-DdJDHeam.js +1 -0
  42. package/web/.output/public/assets/{anthropic-messages-rElikI6M.js → anthropic-messages-ZiHu59Q7.js} +1 -1
  43. package/web/.output/public/assets/{azure-openai-responses-yppPdVFy.js → azure-openai-responses-BHgsWKby.js} +1 -1
  44. package/web/.output/public/assets/calibration-7gf-WNR5.js +1 -0
  45. package/web/.output/public/assets/circle-question-mark-CK-DUGIA.js +1 -0
  46. package/web/.output/public/assets/clipboard-list-CRJvmiKL.js +1 -0
  47. package/web/.output/public/assets/{course-assembly-BIf5lrcx.js → course-assembly-CQE_9Vh4.js} +3 -3
  48. package/web/.output/public/assets/{course-submission-judgement-m2Gj1AKW.js → course-submission-judgement-Dmmw__tF.js} +1 -1
  49. package/web/.output/public/assets/{custom-tts-DapOpVQe.js → custom-tts-DqDZf3aF.js} +1 -1
  50. package/web/.output/public/assets/desktop-offline-IzFtwAhh.js +3 -0
  51. package/web/.output/public/assets/{dist-BudWH94z.js → dist-Dq5mGdi-.js} +1 -1
  52. package/web/.output/public/assets/file-text-CANyHShy.js +1 -0
  53. package/web/.output/public/assets/{from-study-plan-XEoNCZH-.js → from-study-plan-D14XtwuX.js} +2 -2
  54. package/web/.output/public/assets/{gemini-live-C2U-Xfzz.js → gemini-live-CGEtXm6j.js} +1 -1
  55. package/web/.output/public/assets/{google-generative-ai-8HY6m7rq.js → google-generative-ai-DcqlQJ6d.js} +1 -1
  56. package/web/.output/public/assets/{google-vertex-DnCA4qzU.js → google-vertex-C5RXjS_e.js} +1 -1
  57. package/web/.output/public/assets/{gpt-live-CEMTjMri.js → gpt-live-C4ltEjG_.js} +1 -1
  58. package/web/.output/public/assets/{index-C8C76R86.js → index-DCgpDQKf.js} +30 -30
  59. package/web/.output/public/assets/info-CGMF4Cdc.js +1 -0
  60. package/web/.output/public/assets/keating-stream-g73cFcJe.js +11 -0
  61. package/web/.output/public/assets/{learner-context-D0BfhTjc.js → learner-context-CpkZOwpe.js} +1 -1
  62. package/web/.output/public/assets/{library-pPmUSBEY.js → library-Dt_HrttW.js} +5 -5
  63. package/web/.output/public/assets/{live-context-CYuoXPUI.js → live-context-D5leiub7.js} +1 -1
  64. package/web/.output/public/assets/{mistral-conversations-BehK5A17.js → mistral-conversations-BSUNv6T_.js} +1 -1
  65. package/web/.output/public/assets/{openai-codex-responses-vVGnXFbc.js → openai-codex-responses-BEjWFOsh.js} +1 -1
  66. package/web/.output/public/assets/{openai-completions-SUIeYkEW.js → openai-completions-XWr91hin.js} +1 -1
  67. package/web/.output/public/assets/{openai-realtime-BSeGY5DQ.js → openai-realtime-BERRi9aO.js} +1 -1
  68. package/web/.output/public/assets/{openai-responses-DzgNIiYy.js → openai-responses-DeNWT5uB.js} +1 -1
  69. package/web/.output/public/assets/{openai-responses-shared-CHf6ek3_.js → openai-responses-shared-BdPh5feu.js} +1 -1
  70. package/web/.output/public/assets/{openai-tts-DRXdgxDT.js → openai-tts-ChGSz4r8.js} +1 -1
  71. package/web/.output/public/assets/{operation-BMdkNnIS.js → operation-kDIu8RLw.js} +2 -2
  72. package/web/.output/public/assets/{pi-messages-CpI94BCF.js → pi-messages-pzwJsgas.js} +1 -1
  73. package/web/.output/public/assets/{public-client-KRBnkgBr.js → public-client-CqivHtfG.js} +1 -1
  74. package/web/.output/public/assets/{recipes-BcSW8MlI.js → recipes-lg2hVa6Q.js} +1 -1
  75. package/web/.output/public/assets/{renderer-CKD_Hn-d.js → renderer-Cx1jCM2v.js} +1 -1
  76. package/web/.output/public/assets/{segments-nMdXcVhb.js → segments-BuQ4O8Bd.js} +1 -1
  77. package/web/.output/public/assets/{shared-actions-Bj56xHM3.js → shared-actions-B9eYiZAR.js} +1 -1
  78. package/web/.output/public/assets/{shared-renderer-C-yYfXvq.js → shared-renderer-hMxAoPZb.js} +7 -7
  79. package/web/.output/public/assets/shared-sessions-CwS3OLWR.js +5 -0
  80. package/web/.output/public/assets/{srs-WAeRnL8v.js → srs-BBTX4fCR.js} +1 -1
  81. package/web/.output/public/assets/{tavus-live-CVb9mE_J.js → tavus-live-HpBIH49i.js} +1 -1
  82. package/web/.output/public/assets/{topic-categorization-DHcL_IrS.js → topic-categorization-DfJaArmq.js} +1 -1
  83. package/web/.output/public/assets/trajectory-artifacts-EvNqJEHH.js +3 -0
  84. package/web/.output/public/assets/trajectory-store-C3qzwrr6.js +2 -0
  85. package/web/.output/public/assets/{transformers.web-CUMRYLoV.js → transformers.web-CrNvRfsr.js} +1 -1
  86. package/web/.output/public/assets/use-review-passes-DmWsvYdF.js +8 -0
  87. package/web/.output/public/assets/{use-sessions-C33USzrV.js → use-sessions-3UElISPk.js} +1 -1
  88. package/web/.output/public/assets/{useCoursesAccess-Zfb1Jqw-.js → useCoursesAccess-BgOspZex.js} +1 -1
  89. package/web/.output/public/assets/user-DEmM1U0O.js +1 -0
  90. package/web/.output/public/index.html +7 -7
  91. package/web/.output/public/sw.js +1 -1
  92. package/web/.output/server/_chunks/renderer-template.mjs +1 -1
  93. package/web/.output/server/_libs/h3+rou3+srvx.mjs +1 -1
  94. package/web/.output/server/index.mjs +1191 -1112
  95. package/web/.output/public/assets/CourseWorkspace-McgEEARK.js +0 -25
  96. package/web/.output/public/assets/ModelSelector-CiiiT7sM.js +0 -1
  97. package/web/.output/public/assets/OpenUIPreview-C8sgkYAj.js +0 -1
  98. package/web/.output/public/assets/PatternDigestPanel-Ctm7smvT.js +0 -1
  99. package/web/.output/public/assets/TrajectoryReview-DkC_NtyR.js +0 -35
  100. package/web/.output/public/assets/TrajectoryReviewIndex-C7pg9K9U.js +0 -1
  101. package/web/.output/public/assets/TrajectoryReviewWorkspace-D80QHrDn.js +0 -1
  102. package/web/.output/public/assets/calibration-B8NNSy6-.js +0 -1
  103. package/web/.output/public/assets/desktop-offline-BOKnmvYX.js +0 -2
  104. package/web/.output/public/assets/keating-stream-DeWgIdIv.js +0 -11
  105. package/web/.output/public/assets/shared-sessions-B2FsK7oM.js +0 -5
  106. package/web/.output/public/assets/trajectory-artifacts-B47xntcj.js +0 -3
  107. package/web/.output/public/assets/trajectory-store-CFat_se9.js +0 -2
  108. package/web/.output/public/assets/use-review-passes-BTc5nGD9.js +0 -8
package/bin/keating.js CHANGED
@@ -11,7 +11,7 @@ try {
11
11
  const pkg = JSON.parse(readFileSync(join(__dirname, "..", "package.json"), "utf8"));
12
12
  KEATING_VERSION = pkg.version;
13
13
  } catch {
14
- KEATING_VERSION = "4.0.2";
14
+ KEATING_VERSION = "4.0.3";
15
15
  }
16
16
 
17
17
  function parseNodeVersion(version) {
@@ -12,7 +12,7 @@ function loadVersion() {
12
12
  catch {
13
13
  // fall through to fallback
14
14
  }
15
- return "4.0.2";
15
+ return "4.0.3";
16
16
  }
17
17
  /**
18
18
  * Keating version string, read from package.json at runtime so it stays
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "keating",
3
- "version": "4.0.2",
3
+ "version": "4.0.3",
4
4
  "packageManager": "bun@1.3.13",
5
5
  "type": "module",
6
6
  "description": "A Pi-powered hyperteacher package with self-improving teaching policies, lesson maps, and animated visual teaching artifacts.",
@@ -1,5 +1,5 @@
1
1
  {
2
- "date": "2026-09-28T07:52:39.475Z",
2
+ "date": "2026-09-28T08:32:41.209Z",
3
3
  "preset": "node-server",
4
4
  "framework": {
5
5
  "name": "nitro",
@@ -1 +1 @@
1
- import{s as e}from"./rolldown-runtime-BG2f4sTM.js";import{T as t}from"./syntax-highlighter-Buac5fmw.js";import{M as n,N as r,wt as i}from"./index-C8C76R86.js";import{r as a}from"./FlashcardShaderField-pDI9y_r4.js";import{d as o}from"./MarkdownBlock-KUcDESQo.js";import{t as s}from"./chevron-right-CtU0hmKY.js";import{n as c,r as l,t as u}from"./HyperframesPlayer-BQFYx43N.js";import{c as d}from"./FlashcardTimer-BANuXJze.js";import{c as f}from"./Select-BE2GfDud.js";var p=e(t(),1),m=i();function h(e){let t=e.trim().replace(/s$/i,``),n=t.match(/^(\d+(?:\.\d+)?)\s*-\s*(\d+(?:\.\d+)?)$/);if(n)return Math.max(.5,Number(n[2])-Number(n[1]));let r=Number(t);return Number.isFinite(r)?Math.max(.5,r):4}function g(e){return h(e.duration)}function _(e){return`${e.title} ${e.visual} ${e.highlight??``}`.split(/[^a-z0-9]+/i).map(e=>e.trim()).filter(e=>e.length>=4).slice(0,6)}function v({title:e,scenes:t,totalDuration:i}){let[c,l]=(0,p.useState)(0),[u,h]=(0,p.useState)(!0),[v,y]=(0,p.useState)(0),b=t[c],x=b?g(b):1,S=Math.min(1,v/x),C=(0,p.useMemo)(()=>b?_(b):[],[b]);if((0,p.useEffect)(()=>{y(0)},[c]),(0,p.useEffect)(()=>{if(!u||!b)return;let e=0,n=performance.now(),r=i=>{let a=(i-n)/1e3;n=i,y(e=>{let n=e+a;return n>=x?(l(e=>(e+1)%t.length),0):n}),e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[b,x,u,t.length]),!b)return null;let w=e=>{l((e+t.length)%t.length),y(0)};return(0,m.jsxs)(`div`,{className:r({display:`grid`,gap:`0.75rem`}),children:[(0,m.jsxs)(`div`,{className:r({position:`relative`,aspectRatio:`16 / 9`,overflow:`hidden`,borderRadius:`0.5rem`,border:`1px solid var(--border)`,background:`#0a0a0a`,color:`white`}),children:[(0,m.jsx)(`div`,{className:r({position:`absolute`,inset:0,background:`radial-gradient(circle at 20% 20%, rgba(34,197,94,0.24), transparent 32%), radial-gradient(circle at 80% 30%, rgba(245,158,11,0.28), transparent 30%), linear-gradient(135deg, #050505, #111827 52%, #1f1305)`})}),(0,m.jsxs)(`div`,{className:r({position:`absolute`,inset:0,display:`grid`,gridTemplateColumns:`1fr 1.1fr`,gap:`1.5rem`,padding:`1.5rem`,"@media (min-width: 640px)":{padding:`2rem`}}),children:[(0,m.jsxs)(`div`,{className:r({position:`relative`,display:`flex`,minWidth:0,flexDirection:`column`,justifyContent:`space-between`}),children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`div`,{className:n(`font-terminal`,r({marginBottom:`0.75rem`,display:`inline-flex`,borderRadius:`0.25rem`,border:`1px solid rgb(251 191 36 / 0.5)`,background:`rgb(0 0 0 / 0.3)`,padding:`0.25rem 0.5rem`,fontSize:`10px`,textTransform:`uppercase`,letterSpacing:`0.025em`,color:`#fde68a`})),children:[`Scene `,b.number,` / `,t.length]}),(0,m.jsx)(`h3`,{className:r({maxWidth:`18rem`,fontSize:`1.25rem`,fontWeight:600,lineHeight:1.25,color:`white`,"@media (min-width: 640px)":{fontSize:`1.875rem`}}),children:b.title})]}),(0,m.jsx)(`p`,{className:r({maxWidth:`28rem`,fontSize:`0.75rem`,lineHeight:`1.25rem`,color:`#e5e5e5`,"@media (min-width: 640px)":{fontSize:`0.875rem`}}),children:b.visual})]}),(0,m.jsxs)(`div`,{className:r({position:`relative`,minHeight:0}),children:[(0,m.jsx)(`div`,{className:r({position:`absolute`,left:`50%`,top:`50%`,height:`10rem`,width:`10rem`,transform:`translate(-50%, -50%)`,borderRadius:`9999px`,border:`1px solid rgb(110 231 183 / 0.5)`,background:`rgb(110 231 183 / 0.1)`,"@media (min-width: 640px)":{height:`14rem`,width:`14rem`},"@media (prefers-reduced-motion: no-preference)":{animation:`pulse 2s cubic-bezier(0.4,0,0.6,1) infinite`}})}),(0,m.jsxs)(`div`,{className:r({position:`absolute`,left:`50%`,top:`50%`,height:`6rem`,width:`6rem`,borderRadius:`9999px`,border:`2px solid rgb(252 211 77 / 0.8)`,background:`rgb(0 0 0 / 0.35)`,boxShadow:`0 0 36px rgba(245,158,11,0.35)`,transitionProperty:`transform`,transitionDuration:`300ms`}),style:{transform:`translate(-50%, -50%) rotate(${S*180}deg) scale(${1+S*.08})`},children:[(0,m.jsx)(`div`,{className:r({position:`absolute`,left:`50%`,top:0,height:`50%`,width:`0.125rem`,transform:`translateX(-50%)`,background:`#fcd34d`})}),(0,m.jsx)(`div`,{className:r({position:`absolute`,bottom:0,left:`50%`,height:`50%`,width:`0.125rem`,transform:`translateX(-50%)`,background:`#6ee7b7`})}),(0,m.jsx)(`div`,{className:r({position:`absolute`,left:0,top:`50%`,height:`0.125rem`,width:`50%`,transform:`translateY(-50%)`,background:`#7dd3fc`})}),(0,m.jsx)(`div`,{className:r({position:`absolute`,right:0,top:`50%`,height:`0.125rem`,width:`50%`,transform:`translateY(-50%)`,background:`#fda4af`})})]}),C.map((e,t)=>{let n=t/Math.max(1,C.length)*Math.PI*2+S*Math.PI*.65,i=36+t%3*14,a=50+Math.cos(n)*i,o=50+Math.sin(n)*i;return(0,m.jsx)(`div`,{className:r({position:`absolute`,maxWidth:`7rem`,borderRadius:`0.25rem`,border:`1px solid rgb(255 255 255 / 0.15)`,background:`rgb(0 0 0 / 0.45)`,padding:`0.25rem 0.5rem`,textAlign:`center`,fontSize:`10px`,fontWeight:500,color:`white`,boxShadow:`var(--shadow-sm, 0 1px 2px rgb(0 0 0 / 0.05))`,backdropFilter:`blur(8px)`}),style:{left:`${a}%`,top:`${o}%`,transform:`translate(-50%, -50%)`},children:e},`${b.number}-${e}-${t}`)})]})]},b.number),(0,m.jsx)(`div`,{className:r({position:`absolute`,bottom:0,left:0,right:0,height:`0.25rem`,background:`rgb(255 255 255 / 0.15)`}),children:(0,m.jsx)(`div`,{className:r({height:`100%`,background:`#fcd34d`,transitionProperty:`width`}),style:{width:`${S*100}%`}})})]}),(0,m.jsxs)(`div`,{className:r({display:`flex`,flexWrap:`wrap`,alignItems:`center`,justifyContent:`space-between`,gap:`0.5rem`}),children:[(0,m.jsxs)(`div`,{className:r({minWidth:0}),children:[(0,m.jsx)(`div`,{className:r({overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:`0.875rem`,fontWeight:500}),children:e||`Animation`}),(0,m.jsxs)(`div`,{className:n(`font-terminal`,r({fontSize:`11px`,color:`var(--muted-foreground)`})),children:[t.length,` scenes // `,i,`s`]})]}),(0,m.jsxs)(`div`,{className:r({display:`flex`,alignItems:`center`,gap:`0.25rem`}),children:[(0,m.jsx)(`button`,{type:`button`,onClick:()=>w(c-1),className:r({display:`inline-flex`,height:`2rem`,width:`2rem`,alignItems:`center`,justifyContent:`center`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,_hover:{background:`var(--accent)`}}),"aria-label":`Previous scene`,children:(0,m.jsx)(a,{size:15})}),(0,m.jsxs)(`button`,{type:`button`,onClick:()=>h(e=>!e),className:r({display:`inline-flex`,height:`2rem`,alignItems:`center`,gap:`0.25rem`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,paddingInline:`0.5rem`,fontSize:`0.75rem`,fontWeight:500,_hover:{background:`var(--accent)`}}),children:[u?(0,m.jsx)(d,{size:14}):(0,m.jsx)(f,{size:14}),u?`Pause`:`Play`]}),(0,m.jsx)(`button`,{type:`button`,onClick:()=>{y(0),h(!0)},className:r({display:`inline-flex`,height:`2rem`,width:`2rem`,alignItems:`center`,justifyContent:`center`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,_hover:{background:`var(--accent)`}}),"aria-label":`Restart scene`,children:(0,m.jsx)(o,{size:14})}),(0,m.jsx)(`button`,{type:`button`,onClick:()=>w(c+1),className:r({display:`inline-flex`,height:`2rem`,width:`2rem`,alignItems:`center`,justifyContent:`center`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,_hover:{background:`var(--accent)`}}),"aria-label":`Next scene`,children:(0,m.jsx)(s,{size:15})})]})]}),(0,m.jsx)(`div`,{className:r({display:`grid`,gridTemplateColumns:`repeat(3, minmax(0, 1fr))`,gap:`0.25rem`,"@media (min-width: 640px)":{gridTemplateColumns:`repeat(6, minmax(0, 1fr))`}}),children:t.map((e,t)=>(0,m.jsx)(`button`,{type:`button`,onClick:()=>w(t),className:r({minWidth:0,borderRadius:`0.375rem`,border:`1px solid`,borderColor:t===c?`var(--primary)`:`var(--border)`,background:t===c?`color-mix(in srgb, var(--primary) 10%, transparent)`:`var(--background)`,padding:`0.375rem 0.5rem`,textAlign:`left`,fontSize:`11px`,color:t===c?`var(--primary)`:void 0,transitionProperty:`color, background-color, border-color`,_hover:t===c?void 0:{background:`var(--accent)`}}),children:(0,m.jsx)(`span`,{className:r({display:`block`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`}),children:e.title})},e.number))})]})}function y({scene:e,manifest:t,storyboard:i,renderer:a,className:o}){let[s,d]=(0,p.useState)(!1),f=null;if(t)try{f=JSON.parse(t)}catch{}let h=i?l(i):null,g=f?.renderer===`hyperframes`||f?.kind===`hyperframes`||a===`hyperframes`?`hyperframes`:void 0,_=e?.trim().toLowerCase().startsWith(`<!doctype`)||e?.trim().toLowerCase().startsWith(`<html`),y=!!(e&&(g===`hyperframes`||_));return(0,m.jsxs)(`div`,{className:n(`animation-player`,r({display:`grid`,gap:`1rem`}),o),children:[(0,m.jsxs)(`div`,{className:r({display:`flex`,alignItems:`baseline`,justifyContent:`space-between`,gap:`1rem`}),children:[(0,m.jsxs)(`div`,{className:r({minWidth:0}),children:[(0,m.jsx)(`h3`,{className:r({overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:`0.875rem`,fontWeight:600}),children:f?.topic??`Animation`}),f&&(0,m.jsxs)(`p`,{className:r({fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:[f.duration??0,`s · `,Array.isArray(f.scenes)?f.scenes.length:0,` scenes`]})]}),(0,m.jsxs)(`button`,{onClick:()=>d(!s),className:r({flexShrink:0,borderRadius:`0.25rem`,padding:`0.25rem 0.5rem`,fontSize:`0.75rem`,color:`var(--muted-foreground)`,transitionProperty:`color, background-color`,_hover:{background:`var(--accent)`,color:`var(--accent-foreground)`}}),children:[s?`Hide`:`Show`,` source`]})]}),(0,m.jsxs)(`div`,{children:[y&&e?(0,m.jsx)(u,{title:`${f?.topic??`Keating`} Hyperframes composition`,html:e}):h?.scenes.length?(0,m.jsxs)(`div`,{className:r({display:`grid`,gap:`0.75rem`}),children:[(0,m.jsx)(v,{title:h.title,scenes:h.scenes,totalDuration:h.totalDuration}),(0,m.jsxs)(`details`,{className:r({borderRadius:`0.375rem`,border:`1px solid var(--border)`,background:`color-mix(in srgb, var(--background) 70%, transparent)`,padding:`0.75rem`}),children:[(0,m.jsx)(`summary`,{className:r({cursor:`pointer`,fontSize:`0.75rem`,fontWeight:500,color:`var(--muted-foreground)`}),children:`Storyboard notes`}),(0,m.jsx)(c,{storyboard:i??``})]})]}):e?(0,m.jsxs)(`div`,{className:r({display:`grid`,gap:`0.75rem`}),children:[(0,m.jsx)(`h3`,{className:r({fontWeight:500}),children:`Scene Source`}),(0,m.jsx)(`pre`,{className:r({maxHeight:`16rem`,overflow:`auto`,borderRadius:`0.25rem`,background:`color-mix(in srgb, var(--muted) 30%, transparent)`,padding:`0.75rem`,whiteSpace:`pre-wrap`,fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:e})]}):(0,m.jsx)(`div`,{className:r({paddingBlock:`2rem`,textAlign:`center`,color:`var(--muted-foreground)`}),children:`No animation loaded`}),s&&i&&(0,m.jsxs)(`div`,{className:r({marginTop:`0.75rem`,display:`grid`,gap:`0.5rem`}),children:[(0,m.jsxs)(`div`,{className:r({fontSize:`0.75rem`,fontWeight:500,color:`var(--muted-foreground)`}),children:[`Storyboard Source (`,h?.scenes.length??0,` scenes)`]}),(0,m.jsx)(`pre`,{className:r({maxHeight:`16rem`,overflow:`auto`,borderRadius:`0.25rem`,background:`color-mix(in srgb, var(--muted) 30%, transparent)`,padding:`0.75rem`,whiteSpace:`pre-wrap`,fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:i})]}),s&&e&&(0,m.jsxs)(`div`,{className:r({marginTop:`0.75rem`,display:`grid`,gap:`0.5rem`}),children:[(0,m.jsx)(`div`,{className:r({fontSize:`0.75rem`,fontWeight:500,color:`var(--muted-foreground)`}),children:y?`Hyperframes HTML`:`Scene Source`}),(0,m.jsx)(`pre`,{className:r({maxHeight:`16rem`,overflow:`auto`,borderRadius:`0.25rem`,background:`color-mix(in srgb, var(--muted) 30%, transparent)`,padding:`0.75rem`,whiteSpace:`pre-wrap`,fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:e})]})]})]})}export{y as t};
1
+ import{s as e}from"./rolldown-runtime-BG2f4sTM.js";import{T as t}from"./syntax-highlighter-Buac5fmw.js";import{M as n,N as r,wt as i}from"./index-DCgpDQKf.js";import{r as a}from"./FlashcardShaderField-JGgL2kgp.js";import{d as o}from"./MarkdownBlock-C89ecD-M.js";import{t as s}from"./chevron-right-CtU0hmKY.js";import{n as c,r as l,t as u}from"./HyperframesPlayer-DEtdwGBR.js";import{c as d}from"./FlashcardTimer-vPNL9_0N.js";import{c as f}from"./Select-BYfJxqbI.js";var p=e(t(),1),m=i();function h(e){let t=e.trim().replace(/s$/i,``),n=t.match(/^(\d+(?:\.\d+)?)\s*-\s*(\d+(?:\.\d+)?)$/);if(n)return Math.max(.5,Number(n[2])-Number(n[1]));let r=Number(t);return Number.isFinite(r)?Math.max(.5,r):4}function g(e){return h(e.duration)}function _(e){return`${e.title} ${e.visual} ${e.highlight??``}`.split(/[^a-z0-9]+/i).map(e=>e.trim()).filter(e=>e.length>=4).slice(0,6)}function v({title:e,scenes:t,totalDuration:i}){let[c,l]=(0,p.useState)(0),[u,h]=(0,p.useState)(!0),[v,y]=(0,p.useState)(0),b=t[c],x=b?g(b):1,S=Math.min(1,v/x),C=(0,p.useMemo)(()=>b?_(b):[],[b]);if((0,p.useEffect)(()=>{y(0)},[c]),(0,p.useEffect)(()=>{if(!u||!b)return;let e=0,n=performance.now(),r=i=>{let a=(i-n)/1e3;n=i,y(e=>{let n=e+a;return n>=x?(l(e=>(e+1)%t.length),0):n}),e=requestAnimationFrame(r)};return e=requestAnimationFrame(r),()=>cancelAnimationFrame(e)},[b,x,u,t.length]),!b)return null;let w=e=>{l((e+t.length)%t.length),y(0)};return(0,m.jsxs)(`div`,{className:r({display:`grid`,gap:`0.75rem`}),children:[(0,m.jsxs)(`div`,{className:r({position:`relative`,aspectRatio:`16 / 9`,overflow:`hidden`,borderRadius:`0.5rem`,border:`1px solid var(--border)`,background:`#0a0a0a`,color:`white`}),children:[(0,m.jsx)(`div`,{className:r({position:`absolute`,inset:0,background:`radial-gradient(circle at 20% 20%, rgba(34,197,94,0.24), transparent 32%), radial-gradient(circle at 80% 30%, rgba(245,158,11,0.28), transparent 30%), linear-gradient(135deg, #050505, #111827 52%, #1f1305)`})}),(0,m.jsxs)(`div`,{className:r({position:`absolute`,inset:0,display:`grid`,gridTemplateColumns:`1fr 1.1fr`,gap:`1.5rem`,padding:`1.5rem`,"@media (min-width: 640px)":{padding:`2rem`}}),children:[(0,m.jsxs)(`div`,{className:r({position:`relative`,display:`flex`,minWidth:0,flexDirection:`column`,justifyContent:`space-between`}),children:[(0,m.jsxs)(`div`,{children:[(0,m.jsxs)(`div`,{className:n(`font-terminal`,r({marginBottom:`0.75rem`,display:`inline-flex`,borderRadius:`0.25rem`,border:`1px solid rgb(251 191 36 / 0.5)`,background:`rgb(0 0 0 / 0.3)`,padding:`0.25rem 0.5rem`,fontSize:`10px`,textTransform:`uppercase`,letterSpacing:`0.025em`,color:`#fde68a`})),children:[`Scene `,b.number,` / `,t.length]}),(0,m.jsx)(`h3`,{className:r({maxWidth:`18rem`,fontSize:`1.25rem`,fontWeight:600,lineHeight:1.25,color:`white`,"@media (min-width: 640px)":{fontSize:`1.875rem`}}),children:b.title})]}),(0,m.jsx)(`p`,{className:r({maxWidth:`28rem`,fontSize:`0.75rem`,lineHeight:`1.25rem`,color:`#e5e5e5`,"@media (min-width: 640px)":{fontSize:`0.875rem`}}),children:b.visual})]}),(0,m.jsxs)(`div`,{className:r({position:`relative`,minHeight:0}),children:[(0,m.jsx)(`div`,{className:r({position:`absolute`,left:`50%`,top:`50%`,height:`10rem`,width:`10rem`,transform:`translate(-50%, -50%)`,borderRadius:`9999px`,border:`1px solid rgb(110 231 183 / 0.5)`,background:`rgb(110 231 183 / 0.1)`,"@media (min-width: 640px)":{height:`14rem`,width:`14rem`},"@media (prefers-reduced-motion: no-preference)":{animation:`pulse 2s cubic-bezier(0.4,0,0.6,1) infinite`}})}),(0,m.jsxs)(`div`,{className:r({position:`absolute`,left:`50%`,top:`50%`,height:`6rem`,width:`6rem`,borderRadius:`9999px`,border:`2px solid rgb(252 211 77 / 0.8)`,background:`rgb(0 0 0 / 0.35)`,boxShadow:`0 0 36px rgba(245,158,11,0.35)`,transitionProperty:`transform`,transitionDuration:`300ms`}),style:{transform:`translate(-50%, -50%) rotate(${S*180}deg) scale(${1+S*.08})`},children:[(0,m.jsx)(`div`,{className:r({position:`absolute`,left:`50%`,top:0,height:`50%`,width:`0.125rem`,transform:`translateX(-50%)`,background:`#fcd34d`})}),(0,m.jsx)(`div`,{className:r({position:`absolute`,bottom:0,left:`50%`,height:`50%`,width:`0.125rem`,transform:`translateX(-50%)`,background:`#6ee7b7`})}),(0,m.jsx)(`div`,{className:r({position:`absolute`,left:0,top:`50%`,height:`0.125rem`,width:`50%`,transform:`translateY(-50%)`,background:`#7dd3fc`})}),(0,m.jsx)(`div`,{className:r({position:`absolute`,right:0,top:`50%`,height:`0.125rem`,width:`50%`,transform:`translateY(-50%)`,background:`#fda4af`})})]}),C.map((e,t)=>{let n=t/Math.max(1,C.length)*Math.PI*2+S*Math.PI*.65,i=36+t%3*14,a=50+Math.cos(n)*i,o=50+Math.sin(n)*i;return(0,m.jsx)(`div`,{className:r({position:`absolute`,maxWidth:`7rem`,borderRadius:`0.25rem`,border:`1px solid rgb(255 255 255 / 0.15)`,background:`rgb(0 0 0 / 0.45)`,padding:`0.25rem 0.5rem`,textAlign:`center`,fontSize:`10px`,fontWeight:500,color:`white`,boxShadow:`var(--shadow-sm, 0 1px 2px rgb(0 0 0 / 0.05))`,backdropFilter:`blur(8px)`}),style:{left:`${a}%`,top:`${o}%`,transform:`translate(-50%, -50%)`},children:e},`${b.number}-${e}-${t}`)})]})]},b.number),(0,m.jsx)(`div`,{className:r({position:`absolute`,bottom:0,left:0,right:0,height:`0.25rem`,background:`rgb(255 255 255 / 0.15)`}),children:(0,m.jsx)(`div`,{className:r({height:`100%`,background:`#fcd34d`,transitionProperty:`width`}),style:{width:`${S*100}%`}})})]}),(0,m.jsxs)(`div`,{className:r({display:`flex`,flexWrap:`wrap`,alignItems:`center`,justifyContent:`space-between`,gap:`0.5rem`}),children:[(0,m.jsxs)(`div`,{className:r({minWidth:0}),children:[(0,m.jsx)(`div`,{className:r({overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:`0.875rem`,fontWeight:500}),children:e||`Animation`}),(0,m.jsxs)(`div`,{className:n(`font-terminal`,r({fontSize:`11px`,color:`var(--muted-foreground)`})),children:[t.length,` scenes // `,i,`s`]})]}),(0,m.jsxs)(`div`,{className:r({display:`flex`,alignItems:`center`,gap:`0.25rem`}),children:[(0,m.jsx)(`button`,{type:`button`,onClick:()=>w(c-1),className:r({display:`inline-flex`,height:`2rem`,width:`2rem`,alignItems:`center`,justifyContent:`center`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,_hover:{background:`var(--accent)`}}),"aria-label":`Previous scene`,children:(0,m.jsx)(a,{size:15})}),(0,m.jsxs)(`button`,{type:`button`,onClick:()=>h(e=>!e),className:r({display:`inline-flex`,height:`2rem`,alignItems:`center`,gap:`0.25rem`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,paddingInline:`0.5rem`,fontSize:`0.75rem`,fontWeight:500,_hover:{background:`var(--accent)`}}),children:[u?(0,m.jsx)(d,{size:14}):(0,m.jsx)(f,{size:14}),u?`Pause`:`Play`]}),(0,m.jsx)(`button`,{type:`button`,onClick:()=>{y(0),h(!0)},className:r({display:`inline-flex`,height:`2rem`,width:`2rem`,alignItems:`center`,justifyContent:`center`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,_hover:{background:`var(--accent)`}}),"aria-label":`Restart scene`,children:(0,m.jsx)(o,{size:14})}),(0,m.jsx)(`button`,{type:`button`,onClick:()=>w(c+1),className:r({display:`inline-flex`,height:`2rem`,width:`2rem`,alignItems:`center`,justifyContent:`center`,borderRadius:`0.375rem`,border:`1px solid var(--border)`,_hover:{background:`var(--accent)`}}),"aria-label":`Next scene`,children:(0,m.jsx)(s,{size:15})})]})]}),(0,m.jsx)(`div`,{className:r({display:`grid`,gridTemplateColumns:`repeat(3, minmax(0, 1fr))`,gap:`0.25rem`,"@media (min-width: 640px)":{gridTemplateColumns:`repeat(6, minmax(0, 1fr))`}}),children:t.map((e,t)=>(0,m.jsx)(`button`,{type:`button`,onClick:()=>w(t),className:r({minWidth:0,borderRadius:`0.375rem`,border:`1px solid`,borderColor:t===c?`var(--primary)`:`var(--border)`,background:t===c?`color-mix(in srgb, var(--primary) 10%, transparent)`:`var(--background)`,padding:`0.375rem 0.5rem`,textAlign:`left`,fontSize:`11px`,color:t===c?`var(--primary)`:void 0,transitionProperty:`color, background-color, border-color`,_hover:t===c?void 0:{background:`var(--accent)`}}),children:(0,m.jsx)(`span`,{className:r({display:`block`,overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`}),children:e.title})},e.number))})]})}function y({scene:e,manifest:t,storyboard:i,renderer:a,className:o}){let[s,d]=(0,p.useState)(!1),f=null;if(t)try{f=JSON.parse(t)}catch{}let h=i?l(i):null,g=f?.renderer===`hyperframes`||f?.kind===`hyperframes`||a===`hyperframes`?`hyperframes`:void 0,_=e?.trim().toLowerCase().startsWith(`<!doctype`)||e?.trim().toLowerCase().startsWith(`<html`),y=!!(e&&(g===`hyperframes`||_));return(0,m.jsxs)(`div`,{className:n(`animation-player`,r({display:`grid`,gap:`1rem`}),o),children:[(0,m.jsxs)(`div`,{className:r({display:`flex`,alignItems:`baseline`,justifyContent:`space-between`,gap:`1rem`}),children:[(0,m.jsxs)(`div`,{className:r({minWidth:0}),children:[(0,m.jsx)(`h3`,{className:r({overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`,fontSize:`0.875rem`,fontWeight:600}),children:f?.topic??`Animation`}),f&&(0,m.jsxs)(`p`,{className:r({fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:[f.duration??0,`s · `,Array.isArray(f.scenes)?f.scenes.length:0,` scenes`]})]}),(0,m.jsxs)(`button`,{onClick:()=>d(!s),className:r({flexShrink:0,borderRadius:`0.25rem`,padding:`0.25rem 0.5rem`,fontSize:`0.75rem`,color:`var(--muted-foreground)`,transitionProperty:`color, background-color`,_hover:{background:`var(--accent)`,color:`var(--accent-foreground)`}}),children:[s?`Hide`:`Show`,` source`]})]}),(0,m.jsxs)(`div`,{children:[y&&e?(0,m.jsx)(u,{title:`${f?.topic??`Keating`} Hyperframes composition`,html:e}):h?.scenes.length?(0,m.jsxs)(`div`,{className:r({display:`grid`,gap:`0.75rem`}),children:[(0,m.jsx)(v,{title:h.title,scenes:h.scenes,totalDuration:h.totalDuration}),(0,m.jsxs)(`details`,{className:r({borderRadius:`0.375rem`,border:`1px solid var(--border)`,background:`color-mix(in srgb, var(--background) 70%, transparent)`,padding:`0.75rem`}),children:[(0,m.jsx)(`summary`,{className:r({cursor:`pointer`,fontSize:`0.75rem`,fontWeight:500,color:`var(--muted-foreground)`}),children:`Storyboard notes`}),(0,m.jsx)(c,{storyboard:i??``})]})]}):e?(0,m.jsxs)(`div`,{className:r({display:`grid`,gap:`0.75rem`}),children:[(0,m.jsx)(`h3`,{className:r({fontWeight:500}),children:`Scene Source`}),(0,m.jsx)(`pre`,{className:r({maxHeight:`16rem`,overflow:`auto`,borderRadius:`0.25rem`,background:`color-mix(in srgb, var(--muted) 30%, transparent)`,padding:`0.75rem`,whiteSpace:`pre-wrap`,fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:e})]}):(0,m.jsx)(`div`,{className:r({paddingBlock:`2rem`,textAlign:`center`,color:`var(--muted-foreground)`}),children:`No animation loaded`}),s&&i&&(0,m.jsxs)(`div`,{className:r({marginTop:`0.75rem`,display:`grid`,gap:`0.5rem`}),children:[(0,m.jsxs)(`div`,{className:r({fontSize:`0.75rem`,fontWeight:500,color:`var(--muted-foreground)`}),children:[`Storyboard Source (`,h?.scenes.length??0,` scenes)`]}),(0,m.jsx)(`pre`,{className:r({maxHeight:`16rem`,overflow:`auto`,borderRadius:`0.25rem`,background:`color-mix(in srgb, var(--muted) 30%, transparent)`,padding:`0.75rem`,whiteSpace:`pre-wrap`,fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:i})]}),s&&e&&(0,m.jsxs)(`div`,{className:r({marginTop:`0.75rem`,display:`grid`,gap:`0.5rem`}),children:[(0,m.jsx)(`div`,{className:r({fontSize:`0.75rem`,fontWeight:500,color:`var(--muted-foreground)`}),children:y?`Hyperframes HTML`:`Scene Source`}),(0,m.jsx)(`pre`,{className:r({maxHeight:`16rem`,overflow:`auto`,borderRadius:`0.25rem`,background:`color-mix(in srgb, var(--muted) 30%, transparent)`,padding:`0.75rem`,whiteSpace:`pre-wrap`,fontSize:`0.75rem`,color:`var(--muted-foreground)`}),children:e})]})]})]})}export{y as t};