kelt-ui-kit-react 2.0.3 → 2.0.4
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/README.md +26 -0
- package/dist/addressSearch/AddressSearch.d.ts +20 -0
- package/dist/addressSearch/AddressSearch.view.d.ts +1 -0
- package/dist/badge/Badge.d.ts +1 -3
- package/dist/button/Button.d.ts +1 -1
- package/dist/button/button.interface.d.ts +2 -1
- package/dist/card/Card.d.ts +4 -1
- package/dist/dataTable/DataTable.d.ts +14 -17
- package/dist/dataTable/dataTable.interface.d.ts +19 -24
- package/dist/dataTable/dataTableActions/DataTableAction.d.ts +5 -3
- package/dist/dataTable/dataTableColumn/DataTableColumn.d.ts +7 -13
- package/dist/dataTable/dataTableLoading/DataTableLoading.d.ts +3 -1
- package/dist/dataTable/dataTableRow/DataTableRow.d.ts +6 -5
- package/dist/expands/Expands.d.ts +1 -0
- package/dist/expands/expand/expand.d.ts +3 -2
- package/dist/form/Form.d.ts +10 -2
- package/dist/form/form.enum.d.ts +3 -2
- package/dist/form/form.interface.d.ts +22 -3
- package/dist/form/input/Input.d.ts +0 -3
- package/dist/form/inputNumber/InputNumber.d.ts +2 -0
- package/dist/geocoding/GeocodingService.d.ts +13 -0
- package/dist/geocoding/geocoding.interface.d.ts +20 -0
- package/dist/grid/Grid.d.ts +5 -2
- package/dist/grid/col/Col.d.ts +3 -6
- package/dist/grid/col/colStyled/ColStyled.d.ts +8 -5
- package/dist/grid/grid.interface.d.ts +20 -5
- package/dist/grid/row/Row.d.ts +7 -0
- package/dist/header/Header.d.ts +1 -1
- package/dist/header/header.interface.d.ts +2 -1
- package/dist/icon/Icon.d.ts +1 -1
- package/dist/icon/icon.interface.d.ts +0 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.js +3724 -3628
- package/dist/menus/menu/Menu.d.ts +1 -0
- package/dist/select/Select.d.ts +2 -1
- package/dist/style.css +1 -1
- package/dist/tabs/Tabs.d.ts +1 -2
- package/dist/toaster/store/useToasterStore.d.ts +1 -0
- package/index.html +1 -2
- package/package.json +1 -1
- package/src/App.menu.tsx +8 -0
- package/src/addressSearch/AddressSearch.tsx +246 -0
- package/src/addressSearch/AddressSearch.view.tsx +52 -0
- package/src/addressSearch/addressSearch.css +133 -0
- package/src/badge/Badge.tsx +1 -9
- package/src/badge/badge.css +0 -4
- package/src/button/Button.tsx +3 -1
- package/src/button/button.css +2 -2
- package/src/button/button.interface.tsx +2 -1
- package/src/card/Card.tsx +37 -11
- package/src/card/card.css +7 -28
- package/src/card/cardAction/CardAction.tsx +4 -4
- package/src/damier/Damier.tsx +16 -7
- package/src/damier/damier.css +11 -4
- package/src/dataTable/DataTable.tsx +542 -685
- package/src/dataTable/DataTable.view.tsx +24 -48
- package/src/dataTable/dataTable.css +159 -134
- package/src/dataTable/dataTable.interface.ts +19 -25
- package/src/dataTable/dataTableActions/DataTableAction.tsx +25 -14
- package/src/dataTable/dataTableColumn/DataTableColumn.tsx +14 -64
- package/src/dataTable/dataTableLoading/DataTableLoading.tsx +15 -4
- package/src/dataTable/dataTableRow/DataTableRow.tsx +180 -64
- package/src/expands/Expands.tsx +18 -2
- package/src/expands/expand/expand.tsx +128 -5
- package/src/expands/expands.css +8 -3
- package/src/form/Form.tsx +294 -99
- package/src/form/Form.view.tsx +9 -1
- package/src/form/form.css +64 -1
- package/src/form/form.enum.ts +2 -1
- package/src/form/form.interface.tsx +31 -3
- package/src/form/input/Input.tsx +7 -61
- package/src/form/input/input.css +1 -19
- package/src/form/inputNumber/InputNumber.tsx +11 -6
- package/src/form/inputPrice/InputPrice.tsx +4 -2
- package/src/geocoding/GeocodingService.ts +89 -0
- package/src/geocoding/geocoding.interface.ts +25 -0
- package/src/grid/Grid.tsx +34 -21
- package/src/grid/col/Col.tsx +24 -15
- package/src/grid/col/col.css +3 -0
- package/src/grid/col/colStyled/ColStyled.tsx +59 -41
- package/src/grid/container/container.css +2 -2
- package/src/grid/grid.interface.tsx +25 -5
- package/src/grid/row/Row.tsx +49 -12
- package/src/grid/row/row.css +11 -3
- package/src/header/Header.tsx +4 -2
- package/src/header/header.css +17 -0
- package/src/header/header.interface.tsx +2 -1
- package/src/icon/Icon.tsx +2 -6
- package/src/icon/icon.interface.tsx +0 -1
- package/src/index.css +58 -12
- package/src/index.ts +12 -2
- package/src/menus/Menus.tsx +1 -0
- package/src/menus/menu/Menu.tsx +2 -1
- package/src/select/Select.tsx +5 -3
- package/src/sidebar/Sidebar.tsx +107 -5
- package/src/sidebar/sidebar.css +18 -1
- package/src/tabs/Tabs.tsx +1 -20
- package/src/tabs/tabs.css +9 -3
- package/src/toaster/Toaster.tsx +7 -2
- package/src/toaster/Toaster.view.tsx +1 -0
- package/src/toaster/store/useToasterStore.tsx +2 -0
- package/src/toaster/toaster.css +7 -2
- package/dist/_core/type/generiqueType.d.ts +0 -4
- package/dist/dataTable/dataTableColumn/dataTableColumnFilter/DataTableColumnFilter.d.ts +0 -10
- package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDate/DataTableColumnFilterDate.d.ts +0 -9
- package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDateRange/dataTableColumnFilterDateRange.d.ts +0 -9
- package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterEnum/DataTableColumnFilterEnum.d.ts +0 -13
- package/dist/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterString/DataTableColumnFilterString.d.ts +0 -9
- package/dist/dataTable/dataTableColumn/dataTableColumnSort/DataTableColumnSort.d.ts +0 -11
- package/dist/dataTable/dataTableFilters/DataTableFilters.d.ts +0 -7
- package/dist/dataTable/dataTableRow/dataTableRowOverlay/DataTableRowOverlay.d.ts +0 -12
- package/dist/dataTable/dataTableRow/dataTableRowValue/DataTableRowValue.d.ts +0 -11
- package/package/package.json +0 -56
- package/package/src/sidebar/Sidebar.tsx +0 -208
- package/package/src/sidebar/sidebar.css +0 -104
- package/src/_core/type/generiqueType.tsx +0 -4
- package/src/dataTable/dataTableColumn/dataTableColumnFilter/DataTableColumnFilter.tsx +0 -36
- package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilter.css +0 -0
- package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDate/DataTableColumnFilterDate.tsx +0 -39
- package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterDateRange/dataTableColumnFilterDateRange.tsx +0 -80
- package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterEnum/DataTableColumnFilterEnum.tsx +0 -89
- package/src/dataTable/dataTableColumn/dataTableColumnFilter/dataTableColumnFilterString/DataTableColumnFilterString.tsx +0 -37
- package/src/dataTable/dataTableColumn/dataTableColumnSort/DataTableColumnSort.tsx +0 -42
- package/src/dataTable/dataTableFilters/DataTableFilters.tsx +0 -91
- package/src/dataTable/dataTableFilters/dataTableFilters.css +0 -16
- package/src/dataTable/dataTableRow/dataTableRowOverlay/DataTableRowOverlay.tsx +0 -80
- package/src/dataTable/dataTableRow/dataTableRowValue/DataTableRowValue.tsx +0 -123
package/src/sidebar/Sidebar.tsx
CHANGED
|
@@ -15,6 +15,9 @@ export interface SidebarProps {
|
|
|
15
15
|
onClose?: (close: boolean) => void;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
+
const SWIPE_CLOSE_THRESHOLD = 60; // px à parcourir pour fermer
|
|
19
|
+
const SWIPE_AXIS_LOCK_THRESHOLD = 10; // px pour déterminer l'axe du geste
|
|
20
|
+
|
|
18
21
|
export const Sidebar = ({
|
|
19
22
|
open,
|
|
20
23
|
children,
|
|
@@ -27,8 +30,13 @@ export const Sidebar = ({
|
|
|
27
30
|
displayOverlay = true,
|
|
28
31
|
}: SidebarProps): JSX.Element => {
|
|
29
32
|
const [isOpen, setIsOpen] = useState(open || false);
|
|
33
|
+
const [dragX, setDragX] = useState(0);
|
|
34
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
30
35
|
const sidebarRef = useRef<HTMLDivElement | null>(null);
|
|
31
36
|
const rootRef = useRef<HTMLDivElement | null>(null);
|
|
37
|
+
const touchStartX = useRef(0);
|
|
38
|
+
const touchStartY = useRef(0);
|
|
39
|
+
const axisLocked = useRef<"x" | "y" | null>(null);
|
|
32
40
|
|
|
33
41
|
// Créer le conteneur une seule fois
|
|
34
42
|
useEffect(() => {
|
|
@@ -60,7 +68,7 @@ export const Sidebar = ({
|
|
|
60
68
|
}, [onClose]);
|
|
61
69
|
|
|
62
70
|
const handleClickOutside = useCallback(
|
|
63
|
-
(event: MouseEvent) => {
|
|
71
|
+
(event: MouseEvent | TouchEvent) => {
|
|
64
72
|
if (!closeOnClickOutside) return;
|
|
65
73
|
if (
|
|
66
74
|
sidebarRef.current &&
|
|
@@ -69,18 +77,98 @@ export const Sidebar = ({
|
|
|
69
77
|
toggleSidebar();
|
|
70
78
|
}
|
|
71
79
|
},
|
|
72
|
-
[toggleSidebar, closeOnClickOutside]
|
|
80
|
+
[toggleSidebar, closeOnClickOutside],
|
|
81
|
+
);
|
|
82
|
+
|
|
83
|
+
const handleTouchStart = useCallback((event: React.TouchEvent) => {
|
|
84
|
+
const touch = event.touches[0];
|
|
85
|
+
touchStartX.current = touch.clientX;
|
|
86
|
+
touchStartY.current = touch.clientY;
|
|
87
|
+
axisLocked.current = null;
|
|
88
|
+
setIsDragging(false);
|
|
89
|
+
setDragX(0);
|
|
90
|
+
}, []);
|
|
91
|
+
|
|
92
|
+
const handleTouchMove = useCallback(
|
|
93
|
+
(event: React.TouchEvent) => {
|
|
94
|
+
if (!isOpen) return;
|
|
95
|
+
|
|
96
|
+
const touch = event.touches[0];
|
|
97
|
+
const deltaX = touch.clientX - touchStartX.current;
|
|
98
|
+
const deltaY = touch.clientY - touchStartY.current;
|
|
99
|
+
|
|
100
|
+
// Détermine l'axe du geste une seule fois, dès qu'on a un déplacement suffisant
|
|
101
|
+
if (!axisLocked.current) {
|
|
102
|
+
if (
|
|
103
|
+
Math.abs(deltaX) < SWIPE_AXIS_LOCK_THRESHOLD &&
|
|
104
|
+
Math.abs(deltaY) < SWIPE_AXIS_LOCK_THRESHOLD
|
|
105
|
+
) {
|
|
106
|
+
return; // pas encore assez de mouvement pour trancher
|
|
107
|
+
}
|
|
108
|
+
axisLocked.current = Math.abs(deltaX) > Math.abs(deltaY) ? "x" : "y";
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (axisLocked.current !== "x") {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
// Ignore les petits mouvements horizontaux
|
|
116
|
+
if (deltaX < 20) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
event.preventDefault();
|
|
121
|
+
|
|
122
|
+
setIsDragging(true);
|
|
123
|
+
setDragX(Math.max(0, deltaX));
|
|
124
|
+
},
|
|
125
|
+
[isOpen],
|
|
126
|
+
);
|
|
127
|
+
|
|
128
|
+
const handleTouchEnd = useCallback(
|
|
129
|
+
(event: React.TouchEvent) => {
|
|
130
|
+
if (!isOpen) {
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
if (axisLocked.current === "x") {
|
|
135
|
+
const touch = event.changedTouches[0];
|
|
136
|
+
const deltaX = touch.clientX - touchStartX.current;
|
|
137
|
+
|
|
138
|
+
if (deltaX > SWIPE_CLOSE_THRESHOLD) {
|
|
139
|
+
toggleSidebar();
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
setIsDragging(false);
|
|
144
|
+
setDragX(0);
|
|
145
|
+
axisLocked.current = null;
|
|
146
|
+
},
|
|
147
|
+
[isOpen, toggleSidebar],
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
const handleOverlayTouchEnd = useCallback(
|
|
151
|
+
(event: React.TouchEvent) => {
|
|
152
|
+
event.preventDefault();
|
|
153
|
+
toggleSidebar();
|
|
154
|
+
},
|
|
155
|
+
[toggleSidebar],
|
|
73
156
|
);
|
|
74
157
|
|
|
75
158
|
useEffect(() => {
|
|
76
159
|
if (isOpen) {
|
|
77
160
|
document.addEventListener("mousedown", handleClickOutside);
|
|
161
|
+
document.addEventListener("touchstart", handleClickOutside, {
|
|
162
|
+
passive: true,
|
|
163
|
+
});
|
|
78
164
|
} else {
|
|
79
165
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
166
|
+
document.removeEventListener("touchstart", handleClickOutside);
|
|
80
167
|
}
|
|
81
168
|
|
|
82
169
|
return () => {
|
|
83
170
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
171
|
+
document.removeEventListener("touchstart", handleClickOutside);
|
|
84
172
|
};
|
|
85
173
|
}, [isOpen, handleClickOutside]);
|
|
86
174
|
|
|
@@ -90,11 +178,25 @@ export const Sidebar = ({
|
|
|
90
178
|
|
|
91
179
|
return ReactDOM.createPortal(
|
|
92
180
|
<>
|
|
93
|
-
{isOpen && displayOverlay &&
|
|
181
|
+
{isOpen && displayOverlay && (
|
|
182
|
+
<div
|
|
183
|
+
className="overlay"
|
|
184
|
+
onClick={toggleSidebar}
|
|
185
|
+
onTouchEnd={handleOverlayTouchEnd}
|
|
186
|
+
></div>
|
|
187
|
+
)}
|
|
94
188
|
<div
|
|
95
189
|
ref={sidebarRef}
|
|
96
|
-
style={
|
|
190
|
+
style={{
|
|
191
|
+
...(width ? { width } : {}),
|
|
192
|
+
transform: dragX ? `translateX(${dragX}px)` : undefined,
|
|
193
|
+
transition: isDragging ? "none" : undefined,
|
|
194
|
+
}}
|
|
97
195
|
className={`sidebar ${isOpen ? "open" : "closed"} ${className ?? ""}`}
|
|
196
|
+
onClick={(event) => event.stopPropagation()}
|
|
197
|
+
onTouchStart={handleTouchStart}
|
|
198
|
+
onTouchMove={handleTouchMove}
|
|
199
|
+
onTouchEnd={handleTouchEnd}
|
|
98
200
|
>
|
|
99
201
|
<div className="sidebar-header">
|
|
100
202
|
{title && <h2 className="flex-1">{title}</h2>}
|
|
@@ -106,6 +208,6 @@ export const Sidebar = ({
|
|
|
106
208
|
{children && children}
|
|
107
209
|
</div>
|
|
108
210
|
</>,
|
|
109
|
-
rootRef.current
|
|
211
|
+
rootRef.current,
|
|
110
212
|
);
|
|
111
213
|
};
|
package/src/sidebar/sidebar.css
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
.sidebar {
|
|
2
|
+
touch-action: pan-y;
|
|
3
|
+
/* laisse le scroll vertical natif, gère le X nous-même */
|
|
4
|
+
will-change: transform;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.overlay {
|
|
8
|
+
touch-action: none;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.toggle-btn {
|
|
12
|
+
-webkit-tap-highlight-color: transparent;
|
|
13
|
+
touch-action: manipulation;
|
|
14
|
+
}
|
|
15
|
+
|
|
1
16
|
.sidebar {
|
|
2
17
|
width: 200px;
|
|
3
18
|
height: 100vh;
|
|
@@ -10,6 +25,8 @@
|
|
|
10
25
|
transform: translateX(0);
|
|
11
26
|
z-index: 2;
|
|
12
27
|
|
|
28
|
+
|
|
29
|
+
|
|
13
30
|
&:not(.full) {
|
|
14
31
|
inset: 0;
|
|
15
32
|
}
|
|
@@ -84,4 +101,4 @@
|
|
|
84
101
|
width: 40vw;
|
|
85
102
|
}
|
|
86
103
|
}
|
|
87
|
-
}
|
|
104
|
+
}
|
package/src/tabs/Tabs.tsx
CHANGED
|
@@ -15,7 +15,6 @@ export type TabsProps = {
|
|
|
15
15
|
className?: string;
|
|
16
16
|
tabClassName?: string;
|
|
17
17
|
panelClassName?: string;
|
|
18
|
-
keepMountedVisited?: boolean;
|
|
19
18
|
};
|
|
20
19
|
|
|
21
20
|
export const Tabs = ({
|
|
@@ -26,14 +25,9 @@ export const Tabs = ({
|
|
|
26
25
|
className = "",
|
|
27
26
|
tabClassName = "",
|
|
28
27
|
panelClassName = "",
|
|
29
|
-
keepMountedVisited = false,
|
|
30
28
|
}: TabsProps) => {
|
|
31
29
|
const isControlled = typeof index === "number";
|
|
32
30
|
const [active, setActive] = useState<number>(defaultIndex);
|
|
33
|
-
// En mode contrôlé, seul l'onglet réellement affiché est considéré comme visité
|
|
34
|
-
const [visitedTabs, setVisitedTabs] = useState<Set<number>>(
|
|
35
|
-
() => new Set([isControlled ? (index as number) : defaultIndex]),
|
|
36
|
-
);
|
|
37
31
|
const current = isControlled ? (index as number) : active;
|
|
38
32
|
|
|
39
33
|
useEffect(() => {
|
|
@@ -43,18 +37,6 @@ export const Tabs = ({
|
|
|
43
37
|
}
|
|
44
38
|
}, [defaultIndex, items.length, isControlled]);
|
|
45
39
|
|
|
46
|
-
useEffect(() => {
|
|
47
|
-
setVisitedTabs((prev) => {
|
|
48
|
-
if (prev.has(current)) {
|
|
49
|
-
return prev;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const next = new Set(prev);
|
|
53
|
-
next.add(current);
|
|
54
|
-
return next;
|
|
55
|
-
});
|
|
56
|
-
}, [current]);
|
|
57
|
-
|
|
58
40
|
const tabsRef = useRef<Array<HTMLButtonElement | null>>([]);
|
|
59
41
|
|
|
60
42
|
const activate = (next: number) => {
|
|
@@ -100,8 +82,7 @@ export const Tabs = ({
|
|
|
100
82
|
hidden={current !== i}
|
|
101
83
|
className={`${panelClassName} mt-3`}
|
|
102
84
|
>
|
|
103
|
-
{
|
|
104
|
-
t.panel}
|
|
85
|
+
{current === i && t.panel}
|
|
105
86
|
</div>
|
|
106
87
|
))}
|
|
107
88
|
</div>
|
package/src/tabs/tabs.css
CHANGED
|
@@ -1,24 +1,30 @@
|
|
|
1
1
|
.tabs-root {
|
|
2
2
|
height: 100%;
|
|
3
|
+
|
|
3
4
|
.tabs-header {
|
|
4
5
|
display: flex;
|
|
5
6
|
border-bottom: 1px solid #b2a1a1;
|
|
7
|
+
|
|
6
8
|
.tab-button {
|
|
7
9
|
padding: 0.5rem 0.75rem;
|
|
8
10
|
border: 0px;
|
|
9
11
|
outline: none;
|
|
10
12
|
background-color: transparent;
|
|
11
|
-
color: #1e293b;
|
|
13
|
+
color: #1e293b;
|
|
14
|
+
/* slate-800 */
|
|
12
15
|
cursor: pointer;
|
|
13
16
|
|
|
14
17
|
&.tab-button--active {
|
|
15
|
-
border-bottom: 2px solid var(--primary-color);
|
|
18
|
+
border-bottom: 2px solid var(--primary-color);
|
|
19
|
+
/* slate-800 */
|
|
16
20
|
border-radius: 0px;
|
|
21
|
+
font-weight: bold;
|
|
17
22
|
}
|
|
23
|
+
|
|
18
24
|
&.tab-button--disabled {
|
|
19
25
|
opacity: 0.5;
|
|
20
26
|
cursor: not-allowed;
|
|
21
27
|
}
|
|
22
28
|
}
|
|
23
29
|
}
|
|
24
|
-
}
|
|
30
|
+
}
|
package/src/toaster/Toaster.tsx
CHANGED
|
@@ -34,9 +34,14 @@ export const Toaster = () => {
|
|
|
34
34
|
return ReactDOM.createPortal(
|
|
35
35
|
<div className={`toaster toaster-${severity}`}>
|
|
36
36
|
{close && (
|
|
37
|
-
<
|
|
37
|
+
<button
|
|
38
|
+
type="button"
|
|
39
|
+
className="toaster--close"
|
|
40
|
+
onClick={onClose}
|
|
41
|
+
aria-label="Fermer la notification"
|
|
42
|
+
>
|
|
38
43
|
<Icon classIcon="bi-x" />
|
|
39
|
-
</
|
|
44
|
+
</button>
|
|
40
45
|
)}
|
|
41
46
|
<div>
|
|
42
47
|
{severity === "info" && <Icon classIcon="bi-info-circle" />}
|
|
@@ -15,6 +15,7 @@ type ToasterState = {
|
|
|
15
15
|
severity?: "info" | "success" | "error" | "warning";
|
|
16
16
|
duration?: number;
|
|
17
17
|
children?: React.ReactNode;
|
|
18
|
+
close?: boolean;
|
|
18
19
|
}
|
|
19
20
|
) => void;
|
|
20
21
|
hideToast: () => void;
|
|
@@ -36,6 +37,7 @@ export const useToasterStore = create<ToasterState>((set) => ({
|
|
|
36
37
|
duration: options.duration || 2500,
|
|
37
38
|
visible: true,
|
|
38
39
|
children: options.children || null,
|
|
40
|
+
close: options.close ?? true,
|
|
39
41
|
})),
|
|
40
42
|
hideToast: () => set(() => ({ visible: false })),
|
|
41
43
|
}));
|
package/src/toaster/toaster.css
CHANGED
|
@@ -15,7 +15,12 @@
|
|
|
15
15
|
position: absolute;
|
|
16
16
|
top: 2px;
|
|
17
17
|
right: 2px;
|
|
18
|
+
margin: 0;
|
|
19
|
+
padding: 0;
|
|
20
|
+
border: 0;
|
|
21
|
+
background: transparent;
|
|
18
22
|
color: #333;
|
|
23
|
+
min-width: auto;
|
|
19
24
|
cursor: pointer;
|
|
20
25
|
.bi {
|
|
21
26
|
font-size: 1.2rem;
|
|
@@ -55,7 +60,7 @@
|
|
|
55
60
|
}
|
|
56
61
|
.title {
|
|
57
62
|
font-weight: 500;
|
|
58
|
-
font-size:
|
|
63
|
+
font-size: 18px;
|
|
59
64
|
&.title-info {
|
|
60
65
|
color: var(--primary-color);
|
|
61
66
|
}
|
|
@@ -70,7 +75,7 @@
|
|
|
70
75
|
}
|
|
71
76
|
}
|
|
72
77
|
.subtitle {
|
|
73
|
-
font-size:
|
|
78
|
+
font-size: 16px;
|
|
74
79
|
}
|
|
75
80
|
.bi-info-circle {
|
|
76
81
|
color: var(--primary-color);
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { DataTableColumnsInterface } from '../../dataTable.interface';
|
|
2
|
-
|
|
3
|
-
type DataTableColumnFilterProps<T> = {
|
|
4
|
-
className?: string;
|
|
5
|
-
column: DataTableColumnsInterface<T>;
|
|
6
|
-
isFilterVisible?: boolean;
|
|
7
|
-
onToggleVisibility?: (column: DataTableColumnsInterface<T>) => void;
|
|
8
|
-
};
|
|
9
|
-
export declare const DataTableColumnFilter: <T>({ className, column, isFilterVisible, onToggleVisibility, }: DataTableColumnFilterProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type DataTableColumnFilterDateProps = {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
label: string;
|
|
5
|
-
onChange: (value: string) => void;
|
|
6
|
-
currentValue?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const DataTableColumnFilterDate: ({ id, name, label, onChange, currentValue, }: DataTableColumnFilterDateProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type DataTableColumnFilterDateRangeProps = {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
onChange: (startDate: string, endDate: string) => void;
|
|
5
|
-
currentStartValue?: string;
|
|
6
|
-
currentEndValue?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const DataTableColumnFilterDateRange: ({ id, name, onChange, currentStartValue, currentEndValue, }: DataTableColumnFilterDateRangeProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EnumerableType } from '../../../../_core/type/generiqueType';
|
|
2
|
-
import { TypeInputEnum } from '../../../../form/form.enum';
|
|
3
|
-
|
|
4
|
-
type DataTableColumnFilterEnumProps = {
|
|
5
|
-
type: TypeInputEnum;
|
|
6
|
-
id: string;
|
|
7
|
-
name?: string;
|
|
8
|
-
data: EnumerableType[];
|
|
9
|
-
onChange: (value: string) => void;
|
|
10
|
-
currentValue?: string;
|
|
11
|
-
};
|
|
12
|
-
export declare const DataTableColumnFilterEnum: ({ type, id, onChange, name, data, currentValue, }: DataTableColumnFilterEnumProps) => import("react/jsx-runtime").JSX.Element;
|
|
13
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
type DataTableColumnFilterStringProps = {
|
|
2
|
-
id: string;
|
|
3
|
-
name: string;
|
|
4
|
-
label: string;
|
|
5
|
-
onChange: (value: string) => void;
|
|
6
|
-
currentValue?: string;
|
|
7
|
-
};
|
|
8
|
-
export declare const DataTableColumnFilterString: ({ id, name, label, onChange, currentValue, }: DataTableColumnFilterStringProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DataTableSortDirection } from '../../DataTable';
|
|
2
|
-
import { DataTableColumnsInterface } from '../../dataTable.interface';
|
|
3
|
-
|
|
4
|
-
type DataTableColumnSortProps<T> = {
|
|
5
|
-
className?: string;
|
|
6
|
-
column: DataTableColumnsInterface<T>;
|
|
7
|
-
sortDirection?: DataTableSortDirection | null;
|
|
8
|
-
onToggleSort?: (column: DataTableColumnsInterface<T>) => void;
|
|
9
|
-
};
|
|
10
|
-
export declare const DataTableColumnSort: <T>({ className, column, sortDirection, onToggleSort, }: DataTableColumnSortProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { DataTableFilterState } from '../DataTable';
|
|
2
|
-
|
|
3
|
-
export type DataTableFiltersProps = {
|
|
4
|
-
currentFilters: DataTableFilterState;
|
|
5
|
-
setCurrentFilters: React.Dispatch<React.SetStateAction<DataTableFilterState>>;
|
|
6
|
-
};
|
|
7
|
-
export declare const DataTableFilters: ({ currentFilters, setCurrentFilters, }: DataTableFiltersProps) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { DataTableColumnsInterface } from '../../dataTable.interface';
|
|
2
|
-
|
|
3
|
-
type DataTableRowOverlayProps = {
|
|
4
|
-
row: any;
|
|
5
|
-
column: DataTableColumnsInterface<any>;
|
|
6
|
-
value: string;
|
|
7
|
-
refRow: React.RefObject<HTMLTableCellElement>;
|
|
8
|
-
onClose?: (close: boolean) => void;
|
|
9
|
-
onEditColumnByOverlay?: (newRow: any) => void;
|
|
10
|
-
};
|
|
11
|
-
export declare const DataTableRowOverlay: ({ row, refRow, value, onClose, column, onEditColumnByOverlay, }: DataTableRowOverlayProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export {};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { DataTableColumnsInterface } from '../../dataTable.interface';
|
|
2
|
-
|
|
3
|
-
type DataTableRowValueProps = {
|
|
4
|
-
column: DataTableColumnsInterface<any>;
|
|
5
|
-
value: any;
|
|
6
|
-
row: any;
|
|
7
|
-
editable?: boolean;
|
|
8
|
-
onChange?: (value: any) => void;
|
|
9
|
-
};
|
|
10
|
-
export declare const DataTableRowValue: ({ column, row, value, editable, onChange, }: DataTableRowValueProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
package/package/package.json
DELETED
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "kelt-ui-kit-react",
|
|
3
|
-
"type": "module",
|
|
4
|
-
"version": "1.8.2",
|
|
5
|
-
"private": false,
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"types": "dist/index.d.ts",
|
|
8
|
-
"dependencies": {
|
|
9
|
-
"@types/node": "^22.5.5",
|
|
10
|
-
"@vitejs/plugin-react": "^4.3.1",
|
|
11
|
-
"bootstrap-icons": "^1.11.3",
|
|
12
|
-
"jwt-decode": "^4.0.0",
|
|
13
|
-
"react-date-picker": "^11.0.0",
|
|
14
|
-
"styled-components": "^6.1.13",
|
|
15
|
-
"vite": "^5.4.6",
|
|
16
|
-
"vite-plugin-dts": "^4.2.2",
|
|
17
|
-
"vite-plugin-eslint": "^1.8.1",
|
|
18
|
-
"web-vitals": "^2.1.4",
|
|
19
|
-
"zustand": "^5.0.5"
|
|
20
|
-
},
|
|
21
|
-
"peerDependencies": {
|
|
22
|
-
"react": "^18.3.1",
|
|
23
|
-
"react-dom": "^18.3.1",
|
|
24
|
-
"react-router-dom": "^6.26.2"
|
|
25
|
-
},
|
|
26
|
-
"scripts": {
|
|
27
|
-
"dev": "vite",
|
|
28
|
-
"build": "tsc -b && vite build",
|
|
29
|
-
"lint": "eslint .",
|
|
30
|
-
"preview": "vite preview"
|
|
31
|
-
},
|
|
32
|
-
"eslintConfig": {
|
|
33
|
-
"extends": [
|
|
34
|
-
"react-app",
|
|
35
|
-
"react-app/jest"
|
|
36
|
-
]
|
|
37
|
-
},
|
|
38
|
-
"browserslist": {
|
|
39
|
-
"production": [
|
|
40
|
-
">0.2%",
|
|
41
|
-
"not dead",
|
|
42
|
-
"not op_mini all"
|
|
43
|
-
],
|
|
44
|
-
"development": [
|
|
45
|
-
"last 1 chrome version",
|
|
46
|
-
"last 1 firefox version",
|
|
47
|
-
"last 1 safari version"
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
"devDependencies": {
|
|
51
|
-
"@types/react-dom": "^18.3.0",
|
|
52
|
-
"@types/react-router-dom": "^5.3.3",
|
|
53
|
-
"typescript": "^4.9.5",
|
|
54
|
-
"vite-plugin-checker": "^0.8.0"
|
|
55
|
-
}
|
|
56
|
-
}
|