@exxatdesignux/ui 0.5.1 → 0.5.3
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 +16 -0
- package/consumer-extras/cursor-rules/exxat-data-tables.mdc +8 -6
- package/consumer-extras/cursor-rules/exxat-ds-agents.mdc +2 -1
- package/consumer-extras/cursor-rules/exxat-hub-supported-views.mdc +54 -0
- package/consumer-extras/cursor-rules/exxat-nav-single-active.mdc +31 -0
- package/consumer-extras/cursor-skills/exxat-ds-skill/SKILL.md +8 -3
- package/consumer-extras/cursor-skills/exxat-ds-skill/references/data-table-pattern.md +15 -5
- package/consumer-extras/cursor-skills/exxat-token-economy/SKILL.md +11 -4
- package/consumer-extras/handbook/HANDBOOK.md +1 -1
- package/consumer-extras/handbook/reference-implementations.md +2 -2
- package/consumer-extras/patterns/data-views-pattern.md +6 -0
- package/consumer-extras/patterns/hub-supported-views-pattern.md +53 -0
- package/dist/components/data-table/filter-text-value-input.js +1 -1
- package/dist/components/data-table/filter-text-value-input.js.map +1 -1
- package/dist/components/data-table/index.js +16 -12
- package/dist/components/data-table/index.js.map +1 -1
- package/dist/components/data-table/pagination.js +16 -12
- package/dist/components/data-table/pagination.js.map +1 -1
- package/dist/components/data-views/data-row-list.js +1 -1
- package/dist/components/data-views/data-row-list.js.map +1 -1
- package/dist/components/data-views/hub-table.d.ts +8 -4
- package/dist/components/data-views/hub-table.js +31 -16
- package/dist/components/data-views/hub-table.js.map +1 -1
- package/dist/components/data-views/index.d.ts +1 -1
- package/dist/components/data-views/index.js +31 -16
- package/dist/components/data-views/index.js.map +1 -1
- package/dist/components/data-views/list-page-connected-view-body.d.ts +1 -1
- package/dist/components/data-views/list-page-connected-view-body.js +1 -0
- package/dist/components/data-views/list-page-connected-view-body.js.map +1 -1
- package/dist/components/table-properties/column-row.js +1 -1
- package/dist/components/table-properties/column-row.js.map +1 -1
- package/dist/components/table-properties/drawer-button.js +6 -5
- package/dist/components/table-properties/drawer-button.js.map +1 -1
- package/dist/components/table-properties/drawer.js +6 -5
- package/dist/components/table-properties/drawer.js.map +1 -1
- package/dist/components/table-properties/filter-card.js +2 -2
- package/dist/components/table-properties/filter-card.js.map +1 -1
- package/dist/components/table-properties/index.d.ts +1 -1
- package/dist/components/table-properties/index.js +6 -5
- package/dist/components/table-properties/index.js.map +1 -1
- package/dist/components/table-properties/sort-card.js +1 -1
- package/dist/components/table-properties/sort-card.js.map +1 -1
- package/dist/components/templates/index.d.ts +1 -1
- package/dist/components/templates/index.js +16 -6
- package/dist/components/templates/index.js.map +1 -1
- package/dist/components/templates/list-page.d.ts +4 -2
- package/dist/components/templates/list-page.js +16 -6
- package/dist/components/templates/list-page.js.map +1 -1
- package/dist/components/ui/banner.d.ts +2 -2
- package/dist/components/ui/banner.js +1 -1
- package/dist/components/ui/banner.js.map +1 -1
- package/dist/components/ui/coach-mark.js +1 -1
- package/dist/components/ui/coach-mark.js.map +1 -1
- package/dist/components/ui/context-menu.js +1 -1
- package/dist/components/ui/context-menu.js.map +1 -1
- package/dist/components/ui/date-picker-field.js +1 -1
- package/dist/components/ui/date-picker-field.js.map +1 -1
- package/dist/components/ui/dropdown-menu.js +2 -2
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/export-drawer.js +3 -3
- package/dist/components/ui/export-drawer.js.map +1 -1
- package/dist/components/ui/hover-card.js +1 -1
- package/dist/components/ui/hover-card.js.map +1 -1
- package/dist/components/ui/key-metrics.js +6 -6
- package/dist/components/ui/key-metrics.js.map +1 -1
- package/dist/components/ui/page-header.js +1 -1
- package/dist/components/ui/page-header.js.map +1 -1
- package/dist/components/ui/popover.js +1 -1
- package/dist/components/ui/popover.js.map +1 -1
- package/dist/components/ui/select.js +1 -1
- package/dist/components/ui/select.js.map +1 -1
- package/dist/components/ui/sheet.js +1 -1
- package/dist/components/ui/sheet.js.map +1 -1
- package/dist/components/ui/sidebar.d.ts +1 -1
- package/dist/components/ui/sidebar.js +3 -3
- package/dist/components/ui/sidebar.js.map +1 -1
- package/dist/components/ui/tip.js +1 -1
- package/dist/components/ui/tip.js.map +1 -1
- package/dist/components/ui/tooltip.js +1 -1
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/view-segmented-control.js +1 -1
- package/dist/components/ui/view-segmented-control.js.map +1 -1
- package/dist/{data-list-view-registry-CyBoBML4.d.ts → data-list-view-registry-BstmlfQ3.d.ts} +16 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +151 -29
- package/dist/index.js.map +1 -1
- package/dist/lib/data-list-view-registry.d.ts +1 -1
- package/dist/lib/data-list-view-registry.js +17 -1
- package/dist/lib/data-list-view-registry.js.map +1 -1
- package/dist/lib/data-list-view-surface.d.ts +1 -1
- package/dist/lib/data-list-view-surface.js +1 -0
- package/dist/lib/data-list-view-surface.js.map +1 -1
- package/dist/lib/list-page-table-properties.d.ts +1 -1
- package/dist/lib/list-page-table-properties.js +1 -0
- package/dist/lib/list-page-table-properties.js.map +1 -1
- package/dist/lib/nav-active.d.ts +38 -0
- package/dist/lib/nav-active.js +104 -0
- package/dist/lib/nav-active.js.map +1 -0
- package/package.json +1 -1
- package/src/components/data-table/index.tsx +25 -17
- package/src/components/data-views/data-row-list.tsx +1 -1
- package/src/components/data-views/hub-table.tsx +9 -3
- package/src/components/templates/list-page.tsx +9 -3
- package/src/components/ui/banner.tsx +0 -2
- package/src/components/ui/coach-mark.tsx +1 -2
- package/src/components/ui/context-menu.tsx +1 -1
- package/src/components/ui/dropdown-menu.tsx +2 -2
- package/src/components/ui/hover-card.tsx +1 -1
- package/src/components/ui/key-metrics.tsx +4 -4
- package/src/components/ui/popover.tsx +1 -1
- package/src/components/ui/select.tsx +1 -1
- package/src/components/ui/sheet.tsx +1 -1
- package/src/components/ui/sidebar.tsx +3 -3
- package/src/components/ui/tooltip.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/lib/data-list-view-registry.ts +31 -0
- package/src/lib/nav-active.ts +162 -0
- package/template/.claude/skills/exxat-ds-skill/SKILL.md +2 -1
- package/template/AGENTS.md +16 -1
- package/template/components/columns-client.tsx +3 -2
- package/template/components/columns-showcase.tsx +22 -18
- package/template/components/exxat-product-logo.tsx +1 -1
- package/template/components/library-table.tsx +62 -23
- package/template/components/new-library-item-form.tsx +0 -7
- package/template/components/product-wordmark.tsx +1 -1
- package/template/components/sidebar/app-sidebar.tsx +14 -106
- package/template/components/sidebar/secondary-nav.tsx +22 -4
- package/template/components/tokens-hub-auxiliary-views.tsx +301 -0
- package/template/components/tokens-themes-client.tsx +44 -16
- package/template/docs/HANDBOOK.md +1 -1
- package/template/docs/data-views-pattern.md +6 -0
- package/template/docs/glossary.md +2 -1
- package/template/docs/hub-supported-views-pattern.md +53 -0
- package/template/docs/reference-implementations.md +2 -2
- package/template/lib/full-hub-supported-views.ts +8 -0
- package/template/lib/library-supported-views.ts +5 -12
- package/template/package.json +11 -0
- package/tokens/hooks-index.json +2 -2
|
@@ -49,7 +49,7 @@ function DropdownMenuContent({
|
|
|
49
49
|
sideOffset,
|
|
50
50
|
align,
|
|
51
51
|
className: cn(
|
|
52
|
-
"z-50 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-
|
|
52
|
+
"z-50 max-h-(--radix-dropdown-menu-content-available-height) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
53
53
|
DROPDOWN_MENU_CONTENT_SURFACE_CLASS,
|
|
54
54
|
className
|
|
55
55
|
),
|
|
@@ -176,7 +176,7 @@ function TooltipContent({
|
|
|
176
176
|
"data-slot": "tooltip-content",
|
|
177
177
|
sideOffset,
|
|
178
178
|
className: cn(
|
|
179
|
-
"z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pe-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-
|
|
179
|
+
"z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pe-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
180
180
|
className
|
|
181
181
|
),
|
|
182
182
|
...props,
|
|
@@ -468,7 +468,7 @@ function PopoverContent({
|
|
|
468
468
|
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
469
469
|
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
470
470
|
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
|
|
471
|
-
"data-[side=left]:slide-in-from-
|
|
471
|
+
"data-[side=left]:slide-in-from-end-2 data-[side=right]:slide-in-from-start-2",
|
|
472
472
|
className
|
|
473
473
|
),
|
|
474
474
|
...props
|
|
@@ -2256,13 +2256,15 @@ function useBulkBarFixedToTableScrollEl(scrollRef, active, fullWidth) {
|
|
|
2256
2256
|
const scheduled = rafThrottle(apply);
|
|
2257
2257
|
const ro = new ResizeObserver(scheduled);
|
|
2258
2258
|
ro.observe(el);
|
|
2259
|
+
el.addEventListener("scroll", scheduled, { passive: true });
|
|
2259
2260
|
window.addEventListener("resize", scheduled, { passive: true });
|
|
2260
|
-
window.addEventListener("scroll", scheduled, { passive: true
|
|
2261
|
+
window.addEventListener("scroll", scheduled, { passive: true });
|
|
2261
2262
|
return () => {
|
|
2262
2263
|
scheduled.cancel();
|
|
2263
2264
|
ro.disconnect();
|
|
2265
|
+
el.removeEventListener("scroll", scheduled);
|
|
2264
2266
|
window.removeEventListener("resize", scheduled);
|
|
2265
|
-
window.removeEventListener("scroll", scheduled
|
|
2267
|
+
window.removeEventListener("scroll", scheduled);
|
|
2266
2268
|
};
|
|
2267
2269
|
}, [active, fullWidth, scrollRef]);
|
|
2268
2270
|
return style;
|
|
@@ -2429,11 +2431,13 @@ function DataTableInner({
|
|
|
2429
2431
|
};
|
|
2430
2432
|
update();
|
|
2431
2433
|
const scheduled = rafThrottle(update);
|
|
2432
|
-
|
|
2434
|
+
wrapEl.addEventListener("scroll", scheduled, { passive: true });
|
|
2435
|
+
window.addEventListener("scroll", scheduled, { passive: true });
|
|
2433
2436
|
window.addEventListener("resize", scheduled, { passive: true });
|
|
2434
2437
|
return () => {
|
|
2435
2438
|
scheduled.cancel();
|
|
2436
|
-
|
|
2439
|
+
wrapEl.removeEventListener("scroll", scheduled);
|
|
2440
|
+
window.removeEventListener("scroll", scheduled);
|
|
2437
2441
|
window.removeEventListener("resize", scheduled);
|
|
2438
2442
|
};
|
|
2439
2443
|
}, [showColumnHeaders, rows.length, displayCols.length]);
|
|
@@ -2870,11 +2874,11 @@ function DataTableInner({
|
|
|
2870
2874
|
const rowPy = rowHeight === "compact" ? "py-1" : rowHeight === "comfortable" ? "py-4" : "py-2.5";
|
|
2871
2875
|
const cs = cellStyle(col.key);
|
|
2872
2876
|
const tdBase = cn(
|
|
2873
|
-
`px-3 ${rowPy} align-middle`,
|
|
2877
|
+
`px-3 ${rowPy} align-middle max-w-0`,
|
|
2874
2878
|
showGridlines && !isEdgePin && "border-e border-border last:border-e-0",
|
|
2875
2879
|
"border-b border-border group-last/row:border-b-0",
|
|
2876
2880
|
isPinned && [
|
|
2877
|
-
"z-20 pinned-cell",
|
|
2881
|
+
"z-20 pinned-cell relative",
|
|
2878
2882
|
"bg-dt-row-bg",
|
|
2879
2883
|
"group-data-[state=selected]/row:bg-dt-row-selected",
|
|
2880
2884
|
"group-hover/row:bg-dt-row-hover",
|
|
@@ -2924,17 +2928,17 @@ function DataTableInner({
|
|
|
2924
2928
|
wrap && "[&_.truncate]:!whitespace-normal [&_.truncate]:!overflow-visible [&_.truncate]:!text-clip"
|
|
2925
2929
|
),
|
|
2926
2930
|
style: tdStyle,
|
|
2927
|
-
children: col.cell(row, {
|
|
2931
|
+
children: /* @__PURE__ */ jsx("div", { className: "min-w-0 overflow-hidden", children: col.cell(row, {
|
|
2928
2932
|
rowIndex,
|
|
2929
2933
|
selected: isSelected,
|
|
2930
2934
|
onSelect: (checked) => checked ? setSelected((prev) => /* @__PURE__ */ new Set([...prev, rowId])) : toggleRow(rowId)
|
|
2931
|
-
})
|
|
2935
|
+
}) })
|
|
2932
2936
|
},
|
|
2933
2937
|
col.key
|
|
2934
2938
|
);
|
|
2935
2939
|
}
|
|
2936
2940
|
const rawVal = String(row[col.key] ?? "");
|
|
2937
|
-
return /* @__PURE__ */ jsx("td", { className: cn(tdBase, "text-sm text-foreground/80"), style: tdStyle, children: /* @__PURE__ */ jsx("span", { className: wrap ? "whitespace-normal" : "block truncate", title: !wrap ? rawVal : void 0, children: rawVal }) }, col.key);
|
|
2941
|
+
return /* @__PURE__ */ jsx("td", { className: cn(tdBase, "text-sm text-foreground/80"), style: tdStyle, children: /* @__PURE__ */ jsx("div", { className: "min-w-0 overflow-hidden", children: /* @__PURE__ */ jsx("span", { className: wrap ? "whitespace-normal" : "block truncate", title: !wrap ? rawVal : void 0, children: rawVal }) }) }, col.key);
|
|
2938
2942
|
})
|
|
2939
2943
|
},
|
|
2940
2944
|
String(rowId)
|