Exported source
link = SingleValueFactory("link", "Link component for adding underline style to links") # Link componentLinkStyle (value, names=None, module=None, qualname=None, type=None, start=1, boundary=None)
*str(object=’’) -> str str(bytes_or_buffer[, encoding[, errors]]) -> str
Create a new string object from the given object. If encoding or errors is specified, then the object must expose a data buffer that will be decoded using the given encoding and error handler. Otherwise, returns the result of object.__str__() (if defined) or repr(object). encoding defaults to sys.getdefaultencoding(). errors defaults to ‘strict’.*
test_link_basic_examples ()
Test basic link utilities.
test_link_styles_examples ()
Test link style variants.
test_link_colors_examples ()
Test link color variants.
def test_link_colors_examples():
"""Test link color variants."""
# All color variants
assert str(link_colors.neutral) == "link-neutral"
assert str(link_colors.primary) == "link-primary"
assert str(link_colors.secondary) == "link-secondary"
assert str(link_colors.accent) == "link-accent"
assert str(link_colors.info) == "link-info"
assert str(link_colors.success) == "link-success"
assert str(link_colors.warning) == "link-warning"
assert str(link_colors.error) == "link-error"
# With modifiers
assert str(link_colors.primary.hover) == "hover:link-primary"
assert str(link_colors.success.focus) == "focus:link-success"
# Run the tests
test_link_colors_examples()test_link_basic_fasthtml_examples ()
Test basic link examples from daisyUI v5 documentation.
def test_link_basic_fasthtml_examples():
"""Test basic link examples from daisyUI v5 documentation."""
from fasthtml.common import A, P, Br, Div
# Basic link
basic_link = A("Click me", cls=str(link), href="#")
assert basic_link.tag == "a"
assert basic_link.attrs['class'] == "link"
assert basic_link.attrs['href'] == "#"
assert basic_link.children[0] == "Click me"
# Link within paragraph text
paragraph_with_link = P(
"Tailwind CSS resets the style of links by default.",
Br(),
"Add \"link\" class to make it look like a ",
A("normal link", cls=str(link), href="#"),
" again."
)
assert paragraph_with_link.tag == "p"
assert paragraph_with_link.children[0] == "Tailwind CSS resets the style of links by default."
assert paragraph_with_link.children[1].tag == "br"
assert paragraph_with_link.children[2] == "Add \"link\" class to make it look like a "
assert paragraph_with_link.children[3].tag == "a"
assert paragraph_with_link.children[3].attrs['class'] == "link"
assert paragraph_with_link.children[3].attrs['href'] == "#"
assert paragraph_with_link.children[3].children[0] == "normal link"
assert paragraph_with_link.children[4] == " again."
# Return all elements in a Div
return Div(
basic_link,
paragraph_with_link
)
# Run the tests
test_link_basic_fasthtml_examples()test_link_colors_fasthtml_examples ()
Test link color variations from daisyUI v5 documentation.
def test_link_colors_fasthtml_examples():
"""Test link color variations from daisyUI v5 documentation."""
from fasthtml.common import A, Div
# Primary color link
primary_link = A("Click me", cls=combine_classes(link, link_colors.primary), href="#")
assert primary_link.tag == "a"
assert "link" in primary_link.attrs['class']
assert "link-primary" in primary_link.attrs['class']
assert primary_link.attrs['href'] == "#"
assert primary_link.children[0] == "Click me"
# Secondary color link
secondary_link = A("Click me", cls=combine_classes(link, link_colors.secondary), href="#")
assert "link" in secondary_link.attrs['class']
assert "link-secondary" in secondary_link.attrs['class']
assert secondary_link.children[0] == "Click me"
# Accent color link
accent_link = A("Click me", cls=combine_classes(link, link_colors.accent), href="#")
assert "link" in accent_link.attrs['class']
assert "link-accent" in accent_link.attrs['class']
assert accent_link.children[0] == "Click me"
# Neutral color link
neutral_link = A("Click me", cls=combine_classes(link, link_colors.neutral), href="#")
assert "link" in neutral_link.attrs['class']
assert "link-neutral" in neutral_link.attrs['class']
assert neutral_link.children[0] == "Click me"
# Success color link
success_link = A("Click me", cls=combine_classes(link, link_colors.success), href="#")
assert "link" in success_link.attrs['class']
assert "link-success" in success_link.attrs['class']
assert success_link.children[0] == "Click me"
# Info color link
info_link = A("Click me", cls=combine_classes(link, link_colors.info), href="#")
assert "link" in info_link.attrs['class']
assert "link-info" in info_link.attrs['class']
assert info_link.children[0] == "Click me"
# Warning color link
warning_link = A("Click me", cls=combine_classes(link, link_colors.warning), href="#")
assert "link" in warning_link.attrs['class']
assert "link-warning" in warning_link.attrs['class']
assert warning_link.children[0] == "Click me"
# Error color link
error_link = A("Click me", cls=combine_classes(link, link_colors.error), href="#")
assert "link" in error_link.attrs['class']
assert "link-error" in error_link.attrs['class']
assert error_link.children[0] == "Click me"
# Return all color variations in a Div
return Div(
primary_link,
secondary_link,
accent_link,
neutral_link,
success_link,
info_link,
warning_link,
error_link
)
# Run the tests
test_link_colors_fasthtml_examples()<div>
<a href="#" class="link link-primary">Click me</a><a href="#" class="link link-secondary">Click me</a><a href="#" class="link link-accent">Click me</a><a href="#" class="link link-neutral">Click me</a><a href="#" class="link link-success">Click me</a><a href="#" class="link link-info">Click me</a><a href="#" class="link link-warning">Click me</a><a href="#" class="link link-error">Click me</a></div>test_link_hover_fasthtml_examples ()
Test link hover style from daisyUI v5 documentation.
def test_link_hover_fasthtml_examples():
"""Test link hover style from daisyUI v5 documentation."""
from fasthtml.common import A, Div
# Link with underline only on hover
hover_link = A("Click me", cls=combine_classes(link, link_styles.hover), href="#")
assert hover_link.tag == "a"
assert "link" in hover_link.attrs['class']
assert "link-hover" in hover_link.attrs['class']
assert hover_link.attrs['href'] == "#"
assert hover_link.children[0] == "Click me"
# Return element in a Div
return Div(hover_link)
# Run the tests
test_link_hover_fasthtml_examples()