@hyperfixi/behaviors 3.2.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/CHANGELOG.md +203 -1
  2. package/README.md +29 -9
  3. package/dist/all.browser.global.js +47 -102
  4. package/dist/all.browser.global.js.map +1 -1
  5. package/dist/autodismiss.browser.global.js +5 -11
  6. package/dist/autodismiss.browser.global.js.map +1 -1
  7. package/dist/behaviors/autodismiss.cjs +19 -22
  8. package/dist/behaviors/autodismiss.cjs.map +1 -1
  9. package/dist/behaviors/autodismiss.d.cts +4 -4
  10. package/dist/behaviors/autodismiss.d.ts +4 -4
  11. package/dist/behaviors/autodismiss.js +3 -3
  12. package/dist/behaviors/clickoutside.cjs +19 -18
  13. package/dist/behaviors/clickoutside.cjs.map +1 -1
  14. package/dist/behaviors/clickoutside.d.cts +4 -4
  15. package/dist/behaviors/clickoutside.d.ts +4 -4
  16. package/dist/behaviors/clickoutside.js +3 -3
  17. package/dist/behaviors/clipboard.cjs +18 -19
  18. package/dist/behaviors/clipboard.cjs.map +1 -1
  19. package/dist/behaviors/clipboard.d.cts +4 -4
  20. package/dist/behaviors/clipboard.d.ts +4 -4
  21. package/dist/behaviors/clipboard.js +3 -3
  22. package/dist/behaviors/draggable.cjs +20 -25
  23. package/dist/behaviors/draggable.cjs.map +1 -1
  24. package/dist/behaviors/draggable.d.cts +4 -4
  25. package/dist/behaviors/draggable.d.ts +4 -4
  26. package/dist/behaviors/draggable.js +3 -3
  27. package/dist/behaviors/focustrap.cjs +18 -19
  28. package/dist/behaviors/focustrap.cjs.map +1 -1
  29. package/dist/behaviors/focustrap.d.cts +4 -4
  30. package/dist/behaviors/focustrap.d.ts +4 -4
  31. package/dist/behaviors/focustrap.js +3 -3
  32. package/dist/behaviors/removable.cjs +18 -21
  33. package/dist/behaviors/removable.cjs.map +1 -1
  34. package/dist/behaviors/removable.d.cts +4 -3
  35. package/dist/behaviors/removable.d.ts +4 -3
  36. package/dist/behaviors/removable.js +3 -3
  37. package/dist/behaviors/resizable.cjs +21 -21
  38. package/dist/behaviors/resizable.cjs.map +1 -1
  39. package/dist/behaviors/resizable.d.cts +4 -4
  40. package/dist/behaviors/resizable.d.ts +4 -4
  41. package/dist/behaviors/resizable.js +3 -3
  42. package/dist/behaviors/scrollreveal.cjs +19 -22
  43. package/dist/behaviors/scrollreveal.cjs.map +1 -1
  44. package/dist/behaviors/scrollreveal.d.cts +4 -4
  45. package/dist/behaviors/scrollreveal.d.ts +4 -4
  46. package/dist/behaviors/scrollreveal.js +3 -3
  47. package/dist/behaviors/sortable.cjs +19 -20
  48. package/dist/behaviors/sortable.cjs.map +1 -1
  49. package/dist/behaviors/sortable.d.cts +4 -4
  50. package/dist/behaviors/sortable.d.ts +4 -4
  51. package/dist/behaviors/sortable.js +3 -3
  52. package/dist/behaviors/tabs.cjs +20 -25
  53. package/dist/behaviors/tabs.cjs.map +1 -1
  54. package/dist/behaviors/tabs.d.cts +4 -4
  55. package/dist/behaviors/tabs.d.ts +4 -4
  56. package/dist/behaviors/tabs.js +3 -3
  57. package/dist/behaviors/toggleable.cjs +25 -26
  58. package/dist/behaviors/toggleable.cjs.map +1 -1
  59. package/dist/behaviors/toggleable.d.cts +4 -4
  60. package/dist/behaviors/toggleable.d.ts +4 -4
  61. package/dist/behaviors/toggleable.js +3 -3
  62. package/dist/chunk-2GIS4DCY.js +30 -0
  63. package/dist/chunk-2GIS4DCY.js.map +1 -0
  64. package/dist/chunk-3BCBZR6R.js +30 -0
  65. package/dist/chunk-3BCBZR6R.js.map +1 -0
  66. package/dist/chunk-4YUIDZAO.js +30 -0
  67. package/dist/chunk-4YUIDZAO.js.map +1 -0
  68. package/dist/{chunk-XYZ7FOXJ.js → chunk-AQCOK5J5.js} +10 -14
  69. package/dist/chunk-AQCOK5J5.js.map +1 -0
  70. package/dist/chunk-ATGHQQC7.js +30 -0
  71. package/dist/chunk-ATGHQQC7.js.map +1 -0
  72. package/dist/{chunk-HQDYH45I.js → chunk-CWLAXLWR.js} +5 -13
  73. package/dist/chunk-CWLAXLWR.js.map +1 -0
  74. package/dist/chunk-DMWN52SV.js +30 -0
  75. package/dist/chunk-DMWN52SV.js.map +1 -0
  76. package/dist/{chunk-PDMOOWFW.js → chunk-EIVPVTUI.js} +4 -8
  77. package/dist/{chunk-PDMOOWFW.js.map → chunk-EIVPVTUI.js.map} +1 -1
  78. package/dist/chunk-HHTEMPIT.js +30 -0
  79. package/dist/chunk-HHTEMPIT.js.map +1 -0
  80. package/dist/{chunk-26IX7QU7.js → chunk-HJESSMKB.js} +4 -6
  81. package/dist/{chunk-26IX7QU7.js.map → chunk-HJESSMKB.js.map} +1 -1
  82. package/dist/{chunk-5LFOFVZ3.js → chunk-IFAH652L.js} +6 -9
  83. package/dist/chunk-IFAH652L.js.map +1 -0
  84. package/dist/chunk-IUGJG4RA.js +30 -0
  85. package/dist/chunk-IUGJG4RA.js.map +1 -0
  86. package/dist/{chunk-6EG2MNC7.js → chunk-JNLVXPHR.js} +13 -13
  87. package/dist/chunk-KEZEGPEX.js +30 -0
  88. package/dist/chunk-KEZEGPEX.js.map +1 -0
  89. package/dist/{chunk-66U2RSYJ.js → chunk-KP4GNXYS.js} +4 -10
  90. package/dist/chunk-KP4GNXYS.js.map +1 -0
  91. package/dist/chunk-KXQMCN4O.js +30 -0
  92. package/dist/chunk-KXQMCN4O.js.map +1 -0
  93. package/dist/{chunk-YXS27XM6.js → chunk-KYBOZ7C4.js} +3 -7
  94. package/dist/chunk-KYBOZ7C4.js.map +1 -0
  95. package/dist/chunk-LBWM6TTU.js +30 -0
  96. package/dist/chunk-LBWM6TTU.js.map +1 -0
  97. package/dist/{chunk-3DVDS7CT.js → chunk-LCDONZBX.js} +5 -5
  98. package/dist/chunk-LCDONZBX.js.map +1 -0
  99. package/dist/{chunk-OJ3YWO3W.js → chunk-NE76IBV2.js} +3 -7
  100. package/dist/chunk-NE76IBV2.js.map +1 -0
  101. package/dist/{chunk-HMU342XE.js → chunk-PVO6TZCZ.js} +3 -9
  102. package/dist/{chunk-HMU342XE.js.map → chunk-PVO6TZCZ.js.map} +1 -1
  103. package/dist/{chunk-URZGNPTQ.js → chunk-RILYRQ72.js} +4 -10
  104. package/dist/chunk-RILYRQ72.js.map +1 -0
  105. package/dist/{chunk-FBQ3X3UY.js → chunk-U4QMFVAM.js} +5 -13
  106. package/dist/chunk-U4QMFVAM.js.map +1 -0
  107. package/dist/chunk-VWDTOSE3.js +26 -0
  108. package/dist/chunk-VWDTOSE3.js.map +1 -0
  109. package/dist/chunk-YRQBU2OW.js +30 -0
  110. package/dist/chunk-YRQBU2OW.js.map +1 -0
  111. package/dist/clickoutside.browser.global.js +5 -7
  112. package/dist/clickoutside.browser.global.js.map +1 -1
  113. package/dist/clipboard.browser.global.js +4 -8
  114. package/dist/clipboard.browser.global.js.map +1 -1
  115. package/dist/core.browser.global.js +13 -25
  116. package/dist/core.browser.global.js.map +1 -1
  117. package/dist/draggable.browser.global.js +5 -13
  118. package/dist/draggable.browser.global.js.map +1 -1
  119. package/dist/focustrap.browser.global.js +4 -8
  120. package/dist/focustrap.browser.global.js.map +1 -1
  121. package/dist/index.cjs +98 -273
  122. package/dist/index.cjs.map +1 -1
  123. package/dist/index.d.cts +10 -10
  124. package/dist/index.d.ts +10 -10
  125. package/dist/index.js +42 -55
  126. package/dist/index.js.map +1 -1
  127. package/dist/loaders.cjs +77 -239
  128. package/dist/loaders.cjs.map +1 -1
  129. package/dist/loaders.js +13 -13
  130. package/dist/registry.cjs +4 -4
  131. package/dist/registry.cjs.map +1 -1
  132. package/dist/registry.d.cts +5 -6
  133. package/dist/registry.d.ts +5 -6
  134. package/dist/registry.js +1 -1
  135. package/dist/removable.browser.global.js +3 -9
  136. package/dist/removable.browser.global.js.map +1 -1
  137. package/dist/resizable.browser.global.js +6 -9
  138. package/dist/resizable.browser.global.js.map +1 -1
  139. package/dist/resolver.browser.global.js +47 -102
  140. package/dist/resolver.browser.global.js.map +1 -1
  141. package/dist/schemas/index.cjs +40 -95
  142. package/dist/schemas/index.cjs.map +1 -1
  143. package/dist/schemas/index.d.cts +2 -2
  144. package/dist/schemas/index.d.ts +2 -2
  145. package/dist/schemas/index.js +11 -11
  146. package/dist/schemas/index.js.map +1 -1
  147. package/dist/scrollreveal.browser.global.js +5 -11
  148. package/dist/scrollreveal.browser.global.js.map +1 -1
  149. package/dist/sortable.browser.global.js +5 -9
  150. package/dist/sortable.browser.global.js.map +1 -1
  151. package/dist/tabs.browser.global.js +6 -14
  152. package/dist/tabs.browser.global.js.map +1 -1
  153. package/dist/toggleable.browser.global.js +9 -13
  154. package/dist/toggleable.browser.global.js.map +1 -1
  155. package/dist/{types-DCCtVQS5.d.cts → types-CbA4L8XJ.d.cts} +16 -23
  156. package/dist/{types-DCCtVQS5.d.ts → types-CbA4L8XJ.d.ts} +16 -23
  157. package/package.json +5 -5
  158. package/src/behavior-resolver.ts +24 -56
  159. package/src/behaviors/autodismiss.test.ts +12 -20
  160. package/src/behaviors/autodismiss.ts +8 -23
  161. package/src/behaviors/clickoutside.test.ts +13 -21
  162. package/src/behaviors/clickoutside.ts +8 -23
  163. package/src/behaviors/clipboard.test.ts +12 -34
  164. package/src/behaviors/clipboard.ts +8 -23
  165. package/src/behaviors/curated-runtime.test.ts +22 -24
  166. package/src/behaviors/draggable.ts +10 -24
  167. package/src/behaviors/experimental-runtime.test.ts +19 -18
  168. package/src/behaviors/focustrap.test.ts +12 -20
  169. package/src/behaviors/focustrap.ts +8 -23
  170. package/src/behaviors/integration.test.ts +19 -54
  171. package/src/behaviors/optional-runtime.test.ts +17 -22
  172. package/src/behaviors/removable.ts +6 -20
  173. package/src/behaviors/resizable.ts +9 -24
  174. package/src/behaviors/scrollreveal.test.ts +13 -21
  175. package/src/behaviors/scrollreveal.ts +8 -23
  176. package/src/behaviors/sortable.ts +7 -22
  177. package/src/behaviors/tabs.test.ts +12 -34
  178. package/src/behaviors/tabs.ts +8 -23
  179. package/src/behaviors/toggleable.ts +10 -26
  180. package/src/browser-resolver-bundle.ts +20 -30
  181. package/src/core-bundle.ts +11 -11
  182. package/src/index.test.ts +2 -2
  183. package/src/index.ts +30 -47
  184. package/src/registry.test.ts +9 -34
  185. package/src/registry.ts +7 -11
  186. package/src/schemas/autodismiss.schema.ts +3 -9
  187. package/src/schemas/clickoutside.schema.ts +3 -5
  188. package/src/schemas/clipboard.schema.ts +2 -6
  189. package/src/schemas/draggable.schema.ts +4 -12
  190. package/src/schemas/focustrap.schema.ts +2 -6
  191. package/src/schemas/index.ts +2 -1
  192. package/src/schemas/removable.schema.ts +2 -8
  193. package/src/schemas/resizable.schema.ts +5 -8
  194. package/src/schemas/scrollreveal.schema.ts +3 -9
  195. package/src/schemas/sortable.schema.ts +3 -7
  196. package/src/schemas/tabs.schema.ts +4 -12
  197. package/src/schemas/toggleable.schema.ts +10 -13
  198. package/src/schemas/types.ts +37 -30
  199. package/dist/chunk-2HUF6RMI.js +0 -40
  200. package/dist/chunk-2HUF6RMI.js.map +0 -1
  201. package/dist/chunk-3DVDS7CT.js.map +0 -1
  202. package/dist/chunk-5LFOFVZ3.js.map +0 -1
  203. package/dist/chunk-66U2RSYJ.js.map +0 -1
  204. package/dist/chunk-6TJXDCAQ.js +0 -11
  205. package/dist/chunk-6TJXDCAQ.js.map +0 -1
  206. package/dist/chunk-7NGOA3T5.js +0 -40
  207. package/dist/chunk-7NGOA3T5.js.map +0 -1
  208. package/dist/chunk-7TPDLB7W.js +0 -40
  209. package/dist/chunk-7TPDLB7W.js.map +0 -1
  210. package/dist/chunk-CR3J7VV6.js +0 -40
  211. package/dist/chunk-CR3J7VV6.js.map +0 -1
  212. package/dist/chunk-EDBG2F57.js +0 -40
  213. package/dist/chunk-EDBG2F57.js.map +0 -1
  214. package/dist/chunk-FBQ3X3UY.js.map +0 -1
  215. package/dist/chunk-HQDYH45I.js.map +0 -1
  216. package/dist/chunk-HX663BJ4.js +0 -40
  217. package/dist/chunk-HX663BJ4.js.map +0 -1
  218. package/dist/chunk-KROW43CG.js +0 -40
  219. package/dist/chunk-KROW43CG.js.map +0 -1
  220. package/dist/chunk-L52AGCMP.js +0 -40
  221. package/dist/chunk-L52AGCMP.js.map +0 -1
  222. package/dist/chunk-OJ3YWO3W.js.map +0 -1
  223. package/dist/chunk-ORBJ7MRW.js +0 -40
  224. package/dist/chunk-ORBJ7MRW.js.map +0 -1
  225. package/dist/chunk-SLSCZV4A.js +0 -40
  226. package/dist/chunk-SLSCZV4A.js.map +0 -1
  227. package/dist/chunk-URZGNPTQ.js.map +0 -1
  228. package/dist/chunk-WKBRZGGL.js +0 -40
  229. package/dist/chunk-WKBRZGGL.js.map +0 -1
  230. package/dist/chunk-XYZ7FOXJ.js.map +0 -1
  231. package/dist/chunk-YXS27XM6.js.map +0 -1
  232. /package/dist/{chunk-6EG2MNC7.js.map → chunk-JNLVXPHR.js.map} +0 -0
