# TallStackUI: Key-Value
> TallStackUI is a TALL Stack (Tailwind CSS, Alpine.js, Laravel, Livewire)
> component library providing 65+ Blade components for building modern web interfaces.
> **Requires Livewire:** This component must be used within a Livewire component.
A dynamic key-value pair editor that allows users to add, edit, and remove entries. Syncs data with a Livewire property via wire:model. Supports static (read-only) mode, row limits, and deletable rows.
## Basic Usage
```blade
```
```blade
```
```blade
```
## Attributes
| Attribute | Type | Default | Description |
|---------------|-----------------------------|---------|---------------------------------------------------------------------------------------------------|
| label | string\|null | null | Custom header label for the key column (defaults to translation) |
| value | string\|null | null | Custom header label for the value column (defaults to translation) |
| limit | int\|null | null | Maximum number of rows allowed |
| static | bool | null | Makes all inputs read-only and hides the add button |
| deletable | bool | null | Shows a delete button on each row |
| delete-method | string\|null | null | Livewire method name to call when a row is deleted |
| placeholders | bool | true | Shows placeholder text in the key and value inputs |
| icon | ComponentSlot\|string\|null | null | Custom icon for the delete button (defaults to 'trash'), or a slot for fully custom delete markup |
## Slots
| Slot | Description |
|--------|-----------------------------------------------------------------------|
| header | Custom content appended to the header row |
| icon | Custom markup for the delete button (replaces the default trash icon) |
## Alpine.js Events
| Event | Description |
|-------------|-------------------------------|
| x-on:add | Fires when a new row is added |
| x-on:remove | Fires when a row is removed |
## Validation Constraints
- The `static` and `limit` attributes cannot be used at the same time.
## Soft Customization
Soft customization allows you to override default Tailwind CSS classes used by this component at runtime, either through a service provider or scoped per-instance.
### Customization
```php
TallStackUi::customize()
->keyValue()
->block('wrapper', 'your-tailwind-classes');
```
### Available Blocks
| Block Name | Purpose |
|------------------|--------------------------------------------------------------|
| wrapper | Outer container styles (background, border, rounded corners) |
| header.wrapper | Header row layout (grid, background, padding) |
| header.key | Header key column text style |
| header.value | Header value column text style |
| empty.wrapper | Empty state container (centered flex) |
| empty.text | Empty state message text style |
| list.wrapper | Row layout for each key-value pair |
| list.input.key | Input styles for the key field |
| list.input.value | Input styles for the value field |
| button.add | Add row button styles (full-width, background, text) |
| button.delete | Delete icon button styles (positioning, color) |