openpencil/src/theme/panel/section.ts
Danila Poyarkov 1d60d3a407 feat(ui): add binding field skins
- Show one variable picker affordance with a quiet identity pill and accessible combobox

- Keep bound NumberField focus non-destructive until the first value mutation

- Prefer accessible and semantic test selectors over compound test IDs
2026-07-13 14:04:13 +03:00

25 lines
858 B
TypeScript

const panelSectionTheme = {
slots: {
root: 'border-b border-border px-panel-x py-panel-y text-surface data-[disabled]:opacity-60',
header: 'mb-panel grid min-w-0 items-center gap-panel',
title:
'min-w-0 cursor-pointer truncate border-0 bg-transparent p-0 text-left text-[11px] leading-none font-semibold text-surface',
actions:
'flex h-control w-panel-rail shrink-0 items-center justify-end gap-0.5 [&_[data-slot=icon-button]]:size-control [&_[data-slot=icon-button]]:rounded-panel',
body: 'min-w-0 data-[state=closed]:hidden'
},
variants: {
actions: {
true: {
header: 'grid-cols-[minmax(0,1fr)_var(--spacing-panel-rail)]'
},
false: {
header: 'grid-cols-[minmax(0,1fr)]'
}
}
}
}
export type PanelSectionTheme = typeof panelSectionTheme
export default panelSectionTheme