@evixcard/evx-ui-kit 0.1.21 → 1.0.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 (60) hide show
  1. package/dist/components/EvAlert/EvAlert.spec.d.ts +1 -0
  2. package/dist/components/EvAlert/EvAlert.vue.d.ts +27 -0
  3. package/dist/components/EvAlert/index.d.ts +2 -0
  4. package/dist/components/EvAppBackground/EvAppBackground.vue.d.ts +25 -0
  5. package/dist/components/EvAppBackground/index.d.ts +2 -0
  6. package/dist/components/EvButton/EvButton.spec.d.ts +1 -0
  7. package/dist/components/EvButton/EvButton.vue.d.ts +7 -3
  8. package/dist/components/EvButton/tokens.spec.d.ts +1 -0
  9. package/dist/components/EvButton/variants.d.ts +4 -0
  10. package/dist/components/EvConfirmDialog/EvConfirmDialog.vue.d.ts +54 -0
  11. package/dist/components/EvConfirmDialog/index.d.ts +2 -0
  12. package/dist/components/EvCookieBanner/EvCookieBanner.vue.d.ts +35 -0
  13. package/dist/components/EvCookieBanner/index.d.ts +2 -0
  14. package/dist/components/EvDataTable/EvDataTable.spec.d.ts +1 -0
  15. package/dist/components/EvDataTable/EvDataTable.vue.d.ts +24 -0
  16. package/dist/components/EvDataTable/index.d.ts +2 -0
  17. package/dist/components/EvDataTable/types.d.ts +17 -0
  18. package/dist/components/EvGlassCard/EvGlassCard.vue.d.ts +28 -0
  19. package/dist/components/EvGlassCard/index.d.ts +2 -0
  20. package/dist/components/EvHowToStep/EvHowToStep.vue.d.ts +22 -0
  21. package/dist/components/EvHowToStep/index.d.ts +2 -0
  22. package/dist/components/EvModal/EvModal.spec.d.ts +1 -0
  23. package/dist/components/EvModal/EvModal.vue.d.ts +38 -0
  24. package/dist/components/EvModal/index.d.ts +3 -0
  25. package/dist/components/EvModal/modalStack.d.ts +9 -0
  26. package/dist/components/EvPopup/EvPopup.vue.d.ts +22 -1
  27. package/dist/components/EvPopup/index.d.ts +1 -1
  28. package/dist/components/EvSelect/EvSelect.vue.d.ts +32 -0
  29. package/dist/components/EvSelect/index.d.ts +2 -0
  30. package/dist/components/EvSelect/types.d.ts +6 -0
  31. package/dist/components/EvSpinner/EvSpinner.vue.d.ts +36 -0
  32. package/dist/components/EvSpinner/index.d.ts +2 -0
  33. package/dist/components/charts/ChartTooltip.vue.d.ts +16 -0
  34. package/dist/components/charts/EvxAreaChart.spec.d.ts +1 -0
  35. package/dist/components/charts/EvxAreaChart.vue.d.ts +16 -0
  36. package/dist/components/charts/EvxBarChart.spec.d.ts +1 -0
  37. package/dist/components/charts/EvxBarChart.vue.d.ts +16 -0
  38. package/dist/components/charts/EvxComposedChart.spec.d.ts +1 -0
  39. package/dist/components/charts/EvxComposedChart.vue.d.ts +18 -0
  40. package/dist/components/charts/EvxLineChart.spec.d.ts +1 -0
  41. package/dist/components/charts/EvxLineChart.vue.d.ts +16 -0
  42. package/dist/components/charts/EvxPieChart.spec.d.ts +1 -0
  43. package/dist/components/charts/EvxPieChart.vue.d.ts +17 -0
  44. package/dist/components/charts/EvxRadarChart.spec.d.ts +1 -0
  45. package/dist/components/charts/EvxRadarChart.vue.d.ts +16 -0
  46. package/dist/components/charts/EvxRadialChart.spec.d.ts +1 -0
  47. package/dist/components/charts/EvxRadialChart.vue.d.ts +16 -0
  48. package/dist/components/charts/index.d.ts +8 -0
  49. package/dist/components/charts/useCartesianFrame.d.ts +38 -0
  50. package/dist/components/charts/useChartTheme.d.ts +22 -0
  51. package/dist/evx-ui-kit.cjs.js +41 -13
  52. package/dist/evx-ui-kit.cjs.js.map +1 -1
  53. package/dist/evx-ui-kit.css +1 -1
  54. package/dist/evx-ui-kit.es.js +10365 -2083
  55. package/dist/evx-ui-kit.es.js.map +1 -1
  56. package/dist/favicon.ico +0 -0
  57. package/dist/index.d.ts +11 -0
  58. package/dist/test/setup.d.ts +1 -0
  59. package/dist/theme.css +337 -0
  60. package/package.json +18 -5
