diff --git a/app/assets/stylesheets/components/flash.css b/app/assets/stylesheets/components/flash.css index d985310..bd8e1b9 100755 --- a/app/assets/stylesheets/components/flash.css +++ b/app/assets/stylesheets/components/flash.css @@ -1,39 +1,70 @@ -/* Flash Messages - Theme Integration */ -.flash-message { - @apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 mb-4; +.notification { + font-family: var(--font-sans, 'Plus Jakarta Sans', sans-serif); + box-shadow: var(--shadow-lg); + border: 1px solid; + transition: all var(--duration-normal, 0.3s) ease-out; } -/* Base styles for all flash messages */ -.flash-message .flex { - @apply rounded-md p-4 border shadow-md; +.notification-icon { + min-width: 20px; + height: 20px; } -/* Success message styles */ -.flash-message-success { - @apply bg-green-50 border-green-100 text-green-800; +.notification-icon i { + color: currentColor !important; } -/* Error message styles */ -.flash-message-error { - @apply bg-red-50 border-red-100 text-red-800; +.notification-success { + background: var(--color-success-light, #dcfce7); + color: var(--color-success-dark, #15803d); + border-color: var(--color-success, #22c55e); } -/* Warning message styles */ -.flash-message-warning { - @apply bg-yellow-50 border-yellow-100 text-yellow-800; +.notification-warning { + background: var(--color-warning-light, #fef3c7); + color: var(--color-warning-dark, #92400e); + border-color: var(--color-warning, #f59e0b); } -/* Info message styles */ -.flash-message-info { - @apply bg-blue-50 border-blue-100 text-blue-800; +.notification-error { + background: var(--color-danger-light, #fecaca); + color: var(--color-danger-dark, #dc2626); + border-color: var(--color-danger, #ef4444); } -/* Notice message styles */ -.flash-message-notice { - @apply bg-purple-50 border-purple-100 text-purple-800; +.notification-info { + background: var(--color-primary-50, #f0f9ff); + color: var(--color-primary-800, #1e40af); + border-color: var(--color-primary-200, #bfdbfe); } -/* Alert message styles */ -.flash-message-alert { - @apply bg-red-50 border-red-100 text-red-800; +/* Fallback colors if CSS variables are not available */ +.notification-success { + background: #dcfce7; + color: #15803d; + border-color: #22c55e; } + +.notification-warning { + background: #fef3c7; + color: #92400e; + border-color: #f59e0b; +} + +.notification-error { + background: #fecaca; + color: #dc2626; + border-color: #ef4444; +} + +.notification-info { + background: #f0f9ff; + color: #1e40af; + border-color: #bfdbfe; +} + +/* Animation for fade out */ +.flash-messages-container .notification.opacity-0 { + opacity: 0; + transform: translateY(-10px); +} \ No newline at end of file diff --git a/app/javascript/components/button.jsx b/app/javascript/components/button.jsx index 69ad71f..4ab38f7 100755 --- a/app/javascript/components/button.jsx +++ b/app/javascript/components/button.jsx @@ -10,7 +10,7 @@ const buttonVariants = cva( variants: { variant: { default: - "bg-primary text-primary-foreground shadow-xs hover:bg-primary/90", + "bg-purple text-purple-foreground shadow-xs hover:bg-purple/90", destructive: "bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60", outline: @@ -19,7 +19,7 @@ const buttonVariants = cva( "bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80", ghost: "hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50", - link: "text-primary underline-offset-4 hover:underline", + link: "text-purple underline-offset-4 hover:underline", }, size: { default: "h-9 px-4 py-2 has-[>svg]:px-3", diff --git a/app/views/components/_header.html.erb b/app/views/components/_header.html.erb index 3e31ac7..7d0de82 100755 --- a/app/views/components/_header.html.erb +++ b/app/views/components/_header.html.erb @@ -1,137 +1,95 @@ -
-
-
diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index 4c75fef..9ad5e07 100755 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -40,9 +40,6 @@ -
- <%= link_to t('devise.sessions.new.forgot_password'), new_password_path(resource_name), class: "font-medium text-purple-600 hover:text-purple-500" %> -
<% end %> diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index d8654d7..e8499d6 100755 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -32,13 +32,10 @@
<%= render "components/header" %> -
- <% if flash.any? %> -
- <%= render "shared/flash_messages" %> -
- <% end %> + + <%= render "shared/flash_messages" %> +
<%= yield %>
diff --git a/app/views/shared/_flash_messages.html.erb b/app/views/shared/_flash_messages.html.erb index 2b7ff7d..a8904b3 100755 --- a/app/views/shared/_flash_messages.html.erb +++ b/app/views/shared/_flash_messages.html.erb @@ -1,25 +1,21 @@ -<% flash.each do |type, message| %> - <% if message.present? %> -
-
-
- <%= flash_icon(type) %> -
-
-
-
-

<%= message %>

-
+<% if flash.any? %> +
+
+ <% flash.each do |type, message| %> +
+
+ <%= flash_icon(type) %>
-
-
-
-
+ <% end %>
- <% end %> -<% end %> +
+ +<% end %> \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index f25808a..236cee0 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -15,10 +15,10 @@ Rails.application.routes.draw do # Pages get "dashboard", to: "pages#dashboard", as: "dashboard" - # events - get "events", to: "events#index", as: "events" - get "events/:slug.:id", to: "events#show", as: "party" - post "events/:slug.:id/checkout", to: "events#checkout", as: "party_checkout" + # Events + get "events", to: "events#index", as: "events" + get "events/:slug.:id", to: "events#show", as: "event" + post "events/:slug.:id/checkout", to: "events#checkout", as: "event_checkout" # Routes for devise authentication Gem # Bind devise to user diff --git a/db/seeds.rb b/db/seeds.rb index f2320a9..0376868 100755 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -31,11 +31,11 @@ end # Reload all users after creation users = User.all.to_a -# Create sample parties -parties_data = [ +# Create sample events +events_data = [ { - name: "Summer Beach Party", - slug: "summer-beach-party", + name: "Summer Beach Event", + slug: "summer-beach-event", description: "Join us for an amazing night at the beach with music, dancing, and cocktails.", venue_name: "Sunset Beach Resort", venue_address: "123 Ocean Drive, Miami, FL", @@ -77,40 +77,40 @@ parties_data = [ } ] -parties = [] -parties_data.each do |party_data| - user = party_data.delete(:user) - party = Party.find_or_create_by!(name: party_data[:name]) do |p| - p.assign_attributes(party_data) +events = [] +events_data.each do |event_data| + user = event_data.delete(:user) + event = Event.find_or_create_by!(name: event_data[:name]) do |p| + p.assign_attributes(event_data) p.user = user p.state = :published end - parties << party + events << event end -# Create ticket types for each party -parties.each_with_index do |party, index| +# Create ticket types for each event +events.each_with_index do |event, index| # General Admission ticket type - TicketType.find_or_create_by!(party: party, name: "General Admission") do |tt| - tt.description = "General admission ticket for #{party.name}" + TicketType.find_or_create_by!(event: event, name: "General Admission") do |tt| + tt.description = "General admission ticket for #{event.name}" tt.price_cents = 2500 # $25.00 tt.quantity = 100 tt.sale_start_at = 1.month.ago - tt.sale_end_at = party.start_time - 1.hour + tt.sale_end_at = event.start_time - 1.hour tt.requires_id = false tt.minimum_age = 18 end # VIP ticket type - TicketType.find_or_create_by!(party: party, name: "VIP") do |tt| - tt.description = "VIP access ticket for #{party.name} with premium benefits" + TicketType.find_or_create_by!(event: event, name: "VIP") do |tt| + tt.description = "VIP access ticket for #{event.name} with premium benefits" tt.price_cents = 7500 # $75.00 tt.quantity = 20 tt.sale_start_at = 1.month.ago - tt.sale_end_at = party.start_time - 1.hour + tt.sale_end_at = event.start_time - 1.hour tt.requires_id = true tt.minimum_age = 21 end end -puts "Created #{User.count} users, #{Party.count} parties, and #{TicketType.count} ticket types" +puts "Created #{User.count} users, #{Event.count} events, and #{TicketType.count} ticket types"