Eunjae Lee and GitHub
17ef0dc12b
feat: add collapsible support to PanelCard component ( #23366 )
...
* feat: add collapsible support to PanelCard component
- Add collapsible and defaultCollapsed props to PanelCard
- When collapsible is enabled, title becomes clickable with chevron icon
- Chevron icon indicates collapse state and rotates on toggle
- Body content is hidden when collapsed
- Maintains backward compatibility with existing usage
- Follows FormCard's collapsible pattern implementation
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
^ Conflicts:
^ packages/ui/components/card/PanelCard.tsx
* update style
* address feedback
* animate expanding & collapsing panel
2025-09-01 15:16:58 +00:00
e530ad5412
feat: add toggleable legend functionality to ChartCard components ( #23390 )
...
* feat: add toggleable legend functionality to ChartCard components
- Create useToggleableLegend hook for managing enabled/disabled series
- Update ChartCard to accept enabledLegend and onSeriesToggle props
- Add click handlers and visual feedback to Legend component
- Apply toggleable functionality to EventTrendsChart and RoutingFunnel
- Maintain backwards compatibility with existing charts
Features:
- Visual feedback: 50% opacity for disabled items, hover effects, cursor pointer
- Interactive legend items toggle chart series on/off
- Hook uses TypeScript generics for different legend item types
- Conditional rendering of chart series based on enabled legend items
- Full backwards compatibility - existing charts work unchanged
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
* address feedback
* address feedback
* do not use !
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-09-01 14:54:30 +00:00
59c76141ce
feat: add Recent No-Show Guests chart to insights page ( #23381 )
...
* feat: add Recent No-Show Guests chart to insights page
- Add RecentNoShowGuestsChart component with ChartCard wrapper
- Add tRPC handler for recentNoShowGuests query
- Add getRecentNoShowGuests method to InsightsBookingBaseService
- Display guest name, booking time, event type, and copy email button
- Filter for bookings where ALL attendees are no-shows
- Add translation strings for new UI elements
- Integrate chart into insights view grid layout
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
* re-order charts
* clean up
* feat: add optional tooltip functionality to PanelCard
- Add titleTooltip prop to PanelCard component with InfoBadge
- Pass through titleTooltip prop in ChartCard
- Add tooltip to RecentNoShowGuestsChart explaining complete no-show filtering
- Add translation string for tooltip explanation
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
* style adjustment
* update style
* address feedback
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
2025-08-28 14:01:27 +00:00
cdcc04c8ff
refactor: extract PanelCard from ChartCard for reusability ( #23360 )
...
* feat: extract PanelCard from ChartCard for reusability
- Create base PanelCard and PanelCardItem components in UI package
- Refactor ChartCard to use PanelCard as foundation while keeping legend functionality
- Add headerActions prop to PanelCard for extensibility
- Maintain backward compatibility for existing ChartCard usage
- Export PanelCard and PanelCardItem from UI card components
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
* chore: update yarn.lock after dependency resolution
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
* refactor: rename prop from actions to headerContent
- Rename 'actions' prop to 'headerContent' in PanelCard component
- Update ChartCard to use new 'headerContent' prop name
- More accurate naming since content can be text or other elements, not just buttons
Co-Authored-By: eunjae@cal.com <hey@eunjae.dev >
* clean up
* revert yarn.lock
* fix type error
* type fix
---------
Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-authored-by: Udit Takkar <53316345+Udit-takkar@users.noreply.github.com >
2025-08-27 06:18:44 -03:00
Eunjae Lee and GitHub
593c48c8b4
refactor: replace tremor with recharts ( #22791 )
...
* refactor: replace tremor with recharts
* update tooltip
* clean up types
* replace tremor with recharts
* replace BarList with recharts
* replace ProgressBar
* remove tremor from the repository
* clean up
* fix UserStatsTable
* fix type error
* add explicit return type
2025-08-05 01:21:23 +01:00
Eunjae Lee and GitHub
3e299f9511
refactor: update charts on /insights to use InsightsBookingService ( #22744 )
...
* refactor: update PopuplarEvents chart to use InsightsBookingService
* use buildHashMapForUsers
* refactor least booked
* refactor charts
* combine methods
* refactor booking kpi cards
* remove unused code
* fix booking kpi cards
* restore code that was removed accidentally
* Revert "restore code that was removed accidentally"
This reverts commit 0c0b444b02498b94fb29ef470da065bad3ad7ece.
* Revert "fix booking kpi cards"
This reverts commit b1e8e9afbd3632a5239495566551ae12bd926b66.
* refactor booking kpi cards
* revert method and remove unused code
* fix previous period
* fix metrics
* clean up trpc call params
* clean up Download.tsx
* split utils
* restructure folders for components
* clean up imports
* rename TotalUserFeedbackTable to UserStatsTable
* add guide
* use client
* add curly braces to case
* fix tests
2025-07-29 12:37:18 +02:00
Eunjae Lee and GitHub
e7535b9db3
feat: add hourly booking charts on /insights ( #22619 )
...
* feat: add hourly booking charts on /insights
* safe guard
* rename
* update styles
* fix data
* clean up
* clean up
* re-order charts
* update style
* apply feedback
* rename
* update query
2025-07-21 13:52:56 +00:00
Eunjae Lee and GitHub
1878802213
fix: update styles of charts on /insights ( #22557 )
...
* fix: update styles of charts on /insights
* clean up
* clean up
* share the same styles with ChartCardItem
* margin for event trends
* fix type error
2025-07-17 14:42:35 +00:00
10fca86ddc
feat: add drop off funnel chart for /insights/routing ( #22106 )
...
* feat: add Drop-off funnel chart for /insights/routing
* convert insights services to use kysely
* WIP
* implement drop-off data WIP
* updates
* revert services back to Prisma
* do not expose findMany
* WIP
* revert usage
* fix type errors
* updates
* clean up
* update playground
* update styles
* support columnFilters
* update tooltip
* add skeleton
* remove dynamic loading
* avoid using Prisma.raw
* update condition for user scope
* Update packages/features/insights/components/RoutingFunnelContent.tsx
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
* playground fix
* fix type error
* update playground
* update styles
* implement subtitle to ChartCard
* revert insights booking service
* update border
* update ChartCard style
* style updates
* convert the playground to a client component
* clean up
* apply feedback
* fix tests
* fix unit test
* hide scrollbar
---------
Co-authored-by: cubic-dev-ai[bot] <191113872+cubic-dev-ai[bot]@users.noreply.github.com>
2025-07-16 16:36:41 +02:00