Base Browser Mockup
Exported source
mockup_browser = SingleValueFactory("mockup-browser" , "Base browser mockup component" ) # Base mockup browser component
mockup_browser_toolbar = SingleValueFactory("mockup-browser-toolbar" , "Toolbar part which can include addressbar, etc" ) # Base mockup browser toolbar part
Browser Mockup Test Examples
source
test_mockup_browser_basic_examples
test_mockup_browser_basic_examples ()
Test basic mockup_browser utilities.
Exported source
def test_mockup_browser_basic_examples():
"""Test basic mockup_browser utilities."""
# Basic mockup_browser
assert str (mockup_browser) == "mockup-browser"
assert str (mockup_browser_toolbar) == "mockup-browser-toolbar"
# Test with modifiers
assert str (mockup_browser.hover) == "hover:mockup-browser"
assert str (mockup_browser.md) == "md:mockup-browser"
assert str (mockup_browser.dark) == "dark:mockup-browser"
# Run the tests
test_mockup_browser_basic_examples()
source
test_browser_mockup_with_border_fasthtml_examples
test_browser_mockup_with_border_fasthtml_examples ()
Test browser mockup with border from daisyUI v5 documentation.
Exported source
def test_browser_mockup_with_border_fasthtml_examples():
"""Test browser mockup with border from daisyUI v5 documentation."""
from fasthtml.common import Div
from cjm_fasthtml_tailwind.utilities.sizing import w, h
from cjm_fasthtml_tailwind.utilities.borders import border
from cjm_fasthtml_tailwind.utilities.layout import display_tw
from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import place_content, grid_display
from cjm_fasthtml_daisyui.components.data_input.text_input import text_input
from cjm_fasthtml_daisyui.utilities.semantic_colors import border_dui
# Browser mockup with border
browser_with_border = Div(
Div(
Div("https://daisyui.com" , cls= str (text_input)),
cls= str (mockup_browser_toolbar)
),
Div(
"Hello!" ,
cls= combine_classes(grid_display, place_content.center, border.t(), border_dui.base_300, h._80)
),
cls= combine_classes(mockup_browser, border_dui.base_300, border(), w.full)
)
# Verify structure
assert browser_with_border.tag == "div"
assert "mockup-browser" in browser_with_border.attrs['class' ]
assert "border-base-300" in browser_with_border.attrs['class' ]
assert "border" in browser_with_border.attrs['class' ]
assert "w-full" in browser_with_border.attrs['class' ]
# Verify toolbar
toolbar = browser_with_border.children[0 ]
assert toolbar.tag == "div"
assert toolbar.attrs['class' ] == "mockup-browser-toolbar"
# Verify address bar (input div)
address_bar = toolbar.children[0 ]
assert address_bar.tag == "div"
assert address_bar.attrs['class' ] == "input"
assert address_bar.children[0 ] == "https://daisyui.com"
# Verify content area
content = browser_with_border.children[1 ]
assert content.tag == "div"
assert "grid" in content.attrs['class' ]
assert "place-content-center" in content.attrs['class' ]
assert "border-t" in content.attrs['class' ]
assert "border-base-300" in content.attrs['class' ]
assert "h-80" in content.attrs['class' ]
assert content.children[0 ] == "Hello!"
return browser_with_border
# Run the tests
test_browser_mockup_with_border_fasthtml_examples()
< div class = "mockup-browser border-base-300 border w-full" >
< div class = "mockup-browser-toolbar" >
< div class = "input" > https://daisyui.com</ div >
</ div >
< div class = "grid place-content-center border-t border-base-300 h-80" > Hello!</ div >
</ div >
test_func = test_browser_mockup_with_border_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_browser_mockup_with_background_fasthtml_examples
test_browser_mockup_with_background_fasthtml_examples ()
Test browser mockup with background color from daisyUI v5 documentation.
Exported source
def test_browser_mockup_with_background_fasthtml_examples():
"""Test browser mockup with background color from daisyUI v5 documentation."""
from fasthtml.common import Div
from cjm_fasthtml_tailwind.utilities.sizing import w, h
from cjm_fasthtml_tailwind.utilities.borders import border
from cjm_fasthtml_tailwind.utilities.layout import display_tw
from cjm_fasthtml_tailwind.utilities.flexbox_and_grid import place_content, grid_display
from cjm_fasthtml_daisyui.components.data_input.text_input import text_input
from cjm_fasthtml_daisyui.utilities.semantic_colors import border_dui
# Browser mockup with background color (no border-t on content)
browser_with_background = Div(
Div(
Div("https://daisyui.com" , cls= str (text_input)),
cls= str (mockup_browser_toolbar)
),
Div(
"Hello!" ,
cls= combine_classes(grid_display, place_content.center, h._80)
),
cls= combine_classes(mockup_browser, border(), border_dui.base_300, w.full)
)
# Verify structure
assert browser_with_background.tag == "div"
assert "mockup-browser" in browser_with_background.attrs['class' ]
assert "border" in browser_with_background.attrs['class' ]
assert "border-base-300" in browser_with_background.attrs['class' ]
assert "w-full" in browser_with_background.attrs['class' ]
# Verify toolbar
toolbar = browser_with_background.children[0 ]
assert toolbar.tag == "div"
assert toolbar.attrs['class' ] == "mockup-browser-toolbar"
# Verify address bar (input div)
address_bar = toolbar.children[0 ]
assert address_bar.tag == "div"
assert address_bar.attrs['class' ] == "input"
assert address_bar.children[0 ] == "https://daisyui.com"
# Verify content area (no border-t)
content = browser_with_background.children[1 ]
assert content.tag == "div"
assert "grid" in content.attrs['class' ]
assert "place-content-center" in content.attrs['class' ]
assert "h-80" in content.attrs['class' ]
assert "border-t" not in content.attrs['class' ] # Key difference - no border-t
assert content.children[0 ] == "Hello!"
return browser_with_background
# Run the tests
test_browser_mockup_with_background_fasthtml_examples()
< div class = "mockup-browser border border-base-300 w-full" >
< div class = "mockup-browser-toolbar" >
< div class = "input" > https://daisyui.com</ div >
</ div >
< div class = "grid place-content-center h-80" > Hello!</ div >
</ div >
test_func = test_browser_mockup_with_background_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()