@hyperfixi/behaviors 2.0.0 → 2.2.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 (189) hide show
  1. package/dist/all.browser.global.js +35 -6
  2. package/dist/all.browser.global.js.map +1 -1
  3. package/dist/autodismiss.browser.global.js +3 -0
  4. package/dist/autodismiss.browser.global.js.map +1 -0
  5. package/dist/behaviors/autodismiss.cjs +177 -0
  6. package/dist/behaviors/autodismiss.cjs.map +1 -0
  7. package/dist/behaviors/autodismiss.d.cts +15 -0
  8. package/dist/behaviors/autodismiss.d.ts +15 -0
  9. package/dist/behaviors/autodismiss.js +15 -0
  10. package/dist/behaviors/autodismiss.js.map +1 -0
  11. package/dist/behaviors/clickoutside.cjs +123 -0
  12. package/dist/behaviors/clickoutside.cjs.map +1 -0
  13. package/dist/behaviors/clickoutside.d.cts +15 -0
  14. package/dist/behaviors/clickoutside.d.ts +15 -0
  15. package/dist/behaviors/clickoutside.js +15 -0
  16. package/dist/behaviors/clickoutside.js.map +1 -0
  17. package/dist/behaviors/clipboard.cjs +193 -0
  18. package/dist/behaviors/clipboard.cjs.map +1 -0
  19. package/dist/behaviors/clipboard.d.cts +15 -0
  20. package/dist/behaviors/clipboard.d.ts +15 -0
  21. package/dist/behaviors/clipboard.js +15 -0
  22. package/dist/behaviors/clipboard.js.map +1 -0
  23. package/dist/behaviors/draggable.cjs +49 -7
  24. package/dist/behaviors/draggable.cjs.map +1 -1
  25. package/dist/behaviors/draggable.d.cts +2 -1
  26. package/dist/behaviors/draggable.d.ts +2 -1
  27. package/dist/behaviors/draggable.js +2 -1
  28. package/dist/behaviors/focustrap.cjs +191 -0
  29. package/dist/behaviors/focustrap.cjs.map +1 -0
  30. package/dist/behaviors/focustrap.d.cts +15 -0
  31. package/dist/behaviors/focustrap.d.ts +15 -0
  32. package/dist/behaviors/focustrap.js +15 -0
  33. package/dist/behaviors/focustrap.js.map +1 -0
  34. package/dist/behaviors/removable.cjs +9 -2
  35. package/dist/behaviors/removable.cjs.map +1 -1
  36. package/dist/behaviors/removable.d.cts +1 -1
  37. package/dist/behaviors/removable.d.ts +1 -1
  38. package/dist/behaviors/removable.js +2 -1
  39. package/dist/behaviors/resizable.cjs +54 -7
  40. package/dist/behaviors/resizable.cjs.map +1 -1
  41. package/dist/behaviors/resizable.d.cts +1 -1
  42. package/dist/behaviors/resizable.d.ts +1 -1
  43. package/dist/behaviors/resizable.js +2 -1
  44. package/dist/behaviors/scrollreveal.cjs +149 -0
  45. package/dist/behaviors/scrollreveal.cjs.map +1 -0
  46. package/dist/behaviors/scrollreveal.d.cts +15 -0
  47. package/dist/behaviors/scrollreveal.d.ts +15 -0
  48. package/dist/behaviors/scrollreveal.js +15 -0
  49. package/dist/behaviors/scrollreveal.js.map +1 -0
  50. package/dist/behaviors/sortable.cjs +49 -7
  51. package/dist/behaviors/sortable.cjs.map +1 -1
  52. package/dist/behaviors/sortable.d.cts +1 -1
  53. package/dist/behaviors/sortable.d.ts +1 -1
  54. package/dist/behaviors/sortable.js +2 -1
  55. package/dist/behaviors/tabs.cjs +247 -0
  56. package/dist/behaviors/tabs.cjs.map +1 -0
  57. package/dist/behaviors/tabs.d.cts +15 -0
  58. package/dist/behaviors/tabs.d.ts +15 -0
  59. package/dist/behaviors/tabs.js +15 -0
  60. package/dist/behaviors/tabs.js.map +1 -0
  61. package/dist/behaviors/toggleable.cjs +36 -7
  62. package/dist/behaviors/toggleable.cjs.map +1 -1
  63. package/dist/behaviors/toggleable.d.cts +2 -1
  64. package/dist/behaviors/toggleable.d.ts +2 -1
  65. package/dist/behaviors/toggleable.js +2 -1
  66. package/dist/chunk-244WSZOL.js +67 -0
  67. package/dist/chunk-244WSZOL.js.map +1 -0
  68. package/dist/chunk-2NSKQMNM.js +99 -0
  69. package/dist/chunk-2NSKQMNM.js.map +1 -0
  70. package/dist/chunk-64DIQGQI.js +37 -0
  71. package/dist/chunk-64DIQGQI.js.map +1 -0
  72. package/dist/chunk-6TJXDCAQ.js +11 -0
  73. package/dist/chunk-6TJXDCAQ.js.map +1 -0
  74. package/dist/chunk-7JDV2THA.js +62 -0
  75. package/dist/chunk-7JDV2THA.js.map +1 -0
  76. package/dist/chunk-AFGA54SA.js +116 -0
  77. package/dist/chunk-AFGA54SA.js.map +1 -0
  78. package/dist/chunk-DYHBKDKB.js +62 -0
  79. package/dist/chunk-DYHBKDKB.js.map +1 -0
  80. package/dist/chunk-GPTHAUWN.js +58 -0
  81. package/dist/chunk-GPTHAUWN.js.map +1 -0
  82. package/dist/chunk-GVJPA2EK.js +68 -0
  83. package/dist/chunk-GVJPA2EK.js.map +1 -0
  84. package/dist/chunk-H2MCHR5A.js +89 -0
  85. package/dist/chunk-H2MCHR5A.js.map +1 -0
  86. package/dist/{chunk-2NQHIHD5.js → chunk-H5Y5ARYG.js} +6 -3
  87. package/dist/chunk-H5Y5ARYG.js.map +1 -0
  88. package/dist/chunk-JKBWIJFI.js +155 -0
  89. package/dist/chunk-JKBWIJFI.js.map +1 -0
  90. package/dist/chunk-QKDYW4VM.js +70 -0
  91. package/dist/chunk-QKDYW4VM.js.map +1 -0
  92. package/dist/chunk-RB7OB6OD.js +51 -0
  93. package/dist/chunk-RB7OB6OD.js.map +1 -0
  94. package/dist/chunk-RPERQTFU.js +75 -0
  95. package/dist/chunk-RPERQTFU.js.map +1 -0
  96. package/dist/chunk-S4QDV2MH.js +75 -0
  97. package/dist/chunk-S4QDV2MH.js.map +1 -0
  98. package/dist/chunk-WTUVPVSD.js +80 -0
  99. package/dist/chunk-WTUVPVSD.js.map +1 -0
  100. package/dist/chunk-YHQRFUWV.js +62 -0
  101. package/dist/chunk-YHQRFUWV.js.map +1 -0
  102. package/dist/chunk-ZQQZTMCJ.js +64 -0
  103. package/dist/chunk-ZQQZTMCJ.js.map +1 -0
  104. package/dist/clickoutside.browser.global.js +12 -0
  105. package/dist/clickoutside.browser.global.js.map +1 -0
  106. package/dist/clipboard.browser.global.js +3 -0
  107. package/dist/clipboard.browser.global.js.map +1 -0
  108. package/dist/core.browser.global.js +3 -3
  109. package/dist/core.browser.global.js.map +1 -1
  110. package/dist/draggable.browser.global.js +2 -2
  111. package/dist/draggable.browser.global.js.map +1 -1
  112. package/dist/focustrap.browser.global.js +9 -0
  113. package/dist/focustrap.browser.global.js.map +1 -0
  114. package/dist/index.cjs +1270 -50
  115. package/dist/index.cjs.map +1 -1
  116. package/dist/index.d.cts +13 -7
  117. package/dist/index.d.ts +13 -7
  118. package/dist/index.js +155 -48
  119. package/dist/index.js.map +1 -1
  120. package/dist/loaders.cjs +1151 -30
  121. package/dist/loaders.cjs.map +1 -1
  122. package/dist/loaders.js +9 -3
  123. package/dist/registry.d.cts +1 -1
  124. package/dist/registry.d.ts +1 -1
  125. package/dist/removable.browser.global.js +2 -2
  126. package/dist/removable.browser.global.js.map +1 -1
  127. package/dist/resizable.browser.global.js +2 -2
  128. package/dist/resizable.browser.global.js.map +1 -1
  129. package/dist/schemas/index.cjs +343 -1
  130. package/dist/schemas/index.cjs.map +1 -1
  131. package/dist/schemas/index.d.cts +45 -3
  132. package/dist/schemas/index.d.ts +45 -3
  133. package/dist/schemas/index.js +34 -4
  134. package/dist/schemas/index.js.map +1 -1
  135. package/dist/scrollreveal.browser.global.js +11 -0
  136. package/dist/scrollreveal.browser.global.js.map +1 -0
  137. package/dist/sortable.browser.global.js +2 -2
  138. package/dist/sortable.browser.global.js.map +1 -1
  139. package/dist/tabs.browser.global.js +3 -0
  140. package/dist/tabs.browser.global.js.map +1 -0
  141. package/dist/toggleable.browser.global.js +2 -2
  142. package/dist/toggleable.browser.global.js.map +1 -1
  143. package/dist/{types-CCc_2wAb.d.cts → types-DCCtVQS5.d.cts} +1 -1
  144. package/dist/{types-CCc_2wAb.d.ts → types-DCCtVQS5.d.ts} +1 -1
  145. package/package.json +45 -2
  146. package/src/behaviors/autodismiss.test.ts +61 -0
  147. package/src/behaviors/autodismiss.ts +107 -0
  148. package/src/behaviors/clickoutside.test.ts +52 -0
  149. package/src/behaviors/clickoutside.ts +77 -0
  150. package/src/behaviors/clipboard.test.ts +67 -0
  151. package/src/behaviors/clipboard.ts +130 -0
  152. package/src/behaviors/draggable.ts +62 -15
  153. package/src/behaviors/focustrap.test.ts +59 -0
  154. package/src/behaviors/focustrap.ts +158 -0
  155. package/src/behaviors/index.ts +37 -0
  156. package/src/behaviors/integration.test.ts +120 -45
  157. package/src/behaviors/removable.ts +4 -5
  158. package/src/behaviors/resizable.ts +63 -14
  159. package/src/behaviors/scrollreveal.test.ts +59 -0
  160. package/src/behaviors/scrollreveal.ts +78 -0
  161. package/src/behaviors/sortable.ts +61 -14
  162. package/src/behaviors/tabs.test.ts +81 -0
  163. package/src/behaviors/tabs.ts +196 -0
  164. package/src/behaviors/toggleable.ts +45 -13
  165. package/src/generated/metadata.ts +38 -7
  166. package/src/generated/types.ts +5 -5
  167. package/src/index.test.ts +143 -5
  168. package/src/index.ts +65 -13
  169. package/src/loaders.ts +18 -0
  170. package/src/registry.test.ts +26 -5
  171. package/src/schemas/autodismiss.schema.ts +66 -0
  172. package/src/schemas/clickoutside.schema.ts +39 -0
  173. package/src/schemas/clipboard.schema.ts +72 -0
  174. package/src/schemas/focustrap.schema.ts +53 -0
  175. package/src/schemas/index.ts +18 -0
  176. package/src/schemas/scrollreveal.schema.ts +60 -0
  177. package/src/schemas/tabs.schema.ts +66 -0
  178. package/src/schemas/types.ts +13 -1
  179. package/dist/chunk-2NQHIHD5.js.map +0 -1
  180. package/dist/chunk-3Q652JQB.js +0 -37
  181. package/dist/chunk-3Q652JQB.js.map +0 -1
  182. package/dist/chunk-HMRPQWQU.js +0 -37
  183. package/dist/chunk-HMRPQWQU.js.map +0 -1
  184. package/dist/chunk-MEP6B7XW.js +0 -37
  185. package/dist/chunk-MEP6B7XW.js.map +0 -1
  186. package/dist/chunk-URBOGGW6.js +0 -32
  187. package/dist/chunk-URBOGGW6.js.map +0 -1
  188. package/dist/chunk-WU37DFAL.js +0 -37
  189. package/dist/chunk-WU37DFAL.js.map +0 -1
