[{"data":1,"prerenderedAt":1491},["ShallowReactive",2],{"navigation_docs_en":3,"dtpr-schemas-index":287,"-en-ui-core":295,"-en-ui-core-surround":1486},[4,22,26,30,102,152,174,196,226,278,283],{"title":5,"path":6,"stem":7,"children":8},"Getting started","/en/getting-started","en/1.getting-started/0.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"MCP quickstart","/en/getting-started/mcp-quickstart","en/1.getting-started/1.mcp-quickstart",{"title":15,"path":16,"stem":17},"REST quickstart","/en/getting-started/rest-quickstart","en/1.getting-started/2.rest-quickstart",{"title":19,"path":20,"stem":21},"UI quickstart","/en/getting-started/ui-quickstart","en/1.getting-started/3.ui-quickstart",{"title":23,"path":24,"stem":25},"Attribution","/en/attribution","en/10.attribution",{"title":27,"path":28,"stem":29},"Cite DTPR for AI","/en/cite","en/11.cite",{"title":31,"path":32,"stem":33,"children":34},"MCP server","/en/mcp","en/2.mcp/0.index",[35,36,40,44,48,98],{"title":31,"path":32,"stem":33},{"title":37,"path":38,"stem":39},"Connecting","/en/mcp/connection","en/2.mcp/1.connection",{"title":41,"path":42,"stem":43},"Envelope","/en/mcp/envelope","en/2.mcp/2.envelope",{"title":45,"path":46,"stem":47},"Resources","/en/mcp/resources","en/2.mcp/3.resources",{"title":49,"path":50,"stem":51,"children":52},"Tools","/en/mcp/tools","en/2.mcp/4.tools/0.index",[53,54,58,62,66,70,74,78,82,86,90,94],{"title":49,"path":50,"stem":51},{"title":55,"path":56,"stem":57},"list_schema_versions","/en/mcp/tools/list-schema-versions","en/2.mcp/4.tools/1.list-schema-versions",{"title":59,"path":60,"stem":61},"MCP tool: resolve_datachain","/en/mcp/tools/resolve-datachain","en/2.mcp/4.tools/10.resolve-datachain",{"title":63,"path":64,"stem":65},"MCP tool: validate_resolved","/en/mcp/tools/validate-resolved","en/2.mcp/4.tools/11.validate-resolved",{"title":67,"path":68,"stem":69},"get_schema","/en/mcp/tools/get-schema","en/2.mcp/4.tools/2.get-schema",{"title":71,"path":72,"stem":73},"list_categories","/en/mcp/tools/list-categories","en/2.mcp/4.tools/3.list-categories",{"title":75,"path":76,"stem":77},"list_elements","/en/mcp/tools/list-elements","en/2.mcp/4.tools/4.list-elements",{"title":79,"path":80,"stem":81},"get_element","/en/mcp/tools/get-element","en/2.mcp/4.tools/5.get-element",{"title":83,"path":84,"stem":85},"get_elements","/en/mcp/tools/get-elements","en/2.mcp/4.tools/6.get-elements",{"title":87,"path":88,"stem":89},"validate_datachain","/en/mcp/tools/validate-datachain","en/2.mcp/4.tools/7.validate-datachain",{"title":91,"path":92,"stem":93},"render_datachain","/en/mcp/tools/render-datachain","en/2.mcp/4.tools/8.render-datachain",{"title":95,"path":96,"stem":97},"get_icon_url","/en/mcp/tools/get-icon-url","en/2.mcp/4.tools/9.get-icon-url",{"title":99,"path":100,"stem":101},"Prompts","/en/mcp/prompts","en/2.mcp/5.prompts",{"title":103,"path":104,"stem":105,"children":106},"REST API (v2)","/en/rest","en/3.rest/0.index",[107,108,112,116,120,124,128,132,136,140,144,148],{"title":103,"path":104,"stem":105},{"title":109,"path":110,"stem":111},"GET /schemas","/en/rest/schemas","en/3.rest/1.schemas",{"title":113,"path":114,"stem":115},"POST /schemas/:version/resolve","/en/rest/resolve","en/3.rest/10.resolve",{"title":117,"path":118,"stem":119},"POST /schemas/:version/validate_resolved","/en/rest/validate-resolved","en/3.rest/11.validate-resolved",{"title":121,"path":122,"stem":123},"GET /schemas/:version/manifest","/en/rest/manifest","en/3.rest/2.manifest",{"title":125,"path":126,"stem":127},"GET /schemas/:version/categories","/en/rest/categories","en/3.rest/3.categories",{"title":129,"path":130,"stem":131},"GET /schemas/:version/elements","/en/rest/elements-list","en/3.rest/4.elements-list",{"title":133,"path":134,"stem":135},"GET /schemas/:version/elements/:element_id","/en/rest/element-detail","en/3.rest/5.element-detail",{"title":137,"path":138,"stem":139},"POST /schemas/:version/validate","/en/rest/validate","en/3.rest/6.validate",{"title":141,"path":142,"stem":143},"Icon routes","/en/rest/icons","en/3.rest/7.icons",{"title":145,"path":146,"stem":147},"Pagination & fields","/en/rest/pagination-and-fields","en/3.rest/8.pagination-and-fields",{"title":149,"path":150,"stem":151},"Errors","/en/rest/errors","en/3.rest/9.errors",{"title":153,"path":154,"stem":155,"children":156},"Icon composition","/en/icons","en/4.icons/0.index",[157,158,162,166,170],{"title":153,"path":154,"stem":155},{"title":159,"path":160,"stem":161},"Shapes","/en/icons/shapes","en/4.icons/1.shapes",{"title":163,"path":164,"stem":165},"Symbols","/en/icons/symbols","en/4.icons/2.symbols",{"title":167,"path":168,"stem":169},"Composed variants","/en/icons/composed-variants","en/4.icons/3.composed-variants",{"title":171,"path":172,"stem":173},"URLs","/en/icons/urls","en/4.icons/4.urls",{"title":175,"path":176,"stem":177,"children":178},"@dtpr/ui","/en/ui","en/5.ui/0.index",[179,180,184,188,192],{"title":175,"path":176,"stem":177},{"title":181,"path":182,"stem":183},"@dtpr/ui/core","/en/ui/core","en/5.ui/1.core",{"title":185,"path":186,"stem":187},"@dtpr/ui/vue","/en/ui/vue","en/5.ui/2.vue",{"title":189,"path":190,"stem":191},"@dtpr/ui/html","/en/ui/html","en/5.ui/3.html",{"title":193,"path":194,"stem":195},"Theming","/en/ui/theming","en/5.ui/4.theming",{"title":197,"path":198,"stem":199,"children":200},"Concepts","/en/concepts","en/6.concepts/0.index",[201,202,206,210,214,218,222],{"title":197,"path":198,"stem":199},{"title":203,"path":204,"stem":205},"Datachains","/en/concepts/datachains","en/6.concepts/1.datachains",{"title":207,"path":208,"stem":209},"Elements & categories","/en/concepts/elements-categories","en/6.concepts/2.elements-categories",{"title":211,"path":212,"stem":213},"Versions & releases","/en/concepts/versions-and-releases","en/6.concepts/3.versions-and-releases",{"title":215,"path":216,"stem":217},"Content hash","/en/concepts/content-hash","en/6.concepts/4.content-hash",{"title":219,"path":220,"stem":221},"Shape contract","/en/concepts/shape-contract","en/6.concepts/5.shape-contract",{"title":223,"path":224,"stem":225},"Subchains","/en/concepts/subchains","en/6.concepts/6.subchains",{"title":227,"path":228,"stem":229,"children":230},"Claude plugin","/en/plugin","en/7.plugin/0.index",[231,232,236,270,274],{"title":227,"path":228,"stem":229},{"title":233,"path":234,"stem":235},"Install","/en/plugin/install","en/7.plugin/1.install",{"title":237,"path":238,"stem":239,"children":240},"Skills","/en/plugin/skills","en/7.plugin/2.skills/0.index",[241,242,246,250,254,258,262,266],{"title":237,"path":238,"stem":239},{"title":243,"path":244,"stem":245},"dtpr-describe-system","/en/plugin/skills/describe-system","en/7.plugin/2.skills/1.describe-system",{"title":247,"path":248,"stem":249},"dtpr-datachain-structure","/en/plugin/skills/datachain-structure","en/7.plugin/2.skills/2.datachain-structure",{"title":251,"path":252,"stem":253},"dtpr-category-audit","/en/plugin/skills/category-audit","en/7.plugin/2.skills/3.category-audit",{"title":255,"path":256,"stem":257},"dtpr-element-design","/en/plugin/skills/element-design","en/7.plugin/2.skills/4.element-design",{"title":259,"path":260,"stem":261},"dtpr-symbol-design","/en/plugin/skills/symbol-design","en/7.plugin/2.skills/5.symbol-design",{"title":263,"path":264,"stem":265},"dtpr-translate","/en/plugin/skills/translate","en/7.plugin/2.skills/6.translate",{"title":267,"path":268,"stem":269},"dtpr-comprehension-audit","/en/plugin/skills/comprehension-audit","en/7.plugin/2.skills/7.comprehension-audit",{"title":271,"path":272,"stem":273},"Research corpus","/en/plugin/research-corpus","en/7.plugin/3.research-corpus",{"title":275,"path":276,"stem":277},"Comprehension rubric","/en/plugin/comprehension-rubric","en/7.plugin/4.comprehension-rubric",{"title":49,"path":279,"stem":280,"children":281},"/en/tools","en/8.tools/0.index",[282],{"title":49,"path":279,"stem":280},{"title":284,"path":285,"stem":286},"Changelog","/en/changelog","en/9.changelog",{"ok":288,"versions":289},true,[290],{"id":291,"status":292,"created_at":293,"content_hash":294},"ai@2026-05-06-beta","beta","2026-05-06T20:23:42.963Z","sha256-2d208111b0c597ff2b38cb1c24168799b0a5ff9290203ebf46c4f7c16a0fcb24",{"id":296,"title":181,"body":297,"description":1480,"extension":1481,"links":1482,"meta":1483,"navigation":288,"path":182,"seo":1484,"stem":183,"__hash__":1485},"docs_en/en/5.ui/1.core.md",{"type":298,"value":299,"toc":1453},"minimark",[300,305,310,432,436,443,451,503,609,615,621,671,675,681,688,734,779,785,788,845,856,860,866,873,916,922,933,986,992,1006,1010,1016,1034,1107,1148,1152,1158,1177,1225,1228,1232,1237,1251,1270,1274,1283,1424,1428,1449],[301,302,304],"callout",{"type":303},"info","Pure TypeScript, no framework dependencies. Import these helpers from any runtime — Node, Bun, Deno, Workers, a Vue app, a React app.",[306,307,309],"h2",{"id":308},"import","Import",[311,312,317],"pre",{"className":313,"code":314,"language":315,"meta":316,"style":316},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import {\n  extract,\n  extractWithLocale,\n  interpolate,\n  interpolateSegments,\n  groupElementsByCategory,\n  sortCategoriesByOrder,\n  findCategoryDefinition,\n  deriveElementDisplay,\n  validateDatachain,\n  HEXAGON_FALLBACK_DATA_URI,\n} from '@dtpr/ui/core'\n","ts","",[318,319,320,332,342,350,358,366,374,382,390,398,406,414],"code",{"__ignoreMap":316},[321,322,325,328],"span",{"class":323,"line":324},"line",1,[321,326,308],{"class":327},"s7zQu",[321,329,331],{"class":330},"sMK4o"," {\n",[321,333,335,339],{"class":323,"line":334},2,[321,336,338],{"class":337},"sTEyZ","  extract",[321,340,341],{"class":330},",\n",[321,343,345,348],{"class":323,"line":344},3,[321,346,347],{"class":337},"  extractWithLocale",[321,349,341],{"class":330},[321,351,353,356],{"class":323,"line":352},4,[321,354,355],{"class":337},"  interpolate",[321,357,341],{"class":330},[321,359,361,364],{"class":323,"line":360},5,[321,362,363],{"class":337},"  interpolateSegments",[321,365,341],{"class":330},[321,367,369,372],{"class":323,"line":368},6,[321,370,371],{"class":337},"  groupElementsByCategory",[321,373,341],{"class":330},[321,375,377,380],{"class":323,"line":376},7,[321,378,379],{"class":337},"  sortCategoriesByOrder",[321,381,341],{"class":330},[321,383,385,388],{"class":323,"line":384},8,[321,386,387],{"class":337},"  findCategoryDefinition",[321,389,341],{"class":330},[321,391,393,396],{"class":323,"line":392},9,[321,394,395],{"class":337},"  deriveElementDisplay",[321,397,341],{"class":330},[321,399,401,404],{"class":323,"line":400},10,[321,402,403],{"class":337},"  validateDatachain",[321,405,341],{"class":330},[321,407,409,412],{"class":323,"line":408},11,[321,410,411],{"class":337},"  HEXAGON_FALLBACK_DATA_URI",[321,413,341],{"class":330},[321,415,417,420,423,426,429],{"class":323,"line":416},12,[321,418,419],{"class":330},"}",[321,421,422],{"class":327}," from",[321,424,425],{"class":330}," '",[321,427,181],{"class":428},"sfazB",[321,430,431],{"class":330},"'\n",[306,433,435],{"id":434},"locale-extraction","Locale extraction",[437,438,440],"h3",{"id":439},"extractvalues-locale",[318,441,442],{},"extract(values, locale)",[444,445,446,447,450],"p",{},"Return the first ",[318,448,449],{},"LocaleValue"," matching the requested locale, or an empty string.",[311,452,454],{"className":313,"code":453,"language":315,"meta":316,"style":316},"function extract(values: readonly LocaleValue[], locale: string): string\n",[318,455,456],{"__ignoreMap":316},[321,457,458,462,466,469,473,476,479,483,486,489,492,494,497,500],{"class":323,"line":324},[321,459,461],{"class":460},"spNyl","function",[321,463,465],{"class":464},"s2Zo4"," extract",[321,467,468],{"class":330},"(",[321,470,472],{"class":471},"sHdIc","values",[321,474,475],{"class":330},":",[321,477,478],{"class":460}," readonly",[321,480,482],{"class":481},"sBMFI"," LocaleValue",[321,484,485],{"class":337},"[]",[321,487,488],{"class":330},",",[321,490,491],{"class":471}," locale",[321,493,475],{"class":330},[321,495,496],{"class":481}," string",[321,498,499],{"class":330},"):",[321,501,502],{"class":481}," string\n",[311,504,506],{"className":313,"code":505,"language":315,"meta":316,"style":316},"extract(\n  [{ locale: 'en', value: 'Camera' }, { locale: 'fr', value: 'Caméra' }],\n  'fr',\n) // → 'Caméra'\n",[318,507,508,516,589,600],{"__ignoreMap":316},[321,509,510,513],{"class":323,"line":324},[321,511,512],{"class":464},"extract",[321,514,515],{"class":337},"(\n",[321,517,518,521,524,527,529,531,534,537,539,542,544,546,549,551,554,557,559,561,563,566,568,570,572,574,576,579,581,584,587],{"class":323,"line":334},[321,519,520],{"class":337},"  [",[321,522,523],{"class":330},"{",[321,525,491],{"class":526},"swJcz",[321,528,475],{"class":330},[321,530,425],{"class":330},[321,532,533],{"class":428},"en",[321,535,536],{"class":330},"'",[321,538,488],{"class":330},[321,540,541],{"class":526}," value",[321,543,475],{"class":330},[321,545,425],{"class":330},[321,547,548],{"class":428},"Camera",[321,550,536],{"class":330},[321,552,553],{"class":330}," },",[321,555,556],{"class":330}," {",[321,558,491],{"class":526},[321,560,475],{"class":330},[321,562,425],{"class":330},[321,564,565],{"class":428},"fr",[321,567,536],{"class":330},[321,569,488],{"class":330},[321,571,541],{"class":526},[321,573,475],{"class":330},[321,575,425],{"class":330},[321,577,578],{"class":428},"Caméra",[321,580,536],{"class":330},[321,582,583],{"class":330}," }",[321,585,586],{"class":337},"]",[321,588,341],{"class":330},[321,590,591,594,596,598],{"class":323,"line":344},[321,592,593],{"class":330},"  '",[321,595,565],{"class":428},[321,597,536],{"class":330},[321,599,341],{"class":330},[321,601,602,605],{"class":323,"line":352},[321,603,604],{"class":337},") ",[321,606,608],{"class":607},"sHwdD","// → 'Caméra'\n",[437,610,612],{"id":611},"extractwithlocalevalues-locale",[318,613,614],{},"extractWithLocale(values, locale)",[444,616,617,618,620],{},"Like ",[318,619,512],{}," but returns the matched locale too — useful when you want to know whether the extraction fell back.",[311,622,624],{"className":313,"code":623,"language":315,"meta":316,"style":316},"function extractWithLocale(\n  values: readonly LocaleValue[],\n  locale: string,\n): ExtractWithLocaleResult  // { value: string, locale: string | null }\n",[318,625,626,635,650,661],{"__ignoreMap":316},[321,627,628,630,633],{"class":323,"line":324},[321,629,461],{"class":460},[321,631,632],{"class":464}," extractWithLocale",[321,634,515],{"class":330},[321,636,637,640,642,644,646,648],{"class":323,"line":334},[321,638,639],{"class":471},"  values",[321,641,475],{"class":330},[321,643,478],{"class":460},[321,645,482],{"class":481},[321,647,485],{"class":337},[321,649,341],{"class":330},[321,651,652,655,657,659],{"class":323,"line":344},[321,653,654],{"class":471},"  locale",[321,656,475],{"class":330},[321,658,496],{"class":481},[321,660,341],{"class":330},[321,662,663,665,668],{"class":323,"line":352},[321,664,499],{"class":330},[321,666,667],{"class":481}," ExtractWithLocaleResult",[321,669,670],{"class":607},"  // { value: string, locale: string | null }\n",[306,672,674],{"id":673},"interpolation","Interpolation",[437,676,678],{"id":677},"interpolatetemplate-vars",[318,679,680],{},"interpolate(template, vars)",[444,682,683,684,687],{},"Replace ",[318,685,686],{},"{{variable_id}}"," tokens in a template string.",[311,689,691],{"className":313,"code":690,"language":315,"meta":316,"style":316},"function interpolate(template: string, vars: Record\u003Cstring, string>): string\n",[318,692,693],{"__ignoreMap":316},[321,694,695,697,700,702,705,707,709,711,714,716,719,722,725,727,729,732],{"class":323,"line":324},[321,696,461],{"class":460},[321,698,699],{"class":464}," interpolate",[321,701,468],{"class":330},[321,703,704],{"class":471},"template",[321,706,475],{"class":330},[321,708,496],{"class":481},[321,710,488],{"class":330},[321,712,713],{"class":471}," vars",[321,715,475],{"class":330},[321,717,718],{"class":481}," Record",[321,720,721],{"class":330},"\u003C",[321,723,724],{"class":481},"string",[321,726,488],{"class":330},[321,728,496],{"class":481},[321,730,731],{"class":330},">):",[321,733,502],{"class":481},[311,735,737],{"className":313,"code":736,"language":315,"meta":316,"style":316},"interpolate('Shared with {{partner}}', { partner: 'Acme' })\n// → 'Shared with Acme'\n",[318,738,739,774],{"__ignoreMap":316},[321,740,741,744,746,748,751,753,755,757,760,762,764,767,769,771],{"class":323,"line":324},[321,742,743],{"class":464},"interpolate",[321,745,468],{"class":337},[321,747,536],{"class":330},[321,749,750],{"class":428},"Shared with {{partner}}",[321,752,536],{"class":330},[321,754,488],{"class":330},[321,756,556],{"class":330},[321,758,759],{"class":526}," partner",[321,761,475],{"class":330},[321,763,425],{"class":330},[321,765,766],{"class":428},"Acme",[321,768,536],{"class":330},[321,770,583],{"class":330},[321,772,773],{"class":337},")\n",[321,775,776],{"class":323,"line":334},[321,777,778],{"class":607},"// → 'Shared with Acme'\n",[437,780,782],{"id":781},"interpolatesegmentstemplate-vars",[318,783,784],{},"interpolateSegments(template, vars)",[444,786,787],{},"Tokenize a template into segments so a renderer can style filled vs missing variables differently.",[311,789,791],{"className":313,"code":790,"language":315,"meta":316,"style":316},"function interpolateSegments(\n  template: string,\n  vars: Record\u003Cstring, string>,\n): readonly InterpolateSegment[]\n",[318,792,793,802,813,833],{"__ignoreMap":316},[321,794,795,797,800],{"class":323,"line":324},[321,796,461],{"class":460},[321,798,799],{"class":464}," interpolateSegments",[321,801,515],{"class":330},[321,803,804,807,809,811],{"class":323,"line":334},[321,805,806],{"class":471},"  template",[321,808,475],{"class":330},[321,810,496],{"class":481},[321,812,341],{"class":330},[321,814,815,818,820,822,824,826,828,830],{"class":323,"line":344},[321,816,817],{"class":471},"  vars",[321,819,475],{"class":330},[321,821,718],{"class":481},[321,823,721],{"class":330},[321,825,724],{"class":481},[321,827,488],{"class":330},[321,829,496],{"class":481},[321,831,832],{"class":330},">,\n",[321,834,835,837,839,842],{"class":323,"line":352},[321,836,499],{"class":330},[321,838,478],{"class":460},[321,840,841],{"class":481}," InterpolateSegment",[321,843,844],{"class":337},"[]\n",[444,846,847,848,851,852,855],{},"Each segment is ",[318,849,850],{},"{ kind: 'text' | 'variable' | 'missing', value: string, variable_id?: string }",". ",[318,853,854],{},"DtprElementDetail"," uses this helper to highlight filled variables and emphasize missing ones.",[306,857,859],{"id":858},"category-grouping","Category grouping",[437,861,863],{"id":862},"groupelementsbycategoryelements",[318,864,865],{},"groupElementsByCategory(elements)",[444,867,868,869,872],{},"Bucket a flat element list into ",[318,870,871],{},"{ [category_id]: Element[] }",".",[311,874,876],{"className":313,"code":875,"language":315,"meta":316,"style":316},"function groupElementsByCategory(elements: readonly Element[]): Record\u003Cstring, Element[]>\n",[318,877,878],{"__ignoreMap":316},[321,879,880,882,885,887,890,892,894,897,899,901,903,905,907,909,911,913],{"class":323,"line":324},[321,881,461],{"class":460},[321,883,884],{"class":464}," groupElementsByCategory",[321,886,468],{"class":330},[321,888,889],{"class":471},"elements",[321,891,475],{"class":330},[321,893,478],{"class":460},[321,895,896],{"class":481}," Element",[321,898,485],{"class":337},[321,900,499],{"class":330},[321,902,718],{"class":481},[321,904,721],{"class":330},[321,906,724],{"class":481},[321,908,488],{"class":330},[321,910,896],{"class":481},[321,912,485],{"class":337},[321,914,915],{"class":330},">\n",[437,917,919],{"id":918},"sortcategoriesbyordercategories-order",[318,920,921],{},"sortCategoriesByOrder(categories, order)",[444,923,924,925,928,929,932],{},"Order categories according to a reference id sequence (e.g. the one declared on ",[318,926,927],{},"datachainType.categories","). Categories not in ",[318,930,931],{},"order"," land at the end in their natural order.",[311,934,936],{"className":313,"code":935,"language":315,"meta":316,"style":316},"function sortCategoriesByOrder(\n  categories: readonly Category[],\n  order: readonly string[],\n): Category[]\n",[318,937,938,947,963,978],{"__ignoreMap":316},[321,939,940,942,945],{"class":323,"line":324},[321,941,461],{"class":460},[321,943,944],{"class":464}," sortCategoriesByOrder",[321,946,515],{"class":330},[321,948,949,952,954,956,959,961],{"class":323,"line":334},[321,950,951],{"class":471},"  categories",[321,953,475],{"class":330},[321,955,478],{"class":460},[321,957,958],{"class":481}," Category",[321,960,485],{"class":337},[321,962,341],{"class":330},[321,964,965,968,970,972,974,976],{"class":323,"line":344},[321,966,967],{"class":471},"  order",[321,969,475],{"class":330},[321,971,478],{"class":460},[321,973,496],{"class":481},[321,975,485],{"class":337},[321,977,341],{"class":330},[321,979,980,982,984],{"class":323,"line":352},[321,981,499],{"class":330},[321,983,958],{"class":481},[321,985,844],{"class":337},[437,987,989],{"id":988},"findcategorydefinitioncategories-id",[318,990,991],{},"findCategoryDefinition(categories, id)",[444,993,994,995,998,999,1002,1003,872],{},"Lookup helper that returns the ",[318,996,997],{},"Category"," matching ",[318,1000,1001],{},"id",", or ",[318,1004,1005],{},"undefined",[306,1007,1009],{"id":1008},"display-derivation","Display derivation",[437,1011,1013],{"id":1012},"deriveelementdisplayelement-placement-locale",[318,1014,1015],{},"deriveElementDisplay(element, placement, locale)",[444,1017,1018,1019,1022,1023,1025,1026,1029,1030,1033],{},"Compose the pre-rendered display payload consumed by ",[318,1020,1021],{},"DtprElement"," and ",[318,1024,854],{},". It resolves the icon URL (including the ",[318,1027,1028],{},"HEXAGON_FALLBACK_DATA_URI"," when ",[318,1031,1032],{},"icon_url"," is missing), extracts localized strings, and tees up variables with their filled values.",[311,1035,1037],{"className":313,"code":1036,"language":315,"meta":316,"style":316},"function deriveElementDisplay(\n  element: Element,\n  placement: InstanceElement | undefined,\n  locale: string,\n  options?: DeriveElementDisplayOptions,\n): ElementDisplay\n",[318,1038,1039,1048,1059,1077,1087,1100],{"__ignoreMap":316},[321,1040,1041,1043,1046],{"class":323,"line":324},[321,1042,461],{"class":460},[321,1044,1045],{"class":464}," deriveElementDisplay",[321,1047,515],{"class":330},[321,1049,1050,1053,1055,1057],{"class":323,"line":334},[321,1051,1052],{"class":471},"  element",[321,1054,475],{"class":330},[321,1056,896],{"class":481},[321,1058,341],{"class":330},[321,1060,1061,1064,1066,1069,1072,1075],{"class":323,"line":344},[321,1062,1063],{"class":471},"  placement",[321,1065,475],{"class":330},[321,1067,1068],{"class":481}," InstanceElement",[321,1070,1071],{"class":330}," |",[321,1073,1074],{"class":481}," undefined",[321,1076,341],{"class":330},[321,1078,1079,1081,1083,1085],{"class":323,"line":352},[321,1080,654],{"class":471},[321,1082,475],{"class":330},[321,1084,496],{"class":481},[321,1086,341],{"class":330},[321,1088,1089,1092,1095,1098],{"class":323,"line":360},[321,1090,1091],{"class":471},"  options",[321,1093,1094],{"class":330},"?:",[321,1096,1097],{"class":481}," DeriveElementDisplayOptions",[321,1099,341],{"class":330},[321,1101,1102,1104],{"class":323,"line":368},[321,1103,499],{"class":330},[321,1105,1106],{"class":481}," ElementDisplay\n",[311,1108,1110],{"className":313,"code":1109,"language":315,"meta":316,"style":316},"const display = deriveElementDisplay(element, placement, 'en')\n// { title, description, citation, icon: {url, alt}, variables: [{id, label, value, type, required}] }\n",[318,1111,1112,1143],{"__ignoreMap":316},[321,1113,1114,1117,1120,1123,1125,1128,1130,1133,1135,1137,1139,1141],{"class":323,"line":324},[321,1115,1116],{"class":460},"const",[321,1118,1119],{"class":337}," display ",[321,1121,1122],{"class":330},"=",[321,1124,1045],{"class":464},[321,1126,1127],{"class":337},"(element",[321,1129,488],{"class":330},[321,1131,1132],{"class":337}," placement",[321,1134,488],{"class":330},[321,1136,425],{"class":330},[321,1138,533],{"class":428},[321,1140,536],{"class":330},[321,1142,773],{"class":337},[321,1144,1145],{"class":323,"line":334},[321,1146,1147],{"class":607},"// { title, description, citation, icon: {url, alt}, variables: [{id, label, value, type, required}] }\n",[306,1149,1151],{"id":1150},"validation","Validation",[437,1153,1155],{"id":1154},"validatedatachaininstance-source",[318,1156,1157],{},"validateDatachain(instance, source)",[444,1159,1160,1161,1168,1169,1172,1173,1176],{},"Run the same validator used by ",[1162,1163,1165],"a",{"href":1164},"/rest/validate",[318,1166,1167],{},"POST /validate"," over a ",[318,1170,1171],{},"DatachainInstance",", given a ",[318,1174,1175],{},"SchemaVersionSource"," (manifest + categories + elements + datachain-type).",[311,1178,1180],{"className":313,"code":1179,"language":315,"meta":316,"style":316},"function validateDatachain(\n  instance: DatachainInstance,\n  source: SchemaVersionSource,\n): ValidationResult  // { ok: boolean, errors: SemanticError[], warnings: SemanticError[] }\n",[318,1181,1182,1191,1203,1215],{"__ignoreMap":316},[321,1183,1184,1186,1189],{"class":323,"line":324},[321,1185,461],{"class":460},[321,1187,1188],{"class":464}," validateDatachain",[321,1190,515],{"class":330},[321,1192,1193,1196,1198,1201],{"class":323,"line":334},[321,1194,1195],{"class":471},"  instance",[321,1197,475],{"class":330},[321,1199,1200],{"class":481}," DatachainInstance",[321,1202,341],{"class":330},[321,1204,1205,1208,1210,1213],{"class":323,"line":344},[321,1206,1207],{"class":471},"  source",[321,1209,475],{"class":330},[321,1211,1212],{"class":481}," SchemaVersionSource",[321,1214,341],{"class":330},[321,1216,1217,1219,1222],{"class":323,"line":352},[321,1218,499],{"class":330},[321,1220,1221],{"class":481}," ValidationResult",[321,1223,1224],{"class":607},"  // { ok: boolean, errors: SemanticError[], warnings: SemanticError[] }\n",[444,1226,1227],{},"Use it when you want to run validation client-side without a round-trip.",[306,1229,1231],{"id":1230},"constants","Constants",[437,1233,1235],{"id":1234},"hexagon_fallback_data_uri",[318,1236,1028],{},[444,1238,1239,1240,1243,1244,1246,1247,1250],{},"Inline data URI for a neutral hexagon fallback icon. Used by ",[318,1241,1242],{},"deriveElementDisplay"," when an element lacks an ",[318,1245,1032],{}," — pass it to ",[318,1248,1249],{},"DtprIcon.src"," wherever you need a safe placeholder.",[311,1252,1254],{"className":313,"code":1253,"language":315,"meta":316,"style":316},"const HEXAGON_FALLBACK_DATA_URI: string  // 'data:image/svg+xml,...'\n",[318,1255,1256],{"__ignoreMap":316},[321,1257,1258,1260,1263,1265,1267],{"class":323,"line":324},[321,1259,1116],{"class":460},[321,1261,1262],{"class":337}," HEXAGON_FALLBACK_DATA_URI",[321,1264,475],{"class":330},[321,1266,496],{"class":481},[321,1268,1269],{"class":607},"  // 'data:image/svg+xml,...'\n",[306,1271,1273],{"id":1272},"type-exports","Type exports",[444,1275,1276,1278,1279,1282],{},[318,1277,181],{}," also re-exports the schema types so consumers don't have to depend on ",[318,1280,1281],{},"@dtpr/api"," directly:",[1284,1285,1286,1299],"table",{},[1287,1288,1289],"thead",{},[1290,1291,1292,1296],"tr",{},[1293,1294,1295],"th",{},"Type",[1293,1297,1298],{},"Description",[1300,1301,1302,1324,1339,1349,1362,1378,1394,1412],"tbody",{},[1290,1303,1304,1321],{},[1305,1306,1307,1310,1311,1310,1313,1310,1315,1310,1318],"td",{},[318,1308,1309],{},"Element",", ",[318,1312,997],{},[318,1314,449],{},[318,1316,1317],{},"Variable",[318,1319,1320],{},"VariableType",[1305,1322,1323],{},"Schema primitives.",[1290,1325,1326,1336],{},[1305,1327,1328,1310,1331,1310,1334],{},[318,1329,1330],{},"InstanceElement",[318,1332,1333],{},"InstanceVariableValue",[318,1335,1171],{},[1305,1337,1338],{},"Instance primitives.",[1290,1340,1341,1346],{},[1305,1342,1343],{},[318,1344,1345],{},"SchemaManifest",[1305,1347,1348],{},"Manifest shape.",[1290,1350,1351,1356],{},[1305,1352,1353],{},[318,1354,1355],{},"InterpolateSegment",[1305,1357,1358,1359,872],{},"Segment type returned by ",[318,1360,1361],{},"interpolateSegments",[1290,1363,1364,1375],{},[1305,1365,1366,1310,1369,1310,1372],{},[318,1367,1368],{},"ElementDisplay",[318,1370,1371],{},"ElementDisplayIcon",[318,1373,1374],{},"ElementDisplayVariable",[1305,1376,1377],{},"Derived display payload.",[1290,1379,1380,1385],{},[1305,1381,1382],{},[318,1383,1384],{},"ExtractWithLocaleResult",[1305,1386,1387,1390,1391,872],{},[318,1388,1389],{},"{ value, locale }"," from ",[318,1392,1393],{},"extractWithLocale",[1290,1395,1396,1409],{},[1305,1397,1398,1310,1400,1310,1403,1310,1406],{},[318,1399,1175],{},[318,1401,1402],{},"SemanticError",[318,1404,1405],{},"Severity",[318,1407,1408],{},"ValidationResult",[1305,1410,1411],{},"Validator inputs and outputs.",[1290,1413,1414,1419],{},[1305,1415,1416],{},[318,1417,1418],{},"DeriveElementDisplayOptions",[1305,1420,1421,1422,872],{},"Options bag for ",[318,1423,1242],{},[306,1425,1427],{"id":1426},"see-also","See also",[1429,1430,1431,1438,1444],"ul",{},[1432,1433,1434],"li",{},[1162,1435,1437],{"href":1436},"/ui/vue","Vue components",[1432,1439,1440],{},[1162,1441,1443],{"href":1442},"/ui/html","SSR HTML renderer",[1432,1445,1446],{},[1162,1447,193],{"href":1448},"/ui/theming",[1450,1451,1452],"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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}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 .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 .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}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}",{"title":316,"searchDepth":334,"depth":334,"links":1454},[1455,1456,1460,1464,1469,1472,1475,1478,1479],{"id":308,"depth":334,"text":309},{"id":434,"depth":334,"text":435,"children":1457},[1458,1459],{"id":439,"depth":344,"text":442},{"id":611,"depth":344,"text":614},{"id":673,"depth":334,"text":674,"children":1461},[1462,1463],{"id":677,"depth":344,"text":680},{"id":781,"depth":344,"text":784},{"id":858,"depth":334,"text":859,"children":1465},[1466,1467,1468],{"id":862,"depth":344,"text":865},{"id":918,"depth":344,"text":921},{"id":988,"depth":344,"text":991},{"id":1008,"depth":334,"text":1009,"children":1470},[1471],{"id":1012,"depth":344,"text":1015},{"id":1150,"depth":334,"text":1151,"children":1473},[1474],{"id":1154,"depth":344,"text":1157},{"id":1230,"depth":334,"text":1231,"children":1476},[1477],{"id":1234,"depth":344,"text":1028},{"id":1272,"depth":334,"text":1273},{"id":1426,"depth":334,"text":1427},"Framework-neutral helpers for locale extraction, interpolation, category grouping, display derivation, and validation.","md",null,{},{"title":181,"description":1480},"6NfTlMnan7L2NVtiZObU1UVbIIXnwftgOTXokFKEjXA",[1487,1489],{"title":175,"path":176,"stem":177,"description":1488,"children":-1},"Framework-neutral helpers, Vue components, and SSR HTML renderer for DTPR content.",{"title":185,"path":186,"stem":187,"description":1490,"children":-1},"Six Vue 3 components for rendering DTPR datachains.",1779049694308]