@hyperfixi/behaviors 3.3.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.
- package/CHANGELOG.md +162 -0
- package/README.md +29 -9
- package/dist/all.browser.global.js +45 -100
- package/dist/all.browser.global.js.map +1 -1
- package/dist/autodismiss.browser.global.js +5 -11
- package/dist/autodismiss.browser.global.js.map +1 -1
- package/dist/behaviors/autodismiss.cjs +19 -22
- package/dist/behaviors/autodismiss.cjs.map +1 -1
- package/dist/behaviors/autodismiss.d.cts +4 -4
- package/dist/behaviors/autodismiss.d.ts +4 -4
- package/dist/behaviors/autodismiss.js +3 -3
- package/dist/behaviors/clickoutside.cjs +19 -18
- package/dist/behaviors/clickoutside.cjs.map +1 -1
- package/dist/behaviors/clickoutside.d.cts +4 -4
- package/dist/behaviors/clickoutside.d.ts +4 -4
- package/dist/behaviors/clickoutside.js +3 -3
- package/dist/behaviors/clipboard.cjs +18 -19
- package/dist/behaviors/clipboard.cjs.map +1 -1
- package/dist/behaviors/clipboard.d.cts +4 -4
- package/dist/behaviors/clipboard.d.ts +4 -4
- package/dist/behaviors/clipboard.js +3 -3
- package/dist/behaviors/draggable.cjs +20 -25
- package/dist/behaviors/draggable.cjs.map +1 -1
- package/dist/behaviors/draggable.d.cts +4 -4
- package/dist/behaviors/draggable.d.ts +4 -4
- package/dist/behaviors/draggable.js +3 -3
- package/dist/behaviors/focustrap.cjs +18 -19
- package/dist/behaviors/focustrap.cjs.map +1 -1
- package/dist/behaviors/focustrap.d.cts +4 -4
- package/dist/behaviors/focustrap.d.ts +4 -4
- package/dist/behaviors/focustrap.js +3 -3
- package/dist/behaviors/removable.cjs +18 -21
- package/dist/behaviors/removable.cjs.map +1 -1
- package/dist/behaviors/removable.d.cts +4 -3
- package/dist/behaviors/removable.d.ts +4 -3
- package/dist/behaviors/removable.js +3 -3
- package/dist/behaviors/resizable.cjs +19 -19
- package/dist/behaviors/resizable.cjs.map +1 -1
- package/dist/behaviors/resizable.d.cts +4 -4
- package/dist/behaviors/resizable.d.ts +4 -4
- package/dist/behaviors/resizable.js +3 -3
- package/dist/behaviors/scrollreveal.cjs +19 -22
- package/dist/behaviors/scrollreveal.cjs.map +1 -1
- package/dist/behaviors/scrollreveal.d.cts +4 -4
- package/dist/behaviors/scrollreveal.d.ts +4 -4
- package/dist/behaviors/scrollreveal.js +3 -3
- package/dist/behaviors/sortable.cjs +19 -20
- package/dist/behaviors/sortable.cjs.map +1 -1
- package/dist/behaviors/sortable.d.cts +4 -4
- package/dist/behaviors/sortable.d.ts +4 -4
- package/dist/behaviors/sortable.js +3 -3
- package/dist/behaviors/tabs.cjs +20 -25
- package/dist/behaviors/tabs.cjs.map +1 -1
- package/dist/behaviors/tabs.d.cts +4 -4
- package/dist/behaviors/tabs.d.ts +4 -4
- package/dist/behaviors/tabs.js +3 -3
- package/dist/behaviors/toggleable.cjs +25 -26
- package/dist/behaviors/toggleable.cjs.map +1 -1
- package/dist/behaviors/toggleable.d.cts +4 -4
- package/dist/behaviors/toggleable.d.ts +4 -4
- package/dist/behaviors/toggleable.js +3 -3
- package/dist/chunk-2GIS4DCY.js +30 -0
- package/dist/chunk-2GIS4DCY.js.map +1 -0
- package/dist/chunk-3BCBZR6R.js +30 -0
- package/dist/chunk-3BCBZR6R.js.map +1 -0
- package/dist/chunk-4YUIDZAO.js +30 -0
- package/dist/chunk-4YUIDZAO.js.map +1 -0
- package/dist/{chunk-XYZ7FOXJ.js → chunk-AQCOK5J5.js} +10 -14
- package/dist/chunk-AQCOK5J5.js.map +1 -0
- package/dist/chunk-ATGHQQC7.js +30 -0
- package/dist/chunk-ATGHQQC7.js.map +1 -0
- package/dist/{chunk-HQDYH45I.js → chunk-CWLAXLWR.js} +5 -13
- package/dist/chunk-CWLAXLWR.js.map +1 -0
- package/dist/chunk-DMWN52SV.js +30 -0
- package/dist/chunk-DMWN52SV.js.map +1 -0
- package/dist/{chunk-PDMOOWFW.js → chunk-EIVPVTUI.js} +4 -8
- package/dist/{chunk-PDMOOWFW.js.map → chunk-EIVPVTUI.js.map} +1 -1
- package/dist/chunk-HHTEMPIT.js +30 -0
- package/dist/chunk-HHTEMPIT.js.map +1 -0
- package/dist/{chunk-26IX7QU7.js → chunk-HJESSMKB.js} +4 -6
- package/dist/{chunk-26IX7QU7.js.map → chunk-HJESSMKB.js.map} +1 -1
- package/dist/{chunk-5S7WN3ZQ.js → chunk-IFAH652L.js} +4 -7
- package/dist/chunk-IFAH652L.js.map +1 -0
- package/dist/chunk-IUGJG4RA.js +30 -0
- package/dist/chunk-IUGJG4RA.js.map +1 -0
- package/dist/{chunk-ZR66E3T6.js → chunk-JNLVXPHR.js} +13 -13
- package/dist/chunk-KEZEGPEX.js +30 -0
- package/dist/chunk-KEZEGPEX.js.map +1 -0
- package/dist/{chunk-66U2RSYJ.js → chunk-KP4GNXYS.js} +4 -10
- package/dist/chunk-KP4GNXYS.js.map +1 -0
- package/dist/chunk-KXQMCN4O.js +30 -0
- package/dist/chunk-KXQMCN4O.js.map +1 -0
- package/dist/{chunk-YXS27XM6.js → chunk-KYBOZ7C4.js} +3 -7
- package/dist/chunk-KYBOZ7C4.js.map +1 -0
- package/dist/chunk-LBWM6TTU.js +30 -0
- package/dist/chunk-LBWM6TTU.js.map +1 -0
- package/dist/{chunk-3DVDS7CT.js → chunk-LCDONZBX.js} +5 -5
- package/dist/chunk-LCDONZBX.js.map +1 -0
- package/dist/{chunk-OJ3YWO3W.js → chunk-NE76IBV2.js} +3 -7
- package/dist/chunk-NE76IBV2.js.map +1 -0
- package/dist/{chunk-HMU342XE.js → chunk-PVO6TZCZ.js} +3 -9
- package/dist/{chunk-HMU342XE.js.map → chunk-PVO6TZCZ.js.map} +1 -1
- package/dist/{chunk-URZGNPTQ.js → chunk-RILYRQ72.js} +4 -10
- package/dist/chunk-RILYRQ72.js.map +1 -0
- package/dist/{chunk-FBQ3X3UY.js → chunk-U4QMFVAM.js} +5 -13
- package/dist/chunk-U4QMFVAM.js.map +1 -0
- package/dist/chunk-VWDTOSE3.js +26 -0
- package/dist/chunk-VWDTOSE3.js.map +1 -0
- package/dist/chunk-YRQBU2OW.js +30 -0
- package/dist/chunk-YRQBU2OW.js.map +1 -0
- package/dist/clickoutside.browser.global.js +5 -7
- package/dist/clickoutside.browser.global.js.map +1 -1
- package/dist/clipboard.browser.global.js +4 -8
- package/dist/clipboard.browser.global.js.map +1 -1
- package/dist/core.browser.global.js +13 -25
- package/dist/core.browser.global.js.map +1 -1
- package/dist/draggable.browser.global.js +5 -13
- package/dist/draggable.browser.global.js.map +1 -1
- package/dist/focustrap.browser.global.js +4 -8
- package/dist/focustrap.browser.global.js.map +1 -1
- package/dist/index.cjs +96 -271
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +10 -10
- package/dist/index.d.ts +10 -10
- package/dist/index.js +42 -55
- package/dist/index.js.map +1 -1
- package/dist/loaders.cjs +75 -237
- package/dist/loaders.cjs.map +1 -1
- package/dist/loaders.js +13 -13
- package/dist/registry.cjs +4 -4
- package/dist/registry.cjs.map +1 -1
- package/dist/registry.d.cts +5 -6
- package/dist/registry.d.ts +5 -6
- package/dist/registry.js +1 -1
- package/dist/removable.browser.global.js +3 -9
- package/dist/removable.browser.global.js.map +1 -1
- package/dist/resizable.browser.global.js +4 -7
- package/dist/resizable.browser.global.js.map +1 -1
- package/dist/resolver.browser.global.js +45 -100
- package/dist/resolver.browser.global.js.map +1 -1
- package/dist/schemas/index.cjs +38 -93
- package/dist/schemas/index.cjs.map +1 -1
- package/dist/schemas/index.d.cts +2 -2
- package/dist/schemas/index.d.ts +2 -2
- package/dist/schemas/index.js +11 -11
- package/dist/schemas/index.js.map +1 -1
- package/dist/scrollreveal.browser.global.js +5 -11
- package/dist/scrollreveal.browser.global.js.map +1 -1
- package/dist/sortable.browser.global.js +5 -9
- package/dist/sortable.browser.global.js.map +1 -1
- package/dist/tabs.browser.global.js +6 -14
- package/dist/tabs.browser.global.js.map +1 -1
- package/dist/toggleable.browser.global.js +9 -13
- package/dist/toggleable.browser.global.js.map +1 -1
- package/dist/{types-DCCtVQS5.d.cts → types-CbA4L8XJ.d.cts} +16 -23
- package/dist/{types-DCCtVQS5.d.ts → types-CbA4L8XJ.d.ts} +16 -23
- package/package.json +5 -5
- package/src/behavior-resolver.ts +24 -56
- package/src/behaviors/autodismiss.test.ts +12 -20
- package/src/behaviors/autodismiss.ts +8 -23
- package/src/behaviors/clickoutside.test.ts +13 -21
- package/src/behaviors/clickoutside.ts +8 -23
- package/src/behaviors/clipboard.test.ts +12 -34
- package/src/behaviors/clipboard.ts +8 -23
- package/src/behaviors/curated-runtime.test.ts +22 -24
- package/src/behaviors/draggable.ts +10 -24
- package/src/behaviors/experimental-runtime.test.ts +19 -18
- package/src/behaviors/focustrap.test.ts +12 -20
- package/src/behaviors/focustrap.ts +8 -23
- package/src/behaviors/integration.test.ts +19 -54
- package/src/behaviors/optional-runtime.test.ts +17 -22
- package/src/behaviors/removable.ts +6 -20
- package/src/behaviors/resizable.ts +9 -24
- package/src/behaviors/scrollreveal.test.ts +13 -21
- package/src/behaviors/scrollreveal.ts +8 -23
- package/src/behaviors/sortable.ts +7 -22
- package/src/behaviors/tabs.test.ts +12 -34
- package/src/behaviors/tabs.ts +8 -23
- package/src/behaviors/toggleable.ts +10 -26
- package/src/browser-resolver-bundle.ts +20 -30
- package/src/core-bundle.ts +11 -11
- package/src/index.test.ts +2 -2
- package/src/index.ts +30 -47
- package/src/registry.test.ts +9 -34
- package/src/registry.ts +7 -11
- package/src/schemas/autodismiss.schema.ts +3 -9
- package/src/schemas/clickoutside.schema.ts +3 -5
- package/src/schemas/clipboard.schema.ts +2 -6
- package/src/schemas/draggable.schema.ts +4 -12
- package/src/schemas/focustrap.schema.ts +2 -6
- package/src/schemas/index.ts +2 -1
- package/src/schemas/removable.schema.ts +2 -8
- package/src/schemas/resizable.schema.ts +3 -6
- package/src/schemas/scrollreveal.schema.ts +3 -9
- package/src/schemas/sortable.schema.ts +3 -7
- package/src/schemas/tabs.schema.ts +4 -12
- package/src/schemas/toggleable.schema.ts +10 -13
- package/src/schemas/types.ts +37 -30
- package/dist/chunk-2HUF6RMI.js +0 -40
- package/dist/chunk-2HUF6RMI.js.map +0 -1
- package/dist/chunk-3DVDS7CT.js.map +0 -1
- package/dist/chunk-5S7WN3ZQ.js.map +0 -1
- package/dist/chunk-66U2RSYJ.js.map +0 -1
- package/dist/chunk-6TJXDCAQ.js +0 -11
- package/dist/chunk-6TJXDCAQ.js.map +0 -1
- package/dist/chunk-7TPDLB7W.js +0 -40
- package/dist/chunk-7TPDLB7W.js.map +0 -1
- package/dist/chunk-CR3J7VV6.js +0 -40
- package/dist/chunk-CR3J7VV6.js.map +0 -1
- package/dist/chunk-EDBG2F57.js +0 -40
- package/dist/chunk-EDBG2F57.js.map +0 -1
- package/dist/chunk-FBQ3X3UY.js.map +0 -1
- package/dist/chunk-HQDYH45I.js.map +0 -1
- package/dist/chunk-HX663BJ4.js +0 -40
- package/dist/chunk-HX663BJ4.js.map +0 -1
- package/dist/chunk-KROW43CG.js +0 -40
- package/dist/chunk-KROW43CG.js.map +0 -1
- package/dist/chunk-L52AGCMP.js +0 -40
- package/dist/chunk-L52AGCMP.js.map +0 -1
- package/dist/chunk-MTI5PSRH.js +0 -40
- package/dist/chunk-MTI5PSRH.js.map +0 -1
- package/dist/chunk-OJ3YWO3W.js.map +0 -1
- package/dist/chunk-ORBJ7MRW.js +0 -40
- package/dist/chunk-ORBJ7MRW.js.map +0 -1
- package/dist/chunk-SLSCZV4A.js +0 -40
- package/dist/chunk-SLSCZV4A.js.map +0 -1
- package/dist/chunk-URZGNPTQ.js.map +0 -1
- package/dist/chunk-WKBRZGGL.js +0 -40
- package/dist/chunk-WKBRZGGL.js.map +0 -1
- package/dist/chunk-XYZ7FOXJ.js.map +0 -1
- package/dist/chunk-YXS27XM6.js.map +0 -1
- /package/dist/{chunk-ZR66E3T6.js.map → chunk-JNLVXPHR.js.map} +0 -0
package/dist/behaviors/tabs.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { B as BehaviorSchema,
|
|
1
|
+
import { B as BehaviorSchema, H as HyperscriptHost } from '../types-CbA4L8XJ.js';
|
|
2
2
|
|
|
3
3
|
declare const tabsSource: string;
|
|
4
4
|
declare const tabsMetadata: BehaviorSchema;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Define the Tabs behavior on a hyperscript host (`window.hyperfixi` when none is given)
|
|
7
|
+
* from its source, as a `<script type="text/hyperscript">` would.
|
|
8
8
|
*/
|
|
9
|
-
declare function registerTabs(
|
|
9
|
+
declare function registerTabs(host?: HyperscriptHost): Promise<void>;
|
|
10
10
|
declare const _default: {
|
|
11
11
|
source: string;
|
|
12
12
|
metadata: BehaviorSchema;
|
package/dist/behaviors/tabs.js
CHANGED
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
tabsMetadata,
|
|
4
4
|
tabsSource,
|
|
5
5
|
tabs_default
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-KXQMCN4O.js";
|
|
7
|
+
import "../chunk-CWLAXLWR.js";
|
|
8
|
+
import "../chunk-VWDTOSE3.js";
|
|
9
9
|
export {
|
|
10
10
|
tabs_default as default,
|
|
11
11
|
registerTabs,
|
|
@@ -43,11 +43,11 @@ var toggleableSchema = {
|
|
|
43
43
|
description: "CSS class to toggle"
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
|
-
name: "
|
|
46
|
+
name: "targetEl",
|
|
47
47
|
type: "selector",
|
|
48
48
|
optional: true,
|
|
49
49
|
default: "me",
|
|
50
|
-
description: "Element to toggle the class on"
|
|
50
|
+
description: "Element to toggle the class on (not `target`: that is hyperscript's name for the event target)"
|
|
51
51
|
}
|
|
52
52
|
],
|
|
53
53
|
events: [
|
|
@@ -55,20 +55,16 @@ var toggleableSchema = {
|
|
|
55
55
|
{ name: "toggleable:off", description: "Fired when class is removed" }
|
|
56
56
|
],
|
|
57
57
|
source: `
|
|
58
|
-
behavior Toggleable(cls,
|
|
58
|
+
behavior Toggleable(cls, targetEl)
|
|
59
59
|
init
|
|
60
|
-
if cls is undefined
|
|
61
|
-
|
|
62
|
-
end
|
|
63
|
-
if target is undefined
|
|
64
|
-
set target to me
|
|
65
|
-
end
|
|
60
|
+
if cls is undefined set element's cls to "active" end
|
|
61
|
+
if targetEl is undefined set element's targetEl to me end
|
|
66
62
|
end
|
|
67
63
|
on click
|
|
68
|
-
toggle .{cls} on
|
|
69
|
-
js(
|
|
70
|
-
var eventName =
|
|
71
|
-
|
|
64
|
+
toggle .{cls} on targetEl
|
|
65
|
+
js(targetEl, cls)
|
|
66
|
+
var eventName = targetEl.classList.contains(cls) ? 'toggleable:on' : 'toggleable:off';
|
|
67
|
+
targetEl.dispatchEvent(new CustomEvent(eventName, { bubbles: true }));
|
|
72
68
|
end
|
|
73
69
|
end
|
|
74
70
|
end`.trim()
|
|
@@ -78,25 +74,28 @@ end`.trim()
|
|
|
78
74
|
function resolveRuntime() {
|
|
79
75
|
if (typeof window === "undefined") return null;
|
|
80
76
|
const win = window;
|
|
81
|
-
|
|
77
|
+
const host = win.hyperfixi ?? win._hyperscript;
|
|
78
|
+
return host && typeof host.evaluate === "function" ? host : null;
|
|
82
79
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
var toggleableSource = toggleableSchema.source;
|
|
86
|
-
var toggleableMetadata = toggleableSchema;
|
|
87
|
-
async function registerToggleable(hyperfixi) {
|
|
88
|
-
const hf = hyperfixi || resolveRuntime();
|
|
80
|
+
function defineBehavior(schema, host) {
|
|
81
|
+
const hf = host ?? resolveRuntime();
|
|
89
82
|
if (!hf) {
|
|
90
83
|
throw new Error(
|
|
91
|
-
|
|
84
|
+
`No hyperscript host found: load @hyperfixi/engine (hyperfixi-hs.js) before defining ${schema.name}.`
|
|
92
85
|
);
|
|
93
86
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
87
|
+
try {
|
|
88
|
+
hf.evaluate(schema.source);
|
|
89
|
+
} catch (e) {
|
|
90
|
+
throw new Error(`Failed to define ${schema.name} behavior: ${e.message}`);
|
|
97
91
|
}
|
|
98
|
-
|
|
99
|
-
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// src/behaviors/toggleable.ts
|
|
95
|
+
var toggleableSource = toggleableSchema.source;
|
|
96
|
+
var toggleableMetadata = toggleableSchema;
|
|
97
|
+
async function registerToggleable(host) {
|
|
98
|
+
defineBehavior(toggleableSchema, host);
|
|
100
99
|
}
|
|
101
100
|
if (resolveRuntime()) {
|
|
102
101
|
registerToggleable().catch(console.error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/behaviors/toggleable.ts","../../src/schemas/toggleable.schema.ts","../../src/schemas/types.ts"],"sourcesContent":["/**\n * Toggleable Behavior\n *\n * A behavior that toggles a CSS class on click.\n * Useful for accordions, dropdowns, and toggle buttons.\n *\n *
|
|
1
|
+
{"version":3,"sources":["../../src/behaviors/toggleable.ts","../../src/schemas/toggleable.schema.ts","../../src/schemas/types.ts"],"sourcesContent":["/**\n * Toggleable Behavior\n *\n * A behavior that toggles a CSS class on click.\n * Useful for accordions, dropdowns, and toggle buttons.\n *\n * Defined from its hyperscript `source` (the single source of truth shared with\n * the browser bundle and patterns-reference). The `.{cls}` dynamic class\n * selector resolves the behavior's `cls` parameter at runtime.\n *\n * @example\n * ```html\n * <button _=\"install Toggleable\">Toggle</button>\n *\n * <button _=\"install Toggleable(cls: 'expanded', targetEl: #menu)\">Menu</button>\n * ```\n */\n\nimport { toggleableSchema } from '../schemas/toggleable.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values for backwards compatibility\nexport const toggleableSource = toggleableSchema.source;\nexport const toggleableMetadata = toggleableSchema;\n\n/**\n * Define the Toggleable behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerToggleable(host?: HyperscriptHost): Promise<void> {\n defineBehavior(toggleableSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerToggleable().catch(console.error);\n}\n\nexport default {\n source: toggleableSchema.source,\n metadata: toggleableSchema,\n register: registerToggleable,\n};\n","import type { BehaviorSchema } from './types';\n\n/**\n * Toggleable Behavior Schema\n *\n * Toggles a CSS class on click.\n * Useful for accordions, dropdowns, and toggle buttons.\n */\nexport const toggleableSchema: BehaviorSchema = {\n name: 'Toggleable',\n category: 'form',\n tier: 'core',\n version: '1.0.0',\n description: 'Toggles a CSS class on click',\n parameters: [\n {\n name: 'cls',\n type: 'string',\n optional: true,\n default: 'active',\n description: 'CSS class to toggle',\n },\n {\n name: 'targetEl',\n type: 'selector',\n optional: true,\n default: 'me',\n description:\n \"Element to toggle the class on (not `target`: that is hyperscript's name for the event target)\",\n },\n ],\n events: [\n { name: 'toggleable:on', description: 'Fired when class is added' },\n { name: 'toggleable:off', description: 'Fired when class is removed' },\n ],\n source: `\nbehavior Toggleable(cls, targetEl)\n init\n if cls is undefined set element's cls to \"active\" end\n if targetEl is undefined set element's targetEl to me end\n end\n on click\n toggle .{cls} on targetEl\n js(targetEl, cls)\n var eventName = targetEl.classList.contains(cls) ? 'toggleable:on' : 'toggleable:off';\n targetEl.dispatchEvent(new CustomEvent(eventName, { bubbles: true }));\n end\n end\nend`.trim(),\n};\n","/**\n * Behavior Schema Types\n *\n * Defines the structure for behavior metadata used for:\n * - Code generation (TypeScript types, documentation)\n * - Runtime categorization and lazy loading\n * - Tooling and IDE integration\n */\n\n/**\n * Behavior categories for organization.\n * - ui: Visual interaction behaviors (drag, resize, sort)\n * - data: Data manipulation behaviors (remove, transform)\n * - animation: Animation and transition behaviors\n * - form: Form-related behaviors (validation, toggle states)\n * - layout: Layout behaviors (sticky, scrollspy)\n */\nexport type BehaviorCategory = 'ui' | 'data' | 'animation' | 'form' | 'layout';\n\n/**\n * Loading tiers for lazy loading optimization.\n * - core: Always loaded (essential behaviors)\n * - common: High usage (loaded for typical apps)\n * - optional: Low usage (loaded on demand)\n */\nexport type BehaviorTier = 'core' | 'common' | 'optional';\n\n/**\n * Schema for a behavior parameter.\n */\nexport interface ParameterSchema {\n name: string;\n type: 'string' | 'number' | 'boolean' | 'selector' | 'element';\n optional?: boolean;\n default?: string | number | boolean;\n /** Allowed values for constrained parameters */\n enum?: string[];\n description: string;\n}\n\n/**\n * Schema for a behavior event.\n */\nexport interface EventSchema {\n name: string;\n description: string;\n}\n\n/**\n * Complete schema for a behavior.\n * This is the source of truth for all behavior metadata.\n */\nexport interface BehaviorSchema {\n /** Behavior name (PascalCase) */\n name: string;\n /** Category for organization */\n category: BehaviorCategory;\n /** Loading tier for lazy loading */\n tier: BehaviorTier;\n /** Semantic version */\n version: string;\n /** Human-readable description */\n description: string;\n /** Parameter definitions */\n parameters: ParameterSchema[];\n /** Event definitions */\n events: EventSchema[];\n /** The hyperscript behavior source code */\n source: string;\n /** Optional requirements or notes */\n requirements?: string[];\n}\n\n/**\n * Runtime behavior module interface: a behavior's source, its schema, and the function that\n * defines it on a hyperscript host.\n */\nexport interface BehaviorModule {\n source: string;\n metadata: BehaviorSchema;\n register: (host?: HyperscriptHost) => Promise<void>;\n}\n\n/**\n * A hyperscript host, in upstream `_hyperscript`'s shape: `@hyperfixi/engine` (the\n * `hyperfixi-hs.js` bundle, `window.hyperfixi` / `window._hyperscript`) or upstream itself.\n * `evaluate(source)` of a `behavior … end` program defines the behavior; `processNode`\n * initialises the scripted elements under a node.\n */\nexport interface HyperscriptHost {\n evaluate: (source: string) => unknown;\n processNode?: (node: Node) => void;\n}\n\n/** The window globals a host installs itself as. */\nexport interface HyperscriptWindow {\n hyperfixi?: HyperscriptHost;\n _hyperscript?: HyperscriptHost;\n}\n\n/** The host on `window`: `hyperfixi` (the engine's bundle) or `_hyperscript` (upstream's name). */\nexport function resolveRuntime(): HyperscriptHost | null {\n if (typeof window === 'undefined') return null;\n const win = window as unknown as HyperscriptWindow;\n const host = win.hyperfixi ?? win._hyperscript;\n return host && typeof host.evaluate === 'function' ? host : null;\n}\n\n/**\n * Define a behavior on a host from its schema's source, as a page's\n * `<script type=\"text/hyperscript\">` would. Throws when there is no host or the source\n * does not parse.\n */\nexport function defineBehavior(schema: BehaviorSchema, host?: HyperscriptHost): void {\n const hf = host ?? resolveRuntime();\n if (!hf) {\n throw new Error(\n `No hyperscript host found: load @hyperfixi/engine (hyperfixi-hs.js) before defining ${schema.name}.`\n );\n }\n try {\n hf.evaluate(schema.source);\n } catch (e) {\n throw new Error(`Failed to define ${schema.name} behavior: ${(e as Error).message}`);\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACQO,IAAM,mBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,IACV;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aACE;AAAA,IACJ;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,EAAE,MAAM,iBAAiB,aAAa,4BAA4B;AAAA,IAClE,EAAE,MAAM,kBAAkB,aAAa,8BAA8B;AAAA,EACvE;AAAA,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAaL,KAAK;AACV;;;ACoDO,SAAS,iBAAyC;AACvD,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,MAAM;AACZ,QAAM,OAAO,IAAI,aAAa,IAAI;AAClC,SAAO,QAAQ,OAAO,KAAK,aAAa,aAAa,OAAO;AAC9D;AAOO,SAAS,eAAe,QAAwB,MAA8B;AACnF,QAAM,KAAK,QAAQ,eAAe;AAClC,MAAI,CAAC,IAAI;AACP,UAAM,IAAI;AAAA,MACR,uFAAuF,OAAO,IAAI;AAAA,IACpG;AAAA,EACF;AACA,MAAI;AACF,OAAG,SAAS,OAAO,MAAM;AAAA,EAC3B,SAAS,GAAG;AACV,UAAM,IAAI,MAAM,oBAAoB,OAAO,IAAI,cAAe,EAAY,OAAO,EAAE;AAAA,EACrF;AACF;;;AFtGO,IAAM,mBAAmB,iBAAiB;AAC1C,IAAM,qBAAqB;AAMlC,eAAsB,mBAAmB,MAAuC;AAC9E,iBAAe,kBAAkB,IAAI;AACvC;AAGA,IAAI,eAAe,GAAG;AACpB,qBAAmB,EAAE,MAAM,QAAQ,KAAK;AAC1C;AAEA,IAAO,qBAAQ;AAAA,EACb,QAAQ,iBAAiB;AAAA,EACzB,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { B as BehaviorSchema,
|
|
1
|
+
import { B as BehaviorSchema, H as HyperscriptHost } from '../types-CbA4L8XJ.cjs';
|
|
2
2
|
|
|
3
3
|
declare const toggleableSource: string;
|
|
4
4
|
declare const toggleableMetadata: BehaviorSchema;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Define the Toggleable behavior on a hyperscript host (`window.hyperfixi` when none is given)
|
|
7
|
+
* from its source, as a `<script type="text/hyperscript">` would.
|
|
8
8
|
*/
|
|
9
|
-
declare function registerToggleable(
|
|
9
|
+
declare function registerToggleable(host?: HyperscriptHost): Promise<void>;
|
|
10
10
|
declare const _default: {
|
|
11
11
|
source: string;
|
|
12
12
|
metadata: BehaviorSchema;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { B as BehaviorSchema,
|
|
1
|
+
import { B as BehaviorSchema, H as HyperscriptHost } from '../types-CbA4L8XJ.js';
|
|
2
2
|
|
|
3
3
|
declare const toggleableSource: string;
|
|
4
4
|
declare const toggleableMetadata: BehaviorSchema;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
6
|
+
* Define the Toggleable behavior on a hyperscript host (`window.hyperfixi` when none is given)
|
|
7
|
+
* from its source, as a `<script type="text/hyperscript">` would.
|
|
8
8
|
*/
|
|
9
|
-
declare function registerToggleable(
|
|
9
|
+
declare function registerToggleable(host?: HyperscriptHost): Promise<void>;
|
|
10
10
|
declare const _default: {
|
|
11
11
|
source: string;
|
|
12
12
|
metadata: BehaviorSchema;
|
|
@@ -3,9 +3,9 @@ import {
|
|
|
3
3
|
toggleableMetadata,
|
|
4
4
|
toggleableSource,
|
|
5
5
|
toggleable_default
|
|
6
|
-
} from "../chunk-
|
|
7
|
-
import "../chunk-
|
|
8
|
-
import "../chunk-
|
|
6
|
+
} from "../chunk-IUGJG4RA.js";
|
|
7
|
+
import "../chunk-AQCOK5J5.js";
|
|
8
|
+
import "../chunk-VWDTOSE3.js";
|
|
9
9
|
export {
|
|
10
10
|
toggleable_default as default,
|
|
11
11
|
registerToggleable,
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
removableSchema
|
|
3
|
+
} from "./chunk-PVO6TZCZ.js";
|
|
4
|
+
import {
|
|
5
|
+
defineBehavior,
|
|
6
|
+
resolveRuntime
|
|
7
|
+
} from "./chunk-VWDTOSE3.js";
|
|
8
|
+
|
|
9
|
+
// src/behaviors/removable.ts
|
|
10
|
+
var removableSource = removableSchema.source;
|
|
11
|
+
var removableMetadata = removableSchema;
|
|
12
|
+
async function registerRemovable(host) {
|
|
13
|
+
defineBehavior(removableSchema, host);
|
|
14
|
+
}
|
|
15
|
+
if (resolveRuntime()) {
|
|
16
|
+
registerRemovable().catch(console.error);
|
|
17
|
+
}
|
|
18
|
+
var removable_default = {
|
|
19
|
+
source: removableSchema.source,
|
|
20
|
+
metadata: removableSchema,
|
|
21
|
+
register: registerRemovable
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
removableSource,
|
|
26
|
+
removableMetadata,
|
|
27
|
+
registerRemovable,
|
|
28
|
+
removable_default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-2GIS4DCY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/behaviors/removable.ts"],"sourcesContent":["/**\n * Removable Behavior\n *\n * A behavior that removes an element when a trigger is clicked.\n * Supports optional confirmation and transition effects.\n *\n * @example\n * ```html\n * <div _=\"install Removable\">Click to remove</div>\n *\n * <div _=\"install Removable(confirm: true)\">With confirmation</div>\n * ```\n */\n\nimport { removableSchema } from '../schemas/removable.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values for backwards compatibility\nexport const removableSource = removableSchema.source;\nexport const removableMetadata = removableSchema;\n\n/**\n * Define the Removable behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerRemovable(host?: HyperscriptHost): Promise<void> {\n defineBehavior(removableSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerRemovable().catch(console.error);\n}\n\nexport default {\n source: removableSchema.source,\n metadata: removableSchema,\n register: registerRemovable,\n};\n"],"mappings":";;;;;;;;;AAmBO,IAAM,kBAAkB,gBAAgB;AACxC,IAAM,oBAAoB;AAMjC,eAAsB,kBAAkB,MAAuC;AAC7E,iBAAe,iBAAiB,IAAI;AACtC;AAGA,IAAI,eAAe,GAAG;AACpB,oBAAkB,EAAE,MAAM,QAAQ,KAAK;AACzC;AAEA,IAAO,oBAAQ;AAAA,EACb,QAAQ,gBAAgB;AAAA,EACxB,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
sortableSchema
|
|
3
|
+
} from "./chunk-EIVPVTUI.js";
|
|
4
|
+
import {
|
|
5
|
+
defineBehavior,
|
|
6
|
+
resolveRuntime
|
|
7
|
+
} from "./chunk-VWDTOSE3.js";
|
|
8
|
+
|
|
9
|
+
// src/behaviors/sortable.ts
|
|
10
|
+
var sortableSource = sortableSchema.source;
|
|
11
|
+
var sortableMetadata = sortableSchema;
|
|
12
|
+
async function registerSortable(host) {
|
|
13
|
+
defineBehavior(sortableSchema, host);
|
|
14
|
+
}
|
|
15
|
+
if (resolveRuntime()) {
|
|
16
|
+
registerSortable().catch(console.error);
|
|
17
|
+
}
|
|
18
|
+
var sortable_default = {
|
|
19
|
+
source: sortableSchema.source,
|
|
20
|
+
metadata: sortableSchema,
|
|
21
|
+
register: registerSortable
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
sortableSource,
|
|
26
|
+
sortableMetadata,
|
|
27
|
+
registerSortable,
|
|
28
|
+
sortable_default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-3BCBZR6R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/behaviors/sortable.ts"],"sourcesContent":["/**\n * Sortable Behavior\n *\n * Drag-and-drop reordering of list items. Apply to a container element; its\n * `<li>` children become sortable. Defined from its hyperscript `source` (single\n * source of truth) — no imperative installer.\n *\n * Note: This behavior fires lifecycle events but does NOT automatically reorder\n * DOM elements. Users handle actual reordering in their `sortable:move` handlers.\n *\n * @example\n * ```html\n * <ul _=\"install Sortable\">\n * <li>Item 1</li>\n * <li>Item 2</li>\n * </ul>\n * ```\n */\n\nimport { sortableSchema } from '../schemas/sortable.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values for backwards compatibility\nexport const sortableSource = sortableSchema.source;\nexport const sortableMetadata = sortableSchema;\n\n/**\n * Define the Sortable behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerSortable(host?: HyperscriptHost): Promise<void> {\n defineBehavior(sortableSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerSortable().catch(console.error);\n}\n\nexport default {\n source: sortableSchema.source,\n metadata: sortableSchema,\n register: registerSortable,\n};\n"],"mappings":";;;;;;;;;AAwBO,IAAM,iBAAiB,eAAe;AACtC,IAAM,mBAAmB;AAMhC,eAAsB,iBAAiB,MAAuC;AAC5E,iBAAe,gBAAgB,IAAI;AACrC;AAGA,IAAI,eAAe,GAAG;AACpB,mBAAiB,EAAE,MAAM,QAAQ,KAAK;AACxC;AAEA,IAAO,mBAAQ;AAAA,EACb,QAAQ,eAAe;AAAA,EACvB,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
autoDismissSchema
|
|
3
|
+
} from "./chunk-KP4GNXYS.js";
|
|
4
|
+
import {
|
|
5
|
+
defineBehavior,
|
|
6
|
+
resolveRuntime
|
|
7
|
+
} from "./chunk-VWDTOSE3.js";
|
|
8
|
+
|
|
9
|
+
// src/behaviors/autodismiss.ts
|
|
10
|
+
var autoDismissSource = autoDismissSchema.source;
|
|
11
|
+
var autoDismissMetadata = autoDismissSchema;
|
|
12
|
+
async function registerAutoDismiss(host) {
|
|
13
|
+
defineBehavior(autoDismissSchema, host);
|
|
14
|
+
}
|
|
15
|
+
if (resolveRuntime()) {
|
|
16
|
+
registerAutoDismiss().catch(console.error);
|
|
17
|
+
}
|
|
18
|
+
var autodismiss_default = {
|
|
19
|
+
source: autoDismissSchema.source,
|
|
20
|
+
metadata: autoDismissSchema,
|
|
21
|
+
register: registerAutoDismiss
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
autoDismissSource,
|
|
26
|
+
autoDismissMetadata,
|
|
27
|
+
registerAutoDismiss,
|
|
28
|
+
autodismiss_default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-4YUIDZAO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/behaviors/autodismiss.ts"],"sourcesContent":["/**\n * AutoDismiss Behavior\n *\n * Auto-removes elements after a configurable delay.\n * Supports pause-on-hover and fade effect using standard setTimeout/clearTimeout\n * (in its hyperscript `source`'s js() body).\n *\n * Defined from its hyperscript `source` (the single source of truth shared with\n * the browser bundle and patterns-reference).\n */\n\nimport { autoDismissSchema } from '../schemas/autodismiss.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values\nexport const autoDismissSource = autoDismissSchema.source;\nexport const autoDismissMetadata = autoDismissSchema;\n\n/**\n * Define the AutoDismiss behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerAutoDismiss(host?: HyperscriptHost): Promise<void> {\n defineBehavior(autoDismissSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerAutoDismiss().catch(console.error);\n}\n\nexport default {\n source: autoDismissSchema.source,\n metadata: autoDismissSchema,\n register: registerAutoDismiss,\n};\n"],"mappings":";;;;;;;;;AAgBO,IAAM,oBAAoB,kBAAkB;AAC5C,IAAM,sBAAsB;AAMnC,eAAsB,oBAAoB,MAAuC;AAC/E,iBAAe,mBAAmB,IAAI;AACxC;AAGA,IAAI,eAAe,GAAG;AACpB,sBAAoB,EAAE,MAAM,QAAQ,KAAK;AAC3C;AAEA,IAAO,sBAAQ;AAAA,EACb,QAAQ,kBAAkB;AAAA,EAC1B,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -14,11 +14,11 @@ var toggleableSchema = {
|
|
|
14
14
|
description: "CSS class to toggle"
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
|
-
name: "
|
|
17
|
+
name: "targetEl",
|
|
18
18
|
type: "selector",
|
|
19
19
|
optional: true,
|
|
20
20
|
default: "me",
|
|
21
|
-
description: "Element to toggle the class on"
|
|
21
|
+
description: "Element to toggle the class on (not `target`: that is hyperscript's name for the event target)"
|
|
22
22
|
}
|
|
23
23
|
],
|
|
24
24
|
events: [
|
|
@@ -26,20 +26,16 @@ var toggleableSchema = {
|
|
|
26
26
|
{ name: "toggleable:off", description: "Fired when class is removed" }
|
|
27
27
|
],
|
|
28
28
|
source: `
|
|
29
|
-
behavior Toggleable(cls,
|
|
29
|
+
behavior Toggleable(cls, targetEl)
|
|
30
30
|
init
|
|
31
|
-
if cls is undefined
|
|
32
|
-
|
|
33
|
-
end
|
|
34
|
-
if target is undefined
|
|
35
|
-
set target to me
|
|
36
|
-
end
|
|
31
|
+
if cls is undefined set element's cls to "active" end
|
|
32
|
+
if targetEl is undefined set element's targetEl to me end
|
|
37
33
|
end
|
|
38
34
|
on click
|
|
39
|
-
toggle .{cls} on
|
|
40
|
-
js(
|
|
41
|
-
var eventName =
|
|
42
|
-
|
|
35
|
+
toggle .{cls} on targetEl
|
|
36
|
+
js(targetEl, cls)
|
|
37
|
+
var eventName = targetEl.classList.contains(cls) ? 'toggleable:on' : 'toggleable:off';
|
|
38
|
+
targetEl.dispatchEvent(new CustomEvent(eventName, { bubbles: true }));
|
|
43
39
|
end
|
|
44
40
|
end
|
|
45
41
|
end`.trim()
|
|
@@ -48,4 +44,4 @@ end`.trim()
|
|
|
48
44
|
export {
|
|
49
45
|
toggleableSchema
|
|
50
46
|
};
|
|
51
|
-
//# sourceMappingURL=chunk-
|
|
47
|
+
//# sourceMappingURL=chunk-AQCOK5J5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schemas/toggleable.schema.ts"],"sourcesContent":["import type { BehaviorSchema } from './types';\n\n/**\n * Toggleable Behavior Schema\n *\n * Toggles a CSS class on click.\n * Useful for accordions, dropdowns, and toggle buttons.\n */\nexport const toggleableSchema: BehaviorSchema = {\n name: 'Toggleable',\n category: 'form',\n tier: 'core',\n version: '1.0.0',\n description: 'Toggles a CSS class on click',\n parameters: [\n {\n name: 'cls',\n type: 'string',\n optional: true,\n default: 'active',\n description: 'CSS class to toggle',\n },\n {\n name: 'targetEl',\n type: 'selector',\n optional: true,\n default: 'me',\n description:\n \"Element to toggle the class on (not `target`: that is hyperscript's name for the event target)\",\n },\n ],\n events: [\n { name: 'toggleable:on', description: 'Fired when class is added' },\n { name: 'toggleable:off', description: 'Fired when class is removed' },\n ],\n source: `\nbehavior Toggleable(cls, targetEl)\n init\n if cls is undefined set element's cls to \"active\" end\n if targetEl is undefined set element's targetEl to me end\n end\n on click\n toggle .{cls} on targetEl\n js(targetEl, cls)\n var eventName = targetEl.classList.contains(cls) ? 'toggleable:on' : 'toggleable:off';\n targetEl.dispatchEvent(new CustomEvent(eventName, { bubbles: true }));\n end\n end\nend`.trim(),\n};\n"],"mappings":";AAQO,IAAM,mBAAmC;AAAA,EAC9C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY;AAAA,IACV;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aACE;AAAA,IACJ;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,EAAE,MAAM,iBAAiB,aAAa,4BAA4B;AAAA,IAClE,EAAE,MAAM,kBAAkB,aAAa,8BAA8B;AAAA,EACvE;AAAA,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAaL,KAAK;AACV;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
scrollRevealSchema
|
|
3
|
+
} from "./chunk-RILYRQ72.js";
|
|
4
|
+
import {
|
|
5
|
+
defineBehavior,
|
|
6
|
+
resolveRuntime
|
|
7
|
+
} from "./chunk-VWDTOSE3.js";
|
|
8
|
+
|
|
9
|
+
// src/behaviors/scrollreveal.ts
|
|
10
|
+
var scrollRevealSource = scrollRevealSchema.source;
|
|
11
|
+
var scrollRevealMetadata = scrollRevealSchema;
|
|
12
|
+
async function registerScrollReveal(host) {
|
|
13
|
+
defineBehavior(scrollRevealSchema, host);
|
|
14
|
+
}
|
|
15
|
+
if (resolveRuntime()) {
|
|
16
|
+
registerScrollReveal().catch(console.error);
|
|
17
|
+
}
|
|
18
|
+
var scrollreveal_default = {
|
|
19
|
+
source: scrollRevealSchema.source,
|
|
20
|
+
metadata: scrollRevealSchema,
|
|
21
|
+
register: registerScrollReveal
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
scrollRevealSource,
|
|
26
|
+
scrollRevealMetadata,
|
|
27
|
+
registerScrollReveal,
|
|
28
|
+
scrollreveal_default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-ATGHQQC7.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/behaviors/scrollreveal.ts"],"sourcesContent":["/**\n * ScrollReveal Behavior\n *\n * Adds a class or fires events when the element enters or exits the viewport.\n * Uses the IntersectionObserver web standard API (in its hyperscript `source`'s\n * `init`-block `js()` body).\n *\n * Defined from its hyperscript `source` — the single source of truth shared with\n * the browser bundle and patterns-reference. This collapses ScrollReveal onto\n * the one runtime path (no more imperative-installer fork between CDN and npm);\n * see docs-internal/BEHAVIORS_CONSOLIDATION_PLAN.md §3d.\n */\n\nimport { scrollRevealSchema } from '../schemas/scrollreveal.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values\nexport const scrollRevealSource = scrollRevealSchema.source;\nexport const scrollRevealMetadata = scrollRevealSchema;\n\n/**\n * Define the ScrollReveal behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerScrollReveal(host?: HyperscriptHost): Promise<void> {\n defineBehavior(scrollRevealSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerScrollReveal().catch(console.error);\n}\n\nexport default {\n source: scrollRevealSchema.source,\n metadata: scrollRevealSchema,\n register: registerScrollReveal,\n};\n"],"mappings":";;;;;;;;;AAkBO,IAAM,qBAAqB,mBAAmB;AAC9C,IAAM,uBAAuB;AAMpC,eAAsB,qBAAqB,MAAuC;AAChF,iBAAe,oBAAoB,IAAI;AACzC;AAGA,IAAI,eAAe,GAAG;AACpB,uBAAqB,EAAE,MAAM,QAAQ,KAAK;AAC5C;AAEA,IAAO,uBAAQ;AAAA,EACb,QAAQ,mBAAmB;AAAA,EAC3B,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -52,18 +52,10 @@ var tabsSchema = {
|
|
|
52
52
|
source: `
|
|
53
53
|
behavior Tabs(orientation, activeTab, wrap, activeClass)
|
|
54
54
|
init
|
|
55
|
-
if orientation is undefined
|
|
56
|
-
|
|
57
|
-
end
|
|
58
|
-
if
|
|
59
|
-
set activeTab to 0
|
|
60
|
-
end
|
|
61
|
-
if wrap is undefined
|
|
62
|
-
set wrap to true
|
|
63
|
-
end
|
|
64
|
-
if activeClass is undefined
|
|
65
|
-
set activeClass to "active"
|
|
66
|
-
end
|
|
55
|
+
if orientation is undefined set element's orientation to "horizontal" end
|
|
56
|
+
if activeTab is undefined set element's activeTab to 0 end
|
|
57
|
+
if wrap is undefined set element's wrap to true end
|
|
58
|
+
if activeClass is undefined set element's activeClass to "active" end
|
|
67
59
|
js(me, orientation, activeTab, wrap, activeClass)
|
|
68
60
|
var tabs = Array.from(me.querySelectorAll('[role="tab"]'));
|
|
69
61
|
var panels = Array.from(me.querySelectorAll('[role="tabpanel"]'));
|
|
@@ -134,4 +126,4 @@ end`.trim()
|
|
|
134
126
|
export {
|
|
135
127
|
tabsSchema
|
|
136
128
|
};
|
|
137
|
-
//# sourceMappingURL=chunk-
|
|
129
|
+
//# sourceMappingURL=chunk-CWLAXLWR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schemas/tabs.schema.ts"],"sourcesContent":["import type { BehaviorSchema } from './types';\n\nexport const tabsSchema: BehaviorSchema = {\n name: 'Tabs',\n category: 'ui',\n tier: 'core',\n version: '1.0.0',\n description:\n 'WAI-ARIA compliant tabs with roving tabindex keyboard navigation. ' +\n 'Auto-wires role, aria-selected, aria-controls, and aria-labelledby attributes.',\n parameters: [\n {\n name: 'orientation',\n type: 'string',\n optional: true,\n default: 'horizontal',\n enum: ['horizontal', 'vertical'],\n description: 'Arrow key direction: horizontal (Left/Right) or vertical (Up/Down)',\n },\n {\n name: 'activeTab',\n type: 'number',\n optional: true,\n default: 0,\n description: 'Initial active tab index (zero-based)',\n },\n {\n name: 'wrap',\n type: 'boolean',\n optional: true,\n default: true,\n description: 'Wrap to first/last tab when navigating past the end',\n },\n {\n name: 'activeClass',\n type: 'string',\n optional: true,\n default: 'active',\n description: 'CSS class applied to the active tab and its panel',\n },\n ],\n events: [\n {\n name: 'tabs:change',\n description: 'Fired before tab selection changes (cancelable via preventDefault)',\n },\n { name: 'tabs:changed', description: 'Fired after tab selection has changed' },\n ],\n requirements: [\n 'Sets role=\"tablist\" on the tab container',\n 'Sets role=\"tab\" on tab buttons and role=\"tabpanel\" on content panels',\n 'Manages aria-selected, aria-controls, aria-labelledby, and tabindex',\n 'Keyboard: Arrow keys navigate, Home/End jump to first/last, Tab exits tablist',\n ],\n source: `\nbehavior Tabs(orientation, activeTab, wrap, activeClass)\n init\n if orientation is undefined set element's orientation to \"horizontal\" end\n if activeTab is undefined set element's activeTab to 0 end\n if wrap is undefined set element's wrap to true end\n if activeClass is undefined set element's activeClass to \"active\" end\n js(me, orientation, activeTab, wrap, activeClass)\n var tabs = Array.from(me.querySelectorAll('[role=\"tab\"]'));\n var panels = Array.from(me.querySelectorAll('[role=\"tabpanel\"]'));\n if (tabs.length === 0 || panels.length === 0) return;\n var tablist = me.querySelector('[role=\"tablist\"]') || tabs[0].parentElement;\n if (tablist) tablist.setAttribute('aria-orientation', orientation);\n var count = Math.min(tabs.length, panels.length);\n var idN = 0;\n for (var i = 0; i < count; i++) {\n if (!tabs[i].id) tabs[i].id = 'tab-' + (++idN);\n if (!panels[i].id) panels[i].id = 'tabpanel-' + idN;\n tabs[i].setAttribute('aria-controls', panels[i].id);\n panels[i].setAttribute('aria-labelledby', tabs[i].id);\n }\n var cur = Math.max(0, Math.min(activeTab, count - 1));\n function activate(idx, prev) {\n if (idx === prev || idx < 0 || idx >= count) return false;\n var ev = new CustomEvent('tabs:change', { bubbles: true, cancelable: true, detail: { index: idx, previousIndex: prev } });\n me.dispatchEvent(ev);\n if (ev.defaultPrevented) return false;\n if (prev >= 0 && prev < count) {\n tabs[prev].setAttribute('aria-selected', 'false');\n tabs[prev].setAttribute('tabindex', '-1');\n tabs[prev].classList.remove(activeClass);\n panels[prev].setAttribute('aria-hidden', 'true');\n panels[prev].classList.remove(activeClass);\n }\n tabs[idx].setAttribute('aria-selected', 'true');\n tabs[idx].setAttribute('tabindex', '0');\n tabs[idx].classList.add(activeClass);\n panels[idx].setAttribute('aria-hidden', 'false');\n panels[idx].classList.add(activeClass);\n cur = idx;\n me.dispatchEvent(new CustomEvent('tabs:changed', { bubbles: true, detail: { index: idx } }));\n return true;\n }\n for (var j = 0; j < count; j++) {\n tabs[j].setAttribute('aria-selected', 'false');\n tabs[j].setAttribute('tabindex', '-1');\n panels[j].setAttribute('aria-hidden', 'true');\n panels[j].classList.remove(activeClass);\n }\n tabs[cur].setAttribute('aria-selected', 'true');\n tabs[cur].setAttribute('tabindex', '0');\n tabs[cur].classList.add(activeClass);\n panels[cur].setAttribute('aria-hidden', 'false');\n panels[cur].classList.add(activeClass);\n for (var k = 0; k < count; k++) {\n (function(idx) {\n tabs[idx].addEventListener('click', function() { if (activate(idx, cur)) tabs[idx].focus(); });\n })(k);\n }\n (tablist || me).addEventListener('keydown', function(e) {\n var nk = orientation === 'horizontal' ? 'ArrowRight' : 'ArrowDown';\n var pk = orientation === 'horizontal' ? 'ArrowLeft' : 'ArrowUp';\n var next = null;\n if (e.key === nk) { next = cur + 1; if (next >= count) next = wrap ? 0 : null; }\n else if (e.key === pk) { next = cur - 1; if (next < 0) next = wrap ? count - 1 : null; }\n else if (e.key === 'Home') next = 0;\n else if (e.key === 'End') next = count - 1;\n if (next !== null) { e.preventDefault(); if (activate(next, cur)) tabs[next].focus(); }\n });\n end\n end\nend`.trim(),\n};\n"],"mappings":";AAEO,IAAM,aAA6B;AAAA,EACxC,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aACE;AAAA,EAEF,YAAY;AAAA,IACV;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,MAAM,CAAC,cAAc,UAAU;AAAA,MAC/B,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,EAAE,MAAM,gBAAgB,aAAa,wCAAwC;AAAA,EAC/E;AAAA,EACA,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EACA,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAuEL,KAAK;AACV;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clickOutsideSchema
|
|
3
|
+
} from "./chunk-HJESSMKB.js";
|
|
4
|
+
import {
|
|
5
|
+
defineBehavior,
|
|
6
|
+
resolveRuntime
|
|
7
|
+
} from "./chunk-VWDTOSE3.js";
|
|
8
|
+
|
|
9
|
+
// src/behaviors/clickoutside.ts
|
|
10
|
+
var clickOutsideSource = clickOutsideSchema.source;
|
|
11
|
+
var clickOutsideMetadata = clickOutsideSchema;
|
|
12
|
+
async function registerClickOutside(host) {
|
|
13
|
+
defineBehavior(clickOutsideSchema, host);
|
|
14
|
+
}
|
|
15
|
+
if (resolveRuntime()) {
|
|
16
|
+
registerClickOutside().catch(console.error);
|
|
17
|
+
}
|
|
18
|
+
var clickoutside_default = {
|
|
19
|
+
source: clickOutsideSchema.source,
|
|
20
|
+
metadata: clickOutsideSchema,
|
|
21
|
+
register: registerClickOutside
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
clickOutsideSource,
|
|
26
|
+
clickOutsideMetadata,
|
|
27
|
+
registerClickOutside,
|
|
28
|
+
clickoutside_default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-DMWN52SV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/behaviors/clickoutside.ts"],"sourcesContent":["/**\n * ClickOutside Behavior\n *\n * Fires a clickoutside event when the user clicks outside the element.\n * Uses pointerdown instead of click to avoid timing issues.\n *\n * Defined from its hyperscript `source` (the single source of truth shared with\n * the browser bundle and patterns-reference).\n */\n\nimport { clickOutsideSchema } from '../schemas/clickoutside.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values\nexport const clickOutsideSource = clickOutsideSchema.source;\nexport const clickOutsideMetadata = clickOutsideSchema;\n\n/**\n * Define the ClickOutside behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerClickOutside(host?: HyperscriptHost): Promise<void> {\n defineBehavior(clickOutsideSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerClickOutside().catch(console.error);\n}\n\nexport default {\n source: clickOutsideSchema.source,\n metadata: clickOutsideSchema,\n register: registerClickOutside,\n};\n"],"mappings":";;;;;;;;;AAeO,IAAM,qBAAqB,mBAAmB;AAC9C,IAAM,uBAAuB;AAMpC,eAAsB,qBAAqB,MAAuC;AAChF,iBAAe,oBAAoB,IAAI;AACzC;AAGA,IAAI,eAAe,GAAG;AACpB,uBAAqB,EAAE,MAAM,QAAQ,KAAK;AAC5C;AAEA,IAAO,uBAAQ;AAAA,EACb,QAAQ,mBAAmB;AAAA,EAC3B,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -25,24 +25,20 @@ var sortableSchema = {
|
|
|
25
25
|
requirements: ["Users must handle DOM reordering in sortable:move event handlers"],
|
|
26
26
|
source: `
|
|
27
27
|
behavior Sortable(dragClass)
|
|
28
|
-
init
|
|
29
|
-
if dragClass is undefined
|
|
30
|
-
set dragClass to "sorting"
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
28
|
on pointerdown(clientY) from me
|
|
34
29
|
set item to the target.closest("li")
|
|
35
30
|
if item is null
|
|
36
31
|
exit
|
|
37
32
|
end
|
|
38
33
|
halt the event
|
|
39
|
-
|
|
34
|
+
set cls to dragClass or "sorting"
|
|
35
|
+
add .{cls} to item
|
|
40
36
|
trigger sortable:start on me
|
|
41
37
|
repeat until event pointerup from document
|
|
42
38
|
wait for pointermove(clientY) or pointerup(clientY) from document
|
|
43
39
|
trigger sortable:move on me
|
|
44
40
|
end
|
|
45
|
-
remove .{
|
|
41
|
+
remove .{cls} from item
|
|
46
42
|
trigger sortable:end on me
|
|
47
43
|
end
|
|
48
44
|
end`.trim()
|
|
@@ -51,4 +47,4 @@ end`.trim()
|
|
|
51
47
|
export {
|
|
52
48
|
sortableSchema
|
|
53
49
|
};
|
|
54
|
-
//# sourceMappingURL=chunk-
|
|
50
|
+
//# sourceMappingURL=chunk-EIVPVTUI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/schemas/sortable.schema.ts"],"sourcesContent":["import type { BehaviorSchema } from './types';\n\n/**\n * Sortable Behavior Schema\n *\n * Drag-and-drop reordering of list items.\n * Apply to a container element; children become sortable.\n *\n * Note: This behavior fires lifecycle events but does NOT automatically\n * reorder DOM elements. Users must handle actual reordering in their\n * `sortable:move` event handlers.\n */\nexport const sortableSchema: BehaviorSchema = {\n name: 'Sortable',\n category: 'ui',\n tier: 'common',\n version: '1.0.0',\n description:\n 'Makes child elements reorderable via drag-and-drop (EXPERIMENTAL — stateful async component, beyond the inline-scripting boundary; not part of the curated set)',\n parameters: [\n {\n name: 'dragClass',\n type: 'string',\n optional: true,\n default: 'sorting',\n description: 'CSS class added to item during drag',\n },\n ],\n events: [\n { name: 'sortable:start', description: 'Fired when drag begins' },\n {\n name: 'sortable:move',\n description: 'Fired during drag — handle this event to reorder DOM elements',\n },\n { name: 'sortable:end', description: 'Fired when drag completes' },\n ],\n requirements: ['Users must handle DOM reordering in sortable:move event handlers'],\n source: `\nbehavior Sortable(dragClass)\n
|
|
1
|
+
{"version":3,"sources":["../src/schemas/sortable.schema.ts"],"sourcesContent":["import type { BehaviorSchema } from './types';\n\n/**\n * Sortable Behavior Schema\n *\n * Drag-and-drop reordering of list items.\n * Apply to a container element; children become sortable.\n *\n * Note: This behavior fires lifecycle events but does NOT automatically\n * reorder DOM elements. Users must handle actual reordering in their\n * `sortable:move` event handlers.\n */\nexport const sortableSchema: BehaviorSchema = {\n name: 'Sortable',\n category: 'ui',\n tier: 'common',\n version: '1.0.0',\n description:\n 'Makes child elements reorderable via drag-and-drop (EXPERIMENTAL — stateful async component, beyond the inline-scripting boundary; not part of the curated set)',\n parameters: [\n {\n name: 'dragClass',\n type: 'string',\n optional: true,\n default: 'sorting',\n description: 'CSS class added to item during drag',\n },\n ],\n events: [\n { name: 'sortable:start', description: 'Fired when drag begins' },\n {\n name: 'sortable:move',\n description: 'Fired during drag — handle this event to reorder DOM elements',\n },\n { name: 'sortable:end', description: 'Fired when drag completes' },\n ],\n requirements: ['Users must handle DOM reordering in sortable:move event handlers'],\n source: `\nbehavior Sortable(dragClass)\n on pointerdown(clientY) from me\n set item to the target.closest(\"li\")\n if item is null\n exit\n end\n halt the event\n set cls to dragClass or \"sorting\"\n add .{cls} to item\n trigger sortable:start on me\n repeat until event pointerup from document\n wait for pointermove(clientY) or pointerup(clientY) from document\n trigger sortable:move on me\n end\n remove .{cls} from item\n trigger sortable:end on me\n end\nend`.trim(),\n};\n"],"mappings":";AAYO,IAAM,iBAAiC;AAAA,EAC5C,MAAM;AAAA,EACN,UAAU;AAAA,EACV,MAAM;AAAA,EACN,SAAS;AAAA,EACT,aACE;AAAA,EACF,YAAY;AAAA,IACV;AAAA,MACE,MAAM;AAAA,MACN,MAAM;AAAA,MACN,UAAU;AAAA,MACV,SAAS;AAAA,MACT,aAAa;AAAA,IACf;AAAA,EACF;AAAA,EACA,QAAQ;AAAA,IACN,EAAE,MAAM,kBAAkB,aAAa,yBAAyB;AAAA,IAChE;AAAA,MACE,MAAM;AAAA,MACN,aAAa;AAAA,IACf;AAAA,IACA,EAAE,MAAM,gBAAgB,aAAa,4BAA4B;AAAA,EACnE;AAAA,EACA,cAAc,CAAC,kEAAkE;AAAA,EACjF,QAAQ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAkBL,KAAK;AACV;","names":[]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import {
|
|
2
|
+
clipboardSchema
|
|
3
|
+
} from "./chunk-KYBOZ7C4.js";
|
|
4
|
+
import {
|
|
5
|
+
defineBehavior,
|
|
6
|
+
resolveRuntime
|
|
7
|
+
} from "./chunk-VWDTOSE3.js";
|
|
8
|
+
|
|
9
|
+
// src/behaviors/clipboard.ts
|
|
10
|
+
var clipboardSource = clipboardSchema.source;
|
|
11
|
+
var clipboardMetadata = clipboardSchema;
|
|
12
|
+
async function registerClipboard(host) {
|
|
13
|
+
defineBehavior(clipboardSchema, host);
|
|
14
|
+
}
|
|
15
|
+
if (resolveRuntime()) {
|
|
16
|
+
registerClipboard().catch(console.error);
|
|
17
|
+
}
|
|
18
|
+
var clipboard_default = {
|
|
19
|
+
source: clipboardSchema.source,
|
|
20
|
+
metadata: clipboardSchema,
|
|
21
|
+
register: registerClipboard
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export {
|
|
25
|
+
clipboardSource,
|
|
26
|
+
clipboardMetadata,
|
|
27
|
+
registerClipboard,
|
|
28
|
+
clipboard_default
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=chunk-HHTEMPIT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/behaviors/clipboard.ts"],"sourcesContent":["/**\n * Clipboard Behavior\n *\n * Copies text to clipboard on click with visual feedback.\n * Uses navigator.clipboard.writeText() with execCommand fallback (in its\n * hyperscript `source`'s js() body).\n *\n * Defined from its hyperscript `source` (the single source of truth shared with\n * the browser bundle and patterns-reference).\n */\n\nimport { clipboardSchema } from '../schemas/clipboard.schema';\nimport { defineBehavior, resolveRuntime } from '../schemas/types';\nimport type { HyperscriptHost } from '../schemas/types';\n\n// Re-export schema-derived values\nexport const clipboardSource = clipboardSchema.source;\nexport const clipboardMetadata = clipboardSchema;\n\n/**\n * Define the Clipboard behavior on a hyperscript host (`window.hyperfixi` when none is given)\n * from its source, as a `<script type=\"text/hyperscript\">` would.\n */\nexport async function registerClipboard(host?: HyperscriptHost): Promise<void> {\n defineBehavior(clipboardSchema, host);\n}\n\n// Auto-register when loaded as a script tag\nif (resolveRuntime()) {\n registerClipboard().catch(console.error);\n}\n\nexport default {\n source: clipboardSchema.source,\n metadata: clipboardSchema,\n register: registerClipboard,\n};\n"],"mappings":";;;;;;;;;AAgBO,IAAM,kBAAkB,gBAAgB;AACxC,IAAM,oBAAoB;AAMjC,eAAsB,kBAAkB,MAAuC;AAC7E,iBAAe,iBAAiB,IAAI;AACtC;AAGA,IAAI,eAAe,GAAG;AACpB,oBAAkB,EAAE,MAAM,QAAQ,KAAK;AACzC;AAEA,IAAO,oBAAQ;AAAA,EACb,QAAQ,gBAAgB;AAAA,EACxB,UAAU;AAAA,EACV,UAAU;AACZ;","names":[]}
|
|
@@ -29,9 +29,7 @@ var clickOutsideSchema = {
|
|
|
29
29
|
source: `
|
|
30
30
|
behavior ClickOutside(active)
|
|
31
31
|
init
|
|
32
|
-
if active is undefined
|
|
33
|
-
set active to true
|
|
34
|
-
end
|
|
32
|
+
if active is undefined set element's active to true end
|
|
35
33
|
end
|
|
36
34
|
on pointerdown from document
|
|
37
35
|
js(me, active, event)
|
|
@@ -42,10 +40,10 @@ behavior ClickOutside(active)
|
|
|
42
40
|
end
|
|
43
41
|
end
|
|
44
42
|
on clickoutside:activate
|
|
45
|
-
set active to true
|
|
43
|
+
set element's active to true
|
|
46
44
|
end
|
|
47
45
|
on clickoutside:deactivate
|
|
48
|
-
set active to false
|
|
46
|
+
set element's active to false
|
|
49
47
|
end
|
|
50
48
|
end`.trim()
|
|
51
49
|
};
|
|
@@ -53,4 +51,4 @@ end`.trim()
|
|
|
53
51
|
export {
|
|
54
52
|
clickOutsideSchema
|
|
55
53
|
};
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
54
|
+
//# sourceMappingURL=chunk-HJESSMKB.js.map
|