textarea

Textarea allows users to enter text in multiple lines.

Base Text Area

Exported source
textarea = SingleValueFactory("textarea", "Base textarea component for <textarea> element") # Base textarea component

Text Area Styles

Exported source
textarea_styles = enums_to_simple_factory(textarea, [GhostStyle]) # textarea style variants

Text Area Colors

Exported source
textarea_colors = enums_to_simple_factory(textarea, [SemanticColorBrand, SemanticColorStatus], "textarea color variants using daisyUI semantic colors") # textarea color variants

Text Area Sizes

Exported source
textarea_sizes = enums_to_simple_factory(textarea, [DaisyUINamedSize], "textarea size variants from extra small to extra large") # textarea size variants

Text Area Test Examples


source

test_textarea_basic_examples

 test_textarea_basic_examples ()

Test basic textarea utilities.

Exported source
def test_textarea_basic_examples():
    """Test basic textarea utilities."""
    # Basic textarea
    assert str(textarea) == "textarea"
    
    # Test with modifiers
    assert str(textarea.hover) == "hover:textarea"
    assert str(textarea.md) == "md:textarea"
    assert str(textarea.dark) == "dark:textarea"

# Run the tests
test_textarea_basic_examples()

source

test_textarea_styles_examples

 test_textarea_styles_examples ()

Test textarea style variants.

Exported source
def test_textarea_styles_examples():
    """Test textarea style variants."""
    assert str(textarea_styles.ghost) == "textarea-ghost"

# Run the tests
test_textarea_styles_examples()

source

test_textarea_colors_examples

 test_textarea_colors_examples ()

Test textarea color variants.

Exported source
def test_textarea_colors_examples():
    """Test textarea color variants."""
    # All color variants
    assert str(textarea_colors.neutral) == "textarea-neutral"
    assert str(textarea_colors.primary) == "textarea-primary"
    assert str(textarea_colors.secondary) == "textarea-secondary"
    assert str(textarea_colors.accent) == "textarea-accent"
    assert str(textarea_colors.info) == "textarea-info"
    assert str(textarea_colors.success) == "textarea-success"
    assert str(textarea_colors.warning) == "textarea-warning"
    assert str(textarea_colors.error) == "textarea-error"
    
    # With modifiers
    assert str(textarea_colors.primary.hover) == "hover:textarea-primary"
    assert str(textarea_colors.success.focus) == "focus:textarea-success"

# Run the tests
test_textarea_colors_examples()

source

test_textarea_sizes_examples

 test_textarea_sizes_examples ()

Test textarea size variants.

Exported source
def test_textarea_sizes_examples():
    """Test textarea size variants."""
    assert str(textarea_sizes.xs) == "textarea-xs"
    assert str(textarea_sizes.sm) == "textarea-sm"
    assert str(textarea_sizes.md) == "textarea-md"
    assert str(textarea_sizes.lg) == "textarea-lg"
    assert str(textarea_sizes.xl) == "textarea-xl"
    
    # With responsive modifiers
    assert str(textarea_sizes.xs.sm) == "sm:textarea-xs"
    assert str(textarea_sizes.lg.md) == "md:textarea-lg"

# Run the tests
test_textarea_sizes_examples()

source

test_textarea_basic_fasthtml_examples

 test_textarea_basic_fasthtml_examples ()

Test basic textarea example from daisyUI v5 documentation.

Exported source
def test_textarea_basic_fasthtml_examples():
    """Test basic textarea example from daisyUI v5 documentation."""
    from fasthtml.common import Textarea
    
    # Basic textarea
    basic_textarea = Textarea(placeholder="Bio", cls=str(textarea))
    
    # Verify structure
    assert basic_textarea.tag == "textarea"
    assert basic_textarea.attrs['class'] == "textarea"
    assert basic_textarea.attrs['placeholder'] == "Bio"
    
    return basic_textarea

# Run the tests
test_textarea_basic_fasthtml_examples()
<textarea placeholder="Bio" class="textarea"></textarea>
test_func = test_textarea_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()

source

test_textarea_ghost_fasthtml_examples

 test_textarea_ghost_fasthtml_examples ()

Test ghost textarea (no background) from daisyUI v5 documentation.

Exported source
def test_textarea_ghost_fasthtml_examples():
    """Test ghost textarea (no background) from daisyUI v5 documentation."""
    from fasthtml.common import Textarea
    
    # Ghost textarea (no background)
    ghost_textarea = Textarea(
        placeholder="Bio",
        cls=combine_classes(textarea, textarea_styles.ghost)
    )
    
    # Verify structure
    assert ghost_textarea.tag == "textarea"
    assert "textarea" in ghost_textarea.attrs['class']
    assert "textarea-ghost" in ghost_textarea.attrs['class']
    assert ghost_textarea.attrs['placeholder'] == "Bio"
    
    return ghost_textarea

