@livetemplate/client 0.4.1 → 0.7.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.
@@ -21,5 +21,17 @@ export declare class EventDelegator {
21
21
  setupWindowEventDelegation(): void;
22
22
  setupClickAwayDelegation(): void;
23
23
  setupModalDelegation(): void;
24
+ /**
25
+ * Sets up focus trapping for elements with lvt-focus-trap attribute.
26
+ * Focus is trapped within the element, cycling through focusable elements
27
+ * when Tab/Shift+Tab is pressed.
28
+ */
29
+ setupFocusTrapDelegation(): void;
30
+ /**
31
+ * Sets up autofocus for elements with lvt-autofocus attribute.
32
+ * Automatically focuses the first element with lvt-autofocus when it becomes visible.
33
+ * Uses MutationObserver to detect when elements are added or become visible.
34
+ */
35
+ setupAutofocusDelegation(): void;
24
36
  }
25
37
  //# sourceMappingURL=event-delegation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAAC;IACpC,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CAAC;IACR,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,MAAM;IAGjC,oBAAoB,IAAI,IAAI;IA+R5B,0BAA0B,IAAI,IAAI;IAoGlC,wBAAwB,IAAI,IAAI;IAgDhC,oBAAoB,IAAI,IAAI;CAkG7B"}
1
+ {"version":3,"file":"event-delegation.d.ts","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,MAAM,WAAW,sBAAsB;IACrC,iBAAiB,IAAI,OAAO,GAAG,IAAI,CAAC;IACpC,sBAAsB,IAAI,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAC;IAC/B,IAAI,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IACzB,mBAAmB,CACjB,IAAI,EAAE,eAAe,GAAG,IAAI,EAC5B,MAAM,EAAE,iBAAiB,GAAG,IAAI,EAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,GAChC,IAAI,CAAC;IACR,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,sBAAsB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC7C,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAED;;GAEG;AACH,qBAAa,cAAc;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,OAAO,EAAE,sBAAsB,EAC/B,MAAM,EAAE,MAAM;IAGjC,oBAAoB,IAAI,IAAI;IAwS5B,0BAA0B,IAAI,IAAI;IAoGlC,wBAAwB,IAAI,IAAI;IAgDhC,oBAAoB,IAAI,IAAI;IAmG5B;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;IAmGhC;;;;OAIG;IACH,wBAAwB,IAAI,IAAI;CAyGjC"}
@@ -67,6 +67,14 @@ class EventDelegator {
67
67
  while (element && element !== currentWrapper.parentElement) {
68
68
  let action = element.getAttribute(attrName);
69
69
  let actionElement = element;
70
+ // Check for lvt-persist on form submit (auto-persist to database)
71
+ if (!action && eventType === "submit" && element instanceof HTMLFormElement) {
72
+ const persistTable = element.getAttribute("lvt-persist");
73
+ if (persistTable) {
74
+ action = `persist:${persistTable}`;
75
+ actionElement = element;
76
+ }
77
+ }
70
78
  if (!action && (eventType === "change" || eventType === "input")) {
71
79
  const formElement = element.closest("form");
72
80
  if (formElement && formElement.hasAttribute("lvt-change")) {
@@ -441,6 +449,197 @@ class EventDelegator {
441
449
  document[escapeListenerKey] = escapeListener;
442
450
  document.addEventListener("keydown", escapeListener);
443
451
  }
452
+ /**
453
+ * Sets up focus trapping for elements with lvt-focus-trap attribute.
454
+ * Focus is trapped within the element, cycling through focusable elements
455
+ * when Tab/Shift+Tab is pressed.
456
+ */
457
+ setupFocusTrapDelegation() {
458
+ const wrapperElement = this.context.getWrapperElement();
459
+ if (!wrapperElement)
460
+ return;
461
+ const wrapperId = wrapperElement.getAttribute("data-lvt-id");
462
+ const listenerKey = `__lvt_focus_trap_${wrapperId}`;
463
+ const existingListener = document[listenerKey];
464
+ if (existingListener) {
465
+ document.removeEventListener("keydown", existingListener);
466
+ }
467
+ const getFocusableElements = (container) => {
468
+ const selector = [
469
+ 'a[href]:not([disabled])',
470
+ 'button:not([disabled])',
471
+ 'textarea:not([disabled])',
472
+ 'input:not([disabled]):not([type="hidden"])',
473
+ 'select:not([disabled])',
474
+ '[tabindex]:not([tabindex="-1"]):not([disabled])',
475
+ '[contenteditable="true"]'
476
+ ].join(', ');
477
+ return Array.from(container.querySelectorAll(selector)).filter((el) => {
478
+ const htmlEl = el;
479
+ // Check if element is visible
480
+ const style = window.getComputedStyle(htmlEl);
481
+ const isNotDisplayNone = style.display !== 'none';
482
+ const isNotVisibilityHidden = style.visibility !== 'hidden';
483
+ // offsetParent can be null in JSDOM or for fixed/absolute positioned elements
484
+ const hasLayoutContext = htmlEl.offsetParent !== null ||
485
+ style.position === 'fixed' ||
486
+ style.position === 'absolute' ||
487
+ // In test environments, offsetParent may always be null
488
+ (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test');
489
+ return isNotDisplayNone && isNotVisibilityHidden && hasLayoutContext;
490
+ });
491
+ };
492
+ const listener = (e) => {
493
+ if (e.key !== "Tab")
494
+ return;
495
+ const currentWrapper = this.context.getWrapperElement();
496
+ if (!currentWrapper)
497
+ return;
498
+ // Find the active focus trap container (innermost one containing the focused element)
499
+ const focusTrapElements = currentWrapper.querySelectorAll("[lvt-focus-trap]");
500
+ let activeTrap = null;
501
+ focusTrapElements.forEach((trap) => {
502
+ if (trap.contains(document.activeElement)) {
503
+ // Check if this is the innermost trap containing the focused element
504
+ if (!activeTrap || trap.contains(activeTrap)) {
505
+ activeTrap = trap;
506
+ }
507
+ }
508
+ });
509
+ // If there's a visible focus trap that doesn't contain the active element,
510
+ // and is visible, trap focus there (for newly opened modals/dropdowns)
511
+ if (!activeTrap) {
512
+ focusTrapElements.forEach((trap) => {
513
+ const htmlTrap = trap;
514
+ const style = window.getComputedStyle(htmlTrap);
515
+ if (style.display !== 'none' && style.visibility !== 'hidden') {
516
+ activeTrap = trap;
517
+ }
518
+ });
519
+ }
520
+ if (!activeTrap)
521
+ return;
522
+ const focusableElements = getFocusableElements(activeTrap);
523
+ if (focusableElements.length === 0)
524
+ return;
525
+ const firstElement = focusableElements[0];
526
+ const lastElement = focusableElements[focusableElements.length - 1];
527
+ if (e.shiftKey) {
528
+ // Shift+Tab: moving backwards
529
+ if (document.activeElement === firstElement) {
530
+ e.preventDefault();
531
+ lastElement.focus();
532
+ }
533
+ }
534
+ else {
535
+ // Tab: moving forwards
536
+ if (document.activeElement === lastElement) {
537
+ e.preventDefault();
538
+ firstElement.focus();
539
+ }
540
+ }
541
+ };
542
+ document[listenerKey] = listener;
543
+ document.addEventListener("keydown", listener);
544
+ this.logger.debug("Focus trap delegation set up");
545
+ }
546
+ /**
547
+ * Sets up autofocus for elements with lvt-autofocus attribute.
548
+ * Automatically focuses the first element with lvt-autofocus when it becomes visible.
549
+ * Uses MutationObserver to detect when elements are added or become visible.
550
+ */
551
+ setupAutofocusDelegation() {
552
+ const wrapperElement = this.context.getWrapperElement();
553
+ if (!wrapperElement)
554
+ return;
555
+ const wrapperId = wrapperElement.getAttribute("data-lvt-id");
556
+ const observerKey = `__lvt_autofocus_observer_${wrapperId}`;
557
+ // Disconnect existing observer if any
558
+ const existingObserver = wrapperElement[observerKey];
559
+ if (existingObserver) {
560
+ existingObserver.disconnect();
561
+ }
562
+ const processAutofocus = () => {
563
+ const currentWrapper = this.context.getWrapperElement();
564
+ if (!currentWrapper)
565
+ return;
566
+ // Find all elements with lvt-autofocus that are visible
567
+ const autofocusElements = currentWrapper.querySelectorAll("[lvt-autofocus]");
568
+ autofocusElements.forEach((element) => {
569
+ const htmlElement = element;
570
+ const style = window.getComputedStyle(htmlElement);
571
+ // Check if element is visible and hasn't been focused yet in this visibility state
572
+ // Note: offsetParent can be null in JSDOM or for fixed/absolute positioned elements,
573
+ // so we only use it as a secondary check when it's available
574
+ const isNotDisplayNone = style.display !== 'none';
575
+ const isNotVisibilityHidden = style.visibility !== 'hidden';
576
+ const hasLayoutContext = htmlElement.offsetParent !== null ||
577
+ style.position === 'fixed' ||
578
+ style.position === 'absolute' ||
579
+ htmlElement.tagName === 'BODY' ||
580
+ // In test environments, offsetParent may always be null
581
+ (typeof process !== 'undefined' && process.env?.NODE_ENV === 'test');
582
+ const isVisible = isNotDisplayNone && isNotVisibilityHidden && hasLayoutContext;
583
+ const wasFocused = htmlElement.getAttribute("data-lvt-autofocused") === "true";
584
+ if (isVisible && !wasFocused) {
585
+ // Mark as focused to prevent re-focusing on every mutation
586
+ htmlElement.setAttribute("data-lvt-autofocused", "true");
587
+ // Use requestAnimationFrame to ensure DOM is ready
588
+ requestAnimationFrame(() => {
589
+ htmlElement.focus();
590
+ this.logger.debug("Autofocused element:", htmlElement.tagName, htmlElement.id || htmlElement.getAttribute("name"));
591
+ });
592
+ }
593
+ else if (!isVisible && wasFocused) {
594
+ // Reset the flag when element becomes hidden so it can be refocused when shown again
595
+ htmlElement.removeAttribute("data-lvt-autofocused");
596
+ }
597
+ });
598
+ };
599
+ // Process autofocus immediately for any existing elements
600
+ processAutofocus();
601
+ // Set up MutationObserver to watch for new autofocus elements or visibility changes
602
+ const observer = new MutationObserver((mutations) => {
603
+ let shouldProcess = false;
604
+ mutations.forEach((mutation) => {
605
+ // Check for added nodes
606
+ if (mutation.type === "childList" && mutation.addedNodes.length > 0) {
607
+ mutation.addedNodes.forEach((node) => {
608
+ if (node instanceof Element) {
609
+ if (node.hasAttribute("lvt-autofocus") || node.querySelector("[lvt-autofocus]")) {
610
+ shouldProcess = true;
611
+ }
612
+ }
613
+ });
614
+ }
615
+ // Check for attribute changes that might affect visibility
616
+ // We intentionally check "class" changes to handle CSS-based visibility
617
+ // (e.g., Tailwind's "hidden" class, Bootstrap's "d-none", etc.)
618
+ // This may cause some extra processing but ensures visibility changes
619
+ // via class toggles are detected.
620
+ if (mutation.type === "attributes") {
621
+ const target = mutation.target;
622
+ if (target.hasAttribute("lvt-autofocus") ||
623
+ mutation.attributeName === "hidden" ||
624
+ mutation.attributeName === "style" ||
625
+ mutation.attributeName === "class") {
626
+ shouldProcess = true;
627
+ }
628
+ }
629
+ });
630
+ if (shouldProcess) {
631
+ processAutofocus();
632
+ }
633
+ });
634
+ observer.observe(wrapperElement, {
635
+ childList: true,
636
+ subtree: true,
637
+ attributes: true,
638
+ attributeFilter: ["hidden", "style", "class", "lvt-autofocus"]
639
+ });
640
+ wrapperElement[observerKey] = observer;
641
+ this.logger.debug("Autofocus delegation set up");
642
+ }
444
643
  }
445
644
  exports.EventDelegator = EventDelegator;
446
645
  //# sourceMappingURL=event-delegation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-delegation.js","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-delegation.js","sourceRoot":"","sources":["../../dom/event-delegation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Reactive Attributes - Declarative DOM actions triggered by LiveTemplate lifecycle events.
3
+ *
4
+ * Attribute Pattern: lvt-{action}-on:{event}="param"
5
+ *
6
+ * Events:
7
+ * - pending: Action started, waiting for server response
8
+ * - success: Action completed successfully
9
+ * - error: Action completed with validation errors
10
+ * - done: Action completed (regardless of success/error)
11
+ *
12
+ * Event Scope:
13
+ * - Global: lvt-reset-on:success (any action)
14
+ * - Action-specific: lvt-reset-on:create-todo:success (specific action only)
15
+ *
16
+ * Actions:
17
+ * - reset: Calls form.reset()
18
+ * - disable: Sets element.disabled = true
19
+ * - enable: Sets element.disabled = false
20
+ * - addClass: Adds CSS class(es)
21
+ * - removeClass: Removes CSS class(es)
22
+ * - toggleClass: Toggles CSS class(es)
23
+ * - setAttr: Sets an attribute (name:value format)
24
+ * - toggleAttr: Toggles a boolean attribute
25
+ */
26
+ export type ReactiveAction = "reset" | "disable" | "enable" | "addClass" | "removeClass" | "toggleClass" | "setAttr" | "toggleAttr";
27
+ export type LifecycleEvent = "pending" | "success" | "error" | "done";
28
+ export interface ReactiveBinding {
29
+ action: ReactiveAction;
30
+ lifecycle: LifecycleEvent;
31
+ actionName?: string;
32
+ param?: string;
33
+ }
34
+ /**
35
+ * Parse a reactive attribute name and value into a binding.
36
+ *
37
+ * Examples:
38
+ * parseReactiveAttribute("lvt-reset-on:success", "") => { action: "reset", lifecycle: "success" }
39
+ * parseReactiveAttribute("lvt-addClass-on:pending", "loading") => { action: "addClass", lifecycle: "pending", param: "loading" }
40
+ * parseReactiveAttribute("lvt-reset-on:create-todo:success", "") => { action: "reset", lifecycle: "success", actionName: "create-todo" }
41
+ */
42
+ export declare function parseReactiveAttribute(attrName: string, attrValue: string): ReactiveBinding | null;
43
+ /**
44
+ * Execute a reactive action on an element.
45
+ */
46
+ export declare function executeAction(element: Element, action: ReactiveAction, param?: string): void;
47
+ /**
48
+ * Check if an event matches a binding.
49
+ *
50
+ * @param binding The reactive binding to check
51
+ * @param lifecycle The lifecycle event that fired
52
+ * @param actionName The action name that triggered the event (optional)
53
+ */
54
+ export declare function matchesEvent(binding: ReactiveBinding, lifecycle: LifecycleEvent, actionName?: string): boolean;
55
+ /**
56
+ * Process all reactive attributes for a lifecycle event.
57
+ *
58
+ * Instead of building complex selectors, we iterate all elements with any lvt-*-on:* attribute
59
+ * and check each one against the fired event.
60
+ */
61
+ export declare function processReactiveAttributes(lifecycle: LifecycleEvent, actionName?: string): void;
62
+ /**
63
+ * Set up document-level event listeners for reactive attributes.
64
+ * This should be called once during client initialization.
65
+ */
66
+ export declare function setupReactiveAttributeListeners(): void;
67
+ //# sourceMappingURL=reactive-attributes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-attributes.d.ts","sourceRoot":"","sources":["../../dom/reactive-attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,MAAM,MAAM,cAAc,GACtB,OAAO,GACP,SAAS,GACT,QAAQ,GACR,UAAU,GACV,aAAa,GACb,aAAa,GACb,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,cAAc,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA2BD;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,GAChB,eAAe,GAAG,IAAI,CA6BxB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,cAAc,EACtB,KAAK,CAAC,EAAE,MAAM,GACb,IAAI,CA0DN;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,eAAe,EACxB,SAAS,EAAE,cAAc,EACzB,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAST;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,cAAc,EACzB,UAAU,CAAC,EAAE,MAAM,GAClB,IAAI,CAmBN;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,IAAI,IAAI,CAatD"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ /**
3
+ * Reactive Attributes - Declarative DOM actions triggered by LiveTemplate lifecycle events.
4
+ *
5
+ * Attribute Pattern: lvt-{action}-on:{event}="param"
6
+ *
7
+ * Events:
8
+ * - pending: Action started, waiting for server response
9
+ * - success: Action completed successfully
10
+ * - error: Action completed with validation errors
11
+ * - done: Action completed (regardless of success/error)
12
+ *
13
+ * Event Scope:
14
+ * - Global: lvt-reset-on:success (any action)
15
+ * - Action-specific: lvt-reset-on:create-todo:success (specific action only)
16
+ *
17
+ * Actions:
18
+ * - reset: Calls form.reset()
19
+ * - disable: Sets element.disabled = true
20
+ * - enable: Sets element.disabled = false
21
+ * - addClass: Adds CSS class(es)
22
+ * - removeClass: Removes CSS class(es)
23
+ * - toggleClass: Toggles CSS class(es)
24
+ * - setAttr: Sets an attribute (name:value format)
25
+ * - toggleAttr: Toggles a boolean attribute
26
+ */
27
+ Object.defineProperty(exports, "__esModule", { value: true });
28
+ exports.parseReactiveAttribute = parseReactiveAttribute;
29
+ exports.executeAction = executeAction;
30
+ exports.matchesEvent = matchesEvent;
31
+ exports.processReactiveAttributes = processReactiveAttributes;
32
+ exports.setupReactiveAttributeListeners = setupReactiveAttributeListeners;
33
+ const LIFECYCLE_EVENTS = ["pending", "success", "error", "done"];
34
+ const REACTIVE_ACTIONS = [
35
+ "reset",
36
+ "disable",
37
+ "enable",
38
+ "addClass",
39
+ "removeClass",
40
+ "toggleClass",
41
+ "setAttr",
42
+ "toggleAttr",
43
+ ];
44
+ // Lowercase versions for case-insensitive matching (HTML attributes are lowercased)
45
+ const ACTION_MAP = {
46
+ reset: "reset",
47
+ disable: "disable",
48
+ enable: "enable",
49
+ addclass: "addClass",
50
+ removeclass: "removeClass",
51
+ toggleclass: "toggleClass",
52
+ setattr: "setAttr",
53
+ toggleattr: "toggleAttr",
54
+ };
55
+ /**
56
+ * Parse a reactive attribute name and value into a binding.
57
+ *
58
+ * Examples:
59
+ * parseReactiveAttribute("lvt-reset-on:success", "") => { action: "reset", lifecycle: "success" }
60
+ * parseReactiveAttribute("lvt-addClass-on:pending", "loading") => { action: "addClass", lifecycle: "pending", param: "loading" }
61
+ * parseReactiveAttribute("lvt-reset-on:create-todo:success", "") => { action: "reset", lifecycle: "success", actionName: "create-todo" }
62
+ */
63
+ function parseReactiveAttribute(attrName, attrValue) {
64
+ // Pattern: lvt-{action}-on:{actionName?}:{lifecycle}
65
+ // The lifecycle must be at the end, action name is optional in the middle
66
+ // Note: HTML attributes are lowercased by browsers, so we match case-insensitively
67
+ const match = attrName.toLowerCase().match(/^lvt-(\w+)-on:(.+)$/);
68
+ if (!match)
69
+ return null;
70
+ const actionKey = match[1];
71
+ const action = ACTION_MAP[actionKey];
72
+ if (!action)
73
+ return null;
74
+ const eventPart = match[2];
75
+ // Check if the last segment is a lifecycle event
76
+ // Format: "{actionName}:{lifecycle}" or just "{lifecycle}"
77
+ const segments = eventPart.split(":");
78
+ const lastSegment = segments[segments.length - 1];
79
+ if (!LIFECYCLE_EVENTS.includes(lastSegment))
80
+ return null;
81
+ const lifecycle = lastSegment;
82
+ const actionName = segments.length > 1 ? segments.slice(0, -1).join(":") : undefined;
83
+ return {
84
+ action,
85
+ lifecycle,
86
+ actionName: actionName || undefined,
87
+ param: attrValue || undefined,
88
+ };
89
+ }
90
+ /**
91
+ * Execute a reactive action on an element.
92
+ */
93
+ function executeAction(element, action, param) {
94
+ switch (action) {
95
+ case "reset":
96
+ if (element instanceof HTMLFormElement) {
97
+ element.reset();
98
+ }
99
+ break;
100
+ case "disable":
101
+ if ("disabled" in element) {
102
+ element.disabled = true;
103
+ }
104
+ break;
105
+ case "enable":
106
+ if ("disabled" in element) {
107
+ element.disabled = false;
108
+ }
109
+ break;
110
+ case "addClass":
111
+ if (param) {
112
+ const classes = param.split(/\s+/).filter(Boolean);
113
+ element.classList.add(...classes);
114
+ }
115
+ break;
116
+ case "removeClass":
117
+ if (param) {
118
+ const classes = param.split(/\s+/).filter(Boolean);
119
+ element.classList.remove(...classes);
120
+ }
121
+ break;
122
+ case "toggleClass":
123
+ if (param) {
124
+ const classes = param.split(/\s+/).filter(Boolean);
125
+ classes.forEach((c) => element.classList.toggle(c));
126
+ }
127
+ break;
128
+ case "setAttr":
129
+ if (param) {
130
+ const colonIndex = param.indexOf(":");
131
+ if (colonIndex > 0) {
132
+ const name = param.substring(0, colonIndex);
133
+ const value = param.substring(colonIndex + 1);
134
+ element.setAttribute(name, value);
135
+ }
136
+ }
137
+ break;
138
+ case "toggleAttr":
139
+ if (param) {
140
+ element.toggleAttribute(param);
141
+ }
142
+ break;
143
+ }
144
+ }
145
+ /**
146
+ * Check if an event matches a binding.
147
+ *
148
+ * @param binding The reactive binding to check
149
+ * @param lifecycle The lifecycle event that fired
150
+ * @param actionName The action name that triggered the event (optional)
151
+ */
152
+ function matchesEvent(binding, lifecycle, actionName) {
153
+ // Lifecycle must match
154
+ if (binding.lifecycle !== lifecycle)
155
+ return false;
156
+ // If binding has no actionName, it's global (matches any action)
157
+ if (!binding.actionName)
158
+ return true;
159
+ // If binding has actionName, it must match the fired action
160
+ return binding.actionName === actionName;
161
+ }
162
+ /**
163
+ * Process all reactive attributes for a lifecycle event.
164
+ *
165
+ * Instead of building complex selectors, we iterate all elements with any lvt-*-on:* attribute
166
+ * and check each one against the fired event.
167
+ */
168
+ function processReactiveAttributes(lifecycle, actionName) {
169
+ // Find all elements that might have reactive attributes
170
+ // This is a broad selector but avoids escaping issues with attribute names containing colons
171
+ const allElements = document.querySelectorAll("*");
172
+ allElements.forEach((element) => {
173
+ // Check all attributes on this element for reactive bindings
174
+ Array.from(element.attributes).forEach((attr) => {
175
+ // Quick filter: only process lvt-*-on: attributes
176
+ if (!attr.name.startsWith("lvt-") || !attr.name.includes("-on:")) {
177
+ return;
178
+ }
179
+ const binding = parseReactiveAttribute(attr.name, attr.value);
180
+ if (binding && matchesEvent(binding, lifecycle, actionName)) {
181
+ executeAction(element, binding.action, binding.param);
182
+ }
183
+ });
184
+ });
185
+ }
186
+ /**
187
+ * Set up document-level event listeners for reactive attributes.
188
+ * This should be called once during client initialization.
189
+ */
190
+ function setupReactiveAttributeListeners() {
191
+ LIFECYCLE_EVENTS.forEach((lifecycle) => {
192
+ // Listen in capture phase to process before event bubbles
193
+ document.addEventListener(`lvt:${lifecycle}`, (e) => {
194
+ const customEvent = e;
195
+ const actionName = customEvent.detail?.action;
196
+ processReactiveAttributes(lifecycle, actionName);
197
+ }, true // capture phase
198
+ );
199
+ });
200
+ }
201
+ //# sourceMappingURL=reactive-attributes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reactive-attributes.js","sourceRoot":"","sources":["../../dom/reactive-attributes.ts"],"names":[],"mappings":"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"}