Exported source
textarea = SingleValueFactory("textarea", "Base textarea component for <textarea> element") # Base textarea componenttest_textarea_basic_examples ()
Test basic textarea utilities.
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()test_textarea_styles_examples ()
Test textarea style variants.
test_textarea_colors_examples ()
Test textarea color variants.
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()test_textarea_sizes_examples ()
Test textarea size variants.
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()test_textarea_basic_fasthtml_examples ()
Test basic textarea example from daisyUI v5 documentation.
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()test_textarea_ghost_fasthtml_examples ()
Test ghost textarea (no background) from daisyUI v5 documentation.
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()test_textarea_with_form_control_fasthtml_examples ()
Test textarea with form control and labels from daisyUI v5 documentation.
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()test_textarea_colors_fasthtml_examples ()
Test textarea color variations from daisyUI v5 documentation.
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_textarea_sizes_fasthtml_examples ()
Test textarea size variations from daisyUI v5 documentation.
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_textarea_disabled_fasthtml_examples ()
Test disabled textarea from daisyUI v5 documentation.
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()