@parto-system-design/ui 1.1.0 → 1.1.2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parto-system-design/ui",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Parto Design System UI components with RTL support",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -25,12 +25,6 @@
25
25
  "publishConfig": {
26
26
  "access": "public"
27
27
  },
28
- "size-limit": [
29
- {
30
- "path": "dist/index.js",
31
- "limit": "300 kB"
32
- }
33
- ],
34
28
  "dependencies": {
35
29
  "@hookform/resolvers": "^5.2.2",
36
30
  "@nivo/bar": "^0.99.0",
@@ -73,14 +67,12 @@
73
67
  "clsx": "^2.1.1",
74
68
  "cmdk": "^1.1.1",
75
69
  "date-fns": "^4.1.0",
76
- "date-fns-jalali": "4.1.0-0",
77
70
  "embla-carousel-react": "^8.6.0",
78
71
  "input-otp": "^1.4.2",
79
72
  "lucide-react": "^0.554.0",
80
- "next-themes": "^0.4.6",
73
+ "moment-jalaali": "^0.10.4",
81
74
  "react-day-picker": "^9.13.0",
82
75
  "react-hook-form": "^7.66.1",
83
- "react-player": "^2.16.0",
84
76
  "react-resizable-panels": "^3.0.6",
85
77
  "sonner": "^2.0.7",
86
78
  "tailwind-merge": "^3.4.0",
@@ -88,20 +80,35 @@
88
80
  "zod": "^4.1.12"
89
81
  },
90
82
  "peerDependencies": {
83
+ "next-themes": ">=0.4",
91
84
  "react": ">=18",
92
85
  "react-dom": ">=18"
93
86
  },
87
+ "peerDependenciesMeta": {
88
+ "next-themes": {
89
+ "optional": true
90
+ }
91
+ },
94
92
  "devDependencies": {
95
- "@size-limit/preset-small-lib": "^12.0.0",
93
+ "@eslint/js": "^9.39.3",
94
+ "@size-limit/esbuild": "^12.0.0",
95
+ "@size-limit/file": "^12.0.0",
96
96
  "@tailwindcss/cli": "^4.1.18",
97
97
  "@testing-library/jest-dom": "^6.9.1",
98
98
  "@testing-library/react": "^16.3.2",
99
+ "@types/moment-jalaali": "^0.7.9",
99
100
  "@types/node": "^20.11.5",
100
101
  "@types/react": "^19.2.6",
101
102
  "@types/react-dom": "^19.2.3",
103
+ "@vitest/coverage-v8": "^4.0.18",
102
104
  "@vitest/ui": "^4.0.18",
103
105
  "autoprefixer": "^10.4.17",
104
106
  "copyfiles": "^2.4.1",
107
+ "eslint": "^9.39.3",
108
+ "eslint-plugin-jsx-a11y": "^6.10.2",
109
+ "eslint-plugin-react": "^7.37.5",
110
+ "eslint-plugin-react-hooks": "^7.0.1",
111
+ "globals": "^17.3.0",
105
112
  "jsdom": "^28.1.0",
106
113
  "postcss": "^8.4.33",
107
114
  "size-limit": "^12.0.0",
@@ -109,19 +116,20 @@
109
116
  "tailwindcss-animate": "^1.0.7",
110
117
  "tsup": "^8.5.1",
111
118
  "typescript": "^5.9.3",
119
+ "typescript-eslint": "^8.56.1",
112
120
  "vite-plugin-dts": "^3.7.2",
113
- "vitest": "^4.0.18",
114
- "vitest-axe": "^0.1.0"
121
+ "vitest": "^4.0.18"
115
122
  },
116
123
  "scripts": {
117
- "size": "size-limit",
118
124
  "dev": "tsup --watch",
119
125
  "build": "tsup && tailwindcss -i ./src/globals.css -o ./dist/index.css && copyfiles -u 1 \"src/assets/fonts/*.woff2\" dist",
120
126
  "test": "vitest run",
121
127
  "test:watch": "vitest",
122
128
  "test:ui": "vitest --ui",
123
- "lint": "eslint src --ext .ts,.tsx",
124
- "lint:fix": "eslint src --ext .ts,.tsx --fix",
125
- "typecheck": "tsc --noEmit --skipLibCheck"
129
+ "lint": "eslint src/",
130
+ "lint:fix": "eslint src/ --fix",
131
+ "typecheck": "tsc --noEmit --skipLibCheck",
132
+ "size": "size-limit",
133
+ "size:check": "size-limit --limit"
126
134
  }
