allaw-ui 3.2.3 → 3.2.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/dist/components/atoms/buttons/ActionButton.js +2 -2
- package/dist/components/atoms/buttons/ActionButton.stories.js +2 -2
- package/dist/components/atoms/buttons/PrimaryButton.js +2 -2
- package/dist/components/atoms/buttons/PrimaryButton.stories.js +2 -2
- package/dist/components/atoms/buttons/SecondaryButton.js +2 -2
- package/dist/components/atoms/buttons/SecondaryButton.stories.js +2 -2
- package/dist/components/atoms/buttons/TabNavigation.css +18 -0
- package/dist/components/atoms/buttons/TabNavigation.d.ts +2 -0
- package/dist/components/atoms/buttons/TabNavigation.js +41 -1
- package/dist/components/atoms/buttons/TabNavigation.stories.d.ts +2 -0
- package/dist/components/atoms/buttons/TabNavigation.stories.js +54 -0
- package/dist/components/molecules/fileUploader/FileUploader.js +2 -2
- package/dist/components/molecules/fileUploader/FileUploader.stories.js +2 -2
- package/dist/components/molecules/stepper/Stepper.js +2 -2
- package/dist/components/molecules/stepper/Stepper.stories.js +2 -2
- package/dist/stories/Page.stories.js +2 -2
- package/package.json +1 -1
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
24
|
-
return g
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
23
|
-
return g
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
24
|
-
return g
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
23
|
-
return g
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -20,8 +20,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
20
20
|
});
|
|
21
21
|
};
|
|
22
22
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
24
|
-
return g
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
25
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
26
|
function step(op) {
|
|
27
27
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
23
|
-
return g
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -153,6 +153,8 @@
|
|
|
153
153
|
font-weight: 500;
|
|
154
154
|
line-height: 1;
|
|
155
155
|
text-align: center;
|
|
156
|
+
transition: 0.2s ease-in-out;
|
|
157
|
+
min-width: 12px; /* Assure un minimum de largeur pour les labels très courts */
|
|
156
158
|
}
|
|
157
159
|
|
|
158
160
|
.tab-notification-dot {
|
|
@@ -182,3 +184,19 @@
|
|
|
182
184
|
.tab-navigation.tab-navigation--round.small .tab-notification-dot {
|
|
183
185
|
top: 10px;
|
|
184
186
|
}
|
|
187
|
+
|
|
188
|
+
/* Styles pour assurer une transition fluide entre les différentes tailles de labels */
|
|
189
|
+
.tab-item {
|
|
190
|
+
transition: width 0.2s ease-in-out;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
/* Style pour assurer un meilleur affichage des labels très courts */
|
|
194
|
+
.tab-navigation.small .tab-item {
|
|
195
|
+
min-width: 32px; /* Largeur minimale pour les tabs très courts sur mobile */
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
/* Assurer que le label reste centré pendant la transition */
|
|
199
|
+
.tab-item {
|
|
200
|
+
justify-content: center;
|
|
201
|
+
white-space: nowrap;
|
|
202
|
+
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import "./TabNavigation.css";
|
|
3
3
|
import "../../../styles/global.css";
|
|
4
|
+
export type ResponsiveLabels = Record<number, string>;
|
|
4
5
|
export interface TabNavigationProps {
|
|
5
6
|
tabs: {
|
|
6
7
|
label: string;
|
|
7
8
|
isActive: boolean;
|
|
8
9
|
hasNotification: boolean;
|
|
10
|
+
responsiveLabels?: ResponsiveLabels;
|
|
9
11
|
}[];
|
|
10
12
|
onTabClick: (index: number) => void;
|
|
11
13
|
size?: "small" | "normal";
|
|
@@ -5,6 +5,7 @@ var TabNavigation = function (_a) {
|
|
|
5
5
|
var tabs = _a.tabs, onTabClick = _a.onTabClick, _b = _a.size, size = _b === void 0 ? "normal" : _b, _c = _a.variant, variant = _c === void 0 ? "normal" : _c;
|
|
6
6
|
var navRef = useRef(null);
|
|
7
7
|
var _d = useState(null), activeTabElement = _d[0], setActiveTabElement = _d[1];
|
|
8
|
+
var _e = useState(tabs.map(function (tab) { return tab.label; })), currentLabels = _e[0], setCurrentLabels = _e[1];
|
|
8
9
|
// Scroll to active tab when it changes
|
|
9
10
|
useEffect(function () {
|
|
10
11
|
if (size === "small" && navRef.current && activeTabElement) {
|
|
@@ -21,8 +22,47 @@ var TabNavigation = function (_a) {
|
|
|
21
22
|
setActiveTabElement(element);
|
|
22
23
|
}
|
|
23
24
|
};
|
|
25
|
+
// Effect for responsive labels
|
|
26
|
+
useEffect(function () {
|
|
27
|
+
// Skip if no tabs have responsive labels
|
|
28
|
+
if (!tabs.some(function (tab) { return tab.responsiveLabels; })) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
var handleResize = function () {
|
|
32
|
+
var width = window.innerWidth;
|
|
33
|
+
var newLabels = tabs.map(function (tab) {
|
|
34
|
+
if (!tab.responsiveLabels) {
|
|
35
|
+
return tab.label;
|
|
36
|
+
}
|
|
37
|
+
var breakpoints = Object.keys(tab.responsiveLabels)
|
|
38
|
+
.map(Number)
|
|
39
|
+
.sort(function (a, b) { return a - b; });
|
|
40
|
+
// Find the appropriate label for the current width
|
|
41
|
+
var selectedLabel = tab.label; // Default to the prop label
|
|
42
|
+
for (var _i = 0, breakpoints_1 = breakpoints; _i < breakpoints_1.length; _i++) {
|
|
43
|
+
var breakpoint = breakpoints_1[_i];
|
|
44
|
+
if (width >= breakpoint) {
|
|
45
|
+
selectedLabel = tab.responsiveLabels[breakpoint];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return selectedLabel;
|
|
52
|
+
});
|
|
53
|
+
setCurrentLabels(newLabels);
|
|
54
|
+
};
|
|
55
|
+
// Initial check
|
|
56
|
+
handleResize();
|
|
57
|
+
// Add event listener
|
|
58
|
+
window.addEventListener("resize", handleResize);
|
|
59
|
+
// Cleanup
|
|
60
|
+
return function () {
|
|
61
|
+
window.removeEventListener("resize", handleResize);
|
|
62
|
+
};
|
|
63
|
+
}, [tabs]);
|
|
24
64
|
return (React.createElement("div", { ref: navRef, className: "tab-navigation ".concat(size, " ").concat(variant === "round" ? "tab-navigation--round" : "") }, tabs.map(function (tab, index) { return (React.createElement("div", { key: index, ref: function (el) { return setTabRef(el, tab.isActive); }, className: "tab-item ".concat(tab.isActive ? "active" : "inactive"), onClick: function () { return onTabClick(index); } },
|
|
25
|
-
React.createElement("span", { className: "tab-label" },
|
|
65
|
+
React.createElement("span", { className: "tab-label" }, currentLabels[index]),
|
|
26
66
|
tab.hasNotification && React.createElement("span", { className: "tab-notification-dot" }))); })));
|
|
27
67
|
};
|
|
28
68
|
export default TabNavigation;
|
|
@@ -122,3 +122,57 @@ ManyTabsSmall.parameters = {
|
|
|
122
122
|
defaultViewport: "mobile",
|
|
123
123
|
},
|
|
124
124
|
};
|
|
125
|
+
// Exemple avec des labels responsifs
|
|
126
|
+
export var ResponsiveLabels = Template.bind({});
|
|
127
|
+
ResponsiveLabels.args = {
|
|
128
|
+
tabs: [
|
|
129
|
+
{
|
|
130
|
+
label: "Tous les dossiers",
|
|
131
|
+
isActive: true,
|
|
132
|
+
hasNotification: false,
|
|
133
|
+
responsiveLabels: {
|
|
134
|
+
768: "Tous",
|
|
135
|
+
375: "Ts",
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
label: "Notes importantes",
|
|
140
|
+
isActive: false,
|
|
141
|
+
hasNotification: false,
|
|
142
|
+
responsiveLabels: {
|
|
143
|
+
768: "Notes",
|
|
144
|
+
375: "Nt",
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
label: "Documents clients",
|
|
149
|
+
isActive: false,
|
|
150
|
+
hasNotification: true,
|
|
151
|
+
responsiveLabels: {
|
|
152
|
+
768: "Docs",
|
|
153
|
+
375: "Dc",
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
label: "Factures impayées",
|
|
158
|
+
isActive: false,
|
|
159
|
+
hasNotification: false,
|
|
160
|
+
responsiveLabels: {
|
|
161
|
+
768: "Factures",
|
|
162
|
+
375: "Fct",
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
],
|
|
166
|
+
onTabClick: function (index) { return console.log("Tab ".concat(index, " cliqu\u00E9")); },
|
|
167
|
+
size: "normal",
|
|
168
|
+
variant: "normal",
|
|
169
|
+
};
|
|
170
|
+
ResponsiveLabels.parameters = {
|
|
171
|
+
docs: {
|
|
172
|
+
description: {
|
|
173
|
+
story: "Ce composant utilise des labels responsifs qui changent en fonction de la taille de l'écran. Essayez de redimensionner la fenêtre pour voir les changements.",
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
};
|
|
177
|
+
export var ResponsiveLabelsRound = Template.bind({});
|
|
178
|
+
ResponsiveLabelsRound.args = __assign(__assign({}, ResponsiveLabels.args), { variant: "round" });
|
|
@@ -8,8 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
12
|
-
return g
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
13
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
14
|
function step(op) {
|
|
15
15
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
23
|
-
return g
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -9,8 +9,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
13
|
-
return g
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
14
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
15
|
function step(op) {
|
|
16
16
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -19,8 +19,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
22
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
23
|
-
return g
|
|
22
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
23
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
24
24
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
25
25
|
function step(op) {
|
|
26
26
|
if (f) throw new TypeError("Generator is already executing.");
|
|
@@ -8,8 +8,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
});
|
|
9
9
|
};
|
|
10
10
|
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g
|
|
12
|
-
return g
|
|
11
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
12
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
13
|
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
14
|
function step(op) {
|
|
15
15
|
if (f) throw new TypeError("Generator is already executing.");
|