@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.
Files changed (305) hide show
  1. package/README.md +501 -427
  2. package/dist/batch-4LAvfLE7.js +13 -0
  3. package/dist/batch-4LAvfLE7.js.map +1 -0
  4. package/dist/component/component.d.ts +69 -0
  5. package/dist/component/component.d.ts.map +1 -0
  6. package/dist/component/html.d.ts +35 -0
  7. package/dist/component/html.d.ts.map +1 -0
  8. package/dist/component/index.d.ts +3 -126
  9. package/dist/component/index.d.ts.map +1 -1
  10. package/dist/component/props.d.ts +18 -0
  11. package/dist/component/props.d.ts.map +1 -0
  12. package/dist/component/types.d.ts +77 -0
  13. package/dist/component/types.d.ts.map +1 -0
  14. package/dist/component.es.mjs +90 -59
  15. package/dist/component.es.mjs.map +1 -1
  16. package/dist/core/collection.d.ts +36 -0
  17. package/dist/core/collection.d.ts.map +1 -1
  18. package/dist/core/dom.d.ts +6 -0
  19. package/dist/core/dom.d.ts.map +1 -0
  20. package/dist/core/element.d.ts +8 -0
  21. package/dist/core/element.d.ts.map +1 -1
  22. package/dist/core/index.d.ts +1 -0
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/utils/array.d.ts +74 -0
  25. package/dist/core/utils/array.d.ts.map +1 -0
  26. package/dist/core/utils/function.d.ts +70 -0
  27. package/dist/core/utils/function.d.ts.map +1 -0
  28. package/dist/core/utils/index.d.ts +70 -0
  29. package/dist/core/utils/index.d.ts.map +1 -0
  30. package/dist/core/utils/misc.d.ts +63 -0
  31. package/dist/core/utils/misc.d.ts.map +1 -0
  32. package/dist/core/utils/number.d.ts +65 -0
  33. package/dist/core/utils/number.d.ts.map +1 -0
  34. package/dist/core/utils/object.d.ts +133 -0
  35. package/dist/core/utils/object.d.ts.map +1 -0
  36. package/dist/core/utils/string.d.ts +80 -0
  37. package/dist/core/utils/string.d.ts.map +1 -0
  38. package/dist/core/utils/type-guards.d.ts +79 -0
  39. package/dist/core/utils/type-guards.d.ts.map +1 -0
  40. package/dist/core-COenAZjD.js +145 -0
  41. package/dist/core-COenAZjD.js.map +1 -0
  42. package/dist/core.es.mjs +411 -448
  43. package/dist/core.es.mjs.map +1 -1
  44. package/dist/full.d.ts +2 -2
  45. package/dist/full.d.ts.map +1 -1
  46. package/dist/full.es.mjs +87 -64
  47. package/dist/full.es.mjs.map +1 -1
  48. package/dist/full.iife.js +2 -2
  49. package/dist/full.iife.js.map +1 -1
  50. package/dist/full.umd.js +2 -2
  51. package/dist/full.umd.js.map +1 -1
  52. package/dist/index.es.mjs +138 -68
  53. package/dist/index.es.mjs.map +1 -1
  54. package/dist/motion/animate.d.ts +25 -0
  55. package/dist/motion/animate.d.ts.map +1 -0
  56. package/dist/motion/easing.d.ts +30 -0
  57. package/dist/motion/easing.d.ts.map +1 -0
  58. package/dist/motion/flip.d.ts +55 -0
  59. package/dist/motion/flip.d.ts.map +1 -0
  60. package/dist/motion/index.d.ts +11 -138
  61. package/dist/motion/index.d.ts.map +1 -1
  62. package/dist/motion/keyframes.d.ts +21 -0
  63. package/dist/motion/keyframes.d.ts.map +1 -0
  64. package/dist/motion/reduced-motion.d.ts +12 -0
  65. package/dist/motion/reduced-motion.d.ts.map +1 -0
  66. package/dist/motion/scroll.d.ts +15 -0
  67. package/dist/motion/scroll.d.ts.map +1 -0
  68. package/dist/motion/spring.d.ts +42 -0
  69. package/dist/motion/spring.d.ts.map +1 -0
  70. package/dist/motion/stagger.d.ts +22 -0
  71. package/dist/motion/stagger.d.ts.map +1 -0
  72. package/dist/motion/timeline.d.ts +21 -0
  73. package/dist/motion/timeline.d.ts.map +1 -0
  74. package/dist/motion/transition.d.ts +22 -0
  75. package/dist/motion/transition.d.ts.map +1 -0
  76. package/dist/motion/types.d.ts +182 -0
  77. package/dist/motion/types.d.ts.map +1 -0
  78. package/dist/motion.es.mjs +320 -61
  79. package/dist/motion.es.mjs.map +1 -1
  80. package/dist/persisted-Dz_ryNuC.js +278 -0
  81. package/dist/persisted-Dz_ryNuC.js.map +1 -0
  82. package/dist/reactive/batch.d.ts +13 -0
  83. package/dist/reactive/batch.d.ts.map +1 -0
  84. package/dist/reactive/computed.d.ts +50 -0
  85. package/dist/reactive/computed.d.ts.map +1 -0
  86. package/dist/reactive/core.d.ts +60 -0
  87. package/dist/reactive/core.d.ts.map +1 -0
  88. package/dist/reactive/effect.d.ts +15 -0
  89. package/dist/reactive/effect.d.ts.map +1 -0
  90. package/dist/reactive/index.d.ts +2 -2
  91. package/dist/reactive/index.d.ts.map +1 -1
  92. package/dist/reactive/internals.d.ts +36 -0
  93. package/dist/reactive/internals.d.ts.map +1 -0
  94. package/dist/reactive/linked.d.ts +36 -0
  95. package/dist/reactive/linked.d.ts.map +1 -0
  96. package/dist/reactive/persisted.d.ts +14 -0
  97. package/dist/reactive/persisted.d.ts.map +1 -0
  98. package/dist/reactive/readonly.d.ts +26 -0
  99. package/dist/reactive/readonly.d.ts.map +1 -0
  100. package/dist/reactive/signal.d.ts +13 -312
  101. package/dist/reactive/signal.d.ts.map +1 -1
  102. package/dist/reactive/type-guards.d.ts +20 -0
  103. package/dist/reactive/type-guards.d.ts.map +1 -0
  104. package/dist/reactive/untrack.d.ts +29 -0
  105. package/dist/reactive/untrack.d.ts.map +1 -0
  106. package/dist/reactive/watch.d.ts +42 -0
  107. package/dist/reactive/watch.d.ts.map +1 -0
  108. package/dist/reactive.es.mjs +30 -163
  109. package/dist/reactive.es.mjs.map +1 -1
  110. package/dist/router/index.d.ts +6 -252
  111. package/dist/router/index.d.ts.map +1 -1
  112. package/dist/router/links.d.ts +44 -0
  113. package/dist/router/links.d.ts.map +1 -0
  114. package/dist/router/match.d.ts +20 -0
  115. package/dist/router/match.d.ts.map +1 -0
  116. package/dist/router/navigation.d.ts +45 -0
  117. package/dist/router/navigation.d.ts.map +1 -0
  118. package/dist/router/query.d.ts +16 -0
  119. package/dist/router/query.d.ts.map +1 -0
  120. package/dist/router/router.d.ts +34 -0
  121. package/dist/router/router.d.ts.map +1 -0
  122. package/dist/router/state.d.ts +27 -0
  123. package/dist/router/state.d.ts.map +1 -0
  124. package/dist/router/types.d.ts +88 -0
  125. package/dist/router/types.d.ts.map +1 -0
  126. package/dist/router/utils.d.ts +65 -0
  127. package/dist/router/utils.d.ts.map +1 -0
  128. package/dist/router.es.mjs +168 -132
  129. package/dist/router.es.mjs.map +1 -1
  130. package/dist/sanitize-1FBEPAFH.js +272 -0
  131. package/dist/sanitize-1FBEPAFH.js.map +1 -0
  132. package/dist/security/constants.d.ts +42 -0
  133. package/dist/security/constants.d.ts.map +1 -0
  134. package/dist/security/csp.d.ts +24 -0
  135. package/dist/security/csp.d.ts.map +1 -0
  136. package/dist/security/index.d.ts +4 -2
  137. package/dist/security/index.d.ts.map +1 -1
  138. package/dist/security/sanitize-core.d.ts +13 -0
  139. package/dist/security/sanitize-core.d.ts.map +1 -0
  140. package/dist/security/sanitize.d.ts +5 -57
  141. package/dist/security/sanitize.d.ts.map +1 -1
  142. package/dist/security/trusted-types.d.ts +25 -0
  143. package/dist/security/trusted-types.d.ts.map +1 -0
  144. package/dist/security/types.d.ts +36 -0
  145. package/dist/security/types.d.ts.map +1 -0
  146. package/dist/security.es.mjs +50 -277
  147. package/dist/security.es.mjs.map +1 -1
  148. package/dist/store/create-store.d.ts +15 -0
  149. package/dist/store/create-store.d.ts.map +1 -0
  150. package/dist/store/define-store.d.ts +28 -0
  151. package/dist/store/define-store.d.ts.map +1 -0
  152. package/dist/store/devtools.d.ts +22 -0
  153. package/dist/store/devtools.d.ts.map +1 -0
  154. package/dist/store/index.d.ts +10 -286
  155. package/dist/store/index.d.ts.map +1 -1
  156. package/dist/store/mapping.d.ts +28 -0
  157. package/dist/store/mapping.d.ts.map +1 -0
  158. package/dist/store/persisted.d.ts +13 -0
  159. package/dist/store/persisted.d.ts.map +1 -0
  160. package/dist/store/plugins.d.ts +13 -0
  161. package/dist/store/plugins.d.ts.map +1 -0
  162. package/dist/store/registry.d.ts +28 -0
  163. package/dist/store/registry.d.ts.map +1 -0
  164. package/dist/store/types.d.ts +71 -0
  165. package/dist/store/types.d.ts.map +1 -0
  166. package/dist/store/utils.d.ts +28 -0
  167. package/dist/store/utils.d.ts.map +1 -0
  168. package/dist/store/watch.d.ts +23 -0
  169. package/dist/store/watch.d.ts.map +1 -0
  170. package/dist/store.es.mjs +22 -224
  171. package/dist/store.es.mjs.map +1 -1
  172. package/dist/type-guards-DRma3-Kc.js +16 -0
  173. package/dist/type-guards-DRma3-Kc.js.map +1 -0
  174. package/dist/untrack-BuEQKH7_.js +6 -0
  175. package/dist/untrack-BuEQKH7_.js.map +1 -0
  176. package/dist/view/directives/bind.d.ts +7 -0
  177. package/dist/view/directives/bind.d.ts.map +1 -0
  178. package/dist/view/directives/class.d.ts +8 -0
  179. package/dist/view/directives/class.d.ts.map +1 -0
  180. package/dist/view/directives/for.d.ts +23 -0
  181. package/dist/view/directives/for.d.ts.map +1 -0
  182. package/dist/view/directives/html.d.ts +7 -0
  183. package/dist/view/directives/html.d.ts.map +1 -0
  184. package/dist/view/directives/if.d.ts +7 -0
  185. package/dist/view/directives/if.d.ts.map +1 -0
  186. package/dist/view/directives/index.d.ts +12 -0
  187. package/dist/view/directives/index.d.ts.map +1 -0
  188. package/dist/view/directives/model.d.ts +7 -0
  189. package/dist/view/directives/model.d.ts.map +1 -0
  190. package/dist/view/directives/on.d.ts +7 -0
  191. package/dist/view/directives/on.d.ts.map +1 -0
  192. package/dist/view/directives/ref.d.ts +7 -0
  193. package/dist/view/directives/ref.d.ts.map +1 -0
  194. package/dist/view/directives/show.d.ts +7 -0
  195. package/dist/view/directives/show.d.ts.map +1 -0
  196. package/dist/view/directives/style.d.ts +7 -0
  197. package/dist/view/directives/style.d.ts.map +1 -0
  198. package/dist/view/directives/text.d.ts +7 -0
  199. package/dist/view/directives/text.d.ts.map +1 -0
  200. package/dist/view/evaluate.d.ts +43 -0
  201. package/dist/view/evaluate.d.ts.map +1 -0
  202. package/dist/view/index.d.ts +3 -93
  203. package/dist/view/index.d.ts.map +1 -1
  204. package/dist/view/mount.d.ts +69 -0
  205. package/dist/view/mount.d.ts.map +1 -0
  206. package/dist/view/process.d.ts +26 -0
  207. package/dist/view/process.d.ts.map +1 -0
  208. package/dist/view/types.d.ts +36 -0
  209. package/dist/view/types.d.ts.map +1 -0
  210. package/dist/view.es.mjs +368 -267
  211. package/dist/view.es.mjs.map +1 -1
  212. package/dist/watch-CXyaBC_9.js +58 -0
  213. package/dist/watch-CXyaBC_9.js.map +1 -0
  214. package/package.json +132 -132
  215. package/src/component/component.ts +289 -0
  216. package/src/component/html.ts +53 -0
  217. package/src/component/index.ts +40 -414
  218. package/src/component/props.ts +116 -0
  219. package/src/component/types.ts +85 -0
  220. package/src/core/collection.ts +588 -454
  221. package/src/core/dom.ts +38 -0
  222. package/src/core/element.ts +746 -740
  223. package/src/core/index.ts +43 -0
  224. package/src/core/utils/array.ts +102 -0
  225. package/src/core/utils/function.ts +110 -0
  226. package/src/core/utils/index.ts +83 -0
  227. package/src/core/utils/misc.ts +82 -0
  228. package/src/core/utils/number.ts +78 -0
  229. package/src/core/utils/object.ts +206 -0
  230. package/src/core/utils/string.ts +112 -0
  231. package/src/core/utils/type-guards.ts +112 -0
  232. package/src/full.ts +187 -150
  233. package/src/index.ts +36 -36
  234. package/src/motion/animate.ts +113 -0
  235. package/src/motion/easing.ts +40 -0
  236. package/src/motion/flip.ts +176 -0
  237. package/src/motion/index.ts +41 -358
  238. package/src/motion/keyframes.ts +46 -0
  239. package/src/motion/reduced-motion.ts +17 -0
  240. package/src/motion/scroll.ts +57 -0
  241. package/src/motion/spring.ts +150 -0
  242. package/src/motion/stagger.ts +43 -0
  243. package/src/motion/timeline.ts +246 -0
  244. package/src/motion/transition.ts +51 -0
  245. package/src/motion/types.ts +198 -0
  246. package/src/reactive/batch.ts +22 -0
  247. package/src/reactive/computed.ts +92 -0
  248. package/src/reactive/core.ts +93 -0
  249. package/src/reactive/effect.ts +43 -0
  250. package/src/reactive/index.ts +23 -22
  251. package/src/reactive/internals.ts +105 -0
  252. package/src/reactive/linked.ts +56 -0
  253. package/src/reactive/persisted.ts +74 -0
  254. package/src/reactive/readonly.ts +35 -0
  255. package/src/reactive/signal.ts +20 -520
  256. package/src/reactive/type-guards.ts +22 -0
  257. package/src/reactive/untrack.ts +31 -0
  258. package/src/reactive/watch.ts +73 -0
  259. package/src/router/index.ts +41 -718
  260. package/src/router/links.ts +130 -0
  261. package/src/router/match.ts +106 -0
  262. package/src/router/navigation.ts +71 -0
  263. package/src/router/query.ts +35 -0
  264. package/src/router/router.ts +211 -0
  265. package/src/router/state.ts +46 -0
  266. package/src/router/types.ts +93 -0
  267. package/src/router/utils.ts +116 -0
  268. package/src/security/constants.ts +209 -0
  269. package/src/security/csp.ts +77 -0
  270. package/src/security/index.ts +4 -12
  271. package/src/security/sanitize-core.ts +343 -0
  272. package/src/security/sanitize.ts +66 -625
  273. package/src/security/trusted-types.ts +69 -0
  274. package/src/security/types.ts +40 -0
  275. package/src/store/create-store.ts +329 -0
  276. package/src/store/define-store.ts +48 -0
  277. package/src/store/devtools.ts +45 -0
  278. package/src/store/index.ts +22 -848
  279. package/src/store/mapping.ts +73 -0
  280. package/src/store/persisted.ts +61 -0
  281. package/src/store/plugins.ts +32 -0
  282. package/src/store/registry.ts +51 -0
  283. package/src/store/types.ts +94 -0
  284. package/src/store/utils.ts +141 -0
  285. package/src/store/watch.ts +52 -0
  286. package/src/view/directives/bind.ts +23 -0
  287. package/src/view/directives/class.ts +70 -0
  288. package/src/view/directives/for.ts +275 -0
  289. package/src/view/directives/html.ts +19 -0
  290. package/src/view/directives/if.ts +30 -0
  291. package/src/view/directives/index.ts +11 -0
  292. package/src/view/directives/model.ts +56 -0
  293. package/src/view/directives/on.ts +41 -0
  294. package/src/view/directives/ref.ts +41 -0
  295. package/src/view/directives/show.ts +26 -0
  296. package/src/view/directives/style.ts +47 -0
  297. package/src/view/directives/text.ts +15 -0
  298. package/src/view/evaluate.ts +274 -0
  299. package/src/view/index.ts +112 -1041
  300. package/src/view/mount.ts +200 -0
  301. package/src/view/process.ts +92 -0
  302. package/src/view/types.ts +44 -0
  303. package/dist/core/utils.d.ts +0 -313
  304. package/dist/core/utils.d.ts.map +0 -1
  305. package/src/core/utils.ts +0 -444
