@gntik-ai/templates 0.9.0 → 0.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +47 -13
- package/dist/index.js +257 -189
- package/dist/index.js.map +1 -1
- package/package.json +8 -8
- package/src/index.ts +1 -1
- package/src/keyboard-shortcuts/Page.test.tsx +39 -1
- package/src/keyboard-shortcuts/ShortcutSheet.tsx +3 -2
- package/src/keyboard-shortcuts/data.ts +28 -14
- package/src/resource-detail/CustomTabs.tsx +41 -0
- package/src/resource-detail/Page.default.test.tsx +28 -0
- package/src/resource-detail/Page.labels.test.tsx +67 -0
- package/src/resource-detail/Page.shell-less.test.tsx +36 -0
- package/src/resource-detail/Page.tabs.test.tsx +116 -0
- package/src/resource-detail/Page.tsx +80 -34
- package/src/resource-detail/__snapshots__/Page.default.test.tsx.snap +7 -0
- package/src/resource-detail/examples/Labels.tsx +18 -0
- package/src/resource-detail/examples/Spanish.tsx +11 -0
- package/src/resource-detail/examples/embedded-custom-tabs.tsx +44 -0
- package/src/resource-detail/template.meta.ts +1 -1
- package/src/settings-profile/fixtures/editable.snap +1 -1
- package/src/shared/ConsoleShell.test.tsx +13 -0
- package/src/shared/ConsoleShell.tsx +35 -30
- package/src/workflow-builder/Page.test.tsx +103 -2
- package/src/workflow-builder/Page.tsx +34 -8
- package/src/workflow-builder/examples/SaveGraph.tsx +17 -0
- package/src/workflow-builder/template.meta.ts +1 -1
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
|
+
|
|
3
|
+
exports[`preserves the original default shell markup 1`] =
|
|
4
|
+
`"<div class="relative flex w-full min-w-0 overflow-hidden bg-background font-sans text-foreground h-dvh" data-sidebar-state="expanded"><a href="#main" class="sr-only focus:not-sr-only focus:top-3 focus:start-3 focus:z-50 focus:inline-flex focus:items-center focus:rounded-md focus:border focus:border-border focus:bg-card focus:px-3 focus:py-2 focus:text-[13px] focus:font-medium focus:text-foreground focus:shadow-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring focus:absolute">Skip to main content</a><aside id="_stable_0_" aria-label="Sidebar" data-state="expanded" class="hidden shrink-0 flex-col overflow-hidden border-e border-border/60 bg-chrome lg:flex transition-[width] duration-200 motion-reduce:transition-none w-[248px]"><div class="flex shrink-0 items-center px-3 pt-4 pb-3"><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_stable_1_" aria-label="Acme Industries, Switch workspace" class="group flex h-11 max-w-full cursor-pointer items-center gap-2.5 rounded-[10px] border border-border bg-card pe-2.5 ps-1.5 text-start transition-colors hover:bg-secondary/50 data-popup-open:bg-secondary/50 motion-reduce:transition-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full"><span aria-hidden="true" class="relative inline-flex shrink-0 align-middle size-[30px]"><span class="relative inline-flex size-full items-center justify-center overflow-hidden font-bold tracking-tight select-none text-[11px] bg-primary text-primary-foreground rounded-lg"><span class="absolute inset-0 grid place-items-center leading-none">AI</span></span></span><span class="flex min-w-0 flex-col leading-tight"><span class="truncate text-[13px] font-semibold text-foreground">Acme Industries</span><span class="mt-px truncate font-mono text-[10px] text-muted-foreground">Enterprise · Owner</span></span><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevrons-up-down ms-1 shrink-0 text-muted-foreground" aria-hidden="true"><path d="m7 15 5 5 5-5"></path><path d="m7 9 5-5 5 5"></path></svg></button></div><div class="min-h-0 flex-1 overflow-x-hidden overflow-y-auto px-3 pt-1 pb-3"><nav aria-label="Main" class="flex flex-col gap-4"><div class="flex flex-col gap-0.5"><div id="_stable_2_" class="px-2.5 pt-1 pb-1 font-mono text-[9.5px] tracking-[0.14em] text-muted-foreground uppercase select-none">Workspace</div><ul class="m-0 flex list-none flex-col gap-0.5 p-0" aria-labelledby="_stable_2_"><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/overview"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-house lucide-home shrink-0" aria-hidden="true"><path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8"></path><path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path></svg><span class="min-w-0 flex-1 truncate text-start">Overview</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/projects"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-folder-kanban shrink-0" aria-hidden="true"><path d="M4 20h16a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.93a2 2 0 0 1-1.66-.9l-.82-1.2A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13c0 1.1.9 2 2 2Z"></path><path d="M8 10v4"></path><path d="M12 10v2"></path><path d="M16 10v6"></path></svg><span class="min-w-0 flex-1 truncate text-start">Projects</span> <span class="inline-flex h-[18px] shrink-0 items-center rounded-full bg-secondary px-1.5 font-mono text-[10.5px] text-muted-foreground">12</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" aria-current="page" href="/deployments"><span aria-hidden="true" class="absolute top-1.5 bottom-1.5 start-0 w-[3px] rounded-e bg-primary"></span><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rocket shrink-0" aria-hidden="true"><path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5"></path><path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09"></path><path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z"></path><path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05"></path></svg><span class="min-w-0 flex-1 truncate text-start">Deployments</span> <span class="inline-flex h-[18px] shrink-0 items-center rounded-full px-1.5 font-mono text-[10.5px] bg-accent-foreground/12 text-accent-foreground">3</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/analytics"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chart-column lucide-bar-chart-3 shrink-0" aria-hidden="true"><path d="M3 3v16a2 2 0 0 0 2 2h16"></path><path d="M18 17V9"></path><path d="M13 17V5"></path><path d="M8 17v-3"></path></svg><span class="min-w-0 flex-1 truncate text-start">Analytics</span></a></li></ul></div><div data-open="" class="flex flex-col gap-0.5"><button type="button" data-panel-open="" tabindex="0" aria-disabled="false" aria-controls="base-ui-_stable_3_" aria-expanded="true" class="group mb-0.5 flex w-full cursor-pointer items-center justify-between rounded-md px-2.5 py-1 transition-colors select-none hover:bg-accent/40 motion-reduce:transition-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring"><span id="_stable_4_" class="font-mono text-[9.5px] tracking-[0.14em] text-muted-foreground uppercase group-hover:text-foreground">Admin</span><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down shrink-0 text-muted-foreground transition-transform duration-200 group-data-panel-closed:-rotate-90 motion-reduce:transition-none" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><div data-open="" id="base-ui-_stable_3_" style="--collapsible-panel-height: auto; --collapsible-panel-width: auto; animation-name: none;" class="h-(--collapsible-panel-height) overflow-hidden transition-[height] duration-200 ease-out motion-reduce:transition-none data-starting-style:h-0 data-ending-style:h-0"><ul class="m-0 flex list-none flex-col gap-0.5 p-0" aria-labelledby="_stable_4_"><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/activity"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-activity shrink-0" aria-hidden="true"><path d="M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2"></path></svg><span class="min-w-0 flex-1 truncate text-start">Activity</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/members"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-users shrink-0" aria-hidden="true"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"></path><path d="M16 3.128a4 4 0 0 1 0 7.744"></path><path d="M22 21v-2a4 4 0 0 0-3-3.87"></path><circle cx="9" cy="7" r="4"></circle></svg><span class="min-w-0 flex-1 truncate text-start">Members</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/billing"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-credit-card shrink-0" aria-hidden="true"><rect width="20" height="14" x="2" y="5" rx="2"></rect><line x1="2" x2="22" y1="10" y2="10"></line><path d="M6 14h2"></path></svg><span class="min-w-0 flex-1 truncate text-start">Billing</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/api-keys"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-key-round shrink-0" aria-hidden="true"><path d="M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z"></path><circle cx="16.5" cy="7.5" r=".5" fill="currentColor"></circle></svg><span class="min-w-0 flex-1 truncate text-start">API keys</span></a></li><li class="relative"><a class="relative flex h-control cursor-pointer items-center rounded-lg text-[13px] no-underline transition-colors motion-reduce:transition-none font-medium text-muted-foreground hover:bg-accent/45 hover:text-foreground aria-[current=page]:bg-accent aria-[current=page]:font-semibold aria-[current=page]:text-accent-foreground aria-disabled:pointer-events-none aria-disabled:opacity-50 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring w-full gap-2.5 px-2.5" href="/settings"><svg xmlns="http://www.w3.org/2000/svg" width="17" height="17" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-settings shrink-0" aria-hidden="true"><path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915"></path><circle cx="12" cy="12" r="3"></circle></svg><span class="min-w-0 flex-1 truncate text-start">Settings</span></a></li></ul></div></div></nav></div><div class="shrink-0 p-2.5"><div class="flex flex-col gap-1.5"><div class="rounded-[10px] border border-border bg-card p-2.5"><div aria-valuemax="10000" aria-valuemin="0" aria-valuenow="8200" aria-valuetext="8.2k / 10k" role="meter" data-level="warning" class="grid w-full gap-1.5" aria-labelledby="base-ui-_stable_5_"><div class="flex items-baseline justify-between gap-3"><span id="base-ui-_stable_5_" role="presentation" class="text-[13px] font-medium text-foreground">Monthly requests</span><span class="font-mono text-[11.5px] font-semibold tabular-nums text-warning-text">8.2k / 10k</span></div><div class="relative w-full overflow-hidden rounded-full bg-secondary h-1.5"><div style="inset-inline-start: 0px; height: inherit; width: 82%;" class="block h-full rounded-full transition-[width] duration-400 ease-out motion-reduce:transition-none bg-warning"></div></div><span role="presentation" style="clip-path: inset(50%); overflow: hidden; white-space: nowrap; border: 0px; padding: 0px; width: 1px; height: 1px; margin: -1px; position: fixed; top: 0px; left: 0px;">x</span></div></div><a href="#help" class="cursor-pointer underline-offset-4 transition-colors focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring aria-disabled:pointer-events-none aria-disabled:opacity-50 text-muted-foreground no-underline flex h-[34px] items-center gap-2.5 rounded-lg px-2.5 text-[13px] font-medium hover:bg-accent/55 hover:text-foreground"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-circle-question-mark lucide-help-circle lucide-circle-help" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"></path><path d="M12 17h.01"></path></svg>Help & docs</a><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_stable_6_" aria-label="Account menu for Dana Whitfield" class="inline-flex shrink-0 cursor-pointer items-center gap-2 rounded-lg transition-colors outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-popup-open:ring-2 data-popup-open:ring-ring/40 h-9 pe-2 ps-0.5 hover:bg-secondary/60 w-full justify-start"><span aria-hidden="true" class="relative inline-flex shrink-0 align-middle size-8"><span class="relative inline-flex size-full items-center justify-center overflow-hidden font-bold tracking-tight select-none text-[11px] bg-primary text-primary-foreground rounded-lg"><span class="absolute inset-0 grid place-items-center leading-none">DW</span></span></span><span class="pe-1 text-[13px] font-semibold text-foreground">Dana Whitfield</span></button></div></div></aside><div class="flex min-h-0 min-w-0 flex-1 flex-col"><header class="flex h-14 shrink-0 items-center gap-2 border-b border-border/60 bg-chrome px-3 lg:gap-3 lg:px-5"><button type="button" tabindex="0" aria-label="Open navigation" data-base-ui-click-trigger="" id="base-ui-_stable_7_" aria-haspopup="dialog" aria-expanded="false" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[13px] rounded-lg px-0 size-control lg:hidden"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button><button type="button" tabindex="0" aria-label="Collapse sidebar" aria-expanded="true" aria-controls="_stable_0_" class="shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[13px] rounded-lg px-0 size-control hidden lg:inline-flex"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close lucide-sidebar-close rtl:-scale-x-100" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><div class="flex min-w-0 flex-1 items-center gap-2 lg:gap-3"><div class="flex min-w-0 flex-1 items-center gap-2 lg:gap-3"><div class="flex min-w-0 flex-1 items-center gap-2.5"><nav aria-label="Breadcrumb" class="min-w-0"><ol class="flex flex-wrap items-center gap-2.5 text-[13px]"><li class="inline-flex min-w-0 items-center gap-2.5"><a href="/deployments" class="cursor-pointer underline-offset-4 aria-disabled:pointer-events-none aria-disabled:opacity-50 truncate rounded-sm text-muted-foreground no-underline transition-colors hover:text-foreground hover:no-underline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring font-normal">Deployments</a><span class="inline-flex shrink-0 select-none text-muted-foreground/40" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-right rtl:-scale-x-100" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg></span></li><li class="inline-flex min-w-0 items-center gap-2.5"><span class="truncate font-semibold text-foreground" aria-current="page"><span class="font-mono">orders-api</span></span></li></ol></nav><span class="max-w-full shrink-0 items-center gap-1.5 font-semibold select-none h-chip px-2.5 rounded-md bg-primary/14 text-primary-chip-text font-mono text-[10.5px] whitespace-nowrap hidden sm:inline-flex" data-environment="production"><span aria-hidden="true" class="size-1.5 shrink-0 rounded-full bg-primary"></span><span class="sr-only">Environment: </span>production<span aria-hidden="true" class="opacity-60">·</span><span class="sr-only">, region</span> eu-west</span></div><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_stable_8_" aria-haspopup="dialog" aria-expanded="false" class="h-10 cursor-pointer items-center gap-2.5 rounded-lg border border-border bg-card pe-2.5 ps-3.5 text-muted-foreground transition-colors hover:border-ring/50 hover:text-foreground motion-reduce:transition-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring hidden md:inline-flex"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-search" aria-hidden="true"><path d="m21 21-4.34-4.34"></path><circle cx="11" cy="11" r="8"></circle></svg><span class="text-[13px]">Search</span><kbd class="inline-flex items-center gap-1 font-mono"><kbd class="inline-flex items-center justify-center rounded border border-border bg-card font-mono font-semibold text-muted-foreground h-4 min-w-4 px-1 text-[10px]"><span aria-hidden="true">Ctrl</span><span class="sr-only">Control</span></kbd><kbd class="inline-flex items-center justify-center rounded border border-border bg-card font-mono font-semibold text-muted-foreground h-4 min-w-4 px-1 text-[10px]">K</kbd></kbd></button><button type="button" tabindex="0" data-base-ui-click-trigger="" id="base-ui-_stable_9_" aria-haspopup="dialog" aria-expanded="false" aria-label="Notifications, 2 unread" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70 gap-1.5 text-[13px] rounded-lg px-0 size-control relative"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bell" aria-hidden="true"><path d="M10.268 21a2 2 0 0 0 3.464 0"></path><path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326"></path></svg><span aria-hidden="true" class="pointer-events-none absolute -top-1.5 -end-1.5 inline-flex h-[18px] min-w-[18px] items-center justify-center rounded-full px-1 bg-destructive font-mono text-[10px] font-bold leading-none text-destructive-foreground ring-2 ring-chrome">2</span></button><button type="button" tabindex="0" aria-label="Theme: Dark. Switch to High contrast" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70 gap-1.5 text-[13px] rounded-lg px-0 size-control"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-moon" aria-hidden="true"><path d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"></path></svg></button><button type="button" tabindex="0" aria-haspopup="menu" aria-expanded="false" id="base-ui-_stable_10_" aria-label="Account menu for Dana Whitfield" class="inline-flex shrink-0 cursor-pointer items-center gap-2 rounded-lg transition-colors outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-popup-open:ring-2 data-popup-open:ring-ring/40"><span aria-hidden="true" class="relative inline-flex shrink-0 align-middle size-8"><span class="relative inline-flex size-full items-center justify-center overflow-hidden font-bold tracking-tight select-none text-[11px] bg-primary text-primary-foreground rounded-lg"><span class="absolute inset-0 grid place-items-center leading-none">DW</span></span></span></button></div></div></header><main id="main" tabindex="-1" class="min-h-0 flex-1 overflow-y-auto focus:outline-none"><div data-width="wide" class="flex min-h-full w-full min-w-0 flex-col"><div class="mx-auto flex w-full flex-1 flex-col gap-6 px-4 py-6 sm:px-6 lg:px-[26px] max-w-[1440px]"><header class="min-w-0"><div class="flex flex-wrap items-end justify-between gap-4"><div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-x-3 gap-y-1.5"><h1 class="min-w-0 truncate text-2xl font-bold tracking-tight text-foreground">orders-api</h1><span class="inline-flex max-w-full shrink-0 items-center gap-1.5 font-semibold whitespace-nowrap select-none h-chip px-2.5 font-mono text-[10.5px] rounded-md bg-success/15 text-success-chip-text tracking-wide" data-status="running"><span aria-hidden="true" class="size-1.5 shrink-0 rounded-full bg-success"></span>Running</span></div><p class="mt-1.5 max-w-2xl text-[13px] leading-6 text-muted-foreground">Public REST API for orders, carts and checkout.</p><dl class="mt-2.5 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[12.5px] text-muted-foreground"><div class="inline-flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><dt class="sr-only">Region</dt><dd class="text-foreground font-mono text-[12px]">eu-west-1</dd></div><div class="inline-flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch" aria-hidden="true"><path d="M15 6a9 9 0 0 0-9 9V3"></path><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle></svg><dt class="sr-only">Branch</dt><dd class="text-foreground font-mono text-[12px]">main</dd></div><div class="inline-flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg><dt class="sr-only">Last deploy</dt><dd class="text-foreground">12 min ago</dd></div></dl></div><div class="hidden shrink-0 items-center gap-2.5 sm:flex"><button type="button" tabindex="0" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70 h-control gap-1.5 px-control text-[13px] rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg>View logs</button><button type="button" tabindex="0" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 h-control gap-1.5 px-control text-[13px] rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw" aria-hidden="true"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg>Redeploy</button></div><div class="flex shrink-0 items-center gap-2 sm:hidden"><button type="button" tabindex="0" aria-label="More actions" aria-haspopup="menu" aria-expanded="false" id="base-ui-_stable_11_" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70 gap-1.5 text-[13px] rounded-lg px-0 size-9"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis lucide-more-horizontal" aria-hidden="true"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button><button type="button" tabindex="0" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 h-control gap-1.5 px-control text-[13px] rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw" aria-hidden="true"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg>Redeploy</button></div></div></header><div class="flex min-w-0 flex-1 flex-col gap-6"><div data-orientation="horizontal" data-activation-direction="none" class="flex flex-col gap-4"><div data-orientation="horizontal" data-activation-direction="none" role="tablist" aria-label="Resource sections" class="relative flex items-center gap-6 border-b border-border"><button type="button" data-active="" data-orientation="horizontal" data-activation-direction="none" aria-disabled="false" tabindex="0" role="tab" aria-selected="true" id="base-ui-_stable_12_" data-composite-item-active="" class="group relative z-[1] inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-medium whitespace-nowrap select-none text-muted-foreground transition-colors hover:text-foreground data-active:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-disabled:pointer-events-none data-disabled:opacity-50 h-tab -mb-px border-b-2 border-transparent text-[13px] rounded-t-sm" aria-controls="base-ui-_stable_13_">Overview</button><button type="button" data-orientation="horizontal" data-activation-direction="none" aria-disabled="false" tabindex="-1" role="tab" aria-selected="false" id="base-ui-_stable_14_" class="group relative z-[1] inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-medium whitespace-nowrap select-none text-muted-foreground transition-colors hover:text-foreground data-active:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-disabled:pointer-events-none data-disabled:opacity-50 h-tab -mb-px border-b-2 border-transparent text-[13px] rounded-t-sm">Activity</button><button type="button" data-orientation="horizontal" data-activation-direction="none" aria-disabled="false" tabindex="-1" role="tab" aria-selected="false" id="base-ui-_stable_15_" class="group relative z-[1] inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-medium whitespace-nowrap select-none text-muted-foreground transition-colors hover:text-foreground data-active:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-disabled:pointer-events-none data-disabled:opacity-50 h-tab -mb-px border-b-2 border-transparent text-[13px] rounded-t-sm">Settings</button><span data-orientation="horizontal" data-activation-direction="none" role="presentation" hidden="" class="absolute start-0 transition-[translate,width,height] duration-200 ease-out motion-reduce:transition-none top-auto -bottom-px h-0.5 w-(--active-tab-width) translate-x-(--active-tab-left) bg-primary" style="--active-tab-left: 0px; --active-tab-right: 0px; --active-tab-top: 0px; --active-tab-bottom: 0px; --active-tab-width: 0px; --active-tab-height: 0px;"></span></div><div data-orientation="horizontal" data-activation-direction="none" id="base-ui-_stable_13_" role="tabpanel" tabindex="0" data-index="0" class="text-[13px] text-foreground outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring rounded-sm" aria-labelledby="base-ui-_stable_12_"><div class="grid min-w-0 items-start grid-cols-1 lg:grid-cols-5 gap-6"><div class="overflow-hidden rounded-xl border border-border text-card-foreground bg-card shadow-sm lg:col-span-3"><div class="grid grid-cols-[1fr_auto] items-start gap-x-4 px-5 py-4 border-b border-border"><h2 class="col-start-1 text-[15px] font-semibold tracking-tight text-foreground">Configuration</h2><p class="col-start-1 mt-0.5 text-[13px] text-muted-foreground">Settings of this resource.</p></div><dl class="divide-y divide-border px-5"><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Status</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="inline-flex max-w-full shrink-0 items-center gap-1.5 font-semibold whitespace-nowrap select-none h-chip px-2.5 font-mono text-[10.5px] rounded-md bg-success/15 text-success-chip-text tracking-wide" data-status="running"><span aria-hidden="true" class="size-1.5 shrink-0 rounded-full bg-success"></span>Running</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Deployment ID</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">dep_7f3c9a21</span><button type="button" tabindex="0" aria-label="Copy Deployment ID" class="inline-flex items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[12.5px] rounded-md px-0 size-7 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><span class="sr-only" aria-live="polite"></span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Runtime</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">node-24</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Region</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">eu-west-1</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Endpoint</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">https://api.example.com/v1/orders</span><button type="button" tabindex="0" aria-label="Copy Endpoint" class="inline-flex items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[12.5px] rounded-md px-0 size-7 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><span class="sr-only" aria-live="polite"></span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Owner</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate">Platform team</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Created</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate">Mar 12, 2026, 09:41</span></dd></div></dl></div><section aria-labelledby="_stable_16_-title" class="min-w-0 rounded-xl border border-border bg-card text-card-foreground shadow-sm p-5 lg:col-span-2"><div class="grid grid-cols-[1fr_auto] items-start gap-x-4 mb-4"><h2 id="_stable_16_-title" class="col-start-1 text-[15px] font-semibold tracking-tight text-foreground">Status history</h2></div><div class="flex min-w-0 flex-col gap-4"><div><ol aria-label="Status history" class="flex flex-col"><li class="relative flex gap-3 pb-6 last:pb-0"><span aria-hidden="true" class="absolute top-5 bottom-0 start-[9px] w-px bg-border"></span><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="success" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-success size-2.5"><span data-pulse="true" class="absolute inset-0 animate-ping rounded-full opacity-60 motion-reduce:hidden motion-reduce:animate-none bg-success"></span></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Running</span><span class="text-muted-foreground"> · </span>Deployment healthy</p><time datetime="2026-10-23T11:48:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_17_" data-base-ui-tooltip-trigger="">12 minutes ago<span class="sr-only"> (Friday, October 23, 2026 at 11:48:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground">All 3 replicas passed health checks. <span>by System</span></p></div></li><li class="relative flex gap-3 pb-6 last:pb-0"><span aria-hidden="true" class="absolute top-5 bottom-0 start-[9px] w-px bg-border"></span><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="info" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-info size-2.5"></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Deploying</span><span class="text-muted-foreground"> · </span>Rolling out v2.14.0</p><time datetime="2026-10-23T11:24:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_18_" data-base-ui-tooltip-trigger="">36 minutes ago<span class="sr-only"> (Friday, October 23, 2026 at 11:24:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground">Canary at 10%, then 50%, then 100%. <span>by Ana Lopez</span></p></div></li><li class="relative flex gap-3 pb-6 last:pb-0"><span aria-hidden="true" class="absolute top-5 bottom-0 start-[9px] w-px bg-border"></span><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="primary" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-primary size-2.5"></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Approved</span><span class="text-muted-foreground"> · </span>Release approved</p><time datetime="2026-10-23T10:30:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_19_" data-base-ui-tooltip-trigger="">1 hour ago<span class="sr-only"> (Friday, October 23, 2026 at 10:30:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground"><span>by Sam Carter</span></p></div></li><li class="relative flex gap-3 pb-6 last:pb-0"><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="warning" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-warning size-2.5"></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Degraded</span><span class="text-muted-foreground"> · </span>Error rate above 2%</p><time datetime="2026-10-23T07:00:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_20_" data-base-ui-tooltip-trigger="">5 hours ago<span class="sr-only"> (Friday, October 23, 2026 at 7:00:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground">Alert fired on orders-api. <span>by Monitoring</span></p></div></li></ol><button type="button" tabindex="0" aria-expanded="false" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground h-8 gap-1.5 px-3 text-[12.5px] rounded-md mt-3 ms-6">Show 2 earlier events</button></div></div></section></div></div></div></div></div></div></main></div></div>"`;
|
|
5
|
+
|
|
6
|
+
exports[`preserves the original explicit shell markup 1`] =
|
|
7
|
+
`"<div class="relative flex w-full min-w-0 overflow-hidden bg-background font-sans text-foreground h-dvh" data-sidebar-state="expanded"><a href="#main" class="sr-only focus:not-sr-only focus:top-3 focus:start-3 focus:z-50 focus:inline-flex focus:items-center focus:rounded-md focus:border focus:border-border focus:bg-card focus:px-3 focus:py-2 focus:text-[13px] focus:font-medium focus:text-foreground focus:shadow-md focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring focus:absolute">Skip to main content</a><aside id="_stable_0_" aria-label="Sidebar" data-state="expanded" class="hidden shrink-0 flex-col overflow-hidden border-e border-border/60 bg-chrome lg:flex transition-[width] duration-200 motion-reduce:transition-none w-[248px]"><div class="flex shrink-0 items-center px-3 pt-4 pb-3"><span role="img" aria-label="gntik" class="inline-flex items-center gap-[7px] px-1"><svg width="24" height="24" viewBox="0 0 64 64" aria-hidden="true" class="block shrink-0"><rect width="64" height="64" rx="14" class="fill-chrome"></rect><path d="M41 24.5A11 11 0 1 0 43 32h-11" fill="none" stroke-width="6" stroke-linecap="round" class="stroke-primary"></path></svg><span aria-hidden="true" class="font-sans font-bold tracking-[-0.02em] text-foreground" style="font-size: 15px;">gntik<span class="text-primary">.</span></span></span></div><div class="min-h-0 flex-1 overflow-x-hidden overflow-y-auto px-3 pt-1 pb-3"><nav aria-label="Main" class="flex flex-col gap-4"></nav></div><div class="shrink-0 p-2.5"><div class="flex flex-col gap-1.5"></div></div></aside><div class="flex min-h-0 min-w-0 flex-1 flex-col"><header class="flex h-14 shrink-0 items-center gap-2 border-b border-border/60 bg-chrome px-3 lg:gap-3 lg:px-5"><button type="button" tabindex="0" aria-label="Open navigation" data-base-ui-click-trigger="" id="base-ui-_stable_1_" aria-haspopup="dialog" aria-expanded="false" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[13px] rounded-lg px-0 size-control lg:hidden"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button><button type="button" tabindex="0" aria-label="Collapse sidebar" aria-expanded="true" aria-controls="_stable_0_" class="shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[13px] rounded-lg px-0 size-control hidden lg:inline-flex"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-panel-left-close lucide-sidebar-close rtl:-scale-x-100" aria-hidden="true"><rect width="18" height="18" x="3" y="3" rx="2"></rect><path d="M9 3v18"></path><path d="m16 15-3-3 3-3"></path></svg></button><div class="flex min-w-0 flex-1 items-center gap-2 lg:gap-3"><div class="flex min-w-0 flex-1 items-center gap-2 lg:gap-3"><div class="flex min-w-0 flex-1 items-center gap-2.5"><nav aria-label="Breadcrumb" class="min-w-0"><ol class="flex flex-wrap items-center gap-2.5 text-[13px]"></ol></nav></div></div></div></header><main id="main" tabindex="-1" class="min-h-0 flex-1 overflow-y-auto focus:outline-none"><div data-width="wide" class="flex min-h-full w-full min-w-0 flex-col"><div class="mx-auto flex w-full flex-1 flex-col gap-6 px-4 py-6 sm:px-6 lg:px-[26px] max-w-[1440px]"><header class="min-w-0"><div class="flex flex-wrap items-end justify-between gap-4"><div class="min-w-0 flex-1"><div class="flex flex-wrap items-center gap-x-3 gap-y-1.5"><h1 class="min-w-0 truncate text-2xl font-bold tracking-tight text-foreground">orders-api</h1><span class="inline-flex max-w-full shrink-0 items-center gap-1.5 font-semibold whitespace-nowrap select-none h-chip px-2.5 font-mono text-[10.5px] rounded-md bg-success/15 text-success-chip-text tracking-wide" data-status="running"><span aria-hidden="true" class="size-1.5 shrink-0 rounded-full bg-success"></span>Running</span></div><p class="mt-1.5 max-w-2xl text-[13px] leading-6 text-muted-foreground">Public REST API for orders, carts and checkout.</p><dl class="mt-2.5 flex flex-wrap items-center gap-x-4 gap-y-1.5 text-[12.5px] text-muted-foreground"><div class="inline-flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"></path><path d="M2 12h20"></path></svg><dt class="sr-only">Region</dt><dd class="text-foreground font-mono text-[12px]">eu-west-1</dd></div><div class="inline-flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-git-branch" aria-hidden="true"><path d="M15 6a9 9 0 0 0-9 9V3"></path><circle cx="18" cy="6" r="3"></circle><circle cx="6" cy="18" r="3"></circle></svg><dt class="sr-only">Branch</dt><dd class="text-foreground font-mono text-[12px]">main</dd></div><div class="inline-flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg><dt class="sr-only">Last deploy</dt><dd class="text-foreground">12 min ago</dd></div></dl></div><div class="hidden shrink-0 items-center gap-2.5 sm:flex"><button type="button" tabindex="0" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70 h-control gap-1.5 px-control text-[13px] rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-file-text" aria-hidden="true"><path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z"></path><path d="M14 2v5a1 1 0 0 0 1 1h5"></path><path d="M10 9H8"></path><path d="M16 13H8"></path><path d="M16 17H8"></path></svg>View logs</button><button type="button" tabindex="0" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 h-control gap-1.5 px-control text-[13px] rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw" aria-hidden="true"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg>Redeploy</button></div><div class="flex shrink-0 items-center gap-2 sm:hidden"><button type="button" tabindex="0" aria-label="More actions" aria-haspopup="menu" aria-expanded="false" id="base-ui-_stable_2_" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 border border-border bg-card text-foreground shadow-sm hover:bg-secondary/70 gap-1.5 text-[13px] rounded-lg px-0 size-9"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-ellipsis lucide-more-horizontal" aria-hidden="true"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg></button><button type="button" tabindex="0" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 bg-primary text-primary-foreground shadow-sm hover:bg-primary/90 h-control gap-1.5 px-control text-[13px] rounded-lg"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw" aria-hidden="true"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg>Redeploy</button></div></div></header><div class="flex min-w-0 flex-1 flex-col gap-6"><div data-orientation="horizontal" data-activation-direction="none" class="flex flex-col gap-4"><div data-orientation="horizontal" data-activation-direction="none" role="tablist" aria-label="Resource sections" class="relative flex items-center gap-6 border-b border-border"><button type="button" data-active="" data-orientation="horizontal" data-activation-direction="none" aria-disabled="false" tabindex="0" role="tab" aria-selected="true" id="base-ui-_stable_3_" data-composite-item-active="" class="group relative z-[1] inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-medium whitespace-nowrap select-none text-muted-foreground transition-colors hover:text-foreground data-active:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-disabled:pointer-events-none data-disabled:opacity-50 h-tab -mb-px border-b-2 border-transparent text-[13px] rounded-t-sm" aria-controls="base-ui-_stable_4_">Overview</button><button type="button" data-orientation="horizontal" data-activation-direction="none" aria-disabled="false" tabindex="-1" role="tab" aria-selected="false" id="base-ui-_stable_5_" class="group relative z-[1] inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-medium whitespace-nowrap select-none text-muted-foreground transition-colors hover:text-foreground data-active:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-disabled:pointer-events-none data-disabled:opacity-50 h-tab -mb-px border-b-2 border-transparent text-[13px] rounded-t-sm">Activity</button><button type="button" data-orientation="horizontal" data-activation-direction="none" aria-disabled="false" tabindex="-1" role="tab" aria-selected="false" id="base-ui-_stable_6_" class="group relative z-[1] inline-flex shrink-0 cursor-pointer items-center justify-center gap-2 font-medium whitespace-nowrap select-none text-muted-foreground transition-colors hover:text-foreground data-active:text-foreground focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-disabled:pointer-events-none data-disabled:opacity-50 h-tab -mb-px border-b-2 border-transparent text-[13px] rounded-t-sm">Settings</button><span data-orientation="horizontal" data-activation-direction="none" role="presentation" hidden="" class="absolute start-0 transition-[translate,width,height] duration-200 ease-out motion-reduce:transition-none top-auto -bottom-px h-0.5 w-(--active-tab-width) translate-x-(--active-tab-left) bg-primary" style="--active-tab-left: 0px; --active-tab-right: 0px; --active-tab-top: 0px; --active-tab-bottom: 0px; --active-tab-width: 0px; --active-tab-height: 0px;"></span></div><div data-orientation="horizontal" data-activation-direction="none" id="base-ui-_stable_4_" role="tabpanel" tabindex="0" data-index="0" class="text-[13px] text-foreground outline-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring rounded-sm" aria-labelledby="base-ui-_stable_3_"><div class="grid min-w-0 items-start grid-cols-1 lg:grid-cols-5 gap-6"><div class="overflow-hidden rounded-xl border border-border text-card-foreground bg-card shadow-sm lg:col-span-3"><div class="grid grid-cols-[1fr_auto] items-start gap-x-4 px-5 py-4 border-b border-border"><h2 class="col-start-1 text-[15px] font-semibold tracking-tight text-foreground">Configuration</h2><p class="col-start-1 mt-0.5 text-[13px] text-muted-foreground">Settings of this resource.</p></div><dl class="divide-y divide-border px-5"><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Status</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="inline-flex max-w-full shrink-0 items-center gap-1.5 font-semibold whitespace-nowrap select-none h-chip px-2.5 font-mono text-[10.5px] rounded-md bg-success/15 text-success-chip-text tracking-wide" data-status="running"><span aria-hidden="true" class="size-1.5 shrink-0 rounded-full bg-success"></span>Running</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Deployment ID</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">dep_7f3c9a21</span><button type="button" tabindex="0" aria-label="Copy Deployment ID" class="inline-flex items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[12.5px] rounded-md px-0 size-7 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><span class="sr-only" aria-live="polite"></span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Runtime</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">node-24</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Region</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">eu-west-1</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Endpoint</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate font-mono text-[12.5px]">https://api.example.com/v1/orders</span><button type="button" tabindex="0" aria-label="Copy Endpoint" class="inline-flex items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground gap-1.5 text-[12.5px] rounded-md px-0 size-7 shrink-0"><svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-copy" aria-hidden="true"><rect width="14" height="14" x="8" y="8" rx="2" ry="2"></rect><path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2"></path></svg></button><span class="sr-only" aria-live="polite"></span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Owner</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate">Platform team</span></dd></div><div class="grid grid-cols-1 gap-1 py-3.5 sm:grid-cols-[160px_minmax(0,1fr)] sm:gap-4"><dt class="text-[13px] text-muted-foreground">Created</dt><dd class="flex min-w-0 items-center gap-2 text-[13px] text-foreground"><span class="min-w-0 truncate">Mar 12, 2026, 09:41</span></dd></div></dl></div><section aria-labelledby="_stable_7_-title" class="min-w-0 rounded-xl border border-border bg-card text-card-foreground shadow-sm p-5 lg:col-span-2"><div class="grid grid-cols-[1fr_auto] items-start gap-x-4 mb-4"><h2 id="_stable_7_-title" class="col-start-1 text-[15px] font-semibold tracking-tight text-foreground">Status history</h2></div><div class="flex min-w-0 flex-col gap-4"><div><ol aria-label="Status history" class="flex flex-col"><li class="relative flex gap-3 pb-6 last:pb-0"><span aria-hidden="true" class="absolute top-5 bottom-0 start-[9px] w-px bg-border"></span><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="success" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-success size-2.5"><span data-pulse="true" class="absolute inset-0 animate-ping rounded-full opacity-60 motion-reduce:hidden motion-reduce:animate-none bg-success"></span></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Running</span><span class="text-muted-foreground"> · </span>Deployment healthy</p><time datetime="2026-10-23T11:48:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_8_" data-base-ui-tooltip-trigger="">12 minutes ago<span class="sr-only"> (Friday, October 23, 2026 at 11:48:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground">All 3 replicas passed health checks. <span>by System</span></p></div></li><li class="relative flex gap-3 pb-6 last:pb-0"><span aria-hidden="true" class="absolute top-5 bottom-0 start-[9px] w-px bg-border"></span><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="info" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-info size-2.5"></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Deploying</span><span class="text-muted-foreground"> · </span>Rolling out v2.14.0</p><time datetime="2026-10-23T11:24:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_9_" data-base-ui-tooltip-trigger="">36 minutes ago<span class="sr-only"> (Friday, October 23, 2026 at 11:24:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground">Canary at 10%, then 50%, then 100%. <span>by Ana Lopez</span></p></div></li><li class="relative flex gap-3 pb-6 last:pb-0"><span aria-hidden="true" class="absolute top-5 bottom-0 start-[9px] w-px bg-border"></span><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="primary" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-primary size-2.5"></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Approved</span><span class="text-muted-foreground"> · </span>Release approved</p><time datetime="2026-10-23T10:30:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_10_" data-base-ui-tooltip-trigger="">1 hour ago<span class="sr-only"> (Friday, October 23, 2026 at 10:30:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground"><span>by Sam Carter</span></p></div></li><li class="relative flex gap-3 pb-6 last:pb-0"><span class="relative z-10 mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-card"><span aria-hidden="true" data-tone="warning" class="inline-flex items-center gap-2 align-middle"><span aria-hidden="true" class="relative inline-flex shrink-0 rounded-full bg-warning size-2.5"></span></span></span><div class="min-w-0 flex-1"><div class="flex flex-col gap-0.5 sm:flex-row sm:items-baseline sm:justify-between sm:gap-4"><p class="text-[13px] text-foreground"><span class="font-semibold">Degraded</span><span class="text-muted-foreground"> · </span>Error rate above 2%</p><time datetime="2026-10-23T07:00:00.000Z" tabindex="0" class="rounded-sm whitespace-nowrap tabular-nums focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring text-muted-foreground cursor-default underline decoration-border decoration-dotted underline-offset-4 shrink-0 font-mono text-[11px]" id="base-ui-_stable_11_" data-base-ui-tooltip-trigger="">5 hours ago<span class="sr-only"> (Friday, October 23, 2026 at 7:00:00 AM UTC)</span></time></div><p class="mt-0.5 text-[12.5px] text-muted-foreground">Alert fired on orders-api. <span>by Monitoring</span></p></div></li></ol><button type="button" tabindex="0" aria-expanded="false" class="inline-flex shrink-0 items-center justify-center font-semibold whitespace-nowrap transition-colors select-none focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus-ring data-[disabled]:pointer-events-none data-[disabled]:opacity-50 text-muted-foreground hover:bg-secondary/70 hover:text-foreground h-8 gap-1.5 px-3 text-[12.5px] rounded-md mt-3 ms-6">Show 2 earlier events</button></div></div></section></div></div></div></div></div></div></main></div></div>"`;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { I18nProvider } from '@gntik-ai/ui';
|
|
2
|
+
import ResourceDetailPage from '../Page';
|
|
3
|
+
|
|
4
|
+
/** Each tab label and the tablist name can be overridden independently. */
|
|
5
|
+
export default function Labels() {
|
|
6
|
+
return (
|
|
7
|
+
<I18nProvider locale="es">
|
|
8
|
+
<ResourceDetailPage
|
|
9
|
+
labels={{
|
|
10
|
+
overview: 'Resource overview',
|
|
11
|
+
activity: 'Resource activity',
|
|
12
|
+
settings: 'Resource settings',
|
|
13
|
+
sections: 'Resource navigation',
|
|
14
|
+
}}
|
|
15
|
+
/>
|
|
16
|
+
</I18nProvider>
|
|
17
|
+
);
|
|
18
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { I18nProvider } from '@gntik-ai/ui';
|
|
2
|
+
import ResourceDetailPage from '../Page';
|
|
3
|
+
|
|
4
|
+
/** Only tab chrome is translated; imported resource data and section content stay unchanged. */
|
|
5
|
+
export default function Spanish() {
|
|
6
|
+
return (
|
|
7
|
+
<I18nProvider locale="es">
|
|
8
|
+
<ResourceDetailPage />
|
|
9
|
+
</I18nProvider>
|
|
10
|
+
);
|
|
11
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { DescriptionListCard } from '@gntik-ai/blocks';
|
|
2
|
+
import { Section } from '@gntik-ai/ui';
|
|
3
|
+
import ResourceDetailPage from '../Page';
|
|
4
|
+
|
|
5
|
+
/** The host owns the main landmark and any ChartLocaleProvider needed by chart content. */
|
|
6
|
+
export default function EmbeddedCustomTabs() {
|
|
7
|
+
return (
|
|
8
|
+
<main>
|
|
9
|
+
<ResourceDetailPage
|
|
10
|
+
shell={null}
|
|
11
|
+
readOnly
|
|
12
|
+
name="Resource record"
|
|
13
|
+
description="A detail page inside an existing application shell."
|
|
14
|
+
status="active"
|
|
15
|
+
breadcrumbs={[{ label: 'Resources', href: '/resources' }, { label: 'Resource record' }]}
|
|
16
|
+
tabs={[
|
|
17
|
+
{
|
|
18
|
+
value: 'summary',
|
|
19
|
+
label: 'Summary',
|
|
20
|
+
content: (
|
|
21
|
+
<DescriptionListCard
|
|
22
|
+
titleAs="h2"
|
|
23
|
+
title="Record summary"
|
|
24
|
+
items={[
|
|
25
|
+
{ id: 'identifier', label: 'Identifier', value: 'record_42', mono: true },
|
|
26
|
+
{ id: 'owner', label: 'Owner', value: 'Platform team' },
|
|
27
|
+
]}
|
|
28
|
+
/>
|
|
29
|
+
),
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
value: 'output',
|
|
33
|
+
label: 'Output',
|
|
34
|
+
content: (
|
|
35
|
+
<Section variant="card" padding="md" title="Result">
|
|
36
|
+
<p>The resource completed successfully.</p>
|
|
37
|
+
</Section>
|
|
38
|
+
),
|
|
39
|
+
},
|
|
40
|
+
]}
|
|
41
|
+
/>
|
|
42
|
+
</main>
|
|
43
|
+
);
|
|
44
|
+
}
|
|
@@ -6,7 +6,7 @@ export const meta: TemplateMeta = {
|
|
|
6
6
|
priority: 'P1',
|
|
7
7
|
status: 'beta',
|
|
8
8
|
description:
|
|
9
|
-
'Resource detail with editable Overview, Activity and Settings tabs by default; optional readOnly (boolean, default false) uses only explicit header and detail props and one Overview tab, with optional history (readonly StatusEvent[], default undefined): omitted hides the history card, [] shows the named empty state, and events render exactly as supplied without invented actors. Read-only ignores activity, events, dangerActions, defaultTab, onSaveSettings and onDangerAction; explicit actions and onEditDetails are honored. The Resource sections tablist retains Tab, arrow, Home/End and Enter/Space keyboard navigation; history is a named group containing the Status history list or empty-state region. Uses token styling in dark (default), light and high_contrast. Examples: runtime-with-transition maps state and lastTransitionAt to one actor-free event, runtime-without-transition maps null to [], and realtime-configuration and postgres-table-detail omit history. ConsoleShell retains sample frame defaults
|
|
9
|
+
'Resource detail with editable Overview, Activity and Settings tabs by default; optional readOnly (boolean, default false) uses only explicit header and detail props and one Overview tab, with optional history (readonly StatusEvent[], default undefined): omitted hides the history card, [] shows the named empty state, and events render exactly as supplied without invented actors. Read-only ignores activity, events, dangerActions, defaultTab, onSaveSettings and onDangerAction; explicit actions and onEditDetails are honored. The Resource sections tablist retains Tab, arrow, Home/End and Enter/Space keyboard navigation; history is a named group containing the Status history list or empty-state region. Uses token styling in dark (default), light and high_contrast. Examples: runtime-with-transition maps state and lastTransitionAt to one actor-free event, runtime-without-transition maps null to [], and realtime-configuration and postgres-table-detail omit history. Optional labels?: Partial<ResourceDetailLabels> overrides overview, activity, settings and sections (all strings). Unset keys use I18nProvider (en/es); no provider keeps English. Only the tabs and tablist are localized by this template; fixtures and other section text are unchanged. readOnly keeps only the localized overview tab. See the Catalog labels live preview. ConsoleShell retains sample frame defaults when shell is omitted or an object. shell={null} renders only Page and PageHeader, with breadcrumbs in the header; pass breadcrumbs or [] to avoid the editable sample trail. The host owns main and provides ChartLocaleProvider for custom chart locales. Optional tabs?: { value: string; label: string; content: ReactNode }[] replaces the built-in tabs in caller order, even with readOnly; [] hides the tab set. With custom tabs, defaultTab and onTabChange use string values; an omitted or unknown defaultTab selects the first tab. Without tabs they retain ResourceDetailTab values. Custom tabs use the same Base UI keyboard navigation and panel mounting. See the embedded-custom-tabs live preview for shell-less composition inside a host main.',
|
|
10
10
|
layout: 'SidebarLayout + Page',
|
|
11
11
|
blocks: [
|
|
12
12
|
'app-sidebar',
|