mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 01:45:10 +03:00
## Problem on monitoring agent pages the prompt lives in a "prompt" tab next to agent ones, while each agent tab ended with "paste the prompt" users have to work out that the prompt is sitting in that previous tab ## Solution this pr is a proposal to set agent setup as a two stepper `1` for the prompt panel `2` holds the agent tabs: - extracts prompt into a first step - moves agent tabs within their own step - polishes agent docs to match recent ui updates - sets `prompt` as an anchor link within agent tabs | state | preview | | -------|------| | before | <img width="823" height="452" alt="image" src="https://github.com/user-attachments/assets/a6a01832-ea73-48c1-b31d-25a0ef970e4e" /> | | after | <img width="823" height="716" alt="image" src="https://github.com/user-attachments/assets/f5014ad0-1555-4578-b4b1-5bf2733b4d37" /> | <!-- ## Preview links If relevant, include links to changed pages for easy review access. Copy the preview base URL from the Vercel bot comment on this PR. Use the following table as an example template. | Site | Live | Preview | Search for | | -------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------- | | WWW | [/blog/your-post](https://supabase.com/blog/your-post) | [/blog/your-post](https://zone-www-dot-com-git-branch-name-supabase.vercel.app/blog/your-post) | unique phrase from the change | | Docs | [/docs/guides/your-page](https://supabase.com/docs/guides/your-page) | [/docs/guides/your-page](https://docs-git-branch-name-supabase.vercel.app/docs/guides/your-page) | unique phrase from the change | | Studio | [/dashboard](https://supabase.com/dashboard) | [/dashboard](https://studio-git-branch-name-supabase.vercel.app/dashboard) | unique phrase from the change | | Design system | [/design-system](https://supabase.com/design-system) | [/design-system](https://design-system-git-branch-name-supabase.vercel.app/design-system) | unique phrase from the change | | UI library | [/library](https://supabase.com/library) | [/library](https://ui-library-git-branch-name-supabase.vercel.app/library) | unique phrase from the change | | Knowledge base | [/kb/guides/your-page](https://supabase.com/kb/guides/your-page) | [/kb/guides/your-page](https://kb-git-branch-name-supabase.vercel.app/kb/guides/your-page) | unique phrase from the change | --> <!-- ## Additional context Optionally add any other context or screenshots. --> ## Review instructions Provide a clear numbered procedure that the PR reviewer can walk through. 1. visit [/automate-with-agents/health](https://docs-git-docs-agent-setup-stepper-supabase.vercel.app/docs/guides/observability/automate-with-agents/health#set-up-the-agent) ## Checklist Check all before review: - [x] I have read [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) - [x] If I wrote a new docs topic or edited an existing topic, I used the `/write-the-docs` or `/edit-the-docs` skill, which applies the docs [style guide](https://github.com/supabase/supabase/tree/master/apps/docs/style-guide) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Agent setup instructions are organized into prompt-copying and scheduling steps, with links to harness documentation. * Code tabs support icons and controlled selection. * Source code samples support adjustable footer notches. * **Bug Fixes** * Step numbers now display the correct shadow. * Links to page anchors now scroll to, focus, and highlight their targets, while respecting reduced-motion preferences. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
140 lines
4.2 KiB
CSS
140 lines
4.2 KiB
CSS
@utility code-line-number {
|
|
@apply select-none text-right text-muted/70 pl-3 pr-2 min-h-5 leading-5;
|
|
@apply bg-[var(--row-rest)] sticky left-0 z-10;
|
|
@apply group-hover/row:text-muted group-hover/row:bg-[var(--row-hover)];
|
|
@apply after:pointer-events-none after:absolute after:inset-y-0 after:left-full after:w-4;
|
|
@apply [--gutter-fade:var(--row-rest)] group-hover/row:[--gutter-fade:var(--row-hover)];
|
|
@apply after:bg-[image:linear-gradient(to_right,var(--gutter-fade)_0%,color-mix(in_srgb,var(--gutter-fade)_85%,transparent)_25%,color-mix(in_srgb,var(--gutter-fade)_50%,transparent)_50%,color-mix(in_srgb,var(--gutter-fade)_15%,transparent)_75%,transparent_100%)];
|
|
}
|
|
|
|
@utility code-line-content {
|
|
@apply min-h-5 leading-5 pl-3 pr-18 group-hover/row:bg-[var(--row-hover)];
|
|
}
|
|
|
|
/* Code blocks need margin applied when in content container */
|
|
.prose :where(.shiki, .shiki-wrapper):where(:not(.shiki-wrapper *)) {
|
|
margin-block: 2rem;
|
|
}
|
|
|
|
/* Code block theme colors for use with Supabase Theme */
|
|
[data-theme='dark'],
|
|
.dark {
|
|
--code-token-keyword: #bda4ff;
|
|
--code-foreground: #ffffff;
|
|
--code-token-constant: #3ecf8e;
|
|
--code-token-string: #ffcda1;
|
|
--code-token-comment: #949494;
|
|
--code-token-parameter: #ffffff;
|
|
--code-token-function: #3ecf8e;
|
|
--code-token-string-expression: #ffcda1;
|
|
--code-token-punctuation: #ffffff;
|
|
--code-token-link: #ffffff;
|
|
--code-token-number: #ffffff;
|
|
--code-token-property: #3ecf8e;
|
|
--code-token-variable: var(--code-foreground);
|
|
--code-highlight-color: #232323;
|
|
--shadow-codeblock:
|
|
0 0 0 0 var(--border-default), 0 1px 2px 0 rgba(0, 0, 0, 0.3), 0 1px 3px 0 rgba(0, 0, 0, 0.3);
|
|
--drop-shadow-codeblock: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.5));
|
|
}
|
|
[data-theme='light'],
|
|
.light {
|
|
--code-token-keyword: #5f2fc4;
|
|
--code-foreground: oklch(from var(--foreground-light) l c h / 1);
|
|
--code-token-constant: #15593b;
|
|
--code-token-string: #9a5200;
|
|
--code-token-comment: #6a6a6a;
|
|
--code-token-parameter: oklch(from var(--foreground-light) l c h / 1);
|
|
--code-token-function: #15593b;
|
|
--code-token-string-expression: #9a5200;
|
|
--code-token-punctuation: oklch(from var(--foreground-light) l c h / 1);
|
|
--code-token-link: oklch(from var(--foreground-light) l c h / 1);
|
|
--code-token-number: oklch(from var(--foreground-light) l c h / 1);
|
|
--code-token-property: #15593b;
|
|
--code-token-variable: var(--code-foreground);
|
|
--code-highlight-color: #1c1c1c;
|
|
}
|
|
|
|
/* Token classes emitted by CodeBlock.utils.ts */
|
|
.shiki .s-f {
|
|
color: var(--code-foreground);
|
|
}
|
|
.shiki .s-c {
|
|
color: var(--code-token-comment);
|
|
}
|
|
.shiki .s-n {
|
|
color: var(--code-token-constant);
|
|
}
|
|
.shiki .s-u {
|
|
color: var(--code-token-function);
|
|
}
|
|
.shiki .s-k {
|
|
color: var(--code-token-keyword);
|
|
}
|
|
.shiki .s-a {
|
|
color: var(--code-token-parameter);
|
|
}
|
|
.shiki .s-r {
|
|
color: var(--code-token-property);
|
|
}
|
|
.shiki .s-p {
|
|
color: var(--code-token-punctuation);
|
|
}
|
|
.shiki .s-s {
|
|
color: var(--code-token-string);
|
|
}
|
|
.shiki .s-e {
|
|
color: var(--code-token-string-expression);
|
|
}
|
|
.shiki .s-v {
|
|
color: var(--code-token-variable);
|
|
}
|
|
.shiki .s-i {
|
|
font-style: italic;
|
|
}
|
|
.shiki .s-b {
|
|
font-weight: bold;
|
|
}
|
|
.shiki .s-l {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
/* Word wrap styles for code blocks */
|
|
.shiki[data-wrapped='true'] .code-scroll {
|
|
overflow-x: hidden !important;
|
|
}
|
|
|
|
.shiki[data-wrapped='true'] .code-content {
|
|
white-space: pre-wrap !important;
|
|
overflow-wrap: anywhere !important;
|
|
}
|
|
|
|
.shadow-codeblock {
|
|
box-shadow: var(--shadow-codeblock, none);
|
|
}
|
|
|
|
.shiki-wrapper {
|
|
--tab-flare-ring:
|
|
transparent 6.75px, var(--border-color-default) 7.25px, var(--border-color-default) 7.75px,
|
|
transparent 8.25px;
|
|
--tab-flare-fill: transparent 6.75px, var(--background-color-200) 7.25px;
|
|
--tab-flare-left:
|
|
radial-gradient(circle at 0 0, var(--tab-flare-ring)),
|
|
radial-gradient(circle at 0 0, var(--tab-flare-fill));
|
|
--tab-flare-right:
|
|
radial-gradient(circle at 100% 0, var(--tab-flare-ring)),
|
|
radial-gradient(circle at 100% 0, var(--tab-flare-fill));
|
|
}
|
|
|
|
.codeblock-drop-shadow {
|
|
filter: var(--drop-shadow-codeblock, none);
|
|
}
|
|
|
|
.code-sample-source :is(.shiki, .code-sample-surface) {
|
|
mask:
|
|
linear-gradient(#000 0 0),
|
|
var(--source-notch-mask) right -2px bottom -2px / var(--source-notch-mask-width) 42px no-repeat;
|
|
mask-composite: exclude;
|
|
mask-clip: no-clip;
|
|
}
|