Filter is a group of radio buttons. Choosing one of the options will hide the others and shows a reset button next to the chosen option.
Base Filter
Exported source
filter_dui = SingleValueFactory("filter", "Base filter component for a HTML <form> or a <div> element that includes radio buttons for filtering items") # Base filter componentfilter_dui_reset = SingleValueFactory("filter-reset", "Filter reset part as an alternative to the reset button if you can't use a HTML form") # Filter reset part
Filter Test Examples
test_filter_basic_examples
def test_filter_basic_examples():
Test basic filter utilities.
Exported source
def test_filter_basic_examples():"""Test basic filter utilities."""# Basic filterassertstr(filter_dui) =="filter"assertstr(filter_dui_reset) =="filter-reset"# Test with modifiersassertstr(filter_dui.hover) =="hover:filter"assertstr(filter_dui.md) =="md:filter"assertstr(filter_dui.dark) =="dark:filter"# Run the teststest_filter_basic_examples()
test_filter_with_form_fasthtml_examples
def test_filter_with_form_fasthtml_examples():
Test filter using HTML form, radio buttons and reset button from daisyUI v5 documentation.
Exported source
def test_filter_with_form_fasthtml_examples():"""Test filter using HTML form, radio buttons and reset button from daisyUI v5 documentation."""from fasthtml.common import Form, Inputfrom cjm_fasthtml_daisyui.components.actions.button import btn, btn_modifiers# Filter using HTML form, radio buttons and reset button filter_form = Form( Input(type="reset", value="×", cls=combine_classes(btn, btn_modifiers.square)), Input(type="radio", name="frameworks", aria_label="Svelte", cls=str(btn)), Input(type="radio", name="frameworks", aria_label="Vue", cls=str(btn)), Input(type="radio", name="frameworks", aria_label="React", cls=str(btn)), cls=str(filter_dui) )# Verify structureassert filter_form.tag =="form"assert filter_form.attrs['class'] =="filter"# Verify reset button reset_btn = filter_form.children[0]assert reset_btn.tag =="input"assert reset_btn.attrs['type'] =="reset"assert reset_btn.attrs['value'] =="×"assert"btn"in reset_btn.attrs['class']assert"btn-square"in reset_btn.attrs['class']# Verify radio buttons radio_buttons = filter_form.children[1:4]# Svelte radioassert radio_buttons[0].tag =="input"assert radio_buttons[0].attrs['type'] =="radio"assert radio_buttons[0].attrs['name'] =="frameworks"assert radio_buttons[0].attrs['aria-label'] =="Svelte"assert radio_buttons[0].attrs['class'] =="btn"# Vue radioassert radio_buttons[1].tag =="input"assert radio_buttons[1].attrs['type'] =="radio"assert radio_buttons[1].attrs['name'] =="frameworks"assert radio_buttons[1].attrs['aria-label'] =="Vue"assert radio_buttons[1].attrs['class'] =="btn"# React radioassert radio_buttons[2].tag =="input"assert radio_buttons[2].attrs['type'] =="radio"assert radio_buttons[2].attrs['name'] =="frameworks"assert radio_buttons[2].attrs['aria-label'] =="React"assert radio_buttons[2].attrs['class'] =="btn"return filter_form# Run the teststest_filter_with_form_fasthtml_examples()