package/dist/favicon.ico CHANGED
Binary file
package/dist/index.d.ts CHANGED
@@ -17,4 +17,15 @@ export * from './components/EvPopup';
17
17
  export * from './components/TableInfo';
18
18
  export * from './components/AccountInfo';
19
19
  export * from './components/PageHeader';
20
+ export * from './components/EvSpinner';
21
+ export * from './components/EvAlert';
22
+ export * from './components/EvSelect';
23
+ export * from './components/EvConfirmDialog';
24
+ export * from './components/EvGlassCard';
25
+ export * from './components/EvAppBackground';
26
+ export * from './components/EvCookieBanner';
27
+ export * from './components/EvHowToStep';
28
+ export * from './components/EvModal';
29
+ export * from './components/EvDataTable';
30
+ export * from './components/charts';
20
31
  export * from './icons';
@@ -0,0 +1 @@
1
+ export {};
package/dist/theme.css ADDED
@@ -0,0 +1,337 @@
1
+ @custom-variant dark (&:is(.dark *));
2
+
3
+ :root {
4
+ /* Brand */
5
+ --brand-black: #000000;
6
+ --brand-blue: #6888fb;
7
+ --brand-blue-hover: #4f6ef2;
8
+ --brand-blue-active: #3c55d8;
9
+ --brand-violet: #c447be;
10
+ --brand-violet-hover: #e56be0;
11
+ --brand-violet-active: #92328e;
12
+ --brand-pink: #f7a1f4;
13
+ --brand-yellow: #f6dd85;
14
+ --brand-yellow-hover: #eec95f;
15
+ --brand-green-warm: #b4d94a;
16
+ --brand-green-cold: #36dec1;
17
+ --brand-green-cold-hover: #1fc4aa;
18
+ --brand-green-cold-active: #159a88;
19
+ --brand-red: #ff5a45;
20
+ --brand-red-hover: #e64230;
21
+ --brand-red-active: #b93022;
22
+ --brand-pending: #d8aa35;
23
+
24
+ /* Semantic state colors (each with -bg / -text companions where used) */
25
+ --color-info: #6888fb;
26
+ --color-info-bg: #eef3ff;
27
+ --color-focus: #c447be;
28
+ --color-focus-ring: #fdcbfb;
29
+ --color-warning: #f6dd85;
30
+ --color-warning-bg: #fffbea;
31
+ --color-warning-text: #5b4211;
32
+ --color-pending: #d8aa35;
33
+ --color-pending-bg: #fff4c7;
34
+ --color-pending-text: #5b4211;
35
+ --color-success: #36dec1;
36
+ --color-success-bg: #ecfffa;
37
+ --color-growth: #b4d94a;
38
+ --color-growth-bg: #fafceb;
39
+ --color-error: #ff5a45;
40
+ --color-error-bg: #fff2ef;
41
+ --color-error-text: #7a1e16;
42
+ --color-disabled: #cfcfcf;
43
+ --color-disabled-bg: #f2f2f2;
44
+ --color-disabled-text: #828282;
45
+ --color-border: #e2e2e2;
46
+ --color-surface: #f2f2f2;
47
+ --color-muted: #707070;
48
+
49
+ /* Gray scale */
50
+ --gray-darkest: #5c505c;
51
+ --gray-dark: #a5a5a5;
52
+ --gray-medium: #dbdbdb;
53
+ --gray-light: #e7e7e7;
54
+ --gray-lightest: #f8f8f8;
55
+ --white: #ffffff;
56
+
57
+ /* Surfaces */
58
+ --background: #f2f2f2;
59
+ --foreground: var(--brand-black);
60
+ --card: #ffffff;
61
+ --card-foreground: var(--brand-black);
62
+ --popover: #ffffff;
63
+ --popover-foreground: var(--brand-black);
64
+
65
+ /* shadcn-style semantic mapping.
66
+ * secondary follows the live design component (violet); flip to brand-pink
67
+ * here if the designer confirms the palette doc instead. */
68
+ --primary: var(--brand-black);
69
+ --primary-foreground: #ffffff;
70
+ --accent-blue: var(--brand-blue);
71
+ --secondary: var(--brand-violet);
72
+ --secondary-foreground: #ffffff;
73
+ --muted: var(--gray-lightest);
74
+ --muted-foreground: var(--gray-darkest);
75
+ --accent: var(--brand-yellow);
76
+ --accent-foreground: var(--brand-black);
77
+ --destructive: var(--brand-red);
78
+ --destructive-foreground: #ffffff;
79
+ --success: var(--brand-green-cold);
80
+ --success-foreground: #ffffff;
81
+ --warning: var(--brand-yellow);
82
+ --warning-foreground: var(--brand-black);
83
+
84
+ --border: var(--color-border);
85
+ --input: transparent;
86
+ --input-background: var(--white);
87
+ --input-border: var(--gray-light);
88
+ --switch-background: var(--gray-medium);
89
+ --ring: var(--brand-blue);
90
+
91
+ --font-weight-normal: 400;
92
+ --font-weight-medium: 500;
93
+ --font-size: 16px;
94
+
95
+ /* Charts */
96
+ --chart-1: var(--brand-blue);
97
+ --chart-2: var(--brand-pink);
98
+ --chart-3: var(--brand-yellow);
99
+ --chart-4: var(--brand-violet);
100
+ --chart-5: var(--brand-green-cold);
101
+
102
+ /* Radius */
103
+ --radius: 0.5rem;
104
+ --radius-button: 4px;
105
+ --radius-form-sm: 4px;
106
+ --radius-form-md: 8px;
107
+ --radius-form-lg: 12px;
108
+ --radius-form-xl: 16px;
109
+
110
+ /* Sidebar */
111
+ --sidebar: var(--background);
112
+ --sidebar-foreground: var(--brand-black);
113
+ --sidebar-primary: var(--brand-blue);
114
+ --sidebar-primary-foreground: #ffffff;
115
+ --sidebar-accent: rgba(255, 255, 255, 0.5);
116
+ --sidebar-accent-foreground: var(--gray-darkest);
117
+ --sidebar-border: var(--gray-light);
118
+ --sidebar-ring: var(--brand-blue);
119
+
120
+ /* Brand gradient */
121
+ --brand-gradient: linear-gradient(135deg, #f6dd85 0%, #f7a1f4 46%, #6888fb 100%);
122
+ /* Soft control gradient used by toggles/tabs (white → pink → light blue) */
123
+ --gradient-control: linear-gradient(83.73deg, #ffffff -45.99%, #f4ceff 115.78%, #84c7fe 169.71%);
124
+ }
125
+
126
+ @theme inline {
127
+ --color-background: var(--background);
128
+ --color-foreground: var(--foreground);
129
+ --color-card: var(--card);
130
+ --color-card-foreground: var(--card-foreground);
131
+ --color-popover: var(--popover);
132
+ --color-popover-foreground: var(--popover-foreground);
133
+ --color-primary: var(--primary);
134
+ --color-primary-foreground: var(--primary-foreground);
135
+ --color-secondary: var(--secondary);
136
+ --color-secondary-foreground: var(--secondary-foreground);
137
+ --color-accent-blue: var(--accent-blue);
138
+ --color-muted: var(--muted);
139
+ --color-muted-foreground: var(--muted-foreground);
140
+ --color-accent: var(--accent);
141
+ --color-accent-foreground: var(--accent-foreground);
142
+ --color-destructive: var(--destructive);
143
+ --color-destructive-foreground: var(--destructive-foreground);
144
+ --color-success: var(--success);
145
+ --color-success-foreground: var(--success-foreground);
146
+ --color-warning: var(--warning);
147
+ --color-warning-foreground: var(--warning-foreground);
148
+ --color-info: var(--color-info);
149
+ --color-info-bg: var(--color-info-bg);
150
+ --color-success-bg: var(--color-success-bg);
151
+ --color-warning-bg: var(--color-warning-bg);
152
+ --color-warning-text: var(--color-warning-text);
153
+ --color-error: var(--color-error);
154
+ --color-error-bg: var(--color-error-bg);
155
+ --color-error-text: var(--color-error-text);
156
+ --color-pending: var(--color-pending);
157
+ --color-pending-bg: var(--color-pending-bg);
158
+ --color-pending-text: var(--color-pending-text);
159
+ --color-focus: var(--color-focus);
160
+ --color-focus-ring: var(--color-focus-ring);
161
+ --color-growth: var(--color-growth);
162
+ --color-growth-bg: var(--color-growth-bg);
163
+ --color-border: var(--border);
164
+ --color-input: var(--input);
165
+ --color-input-background: var(--input-background);
166
+ --color-input-border: var(--input-border);
167
+ --color-switch-background: var(--switch-background);
168
+ --color-ring: var(--ring);
169
+ --color-surface: var(--color-surface);
170
+ --color-muted-strong: var(--color-muted);
171
+ --color-disabled: var(--color-disabled);
172
+ --color-disabled-bg: var(--color-disabled-bg);
173
+ --color-disabled-text: var(--color-disabled-text);
174
+ --color-brand-black: var(--brand-black);
175
+ --color-brand-blue: var(--brand-blue);
176
+ --color-brand-blue-hover: var(--brand-blue-hover);
177
+ --color-brand-blue-active: var(--brand-blue-active);
178
+ --color-brand-violet: var(--brand-violet);
179
+ --color-brand-violet-hover: var(--brand-violet-hover);
180
+ --color-brand-violet-active: var(--brand-violet-active);
181
+ --color-brand-pink: var(--brand-pink);
182
+ --color-brand-yellow: var(--brand-yellow);
183
+ --color-brand-yellow-hover: var(--brand-yellow-hover);
184
+ --color-brand-green-warm: var(--brand-green-warm);
185
+ --color-brand-green-cold: var(--brand-green-cold);
186
+ --color-brand-green-cold-hover: var(--brand-green-cold-hover);
187
+ --color-brand-green-cold-active: var(--brand-green-cold-active);
188
+ --color-brand-red: var(--brand-red);
189
+ --color-brand-red-hover: var(--brand-red-hover);
190
+ --color-brand-red-active: var(--brand-red-active);
191
+ --color-brand-pending: var(--brand-pending);
192
+ --color-gray-darkest: var(--gray-darkest);
193
+ --color-gray-dark: var(--gray-dark);
194
+ --color-gray-medium: var(--gray-medium);
195
+ --color-gray-light: var(--gray-light);
196
+ --color-gray-lightest: var(--gray-lightest);
197
+ --color-white: var(--white);
198
+ --color-chart-1: var(--chart-1);
199
+ --color-chart-2: var(--chart-2);
200
+ --color-chart-3: var(--chart-3);
201
+ --color-chart-4: var(--chart-4);
202
+ --color-chart-5: var(--chart-5);
203
+ --color-sidebar: var(--sidebar);
204
+ --color-sidebar-foreground: var(--sidebar-foreground);
205
+ --color-sidebar-primary: var(--sidebar-primary);
206
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
207
+ --color-sidebar-accent: var(--sidebar-accent);
208
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
209
+ --color-sidebar-border: var(--sidebar-border);
210
+ --color-sidebar-ring: var(--sidebar-ring);
211
+ --radius-button: var(--radius-button);
212
+ --radius-sm: var(--radius-form-sm);
213
+ --radius-md: var(--radius-form-md);
214
+ --radius-lg: var(--radius-form-lg);
215
+ --radius-xl: var(--radius-form-xl);
216
+ --font-sans: 'Rooftop', system-ui, -apple-system, 'Segoe UI', sans-serif;
217
+ }
218
+
219
+ @layer base {
220
+ html,
221
+ body,
222
+ button,
223
+ input,
224
+ select,
225
+ textarea {
226
+ font-family: var(--font-sans);
227
+ }
228
+
229
+ h1 {
230
+ font-size: 48px;
231
+ font-weight: 500;
232
+ line-height: 1.2;
233
+ }
234
+ h2 {
235
+ font-size: 32px;
236
+ font-weight: 500;
237
+ line-height: 1.2;
238
+ }
239
+ h3 {
240
+ font-size: 18px;
241
+ font-weight: 500;
242
+ line-height: 1.2;
243
+ }
244
+ h4 {
245
+ font-size: 16px;
246
+ font-weight: 500;
247
+ line-height: 1.2;
248
+ }
249
+ label,
250
+ button {
251
+ font-size: 14px;
252
+ font-weight: 500;
253
+ line-height: 1.4;
254
+ }
255
+ input,
256
+ p {
257
+ font-size: 14px;
258
+ font-weight: 400;
259
+ line-height: 1.4;
260
+ }
261
+ }
262
+
263
+ /* Display / typography utilities */
264
+ .text-display-72 {
265
+ font-size: 72px;
266
+ font-weight: 500;
267
+ line-height: 1.2;
268
+ letter-spacing: -0.02em;
269
+ }
270
+ .text-display-60 {
271
+ font-size: 60px;
272
+ font-weight: 500;
273
+ line-height: 1.2;
274
+ letter-spacing: -0.02em;
275
+ }
276
+ .text-display-48 {
277
+ font-size: 48px;
278
+ font-weight: 500;
279
+ line-height: 1.2;
280
+ letter-spacing: -0.02em;
281
+ }
282
+ .text-display-40 {
283
+ font-size: 40px;
284
+ font-weight: 500;
285
+ line-height: 1.2;
286
+ letter-spacing: -0.01em;
287
+ }
288
+ .text-h-32 {
289
+ font-size: 32px;
290
+ font-weight: 500;
291
+ line-height: 1.2;
292
+ }
293
+ .text-h-28 {
294
+ font-size: 28px;
295
+ font-weight: 500;
296
+ line-height: 1.2;
297
+ }
298
+ .text-lg-medium {
299
+ font-size: 18px;
300
+ font-weight: 500;
301
+ line-height: 1.2;
302
+ }
303
+ .text-lg-regular {
304
+ font-size: 18px;
305
+ font-weight: 400;
306
+ line-height: 1.2;
307
+ }
308
+ .text-md-medium {
309
+ font-size: 16px;
310
+ font-weight: 500;
311
+ line-height: 1.2;
312
+ }
313
+ .text-md-regular {
314
+ font-size: 16px;
315
+ font-weight: 400;
316
+ line-height: 1.2;
317
+ }
318
+ .text-sm-medium {
319
+ font-size: 14px;
320
+ font-weight: 500;
321
+ line-height: 1.4;
322
+ }
323
+ .text-sm-regular {
324
+ font-size: 14px;
325
+ font-weight: 400;
326
+ line-height: 1.4;
327
+ }
328
+ .text-xs-medium {
329
+ font-size: 12px;
330
+ font-weight: 500;
331
+ line-height: 1.4;
332
+ }
333
+ .text-xs-regular {
334
+ font-size: 12px;
335
+ font-weight: 400;
336
+ line-height: 1.4;
337
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evixcard/evx-ui-kit",
3
- "version": "0.1.21",
3
+ "version": "1.0.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "engines": {
@@ -13,8 +13,10 @@
13
13
  "preview": "vite preview",
14
14
  "build-only": "vite build",
15
15
  "type-check": "vue-tsc --build",
16
- "story:dev": "histoire dev",
17
- "story:build": "histoire build",
16
+ "test": "vitest run",
17
+ "test:watch": "vitest",
18
+ "story:dev": "CHOKIDAR_USEPOLLING=true histoire dev",
19
+ "story:build": "CHOKIDAR_USEPOLLING=true histoire build",
18
20
  "story:preview": "histoire preview",
19
21
  "lint": "eslint . --fix",
20
22
  "format": "prettier --write src/",
@@ -33,7 +35,9 @@
33
35
  "types": "./dist/icons/index.d.ts",
34
36
  "import": "./dist/icons.es.js",
35
37
  "require": "./dist/icons.cjs.js"
36
- }
38
+ },
39
+ "./theme.css": "./dist/theme.css",
40
+ "./dist/evx-ui-kit.css": "./dist/evx-ui-kit.css"
37
41
  },
