Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add accordion component #2

Merged
merged 73 commits into from
Nov 20, 2024
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
ae6dca8
add accordion component
JimmyHoenderdaal Sep 10, 2024
1b12dbd
twMerge on div
JimmyHoenderdaal Sep 10, 2024
df250b3
Comment improvements
JimmyHoenderdaal Sep 10, 2024
dfa787e
Add overflow-hidden div inside component itself
JimmyHoenderdaal Sep 10, 2024
94f0d66
Update comment
JimmyHoenderdaal Sep 11, 2024
728314e
Accordion info changes
royduin Oct 1, 2024
6982bbb
Merge branch 'master' into feature/accordion
royduin Oct 1, 2024
f27c297
Preview + example code
royduin Oct 2, 2024
4d19cee
Update demo
royduin Oct 2, 2024
360f580
Update demo
rapidez-actions Oct 2, 2024
90814d3
Update demo
rapidez-actions Oct 2, 2024
c22c28a
Update demo
rapidez-actions Oct 2, 2024
1d78a14
Update demo
rapidez-actions Oct 2, 2024
ee0e17b
Update demo
rapidez-actions Oct 2, 2024
4f6f6f5
Merge branch 'master' into feature/accordion
royduin Oct 2, 2024
fe48809
Update demo
rapidez-actions Oct 2, 2024
b55acb4
Update demo
rapidez-actions Oct 2, 2024
9439cda
Update demo
rapidez-actions Oct 2, 2024
0500e00
Merge branch 'feature/accordion' of github.com:rapidez/blade-componen…
royduin Oct 2, 2024
d1268f9
Update demo
rapidez-actions Oct 2, 2024
8909aac
Update demo
rapidez-actions Oct 2, 2024
1b6f781
Update demo
rapidez-actions Oct 2, 2024
8441064
Static IDs for the preview
royduin Oct 2, 2024
65338ce
Update demo
rapidez-actions Oct 2, 2024
0e981b2
Merge branch 'feature/accordion' of github.com:rapidez/blade-componen…
royduin Oct 2, 2024
1a950c4
Update demo
royduin Oct 2, 2024
ec37e62
Merge branch 'master' of github.com:rapidez/blade-components into fea…
JimmyHoenderdaal Oct 17, 2024
f072c20
Merge branch 'feature/accordion' of github.com:rapidez/blade-componen…
JimmyHoenderdaal Oct 18, 2024
70b2388
Add toggle functionality for type radio
JimmyHoenderdaal Oct 21, 2024
daf364c
Update demo
JimmyHoenderdaal Oct 21, 2024
05e4dbd
Fix radio toggle to properly update checked state
JimmyHoenderdaal Oct 21, 2024
2a2269d
Merge branch 'feature/accordion' of github.com:rapidez/blade-componen…
JimmyHoenderdaal Oct 21, 2024
b79c544
Update demo
JimmyHoenderdaal Oct 21, 2024
e800100
enhance accordion component and documentation
JimmyHoenderdaal Nov 14, 2024
087decc
Update demo
JimmyHoenderdaal Nov 14, 2024
00716ed
Update demo
rapidez-actions Nov 14, 2024
d2bb358
Update demo
rapidez-actions Nov 14, 2024
5528547
Update demo
rapidez-actions Nov 14, 2024
e1fd9cd
Update demo
rapidez-actions Nov 14, 2024
e697dd0
Update demo
rapidez-actions Nov 14, 2024
fb19e52
Update demo
rapidez-actions Nov 14, 2024
8985935
Update demo
rapidez-actions Nov 14, 2024
a0a3a38
Update demo
rapidez-actions Nov 14, 2024
59ef922
Update demo
rapidez-actions Nov 14, 2024
f7ad807
Update demo
rapidez-actions Nov 14, 2024
1cae885
Update demo
rapidez-actions Nov 14, 2024
88dae5e
Update demo
rapidez-actions Nov 14, 2024
205094f
Update demo
rapidez-actions Nov 14, 2024
de88a01
Update demo
rapidez-actions Nov 14, 2024
0cb75ab
Update demo
rapidez-actions Nov 14, 2024
0c9d9bc
Update demo
rapidez-actions Nov 14, 2024
e432d78
Update demo
rapidez-actions Nov 14, 2024
40d27ca
Update demo
rapidez-actions Nov 14, 2024
eb9189c
Update demo
rapidez-actions Nov 14, 2024
aad7bca
Update demo
rapidez-actions Nov 14, 2024
46c391c
Update demo
rapidez-actions Nov 14, 2024
b406851
Update demo
rapidez-actions Nov 14, 2024
dff678e
Update demo
rapidez-actions Nov 14, 2024
a8d8466
Update demo
rapidez-actions Nov 14, 2024
fe9293c
Update demo
rapidez-actions Nov 14, 2024
1d94922
Update demo
rapidez-actions Nov 14, 2024
7c0f2ae
Update demo
rapidez-actions Nov 14, 2024
9a23dbc
Update demo
rapidez-actions Nov 14, 2024
ca4b632
Update demo
rapidez-actions Nov 14, 2024
c45b4ae
Update demo
rapidez-actions Nov 14, 2024
dd88817
Update demo
rapidez-actions Nov 14, 2024
8a19df7
Add id's
JimmyHoenderdaal Nov 14, 2024
fa52c3a
Merge branch 'feature/accordion' of github.com:rapidez/blade-componen…
JimmyHoenderdaal Nov 14, 2024
8d26177
Update demo
JimmyHoenderdaal Nov 14, 2024
186c3b4
Merge branch 'master' of github.com:rapidez/blade-components into fea…
JimmyHoenderdaal Nov 15, 2024
8db9278
Merge branch 'feature/accordion' of github.com:rapidez/blade-componen…
JimmyHoenderdaal Nov 15, 2024
deab7d1
Rename index.blade.php to accordion.blade.php
royduin Nov 20, 2024
07c196c
Update README.md
royduin Nov 20, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions resources/views/components/accordion/index.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
{{--
This is a customizable accordion component that uses the `peer` utility to toggle its content visibility.

Properties:
id: A unique identifier for each accordion instance, automatically generated if not provided.
type: The default is `checkbox`. Set this to `radio` if you want to allow only one accordion to be open at a time.
name: Required if you use `radio` to group accordions together.
opened: The accordion is closed by default. Set to `true` to have it open initially.

Slots:
label: Defines the clickable label that toggles the accordion.
content: The collapsible section that appears when the accordion is opened.

Example:
<x-rapidez::accordion>
<x-rapidez::accordion.label>
Label
</x-rapidez::accordion.label>
<x-rapidez::accordion.content>
Content
</x-rapidez::accordion.content>
</x-rapidez::accordion>
--}}

