PhlexUI / phlex_ui

Ruby gem for Phlex UI Components
https://phlexui.com/
MIT License
115 stars 11 forks source link

Using Phlex::Kit to all components #53

Closed cirdes closed 1 week ago

cirdes commented 1 week ago

Closes https://github.com/PhlexUI/phlex_ui/issues/54

New format

Instead of writing:

render PhlexUI::Accordion.new  do
  render PhlexUI::Accordion::Item.new do
    render PhlexUI::AccordionDefaultTrigger.new { "Title" }
    render PhlexUI::AccordionDefaultContent.new { "Content" }
  end
end

we will be able to use:

PhlexUI.Accordion do
  PhlexUI.AccordionItem do
    PhlexUI.AccordionDefaultTrigger { "Title" }
    PhlexUI.AccordionDefaultContent { "Content" }
  end
end

Testing

To be able to write better tests, I have created a phlex_context method inside TestHelper to be used for tests. That way, we can write Phlex syntax inside the tests. I also removed the test/accordion because it wasn't testing much. We should be able to test everything inside test/accordion_test.rb.

Drop Builder support

Accordion has a "builder" that can create an accordion easily with a block syntax. @iseth and I agreed that this style shouldn't be promoted because it goes against the customization principle of Shadcn, hiding away parts of the component.

Fix ActiveSupport dependency

Fix the ActiveSupport dependency to allow PhlexUI to be used with Rails 6 and above. Previously, only Rails 6 was allowed.

iseth commented 1 week ago

I'm squashing this so if we need to undo or see the big merge we know what was associated with it.