Repository navigation
Expand file tree
/
Copy pathkbf-lab.html
More file actions
16 lines (16 loc) · 82.4 KB
/
Copy pathkbf-lab.html
File metadata and controls
16 lines (16 loc) · 82.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!doctype html>
<html lang="en" dir="ltr" class="plugin-pages plugin-id-default" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.10.2">
<title data-rh="true">Anatomy of a KBF document | neokapi</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" property="og:image" content="https://neokapi.github.io/img/og-card.png"><meta data-rh="true" name="twitter:image" content="https://neokapi.github.io/img/og-card.png"><meta data-rh="true" property="og:url" content="https://neokapi.github.io/kbf-lab"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" property="og:locale:alternate" content="nb"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusaurus_tag" content="default"><meta data-rh="true" name="docsearch:language" content="en"><meta data-rh="true" name="docsearch:docusaurus_tag" content="default"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" name="twitter:site" content="@neokapi"><meta data-rh="true" property="og:title" content="Anatomy of a KBF document | neokapi"><meta data-rh="true" name="description" content="A worked reading of the Kapi Bundle Format: one realistic .kbf.json document with every part — envelope, blocks, runs, targets, provenance — explained, and an interactive round-trip through the real engine."><meta data-rh="true" property="og:description" content="A worked reading of the Kapi Bundle Format: one realistic .kbf.json document with every part — envelope, blocks, runs, targets, provenance — explained, and an interactive round-trip through the real engine."><link data-rh="true" rel="icon" href="/img/favicon.png"><link data-rh="true" rel="canonical" href="https://neokapi.github.io/kbf-lab"><link data-rh="true" rel="alternate" href="https://neokapi.github.io/kbf-lab" hreflang="en"><link data-rh="true" rel="alternate" href="https://neokapi.github.io/nb/kbf-lab" hreflang="nb"><link data-rh="true" rel="alternate" href="https://neokapi.github.io/qps/kbf-lab" hreflang="en"><link data-rh="true" rel="alternate" href="https://neokapi.github.io/kbf-lab" hreflang="x-default"><link rel="stylesheet" href="/assets/css/styles.3d5ae24f.css">
<script src="/assets/js/runtime~main.79de8397.js" defer="defer"></script>
<script src="/assets/js/main.cdcbe053.js" defer="defer"></script>
</head>
<body>
<svg style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||"light"),document.documentElement.setAttribute("data-theme-choice",t||"light")}(),function(){try{const c=new URLSearchParams(window.location.search).entries();for(var[t,e]of c)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}()</script><div id="__docusaurus"><link rel="preload" as="image" href="/img/logo.png"><div role="region" aria-label="Skip to main content"><a class="skipToContent_WmD6" href="#__docusaurus_skipToContent_fallback">Skip to main content</a></div><nav aria-label="Main" class="theme-layout-navbar navbar navbar--fixed-top"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><div class="navbar__logo"><img src="/img/logo.png" alt="neokapi" class="themedComponent_wbKQ themedComponent--light_jlwr"><img src="/img/logo.png" alt="neokapi" class="themedComponent_wbKQ themedComponent--dark_D5UJ"></div><b class="navbar__title text--truncate">neokapi</b></a><a class="navbar__item navbar__link" href="/kapi/overview">Kapi</a><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Labs</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/labs">Labs overview</a></li><li><a class="dropdown__link" href="/lab">Content Model Workspace</a></li><li><a class="dropdown__link" href="/lab/segmentation">Segmentation</a></li><li><a class="dropdown__link" href="/lab/convert">File Conversion</a></li><li><a class="dropdown__link" href="/lab/structure">Structure & Layout</a></li><li><a class="dropdown__link" href="/lab/vision">Vision</a></li><li><a class="dropdown__link" href="/lab/media">Audio & Video</a></li><li><a class="dropdown__link" href="/playground-cli">CLI Playground</a></li><li><a aria-current="page" class="dropdown__link dropdown__link--active" href="/kbf-lab">KBF Anatomy</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Reference</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/reference">Reference Overview</a></li><li><a class="dropdown__link" href="/commands">Kapi CLI Commands</a></li><li><a class="dropdown__link" href="/formats">Formats</a></li><li><a class="dropdown__link" href="/tools">Tools</a></li><li><a class="dropdown__link" href="/models">AI Models</a></li><li><a class="dropdown__link" href="/reference/project-file">Project file</a></li><li><a class="dropdown__link" href="/reference/serialization/overview">kapi serialization formats</a></li><li><a class="dropdown__link" href="/reference/mcp">MCP Server</a></li><li><a class="dropdown__link" href="/reference/cli-contract">Scripting & JSON contract</a></li><li><a class="dropdown__link" href="/reference/engine-service">Engine service (gRPC)</a></li><li><a class="dropdown__link" href="/reference/telemetry">Telemetry</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link">Toolbox</a><ul class="dropdown__menu"><li><a class="dropdown__link" href="/toolbox/overview">CLI tools</a></li><li><a class="dropdown__link" href="/react/introduction">neokapi-i18n</a></li></ul></div><a class="navbar__item navbar__link" href="/framework/architecture">Framework</a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right switch_lcYA"><a href="https://neokapi.github.io/kbf-lab" class="navbar__link" aria-haspopup="true" aria-label="Documentation channel">Stable <!-- -->1.2.0</a><ul class="dropdown__menu"><li><a class="dropdown__link dropdown__link--active" href="https://neokapi.github.io/kbf-lab">Stable <!-- -->1.2.0</a></li><li><a class="dropdown__link" href="https://neokapi.github.io/next/kbf-lab">Next</a></li></ul></div><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href="#" aria-haspopup="true" aria-expanded="false" role="button" class="navbar__link navbar-locale-icon"><svg viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" class="iconLanguage_Lw9k"><path fill="currentColor" d="M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"></path></svg>English</a><ul class="dropdown__menu"><li><a href="/kbf-lab" target="_self" rel="noopener noreferrer" class="dropdown__link dropdown__link--active" lang="en">English</a></li><li><a href="/nb/kbf-lab" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="nb">Norsk (bokmål)</a></li><li><a href="/qps/kbf-lab" target="_self" rel="noopener noreferrer" class="dropdown__link" lang="en">Þšéüđö Éñĝļîšĥ</a></li></ul></div><a href="https://github.com/neokapi/neokapi" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link header-github-link" aria-label="GitHub repository"></a><div class="toggle_IPLv colorModeToggle_KrYI"><button class="clean-btn toggleButton_hVnx toggleButtonDisabled_kmUe" type="button" disabled="" title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_FAva lightToggleIcon_frLN"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_FAva darkToggleIcon_fLy3"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_FAva systemToggleIcon_kwTI"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div><div class="navbarSearchContainer_R3Ot"></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_Xz0H"><main class="kapi-reference mx-auto w-full min-w-0 max-w-[1160px] px-4 pb-16 pt-10"><header class="mb-8"><h1 class="mb-2 text-3xl font-bold text-foreground">Anatomy of a KBF document</h1><p class="max-w-[78ch] text-[1.05rem] leading-relaxed text-muted-foreground">The <a href="/reference/serialization/content-bundle">Kapi Bundle Format</a> (<code>.kbf.json</code>) is the interchange format of the kapi toolchain: one deterministic JSON document that carries a source file’s translatable content as blocks of runs, its per-locale targets, and the provenance of every string. It exists so that extraction, translation, validation, and write-back can be separate steps — run by different tools, at different times — without losing structure or identity. This page reads one realistic document part by part, then round-trips it through the engine.</p></header><section aria-labelledby="anatomy"><h2 class="mb-2 mt-12 text-2xl font-semibold text-foreground"><span id="anatomy">A worked example</span></h2><p class="mb-4 max-w-[78ch] text-sm leading-relaxed text-muted-foreground">One React component, <code>CheckoutBanner</code>, extracted to KBF: a heading with inline markup and a variable — already translated into Norwegian Bokmål — and a plural still awaiting translation. Select a line on the left, or a term on the right, to see what that part of the document is for.</p><div class="grid gap-4 lg:grid-cols-[minmax(0,3fr)_minmax(0,2fr)]"><div class="code_iQmt overflow-auto rounded-lg border bg-card" style="max-height:34rem" aria-label="Annotated .kbf.json source; select a line to explain the part it belongs to"><pre class="m-0 bg-transparent py-2 font-mono text-[0.78rem] leading-[1.55]"><code><span class="flex cursor-pointer items-start pr-3 bg-primary/10 shadow-[inset_3px_0_0] shadow-primary"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">1</span><span class="flex-1 whitespace-pre">{</span></span><span class="flex cursor-pointer items-start pr-3 bg-primary/10 shadow-[inset_3px_0_0] shadow-primary"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">2</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"schemaVersion"</span>:<!-- --> <span class="t_string_D26k">"1.0"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 bg-primary/10 shadow-[inset_3px_0_0] shadow-primary"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">3</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"kind"</span>:<!-- --> <span class="t_string_D26k">"kapi-bundle"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 bg-primary/10 shadow-[inset_3px_0_0] shadow-primary"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">4</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"created"</span>:<!-- --> <span class="t_string_D26k">"2026-05-02T09:30:00Z"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">5</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"generator"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">6</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"@neokapi/kapi-format-examples"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">7</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"version"</span>:<!-- --> <span class="t_string_D26k">"0.0.1"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">8</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"capabilities"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">9</span><span class="flex-1 whitespace-pre"> <span class="t_string_D26k">"extract"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">10</span><span class="flex-1 whitespace-pre"> <span class="t_string_D26k">"preview"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">11</span><span class="flex-1 whitespace-pre"> <!-- -->]</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">12</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">13</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"project"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">14</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"storefront"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">15</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"sourceLocale"</span>:<!-- --> <span class="t_string_D26k">"en"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">16</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">17</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"vocabulary"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">18</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"extends"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">19</span><span class="flex-1 whitespace-pre"> <span class="t_string_D26k">"common-formatting"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">20</span><span class="flex-1 whitespace-pre"> <span class="t_string_D26k">"rich-jsx"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">21</span><span class="flex-1 whitespace-pre"> <!-- -->]</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">22</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">23</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"documents"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">24</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">25</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"checkout-banner"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">26</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"documentType"</span>:<!-- --> <span class="t_string_D26k">"jsx"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">27</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"path"</span>:<!-- --> <span class="t_string_D26k">"src/CheckoutBanner.tsx"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">28</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"blocks"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">29</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">30</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"banner-heading"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">31</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"hash"</span>:<!-- --> <span class="t_string_D26k">"8kQzTf"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">32</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"translatable"</span>:<!-- --> <span class="t_boolean_dyGr">true</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">33</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">34</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"source"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">35</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">36</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">"Your order "</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">37</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">38</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">39</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"pcOpen"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">40</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"1"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">41</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">42</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"strong"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">43</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"<strong>"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">44</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"emph"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">45</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"disp"</span>:<!-- --> <span class="t_string_D26k">"strong"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">46</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">47</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">48</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">49</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">"#"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">50</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">51</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">52</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"ph"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">53</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"2"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">54</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:var"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">55</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"string"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">56</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"{orderId}"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">57</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"orderId"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">58</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"disp"</span>:<!-- --> <span class="t_string_D26k">"orderId"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">59</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">60</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">61</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">62</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"pcClose"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">63</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"1"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">64</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">65</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"strong"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">66</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"</strong>"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">67</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"emph"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">68</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">69</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">70</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">71</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">" has shipped."</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">72</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">73</span><span class="flex-1 whitespace-pre"> <!-- -->]<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">74</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"targets"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">75</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"nb"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">76</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">77</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">"Bestillingen din "</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">78</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">79</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">80</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"pcOpen"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">81</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"1"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">82</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">83</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"strong"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">84</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"<strong>"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">85</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"emph"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">86</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"disp"</span>:<!-- --> <span class="t_string_D26k">"strong"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">87</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">88</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">89</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">90</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">"#"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">91</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">92</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">93</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"ph"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">94</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"2"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">95</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:var"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">96</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"string"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">97</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"{orderId}"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">98</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"orderId"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">99</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"disp"</span>:<!-- --> <span class="t_string_D26k">"orderId"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">100</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">101</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">102</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">103</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"pcClose"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">104</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"1"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">105</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">106</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"strong"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">107</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"</strong>"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">108</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"emph"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">109</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">110</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">111</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">112</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">" er sendt."</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">113</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">114</span><span class="flex-1 whitespace-pre"> <!-- -->]</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">115</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">116</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"placeholders"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">117</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">118</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"name"</span>:<!-- --> <span class="t_string_D26k">"emph"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">119</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"kind"</span>:<!-- --> <span class="t_string_D26k">"element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">120</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"jsType"</span>:<!-- --> <span class="t_string_D26k">"ReactNode"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">121</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"sourceExpr"</span>:<!-- --> <span class="t_string_D26k">"<strong>...</strong>"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">122</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">123</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">124</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"name"</span>:<!-- --> <span class="t_string_D26k">"orderId"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">125</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"kind"</span>:<!-- --> <span class="t_string_D26k">"variable"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">126</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"jsType"</span>:<!-- --> <span class="t_string_D26k">"string"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">127</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"sourceExpr"</span>:<!-- --> <span class="t_string_D26k">"order.id"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">128</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">129</span><span class="flex-1 whitespace-pre"> <!-- -->]<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">130</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"properties"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">131</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"file"</span>:<!-- --> <span class="t_string_D26k">"src/CheckoutBanner.tsx"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">132</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"line"</span>:<!-- --> <span class="t_number_QpDc">12</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">133</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"component"</span>:<!-- --> <span class="t_string_D26k">"CheckoutBanner"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">134</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"jsxPath"</span>:<!-- --> <span class="t_string_D26k">"CheckoutBanner > h2"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">135</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"element"</span>:<!-- --> <span class="t_string_D26k">"h2"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">136</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">137</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">138</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">139</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"banner-items"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">140</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"hash"</span>:<!-- --> <span class="t_string_D26k">"3mVd9c"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">141</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"translatable"</span>:<!-- --> <span class="t_boolean_dyGr">true</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">142</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:element"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">143</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"source"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">144</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">145</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"plural"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">146</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"pivot"</span>:<!-- --> <span class="t_string_D26k">"count"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">147</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"forms"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">148</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"one"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">149</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">150</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">"It contains 1 item."</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">151</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">152</span><span class="flex-1 whitespace-pre"> <!-- -->]<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">153</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"other"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">154</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">155</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">"It contains "</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">156</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">157</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">158</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"ph"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">159</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"id"</span>:<!-- --> <span class="t_string_D26k">"1"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">160</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"type"</span>:<!-- --> <span class="t_string_D26k">"jsx:var"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">161</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"subType"</span>:<!-- --> <span class="t_string_D26k">"number"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">162</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"data"</span>:<!-- --> <span class="t_string_D26k">"{count}"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">163</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"equiv"</span>:<!-- --> <span class="t_string_D26k">"count"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">164</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"disp"</span>:<!-- --> <span class="t_string_D26k">"count"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">165</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">166</span><span class="flex-1 whitespace-pre"> <!-- -->}<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">167</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">168</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"text"</span>:<!-- --> <span class="t_string_D26k">" items."</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">169</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">170</span><span class="flex-1 whitespace-pre"> <!-- -->]</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">171</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">172</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">173</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">174</span><span class="flex-1 whitespace-pre"> <!-- -->]<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">175</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"placeholders"</span>:<!-- --> <!-- -->[</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">176</span><span class="flex-1 whitespace-pre"> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">177</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"name"</span>:<!-- --> <span class="t_string_D26k">"count"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">178</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"kind"</span>:<!-- --> <span class="t_string_D26k">"icu-pivot"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">179</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"jsType"</span>:<!-- --> <span class="t_string_D26k">"number"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">180</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"sourceExpr"</span>:<!-- --> <span class="t_string_D26k">"order.items.length"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">181</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">182</span><span class="flex-1 whitespace-pre"> <!-- -->]<!-- -->,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">183</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"properties"</span>:<!-- --> <!-- -->{</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">184</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"file"</span>:<!-- --> <span class="t_string_D26k">"src/CheckoutBanner.tsx"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">185</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"line"</span>:<!-- --> <span class="t_number_QpDc">18</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">186</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"component"</span>:<!-- --> <span class="t_string_D26k">"CheckoutBanner"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">187</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"jsxPath"</span>:<!-- --> <span class="t_string_D26k">"CheckoutBanner > p > Plural"</span>,</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">188</span><span class="flex-1 whitespace-pre"> <span class="t_key_neAL">"element"</span>:<!-- --> <span class="t_string_D26k">"Plural"</span></span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">189</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">190</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">191</span><span class="flex-1 whitespace-pre"> <!-- -->]</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">192</span><span class="flex-1 whitespace-pre"> <!-- -->}</span></span><span class="flex cursor-pointer items-start pr-3 hover:bg-muted/60"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">193</span><span class="flex-1 whitespace-pre"> <!-- -->]</span></span><span class="flex cursor-pointer items-start pr-3 bg-primary/10 shadow-[inset_3px_0_0] shadow-primary"><span class="mr-3 w-9 shrink-0 border-r border-border pr-2 text-right text-muted-foreground/70 tabular-nums select-none">194</span><span class="flex-1 whitespace-pre">}</span></span></code></pre></div><div class="min-w-0 lg:sticky lg:top-20 lg:self-start"><nav aria-label="Anatomy terms" class="mb-3 flex flex-wrap gap-1.5"><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-primary bg-primary/10 text-foreground">File envelope</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">GeneratorInfo</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">ProjectInfo</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Vocabulary</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Document</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Block</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Source runs</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Run — text</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Run — pcOpen / pcClose</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Run — ph</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Run — plural</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Targets</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Placeholders</button><button type="button" class="rounded-md border px-2 py-0.5 font-mono text-[0.72rem] transition-colors border-border bg-transparent text-muted-foreground hover:border-primary/60">Provenance — BlockProperties</button></nav><div class="rounded-lg border bg-card p-4"><h3 class="mb-1 text-base font-semibold text-foreground">File envelope</h3><p class="mb-2 text-sm leading-relaxed text-muted-foreground">The top-level object of a .kbf.json file. kind is the magic string readers sniff to detect the format; schemaVersion carries the MAJOR.MINOR wire contract — a consumer must reject an unrecognized major version and should accept unknown minors, ignoring fields it does not recognize.</p><p class="mb-2 text-sm leading-relaxed text-muted-foreground">Serialization is deterministic: 2-space indent, fields in the pinned order shown here, all map keys sorted, trailing newline. Determinism is what keeps a file's content hash stable across runs, machines, and the two reference implementations.</p><p class="mb-0 text-sm"><a href="/reference/serialization/content-bundle#file-envelope">Normative definition in the specification</a></p></div></div></div></section><section aria-labelledby="roundtrip"><h2 class="mb-2 mt-12 text-2xl font-semibold text-foreground"><span id="roundtrip">Round-trip through the engine</span></h2><p class="mb-4 max-w-[78ch] text-sm leading-relaxed text-muted-foreground">The demonstration below runs <code>core/kbf</code> — the canonical Go implementation, compiled to WebAssembly — on a document you can edit. The engine parses the text, renders each block’s preview, validates the run structure against the rules of the specification, writes the document back in canonical form, and resolves a companion<!-- --> <code>.overlays.jsonl</code> annotation overlay anchor by anchor. Nothing is mocked; this is the code the CLI runs.</p><div style="padding:1rem;color:var(--ifm-color-emphasis-500);font-style:italic">Loading the interactive KBF lab…</div></section><p class="mt-6 border-t pt-5 text-sm leading-relaxed text-muted-foreground">Conformance results: the <a href="/kbf-tests">KBF conformance suite</a> runs the spec tests against both the Go engine and the TypeScript mirror in your browser. The full schema is in the <a href="/reference/serialization/content-bundle">specification</a>; further editable examples are in<!-- --> <a href="/reference/serialization/content-bundle">Examples</a>.</p></main></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class="footer__title">Documentation</div><ul class="footer__items clean-list"><li class="footer__item"><a class="footer__link-item" href="/kapi/get-started/quickstart">Get started</a></li><li class="footer__item"><a class="footer__link-item" href="/kapi/overview">Kapi</a></li><li class="footer__item"><a class="footer__link-item" href="/framework/architecture">Framework</a></li><li class="footer__item"><a class="footer__link-item" href="/kapi/cli">Kapi CLI</a></li><li class="footer__item"><a class="footer__link-item" href="/toolbox/overview">CLI tools</a></li><li class="footer__item"><a class="footer__link-item" href="/react/introduction">neokapi-i18n</a></li><li class="footer__item"><a class="footer__link-item" href="/reference">Reference</a></li><li class="footer__item"><a class="footer__link-item" href="/formats">Format Reference</a></li><li class="footer__item"><a class="footer__link-item" href="/evals">Tests & Evals</a></li></ul></div><div class="theme-layout-footer-column col footer__col"><div class="footer__title">More</div><ul class="footer__items clean-list"><li class="footer__item"><a href="https://github.com/neokapi/neokapi" target="_blank" rel="noopener noreferrer" class="footer__link-item">GitHub<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_RkRR"><use href="#theme-svg-external-link"></use></svg></a></li><li class="footer__item"><a href="https://github.com/neokapi/homebrew-tap" target="_blank" rel="noopener noreferrer" class="footer__link-item">Homebrew Tap<svg width="13.5" height="13.5" aria-label="(opens in new tab)" class="iconExternalLink_RkRR"><use href="#theme-svg-external-link"></use></svg></a></li></ul></div></div><div class="footer__bottom text--center"><div class="footer__copyright">Copyright © 2026 neokapi contributors. Built with Docusaurus. · built 2026-09-22 18:22 UTC · 206f2ed</div></div></div></footer></div>
</body>
</html>