Commit graph

64 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
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
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
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
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
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
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
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
Ayo
d7651b5f33 feat: support objects in props 2023-12-07 17:30:53 +01:00
Ayo
6ae5961c4f feat(site): show link to FAQs issue 2023-12-02 09:39:37 +01:00
Ayo Ayco
73dd374a3e
feat: attach-effect (#2)
We are now able to attach "side effects" to property value changes, from inside the component and outside.
2023-12-01 08:42:10 +01:00
Ayo
9480f37844 chore: format 2023-11-26 04:19:19 +01:00
Ayo
6027f664b3 feat: preserve props type 2023-11-26 03:43:41 +01:00
Ayo
fa506c8c0f refactor: use Proxy of empty object 2023-11-23 22:15:25 +01:00
Ayo
15a3b1ce33 chore: clean up; update readme docs 2023-11-23 22:03:26 +01:00
Ayo
eeb0b1ef59 feat: allow string | Node | (string | Node)[] 2023-11-21 21:05:22 +01:00
Ayo
de673e2f12 feat: remove barrel file 2023-11-19 18:25:49 +01:00
Ayo
29c26be58c refactor: move initializeProp to constructor 2023-11-19 00:35:07 +01:00
Ayo
2c285a60bb refactor: remove constructor; move initializeProps to connectedCallback 2023-11-19 00:12:30 +01:00
Ayo
a3845b7e7c refactor: prevent attribute changing twice 2023-11-18 23:38:06 +01:00
Ayo
d54ff6fa94 fix: illegal invocation 2023-11-18 23:30:56 +01:00
Ayo
341424187b refactor: only pass setter to handler; initializeProps on attribute changes 2023-11-18 23:28:10 +01:00