@bquery/bquery 1.2.0 → 1.3.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 +501 -427
- package/dist/batch-4LAvfLE7.js +13 -0
- package/dist/batch-4LAvfLE7.js.map +1 -0
- package/dist/component/component.d.ts +69 -0
- package/dist/component/component.d.ts.map +1 -0
- package/dist/component/html.d.ts +35 -0
- package/dist/component/html.d.ts.map +1 -0
- package/dist/component/index.d.ts +3 -126
- package/dist/component/index.d.ts.map +1 -1
- package/dist/component/props.d.ts +18 -0
- package/dist/component/props.d.ts.map +1 -0
- package/dist/component/types.d.ts +77 -0
- package/dist/component/types.d.ts.map +1 -0
- package/dist/component.es.mjs +90 -59
- package/dist/component.es.mjs.map +1 -1
- package/dist/core/collection.d.ts +36 -0
- package/dist/core/collection.d.ts.map +1 -1
- package/dist/core/dom.d.ts +6 -0
- package/dist/core/dom.d.ts.map +1 -0
- package/dist/core/element.d.ts +8 -0
- package/dist/core/element.d.ts.map +1 -1
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/utils/array.d.ts +74 -0
- package/dist/core/utils/array.d.ts.map +1 -0
- package/dist/core/utils/function.d.ts +70 -0
- package/dist/core/utils/function.d.ts.map +1 -0
- package/dist/core/utils/index.d.ts +70 -0
- package/dist/core/utils/index.d.ts.map +1 -0
- package/dist/core/utils/misc.d.ts +63 -0
- package/dist/core/utils/misc.d.ts.map +1 -0
- package/dist/core/utils/number.d.ts +65 -0
- package/dist/core/utils/number.d.ts.map +1 -0
- package/dist/core/utils/object.d.ts +133 -0
- package/dist/core/utils/object.d.ts.map +1 -0
- package/dist/core/utils/string.d.ts +80 -0
- package/dist/core/utils/string.d.ts.map +1 -0
- package/dist/core/utils/type-guards.d.ts +79 -0
- package/dist/core/utils/type-guards.d.ts.map +1 -0
- package/dist/core-COenAZjD.js +145 -0
- package/dist/core-COenAZjD.js.map +1 -0
- package/dist/core.es.mjs +411 -448
- package/dist/core.es.mjs.map +1 -1
- package/dist/full.d.ts +2 -2
- package/dist/full.d.ts.map +1 -1
- package/dist/full.es.mjs +87 -64
- package/dist/full.es.mjs.map +1 -1
- package/dist/full.iife.js +2 -2
- package/dist/full.iife.js.map +1 -1
- package/dist/full.umd.js +2 -2
- package/dist/full.umd.js.map +1 -1
- package/dist/index.es.mjs +138 -68
- package/dist/index.es.mjs.map +1 -1
- package/dist/motion/animate.d.ts +25 -0
- package/dist/motion/animate.d.ts.map +1 -0
- package/dist/motion/easing.d.ts +30 -0
- package/dist/motion/easing.d.ts.map +1 -0
- package/dist/motion/flip.d.ts +55 -0
- package/dist/motion/flip.d.ts.map +1 -0
- package/dist/motion/index.d.ts +11 -138
- package/dist/motion/index.d.ts.map +1 -1
- package/dist/motion/keyframes.d.ts +21 -0
- package/dist/motion/keyframes.d.ts.map +1 -0
- package/dist/motion/reduced-motion.d.ts +12 -0
- package/dist/motion/reduced-motion.d.ts.map +1 -0
- package/dist/motion/scroll.d.ts +15 -0
- package/dist/motion/scroll.d.ts.map +1 -0
- package/dist/motion/spring.d.ts +42 -0
- package/dist/motion/spring.d.ts.map +1 -0
- package/dist/motion/stagger.d.ts +22 -0
- package/dist/motion/stagger.d.ts.map +1 -0
- package/dist/motion/timeline.d.ts +21 -0
- package/dist/motion/timeline.d.ts.map +1 -0
- package/dist/motion/transition.d.ts +22 -0
- package/dist/motion/transition.d.ts.map +1 -0
- package/dist/motion/types.d.ts +182 -0
- package/dist/motion/types.d.ts.map +1 -0
- package/dist/motion.es.mjs +320 -61
- package/dist/motion.es.mjs.map +1 -1
- package/dist/persisted-Dz_ryNuC.js +278 -0
- package/dist/persisted-Dz_ryNuC.js.map +1 -0
- package/dist/reactive/batch.d.ts +13 -0
- package/dist/reactive/batch.d.ts.map +1 -0
- package/dist/reactive/computed.d.ts +50 -0
- package/dist/reactive/computed.d.ts.map +1 -0
- package/dist/reactive/core.d.ts +60 -0
- package/dist/reactive/core.d.ts.map +1 -0
- package/dist/reactive/effect.d.ts +15 -0
- package/dist/reactive/effect.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/internals.d.ts +36 -0
- package/dist/reactive/internals.d.ts.map +1 -0
- package/dist/reactive/linked.d.ts +36 -0
- package/dist/reactive/linked.d.ts.map +1 -0
- package/dist/reactive/persisted.d.ts +14 -0
- package/dist/reactive/persisted.d.ts.map +1 -0
- package/dist/reactive/readonly.d.ts +26 -0
- package/dist/reactive/readonly.d.ts.map +1 -0
- package/dist/reactive/signal.d.ts +13 -312
- package/dist/reactive/signal.d.ts.map +1 -1
- package/dist/reactive/type-guards.d.ts +20 -0
- package/dist/reactive/type-guards.d.ts.map +1 -0
- package/dist/reactive/untrack.d.ts +29 -0
- package/dist/reactive/untrack.d.ts.map +1 -0
- package/dist/reactive/watch.d.ts +42 -0
- package/dist/reactive/watch.d.ts.map +1 -0
- package/dist/reactive.es.mjs +30 -163
- package/dist/reactive.es.mjs.map +1 -1
- package/dist/router/index.d.ts +6 -252
- package/dist/router/index.d.ts.map +1 -1
- package/dist/router/links.d.ts +44 -0
- package/dist/router/links.d.ts.map +1 -0
- package/dist/router/match.d.ts +20 -0
- package/dist/router/match.d.ts.map +1 -0
- package/dist/router/navigation.d.ts +45 -0
- package/dist/router/navigation.d.ts.map +1 -0
- package/dist/router/query.d.ts +16 -0
- package/dist/router/query.d.ts.map +1 -0
- package/dist/router/router.d.ts +34 -0
- package/dist/router/router.d.ts.map +1 -0
- package/dist/router/state.d.ts +27 -0
- package/dist/router/state.d.ts.map +1 -0
- package/dist/router/types.d.ts +88 -0
- package/dist/router/types.d.ts.map +1 -0
- package/dist/router/utils.d.ts +65 -0
- package/dist/router/utils.d.ts.map +1 -0
- package/dist/router.es.mjs +168 -132
- package/dist/router.es.mjs.map +1 -1
- package/dist/sanitize-1FBEPAFH.js +272 -0
- package/dist/sanitize-1FBEPAFH.js.map +1 -0
- package/dist/security/constants.d.ts +42 -0
- package/dist/security/constants.d.ts.map +1 -0
- package/dist/security/csp.d.ts +24 -0
- package/dist/security/csp.d.ts.map +1 -0
- package/dist/security/index.d.ts +4 -2
- package/dist/security/index.d.ts.map +1 -1
- package/dist/security/sanitize-core.d.ts +13 -0
- package/dist/security/sanitize-core.d.ts.map +1 -0
- package/dist/security/sanitize.d.ts +5 -57
- package/dist/security/sanitize.d.ts.map +1 -1
- package/dist/security/trusted-types.d.ts +25 -0
- package/dist/security/trusted-types.d.ts.map +1 -0
- package/dist/security/types.d.ts +36 -0
- package/dist/security/types.d.ts.map +1 -0
- package/dist/security.es.mjs +50 -277
- package/dist/security.es.mjs.map +1 -1
- package/dist/store/create-store.d.ts +15 -0
- package/dist/store/create-store.d.ts.map +1 -0
- package/dist/store/define-store.d.ts +28 -0
- package/dist/store/define-store.d.ts.map +1 -0
- package/dist/store/devtools.d.ts +22 -0
- package/dist/store/devtools.d.ts.map +1 -0
- package/dist/store/index.d.ts +10 -286
- package/dist/store/index.d.ts.map +1 -1
- package/dist/store/mapping.d.ts +28 -0
- package/dist/store/mapping.d.ts.map +1 -0
- package/dist/store/persisted.d.ts +13 -0
- package/dist/store/persisted.d.ts.map +1 -0
- package/dist/store/plugins.d.ts +13 -0
- package/dist/store/plugins.d.ts.map +1 -0
- package/dist/store/registry.d.ts +28 -0
- package/dist/store/registry.d.ts.map +1 -0
- package/dist/store/types.d.ts +71 -0
- package/dist/store/types.d.ts.map +1 -0
- package/dist/store/utils.d.ts +28 -0
- package/dist/store/utils.d.ts.map +1 -0
- package/dist/store/watch.d.ts +23 -0
- package/dist/store/watch.d.ts.map +1 -0
- package/dist/store.es.mjs +22 -224
- package/dist/store.es.mjs.map +1 -1
- package/dist/type-guards-DRma3-Kc.js +16 -0
- package/dist/type-guards-DRma3-Kc.js.map +1 -0
- package/dist/untrack-BuEQKH7_.js +6 -0
- package/dist/untrack-BuEQKH7_.js.map +1 -0
- package/dist/view/directives/bind.d.ts +7 -0
- package/dist/view/directives/bind.d.ts.map +1 -0
- package/dist/view/directives/class.d.ts +8 -0
- package/dist/view/directives/class.d.ts.map +1 -0
- package/dist/view/directives/for.d.ts +23 -0
- package/dist/view/directives/for.d.ts.map +1 -0
- package/dist/view/directives/html.d.ts +7 -0
- package/dist/view/directives/html.d.ts.map +1 -0
- package/dist/view/directives/if.d.ts +7 -0
- package/dist/view/directives/if.d.ts.map +1 -0
- package/dist/view/directives/index.d.ts +12 -0
- package/dist/view/directives/index.d.ts.map +1 -0
- package/dist/view/directives/model.d.ts +7 -0
- package/dist/view/directives/model.d.ts.map +1 -0
- package/dist/view/directives/on.d.ts +7 -0
- package/dist/view/directives/on.d.ts.map +1 -0
- package/dist/view/directives/ref.d.ts +7 -0
- package/dist/view/directives/ref.d.ts.map +1 -0
- package/dist/view/directives/show.d.ts +7 -0
- package/dist/view/directives/show.d.ts.map +1 -0
- package/dist/view/directives/style.d.ts +7 -0
- package/dist/view/directives/style.d.ts.map +1 -0
- package/dist/view/directives/text.d.ts +7 -0
- package/dist/view/directives/text.d.ts.map +1 -0
- package/dist/view/evaluate.d.ts +43 -0
- package/dist/view/evaluate.d.ts.map +1 -0
- package/dist/view/index.d.ts +3 -93
- package/dist/view/index.d.ts.map +1 -1
- package/dist/view/mount.d.ts +69 -0
- package/dist/view/mount.d.ts.map +1 -0
- package/dist/view/process.d.ts +26 -0
- package/dist/view/process.d.ts.map +1 -0
- package/dist/view/types.d.ts +36 -0
- package/dist/view/types.d.ts.map +1 -0
- package/dist/view.es.mjs +368 -267
- package/dist/view.es.mjs.map +1 -1
- package/dist/watch-CXyaBC_9.js +58 -0
- package/dist/watch-CXyaBC_9.js.map +1 -0
- package/package.json +132 -132
- package/src/component/component.ts +289 -0
- package/src/component/html.ts +53 -0
- package/src/component/index.ts +40 -414
- package/src/component/props.ts +116 -0
- package/src/component/types.ts +85 -0
- package/src/core/collection.ts +588 -454
- package/src/core/dom.ts +38 -0
- package/src/core/element.ts +746 -740
- package/src/core/index.ts +43 -0
- package/src/core/utils/array.ts +102 -0
- package/src/core/utils/function.ts +110 -0
- package/src/core/utils/index.ts +83 -0
- package/src/core/utils/misc.ts +82 -0
- package/src/core/utils/number.ts +78 -0
- package/src/core/utils/object.ts +206 -0
- package/src/core/utils/string.ts +112 -0
- package/src/core/utils/type-guards.ts +112 -0
- package/src/full.ts +187 -150
- package/src/index.ts +36 -36
- package/src/motion/animate.ts +113 -0
- package/src/motion/easing.ts +40 -0
- package/src/motion/flip.ts +176 -0
- package/src/motion/index.ts +41 -358
- package/src/motion/keyframes.ts +46 -0
- package/src/motion/reduced-motion.ts +17 -0
- package/src/motion/scroll.ts +57 -0
- package/src/motion/spring.ts +150 -0
- package/src/motion/stagger.ts +43 -0
- package/src/motion/timeline.ts +246 -0
- package/src/motion/transition.ts +51 -0
- package/src/motion/types.ts +198 -0
- package/src/reactive/batch.ts +22 -0
- package/src/reactive/computed.ts +92 -0
- package/src/reactive/core.ts +93 -0
- package/src/reactive/effect.ts +43 -0
- package/src/reactive/index.ts +23 -22
- package/src/reactive/internals.ts +105 -0
- package/src/reactive/linked.ts +56 -0
- package/src/reactive/persisted.ts +74 -0
- package/src/reactive/readonly.ts +35 -0
- package/src/reactive/signal.ts +20 -520
- package/src/reactive/type-guards.ts +22 -0
- package/src/reactive/untrack.ts +31 -0
- package/src/reactive/watch.ts +73 -0
- package/src/router/index.ts +41 -718
- package/src/router/links.ts +130 -0
- package/src/router/match.ts +106 -0
- package/src/router/navigation.ts +71 -0
- package/src/router/query.ts +35 -0
- package/src/router/router.ts +211 -0
- package/src/router/state.ts +46 -0
- package/src/router/types.ts +93 -0
- package/src/router/utils.ts +116 -0
- package/src/security/constants.ts +209 -0
- package/src/security/csp.ts +77 -0
- package/src/security/index.ts +4 -12
- package/src/security/sanitize-core.ts +343 -0
- package/src/security/sanitize.ts +66 -625
- package/src/security/trusted-types.ts +69 -0
- package/src/security/types.ts +40 -0
- package/src/store/create-store.ts +329 -0
- package/src/store/define-store.ts +48 -0
- package/src/store/devtools.ts +45 -0
- package/src/store/index.ts +22 -848
- package/src/store/mapping.ts +73 -0
- package/src/store/persisted.ts +61 -0
- package/src/store/plugins.ts +32 -0
- package/src/store/registry.ts +51 -0
- package/src/store/types.ts +94 -0
- package/src/store/utils.ts +141 -0
- package/src/store/watch.ts +52 -0
- package/src/view/directives/bind.ts +23 -0
- package/src/view/directives/class.ts +70 -0
- package/src/view/directives/for.ts +275 -0
- package/src/view/directives/html.ts +19 -0
- package/src/view/directives/if.ts +30 -0
- package/src/view/directives/index.ts +11 -0
- package/src/view/directives/model.ts +56 -0
- package/src/view/directives/on.ts +41 -0
- package/src/view/directives/ref.ts +41 -0
- package/src/view/directives/show.ts +26 -0
- package/src/view/directives/style.ts +47 -0
- package/src/view/directives/text.ts +15 -0
- package/src/view/evaluate.ts +274 -0
- package/src/view/index.ts +112 -1041
- package/src/view/mount.ts +200 -0
- package/src/view/process.ts +92 -0
- package/src/view/types.ts +44 -0
- package/dist/core/utils.d.ts +0 -313
- package/dist/core/utils.d.ts.map +0 -1
- package/src/core/utils.ts +0 -444
package/dist/view/index.d.ts
CHANGED
|
@@ -101,99 +101,9 @@
|
|
|
101
101
|
* });
|
|
102
102
|
* ```
|
|
103
103
|
*/
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
export type BindingContext = Record<string, unknown>;
|
|
108
|
-
/**
|
|
109
|
-
* Configuration options for mount.
|
|
110
|
-
*/
|
|
111
|
-
export type MountOptions = {
|
|
112
|
-
/** Prefix for directive attributes (default: 'bq') */
|
|
113
|
-
prefix?: string;
|
|
114
|
-
/** Whether to sanitize bq-html content (default: true) */
|
|
115
|
-
sanitize?: boolean;
|
|
116
|
-
};
|
|
117
|
-
/**
|
|
118
|
-
* Mounted view instance.
|
|
119
|
-
*/
|
|
120
|
-
export type View = {
|
|
121
|
-
/** The root element */
|
|
122
|
-
el: Element;
|
|
123
|
-
/** The binding context */
|
|
124
|
-
context: BindingContext;
|
|
125
|
-
/** Update the context and re-render */
|
|
126
|
-
update: (newContext: Partial<BindingContext>) => void;
|
|
127
|
-
/** Destroy the view and cleanup effects */
|
|
128
|
-
destroy: () => void;
|
|
129
|
-
};
|
|
130
|
-
/**
|
|
131
|
-
* Mounts a reactive view to an element.
|
|
132
|
-
*
|
|
133
|
-
* @param selector - CSS selector or Element
|
|
134
|
-
* @param context - Binding context with signals, computed, and functions
|
|
135
|
-
* @param options - Mount options
|
|
136
|
-
* @returns The mounted View instance
|
|
137
|
-
*
|
|
138
|
-
* @security **WARNING:** Directive expressions (bq-text, bq-if, bq-on, etc.) are evaluated
|
|
139
|
-
* using `new Function()` at runtime. This means:
|
|
140
|
-
* - Template attributes must come from trusted sources only
|
|
141
|
-
* - NEVER load templates containing bq-* attributes from user input or untrusted APIs
|
|
142
|
-
* - If you must use external templates, validate/sanitize attribute values first
|
|
143
|
-
*
|
|
144
|
-
* @example
|
|
145
|
-
* ```ts
|
|
146
|
-
* import { mount } from 'bquery/view';
|
|
147
|
-
* import { signal, computed } from 'bquery/reactive';
|
|
148
|
-
*
|
|
149
|
-
* const name = signal('World');
|
|
150
|
-
* const greeting = computed(() => `Hello, ${name.value}!`);
|
|
151
|
-
* const items = signal([
|
|
152
|
-
* { id: 1, text: 'Item 1' },
|
|
153
|
-
* { id: 2, text: 'Item 2' },
|
|
154
|
-
* ]);
|
|
155
|
-
*
|
|
156
|
-
* const view = mount('#app', {
|
|
157
|
-
* name,
|
|
158
|
-
* greeting,
|
|
159
|
-
* items,
|
|
160
|
-
* addItem: () => {
|
|
161
|
-
* items.value = [...items.value, { id: Date.now(), text: 'New Item' }];
|
|
162
|
-
* },
|
|
163
|
-
* });
|
|
164
|
-
*
|
|
165
|
-
* // Later, cleanup
|
|
166
|
-
* view.destroy();
|
|
167
|
-
* ```
|
|
168
|
-
*/
|
|
169
|
-
export declare const mount: (selector: string | Element, context: BindingContext, options?: MountOptions) => View;
|
|
170
|
-
/**
|
|
171
|
-
* Creates a reactive template function.
|
|
172
|
-
*
|
|
173
|
-
* @param template - HTML template string
|
|
174
|
-
* @returns A function that creates a mounted element with the given context
|
|
175
|
-
*
|
|
176
|
-
* @example
|
|
177
|
-
* ```ts
|
|
178
|
-
* import { createTemplate } from 'bquery/view';
|
|
179
|
-
* import { signal } from 'bquery/reactive';
|
|
180
|
-
*
|
|
181
|
-
* const TodoItem = createTemplate(`
|
|
182
|
-
* <li bq-class="{ completed: done }">
|
|
183
|
-
* <input type="checkbox" bq-model="done" />
|
|
184
|
-
* <span bq-text="text"></span>
|
|
185
|
-
* </li>
|
|
186
|
-
* `);
|
|
187
|
-
*
|
|
188
|
-
* const item = TodoItem({
|
|
189
|
-
* done: signal(false),
|
|
190
|
-
* text: 'Buy groceries',
|
|
191
|
-
* });
|
|
192
|
-
*
|
|
193
|
-
* document.querySelector('#list').append(item.el);
|
|
194
|
-
* ```
|
|
195
|
-
*/
|
|
196
|
-
export declare const createTemplate: (template: string, options?: MountOptions) => ((context: BindingContext) => View);
|
|
104
|
+
export { clearExpressionCache } from './evaluate';
|
|
105
|
+
export { createTemplate, mount } from './mount';
|
|
106
|
+
export type { BindingContext, MountOptions, View } from './types';
|
|
197
107
|
/**
|
|
198
108
|
* Re-export reactive primitives for convenience.
|
|
199
109
|
*/
|
package/dist/view/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/view/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElE;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import type { BindingContext, MountOptions, View } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Mounts a reactive view to an element.
|
|
4
|
+
*
|
|
5
|
+
* @param selector - CSS selector or Element
|
|
6
|
+
* @param context - Binding context with signals, computed, and functions
|
|
7
|
+
* @param options - Mount options
|
|
8
|
+
* @returns The mounted View instance
|
|
9
|
+
*
|
|
10
|
+
* @security **WARNING:** Directive expressions (bq-text, bq-if, bq-on, etc.) are evaluated
|
|
11
|
+
* using `new Function()` at runtime. This means:
|
|
12
|
+
* - Template attributes must come from trusted sources only
|
|
13
|
+
* - NEVER load templates containing bq-* attributes from user input or untrusted APIs
|
|
14
|
+
* - If you must use external templates, validate/sanitize attribute values first
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* import { mount } from 'bquery/view';
|
|
19
|
+
* import { signal, computed } from 'bquery/reactive';
|
|
20
|
+
*
|
|
21
|
+
* const name = signal('World');
|
|
22
|
+
* const greeting = computed(() => `Hello, ${name.value}!`);
|
|
23
|
+
* const items = signal([
|
|
24
|
+
* { id: 1, text: 'Item 1' },
|
|
25
|
+
* { id: 2, text: 'Item 2' },
|
|
26
|
+
* ]);
|
|
27
|
+
*
|
|
28
|
+
* const view = mount('#app', {
|
|
29
|
+
* name,
|
|
30
|
+
* greeting,
|
|
31
|
+
* items,
|
|
32
|
+
* addItem: () => {
|
|
33
|
+
* items.value = [...items.value, { id: Date.now(), text: 'New Item' }];
|
|
34
|
+
* },
|
|
35
|
+
* });
|
|
36
|
+
*
|
|
37
|
+
* // Later, cleanup
|
|
38
|
+
* view.destroy();
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare const mount: (selector: string | Element, context: BindingContext, options?: MountOptions) => View;
|
|
42
|
+
/**
|
|
43
|
+
* Creates a reactive template function.
|
|
44
|
+
*
|
|
45
|
+
* @param template - HTML template string
|
|
46
|
+
* @returns A function that creates a mounted element with the given context
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```ts
|
|
50
|
+
* import { createTemplate } from 'bquery/view';
|
|
51
|
+
* import { signal } from 'bquery/reactive';
|
|
52
|
+
*
|
|
53
|
+
* const TodoItem = createTemplate(`
|
|
54
|
+
* <li bq-class="{ completed: done }">
|
|
55
|
+
* <input type="checkbox" bq-model="done" />
|
|
56
|
+
* <span bq-text="text"></span>
|
|
57
|
+
* </li>
|
|
58
|
+
* `);
|
|
59
|
+
*
|
|
60
|
+
* const item = TodoItem({
|
|
61
|
+
* done: signal(false),
|
|
62
|
+
* text: 'Buy groceries',
|
|
63
|
+
* });
|
|
64
|
+
*
|
|
65
|
+
* document.querySelector('#list').append(item.el);
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
export declare const createTemplate: (template: string, options?: MountOptions) => ((context: BindingContext) => View);
|
|
69
|
+
//# sourceMappingURL=mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../../src/view/mount.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,MAAM,GAAG,OAAO,EAC1B,SAAS,cAAc,EACvB,UAAS,YAAiB,KACzB,IA2EF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,cAAc,GACzB,UAAU,MAAM,EAChB,UAAS,YAAiB,KACzB,CAAC,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAiCpC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { CleanupFn } from '../reactive/index';
|
|
2
|
+
import type { BindingContext, DirectiveHandler } from './types';
|
|
3
|
+
export type DirectiveHandlers = {
|
|
4
|
+
text: DirectiveHandler;
|
|
5
|
+
html: DirectiveHandler;
|
|
6
|
+
if: DirectiveHandler;
|
|
7
|
+
show: DirectiveHandler;
|
|
8
|
+
class: DirectiveHandler;
|
|
9
|
+
style: DirectiveHandler;
|
|
10
|
+
model: DirectiveHandler;
|
|
11
|
+
ref: DirectiveHandler;
|
|
12
|
+
for: DirectiveHandler;
|
|
13
|
+
bind: (attrName: string) => DirectiveHandler;
|
|
14
|
+
on: (eventName: string) => DirectiveHandler;
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Processes a single element for directives.
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
export declare const processElement: (el: Element, context: BindingContext, prefix: string, cleanups: CleanupFn[], handlers: DirectiveHandlers) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Recursively processes children of an element.
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare const processChildren: (el: Element, context: BindingContext, prefix: string, cleanups: CleanupFn[], handlers: DirectiveHandlers) => void;
|
|
26
|
+
//# sourceMappingURL=process.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process.d.ts","sourceRoot":"","sources":["../../src/view/process.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,IAAI,EAAE,gBAAgB,CAAC;IACvB,EAAE,EAAE,gBAAgB,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,gBAAgB,CAAC;IACxB,GAAG,EAAE,gBAAgB,CAAC;IACtB,GAAG,EAAE,gBAAgB,CAAC;IACtB,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,gBAAgB,CAAC;IAC7C,EAAE,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,gBAAgB,CAAC;CAC7C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,GACzB,IAAI,OAAO,EACX,SAAS,cAAc,EACvB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,UAAU,iBAAiB,KAC1B,IAyCF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAC1B,IAAI,OAAO,EACX,SAAS,cAAc,EACvB,QAAQ,MAAM,EACd,UAAU,SAAS,EAAE,EACrB,UAAU,iBAAiB,KAC1B,IAWF,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Public types for the view module.
|
|
3
|
+
*/
|
|
4
|
+
import type { CleanupFn } from '../reactive/index';
|
|
5
|
+
/**
|
|
6
|
+
* Context object passed to binding expressions.
|
|
7
|
+
*/
|
|
8
|
+
export type BindingContext = Record<string, unknown>;
|
|
9
|
+
/**
|
|
10
|
+
* Configuration options for mount.
|
|
11
|
+
*/
|
|
12
|
+
export type MountOptions = {
|
|
13
|
+
/** Prefix for directive attributes (default: 'bq') */
|
|
14
|
+
prefix?: string;
|
|
15
|
+
/** Whether to sanitize bq-html content (default: true) */
|
|
16
|
+
sanitize?: boolean;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Mounted view instance.
|
|
20
|
+
*/
|
|
21
|
+
export type View = {
|
|
22
|
+
/** The root element */
|
|
23
|
+
el: Element;
|
|
24
|
+
/** The binding context */
|
|
25
|
+
context: BindingContext;
|
|
26
|
+
/** Update the context object. Note: this only mutates the context; reactive re-rendering happens automatically when signals/computed values change. */
|
|
27
|
+
update: (newContext: Partial<BindingContext>) => void;
|
|
28
|
+
/** Destroy the view and cleanup effects */
|
|
29
|
+
destroy: () => void;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Internal directive handler type.
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
export type DirectiveHandler = (el: Element, expression: string, context: BindingContext, cleanups: CleanupFn[]) => void;
|
|
36
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/view/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,uBAAuB;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,0BAA0B;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,uJAAuJ;IACvJ,MAAM,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;IACtD,2CAA2C;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,EAAE,EAAE,OAAO,EACX,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,SAAS,EAAE,KAClB,IAAI,CAAC"}
|