@furystack/shades 14.0.0 → 15.0.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 +30 -0
- package/esm/compile-route.d.ts +5 -0
- package/esm/compile-route.d.ts.map +1 -1
- package/esm/compile-route.js +5 -0
- package/esm/compile-route.js.map +1 -1
- package/esm/component-factory.spec.d.ts.map +1 -1
- package/esm/component-factory.spec.js +2 -2
- package/esm/component-factory.spec.js.map +1 -1
- package/esm/components/nested-hooks.js +2 -2
- package/esm/components/nested-hooks.js.map +1 -1
- package/esm/components/nested-hooks.spec.js +14 -14
- package/esm/components/nested-hooks.spec.js.map +1 -1
- package/esm/components/nested-navigate.js +1 -1
- package/esm/components/nested-navigate.js.map +1 -1
- package/esm/components/nested-navigate.spec.js +16 -16
- package/esm/components/nested-navigate.spec.js.map +1 -1
- package/esm/components/nested-replace.js +1 -1
- package/esm/components/nested-replace.js.map +1 -1
- package/esm/components/nested-replace.spec.js +6 -6
- package/esm/components/nested-replace.spec.js.map +1 -1
- package/esm/components/nested-route-link.js +1 -1
- package/esm/components/nested-route-link.js.map +1 -1
- package/esm/components/nested-route-link.spec.js +8 -8
- package/esm/components/nested-route-link.spec.js.map +1 -1
- package/esm/components/nested-router.js +3 -3
- package/esm/components/nested-router.js.map +1 -1
- package/esm/components/nested-router.spec.js +24 -24
- package/esm/components/nested-router.spec.js.map +1 -1
- package/esm/css-generator.d.ts +9 -26
- package/esm/css-generator.d.ts.map +1 -1
- package/esm/css-generator.js +9 -26
- package/esm/css-generator.js.map +1 -1
- package/esm/css-generator.spec.js.map +1 -1
- package/esm/models/css-object.d.ts +3 -5
- package/esm/models/css-object.d.ts.map +1 -1
- package/esm/models/render-options.d.ts +16 -20
- package/esm/models/render-options.d.ts.map +1 -1
- package/esm/models/shade-component.d.ts +6 -4
- package/esm/models/shade-component.d.ts.map +1 -1
- package/esm/models/shade-component.js +3 -3
- package/esm/models/shade-component.js.map +1 -1
- package/esm/services/location-service.d.ts +39 -42
- package/esm/services/location-service.d.ts.map +1 -1
- package/esm/services/location-service.js +115 -134
- package/esm/services/location-service.js.map +1 -1
- package/esm/services/location-service.spec.js +32 -30
- package/esm/services/location-service.spec.js.map +1 -1
- package/esm/services/route-match-service.d.ts +3 -2
- package/esm/services/route-match-service.d.ts.map +1 -1
- package/esm/services/route-match-service.js +13 -22
- package/esm/services/route-match-service.js.map +1 -1
- package/esm/services/route-match-service.spec.js +40 -51
- package/esm/services/route-match-service.spec.js.map +1 -1
- package/esm/services/route-meta-utils.js.map +1 -1
- package/esm/services/route-meta-utils.spec.js +3 -3
- package/esm/services/route-meta-utils.spec.js.map +1 -1
- package/esm/services/screen-service.d.ts +13 -72
- package/esm/services/screen-service.d.ts.map +1 -1
- package/esm/services/screen-service.js +45 -137
- package/esm/services/screen-service.js.map +1 -1
- package/esm/services/screen-service.spec.js +19 -18
- package/esm/services/screen-service.spec.js.map +1 -1
- package/esm/services/spatial-navigation-service.d.ts +17 -39
- package/esm/services/spatial-navigation-service.d.ts.map +1 -1
- package/esm/services/spatial-navigation-service.js +280 -313
- package/esm/services/spatial-navigation-service.js.map +1 -1
- package/esm/services/spatial-navigation-service.spec.js +163 -158
- package/esm/services/spatial-navigation-service.spec.js.map +1 -1
- package/esm/shade-component.d.ts +14 -17
- package/esm/shade-component.d.ts.map +1 -1
- package/esm/shade-component.js +14 -17
- package/esm/shade-component.js.map +1 -1
- package/esm/shade.d.ts +18 -15
- package/esm/shade.d.ts.map +1 -1
- package/esm/shade.js +22 -32
- package/esm/shade.js.map +1 -1
- package/esm/style-manager.d.ts +8 -22
- package/esm/style-manager.d.ts.map +1 -1
- package/esm/style-manager.js +8 -22
- package/esm/style-manager.js.map +1 -1
- package/esm/styled-shade.d.ts +4 -7
- package/esm/styled-shade.d.ts.map +1 -1
- package/esm/styled-shade.js +4 -4
- package/esm/styled-shade.js.map +1 -1
- package/esm/view-transition.d.ts +10 -22
- package/esm/view-transition.d.ts.map +1 -1
- package/esm/view-transition.js +10 -22
- package/esm/view-transition.js.map +1 -1
- package/esm/vnode.js.map +1 -1
- package/esm/vnode.spec.js.map +1 -1
- package/package.json +9 -8
- package/src/compile-route.ts +5 -0
- package/src/component-factory.spec.tsx +3 -2
- package/src/components/nested-hooks.spec.ts +14 -14
- package/src/components/nested-hooks.ts +2 -2
- package/src/components/nested-navigate.spec.ts +17 -16
- package/src/components/nested-navigate.ts +1 -1
- package/src/components/nested-replace.spec.ts +7 -6
- package/src/components/nested-replace.ts +1 -1
- package/src/components/nested-route-link.spec.tsx +8 -8
- package/src/components/nested-route-link.tsx +1 -1
- package/src/components/nested-router.spec.tsx +24 -24
- package/src/components/nested-router.tsx +5 -5
- package/src/css-generator.spec.ts +1 -1
- package/src/css-generator.ts +9 -26
- package/src/models/css-object.ts +3 -5
- package/src/models/render-options.ts +17 -20
- package/src/models/shade-component.ts +6 -4
- package/src/services/location-service.spec.ts +35 -31
- package/src/services/location-service.tsx +156 -122
- package/src/services/route-match-service.spec.ts +41 -32
- package/src/services/route-match-service.ts +17 -8
- package/src/services/route-meta-utils.spec.ts +3 -3
- package/src/services/route-meta-utils.ts +1 -1
- package/src/services/screen-service.spec.ts +21 -20
- package/src/services/screen-service.ts +65 -110
- package/src/services/spatial-navigation-service.spec.ts +165 -160
- package/src/services/spatial-navigation-service.ts +299 -287
- package/src/shade-component.ts +14 -17
- package/src/shade.ts +31 -41
- package/src/style-manager.ts +9 -22
- package/src/styled-shade.ts +5 -8
- package/src/view-transition.ts +10 -22
- package/src/vnode.spec.ts +3 -3
- package/src/vnode.ts +2 -2
package/esm/css-generator.d.ts
CHANGED
|
@@ -1,37 +1,21 @@
|
|
|
1
1
|
import type { CSSObject, CSSProperties } from './models/css-object.js';
|
|
2
2
|
/**
|
|
3
|
-
* Converts a camelCase string to kebab-case
|
|
4
|
-
* @param str - The camelCase string to convert
|
|
5
|
-
* @returns The kebab-case string
|
|
6
3
|
* @example
|
|
7
4
|
* camelToKebab('backgroundColor') // 'background-color'
|
|
8
|
-
* camelToKebab('fontSize') // 'font-size'
|
|
9
5
|
*/
|
|
10
6
|
export declare const camelToKebab: (str: string) => string;
|
|
11
|
-
/**
|
|
12
|
-
* Checks if a key is a selector key (starts with '&')
|
|
13
|
-
* @param key - The key to check
|
|
14
|
-
* @returns True if the key is a selector key
|
|
15
|
-
*/
|
|
16
7
|
export declare const isSelectorKey: (key: string) => boolean;
|
|
17
8
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* @returns A CSS declaration string (e.g., "color: red; padding: 10px;")
|
|
9
|
+
* Serializes the non-selector entries of a {@link CSSProperties} object as
|
|
10
|
+
* a CSS declaration body. Selector keys (`&...`) are skipped.
|
|
21
11
|
*/
|
|
22
12
|
export declare const propertiesToCSSString: (properties: CSSProperties) => string;
|
|
23
|
-
/**
|
|
24
|
-
* Generates a CSS rule string from a selector and properties
|
|
25
|
-
* @param selector - The CSS selector
|
|
26
|
-
* @param properties - The CSS properties object
|
|
27
|
-
* @returns A complete CSS rule string (e.g., "selector { color: red; }")
|
|
28
|
-
*/
|
|
13
|
+
/** Builds `selector { decls; }` from the non-selector entries. Empty when no decls. */
|
|
29
14
|
export declare const generateCSSRule: (selector: string, properties: CSSProperties) => string;
|
|
30
15
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
* @returns A complete CSS string with all rules
|
|
16
|
+
* Renders a {@link CSSObject} as CSS rules. Base properties become a single
|
|
17
|
+
* rule against `selector`; each `&...` selector key produces an additional
|
|
18
|
+
* rule with `&` substituted for `selector`.
|
|
35
19
|
*
|
|
36
20
|
* @example
|
|
37
21
|
* ```typescript
|
|
@@ -40,10 +24,9 @@ export declare const generateCSSRule: (selector: string, properties: CSSProperti
|
|
|
40
24
|
* '&:hover': { color: 'blue' },
|
|
41
25
|
* '& .inner': { fontWeight: 'bold' }
|
|
42
26
|
* })
|
|
43
|
-
* //
|
|
44
|
-
* //
|
|
45
|
-
* //
|
|
46
|
-
* // my-component .inner { font-weight: bold; }"
|
|
27
|
+
* // my-component { color: red; }
|
|
28
|
+
* // my-component:hover { color: blue; }
|
|
29
|
+
* // my-component .inner { font-weight: bold; }
|
|
47
30
|
* ```
|
|
48
31
|
*/
|
|
49
32
|
export declare const generateCSS: (selector: string, cssObject: CSSObject) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-generator.d.ts","sourceRoot":"","sources":["../src/css-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtE
|
|
1
|
+
{"version":3,"file":"css-generator.d.ts","sourceRoot":"","sources":["../src/css-generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAEtE;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAE1C,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,KAAG,OAE3C,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,YAAY,aAAa,KAAG,MAajE,CAAA;AAED,uFAAuF;AACvF,eAAO,MAAM,eAAe,GAAI,UAAU,MAAM,EAAE,YAAY,aAAa,KAAG,MAM7E,CAAA;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,GAAI,UAAU,MAAM,EAAE,WAAW,SAAS,KAAG,MAwCpE,CAAA"}
|
package/esm/css-generator.js
CHANGED
|
@@ -1,26 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Converts a camelCase string to kebab-case
|
|
3
|
-
* @param str - The camelCase string to convert
|
|
4
|
-
* @returns The kebab-case string
|
|
5
2
|
* @example
|
|
6
3
|
* camelToKebab('backgroundColor') // 'background-color'
|
|
7
|
-
* camelToKebab('fontSize') // 'font-size'
|
|
8
4
|
*/
|
|
9
5
|
export const camelToKebab = (str) => {
|
|
10
6
|
return str.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
|
|
11
7
|
};
|
|
12
|
-
/**
|
|
13
|
-
* Checks if a key is a selector key (starts with '&')
|
|
14
|
-
* @param key - The key to check
|
|
15
|
-
* @returns True if the key is a selector key
|
|
16
|
-
*/
|
|
17
8
|
export const isSelectorKey = (key) => {
|
|
18
9
|
return key.startsWith('&');
|
|
19
10
|
};
|
|
20
11
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
* @returns A CSS declaration string (e.g., "color: red; padding: 10px;")
|
|
12
|
+
* Serializes the non-selector entries of a {@link CSSProperties} object as
|
|
13
|
+
* a CSS declaration body. Selector keys (`&...`) are skipped.
|
|
24
14
|
*/
|
|
25
15
|
export const propertiesToCSSString = (properties) => {
|
|
26
16
|
const declarations = [];
|
|
@@ -34,12 +24,7 @@ export const propertiesToCSSString = (properties) => {
|
|
|
34
24
|
}
|
|
35
25
|
return declarations.join('; ');
|
|
36
26
|
};
|
|
37
|
-
/**
|
|
38
|
-
* Generates a CSS rule string from a selector and properties
|
|
39
|
-
* @param selector - The CSS selector
|
|
40
|
-
* @param properties - The CSS properties object
|
|
41
|
-
* @returns A complete CSS rule string (e.g., "selector { color: red; }")
|
|
42
|
-
*/
|
|
27
|
+
/** Builds `selector { decls; }` from the non-selector entries. Empty when no decls. */
|
|
43
28
|
export const generateCSSRule = (selector, properties) => {
|
|
44
29
|
const cssString = propertiesToCSSString(properties);
|
|
45
30
|
if (!cssString) {
|
|
@@ -48,10 +33,9 @@ export const generateCSSRule = (selector, properties) => {
|
|
|
48
33
|
return `${selector} { ${cssString}; }`;
|
|
49
34
|
};
|
|
50
35
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
* @returns A complete CSS string with all rules
|
|
36
|
+
* Renders a {@link CSSObject} as CSS rules. Base properties become a single
|
|
37
|
+
* rule against `selector`; each `&...` selector key produces an additional
|
|
38
|
+
* rule with `&` substituted for `selector`.
|
|
55
39
|
*
|
|
56
40
|
* @example
|
|
57
41
|
* ```typescript
|
|
@@ -60,10 +44,9 @@ export const generateCSSRule = (selector, properties) => {
|
|
|
60
44
|
* '&:hover': { color: 'blue' },
|
|
61
45
|
* '& .inner': { fontWeight: 'bold' }
|
|
62
46
|
* })
|
|
63
|
-
* //
|
|
64
|
-
* //
|
|
65
|
-
* //
|
|
66
|
-
* // my-component .inner { font-weight: bold; }"
|
|
47
|
+
* // my-component { color: red; }
|
|
48
|
+
* // my-component:hover { color: blue; }
|
|
49
|
+
* // my-component .inner { font-weight: bold; }
|
|
67
50
|
* ```
|
|
68
51
|
*/
|
|
69
52
|
export const generateCSS = (selector, cssObject) => {
|
package/esm/css-generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-generator.js","sourceRoot":"","sources":["../src/css-generator.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"css-generator.js","sourceRoot":"","sources":["../src/css-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-generator.spec.js","sourceRoot":"","sources":["../src/css-generator.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"css-generator.spec.js","sourceRoot":"","sources":["../src/css-generator.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Base CSS properties - subset of CSSStyleDeclaration
|
|
3
|
-
*/
|
|
4
1
|
export type CSSProperties = Partial<CSSStyleDeclaration>;
|
|
5
2
|
/**
|
|
6
|
-
* Selector
|
|
7
|
-
*
|
|
3
|
+
* Selector keys for pseudo-classes and nested selectors. The leading `&`
|
|
4
|
+
* is replaced with the host selector at registration time
|
|
5
|
+
* (e.g. `&:hover` → `my-element:hover`).
|
|
8
6
|
*/
|
|
9
7
|
export type SelectorKey = `&${string}`;
|
|
10
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"css-object.d.ts","sourceRoot":"","sources":["../../src/models/css-object.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"css-object.d.ts","sourceRoot":"","sources":["../../src/models/css-object.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAExD;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,MAAM,EAAE,CAAA;AAEtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;KACrC,CAAC,IAAI,WAAW,CAAC,CAAC,EAAE,aAAa;CACnC,CAAA"}
|
|
@@ -77,13 +77,11 @@ export type RenderOptions<TProps, TElementBase extends HTMLElement = HTMLElement
|
|
|
77
77
|
*/
|
|
78
78
|
useRef: <T extends Element = HTMLElement>(key: string) => RefObject<T>;
|
|
79
79
|
/**
|
|
80
|
-
* Creates
|
|
81
|
-
*
|
|
82
|
-
* the
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* @param deps Optional dependency array — when deps change, the old resource is disposed and a new one is created
|
|
86
|
-
* @returns The Disposable instance
|
|
80
|
+
* Creates a disposable resource the first time it is requested per `key`,
|
|
81
|
+
* caches it across renders, and disposes it on `disconnectedCallback`.
|
|
82
|
+
* When `deps` is provided, the cached resource is disposed + re-created
|
|
83
|
+
* whenever the serialized deps change (use for `key`-stable resources
|
|
84
|
+
* that depend on dynamic inputs).
|
|
87
85
|
*/
|
|
88
86
|
useDisposable: <T extends Disposable | AsyncDisposable>(key: string, factory: () => T, deps?: readonly unknown[]) => T;
|
|
89
87
|
/**
|
|
@@ -115,25 +113,23 @@ export type RenderOptions<TProps, TElementBase extends HTMLElement = HTMLElement
|
|
|
115
113
|
onChange?: (newValue: T) => void;
|
|
116
114
|
}) => [value: T, setValue: (newValue: T) => void];
|
|
117
115
|
/**
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
116
|
+
* Local component state. Returns `[value, setValue]`; calling the setter
|
|
117
|
+
* with a new value triggers a re-render. Preferred over manually wiring
|
|
118
|
+
* an `ObservableValue` + `useObservable` (`furystack/prefer-use-state`
|
|
119
|
+
* enforces this).
|
|
122
120
|
*/
|
|
123
121
|
useState: <T>(key: string, initialValue: T) => [value: T, setValue: (newValue: T) => void];
|
|
124
122
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
*
|
|
123
|
+
* State backed by a URL search-string parameter via {@link LocationService}.
|
|
124
|
+
* Bidirectional: setting the value pushes a history entry; navigating
|
|
125
|
+
* (back/forward, manual edit) updates the value. `initialValue` applies
|
|
126
|
+
* when the key is absent from the current URL.
|
|
129
127
|
*/
|
|
130
128
|
useSearchState: <T>(key: string, initialValue: T) => [value: T, setValue: (newValue: T) => void];
|
|
131
129
|
/**
|
|
132
|
-
*
|
|
133
|
-
*
|
|
134
|
-
*
|
|
135
|
-
* @param storageArea The storage area to use
|
|
136
|
-
* @returns a tuple with the current value and a setter function
|
|
130
|
+
* State backed by `localStorage` (or a custom `Storage`). Synchronizes
|
|
131
|
+
* across tabs via the `storage` event and a `BroadcastChannel`.
|
|
132
|
+
* `initialValue` applies when the key is absent from `storageArea`.
|
|
137
133
|
*/
|
|
138
134
|
useStoredState: <T>(key: string, initialValue: T, storageArea?: Storage) => [value: T, setValue: (newValue: T) => void];
|
|
139
135
|
};
|
|
@@ -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;
|
|
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;AAE7E,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;;;;;;OAMG;IACH,aAAa,EAAE,CAAC,CAAC,SAAS,UAAU,GAAG,eAAe,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,SAAS,OAAO,EAAE,KAAK,CAAC,CAAA;IAEtH;;;;;;;;;;;;;;;;;;;;;;;;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;;;;OAIG;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,12 +1,14 @@
|
|
|
1
1
|
import type { ChildrenList } from './children-list.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* Callable that produces a JSX element from props (and optional children).
|
|
4
|
+
* Both `Shade(...)` factories and plain functional components conform to
|
|
5
|
+
* this shape.
|
|
4
6
|
*/
|
|
5
7
|
export type ShadeComponent<TProps = object> = (arg: TProps, children?: ChildrenList) => JSX.Element;
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
9
|
+
* Discriminates {@link ShadeComponent} from intrinsic-element tag names.
|
|
10
|
+
* Intentionally permissive — any function is treated as a component since
|
|
11
|
+
* VNodes carry no other discriminator.
|
|
10
12
|
*/
|
|
11
13
|
export declare const isShadeComponent: <T = any>(obj: any) => obj is ShadeComponent<T>;
|
|
12
14
|
//# sourceMappingURL=shade-component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD
|
|
1
|
+
{"version":3,"file":"shade-component.d.ts","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEtD;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,YAAY,KAAK,GAAG,CAAC,OAAO,CAAA;AAEnG;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,KAAK,GAAG,KAAG,GAAG,IAAI,cAAc,CAAC,CAAC,CAE3E,CAAA"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* Discriminates {@link ShadeComponent} from intrinsic-element tag names.
|
|
3
|
+
* Intentionally permissive — any function is treated as a component since
|
|
4
|
+
* VNodes carry no other discriminator.
|
|
5
5
|
*/
|
|
6
6
|
export const isShadeComponent = (obj) => {
|
|
7
7
|
return typeof obj === 'function';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shade-component.js","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shade-component.js","sourceRoot":"","sources":["../../src/models/shade-component.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAU,GAAQ,EAA4B,EAAE;IAC9E,OAAO,OAAO,GAAG,KAAK,UAAU,CAAA;AAClC,CAAC,CAAA"}
|
|
@@ -1,67 +1,64 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Injector, Token } from '@furystack/inject';
|
|
2
2
|
import { deserializeQueryString as defaultDeserializeQueryString, serializeToQueryString as defaultSerializeToQueryString } from '@furystack/rest';
|
|
3
3
|
import { ObservableValue } from '@furystack/utils';
|
|
4
|
+
/**
|
|
5
|
+
* Overridable settings for {@link LocationService}. Bind a replacement factory
|
|
6
|
+
* via {@link useCustomSearchStateSerializer} to swap the URL query-string
|
|
7
|
+
* (de)serializers used by the service.
|
|
8
|
+
*/
|
|
9
|
+
export interface LocationServiceSettings {
|
|
10
|
+
serialize: typeof defaultSerializeToQueryString;
|
|
11
|
+
deserialize: typeof defaultDeserializeQueryString;
|
|
12
|
+
}
|
|
13
|
+
export declare const LocationServiceSettings: Token<LocationServiceSettings, 'singleton'>;
|
|
4
14
|
/**
|
|
5
15
|
* Singleton service that tracks browser location changes (pathname, search, hash)
|
|
6
16
|
* and exposes them as observable values for reactive routing and URL-driven state.
|
|
7
17
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
readonly
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Observable value that will be updated when the location pathname (e.g. /page/1) changes
|
|
17
|
-
*/
|
|
18
|
-
onLocationPathChanged: ObservableValue<string>;
|
|
19
|
-
/**
|
|
20
|
-
* Observable value that will be updated when the location hash (e.g. #hash) changes
|
|
21
|
-
*/
|
|
22
|
-
onLocationHashChanged: ObservableValue<string>;
|
|
23
|
-
/**
|
|
24
|
-
* Observable value that will be updated when the location search (e.g. ?search=1) changes
|
|
25
|
-
*/
|
|
26
|
-
onLocationSearchChanged: ObservableValue<string>;
|
|
27
|
-
onDeserializedLocationSearchChanged: ObservableValue<Record<string, unknown>>;
|
|
28
|
-
locationDeserializerObserver: import("@furystack/utils").ValueObserver<string>;
|
|
18
|
+
export interface LocationService {
|
|
19
|
+
readonly deserializeQueryString: typeof defaultDeserializeQueryString;
|
|
20
|
+
readonly onLocationPathChanged: ObservableValue<string>;
|
|
21
|
+
readonly onLocationHashChanged: ObservableValue<string>;
|
|
22
|
+
readonly onLocationSearchChanged: ObservableValue<string>;
|
|
23
|
+
readonly onDeserializedLocationSearchChanged: ObservableValue<Record<string, unknown>>;
|
|
24
|
+
readonly searchParamObservables: Map<string, ObservableValue<any>>;
|
|
29
25
|
/**
|
|
30
26
|
* Synchronizes the observable state with the current browser location.
|
|
31
27
|
* Called internally after navigation events and history state changes.
|
|
32
28
|
*/
|
|
33
|
-
updateState
|
|
29
|
+
updateState(): void;
|
|
34
30
|
/**
|
|
35
31
|
* Navigate to a path. Use this instead of raw history.pushState for SPA routing.
|
|
36
|
-
* The LocationService interceptor ensures routing state is updated correctly.
|
|
37
32
|
*/
|
|
38
33
|
navigate(path: string): void;
|
|
39
34
|
/**
|
|
40
|
-
* Replace the current history entry with a new path. Use this instead of
|
|
41
|
-
*
|
|
42
|
-
*
|
|
35
|
+
* Replace the current history entry with a new path. Use this instead of raw
|
|
36
|
+
* history.replaceState for SPA redirects where the intermediate URL should
|
|
37
|
+
* not appear in the browser's back/forward stack.
|
|
43
38
|
*/
|
|
44
39
|
replace(path: string): void;
|
|
45
40
|
/**
|
|
46
|
-
*
|
|
47
|
-
*/
|
|
48
|
-
readonly searchParamObservables: Map<string, ObservableValue<any>>;
|
|
49
|
-
/**
|
|
50
|
-
* Gets or creates an observable for a search parameter
|
|
51
|
-
* @param key The search param key (e.g. ?search=1 -> search)
|
|
52
|
-
* @param defaultValue The default value if not provided
|
|
53
|
-
* @returns An observable with the current value (or default value) of the search param
|
|
41
|
+
* Gets or creates an observable for a search parameter.
|
|
54
42
|
*/
|
|
55
43
|
useSearchParam<T>(key: string, defaultValue: T): ObservableValue<T>;
|
|
56
|
-
private popStateListener;
|
|
57
|
-
private hashChangeListener;
|
|
58
44
|
}
|
|
45
|
+
export declare const LocationService: Token<LocationService, 'singleton'>;
|
|
59
46
|
/**
|
|
60
|
-
* Configures custom serialization for URL search state
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
47
|
+
* Configures custom (de)serialization for URL search state by binding
|
|
48
|
+
* {@link LocationServiceSettings} on the given injector.
|
|
49
|
+
*
|
|
50
|
+
* Must be called **before** any consumer resolves {@link LocationService}:
|
|
51
|
+
* the service patches `history.pushState` / `history.replaceState` and
|
|
52
|
+
* subscribes to `popstate` / `hashchange` on construction, and those
|
|
53
|
+
* listeners are only torn down when the owning injector is disposed.
|
|
54
|
+
* Rebinding after the first resolution would leak the previous instance,
|
|
55
|
+
* so this helper throws loudly if that happens.
|
|
56
|
+
*
|
|
57
|
+
* @param injector The root injector.
|
|
58
|
+
* @param serialize Function to serialize state to a query string.
|
|
59
|
+
* @param deserialize Function to deserialize a query string to state.
|
|
60
|
+
* @throws If {@link LocationService} has already been resolved on
|
|
61
|
+
* `injector` (or any reachable ancestor).
|
|
65
62
|
*/
|
|
66
63
|
export declare const useCustomSearchStateSerializer: (injector: Injector, serialize: typeof defaultSerializeToQueryString, deserialize: typeof defaultDeserializeQueryString) => void;
|
|
67
64
|
//# 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,
|
|
1
|
+
{"version":3,"file":"location-service.d.ts","sourceRoot":"","sources":["../../src/services/location-service.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAExD,OAAO,EACL,sBAAsB,IAAI,6BAA6B,EACvD,sBAAsB,IAAI,6BAA6B,EACxD,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,OAAO,6BAA6B,CAAA;IAC/C,WAAW,EAAE,OAAO,6BAA6B,CAAA;CAClD;AAED,eAAO,MAAM,uBAAuB,EAAE,KAAK,CAAC,uBAAuB,EAAE,WAAW,CAO9E,CAAA;AAEF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,sBAAsB,EAAE,OAAO,6BAA6B,CAAA;IACrE,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACvD,QAAQ,CAAC,qBAAqB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACvD,QAAQ,CAAC,uBAAuB,EAAE,eAAe,CAAC,MAAM,CAAC,CAAA;IACzD,QAAQ,CAAC,mCAAmC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IACtF,QAAQ,CAAC,sBAAsB,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;IAClE;;;OAGG;IACH,WAAW,IAAI,IAAI,CAAA;IACnB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B;;OAEG;IACH,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;CACpE;AAED,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,eAAe,EAAE,WAAW,CAoH9D,CAAA;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,8BAA8B,GACzC,UAAU,QAAQ,EAClB,WAAW,OAAO,6BAA6B,EAC/C,aAAa,OAAO,6BAA6B,KAChD,IASF,CAAA"}
|