[{"data":1,"prerenderedAt":556},["ShallowReactive",2],{"navigation_docs":3,"-icons-shapes":194,"-icons-shapes-surround":551},[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":131,"body":196,"description":544,"extension":545,"links":546,"meta":547,"navigation":548,"path":132,"seo":549,"stem":133,"__hash__":550},"docs/4.icons/1.shapes.md",{"type":197,"value":198,"toc":538},"minimark",[199,203,213,218,230,308,324,328,334,478,491,495,503,514,518,534],[200,201,131],"h1",{"id":202},"shapes",[204,205,207,208,212],"callout",{"type":206},"info","A category's ",[209,210,211],"code",{},"shape"," field picks one of four bundled primitives. Shapes are not version-pinned — they live in the worker code.",[214,215,217],"h2",{"id":216},"the-primitives","The primitives",[219,220,221,222,225,226,229],"p",{},"The compositor bundles four shape paths, all in a ",[209,223,224],{},"36×36"," viewBox with ",[209,227,228],{},"stroke-width=\"2\"",":",[231,232,233,252],"table",{},[234,235,236],"thead",{},[237,238,239,243,249],"tr",{},[240,241,242],"th",{},"Shape",[240,244,245,248],{},[209,246,247],{},"d"," outline",[240,250,251],{},"Where it's used",[253,254,255,269,282,295],"tbody",{},[237,256,257,263,266],{},[258,259,260],"td",{},[209,261,262],{},"circle",[258,264,265],{},"Circle of radius 16 centered at (18, 18).",[258,267,268],{},"Decorative / balanced categories.",[237,270,271,276,279],{},[258,272,273],{},[209,274,275],{},"hexagon",[258,277,278],{},"Pointed-top regular hexagon inscribed in the 36×36 box.",[258,280,281],{},"Default category shape.",[237,283,284,289,292],{},[258,285,286],{},[209,287,288],{},"octagon",[258,290,291],{},"Regular octagon.",[258,293,294],{},"Warning / attention categories.",[237,296,297,302,305],{},[258,298,299],{},[209,300,301],{},"rounded-square",[258,303,304],{},"30×30 square with 3-px corner radius, inset by 3 from each edge.",[258,306,307],{},"Utility / grid categories.",[219,309,310,311,313,314,323],{},"The exact ",[209,312,247],{}," values live in ",[315,316,320],"a",{"href":317,"rel":318},"https://github.com/helpful-places/dtpr/blob/main/api/src/icons/shapes.ts",[319],"nofollow",[209,321,322],{},"api/src/icons/shapes.ts",".",[214,325,327],{"id":326},"how-a-category-picks-a-shape","How a category picks a shape",[219,329,330,331,333],{},"Every category in a schema declares a ",[209,332,211],{}," field on its manifest:",[335,336,341],"pre",{"className":337,"code":338,"language":339,"meta":340,"style":340},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"id\": \"purpose\",\n  \"shape\": \"hexagon\",\n  \"context\": { \"values\": [ { \"id\": \"commercial\", \"color\": \"#0052CC\" } ] }\n}\n","json","",[209,342,343,352,379,398,472],{"__ignoreMap":340},[344,345,348],"span",{"class":346,"line":347},"line",1,[344,349,351],{"class":350},"sMK4o","{\n",[344,353,355,358,362,365,367,370,374,376],{"class":346,"line":354},2,[344,356,357],{"class":350},"  \"",[344,359,361],{"class":360},"spNyl","id",[344,363,364],{"class":350},"\"",[344,366,229],{"class":350},[344,368,369],{"class":350}," \"",[344,371,373],{"class":372},"sfazB","purpose",[344,375,364],{"class":350},[344,377,378],{"class":350},",\n",[344,380,382,384,386,388,390,392,394,396],{"class":346,"line":381},3,[344,383,357],{"class":350},[344,385,211],{"class":360},[344,387,364],{"class":350},[344,389,229],{"class":350},[344,391,369],{"class":350},[344,393,275],{"class":372},[344,395,364],{"class":350},[344,397,378],{"class":350},[344,399,401,403,406,408,410,413,415,419,421,423,426,428,430,433,435,437,439,442,444,447,449,452,454,456,458,461,463,466,469],{"class":346,"line":400},4,[344,402,357],{"class":350},[344,404,405],{"class":360},"context",[344,407,364],{"class":350},[344,409,229],{"class":350},[344,411,412],{"class":350}," {",[344,414,369],{"class":350},[344,416,418],{"class":417},"sBMFI","values",[344,420,364],{"class":350},[344,422,229],{"class":350},[344,424,425],{"class":350}," [",[344,427,412],{"class":350},[344,429,369],{"class":350},[344,431,361],{"class":432},"sbssI",[344,434,364],{"class":350},[344,436,229],{"class":350},[344,438,369],{"class":350},[344,440,441],{"class":372},"commercial",[344,443,364],{"class":350},[344,445,446],{"class":350},",",[344,448,369],{"class":350},[344,450,451],{"class":432},"color",[344,453,364],{"class":350},[344,455,229],{"class":350},[344,457,369],{"class":350},[344,459,460],{"class":372},"#0052CC",[344,462,364],{"class":350},[344,464,465],{"class":350}," }",[344,467,468],{"class":350}," ]",[344,470,471],{"class":350}," }\n",[344,473,475],{"class":346,"line":474},5,[344,476,477],{"class":350},"}\n",[219,479,480,481,485,486,490],{},"You can read a category's shape via ",[315,482,483],{"href":56},[209,484,55],{}," or ",[315,487,488],{"href":98},[209,489,97],{},". Invalid shape names are rejected at schema build time.",[214,492,494],{"id":493},"serving-shapes-directly","Serving shapes directly",[335,496,501],{"className":497,"code":499,"language":500},[498],"language-text","GET /api/v2/shapes/:shape.svg\n","text",[209,502,499],{"__ignoreMap":340},[219,504,505,506,509,510,323],{},"Returns a bare 36×36 SVG with the shape fragment (stroke ",[209,507,508],{},"#000",", no fill). See ",[315,511,513],{"href":512},"/rest/icons#get-apiv2shapesshapesvg","REST icon routes",[214,515,517],{"id":516},"see-also","See also",[519,520,521,526,530],"ul",{},[522,523,524],"li",{},[315,525,135],{"href":136},[522,527,528],{},[315,529,139],{"href":140},[522,531,532],{},[315,533,513],{"href":114},[535,536,537],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}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);}",{"title":340,"searchDepth":354,"depth":354,"links":539},[540,541,542,543],{"id":216,"depth":354,"text":217},{"id":326,"depth":354,"text":327},{"id":493,"depth":354,"text":494},{"id":516,"depth":354,"text":517},"The four DTPR shape primitives.","md",null,{},true,{"title":131,"description":544},"jCYfa2JhjzN0JkO3641JSccImRTqTN7yUv1KwpWZsO0",[552,554],{"title":125,"path":126,"stem":127,"description":553,"children":-1},"Shape × symbol × variant mental model behind every DTPR icon.",{"title":135,"path":136,"stem":137,"description":555,"children":-1},"Release-pinned symbol SVGs referenced by element.symbol_id.",1776525922453]