import { StyledElement } from '../internals/StyledElement.js'; import { default as React } from 'react'; type ElementParts = 'host' | 'icon' | 'title' | 'description' | 'actions'; /** * 빈 상태 — 목록·검색 결과가 비었을 때. * * 🔴★**"데이터가 없다"와 "검색 결과가 없다"는 다른 사실이다.** * 전자는 *"아직 만들지 않았다"* 이고 다음 행동은 **만들기**다. * 후자는 *"조건에 맞는 것이 없다"* 이고 다음 행동은 **조건 바꾸기**다. * 같은 문구로 보여 주면 사용자는 필터가 걸려 있는 줄 모르고 *"데이터가 사라졌다"* 로 읽는다. * ⇒ `variant` 로 가르고, 기본 문구가 각각 다르다. * * ```html * * 주문 등록 * * * * ``` * * ⚠**기본 문구는 영어다** — 이 패키지는 범용 층이라 특정 언어를 기본값으로 가질 수 없다. * 한국어는 `registerLocale('ko', …)` 로 소비자가 등록하고, 화면별로 덮으려면 * `title`·`description` 을 준다. * * ★이 줄은 «한국어다»라고 적혀 있었고 **같은 파일의 `locale` 프로퍼티 주석이 «영어다»라고 * 말하고 있었다** — 로케일 이주(0.9.0) 때 클래스 주석만 낡은 것이다. 이 JSDoc 은 * `dist/**.d.ts` 로 게시되므로, 소비자는 **사실과 반대인 문장**을 읽고 있었다. */ export declare class EmptyState extends StyledElement { static styles: import('lit').CSSResultGroup[]; /** `no-data` = 아직 없음 / `no-results` = 조건에 맞는 것이 없음. */ variant: 'no-data' | 'no-results'; /** 제목. 비우면 variant 기본 문구. */ title: string; /** 보조 설명. 비우면 variant 기본 문구. */ description: string; /** * 언어 태그. 비우면 `setDefaultLocale()` 값, 그것도 없으면 **영어**. * ⚠기본 문구는 영어다 — 이 패키지는 범용 층이라 특정 언어를 기본값으로 가질 수 없다. * 한국어는 `registerLocale('ko', …)` 로 소비자가 등록한다. */ locale: string; /** 액션 슬롯 배정 상태 — CSS `:has()` 로는 알 수 없다(`internals/slotted.ts` 참조). */ private hasActions; private get defaults(); render(): import('lit-html').TemplateResult<1>; } declare global { interface HTMLElementTagNameMap { 'u-empty-state': EmptyState; } } declare module 'react' { namespace JSX { interface IntrinsicElements { 'u-empty-state': React.DetailedHTMLProps, HTMLElement> & { variant?: 'no-data' | 'no-results'; title?: string; description?: string; locale?: string; }; } } } export {};