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.
@@ -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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
24
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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" }, 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;
@@ -76,4 +76,6 @@ export const Small: any;
76
76
  export const Round: any;
77
77
  export const SmallRound: any;
78
78
  export const ManyTabsSmall: any;
79
+ export const ResponsiveLabels: any;
80
+ export const ResponsiveLabelsRound: any;
79
81
  import TabNavigation from "./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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
13
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
23
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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 = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), 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.");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allaw-ui",
3
- "version": "3.2.3",
3
+ "version": "3.2.4",
4
4
  "description": "Composants UI pour l'application Allaw",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.esm.js",