Skip to main content
spaday-blueprint logo, a component blueprint inside a browser window

Typed Blueprint components and browser assets for spaday.

Build Status codecov License PyPI

Preview of Blueprint components in spaday rendering a release console

Overview

from spaday import SetField, serve
from spaday_blueprint import BpBadge, BpButton, BpCard

page = BpCard(
    BpButton(action="primary", status="success").text("Approve").on("click", SetField("state", "approved")),
    BpBadge().bind("textContent", "state"),
)
serve(page, packages=["blueprint"], store={"state": "pending"})

Every Blueprint element has a typed class — 80 from @blueprintui/components and BpIcon from @blueprintui/icons — generated from their Custom Elements Manifests, so props, events and slots are checked when you author the tree. Installing the package does not inject assets; select it with packages=["blueprint"] or pass the exported package descriptor.

Generic controls

Selecting this package renders 12 of the 13 controls in spaday.ui as Blueprint elements. The mapping is exported as DESIGN. RadioGroup uses spaday's marked native fallback because Blueprint provides individual radio controls but no group with a value API. The shared conformance page checks the complete control set, including that fallback.

Browser examples

Both run Python locally through Pyodide; no install or server is required.

Run examples locally

python -m pip install -e ".[examples]"
python -m spaday_blueprint.example
python -m spaday_blueprint.gallery

Open http://127.0.0.1:8023 for the standard release-console app or http://127.0.0.1:8024 for the component gallery. The standard app includes service metrics streamed from Python, endpoint-backed restart and deploy actions, rollout progress, incident handling, bound forms, tabs, overlays, and shared dark-theme state. The gallery documents every generated Blueprint component and provides a highlighted Python snippet for each component family, including a working number stepper instead of rendering that element.

Both pass the local package descriptor directly, so they do not install or resolve the integration from GitHub.

Theming

The stylesheet maps spaday's --spa-* shell palette onto Blueprint's own tokens, so restyling Blueprint restyles the shell and every other spaday component package with it. TOKENS lists the Blueprint tokens wired to the palette, each settable through css():

App().css(bp_status_accent_background_200="#0C4253")

Blueprint's dark theme follows spaday's page mode: a wa-dark class on the root (for example App(...).bind_root_class("wa-dark", "dark")) or on any island switches it, and wa-light flips a nested island back. Blueprint's own bp-theme="dark" attribute works as well.

Sharing Blueprint with your own library

Blueprint registers global custom element names, so a second copy on the page throws from customElements.define. The package serves Blueprint's modules under their own bare specifiers — @blueprintui/components/button, @blueprintui/components/include/button.js, @blueprintui/icons/shapes/user.js and the rest of their exports — through the page's import map. A library built on Blueprint that leaves those imports out of its bundle (external: ["@blueprintui/components", "@blueprintui/icons"] with esbuild) gets this copy, and nothing registers twice.

Known issues

  • Blueprint 2.20's bp-number-stepper sets its step attribute from its constructor. The served module defers that default until connection so standards-compliant document.createElement works.
  • @blueprintui/icons' root module omits the BpIcon export its types declare; the served copy restores it, since Blueprint's own components import it from there.

Metadata

Release files for spaday-blueprint 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for spaday-blueprint 0.2.0
File Size Uploaded
spaday_blueprint-0.2.0.tar.gz 367.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for spaday-blueprint 0.2.0
File Interpreter ABI Platform
spaday_blueprint-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 1.1 MB

Release files / spaday_blueprint-0.2.0.tar.gz

Download URL spaday_blueprint-0.2.0.tar.gz
Size 367.7 kB
Tags Source
SHA-256 checksum
How to use checksums
d2738c0b1b969685dbf0815c8757b700ccbe44b16570e5ef11abc2c6767a29bc
BLAKE2b-256 checksum
How to use checksums
4b02e63ea4c6a653979d3191c1fc2503b3db375fc47ff814cb057edb26ee8b35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / spaday_blueprint-0.2.0-py3-none-any.whl

Download URL spaday_blueprint-0.2.0-py3-none-any.whl
Size 689.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d027c2ba90de42a78547eded5ff9cd6f8181be28f59e6f7e71b2d0188c231a00
BLAKE2b-256 checksum
How to use checksums
18e36b78f5f7aef0f420cb03a98a3acf0a43fcdac87fb030df6817892318471b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

0.3.0

2 release files

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page