package/dist/index.js CHANGED
@@ -1,4 +1,46 @@
1
- import "./chunk-URBOGGW6.js";
1
+ import {
2
+ registerRemovable,
3
+ removableMetadata,
4
+ removableSource,
5
+ removable_default
6
+ } from "./chunk-H5Y5ARYG.js";
7
+ import {
8
+ registerResizable,
9
+ resizableMetadata,
10
+ resizableSource,
11
+ resizable_default
12
+ } from "./chunk-WTUVPVSD.js";
13
+ import {
14
+ registerScrollReveal,
15
+ scrollRevealMetadata,
16
+ scrollRevealSource,
17
+ scrollreveal_default
18
+ } from "./chunk-244WSZOL.js";
19
+ import {
20
+ registerSortable,
21
+ sortableMetadata,
22
+ sortableSource,
23
+ sortable_default
24
+ } from "./chunk-RPERQTFU.js";
25
+ import {
26
+ registerTabs,
27
+ tabsMetadata,
28
+ tabsSource,
29
+ tabs_default
30
+ } from "./chunk-JKBWIJFI.js";
31
+ import {
32
+ registerToggleable,
33
+ toggleableMetadata,
34
+ toggleableSource,
35
+ toggleable_default
36
+ } from "./chunk-YHQRFUWV.js";
37
+ import "./chunk-7JDV2THA.js";
38
+ import "./chunk-272NKUJ3.js";
39
+ import "./chunk-V5IWDPDP.js";
40
+ import "./chunk-GPTHAUWN.js";
41
+ import "./chunk-BWZ6EGII.js";
42
+ import "./chunk-GVJPA2EK.js";
43
+ import "./chunk-WUHHMDAA.js";
2
44
  import {
3
45
  getAllSchemas,
4
46
  getAllSchemasRecord,
@@ -22,41 +64,44 @@ import {
22
64
  tryGetBehavior,
23
65
  tryGetSchema
24
66
  } from "./chunk-3DVDS7CT.js";
67
+ import {
68
+ autoDismissMetadata,
69
+ autoDismissSource,
70
+ autodismiss_default,
71
+ registerAutoDismiss
72
+ } from "./chunk-H2MCHR5A.js";
73
+ import "./chunk-ZQQZTMCJ.js";
74
+ import {
75
+ clickOutsideMetadata,
76
+ clickOutsideSource,
77
+ clickoutside_default,
78
+ registerClickOutside
79
+ } from "./chunk-DYHBKDKB.js";
80
+ import "./chunk-64DIQGQI.js";
81
+ import {
82
+ clipboardMetadata,
83
+ clipboardSource,
84
+ clipboard_default,
85
+ registerClipboard
86
+ } from "./chunk-2NSKQMNM.js";
87
+ import "./chunk-QKDYW4VM.js";
25
88
  import {
26
89
  draggableMetadata,
27
90
  draggableSource,
28
91
  draggable_default,
29
92
  registerDraggable
30
- } from "./chunk-WU37DFAL.js";
93
+ } from "./chunk-S4QDV2MH.js";
31
94
  import "./chunk-G6WR2AYR.js";