38
42
  "files": [
39
43
  "dist"
@@ -43,6 +47,9 @@
43
47
  ],
44
48
  "dependencies": {
45
49
  "@headlessui/vue": "^1.7.23",
50
+ "d3-scale": "^4.0.2",
51
+ "d3-shape": "^3.2.0",
52
+ "motion-v": "^2.2.1",
46
53
  "tailwind-merge": "^3.4.0",
47
54
  "vue": "^3.5.25"
48
55
  },
@@ -52,24 +59,30 @@
52
59
  "devDependencies": {
53
60
  "@histoire/plugin-vue": "1.0.0-alpha.5",
54
61
  "@tailwindcss/vite": "^4.1.17",
55
- "tailwindcss": "^4.1.17",
56
62
  "@tsconfig/node24": "^24.0.3",
63
+ "@types/d3-scale": "^4.0.9",
64
+ "@types/d3-shape": "^3.1.8",
57
65
  "@types/node": "^24.10.1",
58
66
  "@vitejs/plugin-vue": "^6.0.2",
67
+ "@vitest/coverage-v8": "^3",
59
68
  "@vitest/eslint-plugin": "^1.5.2",
60
69
  "@vue/eslint-config-prettier": "^10.2.0",
61
70
  "@vue/eslint-config-typescript": "^14.6.0",
71
+ "@vue/test-utils": "^2.4",
62
72
  "@vue/tsconfig": "^0.8.1",
63
73
  "eslint": "^9.39.1",
64
74
  "eslint-plugin-vue": "~10.5.1",
65
75
  "histoire": "1.0.0-alpha.5",
66
76
  "jiti": "^2.6.1",
77
+ "jsdom": "^25",
67
78
  "npm-run-all2": "^8.0.4",
68
79
  "prettier": "3.6.2",
80
+ "tailwindcss": "^4.1.17",
69
81
  "typescript": "~5.9.0",
70
82
  "vite": "^7.2.4",
71
83
  "vite-plugin-dts": "^4.3.0",
72
84
  "vite-plugin-vue-devtools": "^8.0.5",
85
+ "vitest": "^3",
73
86
  "vue-tsc": "^3.1.5"
74
87
  },
75
88
  "publishConfig": {