50a21b817d
chore: update readme
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-20 20:36:04 +02:00
e3fb0254c7
chore: update readme
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-20 20:35:10 +02:00
561294f72c
docs: fix build failing
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-20 20:31:27 +02:00
b26cb30b9b
chore: release v6.0.0
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
Release / Changelog (push) Waiting to run
Release / Publish to npm (push) Waiting to run
2026-07-20 20:26:43 +02:00
f290e049bd
feat: custom prop <> attr conversion
...
Override `toAttribute()` and `fromAttribute()` methods to
implement custom conversion between props and attributes
2026-07-20 20:18:06 +02:00
1b3e251a9d
feat!: reflect boolean props as bare attributes
...
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
Boolean props follow the HTML presence/absence semantics.
- We stick close to standard HTML behavior: flag="false" is treated as
true in most cases. Standard bare attributes disabled and required for
form fields are interpreted as true with non-existence as false.
- The use-cases for aria-*="false" and contenteditable="false" are also
supported by typing them in the JS class as string ("true" | "false").
This "true" | "false" opt-in is types-only. At runtime it's just a
string, and strings already serialize literally and are never removed —
so the enumerated/aria path needs no runtime code.
2026-07-20 19:57:23 +02:00
136343962d
chore: release v5.2.0
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
Release / Changelog (push) Has been cancelled
Release / Publish to npm (push) Has been cancelled
2026-07-19 23:33:09 +02:00
c7d87086a2
feat: smart diffing
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 23:32:19 +02:00
56cb1de7db
chore: update README.md
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:51:55 +02:00
93e4248359
chore: update readme
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:43:11 +02:00
be9c6b7cf4
chore: update readme
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:42:41 +02:00
fa8d1df36e
chore: pnpm allowBuilds
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:36:07 +02:00
27377746ef
chore: release v5.1.0
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
Release / Changelog (push) Has been cancelled
Release / Publish to npm (push) Has been cancelled
2026-07-19 21:33:54 +02:00
133881a127
feat: composing stylesheets
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:19:01 +02:00
2da6cd5afc
feat: new cem analyzer plugin (cem-plugin)
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:06:22 +02:00
861310c6bf
feat: typed props
...
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
- jsdocs / types change only to enforce giving shapt to `static props`
2026-07-19 18:27:52 +02:00
737ef54763
fix: boolean props w/ bare attr as true
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 18:14:13 +02:00
5635e6eb4a
chore: update readme
Tests / Unit (push) Has been cancelled
Tests / E2E (push) Has been cancelled
2026-07-11 15:54:01 +02:00
a83b4893ab
chore: update readme
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-11 15:53:04 +02:00
a2c232a3cb
chore: release v5.0.1
Tests / Unit (push) Has been cancelled
Tests / E2E (push) Has been cancelled
Release / Changelog (push) Has been cancelled
Release / Publish to npm (push) Has been cancelled
2026-07-05 19:34:15 +02:00
16b1bf00b4
ci: drop gh packages publish
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-05 19:33:16 +02:00
3a97b6356c
ci: fix gh publish
2026-07-05 19:33:16 +02:00
8d5ad928e8
ci: add gh package publish scope
2026-07-05 19:33:16 +02:00
231c62531b
ci: publish gh package w/o scope
2026-07-05 19:33:16 +02:00
e62d613203
chore: fix package repo
2026-07-05 19:33:16 +02:00
e0ec0fcb7c
ci: detect tagged release
2026-07-05 19:33:16 +02:00
b0e48e404d
ci: publishing
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-05 17:16:02 +02:00
f320e845bb
chore: nightly full e2e and size limit tests
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-05 16:33:10 +02:00
b5b7008abf
chore: allow esbuild build
Tests / Unit (happy-dom) (push) Waiting to run
Tests / E2E (Chromium + Firefox + WebKit) (push) Waiting to run
Tests / Size limit (push) Waiting to run
2026-07-05 16:25:23 +02:00
02ca084197
chore: update pnpm allowBuilds
Tests / Unit (happy-dom) (push) Waiting to run
Tests / E2E (Chromium + Firefox + WebKit) (push) Waiting to run
Tests / Size limit (push) Waiting to run
2026-07-05 16:18:35 +02:00
6af7598973
chore: add github test actions
Tests / Unit (happy-dom) (push) Waiting to run
Tests / E2E (Chromium + Firefox + WebKit) (push) Waiting to run
Tests / Size limit (push) Waiting to run
2026-07-05 16:10:35 +02:00
ef20daa140
chore: pre-commit test:all
2026-07-05 15:43:23 +02:00
ce30b114a2
chore: new demo workspace & e2e tests
...
- this adds a new demo web app with vite HMR for development
- all examples are covered with e2e tests
2026-07-05 15:40:53 +02:00
038674a74e
chore: update README note
2026-07-05 12:38:17 +02:00
891e63c335
chore: release v5.0.0
Release / release (push) Has been cancelled
2026-07-05 12:27:42 +02:00
34f7ff0ff5
chore: update release script
2026-07-05 12:25:36 +02:00
4cbd27269d
chore: fix package release script
2026-07-05 12:17:55 +02:00
bdd066929b
chore: add .nvmrc
2026-07-05 12:17:31 +02:00
5b70f90c8b
chore: add simple-git dev dep
2026-07-05 12:17:31 +02:00
e806d9604f
chore: add release workflow
2026-07-05 12:17:31 +02:00
f5703af9f4
chore: add release script
2026-07-05 12:01:58 +02:00
5503e57897
feat: buffer attribute changes until end of onInit
...
The assumption of everything starting at `onInit` breaks when browsers
triggers `attributeChanged` first after parsing HTML. This buffers all
property initialization after `onInit` logic for more predictable
behavior
2026-07-05 11:54:44 +02:00
61d0a5adf9
feat!: better distinction between props & attr
...
`onChanges` now introduces an `attribute` in its arguments and
repurposes the `property` to be used for this.props lookup
- `property` is now the camelCase key for `this.props`
- `attribute` is the kebab-case attribute name (i.e., what used to be
`property` before v5)
2026-07-05 11:43:56 +02:00
0e367fa2ec
fix: wrong attr behavior caused by empty strings
2026-07-05 11:25:05 +02:00
248ef14322
fix: no TypeErorr for default props; add strictProps
...
- Remove thrown error if type difference is found in defined props
- Introduce strictProps toggle for error behavior
- Extract size changes to its own log file
2026-07-05 11:11:36 +02:00
394e094693
fix: safer prop clone w/ define-time validation
...
- This implements clear errors & warnings when non-serializeable values are assigned to properties
- Adjusts the size limit budget to allow better messages
- Updates references to size limits
2026-07-05 10:49:16 +02:00
4ffb5f0674
fix: no attribute writes in constructor
2026-07-05 10:30:01 +02:00
ec2033fe26
test: cover current behavior
2026-07-05 09:37:08 +02:00
8af38226b4
chore: initialize agent instructions
2026-07-05 07:27:17 +02:00
cb7c9bcc02
chore: add priority note on readme
2026-07-05 07:17:26 +02:00