@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,106 +1,106 @@
1
- import React from 'react';
2
- import './CounterListBox.css';
3
-
4
- export type CounterListBoxProps = {
5
- className?: string;
6
- style?: React.CSSProperties;
7
- title?: string;
8
- titleColor?: string;
9
- data?: (string | [string, string])[];
10
- badgeColor?: string;
11
- badgeColors?: { [index: number]: string };
12
- badgePadding?: string;
13
- badgeWidth?: string;
14
- itemBg?: string;
15
- lineClasses?: { [index: number]: string };
16
- colGap?: string;
17
- };
18
-
19
- export const CounterListBox: React.FC<CounterListBoxProps> = ({
20
- className = '',
21
- style = {},
22
- title,
23
- titleColor,
24
- data = [],
25
- badgeColor = '#0ea5e9',
26
- badgeColors = {},
27
- badgePadding = '8px 16px',
28
- badgeWidth,
29
- itemBg,
30
- lineClasses = {},
31
- colGap = '1rem',
32
- }) => {
33
- const has2D = data.some((r) => Array.isArray(r));
34
- const gridStyle: React.CSSProperties | undefined = colGap
35
- ? ({ ['--col-gap' as any]: colGap } as React.CSSProperties)
36
- : undefined;
37
-
38
- return (
39
- <div className={`clb-root ${className}`} style={{ ...style }}>
40
- {title && (
41
- <div className='clb-title' style={titleColor ? { color: titleColor } : undefined}>
42
- {title}
43
- </div>
44
- )}
45
-
46
- <div className='clb-grid' style={gridStyle}>
47
- {(data as (string | [string, string])[]).map((row, idx) => {
48
- const lineClass = lineClasses[idx] || '';
49
-
50
- if (Array.isArray(row)) {
51
- const [left, right] = row;
52
- const currentBadgeColor = badgeColors[idx] || badgeColor;
53
-
54
- return (
55
- <div
56
- key={idx}
57
- className={`clb-row ${lineClass}`}
58
- style={{ background: itemBg ?? undefined }}
59
- >
60
- <div className='clb-badge-col'>
61
- <div
62
- className='counter-badge'
63
- style={{
64
- background: currentBadgeColor,
65
- padding: badgePadding,
66
- width: badgeWidth,
67
- minWidth: badgeWidth,
68
- }}
69
- >
70
- {left}
71
- </div>
72
- </div>
73
-
74
- <div className='clb-text'>{right}</div>
75
- </div>
76
- );
77
- }
78
-
79
- if (!has2D) {
80
- return (
81
- <div
82
- key={idx}
83
- className={`clb-fullrow ${lineClass}`}
84
- style={{ background: itemBg ?? undefined }}
85
- >
86
- <span>{row as string}</span>
87
- </div>
88
- );
89
- }
90
-
91
- // 1D in mixed mode: empty badge + text
92
- return (
93
- <div
94
- key={idx}
95
- className={`clb-row ${lineClass}`}
96
- style={{ background: itemBg ?? undefined }}
97
- >
98
- <div className='clb-badge-col clb-empty-badge' />
99
- <div className='clb-text'>{row as string}</div>
100
- </div>
101
- );
102
- })}
103
- </div>
104
- </div>
105
- );
106
- };
1
+ import React from 'react';
2
+ import './CounterListBox.css';
3
+
4
+ export type CounterListBoxProps = {
5
+ className?: string;
6
+ style?: React.CSSProperties;
7
+ title?: string;
8
+ titleColor?: string;
9
+ data?: (string | [string, string])[];
10
+ badgeColor?: string;
11
+ badgeColors?: { [index: number]: string };
12
+ badgePadding?: string;
13
+ badgeWidth?: string;
14
+ itemBg?: string;
15
+ lineClasses?: { [index: number]: string };
16
+ colGap?: string;
17
+ };
18
+
19
+ export const CounterListBox: React.FC<CounterListBoxProps> = ({
20
+ className = '',
21
+ style = {},
22
+ title,
23
+ titleColor,
24
+ data = [],
25
+ badgeColor = '#0ea5e9',
26
+ badgeColors = {},
27
+ badgePadding = '8px 16px',
28
+ badgeWidth,
29
+ itemBg,
30
+ lineClasses = {},
31
+ colGap = '1rem',
32
+ }) => {
33
+ const has2D = data.some((r) => Array.isArray(r));
34
+ const gridStyle: React.CSSProperties | undefined = colGap
35
+ ? ({ ['--col-gap' as any]: colGap } as React.CSSProperties)
36
+ : undefined;
37
+
38
+ return (
39
+ <div className={`clb-root ${className}`} style={{ ...style }}>
40
+ {title && (
41
+ <div className='clb-title' style={titleColor ? { color: titleColor } : undefined}>
42
+ {title}
43
+ </div>
44
+ )}
45
+
46
+ <div className='clb-grid' style={gridStyle}>
47
+ {(data as (string | [string, string])[]).map((row, idx) => {
48
+ const lineClass = lineClasses[idx] || '';
49
+
50
+ if (Array.isArray(row)) {
51
+ const [left, right] = row;
52
+ const currentBadgeColor = badgeColors[idx] || badgeColor;
53
+
54
+ return (
55
+ <div
56
+ key={idx}
57
+ className={`clb-row ${lineClass}`}
58
+ style={{ background: itemBg ?? undefined }}
59
+ >
60
+ <div className='clb-badge-col'>
61
+ <div
62
+ className='counter-badge'
63
+ style={{
64
+ background: currentBadgeColor,
65
+ padding: badgePadding,
66
+ width: badgeWidth,
67
+ minWidth: badgeWidth,
68
+ }}
69
+ >
70
+ {left}
71
+ </div>
72
+ </div>
73
+
74
+ <div className='clb-text'>{right}</div>
75
+ </div>
76
+ );
77
+ }
78
+
79
+ if (!has2D) {
80
+ return (
81
+ <div
82
+ key={idx}
83
+ className={`clb-fullrow ${lineClass}`}
84
+ style={{ background: itemBg ?? undefined }}
85
+ >
86
+ <span>{row as string}</span>
87
+ </div>
88
+ );
89
+ }
90
+
91
+ // 1D in mixed mode: empty badge + text
92
+ return (
93
+ <div
94
+ key={idx}
95
+ className={`clb-row ${lineClass}`}
96
+ style={{ background: itemBg ?? undefined }}
97
+ >
98
+ <div className='clb-badge-col clb-empty-badge' />
99
+ <div className='clb-text'>{row as string}</div>
100
+ </div>
101
+ );
102
+ })}
103
+ </div>
104
+ </div>
105
+ );
106
+ };
@@ -1,57 +1,57 @@
1
- .slb-root {
2
- padding: 0.125rem;
3
- }
4
- .slb-title {
5
- font-weight: var(--font-bold);
6
- padding: 0.0625rem 0.125rem;
7
- border-radius: 0.03125rem;
8
- margin-bottom: 0.0625rem;
9
- }
10
- .slb-list {
11
- list-style: none;
12
- margin: 0;
13
- padding: 0;
14
- display: flex;
15
- flex-direction: column;
16
- gap: 0.03125rem;
17
- }
18
- .slb-item {
19
- padding: 0.0625rem 0.125rem;
20
- }
21
-
22
- .slb-grid {
23
- display: flex;
24
- flex-direction: column;
25
- gap: 0.03125rem;
26
- }
27
-
28
- .slb-row {
29
- display: grid;
30
- grid-template-columns: minmax(max-content, 1fr) minmax(max-content, 1fr);
31
- gap: var(--col-gap, 0.125rem);
32
- align-items: center;
33
- padding: 0;
34
- }
35
-
36
- .slb-grid-left {
37
- padding: 0.0625rem 0.125rem;
38
- min-width: 0;
39
- justify-self: start;
40
- overflow-wrap: break-word;
41
- word-wrap: break-word;
42
- }
43
-
44
- .slb-grid-right {
45
- padding: 0.0625rem 0.125rem;
46
- min-width: 0;
47
- justify-self: start;
48
- }
49
-
50
- .slb-empty {
51
- color: #666;
52
- padding: 0.125rem 0.125rem;
53
- text-align: center;
54
- }
55
- .slb-empty-cell {
56
- opacity: 0.5;
57
- }
1
+ .slb-root {
2
+ padding: 0.125rem;
3
+ }
4
+ .slb-title {
5
+ font-weight: var(--font-bold);
6
+ padding: 0.0625rem 0.125rem;
7
+ border-radius: 0.03125rem;
8
+ margin-bottom: 0.0625rem;
9
+ }
10
+ .slb-list {
11
+ list-style: none;
12
+ margin: 0;
13
+ padding: 0;
14
+ display: flex;
15
+ flex-direction: column;
16
+ gap: 0.03125rem;
17
+ }
18
+ .slb-item {
19
+ padding: 0.0625rem 0.125rem;
20
+ }
21
+
22
+ .slb-grid {
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: 0.03125rem;
26
+ }
27
+
28
+ .slb-row {
29
+ display: grid;
30
+ grid-template-columns: minmax(max-content, 1fr) minmax(max-content, 1fr);
31
+ gap: var(--col-gap, 0.125rem);
32
+ align-items: center;
33
+ padding: 0;
34
+ }
35
+
36
+ .slb-grid-left {
37
+ padding: 0.0625rem 0.125rem;
38
+ min-width: 0;
39
+ justify-self: start;
40
+ overflow-wrap: break-word;
41
+ word-wrap: break-word;
42
+ }
43
+
44
+ .slb-grid-right {
45
+ padding: 0.0625rem 0.125rem;
46
+ min-width: 0;
47
+ justify-self: start;
48
+ }
49
+
50
+ .slb-empty {
51
+ color: #666;
52
+ padding: 0.125rem 0.125rem;
53
+ text-align: center;
54
+ }
55
+ .slb-empty-cell {
56
+ opacity: 0.5;
57
+ }