@vanelsas/baredom 3.10.0 → 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,39 @@
2
2
 
3
3
  All notable changes to BareDOM will be documented in this file.
4
4
 
5
+ ## [3.11.0] - 2026-08-28
6
+
7
+ ### Fixed
8
+
9
+ - **Event detail keys are published as the component dispatches them.** `x-particle-button`
10
+ dispatches `#js {:press-x … :press-y …}`, so those are the keys on the event, but the generated
11
+ types camel-cased them and promised `pressX` and `pressY`. Every typed caller read a field that
12
+ is not there. The `.d.ts`, `custom-elements.json` and all five adapters now say `"press-x"`,
13
+ quoted because a hyphenated key is not a bare identifier in a TypeScript type.
14
+
15
+ This supersedes the detail half of the 3.3.0 fix "TypeScript declarations", which corrected the
16
+ same invalid identifiers by renaming them. That made the types compile and made them wrong.
17
+ Property names are unaffected and still camel-case, because a property reflects an attribute and
18
+ genuinely changes spelling.
19
+
20
+ Breaking for anyone writing `e.detail.pressX` — which never resolved to anything. Only
21
+ `x-particle-button` is affected; no other component has a kebab-case detail key. Every adapter
22
+ published the wrong key, so all five are released with it: `-react` 2.4.1, `-angular` 2.10.1,
23
+ `-vue` 0.4.2, `-svelte` 0.4.2, `-solid` 0.4.1.
24
+
25
+ ### Added
26
+
27
+ - **`detail` on every event in `custom-elements.json`** — what an event carries, as data, beside
28
+ the TypeScript in `type.text`. A reader no longer parses a type expression to learn the shape.
29
+ Both come from one function, so they cannot disagree.
30
+
31
+ ### Changed
32
+
33
+ - **`scripts/check_event_api.bb` also compares the manifest with the model.** It read the model on
34
+ both sides, so anything the generator did between them was invisible — which is how the
35
+ camel-casing above survived it. It now compares names and types over the union of both sides, so
36
+ a schema edited without regenerating is caught too.
37
+
5
38
  ## [3.10.0] - 2026-08-28
6
39
 
7
40
  ### Changed