[{"data":1,"prerenderedAt":767},["ShallowReactive",2],{"repo-tree":3,"repo-\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ffrontend\u002Freadme":283},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,69,72,75,78,81,84,86,88,90,93,96,99,102,105,108,111,114,117,120,123,125,127,129,131,133,135,138,141,143,146,149,152,155,158,161,164,167,169,172,175,178,180,183,186,189,192,195,198,201,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275,278,281],{"path":5,"title":6},"\u002Fagents\u002Fbackend-code-style","Backend Conventions",{"path":8,"title":9},"\u002Fagents\u002Fdatabase","Database",{"path":11,"title":12},"\u002Fagents\u002Fportal-code-style","Portal Conventions",{"path":14,"title":15},"\u002Fagents\u002Ftranslation","Translation",{"path":17,"title":18},"\u002Fconventions\u002Fbackend-coding","Backend coding conventions",{"path":20,"title":21},"\u002Fconventions\u002Ffrontend-coding","Frontend coding conventions",{"path":23,"title":24},"\u002Fdevelopment-process","Development process",{"path":26,"title":27},"\u002Flearning-api-preview-hetzner-setup","Learning API Preview on Hetzner + Cloudflare",{"path":29,"title":30},"\u002Flearning-api-preview-vm-plan","Learning API Preview VM Plan",{"path":32,"title":33},"\u002Fmonorepo-structure","Monorepo structure",{"path":35,"title":36},"\u002Foperations","Operations — bugs and support",{"path":38,"title":39},"\u002Fpostmortems\u002F2026-03-16_onboarding-currency-regression","Onboarding Zod transform silently broken — web signups assigned wrong checkout currency",{"path":41,"title":42},"\u002Fpostmortems\u002Freadme","Postmortems",{"path":44,"title":45},"\u002Fpostmortems\u002F_template","TEMPLATE",{"path":47,"title":48},"\u002Fpostmortems\u002Fposthog-comparison","Postmortem practice — comparison with PostHog",{"path":50,"title":51},"\u002Fpreview-environment-plan","Preview Environment Plan",{"path":53,"title":54},"\u002Fprinciples","Engineering principles",{"path":56,"title":57},"\u002Fworking-with-ai","Working with AI",{"path":59,"title":60},"\u002F.claude\u002Fskills\u002Feval-playground\u002Fskill","Eval Playground — Co-development Skill",{"path":62,"title":63},"\u002F.claude\u002Fskills\u002Ffigma-diff-section\u002Fskill","Figma Diff Section Pipeline",{"path":65,"title":66},"\u002Fagents","AGENTS.md",{"path":68,"title":66},"\u002Fclaude",{"path":70,"title":71},"\u002Freadme","Studyflash",{"path":73,"title":74},"\u002Fapps\u002Fcore-api\u002Fagents","Core API (apps\u002Fcore-api)",{"path":76,"title":77},"\u002Fapps\u002Fcore-api\u002Freadme","README",{"path":79,"title":80},"\u002Fapps\u002Femail-previews\u002Fagents","Email Previews (apps\u002Femail-previews)",{"path":82,"title":83},"\u002Fapps\u002Flanding-page\u002Fagents","Landing Page (apps\u002Flanding-page)",{"path":85,"title":83},"\u002Fapps\u002Flanding-page\u002Fclaude",{"path":87,"title":66},"\u002Fapps\u002Flearning-api\u002Fagents",{"path":89,"title":77},"\u002Fapps\u002Flearning-api\u002Freadme",{"path":91,"title":92},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Feval_metrics_design","Surface-Specific Eval Metrics Design",{"path":94,"title":95},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ftest_set","Quiz Eval Test Set",{"path":97,"title":98},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ffrontend\u002Freadme","React + TypeScript + Vite",{"path":100,"title":101},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fcontent-pillar-shallow-coverage\u002Freadme","Content pillar misses subtopics in dense documents",{"path":103,"title":104},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fdocling-empty-section-headers\u002Freadme","Empty section headers dropped by docling chunker",{"path":106,"title":107},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fdocling-table-reading-order\u002Freadme","Table\u002Fbox layout causes wrong reading order",{"path":109,"title":110},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fmetrics\u002Freadme","Quiz eval metrics — canonical rubrics",{"path":112,"title":113},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-04-12-quiz-summary-feedback-current-state","Quiz and Summary Feedback Current State",{"path":115,"title":116},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-04-24-quiz-eval-metrics","Quiz Evaluation Metrics",{"path":118,"title":119},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-05-01-quiz-eval-current-state","Quiz Eval Current State",{"path":121,"title":122},"\u002Fapps\u002Flearning-api\u002Fmonitoring\u002Freadme","Monitoring Stack",{"path":124,"title":77},"\u002Fapps\u002Flearning-api\u002Fshared\u002Freadme",{"path":126,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fflashcard_agent\u002Freadme",{"path":128,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fingestion_agent\u002Freadme",{"path":130,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fquiz_agent\u002Freadme",{"path":132,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fsummary_agent\u002Freadme",{"path":134,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Fparser\u002Freadme",{"path":136,"title":137},"\u002Fapps\u002Fmarketing-emails-preview\u002Fagents","Marketing Emails Preview (apps\u002Fmarketing-emails-preview)",{"path":139,"title":140},"\u002Fapps\u002Fmobile-app\u002Fagents","StudyFlash Mobile App - Claude Code Configuration",{"path":142,"title":140},"\u002Fapps\u002Fmobile-app\u002Fclaude",{"path":144,"title":145},"\u002Fapps\u002Fmountain-max\u002Fagents","Mountain Max (apps\u002Fmountain-max)",{"path":147,"title":148},"\u002Fapps\u002Fmountain-max\u002Fgame\u002Freadme","Mountain Max Game",{"path":150,"title":151},"\u002Fapps\u002Fportal\u002Fagents","Portal (apps\u002Fportal)",{"path":153,"title":154},"\u002Fapps\u002Fportal\u002Freadme","Nuxt Minimal Starter",{"path":156,"title":157},"\u002Fapps\u002Fportal\u002Fapp\u002Fcomposables\u002Ffiles\u002Freadme","File Upload Composables",{"path":159,"title":160},"\u002Fapps\u002Fportal\u002Fdocs\u002Flibrary-routing","Library Routing Documentation",{"path":162,"title":163},"\u002Fapps\u002Fsupabase\u002Fagents","Supabase (apps\u002Fsupabase)",{"path":165,"title":166},"\u002Fapps\u002Fwrapped\u002Fagents","Wrapped (apps\u002Fwrapped)",{"path":168,"title":98},"\u002Fapps\u002Fwrapped\u002Freadme",{"path":170,"title":171},"\u002Finfra\u002Freadme","infra\u002F",{"path":173,"title":174},"\u002Finfra\u002Fdns\u002Freadme","DNS Infrastructure",{"path":176,"title":177},"\u002Finfra\u002Fdokploy\u002Freadme","studyflash-dokploy",{"path":179,"title":77},"\u002Finfra\u002Fdokploy\u002Fsdk\u002Fnodejs\u002Freadme",{"path":181,"title":182},"\u002Finfra\u002Finfisical\u002Freadme","Infisical Infrastructure",{"path":184,"title":185},"\u002Finfra\u002Flearning-api\u002Freadme","Pulumi GCP TypeScript Template",{"path":187,"title":188},"\u002Finfra\u002Fopenreplay\u002Freadme","OpenReplay on Hetzner",{"path":190,"title":191},"\u002Finfra\u002Fscripts\u002Freadme","infra\u002Fscripts\u002F",{"path":193,"title":194},"\u002Finfra\u002Fturborepo-cache\u002Freadme","Turborepo Remote Cache Infrastructure",{"path":196,"title":197},"\u002Finternal\u002Fchatwoot\u002Freadme","Chatwoot Infrastructure",{"path":199,"title":200},"\u002Finternal\u002Fchatwoot\u002Fprovider\u002Freadme","studyflash-chatwoot-provider",{"path":202,"title":77},"\u002Finternal\u002Fchatwoot\u002Fprovider\u002Fsdk\u002Fnodejs\u002Freadme",{"path":204,"title":205},"\u002Finternal\u002Fdocs\u002Freadme","internal\u002Fdocs",{"path":207,"title":208},"\u002Finternal\u002Fsupport-bot\u002Fclaude","Support Bot (Maximilian)",{"path":210,"title":211},"\u002Finternal\u002Fsupport-bot\u002Freadme","Studyflash Customer Support Bot (Maximilian)",{"path":213,"title":214},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Faccount_issues","Account Issues",{"path":216,"title":217},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fbilling_invoice","Billing Invoice",{"path":219,"title":220},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fcontent_upload","Content Upload",{"path":222,"title":223},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fdata_loss","Data Loss",{"path":225,"title":226},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fflashcard_issues","Flashcard Issues",{"path":228,"title":229},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fgarbage","Garbage",{"path":231,"title":232},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fgeneral_how_to","General How To",{"path":234,"title":235},"\u002Finternal\u002Fsupport-bot\u002Fkb","Knowledge Base Index",{"path":237,"title":238},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Flanguage_issues","Language Issues",{"path":240,"title":241},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmindmap_issues","Mindmap Issues",{"path":243,"title":244},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmisunderstanding","Misunderstanding",{"path":246,"title":247},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmock_exam_issues","Mock Exam Issues",{"path":249,"title":250},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fpodcast_issues","Podcast Issues",{"path":252,"title":253},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fquiz_issues","Quiz Issues",{"path":255,"title":256},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Frefund_request","Refund Request",{"path":258,"title":259},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsubscription_cancellation","Subscription Cancellation",{"path":261,"title":262},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsubscription_info","Subscription Info",{"path":264,"title":265},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsummary_issues","Summary Issues",{"path":267,"title":268},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Ftechnical_errors","Technical Errors",{"path":270,"title":271},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fvideo_issues","Video Issues",{"path":273,"title":274},"\u002Fpackages\u002Fcommon\u002Fdocs\u002Fearly-access-features","Declarative Early Access Features",{"path":276,"title":277},"\u002Fpackages\u002Fcommon\u002Fscripts\u002Freadme","Common Package Scripts",{"path":279,"title":280},"\u002Fpackages\u002Fdevtools\u002Ffigma-plugins\u002Freadme","Figma plugins",{"path":282,"title":77},"\u002Fpackages\u002Fpulumi-infisical\u002Freadme",{"id":284,"title":98,"body":285,"description":295,"extension":761,"lastReviewed":762,"meta":763,"navigation":447,"owner":762,"path":97,"seo":764,"status":762,"stem":765,"tags":762,"__hash__":766},"repo\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ffrontend\u002FREADME.md",{"type":286,"value":287,"toc":757},"minimark",[288,292,296,299,344,349,358,362,365,578,593,753],[289,290,98],"h1",{"id":291},"react-typescript-vite",[293,294,295],"p",{},"This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.",[293,297,298],{},"Currently, two official plugins are available:",[300,301,302,331],"ul",{},[303,304,305,312,313,318,319,324,325,330],"li",{},[306,307,311],"a",{"href":308,"rel":309},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fvite-plugin-react\u002Fblob\u002Fmain\u002Fpackages\u002Fplugin-react",[310],"nofollow","@vitejs\u002Fplugin-react"," uses ",[306,314,317],{"href":315,"rel":316},"https:\u002F\u002Fbabeljs.io\u002F",[310],"Babel"," (or ",[306,320,323],{"href":321,"rel":322},"https:\u002F\u002Foxc.rs",[310],"oxc"," when used in ",[306,326,329],{"href":327,"rel":328},"https:\u002F\u002Fvite.dev\u002Fguide\u002Frolldown",[310],"rolldown-vite",") for Fast Refresh",[303,332,333,312,338,343],{},[306,334,337],{"href":335,"rel":336},"https:\u002F\u002Fgithub.com\u002Fvitejs\u002Fvite-plugin-react\u002Fblob\u002Fmain\u002Fpackages\u002Fplugin-react-swc",[310],"@vitejs\u002Fplugin-react-swc",[306,339,342],{"href":340,"rel":341},"https:\u002F\u002Fswc.rs\u002F",[310],"SWC"," for Fast Refresh",[345,346,348],"h2",{"id":347},"react-compiler","React Compiler",[293,350,351,352,357],{},"The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see ",[306,353,356],{"href":354,"rel":355},"https:\u002F\u002Freact.dev\u002Flearn\u002Freact-compiler\u002Finstallation",[310],"this documentation",".",[345,359,361],{"id":360},"expanding-the-eslint-configuration","Expanding the ESLint configuration",[293,363,364],{},"If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:",[366,367,372],"pre",{"className":368,"code":369,"language":370,"meta":371,"style":371},"language-js shiki shiki-themes github-light github-dark","export default defineConfig([\n  globalIgnores(['dist']),\n  {\n    files: ['**\u002F*.{ts,tsx}'],\n    extends: [\n      \u002F\u002F Other configs...\n\n      \u002F\u002F Remove tseslint.configs.recommended and replace with this\n      tseslint.configs.recommendedTypeChecked,\n      \u002F\u002F Alternatively, use this for stricter rules\n      tseslint.configs.strictTypeChecked,\n      \u002F\u002F Optionally, add this for stylistic rules\n      tseslint.configs.stylisticTypeChecked,\n\n      \u002F\u002F Other configs...\n    ],\n    languageOptions: {\n      parserOptions: {\n        project: ['.\u002Ftsconfig.node.json', '.\u002Ftsconfig.app.json'],\n        tsconfigRootDir: import.meta.dirname,\n      },\n      \u002F\u002F other options...\n    },\n  },\n])\n","js","",[373,374,375,395,411,417,429,435,442,449,455,461,467,473,479,485,490,495,501,507,513,530,548,554,560,566,572],"code",{"__ignoreMap":371},[376,377,380,384,387,391],"span",{"class":378,"line":379},"line",1,[376,381,383],{"class":382},"szBVR","export",[376,385,386],{"class":382}," default",[376,388,390],{"class":389},"sScJk"," defineConfig",[376,392,394],{"class":393},"sVt8B","([\n",[376,396,398,401,404,408],{"class":378,"line":397},2,[376,399,400],{"class":389},"  globalIgnores",[376,402,403],{"class":393},"([",[376,405,407],{"class":406},"sZZnC","'dist'",[376,409,410],{"class":393},"]),\n",[376,412,414],{"class":378,"line":413},3,[376,415,416],{"class":393},"  {\n",[376,418,420,423,426],{"class":378,"line":419},4,[376,421,422],{"class":393},"    files: [",[376,424,425],{"class":406},"'**\u002F*.{ts,tsx}'",[376,427,428],{"class":393},"],\n",[376,430,432],{"class":378,"line":431},5,[376,433,434],{"class":393},"    extends: [\n",[376,436,438],{"class":378,"line":437},6,[376,439,441],{"class":440},"sJ8bj","      \u002F\u002F Other configs...\n",[376,443,445],{"class":378,"line":444},7,[376,446,448],{"emptyLinePlaceholder":447},true,"\n",[376,450,452],{"class":378,"line":451},8,[376,453,454],{"class":440},"      \u002F\u002F Remove tseslint.configs.recommended and replace with this\n",[376,456,458],{"class":378,"line":457},9,[376,459,460],{"class":393},"      tseslint.configs.recommendedTypeChecked,\n",[376,462,464],{"class":378,"line":463},10,[376,465,466],{"class":440},"      \u002F\u002F Alternatively, use this for stricter rules\n",[376,468,470],{"class":378,"line":469},11,[376,471,472],{"class":393},"      tseslint.configs.strictTypeChecked,\n",[376,474,476],{"class":378,"line":475},12,[376,477,478],{"class":440},"      \u002F\u002F Optionally, add this for stylistic rules\n",[376,480,482],{"class":378,"line":481},13,[376,483,484],{"class":393},"      tseslint.configs.stylisticTypeChecked,\n",[376,486,488],{"class":378,"line":487},14,[376,489,448],{"emptyLinePlaceholder":447},[376,491,493],{"class":378,"line":492},15,[376,494,441],{"class":440},[376,496,498],{"class":378,"line":497},16,[376,499,500],{"class":393},"    ],\n",[376,502,504],{"class":378,"line":503},17,[376,505,506],{"class":393},"    languageOptions: {\n",[376,508,510],{"class":378,"line":509},18,[376,511,512],{"class":393},"      parserOptions: {\n",[376,514,516,519,522,525,528],{"class":378,"line":515},19,[376,517,518],{"class":393},"        project: [",[376,520,521],{"class":406},"'.\u002Ftsconfig.node.json'",[376,523,524],{"class":393},", ",[376,526,527],{"class":406},"'.\u002Ftsconfig.app.json'",[376,529,428],{"class":393},[376,531,533,536,539,541,545],{"class":378,"line":532},20,[376,534,535],{"class":393},"        tsconfigRootDir: ",[376,537,538],{"class":382},"import",[376,540,357],{"class":393},[376,542,544],{"class":543},"sj4cs","meta",[376,546,547],{"class":393},".dirname,\n",[376,549,551],{"class":378,"line":550},21,[376,552,553],{"class":393},"      },\n",[376,555,557],{"class":378,"line":556},22,[376,558,559],{"class":440},"      \u002F\u002F other options...\n",[376,561,563],{"class":378,"line":562},23,[376,564,565],{"class":393},"    },\n",[376,567,569],{"class":378,"line":568},24,[376,570,571],{"class":393},"  },\n",[376,573,575],{"class":378,"line":574},25,[376,576,577],{"class":393},"])\n",[293,579,580,581,586,587,592],{},"You can also install ",[306,582,585],{"href":583,"rel":584},"https:\u002F\u002Fgithub.com\u002FRel1cx\u002Feslint-react\u002Ftree\u002Fmain\u002Fpackages\u002Fplugins\u002Feslint-plugin-react-x",[310],"eslint-plugin-react-x"," and ",[306,588,591],{"href":589,"rel":590},"https:\u002F\u002Fgithub.com\u002FRel1cx\u002Feslint-react\u002Ftree\u002Fmain\u002Fpackages\u002Fplugins\u002Feslint-plugin-react-dom",[310],"eslint-plugin-react-dom"," for React-specific lint rules:",[366,594,596],{"className":368,"code":595,"language":370,"meta":371,"style":371},"\u002F\u002F eslint.config.js\nimport reactX from 'eslint-plugin-react-x'\nimport reactDom from 'eslint-plugin-react-dom'\n\nexport default defineConfig([\n  globalIgnores(['dist']),\n  {\n    files: ['**\u002F*.{ts,tsx}'],\n    extends: [\n      \u002F\u002F Other configs...\n      \u002F\u002F Enable lint rules for React\n      reactX.configs['recommended-typescript'],\n      \u002F\u002F Enable lint rules for React DOM\n      reactDom.configs.recommended,\n    ],\n    languageOptions: {\n      parserOptions: {\n        project: ['.\u002Ftsconfig.node.json', '.\u002Ftsconfig.app.json'],\n        tsconfigRootDir: import.meta.dirname,\n      },\n      \u002F\u002F other options...\n    },\n  },\n])\n",[373,597,598,603,616,628,632,642,652,656,664,668,672,677,687,692,697,701,705,709,721,733,737,741,745,749],{"__ignoreMap":371},[376,599,600],{"class":378,"line":379},[376,601,602],{"class":440},"\u002F\u002F eslint.config.js\n",[376,604,605,607,610,613],{"class":378,"line":397},[376,606,538],{"class":382},[376,608,609],{"class":393}," reactX ",[376,611,612],{"class":382},"from",[376,614,615],{"class":406}," 'eslint-plugin-react-x'\n",[376,617,618,620,623,625],{"class":378,"line":413},[376,619,538],{"class":382},[376,621,622],{"class":393}," reactDom ",[376,624,612],{"class":382},[376,626,627],{"class":406}," 'eslint-plugin-react-dom'\n",[376,629,630],{"class":378,"line":419},[376,631,448],{"emptyLinePlaceholder":447},[376,633,634,636,638,640],{"class":378,"line":431},[376,635,383],{"class":382},[376,637,386],{"class":382},[376,639,390],{"class":389},[376,641,394],{"class":393},[376,643,644,646,648,650],{"class":378,"line":437},[376,645,400],{"class":389},[376,647,403],{"class":393},[376,649,407],{"class":406},[376,651,410],{"class":393},[376,653,654],{"class":378,"line":444},[376,655,416],{"class":393},[376,657,658,660,662],{"class":378,"line":451},[376,659,422],{"class":393},[376,661,425],{"class":406},[376,663,428],{"class":393},[376,665,666],{"class":378,"line":457},[376,667,434],{"class":393},[376,669,670],{"class":378,"line":463},[376,671,441],{"class":440},[376,673,674],{"class":378,"line":469},[376,675,676],{"class":440},"      \u002F\u002F Enable lint rules for React\n",[376,678,679,682,685],{"class":378,"line":475},[376,680,681],{"class":393},"      reactX.configs[",[376,683,684],{"class":406},"'recommended-typescript'",[376,686,428],{"class":393},[376,688,689],{"class":378,"line":481},[376,690,691],{"class":440},"      \u002F\u002F Enable lint rules for React DOM\n",[376,693,694],{"class":378,"line":487},[376,695,696],{"class":393},"      reactDom.configs.recommended,\n",[376,698,699],{"class":378,"line":492},[376,700,500],{"class":393},[376,702,703],{"class":378,"line":497},[376,704,506],{"class":393},[376,706,707],{"class":378,"line":503},[376,708,512],{"class":393},[376,710,711,713,715,717,719],{"class":378,"line":509},[376,712,518],{"class":393},[376,714,521],{"class":406},[376,716,524],{"class":393},[376,718,527],{"class":406},[376,720,428],{"class":393},[376,722,723,725,727,729,731],{"class":378,"line":515},[376,724,535],{"class":393},[376,726,538],{"class":382},[376,728,357],{"class":393},[376,730,544],{"class":543},[376,732,547],{"class":393},[376,734,735],{"class":378,"line":532},[376,736,553],{"class":393},[376,738,739],{"class":378,"line":550},[376,740,559],{"class":440},[376,742,743],{"class":378,"line":556},[376,744,565],{"class":393},[376,746,747],{"class":378,"line":562},[376,748,571],{"class":393},[376,750,751],{"class":378,"line":568},[376,752,577],{"class":393},[754,755,756],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":371,"searchDepth":397,"depth":397,"links":758},[759,760],{"id":347,"depth":397,"text":348},{"id":360,"depth":397,"text":361},"md",null,{},{"title":98,"description":295},"apps\u002Flearning-api\u002Fevals-playground\u002Ffrontend\u002FREADME","8edpiPxCgANbI0C7mF2xqqX36AJwx2HQhGLkOzdQlhE",1779007962949]