chore(app): more spacing controls

This commit is contained in:
Adam
2026-03-27 11:22:28 -05:00
parent a76be695c7
commit af2ccc94eb
4 changed files with 57 additions and 9 deletions
+2 -1
View File
@@ -9,7 +9,8 @@
overflow: visible; overflow: visible;
&.tool-collapsible { &.tool-collapsible {
gap: 8px; --tool-content-gap: 8px;
gap: var(--tool-content-gap);
} }
[data-slot="collapsible-trigger"] { [data-slot="collapsible-trigger"] {
+8 -5
View File
@@ -636,14 +636,17 @@
} }
[data-component="context-tool-group-list"] { [data-component="context-tool-group-list"] {
padding: 6px 0 4px 0; padding-top: 6px;
padding-right: 0;
padding-bottom: 4px;
padding-left: 13px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 2px; gap: 8px;
[data-slot="context-tool-group-item"] { [data-slot="context-tool-group-item"] {
min-width: 0; min-width: 0;
padding: 6px 0; padding: 0;
} }
} }
@@ -1154,8 +1157,8 @@
position: sticky; position: sticky;
top: var(--sticky-accordion-top, 0px); top: var(--sticky-accordion-top, 0px);
z-index: 20; z-index: 20;
height: 40px; height: calc(32px + var(--tool-content-gap));
padding-bottom: 8px; padding-bottom: var(--tool-content-gap);
background-color: var(--background-stronger); background-color: var(--background-stronger);
} }
} }
+1 -1
View File
@@ -790,7 +790,7 @@ function ContextToolGroup(props: { parts: ToolPart[]; busy?: boolean }) {
const summary = createMemo(() => contextToolSummary(props.parts)) const summary = createMemo(() => contextToolSummary(props.parts))
return ( return (
<Collapsible open={open()} onOpenChange={setOpen} variant="ghost"> <Collapsible open={open()} onOpenChange={setOpen} variant="ghost" class="tool-collapsible">
<Collapsible.Trigger> <Collapsible.Trigger>
<div data-component="context-tool-group-trigger"> <div data-component="context-tool-group-trigger">
<span <span
@@ -567,6 +567,7 @@ function compactionPart(): CompactionPart {
const MD = "markdown.css" const MD = "markdown.css"
const MP = "message-part.css" const MP = "message-part.css"
const ST = "session-turn.css" const ST = "session-turn.css"
const CL = "collapsible.css"
/** /**
* Source mapping for a CSS control. * Source mapping for a CSS control.
@@ -1039,6 +1040,48 @@ const CSS_CONTROLS: CSSControl[] = [
}, },
// --- Tool parts --- // --- Tool parts ---
{
key: "tool-content-gap",
label: "Trigger/content gap",
group: "Tool Parts",
type: "range",
initial: "8",
selector: '[data-component="collapsible"].tool-collapsible',
property: "--tool-content-gap",
min: "0",
max: "24",
step: "1",
unit: "px",
source: { file: CL, anchor: "&.tool-collapsible {", prop: "--tool-content-gap", format: px },
},
{
key: "context-tool-gap",
label: "Explored tool gap",
group: "Explored Group",
type: "range",
initial: "14",
selector: '[data-component="context-tool-group-list"]',
property: "gap",
min: "0",
max: "40",
step: "1",
unit: "px",
source: { file: MP, anchor: '[data-component="context-tool-group-list"]', prop: "gap", format: px },
},
{
key: "context-tool-indent",
label: "Explored indent",
group: "Explored Group",
type: "range",
initial: "0",
selector: '[data-component="context-tool-group-list"]',
property: "padding-left",
min: "0",
max: "48",
step: "1",
unit: "px",
source: { file: MP, anchor: '[data-component="context-tool-group-list"]', prop: "padding-left", format: px },
},
{ {
key: "bash-max-height", key: "bash-max-height",
label: "Shell output max-height", label: "Shell output max-height",
@@ -1099,8 +1142,9 @@ function Playground() {
const el = (root.querySelector(sample(ctrl)) ?? root.querySelector(ctrl.selector)) as HTMLElement | null const el = (root.querySelector(sample(ctrl)) ?? root.querySelector(ctrl.selector)) as HTMLElement | null
if (!el) continue if (!el) continue
const styles = getComputedStyle(el) const styles = getComputedStyle(el)
// Use bracket access — getPropertyValue doesn't resolve shorthands const raw = ctrl.property.startsWith("--")
const raw = (styles as any)[ctrl.property] as string ? styles.getPropertyValue(ctrl.property).trim()
: ((styles as any)[ctrl.property] as string)
if (!raw) continue if (!raw) continue
// Shorthands may return "24px 0px" — take the first value // Shorthands may return "24px 0px" — take the first value
const num = parseFloat(raw.split(" ")[0]) const num = parseFloat(raw.split(" ")[0])