@hyperfixi/behaviors 2.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.
- package/dist/all.browser.global.js +116 -0
- package/dist/all.browser.global.js.map +1 -0
- package/dist/behaviors/draggable.cjs +109 -0
- package/dist/behaviors/draggable.cjs.map +1 -0
- package/dist/behaviors/draggable.d.cts +15 -0
- package/dist/behaviors/draggable.d.ts +15 -0
- package/dist/behaviors/draggable.js +14 -0
- package/dist/behaviors/draggable.js.map +1 -0
- package/dist/behaviors/removable.cjs +120 -0
- package/dist/behaviors/removable.cjs.map +1 -0
- package/dist/behaviors/removable.d.cts +15 -0
- package/dist/behaviors/removable.d.ts +15 -0
- package/dist/behaviors/removable.js +14 -0
- package/dist/behaviors/removable.js.map +1 -0
- package/dist/behaviors/resizable.cjs +146 -0
- package/dist/behaviors/resizable.cjs.map +1 -0
- package/dist/behaviors/resizable.d.cts +15 -0
- package/dist/behaviors/resizable.d.ts +15 -0
- package/dist/behaviors/resizable.js +14 -0
- package/dist/behaviors/resizable.js.map +1 -0
- package/dist/behaviors/sortable.cjs +119 -0
- package/dist/behaviors/sortable.cjs.map +1 -0
- package/dist/behaviors/sortable.d.cts +15 -0
- package/dist/behaviors/sortable.d.ts +15 -0
- package/dist/behaviors/sortable.js +14 -0
- package/dist/behaviors/sortable.js.map +1 -0
- package/dist/behaviors/toggleable.cjs +105 -0
- package/dist/behaviors/toggleable.cjs.map +1 -0
- package/dist/behaviors/toggleable.d.cts +15 -0
- package/dist/behaviors/toggleable.d.ts +15 -0
- package/dist/behaviors/toggleable.js +14 -0
- package/dist/behaviors/toggleable.js.map +1 -0
- package/dist/chunk-272NKUJ3.js +63 -0
- package/dist/chunk-272NKUJ3.js.map +1 -0
- package/dist/chunk-2NQHIHD5.js +37 -0
- package/dist/chunk-2NQHIHD5.js.map +1 -0
- package/dist/chunk-3DVDS7CT.js +170 -0
- package/dist/chunk-3DVDS7CT.js.map +1 -0
- package/dist/chunk-3Q652JQB.js +37 -0
- package/dist/chunk-3Q652JQB.js.map +1 -0
- package/dist/chunk-BWZ6EGII.js +62 -0
- package/dist/chunk-BWZ6EGII.js.map +1 -0
- package/dist/chunk-G6WR2AYR.js +52 -0
- package/dist/chunk-G6WR2AYR.js.map +1 -0
- package/dist/chunk-HMRPQWQU.js +37 -0
- package/dist/chunk-HMRPQWQU.js.map +1 -0
- package/dist/chunk-MEP6B7XW.js +37 -0
- package/dist/chunk-MEP6B7XW.js.map +1 -0
- package/dist/chunk-URBOGGW6.js +32 -0
- package/dist/chunk-URBOGGW6.js.map +1 -0
- package/dist/chunk-V5IWDPDP.js +89 -0
- package/dist/chunk-V5IWDPDP.js.map +1 -0
- package/dist/chunk-WU37DFAL.js +37 -0
- package/dist/chunk-WU37DFAL.js.map +1 -0
- package/dist/chunk-WUHHMDAA.js +48 -0
- package/dist/chunk-WUHHMDAA.js.map +1 -0
- package/dist/core.browser.global.js +39 -0
- package/dist/core.browser.global.js.map +1 -0
- package/dist/draggable.browser.global.js +25 -0
- package/dist/draggable.browser.global.js.map +1 -0
- package/dist/index.cjs +907 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +134 -0
- package/dist/index.d.ts +134 -0
- package/dist/index.js +193 -0
- package/dist/index.js.map +1 -0
- package/dist/loaders.cjs +562 -0
- package/dist/loaders.cjs.map +1 -0
- package/dist/loaders.d.cts +2 -0
- package/dist/loaders.d.ts +2 -0
- package/dist/loaders.js +8 -0
- package/dist/loaders.js.map +1 -0
- package/dist/registry.cjs +214 -0
- package/dist/registry.cjs.map +1 -0
- package/dist/registry.d.cts +116 -0
- package/dist/registry.d.ts +116 -0
- package/dist/registry.js +47 -0
- package/dist/registry.js.map +1 -0
- package/dist/removable.browser.global.js +23 -0
- package/dist/removable.browser.global.js.map +1 -0
- package/dist/resizable.browser.global.js +35 -0
- package/dist/resizable.browser.global.js.map +1 -0
- package/dist/schemas/index.cjs +353 -0
- package/dist/schemas/index.cjs.map +1 -0
- package/dist/schemas/index.d.cts +75 -0
- package/dist/schemas/index.d.ts +75 -0
- package/dist/schemas/index.js +41 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/sortable.browser.global.js +25 -0
- package/dist/sortable.browser.global.js.map +1 -0
- package/dist/toggleable.browser.global.js +16 -0
- package/dist/toggleable.browser.global.js.map +1 -0
- package/dist/types-CCc_2wAb.d.cts +100 -0
- package/dist/types-CCc_2wAb.d.ts +100 -0
- package/package.json +109 -0
- package/src/behaviors/draggable.ts +60 -0
- package/src/behaviors/index.ts +40 -0
- package/src/behaviors/integration.test.ts +80 -0
- package/src/behaviors/removable.ts +55 -0
- package/src/behaviors/resizable.ts +55 -0
- package/src/behaviors/sortable.ts +56 -0
- package/src/behaviors/toggleable.ts +55 -0
- package/src/core-bundle.ts +35 -0
- package/src/generated/index.ts +9 -0
- package/src/generated/metadata.ts +78 -0
- package/src/generated/types.ts +51 -0
- package/src/index.test.ts +180 -0
- package/src/index.ts +222 -0
- package/src/loaders.ts +39 -0
- package/src/registry.test.ts +207 -0
- package/src/registry.ts +304 -0
- package/src/schemas/draggable.schema.ts +54 -0
- package/src/schemas/index.ts +60 -0
- package/src/schemas/removable.schema.ts +69 -0
- package/src/schemas/resizable.schema.ts +91 -0
- package/src/schemas/sortable.schema.ts +68 -0
- package/src/schemas/toggleable.schema.ts +50 -0
- package/src/schemas/types.ts +107 -0
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,907 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __esm = (fn, res) => function __init() {
|
|
7
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
8
|
+
};
|
|
9
|
+
var __export = (target, all) => {
|
|
10
|
+
for (var name in all)
|
|
11
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
+
};
|
|
13
|
+
var __copyProps = (to, from, except, desc) => {
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (let key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
+
}
|
|
19
|
+
return to;
|
|
20
|
+
};
|
|
21
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
22
|
+
|
|
23
|
+
// src/schemas/draggable.schema.ts
|
|
24
|
+
var draggableSchema;
|
|
25
|
+
var init_draggable_schema = __esm({
|
|
26
|
+
"src/schemas/draggable.schema.ts"() {
|
|
27
|
+
"use strict";
|
|
28
|
+
draggableSchema = {
|
|
29
|
+
name: "Draggable",
|
|
30
|
+
category: "ui",
|
|
31
|
+
tier: "core",
|
|
32
|
+
version: "1.0.0",
|
|
33
|
+
description: "Makes elements draggable with pointer events",
|
|
34
|
+
parameters: [
|
|
35
|
+
{
|
|
36
|
+
name: "dragHandle",
|
|
37
|
+
type: "selector",
|
|
38
|
+
optional: true,
|
|
39
|
+
default: "me",
|
|
40
|
+
description: "CSS selector for the drag handle element"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
events: [
|
|
44
|
+
{ name: "draggable:start", description: "Fired when drag begins" },
|
|
45
|
+
{ name: "draggable:move", description: "Fired during each movement" },
|
|
46
|
+
{ name: "draggable:end", description: "Fired when drag completes" }
|
|
47
|
+
],
|
|
48
|
+
requirements: ["position: absolute or position: fixed on the element"],
|
|
49
|
+
source: `
|
|
50
|
+
behavior Draggable(dragHandle)
|
|
51
|
+
init
|
|
52
|
+
if no dragHandle set dragHandle to me
|
|
53
|
+
end
|
|
54
|
+
on pointerdown(clientX, clientY) from dragHandle
|
|
55
|
+
halt the event
|
|
56
|
+
trigger draggable:start
|
|
57
|
+
measure x
|
|
58
|
+
set startX to it
|
|
59
|
+
measure y
|
|
60
|
+
set startY to it
|
|
61
|
+
set xoff to clientX - startX
|
|
62
|
+
set yoff to clientY - startY
|
|
63
|
+
repeat until event pointerup from document
|
|
64
|
+
wait for pointermove(clientX, clientY) or
|
|
65
|
+
pointerup(clientX, clientY) from document
|
|
66
|
+
add { left: \${clientX - xoff}px; top: \${clientY - yoff}px; }
|
|
67
|
+
trigger draggable:move
|
|
68
|
+
end
|
|
69
|
+
trigger draggable:end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
`.trim()
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
// src/behaviors/draggable.ts
|
|
78
|
+
var draggable_exports = {};
|
|
79
|
+
__export(draggable_exports, {
|
|
80
|
+
default: () => draggable_default,
|
|
81
|
+
draggableMetadata: () => draggableMetadata,
|
|
82
|
+
draggableSource: () => draggableSource,
|
|
83
|
+
registerDraggable: () => registerDraggable
|
|
84
|
+
});
|
|
85
|
+
async function registerDraggable(hyperfixi) {
|
|
86
|
+
const hf = hyperfixi || (typeof window !== "undefined" ? window.lokascript : null);
|
|
87
|
+
if (!hf) {
|
|
88
|
+
throw new Error(
|
|
89
|
+
"LokaScript not found. Make sure @hyperfixi/core is loaded before registering behaviors."
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
const result = hf.compileSync(draggableSchema.source, { traditional: true });
|
|
93
|
+
if (!result.ok) {
|
|
94
|
+
throw new Error(`Failed to compile Draggable behavior: ${JSON.stringify(result.errors)}`);
|
|
95
|
+
}
|
|
96
|
+
const ctx = hf.createContext ? hf.createContext() : { locals: /* @__PURE__ */ new Map(), globals: /* @__PURE__ */ new Map() };
|
|
97
|
+
await hf.execute(result.ast, ctx);
|
|
98
|
+
}
|
|
99
|
+
var draggableSource, draggableMetadata, draggable_default;
|
|
100
|
+
var init_draggable = __esm({
|
|
101
|
+
"src/behaviors/draggable.ts"() {
|
|
102
|
+
"use strict";
|
|
103
|
+
init_draggable_schema();
|
|
104
|
+
draggableSource = draggableSchema.source;
|
|
105
|
+
draggableMetadata = draggableSchema;
|
|
106
|
+
if (typeof window !== "undefined" && window.lokascript) {
|
|
107
|
+
registerDraggable().catch(console.error);
|
|
108
|
+
}
|
|
109
|
+
draggable_default = {
|
|
110
|
+
source: draggableSchema.source,
|
|
111
|
+
metadata: draggableSchema,
|
|
112
|
+
register: registerDraggable
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// src/schemas/removable.schema.ts
|
|
118
|
+
var removableSchema;
|
|
119
|
+
var init_removable_schema = __esm({
|
|
120
|
+
"src/schemas/removable.schema.ts"() {
|
|
121
|
+
"use strict";
|
|
122
|
+
removableSchema = {
|
|
123
|
+
name: "Removable",
|
|
124
|
+
category: "data",
|
|
125
|
+
tier: "common",
|
|
126
|
+
version: "1.2.0",
|
|
127
|
+
description: "Makes elements removable on click",
|
|
128
|
+
parameters: [
|
|
129
|
+
{
|
|
130
|
+
name: "triggerEl",
|
|
131
|
+
type: "selector",
|
|
132
|
+
optional: true,
|
|
133
|
+
default: "me",
|
|
134
|
+
description: "Element that triggers removal (e.g., a close button)"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
name: "confirm",
|
|
138
|
+
type: "boolean",
|
|
139
|
+
optional: true,
|
|
140
|
+
default: false,
|
|
141
|
+
description: "Show confirmation dialog before removal"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
name: "effect",
|
|
145
|
+
type: "string",
|
|
146
|
+
optional: true,
|
|
147
|
+
default: "none",
|
|
148
|
+
enum: ["fade", "none"],
|
|
149
|
+
description: 'Transition effect: "fade" or "none"'
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
events: [
|
|
153
|
+
{ name: "removable:before", description: "Fired before removal (cancelable)" },
|
|
154
|
+
{ name: "removable:removed", description: "Fired after removal" }
|
|
155
|
+
],
|
|
156
|
+
source: `
|
|
157
|
+
behavior Removable(triggerEl, confirm, effect)
|
|
158
|
+
init
|
|
159
|
+
if triggerEl is undefined
|
|
160
|
+
set triggerEl to me
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
on click from triggerEl
|
|
164
|
+
if confirm
|
|
165
|
+
if not window.confirm("Are you sure?")
|
|
166
|
+
halt
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
trigger removable:before
|
|
170
|
+
if effect is "fade"
|
|
171
|
+
transition opacity to 0 over 300ms
|
|
172
|
+
end
|
|
173
|
+
trigger removable:removed
|
|
174
|
+
remove me
|
|
175
|
+
end
|
|
176
|
+
end
|
|
177
|
+
`.trim()
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
// src/behaviors/removable.ts
|
|
183
|
+
var removable_exports = {};
|
|
184
|
+
__export(removable_exports, {
|
|
185
|
+
default: () => removable_default,
|
|
186
|
+
registerRemovable: () => registerRemovable,
|
|
187
|
+
removableMetadata: () => removableMetadata,
|
|
188
|
+
removableSource: () => removableSource
|
|
189
|
+
});
|
|
190
|
+
async function registerRemovable(hyperfixi) {
|
|
191
|
+
const hf = hyperfixi || (typeof window !== "undefined" ? window.lokascript : null);
|
|
192
|
+
if (!hf) {
|
|
193
|
+
throw new Error(
|
|
194
|
+
"LokaScript not found. Make sure @hyperfixi/core is loaded before registering behaviors."
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
const result = hf.compileSync(removableSchema.source, { traditional: true });
|
|
198
|
+
if (!result.ok) {
|
|
199
|
+
throw new Error(`Failed to compile Removable behavior: ${JSON.stringify(result.errors)}`);
|
|
200
|
+
}
|
|
201
|
+
const ctx = hf.createContext ? hf.createContext() : { locals: /* @__PURE__ */ new Map(), globals: /* @__PURE__ */ new Map() };
|
|
202
|
+
await hf.execute(result.ast, ctx);
|
|
203
|
+
}
|
|
204
|
+
var removableSource, removableMetadata, removable_default;
|
|
205
|
+
var init_removable = __esm({
|
|
206
|
+
"src/behaviors/removable.ts"() {
|
|
207
|
+
"use strict";
|
|
208
|
+
init_removable_schema();
|
|
209
|
+
removableSource = removableSchema.source;
|
|
210
|
+
removableMetadata = removableSchema;
|
|
211
|
+
if (typeof window !== "undefined" && window.lokascript) {
|
|
212
|
+
registerRemovable().catch(console.error);
|
|
213
|
+
}
|
|
214
|
+
removable_default = {
|
|
215
|
+
source: removableSchema.source,
|
|
216
|
+
metadata: removableSchema,
|
|
217
|
+
register: registerRemovable
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
// src/schemas/toggleable.schema.ts
|
|
223
|
+
var toggleableSchema;
|
|
224
|
+
var init_toggleable_schema = __esm({
|
|
225
|
+
"src/schemas/toggleable.schema.ts"() {
|
|
226
|
+
"use strict";
|
|
227
|
+
toggleableSchema = {
|
|
228
|
+
name: "Toggleable",
|
|
229
|
+
category: "form",
|
|
230
|
+
tier: "core",
|
|
231
|
+
version: "1.0.0",
|
|
232
|
+
description: "Toggles a CSS class on click",
|
|
233
|
+
parameters: [
|
|
234
|
+
{
|
|
235
|
+
name: "cls",
|
|
236
|
+
type: "string",
|
|
237
|
+
optional: true,
|
|
238
|
+
default: "active",
|
|
239
|
+
description: "CSS class to toggle"
|
|
240
|
+
},
|
|
241
|
+
{
|
|
242
|
+
name: "target",
|
|
243
|
+
type: "selector",
|
|
244
|
+
optional: true,
|
|
245
|
+
default: "me",
|
|
246
|
+
description: "Element to toggle the class on"
|
|
247
|
+
}
|
|
248
|
+
],
|
|
249
|
+
events: [
|
|
250
|
+
{ name: "toggleable:on", description: "Fired when class is added" },
|
|
251
|
+
{ name: "toggleable:off", description: "Fired when class is removed" }
|
|
252
|
+
],
|
|
253
|
+
source: `
|
|
254
|
+
behavior Toggleable(cls, target)
|
|
255
|
+
init
|
|
256
|
+
if cls is undefined
|
|
257
|
+
set cls to "active"
|
|
258
|
+
end
|
|
259
|
+
if target is undefined
|
|
260
|
+
set target to me
|
|
261
|
+
end
|
|
262
|
+
end
|
|
263
|
+
on click
|
|
264
|
+
toggle .{cls} on target
|
|
265
|
+
end
|
|
266
|
+
end
|
|
267
|
+
`.trim()
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
// src/behaviors/toggleable.ts
|
|
273
|
+
var toggleable_exports = {};
|
|
274
|
+
__export(toggleable_exports, {
|
|
275
|
+
default: () => toggleable_default,
|
|
276
|
+
registerToggleable: () => registerToggleable,
|
|
277
|
+
toggleableMetadata: () => toggleableMetadata,
|
|
278
|
+
toggleableSource: () => toggleableSource
|
|
279
|
+
});
|
|
280
|
+
async function registerToggleable(hyperfixi) {
|
|
281
|
+
const hf = hyperfixi || (typeof window !== "undefined" ? window.lokascript : null);
|
|
282
|
+
if (!hf) {
|
|
283
|
+
throw new Error(
|
|
284
|
+
"LokaScript not found. Make sure @hyperfixi/core is loaded before registering behaviors."
|
|
285
|
+
);
|
|
286
|
+
}
|
|
287
|
+
const result = hf.compileSync(toggleableSchema.source, { traditional: true });
|
|
288
|
+
if (!result.ok) {
|
|
289
|
+
throw new Error(`Failed to compile Toggleable behavior: ${JSON.stringify(result.errors)}`);
|
|
290
|
+
}
|
|
291
|
+
const ctx = hf.createContext ? hf.createContext() : { locals: /* @__PURE__ */ new Map(), globals: /* @__PURE__ */ new Map() };
|
|
292
|
+
await hf.execute(result.ast, ctx);
|
|
293
|
+
}
|
|
294
|
+
var toggleableSource, toggleableMetadata, toggleable_default;
|
|
295
|
+
var init_toggleable = __esm({
|
|
296
|
+
"src/behaviors/toggleable.ts"() {
|
|
297
|
+
"use strict";
|
|
298
|
+
init_toggleable_schema();
|
|
299
|
+
toggleableSource = toggleableSchema.source;
|
|
300
|
+
toggleableMetadata = toggleableSchema;
|
|
301
|
+
if (typeof window !== "undefined" && window.lokascript) {
|
|
302
|
+
registerToggleable().catch(console.error);
|
|
303
|
+
}
|
|
304
|
+
toggleable_default = {
|
|
305
|
+
source: toggleableSchema.source,
|
|
306
|
+
metadata: toggleableSchema,
|
|
307
|
+
register: registerToggleable
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
});
|
|
311
|
+
|
|
312
|
+
// src/schemas/sortable.schema.ts
|
|
313
|
+
var sortableSchema;
|
|
314
|
+
var init_sortable_schema = __esm({
|
|
315
|
+
"src/schemas/sortable.schema.ts"() {
|
|
316
|
+
"use strict";
|
|
317
|
+
sortableSchema = {
|
|
318
|
+
name: "Sortable",
|
|
319
|
+
category: "ui",
|
|
320
|
+
tier: "common",
|
|
321
|
+
version: "1.0.0",
|
|
322
|
+
description: "Makes child elements reorderable via drag-and-drop",
|
|
323
|
+
parameters: [
|
|
324
|
+
{
|
|
325
|
+
name: "handle",
|
|
326
|
+
type: "selector",
|
|
327
|
+
optional: true,
|
|
328
|
+
default: "none",
|
|
329
|
+
description: "CSS selector for drag handles within items"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
name: "dragClass",
|
|
333
|
+
type: "string",
|
|
334
|
+
optional: true,
|
|
335
|
+
default: "sorting",
|
|
336
|
+
description: "CSS class added to item during drag"
|
|
337
|
+
}
|
|
338
|
+
],
|
|
339
|
+
events: [
|
|
340
|
+
{ name: "sortable:start", description: "Fired when drag begins" },
|
|
341
|
+
{
|
|
342
|
+
name: "sortable:move",
|
|
343
|
+
description: "Fired during drag \u2014 handle this event to reorder DOM elements"
|
|
344
|
+
},
|
|
345
|
+
{ name: "sortable:end", description: "Fired when drag completes" }
|
|
346
|
+
],
|
|
347
|
+
requirements: ["Users must handle DOM reordering in sortable:move event handlers"],
|
|
348
|
+
source: `
|
|
349
|
+
behavior Sortable(handle, dragClass)
|
|
350
|
+
init
|
|
351
|
+
if no dragClass set dragClass to "sorting"
|
|
352
|
+
end
|
|
353
|
+
on pointerdown(target, clientY) from me
|
|
354
|
+
set item to closest <li/> in target
|
|
355
|
+
if no item exit
|
|
356
|
+
if handle
|
|
357
|
+
set handleEl to target.closest(handle)
|
|
358
|
+
if no handleEl exit
|
|
359
|
+
end
|
|
360
|
+
halt the event
|
|
361
|
+
add dragClass to item
|
|
362
|
+
trigger sortable:start on me
|
|
363
|
+
repeat until event pointerup from document
|
|
364
|
+
wait for pointermove(clientY) from document
|
|
365
|
+
trigger sortable:move on me
|
|
366
|
+
end
|
|
367
|
+
remove dragClass from item
|
|
368
|
+
trigger sortable:end on me
|
|
369
|
+
end
|
|
370
|
+
end
|
|
371
|
+
`.trim()
|
|
372
|
+
};
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
|
|
376
|
+
// src/behaviors/sortable.ts
|
|
377
|
+
var sortable_exports = {};
|
|
378
|
+
__export(sortable_exports, {
|
|
379
|
+
default: () => sortable_default,
|
|
380
|
+
registerSortable: () => registerSortable,
|
|
381
|
+
sortableMetadata: () => sortableMetadata,
|
|
382
|
+
sortableSource: () => sortableSource
|
|
383
|
+
});
|
|
384
|
+
async function registerSortable(hyperfixi) {
|
|
385
|
+
const hf = hyperfixi || (typeof window !== "undefined" ? window.lokascript : null);
|
|
386
|
+
if (!hf) {
|
|
387
|
+
throw new Error(
|
|
388
|
+
"LokaScript not found. Make sure @hyperfixi/core is loaded before registering behaviors."
|
|
389
|
+
);
|
|
390
|
+
}
|
|
391
|
+
const result = hf.compileSync(sortableSchema.source, { traditional: true });
|
|
392
|
+
if (!result.ok) {
|
|
393
|
+
throw new Error(`Failed to compile Sortable behavior: ${JSON.stringify(result.errors)}`);
|
|
394
|
+
}
|
|
395
|
+
const ctx = hf.createContext ? hf.createContext() : { locals: /* @__PURE__ */ new Map(), globals: /* @__PURE__ */ new Map() };
|
|
396
|
+
await hf.execute(result.ast, ctx);
|
|
397
|
+
}
|
|
398
|
+
var sortableSource, sortableMetadata, sortable_default;
|
|
399
|
+
var init_sortable = __esm({
|
|
400
|
+
"src/behaviors/sortable.ts"() {
|
|
401
|
+
"use strict";
|
|
402
|
+
init_sortable_schema();
|
|
403
|
+
sortableSource = sortableSchema.source;
|
|
404
|
+
sortableMetadata = sortableSchema;
|
|
405
|
+
if (typeof window !== "undefined" && window.lokascript) {
|
|
406
|
+
registerSortable().catch(console.error);
|
|
407
|
+
}
|
|
408
|
+
sortable_default = {
|
|
409
|
+
source: sortableSchema.source,
|
|
410
|
+
metadata: sortableSchema,
|
|
411
|
+
register: registerSortable
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
});
|
|
415
|
+
|
|
416
|
+
// src/schemas/resizable.schema.ts
|
|
417
|
+
var resizableSchema;
|
|
418
|
+
var init_resizable_schema = __esm({
|
|
419
|
+
"src/schemas/resizable.schema.ts"() {
|
|
420
|
+
"use strict";
|
|
421
|
+
resizableSchema = {
|
|
422
|
+
name: "Resizable",
|
|
423
|
+
category: "ui",
|
|
424
|
+
tier: "optional",
|
|
425
|
+
version: "1.0.0",
|
|
426
|
+
description: "Makes elements resizable by dragging",
|
|
427
|
+
parameters: [
|
|
428
|
+
{
|
|
429
|
+
name: "handle",
|
|
430
|
+
type: "selector",
|
|
431
|
+
optional: true,
|
|
432
|
+
default: "me",
|
|
433
|
+
description: "CSS selector for the resize handle (defaults to the element itself)"
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
name: "minWidth",
|
|
437
|
+
type: "number",
|
|
438
|
+
optional: true,
|
|
439
|
+
default: 50,
|
|
440
|
+
description: "Minimum width in pixels"
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
name: "minHeight",
|
|
444
|
+
type: "number",
|
|
445
|
+
optional: true,
|
|
446
|
+
default: 50,
|
|
447
|
+
description: "Minimum height in pixels"
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
name: "maxWidth",
|
|
451
|
+
type: "number",
|
|
452
|
+
optional: true,
|
|
453
|
+
default: 9999,
|
|
454
|
+
description: "Maximum width in pixels"
|
|
455
|
+
},
|
|
456
|
+
{
|
|
457
|
+
name: "maxHeight",
|
|
458
|
+
type: "number",
|
|
459
|
+
optional: true,
|
|
460
|
+
default: 9999,
|
|
461
|
+
description: "Maximum height in pixels"
|
|
462
|
+
}
|
|
463
|
+
],
|
|
464
|
+
events: [
|
|
465
|
+
{ name: "resizable:start", description: "Fired when resize begins" },
|
|
466
|
+
{ name: "resizable:resize", description: "Fired during resize" },
|
|
467
|
+
{ name: "resizable:end", description: "Fired when resize completes" }
|
|
468
|
+
],
|
|
469
|
+
source: `
|
|
470
|
+
behavior Resizable(handle, minWidth, minHeight, maxWidth, maxHeight)
|
|
471
|
+
init
|
|
472
|
+
if no handle set handle to me
|
|
473
|
+
if no minWidth set minWidth to 50
|
|
474
|
+
if no minHeight set minHeight to 50
|
|
475
|
+
if no maxWidth set maxWidth to 9999
|
|
476
|
+
if no maxHeight set maxHeight to 9999
|
|
477
|
+
end
|
|
478
|
+
on pointerdown(clientX, clientY) from handle
|
|
479
|
+
halt the event
|
|
480
|
+
trigger resizable:start
|
|
481
|
+
measure width
|
|
482
|
+
set startWidth to it
|
|
483
|
+
measure height
|
|
484
|
+
set startHeight to it
|
|
485
|
+
set startX to clientX
|
|
486
|
+
set startY to clientY
|
|
487
|
+
repeat until event pointerup from document
|
|
488
|
+
wait for pointermove(clientX, clientY) or
|
|
489
|
+
pointerup from document
|
|
490
|
+
set newWidth to startWidth + (clientX - startX)
|
|
491
|
+
set newHeight to startHeight + (clientY - startY)
|
|
492
|
+
if newWidth < minWidth set newWidth to minWidth
|
|
493
|
+
if newWidth > maxWidth set newWidth to maxWidth
|
|
494
|
+
if newHeight < minHeight set newHeight to minHeight
|
|
495
|
+
if newHeight > maxHeight set newHeight to maxHeight
|
|
496
|
+
add { width: \${newWidth}px; height: \${newHeight}px; }
|
|
497
|
+
trigger resizable:resize
|
|
498
|
+
end
|
|
499
|
+
trigger resizable:end
|
|
500
|
+
end
|
|
501
|
+
end
|
|
502
|
+
`.trim()
|
|
503
|
+
};
|
|
504
|
+
}
|
|
505
|
+
});
|
|
506
|
+
|
|
507
|
+
// src/behaviors/resizable.ts
|
|
508
|
+
var resizable_exports = {};
|
|
509
|
+
__export(resizable_exports, {
|
|
510
|
+
default: () => resizable_default,
|
|
511
|
+
registerResizable: () => registerResizable,
|
|
512
|
+
resizableMetadata: () => resizableMetadata,
|
|
513
|
+
resizableSource: () => resizableSource
|
|
514
|
+
});
|
|
515
|
+
async function registerResizable(hyperfixi) {
|
|
516
|
+
const hf = hyperfixi || (typeof window !== "undefined" ? window.lokascript : null);
|
|
517
|
+
if (!hf) {
|
|
518
|
+
throw new Error(
|
|
519
|
+
"LokaScript not found. Make sure @hyperfixi/core is loaded before registering behaviors."
|
|
520
|
+
);
|
|
521
|
+
}
|
|
522
|
+
const result = hf.compileSync(resizableSchema.source, { traditional: true });
|
|
523
|
+
if (!result.ok) {
|
|
524
|
+
throw new Error(`Failed to compile Resizable behavior: ${JSON.stringify(result.errors)}`);
|
|
525
|
+
}
|
|
526
|
+
const ctx = hf.createContext ? hf.createContext() : { locals: /* @__PURE__ */ new Map(), globals: /* @__PURE__ */ new Map() };
|
|
527
|
+
await hf.execute(result.ast, ctx);
|
|
528
|
+
}
|
|
529
|
+
var resizableSource, resizableMetadata, resizable_default;
|
|
530
|
+
var init_resizable = __esm({
|
|
531
|
+
"src/behaviors/resizable.ts"() {
|
|
532
|
+
"use strict";
|
|
533
|
+
init_resizable_schema();
|
|
534
|
+
resizableSource = resizableSchema.source;
|
|
535
|
+
resizableMetadata = resizableSchema;
|
|
536
|
+
if (typeof window !== "undefined" && window.lokascript) {
|
|
537
|
+
registerResizable().catch(console.error);
|
|
538
|
+
}
|
|
539
|
+
resizable_default = {
|
|
540
|
+
source: resizableSchema.source,
|
|
541
|
+
metadata: resizableSchema,
|
|
542
|
+
register: registerResizable
|
|
543
|
+
};
|
|
544
|
+
}
|
|
545
|
+
});
|
|
546
|
+
|
|
547
|
+
// src/index.ts
|
|
548
|
+
var index_exports = {};
|
|
549
|
+
__export(index_exports, {
|
|
550
|
+
ALL_BEHAVIOR_NAMES: () => ALL_BEHAVIOR_NAMES,
|
|
551
|
+
BEHAVIORS_BY_CATEGORY: () => BEHAVIORS_BY_CATEGORY,
|
|
552
|
+
BEHAVIORS_BY_TIER: () => BEHAVIORS_BY_TIER,
|
|
553
|
+
BEHAVIOR_CATEGORIES: () => BEHAVIOR_CATEGORIES,
|
|
554
|
+
BEHAVIOR_TIERS: () => BEHAVIOR_TIERS,
|
|
555
|
+
Draggable: () => draggable_default,
|
|
556
|
+
Removable: () => removable_default,
|
|
557
|
+
Resizable: () => resizable_default,
|
|
558
|
+
Sortable: () => sortable_default,
|
|
559
|
+
Toggleable: () => toggleable_default,
|
|
560
|
+
draggableMetadata: () => draggableMetadata,
|
|
561
|
+
draggableSource: () => draggableSource,
|
|
562
|
+
getAllSchemas: () => getAllSchemas,
|
|
563
|
+
getAllSchemasRecord: () => getAllSchemasRecord,
|
|
564
|
+
getAvailableBehaviors: () => getAvailableBehaviors,
|
|
565
|
+
getBehavior: () => getBehavior,
|
|
566
|
+
getBehaviorsByCategory: () => getBehaviorsByCategory,
|
|
567
|
+
getBehaviorsByTier: () => getBehaviorsByTier,
|
|
568
|
+
getRegisteredBehaviors: () => getRegisteredBehaviors,
|
|
569
|
+
getSchema: () => getSchema,
|
|
570
|
+
hasLoader: () => hasLoader,
|
|
571
|
+
isRegistered: () => isRegistered,
|
|
572
|
+
loadAll: () => loadAll,
|
|
573
|
+
loadBehavior: () => loadBehavior,
|
|
574
|
+
preloadCategory: () => preloadCategory,
|
|
575
|
+
preloadTier: () => preloadTier,
|
|
576
|
+
ready: () => ready,
|
|
577
|
+
registerAll: () => registerAll,
|
|
578
|
+
registerAllWithRuntime: () => registerAllWithRuntime,
|
|
579
|
+
registerBehavior: () => registerBehavior,
|
|
580
|
+
registerDraggable: () => registerDraggable,
|
|
581
|
+
registerLoader: () => registerLoader,
|
|
582
|
+
registerRemovable: () => registerRemovable,
|
|
583
|
+
registerResizable: () => registerResizable,
|
|
584
|
+
registerSchema: () => registerSchema,
|
|
585
|
+
registerSortable: () => registerSortable,
|
|
586
|
+
registerToggleable: () => registerToggleable,
|
|
587
|
+
registerWithRuntime: () => registerWithRuntime,
|
|
588
|
+
removableMetadata: () => removableMetadata,
|
|
589
|
+
removableSource: () => removableSource,
|
|
590
|
+
resizableMetadata: () => resizableMetadata,
|
|
591
|
+
resizableSource: () => resizableSource,
|
|
592
|
+
sortableMetadata: () => sortableMetadata,
|
|
593
|
+
sortableSource: () => sortableSource,
|
|
594
|
+
toggleableMetadata: () => toggleableMetadata,
|
|
595
|
+
toggleableSource: () => toggleableSource,
|
|
596
|
+
tryGetBehavior: () => tryGetBehavior,
|
|
597
|
+
tryGetSchema: () => tryGetSchema
|
|
598
|
+
});
|
|
599
|
+
module.exports = __toCommonJS(index_exports);
|
|
600
|
+
init_draggable();
|
|
601
|
+
init_removable();
|
|
602
|
+
init_toggleable();
|
|
603
|
+
init_sortable();
|
|
604
|
+
init_resizable();
|
|
605
|
+
|
|
606
|
+
// src/registry.ts
|
|
607
|
+
var behaviors = /* @__PURE__ */ new Map();
|
|
608
|
+
var schemas = /* @__PURE__ */ new Map();
|
|
609
|
+
var loaders = /* @__PURE__ */ new Map();
|
|
610
|
+
var loadingPromises = /* @__PURE__ */ new Map();
|
|
611
|
+
function registerBehavior(name, module2) {
|
|
612
|
+
behaviors.set(name, module2);
|
|
613
|
+
if (module2.metadata) {
|
|
614
|
+
schemas.set(name, module2.metadata);
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
function registerSchema(schema) {
|
|
618
|
+
schemas.set(schema.name, schema);
|
|
619
|
+
}
|
|
620
|
+
function registerLoader(name, loader) {
|
|
621
|
+
loaders.set(name, loader);
|
|
622
|
+
}
|
|
623
|
+
function getBehavior(name) {
|
|
624
|
+
const behavior = behaviors.get(name);
|
|
625
|
+
if (!behavior) {
|
|
626
|
+
const registered = Array.from(behaviors.keys()).join(", ");
|
|
627
|
+
throw new Error(
|
|
628
|
+
`Behavior '${name}' is not registered. Registered behaviors: ${registered || "none"}. Use loadBehavior('${name}') to lazy load it.`
|
|
629
|
+
);
|
|
630
|
+
}
|
|
631
|
+
return behavior;
|
|
632
|
+
}
|
|
633
|
+
function tryGetBehavior(name) {
|
|
634
|
+
return behaviors.get(name);
|
|
635
|
+
}
|
|
636
|
+
function getSchema(name) {
|
|
637
|
+
const schema = schemas.get(name);
|
|
638
|
+
if (!schema) {
|
|
639
|
+
throw new Error(
|
|
640
|
+
`Schema for behavior '${name}' is not registered. Use tryGetSchema('${name}') for a non-throwing alternative.`
|
|
641
|
+
);
|
|
642
|
+
}
|
|
643
|
+
return schema;
|
|
644
|
+
}
|
|
645
|
+
function tryGetSchema(name) {
|
|
646
|
+
return schemas.get(name);
|
|
647
|
+
}
|
|
648
|
+
function isRegistered(name) {
|
|
649
|
+
return behaviors.has(name);
|
|
650
|
+
}
|
|
651
|
+
function hasLoader(name) {
|
|
652
|
+
return loaders.has(name);
|
|
653
|
+
}
|
|
654
|
+
function getRegisteredBehaviors() {
|
|
655
|
+
return Array.from(behaviors.keys());
|
|
656
|
+
}
|
|
657
|
+
function getAvailableBehaviors() {
|
|
658
|
+
const names = /* @__PURE__ */ new Set([...behaviors.keys(), ...loaders.keys()]);
|
|
659
|
+
return Array.from(names);
|
|
660
|
+
}
|
|
661
|
+
function getBehaviorsByCategory(category) {
|
|
662
|
+
const result = [];
|
|
663
|
+
for (const [name, schema] of schemas) {
|
|
664
|
+
if (schema.category === category) {
|
|
665
|
+
result.push(name);
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
return result;
|
|
669
|
+
}
|
|
670
|
+
function getBehaviorsByTier(tier) {
|
|
671
|
+
const result = [];
|
|
672
|
+
for (const [name, schema] of schemas) {
|
|
673
|
+
if (schema.tier === tier) {
|
|
674
|
+
result.push(name);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
return result;
|
|
678
|
+
}
|
|
679
|
+
function getAllSchemas() {
|
|
680
|
+
return Array.from(schemas.values());
|
|
681
|
+
}
|
|
682
|
+
function getAllSchemasRecord() {
|
|
683
|
+
const result = {};
|
|
684
|
+
for (const [name, schema] of schemas) {
|
|
685
|
+
result[name] = schema;
|
|
686
|
+
}
|
|
687
|
+
return result;
|
|
688
|
+
}
|
|
689
|
+
async function loadBehavior(name) {
|
|
690
|
+
const cached = behaviors.get(name);
|
|
691
|
+
if (cached) {
|
|
692
|
+
return cached;
|
|
693
|
+
}
|
|
694
|
+
const inFlight = loadingPromises.get(name);
|
|
695
|
+
if (inFlight) {
|
|
696
|
+
return inFlight;
|
|
697
|
+
}
|
|
698
|
+
const loader = loaders.get(name);
|
|
699
|
+
if (!loader) {
|
|
700
|
+
throw new Error(
|
|
701
|
+
`No loader registered for behavior '${name}'. Available loaders: ${Array.from(loaders.keys()).join(", ") || "none"}`
|
|
702
|
+
);
|
|
703
|
+
}
|
|
704
|
+
const promise = loader().then((mod) => {
|
|
705
|
+
const module2 = mod.default;
|
|
706
|
+
registerBehavior(name, module2);
|
|
707
|
+
loadingPromises.delete(name);
|
|
708
|
+
return module2;
|
|
709
|
+
});
|
|
710
|
+
loadingPromises.set(name, promise);
|
|
711
|
+
return promise;
|
|
712
|
+
}
|
|
713
|
+
async function preloadTier(tier) {
|
|
714
|
+
const names = getBehaviorsByTier(tier);
|
|
715
|
+
await Promise.all(
|
|
716
|
+
names.map(
|
|
717
|
+
(name) => loadBehavior(name).catch((err) => {
|
|
718
|
+
console.warn(`[behaviors] Failed to preload '${name}' (tier: ${tier}):`, err);
|
|
719
|
+
})
|
|
720
|
+
)
|
|
721
|
+
);
|
|
722
|
+
}
|
|
723
|
+
async function preloadCategory(category) {
|
|
724
|
+
const names = getBehaviorsByCategory(category);
|
|
725
|
+
await Promise.all(
|
|
726
|
+
names.map(
|
|
727
|
+
(name) => loadBehavior(name).catch((err) => {
|
|
728
|
+
console.warn(`[behaviors] Failed to preload '${name}' (category: ${category}):`, err);
|
|
729
|
+
})
|
|
730
|
+
)
|
|
731
|
+
);
|
|
732
|
+
}
|
|
733
|
+
async function loadAll() {
|
|
734
|
+
const names = getAvailableBehaviors();
|
|
735
|
+
await Promise.all(
|
|
736
|
+
names.map(
|
|
737
|
+
(name) => loadBehavior(name).catch((err) => {
|
|
738
|
+
console.warn(`[behaviors] Failed to load '${name}':`, err);
|
|
739
|
+
})
|
|
740
|
+
)
|
|
741
|
+
);
|
|
742
|
+
}
|
|
743
|
+
async function registerWithRuntime(name, hyperfixi) {
|
|
744
|
+
const module2 = await loadBehavior(name);
|
|
745
|
+
await module2.register(hyperfixi);
|
|
746
|
+
}
|
|
747
|
+
async function registerAllWithRuntime(hyperfixi) {
|
|
748
|
+
const registrations = Array.from(behaviors.values()).map((module2) => module2.register(hyperfixi));
|
|
749
|
+
await Promise.all(registrations);
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
// src/loaders.ts
|
|
753
|
+
init_draggable_schema();
|
|
754
|
+
init_sortable_schema();
|
|
755
|
+
init_resizable_schema();
|
|
756
|
+
init_removable_schema();
|
|
757
|
+
init_toggleable_schema();
|
|
758
|
+
registerSchema(draggableSchema);
|
|
759
|
+
registerSchema(sortableSchema);
|
|
760
|
+
registerSchema(resizableSchema);
|
|
761
|
+
registerSchema(removableSchema);
|
|
762
|
+
registerSchema(toggleableSchema);
|
|
763
|
+
registerLoader("Draggable", () => Promise.resolve().then(() => (init_draggable(), draggable_exports)));
|
|
764
|
+
registerLoader("Sortable", () => Promise.resolve().then(() => (init_sortable(), sortable_exports)));
|
|
765
|
+
registerLoader("Resizable", () => Promise.resolve().then(() => (init_resizable(), resizable_exports)));
|
|
766
|
+
registerLoader("Removable", () => Promise.resolve().then(() => (init_removable(), removable_exports)));
|
|
767
|
+
registerLoader("Toggleable", () => Promise.resolve().then(() => (init_toggleable(), toggleable_exports)));
|
|
768
|
+
|
|
769
|
+
// src/generated/metadata.ts
|
|
770
|
+
var ALL_BEHAVIOR_NAMES = [
|
|
771
|
+
"Draggable",
|
|
772
|
+
"Sortable",
|
|
773
|
+
"Resizable",
|
|
774
|
+
"Removable",
|
|
775
|
+
"Toggleable"
|
|
776
|
+
];
|
|
777
|
+
var BEHAVIORS_BY_CATEGORY = {
|
|
778
|
+
"ui": [
|
|
779
|
+
"Draggable",
|
|
780
|
+
"Sortable",
|
|
781
|
+
"Resizable"
|
|
782
|
+
],
|
|
783
|
+
"data": [
|
|
784
|
+
"Removable"
|
|
785
|
+
],
|
|
786
|
+
"animation": [],
|
|
787
|
+
"form": [
|
|
788
|
+
"Toggleable"
|
|
789
|
+
],
|
|
790
|
+
"layout": []
|
|
791
|
+
};
|
|
792
|
+
var BEHAVIORS_BY_TIER = {
|
|
793
|
+
"core": [
|
|
794
|
+
"Draggable",
|
|
795
|
+
"Toggleable"
|
|
796
|
+
],
|
|
797
|
+
"common": [
|
|
798
|
+
"Sortable",
|
|
799
|
+
"Removable"
|
|
800
|
+
],
|
|
801
|
+
"optional": [
|
|
802
|
+
"Resizable"
|
|
803
|
+
]
|
|
804
|
+
};
|
|
805
|
+
var BEHAVIOR_CATEGORIES = {
|
|
806
|
+
"Draggable": "ui",
|
|
807
|
+
"Sortable": "ui",
|
|
808
|
+
"Resizable": "ui",
|
|
809
|
+
"Removable": "data",
|
|
810
|
+
"Toggleable": "form"
|
|
811
|
+
};
|
|
812
|
+
var BEHAVIOR_TIERS = {
|
|
813
|
+
"Draggable": "core",
|
|
814
|
+
"Sortable": "common",
|
|
815
|
+
"Resizable": "optional",
|
|
816
|
+
"Removable": "common",
|
|
817
|
+
"Toggleable": "core"
|
|
818
|
+
};
|
|
819
|
+
|
|
820
|
+
// src/index.ts
|
|
821
|
+
init_draggable();
|
|
822
|
+
init_removable();
|
|
823
|
+
init_toggleable();
|
|
824
|
+
init_sortable();
|
|
825
|
+
init_resizable();
|
|
826
|
+
async function registerAll(hyperfixi) {
|
|
827
|
+
await Promise.all([
|
|
828
|
+
registerDraggable(hyperfixi),
|
|
829
|
+
registerRemovable(hyperfixi),
|
|
830
|
+
registerToggleable(hyperfixi),
|
|
831
|
+
registerSortable(hyperfixi),
|
|
832
|
+
registerResizable(hyperfixi)
|
|
833
|
+
]);
|
|
834
|
+
}
|
|
835
|
+
var ready = null;
|
|
836
|
+
if (typeof window !== "undefined" && window.lokascript) {
|
|
837
|
+
const lsWin = window;
|
|
838
|
+
ready = registerAll();
|
|
839
|
+
lsWin.__lokascript_behaviors_ready = ready;
|
|
840
|
+
ready.then(() => {
|
|
841
|
+
const hyperfixi = lsWin.lokascript;
|
|
842
|
+
const savedPromise = lsWin.__lokascript_behaviors_ready;
|
|
843
|
+
delete lsWin.__lokascript_behaviors_ready;
|
|
844
|
+
if (hyperfixi.attributeProcessor?.scanAndProcessAll) {
|
|
845
|
+
hyperfixi.attributeProcessor.scanAndProcessAll().finally(() => {
|
|
846
|
+
lsWin.__lokascript_behaviors_ready = savedPromise;
|
|
847
|
+
});
|
|
848
|
+
} else if (hyperfixi.processNode) {
|
|
849
|
+
hyperfixi.processNode(document);
|
|
850
|
+
lsWin.__lokascript_behaviors_ready = savedPromise;
|
|
851
|
+
}
|
|
852
|
+
}).catch((err) => {
|
|
853
|
+
console.error("[behaviors] Auto-registration failed:", err);
|
|
854
|
+
});
|
|
855
|
+
}
|
|
856
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
857
|
+
0 && (module.exports = {
|
|
858
|
+
ALL_BEHAVIOR_NAMES,
|
|
859
|
+
BEHAVIORS_BY_CATEGORY,
|
|
860
|
+
BEHAVIORS_BY_TIER,
|
|
861
|
+
BEHAVIOR_CATEGORIES,
|
|
862
|
+
BEHAVIOR_TIERS,
|
|
863
|
+
Draggable,
|
|
864
|
+
Removable,
|
|
865
|
+
Resizable,
|
|
866
|
+
Sortable,
|
|
867
|
+
Toggleable,
|
|
868
|
+
draggableMetadata,
|
|
869
|
+
draggableSource,
|
|
870
|
+
getAllSchemas,
|
|
871
|
+
getAllSchemasRecord,
|
|
872
|
+
getAvailableBehaviors,
|
|
873
|
+
getBehavior,
|
|
874
|
+
getBehaviorsByCategory,
|
|
875
|
+
getBehaviorsByTier,
|
|
876
|
+
getRegisteredBehaviors,
|
|
877
|
+
getSchema,
|
|
878
|
+
hasLoader,
|
|
879
|
+
isRegistered,
|
|
880
|
+
loadAll,
|
|
881
|
+
loadBehavior,
|
|
882
|
+
preloadCategory,
|
|
883
|
+
preloadTier,
|
|
884
|
+
ready,
|
|
885
|
+
registerAll,
|
|
886
|
+
registerAllWithRuntime,
|
|
887
|
+
registerBehavior,
|
|
888
|
+
registerDraggable,
|
|
889
|
+
registerLoader,
|
|
890
|
+
registerRemovable,
|
|
891
|
+
registerResizable,
|
|
892
|
+
registerSchema,
|
|
893
|
+
registerSortable,
|
|
894
|
+
registerToggleable,
|
|
895
|
+
registerWithRuntime,
|
|
896
|
+
removableMetadata,
|
|
897
|
+
removableSource,
|
|
898
|
+
resizableMetadata,
|
|
899
|
+
resizableSource,
|
|
900
|
+
sortableMetadata,
|
|
901
|
+
sortableSource,
|
|
902
|
+
toggleableMetadata,
|
|
903
|
+
toggleableSource,
|
|
904
|
+
tryGetBehavior,
|
|
905
|
+
tryGetSchema
|
|
906
|
+
});
|
|
907
|
+
//# sourceMappingURL=index.cjs.map
|