import { StyledElement } from '../internals/StyledElement.js'; import { default as React } from 'react'; type ElementParts = 'host' | 'header' | 'title' | 'actions' | 'body'; /** * 그룹 박스 — 제목이 붙은 카드. LOB 상세 화면의 기본 단위다. * * ★**왜 `u-card` 가 아니라 이것인가**: `u-card` 는 면(surface)만 준다. LOB 화면에서 반복되는 * 것은 *면 + 제목 + 우측 액션 슬롯* 이라는 **묶음**이고, 그 묶음을 소비자가 매번 조립하면 * 제목 크기·여백·구분선이 화면마다 달라진다. 카드 30여 곳을 손으로 그리던 소비앱에서 * 실제로 그렇게 갈라졌다. * * ```html * * 미수금·결제 * …본문… * * ``` * * 오버라이드: `part`(host·header·title·actions·body) + slot 치환. * `divider` 속성으로 제목과 본문 사이 구분선을 켠다(기본 꺼짐 — 선이 많으면 화면이 시끄럽다). */ export declare class GroupBox extends StyledElement { static styles: import('lit').CSSResultGroup[]; /** 카드 제목. 비우면 헤더 자체를 렌더하지 않는다. */ title: string; /** 제목과 본문 사이에 구분선을 넣는다. */ divider: boolean; /** 본문 여백을 없앤다 — 표를 카드 가장자리까지 붙일 때. */ flush: boolean; /** * 액션 슬롯 배정 상태. * ★종전에는 'render()' 안에서 'this.querySelector()' 로 라이트 DOM 을 읽었다. 그것은 * **자식이 늦게 붙으면 못 본다** — 소비자가 'requestUpdate()' 를 부르지 않는 한 * 헤더가 통째로 사라진 채로 남는다. 슬롯 배정은 'slotchange' 가 알려 준다. */ private hasActions; render(): import('lit-html').TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'u-group-box': GroupBox; } } declare module 'react' { namespace JSX { interface IntrinsicElements { 'u-group-box': React.DetailedHTMLProps, HTMLElement> & { title?: string; divider?: boolean; flush?: boolean; }; } } } export {};