radial progress

Radial progress can be used to show the progress of a task or to show the passing of time.

Base Radial Progress

Exported source
radial_progress = SingleValueFactory("radial-progress", "Shows a radial progress") # Base radial progress component

Test Radial Progress Examples


test_radial_progress_basic_examples


def test_radial_progress_basic_examples(
    
):

Test basic button utilities.

Exported source
def test_radial_progress_basic_examples():
    """Test basic button utilities."""
    # Basic button
    assert str(radial_progress) == "radial-progress"
    
    # Radial progress with modifiers
    assert str(radial_progress.hover) == "hover:radial-progress"
    assert str(radial_progress.md) == "md:radial-progress"
    assert str(radial_progress.dark) == "dark:radial-progress"

# Run the tests
test_radial_progress_basic_examples()

test_radial_progress_basic_fasthtml_examples


def test_radial_progress_basic_fasthtml_examples(
    
):

Test basic radial progress from daisyUI v5 documentation.

Exported source
def test_radial_progress_basic_fasthtml_examples():
    """Test basic radial progress from daisyUI v5 documentation."""
    from fasthtml.common import Div
    
    # Basic radial progress
    basic_radial = Div(
        "70%",
        cls=str(radial_progress),
        style="--value:70;",
        aria_valuenow="70",
        role="progressbar"
    )
    
    # Verify structure
    assert basic_radial.tag == "div"
    assert basic_radial.attrs['class'] == "radial-progress"
    assert basic_radial.attrs['style'] == "--value:70;"
    assert basic_radial.attrs['aria-valuenow'] == "70"
    assert basic_radial.attrs['role'] == "progressbar"
    assert basic_radial.children[0] == "70%"
    
    return basic_radial

# Run the tests
test_radial_progress_basic_fasthtml_examples()
70%
test_func = test_radial_progress_basic_fasthtml_examples
app, rt = create_test_app(theme=DaisyUITheme.LIGHT)

@rt
def index():
    return create_test_page(test_func.__doc__.title().replace('.', ''), test_func())
server = start_test_server(app)
display(HTMX())
server.stop()

test_radial_progress_values_fasthtml_examples


def test_radial_progress_values_fasthtml_examples(
    
):

Test radial progress with different values from daisyUI v5 documentation.

Exported source
def test_radial_progress_values_fasthtml_examples():
    """Test radial progress with different values from daisyUI v5 documentation."""
    from fasthtml.common import Div
    
    # Different values
    progress_0 = Div(
        "0%",
        cls=str(radial_progress),
        style="--value:0;",
        aria_valuenow="0",
        role="progressbar"
    )
    assert progress_0.attrs['style'] == "--value:0;"
    assert progress_0.attrs['aria-valuenow'] == "0"
    assert progress_0.children[0] == "0%"
    
    progress_20 = Div(
        "20%",
        cls=str(radial_progress),
        style="--value:20;",
        aria_valuenow="20",
        role="progressbar"
    )
    assert progress_20.attrs['style'] == "--value:20;"
    assert progress_20.attrs['aria-valuenow'] == "20"
    assert progress_20.children[0] == "20%"
    
    progress_60 = Div(
        "60%",
        cls=str(radial_progress),
        style="--value:60;",
        aria_valuenow="60",
        role="progressbar"
    )
    assert progress_60.attrs['style'] == "--value:60;"
    assert progress_60.attrs['aria-valuenow'] == "60"
    assert progress_60.children[0] == "60%"
    
    progress_80 = Div(
        "80%",
        cls=str(radial_progress),
        style="--value:80;",
        aria_valuenow="80",
        role="progressbar"
    )
    assert progress_80.attrs['style'] == "--value:80;"
    assert progress_80.attrs['aria-valuenow'] == "80"
    assert progress_80.children[0] == "80%"
    
    progress_100 = Div(
        "100%",
        cls=str(radial_progress),
        style="--value:100;",
        aria_valuenow="100",
        role="progressbar"
    )
    assert progress_100.attrs['style'] == "--value:100;"
    assert progress_100.attrs['aria-valuenow'] == "100"
    assert progress_100.children[0] == "100%"
    
    # Return all elements in a Div
    return Div(
        progress_0,
        progress_20,
        progress_60,
        progress_80,
        progress_100
    )

# Run the tests
test_radial_progress_values_fasthtml_examples()
0%
20%
60%
80%
100%
test_func = test_radial_progress_values_fasthtml_examples
app, rt = create_test_app(theme=DaisyUITheme.LIGHT)

