@tsiky/components-r19 1.1.0 → 1.3.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 (50) hide show
  1. package/package.json +1 -1
  2. package/src/components/AnnouncementPanel/FlexRowContainer.css +17 -17
  3. package/src/components/AnnouncementPanel/FlexRowContainer.stories.tsx +329 -329
  4. package/src/components/AnnouncementPanel/FlexRowContainer.tsx +24 -24
  5. package/src/components/AnnouncementPanel/ListBox/CounterListBox.css +56 -56
  6. package/src/components/AnnouncementPanel/ListBox/CounterListBox.stories.tsx +292 -292
  7. package/src/components/AnnouncementPanel/ListBox/CounterListBox.tsx +106 -106
  8. package/src/components/AnnouncementPanel/ListBox/SimpleListBox.css +57 -57
  9. package/src/components/AnnouncementPanel/ListBox/SimpleListBox.stories.tsx +189 -189
  10. package/src/components/AnnouncementPanel/ListBox/SimpleListBox.tsx +138 -138
  11. package/src/components/AnnouncementPanel/ListBox/TrendListBox.css +61 -61
  12. package/src/components/AnnouncementPanel/ListBox/TrendListBox.stories.tsx +257 -257
  13. package/src/components/AnnouncementPanel/ListBox/TrendListBox.tsx +90 -90
  14. package/src/components/AnnouncementPanel/ListBox/index.ts +3 -3
  15. package/src/components/AnnouncementPanel/ListContentContainer.css +23 -23
  16. package/src/components/AnnouncementPanel/ListContentContainer.stories.tsx +212 -212
  17. package/src/components/AnnouncementPanel/ListContentContainer.tsx +33 -33
  18. package/src/components/AnnouncementPanel/index.ts +3 -3
  19. package/src/components/Charts/area-chart-admission/AreaChartAdmission.tsx +7 -1
  20. package/src/components/Charts/bar-chart/BarChart.tsx +6 -2
  21. package/src/components/Charts/boxplot-chart/BoxPlotChart.tsx +114 -114
  22. package/src/components/Charts/mixed-chart/MixedChart.tsx +1 -1
  23. package/src/components/Charts/sankey-adaptation/sankey.tsx +70 -70
  24. package/src/components/DraggableSwitcher/DraggableSwitcherButton.tsx +58 -58
  25. package/src/components/DraggableSwitcher/context/useDraggableSwitcher.tsx +45 -45
  26. package/src/components/DraggableSwitcher/index.ts +2 -2
  27. package/src/components/DynamicInput/DynamicInput.module.css +125 -126
  28. package/src/components/DynamicInput/input/SelectInput.tsx +75 -75
  29. package/src/components/DynamicInput/input/assets/SelectInput.module.css +95 -95
  30. package/src/components/DynamicTable/AdvancedFilters.tsx +196 -196
  31. package/src/components/DynamicTable/ColumnSorter.tsx +185 -185
  32. package/src/components/DynamicTable/Pagination.tsx +115 -115
  33. package/src/components/DynamicTable/TableCell.tsx +38 -30
  34. package/src/components/DynamicTable/TableHeader.tsx +39 -34
  35. package/src/components/DynamicTable/TableauDynamique.module.css +77 -70
  36. package/src/components/DynamicTable/TableauDynamique.tsx +154 -154
  37. package/src/components/DynamicTable/filters/SelectFilter.tsx +69 -69
  38. package/src/components/DynamicTable/tools/tableTypes.ts +63 -63
  39. package/src/components/EntryControl/EntryControl.tsx +117 -117
  40. package/src/components/Grid/grid.css +285 -285
  41. package/src/components/MetricsPanel/MetricsPanel.tsx +37 -37
  42. package/src/components/MetricsPanel/renderers/CompactRenderer.tsx +1 -1
  43. package/src/components/NavItem/NavItem.tsx +58 -58
  44. package/src/components/PeriodRange/PeriodRange.module.css +158 -158
  45. package/src/components/PeriodRange/PeriodRange.tsx +130 -130
  46. package/src/components/PeriodSelect/PeriodSelect.module.css +64 -65
  47. package/src/components/PeriodSelect/PeriodSelect.tsx +48 -42
  48. package/src/components/SearchBar/SearchBar.css +40 -40
  49. package/src/components/TranslationKey/TranslationKey.css +272 -272
  50. package/src/components/TranslationKey/TranslationKey.tsx +8 -7
