@tsiky/components-r19 1.0.0 → 1.2.0

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.
Files changed (61) hide show
  1. package/index.ts +35 -33
  2. package/package.json +1 -1
  3. package/src/components/AnnouncementPanel/FlexRowContainer.css +17 -17
  4. package/src/components/AnnouncementPanel/FlexRowContainer.stories.tsx +329 -329
  5. package/src/components/AnnouncementPanel/FlexRowContainer.tsx +24 -24
  6. package/src/components/AnnouncementPanel/ListBox/CounterListBox.css +56 -56
  7. package/src/components/AnnouncementPanel/ListBox/CounterListBox.stories.tsx +292 -292
  8. package/src/components/AnnouncementPanel/ListBox/CounterListBox.tsx +106 -106
  9. package/src/components/AnnouncementPanel/ListBox/SimpleListBox.css +57 -57
  10. package/src/components/AnnouncementPanel/ListBox/SimpleListBox.stories.tsx +189 -189
  11. package/src/components/AnnouncementPanel/ListBox/SimpleListBox.tsx +138 -138
  12. package/src/components/AnnouncementPanel/ListBox/TrendListBox.css +61 -61
  13. package/src/components/AnnouncementPanel/ListBox/TrendListBox.stories.tsx +257 -257
  14. package/src/components/AnnouncementPanel/ListBox/TrendListBox.tsx +90 -90
  15. package/src/components/AnnouncementPanel/ListBox/index.ts +3 -3
  16. package/src/components/AnnouncementPanel/ListContentContainer.css +23 -23
  17. package/src/components/AnnouncementPanel/ListContentContainer.stories.tsx +212 -212
  18. package/src/components/AnnouncementPanel/ListContentContainer.tsx +33 -33
  19. package/src/components/AnnouncementPanel/index.ts +3 -3
  20. package/src/components/Charts/area-chart-admission/AreaChartAdmission.tsx +129 -89
  21. package/src/components/Charts/bar-chart/BarChart.tsx +171 -132
  22. package/src/components/Charts/boxplot-chart/BoxPlotChart.tsx +114 -114
  23. package/src/components/Charts/mixed-chart/MixedChart.tsx +65 -9
  24. package/src/components/Charts/sankey-adaptation/sankey.tsx +70 -70
  25. package/src/components/Charts/sankey-chart/SankeyChart.tsx +183 -155
  26. package/src/components/Confirmationpopup/ConfirmationPopup.module.css +88 -0
  27. package/src/components/Confirmationpopup/ConfirmationPopup.stories.tsx +94 -0
  28. package/src/components/Confirmationpopup/ConfirmationPopup.tsx +47 -0
  29. package/src/components/Confirmationpopup/index.ts +6 -0
  30. package/src/components/Confirmationpopup/useConfirmationPopup.ts +48 -0
  31. package/src/components/DayStatCard/DayStatCard.tsx +96 -69
  32. package/src/components/DraggableSwitcher/DraggableSwitcherButton.tsx +58 -58
  33. package/src/components/DraggableSwitcher/context/useDraggableSwitcher.tsx +45 -45
  34. package/src/components/DraggableSwitcher/index.ts +2 -2
  35. package/src/components/DynamicInput/input/SelectInput.tsx +75 -75
  36. package/src/components/DynamicInput/input/assets/SelectInput.module.css +95 -95
  37. package/src/components/DynamicTable/TableCell.tsx +38 -30
  38. package/src/components/DynamicTable/TableHeader.tsx +39 -34
  39. package/src/components/DynamicTable/TableauDynamique.module.css +1333 -1287
  40. package/src/components/DynamicTable/TableauDynamique.tsx +154 -154
  41. package/src/components/DynamicTable/tools/tableTypes.ts +63 -63
  42. package/src/components/Grid/Grid.tsx +5 -0
  43. package/src/components/Grid/grid.css +285 -285
  44. package/src/components/Header/Header.tsx +4 -2
  45. package/src/components/Header/header.css +61 -31
  46. package/src/components/MetricsPanel/MetricsPanel.module.css +688 -636
  47. package/src/components/MetricsPanel/MetricsPanel.tsx +220 -282
  48. package/src/components/MetricsPanel/renderers/CompactRenderer.tsx +148 -125
  49. package/src/components/NavBar/NavBar.tsx +1 -1
  50. package/src/components/NavItem/NavItem.tsx +58 -58
  51. package/src/components/PeriodRange/PeriodRange.module.css +158 -158
  52. package/src/components/PeriodRange/PeriodRange.tsx +130 -130
  53. package/src/components/SearchBar/SearchBar.css +40 -40
  54. package/src/components/SelectFilter/SelectFilter.module.css +249 -0
  55. package/src/components/SelectFilter/SelectFilter.stories.tsx +321 -0
  56. package/src/components/SelectFilter/SelectFilter.tsx +219 -0
  57. package/src/components/SelectFilter/index.ts +2 -0
  58. package/src/components/SelectFilter/types.ts +19 -0
  59. package/src/components/TranslationKey/TranslationKey.css +272 -272
  60. package/src/components/TranslationKey/TranslationKey.tsx +266 -245
  61. package/src/components/TrendList/TrendList.tsx +72 -45
