@furystack/shades 11.1.0 → 12.0.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.
Files changed (166) hide show
  1. package/CHANGELOG.md +291 -0
  2. package/README.md +13 -13
  3. package/esm/component-factory.spec.js +13 -5
  4. package/esm/component-factory.spec.js.map +1 -1
  5. package/esm/components/index.d.ts +4 -1
  6. package/esm/components/index.d.ts.map +1 -1
  7. package/esm/components/index.js +4 -1
  8. package/esm/components/index.js.map +1 -1
  9. package/esm/components/lazy-load.d.ts +2 -4
  10. package/esm/components/lazy-load.d.ts.map +1 -1
  11. package/esm/components/lazy-load.js +40 -24
  12. package/esm/components/lazy-load.js.map +1 -1
  13. package/esm/components/lazy-load.spec.js +57 -50
  14. package/esm/components/lazy-load.spec.js.map +1 -1
  15. package/esm/components/link-to-route.d.ts +2 -0
  16. package/esm/components/link-to-route.d.ts.map +1 -1
  17. package/esm/components/link-to-route.js +3 -2
  18. package/esm/components/link-to-route.js.map +1 -1
  19. package/esm/components/link-to-route.spec.js +13 -9
  20. package/esm/components/link-to-route.spec.js.map +1 -1
  21. package/esm/components/nested-route-link.d.ts +62 -0
  22. package/esm/components/nested-route-link.d.ts.map +1 -0
  23. package/esm/components/nested-route-link.js +66 -0
  24. package/esm/components/nested-route-link.js.map +1 -0
  25. package/esm/components/nested-route-link.spec.d.ts +2 -0
  26. package/esm/components/nested-route-link.spec.d.ts.map +1 -0
  27. package/esm/components/nested-route-link.spec.js +179 -0
  28. package/esm/components/nested-route-link.spec.js.map +1 -0
  29. package/esm/components/nested-route-types.d.ts +37 -0
  30. package/esm/components/nested-route-types.d.ts.map +1 -0
  31. package/esm/components/nested-route-types.js +2 -0
  32. package/esm/components/nested-route-types.js.map +1 -0
  33. package/esm/components/nested-router.d.ts +103 -0
  34. package/esm/components/nested-router.d.ts.map +1 -0
  35. package/esm/components/nested-router.js +178 -0
  36. package/esm/components/nested-router.js.map +1 -0
  37. package/esm/components/nested-router.spec.d.ts +2 -0
  38. package/esm/components/nested-router.spec.d.ts.map +1 -0
  39. package/esm/components/nested-router.spec.js +659 -0
  40. package/esm/components/nested-router.spec.js.map +1 -0
  41. package/esm/components/route-link.d.ts +4 -0
  42. package/esm/components/route-link.d.ts.map +1 -1
  43. package/esm/components/route-link.js +5 -5
  44. package/esm/components/route-link.js.map +1 -1
  45. package/esm/components/route-link.spec.js +16 -12
  46. package/esm/components/route-link.spec.js.map +1 -1
  47. package/esm/components/router.d.ts +20 -2
  48. package/esm/components/router.d.ts.map +1 -1
  49. package/esm/components/router.js +3 -0
  50. package/esm/components/router.js.map +1 -1
  51. package/esm/components/router.spec.js +75 -74
  52. package/esm/components/router.spec.js.map +1 -1
  53. package/esm/initialize.d.ts +11 -0
  54. package/esm/initialize.d.ts.map +1 -1
  55. package/esm/initialize.js +5 -0
  56. package/esm/initialize.js.map +1 -1
  57. package/esm/jsx.d.ts +83 -2
  58. package/esm/jsx.d.ts.map +1 -1
  59. package/esm/models/children-list.d.ts +5 -1
  60. package/esm/models/children-list.d.ts.map +1 -1
  61. package/esm/models/partial-element.d.ts +12 -2
  62. package/esm/models/partial-element.d.ts.map +1 -1
  63. package/esm/models/render-options.d.ts +89 -3
  64. package/esm/models/render-options.d.ts.map +1 -1
  65. package/esm/models/selection-state.d.ts +4 -0
  66. package/esm/models/selection-state.d.ts.map +1 -1
  67. package/esm/services/location-service.d.ts +11 -0
  68. package/esm/services/location-service.d.ts.map +1 -1
  69. package/esm/services/location-service.js +11 -0
  70. package/esm/services/location-service.js.map +1 -1
  71. package/esm/services/resource-manager.d.ts +24 -0
  72. package/esm/services/resource-manager.d.ts.map +1 -1
  73. package/esm/services/resource-manager.js +30 -0
  74. package/esm/services/resource-manager.js.map +1 -1
  75. package/esm/services/resource-manager.spec.js +93 -0
  76. package/esm/services/resource-manager.spec.js.map +1 -1
  77. package/esm/services/screen-service.d.ts +81 -4
  78. package/esm/services/screen-service.d.ts.map +1 -1
  79. package/esm/services/screen-service.js +75 -4
  80. package/esm/services/screen-service.js.map +1 -1
  81. package/esm/services/screen-service.spec.js +91 -7
  82. package/esm/services/screen-service.spec.js.map +1 -1
  83. package/esm/shade-component.d.ts +17 -4
  84. package/esm/shade-component.d.ts.map +1 -1
  85. package/esm/shade-component.js +67 -5
  86. package/esm/shade-component.js.map +1 -1
  87. package/esm/shade-host-props-ref.integration.spec.d.ts +2 -0
  88. package/esm/shade-host-props-ref.integration.spec.d.ts.map +1 -0
  89. package/esm/shade-host-props-ref.integration.spec.js +381 -0
  90. package/esm/shade-host-props-ref.integration.spec.js.map +1 -0
  91. package/esm/shade-resources.integration.spec.js +208 -39
  92. package/esm/shade-resources.integration.spec.js.map +1 -1
  93. package/esm/shade.d.ts +20 -17
  94. package/esm/shade.d.ts.map +1 -1
  95. package/esm/shade.js +172 -33
  96. package/esm/shade.js.map +1 -1
  97. package/esm/shade.spec.js +31 -30
  98. package/esm/shade.spec.js.map +1 -1
  99. package/esm/shades.integration.spec.js +135 -72
  100. package/esm/shades.integration.spec.js.map +1 -1
  101. package/esm/style-manager.d.ts +2 -2
  102. package/esm/style-manager.js +2 -2
  103. package/esm/svg-types.d.ts +389 -0
  104. package/esm/svg-types.d.ts.map +1 -0
  105. package/esm/svg-types.js +9 -0
  106. package/esm/svg-types.js.map +1 -0
  107. package/esm/svg.d.ts +15 -0
  108. package/esm/svg.d.ts.map +1 -0
  109. package/esm/svg.js +76 -0
  110. package/esm/svg.js.map +1 -0
  111. package/esm/svg.spec.d.ts +2 -0
  112. package/esm/svg.spec.d.ts.map +1 -0
  113. package/esm/svg.spec.js +80 -0
  114. package/esm/svg.spec.js.map +1 -0
  115. package/esm/vnode.d.ts +103 -0
  116. package/esm/vnode.d.ts.map +1 -0
  117. package/esm/vnode.integration.spec.d.ts +2 -0
  118. package/esm/vnode.integration.spec.d.ts.map +1 -0
  119. package/esm/vnode.integration.spec.js +494 -0
  120. package/esm/vnode.integration.spec.js.map +1 -0
  121. package/esm/vnode.js +453 -0
  122. package/esm/vnode.js.map +1 -0
  123. package/esm/vnode.spec.d.ts +2 -0
  124. package/esm/vnode.spec.d.ts.map +1 -0
  125. package/esm/vnode.spec.js +473 -0
  126. package/esm/vnode.spec.js.map +1 -0
  127. package/package.json +3 -3
  128. package/src/component-factory.spec.tsx +18 -5
  129. package/src/components/index.ts +4 -1
  130. package/src/components/lazy-load.spec.tsx +82 -75
  131. package/src/components/lazy-load.tsx +49 -27
  132. package/src/components/link-to-route.spec.tsx +25 -21
  133. package/src/components/link-to-route.tsx +4 -2
  134. package/src/components/nested-route-link.spec.tsx +303 -0
  135. package/src/components/nested-route-link.tsx +100 -0
  136. package/src/components/nested-route-types.ts +42 -0
  137. package/src/components/nested-router.spec.tsx +817 -0
  138. package/src/components/nested-router.tsx +256 -0
  139. package/src/components/route-link.spec.tsx +22 -18
  140. package/src/components/route-link.tsx +6 -5
  141. package/src/components/router.spec.tsx +109 -108
  142. package/src/components/router.tsx +15 -2
  143. package/src/initialize.ts +12 -0
  144. package/src/jsx.ts +129 -2
  145. package/src/models/children-list.ts +7 -1
  146. package/src/models/partial-element.ts +13 -2
  147. package/src/models/render-options.ts +90 -3
  148. package/src/models/selection-state.ts +4 -0
  149. package/src/services/location-service.tsx +11 -0
  150. package/src/services/resource-manager.spec.ts +116 -0
  151. package/src/services/resource-manager.ts +30 -0
  152. package/src/services/screen-service.spec.ts +109 -7
  153. package/src/services/screen-service.ts +81 -4
  154. package/src/shade-component.ts +72 -6
  155. package/src/shade-host-props-ref.integration.spec.tsx +460 -0
  156. package/src/shade-resources.integration.spec.tsx +276 -52
  157. package/src/shade.spec.tsx +40 -39
  158. package/src/shade.ts +186 -58
  159. package/src/shades.integration.spec.tsx +154 -80
  160. package/src/style-manager.ts +2 -2
  161. package/src/svg-types.ts +437 -0
  162. package/src/svg.spec.ts +89 -0
  163. package/src/svg.ts +78 -0
  164. package/src/vnode.integration.spec.tsx +657 -0
  165. package/src/vnode.spec.ts +579 -0
  166. package/src/vnode.ts +508 -0
