feat: add advanced analytics and territory management system
- Add comprehensive analytics components with export functionality - Implement territory management with manager performance tracking - Add seatmap components for venue layout management - Create customer management features with modal interface - Add advanced hooks for dashboard flags and territory data - Implement seat selection and venue management utilities - Add type definitions for ticketing and seatmap systems 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,167 +1,129 @@
|
||||
/** @type {import('tailwindcss').Config} */
|
||||
export default {
|
||||
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}'],
|
||||
darkMode: ['class', '[data-theme="dark"]'],
|
||||
content: ['./index.html', './src/**/*.{js,ts,jsx,tsx}', './src/styles/**/*.css'],
|
||||
darkMode: 'class',
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
// Token-based semantic colors
|
||||
background: {
|
||||
// NARDO GREY SEMANTIC COLOR SYSTEM
|
||||
|
||||
// Semantic background colors
|
||||
bg: {
|
||||
primary: 'var(--color-bg-primary)',
|
||||
secondary: 'var(--color-bg-secondary)',
|
||||
tertiary: 'var(--color-bg-tertiary)',
|
||||
elevated: 'var(--color-bg-elevated)',
|
||||
overlay: 'var(--color-bg-overlay)',
|
||||
surface: 'var(--color-surface)',
|
||||
},
|
||||
|
||||
// Text colors with high contrast
|
||||
text: {
|
||||
primary: 'var(--color-text-primary)',
|
||||
secondary: 'var(--color-text-secondary)',
|
||||
muted: 'var(--color-text-muted)',
|
||||
inverse: 'var(--color-text-inverse)',
|
||||
tertiary: 'var(--color-text-tertiary)',
|
||||
disabled: 'var(--color-text-disabled)',
|
||||
inverse: 'var(--color-text-inverse)',
|
||||
},
|
||||
|
||||
// Emerald accent system
|
||||
accent: {
|
||||
DEFAULT: 'var(--color-accent)',
|
||||
hover: 'var(--color-accent-hover)',
|
||||
light: 'var(--color-accent-light)',
|
||||
lighter: 'var(--color-accent-lighter)',
|
||||
dark: 'var(--color-accent-dark)',
|
||||
bg: 'var(--color-accent-bg)',
|
||||
border: 'var(--color-accent-border)',
|
||||
},
|
||||
|
||||
// Elevation levels for cards/surfaces
|
||||
elevated: {
|
||||
1: 'var(--color-elevated-1)',
|
||||
2: 'var(--color-elevated-2)',
|
||||
3: 'var(--color-elevated-3)',
|
||||
},
|
||||
|
||||
// Glass effect system
|
||||
glass: {
|
||||
bg: 'var(--color-glass-bg)',
|
||||
border: 'var(--color-glass-border)',
|
||||
shadow: 'var(--color-glass-shadow)',
|
||||
// Legacy opacity-based system for compatibility
|
||||
50: 'rgba(255, 255, 255, 0.05)',
|
||||
100: 'rgba(255, 255, 255, 0.1)',
|
||||
200: 'rgba(255, 255, 255, 0.15)',
|
||||
300: 'rgba(255, 255, 255, 0.2)',
|
||||
400: 'rgba(255, 255, 255, 0.25)',
|
||||
500: 'rgba(255, 255, 255, 0.3)',
|
||||
dark: {
|
||||
50: 'rgba(0, 0, 0, 0.05)',
|
||||
100: 'rgba(0, 0, 0, 0.1)',
|
||||
200: 'rgba(0, 0, 0, 0.15)',
|
||||
300: 'rgba(0, 0, 0, 0.2)',
|
||||
400: 'rgba(0, 0, 0, 0.25)',
|
||||
500: 'rgba(0, 0, 0, 0.3)',
|
||||
},
|
||||
},
|
||||
// Token-based gold system
|
||||
gold: {
|
||||
50: 'var(--color-gold-50)',
|
||||
100: 'var(--color-gold-100)',
|
||||
200: 'var(--color-gold-200)',
|
||||
300: 'var(--color-gold-300)',
|
||||
400: 'var(--color-gold-400)',
|
||||
500: 'var(--color-gold-500)',
|
||||
600: 'var(--color-gold-600)',
|
||||
700: 'var(--color-gold-700)',
|
||||
800: 'var(--color-gold-800)',
|
||||
900: 'var(--color-gold-900)',
|
||||
text: 'var(--color-gold-text)',
|
||||
},
|
||||
// Token-based accent colors
|
||||
primary: {
|
||||
50: 'var(--color-primary-50)',
|
||||
100: 'var(--color-primary-100)',
|
||||
200: 'var(--color-primary-200)',
|
||||
300: 'var(--color-primary-300)',
|
||||
400: 'var(--color-primary-400)',
|
||||
500: 'var(--color-primary-500)',
|
||||
600: 'var(--color-primary-600)',
|
||||
700: 'var(--color-primary-700)',
|
||||
800: 'var(--color-primary-800)',
|
||||
900: 'var(--color-primary-900)',
|
||||
text: 'var(--color-primary-text)',
|
||||
},
|
||||
secondary: {
|
||||
50: 'var(--color-secondary-50)',
|
||||
100: 'var(--color-secondary-100)',
|
||||
200: 'var(--color-secondary-200)',
|
||||
300: 'var(--color-secondary-300)',
|
||||
400: 'var(--color-secondary-400)',
|
||||
500: 'var(--color-secondary-500)',
|
||||
600: 'var(--color-secondary-600)',
|
||||
700: 'var(--color-secondary-700)',
|
||||
800: 'var(--color-secondary-800)',
|
||||
900: 'var(--color-secondary-900)',
|
||||
text: 'var(--color-secondary-text)',
|
||||
},
|
||||
// Token-based semantic colors
|
||||
|
||||
// Semantic status colors
|
||||
success: {
|
||||
DEFAULT: 'var(--color-success)',
|
||||
bg: 'var(--color-success-bg)',
|
||||
border: 'var(--color-success-border)',
|
||||
text: 'var(--color-success-text)',
|
||||
accent: 'var(--color-success-accent)',
|
||||
},
|
||||
warning: {
|
||||
DEFAULT: 'var(--color-warning)',
|
||||
bg: 'var(--color-warning-bg)',
|
||||
border: 'var(--color-warning-border)',
|
||||
text: 'var(--color-warning-text)',
|
||||
accent: 'var(--color-warning-accent)',
|
||||
},
|
||||
error: {
|
||||
DEFAULT: 'var(--color-error)',
|
||||
bg: 'var(--color-error-bg)',
|
||||
border: 'var(--color-error-border)',
|
||||
text: 'var(--color-error-text)',
|
||||
accent: 'var(--color-error-accent)',
|
||||
},
|
||||
info: {
|
||||
DEFAULT: 'var(--color-info)',
|
||||
bg: 'var(--color-info-bg)',
|
||||
border: 'var(--color-info-border)',
|
||||
text: 'var(--color-info-text)',
|
||||
accent: 'var(--color-info-accent)',
|
||||
},
|
||||
// Token-based border colors
|
||||
|
||||
// Border color system
|
||||
border: {
|
||||
DEFAULT: 'var(--color-border-default)',
|
||||
muted: 'var(--color-border-muted)',
|
||||
strong: 'var(--color-border-strong)',
|
||||
},
|
||||
// Enhanced gradient backgrounds (kept for compatibility)
|
||||
gradient: {
|
||||
primary: {
|
||||
from: '#0ea5e9', // sky-500
|
||||
to: '#2563eb', // blue-600
|
||||
},
|
||||
secondary: {
|
||||
from: '#8b5cf6', // violet-500
|
||||
to: '#9333ea', // purple-600
|
||||
},
|
||||
dark: {
|
||||
from: '#1e293b', // slate-800
|
||||
to: '#0f172a', // slate-900
|
||||
},
|
||||
|
||||
// Focus ring system
|
||||
ring: 'var(--color-focus-ring)',
|
||||
'focus-ring': 'var(--color-focus-ring)',
|
||||
'focus-offset': 'var(--color-focus-offset)',
|
||||
|
||||
// 1970's Poster Color System
|
||||
'poster-orange': {
|
||||
DEFAULT: 'var(--poster-orange)',
|
||||
light: 'var(--poster-orange-light)',
|
||||
dark: 'var(--poster-orange-dark)',
|
||||
},
|
||||
// Legacy color system for compatibility
|
||||
border: 'hsl(var(--border))',
|
||||
input: 'hsl(var(--input))',
|
||||
ring: 'hsl(var(--ring))',
|
||||
background: 'hsl(var(--background))',
|
||||
foreground: 'hsl(var(--foreground))',
|
||||
primary: {
|
||||
DEFAULT: 'hsl(var(--primary))',
|
||||
foreground: 'hsl(var(--primary-foreground))',
|
||||
'poster-yellow': {
|
||||
DEFAULT: 'var(--poster-yellow)',
|
||||
light: 'var(--poster-yellow-light)',
|
||||
dark: 'var(--poster-yellow-dark)',
|
||||
},
|
||||
secondary: {
|
||||
DEFAULT: 'hsl(var(--secondary))',
|
||||
foreground: 'hsl(var(--secondary-foreground))',
|
||||
'poster-red': {
|
||||
DEFAULT: 'var(--poster-red)',
|
||||
light: 'var(--poster-red-light)',
|
||||
dark: 'var(--poster-red-dark)',
|
||||
},
|
||||
destructive: {
|
||||
DEFAULT: 'hsl(var(--destructive))',
|
||||
foreground: 'hsl(var(--destructive-foreground))',
|
||||
'poster-green': {
|
||||
DEFAULT: 'var(--poster-green)',
|
||||
light: 'var(--poster-green-light)',
|
||||
dark: 'var(--poster-green-dark)',
|
||||
},
|
||||
muted: {
|
||||
DEFAULT: 'hsl(var(--muted))',
|
||||
foreground: 'hsl(var(--muted-foreground))',
|
||||
'poster-turquoise': {
|
||||
DEFAULT: 'var(--poster-turquoise)',
|
||||
light: 'var(--poster-turquoise-light)',
|
||||
dark: 'var(--poster-turquoise-dark)',
|
||||
},
|
||||
accent: {
|
||||
DEFAULT: 'hsl(var(--accent))',
|
||||
foreground: 'hsl(var(--accent-foreground))',
|
||||
'poster-purple': {
|
||||
DEFAULT: 'var(--poster-purple)',
|
||||
light: 'var(--poster-purple-light)',
|
||||
dark: 'var(--poster-purple-dark)',
|
||||
},
|
||||
popover: {
|
||||
DEFAULT: 'hsl(var(--popover))',
|
||||
foreground: 'hsl(var(--popover-foreground))',
|
||||
},
|
||||
card: {
|
||||
DEFAULT: 'hsl(var(--card))',
|
||||
foreground: 'hsl(var(--card-foreground))',
|
||||
'poster-cream': 'var(--poster-cream)',
|
||||
'poster-black': 'var(--poster-black)',
|
||||
'poster-brown': 'var(--poster-brown)',
|
||||
'poster-warm-grey': 'var(--poster-warm-grey)',
|
||||
'poster-slate': {
|
||||
DEFAULT: 'var(--poster-slate)',
|
||||
light: 'var(--poster-slate-light)',
|
||||
dark: 'var(--poster-slate-dark)',
|
||||
},
|
||||
},
|
||||
|
||||
fontFamily: {
|
||||
sans: [
|
||||
'Inter',
|
||||
@@ -184,7 +146,13 @@ export default {
|
||||
'Courier New',
|
||||
'monospace',
|
||||
],
|
||||
// 1970's Poster Typography
|
||||
'poster-display': 'var(--poster-font-display)',
|
||||
'poster-headline': 'var(--poster-font-headline)',
|
||||
'poster-accent': 'var(--poster-font-accent)',
|
||||
'poster-body': 'var(--poster-font-body)',
|
||||
},
|
||||
|
||||
fontSize: {
|
||||
xs: ['0.75rem', { lineHeight: '1rem' }],
|
||||
sm: ['0.875rem', { lineHeight: '1.25rem' }],
|
||||
@@ -200,6 +168,7 @@ export default {
|
||||
'8xl': ['6rem', { lineHeight: '1' }],
|
||||
'9xl': ['8rem', { lineHeight: '1' }],
|
||||
},
|
||||
|
||||
spacing: {
|
||||
xs: 'var(--spacing-xs)',
|
||||
sm: 'var(--spacing-sm)',
|
||||
@@ -219,6 +188,7 @@ export default {
|
||||
128: '32rem',
|
||||
144: '36rem',
|
||||
},
|
||||
|
||||
borderRadius: {
|
||||
none: 'var(--radius-none)',
|
||||
sm: 'var(--radius-sm)',
|
||||
@@ -230,9 +200,9 @@ export default {
|
||||
'4xl': 'var(--radius-4xl)',
|
||||
'5xl': 'var(--radius-5xl)',
|
||||
full: 'var(--radius-full)',
|
||||
// Legacy radius values for compatibility
|
||||
DEFAULT: 'var(--radius)',
|
||||
DEFAULT: 'var(--radius-md)',
|
||||
},
|
||||
|
||||
backdropBlur: {
|
||||
xs: 'var(--blur-xs)',
|
||||
sm: 'var(--blur-sm)',
|
||||
@@ -244,12 +214,11 @@ export default {
|
||||
'4xl': 'var(--blur-4xl)',
|
||||
'5xl': 'var(--blur-5xl)',
|
||||
},
|
||||
|
||||
animation: {
|
||||
// Existing animations
|
||||
'fade-in': 'fadeIn 0.5s ease-in-out',
|
||||
'slide-up': 'slideUp 0.3s ease-out',
|
||||
float: 'float 6s ease-in-out infinite',
|
||||
// New glassmorphism animations
|
||||
'fade-in-up': 'fadeInUp 0.6s cubic-bezier(0.16, 1, 0.3, 1)',
|
||||
'slide-in-left': 'slideInLeft 0.5s cubic-bezier(0.16, 1, 0.3, 1)',
|
||||
'slide-in-right': 'slideInRight 0.5s cubic-bezier(0.16, 1, 0.3, 1)',
|
||||
@@ -258,9 +227,14 @@ export default {
|
||||
'bounce-slow': 'bounce 3s infinite',
|
||||
glow: 'glow 2s ease-in-out infinite alternate',
|
||||
shimmer: 'shimmer 2.5s linear infinite',
|
||||
// 1970's Poster Animations
|
||||
'poster-wiggle': 'posterWiggle 2s ease-in-out infinite',
|
||||
'poster-float': 'posterFloat 4s ease-in-out infinite',
|
||||
'poster-rainbow': 'posterRainbow 3s linear infinite',
|
||||
'poster-pulse': 'posterPulse 2s ease-in-out infinite',
|
||||
},
|
||||
|
||||
keyframes: {
|
||||
// Existing keyframes
|
||||
fadeIn: {
|
||||
'0%': { opacity: '0' },
|
||||
'100%': { opacity: '1' },
|
||||
@@ -273,7 +247,6 @@ export default {
|
||||
'0%, 100%': { transform: 'translateY(0px)' },
|
||||
'50%': { transform: 'translateY(-20px)' },
|
||||
},
|
||||
// New premium keyframes
|
||||
fadeInUp: {
|
||||
'0%': {
|
||||
opacity: '0',
|
||||
@@ -316,10 +289,10 @@ export default {
|
||||
},
|
||||
glow: {
|
||||
'0%': {
|
||||
boxShadow: '0 0 20px rgba(217, 158, 52, 0.3)',
|
||||
boxShadow: '0 0 20px var(--color-accent-gold-500, #d99e34)',
|
||||
},
|
||||
'100%': {
|
||||
boxShadow: '0 0 40px rgba(217, 158, 52, 0.6)',
|
||||
boxShadow: '0 0 40px var(--color-accent-gold-500, #d99e34)',
|
||||
},
|
||||
},
|
||||
shimmer: {
|
||||
@@ -330,7 +303,32 @@ export default {
|
||||
backgroundPosition: '200% 0',
|
||||
},
|
||||
},
|
||||
// 1970's Poster Keyframes
|
||||
posterWiggle: {
|
||||
'0%, 100%': { transform: 'rotate(0deg) scale(1)' },
|
||||
'25%': { transform: 'rotate(1deg) scale(1.02)' },
|
||||
'75%': { transform: 'rotate(-1deg) scale(0.98)' },
|
||||
},
|
||||
posterFloat: {
|
||||
'0%, 100%': { transform: 'translateY(0px)' },
|
||||
'50%': { transform: 'translateY(-10px)' },
|
||||
},
|
||||
posterRainbow: {
|
||||
'0%': { filter: 'hue-rotate(0deg)' },
|
||||
'100%': { filter: 'hue-rotate(360deg)' },
|
||||
},
|
||||
posterPulse: {
|
||||
'0%, 100%': {
|
||||
transform: 'scale(1)',
|
||||
opacity: '1'
|
||||
},
|
||||
'50%': {
|
||||
transform: 'scale(1.05)',
|
||||
opacity: '0.9'
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
boxShadow: {
|
||||
'glass-sm': 'var(--shadow-glass-sm)',
|
||||
glass: 'var(--shadow-glass-md)',
|
||||
@@ -343,24 +341,37 @@ export default {
|
||||
'inner-light': 'var(--shadow-inner-light)',
|
||||
'inner-medium': 'var(--shadow-inner-medium)',
|
||||
'inner-strong': 'var(--shadow-inner-strong)',
|
||||
// 1970's Poster Shadows
|
||||
'poster-glow': 'var(--poster-shadow-glow)',
|
||||
'poster-heavy': 'var(--poster-shadow-heavy)',
|
||||
'poster-text': 'var(--poster-shadow-text)',
|
||||
'poster-neon': 'var(--poster-shadow-neon)',
|
||||
},
|
||||
|
||||
backgroundImage: {
|
||||
'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))',
|
||||
'gradient-conic':
|
||||
'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))',
|
||||
'glass-gradient':
|
||||
'linear-gradient(135deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.05))',
|
||||
'linear-gradient(135deg, var(--color-glass-bg), rgba(255, 255, 255, 0.05))',
|
||||
shimmer:
|
||||
'linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent)',
|
||||
// 1970's Poster Gradients
|
||||
'poster-sunset': 'var(--poster-sunset-gradient)',
|
||||
'poster-psychedelic': 'var(--poster-psychedelic-gradient)',
|
||||
'poster-earth': 'var(--poster-earth-gradient)',
|
||||
'poster-rainbow': 'var(--poster-rainbow-gradient)',
|
||||
},
|
||||
|
||||
maxWidth: {
|
||||
'8xl': '88rem',
|
||||
'9xl': '96rem',
|
||||
},
|
||||
|
||||
screens: {
|
||||
xs: '475px',
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user