@praxisjs/jsx 0.5.4 → 0.6.1

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
@@ -1,5 +1,67 @@
1
1
  # @praxisjs/jsx
2
2
 
3
+ ## 0.6.1
4
+
5
+ ### Patch Changes
6
+
7
+ - b36b1fd: Audit every attribute in `dom-types.ts` for `Reactive<T>` coverage. The runtime has always accepted a zero-argument function for any JSX attribute, but many attributes (all 30 previously-static `aria-*` attributes, `role`, global attributes like `slot`/`accessKey`/`popover`, and dozens of per-element attributes across `AnchorHTMLAttributes`, `InputHTMLAttributes`, `TableHTMLAttributes`, etc.) weren't typed as `Reactive<T>`, so passing a function for them was a type error even though it worked at runtime. This also fixes several same-attribute inconsistencies between interfaces (e.g. `href`/`target`/`value`/`max`/`src`/`width`/`height`/`dateTime` were reactive in some elements but not others). Attributes that are genuinely one-shot or static by browser spec (`autoFocus`, `autoPlay`, `defaultValue`, `defaultChecked`, `is`, `nonce`, `xmlns`) are intentionally left as-is.
8
+
9
+ ## 0.6.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 4060b4f: Expand DOM event coverage and HTML/SVG attribute types.
14
+
15
+ **`@praxisjs/runtime` — EVENT_MAP expanded from 24 to 82 entries.**
16
+
17
+ Bug fix: `onToggle`, `onClose`, and `onCancel` were declared in their respective JSX interfaces but absent from `EVENT_MAP`. The runtime was treating them as reactive getters instead of event listeners. They are now wired correctly.
18
+
19
+ New event categories added to `EVENT_MAP`:
20
+ - **Pointer** — `onPointerDown`, `onPointerUp`, `onPointerMove`, `onPointerEnter`, `onPointerLeave`, `onPointerOver`, `onPointerOut`, `onPointerCancel`, `onGotPointerCapture`, `onLostPointerCapture`
21
+ - **Mouse** — `onMouseOver`, `onMouseOut` (bubbling variants)
22
+ - **Drag** — `onDrag`, `onDragEnter`, `onDragLeave`
23
+ - **Form** — `onBeforeInput`, `onSelect`, `onInvalid`
24
+ - **Clipboard** — `onCopy`, `onCut`, `onPaste`
25
+ - **Composition (IME)** — `onCompositionStart`, `onCompositionUpdate`, `onCompositionEnd`
26
+ - **Resource** — `onLoad`, `onError`
27
+ - **Scroll** — `onScrollEnd`
28
+ - **Element-specific** — `onBeforeToggle`
29
+ - **Media** — `onAbort`, `onCanPlay`, `onCanPlayThrough`, `onDurationChange`, `onEmptied`, `onEnded`, `onLoadedData`, `onLoadedMetadata`, `onLoadStart`, `onPause`, `onPlay`, `onPlaying`, `onProgress`, `onRateChange`, `onSeeked`, `onSeeking`, `onStalled`, `onSuspend`, `onTimeUpdate`, `onVolumeChange`, `onWaiting`
30
+
31
+ **`@praxisjs/jsx` — type additions.**
32
+
33
+ `AriaAttributes`:
34
+ - `"aria-expanded"` — was missing entirely; it is one of the most commonly used ARIA attributes (accordions, disclosures, dropdowns)
35
+ - `"aria-autocomplete"` — for combobox/searchbox widgets
36
+ - `"aria-errormessage"` — references the element that provides the validation error message
37
+
38
+ `DOMAttributes<T>`: all new event categories above are now typed with their correct native event types (`PointerEvent`, `ClipboardEvent`, `CompositionEvent`, `ProgressEvent`, etc.) and `currentTarget` narrowed to `T`.
39
+
40
+ `HTMLAttributes<T>`:
41
+ - `autoFocus` — `autofocus` is a global HTML5 attribute, not only valid on form controls
42
+ - `inert` — `Reactive<boolean>`; blocks all user interaction and assistive technology programmatically
43
+ - `popover` — Popover API; accepts `boolean` (empty attribute, defaults to `"auto"`) or `"auto"` / `"manual"`
44
+ - `accessKey` — keyboard shortcut hint
45
+ - `nonce` — CSP nonce passthrough
46
+ - `part` — CSS `::part()` export list for shadow DOM styling
47
+ - `data-*` — template-literal index signature `[key: \`data-${string}\`]: Reactive<string | number | boolean> | undefined`; data attributes are now accepted without a cast on any JSX element
48
+
49
+ `MediaHTMLAttributes<T>`: all 21 standard media events typed and wired.
50
+
51
+ `DetailsHTMLAttributes` / `DialogHTMLAttributes`: `onBeforeToggle` added to both.
52
+
53
+ `InputHTMLAttributes`: `popovertarget` and `popovertargetaction` added (consistent with `ButtonHTMLAttributes`).
54
+
55
+ `SVGAttributes<T>`:
56
+ - `pointerEvents` — typed with all valid SVG `pointer-events` keyword values
57
+ - `vectorEffect`, `shapeRendering`, `textRendering`, `imageRendering`, `colorInterpolation`, `paintOrder` — rendering hints
58
+ - `cursor` — cursor override on SVG elements
59
+
60
+ ### Patch Changes
61
+
62
+ - Updated dependencies [4060b4f]
63
+ - @praxisjs/runtime@0.5.0
64
+
3
65
  ## 0.5.4
