Files
deepseek-harness/packages/client/ui-settings-general/src/client/chrome.tsx
Yif 7a76365585 feat(web): restyle hero preview badge and grow wide-sidebar settings icon
The hero Preview tag becomes a superscript mono pill riding the title's
top-right (r24, bordered, business-tertiary fill), colored by the new
--dsw-alias-label-primary-bluish alias over --dsw-static-blue-900 — the
first design-owner-approved addition under the token-sheet authority
exception recorded in the ui-theme README. The expanded sidebar trigger
now uses the native 16px settings icon instead of the 14px asset.
2026-08-07 13:27:15 +08:00

51 lines
1.8 KiB
TypeScript

/**
* Shell chrome content registered into the shell's trigger/header seats: the
* trigger row icon + label (figma sidebar foot) and the panel title text.
* The shell renders the surrounding chrome (button, nav heading row) and
* reads each entry's `label` option for aria text.
*/
import { IconSettingsOutline14, IconSettingsOutline16 } from '@deepseek-ai/dsh-client-ui-primitives'
import type { PropsLocale, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'
import css from './chrome.module.css'
/** Trigger content props: the sidebar column state + the standard locale seat. */
export type TriggerContentProps = PropsRuntime<'settings.trigger'> & PropsLocale<'settings'>
/** Header content props: the standard locale seat only. */
export type HeaderContentProps = PropsRuntime<'settings.header'> & PropsLocale<'settings'>
/**
* Render the trigger row content (icon; label only in the wide column).
* @param props - composed slot props.
* @returns the trigger content fragment.
*/
export function TriggerContent({ wide, t }: TriggerContentProps) {
return (
<>
{wide ? <IconSettingsOutline16 size={16} /> : <IconSettingsOutline14 size={18} />}
{wide && <span className={css.triggerLabel}>{t('trigger')}</span>}
</>
)
}
/**
* Render the panel title text.
* @param props - composed slot props.
* @returns the title text node.
*/
export function HeaderContent({ t }: HeaderContentProps) {
return <>{t('title')}</>
}
/** Close-button label text props: the standard locale seat only. */
export type CloseLabelProps = PropsRuntime<'settings.close'> & PropsLocale<'settings'>
/**
* Render the close button's visually-hidden label text.
* @param props - composed slot props.
* @returns the label text node.
*/
export function CloseLabel({ t }: CloseLabelProps) {
return <>{t('close')}</>
}