# Run the tests
test_textarea_ghost_fasthtml_examples()
<textarea placeholder="Bio" class="textarea textarea-ghost"></textarea>
test_func = test_textarea_ghost_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()

source

test_textarea_with_form_control_fasthtml_examples

 test_textarea_with_form_control_fasthtml_examples ()

Test textarea with form control and labels from daisyUI v5 documentation.

Exported source
def test_textarea_with_form_control_fasthtml_examples():
    """Test textarea with form control and labels from daisyUI v5 documentation."""
    from fasthtml.common import Fieldset, Legend, Textarea, Div
    from cjm_fasthtml_tailwind.utilities.sizing import h
    from cjm_fasthtml_daisyui.components.data_input.fieldset import fieldset, fieldset_legend
    from cjm_fasthtml_daisyui.components.data_input.label import label
    
    # Textarea with form control and labels
    form_control_textarea = Fieldset(
        Legend("Your bio", cls=str(fieldset_legend)),
        Textarea(
            placeholder="Bio",
            cls=combine_classes(textarea, h._24)
        ),
        Div("Optional", cls=str(label)),
        cls=str(fieldset)
    )
    
    # Verify structure
    assert form_control_textarea.tag == "fieldset"
    assert form_control_textarea.attrs['class'] == "fieldset"
    
    # Verify legend
    legend_element = form_control_textarea.children[0]
    assert legend_element.tag == "legend"
    assert legend_element.attrs['class'] == "fieldset-legend"
    assert legend_element.children[0] == "Your bio"
    
    # Verify textarea
    textarea_element = form_control_textarea.children[1]
    assert textarea_element.tag == "textarea"
    assert "textarea" in textarea_element.attrs['class']
    assert "h-24" in textarea_element.attrs['class']
    assert textarea_element.attrs['placeholder'] == "Bio"
    
    # Verify label
    label_element = form_control_textarea.children[2]
    assert label_element.tag == "div"
    assert label_element.attrs['class'] == "label"
    assert label_element.children[0] == "Optional"
    
    return form_control_textarea

# Run the tests
test_textarea_with_form_control_fasthtml_examples()
<fieldset class="fieldset"><legend class="fieldset-legend">Your bio</legend><textarea placeholder="Bio" class="textarea h-24"></textarea>  <div class="label">Optional</div>
</fieldset>
test_func = test_textarea_with_form_control_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()

source

test_textarea_colors_fasthtml_examples

 test_textarea_colors_fasthtml_examples ()

Test textarea color variations from daisyUI v5 documentation.

Exported source
def test_textarea_colors_fasthtml_examples():
    """Test textarea color variations from daisyUI v5 documentation."""
    from fasthtml.common import Textarea, Div
    
    # Textarea colors
    primary_textarea = Textarea(
        placeholder="Primary",
        cls=combine_classes(textarea, textarea_colors.primary)
    )
    assert "textarea" in primary_textarea.attrs['class']
    assert "textarea-primary" in primary_textarea.attrs['class']
    assert primary_textarea.attrs['placeholder'] == "Primary"
    
    secondary_textarea = Textarea(
        placeholder="Secondary",
        cls=combine_classes(textarea, textarea_colors.secondary)
    )
    assert "textarea-secondary" in secondary_textarea.attrs['class']
    assert secondary_textarea.attrs['placeholder'] == "Secondary"
    
    accent_textarea = Textarea(
        placeholder="Accent",
        cls=combine_classes(textarea, textarea_colors.accent)
    )
    assert "textarea-accent" in accent_textarea.attrs['class']
    assert accent_textarea.attrs['placeholder'] == "Accent"
    
    neutral_textarea = Textarea(
        placeholder="Neutral",
        cls=combine_classes(textarea, textarea_colors.neutral)
    )
    assert "textarea-neutral" in neutral_textarea.attrs['class']
    assert neutral_textarea.attrs['placeholder'] == "Neutral"
    
    info_textarea = Textarea(
        placeholder="Info",
        cls=combine_classes(textarea, textarea_colors.info)
    )
    assert "textarea-info" in info_textarea.attrs['class']
    assert info_textarea.attrs['placeholder'] == "Info"
    
    success_textarea = Textarea(
        placeholder="Success",
        cls=combine_classes(textarea, textarea_colors.success)
    )
    assert "textarea-success" in success_textarea.attrs['class']
    assert success_textarea.attrs['placeholder'] == "Success"
    
    warning_textarea = Textarea(
        placeholder="Warning",
        cls=combine_classes(textarea, textarea_colors.warning)
    )
    assert "textarea-warning" in warning_textarea.attrs['class']
    assert warning_textarea.attrs['placeholder'] == "Warning"
    
    error_textarea = Textarea(
        placeholder="Error",
        cls=combine_classes(textarea, textarea_colors.error)
    )
    assert "textarea-error" in error_textarea.attrs['class']
    assert error_textarea.attrs['placeholder'] == "Error"
    
    # Return all color variations
    return Div(
        primary_textarea,
        secondary_textarea,
        accent_textarea,
        neutral_textarea,
        info_textarea,
        success_textarea,
        warning_textarea,
        error_textarea
    )