@rt
def index():
    return create_test_page(test_func.__doc__.title().replace('.', ''), test_func())
server = start_test_server(app)
display(HTMX())
server.stop()

test_radial_progress_colors_fasthtml_examples


def test_radial_progress_colors_fasthtml_examples(
    
):

Test radial progress with custom colors from daisyUI v5 documentation.

Exported source
def test_radial_progress_colors_fasthtml_examples():
    """Test radial progress with custom colors from daisyUI v5 documentation."""
    from fasthtml.common import Div
    from cjm_fasthtml_daisyui.utilities.semantic_colors import text_dui, bg_dui, border_dui
    from cjm_fasthtml_tailwind.utilities.borders import border
    
    # Custom color
    custom_color = Div(
        "70%",
        cls=combine_classes(radial_progress, text_dui.primary),
        style="--value:70;",
        aria_valuenow="70",
        role="progressbar"
    )
    assert "radial-progress" in custom_color.attrs['class']
    assert "text-primary" in custom_color.attrs['class']
    assert custom_color.attrs['style'] == "--value:70;"
    assert custom_color.attrs['aria-valuenow'] == "70"
    assert custom_color.children[0] == "70%"
    
    # With background color and border
    with_bg_border = Div(
        "70%",
        cls=combine_classes(
            radial_progress,
            bg_dui.primary,
            text_dui.primary_content,
            border_dui.primary,
            border._4
        ),
        style="--value:70;",
        aria_valuenow="70",
        role="progressbar"
    )
    assert "radial-progress" in with_bg_border.attrs['class']
    assert "bg-primary" in with_bg_border.attrs['class']
    assert "text-primary-content" in with_bg_border.attrs['class']
    assert "border-primary" in with_bg_border.attrs['class']
    assert "border-4" in with_bg_border.attrs['class']
    assert with_bg_border.attrs['style'] == "--value:70;"
    assert with_bg_border.attrs['aria-valuenow'] == "70"
    assert with_bg_border.children[0] == "70%"
    
    # Return all elements in a Div
    return Div(
        custom_color,
        with_bg_border
    )

# Run the tests
test_radial_progress_colors_fasthtml_examples()
70%
70%
test_func = test_radial_progress_colors_fasthtml_examples
app, rt = create_test_app(theme=DaisyUITheme.LIGHT)

@rt
def index():
    return create_test_page(test_func.__doc__.title().replace('.', ''), test_func())
server = start_test_server(app)
display(HTMX())
server.stop()

test_radial_progress_custom_size_fasthtml_examples


def test_radial_progress_custom_size_fasthtml_examples(
    
):

Test radial progress with custom size and thickness from daisyUI v5 documentation.

Exported source
def test_radial_progress_custom_size_fasthtml_examples():
    """Test radial progress with custom size and thickness from daisyUI v5 documentation."""
    from fasthtml.common import Div
    
    # Custom size and thin thickness
    custom_thin = Div(
        "70%",
        cls=str(radial_progress),
        style="--value:70; --size:12rem; --thickness: 2px;",
        aria_valuenow="70",
        role="progressbar"
    )
    assert custom_thin.attrs['class'] == "radial-progress"
    assert custom_thin.attrs['style'] == "--value:70; --size:12rem; --thickness: 2px;"
    assert custom_thin.attrs['aria-valuenow'] == "70"
    assert custom_thin.attrs['role'] == "progressbar"
    assert custom_thin.children[0] == "70%"
    
    # Custom size and thick thickness
    custom_thick = Div(
        "70%",
        cls=str(radial_progress),
        style="--value:70; --size:12rem; --thickness: 2rem;",
        aria_valuenow="70",
        role="progressbar"
    )
    assert custom_thick.attrs['class'] == "radial-progress"
    assert custom_thick.attrs['style'] == "--value:70; --size:12rem; --thickness: 2rem;"
    assert custom_thick.attrs['aria-valuenow'] == "70"
    assert custom_thick.attrs['role'] == "progressbar"
    assert custom_thick.children[0] == "70%"
    
    # Return all elements in a Div
    return Div(
        custom_thin,
        custom_thick
    )

# Run the tests
test_radial_progress_custom_size_fasthtml_examples()
70%
70%
test_func = test_radial_progress_custom_size_fasthtml_examples
app, rt = create_test_app(theme=DaisyUITheme.LIGHT)

@rt
def index():
    return create_test_page(test_func.__doc__.title().replace('.', ''), test_func())
server = start_test_server(app)
display(HTMX())
server.stop()