@@ -183,11 +183,17 @@ function distributeToColumns(groups: GroupData[]): [GroupData[], GroupData[]] {
183183}
184184
185185function Group ( { group } : { group : GroupData } ) {
186- const listStyle = { "--item-columns" : group . columns } as CSSProperties
187-
188186 return (
189- < div className = "shrink-0 grow border border-neu-200 bg-neu-50 dark:border-neu-100 dark:bg-neu-50/25 lg:min-w-0 xl:min-w-[480px]" >
190- < div className = "typography-body-lg flex items-center border-b border-inherit bg-neu-50 text-neu-900 dark:bg-transparent" >
187+ < div className = "group/item shrink-0 grow border border-neu-200 bg-neu-50 dark:border-neu-100 dark:bg-neu-50/25 lg:min-w-0 xl:min-w-[480px]" >
188+ < input
189+ type = "checkbox"
190+ id = { `group-${ group . id } ` }
191+ className = "peer sr-only"
192+ />
193+ < label
194+ htmlFor = { `group-${ group . id } ` }
195+ className = "typography-body-lg flex cursor-pointer items-center border-inherit bg-neu-50 text-neu-900 peer-checked:border-b dark:bg-transparent md:pointer-events-none md:cursor-default md:border-b"
196+ >
191197 < div className = "border-r border-inherit p-2 lg:p-3" >
192198 < IconSpritesheet
193199 sprite = { group . id as IconName }
@@ -196,12 +202,12 @@ function Group({ group }: { group: GroupData }) {
196202 </ div >
197203 < div className = "p-2 lg:px-4 lg:py-3" > { group . name } </ div >
198204 < div className = "ml-auto flex aspect-square h-12 shrink-0 items-center justify-center border-l border-inherit p-2 md:hidden" >
199- < CaretDown className = "size-6 shrink-0 fill-neu-700" />
205+ < CaretDown className = "size-6 shrink-0 fill-neu-700 group-has-[:checked]/item:rotate-180 " />
200206 </ div >
201- </ div >
207+ </ label >
202208 < ul
203- className = "divide-y divide-neu-200 dark:divide-neu-100 lg:[column-count:var(--item-columns,1)]"
204- style = { listStyle }
209+ className = "divide-y divide-neu-200 [column-gap:0] dark:divide-neu-100 max-md:hidden peer-checked:max-md:block md:block lg:[column-count:var(--item-columns,1)]"
210+ style = { { "--item-columns" : group . columns } as CSSProperties }
205211 >
206212 { group . items . map ( ( item , i ) => (
207213 < li
0 commit comments