127
135
  }
@@ -54,7 +54,7 @@ const config: Config = {
54
54
  DEFAULT: 'hsl(var(--background-overlay-default))',
55
55
  hover: 'hsl(var(--background-overlay-hover))',
56
56
  },
57
-
57
+
58
58
  // Supabase Design System - Foreground Colors
59
59
  foreground: {
60
60
  DEFAULT: 'hsl(var(--foreground-default))',
@@ -63,7 +63,7 @@ const config: Config = {
63
63
  muted: 'hsl(var(--foreground-muted))',
64
64
  contrast: 'hsl(var(--foreground-contrast))',
65
65
  },
66
-
66
+
67
67
  // Supabase Design System - Border Colors
68
68
  border: {
69
69
  DEFAULT: 'hsl(var(--border-default))',
@@ -82,7 +82,7 @@ const config: Config = {
82
82
  // Shorthand border colors for Supabase compatibility
83
83
  strong: 'hsl(var(--border-strong))',
84
84
  stronger: 'hsl(var(--border-stronger))',
85
-
85
+
86
86
  // Supabase Design System - Brand Colors
87
87
  brand: {
88
88
  DEFAULT: 'hsl(var(--brand-default))',
@@ -93,7 +93,7 @@ const config: Config = {
93
93
  600: 'hsl(var(--brand-600))',
94
94
  link: 'hsl(var(--brand-link))',
95
95
  },
96
-
96
+
97
97
  // Supabase Design System - Warning Colors
98
98
  warning: {
99
99
  DEFAULT: 'hsl(var(--warning-default))',
@@ -103,7 +103,7 @@ const config: Config = {
103
103
  500: 'hsl(var(--warning-500))',
104
104
  600: 'hsl(var(--warning-600))',
105
105
  },
106
-
106
+
107
107
  // Supabase Design System - Destructive Colors
108
108
  destructive: {
109
109
  DEFAULT: 'hsl(var(--destructive-default))',
@@ -114,7 +114,7 @@ const config: Config = {
114
114
  600: 'hsl(var(--destructive-600))',
115
115
  foreground: 'hsl(var(--destructive-600))',
116
116
  },
117
-
117
+
118
118
  // Supabase Design System - Secondary Colors
119
119
  secondary: {
120
120
  DEFAULT: 'hsl(var(--secondary-default))',
@@ -122,7 +122,7 @@ const config: Config = {
122
122
  400: 'hsl(var(--secondary-400))',
123
123
  foreground: 'hsl(var(--foreground-default))',
124
124
  },
125
-
125
+
126
126
  // Supabase Design System - Code Block Colors
127
127
  'code-block': {
128
128
  1: 'hsl(var(--code-block-1))',
@@ -131,6 +131,29 @@ const config: Config = {
131
131
  4: 'hsl(var(--code-block-4))',
132
132
  5: 'hsl(var(--code-block-5))',
133
133
  },
134
+
135
+ // Engagement Rate Tier Colors (social listening domain)
136
+ engagement: {
137
+ excellent: 'hsl(var(--engagement-excellent))',
138
+ 'excellent-hover': 'hsl(var(--engagement-excellent-hover))',
139
+ 'very-good': 'hsl(var(--engagement-very-good))',
140
+ 'very-good-hover': 'hsl(var(--engagement-very-good-hover))',
141
+ good: 'hsl(var(--engagement-good))',
142
+ 'good-hover': 'hsl(var(--engagement-good-hover))',
143
+ average: 'hsl(var(--engagement-average))',
144
+ 'average-hover': 'hsl(var(--engagement-average-hover))',
145
+ low: 'hsl(var(--engagement-low))',
146
+ 'low-hover': 'hsl(var(--engagement-low-hover))',
147
+ poor: 'hsl(var(--engagement-poor))',
148
+ 'poor-hover': 'hsl(var(--engagement-poor-hover))',
149
+ inactive: 'hsl(var(--engagement-inactive))',
150
+ },
151
+ // Sentiment Colors (social listening domain)
152
+ sentiment: {
153
+ positive: 'hsl(var(--sentiment-positive))',
154
+ negative: 'hsl(var(--sentiment-negative))',
155
+ neutral: 'hsl(var(--sentiment-neutral))',
156
+ },
134
157
 
135
158
  // Legacy Shadcn compatibility aliases
136
159
  input: 'hsl(var(--background-control))',
@@ -173,16 +196,300 @@ const config: Config = {
173
196
  '4': 'hsl(var(--chart-4))',
174
197
  '5': 'hsl(var(--chart-5))',
175
198
  },
176
-
177
- // Note: Standard Tailwind palettes (slate, gray, zinc, etc.) are available
178
- // by default — no need to redeclare them here.
199
+
200
+ // Tailwind Standard Palettes
201
+ slate: {
202
+ 50: '#f8fafc',
203
+ 100: '#f1f5f9',
204
+ 200: '#e2e8f0',
205
+ 300: '#cbd5e1',
206
+ 400: '#94a3b8',
207
+ 500: '#64748b',
208
+ 600: '#475569',
209
+ 700: '#334155',
210
+ 800: '#1e293b',
211
+ 900: '#0f172a',
212
+ 950: '#020617',
213
+ },
214
+ gray: {
215
+ 50: '#f9fafb',
216
+ 100: '#f3f4f6',
217
+ 200: '#e5e7eb',
218
+ 300: '#d1d5db',
219
+ 400: '#9ca3af',
220
+ 500: '#6b7280',
221
+ 600: '#4b5563',
222
+ 700: '#374151',
223
+ 800: '#1f2937',
224
+ 900: '#111827',
225
+ 950: '#030712',
226
+ },
227
+ zinc: {
228
+ 50: '#fafafa',
229
+ 100: '#f4f4f5',
230
+ 200: '#e4e4e7',
231
+ 300: '#d4d4d8',
232
+ 400: '#a1a1aa',
233
+ 500: '#71717a',
234
+ 600: '#52525b',
235
+ 700: '#3f3f46',
236
+ 800: '#27272a',
237
+ 900: '#18181b',
238
+ 950: '#09090b',
239
+ },
240
+ neutral: {
241
+ 50: '#fafafa',
242
+ 100: '#f5f5f5',
243
+ 200: '#e5e5e5',
244
+ 300: '#d4d4d4',
245
+ 400: '#a3a3a3',
246
+ 500: '#737373',
247
+ 600: '#525252',
248
+ 700: '#404040',
249
+ 800: '#262626',
250
+ 900: '#171717',
251
+ 950: '#0a0a0a',
252
+ },
253
+ stone: {
254
+ 50: '#fafaf9',
255
+ 100: '#f5f5f4',
256
+ 200: '#e7e5e4',
257
+ 300: '#d6d3d1',
258
+ 400: '#a8a29e',
259
+ 500: '#78716c',
260
+ 600: '#57534e',
261
+ 700: '#44403c',
262
+ 800: '#292524',
263
+ 900: '#1c1917',
264
+ 950: '#0c0a09',
265
+ },
266
+ red: {
267
+ 50: '#fef2f2',
268
+ 100: '#fee2e2',
269
+ 200: '#fecaca',
270
+ 300: '#fca5a5',
271
+ 400: '#f87171',
272
+ 500: '#ef4444',
273
+ 600: '#dc2626',
274
+ 700: '#b91c1c',
275
+ 800: '#991b1b',
276
+ 900: '#7f1d1d',
277
+ 950: '#450a0a',
278
+ },
279
+ orange: {
280
+ 50: '#fff7ed',
281
+ 100: '#ffedd5',
282
+ 200: '#fed7aa',
283
+ 300: '#fdba74',
284
+ 400: '#fb923c',
285
+ 500: '#f97316',
286
+ 600: '#ea580c',
287
+ 700: '#c2410c',
288
+ 800: '#9a3412',
289
+ 900: '#7c2d12',
290
+ 950: '#431407',
291
+ },
292
+ amber: {
293
+ 50: '#fffbeb',
294
+ 100: '#fef3c7',
295
+ 200: '#fde68a',
296
+ 300: '#fcd34d',
297
+ 400: '#fbbf24',
298
+ 500: '#f59e0b',
299
+ 600: '#d97706',
300
+ 700: '#b45309',
301
+ 800: '#92400e',
302
+ 900: '#78350f',
303
+ 950: '#451a03',
304
+ },
305
+ yellow: {
306
+ 50: '#fefce8',
307
+ 100: '#fef9c3',
308
+ 200: '#fef08a',
309
+ 300: '#fde047',
310
+ 400: '#facc15',
311
+ 500: '#eab308',
312
+ 600: '#ca8a04',
313
+ 700: '#a16207',
314
+ 800: '#854d0e',
315
+ 900: '#713f12',
316
+ 950: '#422006',
317
+ },
318
+ lime: {
319
+ 50: '#f7fee7',
320
+ 100: '#ecfccb',
321
+ 200: '#d9f99d',
322
+ 300: '#bef264',
323
+ 400: '#a3e635',
324
+ 500: '#84cc16',
325
+ 600: '#65a30d',
326
+ 700: '#4d7c0f',
327
+ 800: '#3f6212',
328
+ 900: '#365314',
329
+ 950: '#1a2e05',
330
+ },
331
+ green: {
332
+ 50: '#f0fdf4',
333
+ 100: '#dcfce7',
334
+ 200: '#bbf7d0',
335
+ 300: '#86efac',
336
+ 400: '#4ade80',
337
+ 500: '#22c55e',
338
+ 600: '#16a34a',
339
+ 700: '#15803d',
340
+ 800: '#166534',
341
+ 900: '#14532d',
342
+ 950: '#052e16',
343
+ },
344
+ emerald: {
345
+ 50: '#ecfdf5',
346
+ 100: '#d1fae5',
347
+ 200: '#a7f3d0',
348
+ 300: '#6ee7b7',
349
+ 400: '#34d399',
350
+ 500: '#10b981',
351
+ 600: '#059669',
352
+ 700: '#047857',
353
+ 800: '#065f46',
354
+ 900: '#064e3b',
355
+ 950: '#022c22',
356
+ },
357
+ teal: {
358
+ 50: '#f0fdfa',
359
+ 100: '#ccfbf1',
360
+ 200: '#99f6e4',
361
+ 300: '#5eead4',
362
+ 400: '#2dd4bf',
363
+ 500: '#14b8a6',
364
+ 600: '#0d9488',
365
+ 700: '#0f766e',
366
+ 800: '#115e59',
367
+ 900: '#134e4a',
368
+ 950: '#042f2e',
369
+ },
370
+ cyan: {
371
+ 50: '#ecfeff',
372
+ 100: '#cffafe',
373
+ 200: '#a5f3fc',
374
+ 300: '#67e8f9',
375
+ 400: '#22d3ee',
376
+ 500: '#06b6d4',
377
+ 600: '#0891b2',
378
+ 700: '#0e7490',
379
+ 800: '#155e75',
380
+ 900: '#164e63',
381
+ 950: '#083344',
382
+ },
383
+ sky: {
384
+ 50: '#f0f9ff',
385
+ 100: '#e0f2fe',
386
+ 200: '#bae6fd',
387
+ 300: '#7dd3fc',
388
+ 400: '#38bdf8',
389
+ 500: '#0ea5e9',
390
+ 600: '#0284c7',
391
+ 700: '#0369a1',
392
+ 800: '#075985',
393
+ 900: '#0c4a6e',
394
+ 950: '#082f49',
395
+ },
396
+ blue: {
397
+ 50: '#eff6ff',
398
+ 100: '#dbeafe',
399
+ 200: '#bfdbfe',
400
+ 300: '#93c5fd',
401
+ 400: '#60a5fa',
402
+ 500: '#3b82f6',
403
+ 600: '#2563eb',
404
+ 700: '#1d4ed8',
405
+ 800: '#1e40af',
406
+ 900: '#1e3a8a',
407
+ 950: '#172554',
408
+ },
409
+ indigo: {
410
+ 50: '#eef2ff',
411
+ 100: '#e0e7ff',
412
+ 200: '#c7d2fe',
413
+ 300: '#a5b4fc',
414
+ 400: '#818cf8',
415
+ 500: '#6366f1',
416
+ 600: '#4f46e5',
417
+ 700: '#4338ca',
418
+ 800: '#3730a3',
419
+ 900: '#312e81',
420
+ 950: '#1e1b4b',
421
+ },
422
+ violet: {
423
+ 50: '#f5f3ff',
424
+ 100: '#ede9fe',
425
+ 200: '#ddd6fe',
426
+ 300: '#c4b5fd',
427
+ 400: '#a78bfa',
428
+ 500: '#8b5cf6',
429
+ 600: '#7c3aed',
430
+ 700: '#6d28d9',
431
+ 800: '#5b21b6',
432
+ 900: '#4c1d95',
433
+ 950: '#2e1065',
434
+ },
435
+ purple: {
436
+ 50: '#faf5ff',
437
+ 100: '#f3e8ff',
438
+ 200: '#e9d5ff',
439
+ 300: '#d8b4fe',
440
+ 400: '#c084fc',
441
+ 500: '#a855f7',
442
+ 600: '#9333ea',
443
+ 700: '#7e22ce',
444
+ 800: '#6b21a8',
445
+ 900: '#581c87',
446
+ 950: '#3b0764',
447
+ },
448
+ fuchsia: {
449
+ 50: '#fdf4ff',
450
+ 100: '#fae8ff',
451
+ 200: '#f5d0fe',
452
+ 300: '#f0abfc',
453
+ 400: '#e879f9',
454
+ 500: '#d946ef',
455
+ 600: '#c026d3',
456
+ 700: '#a21caf',
457
+ 800: '#86198f',
458
+ 900: '#701a75',
459
+ 950: '#4a044e',
460
+ },
461
+ pink: {
462
+ 50: '#fdf2f8',
463
+ 100: '#fce7f3',
464
+ 200: '#fbcfe8',
465
+ 300: '#f9a8d4',
466
+ 400: '#f472b6',
467
+ 500: '#ec4899',
468
+ 600: '#db2777',
469
+ 700: '#be185d',
470
+ 800: '#9d174d',
471
+ 900: '#831843',
472
+ 950: '#500724',
473
+ },
474
+ rose: {
475
+ 50: '#fff1f2',
476
+ 100: '#ffe4e6',
477
+ 200: '#fecdd3',
478
+ 300: '#fda4af',
479
+ 400: '#fb7185',
480
+ 500: '#f43f5e',
481
+ 600: '#e11d48',
482
+ 700: '#be123c',
483
+ 800: '#9f1239',
484
+ 900: '#881337',
485
+ 950: '#4c0519',
486
+ },
179
487
  },
180
488
  borderRadius: {
181
489
  lg: 'var(--radius)',
182
490
  md: 'calc(var(--radius) - 2px)',
183
491
  sm: 'calc(var(--radius) - 4px)',
184
492
  },
185
-
186
493
  keyframes: {
187
494
  'accordion-down': {
188
495
  from: { height: '0' },
@@ -192,20 +499,87 @@ const config: Config = {
192
499
  from: { height: 'var(--radix-accordion-content-height)' },
193
500
  to: { height: '0' },
194
501
  },
502
+ 'fade-in': {
503
+ '0%': { opacity: '0' },
504
+ '100%': { opacity: '1' },
505
+ },
506
+ 'fade-out': {
507
+ '0%': { opacity: '1' },
508
+ '100%': { opacity: '0' },
509
+ },
510
+ 'slide-up': {
511
+ '0%': { transform: 'translateY(4px)', opacity: '0' },
512
+ '100%': { transform: 'translateY(0)', opacity: '1' },
513
+ },
514
+ 'slide-down': {
515
+ '0%': { transform: 'translateY(-4px)', opacity: '0' },
516
+ '100%': { transform: 'translateY(0)', opacity: '1' },
517
+ },
518
+ 'scale-in': {
519
+ '0%': { transform: 'scale(0.95)', opacity: '0' },
520
+ '100%': { transform: 'scale(1)', opacity: '1' },
521
+ },
522
+ shimmer: {
523
+ '0%': { backgroundPosition: '-200% 0' },
524
+ '100%': { backgroundPosition: '200% 0' },
525
+ },
195
526
  },
196
527
  animation: {
197
528
  'accordion-down': 'accordion-down 0.2s ease-out',
198
529
  'accordion-up': 'accordion-up 0.2s ease-out',
530
+ 'fade-in': 'fade-in 0.2s ease-out',
531
+ 'fade-out': 'fade-out 0.2s ease-out',
532
+ 'slide-up': 'slide-up 0.2s ease-out',
533
+ 'slide-down': 'slide-down 0.2s ease-out',
534
+ 'scale-in': 'scale-in 0.2s ease-out',
535
+ shimmer: 'shimmer 2s linear infinite',
199
536
  },
200
537
  fontWeight: {
538
+ thin: '100',
539
+ extralight: '200',
540
+ light: '300',
201
541
  regular: '400',
542
+ medium: '500',
543
+ semibold: '600',
544
+ bold: '700',
545
+ extrabold: '800',
546
+ black: '900',
547
+ },
548
+ fontSize: {
549
+ '2xs': ['0.625rem', { lineHeight: '1rem' }],
550
+ xs: ['0.75rem', { lineHeight: '1.125rem' }],
551
+ sm: ['0.875rem', { lineHeight: '1.375rem' }],
552
+ base: ['1rem', { lineHeight: '1.625rem' }],
553
+ lg: ['1.125rem', { lineHeight: '1.75rem' }],
554
+ xl: ['1.25rem', { lineHeight: '1.875rem' }],
555
+ '2xl': ['1.5rem', { lineHeight: '2rem' }],
556
+ '3xl': ['1.875rem', { lineHeight: '2.375rem' }],
557
+ '4xl': ['2.25rem', { lineHeight: '2.75rem' }],
558
+ '5xl': ['3rem', { lineHeight: '3.5rem' }],
559
+ },
560
+ boxShadow: {
561
+ sm: '0 1px 2px 0 rgb(0 0 0 / 0.05)',
562
+ DEFAULT: '0 1px 3px 0 rgb(0 0 0 / 0.07), 0 1px 2px -1px rgb(0 0 0 / 0.07)',
563
+ md: '0 4px 6px -1px rgb(0 0 0 / 0.07), 0 2px 4px -2px rgb(0 0 0 / 0.05)',
564
+ lg: '0 10px 15px -3px rgb(0 0 0 / 0.08), 0 4px 6px -4px rgb(0 0 0 / 0.04)',
565
+ xl: '0 20px 25px -5px rgb(0 0 0 / 0.08), 0 8px 10px -6px rgb(0 0 0 / 0.04)',
566
+ card: '0 2px 8px 0 rgb(0 0 0 / 0.04)',
567
+ dropdown: '0 4px 16px 0 rgb(0 0 0 / 0.12)',
568
+ dialog: '0 16px 48px 0 rgb(0 0 0 / 0.16)',
569
+ },
570
+ // Icon sizing tokens — maps CSS vars --icon-xs/sm/md to Tailwind utilities
571
+ // Enables: size-icon-xs, h-icon-sm, w-icon-md, etc.
572
+ spacing: {
573
+ 'icon-xs': 'var(--icon-xs)', // 12px
574
+ 'icon-sm': 'var(--icon-sm)', // 16px
575
+ 'icon-md': 'var(--icon-md)', // 18px
202
576
  },
203
577
  },
204
578
  },
205
579
  plugins: [
206
580
  require('tailwindcss-animate'),
207
581
  // Supabase Shorthand Classes Plugin
208
- plugin(function ({ addUtilities }) {
582
+ plugin(function({ addUtilities }) {
209
583
  addUtilities({
210
584
  // Background shorthands
211
585
  '.bg': {