Skip to content

feat: event page#108

Merged
danielhe4rt merged 57 commits into
3.xfrom
feat/event-page
Nov 21, 2025
Merged

feat: event page#108
danielhe4rt merged 57 commits into
3.xfrom
feat/event-page

Conversation

@DiogoKaster
Copy link
Copy Markdown
Contributor

@DiogoKaster DiogoKaster commented Nov 18, 2025

Summary by CodeRabbit

  • New Features

    • Many new UI components and Blade-driven sections (headings, text, badge, icon, section-title, schedule-card, animate blocks) plus event-themed pages and a new 3pontos homepage and layout/page templates.
  • Style

    • Major visual refresh: semantic color/elevation tokens, expanded palette and fonts, updated borders, gradients, typography, icon/button/card styles, new animations and theme variants.
  • Chores

    • Tenant-aware panel/theme wiring, guest topbar/sidebar, theme asset inclusion and example domain config.

✏️ Tip: You can customize this high-level summary in your review settings.

…ntos theme, and update section-title background styling
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
app-modules/he4rt/resources/css/components/icon.css (1)

9-19: Consider using CSS custom properties or Tailwind's size scale for size variants.

The size variants could alternatively be expressed as custom properties or grouped under a Tailwind size scale definition. However, the current approach is perfectly valid and more explicit—no action needed unless you want to reduce repetition across similar component files.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ab40488 and cdfb10b.