32
95
  import {
33
- registerRemovable,
34
- removableMetadata,
35
- removableSource,
36
- removable_default
37
- } from "./chunk-2NQHIHD5.js";
38
- import "./chunk-272NKUJ3.js";
39
- import {
40
- registerResizable,
41
- resizableMetadata,
42
- resizableSource,
43
- resizable_default
44
- } from "./chunk-HMRPQWQU.js";
45
- import "./chunk-V5IWDPDP.js";
96
+ focusTrapMetadata,
97
+ focusTrapSource,
98
+ focustrap_default,
99
+ registerFocusTrap
100
+ } from "./chunk-AFGA54SA.js";
101
+ import "./chunk-RB7OB6OD.js";
46
102
  import {
47
- registerSortable,
48
- sortableMetadata,
49
- sortableSource,
50
- sortable_default
51
- } from "./chunk-MEP6B7XW.js";
52
- import "./chunk-BWZ6EGII.js";
53
- import {
54
- registerToggleable,
55
- toggleableMetadata,
56
- toggleableSource,
57
- toggleable_default
58
- } from "./chunk-3Q652JQB.js";
59
- import "./chunk-WUHHMDAA.js";
103
+ resolveRuntime
104
+ } from "./chunk-6TJXDCAQ.js";
60
105
 
