Skip to content

feat: add thinking-orbs family - #38

Merged
evanroyrees merged 1 commit into
mainfrom
feat/thinking-orbs-family
Oct 14, 2026
Merged

evanroyrees merged 1 commit into
mainfrom
feat/thinking-orbs-family

Conversation

@evanroyrees

@evanroyrees evanroyrees commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

What

Wraps thinking-orbs 0.3.2 (MIT) as dlc.thinking_orbs: one Orb component with nine dotted-sphere canvas states (working, searching, solving, listening, connecting, weaving, composing, breathing, shaping), registered on the dlc.Loading registry like loadersz.

dlc.thinking_orbs.Orb(state="searching")
dlc.thinking_orbs.Orb(state="solving", size=20, color="#f97316", rate=1.5)

How the gaps in the issue turned out:

  • color is supported upstream. The issue says there is no color prop; 0.3.x has one (#rgb, #rrggbb or rgb(), depth shading kept on the tint). It is passed through, and left unset keeps the stock monochrome ink. Other CSS color syntax is ignored by upstream ("orange" stays grey); documented in the prop docs, README and gallery copy. The gallery color field starts empty so a page shows what Orb() renders.
  • size is any pixel size. Upstream has three designs (64, 32, 20; the 32 is interpolated and untuned) and throws on any other size. The wrapper draws the nearest design by ratio and scales the canvas to size with CSS. Default 64. Sizes above 64 upscale the 64 design and soften. Tested for 12 to 256.
  • theme="auto" does not see Mantine. Upstream reads an ancestor data-theme or dark/light class, then the OS; Mantine sets data-mantine-color-scheme on <html>, which upstream never looks at. Verified in the gallery: the orbs followed the OS, not the toggle. The wrapper now mirrors that attribute onto its own data-theme while it is present, so auto follows a dmc color scheme toggle live (tested with the OS in the other mode). Without Mantine nothing changes: OS, as upstream.
  • Other props: rate is upstream speed, playing=False is paused, plus dots, dot_size, aria_label. Upstream's opts, frame and gravity are not exposed.

Gallery: live controls on every page (each shown to change a paused frame's pixels), the orbs kept out of the animated header brand mark, family icon in header search rows (a canvas orb cannot be cloned or created from gallery.js). The family has no categories, so the sidebar list is flat.

CONTRIBUTING's "Adding a family" now lists the steps this needed beyond the old list (package __init__.py, index.js, webpack exclude, tree-shaking check, counts, canvas test and mark steps).

Closes #34

Checklist

  • PR title starts with feat: / fix: / perf: / revert: (if this should ship in the next PyPI release) or chore: / docs: / ci: / test: / style: / refactor: (if not)
  • I expect release-please to open a release PR after this merges (feat/fix/perf/revert) -- or I do not expect one (chore/docs/ci/…)
  • If marketing copy (README, gallery) was touched, component counts and family descriptions match the code

Wrap thinking-orbs 0.3.2 (MIT) as dlc.thinking_orbs: one Orb component with
nine dotted-sphere canvas states (working, searching, solving, listening,
connecting, weaving, composing, breathing, shaping), registered on the
dlc.Loading registry.

- rate maps to upstream speed, playing to paused = !playing
- size is any pixel size: upstream draws 64, 32 or 20 and throws on anything
  else, so the nearest design is drawn and the canvas scaled to size
- color tints the ink (hex or rgb() only, upstream's parser); unset keeps the
  stock monochrome. dots and dot_size pass through
- theme="auto" mirrors Mantine's data-mantine-color-scheme onto the wrapper,
  since upstream only reads data-theme or a dark/light class, then the OS
- gallery: family page with live controls, paused-frame pixel check that each
  control changes the canvas, orbs kept out of the header brand mark, family
  icon in search results
- CONTRIBUTING: list the steps hit while adding a canvas family
@evanroyrees
evanroyrees merged commit a9a5f6d into main Oct 14, 2026
1 check passed
@evanroyrees
evanroyrees deleted the feat/thinking-orbs-family branch October 14, 2026 22:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Wrap thinking-orbs: nine dotted-globe canvas orbs for AI and agent status (working, searching, solving...)

1 participant