4
66
 
5
67
  ### Patch Changes
@@ -10,6 +10,95 @@ describe("Reactive<T>", () => {
10
10
  expectTypeOf().not.toMatchTypeOf();
11
11
  });
12
12
  });
13
+ describe("AriaAttributes", () => {
14
+ it("aria-valuenow accepts a reactive number (range widgets)", () => {
15
+ expectTypeOf().toMatchTypeOf();
16
+ expectTypeOf().toMatchTypeOf();
17
+ });
18
+ it("aria-valuetext accepts a reactive string (range widgets)", () => {
19
+ expectTypeOf().toMatchTypeOf();
20
+ expectTypeOf().toMatchTypeOf();
21
+ });
22
+ it("aria-valuemin / aria-valuemax accept a reactive number", () => {
23
+ expectTypeOf().toMatchTypeOf();
24
+ expectTypeOf().toMatchTypeOf();
25
+ });
26
+ it("aria-selected accepts a reactive boolean (baseline for comparison)", () => {
27
+ expectTypeOf().toMatchTypeOf();
28
+ });
29
+ it("aria-activedescendant accepts a reactive string", () => {
30
+ expectTypeOf().toMatchTypeOf();
31
+ });
32
+ it("aria-level / aria-posinset / aria-setsize accept a reactive number", () => {
33
+ expectTypeOf().toMatchTypeOf();
34
+ expectTypeOf().toMatchTypeOf();
35
+ expectTypeOf().toMatchTypeOf();
36
+ });
37
+ it("aria-rowindex / aria-colindex / aria-rowcount / aria-colcount accept a reactive number", () => {
38
+ expectTypeOf().toMatchTypeOf();
39
+ expectTypeOf().toMatchTypeOf();
40
+ expectTypeOf().toMatchTypeOf();
41
+ expectTypeOf().toMatchTypeOf();
42
+ });
43
+ it("aria-sort / aria-orientation / aria-autocomplete accept a reactive literal union", () => {
44
+ expectTypeOf().toMatchTypeOf();
45
+ expectTypeOf().toMatchTypeOf();
46
+ expectTypeOf().toMatchTypeOf();
47
+ });
48
+ it("aria-controls / aria-describedby / aria-labelledby / aria-owns accept a reactive string", () => {
49
+ expectTypeOf().toMatchTypeOf();
50
+ expectTypeOf().toMatchTypeOf();
51
+ expectTypeOf().toMatchTypeOf();
52
+ expectTypeOf().toMatchTypeOf();
53
+ });
54
+ });
55
+ describe("HTMLAttributes — global attribute reactivity", () => {
56
+ it("role accepts a reactive literal union", () => {
57
+ expectTypeOf().toMatchTypeOf();
58
+ });
59
+ it("slot / accessKey / part accept a reactive string", () => {
60
+ expectTypeOf().toMatchTypeOf();
61
+ expectTypeOf().toMatchTypeOf();
62
+ expectTypeOf().toMatchTypeOf();
63
+ });
64
+ it("popover accepts a reactive boolean or literal union", () => {
65
+ expectTypeOf().toMatchTypeOf();
66
+ });
67
+ it("autoFocus stays a plain boolean — one-shot mount semantics, not reactive", () => {
68
+ expectTypeOf().not.toMatchTypeOf();
69
+ });
70
+ });
71
+ describe("Cross-interface Reactive<T> consistency", () => {
72
+ it("href is reactive on <base> and <link>, matching <a>/<area>/SVG", () => {
73
+ expectTypeOf().toMatchTypeOf();
74
+ expectTypeOf().toMatchTypeOf();
75
+ });
76
+ it("target is reactive on <base> and <form>, matching <a>/<area>", () => {
77
+ expectTypeOf().toMatchTypeOf();
78
+ expectTypeOf().toMatchTypeOf();
79
+ });
80
+ it("value is reactive on <li>, matching every other value-bearing element", () => {
81
+ expectTypeOf().toMatchTypeOf();
82
+ });
83
+ it("max is reactive on <progress>, matching <input>/<meter>", () => {
84
+ expectTypeOf().toMatchTypeOf();
85
+ });
86
+ it("src is reactive on <script> and <track>, matching <img>/<iframe>/media", () => {
87
+ expectTypeOf().toMatchTypeOf();
88
+ expectTypeOf().toMatchTypeOf();
89
+ });
90
+ it("width is reactive on <table>, matching <img>/<iframe>/<video>/etc.", () => {
91
+ expectTypeOf().toMatchTypeOf();
92
+ });
93
+ it("height/width are reactive on <td>, matching every other sized element", () => {
94
+ expectTypeOf().toMatchTypeOf();
95
+ expectTypeOf().toMatchTypeOf();
96
+ });
97
+ it("dateTime is reactive on <del>, matching <time>", () => {
98
+ expectTypeOf().toMatchTypeOf();
99
+ expectTypeOf().toMatchTypeOf();
100
+ });
101
+ });
13
102
  describe("LiteralUnion-based string attributes", () => {
14
103
  it("ButtonType: literal values are assignable", () => {
15
104
  expectTypeOf().toMatchTypeOf();
@@ -1 +1 @@
1
- {"version":3,"file":"jsx-runtime.types.test.js","sourceRoot":"","sources":["../../src/__tests__/jsx-runtime.types.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx-runtime.types.test.js","sourceRoot":"","sources":["../../src/__tests__/jsx-runtime.types.test.ts"],"names":[],"mappings":"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"}