[{"data":1,"prerenderedAt":490},["ShallowReactive",2],{"navigation_docs":3,"-shadcn":44,"-shadcn-surround":485},[4,8,12,16,20,24,28,32,36,40],{"title":5,"path":6,"stem":7},"CLI","\u002Fcli","1.cli",{"title":9,"path":10,"stem":11},"Nuxt","\u002Fnuxt","2.nuxt",{"title":13,"path":14,"stem":15},"Vue","\u002Fvue","3.vue",{"title":17,"path":18,"stem":19},"Vite","\u002Fvite","4.vite",{"title":21,"path":22,"stem":23},"Nitro","\u002Fnitro","5.nitro",{"title":25,"path":26,"stem":27},"TypeScript","\u002Ftypescript","6.typescript",{"title":29,"path":30,"stem":31},"shadcn","\u002Fshadcn","7.shadcn",{"title":33,"path":34,"stem":35},"Package","\u002Fpackage","8.package",{"title":37,"path":38,"stem":39},"Extending Doctor","\u002Fextending","9.extending",{"title":41,"path":42,"stem":43},"Pinia","\u002Fpinia","9.pinia",{"id":45,"title":29,"body":46,"description":471,"extension":472,"links":473,"meta":481,"navigation":229,"path":30,"seo":483,"stem":31,"__hash__":484},"docs\u002F7.shadcn.md",{"type":47,"value":48,"toc":467},"minimark",[49,61,66,69,98,105,120,123,143,146,170,174,185,424,427,446,463],[50,51,52,53,60],"p",{},"The Shadcn Rule Pack adapts ",[54,55,59],"a",{"href":56,"rel":57},"https:\u002F\u002Fgithub.com\u002Fshadcn-ui\u002Flint",[58],"nofollow","@shadcn\u002Flint"," findings into Doctor Diagnostics. Its Rules inspect JSX in JavaScript and TypeScript files. Vue single-file components are skipped.",[62,63,65],"h2",{"id":64},"install-and-run","Install and run",[50,67,68],{},"Install Vite Doctor in the project:",[70,71,76],"pre",{"className":72,"code":73,"language":74,"meta":75,"style":75},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add -D vite-doctor\n","bash","",[77,78,79],"code",{"__ignoreMap":75},[80,81,84,88,92,95],"span",{"class":82,"line":83},"line",1,[80,85,87],{"class":86},"sBMFI","pnpm",[80,89,91],{"class":90},"sfazB"," add",[80,93,94],{"class":90}," -D",[80,96,97],{"class":90}," vite-doctor\n",[50,99,100,101,104],{},"Doctor activates the Recommended Preset when Project Inventory contains ",[77,102,103],{},"tailwindcss",". It includes raw colors, arbitrary values, and inline styles:",[70,106,108],{"className":72,"code":107,"language":74,"meta":75,"style":75},"pnpm vite-doctor .\n",[77,109,110],{"__ignoreMap":75},[80,111,112,114,117],{"class":82,"line":83},[80,113,87],{"class":86},[80,115,116],{"class":90}," vite-doctor",[80,118,119],{"class":90}," .\n",[50,121,122],{},"The Strict Preset includes all six Rules, adding component restyling, unreadable class values, and unknown classes:",[70,124,126],{"className":72,"code":125,"language":74,"meta":75,"style":75},"pnpm vite-doctor . --extends auto,shadcn\u002Fstrict\n",[77,127,128],{"__ignoreMap":75},[80,129,130,132,134,137,140],{"class":82,"line":83},[80,131,87],{"class":86},[80,133,116],{"class":90},[80,135,136],{"class":90}," .",[80,138,139],{"class":90}," --extends",[80,141,142],{"class":90}," auto,shadcn\u002Fstrict\n",[50,144,145],{},"To diagnose one Rule:",[70,147,149],{"className":72,"code":148,"language":74,"meta":75,"style":75},"pnpm vite-doctor . --extends shadcn\u002Fstrict --rules shadcn\u002Fno-inline-styles\n",[77,150,151],{"__ignoreMap":75},[80,152,153,155,157,159,161,164,167],{"class":82,"line":83},[80,154,87],{"class":86},[80,156,116],{"class":90},[80,158,136],{"class":90},[80,160,139],{"class":90},[80,162,163],{"class":90}," shadcn\u002Fstrict",[80,165,166],{"class":90}," --rules",[80,168,169],{"class":90}," shadcn\u002Fno-inline-styles\n",[62,171,173],{"id":172},"component-recognition-and-options","Component recognition and options",[50,175,176,177,180,181,184],{},"Component-specific Rules need to recognize the project's design-system imports. Pass upstream Rule options through Doctor's rule configuration. For example, this ",[77,178,179],{},"doctor.config.ts"," recognizes components imported below ",[77,182,183],{},"@\u002Fcomponents\u002Fui\u002F"," and allows layout classes on those components:",[70,186,190],{"className":187,"code":188,"language":189,"meta":75,"style":75},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { defineDoctorConfig } from \"vite-doctor\u002Fconfig\";\n\nexport default defineDoctorConfig({\n  extends: [\"auto\", \"shadcn\u002Fstrict\"],\n  rules: {\n    \"shadcn\u002Fno-restyle\": [\"warn\", { componentImports: [\"^@\u002Fcomponents\u002Fui\u002F\"], allow: [\"layout\"] }],\n    \"shadcn\u002Frequire-static-classes\": [\"warn\", { componentImports: [\"^@\u002Fcomponents\u002Fui\u002F\"] }],\n  },\n});\n","ts",[77,191,192,224,231,249,285,296,364,408,414],{"__ignoreMap":75},[80,193,194,198,202,206,209,212,215,218,221],{"class":82,"line":83},[80,195,197],{"class":196},"s7zQu","import",[80,199,201],{"class":200},"sMK4o"," {",[80,203,205],{"class":204},"sTEyZ"," defineDoctorConfig",[80,207,208],{"class":200}," }",[80,210,211],{"class":196}," from",[80,213,214],{"class":200}," \"",[80,216,217],{"class":90},"vite-doctor\u002Fconfig",[80,219,220],{"class":200},"\"",[80,222,223],{"class":200},";\n",[80,225,227],{"class":82,"line":226},2,[80,228,230],{"emptyLinePlaceholder":229},true,"\n",[80,232,234,237,240,243,246],{"class":82,"line":233},3,[80,235,236],{"class":196},"export",[80,238,239],{"class":196}," default",[80,241,205],{"class":242},"s2Zo4",[80,244,245],{"class":204},"(",[80,247,248],{"class":200},"{\n",[80,250,252,256,259,262,264,267,269,272,274,277,279,282],{"class":82,"line":251},4,[80,253,255],{"class":254},"swJcz","  extends",[80,257,258],{"class":200},":",[80,260,261],{"class":204}," [",[80,263,220],{"class":200},[80,265,266],{"class":90},"auto",[80,268,220],{"class":200},[80,270,271],{"class":200},",",[80,273,214],{"class":200},[80,275,276],{"class":90},"shadcn\u002Fstrict",[80,278,220],{"class":200},[80,280,281],{"class":204},"]",[80,283,284],{"class":200},",\n",[80,286,288,291,293],{"class":82,"line":287},5,[80,289,290],{"class":254},"  rules",[80,292,258],{"class":200},[80,294,295],{"class":200}," {\n",[80,297,299,302,305,307,309,311,313,316,318,320,322,325,327,329,331,334,336,338,340,343,345,347,349,352,354,357,360,362],{"class":82,"line":298},6,[80,300,301],{"class":200},"    \"",[80,303,304],{"class":254},"shadcn\u002Fno-restyle",[80,306,220],{"class":200},[80,308,258],{"class":200},[80,310,261],{"class":204},[80,312,220],{"class":200},[80,314,315],{"class":90},"warn",[80,317,220],{"class":200},[80,319,271],{"class":200},[80,321,201],{"class":200},[80,323,324],{"class":254}," componentImports",[80,326,258],{"class":200},[80,328,261],{"class":204},[80,330,220],{"class":200},[80,332,333],{"class":90},"^@\u002Fcomponents\u002Fui\u002F",[80,335,220],{"class":200},[80,337,281],{"class":204},[80,339,271],{"class":200},[80,341,342],{"class":254}," allow",[80,344,258],{"class":200},[80,346,261],{"class":204},[80,348,220],{"class":200},[80,350,351],{"class":90},"layout",[80,353,220],{"class":200},[80,355,356],{"class":204},"] ",[80,358,359],{"class":200},"}",[80,361,281],{"class":204},[80,363,284],{"class":200},[80,365,367,369,372,374,376,378,380,382,384,386,388,390,392,394,396,398,400,402,404,406],{"class":82,"line":366},7,[80,368,301],{"class":200},[80,370,371],{"class":254},"shadcn\u002Frequire-static-classes",[80,373,220],{"class":200},[80,375,258],{"class":200},[80,377,261],{"class":204},[80,379,220],{"class":200},[80,381,315],{"class":90},[80,383,220],{"class":200},[80,385,271],{"class":200},[80,387,201],{"class":200},[80,389,324],{"class":254},[80,391,258],{"class":200},[80,393,261],{"class":204},[80,395,220],{"class":200},[80,397,333],{"class":90},[80,399,220],{"class":200},[80,401,356],{"class":204},[80,403,359],{"class":200},[80,405,281],{"class":204},[80,407,284],{"class":200},[80,409,411],{"class":82,"line":410},8,[80,412,413],{"class":200},"  },\n",[80,415,417,419,422],{"class":82,"line":416},9,[80,418,359],{"class":200},[80,420,421],{"class":204},")",[80,423,223],{"class":200},[50,425,426],{},"Load executable configuration explicitly:",[70,428,430],{"className":72,"code":429,"language":74,"meta":75,"style":75},"pnpm vite-doctor . --config doctor.config.ts\n",[77,431,432],{"__ignoreMap":75},[80,433,434,436,438,440,443],{"class":82,"line":83},[80,435,87],{"class":86},[80,437,116],{"class":90},[80,439,136],{"class":90},[80,441,442],{"class":90}," --config",[80,444,445],{"class":90}," doctor.config.ts\n",[50,447,448,449,454,455,458,459,462],{},"Use the ",[54,450,453],{"href":451,"rel":452},"https:\u002F\u002Fgithub.com\u002Fshadcn-ui\u002Flint\u002Ftree\u002Fmain\u002Fdocs\u002Frules",[58],"upstream Rule documentation"," for each Rule's options and recognition limits. The examples demonstrate behavior without a resolvable theme: SVG colors can inherit ",[77,456,457],{},"currentColor",", and unknown classes are checked against a reduced fallback that includes bundled utilities plus discovered ",[77,460,461],{},"@utility"," names and CSS class selectors. This fallback does not validate theme tokens or provide spelling suggestions. Undeclared color-token checks and theme replacement suggestions require a readable theme. Review suggested edits against the design system before applying them.",[464,465,466],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .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}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}",{"title":75,"searchDepth":226,"depth":226,"links":468},[469,470],{"id":64,"depth":226,"text":65},{"id":172,"depth":226,"text":173},"Diagnose design-system classes and styles with the Shadcn Rule Pack.","md",[474,478],{"label":475,"icon":476,"to":477},"shadcn rules","i-lucide-list-checks","\u002Fshadcn\u002Frules",{"label":479,"icon":480,"to":451},"Upstream rule documentation","i-lucide-book-open",{"icon":482},"i-simple-icons-shadcnui",{"title":29,"description":471},"Abq7OP48Eic0HTNC8JHo35ZTGLoCB9rN9RiDVZwExEU",[486,488],{"title":25,"path":26,"stem":27,"description":487,"children":-1},"Run evidence and boundary diagnostics automatically in every TypeScript project.",{"title":33,"path":34,"stem":35,"description":489,"children":-1},"Diagnose dependency contracts in a library's built output.",1791309509187]