[{"data":1,"prerenderedAt":1386},["ShallowReactive",2],{"navigation":3,"\u002Fdocumentation\u002Fconfiguration":90,"\u002Fdocumentation\u002Fconfiguration-surround":1381},[4,73],{"title":5,"path":6,"stem":7,"children":8,"icon":72},"Documentation","\u002Fdocumentation","1.documentation\u002F01.index",[9,12,17,22,27,32,37,42,47,52,57,62,67],{"title":10,"path":6,"stem":7,"icon":11},"Welcome","i-lucide-info",{"title":13,"path":14,"stem":15,"icon":16},"Requirements","\u002Fdocumentation\u002Frequirements","1.documentation\u002F02.requirements","i-lucide-alert-triangle",{"title":18,"path":19,"stem":20,"icon":21},"Getting Started","\u002Fdocumentation\u002Fgetting-started","1.documentation\u002F03.getting-started","i-lucide-package",{"title":23,"path":24,"stem":25,"icon":26},"Folder Structure","\u002Fdocumentation\u002Ffolder-structure","1.documentation\u002F04.folder-structure","i-lucide-folder-tree",{"title":28,"path":29,"stem":30,"icon":31},"Customization","\u002Fdocumentation\u002Fcustomization","1.documentation\u002F05.customization","i-lucide-palette",{"title":33,"path":34,"stem":35,"icon":36},"Deployment","\u002Fdocumentation\u002Fdeployment","1.documentation\u002F06.deployment","i-lucide-cloud-upload",{"title":38,"path":39,"stem":40,"icon":41},"API Usage","\u002Fdocumentation\u002Fapi-usage","1.documentation\u002F07.api-usage","i-lucide-plug",{"title":43,"path":44,"stem":45,"icon":46},"Backend Integration","\u002Fdocumentation\u002Fbackend-integration","1.documentation\u002F08.backend-integration","i-lucide-server",{"title":48,"path":49,"stem":50,"icon":51},"Install PWA","\u002Fdocumentation\u002Finstall-pwa","1.documentation\u002F09.install-pwa","i-lucide-smartphone",{"title":53,"path":54,"stem":55,"icon":56},"Configuration","\u002Fdocumentation\u002Fconfiguration","1.documentation\u002F10.configuration","i-lucide-settings",{"title":58,"path":59,"stem":60,"icon":61},"Screens Overview","\u002Fdocumentation\u002Fscreens-overview","1.documentation\u002F11.screens-overview","i-lucide-layout-dashboard",{"title":63,"path":64,"stem":65,"icon":66},"FAQ & Troubleshooting","\u002Fdocumentation\u002Ffaq","1.documentation\u002F12.faq","i-lucide-circle-help",{"title":68,"path":69,"stem":70,"icon":71},"Authentication","\u002Fdocumentation\u002Fauthentication","1.documentation\u002F13.authentication","i-lucide-lock",false,{"title":74,"path":75,"stem":76,"children":77,"icon":72},"Support","\u002Fsupport","2.support\u002F1.index",[78,80,85],{"title":74,"path":75,"stem":76,"icon":79},"i-lucide-life-buoy",{"title":81,"path":82,"stem":83,"icon":84},"Changelog","\u002Fsupport\u002Fchangelog","2.support\u002F2.changelog","i-lucide-scroll-text",{"title":86,"path":87,"stem":88,"icon":89},"Source & Credits","\u002Fsupport\u002Fsource-and-credits","2.support\u002F3.source-&-credits","i-lucide-award",{"id":91,"title":53,"body":92,"description":1374,"extension":1375,"links":1376,"meta":1377,"navigation":1378,"path":54,"seo":1379,"stem":55,"__hash__":1380},"docs\u002F1.documentation\u002F10.configuration.md",{"type":93,"value":94,"toc":1367},"minimark",[95,104,109,120,370,388,392,399,459,469,618,626,641,645,651,881,884,935,939,952,1069,1083,1108,1112,1123,1141,1151,1194,1200,1275,1278,1342,1357,1363],[96,97,98,99,103],"p",{},"All key configuration is located in ",[100,101,102],"code",{},"nuxt.config.ts"," at the project root.",[105,106,108],"h2",{"id":107},"app-name-theme-color","App Name & Theme Color",[96,110,111,112,115,116,119],{},"Update the app name and browser theme color inside the ",[100,113,114],{},"app.head"," and ",[100,117,118],{},"pwa.manifest"," sections:",[121,122,127],"pre",{"className":123,"code":124,"filename":102,"language":125,"meta":126,"style":126},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","app: {\n  head: {\n    meta: [\n      {\n        name: 'theme-color',\n        content: '#EFEDE6', \u002F\u002F browser toolbar color\n      },\n    ],\n  },\n},\n\npwa: {\n  manifest: {\n    name: 'Rosavo',                          \u002F\u002F full app name\n    short_name: 'Rosavo',                    \u002F\u002F name shown under the icon on home screen\n    description: 'Rosavo - Fashion for the future',\n    theme_color: '#EFEDE6',\n    background_color: '#EFEDE6', \u002F\u002F splash screen background\n  },\n},\n","ts","",[100,128,129,145,155,167,173,194,216,222,230,236,242,249,259,269,289,308,325,341,360,365],{"__ignoreMap":126},[130,131,134,138,142],"span",{"class":132,"line":133},"line",1,[130,135,137],{"class":136},"sBMFI","app",[130,139,141],{"class":140},"sMK4o",":",[130,143,144],{"class":140}," {\n",[130,146,148,151,153],{"class":132,"line":147},2,[130,149,150],{"class":136},"  head",[130,152,141],{"class":140},[130,154,144],{"class":140},[130,156,158,161,163],{"class":132,"line":157},3,[130,159,160],{"class":136},"    meta",[130,162,141],{"class":140},[130,164,166],{"class":165},"swJcz"," [\n",[130,168,170],{"class":132,"line":169},4,[130,171,172],{"class":140},"      {\n",[130,174,176,179,181,184,188,191],{"class":132,"line":175},5,[130,177,178],{"class":165},"        name",[130,180,141],{"class":140},[130,182,183],{"class":140}," '",[130,185,187],{"class":186},"sfazB","theme-color",[130,189,190],{"class":140},"'",[130,192,193],{"class":140},",\n",[130,195,197,200,202,204,207,209,212],{"class":132,"line":196},6,[130,198,199],{"class":165},"        content",[130,201,141],{"class":140},[130,203,183],{"class":140},[130,205,206],{"class":186},"#EFEDE6",[130,208,190],{"class":140},[130,210,211],{"class":140},",",[130,213,215],{"class":214},"sHwdD"," \u002F\u002F browser toolbar color\n",[130,217,219],{"class":132,"line":218},7,[130,220,221],{"class":140},"      },\n",[130,223,225,228],{"class":132,"line":224},8,[130,226,227],{"class":165},"    ]",[130,229,193],{"class":140},[130,231,233],{"class":132,"line":232},9,[130,234,235],{"class":140},"  },\n",[130,237,239],{"class":132,"line":238},10,[130,240,241],{"class":140},"},\n",[130,243,245],{"class":132,"line":244},11,[130,246,248],{"emptyLinePlaceholder":247},true,"\n",[130,250,252,255,257],{"class":132,"line":251},12,[130,253,254],{"class":136},"pwa",[130,256,141],{"class":140},[130,258,144],{"class":140},[130,260,262,265,267],{"class":132,"line":261},13,[130,263,264],{"class":136},"  manifest",[130,266,141],{"class":140},[130,268,144],{"class":140},[130,270,272,275,277,279,282,284,286],{"class":132,"line":271},14,[130,273,274],{"class":136},"    name",[130,276,141],{"class":140},[130,278,183],{"class":140},[130,280,281],{"class":186},"Rosavo",[130,283,190],{"class":140},[130,285,211],{"class":140},[130,287,288],{"class":214},"                          \u002F\u002F full app name\n",[130,290,292,295,297,299,301,303,305],{"class":132,"line":291},15,[130,293,294],{"class":136},"    short_name",[130,296,141],{"class":140},[130,298,183],{"class":140},[130,300,281],{"class":186},[130,302,190],{"class":140},[130,304,211],{"class":140},[130,306,307],{"class":214},"                    \u002F\u002F name shown under the icon on home screen\n",[130,309,311,314,316,318,321,323],{"class":132,"line":310},16,[130,312,313],{"class":136},"    description",[130,315,141],{"class":140},[130,317,183],{"class":140},[130,319,320],{"class":186},"Rosavo - Fashion for the future",[130,322,190],{"class":140},[130,324,193],{"class":140},[130,326,328,331,333,335,337,339],{"class":132,"line":327},17,[130,329,330],{"class":136},"    theme_color",[130,332,141],{"class":140},[130,334,183],{"class":140},[130,336,206],{"class":186},[130,338,190],{"class":140},[130,340,193],{"class":140},[130,342,344,347,349,351,353,355,357],{"class":132,"line":343},18,[130,345,346],{"class":136},"    background_color",[130,348,141],{"class":140},[130,350,183],{"class":140},[130,352,206],{"class":186},[130,354,190],{"class":140},[130,356,211],{"class":140},[130,358,359],{"class":214}," \u002F\u002F splash screen background\n",[130,361,363],{"class":132,"line":362},19,[130,364,235],{"class":140},[130,366,368],{"class":132,"line":367},20,[130,369,241],{"class":140},[371,372,374],"callout",{"color":373,"icon":11},"warning",[96,375,376,377,379,380,115,382,379,385,387],{},"Keep ",[100,378,187],{}," in ",[100,381,114],{},[100,383,384],{},"theme_color",[100,386,118],{}," in sync — they control the same visual element in different contexts.",[105,389,391],{"id":390},"pwa-icons","PWA Icons",[96,393,394,395,398],{},"Icons are organized into two folders inside ",[100,396,397],{},"public\u002F",", plus two root-level Apple touch icon files:",[400,401,402,415],"table",{},[403,404,405],"thead",{},[406,407,408,412],"tr",{},[409,410,411],"th",{},"File \u002F Folder",[409,413,414],{},"Used for",[416,417,418,429,439,449],"tbody",{},[406,419,420,426],{},[421,422,423],"td",{},[100,424,425],{},"public\u002Fandroid\u002F",[421,427,428],{},"Android home screen (6 sizes: 48 → 512px)",[406,430,431,436],{},[421,432,433],{},[100,434,435],{},"public\u002Fios\u002F",[421,437,438],{},"iOS home screen and splash (26 sizes: 16 → 1024px)",[406,440,441,446],{},[421,442,443],{},[100,444,445],{},"public\u002Fapple-touch-icon.png",[421,447,448],{},"iOS \"Add to Home Screen\" icon (180×180, Safari applies gloss on older iOS)",[406,450,451,456],{},[421,452,453],{},[100,454,455],{},"public\u002Fapple-touch-icon-precomposed.png",[421,457,458],{},"Same as above, but iOS uses it as-is without adding gloss effects",[96,460,461,462,464,465,468],{},"The two root-level Apple touch icons are declared in ",[100,463,102],{}," under ",[100,466,467],{},"app.head.link"," so browsers and iOS devices pick them up automatically:",[121,470,472],{"className":123,"code":471,"filename":102,"language":125,"meta":126,"style":126},"app: {\n  head: {\n    link: [\n      {\n        rel: 'apple-touch-icon',\n        sizes: '180x180',\n        href: '\u002Fapple-touch-icon.png'\n      },\n      {\n        rel: 'apple-touch-icon-precomposed',\n        sizes: '180x180',\n        href: '\u002Fapple-touch-icon-precomposed.png'\n      },\n    ],\n  },\n},\n",[100,473,474,482,490,499,503,519,535,550,554,558,573,587,600,604,610,614],{"__ignoreMap":126},[130,475,476,478,480],{"class":132,"line":133},[130,477,137],{"class":136},[130,479,141],{"class":140},[130,481,144],{"class":140},[130,483,484,486,488],{"class":132,"line":147},[130,485,150],{"class":136},[130,487,141],{"class":140},[130,489,144],{"class":140},[130,491,492,495,497],{"class":132,"line":157},[130,493,494],{"class":136},"    link",[130,496,141],{"class":140},[130,498,166],{"class":165},[130,500,501],{"class":132,"line":169},[130,502,172],{"class":140},[130,504,505,508,510,512,515,517],{"class":132,"line":175},[130,506,507],{"class":165},"        rel",[130,509,141],{"class":140},[130,511,183],{"class":140},[130,513,514],{"class":186},"apple-touch-icon",[130,516,190],{"class":140},[130,518,193],{"class":140},[130,520,521,524,526,528,531,533],{"class":132,"line":196},[130,522,523],{"class":165},"        sizes",[130,525,141],{"class":140},[130,527,183],{"class":140},[130,529,530],{"class":186},"180x180",[130,532,190],{"class":140},[130,534,193],{"class":140},[130,536,537,540,542,544,547],{"class":132,"line":218},[130,538,539],{"class":165},"        href",[130,541,141],{"class":140},[130,543,183],{"class":140},[130,545,546],{"class":186},"\u002Fapple-touch-icon.png",[130,548,549],{"class":140},"'\n",[130,551,552],{"class":132,"line":224},[130,553,221],{"class":140},[130,555,556],{"class":132,"line":232},[130,557,172],{"class":140},[130,559,560,562,564,566,569,571],{"class":132,"line":238},[130,561,507],{"class":165},[130,563,141],{"class":140},[130,565,183],{"class":140},[130,567,568],{"class":186},"apple-touch-icon-precomposed",[130,570,190],{"class":140},[130,572,193],{"class":140},[130,574,575,577,579,581,583,585],{"class":132,"line":244},[130,576,523],{"class":165},[130,578,141],{"class":140},[130,580,183],{"class":140},[130,582,530],{"class":186},[130,584,190],{"class":140},[130,586,193],{"class":140},[130,588,589,591,593,595,598],{"class":132,"line":251},[130,590,539],{"class":165},[130,592,141],{"class":140},[130,594,183],{"class":140},[130,596,597],{"class":186},"\u002Fapple-touch-icon-precomposed.png",[130,599,549],{"class":140},[130,601,602],{"class":132,"line":261},[130,603,221],{"class":140},[130,605,606,608],{"class":132,"line":271},[130,607,227],{"class":165},[130,609,193],{"class":140},[130,611,612],{"class":132,"line":291},[130,613,235],{"class":140},[130,615,616],{"class":132,"line":310},[130,617,241],{"class":140},[96,619,620,621,625],{},"To replace the default icons, swap the PNG files while keeping the ",[622,623,624],"strong",{},"exact same filenames and sizes",".",[371,627,630],{"color":628,"icon":629},"info","i-lucide-lightbulb",[96,631,632,633,640],{},"Use ",[634,635,639],"a",{"href":636,"rel":637},"https:\u002F\u002Fwww.pwabuilder.com\u002FimageGenerator",[638],"nofollow","PWABuilder Image Generator"," to generate all required sizes from a single source image — it outputs icons for both Android and iOS in one go.",[105,642,644],{"id":643},"brand-colors","Brand Colors",[96,646,647,648,141],{},"Brand colors are defined in ",[100,649,650],{},"app\u002Fassets\u002Fscss\u002F_variables.scss",[121,652,656],{"className":653,"code":654,"filename":650,"language":655,"meta":126,"style":126},"language-scss shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","$white-color: #fff;             \u002F\u002F white backgrounds\n$main-yellow: #f5c102;          \u002F\u002F accent \u002F highlight color\n$tomato-color: #fe724e;         \u002F\u002F secondary accent\n$border-color: #efe4ca;         \u002F\u002F input \u002F card borders\n$main-color: #0f1620;           \u002F\u002F primary brand color\n$gainsboro-color: #dadfe2;      \u002F\u002F dividers \u002F disabled states\n$text-color: #6c757d;           \u002F\u002F secondary text\n$accent-color: #ff4343;         \u002F\u002F alerts, errors, badges, sale price\n$alabaster-color: #efede6;      \u002F\u002F surface background\n$background-color: #efede6;     \u002F\u002F surface \u002F card background\n$error-color: #e74c3c;          \u002F\u002F error states\n$platinum-color: #e2e2e2;       \u002F\u002F light surfaces\n$cerulean-frost-color: #60a2d5; \u002F\u002F info \u002F links\n","scss",[100,657,658,678,695,712,729,746,763,780,797,814,830,847,864],{"__ignoreMap":126},[130,659,660,664,666,669,672,675],{"class":132,"line":133},[130,661,663],{"class":662},"sTEyZ","$white-color",[130,665,141],{"class":140},[130,667,668],{"class":140}," #",[130,670,671],{"class":662},"fff",[130,673,674],{"class":140},";",[130,676,677],{"class":214},"             \u002F\u002F white backgrounds\n",[130,679,680,683,685,687,690,692],{"class":132,"line":147},[130,681,682],{"class":662},"$main-yellow",[130,684,141],{"class":140},[130,686,668],{"class":140},[130,688,689],{"class":662},"f5c102",[130,691,674],{"class":140},[130,693,694],{"class":214},"          \u002F\u002F accent \u002F highlight color\n",[130,696,697,700,702,704,707,709],{"class":132,"line":157},[130,698,699],{"class":662},"$tomato-color",[130,701,141],{"class":140},[130,703,668],{"class":140},[130,705,706],{"class":662},"fe724e",[130,708,674],{"class":140},[130,710,711],{"class":214},"         \u002F\u002F secondary accent\n",[130,713,714,717,719,721,724,726],{"class":132,"line":169},[130,715,716],{"class":662},"$border-color",[130,718,141],{"class":140},[130,720,668],{"class":140},[130,722,723],{"class":662},"efe4ca",[130,725,674],{"class":140},[130,727,728],{"class":214},"         \u002F\u002F input \u002F card borders\n",[130,730,731,734,736,738,741,743],{"class":132,"line":175},[130,732,733],{"class":662},"$main-color",[130,735,141],{"class":140},[130,737,668],{"class":140},[130,739,740],{"class":662},"0f1620",[130,742,674],{"class":140},[130,744,745],{"class":214},"           \u002F\u002F primary brand color\n",[130,747,748,751,753,755,758,760],{"class":132,"line":196},[130,749,750],{"class":662},"$gainsboro-color",[130,752,141],{"class":140},[130,754,668],{"class":140},[130,756,757],{"class":662},"dadfe2",[130,759,674],{"class":140},[130,761,762],{"class":214},"      \u002F\u002F dividers \u002F disabled states\n",[130,764,765,768,770,772,775,777],{"class":132,"line":218},[130,766,767],{"class":662},"$text-color",[130,769,141],{"class":140},[130,771,668],{"class":140},[130,773,774],{"class":662},"6c757d",[130,776,674],{"class":140},[130,778,779],{"class":214},"           \u002F\u002F secondary text\n",[130,781,782,785,787,789,792,794],{"class":132,"line":224},[130,783,784],{"class":662},"$accent-color",[130,786,141],{"class":140},[130,788,668],{"class":140},[130,790,791],{"class":662},"ff4343",[130,793,674],{"class":140},[130,795,796],{"class":214},"         \u002F\u002F alerts, errors, badges, sale price\n",[130,798,799,802,804,806,809,811],{"class":132,"line":232},[130,800,801],{"class":662},"$alabaster-color",[130,803,141],{"class":140},[130,805,668],{"class":140},[130,807,808],{"class":662},"efede6",[130,810,674],{"class":140},[130,812,813],{"class":214},"      \u002F\u002F surface background\n",[130,815,816,819,821,823,825,827],{"class":132,"line":238},[130,817,818],{"class":662},"$background-color",[130,820,141],{"class":140},[130,822,668],{"class":140},[130,824,808],{"class":662},[130,826,674],{"class":140},[130,828,829],{"class":214},"     \u002F\u002F surface \u002F card background\n",[130,831,832,835,837,839,842,844],{"class":132,"line":244},[130,833,834],{"class":662},"$error-color",[130,836,141],{"class":140},[130,838,668],{"class":140},[130,840,841],{"class":662},"e74c3c",[130,843,674],{"class":140},[130,845,846],{"class":214},"          \u002F\u002F error states\n",[130,848,849,852,854,856,859,861],{"class":132,"line":251},[130,850,851],{"class":662},"$platinum-color",[130,853,141],{"class":140},[130,855,668],{"class":140},[130,857,858],{"class":662},"e2e2e2",[130,860,674],{"class":140},[130,862,863],{"class":214},"       \u002F\u002F light surfaces\n",[130,865,866,869,871,873,876,878],{"class":132,"line":261},[130,867,868],{"class":662},"$cerulean-frost-color",[130,870,141],{"class":140},[130,872,668],{"class":140},[130,874,875],{"class":662},"60a2d5",[130,877,674],{"class":140},[130,879,880],{"class":214}," \u002F\u002F info \u002F links\n",[96,882,883],{},"The file also contains layout constants:",[121,885,887],{"className":653,"code":886,"filename":650,"language":655,"meta":126,"style":126},"$screen-width: 600px;   \u002F\u002F max app width\n$header-height: 42px;   \u002F\u002F top header height\n$border-radius: 10px;   \u002F\u002F default border radius\n",[100,888,889,905,920],{"__ignoreMap":126},[130,890,891,894,896,900,902],{"class":132,"line":133},[130,892,893],{"class":662},"$screen-width",[130,895,141],{"class":140},[130,897,899],{"class":898},"sbssI"," 600px",[130,901,674],{"class":140},[130,903,904],{"class":214},"   \u002F\u002F max app width\n",[130,906,907,910,912,915,917],{"class":132,"line":147},[130,908,909],{"class":662},"$header-height",[130,911,141],{"class":140},[130,913,914],{"class":898}," 42px",[130,916,674],{"class":140},[130,918,919],{"class":214},"   \u002F\u002F top header height\n",[130,921,922,925,927,930,932],{"class":132,"line":157},[130,923,924],{"class":662},"$border-radius",[130,926,141],{"class":140},[130,928,929],{"class":898}," 10px",[130,931,674],{"class":140},[130,933,934],{"class":214},"   \u002F\u002F default border radius\n",[105,936,938],{"id":937},"fonts","Fonts",[96,940,941,942,945,946,949,950,141],{},"The project uses the ",[622,943,944],{},"Mulish"," font loaded via ",[100,947,948],{},"@nuxt\u002Ffonts"," from Google Fonts. It is configured in ",[100,951,102],{},[121,953,955],{"className":123,"code":954,"filename":102,"language":125,"meta":126,"style":126},"fonts: {\n  families: [\n    {\n      name: 'Mulish',\n      provider: 'google',\n      weights: [400, 500, 600, 700, 800, 900],\n    },\n  ],\n},\n",[100,956,957,965,974,979,994,1010,1053,1058,1065],{"__ignoreMap":126},[130,958,959,961,963],{"class":132,"line":133},[130,960,937],{"class":136},[130,962,141],{"class":140},[130,964,144],{"class":140},[130,966,967,970,972],{"class":132,"line":147},[130,968,969],{"class":136},"  families",[130,971,141],{"class":140},[130,973,166],{"class":165},[130,975,976],{"class":132,"line":157},[130,977,978],{"class":140},"    {\n",[130,980,981,984,986,988,990,992],{"class":132,"line":169},[130,982,983],{"class":165},"      name",[130,985,141],{"class":140},[130,987,183],{"class":140},[130,989,944],{"class":186},[130,991,190],{"class":140},[130,993,193],{"class":140},[130,995,996,999,1001,1003,1006,1008],{"class":132,"line":175},[130,997,998],{"class":165},"      provider",[130,1000,141],{"class":140},[130,1002,183],{"class":140},[130,1004,1005],{"class":186},"google",[130,1007,190],{"class":140},[130,1009,193],{"class":140},[130,1011,1012,1015,1017,1020,1023,1025,1028,1030,1033,1035,1038,1040,1043,1045,1048,1051],{"class":132,"line":196},[130,1013,1014],{"class":165},"      weights",[130,1016,141],{"class":140},[130,1018,1019],{"class":165}," [",[130,1021,1022],{"class":898},"400",[130,1024,211],{"class":140},[130,1026,1027],{"class":898}," 500",[130,1029,211],{"class":140},[130,1031,1032],{"class":898}," 600",[130,1034,211],{"class":140},[130,1036,1037],{"class":898}," 700",[130,1039,211],{"class":140},[130,1041,1042],{"class":898}," 800",[130,1044,211],{"class":140},[130,1046,1047],{"class":898}," 900",[130,1049,1050],{"class":165},"]",[130,1052,193],{"class":140},[130,1054,1055],{"class":132,"line":218},[130,1056,1057],{"class":140},"    },\n",[130,1059,1060,1063],{"class":132,"line":224},[130,1061,1062],{"class":165},"  ]",[130,1064,193],{"class":140},[130,1066,1067],{"class":132,"line":232},[130,1068,241],{"class":140},[96,1070,1071,1072,1075,1076,1079,1080,141],{},"To change the font, replace ",[100,1073,1074],{},"'Mulish'"," with any Google Fonts family name and update the ",[100,1077,1078],{},"$mulish"," variable in ",[100,1081,1082],{},"_variables.scss",[121,1084,1086],{"className":653,"code":1085,"filename":650,"language":655,"meta":126,"style":126},"$mulish: 'Mulish', sans-serif;\n",[100,1087,1088],{"__ignoreMap":126},[130,1089,1090,1092,1094,1096,1098,1100,1102,1105],{"class":132,"line":133},[130,1091,1078],{"class":662},[130,1093,141],{"class":140},[130,1095,183],{"class":140},[130,1097,944],{"class":186},[130,1099,190],{"class":140},[130,1101,211],{"class":140},[130,1103,1104],{"class":662}," sans-serif",[130,1106,1107],{"class":140},";\n",[105,1109,1111],{"id":1110},"environment-variables","Environment Variables",[96,1113,1114,1115,1118,1119,1122],{},"The project does not require environment variables by default — it reads data from static JSON files in ",[100,1116,1117],{},"app\u002Fmocks\u002F",". If you connect a real backend, create a ",[100,1120,1121],{},".env"," file at the project root:",[121,1124,1128],{"className":1125,"code":1126,"filename":1121,"language":1127,"meta":126,"style":126},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","NUXT_PUBLIC_API_BASE=https:\u002F\u002Fapi.yourserver.com\n","bash",[100,1129,1130],{"__ignoreMap":126},[130,1131,1132,1135,1138],{"class":132,"line":133},[130,1133,1134],{"class":662},"NUXT_PUBLIC_API_BASE",[130,1136,1137],{"class":140},"=",[130,1139,1140],{"class":186},"https:\u002F\u002Fapi.yourserver.com\n",[96,1142,1143,1144,1146,1147,1150],{},"Then register it in ",[100,1145,102],{}," with an empty default — Nuxt automatically picks up ",[100,1148,1149],{},"NUXT_PUBLIC_*"," variables:",[121,1152,1154],{"className":123,"code":1153,"filename":102,"language":125,"meta":126,"style":126},"runtimeConfig: {\n  public: {\n    apiBase: '',\n  },\n},\n",[100,1155,1156,1165,1174,1186,1190],{"__ignoreMap":126},[130,1157,1158,1161,1163],{"class":132,"line":133},[130,1159,1160],{"class":136},"runtimeConfig",[130,1162,141],{"class":140},[130,1164,144],{"class":140},[130,1166,1167,1170,1172],{"class":132,"line":147},[130,1168,1169],{"class":136},"  public",[130,1171,141],{"class":140},[130,1173,144],{"class":140},[130,1175,1176,1179,1181,1184],{"class":132,"line":157},[130,1177,1178],{"class":136},"    apiBase",[130,1180,141],{"class":140},[130,1182,1183],{"class":140}," ''",[130,1185,193],{"class":140},[130,1187,1188],{"class":132,"line":169},[130,1189,235],{"class":140},[130,1191,1192],{"class":132,"line":175},[130,1193,241],{"class":140},[96,1195,1196,1197,141],{},"Then use it anywhere in your app via ",[100,1198,1199],{},"useRuntimeConfig()",[121,1201,1204],{"className":123,"code":1202,"filename":1203,"language":125,"meta":126,"style":126},"const config = useRuntimeConfig()\n\nconst response = await fetch(`${config.public.apiBase}\u002Fproducts`)\n","app\u002Fcomposables\u002FuseApi.ts",[100,1205,1206,1224,1228],{"__ignoreMap":126},[130,1207,1208,1212,1215,1217,1221],{"class":132,"line":133},[130,1209,1211],{"class":1210},"spNyl","const",[130,1213,1214],{"class":662}," config ",[130,1216,1137],{"class":140},[130,1218,1220],{"class":1219},"s2Zo4"," useRuntimeConfig",[130,1222,1223],{"class":662},"()\n",[130,1225,1226],{"class":132,"line":147},[130,1227,248],{"emptyLinePlaceholder":247},[130,1229,1230,1232,1235,1237,1241,1244,1247,1250,1253,1255,1258,1260,1263,1266,1269,1272],{"class":132,"line":157},[130,1231,1211],{"class":1210},[130,1233,1234],{"class":662}," response ",[130,1236,1137],{"class":140},[130,1238,1240],{"class":1239},"s7zQu"," await",[130,1242,1243],{"class":1219}," fetch",[130,1245,1246],{"class":662},"(",[130,1248,1249],{"class":140},"`${",[130,1251,1252],{"class":662},"config",[130,1254,625],{"class":140},[130,1256,1257],{"class":662},"public",[130,1259,625],{"class":140},[130,1261,1262],{"class":662},"apiBase",[130,1264,1265],{"class":140},"}",[130,1267,1268],{"class":186},"\u002Fproducts",[130,1270,1271],{"class":140},"`",[130,1273,1274],{"class":662},")\n",[96,1276,1277],{},"Or inside a component:",[121,1279,1284],{"className":1280,"code":1281,"filename":1282,"language":1283,"meta":126,"style":126},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup>\nconst config = useRuntimeConfig()\nconst baseUrl = config.public.apiBase\n\u003C\u002Fscript>\n","app\u002Fcomponents\u002FProductList.vue","vue",[100,1285,1286,1300,1312,1333],{"__ignoreMap":126},[130,1287,1288,1291,1294,1297],{"class":132,"line":133},[130,1289,1290],{"class":140},"\u003C",[130,1292,1293],{"class":165},"script",[130,1295,1296],{"class":1210}," setup",[130,1298,1299],{"class":140},">\n",[130,1301,1302,1304,1306,1308,1310],{"class":132,"line":147},[130,1303,1211],{"class":1210},[130,1305,1214],{"class":662},[130,1307,1137],{"class":140},[130,1309,1220],{"class":1219},[130,1311,1223],{"class":662},[130,1313,1314,1316,1319,1321,1324,1326,1328,1330],{"class":132,"line":157},[130,1315,1211],{"class":1210},[130,1317,1318],{"class":662}," baseUrl ",[130,1320,1137],{"class":140},[130,1322,1323],{"class":662}," config",[130,1325,625],{"class":140},[130,1327,1257],{"class":662},[130,1329,625],{"class":140},[130,1331,1332],{"class":662},"apiBase\n",[130,1334,1335,1338,1340],{"class":132,"line":169},[130,1336,1337],{"class":140},"\u003C\u002F",[130,1339,1293],{"class":165},[130,1341,1299],{"class":140},[371,1343,1344],{"color":628,"icon":11},[96,1345,1346,1347,1350,1351,1353,1354,1356],{},"Variables under ",[100,1348,1349],{},"runtimeConfig.public"," are exposed to both server and client. Never put secrets (API keys, tokens) there — use ",[100,1352,1160],{}," (without ",[100,1355,1257],{},") for server-only values.",[96,1358,1359,1360,1362],{},"See the ",[634,1361,38],{"href":39}," section for full details.",[1364,1365,1366],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}",{"title":126,"searchDepth":133,"depth":147,"links":1368},[1369,1370,1371,1372,1373],{"id":107,"depth":147,"text":108},{"id":390,"depth":147,"text":391},{"id":643,"depth":147,"text":644},{"id":937,"depth":147,"text":938},{"id":1110,"depth":147,"text":1111},"Configure the app name, PWA settings, colors, and environment variables.","md",null,{},{"icon":56},{"title":53,"description":1374},"AS_JPJTls7DPTkFFQKgnYWMZRSsJ7z2VoomRDatoCAA",[1382,1384],{"title":48,"path":49,"stem":50,"description":1383,"icon":51,"children":-1},"How to install the app on any device — iOS, Android, Mac, or Windows.",{"title":58,"path":59,"stem":60,"description":1385,"icon":61,"children":-1},"A complete list of all screens included in the template.",1784271369483]