[{"data":1,"prerenderedAt":425},["ShallowReactive",2],{"docs-\u002Finstall":3},{"doc":4,"all":408},{"id":5,"title":6,"body":7,"description":399,"extension":400,"kicker":401,"meta":402,"navigation":403,"path":404,"seo":405,"stem":406,"__hash__":407},"docs\u002Fdocs\u002F1.install.md","安装",{"type":8,"value":9,"toc":395},"minimark",[10,19,26,75,81,88,91,112,115,137,141,144,198,288,302,306,315,381,391],[11,12,13,14,18],"p",{},"每个项目用 subtree 把这个仓库放进自己的 ",[15,16,17],"code",{},"vendor\u002Fui","，然后在该项目里提交。那是项目里的普通目录，本地和线上编译的是同一份已提交的文件。",[11,20,21,22,25],{},"给 agent 的完整步骤在仓库根目录的 ",[15,23,24],{},"AGENTS.md","。安装时，agent 还要把推送上游、拉取上游，以及把项目里的组件抽进库的步骤，写进该项目自己的 agent markdown。",[27,28,33],"pre",{"className":29,"code":30,"language":31,"meta":32,"style":32},"language-bash shiki shiki-themes vitesse-light vitesse-dark","git subtree add --prefix=vendor\u002Fui https:\u002F\u002Fgithub.com\u002F0froq\u002Fui.git main --squash\npnpm add .\u002Fvendor\u002Fui\n","bash","",[15,34,35,64],{"__ignoreMap":32},[36,37,40,44,48,51,55,58,61],"span",{"class":38,"line":39},"line",1,[36,41,43],{"class":42},"s_xSY","git",[36,45,47],{"class":46},"spP0B"," subtree",[36,49,50],{"class":46}," add",[36,52,54],{"class":53},"sfsYZ"," --prefix=vendor\u002Fui",[36,56,57],{"class":46}," https:\u002F\u002Fgithub.com\u002F0froq\u002Fui.git",[36,59,60],{"class":46}," main",[36,62,63],{"class":53}," --squash\n",[36,65,67,70,72],{"class":38,"line":66},2,[36,68,69],{"class":42},"pnpm",[36,71,50],{"class":46},[36,73,74],{"class":46}," .\u002Fvendor\u002Fui\n",[11,76,77,78,80],{},"依赖用 file 协议指向 ",[15,79,17],{},"。",[11,82,83,84,87],{},"在项目里改 ",[15,85,86],{},"vendor\u002Fui\u002Fsrc\u002F...","，然后提交这个项目。别的项目各自有自己的一份，不会跟着变。",[11,89,90],{},"要把这个项目里的改动送回上游，在项目根目录执行：",[27,92,94],{"className":29,"code":93,"language":31,"meta":32,"style":32},"git subtree push --prefix=vendor\u002Fui https:\u002F\u002Fgithub.com\u002F0froq\u002Fui.git main\n",[15,95,96],{"__ignoreMap":32},[36,97,98,100,102,105,107,109],{"class":38,"line":39},[36,99,43],{"class":42},[36,101,47],{"class":46},[36,103,104],{"class":46}," push",[36,106,54],{"class":53},[36,108,57],{"class":46},[36,110,111],{"class":46}," main\n",[11,113,114],{},"这个项目要跟上上游时：",[27,116,118],{"className":29,"code":117,"language":31,"meta":32,"style":32},"git subtree pull --prefix=vendor\u002Fui https:\u002F\u002Fgithub.com\u002F0froq\u002Fui.git main --squash\n",[15,119,120],{"__ignoreMap":32},[36,121,122,124,126,129,131,133,135],{"class":38,"line":39},[36,123,43],{"class":42},[36,125,47],{"class":46},[36,127,128],{"class":46}," pull",[36,130,54],{"class":53},[36,132,57],{"class":46},[36,134,60],{"class":46},[36,136,63],{"class":53},[138,139,140],"h2",{"id":140},"引用",[11,142,143],{},"字体不在包里。paper 用 Instrument Serif、Geist、Geist Mono，项目自己引。没引就退回系统字体。",[27,145,149],{"className":146,"code":147,"language":148,"meta":32,"style":32},"language-ts shiki shiki-themes vitesse-light vitesse-dark","import '@froq\u002Fui\u002Fpaper\u002Fstyle.css'\nimport { Choice, Toggle } from '@froq\u002Fui\u002Fpaper'\n","ts",[15,150,151,167],{"__ignoreMap":32},[36,152,153,157,161,164],{"class":38,"line":39},[36,154,156],{"class":155},"sTPum","import",[36,158,160],{"class":159},"scnC2"," '",[36,162,163],{"class":46},"@froq\u002Fui\u002Fpaper\u002Fstyle.css",[36,165,166],{"class":159},"'\n",[36,168,169,171,175,179,182,185,188,191,193,196],{"class":38,"line":66},[36,170,156],{"class":155},[36,172,174],{"class":173},"si6no"," {",[36,176,178],{"class":177},"s9nN2"," Choice",[36,180,181],{"class":173},",",[36,183,184],{"class":177}," Toggle",[36,186,187],{"class":173}," }",[36,189,190],{"class":155}," from",[36,192,160],{"class":159},[36,194,195],{"class":46},"@froq\u002Fui\u002Fpaper",[36,197,166],{"class":159},[27,199,203],{"className":200,"code":201,"language":202,"meta":32,"style":32},"language-vue shiki shiki-themes vitesse-light vitesse-dark","\u003Cdiv class=\"ui-paper\">\n  \u003CChoice\n    v-model=\"tone\"\n    label=\"Tone\"\n    :options=\"[\n      { value: 'quiet', label: 'quiet' },\n      { value: 'loud', label: 'loud' },\n    ]\"\n  \u002F>\n\u003C\u002Fdiv>\n","vue",[15,204,205,230,236,242,248,254,260,266,272,278],{"__ignoreMap":32},[36,206,207,210,213,216,219,222,225,227],{"class":38,"line":39},[36,208,209],{"class":173},"\u003C",[36,211,212],{"class":155},"div",[36,214,215],{"class":177}," class",[36,217,218],{"class":173},"=",[36,220,221],{"class":159},"\"",[36,223,224],{"class":46},"ui-paper",[36,226,221],{"class":159},[36,228,229],{"class":173},">\n",[36,231,232],{"class":38,"line":66},[36,233,235],{"class":234},"s8w-G","  \u003CChoice\n",[36,237,239],{"class":38,"line":238},3,[36,240,241],{"class":234},"    v-model=\"tone\"\n",[36,243,245],{"class":38,"line":244},4,[36,246,247],{"class":234},"    label=\"Tone\"\n",[36,249,251],{"class":38,"line":250},5,[36,252,253],{"class":234},"    :options=\"[\n",[36,255,257],{"class":38,"line":256},6,[36,258,259],{"class":234},"      { value: 'quiet', label: 'quiet' },\n",[36,261,263],{"class":38,"line":262},7,[36,264,265],{"class":234},"      { value: 'loud', label: 'loud' },\n",[36,267,269],{"class":38,"line":268},8,[36,270,271],{"class":234},"    ]\"\n",[36,273,275],{"class":38,"line":274},9,[36,276,277],{"class":234},"  \u002F>\n",[36,279,281,284,286],{"class":38,"line":280},10,[36,282,283],{"class":173},"\u003C\u002F",[36,285,212],{"class":155},[36,287,229],{"class":173},[11,289,290,291,294,295,294,298,301],{},"包里是源码（",[15,292,293],{},".vue","、",[15,296,297],{},".ts",[15,299,300],{},".css","），由使用方的构建工具编译。Vite 直接可用。",[138,303,305],{"id":304},"nuxt","Nuxt",[11,307,308,309,312,313,80],{},"这个文档站就是这么接的。",[15,310,311],{},"build.transpile"," 让 Nuxt 去编译包里的 ",[15,314,293],{},[27,316,318],{"className":146,"code":317,"language":148,"meta":32,"style":32},"export default defineNuxtConfig({\n  css: ['@froq\u002Fui\u002Fpaper\u002Fstyle.css'],\n  build: { transpile: ['@froq\u002Fui'] },\n})\n",[15,319,320,334,353,376],{"__ignoreMap":32},[36,321,322,325,328,331],{"class":38,"line":39},[36,323,324],{"class":155},"export",[36,326,327],{"class":155}," default",[36,329,330],{"class":42}," defineNuxtConfig",[36,332,333],{"class":173},"({\n",[36,335,336,340,343,346,348,350],{"class":38,"line":66},[36,337,339],{"class":338},"sHLBJ","  css",[36,341,342],{"class":173},": [",[36,344,345],{"class":159},"'",[36,347,163],{"class":46},[36,349,345],{"class":159},[36,351,352],{"class":173},"],\n",[36,354,355,358,361,364,366,368,371,373],{"class":38,"line":238},[36,356,357],{"class":338},"  build",[36,359,360],{"class":173},": { ",[36,362,363],{"class":338},"transpile",[36,365,342],{"class":173},[36,367,345],{"class":159},[36,369,370],{"class":46},"@froq\u002Fui",[36,372,345],{"class":159},[36,374,375],{"class":173},"] },\n",[36,377,378],{"class":38,"line":244},[36,379,380],{"class":173},"})\n",[11,382,383,384,387,388,80],{},"要三种风格都出现在同一页，把另外两份 ",[15,385,386],{},"style.css"," 也放进 ",[15,389,390],{},"css",[392,393,394],"style",{},"html pre.shiki code .s_xSY, html code.shiki .s_xSY{--shiki-default:#59873A;--shiki-dark:#80A665}html pre.shiki code .spP0B, html code.shiki .spP0B{--shiki-default:#B56959;--shiki-dark:#C98A7D}html pre.shiki code .sfsYZ, html code.shiki .sfsYZ{--shiki-default:#A65E2B;--shiki-dark:#C99076}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);}html pre.shiki code .sTPum, html code.shiki .sTPum{--shiki-default:#1E754F;--shiki-dark:#4D9375}html pre.shiki code .scnC2, html code.shiki .scnC2{--shiki-default:#B5695977;--shiki-dark:#C98A7D77}html pre.shiki code .si6no, html code.shiki .si6no{--shiki-default:#999999;--shiki-dark:#666666}html pre.shiki code .s9nN2, html code.shiki .s9nN2{--shiki-default:#B07D48;--shiki-dark:#BD976A}html pre.shiki code .s8w-G, html code.shiki .s8w-G{--shiki-default:#393A34;--shiki-dark:#DBD7CAEE}html pre.shiki code .sHLBJ, html code.shiki .sHLBJ{--shiki-default:#998418;--shiki-dark:#B8A965}",{"title":32,"searchDepth":66,"depth":66,"links":396},[397,398],{"id":140,"depth":66,"text":140},{"id":304,"depth":66,"text":305},"用 subtree 把库放进项目的 vendor\u002Fui，并在项目里提交。","md","文档",{},true,"\u002Fdocs\u002Finstall",{"title":6,"description":399},"docs\u002F1.install","sU4AaZkJ2MbyQfRaHpHeju7-L7e6RJXri2dABML0rGM",[409,412,413,416,419,422],{"path":410,"title":411},"\u002Fdocs","概览",{"path":404,"title":6},{"path":414,"title":415},"\u002Fdocs\u002Ftokens","Token",{"path":417,"title":418},"\u002Fdocs\u002Fpaper","paper",{"path":420,"title":421},"\u002Fdocs\u002Fflat","flat",{"path":423,"title":424},"\u002Fdocs\u002Fterm","term",1790678285132]