📒 Files selected for processing (3)
  • app-modules/he4rt/resources/css/components/icon.css (1 hunks)
  • app-modules/he4rt/resources/views/components/icon.blade.php (1 hunks)
  • app-modules/he4rt/resources/views/components/schedule-card.blade.php (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • app-modules/he4rt/resources/views/components/icon.blade.php
  • app-modules/he4rt/resources/views/components/schedule-card.blade.php
🔇 Additional comments (2)
app-modules/he4rt/resources/css/components/icon.css (2)

1-19: Well-structured icon utility classes with appropriate interactivity and sizing variants.

The CSS composition is clean and idiomatic for Tailwind:

  • The base .hp-icon class establishes consistent styling (background, text color, rounding, padding)
  • .hp-icon-interactive correctly adds pointer cursor and smooth hover/active state transitions
  • Size variants (sm/md/lg) map to reasonable icon dimensions, enabling flexible sizing without hardcoding values

1-7: ****

Verification confirmed that the semantic design tokens are properly defined in the Tailwind configuration. The @theme inline block in app-modules/he4rt/resources/css/support/index.css contains --color-icon-high and --color-icon-dark, which auto-generate the bg-icon-high and text-icon-dark utilities in Tailwind v4. The @apply directives in icon.css will render correctly.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

♻️ Duplicate comments (3)
app-modules/he4rt/resources/css/components/heading.css (2)

26-28: Responsive scale regression in hp-heading-size-xl not fixed.

The size progression still regresses from sm:text-3xl to md:text-2xl—this contradicts the responsive design principle where larger breakpoints should maintain or increase size, not decrease it.

Apply this diff to fix the regression:

 .hp-heading-size-xl {
-    @apply text-xl sm:text-3xl md:text-2xl lg:text-3xl xl:text-4xl;
+    @apply text-xl sm:text-2xl md:text-3xl lg:text-4xl xl:text-5xl;
 }

38-40: Responsive scale regression in hp-heading-size-4xl not fixed.

Similar to hp-heading-size-xl, this class regresses from sm:text-4xl to md:text-3xl, which breaks responsive typography monotonicity.

Apply this diff to fix the regression:

 .hp-heading-size-4xl {
-    @apply text-2xl sm:text-4xl md:text-3xl lg:text-4xl xl:text-5xl;
+    @apply text-2xl sm:text-3xl md:text-4xl lg:text-5xl xl:text-6xl;
 }
app-modules/he4rt/resources/views/components/schedule-card.blade.php (1)

7-25: Previous review already flagged missing default case.

A past review identified that the match expression lacks a default case, which would throw an UnhandledMatchError for unexpected status values. Please address that feedback.

Additionally, consider using Laravel localization instead of hardcoded Portuguese text. This improves maintainability and enables multi-language support.

Example refactor:

 @php
     $config = match ($status) {
         'finished' => [
             'color' => 'text-green-300',
-            'text' => 'Finalizado',
+            'text' => __('schedule.status.finished'),
             'icon' => 'heroicon-s-check-circle',
         ],
         'in_progress' => [
             'color' => 'text-orange-300',
-            'text' => 'Em andamento',
+            'text' => __('schedule.status.in_progress'),
             'icon' => 'heroicon-s-clock',
         ],
         'upcoming' => [
             'color' => 'text-blue-300',
-            'text' => 'Em breve',
+            'text' => __('schedule.status.upcoming'),
             'icon' => 'heroicon-o-calendar',
         ],
+        default => [
+            'color' => 'text-gray-300',
+            'text' => __('schedule.status.unknown'),
+            'icon' => 'heroicon-o-question-mark-circle',
+        ],
     };
 @endphp

Then create a language file at resources/lang/pt/schedule.php:

return [
    'status' => [
        'finished' => 'Finalizado',
        'in_progress' => 'Em andamento',
        'upcoming' => 'Em breve',
        'unknown' => 'Desconhecido',
    ],
];
🧹 Nitpick comments (1)
app-modules/he4rt/resources/views/components/schedule-card.blade.php (1)

1-5: Consider documenting the expected time format.

The startsAt prop defaults to '14:00' but lacks validation or documentation of the expected format. Consider adding a comment to clarify that the format should be HH:MM.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between cdfb10b and 0b1dfe5.

📒 Files selected for processing (3)
  • app-modules/he4rt/resources/css/components/heading.css (1 hunks)
  • app-modules/he4rt/resources/views/components/heading.blade.php (1 hunks)
  • app-modules/he4rt/resources/views/components/schedule-card.blade.php (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • app-modules/he4rt/resources/views/components/heading.blade.php
🧰 Additional context used
🧬 Code graph analysis (1)
app-modules/he4rt/resources/views/components/schedule-card.blade.php (1)
app-modules/meeting/src/Models/MeetingType.php (1)
  • MeetingType (18-52)
🔇 Additional comments (2)
app-modules/he4rt/resources/css/components/heading.css (1)

1-4: Base heading class is well-structured.

The base .hp-heading utility class correctly applies font-weight, letter-spacing, and word-break properties. No issues here.

app-modules/he4rt/resources/views/components/schedule-card.blade.php (1)

27-44: LGTM!

The rendering logic is clean and properly uses Blade components and Tailwind classes. The template structure is semantic and the use of custom x-he4rt components maintains consistency.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
app-modules/he4rt/resources/views/components/schedule-card.blade.php (1)

7-24: Add a default arm to the match to avoid UnhandledMatchError

If Line 8 receives any $status other than 'finished', 'in_progress', or 'upcoming', PHP’s match will throw UnhandledMatchError, breaking the view at runtime. This is still missing and should be handled defensively.

You can add a default config like:

     $config = match ($status) {
         'finished' => [
             'color' => 'text-green-300',
             'text' => 'Finalizado',
             'icon' => 'heroicon-s-check-circle',
         ],
         'in_progress' => [
             'color' => 'text-orange-300',
             'text' => 'Em andamento',
             'icon' => 'heroicon-s-clock',
         ],
         'upcoming' => [
             'color' => 'text-blue-300',
             'text' => 'Em breve',
             'icon' => 'heroicon-o-calendar',
         ],
+        default => [
+            'color' => 'text-gray-300',
+            'text' => 'Desconhecido',
+            'icon' => 'heroicon-o-question-mark-circle',
+        ],
     };
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 0b1dfe5 and 6273369.

📒 Files selected for processing (2)
  • app-modules/he4rt/resources/css/components/heading.css (1 hunks)
  • app-modules/he4rt/resources/views/components/schedule-card.blade.php (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • app-modules/he4rt/resources/css/components/heading.css
🔇 Additional comments (1)
app-modules/he4rt/resources/views/components/schedule-card.blade.php (1)

1-5: Props definition looks solid

Defaults for startsAt, title, and status are reasonable and make the component safe to use without explicit props. No issues here.

Comment thread app-modules/he4rt/resources/views/components/schedule-card.blade.php Outdated
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6273369 and b095185.

📒 Files selected for processing (3)
  • app-modules/events/resources/views/components/themes/3pontos/components/sections/speakers.blade.php (1 hunks)
  • app-modules/he4rt/resources/css/components/card.css (3 hunks)
  • app-modules/he4rt/resources/css/themes/3pontos/components/card.css (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (2)
  • app-modules/events/resources/views/components/themes/3pontos/components/sections/speakers.blade.php
  • app-modules/he4rt/resources/css/components/card.css
🔇 Additional comments (1)
app-modules/he4rt/resources/css/themes/3pontos/components/card.css (1)

6-6: All custom color and font tokens are properly defined in theme configuration—no issues found.

Verification confirms that all referenced tokens exist:

  • border-outline-low, outline-medium, and bg-elevation-surface are defined as CSS custom properties in app-modules/he4rt/resources/css/support/themes.css with fallbacks in support/index.css
  • font-family-secondary is defined in app-modules/he4rt/resources/css/support/index.css and overridden in app-modules/he4rt/resources/css/themes/3pontos/support/index.css
  • These tokens are consistently used throughout the codebase in other component files without issues

Comment thread app-modules/he4rt/resources/css/themes/3pontos/components/card.css
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (2)
app-modules/events/resources/views/components/themes/3pontos/components/sections/hero.blade.php (2)

20-32: Extract hardcoded text to language files for internationalization.

All user-facing text is hardcoded in Portuguese. For better maintainability and potential multi-language support, consider extracting strings to Laravel language files.

Apply this pattern to externalize strings:

-<x-he4rt::section-title>3 Pontos Start</x-he4rt::section-title>
+<x-he4rt::section-title>{{ __('events.hero.badge') }}</x-he4rt::section-title>
-<x-slot:title>Participe do primeiro evento presencial da 3Pontos</x-slot>
+<x-slot:title>{{ __('events.hero.title') }}</x-slot>
-<x-slot:description>
-    O Meetup da He4rt é um evento que reúne os nosso membros presencialmente e virtualmente pra trocarmos
-    conhecimentos, fazer networking e unir cada vez mais nossa comunidade.
-</x-slot>
+<x-slot:description>{{ __('events.hero.description') }}</x-slot>
-<x-he4rt::button>Faça sua inscrição</x-he4rt::button>
+<x-he4rt::button>{{ __('events.hero.cta_button') }}</x-he4rt::button>

59-67: Use a more semantically appropriate icon for the limited spots card.

The third card uses heroicon-o-tv (same as the streaming card), but it represents limited event registrations, not streaming. Consider using a more appropriate icon like heroicon-o-users, heroicon-o-ticket, or heroicon-o-user-group.

Apply this diff:

-<x-he4rt::icon icon="heroicon-o-tv" class="text-text-medium bg-transparent p-0" />
+<x-he4rt::icon icon="heroicon-o-ticket" class="text-text-medium bg-transparent p-0" />
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ec15496 and e486dc6.

📒 Files selected for processing (1)
  • app-modules/events/resources/views/components/themes/3pontos/components/sections/hero.blade.php (1 hunks)
🔇 Additional comments (1)
app-modules/events/resources/views/components/themes/3pontos/components/sections/hero.blade.php (1)

9-17: LGTM!

The decorative logo element is properly configured with appropriate positioning, responsive visibility, and correct accessibility attributes (empty alt for decorative image).

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e486dc6 and f9c280b.

⛔ Files ignored due to path filters (2)
  • public/images/3pontos/donut.svg is excluded by !**/*.svg
  • public/images/3pontos/wave.svg is excluded by !**/*.svg
📒 Files selected for processing (2)
  • app-modules/events/resources/views/components/themes/3pontos/components/sections/community.blade.php (1 hunks)
  • app-modules/he4rt/resources/views/components/card.blade.php (2 hunks)
🔇 Additional comments (4)
app-modules/he4rt/resources/views/components/card.blade.php (2)

38-38: LGTM! Variant class integration is consistent.

The variant class follows the established pattern and integrates well with the existing density/interactive/disabled class system.


76-77: LGTM! Default slot positioning provides flexibility.

Rendering the default slot after the card body but before tags/actions/footer sections allows for flexible content injection while maintaining the structured layout of the card component.

app-modules/events/resources/views/components/themes/3pontos/components/sections/community.blade.php (2)

1-5: LGTM! Section structure is well-organized.

The responsive grid layout with appropriate breakpoints provides a clean structure for the community section.


24-24: No issues found — all referenced assets exist.

The verification confirms that both wave.svg (35,937 bytes) and donut.svg (106,892 bytes) are present in the public/images/3pontos/ directory. The asset references in the Blade template are valid.

…ensure proper layering of content and visuals
@gvieira18 gvieira18 marked this pull request as draft November 19, 2025 21:18
@danielhe4rt danielhe4rt marked this pull request as ready for review November 21, 2025 17:03
@danielhe4rt danielhe4rt merged commit 5c425f5 into 3.x Nov 21, 2025
7 of 11 checks passed
@danielhe4rt danielhe4rt deleted the feat/event-page branch November 21, 2025 17:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants