Conversation
Clarified the introduction and added details about UIX components.
* feat(sections): Support styling section backgrounds by UIX config. (#149)
* feat(sections): Support styling section backgrounds by UIX config.
* Remove unneeded import
* chore(release): 6.1.0-beta.1 [skip ci]
## [6.1.0-beta.1](https://github.com/Lint-Free-Technology/uix/compare/v6.0.0...v6.1.0-beta.1) (2026-04-01)
### ⭐ New Features
* **sections:** Support styling section backgrounds by UIX config. ([#149](https://github.com/Lint-Free-Technology/uix/issues/149)) ([b6b1946](https://github.com/Lint-Free-Technology/uix/commit/b6b19464239f86da453a8b3d5a8b6050954deb20))
* chore(docs): Section config background styling beta note
* chore(docs): Fix typo
* chore(docs): Developers update - fix example and provided emphasis
* chore(deps): bump picomatch (#118)
* chore(deps): bump picomatch
Bumps and [picomatch](https://github.com/micromatch/picomatch). These dependencies needed to be updated together.
Updates `picomatch` from 2.3.1 to 2.3.2
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)
Updates `picomatch` from 4.0.3 to 4.0.4
- [Release notes](https://github.com/micromatch/picomatch/releases)
- [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md)
- [Commits](https://github.com/micromatch/picomatch/compare/2.3.1...2.3.2)
---
updated-dependencies:
- dependency-name: picomatch
dependency-version: 2.3.2
dependency-type: indirect
- dependency-name: picomatch
dependency-version: 4.0.4
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* Add rollup options for typescript resolving
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9 (#119)
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9)
---
updated-dependencies:
- dependency-name: handlebars
dependency-version: 4.7.9
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump actions/checkout from 3 to 6 (#138)
Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v6)
---
updated-dependencies:
- dependency-name: actions/checkout
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump actions/configure-pages from 5 to 6 (#139)
Bumps [actions/configure-pages](https://github.com/actions/configure-pages) from 5 to 6.
- [Release notes](https://github.com/actions/configure-pages/releases)
- [Commits](https://github.com/actions/configure-pages/compare/v5...v6)
---
updated-dependencies:
- dependency-name: actions/configure-pages
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump actions/stale from 10.0.0 to 10.2.0 (#140)
Bumps [actions/stale](https://github.com/actions/stale) from 10.0.0 to 10.2.0.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v10.0.0...v10.2.0)
---
updated-dependencies:
- dependency-name: actions/stale
dependency-version: 10.2.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump actions/setup-node from 4 to 6 (#141)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)
---
updated-dependencies:
- dependency-name: actions/setup-node
dependency-version: '6'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump actions/deploy-pages from 4 to 5 (#142)
Bumps [actions/deploy-pages](https://github.com/actions/deploy-pages) from 4 to 5.
- [Release notes](https://github.com/actions/deploy-pages/releases)
- [Commits](https://github.com/actions/deploy-pages/compare/v4...v5)
---
updated-dependencies:
- dependency-name: actions/deploy-pages
dependency-version: '5'
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(deps): bump conventional-changelog-conventionalcommits (#147)
Bumps [conventional-changelog-conventionalcommits](https://github.com/conventional-changelog/conventional-changelog/tree/HEAD/packages/conventional-changelog-conventionalcommits) from 9.1.0 to 9.3.1.
- [Release notes](https://github.com/conventional-changelog/conventional-changelog/releases)
- [Changelog](https://github.com/conventional-changelog/conventional-changelog/blob/master/packages/conventional-changelog-conventionalcommits/CHANGELOG.md)
- [Commits](https://github.com/conventional-changelog/conventional-changelog/commits/conventional-changelog-conventionalcommits-v9.3.1/packages/conventional-changelog-conventionalcommits)
---
updated-dependencies:
- dependency-name: conventional-changelog-conventionalcommits
dependency-version: 9.3.1
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* deps: bump rollup from 2.80.0 to 4.60.1 (#143)
* deps: bump rollup from 2.80.0 to 4.60.1
Bumps [rollup](https://github.com/rollup/rollup) from 2.80.0 to 4.60.1.
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rollup/rollup/compare/v2.80.0...v4.60.1)
---
updated-dependencies:
- dependency-name: rollup
dependency-version: 4.60.1
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix: replace rollup-plugin-terser with @rollup/plugin-terser for rollup v4 compatibility
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/3ad05421-5844-487f-8c1b-18520f6f2c23
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix: replace matchAll (ES2020) with exec loops in pseudoMatches for ES2017 compat
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/956f19fb-a15e-4b71-88ca-b629dad1ef59
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* deps: bump @babel/preset-env from 7.23.6 to 7.29.2 (#145)
Bumps [@babel/preset-env](https://github.com/babel/babel/tree/HEAD/packages/babel-preset-env) from 7.23.6 to 7.29.2.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.2/packages/babel-preset-env)
---
updated-dependencies:
- dependency-name: "@babel/preset-env"
dependency-version: 7.29.2
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* deps: bump rollup-plugin-typescript2 from 0.36.0 to 0.37.0 (#144)
Bumps [rollup-plugin-typescript2](https://github.com/ezolenko/rollup-plugin-typescript2) from 0.36.0 to 0.37.0.
- [Release notes](https://github.com/ezolenko/rollup-plugin-typescript2/releases)
- [Changelog](https://github.com/ezolenko/rollup-plugin-typescript2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ezolenko/rollup-plugin-typescript2/compare/0.36.0...0.37.0)
---
updated-dependencies:
- dependency-name: rollup-plugin-typescript2
dependency-version: 0.37.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* deps: bump @rollup/plugin-babel from 6.0.4 to 7.0.0 (#146)
Bumps [@rollup/plugin-babel](https://github.com/rollup/plugins/tree/HEAD/packages/babel) from 6.0.4 to 7.0.0.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/babel/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/url-v7.0.0/packages/babel)
---
updated-dependencies:
- dependency-name: "@rollup/plugin-babel"
dependency-version: 7.0.0
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(release): 6.1.0-beta.2 [skip ci]
## [6.1.0-beta.2](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.1...v6.1.0-beta.2) (2026-04-02)
### 📦 Dependency Upgrades
* bump @babel/preset-env from 7.23.6 to 7.29.2 ([#145](https://github.com/Lint-Free-Technology/uix/issues/145)) ([ecd93ae](https://github.com/Lint-Free-Technology/uix/commit/ecd93ae9fdde7e31becfecdeb6be1f9f5a7b4432))
* bump @rollup/plugin-babel from 6.0.4 to 7.0.0 ([#146](https://github.com/Lint-Free-Technology/uix/issues/146)) ([c8d690e](https://github.com/Lint-Free-Technology/uix/commit/c8d690e5abc7d9cc02b28ddc43e2b7e1a90873a4))
* bump rollup from 2.80.0 to 4.60.1 ([#143](https://github.com/Lint-Free-Technology/uix/issues/143)) ([2400e1b](https://github.com/Lint-Free-Technology/uix/commit/2400e1b5d15f0adbd766cab452148ffe125b6961))
* bump rollup-plugin-typescript2 from 0.36.0 to 0.37.0 ([#144](https://github.com/Lint-Free-Technology/uix/issues/144)) ([7475217](https://github.com/Lint-Free-Technology/uix/commit/7475217403aef8132f89e1961fcae4e18126b85f))
* feat(forge): support multiple sparks of the same type (#152)
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/d8690642-cd18-42a4-aef2-8c8e273e96fa
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat(forge): add Search Spark for shadow DOM element mutation (#136)
* Initial plan
* feat: implement Search Spark for UIX Forge
Adds a new `search` spark type that:
- Navigates to a shadow-DOM container via the `for` path (supports `$` crossings)
- Finds elements using `querySelectorAll(query)`
- Optionally filters by text-node regex (`text`)
- Applies actions: add_class, remove_class, add_attribute, remove_attribute,
replace_text, prepend_text, append_text
- Tracks all mutations for full restoration on update/disconnect
- Uses MutationObserver to re-apply when the container DOM changes
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/95216db7-c8f1-4b20-9e98-15c0ed01fe86
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(forge): guard partial YAML and uix-node mutations in search spark
- Add null/type guards to all action array iterations so partial YAML
(e.g. a bare `-` entry) doesn't throw TypeError
- Filter MutationObserver callbacks to skip records where every
added/removed node is a <uix-node> element, preventing lockup when
UIX styling is applied to the forged element
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/0a415116-3ac0-4674-9100-2bc8306933cc
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(forge): prevent null dereference on observer when leaving view
Use a local closure reference to the MutationObserver instead of
this._observer, and bail out early in the callback when this._observer
is already null (set by disconnectedCallback/_restore). This prevents
the "Cannot read properties of null (reading 'disconnect')" error that
occurred when navigating away from a view while the observer callback
was still queued.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/569463fa-71c6-417a-b612-319dd3cdfd06
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(forge): match text inside child elements (e.g. <a>Text</a>) in search spark
Replace the direct-text-node-only _getTextNodeContent implementation with
element.textContent so that the `text` regex filter matches content nested
inside child elements such as <a>, <span>, etc., not just bare text nodes.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/4b5122d2-ccec-48db-9698-3c190538d358
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* docs(forge): add Search Spark documentation page
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/7c6bf4e7-3137-4e6b-b490-b44f71ee108c
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(forge): guard querySelectorAll and skip empty text nodes in prepend/append
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/75a86d03-b186-4746-807d-ef2869feb9cf
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Documentation updates
* Update icon in search spark title
* Update search spark icon in spark index
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: Darryn Capes-Davis <dcapes-davis@outlook.com.au>
* chore(release): 6.1.0-beta.3 [skip ci]
## [6.1.0-beta.3](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.2...v6.1.0-beta.3) (2026-04-02)
### ⭐ New Features
* **forge:** add Search Spark for shadow DOM element mutation ([#136](https://github.com/Lint-Free-Technology/uix/issues/136)) ([3343b31](https://github.com/Lint-Free-Technology/uix/commit/3343b316b6dc13a56ded00838366f0cad20d4540))
* **forge:** support multiple sparks of the same type ([#152](https://github.com/Lint-Free-Technology/uix/issues/152)) ([b0b2b37](https://github.com/Lint-Free-Technology/uix/commit/b0b2b37fa8e443067ea90fe63c27ca4a2845d47a))
* chore(deps-dev): bump handlebars from 4.7.8 to 4.7.9
Bumps [handlebars](https://github.com/handlebars-lang/handlebars.js) from 4.7.8 to 4.7.9.
- [Release notes](https://github.com/handlebars-lang/handlebars.js/releases)
- [Changelog](https://github.com/handlebars-lang/handlebars.js/blob/v4.7.9/release-notes.md)
- [Commits](https://github.com/handlebars-lang/handlebars.js/compare/v4.7.8...v4.7.9)
---
updated-dependencies:
- dependency-name: handlebars
dependency-version: 4.7.9
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore(deps-dev): bump lodash-es from 4.17.23 to 4.18.1
Bumps [lodash-es](https://github.com/lodash/lodash) from 4.17.23 to 4.18.1.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.23...4.18.1)
---
updated-dependencies:
- dependency-name: lodash-es
dependency-version: 4.18.1
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com>
* fix(toast): Refactor for timing reliability
* chore(release): 6.1.0-beta.4 [skip ci]
## [6.1.0-beta.4](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.3...v6.1.0-beta.4) (2026-04-02)
### 🐞 Bug Fixes
* **toast:** Refactor for timing reliability ([1eb319f](https://github.com/Lint-Free-Technology/uix/commit/1eb319fd310050ae914a7fcae63d6222875b507e))
* chore(deps): bump tslib from 2.6.2 to 2.8.1
Bumps [tslib](https://github.com/Microsoft/tslib) from 2.6.2 to 2.8.1.
- [Release notes](https://github.com/Microsoft/tslib/releases)
- [Commits](https://github.com/Microsoft/tslib/compare/v2.6.2...v2.8.1)
---
updated-dependencies:
- dependency-name: tslib
dependency-version: 2.8.1
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore(deps): bump @rollup/plugin-node-resolve from 15.2.3 to 16.0.3
Bumps [@rollup/plugin-node-resolve](https://github.com/rollup/plugins/tree/HEAD/packages/node-resolve) from 15.2.3 to 16.0.3.
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/node-resolve/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/node-resolve-v16.0.3/packages/node-resolve)
---
updated-dependencies:
- dependency-name: "@rollup/plugin-node-resolve"
dependency-version: 16.0.3
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore(deps): bump typescript from 5.3.3 to 6.0.2
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.3.3 to 6.0.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.3.3...v6.0.2)
---
updated-dependencies:
- dependency-name: typescript
dependency-version: 6.0.2
dependency-type: direct:development
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
* chore(deps): bump @babel/core from 7.23.6 to 7.29.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.23.6 to 7.29.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.29.0/packages/babel-core)
---
updated-dependencies:
- dependency-name: "@babel/core"
dependency-version: 7.29.0
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
* deps: bump lit from 3.1.0 to 3.3.2 (#161)
Bumps [lit](https://github.com/lit/lit/tree/HEAD/packages/lit) from 3.1.0 to 3.3.2.
- [Release notes](https://github.com/lit/lit/releases)
- [Changelog](https://github.com/lit/lit/blob/main/packages/lit/CHANGELOG.md)
- [Commits](https://github.com/lit/lit/commits/lit-element@3.3.2/packages/lit)
---
updated-dependencies:
- dependency-name: lit
dependency-version: 3.3.2
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* chore(build): update moduleResolution from node to bundler in tsconfig.json (#164)
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/ab5d9937-99b4-4885-b013-c99535f98aea
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* refactor: TypeScript 6 build errors and VSCode linting alignment (#165)
* chore: plan TS6 migration fixes
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/0fe32a80-4f9c-4e3f-9f10-255c30ebcca5
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix: TypeScript 6 build errors
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/0fe32a80-4f9c-4e3f-9f10-255c30ebcca5
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore: commit vscode typescript sdk setting
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/0fe32a80-4f9c-4e3f-9f10-255c30ebcca5
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore: add python paths and cSpell words to vscode settings
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/570007a3-1631-416a-a970-458fd2022e16
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore: replace deprecated typescript.tsdk with js/ts.tsdk.path in vscode settings
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/89b60e98-0f4e-4051-9d85-9b22c52b05e7
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(release): 6.1.0-beta.5 [skip ci]
## [6.1.0-beta.5](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.4...v6.1.0-beta.5) (2026-04-03)
### 📦 Dependency Upgrades
* bump lit from 3.1.0 to 3.3.2 ([#161](https://github.com/Lint-Free-Technology/uix/issues/161)) ([97816ce](https://github.com/Lint-Free-Technology/uix/commit/97816ce60844dd3541c5a4642c0c0289c5045dc7))
### ⚙️ Miscellaneous
* TypeScript 6 build errors and VSCode linting alignment ([#165](https://github.com/Lint-Free-Technology/uix/issues/165)) ([c68b011](https://github.com/Lint-Free-Technology/uix/commit/c68b0110119f126ffd2430a8702b8d1cb594ba4f))
* refactor(forge): Provide action-handler scaffold for for UIX Forge Sparks (#167)
* feat(forge): Add Button Spark (#168)
* chore(library): Provide for action-handler directive
* feat(forge): Add Button spark (#166)
* feat: add button spark
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/d42abf1f-f127-42f4-9a42-e8d58c600ecb
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Correct icon slots
* fix(button-spark): restrict variant and appearance to ha-button allowed values
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/4e4d4596-82ea-4175-af28-24170ebbc9a1
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(button-spark): wrap ha-button in div to stop click propagation to parent card action handler
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/5b6fc45d-a052-4cad-b6fd-e07461fc5d24
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(button-spark): add pointer-events:auto to wrapper div and entity config option
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/86d8818f-40a8-4c30-9a29-0b3a45d05845
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* docs(forge): add button spark documentation
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/2808c73c-8039-44f3-afe2-b18c1b61680e
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat(forge): add before/after support to button spark
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/924c5084-31cb-4223-998b-9e91430e7dc0
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Documentation updates
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
---------
Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(docs): Add beta note for button spark
* refactor(button-spark): add `icon` config for icon-only buttons (#169)
* feat: add icon config to button-spark (label slot, mutually exclusive with label)
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/c9006ddf-130e-4625-b2b5-b9d074aebfb6
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(docs): Button spark documentation tweaks
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(release): 6.1.0-beta.6 [skip ci]
## [6.1.0-beta.6](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.5...v6.1.0-beta.6) (2026-04-03)
### ⭐ New Features
* **forge:** Add Button Spark ([#168](https://github.com/Lint-Free-Technology/uix/issues/168)) ([51cfbe8](https://github.com/Lint-Free-Technology/uix/commit/51cfbe8110eedf6046bebc2259ab29702a8dfd8a)), closes [#166](https://github.com/Lint-Free-Technology/uix/issues/166)
### ⚙️ Miscellaneous
* **button-spark:** add `icon` config for icon-only buttons ([#169](https://github.com/Lint-Free-Technology/uix/issues/169)) ([32b52b7](https://github.com/Lint-Free-Technology/uix/commit/32b52b7ef414915a1d1a6f9aebd07c7cf68c85ef))
* **forge:** Provide action-handler scaffold for for UIX Forge Sparks ([#167](https://github.com/Lint-Free-Technology/uix/issues/167)) ([2d8144e](https://github.com/Lint-Free-Technology/uix/commit/2d8144e077b829f82f22d96a40ad5ef7f056f54d))
* Chore(docs’: Corrected 'Search spark' to 'Button spark' in docs
* refactor(button-spark): style matching Home Assistant icon button when using with icon only (#170)
* feat: apply ha-icon-button styles via uix-icon-button class on icon-only button spark
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/cf2088a0-28dd-4652-b014-e68854566679
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat: add color config for icon-only button spark, simplify docs wording
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/cc0c29ae-f6da-4d07-8dda-9c14375a2958
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* refactor: inject icon-button style into wrapper div instead of document.head
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/7bea182b-29cc-4162-a4d8-bd7768a2eeda
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Updates after testing
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* fix(forge sparks): centralize spark lifecycle guards - stops growing prepend/append in search spark (#172)
* fix(search-spark): prevent prepend/append accumulation on edit-mode toggle
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/c66050b1-b66a-48cf-9b95-5fd9f80fc265
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* refactor(sparks): centralize _cancel/_cancelPending/_callGeneration in UixForgeSparkBase
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/430cca81-448a-4d02-96f1-aa93a2614a38
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(release): 6.1.0-beta.7 [skip ci]
## [6.1.0-beta.7](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.6...v6.1.0-beta.7) (2026-04-04)
### 🐞 Bug Fixes
* **forge sparks:** centralize spark lifecycle guards - stops growing prepend/append in search spark ([#172](https://github.com/Lint-Free-Technology/uix/issues/172)) ([1fc2446](https://github.com/Lint-Free-Technology/uix/commit/1fc244692ac13bde38d3fbbe42a3f214676d7ee8))
### ⚙️ Miscellaneous
* **button-spark:** style matching Home Assistant icon button when using with icon only ([#170](https://github.com/Lint-Free-Technology/uix/issues/170)) ([ae5fdf0](https://github.com/Lint-Free-Technology/uix/commit/ae5fdf0e72770960d42397f9bb38ebadf2c3e2e1))
* fix(tooltip-spark): fix flickering of tooltip spark from constant recreation (#174)
* Initial plan
* fix: prevent tooltip spark flickering by avoiding unnecessary DOM moves on update
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/c9d50dd5-b126-49b7-b2ce-8042805babe4
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Correct tracking of tooltip
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(docs): Fix example typo
* chore(release): 6.1.0-beta.8 [skip ci]
## [6.1.0-beta.8](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.7...v6.1.0-beta.8) (2026-04-05)
### 🐞 Bug Fixes
* **tooltip-spark:** fix flickering of tooltip spark from constant recreation ([#174](https://github.com/Lint-Free-Technology/uix/issues/174)) ([f508bc7](https://github.com/Lint-Free-Technology/uix/commit/f508bc7e73a65ac9bdf2e138ba494cb0f34f20a8))
* chore(docs): Update examples and text for search spark
* chore(docs): Update to make foundries doc refer correctly to element
* chore(docs): Update forge index with all sparks
* fix(forge): Console errors when editing UIX Forge in UI editor
* fix(forge sparks): Template updates not applying to sparks after first update
* chore(release): 6.1.0-beta.9 [skip ci]
## [6.1.0-beta.9](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.8...v6.1.0-beta.9) (2026-04-05)
### 🐞 Bug Fixes
* **forge sparks:** Template updates not applying to sparks after first update ([1704219](https://github.com/Lint-Free-Technology/uix/commit/1704219cbbc5802d3f97c1702e1f0e657f1d42c0))
* **forge:** Console errors when editing UIX Forge in UI editor ([afebb46](https://github.com/Lint-Free-Technology/uix/commit/afebb467a24290694ddeb1ae58c706becd80c9f7))
* refactor(button-spark): Adjust icon button height and alignment
* chore(release): 6.1.0-beta.10 [skip ci]
## [6.1.0-beta.10](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.9...v6.1.0-beta.10) (2026-04-05)
### ⚙️ Miscellaneous
* **button-spark:** Adjust icon button height and alignment ([70a22b5](https://github.com/Lint-Free-Technology/uix/commit/70a22b539cebf8870fb6ecc57819ce2e82addcc1))
* fix(event-spark): event spark events causing all forged elements with event spark to refresh even if forge_id does not match
* chore(release): 6.1.0-beta.11 [skip ci]
## [6.1.0-beta.11](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.10...v6.1.0-beta.11) (2026-04-05)
### 🐞 Bug Fixes
* **event-spark:** event spark events causing all forged elements with event spark to refresh even if forge_id does not match ([54a3202](https://github.com/Lint-Free-Technology/uix/commit/54a3202cb93113715871bc822abc6c58f94bdac5))
* feat(macros): transitively resolve macro dependencies in buildMacros (#175)
* feat: recursively resolve macro dependencies in buildMacros
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/460eedf4-343d-4ffb-9465-951754544061
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* perf: cache macro keys and use index-based queue in buildMacros
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/460eedf4-343d-4ffb-9465-951754544061
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* docs: add composing macros example to templates.md
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/4730eedb-857c-45d2-8b0d-7079524eb05a
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* docs: use "main template" instead of "style template" in composing macros section
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/b5437958-dc9e-4be8-bc45-ede85ffea0b3
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(release): 6.1.0-beta.12 [skip ci]
## [6.1.0-beta.12](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.11...v6.1.0-beta.12) (2026-04-06)
### ⭐ New Features
* **macros:** transitively resolve macro dependencies in buildMacros ([#175](https://github.com/Lint-Free-Technology/uix/issues/175)) ([82c55f8](https://github.com/Lint-Free-Technology/uix/commit/82c55f888d5dba71f02e67d70923dd291cece40e))
* chore(docs): Update UIX Styling Index page
* chore(docs): Order concepts before debugging in UIX Styling
* feat(forge): map spark with memory mode (#177)
Closes: #176
* Initial plan
* feat: add map spark with memory mode for UIX Forge
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/5464fe9b-4d87-4653-88fe-643515ef4736
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* refactor: use beforeForgedElementRefresh rather than willUpdate
* Use reset: true on leaflet setView
* docs: add map spark documentation
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/7a3ac4f8-0341-421e-9af9-a0a9e3d0ede0
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* docs: fix map spark docs - reset triggered by forge template updates not hass state
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/8e30bd1c-4250-4fe6-a612-582a1a4cac6f
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(docs): Beta not for map spark
* chore(release): 6.1.0-beta.13 [skip ci]
## [6.1.0-beta.13](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.12...v6.1.0-beta.13) (2026-04-06)
### ⭐ New Features
* **forge:** map spark with memory mode ([#177](https://github.com/Lint-Free-Technology/uix/issues/177)) ([9b60a99](https://github.com/Lint-Free-Technology/uix/commit/9b60a997b98380d11a268482d8bc6722b3cdeb7c)), closes [#176](https://github.com/Lint-Free-Technology/uix/issues/176)
* chore(docs): Add mark spark to sparks list on forge index
* chore(docs): Correct map spark link on forge index
* fix(forge): Add `delayed_hass` forge config option to suppress console errors on load for some custom cards. e.g. apexcharts_card
* chore(refactor): Updated delayed_hass config option
* chore(release): 6.1.0-beta.14 [skip ci]
## [6.1.0-beta.14](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.13...v6.1.0-beta.14) (2026-04-06)
### 🐞 Bug Fixes
* **forge:** Add `delayed_hass` forge config option to suppress console errors on load for some custom cards. e.g. apexcharts_card ([8592c12](https://github.com/Lint-Free-Technology/uix/commit/8592c126d517f6db11426547bf9521d0bab5534d))
* chore(docs): section backgrounds example fix. FAQ grammar update
* chore(docs): Again fix section-background example
* feat(forge): add lock spark for UIX Forge (#178)
* Initial plan
* feat: add lock spark for UIX Forge
- Creates uix-spark-lock.ts implementing the lock spark
- Overlay div with ha-icon positioned absolutely over the 'for' target element
- Lock-matching algorithm (users/admins/except/active) selects first matching entry
- Dialogs via HA cardHelpers: showEnterCodeDialog (numpad/text), showConfirmationDialog, showAlertDialog
- Retry logic: retry_delay, max_retries, max_retries_delay
- unlock_action: element_tap/hold/double_tap or direct HA actions
- Web Animations API bounce animation on lock/unlock state change
- Re-lock timer after configurable duration
- Registers 'lock' in uix-spark-controller.ts
- Adds docs/source/forge/sparks/lock.md
- Updates docs/source/forge/sparks/index.md
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/322280c7-7b8c-42de-8222-2ef6aef30289
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix: address code review feedback on lock spark
- Use var(--uix-lock-border-radius, inherit) so CSS variable actually controls border-radius
- Add preventDefault() alongside stopPropagation() for click/mousedown/pointerdown (passive touchstart only stops propagation)
- Add comment explaining Material Design hex fallback colors
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/322280c7-7b8c-42de-8222-2ef6aef30289
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix: remove unnecessary 'as any' casts and clarify docs example
- Access forge.hass and forge.forgedElementConfig directly (consistent with
other sparks; UixForge members are public with hass typed as any)
- Clarify the 'same PIN for everyone' docs example to show both admin and
non-admin entries explicitly
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/322280c7-7b8c-42de-8222-2ef6aef30289
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix: correct admins: true semantics in lock spark
admins: true is an additive flag that extends the scope of an entry to
include admins alongside the default (all non-admins). It does NOT create
an admin-only entry.
- _findMatchingLock(): no-users-list entries now skip admins by default;
admins: true makes them match everyone (admin + non-admin)
- _shouldShowLock(): when no entry matches and permissive: false, admins
auto-bypass (no overlay shown); only non-admins are permanently blocked
- Update docs: matching table, admins key description, all examples
(same-PIN example simplified to one entry; replaced incorrect admin-only
examples with correct explanations and configs)
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/fc167760-c1bf-446c-a556-cc0bdc28d7e5
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Update docs to show lock spark link. Add comment about admins: true for basic examples
* Update entities example
* fix: make hold action work reliably on touch devices
Three related issues prevented hold from working:
1. actionHandlerBind was only called on overlay creation. If the config
changed (action: tap → hold), hasHold was never updated. Move the call
outside the creation block so it runs on every _attach() invocation.
HA's bind() safely updates options when the element is already bound.
2. Without touch-action: none the browser competes with the action-handler
on touch devices: it may initiate scrolling or a long-press callout and
fire pointercancel before the hold timer can complete. Adding
touch-action: none on the overlay relinquishes that control to HA.
3. On iOS / Android a long-press fires a native contextmenu event (~500ms)
which cancels the touch sequence, racing the action-handler's hold timer
(also ~500ms). Preventing contextmenu stops the browser's menu from
appearing and lets hold fire reliably.
Also add user-select / -webkit-user-select: none to suppress the text-
selection callout that can appear on Android during a hold gesture.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/13412198-f96c-4dc5-b521-50e3525925f8
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat: overlay opacity, blocked styling, row-specific vars, icon_position config
New CSS variables on the lock overlay:
- --uix-lock-opacity (default 0.5): overall overlay opacity
- --uix-lock-background-blocked: background for non-row permanently-blocked state
- --uix-lock-row-background / --uix-lock-row-border-radius: row-specific variants
of the existing background/border-radius vars
- --uix-lock-row-outlined-blocked: CSS outline applied on a row overlay when
the lock is in permanently-blocked state (no unlock path)
- --uix-lock-icon-position: CSS translate value for CSS-only icon positioning
New icon_position config key:
- Accepts {top, bottom, left, right} (numbers = px, strings = any CSS value)
- top/bottom are mutually exclusive; left/right are mutually exclusive
- Row-mold default: {top: 6px, left: 30px}
- Applied as position:relative + the given offsets on ha-icon
- --uix-lock-icon-position CSS var provides an independent CSS-only override
via the translate CSS property
New public mold getter on UixForge so sparks can query the mold type.
New _isBlocked() helper on the lock spark: true when no lock entry matches,
permissive is false, and the user is not an admin (overlay shown, no unlock).
Docs updated with all new config keys and CSS variables.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/97500559-debf-4f59-8a28-213f689ed1ef
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Clarify icon_position default
* fix: rename unlock_action to unlocked_action; fix hold by not blocking pointerdown
The HA action-handler singleton listens at document level. Calling
stopPropagation on pointerdown from the overlay's own listener was
preventing the event from ever reaching the document, so the hold
timer never started. The fix: only stop 'click' propagation (to block
parent card navigation) and 'contextmenu' (to block browser native
menu). The overlay's position (absolute, inset:0, pointer-events:all)
naturally captures pointer events without needing to stop propagation
on start events.
Also renames the config key unlock_action -> unlocked_action throughout
source and docs.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/d780e5cc-fca4-4881-a721-e296fbecf78b
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat: add --uix-lock-background-unlocked; remove redundant contextmenu listener
- Add --uix-lock-background-unlocked (default: none) for the overlay
unlocked state so --uix-lock-background only applies while locked.
Restructures _updateOverlay to check _isUnlocked first for background,
then applies row/blocked vars for locked state only. Border-radius and
outline handling is unchanged (row vs non-row distinction preserved).
- Remove the contextmenu listener from the overlay. HA's action-handler
already registers a contextmenu handler at the document level when the
element is bound via actionHandlerBind, making our listener redundant.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/4579497a-c85b-4cca-8405-32012d52417d
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat: fade lock icon when no icon_unlocked is configured
When icon_unlocked is not set in config, the lock icon fades to opacity 0
(via a 0.25s ease transition) instead of being replaced with an open-lock
icon. When icon_unlocked IS set, the icon swaps as before at full opacity.
Tracks _hasUnlockedIcon to distinguish between "not set" and the default
fallback value. Docs updated to reflect the new default behaviour.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/283a2296-87c6-476c-aa74-c23cdc07fd7b
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat: configurable fade duration for lock icon via --uix-lock-icon-fade-duration
When icon_unlocked is not set, the lock icon fades out using the duration
controlled by --uix-lock-icon-fade-duration (default 2s). When icon_unlocked
IS set, the icon-swap transition stays at the fast 0.25s.
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/153f12ac-bab1-4781-9a20-be279a13cb40
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* feat: add parseDuration helper and use it for all lock spark duration fields
- Add parse-duration npm dependency
- Create src/helpers/common/parse-duration.ts helper (similar to button-card)
- Update lock spark: duration, retry_delay, max_retries_delay all accept
human-readable strings like "5s", "1m", "30s" in addition to ms numbers
- Update docs to reflect new string|number type for duration fields
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/20534646-7082-46c8-a974-f3a16c9229f5
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix: don't change icon color when fading out lock icon (no unlocked icon set)
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/a2897ada-d2cb-499b-9853-8ca5797dfc31
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Update documentation and example animations
* Change locked icon to outline version
* Add styling example
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(docs): Lock spark beta note
* chore(release): 6.1.0-beta.15 [skip ci]
## [6.1.0-beta.15](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.14...v6.1.0-beta.15) (2026-04-07)
### ⭐ New Features
* **forge:** add lock spark for UIX Forge ([#178](https://github.com/Lint-Free-Technology/uix/issues/178)) ([24e2860](https://github.com/Lint-Free-Technology/uix/commit/24e28607505b1703e28ad9bc9128619010c483e9))
* chore(docs): Add admin info to Lock spark documentation
* fix(forge): allow and pass state_color through to forged element in row mold (#180)
* Initial plan
* Fix: Allow state_color config key in uix-forge and pass through to forged element
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/eeee7a91-0741-48c7-909a-47976dbef67a
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(release): 6.1.0-beta.16 [skip ci]
## [6.1.0-beta.16](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.15...v6.1.0-beta.16) (2026-04-07)
### 🐞 Bug Fixes
* **forge:** allow and pass state_color through to forged element in row mold ([#180](https://github.com/Lint-Free-Technology/uix/issues/180)) ([e78a87e](https://github.com/Lint-Free-Technology/uix/commit/e78a87e79e92fc88a00ad73b4b7d5267de76b19e))
* feat(lock-spark): Support confirmation object with title and text in lock spark (#182)
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/ab822f2a-0561-4e54-a9c3-390ca4856cab
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(release): 6.1.0-beta.17 [skip ci]
## [6.1.0-beta.17](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.16...v6.1.0-beta.17) (2026-04-07)
### ⭐ New Features
* **lock-spark:** Support confirmation object with title and text in lock spark ([#182](https://github.com/Lint-Free-Technology/uix/issues/182)) ([40b2551](https://github.com/Lint-Free-Technology/uix/commit/40b2551adf87732f5a1181e082b1bd1020974526))
* fix(lock-spark): Update icon display to inline-block so --uix-icon-position applies
* chore(docs): Update styling example for lock spark
* fix(lock-spark): prevent overlay continuous updates (#183)
* chore(docs): Update introduction and details about UIX
Clarified the introduction and added details about UIX components.
* fix(lock-spark): prevent overlay flashing on every hass state update
- Add `_visualNeedsUpdate` flag, set true on construction and config changes
- Guard `actionHandlerBind` + `_updateOverlay` with `if (isNew || _visualNeedsUpdate)` so they only run when the overlay is first created or the config changes, not on every hass update
- Move `window.getComputedStyle` positioning check inside the new-overlay block so it only runs once
- Fix `overlay.style.removeProperty("display")` → `setProperty("display", "flex")` in `_updateOverlay` to preserve the flex layout that centres the icon
- Merge dev branch so all current dev changes are included
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/1a49e456-bd3b-4697-a135-c2e9bca012e1
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
---------
Co-authored-by: Darryn Capes-Davis <dcapes-davis@outlook.com.au>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* fix(lock-spark): Set lock spark display to block by default and allow override by CSS
* chore(release): 6.1.0-beta.18 [skip ci]
## [6.1.0-beta.18](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.17...v6.1.0-beta.18) (2026-04-07)
### 🐞 Bug Fixes
* **lock-spark:** prevent overlay continuous updates ([#183](https://github.com/Lint-Free-Technology/uix/issues/183)) ([9073462](https://github.com/Lint-Free-Technology/uix/commit/907346251c5daf36bb610bc5ef9ff924db63448f))
* **lock-spark:** Set lock spark display to block by default and allow override by CSS ([3879182](https://github.com/Lint-Free-Technology/uix/commit/3879182a924924f9aca8d6c8705eff828903f375))
* **lock-spark:** Update icon display to inline-block so --uix-icon-position applies ([37e3175](https://github.com/Lint-Free-Technology/uix/commit/37e3175e6c64d698ebe5dc7e4bc6ed39c967dbf2))
* feat(forge): Resolve `!secret` references in foundry configs (#184)
* feat: resolve !secret references in foundry configs before sending to frontend
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/25b29d17-044b-475f-81cf-dec742b8412a
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* chore(docs): Include note in foundry docs on secret resolution
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* feat(lock-spark): add `code_dialog` config to lock spark for customising the PIN/passphrase dialog title, submit_text and cancel_text (#185)
* feat: add code_dialog config option to lock spark for customizing PIN/passphrase dialog
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/84a71924-9539-4a42-9acf-90ff4659ccdb
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Change confirm_text to submit_text to align with Home Assistant options. Update doco with note about expectations for code dialog.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(release): 6.1.0-beta.19 [skip ci]
## [6.1.0-beta.19](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.18...v6.1.0-beta.19) (2026-04-07)
### ⭐ New Features
* **forge:** Resolve `!secret` references in foundry configs ([#184](https://github.com/Lint-Free-Technology/uix/issues/184)) ([13cde4f](https://github.com/Lint-Free-Technology/uix/commit/13cde4f67a91bae718cc613d406e178c825d4998))
* **lock-spark:** add `code_dialog` config to lock spark for customising the PIN/passphrase dialog title, submit_text and cancel_text ([#185](https://github.com/Lint-Free-Technology/uix/issues/185)) ([53c4f90](https://github.com/Lint-Free-Technology/uix/commit/53c4f90c3cb3ffdc1cf367137419d47cb25ef612))
* fix(forge): Templates in uix in element config cause element not to show due to unfulfilled ready promise
* chore(release): 6.1.0-beta.20 [skip ci]
## [6.1.0-beta.20](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.19...v6.1.0-beta.20) (2026-04-07)
### 🐞 Bug Fixes
* **forge:** Templates in uix in element config cause element not to show due to unfulfilled ready promise ([12e4ac7](https://github.com/Lint-Free-Technology/uix/commit/12e4ac737deb6c6ca212a7c0962c4ea5e2be749e))
* feat(forge): merge forge.macros into uix.macros for forge and forgedElement (#187)
* feat: merge forge.macros into forgeConfig.uix.macros and forgedElementConfig.uix.macros
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/9139daff-ed46-4ac1-9eb5-5ab30797a131
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* refactor: deduplicate macro merge logic in forgedElementConfig getter
Agent-Logs-Url: https://github.com/Lint-Free-Technology/uix/sessions/9139daff-ed46-4ac1-9eb5-5ab30797a131
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
* Update documentation regarding macros, availability and usage across forge, forge UIX Styling and element UIX Styling
* chore(docs): Clarify sections template support
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
Co-authored-by: dcapslock <dcapes-davis@outlook.com.au>
* chore(release): 6.1.0-beta.21 [skip ci]
## [6.1.0-beta.21](https://github.com/Lint-Free-Technology/uix/compare/v6.1.0-beta.20...v6.1.0-beta.21) (2026-04-08)
### ⭐ New Features
* **forge:** merge forge.macros into uix.macros for forge and forgedElement ([#187](https://github.com/Lint-Free-Technology/uix/issues/187)) ([82c3d0e](https://github.com/Lint-Free-Technology/uix/commit/82c3d0ed62a410104a7b0c7ac08fafa52162ca93))
* chore(docs): Remove beta notes for 6.1.0 release
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: dcapslock <14122118+dcapslock@users.noreply.github.com>
## [6.1.0](v6.0.0...v6.1.0) (2026-04-08) ### ⭐ New Features * **forge:** Add Button Spark ([#168](#168)) ([51cfbe8](51cfbe8)), closes [#166](#166) * **forge:** add lock spark for UIX Forge ([#178](#178)) ([24e2860](24e2860)) * **forge:** add Search Spark for shadow DOM element mutation ([#136](#136)) ([3343b31](3343b31)) * **forge:** map spark with memory mode ([#177](#177)) ([9b60a99](9b60a99)), closes [#176](#176) * **forge:** merge forge.macros into uix.macros for forge and forgedElement ([#187](#187)) ([82c3d0e](82c3d0e)) * **forge:** Resolve `!secret` references in foundry configs ([#184](#184)) ([13cde4f](13cde4f)) * **forge:** support multiple sparks of the same type ([#152](#152)) ([b0b2b37](b0b2b37)) * **lock-spark:** add `code_dialog` config to lock spark for customising the PIN/passphrase dialog title, submit_text and cancel_text ([#185](#185)) ([53c4f90](53c4f90)) * **lock-spark:** Support confirmation object with title and text in lock spark ([#182](#182)) ([40b2551](40b2551)) * **macros:** transitively resolve macro dependencies in buildMacros ([#175](#175)) ([82c55f8](82c55f8)) * **sections:** Support styling section backgrounds by UIX config. ([#149](#149)) ([b6b1946](b6b1946)) ### 🐞 Bug Fixes * **event-spark:** event spark events causing all forged elements with event spark to refresh even if forge_id does not match ([54a3202](54a3202)) * **forge sparks:** centralize spark lifecycle guards - stops growing prepend/append in search spark ([#172](#172)) ([1fc2446](1fc2446)) * **forge sparks:** Template updates not applying to sparks after first update ([1704219](1704219)) * **forge:** Add `delayed_hass` forge config option to suppress console errors on load for some custom cards. e.g. apexcharts_card ([8592c12](8592c12)) * **forge:** allow and pass state_color through to forged element in row mold ([#180](#180)) ([e78a87e](e78a87e)) * **forge:** Console errors when editing UIX Forge in UI editor ([afebb46](afebb46)) * **forge:** Templates in uix in element config cause element not to show due to unfulfilled ready promise ([12e4ac7](12e4ac7)) * **lock-spark:** prevent overlay continuous updates ([#183](#183)) ([9073462](9073462)) * **lock-spark:** Set lock spark display to block by default and allow override by CSS ([3879182](3879182)) * **lock-spark:** Update icon display to inline-block so --uix-icon-position applies ([37e3175](37e3175)) * **toast:** Refactor for timing reliability ([1eb319f](1eb319f)) * **tooltip-spark:** fix flickering of tooltip spark from constant recreation ([#174](#174)) ([f508bc7](f508bc7)) ### 📦 Dependency Upgrades * bump @babel/preset-env from 7.23.6 to 7.29.2 ([#145](#145)) ([ecd93ae](ecd93ae)) * bump @rollup/plugin-babel from 6.0.4 to 7.0.0 ([#146](#146)) ([c8d690e](c8d690e)) * bump lit from 3.1.0 to 3.3.2 ([#161](#161)) ([97816ce](97816ce)) * bump rollup from 2.80.0 to 4.60.1 ([#143](#143)) ([2400e1b](2400e1b)) * bump rollup-plugin-typescript2 from 0.36.0 to 0.37.0 ([#144](#144)) ([7475217](7475217)) ### ⚙️ Miscellaneous * **button-spark:** add `icon` config for icon-only buttons ([#169](#169)) ([32b52b7](32b52b7)) * **button-spark:** Adjust icon button height and alignment ([70a22b5](70a22b5)) * **button-spark:** style matching Home Assistant icon button when using with icon only ([#170](#170)) ([ae5fdf0](ae5fdf0)) * **forge:** Provide action-handler scaffold for for UIX Forge Sparks ([#167](#167)) ([2d8144e](2d8144e)) * TypeScript 6 build errors and VSCode linting alignment ([#165](#165)) ([c68b011](c68b011))
|
🎉 This PR is included in version 6.2.0-beta.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.