# `src/components/empty-state/EmptyState.ts`:

## class: `EmptyState`, `btu-empty-state`

### Superclass

| Name         | Module | Package |
| ------------ | ------ | ------- |
| `LitElement` |        | lit     |

### Mixins

| Name                | Module                         | Package |
| ------------------- | ------------------------------ | ------- |
| `EventEmitterMixin` | /src/util/EventEmitterMixin.js |         |
| `ReadyMixin`        | /src/util/ReadyMixin.js        |         |

### Fields

| Name             | Privacy | Type                   | Default | Description                                                                                                                                                                                                                                                                        | Inherited From |
| ---------------- | ------- | ---------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
| `heading`        |         | `string`               | `''`    | Heading text displayed in the empty state.                                                                                                                                                                                                                                         |                |
| `description`    |         | `string \| undefined`  |         | Description text displayed below the heading.                                                                                                                                                                                                                                      |                |
| `size`           |         | `'sm' \| 'md' \| 'lg'` | `'md'`  | Size variant of the empty state. Affects spacing, description text, graphic size,&#xA;and — when \`heading-level\` is unset — the default heading level (sm→5, md→4, lg→3).                                                                                                        |                |
| `headingLevel`   |         | `number \| undefined`  |         | Heading level (1-6). When set to a valid integer 1-6, overrides the size-based&#xA;default and drives both the semantic h1-h6 tag and the visual heading size&#xA;(btu-heading-1 through btu-heading-6). Invalid values log a warning and fall&#xA;back to the size-based default. |                |
| `initialClasses` | private | `string[]`             | `[]`    |                                                                                                                                                                                                                                                                                    |                |

### Methods

| Name                  | Privacy | Description                                                                                                                                                                                                                                                                        | Parameters                                              | Return                     | Inherited From    |
| --------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------- | -------------------------- | ----------------- |
| `syncGraphicIconSize` | private |                                                                                                                                                                                                                                                                                    |                                                         | `void`                     |                   |
| `resolveHeadingLevel` | private |                                                                                                                                                                                                                                                                                    |                                                         | `HeadingLevel`             |                   |
| `renderHeading`       | private |                                                                                                                                                                                                                                                                                    | `level: HeadingLevel, className: string`                | `TemplateResult \| string` |                   |
| `emit`                |         | Dispatches a type-safe CustomEvent with standardized configuration.&#xA;&#xA;All events are configured with:&#xA;- bubbles: true (event propagates up the DOM tree)&#xA;- cancelable: false (event cannot be cancelled)&#xA;- composed: true (event crosses shadow DOM boundaries) | `type: K, detail: UnpackCustomEvent<CustomEventMap[K]>` | `boolean`                  | EventEmitterMixin |

### Events

| Name                     | Type          | Description                                    | Inherited From |
| ------------------------ | ------------- | ---------------------------------------------- | -------------- |
| `btu-empty-state-ready`  | `CustomEvent` | Fired after first render and initialization    |                |
| `btu-button-group-ready` | `CustomEvent` | Bubbles from the internal actions button-group |                |

### Attributes

| Name            | Field        | Inherited From |
| --------------- | ------------ | -------------- |
| `heading`       | heading      |                |
| `description`   | description  |                |
| `size`          | size         |                |
| `heading-level` | headingLevel |                |

### CSS Properties

| Name                              | Default | Description                                                     |
| --------------------------------- | ------- | --------------------------------------------------------------- |
| `--empty-state-max-width`         |         | Maximum width of the content block (default: min(75cqw, 360px)) |
| `--empty-state-color-heading`     |         | Heading text color (default: gray-900)                          |
| `--empty-state-color-description` |         | Description text color (default: gray-500)                      |

### Slots

| Name      | Description                                                                                                                                                                                                                                                                |
| --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `graphic` | Pseudo-slot for icon, image, picture, or SVG graphic. When the child is a \`btu-icon\`, the component overrides its \`size\` attribute based on the empty-state \`size\` prop (sm→md, md→lg, lg→xl). Use an \`img\`, \`picture\`, or inline \`svg\` for full size control. |
| `actions` | Pseudo-slot for action buttons. Children are moved into an internal \`btu-button-group\` (variant="spaced"), so size and disabled state are managed by the group.                                                                                                          |

<hr/>

## Exports

| Kind                        | Name              | Declaration | Module                                   | Package |
| --------------------------- | ----------------- | ----------- | ---------------------------------------- | ------- |
| `js`                        | `default`         | EmptyState  | src/components/empty-state/EmptyState.ts |         |
| `custom-element-definition` | `btu-empty-state` | EmptyState  | src/components/empty-state/EmptyState.ts |         |
