@ztwoint/z-ui 0.1.44 → 0.1.46
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/dist/components/avatar/avatar.d.ts +185 -0
- package/dist/components/avatar/avatar.js +55 -0
- package/dist/components/table/components/pagination/index.d.ts +1 -0
- package/dist/components/table/components/pagination/pagination.hook.d.ts +1 -1
- package/dist/components/table/components/pagination/pagination.hook.js +20 -16
- package/dist/components/table/components/table-filter/filters/checkbox.js +35 -51
- package/dist/components/table/components/table-filter/filters/text.js +41 -39
- package/dist/components/table/components/table-filter/index.d.ts +4 -1
- package/dist/components/table/components/table-filter/selected-filters-display/index.d.ts +2 -0
- package/dist/components/table/components/table-filter/selected-filters-display/selected-filters-display.d.ts +3 -0
- package/dist/components/table/components/table-filter/selected-filters-display/selected-filters-display.js +30 -0
- package/dist/components/table/components/table-filter/selected-filters-display/selected-filters-display.type.d.ts +12 -0
- package/dist/components/table/components/table-filter/selected-filters-display/selected-filters-display.utils.d.ts +6 -0
- package/dist/components/table/components/table-filter/selected-filters-display/selected-filters-display.utils.js +26 -0
- package/dist/components/table/components/table-filter/table-filter-button.d.ts +2 -0
- package/dist/components/table/components/table-filter/table-filter-button.js +103 -0
- package/dist/components/table/components/table-filter/table-filter-column-button.d.ts +3 -0
- package/dist/components/table/components/table-filter/table-filter-column-button.js +78 -0
- package/dist/components/table/components/table-filter/table-filter-column-button.type.d.ts +3 -0
- package/dist/components/table/components/table-filter/table-filter-provider.d.ts +14 -0
- package/dist/components/table/components/table-filter/table-filter-provider.js +32 -0
- package/dist/components/table/components/table-filter/table-filter.context.d.ts +21 -0
- package/dist/components/table/components/table-filter/table-filter.context.js +13 -0
- package/dist/components/table/components/table-filter/table-filter.hook.d.ts +1 -2
- package/dist/components/table/components/table-filter/table-filter.hook.js +39 -37
- package/dist/components/table/index.d.ts +1 -2
- package/dist/components/table/table-provider.d.ts +1 -1
- package/dist/components/table/table-provider.js +13 -13
- package/dist/components/table/table.type.d.ts +2 -0
- package/dist/components/table/table.utils.d.ts +0 -1
- package/dist/components/table/table.utils.js +5 -3
- package/dist/components/table-card/table-card.js +69 -64
- package/dist/components/table-card/table-card.type.d.ts +7 -7
- package/dist/css/styles/tailwind.css +1 -1
- package/dist/hooks/useClickOutside.d.ts +1 -0
- package/dist/hooks/useClickOutside.js +14 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +110 -110
- package/dist/types/components/avatar/avatar.d.ts +185 -0
- package/dist/types/components/table/components/pagination/index.d.ts +1 -0
- package/dist/types/components/table/components/pagination/pagination.hook.d.ts +1 -1
- package/dist/types/components/table/components/table-filter/index.d.ts +4 -1
- package/dist/types/components/table/components/table-filter/selected-filters-display/index.d.ts +2 -0
- package/dist/types/components/table/components/table-filter/selected-filters-display/selected-filters-display.d.ts +3 -0
- package/dist/types/components/table/components/table-filter/selected-filters-display/selected-filters-display.type.d.ts +12 -0
- package/dist/types/components/table/components/table-filter/selected-filters-display/selected-filters-display.utils.d.ts +6 -0
- package/dist/types/components/table/components/table-filter/table-filter-button.d.ts +2 -0
- package/dist/types/components/table/components/table-filter/table-filter-column-button.d.ts +3 -0
- package/dist/types/components/table/components/table-filter/table-filter-column-button.type.d.ts +3 -0
- package/dist/types/components/table/components/table-filter/table-filter-provider.d.ts +14 -0
- package/dist/types/components/table/components/table-filter/table-filter.context.d.ts +21 -0
- package/dist/types/components/table/components/table-filter/table-filter.hook.d.ts +1 -2
- package/dist/types/components/table/index.d.ts +1 -2
- package/dist/types/components/table/table-provider.d.ts +1 -1
- package/dist/types/components/table/table.type.d.ts +2 -0
- package/dist/types/components/table/table.utils.d.ts +0 -1
- package/dist/types/components/table-card/table-card.type.d.ts +7 -7
- package/dist/types/hooks/useClickOutside.d.ts +1 -0
- package/dist/types/index.d.ts +1 -0
- package/package.json +2 -1
- package/dist/components/table/components/table-filter/table-filter.d.ts +0 -9
- package/dist/components/table/components/table-filter/table-filter.js +0 -120
- package/dist/types/components/table/components/table-filter/table-filter.d.ts +0 -9
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
export { Table as default, Table, TableProvider } from './table-provider';
|
|
2
2
|
export { TableBody } from './table';
|
|
3
3
|
export type { TableProps, TableSchema, TableSchemaColumn, CellType, CellValue, CellRenderer, CellRendererProps, FilterRule, FilterCondition, FilterOption, TableFilter as TableFilterType, TablePaginationConfig, SortDirection, SortColumn, TableSort, } from './table.type';
|
|
4
|
-
export {
|
|
4
|
+
export { extractCellValue } from './table.utils';
|
|
5
5
|
export { DEFAULT_EMPTY_MESSAGE, TABLE_CSS_CLASSES } from './table.const';
|
|
6
6
|
export { TableContext, useTableContext } from './table.context';
|
|
7
7
|
export { TableCell, TableHeader, TableRow, TableEmptyState, TableLoadingState, TablePagination, TextCell, NumberCell, BooleanCell, TableHeaderWrapper, TableHeaderContent, TableFooter, TableFooterContent, } from './components';
|
|
8
|
-
export { TableFilter } from './components/table-filter';
|
|
9
8
|
export { PaginationInfo, PaginationQuickJumper } from './components/pagination/components';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { TableProps } from './table.type';
|
|
3
3
|
import { TableBody } from './table';
|
|
4
|
-
import { TableFilter } from './components/table-filter';
|
|
4
|
+
import { TableFilter } from './components/table-filter/table-filter-provider';
|
|
5
5
|
import { TableSearch } from './components/table-search';
|
|
6
6
|
import { Pagination } from './components/pagination';
|
|
7
7
|
import { TableHeaderWrapper, TableHeaderContent, TableFooter, TableFooterContent } from './components';
|
|
@@ -17,6 +17,7 @@ export type FilterRule = {
|
|
|
17
17
|
export type FilterOption = {
|
|
18
18
|
label: string;
|
|
19
19
|
value: string;
|
|
20
|
+
total?: number;
|
|
20
21
|
};
|
|
21
22
|
export type TableFilter = {
|
|
22
23
|
value: FilterRule[];
|
|
@@ -47,6 +48,7 @@ export type TableSort = {
|
|
|
47
48
|
};
|
|
48
49
|
export type TableSchemaColumn = {
|
|
49
50
|
key: string;
|
|
51
|
+
valueGetter?: (record: Record<string, any>) => string | number | boolean | null | undefined;
|
|
50
52
|
title: string;
|
|
51
53
|
cellType: CellType;
|
|
52
54
|
cellRenderer?: CellRenderer;
|
|
@@ -1,3 +1,2 @@
|
|
|
1
1
|
import { CellValue, TableSchemaColumn } from './table.type';
|
|
2
|
-
export declare const getNestedValue: (object: Record<string, unknown>, path: string) => CellValue;
|
|
3
2
|
export declare const extractCellValue: (record: Record<string, unknown>, column: TableSchemaColumn) => CellValue;
|
|
@@ -12,7 +12,10 @@ export interface TableCardProps {
|
|
|
12
12
|
search?: Partial<TableSearch> & {
|
|
13
13
|
className?: string;
|
|
14
14
|
};
|
|
15
|
-
filter?: Partial<TableFilter
|
|
15
|
+
filter?: Partial<TableFilter> & {
|
|
16
|
+
quickFilters?: string[];
|
|
17
|
+
showFilterButton?: boolean;
|
|
18
|
+
};
|
|
16
19
|
headerLeftContent?: React.ReactNode;
|
|
17
20
|
headerActions?: React.ReactNode;
|
|
18
21
|
body?: {
|
|
@@ -23,12 +26,9 @@ export interface TableCardProps {
|
|
|
23
26
|
};
|
|
24
27
|
showFooter?: boolean;
|
|
25
28
|
footerClassName?: string;
|
|
26
|
-
pagination?:
|
|
27
|
-
paginationInfo?:
|
|
28
|
-
|
|
29
|
-
totalItems: number;
|
|
30
|
-
};
|
|
31
|
-
paginationQuickJumper?: Partial<PaginationQuickJumperProps>;
|
|
29
|
+
pagination?: PaginationProps;
|
|
30
|
+
paginationInfo?: PaginationInfoProps;
|
|
31
|
+
paginationQuickJumper?: PaginationQuickJumperProps;
|
|
32
32
|
loading?: boolean;
|
|
33
33
|
emptyMessage?: string;
|
|
34
34
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const useClickOutside: (ref: React.RefObject<HTMLElement | null>, callback: () => void) => void;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -17,6 +17,7 @@ export * from './components/table';
|
|
|
17
17
|
export * from './components/tooltip/tooltip';
|
|
18
18
|
export * from './components/table-card';
|
|
19
19
|
export * from './components/badge/badge';
|
|
20
|
+
export * from './components/avatar/avatar';
|
|
20
21
|
export * from './components/assets/icons/apartment-building';
|
|
21
22
|
export * from './components/assets/icons/chevron-down';
|
|
22
23
|
export * from './components/assets/icons/chevron-left';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ztwoint/z-ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.46",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
"lint": "eslint \"src/components/**/*.{js,jsx,ts,tsx}\" --ignore-pattern \"**/*.d.ts\" --ignore-pattern \"**/*.stories.tsx\"",
|
|
36
36
|
"lint:fix": "eslint \"src/components/**/*.{js,jsx,ts,tsx}\" --ignore-pattern \"**/*.d.ts\" --ignore-pattern \"**/*.stories.tsx\" --fix",
|
|
37
37
|
"format": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\"",
|
|
38
|
+
"type-check": "tsc --noEmit --pretty",
|
|
38
39
|
"prepare": "husky"
|
|
39
40
|
},
|
|
40
41
|
"devDependencies": {
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FilterComponentType } from './table-filter.type';
|
|
2
|
-
import { TableSchema, TableFilter as TableFilterType } from '../../table.type';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
export interface TableFilterProps {
|
|
5
|
-
filterComponents?: Record<string, FilterComponentType>;
|
|
6
|
-
schema: TableSchema;
|
|
7
|
-
filter?: TableFilterType;
|
|
8
|
-
}
|
|
9
|
-
export declare const TableFilter: React.FC<TableFilterProps>;
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
2
|
-
import { Button as i } from "../../../button/button.js";
|
|
3
|
-
import T from "./table-filter.hook.js";
|
|
4
|
-
import C from "./filters/text.js";
|
|
5
|
-
import j from "./filters/boolean.js";
|
|
6
|
-
import z from "./filters/number/number.js";
|
|
7
|
-
import A from "./filters/checkbox.js";
|
|
8
|
-
import O from "../../../assets/icons/circle-check-filled.js";
|
|
9
|
-
const E = ({
|
|
10
|
-
filterComponents: n = {},
|
|
11
|
-
schema: d,
|
|
12
|
-
filter: o
|
|
13
|
-
}) => {
|
|
14
|
-
const {
|
|
15
|
-
selectedColumn: r,
|
|
16
|
-
setSelectedColumn: p,
|
|
17
|
-
getFilterForColumn: x,
|
|
18
|
-
hasFilterForColumn: b,
|
|
19
|
-
updateColumnFilter: f,
|
|
20
|
-
clearAllFilters: v,
|
|
21
|
-
applyFilters: k,
|
|
22
|
-
hasActiveFilters: s,
|
|
23
|
-
isOpen: m,
|
|
24
|
-
setIsOpen: u,
|
|
25
|
-
filterableFields: y
|
|
26
|
-
} = T({ schema: d, filter: o || { value: [], onChange: () => {
|
|
27
|
-
} } });
|
|
28
|
-
if (!o)
|
|
29
|
-
return null;
|
|
30
|
-
const N = () => {
|
|
31
|
-
if (!r) return null;
|
|
32
|
-
const e = d.find((c) => c.key === r), F = {
|
|
33
|
-
boolean: j,
|
|
34
|
-
text: C,
|
|
35
|
-
number: z,
|
|
36
|
-
checkbox: A
|
|
37
|
-
}, h = (n == null ? void 0 : n[(e == null ? void 0 : e.cellType) || ""]) || F[(e == null ? void 0 : e.cellType) || "text"];
|
|
38
|
-
if (!h)
|
|
39
|
-
return console.warn(
|
|
40
|
-
`No filter component found for column "${e == null ? void 0 : e.key}" with cellType "${e == null ? void 0 : e.cellType}". Provide a custom filter component or use supported types: "text", "number", "boolean", "checkbox".`
|
|
41
|
-
), null;
|
|
42
|
-
const a = x(r), g = {
|
|
43
|
-
condition: (a == null ? void 0 : a.condition) || "",
|
|
44
|
-
value: (a == null ? void 0 : a.value) || ""
|
|
45
|
-
};
|
|
46
|
-
return /* @__PURE__ */ t("div", { className: "flex-1", children: /* @__PURE__ */ t("div", { className: "mb-4", children: /* @__PURE__ */ t("div", { className: "", children: /* @__PURE__ */ t(
|
|
47
|
-
h,
|
|
48
|
-
{
|
|
49
|
-
value: g,
|
|
50
|
-
onChange: ({ condition: c, value: w }) => f(r, c, w),
|
|
51
|
-
filterOptions: e == null ? void 0 : e.filterOptions
|
|
52
|
-
},
|
|
53
|
-
e == null ? void 0 : e.key
|
|
54
|
-
) }) }) });
|
|
55
|
-
};
|
|
56
|
-
return /* @__PURE__ */ l("div", { className: "relative", children: [
|
|
57
|
-
/* @__PURE__ */ l(
|
|
58
|
-
i,
|
|
59
|
-
{
|
|
60
|
-
onClick: () => u(!m),
|
|
61
|
-
variant: s ? "filled" : "stroke",
|
|
62
|
-
shade: s ? "brand" : "neutral",
|
|
63
|
-
size: "small",
|
|
64
|
-
children: [
|
|
65
|
-
"Filter ",
|
|
66
|
-
s && `(${o.value.length})`
|
|
67
|
-
]
|
|
68
|
-
}
|
|
69
|
-
),
|
|
70
|
-
m && /* @__PURE__ */ l("div", { className: "absolute top-full left-0 mt-2 min-w-[600px] bg-surface-neutral-default border border-stroke-solid-medium rounded-md shadow-default z-10", children: [
|
|
71
|
-
/* @__PURE__ */ l("div", { className: "flex min-h-[300px]", children: [
|
|
72
|
-
/* @__PURE__ */ l("div", { className: "w-48 border-r border-stroke-solid-medium", children: [
|
|
73
|
-
/* @__PURE__ */ t("div", { className: "p-3 border-b border-stroke-solid-medium", children: /* @__PURE__ */ t("h3", { className: "text-sm font-medium text-text-neutral-primary", children: "Columns" }) }),
|
|
74
|
-
/* @__PURE__ */ t("div", { className: "py-2", children: y.map((e) => /* @__PURE__ */ l(
|
|
75
|
-
"button",
|
|
76
|
-
{
|
|
77
|
-
onClick: () => p(e.key),
|
|
78
|
-
className: `w-full text-left px-3 py-2 text-sm flex items-center justify-between hover:bg-surface-neutral-hovered transition-colors ${r === e.key ? "bg-surface-brand-subtle text-text-brand-primary" : "text-text-neutral-primary"}`,
|
|
79
|
-
children: [
|
|
80
|
-
/* @__PURE__ */ t("span", { className: "truncate", children: e.title }),
|
|
81
|
-
b(e.key) && /* @__PURE__ */ t(O, { className: "w-4 h-4 text-icon-brand-primary flex-shrink-0 ml-2" })
|
|
82
|
-
]
|
|
83
|
-
},
|
|
84
|
-
e.key
|
|
85
|
-
)) })
|
|
86
|
-
] }),
|
|
87
|
-
/* @__PURE__ */ t("div", { className: "flex-1 flex flex-col", children: r ? N() : /* @__PURE__ */ t("div", { className: "flex-1 flex items-center justify-center text-text-neutral-muted", children: "Select a column to configure its filter" }) })
|
|
88
|
-
] }),
|
|
89
|
-
/* @__PURE__ */ l("div", { className: "flex justify-between items-center p-4 border-t border-stroke-solid-medium", children: [
|
|
90
|
-
/* @__PURE__ */ t(
|
|
91
|
-
i,
|
|
92
|
-
{
|
|
93
|
-
onClick: v,
|
|
94
|
-
variant: "ghost",
|
|
95
|
-
shade: "neutral",
|
|
96
|
-
size: "small",
|
|
97
|
-
disabled: !s,
|
|
98
|
-
children: "Clear All"
|
|
99
|
-
}
|
|
100
|
-
),
|
|
101
|
-
/* @__PURE__ */ l("div", { className: "flex gap-2", children: [
|
|
102
|
-
/* @__PURE__ */ t(
|
|
103
|
-
i,
|
|
104
|
-
{
|
|
105
|
-
onClick: () => u(!1),
|
|
106
|
-
variant: "stroke",
|
|
107
|
-
shade: "neutral",
|
|
108
|
-
size: "small",
|
|
109
|
-
children: "Cancel"
|
|
110
|
-
}
|
|
111
|
-
),
|
|
112
|
-
/* @__PURE__ */ t(i, { onClick: k, variant: "filled", shade: "neutral", size: "small", children: "Apply" })
|
|
113
|
-
] })
|
|
114
|
-
] })
|
|
115
|
-
] })
|
|
116
|
-
] });
|
|
117
|
-
};
|
|
118
|
-
export {
|
|
119
|
-
E as TableFilter
|
|
120
|
-
};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { FilterComponentType } from './table-filter.type';
|
|
3
|
-
import { TableSchema, TableFilter as TableFilterType } from '../../table.type';
|
|
4
|
-
export interface TableFilterProps {
|
|
5
|
-
filterComponents?: Record<string, FilterComponentType>;
|
|
6
|
-
schema: TableSchema;
|
|
7
|
-
filter?: TableFilterType;
|
|
8
|
-
}
|
|
9
|
-
export declare const TableFilter: React.FC<TableFilterProps>;
|