package/dist/index.js CHANGED
@@ -3,44 +3,44 @@ import {
3
3
  removableMetadata,
4
4
  removableSource,
5
5
  removable_default
6
- } from "./chunk-L52AGCMP.js";
6
+ } from "./chunk-2GIS4DCY.js";
7
7
  import {
8
8
  registerResizable,
9
9
  resizableMetadata,
10
10
  resizableSource,
11
11
  resizable_default
12
- } from "./chunk-7NGOA3T5.js";
12
+ } from "./chunk-KEZEGPEX.js";
13
13
  import {
14
14
  registerScrollReveal,
15
15
  scrollRevealMetadata,
16
16
  scrollRevealSource,
17
17
  scrollreveal_default
18
- } from "./chunk-KROW43CG.js";
18
+ } from "./chunk-ATGHQQC7.js";
19
19
  import {
20
20
  registerSortable,
21
21
  sortableMetadata,
22
22
  sortableSource,
23
23
  sortable_default
24
- } from "./chunk-SLSCZV4A.js";
24
+ } from "./chunk-3BCBZR6R.js";
25
25
  import {
26
26
  registerTabs,
27
27
  tabsMetadata,
28
28
  tabsSource,
29
29
  tabs_default
30
- } from "./chunk-WKBRZGGL.js";
30
+ } from "./chunk-KXQMCN4O.js";
31
31
  import {
32
32
  registerToggleable,
33
33
  toggleableMetadata,
34
34
  toggleableSource,
35
35
  toggleable_default
36
- } from "./chunk-HX663BJ4.js";
37
- import "./chunk-6EG2MNC7.js";
38
- import "./chunk-HMU342XE.js";
39
- import "./chunk-5LFOFVZ3.js";
40
- import "./chunk-URZGNPTQ.js";
41
- import "./chunk-PDMOOWFW.js";
42
- import "./chunk-HQDYH45I.js";
43
- import "./chunk-XYZ7FOXJ.js";
36
+ } from "./chunk-IUGJG4RA.js";
37
+ import "./chunk-JNLVXPHR.js";
38
+ import "./chunk-PVO6TZCZ.js";
39
+ import "./chunk-IFAH652L.js";
40
+ import "./chunk-RILYRQ72.js";
41
+ import "./chunk-EIVPVTUI.js";
42
+ import "./chunk-CWLAXLWR.js";
43
+ import "./chunk-AQCOK5J5.js";
44
44
  import {
45
45
  getAllSchemas,
46
46
  getAllSchemasRecord,
@@ -63,45 +63,45 @@ import {
63
63
  registerWithRuntime,
64
64
  tryGetBehavior,
65
65
  tryGetSchema
66
- } from "./chunk-3DVDS7CT.js";
66
+ } from "./chunk-LCDONZBX.js";
67
67
  import {
68
68
  autoDismissMetadata,
69
69
  autoDismissSource,
70
70
  autodismiss_default,
71
71
  registerAutoDismiss
72
- } from "./chunk-2HUF6RMI.js";
73
- import "./chunk-66U2RSYJ.js";
72
+ } from "./chunk-4YUIDZAO.js";
73
+ import "./chunk-KP4GNXYS.js";
74
74
  import {
75
75
  clickOutsideMetadata,
76
76
  clickOutsideSource,
77
77
  clickoutside_default,
78
78
  registerClickOutside
79
- } from "./chunk-7TPDLB7W.js";
80
- import "./chunk-26IX7QU7.js";
79
+ } from "./chunk-DMWN52SV.js";
80
+ import "./chunk-HJESSMKB.js";
81
81
  import {
82
82
  clipboardMetadata,
83
83
  clipboardSource,
84
84
  clipboard_default,
85
85
  registerClipboard
86
- } from "./chunk-EDBG2F57.js";
87
- import "./chunk-YXS27XM6.js";
86
+ } from "./chunk-HHTEMPIT.js";
87
+ import "./chunk-KYBOZ7C4.js";
88
88
  import {
89
89
  draggableMetadata,
90
90
  draggableSource,
91
91
  draggable_default,
92
92
  registerDraggable
93
- } from "./chunk-ORBJ7MRW.js";
94
- import "./chunk-FBQ3X3UY.js";
93
+ } from "./chunk-LBWM6TTU.js";
94
+ import "./chunk-U4QMFVAM.js";
95
95
  import {
96
96
  focusTrapMetadata,
97
97
  focusTrapSource,
98
98
  focustrap_default,
99
99
  registerFocusTrap
100
- } from "./chunk-CR3J7VV6.js";
101
- import "./chunk-OJ3YWO3W.js";
100
+ } from "./chunk-YRQBU2OW.js";
101
+ import "./chunk-NE76IBV2.js";
102
102
  import {
103
103
  resolveRuntime
104
- } from "./chunk-6TJXDCAQ.js";
104
+ } from "./chunk-VWDTOSE3.js";
105
105
 
