[{"data":1,"prerenderedAt":754},["ShallowReactive",2],{"navigation_docs":3,"-rest-icons":194,"-rest-icons-surround":749},[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":113,"body":196,"description":742,"extension":743,"links":744,"meta":745,"navigation":746,"path":114,"seo":747,"stem":115,"__hash__":748},"docs/3.rest/7.icons.md",{"type":197,"value":198,"toc":731},"minimark",[199,203,218,223,284,295,300,303,346,375,394,399,402,446,476,481,484,546,549,557,562,577,580,634,638,699,703,727],[200,201,113],"h1",{"id":202},"icon-routes",[204,205,207,208,212,213,217],"callout",{"type":206},"info","Three related SVG routes. All return ",[209,210,211],"code",{},"Content-Type: image/svg+xml; charset=utf-8",". Cache-Control varies by version stability (see ",[214,215,216],"a",{"href":84},"conventions",").",[219,220,222],"h2",{"id":221},"summary","Summary",[224,225,226,242],"table",{},[227,228,229],"thead",{},[230,231,232,236,239],"tr",{},[233,234,235],"th",{},"Route",[233,237,238],{},"Purpose",[233,240,241],{},"Versioned?",[243,244,245,259,272],"tbody",{},[230,246,247,253,256],{},[248,249,250],"td",{},[209,251,252],{},"GET /api/v2/shapes/:shape.svg",[248,254,255],{},"Bare shape primitive.",[248,257,258],{},"no",[230,260,261,266,269],{},[248,262,263],{},[209,264,265],{},"GET /api/v2/schemas/:version/symbols/:symbol_id.svg",[248,267,268],{},"Release-pinned symbol SVG.",[248,270,271],{},"yes",[230,273,274,279,282],{},[248,275,276],{},[209,277,278],{},"GET /api/v2/schemas/:version/elements/:element_id/icon[.\u003Cvariant>].svg",[248,280,281],{},"Composed icon (shape × symbol × variant).",[248,283,271],{},[285,286,287,288,291,292,294],"p",{},"The conceptual model behind these routes — shape, symbol, variant, and the ",[209,289,290],{},"innerColor"," rule — is covered in ",[214,293,125],{"href":126},".",[219,296,298],{"id":297},"get-apiv2shapesshapesvg",[209,299,252],{},[285,301,302],{},"Return a 36×36 SVG containing only the shape primitive.",[224,304,305,318],{},[227,306,307],{},[230,308,309,312,315],{},[233,310,311],{},"Param",[233,313,314],{},"In",[233,316,317],{},"Description",[243,319,320],{},[230,321,322,327,330],{},[248,323,324],{},[209,325,326],{},"shape",[248,328,329],{},"path",[248,331,332,333,336,337,336,340,336,343,294],{},"One of ",[209,334,335],{},"circle",", ",[209,338,339],{},"hexagon",[209,341,342],{},"octagon",[209,344,345],{},"rounded-square",[347,348,353],"pre",{"className":349,"code":350,"language":351,"meta":352,"style":352},"language-http shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","HTTP/1.1 200 OK\nContent-Type: image/svg+xml; charset=utf-8\nCache-Control: public, max-age=31536000, immutable\n","http","",[209,354,355,363,369],{"__ignoreMap":352},[356,357,360],"span",{"class":358,"line":359},"line",1,[356,361,362],{},"HTTP/1.1 200 OK\n",[356,364,366],{"class":358,"line":365},2,[356,367,368],{},"Content-Type: image/svg+xml; charset=utf-8\n",[356,370,372],{"class":358,"line":371},3,[356,373,374],{},"Cache-Control: public, max-age=31536000, immutable\n",[285,376,377,378,381,382,385,386,389,390,393],{},"Errors: ",[209,379,380],{},"bad_request"," (400) for ids outside ",[209,383,384],{},"[a-zA-Z0-9_-]","; ",[209,387,388],{},"not_found"," (404) for unknown shape names (the response ",[209,391,392],{},"fix_hint"," lists the valid shape set).",[219,395,397],{"id":396},"get-apiv2schemasversionsymbolssymbol_idsvg",[209,398,265],{},[285,400,401],{},"Return the release-pinned symbol SVG.",[224,403,404,414],{},[227,405,406],{},[230,407,408,410,412],{},[233,409,311],{},[233,411,314],{},[233,413,317],{},[243,415,416,428],{},[230,417,418,423,425],{},[248,419,420],{},[209,421,422],{},"version",[248,424,329],{},[248,426,427],{},"Canonical version or alias.",[230,429,430,435,437],{},[248,431,432],{},[209,433,434],{},"symbol_id",[248,436,329],{},[248,438,439,440,443,444,294],{},"Matches ",[209,441,442],{},"element.symbol_id",". Whitelisted to ",[209,445,384],{},[347,447,449],{"className":349,"code":448,"language":351,"meta":352,"style":352},"HTTP/1.1 200 OK\nContent-Type: image/svg+xml; charset=utf-8\nDTPR-Content-Hash: sha256-…\nCache-Control: public, max-age=3600          # beta\nCache-Control: public, max-age=31536000, immutable    # stable\n",[209,450,451,455,459,464,470],{"__ignoreMap":352},[356,452,453],{"class":358,"line":359},[356,454,362],{},[356,456,457],{"class":358,"line":365},[356,458,368],{},[356,460,461],{"class":358,"line":371},[356,462,463],{},"DTPR-Content-Hash: sha256-…\n",[356,465,467],{"class":358,"line":466},4,[356,468,469],{},"Cache-Control: public, max-age=3600          # beta\n",[356,471,473],{"class":358,"line":472},5,[356,474,475],{},"Cache-Control: public, max-age=31536000, immutable    # stable\n",[219,477,479],{"id":478},"get-apiv2schemasversionelementselement_idiconvariantsvg",[209,480,278],{},[285,482,483],{},"Return a composed icon for an element.",[224,485,486,496],{},[227,487,488],{},[230,489,490,492,494],{},[233,491,311],{},[233,493,314],{},[233,495,317],{},[243,497,498,508,522],{},[230,499,500,504,506],{},[248,501,502],{},[209,503,422],{},[248,505,329],{},[248,507,427],{},[230,509,510,515,517],{},[248,511,512],{},[209,513,514],{},"element_id",[248,516,329],{},[248,518,519,520,294],{},"Whitelisted to ",[209,521,384],{},[230,523,524,529,531],{},[248,525,526],{},[209,527,528],{},"variant",[248,530,329],{},[248,532,533,534,537,538,541,542,545],{},"Optional suffix. Valid values: ",[209,535,536],{},"default"," (implicit — omit to use), ",[209,539,540],{},"dark",", or any ",[209,543,544],{},"context.value.id"," defined on the element's category.",[285,547,548],{},"URL forms:",[347,550,555],{"className":551,"code":553,"language":554},[552],"language-text","/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.svg          # default\n/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.dark.svg     # dark\n/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.commercial.svg  # context-colored\n","text",[209,556,553],{"__ignoreMap":352},[558,559,561],"h3",{"id":560},"fallback-behavior","Fallback behavior",[285,563,564,565,568,569,572,573,576],{},"The route first attempts a pre-baked R2 point-read. On miss, it logs an ",[209,566,567],{},"icon_miss_fallback"," event and composes the SVG on the fly using the same pure compositor as the build step — the fallback output is byte-identical to the pre-baked output. Callers observe the same response; only the ",[209,570,571],{},"Cache-Control"," max-age differs (60 s for beta miss, 3600 s for beta hit, ",[209,574,575],{},"immutable"," for stable).",[558,578,121],{"id":579},"errors",[224,581,582,595],{},[227,583,584],{},[230,585,586,589,592],{},[233,587,588],{},"Code",[233,590,591],{},"HTTP",[233,593,594],{},"Meaning",[243,596,597,616],{},[230,598,599,603,606],{},[248,600,601],{},[209,602,380],{},[248,604,605],{},"400",[248,607,608,610,611,613,614,294],{},[209,609,514],{}," / ",[209,612,528],{}," outside ",[209,615,384],{},[230,617,618,622,625],{},[248,619,620],{},[209,621,388],{},[248,623,624],{},"404",[248,626,627,628,630,631,294],{},"Unknown version, element, symbol, or variant. ",[209,629,392],{}," lists valid variants for ",[209,632,633],{},"unknown_variant",[219,635,637],{"id":636},"examples","Examples",[639,640,641,665,682],"code-group",{},[347,642,647],{"className":643,"code":644,"filename":645,"language":646,"meta":352,"style":352},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","curl -s -i https://api.dtpr.io/api/v2/shapes/hexagon.svg\n","curl — shape","bash",[209,648,649],{"__ignoreMap":352},[356,650,651,655,659,662],{"class":358,"line":359},[356,652,654],{"class":653},"sBMFI","curl",[356,656,658],{"class":657},"sfazB"," -s",[356,660,661],{"class":657}," -i",[356,663,664],{"class":657}," https://api.dtpr.io/api/v2/shapes/hexagon.svg\n",[347,666,669],{"className":643,"code":667,"filename":668,"language":646,"meta":352,"style":352},"curl -s -i https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/symbols/example-symbol.svg\n","curl — symbol",[209,670,671],{"__ignoreMap":352},[356,672,673,675,677,679],{"class":358,"line":359},[356,674,654],{"class":653},[356,676,658],{"class":657},[356,678,661],{"class":657},[356,680,681],{"class":657}," https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/symbols/example-symbol.svg\n",[347,683,686],{"className":643,"code":684,"filename":685,"language":646,"meta":352,"style":352},"curl -s -i https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.dark.svg\n","curl — composed",[209,687,688],{"__ignoreMap":352},[356,689,690,692,694,696],{"class":358,"line":359},[356,691,654],{"class":653},[356,693,658],{"class":657},[356,695,661],{"class":657},[356,697,698],{"class":657}," https://api.dtpr.io/api/v2/schemas/ai@2026-04-16-beta/elements/purpose.example/icon.dark.svg\n",[219,700,702],{"id":701},"see-also","See also",[704,705,706,712,716,720],"ul",{},[707,708,709],"li",{},[214,710,711],{"href":126},"Icon composition overview",[707,713,714],{},[214,715,139],{"href":140},[707,717,718],{},[214,719,143],{"href":144},[707,721,722],{},[214,723,724,725],{"href":80},"MCP ",[209,726,79],{},[728,729,730],"style",{},"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 .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}",{"title":352,"searchDepth":365,"depth":365,"links":732},[733,734,735,736,740,741],{"id":221,"depth":365,"text":222},{"id":297,"depth":365,"text":252},{"id":396,"depth":365,"text":265},{"id":478,"depth":365,"text":278,"children":737},[738,739],{"id":560,"depth":371,"text":561},{"id":579,"depth":371,"text":121},{"id":636,"depth":365,"text":637},{"id":701,"depth":365,"text":702},"Shape primitives, release-pinned symbols, and composed element icons.","md",null,{},true,{"title":113,"description":742},"p8twS_Nnzc0GHQ-8JgOk9Db7NUKkR_NjVbAg-ikTIhc",[750,752],{"title":109,"path":110,"stem":111,"description":751,"children":-1},"Validate a datachain instance against a schema version.",{"title":117,"path":118,"stem":119,"description":753,"children":-1},"Cursor semantics, limits, field projection, and locale filtering.",1776525922453]