mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-19 13:19:39 +02:00
* Add lookbook + viewcomponent, organize design system file * Build menu component * Button updates * More button fixes * Replace all menus with new ViewComponent * Checkpoint: fix tests, all buttons and menus converted * Split into Link and Button components for clarity * Button cleanup * Simplify custom confirmation configuration in views * Finalize button, link component API * Add toggle field to custom form builder + Component * Basic tabs component * Custom tabs, convert all menu / tab instances in app * Gem updates * Centralized icon helper * Update all icon usage to central helper * Lint fixes * Centralize all disclosure instances * Dialog replacements * Consolidation of all dialog styles * Test fixes * Fix app layout issues, move to component with slots * Layout simplification * Flakey test fix * Fix dashboard mobile issues * Finalize homepage * Lint fixes * Fix shadows and borders in dark mode * Fix tests * Remove stale class * Fix filled icon logic * Move transparent? to public interface
44 lines
1.3 KiB
Ruby
44 lines
1.3 KiB
Ruby
class MenuComponentPreview < ViewComponent::Preview
|
|
def icon
|
|
render MenuComponent.new(variant: "icon") do |menu|
|
|
menu_contents(menu)
|
|
end
|
|
end
|
|
|
|
def button
|
|
render MenuComponent.new(variant: "button") do |menu|
|
|
menu.with_button(text: "Open menu", variant: "secondary")
|
|
menu_contents(menu)
|
|
end
|
|
end
|
|
|
|
def avatar
|
|
render MenuComponent.new(variant: "avatar") do |menu|
|
|
menu_contents(menu)
|
|
end
|
|
end
|
|
|
|
private
|
|
def menu_contents(menu)
|
|
menu.with_header do
|
|
content_tag(:div, class: "p-3") do
|
|
content_tag(:h3, "Menu header", class: "font-medium text-gray-900")
|
|
end
|
|
end
|
|
|
|
menu.with_item(variant: "link", text: "Link", href: "#", icon: "plus")
|
|
menu.with_item(variant: "button", text: "Action", href: "#", method: :post, icon: "circle")
|
|
menu.with_item(variant: "button", text: "Action destructive", href: "#", method: :delete, icon: "circle")
|
|
|
|
menu.with_item(variant: "divider")
|
|
|
|
menu.with_custom_content do
|
|
content_tag(:div, class: "p-4") do
|
|
safe_join([
|
|
content_tag(:h3, "Custom content header", class: "font-medium text-gray-900"),
|
|
content_tag(:p, "Some custom content", class: "text-sm text-gray-500")
|
|
])
|
|
end
|
|
end
|
|
end
|
|
end
|