@bquery/bquery 1.4.0 → 1.6.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/README.md +586 -527
- package/dist/component/component.d.ts +13 -5
- package/dist/component/component.d.ts.map +1 -1
- package/dist/component/html.d.ts +40 -3
- package/dist/component/html.d.ts.map +1 -1
- package/dist/component/index.d.ts +4 -2
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/library.d.ts +34 -0
- package/dist/component/library.d.ts.map +1 -0
- package/dist/component/types.d.ts +132 -13
- package/dist/component/types.d.ts.map +1 -1
- package/dist/component-BEQgt5hl.js +600 -0
- package/dist/component-BEQgt5hl.js.map +1 -0
- package/dist/component.es.mjs +7 -184
- package/dist/config-DRmZZno3.js +40 -0
- package/dist/config-DRmZZno3.js.map +1 -0
- package/dist/core-BGQJVw0-.js +35 -0
- package/dist/core-BGQJVw0-.js.map +1 -0
- package/dist/core-CCEabVHl.js +648 -0
- package/dist/core-CCEabVHl.js.map +1 -0
- package/dist/core.es.mjs +45 -1261
- package/dist/effect-AFRW_Plg.js +84 -0
- package/dist/effect-AFRW_Plg.js.map +1 -0
- package/dist/full.d.ts +8 -8
- package/dist/full.d.ts.map +1 -1
- package/dist/full.es.mjs +101 -91
- package/dist/full.iife.js +173 -3
- package/dist/full.iife.js.map +1 -1
- package/dist/full.umd.js +173 -3
- package/dist/full.umd.js.map +1 -1
- package/dist/index.es.mjs +147 -139
- package/dist/motion/transition.d.ts +1 -1
- package/dist/motion/transition.d.ts.map +1 -1
- package/dist/motion/types.d.ts +11 -1
- package/dist/motion/types.d.ts.map +1 -1
- package/dist/motion-D9TcHxOF.js +415 -0
- package/dist/motion-D9TcHxOF.js.map +1 -0
- package/dist/motion.es.mjs +25 -361
- package/dist/object-qGpWr6-J.js +38 -0
- package/dist/object-qGpWr6-J.js.map +1 -0
- package/dist/platform/announcer.d.ts +59 -0
- package/dist/platform/announcer.d.ts.map +1 -0
- package/dist/platform/config.d.ts +92 -0
- package/dist/platform/config.d.ts.map +1 -0
- package/dist/platform/cookies.d.ts +45 -0
- package/dist/platform/cookies.d.ts.map +1 -0
- package/dist/platform/index.d.ts +8 -0
- package/dist/platform/index.d.ts.map +1 -1
- package/dist/platform/meta.d.ts +62 -0
- package/dist/platform/meta.d.ts.map +1 -0
- package/dist/platform-Dr9b6fsq.js +362 -0
- package/dist/platform-Dr9b6fsq.js.map +1 -0
- package/dist/platform.es.mjs +11 -248
- package/dist/reactive/async-data.d.ts +114 -0
- package/dist/reactive/async-data.d.ts.map +1 -0
- package/dist/reactive/index.d.ts +2 -2
- package/dist/reactive/index.d.ts.map +1 -1
- package/dist/reactive/signal.d.ts +2 -0
- package/dist/reactive/signal.d.ts.map +1 -1
- package/dist/reactive-DSkct0dO.js +254 -0
- package/dist/reactive-DSkct0dO.js.map +1 -0
- package/dist/reactive.es.mjs +18 -32
- package/dist/router-CbDhl8rS.js +188 -0
- package/dist/router-CbDhl8rS.js.map +1 -0
- package/dist/router.es.mjs +11 -200
- package/dist/sanitize-Bs2dkMby.js +313 -0
- package/dist/sanitize-Bs2dkMby.js.map +1 -0
- package/dist/security/constants.d.ts.map +1 -1
- package/dist/security/index.d.ts +4 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/sanitize.d.ts +4 -1
- package/dist/security/sanitize.d.ts.map +1 -1
- package/dist/security/trusted-html.d.ts +53 -0
- package/dist/security/trusted-html.d.ts.map +1 -0
- package/dist/security.es.mjs +11 -56
- package/dist/store/define-store.d.ts +1 -1
- package/dist/store/define-store.d.ts.map +1 -1
- package/dist/store/mapping.d.ts +1 -1
- package/dist/store/mapping.d.ts.map +1 -1
- package/dist/store/persisted.d.ts +1 -1
- package/dist/store/persisted.d.ts.map +1 -1
- package/dist/store/types.d.ts +2 -2
- package/dist/store/types.d.ts.map +1 -1
- package/dist/store/watch.d.ts +1 -1
- package/dist/store/watch.d.ts.map +1 -1
- package/dist/store-BwDvI45q.js +263 -0
- package/dist/store-BwDvI45q.js.map +1 -0
- package/dist/store.es.mjs +12 -25
- package/dist/storybook/index.d.ts +37 -0
- package/dist/storybook/index.d.ts.map +1 -0
- package/dist/storybook.es.mjs +151 -0
- package/dist/storybook.es.mjs.map +1 -0
- package/dist/untrack-B0rVscTc.js +7 -0
- package/dist/untrack-B0rVscTc.js.map +1 -0
- package/dist/view-C70lA3vf.js +397 -0
- package/dist/view-C70lA3vf.js.map +1 -0
- package/dist/view.es.mjs +11 -430
- package/package.json +141 -132
- package/src/component/component.ts +524 -289
- package/src/component/html.ts +153 -53
- package/src/component/index.ts +50 -40
- package/src/component/library.ts +518 -0
- package/src/component/types.ts +256 -85
- package/src/core/collection.ts +628 -628
- package/src/core/element.ts +774 -774
- package/src/core/index.ts +48 -48
- package/src/core/utils/function.ts +151 -151
- package/src/full.ts +229 -187
- package/src/motion/animate.ts +113 -113
- package/src/motion/flip.ts +176 -176
- package/src/motion/scroll.ts +57 -57
- package/src/motion/spring.ts +150 -150
- package/src/motion/timeline.ts +246 -246
- package/src/motion/transition.ts +97 -51
- package/src/motion/types.ts +11 -1
- package/src/platform/announcer.ts +208 -0
- package/src/platform/config.ts +163 -0
- package/src/platform/cookies.ts +165 -0
- package/src/platform/index.ts +21 -0
- package/src/platform/meta.ts +168 -0
- package/src/platform/storage.ts +215 -215
- package/src/reactive/async-data.ts +486 -0
- package/src/reactive/core.ts +114 -114
- package/src/reactive/effect.ts +54 -54
- package/src/reactive/index.ts +15 -1
- package/src/reactive/internals.ts +122 -122
- package/src/reactive/signal.ts +9 -0
- package/src/security/constants.ts +3 -1
- package/src/security/index.ts +17 -10
- package/src/security/sanitize-core.ts +364 -364
- package/src/security/sanitize.ts +70 -66
- package/src/security/trusted-html.ts +71 -0
- package/src/store/define-store.ts +49 -48
- package/src/store/mapping.ts +74 -73
- package/src/store/persisted.ts +62 -61
- package/src/store/types.ts +92 -94
- package/src/store/watch.ts +53 -52
- package/src/storybook/index.ts +479 -0
- package/src/view/evaluate.ts +290 -290
- package/dist/batch-x7b2eZST.js +0 -13
- package/dist/batch-x7b2eZST.js.map +0 -1
- package/dist/component.es.mjs.map +0 -1
- package/dist/core-BhpuvPhy.js +0 -170
- package/dist/core-BhpuvPhy.js.map +0 -1
- package/dist/core.es.mjs.map +0 -1
- package/dist/full.es.mjs.map +0 -1
- package/dist/index.es.mjs.map +0 -1
- package/dist/motion.es.mjs.map +0 -1
- package/dist/persisted-DHoi3uEs.js +0 -278
- package/dist/persisted-DHoi3uEs.js.map +0 -1
- package/dist/platform.es.mjs.map +0 -1
- package/dist/reactive.es.mjs.map +0 -1
- package/dist/router.es.mjs.map +0 -1
- package/dist/sanitize-Cxvxa-DX.js +0 -283
- package/dist/sanitize-Cxvxa-DX.js.map +0 -1
- package/dist/security.es.mjs.map +0 -1
- package/dist/store.es.mjs.map +0 -1
- package/dist/type-guards-BdKlYYlS.js +0 -32
- package/dist/type-guards-BdKlYYlS.js.map +0 -1
- package/dist/untrack-DNnnqdlR.js +0 -6
- package/dist/untrack-DNnnqdlR.js.map +0 -1
- package/dist/view.es.mjs.map +0 -1
- package/dist/watch-DXXv3iAI.js +0 -58
- package/dist/watch-DXXv3iAI.js.map +0 -1
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module bquery/component
|
|
5
5
|
*/
|
|
6
|
-
import type { ComponentDefinition } from './types';
|
|
6
|
+
import type { ComponentClass, ComponentDefinition, ComponentSignals } from './types';
|
|
7
7
|
/**
|
|
8
8
|
* Creates a custom element class for a component definition.
|
|
9
9
|
*
|
|
@@ -11,10 +11,14 @@ import type { ComponentDefinition } from './types';
|
|
|
11
11
|
* (e.g. with different tag names in tests or custom registries).
|
|
12
12
|
*
|
|
13
13
|
* @template TProps - Type of the component's props
|
|
14
|
+
* @template TState - Type of the component's internal state. When provided,
|
|
15
|
+
* `definition.state` is required, `render({ state })` is strongly typed, and
|
|
16
|
+
* returned instances expose typed `getState()` / `setState()` helpers.
|
|
14
17
|
* @param tagName - The custom element tag name (used for diagnostics)
|
|
15
18
|
* @param definition - The component configuration
|
|
16
19
|
*/
|
|
17
|
-
export declare
|
|
20
|
+
export declare function defineComponent<TProps extends Record<string, unknown>, TSignals extends ComponentSignals = Record<string, never>>(tagName: string, definition: ComponentDefinition<TProps, undefined, TSignals>): ComponentClass<undefined>;
|
|
21
|
+
export declare function defineComponent<TProps extends Record<string, unknown>, TState extends Record<string, unknown>, TSignals extends ComponentSignals = Record<string, never>>(tagName: string, definition: ComponentDefinition<TProps, TState, TSignals>): ComponentClass<TState>;
|
|
18
22
|
/**
|
|
19
23
|
* Defines and registers a custom Web Component.
|
|
20
24
|
*
|
|
@@ -23,12 +27,15 @@ export declare const defineComponent: <TProps extends Record<string, unknown>>(t
|
|
|
23
27
|
* and automatically re-renders when observed attributes change.
|
|
24
28
|
*
|
|
25
29
|
* @template TProps - Type of the component's props
|
|
30
|
+
* @template TState - Type of the component's internal state. When provided,
|
|
31
|
+
* `definition.state` is required and lifecycle hooks receive typed state
|
|
32
|
+
* helpers via `this.getState()` / `this.setState()`.
|
|
26
33
|
* @param tagName - The custom element tag name (must contain a hyphen)
|
|
27
34
|
* @param definition - The component configuration
|
|
28
35
|
*
|
|
29
36
|
* @example
|
|
30
37
|
* ```ts
|
|
31
|
-
* component('counter-button', {
|
|
38
|
+
* component<{ start: number }, { count: number }>('counter-button', {
|
|
32
39
|
* props: {
|
|
33
40
|
* start: { type: Number, default: 0 },
|
|
34
41
|
* },
|
|
@@ -41,7 +48,7 @@ export declare const defineComponent: <TProps extends Record<string, unknown>>(t
|
|
|
41
48
|
* const handleClick = (event: Event) => {
|
|
42
49
|
* const target = event.target as HTMLElement | null;
|
|
43
50
|
* if (target?.matches('button')) {
|
|
44
|
-
* this.setState('count',
|
|
51
|
+
* this.setState('count', this.getState('count') + 1);
|
|
45
52
|
* }
|
|
46
53
|
* };
|
|
47
54
|
* this.shadowRoot?.addEventListener('click', handleClick);
|
|
@@ -65,5 +72,6 @@ export declare const defineComponent: <TProps extends Record<string, unknown>>(t
|
|
|
65
72
|
* });
|
|
66
73
|
* ```
|
|
67
74
|
*/
|
|
68
|
-
export declare
|
|
75
|
+
export declare function component<TProps extends Record<string, unknown>, TSignals extends ComponentSignals = Record<string, never>>(tagName: string, definition: ComponentDefinition<TProps, undefined, TSignals>): void;
|
|
76
|
+
export declare function component<TProps extends Record<string, unknown>, TState extends Record<string, unknown>, TSignals extends ComponentSignals = Record<string, never>>(tagName: string, definition: ComponentDefinition<TProps, TState, TSignals>): void;
|
|
69
77
|
//# sourceMappingURL=component.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/component/component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/component/component.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAEV,cAAc,EACd,mBAAmB,EAEnB,gBAAgB,EAGjB,MAAM,SAAS,CAAC;AAiYjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEzD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,GAC3D,cAAc,CAAC,SAAS,CAAC,CAAC;AAC7B,wBAAgB,eAAe,CAC7B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEzD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GACxD,cAAc,CAAC,MAAM,CAAC,CAAC;AAY1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,SAAS,CACvB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEzD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,GAC3D,IAAI,CAAC;AACR,wBAAgB,SAAS,CACvB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtC,QAAQ,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAEzD,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,GACxD,IAAI,CAAC"}
|
package/dist/component/html.d.ts
CHANGED
|
@@ -1,3 +1,40 @@
|
|
|
1
|
+
import { type SanitizedHtml } from '../security/trusted-html';
|
|
2
|
+
/**
|
|
3
|
+
* Public shape of a boolean HTML attribute created by {@link bool}.
|
|
4
|
+
*
|
|
5
|
+
* This type is returned from {@link bool} and can be interpolated into
|
|
6
|
+
* {@link html} / {@link safeHtml} templates to conditionally include or omit
|
|
7
|
+
* an attribute by name. The internal marker property used for runtime checks
|
|
8
|
+
* remains private and is not part of the public API.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```ts
|
|
12
|
+
* const disabled = bool('disabled', isDisabled);
|
|
13
|
+
* const button = html`<button ${disabled}>Click</button>`;
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export interface BooleanAttribute {
|
|
17
|
+
readonly enabled: boolean;
|
|
18
|
+
readonly name: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Creates a boolean-attribute marker for the {@link html} and {@link safeHtml} template tags.
|
|
22
|
+
*
|
|
23
|
+
* When the condition is truthy, the attribute name is rendered without a value.
|
|
24
|
+
* When the condition is falsy, an empty string is rendered and any surrounding
|
|
25
|
+
* template-literal whitespace is preserved.
|
|
26
|
+
*
|
|
27
|
+
* @param name - HTML attribute name to emit
|
|
28
|
+
* @param enabled - Whether the boolean attribute should be present
|
|
29
|
+
* @returns Internal marker consumed by template tags
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* html`<button ${bool('disabled', isDisabled)}>Save</button>`;
|
|
34
|
+
* // Result when isDisabled = true: '<button disabled>Save</button>'
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare const bool: (name: string, enabled: unknown) => BooleanAttribute;
|
|
1
38
|
/**
|
|
2
39
|
* Tagged template literal for creating HTML strings.
|
|
3
40
|
*
|
|
@@ -22,14 +59,14 @@ export declare const html: (strings: TemplateStringsArray, ...values: unknown[])
|
|
|
22
59
|
*
|
|
23
60
|
* @param strings - Template literal string parts
|
|
24
61
|
* @param values - Interpolated values to escape
|
|
25
|
-
* @returns
|
|
62
|
+
* @returns Branded escaped HTML string safe for bQuery template composition
|
|
26
63
|
*
|
|
27
64
|
* @example
|
|
28
65
|
* ```ts
|
|
29
66
|
* const userInput = '<script>alert("xss")</script>';
|
|
30
67
|
* const safe = safeHtml`<div>${userInput}</div>`;
|
|
31
|
-
* // Result: '<div><script>alert(
|
|
68
|
+
* // Result: '<div><script>alert("xss")</script></div>'
|
|
32
69
|
* ```
|
|
33
70
|
*/
|
|
34
|
-
export declare const safeHtml: (strings: TemplateStringsArray, ...values: unknown[]) =>
|
|
71
|
+
export declare const safeHtml: (strings: TemplateStringsArray, ...values: unknown[]) => SanitizedHtml;
|
|
35
72
|
//# sourceMappingURL=html.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/component/html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,oBAAoB,EAAE,GAAG,QAAQ,OAAO,EAAE,KAAG,MAE1E,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/component/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,0BAA0B,CAAC;AAIlC;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA4CD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,GAAI,MAAM,MAAM,EAAE,SAAS,OAAO,KAAG,gBAYrD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,IAAI,GAAI,SAAS,oBAAoB,EAAE,GAAG,QAAQ,OAAO,EAAE,KAAG,MAE1E,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,QAAQ,GACnB,SAAS,oBAAoB,EAC7B,GAAG,QAAQ,OAAO,EAAE,KACnB,aAYF,CAAC"}
|
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
* ```
|
|
36
36
|
*/
|
|
37
37
|
export { component, defineComponent } from './component';
|
|
38
|
-
export { html, safeHtml } from './html';
|
|
39
|
-
export
|
|
38
|
+
export { bool, html, safeHtml } from './html';
|
|
39
|
+
export { registerDefaultComponents } from './library';
|
|
40
|
+
export type { DefaultComponentLibraryOptions, RegisteredDefaultComponents } from './library';
|
|
41
|
+
export type { AttributeChange, ComponentDefinition, ComponentRenderContext, ComponentStateKey, ComponentSignalLike, ComponentSignals, PropDefinition, } from './types';
|
|
40
42
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/component/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAEH,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,8BAA8B,EAAE,2BAA2B,EAAE,MAAM,WAAW,CAAC;AAC7F,YAAY,EACV,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,GACf,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default component library based on native Web Components.
|
|
3
|
+
*
|
|
4
|
+
* @module bquery/component
|
|
5
|
+
*/
|
|
6
|
+
/** Options for registering the default component library. */
|
|
7
|
+
export interface DefaultComponentLibraryOptions {
|
|
8
|
+
/** Prefix used for all registered component tags. Defaults to `bq`. */
|
|
9
|
+
prefix?: string;
|
|
10
|
+
}
|
|
11
|
+
/** Tag names returned by registerDefaultComponents(). */
|
|
12
|
+
export interface RegisteredDefaultComponents {
|
|
13
|
+
/** Button component tag name. */
|
|
14
|
+
button: string;
|
|
15
|
+
/** Card component tag name. */
|
|
16
|
+
card: string;
|
|
17
|
+
/** Input component tag name. */
|
|
18
|
+
input: string;
|
|
19
|
+
/** Textarea component tag name. */
|
|
20
|
+
textarea: string;
|
|
21
|
+
/** Checkbox component tag name. */
|
|
22
|
+
checkbox: string;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Register a default set of foundational UI components.
|
|
26
|
+
*
|
|
27
|
+
* The library is intentionally small and dependency-free, providing common
|
|
28
|
+
* primitives that can be themed via shadow parts and CSS custom properties.
|
|
29
|
+
*
|
|
30
|
+
* @param options - Optional registration settings such as a custom tag prefix
|
|
31
|
+
* @returns The registered tag names for each component
|
|
32
|
+
*/
|
|
33
|
+
export declare const registerDefaultComponents: (options?: DefaultComponentLibraryOptions) => RegisteredDefaultComponents;
|
|
34
|
+
//# sourceMappingURL=library.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"library.d.ts","sourceRoot":"","sources":["../../src/component/library.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,6DAA6D;AAC7D,MAAM,WAAW,8BAA8B;IAC7C,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yDAAyD;AACzD,MAAM,WAAW,2BAA2B;IAC1C,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAsKD;;;;;;;;GAQG;AACH,eAAO,MAAM,yBAAyB,GACpC,UAAS,8BAAmC,KAC3C,2BAuTF,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* @module bquery/component
|
|
5
5
|
*/
|
|
6
|
+
import type { SanitizeOptions } from '../security/types';
|
|
6
7
|
/**
|
|
7
8
|
* Defines a single prop's type and configuration.
|
|
8
9
|
*
|
|
@@ -36,42 +37,160 @@ export type PropDefinition<T = unknown> = {
|
|
|
36
37
|
*/
|
|
37
38
|
construct?: boolean;
|
|
38
39
|
};
|
|
40
|
+
/**
|
|
41
|
+
* Resolves the concrete runtime state shape exposed by component APIs.
|
|
42
|
+
*
|
|
43
|
+
* When no explicit state generic is provided, component state falls back to
|
|
44
|
+
* an untyped string-keyed record for backwards compatibility.
|
|
45
|
+
*/
|
|
46
|
+
export type ComponentStateShape<TState extends Record<string, unknown> | undefined = undefined> = TState extends Record<string, unknown> ? TState : Record<string, unknown>;
|
|
47
|
+
/**
|
|
48
|
+
* Component state keys are string-based because runtime state access is backed
|
|
49
|
+
* by plain object properties.
|
|
50
|
+
*/
|
|
51
|
+
export type ComponentStateKey<TState extends Record<string, unknown> | undefined = undefined> = keyof ComponentStateShape<TState> & string;
|
|
52
|
+
/**
|
|
53
|
+
* Public component element instance shape exposed by lifecycle hooks and
|
|
54
|
+
* `defineComponent()` return values.
|
|
55
|
+
*/
|
|
56
|
+
export type ComponentElement<TState extends Record<string, unknown> | undefined = undefined> = HTMLElement & {
|
|
57
|
+
/**
|
|
58
|
+
* Updates a state property and triggers a re-render.
|
|
59
|
+
*
|
|
60
|
+
* @param key - The state property key
|
|
61
|
+
* @param value - The new value
|
|
62
|
+
*/
|
|
63
|
+
setState<TKey extends ComponentStateKey<TState>>(key: TKey, value: ComponentStateShape<TState>[TKey]): void;
|
|
64
|
+
/**
|
|
65
|
+
* Gets a state property value.
|
|
66
|
+
*
|
|
67
|
+
* @param key - The state property key
|
|
68
|
+
* @returns The current value
|
|
69
|
+
*/
|
|
70
|
+
getState<TKey extends ComponentStateKey<TState>>(key: TKey): ComponentStateShape<TState>[TKey];
|
|
71
|
+
/**
|
|
72
|
+
* Gets a state property value with an explicit cast for backwards
|
|
73
|
+
* compatibility with the pre-typed-state API.
|
|
74
|
+
*
|
|
75
|
+
* @param key - The state property key
|
|
76
|
+
* @returns The current value cast to `TResult`
|
|
77
|
+
*/
|
|
78
|
+
getState<TResult = unknown>(key: string): TResult;
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Constructor returned by `defineComponent()`.
|
|
82
|
+
*/
|
|
83
|
+
export type ComponentClass<TState extends Record<string, unknown> | undefined = undefined> = CustomElementConstructor & {
|
|
84
|
+
new (): ComponentElement<TState>;
|
|
85
|
+
prototype: ComponentElement<TState>;
|
|
86
|
+
readonly observedAttributes: string[];
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Minimal reactive source shape supported by component `signals`.
|
|
90
|
+
*
|
|
91
|
+
* @template T - Value exposed by the signal-like source
|
|
92
|
+
*/
|
|
93
|
+
export type ComponentSignalLike<T = unknown> = {
|
|
94
|
+
/** Gets the current reactive value */
|
|
95
|
+
readonly value: T;
|
|
96
|
+
/** Gets the current value without dependency tracking */
|
|
97
|
+
peek(): T;
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* Named reactive sources that can drive component re-renders.
|
|
101
|
+
*/
|
|
102
|
+
export type ComponentSignals = Record<string, ComponentSignalLike<unknown>>;
|
|
39
103
|
/**
|
|
40
104
|
* Render context passed into a component render function.
|
|
105
|
+
*
|
|
106
|
+
* @template TProps - Type of the component's props
|
|
107
|
+
* @template TState - Type of the component's internal state
|
|
108
|
+
* @template TSignals - Declared reactive sources available during render
|
|
41
109
|
*/
|
|
42
|
-
export type ComponentRenderContext<TProps extends Record<string, unknown>> = {
|
|
110
|
+
export type ComponentRenderContext<TProps extends Record<string, unknown>, TState extends Record<string, unknown> | undefined = undefined, TSignals extends ComponentSignals = Record<string, never>> = {
|
|
43
111
|
/** Typed props object populated from attributes */
|
|
44
112
|
props: TProps;
|
|
45
113
|
/** Internal mutable state object */
|
|
46
|
-
state:
|
|
114
|
+
state: ComponentStateShape<TState>;
|
|
115
|
+
/** External reactive sources subscribed for re-rendering */
|
|
116
|
+
signals: TSignals;
|
|
47
117
|
/** Emit a custom event from the component */
|
|
48
118
|
emit: (event: string, detail?: unknown) => void;
|
|
49
119
|
};
|
|
120
|
+
/**
|
|
121
|
+
* Describes an observed attribute change that triggered a component update.
|
|
122
|
+
*/
|
|
123
|
+
export type AttributeChange = {
|
|
124
|
+
/** The observed attribute name */
|
|
125
|
+
name: string;
|
|
126
|
+
/** The previous serialized attribute value */
|
|
127
|
+
oldValue: string | null;
|
|
128
|
+
/** The next serialized attribute value */
|
|
129
|
+
newValue: string | null;
|
|
130
|
+
};
|
|
50
131
|
/**
|
|
51
132
|
* Complete component definition including props, state, styles, and lifecycle.
|
|
52
133
|
*
|
|
53
134
|
* @template TProps - Type of the component's props
|
|
135
|
+
* @template TState - Type of the component's internal state
|
|
54
136
|
*/
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
137
|
+
type ComponentSanitizeOptions = Pick<SanitizeOptions, 'allowTags' | 'allowAttributes'>;
|
|
138
|
+
type ComponentHook<TState extends Record<string, unknown> | undefined = undefined, TResult = void> = {
|
|
139
|
+
(this: ComponentElement<TState>): TResult;
|
|
140
|
+
(): TResult;
|
|
141
|
+
};
|
|
142
|
+
type ComponentHookWithProps<TProps extends Record<string, unknown>, TState extends Record<string, unknown> | undefined = undefined, TResult = void> = {
|
|
143
|
+
(this: ComponentElement<TState>, newProps: TProps, oldProps: TProps): TResult;
|
|
144
|
+
(newProps: TProps, oldProps: TProps): TResult;
|
|
145
|
+
};
|
|
146
|
+
type ComponentUpdatedHook<TState extends Record<string, unknown> | undefined = undefined, TResult = void> = {
|
|
147
|
+
(this: ComponentElement<TState>, change?: AttributeChange): TResult;
|
|
148
|
+
(change?: AttributeChange): TResult;
|
|
149
|
+
};
|
|
150
|
+
type ComponentErrorHook<TState extends Record<string, unknown> | undefined = undefined> = {
|
|
151
|
+
(this: ComponentElement<TState>, error: Error): void;
|
|
152
|
+
(error: Error): void;
|
|
153
|
+
};
|
|
154
|
+
type ComponentStateDefinition<TState extends Record<string, unknown> | undefined = undefined> = TState extends Record<string, unknown> ? {
|
|
155
|
+
/** Initial internal state */
|
|
156
|
+
state: TState;
|
|
157
|
+
} : {
|
|
58
158
|
/** Initial internal state */
|
|
59
159
|
state?: Record<string, unknown>;
|
|
160
|
+
};
|
|
161
|
+
type ComponentSignalsDefinition<TSignals extends ComponentSignals = Record<string, never>> = TSignals extends Record<string, never> ? {
|
|
162
|
+
/** External signals/computed values that should trigger re-renders */
|
|
163
|
+
signals?: TSignals;
|
|
164
|
+
} : {
|
|
165
|
+
/** External signals/computed values that should trigger re-renders */
|
|
166
|
+
signals: TSignals;
|
|
167
|
+
};
|
|
168
|
+
export type ComponentDefinition<TProps extends Record<string, unknown> = Record<string, unknown>, TState extends Record<string, unknown> | undefined = undefined, TSignals extends ComponentSignals = Record<string, never>> = ComponentStateDefinition<TState> & ComponentSignalsDefinition<TSignals> & {
|
|
169
|
+
/** Prop definitions with types and defaults */
|
|
170
|
+
props?: Record<keyof TProps, PropDefinition>;
|
|
60
171
|
/** CSS styles scoped to the component's shadow DOM */
|
|
61
172
|
styles?: string;
|
|
173
|
+
/**
|
|
174
|
+
* Extra sanitizer options merged with the framework base allowlist during render.
|
|
175
|
+
* Only opt in attributes/tags whose values you control or validate. Sensitive
|
|
176
|
+
* attributes such as `style` are not value-sanitized and can reintroduce XSS
|
|
177
|
+
* or UI-redressing risks if used with untrusted input.
|
|
178
|
+
*/
|
|
179
|
+
sanitize?: ComponentSanitizeOptions;
|
|
62
180
|
/** Lifecycle hook called before the component mounts (before first render) */
|
|
63
|
-
beforeMount?:
|
|
181
|
+
beforeMount?: ComponentHook<TState>;
|
|
64
182
|
/** Lifecycle hook called when component is added to DOM */
|
|
65
|
-
connected?:
|
|
183
|
+
connected?: ComponentHook<TState>;
|
|
66
184
|
/** Lifecycle hook called when component is removed from DOM */
|
|
67
|
-
disconnected?:
|
|
185
|
+
disconnected?: ComponentHook<TState>;
|
|
68
186
|
/** Lifecycle hook called before an update render; return false to prevent */
|
|
69
|
-
beforeUpdate?:
|
|
70
|
-
/** Lifecycle hook called after
|
|
71
|
-
updated?:
|
|
187
|
+
beforeUpdate?: ComponentHookWithProps<TProps, TState, boolean | void>;
|
|
188
|
+
/** Lifecycle hook called after update renders; receives attribute change info when applicable */
|
|
189
|
+
updated?: ComponentUpdatedHook<TState>;
|
|
72
190
|
/** Error handler for errors during rendering or lifecycle */
|
|
73
|
-
onError?:
|
|
191
|
+
onError?: ComponentErrorHook<TState>;
|
|
74
192
|
/** Render function returning HTML string */
|
|
75
|
-
render: (context: ComponentRenderContext<TProps>) => string;
|
|
193
|
+
render: (context: ComponentRenderContext<TProps, TState, TSignals>) => string;
|
|
76
194
|
};
|
|
195
|
+
export {};
|
|
77
196
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/component/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;;;;;;GAaG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,GAAG,OAAO,IAAI;IACxC,0DAA0D;IAC1D,IAAI,EACA,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,gBAAgB,GAChB;QAAE,KAAK,KAAK,EAAE,OAAO,GAAG,CAAC,CAAA;KAAE,GAC3B,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;IAC5B,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,0DAA0D;IAC1D,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC;IAClC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/component/types.ts"],"names":[],"mappings":"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"}
|