@viliha/vui-ui 1.14.0 → 1.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/package.json +1 -1
- package/src/record-view.tsx +10 -3
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,15 @@ backward-compatible features, **major** for breaking changes.
|
|
|
7
7
|
|
|
8
8
|
To upgrade, see [Upgrading](./AGENT.md#upgrading) in the agent guide.
|
|
9
9
|
|
|
10
|
+
## 1.14.1 — 2026-07-26
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
|
|
14
|
+
- **Per-field Filter panel layout.** The header ("Filter") and the footer
|
|
15
|
+
(Clear / Search) are now static — only the fields scroll — so the actions stay
|
|
16
|
+
in view on a long filter form. The footer's top border spans the full panel
|
|
17
|
+
width, and the action buttons are compact (`size="sm"`).
|
|
18
|
+
|
|
10
19
|
## 1.14.0 — 2026-07-26
|
|
11
20
|
|
|
12
21
|
### Added
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viliha/vui-ui",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.1",
|
|
4
4
|
"description": "Vui UI — a clean, token-driven React admin/CRM component library built on Tailwind CSS v4, shadcn-style patterns, and Radix Icons. Ships as TypeScript source (Just-in-Time), compiled by the consuming app.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Suman Bonakurthi",
|
package/src/record-view.tsx
CHANGED
|
@@ -1363,8 +1363,11 @@ export function RecordView<T extends { id: RowId }>({
|
|
|
1363
1363
|
// Search / Clear. The panel only gathers values — matching is the
|
|
1364
1364
|
// consumer's job via `onFilter` (see the field's `filterable`).
|
|
1365
1365
|
<>
|
|
1366
|
-
<
|
|
1367
|
-
|
|
1366
|
+
<div className="flex max-h-[min(28rem,70vh)] w-72 flex-col">
|
|
1367
|
+
{/* Header: static, full-width separator (from DropdownLabel). */}
|
|
1368
|
+
<DropdownLabel>Filter</DropdownLabel>
|
|
1369
|
+
{/* Content: the only scrolling region. */}
|
|
1370
|
+
<div className="flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto p-3">
|
|
1368
1371
|
{filterFields.map((f) => {
|
|
1369
1372
|
const cfg: FieldFilter<T> =
|
|
1370
1373
|
typeof f.filterable === "object" ? f.filterable : {};
|
|
@@ -1453,8 +1456,11 @@ export function RecordView<T extends { id: RowId }>({
|
|
|
1453
1456
|
</div>
|
|
1454
1457
|
);
|
|
1455
1458
|
})}
|
|
1456
|
-
|
|
1459
|
+
</div>
|
|
1460
|
+
{/* Footer: static, full-width top border, compact buttons. */}
|
|
1461
|
+
<div className="flex shrink-0 items-center justify-end gap-2 border-t border-border p-3">
|
|
1457
1462
|
<Button
|
|
1463
|
+
size="sm"
|
|
1458
1464
|
onClick={() => {
|
|
1459
1465
|
setFilterValues({});
|
|
1460
1466
|
onFilter?.({});
|
|
@@ -1473,6 +1479,7 @@ export function RecordView<T extends { id: RowId }>({
|
|
|
1473
1479
|
Clear
|
|
1474
1480
|
</Button>
|
|
1475
1481
|
<Button
|
|
1482
|
+
size="sm"
|
|
1476
1483
|
variant="primary"
|
|
1477
1484
|
onClick={() => {
|
|
1478
1485
|
onFilter?.(filterValues);
|