<section class="section docs-section" id="data-patterns">
<h2 class="section-title">Data Patterns</h2>
<p class="docs-section-description">
Toolbar, search field, pagination, empty state и skeleton закрывают типовые состояния
таблиц, списков и страниц с данными.
</p>
<div class="block">
<div class="toolbar">
<div class="toolbar-group">
<div>
<h3 class="toolbar-title">Projects</h3>
<span class="toolbar-meta">24 items</span>
</div>
</div>
<div class="toolbar-group">
<div class="input-group input-group-compact search-field">
<span class="input-group-addon">
<i class="ph ph-magnifying-glass"></i>
</span>
<input class="input-group-input" type="search" value="release" placeholder="Search">
<button class="input-group-action" type="button" data-input-clear aria-label="Clear search">
<i class="ph ph-x"></i>
</button>
</div>
<button class="btn btn-primary btn-small with-icon" type="button">
<i class="ph ph-funnel"></i>
Filter
</button>
<button class="btn btn-accent btn-small with-icon" type="button">
<i class="ph ph-plus"></i>
Create
</button>
</div>
</div>
</div>
<div class="block">
<div class="input-group">
<span class="input-group-addon">https://</span>
<input class="input-group-input" type="text" value="example.gnexus.local" placeholder="Domain">
<button class="input-group-action" type="button">Save</button>
</div>
</div>
<div class="block">
<nav class="pagination" aria-label="Pagination">
<button class="pagination-item" type="button" disabled>
<i class="ph ph-arrow-left"></i>
</button>
<button class="pagination-item pagination-item-active" type="button" aria-current="page">1</button>
<button class="pagination-item" type="button">2</button>
<button class="pagination-item" type="button">3</button>
<span class="pagination-ellipsis">...</span>
<button class="pagination-item" type="button">12</button>
<button class="pagination-item" type="button">
<i class="ph ph-arrow-right"></i>
</button>
</nav>
</div>
<div class="block">
<div class="empty-state">
<div class="empty-state-icon">
<i class="ph ph-package"></i>
</div>
<h3 class="empty-state-title">No results</h3>
<p class="empty-state-text">
Nothing matched the current filters. Reset the query or create a new item.
</p>
<div class="empty-state-actions">
<button class="btn btn-secondary btn-small" type="button">Reset</button>
<button class="btn btn-accent btn-small" type="button">Create</button>
</div>
</div>
</div>
<div class="block">
<div class="skeleton-stack" aria-label="Loading preview">
<span class="skeleton skeleton-title"></span>
<span class="skeleton skeleton-line"></span>
<span class="skeleton skeleton-line" style="width: 84%"></span>
<span class="skeleton skeleton-line" style="width: 68%"></span>
<span class="skeleton skeleton-block"></span>
</div>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Toolbar HTML</span>
<button class="code-example-copy" type="button">Copy</button>
</div>
<pre><code class="language-html"><div class="toolbar">
<div class="toolbar-group">
<div>
<h3 class="toolbar-title">Projects</h3>
<span class="toolbar-meta">24 items</span>
</div>
</div>
<div class="toolbar-group">
<div class="input-group input-group-compact search-field">
<span class="input-group-addon"><i class="ph ph-magnifying-glass"></i></span>
<input class="input-group-input" type="search" placeholder="Search">
<button class="input-group-action" type="button" data-input-clear aria-label="Clear search">
<i class="ph ph-x"></i>
</button>
</div>
<button class="btn btn-accent btn-small">Create</button>
</div>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Input Group HTML</span>
<button class="code-example-copy" type="button">Copy</button>
</div>
<pre><code class="language-html"><div class="input-group">
<span class="input-group-addon">https://</span>
<input class="input-group-input" type="text" placeholder="Domain">
<button class="input-group-action" type="button">Save</button>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Pagination HTML</span>
<button class="code-example-copy" type="button">Copy</button>
</div>
<pre><code class="language-html"><nav class="pagination" aria-label="Pagination">
<button class="pagination-item" type="button" disabled>Prev</button>
<button class="pagination-item pagination-item-active" type="button" aria-current="page">1</button>
<button class="pagination-item" type="button">2</button>
<span class="pagination-ellipsis">...</span>
<button class="pagination-item" type="button">12</button>
<button class="pagination-item" type="button">Next</button>
</nav></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Empty State HTML</span>
<button class="code-example-copy" type="button">Copy</button>
</div>
<pre><code class="language-html"><div class="empty-state">
<div class="empty-state-icon"><i class="ph ph-package"></i></div>
<h3 class="empty-state-title">No results</h3>
<p class="empty-state-text">Nothing matched the current filters.</p>
<div class="empty-state-actions">
<button class="btn btn-secondary btn-small">Reset</button>
<button class="btn btn-accent btn-small">Create</button>
</div>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Skeleton HTML</span>
<button class="code-example-copy" type="button">Copy</button>
</div>
<pre><code class="language-html"><div class="skeleton-stack" aria-label="Loading preview">
<span class="skeleton skeleton-title"></span>
<span class="skeleton skeleton-line"></span>
<span class="skeleton skeleton-line" style="width: 84%"></span>
<span class="skeleton skeleton-block"></span>
</div></code></pre>
</div>
<div class="code-example">
<div class="code-example-header">
<span class="code-example-title">Input Patterns JS</span>
<button class="code-example-copy" type="button">Copy</button>
</div>
<pre><code class="language-js">InputPatterns.init();
// Available on the global namespace too:
GNexusUIKit.InputPatterns.init();</code></pre>
</div>
</section>