106
106
  // src/generated/metadata.ts
107
107
  var ALL_BEHAVIOR_NAMES = [
@@ -208,41 +208,28 @@ function isCurated(name) {
208
208
  }
209
209
 
210
210
  // src/index.ts
211
- async function registerAll(hyperfixi) {
211
+ async function registerAll(host) {
212
212
  await Promise.all([
213
- registerDraggable(hyperfixi),
214
- registerRemovable(hyperfixi),
215
- registerToggleable(hyperfixi),
216
- registerSortable(hyperfixi),
217
- registerResizable(hyperfixi),
218
- registerClipboard(hyperfixi),
219
- registerAutoDismiss(hyperfixi),
220
- registerClickOutside(hyperfixi),
221
- registerFocusTrap(hyperfixi),
222
- registerScrollReveal(hyperfixi),
223
- registerTabs(hyperfixi)
213
+ registerDraggable(host),
214
+ registerRemovable(host),
215
+ registerToggleable(host),
216
+ registerSortable(host),
217
+ registerResizable(host),
218
+ registerClipboard(host),
219
+ registerAutoDismiss(host),
220
+ registerClickOutside(host),
221
+ registerFocusTrap(host),
222
+ registerScrollReveal(host),
223
+ registerTabs(host)
224
224
  ]);
225
225
  }
226
226
  var ready = null;
227
- var _runtime = resolveRuntime();
228
- if (_runtime) {
229
- const lsWin = window;
230
- ready = registerAll(_runtime);
231
- lsWin.__hyperfixi_behaviors_ready = ready;
232
- ready.then(() => {
233
- const hf = _runtime;
234
- const savedPromise = lsWin.__hyperfixi_behaviors_ready;
235
- delete lsWin.__hyperfixi_behaviors_ready;
236
- if (hf.attributeProcessor?.scanAndProcessAll) {
237
- hf.attributeProcessor.scanAndProcessAll().finally(() => {
238
- lsWin.__hyperfixi_behaviors_ready = savedPromise;
239
- });
240
- } else if (hf.processNode) {
241
- hf.processNode(document);
242
- lsWin.__hyperfixi_behaviors_ready = savedPromise;
243
- }
227
+ var _host = resolveRuntime();
228
+ if (_host) {
229
+ ready = registerAll(_host).then(() => {
230
+ if (document.readyState !== "loading") _host.processNode?.(document.body);
244
231
  }).catch((err) => {
245
- console.error("[behaviors] Auto-registration failed:", err);
232
+ console.error("[behaviors] Auto-definition failed:", err);
246
233
  });
247
234
  }
248
235
  export {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generated/metadata.ts","../src/curation.ts","../src/index.ts"],"sourcesContent":["/**\n * Generated Metadata\n *\n * DO NOT EDIT - Generated by scripts/generate.ts\n * Run `npm run generate` to regenerate.\n */\n\nimport type { BehaviorCategory, BehaviorTier } from '../schemas/types';\nimport type { BehaviorName } from './types';\n\n/**\n * All behavior names.\n */\nexport const ALL_BEHAVIOR_NAMES: BehaviorName[] = [\n \"Draggable\",\n \"Sortable\",\n \"Resizable\",\n \"Removable\",\n \"Toggleable\",\n \"Clipboard\",\n \"AutoDismiss\",\n \"ClickOutside\",\n \"FocusTrap\",\n \"ScrollReveal\",\n \"Tabs\"\n];\n\n/**\n * Behaviors grouped by category.\n */\nexport const BEHAVIORS_BY_CATEGORY: Record<BehaviorCategory, BehaviorName[]> = {\n \"ui\": [\n \"Draggable\",\n \"Sortable\",\n \"Resizable\",\n \"Clipboard\",\n \"AutoDismiss\",\n \"ClickOutside\",\n \"FocusTrap\",\n \"Tabs\"\n ],\n \"data\": [\n \"Removable\"\n ],\n \"animation\": [],\n \"form\": [\n \"Toggleable\"\n ],\n \"layout\": [\n \"ScrollReveal\"\n ]\n};\n\n/**\n * Behaviors grouped by tier.\n */\nexport const BEHAVIORS_BY_TIER: Record<BehaviorTier, BehaviorName[]> = {\n \"core\": [\n \"Draggable\",\n \"Toggleable\",\n \"Clipboard\",\n \"AutoDismiss\",\n \"ClickOutside\",\n \"FocusTrap\",\n \"Tabs\"\n ],\n \"common\": [\n \"Sortable\",\n \"Removable\",\n \"ScrollReveal\"\n ],\n \"optional\": [\n \"Resizable\"\n ]\n};\n\n/**\n * Category for each behavior.\n */\nexport const BEHAVIOR_CATEGORIES: Record<BehaviorName, BehaviorCategory> = {\n \"Draggable\": \"ui\",\n \"Sortable\": \"ui\",\n \"Resizable\": \"ui\",\n \"Removable\": \"data\",\n \"Toggleable\": \"form\",\n \"Clipboard\": \"ui\",\n \"AutoDismiss\": \"ui\",\n \"ClickOutside\": \"ui\",\n \"FocusTrap\": \"ui\",\n \"ScrollReveal\": \"layout\",\n \"Tabs\": \"ui\"\n};\n\n/**\n * Tier for each behavior.\n */\nexport const BEHAVIOR_TIERS: Record<BehaviorName, BehaviorTier> = {\n \"Draggable\": \"core\",\n \"Sortable\": \"common\",\n \"Resizable\": \"optional\",\n \"Removable\": \"common\",\n \"Toggleable\": \"core\",\n \"Clipboard\": \"core\",\n \"AutoDismiss\": \"core\",\n \"ClickOutside\": \"core\",\n \"FocusTrap\": \"core\",\n \"ScrollReveal\": \"common\",\n \"Tabs\": \"core\"\n};\n","/**\n * Curation status — the product decision about which behaviors are first-class.\n *\n * This is ORTHOGONAL to {@link BehaviorTier} (core/common/optional), which is about\n * lazy-loading priority. Curation is about support level and the boundary rule:\n *\n * A behavior is a named, parameterized, *reusable inline script* — `on event →\n * DOM action`. Not a component. When it needs an observer, a focus model, or an\n * async pointer loop, it has left hyperfixi's lane.\n *\n * See docs-internal/BEHAVIORS_CONSOLIDATION_PLAN.md for the full rationale.\n */\n\nexport type CurationStatus = 'curated' | 'optional' | 'experimental';\n\n/**\n * Curated set — reliable, runtime-tested, multilingual. The supported story.\n * Real `on event → DOM action` behaviors (Tier A) plus two honestly-labeled\n * JS-backed conveniences (Clipboard, AutoDismiss).\n */\nexport const CURATED_BEHAVIORS = [\n 'Toggleable',\n 'Removable',\n 'ClickOutside',\n 'Clipboard',\n 'AutoDismiss',\n] as const;\n\n/**\n * Optional — useful, kept, documented as primitives / nice-to-haves.\n * FocusTrap + ClickOutside are the primitives a Modal composes from; ScrollReveal\n * is a nice-to-have; Tabs is high-value but heavy.\n */\nexport const OPTIONAL_BEHAVIORS = ['FocusTrap', 'ScrollReveal', 'Tabs'] as const;\n\n/**\n * Experimental — stateful async components (drag/sort/resize). These sit *beyond*\n * the inline-scripting boundary; kept working but explicitly outside the curated,\n * supported, marketed story.\n */\nexport const EXPERIMENTAL_BEHAVIORS = ['Draggable', 'Sortable', 'Resizable'] as const;\n\n/** Curation status for every behavior, keyed by name. */\nexport const CURATION_STATUS: Record<string, CurationStatus> = {\n ...Object.fromEntries(CURATED_BEHAVIORS.map(n => [n, 'curated' as const])),\n ...Object.fromEntries(OPTIONAL_BEHAVIORS.map(n => [n, 'optional' as const])),\n ...Object.fromEntries(EXPERIMENTAL_BEHAVIORS.map(n => [n, 'experimental' as const])),\n};\n\n/** Curation status for a behavior name, or undefined if unknown. */\nexport function curationStatusOf(name: string): CurationStatus | undefined {\n return CURATION_STATUS[name];\n}\n\n/** True for the curated, supported set. */\nexport function isCurated(name: string): boolean {\n return CURATION_STATUS[name] === 'curated';\n}\n","/**\n * @hyperfixi/behaviors\n *\n * Reusable hyperscript behaviors for LokaScript.\n * Each behavior can be imported individually for tree-shaking,\n * or all behaviors can be registered at once.\n *\n * @example Individual import (tree-shakeable)\n * ```javascript\n * import { registerDraggable } from '@hyperfixi/behaviors/draggable';\n * await registerDraggable();\n * ```\n *\n * @example Import all\n * ```javascript\n * import { registerAll } from '@hyperfixi/behaviors';\n * await registerAll();\n * ```\n *\n * @example Registry-based lazy loading\n * ```javascript\n * import { loadBehavior, getBehaviorsByCategory } from '@hyperfixi/behaviors';\n * await loadBehavior('Draggable');\n * const uiBehaviors = getBehaviorsByCategory('ui');\n * ```\n *\n * @example CDN usage\n * ```html\n * <script src=\"lokascript-browser.js\"></script>\n * <script src=\"@hyperfixi/behaviors/draggable.browser.js\"></script>\n * <!-- Draggable is auto-registered -->\n * ```\n */\n\n// =============================================================================\n// Re-export individual behaviors\n// =============================================================================\n\nexport {\n draggableSource,\n draggableMetadata,\n registerDraggable,\n default as Draggable,\n} from './behaviors/draggable';\n\nexport {\n removableSource,\n removableMetadata,\n registerRemovable,\n default as Removable,\n} from './behaviors/removable';\n\nexport {\n toggleableSource,\n toggleableMetadata,\n registerToggleable,\n default as Toggleable,\n} from './behaviors/toggleable';\n\nexport {\n sortableSource,\n sortableMetadata,\n registerSortable,\n default as Sortable,\n} from './behaviors/sortable';\n\nexport {\n resizableSource,\n resizableMetadata,\n registerResizable,\n default as Resizable,\n} from './behaviors/resizable';\n\nexport {\n clipboardSource,\n clipboardMetadata,\n registerClipboard,\n default as Clipboard,\n} from './behaviors/clipboard';\n\nexport {\n autoDismissSource,\n autoDismissMetadata,\n registerAutoDismiss,\n default as AutoDismiss,\n} from './behaviors/autodismiss';\n\nexport {\n clickOutsideSource,\n clickOutsideMetadata,\n registerClickOutside,\n default as ClickOutside,\n} from './behaviors/clickoutside';\n\nexport {\n focusTrapSource,\n focusTrapMetadata,\n registerFocusTrap,\n default as FocusTrap,\n} from './behaviors/focustrap';\n\nexport {\n scrollRevealSource,\n scrollRevealMetadata,\n registerScrollReveal,\n default as ScrollReveal,\n} from './behaviors/scrollreveal';\n\nexport { tabsSource, tabsMetadata, registerTabs, default as Tabs } from './behaviors/tabs';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type {\n BehaviorSchema,\n BehaviorCategory,\n BehaviorTier,\n ParameterSchema,\n EventSchema,\n BehaviorModule,\n LokaScriptInstance,\n} from './schemas/types';\n\n// =============================================================================\n// Initialize registry with loaders (populates schemas and loaders)\n// =============================================================================\n\nimport './loaders';\n\n// =============================================================================\n// Registry exports\n// =============================================================================\n\nexport {\n // Registration\n registerBehavior,\n registerSchema,\n registerLoader,\n // Query (sync)\n getBehavior,\n tryGetBehavior,\n getSchema,\n tryGetSchema,\n isRegistered,\n hasLoader,\n getRegisteredBehaviors,\n getAvailableBehaviors,\n // Query by metadata\n getBehaviorsByCategory,\n getBehaviorsByTier,\n getAllSchemas,\n getAllSchemasRecord,\n // Lazy loading (async)\n loadBehavior,\n preloadTier,\n preloadCategory,\n loadAll,\n // Runtime registration\n registerWithRuntime,\n registerAllWithRuntime,\n} from './registry';\n\n// =============================================================================\n// Generated types and metadata\n// =============================================================================\n\nexport type {\n BehaviorName,\n UIBehavior,\n DataBehavior,\n AnimationBehavior,\n FormBehavior,\n LayoutBehavior,\n CoreBehavior,\n CommonBehavior,\n OptionalBehavior,\n} from './generated/types';\n\nexport {\n ALL_BEHAVIOR_NAMES,\n BEHAVIORS_BY_CATEGORY,\n BEHAVIORS_BY_TIER,\n BEHAVIOR_CATEGORIES,\n BEHAVIOR_TIERS,\n} from './generated/metadata';\n\n// =============================================================================\n// Curation status (curated / optional / experimental) — see curation.ts\n// =============================================================================\n\nexport type { CurationStatus } from './curation';\nexport {\n CURATED_BEHAVIORS,\n OPTIONAL_BEHAVIORS,\n EXPERIMENTAL_BEHAVIORS,\n CURATION_STATUS,\n curationStatusOf,\n isCurated,\n} from './curation';\n\n// =============================================================================\n// Convenience functions\n// =============================================================================\n\nimport { registerDraggable } from './behaviors/draggable';\nimport { registerRemovable } from './behaviors/removable';\nimport { registerToggleable } from './behaviors/toggleable';\nimport { registerSortable } from './behaviors/sortable';\nimport { registerResizable } from './behaviors/resizable';\nimport { registerClipboard } from './behaviors/clipboard';\nimport { registerAutoDismiss } from './behaviors/autodismiss';\nimport { registerClickOutside } from './behaviors/clickoutside';\nimport { registerFocusTrap } from './behaviors/focustrap';\nimport { registerScrollReveal } from './behaviors/scrollreveal';\nimport { registerTabs } from './behaviors/tabs';\nimport type { LokaScriptInstance } from './schemas/types';\nimport { resolveRuntime } from './schemas/types';\nimport type { LokaScriptWindow } from './schemas/types';\n\n/**\n * Register all behaviors with HyperFixi.\n *\n * @param hyperfixi - The hyperfixi instance (defaults to window.hyperfixi)\n * @returns Promise that resolves when all behaviors are registered\n *\n * @example\n * ```javascript\n * import { registerAll } from '@hyperfixi/behaviors';\n * await registerAll();\n * ```\n */\nexport async function registerAll(hyperfixi?: LokaScriptInstance): Promise<void> {\n await Promise.all([\n registerDraggable(hyperfixi),\n registerRemovable(hyperfixi),\n registerToggleable(hyperfixi),\n registerSortable(hyperfixi),\n registerResizable(hyperfixi),\n registerClipboard(hyperfixi),\n registerAutoDismiss(hyperfixi),\n registerClickOutside(hyperfixi),\n registerFocusTrap(hyperfixi),\n registerScrollReveal(hyperfixi),\n registerTabs(hyperfixi),\n ]);\n}\n\n// =============================================================================\n// Auto-registration for browser\n// =============================================================================\n\n/**\n * Promise that resolves when all behaviors are registered.\n * This is set when the package auto-registers in browser environments.\n */\nexport let ready: Promise<void> | null = null;\n\n// Auto-register all behaviors when loaded in browser with hyperfixi available\nconst _runtime = resolveRuntime();\nif (_runtime) {\n const lsWin = window as unknown as LokaScriptWindow;\n ready = registerAll(_runtime);\n\n lsWin.__hyperfixi_behaviors_ready = ready;\n\n ready\n .then(() => {\n const hf = _runtime as LokaScriptInstance & {\n attributeProcessor?: { scanAndProcessAll: () => Promise<void> };\n processNode?: (node: Document) => void;\n };\n const savedPromise = lsWin.__hyperfixi_behaviors_ready;\n delete lsWin.__hyperfixi_behaviors_ready;\n\n if (hf.attributeProcessor?.scanAndProcessAll) {\n hf.attributeProcessor.scanAndProcessAll().finally(() => {\n lsWin.__hyperfixi_behaviors_ready = savedPromise;\n });\n } else if (hf.processNode) {\n hf.processNode(document);\n lsWin.__hyperfixi_behaviors_ready = savedPromise;\n }\n })\n .catch(err => {\n console.error('[behaviors] Auto-registration failed:', err);\n });\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/generated/metadata.ts","../src/curation.ts","../src/index.ts"],"sourcesContent":["/**\n * Generated Metadata\n *\n * DO NOT EDIT - Generated by scripts/generate.ts\n * Run `npm run generate` to regenerate.\n */\n\nimport type { BehaviorCategory, BehaviorTier } from '../schemas/types';\nimport type { BehaviorName } from './types';\n\n/**\n * All behavior names.\n */\nexport const ALL_BEHAVIOR_NAMES: BehaviorName[] = [\n \"Draggable\",\n \"Sortable\",\n \"Resizable\",\n \"Removable\",\n \"Toggleable\",\n \"Clipboard\",\n \"AutoDismiss\",\n \"ClickOutside\",\n \"FocusTrap\",\n \"ScrollReveal\",\n \"Tabs\"\n];\n\n/**\n * Behaviors grouped by category.\n */\nexport const BEHAVIORS_BY_CATEGORY: Record<BehaviorCategory, BehaviorName[]> = {\n \"ui\": [\n \"Draggable\",\n \"Sortable\",\n \"Resizable\",\n \"Clipboard\",\n \"AutoDismiss\",\n \"ClickOutside\",\n \"FocusTrap\",\n \"Tabs\"\n ],\n \"data\": [\n \"Removable\"\n ],\n \"animation\": [],\n \"form\": [\n \"Toggleable\"\n ],\n \"layout\": [\n \"ScrollReveal\"\n ]\n};\n\n/**\n * Behaviors grouped by tier.\n */\nexport const BEHAVIORS_BY_TIER: Record<BehaviorTier, BehaviorName[]> = {\n \"core\": [\n \"Draggable\",\n \"Toggleable\",\n \"Clipboard\",\n \"AutoDismiss\",\n \"ClickOutside\",\n \"FocusTrap\",\n \"Tabs\"\n ],\n \"common\": [\n \"Sortable\",\n \"Removable\",\n \"ScrollReveal\"\n ],\n \"optional\": [\n \"Resizable\"\n ]\n};\n\n/**\n * Category for each behavior.\n */\nexport const BEHAVIOR_CATEGORIES: Record<BehaviorName, BehaviorCategory> = {\n \"Draggable\": \"ui\",\n \"Sortable\": \"ui\",\n \"Resizable\": \"ui\",\n \"Removable\": \"data\",\n \"Toggleable\": \"form\",\n \"Clipboard\": \"ui\",\n \"AutoDismiss\": \"ui\",\n \"ClickOutside\": \"ui\",\n \"FocusTrap\": \"ui\",\n \"ScrollReveal\": \"layout\",\n \"Tabs\": \"ui\"\n};\n\n/**\n * Tier for each behavior.\n */\nexport const BEHAVIOR_TIERS: Record<BehaviorName, BehaviorTier> = {\n \"Draggable\": \"core\",\n \"Sortable\": \"common\",\n \"Resizable\": \"optional\",\n \"Removable\": \"common\",\n \"Toggleable\": \"core\",\n \"Clipboard\": \"core\",\n \"AutoDismiss\": \"core\",\n \"ClickOutside\": \"core\",\n \"FocusTrap\": \"core\",\n \"ScrollReveal\": \"common\",\n \"Tabs\": \"core\"\n};\n","/**\n * Curation status — the product decision about which behaviors are first-class.\n *\n * This is ORTHOGONAL to {@link BehaviorTier} (core/common/optional), which is about\n * lazy-loading priority. Curation is about support level and the boundary rule:\n *\n * A behavior is a named, parameterized, *reusable inline script* — `on event →\n * DOM action`. Not a component. When it needs an observer, a focus model, or an\n * async pointer loop, it has left hyperfixi's lane.\n *\n * See docs-internal/BEHAVIORS_CONSOLIDATION_PLAN.md for the full rationale.\n */\n\nexport type CurationStatus = 'curated' | 'optional' | 'experimental';\n\n/**\n * Curated set — reliable, runtime-tested, multilingual. The supported story.\n * Real `on event → DOM action` behaviors (Tier A) plus two honestly-labeled\n * JS-backed conveniences (Clipboard, AutoDismiss).\n */\nexport const CURATED_BEHAVIORS = [\n 'Toggleable',\n 'Removable',\n 'ClickOutside',\n 'Clipboard',\n 'AutoDismiss',\n] as const;\n\n/**\n * Optional — useful, kept, documented as primitives / nice-to-haves.\n * FocusTrap + ClickOutside are the primitives a Modal composes from; ScrollReveal\n * is a nice-to-have; Tabs is high-value but heavy.\n */\nexport const OPTIONAL_BEHAVIORS = ['FocusTrap', 'ScrollReveal', 'Tabs'] as const;\n\n/**\n * Experimental — stateful async components (drag/sort/resize). These sit *beyond*\n * the inline-scripting boundary; kept working but explicitly outside the curated,\n * supported, marketed story.\n */\nexport const EXPERIMENTAL_BEHAVIORS = ['Draggable', 'Sortable', 'Resizable'] as const;\n\n/** Curation status for every behavior, keyed by name. */\nexport const CURATION_STATUS: Record<string, CurationStatus> = {\n ...Object.fromEntries(CURATED_BEHAVIORS.map(n => [n, 'curated' as const])),\n ...Object.fromEntries(OPTIONAL_BEHAVIORS.map(n => [n, 'optional' as const])),\n ...Object.fromEntries(EXPERIMENTAL_BEHAVIORS.map(n => [n, 'experimental' as const])),\n};\n\n/** Curation status for a behavior name, or undefined if unknown. */\nexport function curationStatusOf(name: string): CurationStatus | undefined {\n return CURATION_STATUS[name];\n}\n\n/** True for the curated, supported set. */\nexport function isCurated(name: string): boolean {\n return CURATION_STATUS[name] === 'curated';\n}\n","/**\n * @hyperfixi/behaviors\n *\n * Reusable hyperscript behaviors for LokaScript.\n * Each behavior can be imported individually for tree-shaking,\n * or all behaviors can be registered at once.\n *\n * @example Individual import (tree-shakeable)\n * ```javascript\n * import { registerDraggable } from '@hyperfixi/behaviors/draggable';\n * await registerDraggable();\n * ```\n *\n * @example Import all\n * ```javascript\n * import { registerAll } from '@hyperfixi/behaviors';\n * await registerAll();\n * ```\n *\n * @example Registry-based lazy loading\n * ```javascript\n * import { loadBehavior, getBehaviorsByCategory } from '@hyperfixi/behaviors';\n * await loadBehavior('Draggable');\n * const uiBehaviors = getBehaviorsByCategory('ui');\n * ```\n *\n * @example CDN usage\n * ```html\n * <script src=\"hyperfixi-hs.js\"></script>\n * <script src=\"@hyperfixi/behaviors/draggable.browser.js\"></script>\n * <!-- Draggable is auto-registered -->\n * ```\n */\n\n// =============================================================================\n// Re-export individual behaviors\n// =============================================================================\n\nexport {\n draggableSource,\n draggableMetadata,\n registerDraggable,\n default as Draggable,\n} from './behaviors/draggable';\n\nexport {\n removableSource,\n removableMetadata,\n registerRemovable,\n default as Removable,\n} from './behaviors/removable';\n\nexport {\n toggleableSource,\n toggleableMetadata,\n registerToggleable,\n default as Toggleable,\n} from './behaviors/toggleable';\n\nexport {\n sortableSource,\n sortableMetadata,\n registerSortable,\n default as Sortable,\n} from './behaviors/sortable';\n\nexport {\n resizableSource,\n resizableMetadata,\n registerResizable,\n default as Resizable,\n} from './behaviors/resizable';\n\nexport {\n clipboardSource,\n clipboardMetadata,\n registerClipboard,\n default as Clipboard,\n} from './behaviors/clipboard';\n\nexport {\n autoDismissSource,\n autoDismissMetadata,\n registerAutoDismiss,\n default as AutoDismiss,\n} from './behaviors/autodismiss';\n\nexport {\n clickOutsideSource,\n clickOutsideMetadata,\n registerClickOutside,\n default as ClickOutside,\n} from './behaviors/clickoutside';\n\nexport {\n focusTrapSource,\n focusTrapMetadata,\n registerFocusTrap,\n default as FocusTrap,\n} from './behaviors/focustrap';\n\nexport {\n scrollRevealSource,\n scrollRevealMetadata,\n registerScrollReveal,\n default as ScrollReveal,\n} from './behaviors/scrollreveal';\n\nexport { tabsSource, tabsMetadata, registerTabs, default as Tabs } from './behaviors/tabs';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport type {\n BehaviorSchema,\n BehaviorCategory,\n BehaviorTier,\n ParameterSchema,\n EventSchema,\n BehaviorModule,\n HyperscriptHost,\n HyperscriptWindow,\n} from './schemas/types';\n\n// =============================================================================\n// Initialize registry with loaders (populates schemas and loaders)\n// =============================================================================\n\nimport './loaders';\n\n// =============================================================================\n// Registry exports\n// =============================================================================\n\nexport {\n // Registration\n registerBehavior,\n registerSchema,\n registerLoader,\n // Query (sync)\n getBehavior,\n tryGetBehavior,\n getSchema,\n tryGetSchema,\n isRegistered,\n hasLoader,\n getRegisteredBehaviors,\n getAvailableBehaviors,\n // Query by metadata\n getBehaviorsByCategory,\n getBehaviorsByTier,\n getAllSchemas,\n getAllSchemasRecord,\n // Lazy loading (async)\n loadBehavior,\n preloadTier,\n preloadCategory,\n loadAll,\n // Runtime registration\n registerWithRuntime,\n registerAllWithRuntime,\n} from './registry';\n\n// =============================================================================\n// Generated types and metadata\n// =============================================================================\n\nexport type {\n BehaviorName,\n UIBehavior,\n DataBehavior,\n AnimationBehavior,\n FormBehavior,\n LayoutBehavior,\n CoreBehavior,\n CommonBehavior,\n OptionalBehavior,\n} from './generated/types';\n\nexport {\n ALL_BEHAVIOR_NAMES,\n BEHAVIORS_BY_CATEGORY,\n BEHAVIORS_BY_TIER,\n BEHAVIOR_CATEGORIES,\n BEHAVIOR_TIERS,\n} from './generated/metadata';\n\n// =============================================================================\n// Curation status (curated / optional / experimental) — see curation.ts\n// =============================================================================\n\nexport type { CurationStatus } from './curation';\nexport {\n CURATED_BEHAVIORS,\n OPTIONAL_BEHAVIORS,\n EXPERIMENTAL_BEHAVIORS,\n CURATION_STATUS,\n curationStatusOf,\n isCurated,\n} from './curation';\n\n// =============================================================================\n// Convenience functions\n// =============================================================================\n\nimport { registerDraggable } from './behaviors/draggable';\nimport { registerRemovable } from './behaviors/removable';\nimport { registerToggleable } from './behaviors/toggleable';\nimport { registerSortable } from './behaviors/sortable';\nimport { registerResizable } from './behaviors/resizable';\nimport { registerClipboard } from './behaviors/clipboard';\nimport { registerAutoDismiss } from './behaviors/autodismiss';\nimport { registerClickOutside } from './behaviors/clickoutside';\nimport { registerFocusTrap } from './behaviors/focustrap';\nimport { registerScrollReveal } from './behaviors/scrollreveal';\nimport { registerTabs } from './behaviors/tabs';\nimport type { HyperscriptHost } from './schemas/types';\nimport { resolveRuntime } from './schemas/types';\n\n/**\n * Define every behavior on a hyperscript host.\n *\n * @param host - The host (`@hyperfixi/engine`'s `window.hyperfixi`, or upstream's\n * `window._hyperscript`); defaults to the one on `window`\n *\n * @example\n * ```javascript\n * import { registerAll } from '@hyperfixi/behaviors';\n * await registerAll();\n * ```\n */\nexport async function registerAll(host?: HyperscriptHost): Promise<void> {\n await Promise.all([\n registerDraggable(host),\n registerRemovable(host),\n registerToggleable(host),\n registerSortable(host),\n registerResizable(host),\n registerClipboard(host),\n registerAutoDismiss(host),\n registerClickOutside(host),\n registerFocusTrap(host),\n registerScrollReveal(host),\n registerTabs(host),\n ]);\n}\n\n// =============================================================================\n// Auto-definition for the browser bundles\n// =============================================================================\n\n/**\n * Resolves when every behavior is defined, when the package was loaded as a script tag after\n * the host; `null` otherwise.\n */\nexport let ready: Promise<void> | null = null;\n\n// Loaded as a script tag after the host, before the document is ready, this runs before the\n// host reads the page, so every `install` finds its behavior. Loaded later, the elements the\n// host has already seen are processed again, so their installs can succeed now.\nconst _host = resolveRuntime();\nif (_host) {\n ready = registerAll(_host)\n .then(() => {\n if (document.readyState !== 'loading') _host.processNode?.(document.body);\n })\n .catch(err => {\n console.error('[behaviors] Auto-definition failed:', err);\n });\n}\n"],"mappings":"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","names":[]}