@furystack/shades 13.1.0 → 13.1.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,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [13.1.1] - 2026-03-19
4
+
5
+ ### ✨ Features
6
+
7
+ ### Spatial Navigation Service
8
+
9
+ - Added `SpatialNavigationService` with section-scoped arrow-key focus movement, cross-section memory, input passthrough, and configurable backspace/escape behaviors.
10
+
11
+ - Added optional `deps` parameter to `useDisposable()` for automatic resource recreation.
12
+
13
+ ### 💥 Breaking Changes
14
+
15
+ - `shadowDomName` renamed to `customElementName` for Shade APIs (see migration docs).
16
+
17
+ ### 🐛 Bug Fixes
18
+
19
+ - Memory leak fixes for `LocationService` and `ScreenService` observables due to missing disposals.
20
+
21
+ ### ⬆️ Dependencies
22
+
23
+ - Upgraded `vite` from ^7.3.1 to ^8.0.0 for improved build performance and new features
24
+ - Upgraded `vitest` from ^4.0.18 to ^4.1.0
25
+ - Upgraded `@vitest/coverage-istanbul` from ^4.0.18 to ^4.1.0
26
+ - Updated `@furystack/core` dependency to the new major version.
27
+
3
28
  ## [13.1.0] - 2026-03-10
4
29
 
5
30
  ### ✨ Features
@@ -1 +1 @@
1
- {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAWrE;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,IAE7C,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,OAAO,GAAG,gBAAgB,EAAE,UAAU,YAAY,SAYjF,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAIvF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,WAAW,EAAE,OAAO,OAAO,SAS3D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,MAAM,EAAE,IAAI,WAAW,EAAE,OAAO,MAAM,SAMzF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,MAAM,EAAE,IAAI,WAAW,EAAE,OAAO,MAAM,SAahF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,MAAM,EAAE,IAAI,OAAO,EAAE,OAAO,MAAM,SAiB/E,CAAA;AAED,KAAK,mBAAmB,CAAC,MAAM,IAAI;IACjC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,MAAM;IACb,GAAG,QAAQ,EAAE,YAAY;CAC1B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,MAAM,EACxD,GAAG,mCAAmC,mBAAmB,CAAC,MAAM,CAAC,yCAsBlE,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAA;AAElE,eAAO,MAAM,mBAAmB,GAAI,GAAG,uBAAuB,kBAAkB,qBAI/E,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,GAAG,kBAAkB,4DAoB/G,CAAA"}
1
+ {"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAWrE;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,OAAO,KAAG,IAE7C,CAAA;AAMD;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,IAAI,OAAO,GAAG,gBAAgB,EAAE,UAAU,YAAY,SAYjF,CAAA;AAED,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI;IAAE,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAIvF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,IAAI,WAAW,EAAE,OAAO,OAAO,SAS3D,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,MAAM,EAAE,IAAI,WAAW,EAAE,OAAO,MAAM,SAMzF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,MAAM,SAAS,MAAM,EAAE,IAAI,WAAW,EAAE,OAAO,MAAM,SAahF,CAAA;AAED;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,SAAS,MAAM,EAAE,IAAI,OAAO,EAAE,OAAO,MAAM,SAiB/E,CAAA;AAED,KAAK,mBAAmB,CAAC,MAAM,IAAI;IACjC,WAAW,EAAE,MAAM,GAAG,cAAc,CAAC,MAAM,CAAC;IAC5C,KAAK,EAAE,MAAM;IACb,GAAG,QAAQ,EAAE,YAAY;CAC1B,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,SAAS,MAAM,EACxD,GAAG,mCAAmC,mBAAmB,CAAC,MAAM,CAAC,yCAsBlE,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAA;AAElE,eAAO,MAAM,mBAAmB,GAAI,GAAG,uBAAuB,kBAAkB,qBAI/E,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,MAAM,SAAS,MAAM,EAAE,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,GAAG,kBAAkB,4DA6B/G,CAAA"}
@@ -140,6 +140,14 @@ export const createFragmentInner = (...[_props, ...children]) => {
140
140
  return fragment;
141
141
  };
142
142
  export const createComponent = (...args) => {
143
+ // Strip __self / __source dev-mode metadata that JSX transpilers (e.g. Vite 8+)
144
+ // inject into the props object. These are not real component props and would
145
+ // pollute shallow-equality checks, prop forwarding, and component rendering.
146
+ const rawProps = args[1];
147
+ if (rawProps && typeof rawProps === 'object' && ('__self' in rawProps || '__source' in rawProps)) {
148
+ const { __self, __source, ...cleanProps } = rawProps;
149
+ args[1] = cleanProps;
150
+ }
143
151
  // In render mode, produce VNode descriptors instead of real DOM elements
144
152
  if (renderMode) {
145
153
  const [type, props, ...children] = args;
@@ -1 +1 @@
1
- {"version":3,"file":"shade-component.js","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shade-component.js","sourceRoot":"","sources":["../src/shade-component.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@furystack/shades",
3
- "version": "13.1.0",
3
+ "version": "13.1.1",
4
4
  "description": "A lightweight UI framework for FuryStack with JSX support",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -40,15 +40,15 @@
40
40
  "homepage": "https://github.com/furystack/furystack",
41
41
  "devDependencies": {
42
42
  "@types/jsdom": "^28.0.0",
43
- "@types/node": "^25.3.5",
44
- "jsdom": "^28.1.0",
43
+ "@types/node": "^25.5.0",
44
+ "jsdom": "^29.0.0",
45
45
  "typescript": "^5.9.3",
46
- "vitest": "^4.0.18"
46
+ "vitest": "^4.1.0"
47
47
  },
48
48
  "dependencies": {
49
- "@furystack/inject": "^12.0.32",
50
- "@furystack/rest": "^8.1.1",
51
- "@furystack/utils": "^8.2.1",
49
+ "@furystack/inject": "^12.0.33",
50
+ "@furystack/rest": "^8.1.2",
51
+ "@furystack/utils": "^8.2.2",
52
52
  "path-to-regexp": "^8.3.0"
53
53
  },
54
54
  "engines": {
@@ -159,6 +159,15 @@ export const createFragmentInner = (...[_props, ...children]: CreateFragmentArgs
159
159
  }
160
160
 
161
161
  export const createComponent = <TProps extends object>(...args: CreateComponentArgs<TProps> | CreateFragmentArgs) => {
162
+ // Strip __self / __source dev-mode metadata that JSX transpilers (e.g. Vite 8+)
163
+ // inject into the props object. These are not real component props and would
164
+ // pollute shallow-equality checks, prop forwarding, and component rendering.
165
+ const rawProps = args[1]
166
+ if (rawProps && typeof rawProps === 'object' && ('__self' in rawProps || '__source' in rawProps)) {
167
+ const { __self, __source, ...cleanProps } = rawProps as Record<string, unknown>
168
+ args[1] = cleanProps as (typeof args)[1]
169
+ }
170
+
162
171
  // In render mode, produce VNode descriptors instead of real DOM elements
163
172
  if (renderMode) {
164
173
  const [type, props, ...children] = args