@@ -0,0 +1,112 @@
1
+ /**
2
+ * String-focused utility helpers.
3
+ *
4
+ * @module bquery/core/utils/string
5
+ */
6
+
7
+ /**
8
+ * Capitalizes the first letter of a string.
9
+ *
10
+ * @param str - The string to capitalize
11
+ * @returns The capitalized string
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * capitalize('hello'); // 'Hello'
16
+ * ```
17
+ */
18
+ export function capitalize(str: string): string {
19
+ if (!str) return str;
20
+ return str.charAt(0).toUpperCase() + str.slice(1);
21
+ }
22
+
23
+ /**
24
+ * Converts a string to kebab-case.
25
+ *
26
+ * @param str - The string to convert
27
+ * @returns The kebab-cased string
28
+ *
29
+ * @example
30
+ * ```ts
31
+ * toKebabCase('myVariableName'); // 'my-variable-name'
32
+ * ```
33
+ */
34
+ export function toKebabCase(str: string): string {
35
+ return str
36
+ .replace(/([a-z])([A-Z])/g, '$1-$2')
37
+ .replace(/[\s_]+/g, '-')
38
+ .toLowerCase();
39
+ }
40
+
41
+ /**
42
+ * Converts a string to camelCase.
43
+ *
44
+ * @param str - The string to convert
45
+ * @returns The camelCased string
46
+ *
47
+ * @example
48
+ * ```ts
49
+ * toCamelCase('my-variable-name'); // 'myVariableName'
50
+ * ```
51
+ */
52
+ export function toCamelCase(str: string): string {
53
+ return str
54
+ .replace(/[-_\s]+(.)?/g, (_, char) => (char ? char.toUpperCase() : ''))
55
+ .replace(/^[A-Z]/, (char) => char.toLowerCase());
56
+ }
57
+
58
+ /**
59
+ * Truncates a string to a maximum length.
60
+ *
61
+ * @param str - The string to truncate
62
+ * @param maxLength - The maximum length
63
+ * @param suffix - The suffix to append when truncating (default: '…')
64
+ * @returns The truncated string
65
+ *
66
+ * @example
67
+ * ```ts
68
+ * truncate('Hello world', 8); // 'Hello w…'
69
+ * ```
70
+ */
71
+ export function truncate(str: string, maxLength: number, suffix = '…'): string {
72
+ if (maxLength <= 0) return '';
73
+ if (str.length <= maxLength) return str;
74
+ const sliceLength = Math.max(0, maxLength - suffix.length);
75
+ return `${str.slice(0, sliceLength)}${suffix}`;
76
+ }
77
+
78
+ /**
79
+ * Converts a string to a URL-friendly slug.
80
+ *
81
+ * @param str - The string to slugify
82
+ * @returns The slugified string
83
+ *
84
+ * @example
85
+ * ```ts
86
+ * slugify('Hello, World!'); // 'hello-world'
87
+ * ```
88
+ */
89
+ export function slugify(str: string): string {
90
+ return str
91
+ .normalize('NFD')
92
+ .replace(/[\u0300-\u036f]/g, '')
93
+ .replace(/[^\w\s-]/g, '')
94
+ .trim()
95
+ .replace(/[\s_-]+/g, '-')
96
+ .toLowerCase();
97
+ }
98
+
99
+ /**
100
+ * Escapes a string for safe usage inside a RegExp.
101
+ *
102
+ * @param str - The string to escape
103
+ * @returns The escaped string
104
+ *
105
+ * @example
106
+ * ```ts
107
+ * escapeRegExp('[a-z]+'); // '\\[a-z\\]+'
108
+ * ```
109
+ */
110
+ export function escapeRegExp(str: string): string {
111
+ return str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
112
+ }
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Type guard helpers.
3
+ *
4
+ * @module bquery/core/utils/type-guards
5
+ */
6
+
7
+ /**
8
+ * Checks if a value is a DOM Element.
9
+ *
10
+ * @param value - The value to check
11
+ * @returns True if the value is an Element
12
+ */
13
+ export function isElement(value: unknown): value is Element {
14
+ return typeof Element !== 'undefined' && value instanceof Element;
15
+ }
16
+
17
+ /**
18
+ * Checks if a value is a BQueryCollection-like object.
19
+ *
20
+ * @param value - The value to check
21
+ * @returns True if the value has an elements array property
22
+ */
23
+ export function isCollection(value: unknown): value is { elements: Element[] } {
24
+ return Boolean(value && typeof value === 'object' && 'elements' in (value as object));
25
+ }
26
+
27
+ /**
28
+ * Checks if a value is a function.
29
+ *
30
+ * @param value - The value to check
31
+ * @returns True if the value is a function
32
+ */
33
+ export function isFunction(value: unknown): value is (...args: unknown[]) => unknown {
34
+ return typeof value === 'function';
35
+ }
36
+
37
+ /**
38
+ * Checks if a value is a string.
39
+ *
40
+ * @param value - The value to check
41
+ * @returns True if the value is a string
42
+ */
43
+ export function isString(value: unknown): value is string {
44
+ return typeof value === 'string';
45
+ }
46
+
47
+ /**
48
+ * Checks if a value is a number (excluding NaN).
49
+ *
50
+ * @param value - The value to check
51
+ * @returns True if the value is a valid number
52
+ */
53
+ export function isNumber(value: unknown): value is number {
54
+ return typeof value === 'number' && !Number.isNaN(value);
55
+ }
56
+
57
+ /**
58
+ * Checks if a value is a boolean.
59
+ *
60
+ * @param value - The value to check
61
+ * @returns True if the value is a boolean
62
+ */
63
+ export function isBoolean(value: unknown): value is boolean {
64
+ return typeof value === 'boolean';
65
+ }
66
+
67
+ /**
68
+ * Checks if a value is an array.
69
+ *
70
+ * @template T - The type of array elements
71
+ * @param value - The value to check
72
+ * @returns True if the value is an array
73
+ */
74
+ export function isArray<T = unknown>(value: unknown): value is T[] {
75
+ return Array.isArray(value);
76
+ }
77
+
78
+ /**
79
+ * Checks if a value is a Date instance.
80
+ *
81
+ * @param value - The value to check
82
+ * @returns True if the value is a Date
83
+ */
84
+ export function isDate(value: unknown): value is Date {
85
+ return value instanceof Date;
86
+ }
87
+
88
+ /**
89
+ * Checks if a value is a Promise-like object.
90
+ *
91
+ * @param value - The value to check
92
+ * @returns True if the value is a Promise-like object
93
+ */
94
+ export function isPromise<T = unknown>(value: unknown): value is Promise<T> {
95
+ return Boolean(
96
+ value &&
97
+ (value instanceof Promise ||
98
+ (typeof value === 'object' &&
99
+ 'then' in (value as object) &&
100
+ typeof (value as { then?: unknown }).then === 'function'))
101
+ );
102
+ }
103
+
104
+ /**
105
+ * Checks if a value is a non-null object.
106
+ *
107
+ * @param value - The value to check
108
+ * @returns True if the value is an object
109
+ */
110
+ export function isObject(value: unknown): value is Record<string, unknown> {
111
+ return typeof value === 'object' && value !== null;
112
+ }
package/src/full.ts CHANGED
@@ -1,150 +1,187 @@
1
- /**
2
- * bQuery.js — Full Bundle
3
- *
4
- * This is the complete bundle containing all modules for CDN usage.
5
- * Use this when you want all features without tree-shaking concerns.
6
- *
7
- * @module bquery/full
8
- *
9
- * @example CDN Usage (ES Modules)
10
- * ```html
11
- * <script type="module">
12
- * import { $, signal, component } from 'https://unpkg.com/bquery@1/dist/full.es.mjs';
13
- *
14
- * const count = signal(0);
15
- * $('#counter').text(count.value);
16
- * </script>
17
- * ```
18
- *
19
- * @example CDN Usage (UMD/Global)
20
- * ```html
21
- * <script src="https://unpkg.com/bquery@1/dist/full.umd.js"></script>
22
- * <script>
23
- * const { $, signal } = bQuery;
24
- * const count = signal(0);
25
- * </script>
26
- * ```
27
- *
28
- * @example CDN Usage (IIFE)
29
- * ```html
30
- * <script src="https://unpkg.com/bquery@1/dist/full.iife.js"></script>
31
- * <script>
32
- * // bQuery is available as a global variable
33
- * const { $, $$ } = bQuery;
34
- * </script>
35
- * ```
36
- */
37
-
38
- // ============================================================================
39
- // Core Module: Selectors, DOM operations, events, utilities
40
- // ============================================================================
41
- export { $, $$, BQueryCollection, BQueryElement, utils } from './core/index';
42
-
43
- // ============================================================================
44
- // Reactive Module: Signals, computed values, effects, batching
45
- // ============================================================================
46
- export {
47
- Computed,
48
- Signal,
49
- batch,
50
- computed,
51
- effect,
52
- isComputed,
53
- isSignal,
54
- persistedSignal,
55
- readonly,
56
- signal,
57
- untrack,
58
- watch,
59
- } from './reactive/index';
60
- export type { CleanupFn, Observer, ReadonlySignal } from './reactive/index';
61
-
62
- // ============================================================================
63
- // Component Module: Web Components helper with Shadow DOM
64
- // ============================================================================
65
- export { component, html, safeHtml } from './component/index';
66
- export type { ComponentDefinition, PropDefinition } from './component/index';
67
-
68
- // ============================================================================
69
- // Motion Module: View transitions, FLIP animations, springs
70
- // ============================================================================
71
- export { capturePosition, flip, flipList, spring, springPresets, transition } from './motion/index';
72
- export type {
73
- ElementBounds,
74
- FlipOptions,
75
- Spring,
76
- SpringConfig,
77
- TransitionOptions,
78
- } from './motion/index';
79
-
80
- // ============================================================================
81
- // Security Module: Sanitization, CSP compatibility, Trusted Types
82
- // ============================================================================
83
- export {
84
- createTrustedHtml,
85
- escapeHtml,
86
- generateNonce,
87
- getTrustedTypesPolicy,
88
- hasCSPDirective,
89
- isTrustedTypesSupported,
90
- sanitize,
91
- sanitizeHtml,
92
- stripTags,
93
- } from './security/index';
94
- export type { SanitizeOptions } from './security/index';
95
-
96
- // ============================================================================
97
- // Platform Module: Storage, buckets, notifications, cache
98
- // ============================================================================
99
- export { buckets, cache, notifications, storage } from './platform/index';
100
- export type {
101
- Bucket,
102
- CacheHandle,
103
- IndexedDBOptions,
104
- NotificationOptions,
105
- StorageAdapter,
106
- } from './platform/index';
107
-
108
- // ============================================================================
109
- // Router Module: SPA routing, navigation guards, lazy loading
110
- // ============================================================================
111
- export {
112
- back,
113
- createRouter,
114
- currentRoute,
115
- forward,
116
- interceptLinks,
117
- isActive,
118
- isActiveSignal,
119
- link,
120
- navigate,
121
- resolve,
122
- } from './router/index';
123
- export type {
124
- NavigationGuard,
125
- Route,
126
- RouteDefinition,
127
- Router,
128
- RouterOptions,
129
- } from './router/index';
130
-
131
- // ============================================================================
132
- // Store Module: Signal-based state management
133
- // ============================================================================
134
- export {
135
- createPersistedStore,
136
- createStore,
137
- destroyStore,
138
- getStore,
139
- listStores,
140
- mapActions,
141
- mapState,
142
- registerPlugin,
143
- } from './store/index';
144
- export type { StateFactory, Store, StoreDefinition, StorePlugin } from './store/index';
145
-
146
- // ============================================================================
147
- // View Module: Declarative DOM bindings without compiler
148
- // ============================================================================
149
- export { createTemplate, mount } from './view/index';
150
- export type { BindingContext, MountOptions, View } from './view/index';
1
+ /**
2
+ * bQuery.js — Full Bundle
3
+ *
4
+ * This is the complete bundle containing all modules for CDN usage.
5
+ * Use this when you want all features without tree-shaking concerns.
6
+ *
7
+ * @module bquery/full
8
+ *
9
+ * @example CDN Usage (ES Modules)
10
+ * ```html
11
+ * <script type="module">
12
+ * import { $, signal, component } from 'https://unpkg.com/bquery@1/dist/full.es.mjs';
13
+ *
14
+ * const count = signal(0);
15
+ * $('#counter').text(count.value);
16
+ * </script>
17
+ * ```
18
+ *
19
+ * @example CDN Usage (UMD/Global)
20
+ * ```html
21
+ * <script src="https://unpkg.com/bquery@1/dist/full.umd.js"></script>
22
+ * <script>
23
+ * const { $, signal } = bQuery;
24
+ * const count = signal(0);
25
+ * </script>
26
+ * ```
27
+ *
28
+ * @example CDN Usage (IIFE)
29
+ * ```html
30
+ * <script src="https://unpkg.com/bquery@1/dist/full.iife.js"></script>
31
+ * <script>
32
+ * // bQuery is available as a global variable
33
+ * const { $, $$ } = bQuery;
34
+ * </script>
35
+ * ```
36
+ */
37
+
38
+ // ============================================================================
39
+ // Core Module: Selectors, DOM operations, events, utilities
40
+ // ============================================================================
41
+ export { $, $$, BQueryCollection, BQueryElement, utils } from './core/index';
42
+
43
+ // ============================================================================
44
+ // Reactive Module: Signals, computed values, effects, batching
45
+ // ============================================================================
46
+ export {
47
+ Computed,
48
+ Signal,
49
+ batch,
50
+ computed,
51
+ effect,
52
+ isComputed,
53
+ isSignal,
54
+ persistedSignal,
55
+ readonly,
56
+ signal,
57
+ untrack,
58
+ watch,
59
+ } from './reactive/index';
60
+ export type { CleanupFn, Observer, ReadonlySignal } from './reactive/index';
61
+
62
+ // ============================================================================
63
+ // Component Module: Web Components helper with Shadow DOM
64
+ // ============================================================================
65
+ export { component, html, safeHtml } from './component/index';
66
+ export type { ComponentDefinition, PropDefinition } from './component/index';
67
+
68
+ // ============================================================================
69
+ // Motion Module: View transitions, FLIP animations, springs
70
+ // ============================================================================
71
+ export {
72
+ animate,
73
+ capturePosition,
74
+ easeInCubic,
75
+ easeInOutCubic,
76
+ easeInOutQuad,
77
+ easeInQuad,
78
+ easeOutBack,
79
+ easeOutCubic,
80
+ easeOutExpo,
81
+ easeOutQuad,
82
+ easingPresets,
83
+ flip,
84
+ flipElements,
85
+ flipList,
86
+ keyframePresets,
87
+ linear,
88
+ prefersReducedMotion,
89
+ scrollAnimate,
90
+ sequence,
91
+ spring,
92
+ springPresets,
93
+ stagger,
94
+ timeline,
95
+ transition,
96
+ } from './motion/index';
97
+ export type {
98
+ AnimateOptions,
99
+ EasingFunction,
100
+ ElementBounds,
101
+ FlipGroupOptions,
102
+ FlipOptions,
103
+ ScrollAnimateCleanup,
104
+ ScrollAnimateOptions,
105
+ SequenceOptions,
106
+ SequenceStep,
107
+ Spring,
108
+ SpringConfig,
109
+ StaggerFunction,
110
+ StaggerOptions,
111
+ TimelineConfig,
112
+ TimelineControls,
113
+ TimelineStep,
114
+ TransitionOptions,
115
+ } from './motion/index';
116
+
117
+ // ============================================================================
118
+ // Security Module: Sanitization, CSP compatibility, Trusted Types
119
+ // ============================================================================
120
+ export {
121
+ createTrustedHtml,
122
+ escapeHtml,
123
+ generateNonce,
124
+ getTrustedTypesPolicy,
125
+ hasCSPDirective,
126
+ isTrustedTypesSupported,
127
+ sanitize,
128
+ sanitizeHtml,
129
+ stripTags,
130
+ } from './security/index';
131
+ export type { SanitizeOptions } from './security/index';
132
+
133
+ // ============================================================================
134
+ // Platform Module: Storage, buckets, notifications, cache
135
+ // ============================================================================
136
+ export { buckets, cache, notifications, storage } from './platform/index';
137
+ export type {
138
+ Bucket,
139
+ CacheHandle,
140
+ IndexedDBOptions,
141
+ NotificationOptions,
142
+ StorageAdapter,
143
+ } from './platform/index';
144
+
145
+ // ============================================================================
146
+ // Router Module: SPA routing, navigation guards, lazy loading
147
+ // ============================================================================
148
+ export {
149
+ back,
150
+ createRouter,
151
+ currentRoute,
152
+ forward,
153
+ interceptLinks,
154
+ isActive,
155
+ isActiveSignal,
156
+ link,
157
+ navigate,
158
+ resolve,
159
+ } from './router/index';
160
+ export type {
161
+ NavigationGuard,
162
+ Route,
163
+ RouteDefinition,
164
+ Router,
165
+ RouterOptions,
166
+ } from './router/index';
167
+
168
+ // ============================================================================
169
+ // Store Module: Signal-based state management
170
+ // ============================================================================
171
+ export {
172
+ createPersistedStore,
173
+ createStore,
174
+ destroyStore,
175
+ getStore,
176
+ listStores,
177
+ mapActions,
178
+ mapState,
179
+ registerPlugin,
180
+ } from './store/index';
181
+ export type { StateFactory, Store, StoreDefinition, StorePlugin } from './store/index';
182
+
183
+ // ============================================================================
184
+ // View Module: Declarative DOM bindings without compiler
185
+ // ============================================================================
186
+ export { createTemplate, mount } from './view/index';
187
+ export type { BindingContext, MountOptions, View } from './view/index';
package/src/index.ts CHANGED
@@ -1,36 +1,36 @@
1
- /**
2
- * bQuery.js — The jQuery for the Modern Web Platform
3
- *
4
- * A zero-build, TypeScript-first library that bridges vanilla JavaScript
5
- * and build-step frameworks with modern features.
6
- *
7
- * @module bquery
8
- * @see https://github.com/bquery/bquery
9
- */
10
-
11
- // Core module: selectors, DOM ops, events, utils
12
- export * from './core/index';
13
-
14
- // Reactive module: signals, computed, effects, binding
15
- export * from './reactive/index';
16
-
17
- // Component module: Web Components helper
18
- export * from './component/index';
19
-
20
- // Motion module: view transitions, FLIP, springs
21
- export * from './motion/index';
22
-
23
- // Security module: sanitizer, CSP, Trusted Types
24
- export * from './security/index';
25
-
26
- // Platform module: storage, buckets, notifications, cache
27
- export * from './platform/index';
28
-
29
- // Router module: SPA routing, navigation guards
30
- export * from './router/index';
31
-
32
- // Store module: state management with signals
33
- export * from './store/index';
34
-
35
- // View module: declarative DOM bindings
36
- export * from './view/index';
1
+ /**
2
+ * bQuery.js — The jQuery for the Modern Web Platform
3
+ *
4
+ * A zero-build, TypeScript-first library that bridges vanilla JavaScript
5
+ * and build-step frameworks with modern features.
6
+ *
7
+ * @module bquery
8
+ * @see https://github.com/bquery/bquery
9
+ */
10
+
11
+ // Core module: selectors, DOM ops, events, utils
12
+ export * from './core/index';
13
+
14
+ // Reactive module: signals, computed, effects, binding
15
+ export * from './reactive/index';
16
+
17
+ // Component module: Web Components helper
18
+ export * from './component/index';
19
+
20
+ // Motion module: view transitions, FLIP, springs
21
+ export * from './motion/index';
22
+
23
+ // Security module: sanitizer, CSP, Trusted Types
24
+ export * from './security/index';
25
+
26
+ // Platform module: storage, buckets, notifications, cache
27
+ export * from './platform/index';
28
+
29
+ // Router module: SPA routing, navigation guards
30
+ export * from './router/index';
31
+
32
+ // Store module: state management with signals
33
+ export * from './store/index';
34
+
35
+ // View module: declarative DOM bindings
36
+ export * from './view/index';