duck.html.components.modal

Modal components module.

Module Contents

Classes

Modal

Modal component with overlay and centered content.

API

class duck.html.components.modal.Modal(element: Optional[str] = None, properties: Optional[Dict[str, str]] = None, props: Optional[Dict[str, str]] = None, style: Optional[Dict[str, str]] = None, inner_html: Optional[Union[str, str, float]] = None, children: Optional[List[duck.html.components.HtmlComponent]] = None, **kwargs)[source]

Bases: duck.html.components.container.FlexContainer

Modal component with overlay and centered content.

Parameters:
  • title – Optional title for the modal dialog.

  • show_close – Whether to show a close (‘×’) button (default: True).

  • open_on_ready – Whether to open modal instantly after page load. Defaults to False.

  • modal_props – Props for the modal content container (optional).

  • modal_style – Style for the content container (optional).

  • children – List of child components (modal body).

  • **kwargs – Extra arguments passed to the overlay.

Example:

from duck.html.components.label import Label

modal = Modal(title="Test modal", open_on_ready=True) # `open_on_ready` will open modal instantly on page load
modal.set_content(Label(color="blue", text="Some Content"))

Initialization

Initialize an HTML component.

Parameters:
  • element – The HTML element tag name (e.g., textarea, input, button). Can be None, but make sure element is returned by get_element method.

  • accept_inner_html – Whether the HTML component accepts an inner body (e.g., inner-body-here).

  • inner_html – Inner html to add to the HTML component. Defaults to None.

  • properties – Dictionary for properties to initialize the component with.

  • props – Just same as properties argument (added for simplicity).

  • style – Dictionary for style to initialize the component with.

  • **kwargs – Extra keyword arguments

Raises:

HtmlComponentError – If ‘element’ is not a string or ‘inner_html’ is set but ‘accept_inner_html’ is False.

add_child(child)[source]
on_create()[source]
open_modal()[source]

Opens the modal; This simply makes the component visible.

set_content(content: duck.html.components.Component)[source]

Replaces the modal body content while keeping the header row (title + close button) intact at the top.