package/esm/jsx.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../src/jsx.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,6 @@
1
- export type ChildrenList = Array<string | HTMLElement | JSX.Element | string[] | HTMLElement[] | JSX.Element[]>;
1
+ /**
2
+ * The type for children passed to Shade components and intrinsic JSX elements.
3
+ * Supports strings, HTML/SVG elements, JSX elements, and nested arrays of these.
4
+ */
5
+ export type ChildrenList = Array<string | HTMLElement | SVGElement | JSX.Element | string[] | HTMLElement[] | SVGElement[] | JSX.Element[]>;
2
6
  //# sourceMappingURL=children-list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"children-list.d.ts","sourceRoot":"","sources":["../../src/models/children-list.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,WAAW,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,CAAA"}
1
+ {"version":3,"file":"children-list.d.ts","sourceRoot":"","sources":["../../src/models/children-list.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,KAAK,CAC9B,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,GAAG,CAAC,OAAO,GAAG,MAAM,EAAE,GAAG,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,GAAG,CAAC,OAAO,EAAE,CAC1G,CAAA"}
@@ -1,6 +1,16 @@
1
- export type PartialElement<T> = T extends {
1
+ import type { RefObject } from './render-options.js';
2
+ /**
3
+ * Makes all properties of an HTML element type optional, with `style` narrowed
4
+ * to `Partial<CSSStyleDeclaration>` and a `ref` prop for capturing DOM references.
5
+ * Used as the props type for intrinsic JSX elements and component host element overrides.
6
+ * @typeParam T - The base HTML element type
7
+ */
8
+ export type PartialElement<T> = (T extends {
2
9
  style?: CSSStyleDeclaration;
3
10
  } ? Omit<Partial<T>, 'style'> & {
4
11
  style?: Partial<CSSStyleDeclaration>;
5
- } : Partial<T>;
12
+ } : Partial<T>) & {
13
+ /** Ref object to capture a reference to the underlying DOM element. */
14
+ ref?: RefObject<Element>;
15
+ };
6
16
  //# sourceMappingURL=partial-element.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"partial-element.d.ts","sourceRoot":"","sources":["../../src/models/partial-element.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAAE,GACrE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACrC,GACD,OAAO,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"partial-element.d.ts","sourceRoot":"","sources":["../../src/models/partial-element.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS;IAAE,KAAK,CAAC,EAAE,mBAAmB,CAAA;CAAE,GACtE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAA;CACrC,GACD,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG;IAChB,uEAAuE;IACvE,GAAG,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;CACzB,CAAA"}
@@ -2,12 +2,80 @@ import type { Injector } from '@furystack/inject';
2
2
  import type { ObservableValue, ValueObserverOptions } from '@furystack/utils';
3
3
  import type { ChildrenList } from './children-list.js';
4
4
  import type { PartialElement } from './partial-element.js';
5
+ /**
6
+ * A reference object returned by `useRef`.
7
+ * `current` is set to the DOM element when it is mounted, and `null` when unmounted.
8
+ * The `readonly` modifier ensures covariance so that `RefObject<HTMLInputElement>`
9
+ * is assignable to `RefObject<Element>`.
10
+ */
11
+ export type RefObject<T extends Element = HTMLElement> = {
12
+ readonly current: T | null;
13
+ };
14
+ /**
15
+ * Options provided to a Shade component's `render` function.
16
+ * Contains the current props, injector, children, and hooks for managing state, side effects, and host element attributes.
17
+ * @typeParam TProps - The component's props type
18
+ * @typeParam TElementBase - The base HTML element type (defaults to HTMLElement)
19
+ */
5
20
  export type RenderOptions<TProps, TElementBase extends HTMLElement = HTMLElement> = {
6
21
  readonly props: TProps & PartialElement<TElementBase>;
7
22
  renderCount: number;
8
23
  injector: Injector;
9
24
  children?: ChildrenList;
10
- element: JSX.Element<TProps>;
25
+ /**
26
+ * Declaratively sets attributes and styles on the host custom element.
27
+ * Can be called multiple times per render; each call merges into the previous values.
28
+ *
29
+ * CSS custom properties (e.g. `--my-color`) are applied via `setProperty`.
30
+ * The `style` property accepts both standard camelCase properties and CSS custom properties.
31
+ *
32
+ * **Best practice:** Use `useHostProps` for data attributes, ARIA attributes, CSS variables,
33
+ * and event handlers on the host element instead of imperative DOM manipulation.
34
+ *
35
+ * @param hostProps An object of attribute key-value pairs, optionally including a `style` record
36
+ *
37
+ * **Note:** Object and function values are assigned as properties on the host element
38
+ * (not as attributes). This means you can set event handlers (e.g. `onclick`) and
39
+ * even class properties like `injector` via `useHostProps`.
40
+ *
41
+ * @example
42
+ * ```typescript
43
+ * useHostProps({
44
+ * 'data-variant': props.variant,
45
+ * role: 'progressbar',
46
+ * 'aria-valuenow': String(value),
47
+ * style: {
48
+ * '--btn-color-main': colors.main,
49
+ * display: 'flex',
50
+ * },
51
+ * })
52
+ * ```
53
+ */
54
+ useHostProps: (hostProps: Record<string, unknown> & {
55
+ style?: Record<string, string>;
56
+ }) => void;
57
+ /**
58
+ * Creates a mutable ref object that can be attached to intrinsic JSX elements via the `ref` prop.
59
+ * The ref's `current` property will be set to the DOM element after mount and `null` on unmount.
60
+ *
61
+ * Refs are cached by key, so calling `useRef` with the same key returns the same object across renders.
62
+ *
63
+ * **Best practice:** Prefer declarative JSX and `useHostProps` when possible.
64
+ * Use refs sparingly for imperative needs like focus management or measuring elements.
65
+ *
66
+ * @param key A unique key for caching the ref object
67
+ * @returns A ref object with a `current` property
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const inputRef = useRef<HTMLInputElement>('input')
72
+ * // In JSX:
73
+ * <input ref={inputRef} />
74
+ * // Later:
75
+ * inputRef.current?.focus()
76
+ * ```
77
+ */
78
+ useRef: <T extends Element = HTMLElement>(key: string) => RefObject<T>;
11
79
  /**
12
80
  * Creates and disposes a resource after the component has been detached from the DOM
13
81
  * @param key The key for caching the disposable resource
@@ -16,11 +84,29 @@ export type RenderOptions<TProps, TElementBase extends HTMLElement = HTMLElement
16
84
  */
17
85
  useDisposable: <T extends Disposable | AsyncDisposable>(key: string, factory: () => T) => T;
18
86
  /**
19
- * Creates a state object from an existing observable value
87
+ * Creates a state object from an existing observable value.
88
+ *
89
+ * **Important:** By default, this will trigger a full component re-render when the observable value changes.
90
+ * To prevent re-renders (e.g., for manual DOM updates or animations), provide a custom `onChange` callback.
91
+ *
20
92
  * @param key The key for caching the observable value
21
93
  * @param observable The observable value to observe
22
- * @param options Optional options for the observer including onChange callback
94
+ * @param options Optional options for the observer
95
+ * @param options.onChange Custom callback when value changes. If not provided, the component will re-render on each change.
23
96
  * @returns tuple with the current value and a setter function
97
+ *
98
+ * @example
99
+ * // Default behavior: re-renders component on change
100
+ * const [count] = useObservable('count', countObservable)
101
+ *
102
+ * @example
103
+ * // Custom onChange: no re-render, update host element via useHostProps
104
+ * useHostProps({ 'data-active': count > 0 ? '' : undefined })
105
+ * const [count] = useObservable('count', countObservable, {
106
+ * onChange: () => {
107
+ * // Triggers a re-render so useHostProps above picks up the new value
108
+ * }
109
+ * })
24
110
  */
25
111
  useObservable: <T>(key: string, observable: ObservableValue<T>, options?: ValueObserverOptions<T> & {
26
112
  onChange?: (newValue: T) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/models/render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,SAAS,WAAW,GAAG,WAAW,IAAI;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IAC5B;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAE3F;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAA;KAAE,KACrE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAE1F;;;;;OAKG;IACH,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhG;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;CACjD,CAAA"}
1
+ {"version":3,"file":"render-options.d.ts","sourceRoot":"","sources":["../../src/models/render-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D;;;;;GAKG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,IAAI;IACvD,QAAQ,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,MAAM,EAAE,YAAY,SAAS,WAAW,GAAG,WAAW,IAAI;IAClF,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,YAAY,CAAC,CAAA;IACrD,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,QAAQ,CAAA;IAClB,QAAQ,CAAC,EAAE,YAAY,CAAA;IACvB;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,KAAK,IAAI,CAAA;IAE/F;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAAA;IAEtE;;;;;OAKG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;IAE3F;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,aAAa,EAAE,CAAC,CAAC,EACf,GAAG,EAAE,MAAM,EACX,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,EAC9B,OAAO,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAA;KAAE,KACrE,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhD;;;;;OAKG;IACH,QAAQ,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAE1F;;;;;OAKG;IACH,cAAc,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;IAEhG;;;;;;OAMG;IACH,cAAc,EAAE,CAAC,CAAC,EAChB,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,CAAC,EACf,WAAW,CAAC,EAAE,OAAO,KAClB,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAAA;CACjD,CAAA"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * Captures the current focus and selection range within a DOM subtree.
3
+ * Used internally by the reconciler to preserve user selection across re-renders.
4
+ */
1
5
  export interface SelectionState {
2
6
  focusedPath?: number[];
3
7
  selectionRange?: {
@@ -1 +1 @@
1
- {"version":3,"file":"selection-state.d.ts","sourceRoot":"","sources":["../../src/models/selection-state.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,kBAAkB,EAAE,MAAM,EAAE,CAAA;QAC5B,SAAS,EAAE,MAAM,CAAA;QACjB,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAC3B,CAAA;CACF"}
1
+ {"version":3,"file":"selection-state.d.ts","sourceRoot":"","sources":["../../src/models/selection-state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE;QACf,WAAW,EAAE,MAAM,CAAA;QACnB,kBAAkB,EAAE,MAAM,EAAE,CAAA;QAC5B,SAAS,EAAE,MAAM,CAAA;QACjB,gBAAgB,EAAE,MAAM,EAAE,CAAA;KAC3B,CAAA;CACF"}
@@ -1,6 +1,10 @@
1
1
  import { type Injector } from '@furystack/inject';
2
2
  import { deserializeQueryString as defaultDeserializeQueryString, serializeToQueryString as defaultSerializeToQueryString } from '@furystack/rest';
3
3
  import { ObservableValue } from '@furystack/utils';
4
+ /**
5
+ * Singleton service that tracks browser location changes (pathname, search, hash)
6
+ * and exposes them as observable values for reactive routing and URL-driven state.
7
+ */
4
8
  export declare class LocationService implements Disposable {
5
9
  private readonly serializeToQueryString;
6
10
  readonly deserializeQueryString: (fullQueryString: string) => Record<string, unknown>;
@@ -34,5 +38,12 @@ export declare class LocationService implements Disposable {
34
38
  private popStateListener;
35
39
  private hashChangeListener;
36
40
  }
41
+ /**
42
+ * Configures custom serialization for URL search state.
43
+ * Must be called **before** `LocationService` is first instantiated by the injector.
44
+ * @param injector The root injector
45
+ * @param serialize Function to serialize state to a query string
46
+ * @param deserialize Function to deserialize a query string to state
47
+ */
37
48
  export declare const useCustomSearchStateSerializer: (injector: Injector, serialize: typeof defaultSerializeToQueryString, deserialize: typeof defaultDeserializeQueryString) => void;
38
49
  //# sourceMappingURL=location-service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"location-service.d.ts","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EACL,sBAAsB,IAAI,6BAA6B,EACvD,sBAAsB,IAAI,6BAA6B,EACxD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,qBACa,eAAgB,YAAW,UAAU;IAE9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;aAEvB,sBAAsB;gBAFrB,sBAAsB,+CAAgC,EAEvD,sBAAsB,uDAAgC;IAoBxE,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,oBAAoB,CAAoC;IAEzD,CAAC,MAAM,CAAC,OAAO,CAAC;IAYvB;;OAEG;IACI,qBAAqB,0BAAuD;IAEnF;;OAEG;IACI,qBAAqB,0BAAsD;IAElF;;OAEG;IACI,uBAAuB,0BAA+C;IAEtE,mCAAmC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAE7E,4BAA4B,mDAEjC;IAEK,WAAW,aAIL;IAEb,SAAgB,sBAAsB,oCAA0C;IAEhF;;;;;OAKG;IACI,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IA+BrD,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,kBAAkB,CAEb;CACd;AAED,eAAO,MAAM,8BAA8B,GACzC,UAAU,QAAQ,EAClB,WAAW,OAAO,6BAA6B,EAC/C,aAAa,OAAO,6BAA6B,SAQlD,CAAA"}
1
+ {"version":3,"file":"location-service.d.ts","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAC7D,OAAO,EACL,sBAAsB,IAAI,6BAA6B,EACvD,sBAAsB,IAAI,6BAA6B,EACxD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD;;;GAGG;AACH,qBACa,eAAgB,YAAW,UAAU;IAE9C,OAAO,CAAC,QAAQ,CAAC,sBAAsB;aAEvB,sBAAsB;gBAFrB,sBAAsB,+CAAgC,EAEvD,sBAAsB,uDAAgC;IAoBxE,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,oBAAoB,CAAoC;IAEzD,CAAC,MAAM,CAAC,OAAO,CAAC;IAYvB;;OAEG;IACI,qBAAqB,0BAAuD;IAEnF;;OAEG;IACI,qBAAqB,0BAAsD;IAElF;;OAEG;IACI,uBAAuB,0BAA+C;IAEtE,mCAAmC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAE7E,4BAA4B,mDAEjC;IAEK,WAAW,aAIL;IAEb,SAAgB,sBAAsB,oCAA0C;IAEhF;;;;;OAKG;IACI,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;IA+BrD,OAAO,CAAC,gBAAgB,CAEvB;IAED,OAAO,CAAC,kBAAkB,CAEb;CACd;AAED;;;;;;GAMG;AACH,eAAO,MAAM,8BAA8B,GACzC,UAAU,QAAQ,EAClB,WAAW,OAAO,6BAA6B,EAC/C,aAAa,OAAO,6BAA6B,SAQlD,CAAA"}
@@ -10,6 +10,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import { Injectable } from '@furystack/inject';
11
11
  import { deserializeQueryString as defaultDeserializeQueryString, serializeToQueryString as defaultSerializeToQueryString, } from '@furystack/rest';
12
12
  import { ObservableValue } from '@furystack/utils';
13
+ /**
14
+ * Singleton service that tracks browser location changes (pathname, search, hash)
15
+ * and exposes them as observable values for reactive routing and URL-driven state.
16
+ */
13
17
  let LocationService = class LocationService {
14
18
  serializeToQueryString;
15
19
  deserializeQueryString;
@@ -107,6 +111,13 @@ LocationService = __decorate([
107
111
  __metadata("design:paramtypes", [Object, Object])
108
112
  ], LocationService);
109
113
  export { LocationService };
114
+ /**
115
+ * Configures custom serialization for URL search state.
116
+ * Must be called **before** `LocationService` is first instantiated by the injector.
117
+ * @param injector The root injector
118
+ * @param serialize Function to serialize state to a query string
119
+ * @param deserialize Function to deserialize a query string to state
120
+ */
110
121
  export const useCustomSearchStateSerializer = (injector, serialize, deserialize) => {
111
122
  if (injector.cachedSingletons.has(LocationService)) {
112
123
  throw new Error('useCustomSearchStateSerializer must be called before the LocationService is instantiated');
@@ -1 +1 @@
1
- {"version":3,"file":"location-service.js","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"location-service.js","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"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"}
@@ -5,10 +5,34 @@ import { ObservableValue } from '@furystack/utils';
5
5
  */
6
6
  export declare class ResourceManager implements AsyncDisposable {
7
7
  private readonly disposables;
8
+ /**
9
+ * Returns an existing disposable resource by key, or creates and caches a new one.
10
+ * Resources are automatically disposed when the component is removed from the DOM.
11
+ * @param key Unique key for caching this resource
12
+ * @param factory Factory function called once to create the resource
13
+ * @returns The cached or newly created resource
14
+ */
8
15
  useDisposable<T extends Disposable | AsyncDisposable>(key: string, factory: () => T): T;
9
16
  readonly observers: Map<string, ValueObserver<any>>;
17
+ /**
18
+ * Subscribes to an observable value by key. If the observable changes between renders,
19
+ * the previous subscription is disposed and a new one is created.
20
+ * @param key Unique key for caching this subscription
21
+ * @param observable The observable to subscribe to
22
+ * @param onChange Callback invoked when the value changes
23
+ * @param options Additional observer options
24
+ * @returns Tuple of [currentValue, setValue]
25
+ */
10
26
  useObservable: <T>(key: string, observable: ObservableValue<T>, onChange: ValueChangeCallback<T>, options?: ValueObserverOptions<T>) => [value: T, setValue: (newValue: T) => void];
11
27
  readonly stateObservers: Map<string, ObservableValue<any>>;
28
+ /**
29
+ * Creates or retrieves a local state observable by key.
30
+ * State is persisted across re-renders and disposed with the component.
31
+ * @param key Unique key for caching this state
32
+ * @param initialValue Initial value used on first call
33
+ * @param callback Callback invoked when the state changes
34
+ * @returns Tuple of [currentValue, setValue]
35
+ */
12
36
  useState: <T>(key: string, initialValue: T, callback: ValueChangeCallback<T>) => [value: T, setValue: (newValue: T) => void];
13
37
  [Symbol.asyncDispose](): Promise<void>;
14
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"resource-manager.d.ts","sourceRoot":"","sources":["../../src/services/resource-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,eAAe,EAAmC,MAAM,kBAAkB,CAAA;AAEnF;;GAEG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAEvE,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IAU9F,SAAgB,SAAS,kCAAwC;IAE1D,aAAa,GAAI,CAAC,EACvB,KAAK,MAAM,EACX,YAAY,eAAe,CAAC,CAAC,CAAC,EAC9B,UAAU,mBAAmB,CAAC,CAAC,CAAC,EAChC,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAChC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAQ7C;IAED,SAAgB,cAAc,oCAA0C;IAEjE,QAAQ,GAAI,CAAC,EAClB,KAAK,MAAM,EACX,cAAc,CAAC,EACf,UAAU,mBAAmB,CAAC,CAAC,CAAC,KAC/B,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAQ7C;IAEY,CAAC,MAAM,CAAC,YAAY,CAAC;CA4BnC"}
1
+ {"version":3,"file":"resource-manager.d.ts","sourceRoot":"","sources":["../../src/services/resource-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,eAAe,EAAmC,MAAM,kBAAkB,CAAA;AAEnF;;GAEG;AACH,qBAAa,eAAgB,YAAW,eAAe;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAE9E;;;;;;OAMG;IACI,aAAa,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IAU9F,SAAgB,SAAS,kCAAwC;IAEjE;;;;;;;;OAQG;IACI,aAAa,GAAI,CAAC,EACvB,KAAK,MAAM,EACX,YAAY,eAAe,CAAC,CAAC,CAAC,EAC9B,UAAU,mBAAmB,CAAC,CAAC,CAAC,EAChC,UAAU,oBAAoB,CAAC,CAAC,CAAC,KAChC,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAc7C;IAED,SAAgB,cAAc,oCAA0C;IAExE;;;;;;;OAOG;IACI,QAAQ,GAAI,CAAC,EAClB,KAAK,MAAM,EACX,cAAc,CAAC,EACf,UAAU,mBAAmB,CAAC,CAAC,CAAC,KAC/B,CAAC,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC,KAAK,IAAI,CAAC,CAQ7C;IAEY,CAAC,MAAM,CAAC,YAAY,CAAC;CA4BnC"}
@@ -5,6 +5,13 @@ import { ObservableValue, isAsyncDisposable, isDisposable } from '@furystack/uti
5
5
  */
6
6
  export class ResourceManager {
7
7
  disposables = new Map();
8
+ /**
9
+ * Returns an existing disposable resource by key, or creates and caches a new one.
10
+ * Resources are automatically disposed when the component is removed from the DOM.
11
+ * @param key Unique key for caching this resource
12
+ * @param factory Factory function called once to create the resource
13
+ * @returns The cached or newly created resource
14
+ */
8
15
  useDisposable(key, factory) {
9
16
  const existing = this.disposables.get(key);
10
17
  if (!existing) {
@@ -15,9 +22,24 @@ export class ResourceManager {
15
22
  return existing;
16
23
  }
17
24
  observers = new Map();
25
+ /**
26
+ * Subscribes to an observable value by key. If the observable changes between renders,
27
+ * the previous subscription is disposed and a new one is created.
28
+ * @param key Unique key for caching this subscription
29
+ * @param observable The observable to subscribe to
30
+ * @param onChange Callback invoked when the value changes
31
+ * @param options Additional observer options
32
+ * @returns Tuple of [currentValue, setValue]
33
+ */
18
34
  useObservable = (key, observable, onChange, options) => {
19
35
  const alreadyUsed = this.observers.get(key);
20
36
  if (alreadyUsed) {
37
+ if (alreadyUsed.observable !== observable) {
38
+ alreadyUsed[Symbol.dispose]();
39
+ const observer = observable.subscribe(onChange, options);
40
+ this.observers.set(key, observer);
41
+ return [observable.getValue(), observable.setValue.bind(observable)];
42
+ }
21
43
  return [alreadyUsed.observable.getValue(), alreadyUsed.observable.setValue.bind(alreadyUsed.observable)];
22
44
  }
23
45
  const observer = observable.subscribe(onChange, options);
@@ -25,6 +47,14 @@ export class ResourceManager {
25
47
  return [observable.getValue(), observable.setValue.bind(observable)];
26
48
  };
27
49
  stateObservers = new Map();
50
+ /**
51
+ * Creates or retrieves a local state observable by key.
52
+ * State is persisted across re-renders and disposed with the component.
53
+ * @param key Unique key for caching this state
54
+ * @param initialValue Initial value used on first call
55
+ * @param callback Callback invoked when the state changes
56
+ * @returns Tuple of [currentValue, setValue]
57
+ */
28
58
  useState = (key, initialValue, callback) => {
29
59
  if (!this.stateObservers.has(key)) {
30
60
  const newObservable = new ObservableValue(initialValue);
@@ -1 +1 @@
1
- {"version":3,"file":"resource-manager.js","sourceRoot":"","sources":["../../src/services/resource-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-manager.js","sourceRoot":"","sources":["../../src/services/resource-manager.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,99 @@ describe('ResourceManager', () => {
15
15
  expect(o.getObservers().length).toBe(1);
16
16
  });
17
17
  });
18
+ it('Should switch to a new observable when a different reference is passed for the same key', async () => {
19
+ await usingAsync(new ResourceManager(), async (rm) => {
20
+ const o1 = new ObservableValue(1);
21
+ const o2 = new ObservableValue(42);
22
+ const onChange = vi.fn();
23
+ const [value1] = rm.useObservable('test', o1, onChange);
24
+ expect(value1).toBe(1);
25
+ expect(o1.getObservers().length).toBe(1);
26
+ const [value2] = rm.useObservable('test', o2, onChange);
27
+ expect(value2).toBe(42);
28
+ expect(o1.getObservers().length).toBe(0);
29
+ expect(o2.getObservers().length).toBe(1);
30
+ });
31
+ });
32
+ it('Should subscribe with the new onChange callback when switching observables', async () => {
33
+ await usingAsync(new ResourceManager(), async (rm) => {
34
+ const o1 = new ObservableValue('a');
35
+ const o2 = new ObservableValue('x');
36
+ const onChange1 = vi.fn();
37
+ const onChange2 = vi.fn();
38
+ rm.useObservable('test', o1, onChange1);
39
+ rm.useObservable('test', o2, onChange2);
40
+ o2.setValue('y');
41
+ expect(onChange2).toHaveBeenCalledWith('y');
42
+ expect(onChange1).not.toHaveBeenCalled();
43
+ });
44
+ });
45
+ it('Should not re-subscribe when the same observable reference is passed', async () => {
46
+ await usingAsync(new ResourceManager(), async (rm) => {
47
+ const o = new ObservableValue(1);
48
+ const onChange = vi.fn();
49
+ rm.useObservable('test', o, onChange);
50
+ rm.useObservable('test', o, onChange);
51
+ rm.useObservable('test', o, onChange);
52
+ expect(o.getObservers().length).toBe(1);
53
+ });
54
+ });
55
+ it('Should return a setValue bound to the new observable after switching', async () => {
56
+ await usingAsync(new ResourceManager(), async (rm) => {
57
+ const o1 = new ObservableValue(1);
58
+ const o2 = new ObservableValue(10);
59
+ const onChange = vi.fn();
60
+ const [, setValue1] = rm.useObservable('test', o1, onChange);
61
+ setValue1(5);
62
+ expect(o1.getValue()).toBe(5);
63
+ const [, setValue2] = rm.useObservable('test', o2, onChange);
64
+ setValue2(99);
65
+ expect(o2.getValue()).toBe(99);
66
+ expect(o1.getValue()).toBe(5);
67
+ });
68
+ });
69
+ it('Should handle multiple sequential observable switches for the same key', async () => {
70
+ await usingAsync(new ResourceManager(), async (rm) => {
71
+ const o1 = new ObservableValue('a');
72
+ const o2 = new ObservableValue('b');
73
+ const o3 = new ObservableValue('c');
74
+ const onChange = vi.fn();
75
+ const [v1] = rm.useObservable('test', o1, onChange);
76
+ expect(v1).toBe('a');
77
+ const [v2] = rm.useObservable('test', o2, onChange);
78
+ expect(v2).toBe('b');
79
+ expect(o1.getObservers().length).toBe(0);
80
+ const [v3] = rm.useObservable('test', o3, onChange);
81
+ expect(v3).toBe('c');
82
+ expect(o2.getObservers().length).toBe(0);
83
+ expect(o3.getObservers().length).toBe(1);
84
+ });
85
+ });
86
+ it('Should not trigger callbacks on the old observable after switching', async () => {
87
+ await usingAsync(new ResourceManager(), async (rm) => {
88
+ const o1 = new ObservableValue(1);
89
+ const o2 = new ObservableValue(2);
90
+ const onChange = vi.fn();
91
+ rm.useObservable('test', o1, onChange);
92
+ rm.useObservable('test', o2, onChange);
93
+ onChange.mockClear();
94
+ o1.setValue(999);
95
+ expect(onChange).not.toHaveBeenCalled();
96
+ o2.setValue(100);
97
+ expect(onChange).toHaveBeenCalledWith(100);
98
+ });
99
+ });
100
+ it('Should clean up switched observers on dispose', async () => {
101
+ const o1 = new ObservableValue(1);
102
+ const o2 = new ObservableValue(2);
103
+ const onChange = vi.fn();
104
+ await usingAsync(new ResourceManager(), async (rm) => {
105
+ rm.useObservable('test', o1, onChange);
106
+ rm.useObservable('test', o2, onChange);
107
+ expect(o2.getObservers().length).toBe(1);
108
+ });
109
+ expect(o2.getObservers().length).toBe(0);
110
+ });
18
111
  it('Should return a disposable from cache', async () => {
19
112
  await usingAsync(new ResourceManager(), async (rm) => {
20
113
  const factory = vi.fn(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"resource-manager.spec.js","sourceRoot":"","sources":["../../src/services/resource-manager.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resource-manager.spec.js","sourceRoot":"","sources":["../../src/services/resource-manager.spec.ts"],"names":[],"mappings":"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"}