[{"data":1,"prerenderedAt":865},["ShallowReactive",2],{"navigation_docs":3,"-ui-theming":194,"-ui-theming-surround":860},[4,22,82,124,146,168,190],{"title":5,"path":6,"stem":7,"children":8},"Getting started","/getting-started","1.getting-started/0.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"MCP quickstart","/getting-started/mcp-quickstart","1.getting-started/1.mcp-quickstart",{"title":15,"path":16,"stem":17},"REST quickstart","/getting-started/rest-quickstart","1.getting-started/2.rest-quickstart",{"title":19,"path":20,"stem":21},"UI quickstart","/getting-started/ui-quickstart","1.getting-started/3.ui-quickstart",{"title":23,"path":24,"stem":25,"children":26},"MCP server","/mcp","2.mcp/0.index",[27,28,32,36,40],{"title":23,"path":24,"stem":25},{"title":29,"path":30,"stem":31},"Connecting","/mcp/connection","2.mcp/1.connection",{"title":33,"path":34,"stem":35},"Envelope","/mcp/envelope","2.mcp/2.envelope",{"title":37,"path":38,"stem":39},"Resources","/mcp/resources","2.mcp/3.resources",{"title":41,"path":42,"stem":43,"children":44},"Tools","/mcp/tools","2.mcp/4.tools/0.index",[45,46,50,54,58,62,66,70,74,78],{"title":41,"path":42,"stem":43},{"title":47,"path":48,"stem":49},"list_schema_versions","/mcp/tools/list-schema-versions","2.mcp/4.tools/1.list-schema-versions",{"title":51,"path":52,"stem":53},"get_schema","/mcp/tools/get-schema","2.mcp/4.tools/2.get-schema",{"title":55,"path":56,"stem":57},"list_categories","/mcp/tools/list-categories","2.mcp/4.tools/3.list-categories",{"title":59,"path":60,"stem":61},"list_elements","/mcp/tools/list-elements","2.mcp/4.tools/4.list-elements",{"title":63,"path":64,"stem":65},"get_element","/mcp/tools/get-element","2.mcp/4.tools/5.get-element",{"title":67,"path":68,"stem":69},"get_elements","/mcp/tools/get-elements","2.mcp/4.tools/6.get-elements",{"title":71,"path":72,"stem":73},"validate_datachain","/mcp/tools/validate-datachain","2.mcp/4.tools/7.validate-datachain",{"title":75,"path":76,"stem":77},"render_datachain","/mcp/tools/render-datachain","2.mcp/4.tools/8.render-datachain",{"title":79,"path":80,"stem":81},"get_icon_url","/mcp/tools/get-icon-url","2.mcp/4.tools/9.get-icon-url",{"title":83,"path":84,"stem":85,"children":86},"REST API (v2)","/rest","3.rest/0.index",[87,88,92,96,100,104,108,112,116,120],{"title":83,"path":84,"stem":85},{"title":89,"path":90,"stem":91},"GET /schemas","/rest/schemas","3.rest/1.schemas",{"title":93,"path":94,"stem":95},"GET /schemas/:version/manifest","/rest/manifest","3.rest/2.manifest",{"title":97,"path":98,"stem":99},"GET /schemas/:version/categories","/rest/categories","3.rest/3.categories",{"title":101,"path":102,"stem":103},"GET /schemas/:version/elements","/rest/elements-list","3.rest/4.elements-list",{"title":105,"path":106,"stem":107},"GET /schemas/:version/elements/:element_id","/rest/element-detail","3.rest/5.element-detail",{"title":109,"path":110,"stem":111},"POST /schemas/:version/validate","/rest/validate","3.rest/6.validate",{"title":113,"path":114,"stem":115},"Icon routes","/rest/icons","3.rest/7.icons",{"title":117,"path":118,"stem":119},"Pagination & fields","/rest/pagination-and-fields","3.rest/8.pagination-and-fields",{"title":121,"path":122,"stem":123},"Errors","/rest/errors","3.rest/9.errors",{"title":125,"path":126,"stem":127,"children":128},"Icon composition","/icons","4.icons/0.index",[129,130,134,138,142],{"title":125,"path":126,"stem":127},{"title":131,"path":132,"stem":133},"Shapes","/icons/shapes","4.icons/1.shapes",{"title":135,"path":136,"stem":137},"Symbols","/icons/symbols","4.icons/2.symbols",{"title":139,"path":140,"stem":141},"Composed variants","/icons/composed-variants","4.icons/3.composed-variants",{"title":143,"path":144,"stem":145},"URLs","/icons/urls","4.icons/4.urls",{"title":147,"path":148,"stem":149,"children":150},"@dtpr/ui","/ui","5.ui/0.index",[151,152,156,160,164],{"title":147,"path":148,"stem":149},{"title":153,"path":154,"stem":155},"@dtpr/ui/core","/ui/core","5.ui/1.core",{"title":157,"path":158,"stem":159},"@dtpr/ui/vue","/ui/vue","5.ui/2.vue",{"title":161,"path":162,"stem":163},"@dtpr/ui/html","/ui/html","5.ui/3.html",{"title":165,"path":166,"stem":167},"Theming","/ui/theming","5.ui/4.theming",{"title":169,"path":170,"stem":171,"children":172},"Concepts","/concepts","6.concepts/0.index",[173,174,178,182,186],{"title":169,"path":170,"stem":171},{"title":175,"path":176,"stem":177},"Datachains","/concepts/datachains","6.concepts/1.datachains",{"title":179,"path":180,"stem":181},"Elements & categories","/concepts/elements-categories","6.concepts/2.elements-categories",{"title":183,"path":184,"stem":185},"Versions & releases","/concepts/versions-and-releases","6.concepts/3.versions-and-releases",{"title":187,"path":188,"stem":189},"Content hash","/concepts/content-hash","6.concepts/4.content-hash",{"title":191,"path":192,"stem":193},"Changelog","/changelog","7.changelog",{"id":195,"title":165,"body":196,"description":854,"extension":855,"links":856,"meta":857,"navigation":285,"path":166,"seo":858,"stem":167,"__hash__":859},"docs/5.ui/4.theming.md",{"type":197,"value":198,"toc":843},"minimark",[199,203,216,221,256,263,320,337,341,348,616,620,625,682,686,755,759,762,794,801,805,816,820,839],[200,201,165],"h1",{"id":202},"theming",[204,205,207,211,212,215],"callout",{"type":206},"info",[208,209,210],"code",{},"@dtpr/ui/vue/styles.css"," wraps every rule in ",[208,213,214],{},"@layer dtpr",". Your own cascade layer outranks it by default — overrides \"just work.\"",[217,218,220],"h2",{"id":219},"cascade-layer","Cascade layer",[222,223,228],"pre",{"className":224,"code":225,"language":226,"meta":227,"style":227},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@import '@dtpr/ui/vue/styles.css';   /* defines @layer dtpr */\n","css","",[208,229,230],{"__ignoreMap":227},[231,232,235,239,243,246,249,252],"span",{"class":233,"line":234},"line",1,[231,236,238],{"class":237},"s7zQu","@import",[231,240,242],{"class":241},"sMK4o"," '",[231,244,210],{"class":245},"sfazB",[231,247,248],{"class":241},"'",[231,250,251],{"class":241},";",[231,253,255],{"class":254},"sHwdD","   /* defines @layer dtpr */\n",[257,258,259,260,262],"p",{},"Every DTPR style lives in ",[208,261,214],{},". CSS cascade-layer order means any unlayered CSS, or any higher-priority layer you declare, will win. To guarantee an explicit order, declare the layers first:",[222,264,266],{"className":224,"code":265,"language":226,"meta":227,"style":227},"@layer reset, tailwind, dtpr, app;\n\n@import 'tailwindcss';\n@import '@dtpr/ui/vue/styles.css';\n/* your own styles follow, implicitly in layer `app` */\n",[208,267,268,280,287,301,314],{"__ignoreMap":227},[231,269,270,273,277],{"class":233,"line":234},[231,271,272],{"class":237},"@layer",[231,274,276],{"class":275},"sTEyZ"," reset, tailwind, dtpr, app",[231,278,279],{"class":241},";\n",[231,281,283],{"class":233,"line":282},2,[231,284,286],{"emptyLinePlaceholder":285},true,"\n",[231,288,290,292,294,297,299],{"class":233,"line":289},3,[231,291,238],{"class":237},[231,293,242],{"class":241},[231,295,296],{"class":245},"tailwindcss",[231,298,248],{"class":241},[231,300,279],{"class":241},[231,302,304,306,308,310,312],{"class":233,"line":303},4,[231,305,238],{"class":237},[231,307,242],{"class":241},[231,309,210],{"class":245},[231,311,248],{"class":241},[231,313,279],{"class":241},[231,315,317],{"class":233,"line":316},5,[231,318,319],{"class":254},"/* your own styles follow, implicitly in layer `app` */\n",[257,321,322,323,326,327,326,330,326,333,336],{},"In the example above, ",[208,324,325],{},"app"," wins over ",[208,328,329],{},"dtpr",[208,331,332],{},"tailwind",[208,334,335],{},"reset",".",[217,338,340],{"id":339},"tokens","Tokens",[257,342,343,344,347],{},"All tokens are declared on ",[208,345,346],{},":where(html)"," so their specificity is zero — override at any root or container.",[349,350,351,367],"table",{},[352,353,354],"thead",{},[355,356,357,361,364],"tr",{},[358,359,360],"th",{},"Token",[358,362,363],{},"Default",[358,365,366],{},"Purpose",[368,369,370,386,401,416,431,446,460,475,490,503,518,532,546,560,574,588,602],"tbody",{},[355,371,372,378,383],{},[373,374,375],"td",{},[208,376,377],{},"--dtpr-color-accent",[373,379,380],{},[208,381,382],{},"#0f5153",[373,384,385],{},"Primary accent.",[355,387,388,393,398],{},[373,389,390],{},[208,391,392],{},"--dtpr-color-accent-contrast",[373,394,395],{},[208,396,397],{},"#ffffff",[373,399,400],{},"On-accent text color.",[355,402,403,408,413],{},[373,404,405],{},[208,406,407],{},"--dtpr-color-border",[373,409,410],{},[208,411,412],{},"rgba(0, 0, 0, 0.1)",[373,414,415],{},"Borders around cards and sections.",[355,417,418,423,428],{},[373,419,420],{},[208,421,422],{},"--dtpr-color-text",[373,424,425],{},[208,426,427],{},"#111111",[373,429,430],{},"Body text.",[355,432,433,438,443],{},[373,434,435],{},[208,436,437],{},"--dtpr-color-text-muted",[373,439,440],{},[208,441,442],{},"#555555",[373,444,445],{},"Secondary text (variable labels, citations).",[355,447,448,453,457],{},[373,449,450],{},[208,451,452],{},"--dtpr-color-surface",[373,454,455],{},[208,456,397],{},[373,458,459],{},"Card + section background.",[355,461,462,467,472],{},[373,463,464],{},[208,465,466],{},"--dtpr-color-warning",[373,468,469],{},[208,470,471],{},"#f04a4a",[373,473,474],{},"Missing-required warnings.",[355,476,477,482,487],{},[373,478,479],{},[208,480,481],{},"--dtpr-font-heading",[373,483,484],{},[208,485,486],{},"'Red Hat Text', sans-serif",[373,488,489],{},"Headings.",[355,491,492,497,501],{},[373,493,494],{},[208,495,496],{},"--dtpr-font-body",[373,498,499],{},[208,500,486],{},[373,502,430],{},[355,504,505,510,515],{},[373,506,507],{},[208,508,509],{},"--dtpr-space-xs",[373,511,512],{},[208,513,514],{},"0.25rem",[373,516,517],{},"Spacing step.",[355,519,520,525,530],{},[373,521,522],{},[208,523,524],{},"--dtpr-space-sm",[373,526,527],{},[208,528,529],{},"0.5rem",[373,531,517],{},[355,533,534,539,544],{},[373,535,536],{},[208,537,538],{},"--dtpr-space-md",[373,540,541],{},[208,542,543],{},"1rem",[373,545,517],{},[355,547,548,553,558],{},[373,549,550],{},[208,551,552],{},"--dtpr-space-lg",[373,554,555],{},[208,556,557],{},"1.5rem",[373,559,517],{},[355,561,562,567,572],{},[373,563,564],{},[208,565,566],{},"--dtpr-space-xl",[373,568,569],{},[208,570,571],{},"2rem",[373,573,517],{},[355,575,576,581,585],{},[373,577,578],{},[208,579,580],{},"--dtpr-radius-sm",[373,582,583],{},[208,584,514],{},[373,586,587],{},"Variable cards, icon frames.",[355,589,590,595,599],{},[373,591,592],{},[208,593,594],{},"--dtpr-radius-md",[373,596,597],{},[208,598,529],{},[373,600,601],{},"Element + section cards.",[355,603,604,609,613],{},[373,605,606],{},[208,607,608],{},"--dtpr-radius-lg",[373,610,611],{},[208,612,543],{},[373,614,615],{},"Reserved.",[217,617,619],{"id":618},"examples","Examples",[621,622,624],"h3",{"id":623},"color-override","Color override",[222,626,628],{"className":224,"code":627,"language":226,"meta":227,"style":227},":root {\n  --dtpr-color-accent: #7c3aed;       /* violet */\n  --dtpr-color-warning: #ef4444;      /* red-500 */\n}\n",[208,629,630,642,660,677],{"__ignoreMap":227},[231,631,632,635,639],{"class":233,"line":234},[231,633,634],{"class":241},":",[231,636,638],{"class":637},"spNyl","root",[231,640,641],{"class":241}," {\n",[231,643,644,647,649,652,655,657],{"class":233,"line":282},[231,645,646],{"class":275},"  --dtpr-color-accent",[231,648,634],{"class":241},[231,650,651],{"class":241}," #",[231,653,654],{"class":275},"7c3aed",[231,656,251],{"class":241},[231,658,659],{"class":254},"       /* violet */\n",[231,661,662,665,667,669,672,674],{"class":233,"line":289},[231,663,664],{"class":275},"  --dtpr-color-warning",[231,666,634],{"class":241},[231,668,651],{"class":241},[231,670,671],{"class":275},"ef4444",[231,673,251],{"class":241},[231,675,676],{"class":254},"      /* red-500 */\n",[231,678,679],{"class":233,"line":303},[231,680,681],{"class":241},"}\n",[621,683,685],{"id":684},"font-override","Font override",[222,687,689],{"className":224,"code":688,"language":226,"meta":227,"style":227},":root {\n  --dtpr-font-heading: 'Inter Tight', system-ui, sans-serif;\n  --dtpr-font-body:    'Inter', system-ui, sans-serif;\n}\n",[208,690,691,699,726,751],{"__ignoreMap":227},[231,692,693,695,697],{"class":233,"line":234},[231,694,634],{"class":241},[231,696,638],{"class":637},[231,698,641],{"class":241},[231,700,701,704,706,708,711,713,716,719,721,724],{"class":233,"line":282},[231,702,703],{"class":275},"  --dtpr-font-heading",[231,705,634],{"class":241},[231,707,242],{"class":241},[231,709,710],{"class":245},"Inter Tight",[231,712,248],{"class":241},[231,714,715],{"class":241},",",[231,717,718],{"class":275}," system-ui",[231,720,715],{"class":241},[231,722,723],{"class":275}," sans-serif",[231,725,279],{"class":241},[231,727,728,731,733,736,739,741,743,745,747,749],{"class":233,"line":289},[231,729,730],{"class":275},"  --dtpr-font-body",[231,732,634],{"class":241},[231,734,735],{"class":241},"    '",[231,737,738],{"class":245},"Inter",[231,740,248],{"class":241},[231,742,715],{"class":241},[231,744,718],{"class":275},[231,746,715],{"class":241},[231,748,723],{"class":275},[231,750,279],{"class":241},[231,752,753],{"class":233,"line":303},[231,754,681],{"class":241},[621,756,758],{"id":757},"scoped-override","Scoped override",[257,760,761],{},"Tokens cascade, so you can swap them inside a container without touching the root:",[222,763,765],{"className":224,"code":764,"language":226,"meta":227,"style":227},".marketing-section {\n  --dtpr-color-accent: #0ea5e9;\n}\n",[208,766,767,777,790],{"__ignoreMap":227},[231,768,769,771,775],{"class":233,"line":234},[231,770,336],{"class":241},[231,772,774],{"class":773},"sBMFI","marketing-section",[231,776,641],{"class":241},[231,778,779,781,783,785,788],{"class":233,"line":282},[231,780,646],{"class":275},[231,782,634],{"class":241},[231,784,651],{"class":241},[231,786,787],{"class":275},"0ea5e9",[231,789,279],{"class":241},[231,791,792],{"class":233,"line":289},[231,793,681],{"class":241},[257,795,796,797,800],{},"All DTPR components rendered under ",[208,798,799],{},".marketing-section"," pick up the new accent.",[217,802,804],{"id":803},"container-queries","Container queries",[257,806,807,808,811,812,815],{},"The components use CSS ",[208,809,810],{},"@container (inline-size)"," queries instead of viewport media queries. A ",[208,813,814],{},"DtprElementGrid"," goes from 1 column to 2 to 3 based on its wrapper's inline-size — wrap it in a narrow sidebar and it stays one column even on a wide viewport.",[217,817,819],{"id":818},"see-also","See also",[821,822,823,830,835],"ul",{},[824,825,826],"li",{},[827,828,829],"a",{"href":158},"Vue components",[824,831,832],{},[827,833,834],{"href":154},"Core helpers",[824,836,837],{},[827,838,19],{"href":20},[840,841,842],"style",{},"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 .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 .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":227,"searchDepth":282,"depth":282,"links":844},[845,846,847,852,853],{"id":219,"depth":282,"text":220},{"id":339,"depth":282,"text":340},{"id":618,"depth":282,"text":619,"children":848},[849,850,851],{"id":623,"depth":289,"text":624},{"id":684,"depth":289,"text":685},{"id":757,"depth":289,"text":758},{"id":803,"depth":282,"text":804},{"id":818,"depth":282,"text":819},"The dtpr cascade layer and the CSS custom properties used by @dtpr/ui/vue.","md",null,{},{"title":165,"description":854},"H4PwO1uXPPCFSoX6w3yuDcPzdK4lFP3Z9IladgUhPeg",[861,863],{"title":161,"path":162,"stem":163,"description":862,"children":-1},"Server-side rendering of datachains as standalone HTML documents for MCP Apps.",{"title":169,"path":170,"stem":171,"description":864,"children":-1},"DTPR vocabulary you will see across the MCP, REST, icon, and UI reference.",1776525922453]