@@ -1,285 +1,285 @@
1
- /* Conteneur flex qui wrap */
2
- .grid-container {
3
- display: flex;
4
- flex-wrap: wrap;
5
- gap: var(--gap, 0px);
6
- align-items: flex-start;
7
- box-sizing: border-box;
8
- }
9
-
10
- /* Chaque item */
11
- .grid-item {
12
- box-sizing: border-box;
13
- cursor: grab;
14
- transition:
15
- transform 0.2s ease,
16
- box-shadow 0.2s ease,
17
- opacity 0.2s ease;
18
- user-select: none;
19
- padding: 0;
20
- }
21
-
22
- .grid-item-grabbing:active {
23
- cursor: grabbing;
24
- opacity: 0.6;
25
- transform: scale(1.02);
26
- box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
27
- }
28
-
29
- /* ===== XS (mobile par défaut) ===== */
30
- .grid-xs-1 {
31
- flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
32
- max-width: calc(8.3333% - (var(--gap) * 11 / 12));
33
- }
34
- .grid-xs-2 {
35
- flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
36
- max-width: calc(16.6666% - (var(--gap) * 10 / 12));
37
- }
38
- .grid-xs-3 {
39
- flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
40
- max-width: calc(25% - (var(--gap) * 9 / 12));
41
- }
42
- .grid-xs-4 {
43
- flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
44
- max-width: calc(33.3333% - (var(--gap) * 8 / 12));
45
- }
46
- .grid-xs-5 {
47
- flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
48
- max-width: calc(41.6666% - (var(--gap) * 7 / 12));
49
- }
50
- .grid-xs-6 {
51
- flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
52
- max-width: calc(50% - (var(--gap) * 6 / 12));
53
- }
54
- .grid-xs-7 {
55
- flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
56
- max-width: calc(58.3333% - (var(--gap) * 5 / 12));
57
- }
58
- .grid-xs-8 {
59
- flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
60
- max-width: calc(66.6666% - (var(--gap) * 4 / 12));
61
- }
62
- .grid-xs-9 {
63
- flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
64
- max-width: calc(75% - (var(--gap) * 3 / 12));
65
- }
66
- .grid-xs-10 {
67
- flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
68
- max-width: calc(83.3333% - (var(--gap) * 2 / 12));
69
- }
70
- .grid-xs-11 {
71
- flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
72
- max-width: calc(91.6666% - (var(--gap) * 1 / 12));
73
- }
74
- .grid-xs-12 {
75
- flex: 0 0 100%;
76
- max-width: 100%;
77
- }
78
-
79
- /* ===== SM ≥ 600px ===== */
80
- @media (min-width: 600px) {
81
- .grid-sm-1 {
82
- flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
83
- max-width: calc(8.3333% - (var(--gap) * 11 / 12));
84
- }
85
- .grid-sm-2 {
86
- flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
87
- max-width: calc(16.6666% - (var(--gap) * 10 / 12));
88
- }
89
- .grid-sm-3 {
90
- flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
91
- max-width: calc(25% - (var(--gap) * 9 / 12));
92
- }
93
- .grid-sm-4 {
94
- flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
95
- max-width: calc(33.3333% - (var(--gap) * 8 / 12));
96
- }
97
- .grid-sm-5 {
98
- flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
99
- max-width: calc(41.6666% - (var(--gap) * 7 / 12));
100
- }
101
- .grid-sm-6 {
102
- flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
103
- max-width: calc(50% - (var(--gap) * 6 / 12));
104
- }
105
- .grid-sm-7 {
106
- flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
107
- max-width: calc(58.3333% - (var(--gap) * 5 / 12));
108
- }
109
- .grid-sm-8 {
110
- flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
111
- max-width: calc(66.6666% - (var(--gap) * 4 / 12));
112
- }
113
- .grid-sm-9 {
114
- flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
115
- max-width: calc(75% - (var(--gap) * 3 / 12));
116
- }
117
- .grid-sm-10 {
118
- flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
119
- max-width: calc(83.3333% - (var(--gap) * 2 / 12));
120
- }
121
- .grid-sm-11 {
122
- flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
123
- max-width: calc(91.6666% - (var(--gap) * 1 / 12));
124
- }
125
- .grid-sm-12 {
126
- flex: 0 0 100%;
127
- max-width: 100%;
128
- }
129
- }
130
-
131
- /* ===== MD ≥ 900px ===== */
132
- @media (min-width: 900px) {
133
- .grid-md-1 {
134
- flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
135
- max-width: calc(8.3333% - (var(--gap) * 11 / 12));
136
- }
137
- .grid-md-2 {
138
- flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
139
- max-width: calc(16.6666% - (var(--gap) * 10 / 12));
140
- }
141
- .grid-md-3 {
142
- flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
143
- max-width: calc(25% - (var(--gap) * 9 / 12));
144
- }
145
- .grid-md-4 {
146
- flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
147
- max-width: calc(33.3333% - (var(--gap) * 8 / 12));
148
- }
149
- .grid-md-5 {
150
- flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
151
- max-width: calc(41.6666% - (var(--gap) * 7 / 12));
152
- }
153
- .grid-md-6 {
154
- flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
155
- max-width: calc(50% - (var(--gap) * 6 / 12));
156
- }
157
- .grid-md-7 {
158
- flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
159
- max-width: calc(58.3333% - (var(--gap) * 5 / 12));
160
- }
161
- .grid-md-8 {
162
- flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
163
- max-width: calc(66.6666% - (var(--gap) * 4 / 12));
164
- }
165
- .grid-md-9 {
166
- flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
167
- max-width: calc(75% - (var(--gap) * 3 / 12));
168
- }
169
- .grid-md-10 {
170
- flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
171
- max-width: calc(83.3333% - (var(--gap) * 2 / 12));
172
- }
173
- .grid-md-11 {
174
- flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
175
- max-width: calc(91.6666% - (var(--gap) * 1 / 12));
176
- }
177
- .grid-md-12 {
178
- flex: 0 0 100%;
179
- max-width: 100%;
180
- }
181
- }
182
-
183
- /* ===== LG ≥ 1200px ===== */
184
- @media (min-width: 1200px) {
185
- .grid-lg-1 {
186
- flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
187
- max-width: calc(8.3333% - (var(--gap) * 11 / 12));
188
- }
189
- .grid-lg-2 {
190
- flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
191
- max-width: calc(16.6666% - (var(--gap) * 10 / 12));
192
- }
193
- .grid-lg-3 {
194
- flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
195
- max-width: calc(25% - (var(--gap) * 9 / 12));
196
- }
197
- .grid-lg-4 {
198
- flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
199
- max-width: calc(33.3333% - (var(--gap) * 8 / 12));
200
- }
201
- .grid-lg-5 {
202
- flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
203
- max-width: calc(41.6666% - (var(--gap) * 7 / 12));
204
- }
205
- .grid-lg-6 {
206
- flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
207
- max-width: calc(50% - (var(--gap) * 6 / 12));
208
- }
209
- .grid-lg-7 {
210
- flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
211
- max-width: calc(58.3333% - (var(--gap) * 5 / 12));
212
- }
213
- .grid-lg-8 {
214
- flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
215
- max-width: calc(66.6666% - (var(--gap) * 4 / 12));
216
- }
217
- .grid-lg-9 {
218
- flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
219
- max-width: calc(75% - (var(--gap) * 3 / 12));
220
- }
221
- .grid-lg-10 {
222
- flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
223
- max-width: calc(83.3333% - (var(--gap) * 2 / 12));
224
- }
225
- .grid-lg-11 {
226
- flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
227
- max-width: calc(91.6666% - (var(--gap) * 1 / 12));
228
- }
229
- .grid-lg-12 {
230
- flex: 0 0 100%;
231
- max-width: 100%;
232
- }
233
- }
234
-
235
- /* ===== XL ≥ 1536px ===== */
236
- @media (min-width: 1536px) {
237
- .grid-xl-1 {
238
- flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
239
- max-width: calc(8.3333% - (var(--gap) * 11 / 12));
240
- }
241
- .grid-xl-2 {
242
- flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
243
- max-width: calc(16.6666% - (var(--gap) * 10 / 12));
244
- }
245
- .grid-xl-3 {
246
- flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
247
- max-width: calc(25% - (var(--gap) * 9 / 12));
248
- }
249
- .grid-xl-4 {
250
- flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
251
- max-width: calc(33.3333% - (var(--gap) * 8 / 12));
252
- }
253
- .grid-xl-5 {
254
- flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
255
- max-width: calc(41.6666% - (var(--gap) * 7 / 12));
256
- }
257
- .grid-xl-6 {
258
- flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
259
- max-width: calc(50% - (var(--gap) * 6 / 12));
260
- }
261
- .grid-xl-7 {
262
- flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
263
- max-width: calc(58.3333% - (var(--gap) * 5 / 12));
264
- }
265
- .grid-xl-8 {
266
- flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
267
- max-width: calc(66.6666% - (var(--gap) * 4 / 12));
268
- }
269
- .grid-xl-9 {
270
- flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
271
- max-width: calc(75% - (var(--gap) * 3 / 12));
272
- }
273
- .grid-xl-10 {
274
- flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
275
- max-width: calc(83.3333% - (var(--gap) * 2 / 12));
276
- }
277
- .grid-xl-11 {
278
- flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
279
- max-width: calc(91.6666% - (var(--gap) * 1 / 12));
280
- }
281
- .grid-xl-12 {
282
- flex: 0 0 100%;
283
- max-width: 100%;
284
- }
285
- }
1
+ /* Conteneur flex qui wrap */
2
+ .grid-container {
3
+ display: flex;
4
+ flex-wrap: wrap;
5
+ gap: var(--gap, 0px);
6
+ align-items: flex-start;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ /* Chaque item */
11
+ .grid-item {
12
+ box-sizing: border-box;
13
+ cursor: grab;
14
+ transition:
15
+ transform 0.2s ease,
16
+ box-shadow 0.2s ease,
17
+ opacity 0.2s ease;
18
+ user-select: none;
19
+ padding: 0;
20
+ }
21
+
22
+ .grid-item-grabbing:active {
23
+ cursor: grabbing;
24
+ opacity: 0.6;
25
+ transform: scale(1.02);
26
+ box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
27
+ }
28
+
29
+ /* ===== XS (mobile par défaut) ===== */
30
+ .grid-xs-1 {
31
+ flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
32
+ max-width: calc(8.3333% - (var(--gap) * 11 / 12));
33
+ }
34
+ .grid-xs-2 {
35
+ flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
36
+ max-width: calc(16.6666% - (var(--gap) * 10 / 12));
37
+ }
38
+ .grid-xs-3 {
39
+ flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
40
+ max-width: calc(25% - (var(--gap) * 9 / 12));
41
+ }
42
+ .grid-xs-4 {
43
+ flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
44
+ max-width: calc(33.3333% - (var(--gap) * 8 / 12));
45
+ }
46
+ .grid-xs-5 {
47
+ flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
48
+ max-width: calc(41.6666% - (var(--gap) * 7 / 12));
49
+ }
50
+ .grid-xs-6 {
51
+ flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
52
+ max-width: calc(50% - (var(--gap) * 6 / 12));
53
+ }
54
+ .grid-xs-7 {
55
+ flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
56
+ max-width: calc(58.3333% - (var(--gap) * 5 / 12));
57
+ }
58
+ .grid-xs-8 {
59
+ flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
60
+ max-width: calc(66.6666% - (var(--gap) * 4 / 12));
61
+ }
62
+ .grid-xs-9 {
63
+ flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
64
+ max-width: calc(75% - (var(--gap) * 3 / 12));
65
+ }
66
+ .grid-xs-10 {
67
+ flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
68
+ max-width: calc(83.3333% - (var(--gap) * 2 / 12));
69
+ }
70
+ .grid-xs-11 {
71
+ flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
72
+ max-width: calc(91.6666% - (var(--gap) * 1 / 12));
73
+ }
74
+ .grid-xs-12 {
75
+ flex: 0 0 100%;
76
+ max-width: 100%;
77
+ }
78
+
79
+ /* ===== SM ≥ 600px ===== */
80
+ @media (min-width: 600px) {
81
+ .grid-sm-1 {
82
+ flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
83
+ max-width: calc(8.3333% - (var(--gap) * 11 / 12));
84
+ }
85
+ .grid-sm-2 {
86
+ flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
87
+ max-width: calc(16.6666% - (var(--gap) * 10 / 12));
88
+ }
89
+ .grid-sm-3 {
90
+ flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
91
+ max-width: calc(25% - (var(--gap) * 9 / 12));
92
+ }
93
+ .grid-sm-4 {
94
+ flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
95
+ max-width: calc(33.3333% - (var(--gap) * 8 / 12));
96
+ }
97
+ .grid-sm-5 {
98
+ flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
99
+ max-width: calc(41.6666% - (var(--gap) * 7 / 12));
100
+ }
101
+ .grid-sm-6 {
102
+ flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
103
+ max-width: calc(50% - (var(--gap) * 6 / 12));
104
+ }
105
+ .grid-sm-7 {
106
+ flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
107
+ max-width: calc(58.3333% - (var(--gap) * 5 / 12));
108
+ }
109
+ .grid-sm-8 {
110
+ flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
111
+ max-width: calc(66.6666% - (var(--gap) * 4 / 12));
112
+ }
113
+ .grid-sm-9 {
114
+ flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
115
+ max-width: calc(75% - (var(--gap) * 3 / 12));
116
+ }
117
+ .grid-sm-10 {
118
+ flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
119
+ max-width: calc(83.3333% - (var(--gap) * 2 / 12));
120
+ }
121
+ .grid-sm-11 {
122
+ flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
123
+ max-width: calc(91.6666% - (var(--gap) * 1 / 12));
124
+ }
125
+ .grid-sm-12 {
126
+ flex: 0 0 100%;
127
+ max-width: 100%;
128
+ }
129
+ }
130
+
131
+ /* ===== MD ≥ 900px ===== */
132
+ @media (min-width: 900px) {
133
+ .grid-md-1 {
134
+ flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
135
+ max-width: calc(8.3333% - (var(--gap) * 11 / 12));
136
+ }
137
+ .grid-md-2 {
138
+ flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
139
+ max-width: calc(16.6666% - (var(--gap) * 10 / 12));
140
+ }
141
+ .grid-md-3 {
142
+ flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
143
+ max-width: calc(25% - (var(--gap) * 9 / 12));
144
+ }
145
+ .grid-md-4 {
146
+ flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
147
+ max-width: calc(33.3333% - (var(--gap) * 8 / 12));
148
+ }
149
+ .grid-md-5 {
150
+ flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
151
+ max-width: calc(41.6666% - (var(--gap) * 7 / 12));
152
+ }
153
+ .grid-md-6 {
154
+ flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
155
+ max-width: calc(50% - (var(--gap) * 6 / 12));
156
+ }
157
+ .grid-md-7 {
158
+ flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
159
+ max-width: calc(58.3333% - (var(--gap) * 5 / 12));
160
+ }
161
+ .grid-md-8 {
162
+ flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
163
+ max-width: calc(66.6666% - (var(--gap) * 4 / 12));
164
+ }
165
+ .grid-md-9 {
166
+ flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
167
+ max-width: calc(75% - (var(--gap) * 3 / 12));
168
+ }
169
+ .grid-md-10 {
170
+ flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
171
+ max-width: calc(83.3333% - (var(--gap) * 2 / 12));
172
+ }
173
+ .grid-md-11 {
174
+ flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
175
+ max-width: calc(91.6666% - (var(--gap) * 1 / 12));
176
+ }
177
+ .grid-md-12 {
178
+ flex: 0 0 100%;
179
+ max-width: 100%;
180
+ }
181
+ }
182
+
183
+ /* ===== LG ≥ 1200px ===== */
184
+ @media (min-width: 1200px) {
185
+ .grid-lg-1 {
186
+ flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
187
+ max-width: calc(8.3333% - (var(--gap) * 11 / 12));
188
+ }
189
+ .grid-lg-2 {
190
+ flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
191
+ max-width: calc(16.6666% - (var(--gap) * 10 / 12));
192
+ }
193
+ .grid-lg-3 {
194
+ flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
195
+ max-width: calc(25% - (var(--gap) * 9 / 12));
196
+ }
197
+ .grid-lg-4 {
198
+ flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
199
+ max-width: calc(33.3333% - (var(--gap) * 8 / 12));
200
+ }
201
+ .grid-lg-5 {
202
+ flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
203
+ max-width: calc(41.6666% - (var(--gap) * 7 / 12));
204
+ }
205
+ .grid-lg-6 {
206
+ flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
207
+ max-width: calc(50% - (var(--gap) * 6 / 12));
208
+ }
209
+ .grid-lg-7 {
210
+ flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
211
+ max-width: calc(58.3333% - (var(--gap) * 5 / 12));
212
+ }
213
+ .grid-lg-8 {
214
+ flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
215
+ max-width: calc(66.6666% - (var(--gap) * 4 / 12));
216
+ }
217
+ .grid-lg-9 {
218
+ flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
219
+ max-width: calc(75% - (var(--gap) * 3 / 12));
220
+ }
221
+ .grid-lg-10 {
222
+ flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
223
+ max-width: calc(83.3333% - (var(--gap) * 2 / 12));
224
+ }
225
+ .grid-lg-11 {
226
+ flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
227
+ max-width: calc(91.6666% - (var(--gap) * 1 / 12));
228
+ }
229
+ .grid-lg-12 {
230
+ flex: 0 0 100%;
231
+ max-width: 100%;
232
+ }
233
+ }
234
+
235
+ /* ===== XL ≥ 1536px ===== */
236
+ @media (min-width: 1536px) {
237
+ .grid-xl-1 {
238
+ flex: 0 0 calc(8.3333% - (var(--gap) * 11 / 12));
239
+ max-width: calc(8.3333% - (var(--gap) * 11 / 12));
240
+ }
241
+ .grid-xl-2 {
242
+ flex: 0 0 calc(16.6666% - (var(--gap) * 10 / 12));
243
+ max-width: calc(16.6666% - (var(--gap) * 10 / 12));
244
+ }
245
+ .grid-xl-3 {
246
+ flex: 0 0 calc(25% - (var(--gap) * 9 / 12));
247
+ max-width: calc(25% - (var(--gap) * 9 / 12));
248
+ }
249
+ .grid-xl-4 {
250
+ flex: 0 0 calc(33.3333% - (var(--gap) * 8 / 12));
251
+ max-width: calc(33.3333% - (var(--gap) * 8 / 12));
252
+ }
253
+ .grid-xl-5 {
254
+ flex: 0 0 calc(41.6666% - (var(--gap) * 7 / 12));
255
+ max-width: calc(41.6666% - (var(--gap) * 7 / 12));
256
+ }
257
+ .grid-xl-6 {
258
+ flex: 0 0 calc(50% - (var(--gap) * 6 / 12));
259
+ max-width: calc(50% - (var(--gap) * 6 / 12));
260
+ }
261
+ .grid-xl-7 {
262
+ flex: 0 0 calc(58.3333% - (var(--gap) * 5 / 12));
263
+ max-width: calc(58.3333% - (var(--gap) * 5 / 12));
264
+ }
265
+ .grid-xl-8 {
266
+ flex: 0 0 calc(66.6666% - (var(--gap) * 4 / 12));
267
+ max-width: calc(66.6666% - (var(--gap) * 4 / 12));
268
+ }
269
+ .grid-xl-9 {
270
+ flex: 0 0 calc(75% - (var(--gap) * 3 / 12));
271
+ max-width: calc(75% - (var(--gap) * 3 / 12));
272
+ }
273
+ .grid-xl-10 {
274
+ flex: 0 0 calc(83.3333% - (var(--gap) * 2 / 12));
275
+ max-width: calc(83.3333% - (var(--gap) * 2 / 12));
276
+ }
277
+ .grid-xl-11 {
278
+ flex: 0 0 calc(91.6666% - (var(--gap) * 1 / 12));
279
+ max-width: calc(91.6666% - (var(--gap) * 1 / 12));
280
+ }
281
+ .grid-xl-12 {
282
+ flex: 0 0 100%;
283
+ max-width: 100%;
284
+ }
285
+ }
@@ -46,8 +46,10 @@ export const Header: React.FC<HeaderProps> = ({
46
46
 
47
47
  {/* Droite : menu */}
48
48
  <div className='header-right'>
49
- <DraggableSwitcherButton />
50
- <ThemeSwitcherButton />
49
+ <div className='switcher'>
50
+ <DraggableSwitcherButton />
51
+ <ThemeSwitcherButton />
52
+ </div>
51
53
  <DropdownMenu
52
54
  categories={dropdownItems?.categories}
53
55
  buttonContent={dropdownItems?.buttonContent}
@@ -1,31 +1,61 @@
1
- .header {
2
- background: var(--headerBg);
3
- border-bottom: 1px solid rgba(0, 0, 0, 0.06);
4
- box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
5
- max-width: 100vw;
6
- font-size: var(--text-small);
7
- }
8
-
9
- /* container centré */
10
- .header-container {
11
- margin: 0 auto;
12
- display: flex;
13
- align-items: center;
14
- justify-content: space-between;
15
- padding: 15px 17px;
16
- gap: 20px;
17
- }
18
-
19
- /* gauche : logo + nav */
20
- .header-left {
21
- display: flex;
22
- align-items: center;
23
- gap: 22px;
24
- }
25
-
26
- /* droite : menu bouton */
27
- .header-right {
28
- display: flex;
29
- align-items: center;
30
- gap: 12px;
31
- }
1
+ .header {
2
+ background: var(--headerBg);
3
+ border-bottom: 1px solid rgba(0, 0, 0, 0.06);
4
+ box-shadow: 0 1px 0 rgba(0, 0, 0, 0.04);
5
+ max-width: 100vw;
6
+ font-size: var(--text-small);
7
+ }
8
+
9
+ /* container centré */
10
+ .header-container {
11
+ margin: 0 auto;
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: space-between;
15
+ padding: 15px 17px;
16
+ gap: 20px;
17
+ }
18
+
19
+ /* gauche : logo + nav */
20
+ .header-left {
21
+ display: flex;
22
+ align-items: center;
23
+ gap: 22px;
24
+ }
25
+
26
+ /* droite : menu bouton */
27
+ .header-right {
28
+ display: flex;
29
+ align-items: center;
30
+ gap: 12px;
31
+ }
32
+
33
+ .switcher {
34
+ display: flex;
35
+ align-items: center;
36
+ }
37
+
38
+ @media (max-width: 500px) {
39
+ .switcher {
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: center;
43
+ justify-content: center;
44
+ gap: 0.2025rem;
45
+ }
46
+
47
+ .switcher {
48
+ animation: slideDown 0.4s ease;
49
+ }
50
+
51
+ @keyframes slideDown {
52
+ from {
53
+ transform: translateY(-15px);
54
+ opacity: 0;
55
+ }
56
+ to {
57
+ transform: translateY(0);
58
+ opacity: 1;
59
+ }
60
+ }
61
+ }