Use body instead of items
This commit is contained in:
parent
d90067cd19
commit
c02d978dc7
1 changed files with 11 additions and 10 deletions
|
@ -9,7 +9,7 @@
|
||||||
|
|
||||||
(in-package :ml-sbt/accordion)
|
(in-package :ml-sbt/accordion)
|
||||||
|
|
||||||
(defmacro with-accordion ((&key (id "accordionExample") flush) &rest items)
|
(defmacro with-accordion ((&key (id "accordionExample") flush) &body body)
|
||||||
"This macro generates an accordion-style collapsible list.
|
"This macro generates an accordion-style collapsible list.
|
||||||
|
|
||||||
ID: Specifies a unique identifier for the accordion. Defaults to 'accordionExample'.
|
ID: Specifies a unique identifier for the accordion. Defaults to 'accordionExample'.
|
||||||
|
@ -24,25 +24,26 @@ the accordion item.
|
||||||
---
|
---
|
||||||
|
|
||||||
Example usage:
|
Example usage:
|
||||||
(accordion () \"Title 1\" \"Content 1\" \"Title 2\" \"Content 2\")"
|
(with-accordion (:id \"sample\")
|
||||||
|
\"Title 1\" \"Content 1\" \"Title 2\" \"Content 2\")"
|
||||||
(let ((class (if flush "accordion accordion-flush" "accordion")))
|
(let ((class (if flush "accordion accordion-flush" "accordion")))
|
||||||
`(spinneret:with-html
|
`(spinneret:with-html
|
||||||
(:div :class ,class
|
(:div :class ,class
|
||||||
:id ,id
|
:id ,id
|
||||||
,@(loop for (title content) on items by #'cddr
|
,@(loop for (title content) on body by #'cddr
|
||||||
for counter from 1
|
for counter from 1
|
||||||
for collapse-id = (format nil "collapse-~a-~a" id counter)
|
for collapse-id = (format nil "collapse-~a-~a" id counter)
|
||||||
for collapse-class = (concatenate 'string "accordion-collapse collapse")
|
for collapse-class = (concatenate 'string "accordion-collapse collapse")
|
||||||
for btn-class = (concatenate 'string "accordion-button collapsed")
|
for btn-class = (concatenate 'string "accordion-button collapsed")
|
||||||
collect `(:div :class "accordion-item"
|
collect `(:div :class "accordion-item"
|
||||||
(:div :class "accordion-header"
|
(:div :class "accordion-header"
|
||||||
(:button :class ,btn-class
|
(:button :class ,btn-class
|
||||||
:type "button"
|
:type "button"
|
||||||
:data-bs-toggle "collapse"
|
:data-bs-toggle "collapse"
|
||||||
:data-bs-target ,(concatenate 'string "#" collapse-id)
|
:data-bs-target ,(concatenate 'string "#" collapse-id)
|
||||||
:aria-expanded "false"
|
:aria-expanded "false"
|
||||||
:aria-controls ,collapse-id
|
:aria-controls ,collapse-id
|
||||||
,title))
|
,title))
|
||||||
(:div :id ,collapse-id
|
(:div :id ,collapse-id
|
||||||
:class ,collapse-class
|
:class ,collapse-class
|
||||||
:data-bs-parent ,(concatenate 'string "#" id)
|
:data-bs-parent ,(concatenate 'string "#" id)
|
||||||
|
|
Loading…
Add table
Reference in a new issue