Progress on option rendering

This commit is contained in:
Clément Pons
2025-08-18 17:42:07 +02:00
parent 72982a4ea9
commit 06276b3fbc
5 changed files with 49 additions and 22 deletions

View File

@@ -422,4 +422,14 @@ export function numberpicker(settings?: { defaultValue?: number, change?: (value
if(settings?.defaultValue) field.value = storedValue.toString(10);
return field;
}
// Open by default
export function foldable(content: NodeChildren, title: NodeChildren, settings?: { open?: boolean, class?: { container?: Class, title?: Class, content?: Class, icon?: Class } })
{
const fold = div(['group flex flex-1 w-full flex-col', settings?.class?.container], [
div('flex', [ dom('div', { listeners: { click: () => fold.toggleAttribute('data-active') }, class: ['flex justify-center items-center', settings?.class?.icon] }, [ icon('radix-icons:caret-right', { class: 'group-data-[active]:rotate-90 origin-center' }) ]), div(['flex-1', settings?.class?.title], title) ]),
div(['hidden group-data-[active]:flex', settings?.class?.content], content),
]);
fold.toggleAttribute('data-active', settings?.open ?? true);
return fold;
}