# Run the tests
test_textarea_colors_fasthtml_examples()
<div>
<textarea placeholder="Primary" class="textarea textarea-primary"></textarea><textarea placeholder="Secondary" class="textarea textarea-secondary"></textarea><textarea placeholder="Accent" class="textarea textarea-accent"></textarea><textarea placeholder="Neutral" class="textarea textarea-neutral"></textarea><textarea placeholder="Info" class="textarea textarea-info"></textarea><textarea placeholder="Success" class="textarea textarea-success"></textarea><textarea placeholder="Warning" class="textarea textarea-warning"></textarea><textarea placeholder="Error" class="textarea textarea-error"></textarea></div>
test_func = test_textarea_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()

source

test_textarea_sizes_fasthtml_examples

 test_textarea_sizes_fasthtml_examples ()

Test textarea size variations from daisyUI v5 documentation.

Exported source
def test_textarea_sizes_fasthtml_examples():
    """Test textarea size variations from daisyUI v5 documentation."""
    from fasthtml.common import Textarea, Div
    
    # Textarea sizes
    xs_textarea = Textarea(
        placeholder="Bio",
        cls=combine_classes(textarea, textarea_sizes.xs)
    )
    assert "textarea" in xs_textarea.attrs['class']
    assert "textarea-xs" in xs_textarea.attrs['class']
    assert xs_textarea.attrs['placeholder'] == "Bio"
    
    sm_textarea = Textarea(
        placeholder="Bio",
        cls=combine_classes(textarea, textarea_sizes.sm)
    )
    assert "textarea-sm" in sm_textarea.attrs['class']
    
    md_textarea = Textarea(
        placeholder="Bio",
        cls=combine_classes(textarea, textarea_sizes.md)
    )
    assert "textarea-md" in md_textarea.attrs['class']
    
    lg_textarea = Textarea(
        placeholder="Bio",
        cls=combine_classes(textarea, textarea_sizes.lg)
    )
    assert "textarea-lg" in lg_textarea.attrs['class']
    
    xl_textarea = Textarea(
        placeholder="Bio",
        cls=combine_classes(textarea, textarea_sizes.xl)
    )
    assert "textarea-xl" in xl_textarea.attrs['class']
    
    # Return all size variations
    return Div(
        xs_textarea,
        sm_textarea,
        md_textarea,
        lg_textarea,
        xl_textarea
    )

# Run the tests
test_textarea_sizes_fasthtml_examples()
<div>
<textarea placeholder="Bio" class="textarea textarea-xs"></textarea><textarea placeholder="Bio" class="textarea textarea-sm"></textarea><textarea placeholder="Bio" class="textarea textarea-md"></textarea><textarea placeholder="Bio" class="textarea textarea-lg"></textarea><textarea placeholder="Bio" class="textarea textarea-xl"></textarea></div>
test_func = test_textarea_sizes_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()

source

test_textarea_disabled_fasthtml_examples

 test_textarea_disabled_fasthtml_examples ()

Test disabled textarea from daisyUI v5 documentation.

Exported source
def test_textarea_disabled_fasthtml_examples():
    """Test disabled textarea from daisyUI v5 documentation."""
    from fasthtml.common import Textarea
    
    # Disabled textarea
    disabled_textarea = Textarea(
        placeholder="Bio",
        cls=str(textarea),
        disabled=True
    )
    
    # Verify structure
    assert disabled_textarea.tag == "textarea"
    assert disabled_textarea.attrs['class'] == "textarea"
    assert disabled_textarea.attrs['placeholder'] == "Bio"
    assert disabled_textarea.attrs['disabled'] == True
    
    return disabled_textarea

# Run the tests
test_textarea_disabled_fasthtml_examples()
<textarea placeholder="Bio" disabled class="textarea"></textarea>
test_func = test_textarea_disabled_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()