[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"content:legacy:page:\u002Ftemplates\u002Fvue":3,"content:legacy:navigation":5794,"content:legacy:surround:\u002Ftemplates\u002Fvue":6079},{"id":4,"title":5,"body":6,"description":5783,"extension":4730,"icon":5784,"meta":5785,"modifiedAt":5786,"navigation":59,"path":5787,"publishedAt":5788,"seo":5789,"sitemap":5790,"stem":5792,"updatedAt":5791,"__hash__":5793},"templates\u002Ftemplates\u002Fvue.md","Vue",{"type":7,"value":8,"toc":5781},"minimark",[9,5778],[10,11,14,585,800,1477,1864,2456,2792,3089,3185,3567,3636,3769,3916,4141,4397,4434,4526,4725],"code-tree",{"default-value":12,"title":13},"vite.config.ts","Vue 3 App Template",[15,16,22],"pre",{"className":17,"code":18,"filename":19,"language":20,"meta":21,"style":21},"language-css shiki shiki-themes github-light github-dark","@tailwind base;\n@tailwind components;\n@tailwind utilities;\n\n:root {\n  --color-background: #ffffff;\n  --color-background-soft: #f8fafc;\n  --color-background-mute: #f1f5f9;\n  --color-border: #e2e8f0;\n  --color-border-hover: #cbd5e1;\n  --color-heading: #1e293b;\n  --color-text: #475569;\n  --color-text-soft: #64748b;\n  --color-primary: #0ea5e9;\n  --color-primary-hover: #0284c7;\n  --color-primary-soft: #e0f2fe;\n}\n\n@media (prefers-color-scheme: dark) {\n  :root {\n    --color-background: #0f172a;\n    --color-background-soft: #1e293b;\n    --color-background-mute: #334155;\n    --color-border: #475569;\n    --color-border-hover: #64748b;\n    --color-heading: #f1f5f9;\n    --color-text: #cbd5e1;\n    --color-text-soft: #94a3b8;\n    --color-primary: #38bdf8;\n    --color-primary-hover: #0ea5e9;\n    --color-primary-soft: #0c4a6e;\n  }\n}\n\nbody {\n  min-height: 100vh;\n  color: var(--color-text);\n  background: var(--color-background);\n  transition: color 0.5s, background-color 0.5s;\n  line-height: 1.6;\n  font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n  font-synthesis: none;\n  text-rendering: optimizeLegibility;\n  -webkit-font-smoothing: antialiased;\n  -moz-osx-font-smoothing: grayscale;\n}\n","src\u002Fassets\u002Fmain.css","css","",[23,24,25,38,46,54,61,71,88,101,114,127,140,153,166,179,192,205,218,224,229,238,246,259,271,284,296,308,320,332,345,358,370,383,389,394,399,408,424,444,461,488,501,528,541,554,567,580],"code",{"__ignoreMap":21},[26,27,30,34],"span",{"class":28,"line":29},"line",1,[26,31,33],{"class":32},"szBVR","@tailwind",[26,35,37],{"class":36},"sVt8B"," base;\n",[26,39,41,43],{"class":28,"line":40},2,[26,42,33],{"class":32},[26,44,45],{"class":36}," components;\n",[26,47,49,51],{"class":28,"line":48},3,[26,50,33],{"class":32},[26,52,53],{"class":36}," utilities;\n",[26,55,57],{"class":28,"line":56},4,[26,58,60],{"emptyLinePlaceholder":59},true,"\n",[26,62,64,68],{"class":28,"line":63},5,[26,65,67],{"class":66},"sScJk",":root",[26,69,70],{"class":36}," {\n",[26,72,74,78,81,85],{"class":28,"line":73},6,[26,75,77],{"class":76},"s4XuR","  --color-background",[26,79,80],{"class":36},": ",[26,82,84],{"class":83},"sj4cs","#ffffff",[26,86,87],{"class":36},";\n",[26,89,91,94,96,99],{"class":28,"line":90},7,[26,92,93],{"class":76},"  --color-background-soft",[26,95,80],{"class":36},[26,97,98],{"class":83},"#f8fafc",[26,100,87],{"class":36},[26,102,104,107,109,112],{"class":28,"line":103},8,[26,105,106],{"class":76},"  --color-background-mute",[26,108,80],{"class":36},[26,110,111],{"class":83},"#f1f5f9",[26,113,87],{"class":36},[26,115,117,120,122,125],{"class":28,"line":116},9,[26,118,119],{"class":76},"  --color-border",[26,121,80],{"class":36},[26,123,124],{"class":83},"#e2e8f0",[26,126,87],{"class":36},[26,128,130,133,135,138],{"class":28,"line":129},10,[26,131,132],{"class":76},"  --color-border-hover",[26,134,80],{"class":36},[26,136,137],{"class":83},"#cbd5e1",[26,139,87],{"class":36},[26,141,143,146,148,151],{"class":28,"line":142},11,[26,144,145],{"class":76},"  --color-heading",[26,147,80],{"class":36},[26,149,150],{"class":83},"#1e293b",[26,152,87],{"class":36},[26,154,156,159,161,164],{"class":28,"line":155},12,[26,157,158],{"class":76},"  --color-text",[26,160,80],{"class":36},[26,162,163],{"class":83},"#475569",[26,165,87],{"class":36},[26,167,169,172,174,177],{"class":28,"line":168},13,[26,170,171],{"class":76},"  --color-text-soft",[26,173,80],{"class":36},[26,175,176],{"class":83},"#64748b",[26,178,87],{"class":36},[26,180,182,185,187,190],{"class":28,"line":181},14,[26,183,184],{"class":76},"  --color-primary",[26,186,80],{"class":36},[26,188,189],{"class":83},"#0ea5e9",[26,191,87],{"class":36},[26,193,195,198,200,203],{"class":28,"line":194},15,[26,196,197],{"class":76},"  --color-primary-hover",[26,199,80],{"class":36},[26,201,202],{"class":83},"#0284c7",[26,204,87],{"class":36},[26,206,208,211,213,216],{"class":28,"line":207},16,[26,209,210],{"class":76},"  --color-primary-soft",[26,212,80],{"class":36},[26,214,215],{"class":83},"#e0f2fe",[26,217,87],{"class":36},[26,219,221],{"class":28,"line":220},17,[26,222,223],{"class":36},"}\n",[26,225,227],{"class":28,"line":226},18,[26,228,60],{"emptyLinePlaceholder":59},[26,230,232,235],{"class":28,"line":231},19,[26,233,234],{"class":32},"@media",[26,236,237],{"class":36}," (prefers-color-scheme: dark) {\n",[26,239,241,244],{"class":28,"line":240},20,[26,242,243],{"class":66},"  :root",[26,245,70],{"class":36},[26,247,249,252,254,257],{"class":28,"line":248},21,[26,250,251],{"class":76},"    --color-background",[26,253,80],{"class":36},[26,255,256],{"class":83},"#0f172a",[26,258,87],{"class":36},[26,260,262,265,267,269],{"class":28,"line":261},22,[26,263,264],{"class":76},"    --color-background-soft",[26,266,80],{"class":36},[26,268,150],{"class":83},[26,270,87],{"class":36},[26,272,274,277,279,282],{"class":28,"line":273},23,[26,275,276],{"class":76},"    --color-background-mute",[26,278,80],{"class":36},[26,280,281],{"class":83},"#334155",[26,283,87],{"class":36},[26,285,287,290,292,294],{"class":28,"line":286},24,[26,288,289],{"class":76},"    --color-border",[26,291,80],{"class":36},[26,293,163],{"class":83},[26,295,87],{"class":36},[26,297,299,302,304,306],{"class":28,"line":298},25,[26,300,301],{"class":76},"    --color-border-hover",[26,303,80],{"class":36},[26,305,176],{"class":83},[26,307,87],{"class":36},[26,309,311,314,316,318],{"class":28,"line":310},26,[26,312,313],{"class":76},"    --color-heading",[26,315,80],{"class":36},[26,317,111],{"class":83},[26,319,87],{"class":36},[26,321,323,326,328,330],{"class":28,"line":322},27,[26,324,325],{"class":76},"    --color-text",[26,327,80],{"class":36},[26,329,137],{"class":83},[26,331,87],{"class":36},[26,333,335,338,340,343],{"class":28,"line":334},28,[26,336,337],{"class":76},"    --color-text-soft",[26,339,80],{"class":36},[26,341,342],{"class":83},"#94a3b8",[26,344,87],{"class":36},[26,346,348,351,353,356],{"class":28,"line":347},29,[26,349,350],{"class":76},"    --color-primary",[26,352,80],{"class":36},[26,354,355],{"class":83},"#38bdf8",[26,357,87],{"class":36},[26,359,361,364,366,368],{"class":28,"line":360},30,[26,362,363],{"class":76},"    --color-primary-hover",[26,365,80],{"class":36},[26,367,189],{"class":83},[26,369,87],{"class":36},[26,371,373,376,378,381],{"class":28,"line":372},31,[26,374,375],{"class":76},"    --color-primary-soft",[26,377,80],{"class":36},[26,379,380],{"class":83},"#0c4a6e",[26,382,87],{"class":36},[26,384,386],{"class":28,"line":385},32,[26,387,388],{"class":36},"  }\n",[26,390,392],{"class":28,"line":391},33,[26,393,223],{"class":36},[26,395,397],{"class":28,"line":396},34,[26,398,60],{"emptyLinePlaceholder":59},[26,400,402,406],{"class":28,"line":401},35,[26,403,405],{"class":404},"s9eBZ","body",[26,407,70],{"class":36},[26,409,411,414,416,419,422],{"class":28,"line":410},36,[26,412,413],{"class":83},"  min-height",[26,415,80],{"class":36},[26,417,418],{"class":83},"100",[26,420,421],{"class":32},"vh",[26,423,87],{"class":36},[26,425,427,430,432,435,438,441],{"class":28,"line":426},37,[26,428,429],{"class":83},"  color",[26,431,80],{"class":36},[26,433,434],{"class":83},"var",[26,436,437],{"class":36},"(",[26,439,440],{"class":76},"--color-text",[26,442,443],{"class":36},");\n",[26,445,447,450,452,454,456,459],{"class":28,"line":446},38,[26,448,449],{"class":83},"  background",[26,451,80],{"class":36},[26,453,434],{"class":83},[26,455,437],{"class":36},[26,457,458],{"class":76},"--color-background",[26,460,443],{"class":36},[26,462,464,467,469,472,475,478,481,484,486],{"class":28,"line":463},39,[26,465,466],{"class":83},"  transition",[26,468,80],{"class":36},[26,470,471],{"class":83},"color",[26,473,474],{"class":83}," 0.5",[26,476,477],{"class":32},"s",[26,479,480],{"class":36},", background-color ",[26,482,483],{"class":83},"0.5",[26,485,477],{"class":32},[26,487,87],{"class":36},[26,489,491,494,496,499],{"class":28,"line":490},40,[26,492,493],{"class":83},"  line-height",[26,495,80],{"class":36},[26,497,498],{"class":83},"1.6",[26,500,87],{"class":36},[26,502,504,507,510,513,516,520,523,526],{"class":28,"line":503},41,[26,505,506],{"class":83},"  font-family",[26,508,509],{"class":36},": Inter, ",[26,511,512],{"class":83},"-apple-system",[26,514,515],{"class":36},", BlinkMacSystemFont, ",[26,517,519],{"class":518},"sZZnC","'Segoe UI'",[26,521,522],{"class":36},", Roboto, ",[26,524,525],{"class":83},"sans-serif",[26,527,87],{"class":36},[26,529,531,534,536,539],{"class":28,"line":530},42,[26,532,533],{"class":83},"  font-synthesis",[26,535,80],{"class":36},[26,537,538],{"class":83},"none",[26,540,87],{"class":36},[26,542,544,547,549,552],{"class":28,"line":543},43,[26,545,546],{"class":83},"  text-rendering",[26,548,80],{"class":36},[26,550,551],{"class":83},"optimizeLegibility",[26,553,87],{"class":36},[26,555,557,560,562,565],{"class":28,"line":556},44,[26,558,559],{"class":83},"  -webkit-font-smoothing",[26,561,80],{"class":36},[26,563,564],{"class":83},"antialiased",[26,566,87],{"class":36},[26,568,570,573,575,578],{"class":28,"line":569},45,[26,571,572],{"class":83},"  -moz-osx-font-smoothing",[26,574,80],{"class":36},[26,576,577],{"class":83},"grayscale",[26,579,87],{"class":36},[26,581,583],{"class":28,"line":582},46,[26,584,223],{"class":36},[15,586,591],{"className":587,"code":588,"filename":589,"language":590,"meta":21,"style":21},"language-vue shiki shiki-themes github-light github-dark","\u003Cscript setup lang=\"ts\">\nimport { RouterView } from 'vue-router'\nimport AppHeader from '.\u002Fcomponents\u002FAppHeader.vue'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv id=\"app\" class=\"min-h-screen bg-background\">\n    \u003CAppHeader \u002F>\n    \u003Cmain class=\"container mx-auto px-4 py-8\">\n      \u003CRouterView \u002F>\n    \u003C\u002Fmain>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n\n\u003Cstyle scoped>\n#app {\n  font-weight: normal;\n}\n\u003C\u002Fstyle>\n","src\u002FApp.vue","vue",[23,592,593,616,630,642,651,655,664,690,701,717,727,736,745,753,757,769,776,788,792],{"__ignoreMap":21},[26,594,595,598,601,604,607,610,613],{"class":28,"line":29},[26,596,597],{"class":36},"\u003C",[26,599,600],{"class":404},"script",[26,602,603],{"class":66}," setup",[26,605,606],{"class":66}," lang",[26,608,609],{"class":36},"=",[26,611,612],{"class":518},"\"ts\"",[26,614,615],{"class":36},">\n",[26,617,618,621,624,627],{"class":28,"line":40},[26,619,620],{"class":32},"import",[26,622,623],{"class":36}," { RouterView } ",[26,625,626],{"class":32},"from",[26,628,629],{"class":518}," 'vue-router'\n",[26,631,632,634,637,639],{"class":28,"line":48},[26,633,620],{"class":32},[26,635,636],{"class":36}," AppHeader ",[26,638,626],{"class":32},[26,640,641],{"class":518}," '.\u002Fcomponents\u002FAppHeader.vue'\n",[26,643,644,647,649],{"class":28,"line":56},[26,645,646],{"class":36},"\u003C\u002F",[26,648,600],{"class":404},[26,650,615],{"class":36},[26,652,653],{"class":28,"line":63},[26,654,60],{"emptyLinePlaceholder":59},[26,656,657,659,662],{"class":28,"line":73},[26,658,597],{"class":36},[26,660,661],{"class":404},"template",[26,663,615],{"class":36},[26,665,666,669,672,675,677,680,683,685,688],{"class":28,"line":90},[26,667,668],{"class":36},"  \u003C",[26,670,671],{"class":404},"div",[26,673,674],{"class":66}," id",[26,676,609],{"class":36},[26,678,679],{"class":518},"\"app\"",[26,681,682],{"class":66}," class",[26,684,609],{"class":36},[26,686,687],{"class":518},"\"min-h-screen bg-background\"",[26,689,615],{"class":36},[26,691,692,695,698],{"class":28,"line":103},[26,693,694],{"class":36},"    \u003C",[26,696,697],{"class":404},"AppHeader",[26,699,700],{"class":36}," \u002F>\n",[26,702,703,705,708,710,712,715],{"class":28,"line":116},[26,704,694],{"class":36},[26,706,707],{"class":404},"main",[26,709,682],{"class":66},[26,711,609],{"class":36},[26,713,714],{"class":518},"\"container mx-auto px-4 py-8\"",[26,716,615],{"class":36},[26,718,719,722,725],{"class":28,"line":129},[26,720,721],{"class":36},"      \u003C",[26,723,724],{"class":404},"RouterView",[26,726,700],{"class":36},[26,728,729,732,734],{"class":28,"line":142},[26,730,731],{"class":36},"    \u003C\u002F",[26,733,707],{"class":404},[26,735,615],{"class":36},[26,737,738,741,743],{"class":28,"line":155},[26,739,740],{"class":36},"  \u003C\u002F",[26,742,671],{"class":404},[26,744,615],{"class":36},[26,746,747,749,751],{"class":28,"line":168},[26,748,646],{"class":36},[26,750,661],{"class":404},[26,752,615],{"class":36},[26,754,755],{"class":28,"line":181},[26,756,60],{"emptyLinePlaceholder":59},[26,758,759,761,764,767],{"class":28,"line":194},[26,760,597],{"class":36},[26,762,763],{"class":404},"style",[26,765,766],{"class":66}," scoped",[26,768,615],{"class":36},[26,770,771,774],{"class":28,"line":207},[26,772,773],{"class":66},"#app",[26,775,70],{"class":36},[26,777,778,781,783,786],{"class":28,"line":220},[26,779,780],{"class":83},"  font-weight",[26,782,80],{"class":36},[26,784,785],{"class":83},"normal",[26,787,87],{"class":36},[26,789,790],{"class":28,"line":226},[26,791,223],{"class":36},[26,793,794,796,798],{"class":28,"line":231},[26,795,646],{"class":36},[26,797,763],{"class":404},[26,799,615],{"class":36},[15,801,804],{"className":587,"code":802,"filename":803,"language":590,"meta":21,"style":21},"\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { RouterLink } from 'vue-router'\n\nconst isMenuOpen = ref(false)\n\nconst toggleMenu = () => {\n  isMenuOpen.value = !isMenuOpen.value\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cheader class=\"bg-background-soft border-b border-border\">\n    \u003Cnav class=\"container mx-auto px-4 py-4\">\n      \u003Cdiv class=\"flex items-center justify-between\">\n        \u003CRouterLink\n          to=\"\u002F\"\n          class=\"text-2xl font-bold text-heading hover:text-primary transition-colors\"\n        >\n          Vue App\n        \u003C\u002FRouterLink>\n\n        \u003Cdiv class=\"hidden md:flex items-center space-x-6\">\n          \u003CRouterLink\n            to=\"\u002F\"\n            class=\"text-text hover:text-primary transition-colors\"\n            active-class=\"text-primary font-semibold\"\n          >\n            Home\n          \u003C\u002FRouterLink>\n          \u003CRouterLink\n            to=\"\u002Fabout\"\n            class=\"text-text hover:text-primary transition-colors\"\n            active-class=\"text-primary font-semibold\"\n          >\n            About\n          \u003C\u002FRouterLink>\n        \u003C\u002Fdiv>\n\n        \u003Cbutton\n          @click=\"toggleMenu\"\n          class=\"md:hidden p-2 rounded-lg hover:bg-background-mute transition-colors\"\n        >\n          \u003Csvg class=\"w-6 h-6\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n            \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 6h16M4 12h16M4 18h16\">\u003C\u002Fpath>\n          \u003C\u002Fsvg>\n        \u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv v-if=\"isMenuOpen\" class=\"md:hidden mt-4 pb-4 border-t border-border pt-4\">\n        \u003CRouterLink\n          to=\"\u002F\"\n          class=\"block py-2 text-text hover:text-primary transition-colors\"\n          @click=\"isMenuOpen = false\"\n        >\n          Home\n        \u003C\u002FRouterLink>\n        \u003CRouterLink\n          to=\"\u002Fabout\"\n          class=\"block py-2 text-text hover:text-primary transition-colors\"\n          @click=\"isMenuOpen = false\"\n        >\n          About\n        \u003C\u002FRouterLink>\n      \u003C\u002Fdiv>\n    \u003C\u002Fnav>\n  \u003C\u002Fheader>\n\u003C\u002Ftemplate>\n","src\u002Fcomponents\u002FAppHeader.vue",[23,805,806,822,834,845,849,871,875,892,905,909,917,921,929,945,961,976,984,994,1004,1009,1014,1024,1028,1043,1050,1059,1069,1079,1084,1089,1098,1104,1113,1121,1129,1133,1138,1146,1154,1158,1165,1175,1184,1188,1228,1274,1282,1292,1302,1307,1331,1338,1347,1357,1367,1372,1378,1387,1394,1403,1412,1421,1426,1432,1441,1450,1459,1468],{"__ignoreMap":21},[26,807,808,810,812,814,816,818,820],{"class":28,"line":29},[26,809,597],{"class":36},[26,811,600],{"class":404},[26,813,603],{"class":66},[26,815,606],{"class":66},[26,817,609],{"class":36},[26,819,612],{"class":518},[26,821,615],{"class":36},[26,823,824,826,829,831],{"class":28,"line":40},[26,825,620],{"class":32},[26,827,828],{"class":36}," { ref } ",[26,830,626],{"class":32},[26,832,833],{"class":518}," 'vue'\n",[26,835,836,838,841,843],{"class":28,"line":48},[26,837,620],{"class":32},[26,839,840],{"class":36}," { RouterLink } ",[26,842,626],{"class":32},[26,844,629],{"class":518},[26,846,847],{"class":28,"line":56},[26,848,60],{"emptyLinePlaceholder":59},[26,850,851,854,857,860,863,865,868],{"class":28,"line":63},[26,852,853],{"class":32},"const",[26,855,856],{"class":83}," isMenuOpen",[26,858,859],{"class":32}," =",[26,861,862],{"class":66}," ref",[26,864,437],{"class":36},[26,866,867],{"class":83},"false",[26,869,870],{"class":36},")\n",[26,872,873],{"class":28,"line":73},[26,874,60],{"emptyLinePlaceholder":59},[26,876,877,879,882,884,887,890],{"class":28,"line":90},[26,878,853],{"class":32},[26,880,881],{"class":66}," toggleMenu",[26,883,859],{"class":32},[26,885,886],{"class":36}," () ",[26,888,889],{"class":32},"=>",[26,891,70],{"class":36},[26,893,894,897,899,902],{"class":28,"line":103},[26,895,896],{"class":36},"  isMenuOpen.value ",[26,898,609],{"class":32},[26,900,901],{"class":32}," !",[26,903,904],{"class":36},"isMenuOpen.value\n",[26,906,907],{"class":28,"line":116},[26,908,223],{"class":36},[26,910,911,913,915],{"class":28,"line":129},[26,912,646],{"class":36},[26,914,600],{"class":404},[26,916,615],{"class":36},[26,918,919],{"class":28,"line":142},[26,920,60],{"emptyLinePlaceholder":59},[26,922,923,925,927],{"class":28,"line":155},[26,924,597],{"class":36},[26,926,661],{"class":404},[26,928,615],{"class":36},[26,930,931,933,936,938,940,943],{"class":28,"line":168},[26,932,668],{"class":36},[26,934,935],{"class":404},"header",[26,937,682],{"class":66},[26,939,609],{"class":36},[26,941,942],{"class":518},"\"bg-background-soft border-b border-border\"",[26,944,615],{"class":36},[26,946,947,949,952,954,956,959],{"class":28,"line":181},[26,948,694],{"class":36},[26,950,951],{"class":404},"nav",[26,953,682],{"class":66},[26,955,609],{"class":36},[26,957,958],{"class":518},"\"container mx-auto px-4 py-4\"",[26,960,615],{"class":36},[26,962,963,965,967,969,971,974],{"class":28,"line":194},[26,964,721],{"class":36},[26,966,671],{"class":404},[26,968,682],{"class":66},[26,970,609],{"class":36},[26,972,973],{"class":518},"\"flex items-center justify-between\"",[26,975,615],{"class":36},[26,977,978,981],{"class":28,"line":207},[26,979,980],{"class":36},"        \u003C",[26,982,983],{"class":404},"RouterLink\n",[26,985,986,989,991],{"class":28,"line":220},[26,987,988],{"class":66},"          to",[26,990,609],{"class":36},[26,992,993],{"class":518},"\"\u002F\"\n",[26,995,996,999,1001],{"class":28,"line":226},[26,997,998],{"class":66},"          class",[26,1000,609],{"class":36},[26,1002,1003],{"class":518},"\"text-2xl font-bold text-heading hover:text-primary transition-colors\"\n",[26,1005,1006],{"class":28,"line":231},[26,1007,1008],{"class":36},"        >\n",[26,1010,1011],{"class":28,"line":240},[26,1012,1013],{"class":36},"          Vue App\n",[26,1015,1016,1019,1022],{"class":28,"line":248},[26,1017,1018],{"class":36},"        \u003C\u002F",[26,1020,1021],{"class":404},"RouterLink",[26,1023,615],{"class":36},[26,1025,1026],{"class":28,"line":261},[26,1027,60],{"emptyLinePlaceholder":59},[26,1029,1030,1032,1034,1036,1038,1041],{"class":28,"line":273},[26,1031,980],{"class":36},[26,1033,671],{"class":404},[26,1035,682],{"class":66},[26,1037,609],{"class":36},[26,1039,1040],{"class":518},"\"hidden md:flex items-center space-x-6\"",[26,1042,615],{"class":36},[26,1044,1045,1048],{"class":28,"line":286},[26,1046,1047],{"class":36},"          \u003C",[26,1049,983],{"class":404},[26,1051,1052,1055,1057],{"class":28,"line":298},[26,1053,1054],{"class":66},"            to",[26,1056,609],{"class":36},[26,1058,993],{"class":518},[26,1060,1061,1064,1066],{"class":28,"line":310},[26,1062,1063],{"class":66},"            class",[26,1065,609],{"class":36},[26,1067,1068],{"class":518},"\"text-text hover:text-primary transition-colors\"\n",[26,1070,1071,1074,1076],{"class":28,"line":322},[26,1072,1073],{"class":66},"            active-class",[26,1075,609],{"class":36},[26,1077,1078],{"class":518},"\"text-primary font-semibold\"\n",[26,1080,1081],{"class":28,"line":334},[26,1082,1083],{"class":36},"          >\n",[26,1085,1086],{"class":28,"line":347},[26,1087,1088],{"class":36},"            Home\n",[26,1090,1091,1094,1096],{"class":28,"line":360},[26,1092,1093],{"class":36},"          \u003C\u002F",[26,1095,1021],{"class":404},[26,1097,615],{"class":36},[26,1099,1100,1102],{"class":28,"line":372},[26,1101,1047],{"class":36},[26,1103,983],{"class":404},[26,1105,1106,1108,1110],{"class":28,"line":385},[26,1107,1054],{"class":66},[26,1109,609],{"class":36},[26,1111,1112],{"class":518},"\"\u002Fabout\"\n",[26,1114,1115,1117,1119],{"class":28,"line":391},[26,1116,1063],{"class":66},[26,1118,609],{"class":36},[26,1120,1068],{"class":518},[26,1122,1123,1125,1127],{"class":28,"line":396},[26,1124,1073],{"class":66},[26,1126,609],{"class":36},[26,1128,1078],{"class":518},[26,1130,1131],{"class":28,"line":401},[26,1132,1083],{"class":36},[26,1134,1135],{"class":28,"line":410},[26,1136,1137],{"class":36},"            About\n",[26,1139,1140,1142,1144],{"class":28,"line":426},[26,1141,1093],{"class":36},[26,1143,1021],{"class":404},[26,1145,615],{"class":36},[26,1147,1148,1150,1152],{"class":28,"line":446},[26,1149,1018],{"class":36},[26,1151,671],{"class":404},[26,1153,615],{"class":36},[26,1155,1156],{"class":28,"line":463},[26,1157,60],{"emptyLinePlaceholder":59},[26,1159,1160,1162],{"class":28,"line":490},[26,1161,980],{"class":36},[26,1163,1164],{"class":404},"button\n",[26,1166,1167,1170,1172],{"class":28,"line":503},[26,1168,1169],{"class":66},"          @click",[26,1171,609],{"class":36},[26,1173,1174],{"class":518},"\"toggleMenu\"\n",[26,1176,1177,1179,1181],{"class":28,"line":530},[26,1178,998],{"class":66},[26,1180,609],{"class":36},[26,1182,1183],{"class":518},"\"md:hidden p-2 rounded-lg hover:bg-background-mute transition-colors\"\n",[26,1185,1186],{"class":28,"line":543},[26,1187,1008],{"class":36},[26,1189,1190,1192,1195,1197,1199,1202,1205,1207,1210,1213,1215,1218,1221,1223,1226],{"class":28,"line":556},[26,1191,1047],{"class":36},[26,1193,1194],{"class":404},"svg",[26,1196,682],{"class":66},[26,1198,609],{"class":36},[26,1200,1201],{"class":518},"\"w-6 h-6\"",[26,1203,1204],{"class":66}," fill",[26,1206,609],{"class":36},[26,1208,1209],{"class":518},"\"none\"",[26,1211,1212],{"class":66}," stroke",[26,1214,609],{"class":36},[26,1216,1217],{"class":518},"\"currentColor\"",[26,1219,1220],{"class":66}," viewBox",[26,1222,609],{"class":36},[26,1224,1225],{"class":518},"\"0 0 24 24\"",[26,1227,615],{"class":36},[26,1229,1230,1233,1236,1239,1241,1244,1247,1249,1251,1254,1256,1259,1262,1264,1267,1270,1272],{"class":28,"line":569},[26,1231,1232],{"class":36},"            \u003C",[26,1234,1235],{"class":404},"path",[26,1237,1238],{"class":66}," stroke-linecap",[26,1240,609],{"class":36},[26,1242,1243],{"class":518},"\"round\"",[26,1245,1246],{"class":66}," stroke-linejoin",[26,1248,609],{"class":36},[26,1250,1243],{"class":518},[26,1252,1253],{"class":66}," stroke-width",[26,1255,609],{"class":36},[26,1257,1258],{"class":518},"\"2\"",[26,1260,1261],{"class":66}," d",[26,1263,609],{"class":36},[26,1265,1266],{"class":518},"\"M4 6h16M4 12h16M4 18h16\"",[26,1268,1269],{"class":36},">\u003C\u002F",[26,1271,1235],{"class":404},[26,1273,615],{"class":36},[26,1275,1276,1278,1280],{"class":28,"line":582},[26,1277,1093],{"class":36},[26,1279,1194],{"class":404},[26,1281,615],{"class":36},[26,1283,1285,1287,1290],{"class":28,"line":1284},47,[26,1286,1018],{"class":36},[26,1288,1289],{"class":404},"button",[26,1291,615],{"class":36},[26,1293,1295,1298,1300],{"class":28,"line":1294},48,[26,1296,1297],{"class":36},"      \u003C\u002F",[26,1299,671],{"class":404},[26,1301,615],{"class":36},[26,1303,1305],{"class":28,"line":1304},49,[26,1306,60],{"emptyLinePlaceholder":59},[26,1308,1310,1312,1314,1317,1319,1322,1324,1326,1329],{"class":28,"line":1309},50,[26,1311,721],{"class":36},[26,1313,671],{"class":404},[26,1315,1316],{"class":66}," v-if",[26,1318,609],{"class":36},[26,1320,1321],{"class":518},"\"isMenuOpen\"",[26,1323,682],{"class":66},[26,1325,609],{"class":36},[26,1327,1328],{"class":518},"\"md:hidden mt-4 pb-4 border-t border-border pt-4\"",[26,1330,615],{"class":36},[26,1332,1334,1336],{"class":28,"line":1333},51,[26,1335,980],{"class":36},[26,1337,983],{"class":404},[26,1339,1341,1343,1345],{"class":28,"line":1340},52,[26,1342,988],{"class":66},[26,1344,609],{"class":36},[26,1346,993],{"class":518},[26,1348,1350,1352,1354],{"class":28,"line":1349},53,[26,1351,998],{"class":66},[26,1353,609],{"class":36},[26,1355,1356],{"class":518},"\"block py-2 text-text hover:text-primary transition-colors\"\n",[26,1358,1360,1362,1364],{"class":28,"line":1359},54,[26,1361,1169],{"class":66},[26,1363,609],{"class":36},[26,1365,1366],{"class":518},"\"isMenuOpen = false\"\n",[26,1368,1370],{"class":28,"line":1369},55,[26,1371,1008],{"class":36},[26,1373,1375],{"class":28,"line":1374},56,[26,1376,1377],{"class":36},"          Home\n",[26,1379,1381,1383,1385],{"class":28,"line":1380},57,[26,1382,1018],{"class":36},[26,1384,1021],{"class":404},[26,1386,615],{"class":36},[26,1388,1390,1392],{"class":28,"line":1389},58,[26,1391,980],{"class":36},[26,1393,983],{"class":404},[26,1395,1397,1399,1401],{"class":28,"line":1396},59,[26,1398,988],{"class":66},[26,1400,609],{"class":36},[26,1402,1112],{"class":518},[26,1404,1406,1408,1410],{"class":28,"line":1405},60,[26,1407,998],{"class":66},[26,1409,609],{"class":36},[26,1411,1356],{"class":518},[26,1413,1415,1417,1419],{"class":28,"line":1414},61,[26,1416,1169],{"class":66},[26,1418,609],{"class":36},[26,1420,1366],{"class":518},[26,1422,1424],{"class":28,"line":1423},62,[26,1425,1008],{"class":36},[26,1427,1429],{"class":28,"line":1428},63,[26,1430,1431],{"class":36},"          About\n",[26,1433,1435,1437,1439],{"class":28,"line":1434},64,[26,1436,1018],{"class":36},[26,1438,1021],{"class":404},[26,1440,615],{"class":36},[26,1442,1444,1446,1448],{"class":28,"line":1443},65,[26,1445,1297],{"class":36},[26,1447,671],{"class":404},[26,1449,615],{"class":36},[26,1451,1453,1455,1457],{"class":28,"line":1452},66,[26,1454,731],{"class":36},[26,1456,951],{"class":404},[26,1458,615],{"class":36},[26,1460,1462,1464,1466],{"class":28,"line":1461},67,[26,1463,740],{"class":36},[26,1465,935],{"class":404},[26,1467,615],{"class":36},[26,1469,1471,1473,1475],{"class":28,"line":1470},68,[26,1472,646],{"class":36},[26,1474,661],{"class":404},[26,1476,615],{"class":36},[15,1478,1481],{"className":587,"code":1479,"filename":1480,"language":590,"meta":21,"style":21},"\u003Cscript setup lang=\"ts\">\nimport { ref, onMounted } from 'vue'\nimport HelloWorld from '..\u002Fcomponents\u002FHelloWorld.vue'\n\nconst count = ref(0)\n\nconst increment = () => {\n  count.value++\n}\n\nonMounted(() => {\n  console.log('Home view mounted!')\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"max-w-4xl mx-auto text-center\">\n    \u003CHelloWorld \u002F>\n\n    \u003Cdiv class=\"mt-12 p-8 bg-background-soft rounded-xl border border-border\">\n      \u003Ch2 class=\"text-2xl font-bold text-heading mb-4\">Interactive Counter\u003C\u002Fh2>\n      \u003Cp class=\"text-text-soft mb-6\">\n        Click the button to increment the counter and test Vue's reactivity.\n      \u003C\u002Fp>\n\n      \u003Cdiv class=\"flex items-center justify-center gap-4 mb-6\">\n        \u003Cbutton\n          @click=\"increment\"\n          class=\"bg-primary hover:bg-primary-hover text-white px-6 py-3 rounded-lg transition-colors font-semibold\"\n        >\n          Count: {{ count }}\n        \u003C\u002Fbutton>\n      \u003C\u002Fdiv>\n\n      \u003Cp class=\"text-sm text-text-soft\">\n        The counter value is: \u003Cspan class=\"font-mono text-primary\">{{ count }}\u003C\u002Fspan>\n      \u003C\u002Fp>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","src\u002Fviews\u002FHomeView.vue",[23,1482,1483,1499,1510,1522,1526,1544,1548,1563,1571,1575,1579,1591,1606,1611,1619,1623,1631,1646,1655,1659,1674,1695,1711,1716,1724,1728,1743,1749,1758,1767,1771,1776,1784,1792,1796,1811,1832,1840,1848,1856],{"__ignoreMap":21},[26,1484,1485,1487,1489,1491,1493,1495,1497],{"class":28,"line":29},[26,1486,597],{"class":36},[26,1488,600],{"class":404},[26,1490,603],{"class":66},[26,1492,606],{"class":66},[26,1494,609],{"class":36},[26,1496,612],{"class":518},[26,1498,615],{"class":36},[26,1500,1501,1503,1506,1508],{"class":28,"line":40},[26,1502,620],{"class":32},[26,1504,1505],{"class":36}," { ref, onMounted } ",[26,1507,626],{"class":32},[26,1509,833],{"class":518},[26,1511,1512,1514,1517,1519],{"class":28,"line":48},[26,1513,620],{"class":32},[26,1515,1516],{"class":36}," HelloWorld ",[26,1518,626],{"class":32},[26,1520,1521],{"class":518}," '..\u002Fcomponents\u002FHelloWorld.vue'\n",[26,1523,1524],{"class":28,"line":56},[26,1525,60],{"emptyLinePlaceholder":59},[26,1527,1528,1530,1533,1535,1537,1539,1542],{"class":28,"line":63},[26,1529,853],{"class":32},[26,1531,1532],{"class":83}," count",[26,1534,859],{"class":32},[26,1536,862],{"class":66},[26,1538,437],{"class":36},[26,1540,1541],{"class":83},"0",[26,1543,870],{"class":36},[26,1545,1546],{"class":28,"line":73},[26,1547,60],{"emptyLinePlaceholder":59},[26,1549,1550,1552,1555,1557,1559,1561],{"class":28,"line":90},[26,1551,853],{"class":32},[26,1553,1554],{"class":66}," increment",[26,1556,859],{"class":32},[26,1558,886],{"class":36},[26,1560,889],{"class":32},[26,1562,70],{"class":36},[26,1564,1565,1568],{"class":28,"line":103},[26,1566,1567],{"class":36},"  count.value",[26,1569,1570],{"class":32},"++\n",[26,1572,1573],{"class":28,"line":116},[26,1574,223],{"class":36},[26,1576,1577],{"class":28,"line":129},[26,1578,60],{"emptyLinePlaceholder":59},[26,1580,1581,1584,1587,1589],{"class":28,"line":142},[26,1582,1583],{"class":66},"onMounted",[26,1585,1586],{"class":36},"(() ",[26,1588,889],{"class":32},[26,1590,70],{"class":36},[26,1592,1593,1596,1599,1601,1604],{"class":28,"line":155},[26,1594,1595],{"class":36},"  console.",[26,1597,1598],{"class":66},"log",[26,1600,437],{"class":36},[26,1602,1603],{"class":518},"'Home view mounted!'",[26,1605,870],{"class":36},[26,1607,1608],{"class":28,"line":168},[26,1609,1610],{"class":36},"})\n",[26,1612,1613,1615,1617],{"class":28,"line":181},[26,1614,646],{"class":36},[26,1616,600],{"class":404},[26,1618,615],{"class":36},[26,1620,1621],{"class":28,"line":194},[26,1622,60],{"emptyLinePlaceholder":59},[26,1624,1625,1627,1629],{"class":28,"line":207},[26,1626,597],{"class":36},[26,1628,661],{"class":404},[26,1630,615],{"class":36},[26,1632,1633,1635,1637,1639,1641,1644],{"class":28,"line":220},[26,1634,668],{"class":36},[26,1636,671],{"class":404},[26,1638,682],{"class":66},[26,1640,609],{"class":36},[26,1642,1643],{"class":518},"\"max-w-4xl mx-auto text-center\"",[26,1645,615],{"class":36},[26,1647,1648,1650,1653],{"class":28,"line":226},[26,1649,694],{"class":36},[26,1651,1652],{"class":404},"HelloWorld",[26,1654,700],{"class":36},[26,1656,1657],{"class":28,"line":231},[26,1658,60],{"emptyLinePlaceholder":59},[26,1660,1661,1663,1665,1667,1669,1672],{"class":28,"line":240},[26,1662,694],{"class":36},[26,1664,671],{"class":404},[26,1666,682],{"class":66},[26,1668,609],{"class":36},[26,1670,1671],{"class":518},"\"mt-12 p-8 bg-background-soft rounded-xl border border-border\"",[26,1673,615],{"class":36},[26,1675,1676,1678,1681,1683,1685,1688,1691,1693],{"class":28,"line":248},[26,1677,721],{"class":36},[26,1679,1680],{"class":404},"h2",[26,1682,682],{"class":66},[26,1684,609],{"class":36},[26,1686,1687],{"class":518},"\"text-2xl font-bold text-heading mb-4\"",[26,1689,1690],{"class":36},">Interactive Counter\u003C\u002F",[26,1692,1680],{"class":404},[26,1694,615],{"class":36},[26,1696,1697,1699,1702,1704,1706,1709],{"class":28,"line":261},[26,1698,721],{"class":36},[26,1700,1701],{"class":404},"p",[26,1703,682],{"class":66},[26,1705,609],{"class":36},[26,1707,1708],{"class":518},"\"text-text-soft mb-6\"",[26,1710,615],{"class":36},[26,1712,1713],{"class":28,"line":273},[26,1714,1715],{"class":36},"        Click the button to increment the counter and test Vue's reactivity.\n",[26,1717,1718,1720,1722],{"class":28,"line":286},[26,1719,1297],{"class":36},[26,1721,1701],{"class":404},[26,1723,615],{"class":36},[26,1725,1726],{"class":28,"line":298},[26,1727,60],{"emptyLinePlaceholder":59},[26,1729,1730,1732,1734,1736,1738,1741],{"class":28,"line":310},[26,1731,721],{"class":36},[26,1733,671],{"class":404},[26,1735,682],{"class":66},[26,1737,609],{"class":36},[26,1739,1740],{"class":518},"\"flex items-center justify-center gap-4 mb-6\"",[26,1742,615],{"class":36},[26,1744,1745,1747],{"class":28,"line":322},[26,1746,980],{"class":36},[26,1748,1164],{"class":404},[26,1750,1751,1753,1755],{"class":28,"line":334},[26,1752,1169],{"class":66},[26,1754,609],{"class":36},[26,1756,1757],{"class":518},"\"increment\"\n",[26,1759,1760,1762,1764],{"class":28,"line":347},[26,1761,998],{"class":66},[26,1763,609],{"class":36},[26,1765,1766],{"class":518},"\"bg-primary hover:bg-primary-hover text-white px-6 py-3 rounded-lg transition-colors font-semibold\"\n",[26,1768,1769],{"class":28,"line":360},[26,1770,1008],{"class":36},[26,1772,1773],{"class":28,"line":372},[26,1774,1775],{"class":36},"          Count: {{ count }}\n",[26,1777,1778,1780,1782],{"class":28,"line":385},[26,1779,1018],{"class":36},[26,1781,1289],{"class":404},[26,1783,615],{"class":36},[26,1785,1786,1788,1790],{"class":28,"line":391},[26,1787,1297],{"class":36},[26,1789,671],{"class":404},[26,1791,615],{"class":36},[26,1793,1794],{"class":28,"line":396},[26,1795,60],{"emptyLinePlaceholder":59},[26,1797,1798,1800,1802,1804,1806,1809],{"class":28,"line":401},[26,1799,721],{"class":36},[26,1801,1701],{"class":404},[26,1803,682],{"class":66},[26,1805,609],{"class":36},[26,1807,1808],{"class":518},"\"text-sm text-text-soft\"",[26,1810,615],{"class":36},[26,1812,1813,1816,1818,1820,1822,1825,1828,1830],{"class":28,"line":410},[26,1814,1815],{"class":36},"        The counter value is: \u003C",[26,1817,26],{"class":404},[26,1819,682],{"class":66},[26,1821,609],{"class":36},[26,1823,1824],{"class":518},"\"font-mono text-primary\"",[26,1826,1827],{"class":36},">{{ count }}\u003C\u002F",[26,1829,26],{"class":404},[26,1831,615],{"class":36},[26,1833,1834,1836,1838],{"class":28,"line":426},[26,1835,1297],{"class":36},[26,1837,1701],{"class":404},[26,1839,615],{"class":36},[26,1841,1842,1844,1846],{"class":28,"line":446},[26,1843,731],{"class":36},[26,1845,671],{"class":404},[26,1847,615],{"class":36},[26,1849,1850,1852,1854],{"class":28,"line":463},[26,1851,740],{"class":36},[26,1853,671],{"class":404},[26,1855,615],{"class":36},[26,1857,1858,1860,1862],{"class":28,"line":490},[26,1859,646],{"class":36},[26,1861,661],{"class":404},[26,1863,615],{"class":36},[15,1865,1868],{"className":587,"code":1866,"filename":1867,"language":590,"meta":21,"style":21},"\u003Ctemplate>\n  \u003Cdiv class=\"max-w-2xl mx-auto\">\n    \u003Ch1 class=\"text-4xl font-bold text-heading mb-6 text-center\">About This App\u003C\u002Fh1>\n\n    \u003Cdiv class=\"prose prose-slate dark:prose-invert mx-auto\">\n      \u003Cp class=\"text-lg text-text leading-relaxed mb-6\">\n        This is a modern Vue 3 application built with the Composition API, TypeScript,\n        and Tailwind CSS. It demonstrates best practices for Vue development in 2025.\n      \u003C\u002Fp>\n\n      \u003Cdiv class=\"bg-background-soft rounded-lg p-6 border border-border mb-6\">\n        \u003Ch2 class=\"text-2xl font-semibold text-heading mb-4\">Features\u003C\u002Fh2>\n        \u003Cul class=\"list-disc list-inside space-y-2 text-text\">\n          \u003Cli>Vue 3 with Composition API\u003C\u002Fli>\n          \u003Cli>TypeScript for type safety\u003C\u002Fli>\n          \u003Cli>Vue Router for navigation\u003C\u002Fli>\n          \u003Cli>Vite for fast development\u003C\u002Fli>\n          \u003Cli>Tailwind CSS for styling\u003C\u002Fli>\n          \u003Cli>ESLint & Prettier for code quality\u003C\u002Fli>\n          \u003Cli>Responsive design\u003C\u002Fli>\n          \u003Cli>Dark mode support\u003C\u002Fli>\n        \u003C\u002Ful>\n      \u003C\u002Fdiv>\n\n      \u003Cdiv class=\"bg-primary-soft rounded-lg p-6 border border-primary\u002F20\">\n        \u003Ch3 class=\"text-xl font-semibold text-heading mb-3\">Tech Stack\u003C\u002Fh3>\n        \u003Cdiv class=\"grid grid-cols-2 gap-4 text-sm\">\n          \u003Cdiv>\n            \u003Cstrong class=\"text-heading\">Frontend:\u003C\u002Fstrong>\n            \u003Cp class=\"text-text\">Vue 3, TypeScript, Tailwind CSS\u003C\u002Fp>\n          \u003C\u002Fdiv>\n          \u003Cdiv>\n            \u003Cstrong class=\"text-heading\">Build Tool:\u003C\u002Fstrong>\n            \u003Cp class=\"text-text\">Vite with HMR\u003C\u002Fp>\n          \u003C\u002Fdiv>\n          \u003Cdiv>\n            \u003Cstrong class=\"text-heading\">Router:\u003C\u002Fstrong>\n            \u003Cp class=\"text-text\">Vue Router 4\u003C\u002Fp>\n          \u003C\u002Fdiv>\n          \u003Cdiv>\n            \u003Cstrong class=\"text-heading\">Linting:\u003C\u002Fstrong>\n            \u003Cp class=\"text-text\">ESLint, Prettier\u003C\u002Fp>\n          \u003C\u002Fdiv>\n        \u003C\u002Fdiv>\n      \u003C\u002Fdiv>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","src\u002Fviews\u002FAboutView.vue",[23,1869,1870,1878,1893,1914,1918,1933,1948,1953,1958,1966,1970,1985,2005,2021,2035,2048,2061,2074,2087,2100,2113,2126,2134,2142,2146,2161,2182,2197,2205,2226,2246,2254,2262,2281,2300,2308,2316,2335,2354,2362,2370,2389,2408,2416,2424,2432,2440,2448],{"__ignoreMap":21},[26,1871,1872,1874,1876],{"class":28,"line":29},[26,1873,597],{"class":36},[26,1875,661],{"class":404},[26,1877,615],{"class":36},[26,1879,1880,1882,1884,1886,1888,1891],{"class":28,"line":40},[26,1881,668],{"class":36},[26,1883,671],{"class":404},[26,1885,682],{"class":66},[26,1887,609],{"class":36},[26,1889,1890],{"class":518},"\"max-w-2xl mx-auto\"",[26,1892,615],{"class":36},[26,1894,1895,1897,1900,1902,1904,1907,1910,1912],{"class":28,"line":48},[26,1896,694],{"class":36},[26,1898,1899],{"class":404},"h1",[26,1901,682],{"class":66},[26,1903,609],{"class":36},[26,1905,1906],{"class":518},"\"text-4xl font-bold text-heading mb-6 text-center\"",[26,1908,1909],{"class":36},">About This App\u003C\u002F",[26,1911,1899],{"class":404},[26,1913,615],{"class":36},[26,1915,1916],{"class":28,"line":56},[26,1917,60],{"emptyLinePlaceholder":59},[26,1919,1920,1922,1924,1926,1928,1931],{"class":28,"line":63},[26,1921,694],{"class":36},[26,1923,671],{"class":404},[26,1925,682],{"class":66},[26,1927,609],{"class":36},[26,1929,1930],{"class":518},"\"prose prose-slate dark:prose-invert mx-auto\"",[26,1932,615],{"class":36},[26,1934,1935,1937,1939,1941,1943,1946],{"class":28,"line":73},[26,1936,721],{"class":36},[26,1938,1701],{"class":404},[26,1940,682],{"class":66},[26,1942,609],{"class":36},[26,1944,1945],{"class":518},"\"text-lg text-text leading-relaxed mb-6\"",[26,1947,615],{"class":36},[26,1949,1950],{"class":28,"line":90},[26,1951,1952],{"class":36},"        This is a modern Vue 3 application built with the Composition API, TypeScript,\n",[26,1954,1955],{"class":28,"line":103},[26,1956,1957],{"class":36},"        and Tailwind CSS. It demonstrates best practices for Vue development in 2025.\n",[26,1959,1960,1962,1964],{"class":28,"line":116},[26,1961,1297],{"class":36},[26,1963,1701],{"class":404},[26,1965,615],{"class":36},[26,1967,1968],{"class":28,"line":129},[26,1969,60],{"emptyLinePlaceholder":59},[26,1971,1972,1974,1976,1978,1980,1983],{"class":28,"line":142},[26,1973,721],{"class":36},[26,1975,671],{"class":404},[26,1977,682],{"class":66},[26,1979,609],{"class":36},[26,1981,1982],{"class":518},"\"bg-background-soft rounded-lg p-6 border border-border mb-6\"",[26,1984,615],{"class":36},[26,1986,1987,1989,1991,1993,1995,1998,2001,2003],{"class":28,"line":155},[26,1988,980],{"class":36},[26,1990,1680],{"class":404},[26,1992,682],{"class":66},[26,1994,609],{"class":36},[26,1996,1997],{"class":518},"\"text-2xl font-semibold text-heading mb-4\"",[26,1999,2000],{"class":36},">Features\u003C\u002F",[26,2002,1680],{"class":404},[26,2004,615],{"class":36},[26,2006,2007,2009,2012,2014,2016,2019],{"class":28,"line":168},[26,2008,980],{"class":36},[26,2010,2011],{"class":404},"ul",[26,2013,682],{"class":66},[26,2015,609],{"class":36},[26,2017,2018],{"class":518},"\"list-disc list-inside space-y-2 text-text\"",[26,2020,615],{"class":36},[26,2022,2023,2025,2028,2031,2033],{"class":28,"line":181},[26,2024,1047],{"class":36},[26,2026,2027],{"class":404},"li",[26,2029,2030],{"class":36},">Vue 3 with Composition API\u003C\u002F",[26,2032,2027],{"class":404},[26,2034,615],{"class":36},[26,2036,2037,2039,2041,2044,2046],{"class":28,"line":194},[26,2038,1047],{"class":36},[26,2040,2027],{"class":404},[26,2042,2043],{"class":36},">TypeScript for type safety\u003C\u002F",[26,2045,2027],{"class":404},[26,2047,615],{"class":36},[26,2049,2050,2052,2054,2057,2059],{"class":28,"line":207},[26,2051,1047],{"class":36},[26,2053,2027],{"class":404},[26,2055,2056],{"class":36},">Vue Router for navigation\u003C\u002F",[26,2058,2027],{"class":404},[26,2060,615],{"class":36},[26,2062,2063,2065,2067,2070,2072],{"class":28,"line":220},[26,2064,1047],{"class":36},[26,2066,2027],{"class":404},[26,2068,2069],{"class":36},">Vite for fast development\u003C\u002F",[26,2071,2027],{"class":404},[26,2073,615],{"class":36},[26,2075,2076,2078,2080,2083,2085],{"class":28,"line":226},[26,2077,1047],{"class":36},[26,2079,2027],{"class":404},[26,2081,2082],{"class":36},">Tailwind CSS for styling\u003C\u002F",[26,2084,2027],{"class":404},[26,2086,615],{"class":36},[26,2088,2089,2091,2093,2096,2098],{"class":28,"line":231},[26,2090,1047],{"class":36},[26,2092,2027],{"class":404},[26,2094,2095],{"class":36},">ESLint & Prettier for code quality\u003C\u002F",[26,2097,2027],{"class":404},[26,2099,615],{"class":36},[26,2101,2102,2104,2106,2109,2111],{"class":28,"line":240},[26,2103,1047],{"class":36},[26,2105,2027],{"class":404},[26,2107,2108],{"class":36},">Responsive design\u003C\u002F",[26,2110,2027],{"class":404},[26,2112,615],{"class":36},[26,2114,2115,2117,2119,2122,2124],{"class":28,"line":248},[26,2116,1047],{"class":36},[26,2118,2027],{"class":404},[26,2120,2121],{"class":36},">Dark mode support\u003C\u002F",[26,2123,2027],{"class":404},[26,2125,615],{"class":36},[26,2127,2128,2130,2132],{"class":28,"line":261},[26,2129,1018],{"class":36},[26,2131,2011],{"class":404},[26,2133,615],{"class":36},[26,2135,2136,2138,2140],{"class":28,"line":273},[26,2137,1297],{"class":36},[26,2139,671],{"class":404},[26,2141,615],{"class":36},[26,2143,2144],{"class":28,"line":286},[26,2145,60],{"emptyLinePlaceholder":59},[26,2147,2148,2150,2152,2154,2156,2159],{"class":28,"line":298},[26,2149,721],{"class":36},[26,2151,671],{"class":404},[26,2153,682],{"class":66},[26,2155,609],{"class":36},[26,2157,2158],{"class":518},"\"bg-primary-soft rounded-lg p-6 border border-primary\u002F20\"",[26,2160,615],{"class":36},[26,2162,2163,2165,2168,2170,2172,2175,2178,2180],{"class":28,"line":310},[26,2164,980],{"class":36},[26,2166,2167],{"class":404},"h3",[26,2169,682],{"class":66},[26,2171,609],{"class":36},[26,2173,2174],{"class":518},"\"text-xl font-semibold text-heading mb-3\"",[26,2176,2177],{"class":36},">Tech Stack\u003C\u002F",[26,2179,2167],{"class":404},[26,2181,615],{"class":36},[26,2183,2184,2186,2188,2190,2192,2195],{"class":28,"line":322},[26,2185,980],{"class":36},[26,2187,671],{"class":404},[26,2189,682],{"class":66},[26,2191,609],{"class":36},[26,2193,2194],{"class":518},"\"grid grid-cols-2 gap-4 text-sm\"",[26,2196,615],{"class":36},[26,2198,2199,2201,2203],{"class":28,"line":334},[26,2200,1047],{"class":36},[26,2202,671],{"class":404},[26,2204,615],{"class":36},[26,2206,2207,2209,2212,2214,2216,2219,2222,2224],{"class":28,"line":347},[26,2208,1232],{"class":36},[26,2210,2211],{"class":404},"strong",[26,2213,682],{"class":66},[26,2215,609],{"class":36},[26,2217,2218],{"class":518},"\"text-heading\"",[26,2220,2221],{"class":36},">Frontend:\u003C\u002F",[26,2223,2211],{"class":404},[26,2225,615],{"class":36},[26,2227,2228,2230,2232,2234,2236,2239,2242,2244],{"class":28,"line":360},[26,2229,1232],{"class":36},[26,2231,1701],{"class":404},[26,2233,682],{"class":66},[26,2235,609],{"class":36},[26,2237,2238],{"class":518},"\"text-text\"",[26,2240,2241],{"class":36},">Vue 3, TypeScript, Tailwind CSS\u003C\u002F",[26,2243,1701],{"class":404},[26,2245,615],{"class":36},[26,2247,2248,2250,2252],{"class":28,"line":372},[26,2249,1093],{"class":36},[26,2251,671],{"class":404},[26,2253,615],{"class":36},[26,2255,2256,2258,2260],{"class":28,"line":385},[26,2257,1047],{"class":36},[26,2259,671],{"class":404},[26,2261,615],{"class":36},[26,2263,2264,2266,2268,2270,2272,2274,2277,2279],{"class":28,"line":391},[26,2265,1232],{"class":36},[26,2267,2211],{"class":404},[26,2269,682],{"class":66},[26,2271,609],{"class":36},[26,2273,2218],{"class":518},[26,2275,2276],{"class":36},">Build Tool:\u003C\u002F",[26,2278,2211],{"class":404},[26,2280,615],{"class":36},[26,2282,2283,2285,2287,2289,2291,2293,2296,2298],{"class":28,"line":396},[26,2284,1232],{"class":36},[26,2286,1701],{"class":404},[26,2288,682],{"class":66},[26,2290,609],{"class":36},[26,2292,2238],{"class":518},[26,2294,2295],{"class":36},">Vite with HMR\u003C\u002F",[26,2297,1701],{"class":404},[26,2299,615],{"class":36},[26,2301,2302,2304,2306],{"class":28,"line":401},[26,2303,1093],{"class":36},[26,2305,671],{"class":404},[26,2307,615],{"class":36},[26,2309,2310,2312,2314],{"class":28,"line":410},[26,2311,1047],{"class":36},[26,2313,671],{"class":404},[26,2315,615],{"class":36},[26,2317,2318,2320,2322,2324,2326,2328,2331,2333],{"class":28,"line":426},[26,2319,1232],{"class":36},[26,2321,2211],{"class":404},[26,2323,682],{"class":66},[26,2325,609],{"class":36},[26,2327,2218],{"class":518},[26,2329,2330],{"class":36},">Router:\u003C\u002F",[26,2332,2211],{"class":404},[26,2334,615],{"class":36},[26,2336,2337,2339,2341,2343,2345,2347,2350,2352],{"class":28,"line":446},[26,2338,1232],{"class":36},[26,2340,1701],{"class":404},[26,2342,682],{"class":66},[26,2344,609],{"class":36},[26,2346,2238],{"class":518},[26,2348,2349],{"class":36},">Vue Router 4\u003C\u002F",[26,2351,1701],{"class":404},[26,2353,615],{"class":36},[26,2355,2356,2358,2360],{"class":28,"line":463},[26,2357,1093],{"class":36},[26,2359,671],{"class":404},[26,2361,615],{"class":36},[26,2363,2364,2366,2368],{"class":28,"line":490},[26,2365,1047],{"class":36},[26,2367,671],{"class":404},[26,2369,615],{"class":36},[26,2371,2372,2374,2376,2378,2380,2382,2385,2387],{"class":28,"line":503},[26,2373,1232],{"class":36},[26,2375,2211],{"class":404},[26,2377,682],{"class":66},[26,2379,609],{"class":36},[26,2381,2218],{"class":518},[26,2383,2384],{"class":36},">Linting:\u003C\u002F",[26,2386,2211],{"class":404},[26,2388,615],{"class":36},[26,2390,2391,2393,2395,2397,2399,2401,2404,2406],{"class":28,"line":530},[26,2392,1232],{"class":36},[26,2394,1701],{"class":404},[26,2396,682],{"class":66},[26,2398,609],{"class":36},[26,2400,2238],{"class":518},[26,2402,2403],{"class":36},">ESLint, Prettier\u003C\u002F",[26,2405,1701],{"class":404},[26,2407,615],{"class":36},[26,2409,2410,2412,2414],{"class":28,"line":543},[26,2411,1093],{"class":36},[26,2413,671],{"class":404},[26,2415,615],{"class":36},[26,2417,2418,2420,2422],{"class":28,"line":556},[26,2419,1018],{"class":36},[26,2421,671],{"class":404},[26,2423,615],{"class":36},[26,2425,2426,2428,2430],{"class":28,"line":569},[26,2427,1297],{"class":36},[26,2429,671],{"class":404},[26,2431,615],{"class":36},[26,2433,2434,2436,2438],{"class":28,"line":582},[26,2435,731],{"class":36},[26,2437,671],{"class":404},[26,2439,615],{"class":36},[26,2441,2442,2444,2446],{"class":28,"line":1284},[26,2443,740],{"class":36},[26,2445,671],{"class":404},[26,2447,615],{"class":36},[26,2449,2450,2452,2454],{"class":28,"line":1294},[26,2451,646],{"class":36},[26,2453,661],{"class":404},[26,2455,615],{"class":36},[15,2457,2460],{"className":587,"code":2458,"filename":2459,"language":590,"meta":21,"style":21},"\u003Cscript setup lang=\"ts\">\ninterface Props {\n  msg?: string\n}\n\nconst props = withDefaults(defineProps\u003CProps>(), {\n  msg: 'Welcome to Vue 3'\n})\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"text-center mb-12\">\n    \u003Ch1 class=\"text-5xl font-bold text-heading mb-4\">\n      {{ msg }}\n    \u003C\u002Fh1>\n    \u003Cp class=\"text-xl text-text-soft max-w-2xl mx-auto leading-relaxed\">\n      A modern, fast, and scalable web application built with Vue 3,\n      TypeScript, and Vite. Experience the power of the Composition API\n      and reactive programming.\n    \u003C\u002Fp>\n\n    \u003Cdiv class=\"flex gap-4 justify-center mt-8\">\n      \u003Ca\n        href=\"https:\u002F\u002Fvuejs.org\u002F\"\n        target=\"_blank\"\n        class=\"bg-primary hover:bg-primary-hover text-white px-6 py-3 rounded-lg transition-colors font-semibold\"\n      >\n        Learn Vue\n      \u003C\u002Fa>\n      \u003Ca\n        href=\"https:\u002F\u002Fvitejs.dev\u002F\"\n        target=\"_blank\"\n        class=\"border border-border hover:border-border-hover px-6 py-3 rounded-lg transition-colors font-semibold text-text hover:text-heading\"\n      >\n        Powered by Vite\n      \u003C\u002Fa>\n    \u003C\u002Fdiv>\n  \u003C\u002Fdiv>\n\u003C\u002Ftemplate>\n","src\u002Fcomponents\u002FHelloWorld.vue",[23,2461,2462,2478,2488,2499,2503,2507,2532,2540,2544,2552,2556,2564,2579,2594,2599,2607,2622,2627,2632,2637,2645,2649,2664,2671,2681,2691,2700,2705,2710,2719,2725,2734,2742,2751,2755,2760,2768,2776,2784],{"__ignoreMap":21},[26,2463,2464,2466,2468,2470,2472,2474,2476],{"class":28,"line":29},[26,2465,597],{"class":36},[26,2467,600],{"class":404},[26,2469,603],{"class":66},[26,2471,606],{"class":66},[26,2473,609],{"class":36},[26,2475,612],{"class":518},[26,2477,615],{"class":36},[26,2479,2480,2483,2486],{"class":28,"line":40},[26,2481,2482],{"class":32},"interface",[26,2484,2485],{"class":66}," Props",[26,2487,70],{"class":36},[26,2489,2490,2493,2496],{"class":28,"line":48},[26,2491,2492],{"class":76},"  msg",[26,2494,2495],{"class":32},"?:",[26,2497,2498],{"class":83}," string\n",[26,2500,2501],{"class":28,"line":56},[26,2502,223],{"class":36},[26,2504,2505],{"class":28,"line":63},[26,2506,60],{"emptyLinePlaceholder":59},[26,2508,2509,2511,2514,2516,2519,2521,2524,2526,2529],{"class":28,"line":73},[26,2510,853],{"class":32},[26,2512,2513],{"class":83}," props",[26,2515,859],{"class":32},[26,2517,2518],{"class":66}," withDefaults",[26,2520,437],{"class":36},[26,2522,2523],{"class":66},"defineProps",[26,2525,597],{"class":36},[26,2527,2528],{"class":66},"Props",[26,2530,2531],{"class":36},">(), {\n",[26,2533,2534,2537],{"class":28,"line":90},[26,2535,2536],{"class":36},"  msg: ",[26,2538,2539],{"class":518},"'Welcome to Vue 3'\n",[26,2541,2542],{"class":28,"line":103},[26,2543,1610],{"class":36},[26,2545,2546,2548,2550],{"class":28,"line":116},[26,2547,646],{"class":36},[26,2549,600],{"class":404},[26,2551,615],{"class":36},[26,2553,2554],{"class":28,"line":129},[26,2555,60],{"emptyLinePlaceholder":59},[26,2557,2558,2560,2562],{"class":28,"line":142},[26,2559,597],{"class":36},[26,2561,661],{"class":404},[26,2563,615],{"class":36},[26,2565,2566,2568,2570,2572,2574,2577],{"class":28,"line":155},[26,2567,668],{"class":36},[26,2569,671],{"class":404},[26,2571,682],{"class":66},[26,2573,609],{"class":36},[26,2575,2576],{"class":518},"\"text-center mb-12\"",[26,2578,615],{"class":36},[26,2580,2581,2583,2585,2587,2589,2592],{"class":28,"line":168},[26,2582,694],{"class":36},[26,2584,1899],{"class":404},[26,2586,682],{"class":66},[26,2588,609],{"class":36},[26,2590,2591],{"class":518},"\"text-5xl font-bold text-heading mb-4\"",[26,2593,615],{"class":36},[26,2595,2596],{"class":28,"line":181},[26,2597,2598],{"class":36},"      {{ msg }}\n",[26,2600,2601,2603,2605],{"class":28,"line":194},[26,2602,731],{"class":36},[26,2604,1899],{"class":404},[26,2606,615],{"class":36},[26,2608,2609,2611,2613,2615,2617,2620],{"class":28,"line":207},[26,2610,694],{"class":36},[26,2612,1701],{"class":404},[26,2614,682],{"class":66},[26,2616,609],{"class":36},[26,2618,2619],{"class":518},"\"text-xl text-text-soft max-w-2xl mx-auto leading-relaxed\"",[26,2621,615],{"class":36},[26,2623,2624],{"class":28,"line":220},[26,2625,2626],{"class":36},"      A modern, fast, and scalable web application built with Vue 3,\n",[26,2628,2629],{"class":28,"line":226},[26,2630,2631],{"class":36},"      TypeScript, and Vite. Experience the power of the Composition API\n",[26,2633,2634],{"class":28,"line":231},[26,2635,2636],{"class":36},"      and reactive programming.\n",[26,2638,2639,2641,2643],{"class":28,"line":240},[26,2640,731],{"class":36},[26,2642,1701],{"class":404},[26,2644,615],{"class":36},[26,2646,2647],{"class":28,"line":248},[26,2648,60],{"emptyLinePlaceholder":59},[26,2650,2651,2653,2655,2657,2659,2662],{"class":28,"line":261},[26,2652,694],{"class":36},[26,2654,671],{"class":404},[26,2656,682],{"class":66},[26,2658,609],{"class":36},[26,2660,2661],{"class":518},"\"flex gap-4 justify-center mt-8\"",[26,2663,615],{"class":36},[26,2665,2666,2668],{"class":28,"line":273},[26,2667,721],{"class":36},[26,2669,2670],{"class":404},"a\n",[26,2672,2673,2676,2678],{"class":28,"line":286},[26,2674,2675],{"class":66},"        href",[26,2677,609],{"class":36},[26,2679,2680],{"class":518},"\"https:\u002F\u002Fvuejs.org\u002F\"\n",[26,2682,2683,2686,2688],{"class":28,"line":298},[26,2684,2685],{"class":66},"        target",[26,2687,609],{"class":36},[26,2689,2690],{"class":518},"\"_blank\"\n",[26,2692,2693,2696,2698],{"class":28,"line":310},[26,2694,2695],{"class":66},"        class",[26,2697,609],{"class":36},[26,2699,1766],{"class":518},[26,2701,2702],{"class":28,"line":322},[26,2703,2704],{"class":36},"      >\n",[26,2706,2707],{"class":28,"line":334},[26,2708,2709],{"class":36},"        Learn Vue\n",[26,2711,2712,2714,2717],{"class":28,"line":347},[26,2713,1297],{"class":36},[26,2715,2716],{"class":404},"a",[26,2718,615],{"class":36},[26,2720,2721,2723],{"class":28,"line":360},[26,2722,721],{"class":36},[26,2724,2670],{"class":404},[26,2726,2727,2729,2731],{"class":28,"line":372},[26,2728,2675],{"class":66},[26,2730,609],{"class":36},[26,2732,2733],{"class":518},"\"https:\u002F\u002Fvitejs.dev\u002F\"\n",[26,2735,2736,2738,2740],{"class":28,"line":385},[26,2737,2685],{"class":66},[26,2739,609],{"class":36},[26,2741,2690],{"class":518},[26,2743,2744,2746,2748],{"class":28,"line":391},[26,2745,2695],{"class":66},[26,2747,609],{"class":36},[26,2749,2750],{"class":518},"\"border border-border hover:border-border-hover px-6 py-3 rounded-lg transition-colors font-semibold text-text hover:text-heading\"\n",[26,2752,2753],{"class":28,"line":396},[26,2754,2704],{"class":36},[26,2756,2757],{"class":28,"line":401},[26,2758,2759],{"class":36},"        Powered by Vite\n",[26,2761,2762,2764,2766],{"class":28,"line":410},[26,2763,1297],{"class":36},[26,2765,2716],{"class":404},[26,2767,615],{"class":36},[26,2769,2770,2772,2774],{"class":28,"line":426},[26,2771,731],{"class":36},[26,2773,671],{"class":404},[26,2775,615],{"class":36},[26,2777,2778,2780,2782],{"class":28,"line":446},[26,2779,740],{"class":36},[26,2781,671],{"class":404},[26,2783,615],{"class":36},[26,2785,2786,2788,2790],{"class":28,"line":463},[26,2787,646],{"class":36},[26,2789,661],{"class":404},[26,2791,615],{"class":36},[15,2793,2798],{"className":2794,"code":2795,"filename":2796,"language":2797,"meta":21,"style":21},"language-ts shiki shiki-themes github-light github-dark","import { createRouter, createWebHistory } from 'vue-router'\nimport HomeView from '..\u002Fviews\u002FHomeView.vue'\n\nconst router = createRouter({\n  history: createWebHistory(import.meta.env.BASE_URL),\n  routes: [\n    {\n      path: '\u002F',\n      name: 'home',\n      component: HomeView,\n      meta: {\n        title: 'Home'\n      }\n    },\n    {\n      path: '\u002Fabout',\n      name: 'about',\n      component: () => import('..\u002Fviews\u002FAboutView.vue'),\n      meta: {\n        title: 'About'\n      }\n    }\n  ]\n})\n\n\u002F\u002F Dynamic page titles\nrouter.beforeEach((to) => {\n  document.title = to.meta.title\n    ? `${to.meta.title} | Vue App`\n    : 'Vue App'\n})\n\nexport default router\n","src\u002Frouter\u002Findex.ts","ts",[23,2799,2800,2811,2823,2827,2842,2869,2874,2879,2890,2900,2905,2910,2918,2923,2928,2932,2941,2950,2970,2974,2981,2985,2990,2995,2999,3003,3009,3030,3040,3062,3070,3074,3078],{"__ignoreMap":21},[26,2801,2802,2804,2807,2809],{"class":28,"line":29},[26,2803,620],{"class":32},[26,2805,2806],{"class":36}," { createRouter, createWebHistory } ",[26,2808,626],{"class":32},[26,2810,629],{"class":518},[26,2812,2813,2815,2818,2820],{"class":28,"line":40},[26,2814,620],{"class":32},[26,2816,2817],{"class":36}," HomeView ",[26,2819,626],{"class":32},[26,2821,2822],{"class":518}," '..\u002Fviews\u002FHomeView.vue'\n",[26,2824,2825],{"class":28,"line":48},[26,2826,60],{"emptyLinePlaceholder":59},[26,2828,2829,2831,2834,2836,2839],{"class":28,"line":56},[26,2830,853],{"class":32},[26,2832,2833],{"class":83}," router",[26,2835,859],{"class":32},[26,2837,2838],{"class":66}," createRouter",[26,2840,2841],{"class":36},"({\n",[26,2843,2844,2847,2850,2852,2854,2857,2860,2863,2866],{"class":28,"line":63},[26,2845,2846],{"class":36},"  history: ",[26,2848,2849],{"class":66},"createWebHistory",[26,2851,437],{"class":36},[26,2853,620],{"class":32},[26,2855,2856],{"class":36},".",[26,2858,2859],{"class":83},"meta",[26,2861,2862],{"class":36},".env.",[26,2864,2865],{"class":83},"BASE_URL",[26,2867,2868],{"class":36},"),\n",[26,2870,2871],{"class":28,"line":73},[26,2872,2873],{"class":36},"  routes: [\n",[26,2875,2876],{"class":28,"line":90},[26,2877,2878],{"class":36},"    {\n",[26,2880,2881,2884,2887],{"class":28,"line":103},[26,2882,2883],{"class":36},"      path: ",[26,2885,2886],{"class":518},"'\u002F'",[26,2888,2889],{"class":36},",\n",[26,2891,2892,2895,2898],{"class":28,"line":116},[26,2893,2894],{"class":36},"      name: ",[26,2896,2897],{"class":518},"'home'",[26,2899,2889],{"class":36},[26,2901,2902],{"class":28,"line":129},[26,2903,2904],{"class":36},"      component: HomeView,\n",[26,2906,2907],{"class":28,"line":142},[26,2908,2909],{"class":36},"      meta: {\n",[26,2911,2912,2915],{"class":28,"line":155},[26,2913,2914],{"class":36},"        title: ",[26,2916,2917],{"class":518},"'Home'\n",[26,2919,2920],{"class":28,"line":168},[26,2921,2922],{"class":36},"      }\n",[26,2924,2925],{"class":28,"line":181},[26,2926,2927],{"class":36},"    },\n",[26,2929,2930],{"class":28,"line":194},[26,2931,2878],{"class":36},[26,2933,2934,2936,2939],{"class":28,"line":207},[26,2935,2883],{"class":36},[26,2937,2938],{"class":518},"'\u002Fabout'",[26,2940,2889],{"class":36},[26,2942,2943,2945,2948],{"class":28,"line":220},[26,2944,2894],{"class":36},[26,2946,2947],{"class":518},"'about'",[26,2949,2889],{"class":36},[26,2951,2952,2955,2958,2960,2963,2965,2968],{"class":28,"line":226},[26,2953,2954],{"class":66},"      component",[26,2956,2957],{"class":36},": () ",[26,2959,889],{"class":32},[26,2961,2962],{"class":32}," import",[26,2964,437],{"class":36},[26,2966,2967],{"class":518},"'..\u002Fviews\u002FAboutView.vue'",[26,2969,2868],{"class":36},[26,2971,2972],{"class":28,"line":231},[26,2973,2909],{"class":36},[26,2975,2976,2978],{"class":28,"line":240},[26,2977,2914],{"class":36},[26,2979,2980],{"class":518},"'About'\n",[26,2982,2983],{"class":28,"line":248},[26,2984,2922],{"class":36},[26,2986,2987],{"class":28,"line":261},[26,2988,2989],{"class":36},"    }\n",[26,2991,2992],{"class":28,"line":273},[26,2993,2994],{"class":36},"  ]\n",[26,2996,2997],{"class":28,"line":286},[26,2998,1610],{"class":36},[26,3000,3001],{"class":28,"line":298},[26,3002,60],{"emptyLinePlaceholder":59},[26,3004,3005],{"class":28,"line":310},[26,3006,3008],{"class":3007},"sJ8bj","\u002F\u002F Dynamic page titles\n",[26,3010,3011,3014,3017,3020,3023,3026,3028],{"class":28,"line":322},[26,3012,3013],{"class":36},"router.",[26,3015,3016],{"class":66},"beforeEach",[26,3018,3019],{"class":36},"((",[26,3021,3022],{"class":76},"to",[26,3024,3025],{"class":36},") ",[26,3027,889],{"class":32},[26,3029,70],{"class":36},[26,3031,3032,3035,3037],{"class":28,"line":334},[26,3033,3034],{"class":36},"  document.title ",[26,3036,609],{"class":32},[26,3038,3039],{"class":36}," to.meta.title\n",[26,3041,3042,3045,3048,3050,3052,3054,3056,3059],{"class":28,"line":347},[26,3043,3044],{"class":32},"    ?",[26,3046,3047],{"class":518}," `${",[26,3049,3022],{"class":36},[26,3051,2856],{"class":518},[26,3053,2859],{"class":36},[26,3055,2856],{"class":518},[26,3057,3058],{"class":36},"title",[26,3060,3061],{"class":518},"} | Vue App`\n",[26,3063,3064,3067],{"class":28,"line":360},[26,3065,3066],{"class":32},"    :",[26,3068,3069],{"class":518}," 'Vue App'\n",[26,3071,3072],{"class":28,"line":372},[26,3073,1610],{"class":36},[26,3075,3076],{"class":28,"line":385},[26,3077,60],{"emptyLinePlaceholder":59},[26,3079,3080,3083,3086],{"class":28,"line":391},[26,3081,3082],{"class":32},"export",[26,3084,3085],{"class":32}," default",[26,3087,3088],{"class":36}," router\n",[15,3090,3093],{"className":2794,"code":3091,"filename":3092,"language":2797,"meta":21,"style":21},"import { createApp } from 'vue'\nimport App from '.\u002FApp.vue'\nimport router from '.\u002Frouter'\nimport '.\u002Fassets\u002Fmain.css'\n\nconst app = createApp(App)\n\napp.use(router)\napp.mount('#app')\n","src\u002Fmain.ts",[23,3094,3095,3106,3118,3130,3137,3141,3156,3160,3171],{"__ignoreMap":21},[26,3096,3097,3099,3102,3104],{"class":28,"line":29},[26,3098,620],{"class":32},[26,3100,3101],{"class":36}," { createApp } ",[26,3103,626],{"class":32},[26,3105,833],{"class":518},[26,3107,3108,3110,3113,3115],{"class":28,"line":40},[26,3109,620],{"class":32},[26,3111,3112],{"class":36}," App ",[26,3114,626],{"class":32},[26,3116,3117],{"class":518}," '.\u002FApp.vue'\n",[26,3119,3120,3122,3125,3127],{"class":28,"line":48},[26,3121,620],{"class":32},[26,3123,3124],{"class":36}," router ",[26,3126,626],{"class":32},[26,3128,3129],{"class":518}," '.\u002Frouter'\n",[26,3131,3132,3134],{"class":28,"line":56},[26,3133,620],{"class":32},[26,3135,3136],{"class":518}," '.\u002Fassets\u002Fmain.css'\n",[26,3138,3139],{"class":28,"line":63},[26,3140,60],{"emptyLinePlaceholder":59},[26,3142,3143,3145,3148,3150,3153],{"class":28,"line":73},[26,3144,853],{"class":32},[26,3146,3147],{"class":83}," app",[26,3149,859],{"class":32},[26,3151,3152],{"class":66}," createApp",[26,3154,3155],{"class":36},"(App)\n",[26,3157,3158],{"class":28,"line":90},[26,3159,60],{"emptyLinePlaceholder":59},[26,3161,3162,3165,3168],{"class":28,"line":103},[26,3163,3164],{"class":36},"app.",[26,3166,3167],{"class":66},"use",[26,3169,3170],{"class":36},"(router)\n",[26,3172,3173,3175,3178,3180,3183],{"class":28,"line":116},[26,3174,3164],{"class":36},[26,3176,3177],{"class":66},"mount",[26,3179,437],{"class":36},[26,3181,3182],{"class":518},"'#app'",[26,3184,870],{"class":36},[15,3186,3191],{"className":3187,"code":3188,"filename":3189,"language":3190,"meta":21,"style":21},"language-json shiki shiki-themes github-light github-dark","{\n  \"name\": \"vue-app\",\n  \"version\": \"0.1.0\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"dev\": \"vite\",\n    \"build\": \"vue-tsc && vite build\",\n    \"preview\": \"vite preview\",\n    \"type-check\": \"vue-tsc --noEmit\",\n    \"lint\": \"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore\",\n    \"format\": \"prettier --write src\u002F\"\n  },\n  \"dependencies\": {\n    \"vue\": \"^3.5.13\",\n    \"vue-router\": \"^4.5.0\"\n  },\n  \"devDependencies\": {\n    \"@rushstack\u002Feslint-patch\": \"^1.10.4\",\n    \"@tsconfig\u002Fnode20\": \"^20.1.4\",\n    \"@types\u002Fnode\": \"^22.10.1\",\n    \"@vitejs\u002Fplugin-vue\": \"^5.2.1\",\n    \"@vue\u002Feslint-config-prettier\": \"^10.1.0\",\n    \"@vue\u002Feslint-config-typescript\": \"^14.1.3\",\n    \"@vue\u002Ftsconfig\": \"^0.7.0\",\n    \"autoprefixer\": \"^10.4.20\",\n    \"eslint\": \"^8.57.1\",\n    \"eslint-plugin-vue\": \"^9.31.0\",\n    \"postcss\": \"^8.5.1\",\n    \"prettier\": \"^3.4.2\",\n    \"tailwindcss\": \"^3.4.17\",\n    \"typescript\": \"~5.7.2\",\n    \"vite\": \"^6.0.3\",\n    \"vue-tsc\": \"^2.2.0\"\n  }\n}\n","package.json","json",[23,3192,3193,3198,3210,3222,3234,3246,3254,3266,3278,3290,3302,3314,3324,3329,3336,3348,3358,3362,3369,3381,3393,3405,3417,3429,3441,3453,3465,3477,3489,3501,3513,3525,3537,3549,3559,3563],{"__ignoreMap":21},[26,3194,3195],{"class":28,"line":29},[26,3196,3197],{"class":36},"{\n",[26,3199,3200,3203,3205,3208],{"class":28,"line":40},[26,3201,3202],{"class":83},"  \"name\"",[26,3204,80],{"class":36},[26,3206,3207],{"class":518},"\"vue-app\"",[26,3209,2889],{"class":36},[26,3211,3212,3215,3217,3220],{"class":28,"line":48},[26,3213,3214],{"class":83},"  \"version\"",[26,3216,80],{"class":36},[26,3218,3219],{"class":518},"\"0.1.0\"",[26,3221,2889],{"class":36},[26,3223,3224,3227,3229,3232],{"class":28,"line":56},[26,3225,3226],{"class":83},"  \"private\"",[26,3228,80],{"class":36},[26,3230,3231],{"class":83},"true",[26,3233,2889],{"class":36},[26,3235,3236,3239,3241,3244],{"class":28,"line":63},[26,3237,3238],{"class":83},"  \"type\"",[26,3240,80],{"class":36},[26,3242,3243],{"class":518},"\"module\"",[26,3245,2889],{"class":36},[26,3247,3248,3251],{"class":28,"line":73},[26,3249,3250],{"class":83},"  \"scripts\"",[26,3252,3253],{"class":36},": {\n",[26,3255,3256,3259,3261,3264],{"class":28,"line":90},[26,3257,3258],{"class":83},"    \"dev\"",[26,3260,80],{"class":36},[26,3262,3263],{"class":518},"\"vite\"",[26,3265,2889],{"class":36},[26,3267,3268,3271,3273,3276],{"class":28,"line":103},[26,3269,3270],{"class":83},"    \"build\"",[26,3272,80],{"class":36},[26,3274,3275],{"class":518},"\"vue-tsc && vite build\"",[26,3277,2889],{"class":36},[26,3279,3280,3283,3285,3288],{"class":28,"line":116},[26,3281,3282],{"class":83},"    \"preview\"",[26,3284,80],{"class":36},[26,3286,3287],{"class":518},"\"vite preview\"",[26,3289,2889],{"class":36},[26,3291,3292,3295,3297,3300],{"class":28,"line":129},[26,3293,3294],{"class":83},"    \"type-check\"",[26,3296,80],{"class":36},[26,3298,3299],{"class":518},"\"vue-tsc --noEmit\"",[26,3301,2889],{"class":36},[26,3303,3304,3307,3309,3312],{"class":28,"line":142},[26,3305,3306],{"class":83},"    \"lint\"",[26,3308,80],{"class":36},[26,3310,3311],{"class":518},"\"eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore\"",[26,3313,2889],{"class":36},[26,3315,3316,3319,3321],{"class":28,"line":155},[26,3317,3318],{"class":83},"    \"format\"",[26,3320,80],{"class":36},[26,3322,3323],{"class":518},"\"prettier --write src\u002F\"\n",[26,3325,3326],{"class":28,"line":168},[26,3327,3328],{"class":36},"  },\n",[26,3330,3331,3334],{"class":28,"line":181},[26,3332,3333],{"class":83},"  \"dependencies\"",[26,3335,3253],{"class":36},[26,3337,3338,3341,3343,3346],{"class":28,"line":194},[26,3339,3340],{"class":83},"    \"vue\"",[26,3342,80],{"class":36},[26,3344,3345],{"class":518},"\"^3.5.13\"",[26,3347,2889],{"class":36},[26,3349,3350,3353,3355],{"class":28,"line":207},[26,3351,3352],{"class":83},"    \"vue-router\"",[26,3354,80],{"class":36},[26,3356,3357],{"class":518},"\"^4.5.0\"\n",[26,3359,3360],{"class":28,"line":220},[26,3361,3328],{"class":36},[26,3363,3364,3367],{"class":28,"line":226},[26,3365,3366],{"class":83},"  \"devDependencies\"",[26,3368,3253],{"class":36},[26,3370,3371,3374,3376,3379],{"class":28,"line":231},[26,3372,3373],{"class":83},"    \"@rushstack\u002Feslint-patch\"",[26,3375,80],{"class":36},[26,3377,3378],{"class":518},"\"^1.10.4\"",[26,3380,2889],{"class":36},[26,3382,3383,3386,3388,3391],{"class":28,"line":240},[26,3384,3385],{"class":83},"    \"@tsconfig\u002Fnode20\"",[26,3387,80],{"class":36},[26,3389,3390],{"class":518},"\"^20.1.4\"",[26,3392,2889],{"class":36},[26,3394,3395,3398,3400,3403],{"class":28,"line":248},[26,3396,3397],{"class":83},"    \"@types\u002Fnode\"",[26,3399,80],{"class":36},[26,3401,3402],{"class":518},"\"^22.10.1\"",[26,3404,2889],{"class":36},[26,3406,3407,3410,3412,3415],{"class":28,"line":261},[26,3408,3409],{"class":83},"    \"@vitejs\u002Fplugin-vue\"",[26,3411,80],{"class":36},[26,3413,3414],{"class":518},"\"^5.2.1\"",[26,3416,2889],{"class":36},[26,3418,3419,3422,3424,3427],{"class":28,"line":273},[26,3420,3421],{"class":83},"    \"@vue\u002Feslint-config-prettier\"",[26,3423,80],{"class":36},[26,3425,3426],{"class":518},"\"^10.1.0\"",[26,3428,2889],{"class":36},[26,3430,3431,3434,3436,3439],{"class":28,"line":286},[26,3432,3433],{"class":83},"    \"@vue\u002Feslint-config-typescript\"",[26,3435,80],{"class":36},[26,3437,3438],{"class":518},"\"^14.1.3\"",[26,3440,2889],{"class":36},[26,3442,3443,3446,3448,3451],{"class":28,"line":298},[26,3444,3445],{"class":83},"    \"@vue\u002Ftsconfig\"",[26,3447,80],{"class":36},[26,3449,3450],{"class":518},"\"^0.7.0\"",[26,3452,2889],{"class":36},[26,3454,3455,3458,3460,3463],{"class":28,"line":310},[26,3456,3457],{"class":83},"    \"autoprefixer\"",[26,3459,80],{"class":36},[26,3461,3462],{"class":518},"\"^10.4.20\"",[26,3464,2889],{"class":36},[26,3466,3467,3470,3472,3475],{"class":28,"line":322},[26,3468,3469],{"class":83},"    \"eslint\"",[26,3471,80],{"class":36},[26,3473,3474],{"class":518},"\"^8.57.1\"",[26,3476,2889],{"class":36},[26,3478,3479,3482,3484,3487],{"class":28,"line":334},[26,3480,3481],{"class":83},"    \"eslint-plugin-vue\"",[26,3483,80],{"class":36},[26,3485,3486],{"class":518},"\"^9.31.0\"",[26,3488,2889],{"class":36},[26,3490,3491,3494,3496,3499],{"class":28,"line":347},[26,3492,3493],{"class":83},"    \"postcss\"",[26,3495,80],{"class":36},[26,3497,3498],{"class":518},"\"^8.5.1\"",[26,3500,2889],{"class":36},[26,3502,3503,3506,3508,3511],{"class":28,"line":360},[26,3504,3505],{"class":83},"    \"prettier\"",[26,3507,80],{"class":36},[26,3509,3510],{"class":518},"\"^3.4.2\"",[26,3512,2889],{"class":36},[26,3514,3515,3518,3520,3523],{"class":28,"line":372},[26,3516,3517],{"class":83},"    \"tailwindcss\"",[26,3519,80],{"class":36},[26,3521,3522],{"class":518},"\"^3.4.17\"",[26,3524,2889],{"class":36},[26,3526,3527,3530,3532,3535],{"class":28,"line":385},[26,3528,3529],{"class":83},"    \"typescript\"",[26,3531,80],{"class":36},[26,3533,3534],{"class":518},"\"~5.7.2\"",[26,3536,2889],{"class":36},[26,3538,3539,3542,3544,3547],{"class":28,"line":391},[26,3540,3541],{"class":83},"    \"vite\"",[26,3543,80],{"class":36},[26,3545,3546],{"class":518},"\"^6.0.3\"",[26,3548,2889],{"class":36},[26,3550,3551,3554,3556],{"class":28,"line":396},[26,3552,3553],{"class":83},"    \"vue-tsc\"",[26,3555,80],{"class":36},[26,3557,3558],{"class":518},"\"^2.2.0\"\n",[26,3560,3561],{"class":28,"line":401},[26,3562,388],{"class":36},[26,3564,3565],{"class":28,"line":410},[26,3566,223],{"class":36},[15,3568,3571],{"className":3187,"code":3569,"filename":3570,"language":3190,"meta":21,"style":21},"{\n  \"files\": [],\n  \"references\": [\n    {\n      \"path\": \".\u002Ftsconfig.node.json\"\n    },\n    {\n      \"path\": \".\u002Ftsconfig.app.json\"\n    }\n  ]\n}\n","tsconfig.json",[23,3572,3573,3577,3585,3593,3597,3607,3611,3615,3624,3628,3632],{"__ignoreMap":21},[26,3574,3575],{"class":28,"line":29},[26,3576,3197],{"class":36},[26,3578,3579,3582],{"class":28,"line":40},[26,3580,3581],{"class":83},"  \"files\"",[26,3583,3584],{"class":36},": [],\n",[26,3586,3587,3590],{"class":28,"line":48},[26,3588,3589],{"class":83},"  \"references\"",[26,3591,3592],{"class":36},": [\n",[26,3594,3595],{"class":28,"line":56},[26,3596,2878],{"class":36},[26,3598,3599,3602,3604],{"class":28,"line":63},[26,3600,3601],{"class":83},"      \"path\"",[26,3603,80],{"class":36},[26,3605,3606],{"class":518},"\".\u002Ftsconfig.node.json\"\n",[26,3608,3609],{"class":28,"line":73},[26,3610,2927],{"class":36},[26,3612,3613],{"class":28,"line":90},[26,3614,2878],{"class":36},[26,3616,3617,3619,3621],{"class":28,"line":103},[26,3618,3601],{"class":83},[26,3620,80],{"class":36},[26,3622,3623],{"class":518},"\".\u002Ftsconfig.app.json\"\n",[26,3625,3626],{"class":28,"line":116},[26,3627,2989],{"class":36},[26,3629,3630],{"class":28,"line":129},[26,3631,2994],{"class":36},[26,3633,3634],{"class":28,"line":142},[26,3635,223],{"class":36},[15,3637,3640],{"className":3187,"code":3638,"filename":3639,"language":3190,"meta":21,"style":21},"{\n  \"extends\": \"@vue\u002Ftsconfig\u002Ftsconfig.dom.json\",\n  \"include\": [\"env.d.ts\", \"src\u002F**\u002F*\", \"src\u002F**\u002F*.vue\"],\n  \"exclude\": [\"src\u002F**\u002F__tests__\u002F*\"],\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"tsBuildInfoFile\": \".\u002Fnode_modules\u002F.tmp\u002Ftsconfig.app.tsbuildinfo\",\n    \"baseUrl\": \".\",\n    \"paths\": {\n      \"@\u002F*\": [\".\u002Fsrc\u002F*\"]\n    }\n  }\n}\n","tsconfig.app.json",[23,3641,3642,3646,3658,3683,3695,3702,3713,3725,3737,3744,3757,3761,3765],{"__ignoreMap":21},[26,3643,3644],{"class":28,"line":29},[26,3645,3197],{"class":36},[26,3647,3648,3651,3653,3656],{"class":28,"line":40},[26,3649,3650],{"class":83},"  \"extends\"",[26,3652,80],{"class":36},[26,3654,3655],{"class":518},"\"@vue\u002Ftsconfig\u002Ftsconfig.dom.json\"",[26,3657,2889],{"class":36},[26,3659,3660,3663,3666,3669,3672,3675,3677,3680],{"class":28,"line":48},[26,3661,3662],{"class":83},"  \"include\"",[26,3664,3665],{"class":36},": [",[26,3667,3668],{"class":518},"\"env.d.ts\"",[26,3670,3671],{"class":36},", ",[26,3673,3674],{"class":518},"\"src\u002F**\u002F*\"",[26,3676,3671],{"class":36},[26,3678,3679],{"class":518},"\"src\u002F**\u002F*.vue\"",[26,3681,3682],{"class":36},"],\n",[26,3684,3685,3688,3690,3693],{"class":28,"line":56},[26,3686,3687],{"class":83},"  \"exclude\"",[26,3689,3665],{"class":36},[26,3691,3692],{"class":518},"\"src\u002F**\u002F__tests__\u002F*\"",[26,3694,3682],{"class":36},[26,3696,3697,3700],{"class":28,"line":63},[26,3698,3699],{"class":83},"  \"compilerOptions\"",[26,3701,3253],{"class":36},[26,3703,3704,3707,3709,3711],{"class":28,"line":73},[26,3705,3706],{"class":83},"    \"composite\"",[26,3708,80],{"class":36},[26,3710,3231],{"class":83},[26,3712,2889],{"class":36},[26,3714,3715,3718,3720,3723],{"class":28,"line":90},[26,3716,3717],{"class":83},"    \"tsBuildInfoFile\"",[26,3719,80],{"class":36},[26,3721,3722],{"class":518},"\".\u002Fnode_modules\u002F.tmp\u002Ftsconfig.app.tsbuildinfo\"",[26,3724,2889],{"class":36},[26,3726,3727,3730,3732,3735],{"class":28,"line":103},[26,3728,3729],{"class":83},"    \"baseUrl\"",[26,3731,80],{"class":36},[26,3733,3734],{"class":518},"\".\"",[26,3736,2889],{"class":36},[26,3738,3739,3742],{"class":28,"line":116},[26,3740,3741],{"class":83},"    \"paths\"",[26,3743,3253],{"class":36},[26,3745,3746,3749,3751,3754],{"class":28,"line":129},[26,3747,3748],{"class":83},"      \"@\u002F*\"",[26,3750,3665],{"class":36},[26,3752,3753],{"class":518},"\".\u002Fsrc\u002F*\"",[26,3755,3756],{"class":36},"]\n",[26,3758,3759],{"class":28,"line":142},[26,3760,2989],{"class":36},[26,3762,3763],{"class":28,"line":155},[26,3764,388],{"class":36},[26,3766,3767],{"class":28,"line":168},[26,3768,223],{"class":36},[15,3770,3773],{"className":3187,"code":3771,"filename":3772,"language":3190,"meta":21,"style":21},"{\n  \"extends\": \"@tsconfig\u002Fnode20\u002Ftsconfig.json\",\n  \"include\": [\n    \"vite.config.*\",\n    \"vitest.config.*\",\n    \"cypress.config.*\",\n    \"nightwatch.conf.*\",\n    \"playwright.config.*\"\n  ],\n  \"compilerOptions\": {\n    \"composite\": true,\n    \"noEmit\": true,\n    \"tsBuildInfoFile\": \".\u002Fnode_modules\u002F.tmp\u002Ftsconfig.node.tsbuildinfo\",\n    \"module\": \"ESNext\",\n    \"moduleResolution\": \"Bundler\",\n    \"types\": [\"node\"]\n  }\n}\n","tsconfig.node.json",[23,3774,3775,3779,3790,3796,3803,3810,3817,3824,3829,3834,3840,3850,3861,3872,3884,3896,3908,3912],{"__ignoreMap":21},[26,3776,3777],{"class":28,"line":29},[26,3778,3197],{"class":36},[26,3780,3781,3783,3785,3788],{"class":28,"line":40},[26,3782,3650],{"class":83},[26,3784,80],{"class":36},[26,3786,3787],{"class":518},"\"@tsconfig\u002Fnode20\u002Ftsconfig.json\"",[26,3789,2889],{"class":36},[26,3791,3792,3794],{"class":28,"line":48},[26,3793,3662],{"class":83},[26,3795,3592],{"class":36},[26,3797,3798,3801],{"class":28,"line":56},[26,3799,3800],{"class":518},"    \"vite.config.*\"",[26,3802,2889],{"class":36},[26,3804,3805,3808],{"class":28,"line":63},[26,3806,3807],{"class":518},"    \"vitest.config.*\"",[26,3809,2889],{"class":36},[26,3811,3812,3815],{"class":28,"line":73},[26,3813,3814],{"class":518},"    \"cypress.config.*\"",[26,3816,2889],{"class":36},[26,3818,3819,3822],{"class":28,"line":90},[26,3820,3821],{"class":518},"    \"nightwatch.conf.*\"",[26,3823,2889],{"class":36},[26,3825,3826],{"class":28,"line":103},[26,3827,3828],{"class":518},"    \"playwright.config.*\"\n",[26,3830,3831],{"class":28,"line":116},[26,3832,3833],{"class":36},"  ],\n",[26,3835,3836,3838],{"class":28,"line":129},[26,3837,3699],{"class":83},[26,3839,3253],{"class":36},[26,3841,3842,3844,3846,3848],{"class":28,"line":142},[26,3843,3706],{"class":83},[26,3845,80],{"class":36},[26,3847,3231],{"class":83},[26,3849,2889],{"class":36},[26,3851,3852,3855,3857,3859],{"class":28,"line":155},[26,3853,3854],{"class":83},"    \"noEmit\"",[26,3856,80],{"class":36},[26,3858,3231],{"class":83},[26,3860,2889],{"class":36},[26,3862,3863,3865,3867,3870],{"class":28,"line":168},[26,3864,3717],{"class":83},[26,3866,80],{"class":36},[26,3868,3869],{"class":518},"\".\u002Fnode_modules\u002F.tmp\u002Ftsconfig.node.tsbuildinfo\"",[26,3871,2889],{"class":36},[26,3873,3874,3877,3879,3882],{"class":28,"line":181},[26,3875,3876],{"class":83},"    \"module\"",[26,3878,80],{"class":36},[26,3880,3881],{"class":518},"\"ESNext\"",[26,3883,2889],{"class":36},[26,3885,3886,3889,3891,3894],{"class":28,"line":194},[26,3887,3888],{"class":83},"    \"moduleResolution\"",[26,3890,80],{"class":36},[26,3892,3893],{"class":518},"\"Bundler\"",[26,3895,2889],{"class":36},[26,3897,3898,3901,3903,3906],{"class":28,"line":207},[26,3899,3900],{"class":83},"    \"types\"",[26,3902,3665],{"class":36},[26,3904,3905],{"class":518},"\"node\"",[26,3907,3756],{"class":36},[26,3909,3910],{"class":28,"line":220},[26,3911,388],{"class":36},[26,3913,3914],{"class":28,"line":226},[26,3915,223],{"class":36},[15,3917,3919],{"className":2794,"code":3918,"filename":12,"language":2797,"meta":21,"style":21},"import { defineConfig } from 'vite'\nimport vue from '@vitejs\u002Fplugin-vue'\nimport { fileURLToPath, URL } from 'node:url'\n\n\u002F\u002F https:\u002F\u002Fvitejs.dev\u002Fconfig\u002F\nexport default defineConfig({\n  plugins: [vue()],\n  resolve: {\n    alias: {\n      '@': fileURLToPath(new URL('.\u002Fsrc', import.meta.url))\n    }\n  },\n  server: {\n    port: 3000,\n    open: true\n  },\n  build: {\n    outDir: 'dist',\n    sourcemap: true,\n    rollupOptions: {\n      output: {\n        manualChunks: {\n          vendor: ['vue', 'vue-router']\n        }\n      }\n    }\n  }\n})\n",[23,3920,3921,3933,3945,3957,3961,3966,3977,3987,3992,3997,4031,4035,4039,4044,4054,4062,4066,4071,4081,4090,4095,4100,4105,4120,4125,4129,4133,4137],{"__ignoreMap":21},[26,3922,3923,3925,3928,3930],{"class":28,"line":29},[26,3924,620],{"class":32},[26,3926,3927],{"class":36}," { defineConfig } ",[26,3929,626],{"class":32},[26,3931,3932],{"class":518}," 'vite'\n",[26,3934,3935,3937,3940,3942],{"class":28,"line":40},[26,3936,620],{"class":32},[26,3938,3939],{"class":36}," vue ",[26,3941,626],{"class":32},[26,3943,3944],{"class":518}," '@vitejs\u002Fplugin-vue'\n",[26,3946,3947,3949,3952,3954],{"class":28,"line":48},[26,3948,620],{"class":32},[26,3950,3951],{"class":36}," { fileURLToPath, URL } ",[26,3953,626],{"class":32},[26,3955,3956],{"class":518}," 'node:url'\n",[26,3958,3959],{"class":28,"line":56},[26,3960,60],{"emptyLinePlaceholder":59},[26,3962,3963],{"class":28,"line":63},[26,3964,3965],{"class":3007},"\u002F\u002F https:\u002F\u002Fvitejs.dev\u002Fconfig\u002F\n",[26,3967,3968,3970,3972,3975],{"class":28,"line":73},[26,3969,3082],{"class":32},[26,3971,3085],{"class":32},[26,3973,3974],{"class":66}," defineConfig",[26,3976,2841],{"class":36},[26,3978,3979,3982,3984],{"class":28,"line":90},[26,3980,3981],{"class":36},"  plugins: [",[26,3983,590],{"class":66},[26,3985,3986],{"class":36},"()],\n",[26,3988,3989],{"class":28,"line":103},[26,3990,3991],{"class":36},"  resolve: {\n",[26,3993,3994],{"class":28,"line":116},[26,3995,3996],{"class":36},"    alias: {\n",[26,3998,3999,4002,4004,4007,4009,4012,4015,4017,4020,4022,4024,4026,4028],{"class":28,"line":129},[26,4000,4001],{"class":518},"      '@'",[26,4003,80],{"class":36},[26,4005,4006],{"class":66},"fileURLToPath",[26,4008,437],{"class":36},[26,4010,4011],{"class":32},"new",[26,4013,4014],{"class":66}," URL",[26,4016,437],{"class":36},[26,4018,4019],{"class":518},"'.\u002Fsrc'",[26,4021,3671],{"class":36},[26,4023,620],{"class":32},[26,4025,2856],{"class":36},[26,4027,2859],{"class":83},[26,4029,4030],{"class":36},".url))\n",[26,4032,4033],{"class":28,"line":142},[26,4034,2989],{"class":36},[26,4036,4037],{"class":28,"line":155},[26,4038,3328],{"class":36},[26,4040,4041],{"class":28,"line":168},[26,4042,4043],{"class":36},"  server: {\n",[26,4045,4046,4049,4052],{"class":28,"line":181},[26,4047,4048],{"class":36},"    port: ",[26,4050,4051],{"class":83},"3000",[26,4053,2889],{"class":36},[26,4055,4056,4059],{"class":28,"line":194},[26,4057,4058],{"class":36},"    open: ",[26,4060,4061],{"class":83},"true\n",[26,4063,4064],{"class":28,"line":207},[26,4065,3328],{"class":36},[26,4067,4068],{"class":28,"line":220},[26,4069,4070],{"class":36},"  build: {\n",[26,4072,4073,4076,4079],{"class":28,"line":226},[26,4074,4075],{"class":36},"    outDir: ",[26,4077,4078],{"class":518},"'dist'",[26,4080,2889],{"class":36},[26,4082,4083,4086,4088],{"class":28,"line":231},[26,4084,4085],{"class":36},"    sourcemap: ",[26,4087,3231],{"class":83},[26,4089,2889],{"class":36},[26,4091,4092],{"class":28,"line":240},[26,4093,4094],{"class":36},"    rollupOptions: {\n",[26,4096,4097],{"class":28,"line":248},[26,4098,4099],{"class":36},"      output: {\n",[26,4101,4102],{"class":28,"line":261},[26,4103,4104],{"class":36},"        manualChunks: {\n",[26,4106,4107,4110,4113,4115,4118],{"class":28,"line":273},[26,4108,4109],{"class":36},"          vendor: [",[26,4111,4112],{"class":518},"'vue'",[26,4114,3671],{"class":36},[26,4116,4117],{"class":518},"'vue-router'",[26,4119,3756],{"class":36},[26,4121,4122],{"class":28,"line":286},[26,4123,4124],{"class":36},"        }\n",[26,4126,4127],{"class":28,"line":298},[26,4128,2922],{"class":36},[26,4130,4131],{"class":28,"line":310},[26,4132,2989],{"class":36},[26,4134,4135],{"class":28,"line":322},[26,4136,388],{"class":36},[26,4138,4139],{"class":28,"line":334},[26,4140,1610],{"class":36},[15,4142,4147],{"className":4143,"code":4144,"filename":4145,"language":4146,"meta":21,"style":21},"language-js shiki shiki-themes github-light github-dark","\u002F** @type {import('tailwindcss').Config} *\u002F\nexport default {\n  content: [\n    \".\u002Findex.html\",\n    \".\u002Fsrc\u002F**\u002F*.{vue,js,ts,jsx,tsx}\",\n  ],\n  theme: {\n    extend: {\n      colors: {\n        'background': 'var(--color-background)',\n        'background-soft': 'var(--color-background-soft)',\n        'background-mute': 'var(--color-background-mute)',\n        'border': 'var(--color-border)',\n        'border-hover': 'var(--color-border-hover)',\n        'heading': 'var(--color-heading)',\n        'text': 'var(--color-text)',\n        'text-soft': 'var(--color-text-soft)',\n        'primary': {\n          DEFAULT: 'var(--color-primary)',\n          hover: 'var(--color-primary-hover)',\n          soft: 'var(--color-primary-soft)',\n        }\n      },\n      fontFamily: {\n        sans: ['Inter', 'system-ui', 'sans-serif'],\n      }\n    },\n  },\n  plugins: [],\n}\n","tailwind.config.js","js",[23,4148,4149,4163,4171,4176,4183,4190,4194,4199,4204,4209,4221,4233,4245,4257,4269,4281,4293,4305,4312,4322,4332,4342,4346,4351,4356,4376,4380,4384,4388,4393],{"__ignoreMap":21},[26,4150,4151,4154,4157,4160],{"class":28,"line":29},[26,4152,4153],{"class":3007},"\u002F** ",[26,4155,4156],{"class":32},"@type",[26,4158,4159],{"class":66}," {import('tailwindcss').Config}",[26,4161,4162],{"class":3007}," *\u002F\n",[26,4164,4165,4167,4169],{"class":28,"line":40},[26,4166,3082],{"class":32},[26,4168,3085],{"class":32},[26,4170,70],{"class":36},[26,4172,4173],{"class":28,"line":48},[26,4174,4175],{"class":36},"  content: [\n",[26,4177,4178,4181],{"class":28,"line":56},[26,4179,4180],{"class":518},"    \".\u002Findex.html\"",[26,4182,2889],{"class":36},[26,4184,4185,4188],{"class":28,"line":63},[26,4186,4187],{"class":518},"    \".\u002Fsrc\u002F**\u002F*.{vue,js,ts,jsx,tsx}\"",[26,4189,2889],{"class":36},[26,4191,4192],{"class":28,"line":73},[26,4193,3833],{"class":36},[26,4195,4196],{"class":28,"line":90},[26,4197,4198],{"class":36},"  theme: {\n",[26,4200,4201],{"class":28,"line":103},[26,4202,4203],{"class":36},"    extend: {\n",[26,4205,4206],{"class":28,"line":116},[26,4207,4208],{"class":36},"      colors: {\n",[26,4210,4211,4214,4216,4219],{"class":28,"line":129},[26,4212,4213],{"class":518},"        'background'",[26,4215,80],{"class":36},[26,4217,4218],{"class":518},"'var(--color-background)'",[26,4220,2889],{"class":36},[26,4222,4223,4226,4228,4231],{"class":28,"line":142},[26,4224,4225],{"class":518},"        'background-soft'",[26,4227,80],{"class":36},[26,4229,4230],{"class":518},"'var(--color-background-soft)'",[26,4232,2889],{"class":36},[26,4234,4235,4238,4240,4243],{"class":28,"line":155},[26,4236,4237],{"class":518},"        'background-mute'",[26,4239,80],{"class":36},[26,4241,4242],{"class":518},"'var(--color-background-mute)'",[26,4244,2889],{"class":36},[26,4246,4247,4250,4252,4255],{"class":28,"line":168},[26,4248,4249],{"class":518},"        'border'",[26,4251,80],{"class":36},[26,4253,4254],{"class":518},"'var(--color-border)'",[26,4256,2889],{"class":36},[26,4258,4259,4262,4264,4267],{"class":28,"line":181},[26,4260,4261],{"class":518},"        'border-hover'",[26,4263,80],{"class":36},[26,4265,4266],{"class":518},"'var(--color-border-hover)'",[26,4268,2889],{"class":36},[26,4270,4271,4274,4276,4279],{"class":28,"line":194},[26,4272,4273],{"class":518},"        'heading'",[26,4275,80],{"class":36},[26,4277,4278],{"class":518},"'var(--color-heading)'",[26,4280,2889],{"class":36},[26,4282,4283,4286,4288,4291],{"class":28,"line":207},[26,4284,4285],{"class":518},"        'text'",[26,4287,80],{"class":36},[26,4289,4290],{"class":518},"'var(--color-text)'",[26,4292,2889],{"class":36},[26,4294,4295,4298,4300,4303],{"class":28,"line":220},[26,4296,4297],{"class":518},"        'text-soft'",[26,4299,80],{"class":36},[26,4301,4302],{"class":518},"'var(--color-text-soft)'",[26,4304,2889],{"class":36},[26,4306,4307,4310],{"class":28,"line":226},[26,4308,4309],{"class":518},"        'primary'",[26,4311,3253],{"class":36},[26,4313,4314,4317,4320],{"class":28,"line":231},[26,4315,4316],{"class":36},"          DEFAULT: ",[26,4318,4319],{"class":518},"'var(--color-primary)'",[26,4321,2889],{"class":36},[26,4323,4324,4327,4330],{"class":28,"line":240},[26,4325,4326],{"class":36},"          hover: ",[26,4328,4329],{"class":518},"'var(--color-primary-hover)'",[26,4331,2889],{"class":36},[26,4333,4334,4337,4340],{"class":28,"line":248},[26,4335,4336],{"class":36},"          soft: ",[26,4338,4339],{"class":518},"'var(--color-primary-soft)'",[26,4341,2889],{"class":36},[26,4343,4344],{"class":28,"line":261},[26,4345,4124],{"class":36},[26,4347,4348],{"class":28,"line":273},[26,4349,4350],{"class":36},"      },\n",[26,4352,4353],{"class":28,"line":286},[26,4354,4355],{"class":36},"      fontFamily: {\n",[26,4357,4358,4361,4364,4366,4369,4371,4374],{"class":28,"line":298},[26,4359,4360],{"class":36},"        sans: [",[26,4362,4363],{"class":518},"'Inter'",[26,4365,3671],{"class":36},[26,4367,4368],{"class":518},"'system-ui'",[26,4370,3671],{"class":36},[26,4372,4373],{"class":518},"'sans-serif'",[26,4375,3682],{"class":36},[26,4377,4378],{"class":28,"line":310},[26,4379,2922],{"class":36},[26,4381,4382],{"class":28,"line":322},[26,4383,2927],{"class":36},[26,4385,4386],{"class":28,"line":334},[26,4387,3328],{"class":36},[26,4389,4390],{"class":28,"line":347},[26,4391,4392],{"class":36},"  plugins: [],\n",[26,4394,4395],{"class":28,"line":360},[26,4396,223],{"class":36},[15,4398,4401],{"className":4143,"code":4399,"filename":4400,"language":4146,"meta":21,"style":21},"export default {\n  plugins: {\n    tailwindcss: {},\n    autoprefixer: {},\n  },\n}\n","postcss.config.js",[23,4402,4403,4411,4416,4421,4426,4430],{"__ignoreMap":21},[26,4404,4405,4407,4409],{"class":28,"line":29},[26,4406,3082],{"class":32},[26,4408,3085],{"class":32},[26,4410,70],{"class":36},[26,4412,4413],{"class":28,"line":40},[26,4414,4415],{"class":36},"  plugins: {\n",[26,4417,4418],{"class":28,"line":48},[26,4419,4420],{"class":36},"    tailwindcss: {},\n",[26,4422,4423],{"class":28,"line":56},[26,4424,4425],{"class":36},"    autoprefixer: {},\n",[26,4427,4428],{"class":28,"line":63},[26,4429,3328],{"class":36},[26,4431,4432],{"class":28,"line":73},[26,4433,223],{"class":36},[15,4435,4438],{"className":2794,"code":4436,"filename":4437,"language":2797,"meta":21,"style":21},"\u002F\u002F\u002F \u003Creference types=\"vite\u002Fclient\" \u002F>\n\ndeclare module '*.vue' {\n  import type { DefineComponent } from 'vue'\n  const component: DefineComponent\u003C{}, {}, any>\n  export default component\n}\n","env.d.ts",[23,4439,4440,4458,4462,4475,4490,4512,4522],{"__ignoreMap":21},[26,4441,4442,4445,4448,4451,4453,4456],{"class":28,"line":29},[26,4443,4444],{"class":3007},"\u002F\u002F\u002F \u003C",[26,4446,4447],{"class":404},"reference",[26,4449,4450],{"class":66}," types",[26,4452,609],{"class":32},[26,4454,4455],{"class":518},"\"vite\u002Fclient\"",[26,4457,700],{"class":3007},[26,4459,4460],{"class":28,"line":40},[26,4461,60],{"emptyLinePlaceholder":59},[26,4463,4464,4467,4470,4473],{"class":28,"line":48},[26,4465,4466],{"class":32},"declare",[26,4468,4469],{"class":32}," module",[26,4471,4472],{"class":518}," '*.vue'",[26,4474,70],{"class":36},[26,4476,4477,4480,4483,4486,4488],{"class":28,"line":56},[26,4478,4479],{"class":32},"  import",[26,4481,4482],{"class":32}," type",[26,4484,4485],{"class":36}," { DefineComponent } ",[26,4487,626],{"class":32},[26,4489,833],{"class":518},[26,4491,4492,4495,4498,4501,4504,4507,4510],{"class":28,"line":63},[26,4493,4494],{"class":32},"  const",[26,4496,4497],{"class":83}," component",[26,4499,4500],{"class":32},":",[26,4502,4503],{"class":66}," DefineComponent",[26,4505,4506],{"class":36},"\u003C{}, {}, ",[26,4508,4509],{"class":83},"any",[26,4511,615],{"class":36},[26,4513,4514,4517,4519],{"class":28,"line":73},[26,4515,4516],{"class":32},"  export",[26,4518,3085],{"class":32},[26,4520,4521],{"class":36}," component\n",[26,4523,4524],{"class":28,"line":90},[26,4525,223],{"class":36},[15,4527,4532],{"className":4528,"code":4529,"filename":4530,"language":4531,"meta":21,"style":21},"language-html shiki shiki-themes github-light github-dark","\u003C!DOCTYPE html>\n\u003Chtml lang=\"en\">\n  \u003Chead>\n    \u003Cmeta charset=\"UTF-8\">\n    \u003Clink rel=\"icon\" href=\"\u002Ffavicon.ico\">\n    \u003Cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    \u003Ctitle>Vue App\u003C\u002Ftitle>\n  \u003C\u002Fhead>\n  \u003Cbody>\n    \u003Cdiv id=\"app\">\u003C\u002Fdiv>\n    \u003Cscript type=\"module\" src=\"\u002Fsrc\u002Fmain.ts\">\u003C\u002Fscript>\n  \u003C\u002Fbody>\n\u003C\u002Fhtml>\n","index.html","html",[23,4533,4534,4547,4562,4571,4587,4612,4636,4649,4657,4665,4683,4709,4717],{"__ignoreMap":21},[26,4535,4536,4539,4542,4545],{"class":28,"line":29},[26,4537,4538],{"class":36},"\u003C!",[26,4540,4541],{"class":404},"DOCTYPE",[26,4543,4544],{"class":66}," html",[26,4546,615],{"class":36},[26,4548,4549,4551,4553,4555,4557,4560],{"class":28,"line":40},[26,4550,597],{"class":36},[26,4552,4531],{"class":404},[26,4554,606],{"class":66},[26,4556,609],{"class":36},[26,4558,4559],{"class":518},"\"en\"",[26,4561,615],{"class":36},[26,4563,4564,4566,4569],{"class":28,"line":48},[26,4565,668],{"class":36},[26,4567,4568],{"class":404},"head",[26,4570,615],{"class":36},[26,4572,4573,4575,4577,4580,4582,4585],{"class":28,"line":56},[26,4574,694],{"class":36},[26,4576,2859],{"class":404},[26,4578,4579],{"class":66}," charset",[26,4581,609],{"class":36},[26,4583,4584],{"class":518},"\"UTF-8\"",[26,4586,615],{"class":36},[26,4588,4589,4591,4594,4597,4599,4602,4605,4607,4610],{"class":28,"line":63},[26,4590,694],{"class":36},[26,4592,4593],{"class":404},"link",[26,4595,4596],{"class":66}," rel",[26,4598,609],{"class":36},[26,4600,4601],{"class":518},"\"icon\"",[26,4603,4604],{"class":66}," href",[26,4606,609],{"class":36},[26,4608,4609],{"class":518},"\"\u002Ffavicon.ico\"",[26,4611,615],{"class":36},[26,4613,4614,4616,4618,4621,4623,4626,4629,4631,4634],{"class":28,"line":73},[26,4615,694],{"class":36},[26,4617,2859],{"class":404},[26,4619,4620],{"class":66}," name",[26,4622,609],{"class":36},[26,4624,4625],{"class":518},"\"viewport\"",[26,4627,4628],{"class":66}," content",[26,4630,609],{"class":36},[26,4632,4633],{"class":518},"\"width=device-width, initial-scale=1.0\"",[26,4635,615],{"class":36},[26,4637,4638,4640,4642,4645,4647],{"class":28,"line":90},[26,4639,694],{"class":36},[26,4641,3058],{"class":404},[26,4643,4644],{"class":36},">Vue App\u003C\u002F",[26,4646,3058],{"class":404},[26,4648,615],{"class":36},[26,4650,4651,4653,4655],{"class":28,"line":103},[26,4652,740],{"class":36},[26,4654,4568],{"class":404},[26,4656,615],{"class":36},[26,4658,4659,4661,4663],{"class":28,"line":116},[26,4660,668],{"class":36},[26,4662,405],{"class":404},[26,4664,615],{"class":36},[26,4666,4667,4669,4671,4673,4675,4677,4679,4681],{"class":28,"line":129},[26,4668,694],{"class":36},[26,4670,671],{"class":404},[26,4672,674],{"class":66},[26,4674,609],{"class":36},[26,4676,679],{"class":518},[26,4678,1269],{"class":36},[26,4680,671],{"class":404},[26,4682,615],{"class":36},[26,4684,4685,4687,4689,4691,4693,4695,4698,4700,4703,4705,4707],{"class":28,"line":142},[26,4686,694],{"class":36},[26,4688,600],{"class":404},[26,4690,4482],{"class":66},[26,4692,609],{"class":36},[26,4694,3243],{"class":518},[26,4696,4697],{"class":66}," src",[26,4699,609],{"class":36},[26,4701,4702],{"class":518},"\"\u002Fsrc\u002Fmain.ts\"",[26,4704,1269],{"class":36},[26,4706,600],{"class":404},[26,4708,615],{"class":36},[26,4710,4711,4713,4715],{"class":28,"line":155},[26,4712,740],{"class":36},[26,4714,405],{"class":404},[26,4716,615],{"class":36},[26,4718,4719,4721,4723],{"class":28,"line":168},[26,4720,646],{"class":36},[26,4722,4531],{"class":404},[26,4724,615],{"class":36},[15,4726,4731],{"className":4727,"code":4728,"filename":4729,"language":4730,"meta":21,"style":21},"language-md shiki shiki-themes github-light github-dark","# Vue 3 Modern Template\n\nA modern Vue 3 application built with Composition API, TypeScript, Vue Router, and Tailwind CSS.\n\n## Features\n\n- ⚡ **Vue 3** - Latest version with Composition API\n- 🚀 **Vite** - Lightning fast build tool with HMR\n- 📝 **TypeScript** - Full TypeScript support with strict mode\n- 🛣️ **Vue Router** - Official router with dynamic imports\n- 🎨 **Tailwind CSS** - Utility-first CSS framework\n- 🌙 **Dark Mode** - Built-in dark mode support\n- 📱 **Responsive** - Mobile-first responsive design\n- 🎯 **ESLint & Prettier** - Code linting and formatting\n- 🔧 **Path Aliases** - Clean imports with @ alias\n- 🏗️ **Component Structure** - Well-organized component architecture\n\n## Getting Started\n\nInstall dependencies:\n\n```bash\n# npm\nnpm install\n\n# pnpm\npnpm install\n\n# yarn\nyarn install\n\n# bun\nbun install\n```\n\n## Development\n\nRun the development server:\n\n```bash\n# npm\nnpm run dev\n\n# pnpm\npnpm run dev\n\n# yarn\nyarn dev\n\n# bun\nbun run dev\n```\n\nThe application will open at [http:\u002F\u002Flocalhost:3000](http:\u002F\u002Flocalhost:3000).\n\n## Production\n\nBuild for production:\n\n```bash\n# npm\nnpm run build\n\n# pnpm\npnpm run build\n\n# yarn\nyarn build\n\n# bun\nbun run build\n```\n\nPreview production build:\n\n```bash\n# npm\nnpm run preview\n\n# pnpm\npnpm run preview\n\n# yarn\nyarn preview\n\n# bun\nbun run preview\n```\n\n## Development Tools\n\nType checking:\n```bash\nnpm run type-check\n```\n\nLint and fix code:\n```bash\nnpm run lint\n```\n\nFormat code:\n```bash\nnpm run format\n```\n\n## Project Structure\n\n```\n├── public\u002F              # Static assets\n├── src\u002F\n│   ├── assets\u002F         # CSS and other assets\n│   ├── components\u002F     # Reusable Vue components\n│   ├── router\u002F         # Vue Router configuration\n│   ├── views\u002F          # Page components\n│   ├── App.vue         # Root component\n│   └── main.ts         # Application entry point\n├── index.html          # HTML template\n├── vite.config.ts      # Vite configuration\n├── tailwind.config.js  # Tailwind configuration\n└── tsconfig.*.json     # TypeScript configurations\n```\n\n## Key Technologies\n\n- **Vue 3**: Modern reactive framework with Composition API\n- **TypeScript**: Type-safe JavaScript with excellent IDE support\n- **Vite**: Next-generation frontend build tool\n- **Vue Router**: Official routing solution for Vue.js\n- **Tailwind CSS**: Utility-first CSS framework\n- **ESLint**: Code linting and error detection\n- **Prettier**: Code formatting and style consistency\n\n## Component Features\n\n- **Composition API**: Modern Vue 3 syntax with `\u003Cscript setup>`\n- **TypeScript Props**: Type-safe component props with interfaces\n- **Reactive State**: Vue's reactive system with `ref()` and `reactive()`\n- **Navigation**: Vue Router with dynamic page titles\n- **Responsive Design**: Mobile-first approach with Tailwind\n- **Dark Mode**: CSS custom properties with system preference detection\n\n## Learn More\n\n- [Vue 3 Documentation](https:\u002F\u002Fvuejs.org\u002F)\n- [Vue Router Documentation](https:\u002F\u002Frouter.vuejs.org\u002F)\n- [Vite Documentation](https:\u002F\u002Fvitejs.dev\u002F)\n- [Tailwind CSS Documentation](https:\u002F\u002Ftailwindcss.com\u002F)\n- [TypeScript Documentation](https:\u002F\u002Fwww.typescriptlang.org\u002F)\n","README.md","md",[23,4732,4733,4739,4743,4748,4752,4757,4761,4776,4789,4802,4815,4828,4841,4854,4867,4880,4893,4897,4902,4906,4911,4915,4920,4925,4933,4937,4942,4949,4953,4958,4965,4969,4974,4981,4986,4990,4995,4999,5004,5008,5012,5016,5026,5030,5034,5042,5046,5050,5056,5060,5064,5072,5076,5080,5098,5102,5107,5111,5116,5120,5124,5128,5137,5141,5145,5153,5157,5161,5167,5172,5177,5186,5191,5196,5202,5207,5212,5217,5227,5232,5237,5246,5251,5256,5263,5268,5273,5282,5287,5292,5298,5303,5309,5314,5324,5329,5334,5340,5345,5355,5360,5365,5371,5376,5386,5391,5396,5402,5407,5412,5418,5424,5430,5436,5442,5448,5454,5460,5466,5472,5478,5484,5489,5494,5500,5505,5516,5527,5538,5549,5560,5571,5582,5587,5593,5598,5612,5623,5643,5654,5665,5676,5681,5687,5692,5710,5727,5744,5761],{"__ignoreMap":21},[26,4734,4735],{"class":28,"line":29},[26,4736,4738],{"class":4737},"sq-ep","# Vue 3 Modern Template\n",[26,4740,4741],{"class":28,"line":40},[26,4742,60],{"emptyLinePlaceholder":59},[26,4744,4745],{"class":28,"line":48},[26,4746,4747],{"class":36},"A modern Vue 3 application built with Composition API, TypeScript, Vue Router, and Tailwind CSS.\n",[26,4749,4750],{"class":28,"line":56},[26,4751,60],{"emptyLinePlaceholder":59},[26,4753,4754],{"class":28,"line":63},[26,4755,4756],{"class":4737},"## Features\n",[26,4758,4759],{"class":28,"line":73},[26,4760,60],{"emptyLinePlaceholder":59},[26,4762,4763,4766,4769,4773],{"class":28,"line":90},[26,4764,4765],{"class":76},"-",[26,4767,4768],{"class":36}," ⚡ ",[26,4770,4772],{"class":4771},"sIZ1i","**Vue 3**",[26,4774,4775],{"class":36}," - Latest version with Composition API\n",[26,4777,4778,4780,4783,4786],{"class":28,"line":103},[26,4779,4765],{"class":76},[26,4781,4782],{"class":36}," 🚀 ",[26,4784,4785],{"class":4771},"**Vite**",[26,4787,4788],{"class":36}," - Lightning fast build tool with HMR\n",[26,4790,4791,4793,4796,4799],{"class":28,"line":116},[26,4792,4765],{"class":76},[26,4794,4795],{"class":36}," 📝 ",[26,4797,4798],{"class":4771},"**TypeScript**",[26,4800,4801],{"class":36}," - Full TypeScript support with strict mode\n",[26,4803,4804,4806,4809,4812],{"class":28,"line":129},[26,4805,4765],{"class":76},[26,4807,4808],{"class":36}," 🛣️ ",[26,4810,4811],{"class":4771},"**Vue Router**",[26,4813,4814],{"class":36}," - Official router with dynamic imports\n",[26,4816,4817,4819,4822,4825],{"class":28,"line":142},[26,4818,4765],{"class":76},[26,4820,4821],{"class":36}," 🎨 ",[26,4823,4824],{"class":4771},"**Tailwind CSS**",[26,4826,4827],{"class":36}," - Utility-first CSS framework\n",[26,4829,4830,4832,4835,4838],{"class":28,"line":155},[26,4831,4765],{"class":76},[26,4833,4834],{"class":36}," 🌙 ",[26,4836,4837],{"class":4771},"**Dark Mode**",[26,4839,4840],{"class":36}," - Built-in dark mode support\n",[26,4842,4843,4845,4848,4851],{"class":28,"line":168},[26,4844,4765],{"class":76},[26,4846,4847],{"class":36}," 📱 ",[26,4849,4850],{"class":4771},"**Responsive**",[26,4852,4853],{"class":36}," - Mobile-first responsive design\n",[26,4855,4856,4858,4861,4864],{"class":28,"line":181},[26,4857,4765],{"class":76},[26,4859,4860],{"class":36}," 🎯 ",[26,4862,4863],{"class":4771},"**ESLint & Prettier**",[26,4865,4866],{"class":36}," - Code linting and formatting\n",[26,4868,4869,4871,4874,4877],{"class":28,"line":194},[26,4870,4765],{"class":76},[26,4872,4873],{"class":36}," 🔧 ",[26,4875,4876],{"class":4771},"**Path Aliases**",[26,4878,4879],{"class":36}," - Clean imports with @ alias\n",[26,4881,4882,4884,4887,4890],{"class":28,"line":207},[26,4883,4765],{"class":76},[26,4885,4886],{"class":36}," 🏗️ ",[26,4888,4889],{"class":4771},"**Component Structure**",[26,4891,4892],{"class":36}," - Well-organized component architecture\n",[26,4894,4895],{"class":28,"line":220},[26,4896,60],{"emptyLinePlaceholder":59},[26,4898,4899],{"class":28,"line":226},[26,4900,4901],{"class":4737},"## Getting Started\n",[26,4903,4904],{"class":28,"line":231},[26,4905,60],{"emptyLinePlaceholder":59},[26,4907,4908],{"class":28,"line":240},[26,4909,4910],{"class":36},"Install dependencies:\n",[26,4912,4913],{"class":28,"line":248},[26,4914,60],{"emptyLinePlaceholder":59},[26,4916,4917],{"class":28,"line":261},[26,4918,4919],{"class":36},"```bash\n",[26,4921,4922],{"class":28,"line":273},[26,4923,4924],{"class":3007},"# npm\n",[26,4926,4927,4930],{"class":28,"line":286},[26,4928,4929],{"class":66},"npm",[26,4931,4932],{"class":518}," install\n",[26,4934,4935],{"class":28,"line":298},[26,4936,60],{"emptyLinePlaceholder":59},[26,4938,4939],{"class":28,"line":310},[26,4940,4941],{"class":3007},"# pnpm\n",[26,4943,4944,4947],{"class":28,"line":322},[26,4945,4946],{"class":66},"pnpm",[26,4948,4932],{"class":518},[26,4950,4951],{"class":28,"line":334},[26,4952,60],{"emptyLinePlaceholder":59},[26,4954,4955],{"class":28,"line":347},[26,4956,4957],{"class":3007},"# yarn\n",[26,4959,4960,4963],{"class":28,"line":360},[26,4961,4962],{"class":66},"yarn",[26,4964,4932],{"class":518},[26,4966,4967],{"class":28,"line":372},[26,4968,60],{"emptyLinePlaceholder":59},[26,4970,4971],{"class":28,"line":385},[26,4972,4973],{"class":3007},"# bun\n",[26,4975,4976,4979],{"class":28,"line":391},[26,4977,4978],{"class":66},"bun",[26,4980,4932],{"class":518},[26,4982,4983],{"class":28,"line":396},[26,4984,4985],{"class":36},"```\n",[26,4987,4988],{"class":28,"line":401},[26,4989,60],{"emptyLinePlaceholder":59},[26,4991,4992],{"class":28,"line":410},[26,4993,4994],{"class":4737},"## Development\n",[26,4996,4997],{"class":28,"line":426},[26,4998,60],{"emptyLinePlaceholder":59},[26,5000,5001],{"class":28,"line":446},[26,5002,5003],{"class":36},"Run the development server:\n",[26,5005,5006],{"class":28,"line":463},[26,5007,60],{"emptyLinePlaceholder":59},[26,5009,5010],{"class":28,"line":490},[26,5011,4919],{"class":36},[26,5013,5014],{"class":28,"line":503},[26,5015,4924],{"class":3007},[26,5017,5018,5020,5023],{"class":28,"line":530},[26,5019,4929],{"class":66},[26,5021,5022],{"class":518}," run",[26,5024,5025],{"class":518}," dev\n",[26,5027,5028],{"class":28,"line":543},[26,5029,60],{"emptyLinePlaceholder":59},[26,5031,5032],{"class":28,"line":556},[26,5033,4941],{"class":3007},[26,5035,5036,5038,5040],{"class":28,"line":569},[26,5037,4946],{"class":66},[26,5039,5022],{"class":518},[26,5041,5025],{"class":518},[26,5043,5044],{"class":28,"line":582},[26,5045,60],{"emptyLinePlaceholder":59},[26,5047,5048],{"class":28,"line":1284},[26,5049,4957],{"class":3007},[26,5051,5052,5054],{"class":28,"line":1294},[26,5053,4962],{"class":66},[26,5055,5025],{"class":518},[26,5057,5058],{"class":28,"line":1304},[26,5059,60],{"emptyLinePlaceholder":59},[26,5061,5062],{"class":28,"line":1309},[26,5063,4973],{"class":3007},[26,5065,5066,5068,5070],{"class":28,"line":1333},[26,5067,4978],{"class":66},[26,5069,5022],{"class":518},[26,5071,5025],{"class":518},[26,5073,5074],{"class":28,"line":1340},[26,5075,4985],{"class":36},[26,5077,5078],{"class":28,"line":1349},[26,5079,60],{"emptyLinePlaceholder":59},[26,5081,5082,5085,5089,5092,5095],{"class":28,"line":1359},[26,5083,5084],{"class":36},"The application will open at [",[26,5086,5088],{"class":5087},"svl0z","http:\u002F\u002Flocalhost:3000",[26,5090,5091],{"class":36},"](",[26,5093,5088],{"class":5094},"s2frl",[26,5096,5097],{"class":36},").\n",[26,5099,5100],{"class":28,"line":1369},[26,5101,60],{"emptyLinePlaceholder":59},[26,5103,5104],{"class":28,"line":1374},[26,5105,5106],{"class":4737},"## Production\n",[26,5108,5109],{"class":28,"line":1380},[26,5110,60],{"emptyLinePlaceholder":59},[26,5112,5113],{"class":28,"line":1389},[26,5114,5115],{"class":36},"Build for production:\n",[26,5117,5118],{"class":28,"line":1396},[26,5119,60],{"emptyLinePlaceholder":59},[26,5121,5122],{"class":28,"line":1405},[26,5123,4919],{"class":36},[26,5125,5126],{"class":28,"line":1414},[26,5127,4924],{"class":3007},[26,5129,5130,5132,5134],{"class":28,"line":1423},[26,5131,4929],{"class":66},[26,5133,5022],{"class":518},[26,5135,5136],{"class":518}," build\n",[26,5138,5139],{"class":28,"line":1428},[26,5140,60],{"emptyLinePlaceholder":59},[26,5142,5143],{"class":28,"line":1434},[26,5144,4941],{"class":3007},[26,5146,5147,5149,5151],{"class":28,"line":1443},[26,5148,4946],{"class":66},[26,5150,5022],{"class":518},[26,5152,5136],{"class":518},[26,5154,5155],{"class":28,"line":1452},[26,5156,60],{"emptyLinePlaceholder":59},[26,5158,5159],{"class":28,"line":1461},[26,5160,4957],{"class":3007},[26,5162,5163,5165],{"class":28,"line":1470},[26,5164,4962],{"class":66},[26,5166,5136],{"class":518},[26,5168,5170],{"class":28,"line":5169},69,[26,5171,60],{"emptyLinePlaceholder":59},[26,5173,5175],{"class":28,"line":5174},70,[26,5176,4973],{"class":3007},[26,5178,5180,5182,5184],{"class":28,"line":5179},71,[26,5181,4978],{"class":66},[26,5183,5022],{"class":518},[26,5185,5136],{"class":518},[26,5187,5189],{"class":28,"line":5188},72,[26,5190,4985],{"class":36},[26,5192,5194],{"class":28,"line":5193},73,[26,5195,60],{"emptyLinePlaceholder":59},[26,5197,5199],{"class":28,"line":5198},74,[26,5200,5201],{"class":36},"Preview production build:\n",[26,5203,5205],{"class":28,"line":5204},75,[26,5206,60],{"emptyLinePlaceholder":59},[26,5208,5210],{"class":28,"line":5209},76,[26,5211,4919],{"class":36},[26,5213,5215],{"class":28,"line":5214},77,[26,5216,4924],{"class":3007},[26,5218,5220,5222,5224],{"class":28,"line":5219},78,[26,5221,4929],{"class":66},[26,5223,5022],{"class":518},[26,5225,5226],{"class":518}," preview\n",[26,5228,5230],{"class":28,"line":5229},79,[26,5231,60],{"emptyLinePlaceholder":59},[26,5233,5235],{"class":28,"line":5234},80,[26,5236,4941],{"class":3007},[26,5238,5240,5242,5244],{"class":28,"line":5239},81,[26,5241,4946],{"class":66},[26,5243,5022],{"class":518},[26,5245,5226],{"class":518},[26,5247,5249],{"class":28,"line":5248},82,[26,5250,60],{"emptyLinePlaceholder":59},[26,5252,5254],{"class":28,"line":5253},83,[26,5255,4957],{"class":3007},[26,5257,5259,5261],{"class":28,"line":5258},84,[26,5260,4962],{"class":66},[26,5262,5226],{"class":518},[26,5264,5266],{"class":28,"line":5265},85,[26,5267,60],{"emptyLinePlaceholder":59},[26,5269,5271],{"class":28,"line":5270},86,[26,5272,4973],{"class":3007},[26,5274,5276,5278,5280],{"class":28,"line":5275},87,[26,5277,4978],{"class":66},[26,5279,5022],{"class":518},[26,5281,5226],{"class":518},[26,5283,5285],{"class":28,"line":5284},88,[26,5286,4985],{"class":36},[26,5288,5290],{"class":28,"line":5289},89,[26,5291,60],{"emptyLinePlaceholder":59},[26,5293,5295],{"class":28,"line":5294},90,[26,5296,5297],{"class":4737},"## Development Tools\n",[26,5299,5301],{"class":28,"line":5300},91,[26,5302,60],{"emptyLinePlaceholder":59},[26,5304,5306],{"class":28,"line":5305},92,[26,5307,5308],{"class":36},"Type checking:\n",[26,5310,5312],{"class":28,"line":5311},93,[26,5313,4919],{"class":36},[26,5315,5317,5319,5321],{"class":28,"line":5316},94,[26,5318,4929],{"class":66},[26,5320,5022],{"class":518},[26,5322,5323],{"class":518}," type-check\n",[26,5325,5327],{"class":28,"line":5326},95,[26,5328,4985],{"class":36},[26,5330,5332],{"class":28,"line":5331},96,[26,5333,60],{"emptyLinePlaceholder":59},[26,5335,5337],{"class":28,"line":5336},97,[26,5338,5339],{"class":36},"Lint and fix code:\n",[26,5341,5343],{"class":28,"line":5342},98,[26,5344,4919],{"class":36},[26,5346,5348,5350,5352],{"class":28,"line":5347},99,[26,5349,4929],{"class":66},[26,5351,5022],{"class":518},[26,5353,5354],{"class":518}," lint\n",[26,5356,5358],{"class":28,"line":5357},100,[26,5359,4985],{"class":36},[26,5361,5363],{"class":28,"line":5362},101,[26,5364,60],{"emptyLinePlaceholder":59},[26,5366,5368],{"class":28,"line":5367},102,[26,5369,5370],{"class":36},"Format code:\n",[26,5372,5374],{"class":28,"line":5373},103,[26,5375,4919],{"class":36},[26,5377,5379,5381,5383],{"class":28,"line":5378},104,[26,5380,4929],{"class":66},[26,5382,5022],{"class":518},[26,5384,5385],{"class":518}," format\n",[26,5387,5389],{"class":28,"line":5388},105,[26,5390,4985],{"class":36},[26,5392,5394],{"class":28,"line":5393},106,[26,5395,60],{"emptyLinePlaceholder":59},[26,5397,5399],{"class":28,"line":5398},107,[26,5400,5401],{"class":4737},"## Project Structure\n",[26,5403,5405],{"class":28,"line":5404},108,[26,5406,60],{"emptyLinePlaceholder":59},[26,5408,5410],{"class":28,"line":5409},109,[26,5411,4985],{"class":36},[26,5413,5415],{"class":28,"line":5414},110,[26,5416,5417],{"class":36},"├── public\u002F              # Static assets\n",[26,5419,5421],{"class":28,"line":5420},111,[26,5422,5423],{"class":36},"├── src\u002F\n",[26,5425,5427],{"class":28,"line":5426},112,[26,5428,5429],{"class":36},"│   ├── assets\u002F         # CSS and other assets\n",[26,5431,5433],{"class":28,"line":5432},113,[26,5434,5435],{"class":36},"│   ├── components\u002F     # Reusable Vue components\n",[26,5437,5439],{"class":28,"line":5438},114,[26,5440,5441],{"class":36},"│   ├── router\u002F         # Vue Router configuration\n",[26,5443,5445],{"class":28,"line":5444},115,[26,5446,5447],{"class":36},"│   ├── views\u002F          # Page components\n",[26,5449,5451],{"class":28,"line":5450},116,[26,5452,5453],{"class":36},"│   ├── App.vue         # Root component\n",[26,5455,5457],{"class":28,"line":5456},117,[26,5458,5459],{"class":36},"│   └── main.ts         # Application entry point\n",[26,5461,5463],{"class":28,"line":5462},118,[26,5464,5465],{"class":36},"├── index.html          # HTML template\n",[26,5467,5469],{"class":28,"line":5468},119,[26,5470,5471],{"class":36},"├── vite.config.ts      # Vite configuration\n",[26,5473,5475],{"class":28,"line":5474},120,[26,5476,5477],{"class":36},"├── tailwind.config.js  # Tailwind configuration\n",[26,5479,5481],{"class":28,"line":5480},121,[26,5482,5483],{"class":36},"└── tsconfig.*.json     # TypeScript configurations\n",[26,5485,5487],{"class":28,"line":5486},122,[26,5488,4985],{"class":36},[26,5490,5492],{"class":28,"line":5491},123,[26,5493,60],{"emptyLinePlaceholder":59},[26,5495,5497],{"class":28,"line":5496},124,[26,5498,5499],{"class":4737},"## Key Technologies\n",[26,5501,5503],{"class":28,"line":5502},125,[26,5504,60],{"emptyLinePlaceholder":59},[26,5506,5508,5510,5513],{"class":28,"line":5507},126,[26,5509,4765],{"class":76},[26,5511,5512],{"class":4771}," **Vue 3**",[26,5514,5515],{"class":36},": Modern reactive framework with Composition API\n",[26,5517,5519,5521,5524],{"class":28,"line":5518},127,[26,5520,4765],{"class":76},[26,5522,5523],{"class":4771}," **TypeScript**",[26,5525,5526],{"class":36},": Type-safe JavaScript with excellent IDE support\n",[26,5528,5530,5532,5535],{"class":28,"line":5529},128,[26,5531,4765],{"class":76},[26,5533,5534],{"class":4771}," **Vite**",[26,5536,5537],{"class":36},": Next-generation frontend build tool\n",[26,5539,5541,5543,5546],{"class":28,"line":5540},129,[26,5542,4765],{"class":76},[26,5544,5545],{"class":4771}," **Vue Router**",[26,5547,5548],{"class":36},": Official routing solution for Vue.js\n",[26,5550,5552,5554,5557],{"class":28,"line":5551},130,[26,5553,4765],{"class":76},[26,5555,5556],{"class":4771}," **Tailwind CSS**",[26,5558,5559],{"class":36},": Utility-first CSS framework\n",[26,5561,5563,5565,5568],{"class":28,"line":5562},131,[26,5564,4765],{"class":76},[26,5566,5567],{"class":4771}," **ESLint**",[26,5569,5570],{"class":36},": Code linting and error detection\n",[26,5572,5574,5576,5579],{"class":28,"line":5573},132,[26,5575,4765],{"class":76},[26,5577,5578],{"class":4771}," **Prettier**",[26,5580,5581],{"class":36},": Code formatting and style consistency\n",[26,5583,5585],{"class":28,"line":5584},133,[26,5586,60],{"emptyLinePlaceholder":59},[26,5588,5590],{"class":28,"line":5589},134,[26,5591,5592],{"class":4737},"## Component Features\n",[26,5594,5596],{"class":28,"line":5595},135,[26,5597,60],{"emptyLinePlaceholder":59},[26,5599,5601,5603,5606,5609],{"class":28,"line":5600},136,[26,5602,4765],{"class":76},[26,5604,5605],{"class":4771}," **Composition API**",[26,5607,5608],{"class":36},": Modern Vue 3 syntax with ",[26,5610,5611],{"class":83},"`\u003Cscript setup>`\n",[26,5613,5615,5617,5620],{"class":28,"line":5614},137,[26,5616,4765],{"class":76},[26,5618,5619],{"class":4771}," **TypeScript Props**",[26,5621,5622],{"class":36},": Type-safe component props with interfaces\n",[26,5624,5626,5628,5631,5634,5637,5640],{"class":28,"line":5625},138,[26,5627,4765],{"class":76},[26,5629,5630],{"class":4771}," **Reactive State**",[26,5632,5633],{"class":36},": Vue's reactive system with ",[26,5635,5636],{"class":83},"`ref()`",[26,5638,5639],{"class":36}," and ",[26,5641,5642],{"class":83},"`reactive()`\n",[26,5644,5646,5648,5651],{"class":28,"line":5645},139,[26,5647,4765],{"class":76},[26,5649,5650],{"class":4771}," **Navigation**",[26,5652,5653],{"class":36},": Vue Router with dynamic page titles\n",[26,5655,5657,5659,5662],{"class":28,"line":5656},140,[26,5658,4765],{"class":76},[26,5660,5661],{"class":4771}," **Responsive Design**",[26,5663,5664],{"class":36},": Mobile-first approach with Tailwind\n",[26,5666,5668,5670,5673],{"class":28,"line":5667},141,[26,5669,4765],{"class":76},[26,5671,5672],{"class":4771}," **Dark Mode**",[26,5674,5675],{"class":36},": CSS custom properties with system preference detection\n",[26,5677,5679],{"class":28,"line":5678},142,[26,5680,60],{"emptyLinePlaceholder":59},[26,5682,5684],{"class":28,"line":5683},143,[26,5685,5686],{"class":4737},"## Learn More\n",[26,5688,5690],{"class":28,"line":5689},144,[26,5691,60],{"emptyLinePlaceholder":59},[26,5693,5695,5697,5700,5703,5705,5708],{"class":28,"line":5694},145,[26,5696,4765],{"class":76},[26,5698,5699],{"class":36}," [",[26,5701,5702],{"class":5087},"Vue 3 Documentation",[26,5704,5091],{"class":36},[26,5706,5707],{"class":5094},"https:\u002F\u002Fvuejs.org\u002F",[26,5709,870],{"class":36},[26,5711,5713,5715,5717,5720,5722,5725],{"class":28,"line":5712},146,[26,5714,4765],{"class":76},[26,5716,5699],{"class":36},[26,5718,5719],{"class":5087},"Vue Router Documentation",[26,5721,5091],{"class":36},[26,5723,5724],{"class":5094},"https:\u002F\u002Frouter.vuejs.org\u002F",[26,5726,870],{"class":36},[26,5728,5730,5732,5734,5737,5739,5742],{"class":28,"line":5729},147,[26,5731,4765],{"class":76},[26,5733,5699],{"class":36},[26,5735,5736],{"class":5087},"Vite Documentation",[26,5738,5091],{"class":36},[26,5740,5741],{"class":5094},"https:\u002F\u002Fvitejs.dev\u002F",[26,5743,870],{"class":36},[26,5745,5747,5749,5751,5754,5756,5759],{"class":28,"line":5746},148,[26,5748,4765],{"class":76},[26,5750,5699],{"class":36},[26,5752,5753],{"class":5087},"Tailwind CSS Documentation",[26,5755,5091],{"class":36},[26,5757,5758],{"class":5094},"https:\u002F\u002Ftailwindcss.com\u002F",[26,5760,870],{"class":36},[26,5762,5764,5766,5768,5771,5773,5776],{"class":28,"line":5763},149,[26,5765,4765],{"class":76},[26,5767,5699],{"class":36},[26,5769,5770],{"class":5087},"TypeScript Documentation",[26,5772,5091],{"class":36},[26,5774,5775],{"class":5094},"https:\u002F\u002Fwww.typescriptlang.org\u002F",[26,5777,870],{"class":36},[763,5779,5780],{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s9eBZ, html code.shiki .s9eBZ{--shiki-default:#22863A;--shiki-dark:#85E89D}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}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 .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sq-ep, html code.shiki .sq-ep{--shiki-default:#005CC5;--shiki-default-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold}html pre.shiki code .sIZ1i, html code.shiki .sIZ1i{--shiki-default:#24292E;--shiki-default-font-weight:bold;--shiki-dark:#E1E4E8;--shiki-dark-font-weight:bold}html pre.shiki code .svl0z, html code.shiki .svl0z{--shiki-default:#032F62;--shiki-default-text-decoration:underline;--shiki-dark:#DBEDFF;--shiki-dark-text-decoration:underline}html pre.shiki code .s2frl, html code.shiki .s2frl{--shiki-default:#24292E;--shiki-default-text-decoration:underline;--shiki-dark:#E1E4E8;--shiki-dark-text-decoration:underline}",{"title":21,"searchDepth":40,"depth":40,"links":5782},[],"A modern Vue 3 application template with TypeScript and Tailwind CSS for building scalable web applications","material-icon-theme:vue",{},null,"\u002Ftemplates\u002Fvue","2025-07-20",{"title":5,"description":5783},{"loc":5787,"lastmod":5791},"2025-08-25T11:45:43+07:00","templates\u002Fvue","v8jsRQRQIH7797x3APi8jzCHRRWNiR69kdamqNsAhOg",[5795,5946,6052,6071],{"title":5796,"icon":5797,"path":5798,"stem":5799,"children":5800,"page":5811},"Posts","fluent-color:data-bar-vertical-ascending-24","\u002Fposts","posts",[5801,5812,5830,5856,5866,5880,5890,5900,5910,5936],{"title":5802,"icon":5803,"redirect":5804,"path":5805,"stem":5806,"children":5807,"page":5811},"Database","material-icon-theme:database","\u002Fposts\u002Fdatabase\u002Freplication-strategy","\u002Fposts\u002Fdatabase","posts\u002Fdatabase",[5808],{"title":5809,"path":5804,"stem":5810,"icon":5786},"Database Replication strategy in large systems","posts\u002Fdatabase\u002Freplication-strategy",false,{"title":5813,"icon":5814,"redirect":5815,"path":5816,"stem":5817,"children":5818,"page":5811},"Docker","vscode-icons:file-type-docker2","\u002Fposts\u002Fdocker\u002Fdocker-commands","\u002Fposts\u002Fdocker","posts\u002Fdocker",[5819,5822,5826],{"title":5820,"path":5815,"stem":5821,"icon":5786},"Docker commands essentials","posts\u002Fdocker\u002Fdocker-commands",{"title":5823,"path":5824,"stem":5825,"icon":5786},"Some useful Dockerfile templates","\u002Fposts\u002Fdocker\u002Fdockerfile-templates","posts\u002Fdocker\u002Fdockerfile-templates",{"title":5827,"path":5828,"stem":5829,"icon":5786},"Setup Docker environment on Windows","\u002Fposts\u002Fdocker\u002Fsetup-docker-on-window","posts\u002Fdocker\u002Fsetup-docker-on-window",{"title":5831,"icon":5832,"redirect":5833,"path":5834,"stem":5835,"children":5836,"page":5811},"Git & GitHub","material-icon-theme:git","\u002Fposts\u002Fgit\u002Fbrightly-decorate-graph","\u002Fposts\u002Fgit","posts\u002Fgit",[5837,5840,5844,5848,5852],{"title":5838,"path":5833,"stem":5839,"icon":5786},"Brightly decorate your GitHub Graph","posts\u002Fgit\u002Fbrightly-decorate-graph",{"title":5841,"path":5842,"stem":5843,"icon":5786},"Download a specific folder on GitHub repository","\u002Fposts\u002Fgit\u002Fdownload-specific-folder","posts\u002Fgit\u002Fdownload-specific-folder",{"title":5845,"path":5846,"stem":5847,"icon":5786},"Syncing Git Tags across to other repositories","\u002Fposts\u002Fgit\u002Fsyncing-tags-across-repositories","posts\u002Fgit\u002Fsyncing-tags-across-repositories",{"title":5849,"path":5850,"stem":5851,"icon":5786},"Unlocking GitHub Achievement badges","\u002Fposts\u002Fgit\u002Funlocking-achievement-badges","posts\u002Fgit\u002Funlocking-achievement-badges",{"title":5853,"path":5854,"stem":5855,"icon":5786},"Essential Git commands every developer should master","\u002Fposts\u002Fgit\u002Fuseful-commands-like-pro","posts\u002Fgit\u002Fuseful-commands-like-pro",{"title":5857,"icon":5858,"redirect":5859,"path":5860,"stem":5861,"children":5862,"page":5811},"Golang","material-icon-theme:go","\u002Fposts\u002Fgolang\u002Foptimizing-performance-with-pgo","\u002Fposts\u002Fgolang","posts\u002Fgolang",[5863],{"title":5864,"path":5859,"stem":5865,"icon":5786},"Optimizing Performance in Go Applications with PGO","posts\u002Fgolang\u002Foptimizing-performance-with-pgo",{"title":5867,"icon":5868,"redirect":5869,"path":5870,"stem":5871,"children":5872,"page":5811},"JavaScript","vscode-icons:file-type-js","\u002Fposts\u002Fjavascript\u002F9-lines-of-tips","\u002Fposts\u002Fjavascript","posts\u002Fjavascript",[5873,5876],{"title":5874,"path":5869,"stem":5875,"icon":5786},"9 lines of JavaScript replace 50 lines of code","posts\u002Fjavascript\u002F9-lines-of-tips",{"title":5877,"path":5878,"stem":5879,"icon":5786},"Javascript Promises - Specific functions and use cases","\u002Fposts\u002Fjavascript\u002Fpromises-cheatsheet","posts\u002Fjavascript\u002Fpromises-cheatsheet",{"title":5881,"icon":5882,"redirect":5883,"path":5884,"stem":5885,"children":5886,"page":5811},"Node","material-icon-theme:nodejs-alt","\u002Fposts\u002Fnodejs\u002Fevent-loop","\u002Fposts\u002Fnodejs","posts\u002Fnodejs",[5887],{"title":5888,"path":5883,"stem":5889,"icon":5786},"Secret about Event Loop flow in Nodejs","posts\u002Fnodejs\u002Fevent-loop",{"title":5891,"icon":5892,"redirect":5893,"path":5894,"stem":5895,"children":5896,"page":5811},"Nuxt","vscode-icons:file-type-nuxt","\u002Fposts\u002Fnuxt\u002Fenable-pwa-in-nuxt","\u002Fposts\u002Fnuxt","posts\u002Fnuxt",[5897],{"title":5898,"path":5893,"stem":5899,"icon":5786},"Enable PWA and Service Worker in Nuxt","posts\u002Fnuxt\u002Fenable-pwa-in-nuxt",{"title":5901,"icon":5902,"redirect":5903,"path":5904,"stem":5905,"children":5906,"page":5811},"Performance","emojione:rocket","\u002Fposts\u002Fperformance\u002Fbackground-image-injection-problem","\u002Fposts\u002Fperformance","posts\u002Fperformance",[5907],{"title":5908,"path":5903,"stem":5909,"icon":5786},"Background-Image injection problem in UX","posts\u002Fperformance\u002Fbackground-image-injection-problem",{"title":5911,"icon":5912,"redirect":5913,"path":5914,"stem":5915,"children":5916,"page":5811},"Tutorial","fluent-color:book-open-lightbulb-24","\u002Fposts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers","\u002Fposts\u002Ftutorial","posts\u002Ftutorial",[5917,5920,5924,5928,5932],{"title":5918,"path":5913,"stem":5919,"icon":5786},"Classification and functionality of the servers","posts\u002Ftutorial\u002Fclassification-and-functionality-of-the-servers",{"title":5921,"path":5922,"stem":5923,"icon":5786},"What is the difference between localhost and 127.0.0.1?","\u002Fposts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1","posts\u002Ftutorial\u002Fdifferent-between-localhost-and-127-0-0-1",{"title":5925,"path":5926,"stem":5927,"icon":5786},"8 essential network protocols every programmer should know","\u002Fposts\u002Ftutorial\u002Fessential-network-protocols","posts\u002Ftutorial\u002Fessential-network-protocols",{"title":5929,"path":5930,"stem":5931,"icon":5786},"Pre rels in header link tag - SEO technique enhancement","\u002Fposts\u002Ftutorial\u002Fpre-rels-in-header-link-tag","posts\u002Ftutorial\u002Fpre-rels-in-header-link-tag",{"title":5933,"path":5934,"stem":5935,"icon":5786},"Better code with SOLID principles","\u002Fposts\u002Ftutorial\u002Fwhat-is-solid","posts\u002Ftutorial\u002Fwhat-is-solid",{"title":5937,"icon":5938,"redirect":5939,"path":5940,"stem":5941,"children":5942,"page":5811},"UI\u002FUX","devicon:figma","\u002Fposts\u002Fuiux\u002Fcommon-button-mistake","\u002Fposts\u002Fuiux","posts\u002Fuiux",[5943],{"title":5944,"path":5939,"stem":5945,"icon":5786},"Common Button Mistake in UI\u002FUX","posts\u002Fuiux\u002Fcommon-button-mistake",{"title":5947,"icon":5948,"path":5949,"stem":5950,"children":5951,"page":5811},"Cheatsheets","fluent-color:paw-16","\u002Fcheatsheets","cheatsheets",[5952,5957,5962,5965,5970,5973,5978,5982,5987,5992,5997,6002,6007,6012,6016,6020,6025,6030,6034,6039,6044,6047],{"title":5953,"path":5954,"stem":5955,"icon":5956},"Bash","\u002Fcheatsheets\u002Fbash","cheatsheets\u002Fbash","material-icon-theme:powershell",{"title":5958,"path":5959,"stem":5960,"icon":5961},"CSS","\u002Fcheatsheets\u002Fcss","cheatsheets\u002Fcss","vscode-icons:file-type-css2",{"title":5813,"path":5963,"stem":5964,"icon":5814},"\u002Fcheatsheets\u002Fdocker","cheatsheets\u002Fdocker",{"title":5966,"path":5967,"stem":5968,"icon":5969},"Git","\u002Fcheatsheets\u002Fgit","cheatsheets\u002Fgit","devicon:git",{"title":5857,"path":5971,"stem":5972,"icon":5858},"\u002Fcheatsheets\u002Fgo","cheatsheets\u002Fgo",{"title":5974,"path":5975,"stem":5976,"icon":5977},"HTML","\u002Fcheatsheets\u002Fhtml","cheatsheets\u002Fhtml","material-icon-theme:html",{"title":5867,"path":5979,"stem":5980,"icon":5981},"\u002Fcheatsheets\u002Fjavascript","cheatsheets\u002Fjavascript","material-icon-theme:javascript",{"title":5983,"path":5984,"stem":5985,"icon":5986},"Latex","\u002Fcheatsheets\u002Flatex","cheatsheets\u002Flatex","material-icon-theme:latexmk",{"title":5988,"path":5989,"stem":5990,"icon":5991},"Linux","\u002Fcheatsheets\u002Flinux","cheatsheets\u002Flinux","devicon:linux",{"title":5993,"path":5994,"stem":5995,"icon":5996},"Markdown","\u002Fcheatsheets\u002Fmarkdown","cheatsheets\u002Fmarkdown","material-icon-theme:markdown",{"title":5998,"path":5999,"stem":6000,"icon":6001},"Mongo","\u002Fcheatsheets\u002Fmongo","cheatsheets\u002Fmongo","devicon:mongodb",{"title":6003,"path":6004,"stem":6005,"icon":6006},"Nest","\u002Fcheatsheets\u002Fnest","cheatsheets\u002Fnest","material-icon-theme:nest",{"title":6008,"path":6009,"stem":6010,"icon":6011},"Next","\u002Fcheatsheets\u002Fnext","cheatsheets\u002Fnext","logos:nextjs-icon",{"title":5881,"path":6013,"stem":6014,"icon":6015},"\u002Fcheatsheets\u002Fnode","cheatsheets\u002Fnode","material-icon-theme:nodejs",{"title":5891,"path":6017,"stem":6018,"icon":6019},"\u002Fcheatsheets\u002Fnuxt","cheatsheets\u002Fnuxt","material-icon-theme:nuxt",{"title":6021,"path":6022,"stem":6023,"icon":6024},"React","\u002Fcheatsheets\u002Freact","cheatsheets\u002Freact","material-icon-theme:react",{"title":6026,"path":6027,"stem":6028,"icon":6029},"Redis","\u002Fcheatsheets\u002Fredis","cheatsheets\u002Fredis","vscode-icons:folder-type-redis-opened",{"title":6031,"path":6032,"stem":6033,"icon":5803},"SQL","\u002Fcheatsheets\u002Fsql","cheatsheets\u002Fsql",{"title":6035,"path":6036,"stem":6037,"icon":6038},"Typescript","\u002Fcheatsheets\u002Ftypescript","cheatsheets\u002Ftypescript","material-icon-theme:typescript",{"title":6040,"path":6041,"stem":6042,"icon":6043},"Vercel","\u002Fcheatsheets\u002Fvercel","cheatsheets\u002Fvercel","vscode-icons:file-type-light-vercel",{"title":5,"path":6045,"stem":6046,"icon":5784},"\u002Fcheatsheets\u002Fvue","cheatsheets\u002Fvue",{"title":6048,"path":6049,"stem":6050,"icon":6051},"Windows","\u002Fcheatsheets\u002Fwindow","cheatsheets\u002Fwindow","material-icon-theme:folder-windows",{"title":6053,"icon":6054,"path":6055,"stem":6056,"children":6057,"page":5811},"Templates","fluent-color:data-pie-24","\u002Ftemplates","templates",[6058,6061,6064,6067,6070],{"title":5857,"path":6059,"stem":6060,"icon":5858},"\u002Ftemplates\u002Fgo","templates\u002Fgo",{"title":6008,"path":6062,"stem":6063,"icon":6011},"\u002Ftemplates\u002Fnext","templates\u002Fnext",{"title":5891,"path":6065,"stem":6066,"icon":6019},"\u002Ftemplates\u002Fnuxt","templates\u002Fnuxt",{"title":6021,"path":6068,"stem":6069,"icon":6024},"\u002Ftemplates\u002Freact","templates\u002Freact",{"title":5,"path":5787,"stem":5792,"icon":5784},{"title":6072,"icon":5948,"path":6073,"stem":6074,"children":6075,"page":5811},"Interviews","\u002Finterviews","interviews",[6076],{"title":5974,"path":6077,"stem":6078,"icon":5977},"\u002Finterviews\u002Fhtml","interviews\u002Fhtml",[6080,5786],{"title":6021,"path":6068,"stem":6069,"children":-1}]