Skip to content

Group visual configuration and allow mounting in the Smith constructor - #63

Merged
rosek86 merged 1 commit into
mainfrom
feat/grouped-appearance-options
Oct 14, 2026
Merged

rosek86 merged 1 commit into
mainfrom
feat/grouped-appearance-options

Conversation

@rosek86

@rosek86 rosek86 commented Oct 14, 2026

Copy link
Copy Markdown
Owner

Visual configuration mixed text, line, cursor, and marker settings into flat objects. Group these properties by element, so a grid text override is now grid.style.text.color and a theme override is appearance.overrides.grid.text.color. Nested layer patches retain omitted properties, with complete validation before mutation. Theme replacement semantics and existing visual/interaction defaults stay the same. Q and VSWR theme widths can be set independently.

Add new Smith(target, options?) for immediate mounting with a CSS selector or HTMLElement, including elements from another window. Keep new Smith(options) plus draw() for deferred mounting. The mounting target remains separate from SmithOptions, and failed constructor mounts clean up observers and renderer resources.

This is a breaking change for the next minor release: flat visual style keys are removed. Update the demo, examples, API signature report, configuration reference, README, and migration guide together.

Validation:

  • npm run lint:fix, npm run format, and npm run check (470 unit tests).
  • Chromium browser suite plus focused configuration/style reruns; 20 focused tests passed in each of Chromium, WebKit, and Firefox.
  • npm run check:package: installed ESM runtime, NodeNext/Bundler declarations including TypeScript 5.7.3, and 23 README/guide snippets.
  • npm run check:example: installed gallery, React/Angular integrations, updates, resize, and cleanup in all three browser engines.

@rosek86
rosek86 merged commit 4d839fb into main Oct 14, 2026
8 checks passed
@rosek86
rosek86 deleted the feat/grouped-appearance-options branch October 14, 2026 04:39
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.

1 participant