Commit graph

81 commits

Author SHA1 Message Date
Ayo
c7d87086a2 feat: smart diffing
Some checks are pending
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 23:32:19 +02:00
Ayo
133881a127 feat: composing stylesheets
Some checks are pending
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:19:01 +02:00
Ayo
2da6cd5afc feat: new cem analyzer plugin (cem-plugin)
Some checks are pending
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 21:06:22 +02:00
Ayo
861310c6bf feat: typed props
Some checks are pending
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
Ayo
737ef54763 fix: boolean props w/ bare attr as true
Some checks are pending
Tests / Unit (push) Waiting to run
Tests / E2E (push) Waiting to run
2026-07-19 18:14:13 +02:00
Ayo
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
Ayo
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
Ayo
0e367fa2ec fix: wrong attr behavior caused by empty strings 2026-07-05 11:25:05 +02:00
Ayo
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
Ayo
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
Ayo
4ffb5f0674 fix: no attribute writes in constructor 2026-07-05 10:30:01 +02:00
Ayo
4b274e1e99 refactor: link jsdocs to webcomponent.io docs 2026-05-08 19:20:36 +02:00
Ayo
005bd2e8ae feat: update error message on using styles outside shadow roots 2026-05-08 14:37:43 +02:00
Ayo
64d0451d72 chore: fix lint issues 2026-03-11 22:38:23 +01:00
20c716d78d feat: show error when has styles & not using shadow roots 2025-03-30 12:46:43 +02:00
822c4d3984 feat: support constructable stylesheets 2025-03-30 12:00:45 +02:00
8a63ed56f5 feat: remove support for static properties
- focus usage on static props Blueprint for Proxy
2025-03-22 11:20:32 +01:00
a35e1901f0 test: organize test files 2025-03-22 10:14:35 +01:00
3056e84d4c test: set up vitest & add tests 2025-03-22 10:11:48 +01:00
77a2c63c19 feat: remove proxy get handler for type restoration 2025-03-21 22:09:46 +01:00
9ead44babe feat: remove attach-effect 2025-03-09 00:34:10 +01:00
833e835f65 chore: format code 2024-12-19 22:43:12 +01:00
8c46683527 chore: format code 2024-12-19 22:18:52 +01:00
4f6f441b3b test: add vitest & initial tests 2024-11-10 21:31:48 +01:00
8723290d90
chore: udpate dev deps; initial migration to eslint flat config (#46)
* chore: update dev deps

* chore: pnpm update dev deps

* chore: update deps; initial migrate to eslint flat config

* chore: remove 'beta' from readme

* 2.1.0
2024-07-27 22:09:06 +02:00
Ayo Ayco
e78030ab13
feat: use shadow dom host (#41) 2023-12-27 00:13:21 +01:00
Ayo Ayco
29fa864ca2
feat: use shadow mode (#39) 2023-12-26 23:48:54 +01:00
Ayo Ayco
879032aa1e
chore: set up eslint & husky (#38) 2023-12-23 22:40:45 +01:00
Ayo Ayco
64fd600435
chore: publish dist from root dir (#32) 2023-12-18 23:12:18 +01:00
Ayo Ayco
aee0ec74aa
feat: scoped styles (#31) 2023-12-18 16:57:36 +01:00
Ayo
9268676797 fix: static props makes state shared across class instances
- uses structuredClone on static props
- closes #28
2023-12-16 09:03:01 +01:00
Ayo Ayco
5720901d25
chore: update license info (#21) 2023-12-12 22:06:12 +01:00
Ayo Ayco
488743e011
chore: format code with prettier (#14) 2023-12-10 10:58:46 +01:00
Ayo
ec50f0f86e refactor(templating): attributes handling & JSX
- support unparented DOM nodes
- simpler attributes handling
- jsx-like syntax
- use .mjs for utils
2023-12-09 22:35:58 +01:00
Ayo
538aa01ecd feat(templating): support adding aria- attributes 2023-12-09 09:54:35 +01:00
Ayo
669fee1d49 feat(templating): only assign standard DOM props 2023-12-09 02:05:32 +01:00
Ayo
6844ffe9f2 feat(templating): support more standard attrs
- data- <-> dataset.
- for <-> htmlFor
- class <-> className
2023-12-09 01:57:13 +01:00
Ayo
27a5fb3024 feat(templating): support for non on-event props
- use class or className
- only on-event props are tolowercase'd
2023-12-09 00:48:56 +01:00
Ayo
b4f3b98ee4 feat: use standard event prop behavior
- call .toLowerCase() on attribute props
2023-12-09 00:15:39 +01:00
Ayo
7bf37d75db feat: use standard event handler props 2023-12-09 00:11:32 +01:00
Ayo
26129a5934 feat: helpful TypeError message 2023-12-08 23:36:01 +01:00
Ayo
07bb2d850a feat: simpler TypeError; use proxy default err 2023-12-08 23:14:03 +01:00
Ayo
bea93f69f7 feat: improve error report for type mismatch 2023-12-08 22:40:03 +01:00
Ayo
98c89624f9 feat: throw TypeError when setting different type 2023-12-08 22:34:25 +01:00
Ayo
85284e9e42 fix: wrong previous dom used in diffing 2023-12-08 22:13:34 +01:00
Ayo Ayco
3c1b3b0893
feat: templating (#9) 2023-12-08 21:31:05 +01:00
Ayo Ayco
00648883fa
feat: props blueprint (#8) 2023-12-08 18:00:40 +01:00
Ayo
f56068e76e chore: export all utils 2023-12-08 15:05:27 +01:00
Ayo
b613d8e77c refactor: use index exports 2023-12-08 14:45:12 +01:00
Ayo Ayco
703ef9e45d
feat: initial utils distribution (#7) 2023-12-08 13:15:00 +01:00