61
106
  // src/generated/metadata.ts
62
107
  var ALL_BEHAVIOR_NAMES = [
@@ -64,13 +109,24 @@ var ALL_BEHAVIOR_NAMES = [
64
109
  "Sortable",
65
110
  "Resizable",
66
111
  "Removable",
67
- "Toggleable"
112
+ "Toggleable",
113
+ "Clipboard",
114
+ "AutoDismiss",
115
+ "ClickOutside",
116
+ "FocusTrap",
117
+ "ScrollReveal",
118
+ "Tabs"
68
119
  ];
69
120
  var BEHAVIORS_BY_CATEGORY = {
70
121
  "ui": [
71
122
  "Draggable",
72
123
  "Sortable",
73
- "Resizable"
124
+ "Resizable",
125
+ "Clipboard",
126
+ "AutoDismiss",
127
+ "ClickOutside",
128
+ "FocusTrap",
129
+ "Tabs"
74
130
  ],
75
131
  "data": [
76
132
  "Removable"
@@ -79,16 +135,24 @@ var BEHAVIORS_BY_CATEGORY = {
79
135
  "form": [
80
136
  "Toggleable"
81
137
  ],
82
- "layout": []
138
+ "layout": [
139
+ "ScrollReveal"
140
+ ]
83
141
  };
84
142
  var BEHAVIORS_BY_TIER = {
85
143
  "core": [
86
144
  "Draggable",
87
- "Toggleable"
145
+ "Toggleable",
146
+ "Clipboard",
147
+ "AutoDismiss",
148
+ "ClickOutside",
149
+ "FocusTrap",
150
+ "Tabs"
88
151
  ],
89
152
  "common": [
90
153
  "Sortable",
91
- "Removable"
154
+ "Removable",
155
+ "ScrollReveal"
92
156
  ],
93
157
  "optional": [
94
158
  "Resizable"
@@ -99,14 +163,26 @@ var BEHAVIOR_CATEGORIES = {
99
163
  "Sortable": "ui",
100
164
  "Resizable": "ui",
101
165
  "Removable": "data",
102
- "Toggleable": "form"
166
+ "Toggleable": "form",
167
+ "Clipboard": "ui",
168
+ "AutoDismiss": "ui",
169
+ "ClickOutside": "ui",
170
+ "FocusTrap": "ui",
171
+ "ScrollReveal": "layout",
172
+ "Tabs": "ui"
103
173
  };
104
174
  var BEHAVIOR_TIERS = {
105
175
  "Draggable": "core",
106
176
  "Sortable": "common",
107
177
  "Resizable": "optional",
108
178
  "Removable": "common",
109
- "Toggleable": "core"
179
+ "Toggleable": "core",
180
+ "Clipboard": "core",
181
+ "AutoDismiss": "core",
182
+ "ClickOutside": "core",
183
+ "FocusTrap": "core",
184
+ "ScrollReveal": "common",
185
+ "Tabs": "core"
110
186
  };
111
187
 
112
188
  // src/index.ts
@@ -116,25 +192,32 @@ async function registerAll(hyperfixi) {
116
192
  registerRemovable(hyperfixi),
117
193
  registerToggleable(hyperfixi),
118
194
  registerSortable(hyperfixi),
119
- registerResizable(hyperfixi)
195
+ registerResizable(hyperfixi),
196
+ registerClipboard(hyperfixi),
197
+ registerAutoDismiss(hyperfixi),
198
+ registerClickOutside(hyperfixi),
199
+ registerFocusTrap(hyperfixi),
200
+ registerScrollReveal(hyperfixi),
201
+ registerTabs(hyperfixi)
120
202
  ]);
121
203
  }
122
204
  var ready = null;
123
- if (typeof window !== "undefined" && window.lokascript) {
205
+ var _runtime = resolveRuntime();
206
+ if (_runtime) {
124
207
  const lsWin = window;
125
- ready = registerAll();
126
- lsWin.__lokascript_behaviors_ready = ready;
208
+ ready = registerAll(_runtime);
209
+ lsWin.__hyperfixi_behaviors_ready = ready;
127
210
  ready.then(() => {
128
- const hyperfixi = lsWin.lokascript;
129
- const savedPromise = lsWin.__lokascript_behaviors_ready;
130
- delete lsWin.__lokascript_behaviors_ready;
131
- if (hyperfixi.attributeProcessor?.scanAndProcessAll) {
132
- hyperfixi.attributeProcessor.scanAndProcessAll().finally(() => {
133
- lsWin.__lokascript_behaviors_ready = savedPromise;
211
+ const hf = _runtime;
212
+ const savedPromise = lsWin.__hyperfixi_behaviors_ready;
213
+ delete lsWin.__hyperfixi_behaviors_ready;
214
+ if (hf.attributeProcessor?.scanAndProcessAll) {
215
+ hf.attributeProcessor.scanAndProcessAll().finally(() => {
216
+ lsWin.__hyperfixi_behaviors_ready = savedPromise;
134
217
  });
135
- } else if (hyperfixi.processNode) {
136
- hyperfixi.processNode(document);
137
- lsWin.__lokascript_behaviors_ready = savedPromise;
218
+ } else if (hf.processNode) {
219
+ hf.processNode(document);
220
+ lsWin.__hyperfixi_behaviors_ready = savedPromise;
138
221
  }
139
222
  }).catch((err) => {
140
223
  console.error("[behaviors] Auto-registration failed:", err);
@@ -142,17 +225,31 @@ if (typeof window !== "undefined" && window.lokascript) {
142
225
  }
143
226
  export {
144
227
  ALL_BEHAVIOR_NAMES,
228
+ autodismiss_default as AutoDismiss,
145
229
  BEHAVIORS_BY_CATEGORY,
146
230
  BEHAVIORS_BY_TIER,
147
231
  BEHAVIOR_CATEGORIES,
148
232
  BEHAVIOR_TIERS,
233
+ clickoutside_default as ClickOutside,
234
+ clipboard_default as Clipboard,
149
235
  draggable_default as Draggable,
236
+ focustrap_default as FocusTrap,
150
237
  removable_default as Removable,
151
238
  resizable_default as Resizable,
239
+ scrollreveal_default as ScrollReveal,
152
240
  sortable_default as Sortable,
241
+ tabs_default as Tabs,
153
242
  toggleable_default as Toggleable,
243
+ autoDismissMetadata,
244
+ autoDismissSource,
245
+ clickOutsideMetadata,
246
+ clickOutsideSource,
247
+ clipboardMetadata,
248
+ clipboardSource,
154
249
  draggableMetadata,
155
250
  draggableSource,
251
+ focusTrapMetadata,
252
+ focusTrapSource,
156
253
  getAllSchemas,
157
254
  getAllSchemasRecord,
158
255
  getAvailableBehaviors,
@@ -170,21 +267,31 @@ export {
170
267
  ready,
171
268
  registerAll,
172
269
  registerAllWithRuntime,
270
+ registerAutoDismiss,
173
271
  registerBehavior,
272
+ registerClickOutside,
273
+ registerClipboard,
174
274
  registerDraggable,
275
+ registerFocusTrap,
175
276
  registerLoader,
176
277
  registerRemovable,
177
278
  registerResizable,
178
279
  registerSchema,
280
+ registerScrollReveal,
179
281
  registerSortable,
282
+ registerTabs,
180
283
  registerToggleable,
181
284
  registerWithRuntime,
182
285
  removableMetadata,
183
286
  removableSource,
184
287
  resizableMetadata,
185
288
  resizableSource,
289
+ scrollRevealMetadata,
290
+ scrollRevealSource,
186
291
  sortableMetadata,
187
292
  sortableSource,
293
+ tabsMetadata,
294
+ tabsSource,
188
295
  toggleableMetadata,
189
296
  toggleableSource,
190
297
  tryGetBehavior,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/generated/metadata.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];\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 ],\n \"data\": [\n \"Removable\"\n ],\n \"animation\": [],\n \"form\": [\n \"Toggleable\"\n ],\n \"layout\": []\n};\n\n/**\n * Behaviors grouped by tier.\n */\nexport const BEHAVIORS_BY_TIER: Record<BehaviorTier, BehaviorName[]> = {\n \"core\": [\n \"Draggable\",\n \"Toggleable\"\n ],\n \"common\": [\n \"Sortable\",\n \"Removable\"\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};\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};\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\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// 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 type { LokaScriptInstance, 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 ]);\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\nif (typeof window !== 'undefined' && (window as unknown as LokaScriptWindow).lokascript) {\n const lsWin = window as unknown as LokaScriptWindow;\n ready = registerAll();\n\n lsWin.__lokascript_behaviors_ready = ready;\n\n ready\n .then(() => {\n const hyperfixi = lsWin.lokascript as LokaScriptInstance & {\n attributeProcessor?: { scanAndProcessAll: () => Promise<void> };\n processNode?: (node: Document) => void;\n };\n const savedPromise = lsWin.__lokascript_behaviors_ready;\n delete lsWin.__lokascript_behaviors_ready;\n\n if (hyperfixi.attributeProcessor?.scanAndProcessAll) {\n hyperfixi.attributeProcessor.scanAndProcessAll().finally(() => {\n lsWin.__lokascript_behaviors_ready = savedPromise;\n });\n } else if (hyperfixi.processNode) {\n hyperfixi.processNode(document);\n lsWin.__lokascript_behaviors_ready = savedPromise;\n }\n })\n .catch(err => {\n console.error('[behaviors] Auto-registration failed:', err);\n });\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,IAAM,qBAAqC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKO,IAAM,wBAAkE;AAAA,EAC7E,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN;AAAA,EACF;AAAA,EACA,aAAa,CAAC;AAAA,EACd,QAAQ;AAAA,IACN;AAAA,EACF;AAAA,EACA,UAAU,CAAC;AACb;AAKO,IAAM,oBAA0D;AAAA,EACrE,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,EACF;AACF;AAKO,IAAM,sBAA8D;AAAA,EACzE,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAChB;AAKO,IAAM,iBAAqD;AAAA,EAChE,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAChB;;;ACgGA,eAAsB,YAAY,WAA+C;AAC/E,QAAM,QAAQ,IAAI;AAAA,IAChB,kBAAkB,SAAS;AAAA,IAC3B,kBAAkB,SAAS;AAAA,IAC3B,mBAAmB,SAAS;AAAA,IAC5B,iBAAiB,SAAS;AAAA,IAC1B,kBAAkB,SAAS;AAAA,EAC7B,CAAC;AACH;AAUO,IAAI,QAA8B;AAGzC,IAAI,OAAO,WAAW,eAAgB,OAAuC,YAAY;AACvF,QAAM,QAAQ;AACd,UAAQ,YAAY;AAEpB,QAAM,+BAA+B;AAErC,QACG,KAAK,MAAM;AACV,UAAM,YAAY,MAAM;AAIxB,UAAM,eAAe,MAAM;AAC3B,WAAO,MAAM;AAEb,QAAI,UAAU,oBAAoB,mBAAmB;AACnD,gBAAU,mBAAmB,kBAAkB,EAAE,QAAQ,MAAM;AAC7D,cAAM,+BAA+B;AAAA,MACvC,CAAC;AAAA,IACH,WAAW,UAAU,aAAa;AAChC,gBAAU,YAAY,QAAQ;AAC9B,YAAM,+BAA+B;AAAA,IACvC;AAAA,EACF,CAAC,EACA,MAAM,SAAO;AACZ,YAAQ,MAAM,yCAAyC,GAAG;AAAA,EAC5D,CAAC;AACL;","names":[]}
1
+ {"version":3,"sources":["../src/generated/metadata.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 * @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// 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaO,IAAM,qBAAqC;AAAA,EAChD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKO,IAAM,wBAAkE;AAAA,EAC7E,MAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN;AAAA,EACF;AAAA,EACA,aAAa,CAAC;AAAA,EACd,QAAQ;AAAA,IACN;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR;AAAA,EACF;AACF;AAKO,IAAM,oBAA0D;AAAA,EACrE,QAAQ;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,UAAU;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,YAAY;AAAA,IACV;AAAA,EACF;AACF;AAKO,IAAM,sBAA8D;AAAA,EACzE,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,QAAQ;AACV;AAKO,IAAM,iBAAqD;AAAA,EAChE,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,aAAa;AAAA,EACb,cAAc;AAAA,EACd,aAAa;AAAA,EACb,eAAe;AAAA,EACf,gBAAgB;AAAA,EAChB,aAAa;AAAA,EACb,gBAAgB;AAAA,EAChB,QAAQ;AACV;;;AC8GA,eAAsB,YAAY,WAA+C;AAC/E,QAAM,QAAQ,IAAI;AAAA,IAChB,kBAAkB,SAAS;AAAA,IAC3B,kBAAkB,SAAS;AAAA,IAC3B,mBAAmB,SAAS;AAAA,IAC5B,iBAAiB,SAAS;AAAA,IAC1B,kBAAkB,SAAS;AAAA,IAC3B,kBAAkB,SAAS;AAAA,IAC3B,oBAAoB,SAAS;AAAA,IAC7B,qBAAqB,SAAS;AAAA,IAC9B,kBAAkB,SAAS;AAAA,IAC3B,qBAAqB,SAAS;AAAA,IAC9B,aAAa,SAAS;AAAA,EACxB,CAAC;AACH;AAUO,IAAI,QAA8B;AAGzC,IAAM,WAAW,eAAe;AAChC,IAAI,UAAU;AACZ,QAAM,QAAQ;AACd,UAAQ,YAAY,QAAQ;AAE5B,QAAM,8BAA8B;AAEpC,QACG,KAAK,MAAM;AACV,UAAM,KAAK;AAIX,UAAM,eAAe,MAAM;AAC3B,WAAO,MAAM;AAEb,QAAI,GAAG,oBAAoB,mBAAmB;AAC5C,SAAG,mBAAmB,kBAAkB,EAAE,QAAQ,MAAM;AACtD,cAAM,8BAA8B;AAAA,MACtC,CAAC;AAAA,IACH,WAAW,GAAG,aAAa;AACzB,SAAG,YAAY,QAAQ;AACvB,YAAM,8BAA8B;AAAA,IACtC;AAAA,EACF,CAAC,EACA,MAAM,SAAO;AACZ,YAAQ,MAAM,yCAAyC,GAAG;AAAA,EAC5D,CAAC;AACL;","names":[]}