@@ -1,61 +1,61 @@
1
- .tlb-root {
2
- padding: 0.125rem;
3
- }
4
- .tlb-title {
5
- font-weight: var(--font-bold);
6
- padding: 0.0625rem 0.125rem;
7
- margin-bottom: 0.0625rem;
8
- }
9
-
10
- .tlb-grid {
11
- display: flex;
12
- flex-direction: column;
13
- gap: 0.03125rem;
14
- }
15
-
16
- /* row wrapper */
17
- .tlb-row {
18
- display: grid;
19
- grid-template-columns: minmax(max-content, 1fr) minmax(max-content, 1fr);
20
- gap: var(--col-gap, 0.125rem);
21
- align-items: center;
22
- padding: 0;
23
- }
24
-
25
- .tlb-label {
26
- padding: 0.0625rem 0 0.0625rem 0.0625rem;
27
- min-width: 0;
28
- justify-self: start;
29
- }
30
- .tlb-value-group {
31
- display: flex;
32
- align-items: center;
33
- gap: 0.015625rem;
34
- min-width: 0;
35
- justify-self: center;
36
- }
37
- .tlb-value-wrap {
38
- display: flex;
39
- gap: 0.03125rem;
40
- align-items: center;
41
- min-width: 0;
42
- }
43
- .tlb-value,
44
- .tlb-delta {
45
- min-width: 0;
46
- white-space: nowrap;
47
- }
48
- .tlb-icon-col {
49
- display: flex;
50
- align-items: center;
51
- justify-content: center;
52
- }
53
- .tlb-delta.positive {
54
- color: #15803d;
55
- }
56
- .tlb-delta.negative {
57
- color: #dc2626;
58
- }
59
- .tlb-delta.neutral {
60
- color: #6b7280;
61
- }
1
+ .tlb-root {
2
+ padding: 0.125rem;
3
+ }
4
+ .tlb-title {
5
+ font-weight: var(--font-bold);
6
+ padding: 0.0625rem 0.125rem;
7
+ margin-bottom: 0.0625rem;
8
+ }
9
+
10
+ .tlb-grid {
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: 0.03125rem;
14
+ }
15
+
16
+ /* row wrapper */
17
+ .tlb-row {
18
+ display: grid;
19
+ grid-template-columns: minmax(max-content, 1fr) minmax(max-content, 1fr);
20
+ gap: var(--col-gap, 0.125rem);
21
+ align-items: center;
22
+ padding: 0;
23
+ }
24
+
25
+ .tlb-label {
26
+ padding: 0.0625rem 0 0.0625rem 0.0625rem;
27
+ min-width: 0;
28
+ justify-self: start;
29
+ }
30
+ .tlb-value-group {
31
+ display: flex;
32
+ align-items: center;
33
+ gap: 0.015625rem;
34
+ min-width: 0;
35
+ justify-self: center;
36
+ }
37
+ .tlb-value-wrap {
38
+ display: flex;
39
+ gap: 0.03125rem;
40
+ align-items: center;
41
+ min-width: 0;
42
+ }
43
+ .tlb-value,
44
+ .tlb-delta {
45
+ min-width: 0;
46
+ white-space: nowrap;
47
+ }
48
+ .tlb-icon-col {
49
+ display: flex;
50
+ align-items: center;
51
+ justify-content: center;
52
+ }
53
+ .tlb-delta.positive {
54
+ color: #15803d;
55
+ }
56
+ .tlb-delta.negative {
57
+ color: #dc2626;
58
+ }
59
+ .tlb-delta.neutral {
60
+ color: #6b7280;
61
+ }
@@ -1,257 +1,257 @@
1
- import type { Meta, StoryObj } from '@storybook/react';
2
- import { TrendListBox } from './TrendListBox';
3
- import {
4
- ArrowUp,
5
- ArrowDown,
6
- Minus,
7
- TrendingUp,
8
- Users,
9
- DollarSign,
10
- Activity,
11
- Star,
12
- AlertTriangle,
13
- Zap,
14
- Clock,
15
- Target,
16
- } from 'lucide-react';
17
-
18
- const meta: Meta<typeof TrendListBox> = {
19
- title: 'Components/ListBox/TrendListBox',
20
- component: TrendListBox,
21
- parameters: {
22
- layout: 'centered',
23
- docs: {
24
- description: {
25
- component: 'A component to display trends with icons, values, and variations.',
26
- },
27
- },
28
- },
29
- tags: ['autodocs'],
30
- argTypes: {
31
- items: {
32
- control: 'object',
33
- description: 'Array of trend items with label, value, delta, and optional icon',
34
- },
35
- titleBg: {
36
- control: 'color',
37
- description: 'Background color of the title',
38
- },
39
- titleColor: {
40
- control: 'color',
41
- description: 'Text color of the title',
42
- },
43
- },
44
- };
45
-
46
- export default meta;
47
- type Story = StoryObj<typeof meta>;
48
-
49
- export const Default: Story = {
50
- name: 'Default',
51
- args: {
52
- title: "Today's Trends",
53
- items: [
54
- { label: 'Sales', value: '+12%', delta: 12, icon: <ArrowUp size={16} /> },
55
- { label: 'Visits', value: '-3%', delta: -3, icon: <ArrowDown size={16} /> },
56
- { label: 'Conversion', value: '+5%', delta: 5, icon: <ArrowUp size={16} /> },
57
- { label: 'Bounce Rate', value: '-2%', delta: -2, icon: <ArrowDown size={16} /> },
58
- ],
59
- },
60
- };
61
-
62
- export const PerformanceTrends: Story = {
63
- name: 'Performance Trends',
64
- args: {
65
- title: 'Department Performance',
66
- items: [
67
- { label: 'Marketing', value: '+15%', delta: 15, icon: <TrendingUp size={16} /> },
68
- { label: 'Sales', value: '+8%', delta: 8, icon: <ArrowUp size={16} /> },
69
- { label: 'Support', value: '-2%', delta: -2, icon: <ArrowDown size={16} /> },
70
- { label: 'IT', value: '+22%', delta: 22, icon: <Zap size={16} /> },
71
- ],
72
- lineClasses: {
73
- 0: 'trend-excellent',
74
- 1: 'trend-good',
75
- 2: 'trend-warning',
76
- 3: 'trend-outstanding',
77
- },
78
- },
79
- decorators: [
80
- (Story) => (
81
- <>
82
- <style>
83
- {`
84
- .trend-excellent { background-color: #f0fdf4; }
85
- .trend-good { background-color: #f0f9ff; }
86
- .trend-warning { background-color: #fffbeb; }
87
- .trend-outstanding { background-color: #faf5ff; }
88
- `}
89
- </style>
90
- <Story />
91
- </>
92
- ),
93
- ],
94
- };
95
-
96
- export const StatusMonitoring: Story = {
97
- name: 'Status Monitoring',
98
- args: {
99
- title: 'System Health',
100
- items: [
101
- { label: 'Availability', value: '99.9%', delta: 0.1, icon: <Activity size={16} /> },
102
- { label: 'Performance', value: '96%', delta: -2, icon: <AlertTriangle size={16} /> },
103
- { label: 'Security', value: '100%', delta: 0, icon: <Star size={16} /> },
104
- { label: 'Capacity', value: '78%', delta: 8, icon: <TrendingUp size={16} /> },
105
- ],
106
- },
107
- };
108
-
109
- export const AlertLevels: Story = {
110
- name: 'Alert Levels',
111
- args: {
112
- title: 'Real-time Alerts',
113
- items: [
114
- {
115
- label: 'Security',
116
- value: 'High',
117
- delta: 3,
118
- icon: <AlertTriangle size={16} color='#dc2626' />,
119
- },
120
- {
121
- label: 'Performance',
122
- value: 'Medium',
123
- delta: -1,
124
- icon: <Activity size={16} color='#f59e0b' />,
125
- },
126
- { label: 'Network', value: 'Normal', delta: 0, icon: <Zap size={16} color='#22c55e' /> },
127
- {
128
- label: 'Storage',
129
- value: 'Critical',
130
- delta: 15,
131
- icon: <AlertTriangle size={16} color='#dc2626' />,
132
- },
133
- ],
134
- lineClasses: {
135
- 0: 'alert-high',
136
- 2: 'alert-normal',
137
- 3: 'alert-critical',
138
- },
139
- },
140
- decorators: [
141
- (Story) => (
142
- <>
143
- <style>
144
- {`
145
- .alert-high { background-color: #fef2f2; }
146
- .alert-normal { background-color: #f0fdf4; }
147
- .alert-critical { background-color: #fef2f2; border-left: 3px solid #dc2626; }
148
- `}
149
- </style>
150
- <Story />
151
- </>
152
- ),
153
- ],
154
- };
155
-
156
- export const CustomIcons: Story = {
157
- name: 'Custom Icons',
158
- args: {
159
- title: 'Business Indicators',
160
- items: [
161
- { label: 'Revenue', value: '€45.2K', delta: 12.5 },
162
- { label: 'New Customers', value: '+24', delta: 8 },
163
- { label: 'Satisfaction', value: '4.8/5', delta: 0.3 },
164
- { label: 'Avg. Delay', value: '-15%', delta: -15 },
165
- ],
166
- renderTrendIcon: (item) => {
167
- if (item.delta && item.delta > 10) {
168
- return <Zap size={16} color='#f59e0b' />;
169
- } else if (item.delta && item.delta > 0) {
170
- return <ArrowUp size={16} color='#10b981' />;
171
- } else if (item.delta && item.delta < 0) {
172
- return <ArrowDown size={16} color='#ef4444' />;
173
- }
174
- return <Minus size={16} color='#6b7280' />;
175
- },
176
- },
177
- };
178
-
179
- export const RatingTrends: Story = {
180
- name: 'Rating Trends',
181
- args: {
182
- title: 'Ratings Evolution',
183
- items: [
184
- { label: 'Product Quality', value: '4.8→4.9', delta: 0.1, icon: <ArrowUp size={16} /> },
185
- { label: 'Customer Service', value: '4.5→4.3', delta: -0.2, icon: <ArrowDown size={16} /> },
186
- { label: 'Speed', value: '4.7→4.7', delta: 0, icon: <Minus size={16} /> },
187
- { label: 'Value for Money', value: '4.2→4.6', delta: 0.4, icon: <ArrowUp size={16} /> },
188
- ],
189
- },
190
- };
191
-
192
- export const FinancialMetrics: Story = {
193
- name: 'Financial Metrics',
194
- args: {
195
- title: 'Financial Indicators',
196
- titleBg: '#059669',
197
- titleColor: 'white',
198
- items: [
199
- { label: 'Revenue Q1', value: '€125K', delta: 8.5, icon: <DollarSign size={16} /> },
200
- { label: 'Gross Margin', value: '42%', delta: 2.1, icon: <TrendingUp size={16} /> },
201
- { label: 'Expenses', value: '€89K', delta: -1.2, icon: <ArrowDown size={16} /> },
202
- { label: 'ROI', value: '18%', delta: 3.4, icon: <Zap size={16} /> },
203
- ],
204
- },
205
- };
206
-
207
- export const UserAnalytics: Story = {
208
- name: 'User Analytics',
209
- args: {
210
- title: 'User Engagement',
211
- items: [
212
- { label: 'New Signups', value: '+156', delta: 12, icon: <Users size={16} /> },
213
- { label: 'Active Users', value: '1.2K', delta: 8, icon: <Activity size={16} /> },
214
- { label: 'Retention Rate', value: '78%', delta: 4, icon: <TrendingUp size={16} /> },
215
- { label: 'Churn Rate', value: '2.1%', delta: -0.5, icon: <ArrowDown size={16} /> },
216
- ],
217
- },
218
- };
219
-
220
- export const TimeMetrics: Story = {
221
- name: 'Time Metrics',
222
- args: {
223
- title: 'Time Performance',
224
- items: [
225
- { label: 'Load Time', value: '1.2s', delta: -0.3, icon: <ArrowDown size={16} /> },
226
- { label: 'Response Time', value: '245ms', delta: 15, icon: <ArrowUp size={16} /> },
227
- { label: 'Availability', value: '99.95%', delta: 0.05, icon: <ArrowUp size={16} /> },
228
- { label: 'Avg. Session', value: '4m 12s', delta: 23, icon: <Clock size={16} /> },
229
- ],
230
- },
231
- };
232
-
233
- export const GoalTracking: Story = {
234
- name: 'Goal Tracking',
235
- args: {
236
- title: 'Objective Progress',
237
- items: [
238
- { label: 'Monthly Sales', value: '85%', delta: 5, icon: <Target size={16} /> },
239
- { label: 'New Clients', value: '120%', delta: 20, icon: <Target size={16} /> },
240
- { label: 'Customer Satisfaction', value: '92%', delta: -3, icon: <Target size={16} /> },
241
- { label: 'Operational Efficiency', value: '78%', delta: 8, icon: <Target size={16} /> },
242
- ],
243
- },
244
- };
245
-
246
- export const WithoutDeltas: Story = {
247
- name: 'Without Variations',
248
- args: {
249
- title: 'Current Stats',
250
- items: [
251
- { label: 'Online Users', value: '423', icon: <Users size={16} /> },
252
- { label: 'Orders Today', value: '156', icon: <DollarSign size={16} /> },
253
- { label: 'Open Tickets', value: '24', icon: <Activity size={16} /> },
254
- { label: 'Active Servers', value: '8', icon: <Zap size={16} /> },
255
- ],
256
- },
257
- };
1
+ import type { Meta, StoryObj } from '@storybook/react';
2
+ import { TrendListBox } from './TrendListBox';
3
+ import {
4
+ ArrowUp,
5
+ ArrowDown,
6
+ Minus,
7
+ TrendingUp,
8
+ Users,
9
+ DollarSign,
10
+ Activity,
11
+ Star,
12
+ AlertTriangle,
13
+ Zap,
14
+ Clock,
15
+ Target,
16
+ } from 'lucide-react';
17
+
18
+ const meta: Meta<typeof TrendListBox> = {
19
+ title: 'Components/ListBox/TrendListBox',
20
+ component: TrendListBox,
21
+ parameters: {
22
+ layout: 'centered',
23
+ docs: {
24
+ description: {
25
+ component: 'A component to display trends with icons, values, and variations.',
26
+ },
27
+ },
28
+ },
29
+ tags: ['autodocs'],
30
+ argTypes: {
31
+ items: {
32
+ control: 'object',
33
+ description: 'Array of trend items with label, value, delta, and optional icon',
34
+ },
35
+ titleBg: {
36
+ control: 'color',
37
+ description: 'Background color of the title',
38
+ },
39
+ titleColor: {
40
+ control: 'color',
41
+ description: 'Text color of the title',
42
+ },
43
+ },
44
+ };
45
+
46
+ export default meta;
47
+ type Story = StoryObj<typeof meta>;
48
+
49
+ export const Default: Story = {
50
+ name: 'Default',
51
+ args: {
52
+ title: "Today's Trends",
53
+ items: [
54
+ { label: 'Sales', value: '+12%', delta: 12, icon: <ArrowUp size={16} /> },
55
+ { label: 'Visits', value: '-3%', delta: -3, icon: <ArrowDown size={16} /> },
56
+ { label: 'Conversion', value: '+5%', delta: 5, icon: <ArrowUp size={16} /> },
57
+ { label: 'Bounce Rate', value: '-2%', delta: -2, icon: <ArrowDown size={16} /> },
58
+ ],
59
+ },
60
+ };
61
+
62
+ export const PerformanceTrends: Story = {
63
+ name: 'Performance Trends',
64
+ args: {
65
+ title: 'Department Performance',
66
+ items: [
67
+ { label: 'Marketing', value: '+15%', delta: 15, icon: <TrendingUp size={16} /> },
68
+ { label: 'Sales', value: '+8%', delta: 8, icon: <ArrowUp size={16} /> },
69
+ { label: 'Support', value: '-2%', delta: -2, icon: <ArrowDown size={16} /> },
70
+ { label: 'IT', value: '+22%', delta: 22, icon: <Zap size={16} /> },
71
+ ],
72
+ lineClasses: {
73
+ 0: 'trend-excellent',
74
+ 1: 'trend-good',
75
+ 2: 'trend-warning',
76
+ 3: 'trend-outstanding',
77
+ },
78
+ },
79
+ decorators: [
80
+ (Story) => (
81
+ <>
82
+ <style>
83
+ {`
84
+ .trend-excellent { background-color: #f0fdf4; }
85
+ .trend-good { background-color: #f0f9ff; }
86
+ .trend-warning { background-color: #fffbeb; }
87
+ .trend-outstanding { background-color: #faf5ff; }
88
+ `}
89
+ </style>
90
+ <Story />
91
+ </>
92
+ ),
93
+ ],
94
+ };
95
+
96
+ export const StatusMonitoring: Story = {
97
+ name: 'Status Monitoring',
98
+ args: {
99
+ title: 'System Health',
100
+ items: [
101
+ { label: 'Availability', value: '99.9%', delta: 0.1, icon: <Activity size={16} /> },
102
+ { label: 'Performance', value: '96%', delta: -2, icon: <AlertTriangle size={16} /> },
103
+ { label: 'Security', value: '100%', delta: 0, icon: <Star size={16} /> },
104
+ { label: 'Capacity', value: '78%', delta: 8, icon: <TrendingUp size={16} /> },
105
+ ],
106
+ },
107
+ };
108
+
109
+ export const AlertLevels: Story = {
110
+ name: 'Alert Levels',
111
+ args: {
112
+ title: 'Real-time Alerts',
113
+ items: [
114
+ {
115
+ label: 'Security',
116
+ value: 'High',
117
+ delta: 3,
118
+ icon: <AlertTriangle size={16} color='#dc2626' />,
119
+ },
120
+ {
121
+ label: 'Performance',
122
+ value: 'Medium',
123
+ delta: -1,
124
+ icon: <Activity size={16} color='#f59e0b' />,
125
+ },
126
+ { label: 'Network', value: 'Normal', delta: 0, icon: <Zap size={16} color='#22c55e' /> },
127
+ {
128
+ label: 'Storage',
129
+ value: 'Critical',
130
+ delta: 15,
131
+ icon: <AlertTriangle size={16} color='#dc2626' />,
132
+ },
133
+ ],
134
+ lineClasses: {
135
+ 0: 'alert-high',
136
+ 2: 'alert-normal',
137
+ 3: 'alert-critical',
138
+ },
139
+ },
140
+ decorators: [
141
+ (Story) => (
142
+ <>
143
+ <style>
144
+ {`
145
+ .alert-high { background-color: #fef2f2; }
146
+ .alert-normal { background-color: #f0fdf4; }
147
+ .alert-critical { background-color: #fef2f2; border-left: 3px solid #dc2626; }
148
+ `}
149
+ </style>
150
+ <Story />
151
+ </>
152
+ ),
153
+ ],
154
+ };
155
+
156
+ export const CustomIcons: Story = {
157
+ name: 'Custom Icons',
158
+ args: {
159
+ title: 'Business Indicators',
160
+ items: [
161
+ { label: 'Revenue', value: '€45.2K', delta: 12.5 },
162
+ { label: 'New Customers', value: '+24', delta: 8 },
163
+ { label: 'Satisfaction', value: '4.8/5', delta: 0.3 },
164
+ { label: 'Avg. Delay', value: '-15%', delta: -15 },
165
+ ],
166
+ renderTrendIcon: (item) => {
167
+ if (item.delta && item.delta > 10) {
168
+ return <Zap size={16} color='#f59e0b' />;
169
+ } else if (item.delta && item.delta > 0) {
170
+ return <ArrowUp size={16} color='#10b981' />;
171
+ } else if (item.delta && item.delta < 0) {
172
+ return <ArrowDown size={16} color='#ef4444' />;
173
+ }
174
+ return <Minus size={16} color='#6b7280' />;
175
+ },
176
+ },
177
+ };
178
+
179
+ export const RatingTrends: Story = {
180
+ name: 'Rating Trends',
181
+ args: {
182
+ title: 'Ratings Evolution',
183
+ items: [
184
+ { label: 'Product Quality', value: '4.8→4.9', delta: 0.1, icon: <ArrowUp size={16} /> },
185
+ { label: 'Customer Service', value: '4.5→4.3', delta: -0.2, icon: <ArrowDown size={16} /> },
186
+ { label: 'Speed', value: '4.7→4.7', delta: 0, icon: <Minus size={16} /> },
187
+ { label: 'Value for Money', value: '4.2→4.6', delta: 0.4, icon: <ArrowUp size={16} /> },
188
+ ],
189
+ },
190
+ };
191
+
192
+ export const FinancialMetrics: Story = {
193
+ name: 'Financial Metrics',
194
+ args: {
195
+ title: 'Financial Indicators',
196
+ titleBg: '#059669',
197
+ titleColor: 'white',
198
+ items: [
199
+ { label: 'Revenue Q1', value: '€125K', delta: 8.5, icon: <DollarSign size={16} /> },
200
+ { label: 'Gross Margin', value: '42%', delta: 2.1, icon: <TrendingUp size={16} /> },
201
+ { label: 'Expenses', value: '€89K', delta: -1.2, icon: <ArrowDown size={16} /> },
202
+ { label: 'ROI', value: '18%', delta: 3.4, icon: <Zap size={16} /> },
203
+ ],
204
+ },
205
+ };
206
+
207
+ export const UserAnalytics: Story = {
208
+ name: 'User Analytics',
209
+ args: {
210
+ title: 'User Engagement',
211
+ items: [
212
+ { label: 'New Signups', value: '+156', delta: 12, icon: <Users size={16} /> },
213
+ { label: 'Active Users', value: '1.2K', delta: 8, icon: <Activity size={16} /> },
214
+ { label: 'Retention Rate', value: '78%', delta: 4, icon: <TrendingUp size={16} /> },
215
+ { label: 'Churn Rate', value: '2.1%', delta: -0.5, icon: <ArrowDown size={16} /> },
216
+ ],
217
+ },
218
+ };
219
+
220
+ export const TimeMetrics: Story = {
221
+ name: 'Time Metrics',
222
+ args: {
223
+ title: 'Time Performance',
224
+ items: [
225
+ { label: 'Load Time', value: '1.2s', delta: -0.3, icon: <ArrowDown size={16} /> },
226
+ { label: 'Response Time', value: '245ms', delta: 15, icon: <ArrowUp size={16} /> },
227
+ { label: 'Availability', value: '99.95%', delta: 0.05, icon: <ArrowUp size={16} /> },
228
+ { label: 'Avg. Session', value: '4m 12s', delta: 23, icon: <Clock size={16} /> },
229
+ ],
230
+ },
231
+ };
232
+
233
+ export const GoalTracking: Story = {
234
+ name: 'Goal Tracking',
235
+ args: {
236
+ title: 'Objective Progress',
237
+ items: [
238
+ { label: 'Monthly Sales', value: '85%', delta: 5, icon: <Target size={16} /> },
239
+ { label: 'New Clients', value: '120%', delta: 20, icon: <Target size={16} /> },
240
+ { label: 'Customer Satisfaction', value: '92%', delta: -3, icon: <Target size={16} /> },
241
+ { label: 'Operational Efficiency', value: '78%', delta: 8, icon: <Target size={16} /> },
242
+ ],
243
+ },
244
+ };
245
+
246
+ export const WithoutDeltas: Story = {
247
+ name: 'Without Variations',
248
+ args: {
249
+ title: 'Current Stats',
250
+ items: [
251
+ { label: 'Online Users', value: '423', icon: <Users size={16} /> },
252
+ { label: 'Orders Today', value: '156', icon: <DollarSign size={16} /> },
253
+ { label: 'Open Tickets', value: '24', icon: <Activity size={16} /> },
254
+ { label: 'Active Servers', value: '8', icon: <Zap size={16} /> },
255
+ ],
256
+ },
257
+ };