@props(['id' => uniqid('accordion-'), 'name' => '', 'type' => 'checkbox', 'opened' => false])
@slots(['label', 'content'])

<div {{ $attributes->twMerge('flex flex-col group') }}>
<input
id="{{ $id }}"
name="{{ $name }}"
type="{{ $type }}"
@checked($opened)
class="peer hidden"
/>
<label for="{{ $id }}" {{ $label->attributes->twMerge('flex items-center gap-2 justify-between cursor-pointer') }}>
{{ $label }}
</label>
<div {{ $content->attributes->twMerge('grid peer-checked:grid-rows-[1fr] grid-rows-[0fr] transition-all') }}>
<div class="overflow-hidden">
{{ $content }}
</div>
</div>
</div>
25 changes: 25 additions & 0 deletions resources/views/components/accordion/mobile.blade.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{{--
This is a responsive version of the accordion component.

Responsive behavior adjustments:
- The `label` slot applies `md:cursor-auto`,
making it non-clickable on larger screens,

- The `content` slot uses `md:grid-rows-[1fr]`
to collapse the content on smaller screens,
overriding the default `grid-rows-[0fr]`.

These changes ensure that the accordion functions only as an accordion on smaller screens.

TODO: implement attribute merging on label and slot

--}}

<x-rapidez::accordion :$attributes>
<x-slot:label class="md:cursor-auto">
{{ $label }}
</x-slot:label>
<x-slot:content class="md:grid-rows-[1fr]">
{{ $content }}
</x-slot:content>
</x-rapidez::accordion>