@livetemplate/client 0.8.29 → 0.8.31

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.
@@ -0,0 +1,350 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const hash_link_1 = require("../dom/hash-link");
4
+ function mockDialogMethods(dialog) {
5
+ const showModal = jest.fn(() => {
6
+ dialog.setAttribute("open", "");
7
+ });
8
+ const close = jest.fn(() => {
9
+ dialog.removeAttribute("open");
10
+ dialog.dispatchEvent(new Event("close"));
11
+ });
12
+ dialog.showModal = showModal;
13
+ dialog.close = close;
14
+ return { showModal, close };
15
+ }
16
+ function createDialog(id) {
17
+ const dialog = document.createElement("dialog");
18
+ dialog.id = id;
19
+ const mocks = mockDialogMethods(dialog);
20
+ document.body.appendChild(dialog);
21
+ return { dialog, ...mocks };
22
+ }
23
+ function createDetails(id) {
24
+ const details = document.createElement("details");
25
+ details.id = id;
26
+ const summary = document.createElement("summary");
27
+ summary.textContent = "Toggle";
28
+ details.appendChild(summary);
29
+ document.body.appendChild(details);
30
+ return details;
31
+ }
32
+ function createInvokerButton(command, targetId) {
33
+ const button = document.createElement("button");
34
+ button.setAttribute("command", command);
35
+ button.setAttribute("commandfor", targetId);
36
+ document.body.appendChild(button);
37
+ return button;
38
+ }
39
+ function clearDOM() {
40
+ while (document.body.firstChild) {
41
+ document.body.removeChild(document.body.firstChild);
42
+ }
43
+ }
44
+ describe("hash-link", () => {
45
+ let pushStateSpy;
46
+ let replaceStateSpy;
47
+ beforeEach(() => {
48
+ clearDOM();
49
+ history.replaceState(null, "", location.pathname);
50
+ pushStateSpy = jest.spyOn(history, "pushState");
51
+ replaceStateSpy = jest.spyOn(history, "replaceState");
52
+ });
53
+ afterEach(() => {
54
+ (0, hash_link_1.teardownHashLink)();
55
+ pushStateSpy.mockRestore();
56
+ replaceStateSpy.mockRestore();
57
+ clearDOM();
58
+ history.replaceState(null, "", location.pathname);
59
+ });
60
+ describe("openFromHash", () => {
61
+ it("opens a dialog when hash matches its ID", () => {
62
+ history.replaceState(null, "", "#my-dialog");
63
+ const { showModal } = createDialog("my-dialog");
64
+ (0, hash_link_1.openFromHash)();
65
+ expect(showModal).toHaveBeenCalled();
66
+ });
67
+ it("no-ops when hash is empty", () => {
68
+ const { showModal } = createDialog("my-dialog");
69
+ (0, hash_link_1.openFromHash)();
70
+ expect(showModal).not.toHaveBeenCalled();
71
+ });
72
+ it("no-ops when hash matches a non-activatable element", () => {
73
+ history.replaceState(null, "", "#my-div");
74
+ const div = document.createElement("div");
75
+ div.id = "my-div";
76
+ document.body.appendChild(div);
77
+ (0, hash_link_1.openFromHash)();
78
+ });
79
+ it("no-ops when hash matches no element", () => {
80
+ history.replaceState(null, "", "#nonexistent");
81
+ (0, hash_link_1.openFromHash)();
82
+ });
83
+ it("no-ops when dialog is already open", () => {
84
+ history.replaceState(null, "", "#my-dialog");
85
+ const { dialog, showModal } = createDialog("my-dialog");
86
+ dialog.setAttribute("open", "");
87
+ (0, hash_link_1.openFromHash)();
88
+ expect(showModal).not.toHaveBeenCalled();
89
+ });
90
+ it("opens a details element when hash matches", () => {
91
+ history.replaceState(null, "", "#my-details");
92
+ const details = createDetails("my-details");
93
+ (0, hash_link_1.openFromHash)();
94
+ expect(details.open).toBe(true);
95
+ });
96
+ });
97
+ describe("isHashLinkTarget", () => {
98
+ it("returns true for a dialog element", () => {
99
+ createDialog("dlg");
100
+ expect((0, hash_link_1.isHashLinkTarget)("dlg")).toBe(true);
101
+ });
102
+ it("returns true for a details element", () => {
103
+ createDetails("det");
104
+ expect((0, hash_link_1.isHashLinkTarget)("det")).toBe(true);
105
+ });
106
+ it("returns false for a plain div", () => {
107
+ const div = document.createElement("div");
108
+ div.id = "section";
109
+ document.body.appendChild(div);
110
+ expect((0, hash_link_1.isHashLinkTarget)("section")).toBe(false);
111
+ });
112
+ it("returns false for nonexistent element", () => {
113
+ expect((0, hash_link_1.isHashLinkTarget)("nope")).toBe(false);
114
+ });
115
+ });
116
+ describe("activateHashTarget", () => {
117
+ it("pushes hash and opens a dialog", () => {
118
+ const { showModal } = createDialog("dlg");
119
+ (0, hash_link_1.activateHashTarget)("dlg");
120
+ expect(pushStateSpy).toHaveBeenCalledWith(null, "", "#dlg");
121
+ expect(showModal).toHaveBeenCalled();
122
+ });
123
+ it("no-ops for non-activatable elements", () => {
124
+ const div = document.createElement("div");
125
+ div.id = "section";
126
+ document.body.appendChild(div);
127
+ (0, hash_link_1.activateHashTarget)("section");
128
+ expect(pushStateSpy).not.toHaveBeenCalled();
129
+ });
130
+ it("no-ops when element is already open", () => {
131
+ const { dialog } = createDialog("dlg");
132
+ dialog.setAttribute("open", "");
133
+ (0, hash_link_1.activateHashTarget)("dlg");
134
+ expect(pushStateSpy).not.toHaveBeenCalled();
135
+ });
136
+ });
137
+ describe("click listener (invoker buttons)", () => {
138
+ it("pushes hash on show-modal button click", () => {
139
+ createDialog("dlg");
140
+ const button = createInvokerButton("show-modal", "dlg");
141
+ (0, hash_link_1.setupHashLink)();
142
+ button.click();
143
+ expect(pushStateSpy).toHaveBeenCalledWith(null, "", "#dlg");
144
+ });
145
+ it("pushes hash on show-popover button click", () => {
146
+ const div = document.createElement("div");
147
+ div.id = "pop";
148
+ div.setAttribute("popover", "");
149
+ document.body.appendChild(div);
150
+ const button = createInvokerButton("show-popover", "pop");
151
+ (0, hash_link_1.setupHashLink)();
152
+ button.click();
153
+ expect(pushStateSpy).toHaveBeenCalledWith(null, "", "#pop");
154
+ });
155
+ it("pushes hash on toggle-popover when element is closed", () => {
156
+ const div = document.createElement("div");
157
+ div.id = "pop";
158
+ div.setAttribute("popover", "");
159
+ document.body.appendChild(div);
160
+ const button = createInvokerButton("toggle-popover", "pop");
161
+ (0, hash_link_1.setupHashLink)();
162
+ button.click();
163
+ expect(pushStateSpy).toHaveBeenCalledWith(null, "", "#pop");
164
+ });
165
+ it("does not push hash for close command", () => {
166
+ createDialog("dlg");
167
+ const button = createInvokerButton("close", "dlg");
168
+ (0, hash_link_1.setupHashLink)();
169
+ button.click();
170
+ expect(pushStateSpy).not.toHaveBeenCalledWith(expect.anything(), expect.anything(), "#dlg");
171
+ });
172
+ it("does not push hash on disabled button", () => {
173
+ createDialog("dlg");
174
+ const button = createInvokerButton("show-modal", "dlg");
175
+ button.disabled = true;
176
+ (0, hash_link_1.setupHashLink)();
177
+ button.click();
178
+ expect(pushStateSpy).not.toHaveBeenCalledWith(expect.anything(), expect.anything(), "#dlg");
179
+ });
180
+ it("does not push duplicate hash", () => {
181
+ createDialog("dlg");
182
+ const button = createInvokerButton("show-modal", "dlg");
183
+ history.replaceState(null, "", "#dlg");
184
+ (0, hash_link_1.setupHashLink)();
185
+ pushStateSpy.mockClear();
186
+ button.click();
187
+ expect(pushStateSpy).not.toHaveBeenCalled();
188
+ });
189
+ it("does not push hash for non-activatable targets", () => {
190
+ const div = document.createElement("div");
191
+ div.id = "section";
192
+ document.body.appendChild(div);
193
+ const button = createInvokerButton("show-modal", "section");
194
+ (0, hash_link_1.setupHashLink)();
195
+ button.click();
196
+ expect(pushStateSpy).not.toHaveBeenCalledWith(expect.anything(), expect.anything(), "#section");
197
+ });
198
+ });
199
+ describe("close event listener", () => {
200
+ it("clears hash when dialog closes and hash matches", () => {
201
+ const { dialog } = createDialog("dlg");
202
+ dialog.setAttribute("open", "");
203
+ history.replaceState(null, "", "#dlg");
204
+ (0, hash_link_1.setupHashLink)();
205
+ replaceStateSpy.mockClear();
206
+ dialog.dispatchEvent(new Event("close"));
207
+ expect(replaceStateSpy).toHaveBeenCalledWith(null, "", location.pathname + location.search);
208
+ });
209
+ it("does not clear hash when hash does not match closing dialog", () => {
210
+ const { dialog } = createDialog("dlg");
211
+ dialog.setAttribute("open", "");
212
+ history.replaceState(null, "", "#other");
213
+ (0, hash_link_1.setupHashLink)();
214
+ replaceStateSpy.mockClear();
215
+ dialog.dispatchEvent(new Event("close"));
216
+ expect(replaceStateSpy).not.toHaveBeenCalled();
217
+ });
218
+ it("does not clear hash for non-activatable elements", () => {
219
+ const div = document.createElement("div");
220
+ div.id = "section";
221
+ document.body.appendChild(div);
222
+ history.replaceState(null, "", "#section");
223
+ (0, hash_link_1.setupHashLink)();
224
+ replaceStateSpy.mockClear();
225
+ div.dispatchEvent(new Event("close"));
226
+ expect(replaceStateSpy).not.toHaveBeenCalled();
227
+ });
228
+ });
229
+ describe("toggle event listener", () => {
230
+ it("pushes hash when details opens", () => {
231
+ const details = createDetails("faq");
232
+ (0, hash_link_1.setupHashLink)();
233
+ details.open = true;
234
+ details.dispatchEvent(new Event("toggle"));
235
+ expect(pushStateSpy).toHaveBeenCalledWith(null, "", "#faq");
236
+ });
237
+ it("clears hash when details closes", () => {
238
+ const details = createDetails("faq");
239
+ history.replaceState(null, "", "#faq");
240
+ (0, hash_link_1.setupHashLink)();
241
+ replaceStateSpy.mockClear();
242
+ details.open = false;
243
+ details.dispatchEvent(new Event("toggle"));
244
+ expect(replaceStateSpy).toHaveBeenCalledWith(null, "", location.pathname + location.search);
245
+ });
246
+ it("does not push hash when details opens but hash already matches", () => {
247
+ const details = createDetails("faq");
248
+ history.replaceState(null, "", "#faq");
249
+ (0, hash_link_1.setupHashLink)();
250
+ pushStateSpy.mockClear();
251
+ details.open = true;
252
+ details.dispatchEvent(new Event("toggle"));
253
+ expect(pushStateSpy).not.toHaveBeenCalled();
254
+ });
255
+ it("pushes hash when popover opens via toggle event", () => {
256
+ const div = document.createElement("div");
257
+ div.id = "pop";
258
+ div.setAttribute("popover", "");
259
+ div.matches = (sel) => {
260
+ if (sel === ":popover-open")
261
+ return true;
262
+ return Element.prototype.matches.call(div, sel);
263
+ };
264
+ document.body.appendChild(div);
265
+ (0, hash_link_1.setupHashLink)();
266
+ div.dispatchEvent(new Event("toggle"));
267
+ expect(pushStateSpy).toHaveBeenCalledWith(null, "", "#pop");
268
+ });
269
+ it("clears hash when popover closes via toggle event", () => {
270
+ const div = document.createElement("div");
271
+ div.id = "pop";
272
+ div.setAttribute("popover", "");
273
+ document.body.appendChild(div);
274
+ history.replaceState(null, "", "#pop");
275
+ (0, hash_link_1.setupHashLink)();
276
+ replaceStateSpy.mockClear();
277
+ div.dispatchEvent(new Event("toggle"));
278
+ expect(replaceStateSpy).toHaveBeenCalledWith(null, "", location.pathname + location.search);
279
+ });
280
+ });
281
+ describe("popstate reconciliation", () => {
282
+ it("closes open dialog when hash changes away", () => {
283
+ const { dialog, close } = createDialog("dlg");
284
+ dialog.setAttribute("open", "");
285
+ (0, hash_link_1.setupHashLink)();
286
+ history.replaceState(null, "", location.pathname);
287
+ window.dispatchEvent(new PopStateEvent("popstate"));
288
+ expect(close).toHaveBeenCalled();
289
+ });
290
+ it("opens dialog when hash changes to match", () => {
291
+ const { showModal } = createDialog("dlg");
292
+ (0, hash_link_1.setupHashLink)();
293
+ history.replaceState(null, "", "#dlg");
294
+ window.dispatchEvent(new PopStateEvent("popstate"));
295
+ expect(showModal).toHaveBeenCalled();
296
+ });
297
+ it("self-guards: close event during popstate does not call replaceState", () => {
298
+ const { dialog, close } = createDialog("dlg");
299
+ dialog.setAttribute("open", "");
300
+ history.replaceState(null, "", "#dlg");
301
+ (0, hash_link_1.setupHashLink)();
302
+ replaceStateSpy.mockClear();
303
+ history.replaceState(null, "", location.pathname);
304
+ window.dispatchEvent(new PopStateEvent("popstate"));
305
+ expect(close).toHaveBeenCalled();
306
+ expect(replaceStateSpy).toHaveBeenCalledTimes(1);
307
+ });
308
+ it("does not close open details when hash changes away", () => {
309
+ const details = createDetails("faq");
310
+ details.open = true;
311
+ history.replaceState(null, "", "#faq");
312
+ (0, hash_link_1.setupHashLink)();
313
+ history.replaceState(null, "", location.pathname);
314
+ window.dispatchEvent(new PopStateEvent("popstate"));
315
+ expect(details.open).toBe(true);
316
+ });
317
+ });
318
+ describe("teardown", () => {
319
+ it("removes all listeners", () => {
320
+ createDialog("dlg");
321
+ const button = createInvokerButton("show-modal", "dlg");
322
+ (0, hash_link_1.setupHashLink)();
323
+ (0, hash_link_1.teardownHashLink)();
324
+ pushStateSpy.mockClear();
325
+ button.click();
326
+ expect(pushStateSpy).not.toHaveBeenCalled();
327
+ });
328
+ it("is idempotent", () => {
329
+ (0, hash_link_1.setupHashLink)();
330
+ (0, hash_link_1.teardownHashLink)();
331
+ (0, hash_link_1.teardownHashLink)();
332
+ });
333
+ });
334
+ describe("setup", () => {
335
+ it("calls openFromHash on setup", () => {
336
+ history.replaceState(null, "", "#dlg");
337
+ const { showModal } = createDialog("dlg");
338
+ (0, hash_link_1.setupHashLink)();
339
+ expect(showModal).toHaveBeenCalled();
340
+ });
341
+ it("is idempotent", () => {
342
+ history.replaceState(null, "", "#dlg");
343
+ const { showModal } = createDialog("dlg");
344
+ (0, hash_link_1.setupHashLink)();
345
+ (0, hash_link_1.setupHashLink)();
346
+ expect(showModal).toHaveBeenCalledTimes(1);
347
+ });
348
+ });
349
+ });
350
+ //# sourceMappingURL=hash-link.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash-link.test.js","sourceRoot":"","sources":["../../tests/hash-link.test.ts"],"names":[],"mappings":"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"}
@@ -164,7 +164,7 @@ describe("setupInvokerPolyfill", () => {
164
164
  expect(showModal).not.toHaveBeenCalled();
165
165
  // commandForElement cleanup is handled by afterEach
166
166
  });
167
- it("ignores unknown commands", () => {
167
+ it("ignores popover commands on dialog targets", () => {
168
168
  const dialog = document.createElement("dialog");
169
169
  dialog.id = "test-dialog";
170
170
  const { showModal, close } = mockDialogMethods(dialog);
@@ -178,5 +178,87 @@ describe("setupInvokerPolyfill", () => {
178
178
  expect(showModal).not.toHaveBeenCalled();
179
179
  expect(close).not.toHaveBeenCalled();
180
180
  });
181
+ it("ignores dialog commands on popover targets", () => {
182
+ const div = document.createElement("div");
183
+ div.id = "test-popover";
184
+ div.setAttribute("popover", "");
185
+ const showPopover = jest.fn();
186
+ div.showPopover = showPopover;
187
+ document.body.appendChild(div);
188
+ const button = document.createElement("button");
189
+ button.setAttribute("command", "show-modal");
190
+ button.setAttribute("commandfor", "test-popover");
191
+ document.body.appendChild(button);
192
+ (0, invoker_polyfill_1.setupInvokerPolyfill)();
193
+ button.click();
194
+ expect(showPopover).not.toHaveBeenCalled();
195
+ });
196
+ describe("popover commands", () => {
197
+ function mockPopoverMethods(el) {
198
+ const showPopover = jest.fn();
199
+ const hidePopover = jest.fn();
200
+ const togglePopover = jest.fn();
201
+ el.showPopover = showPopover;
202
+ el.hidePopover = hidePopover;
203
+ el.togglePopover = togglePopover;
204
+ return { showPopover, hidePopover, togglePopover };
205
+ }
206
+ it("show-popover calls showPopover on target", () => {
207
+ const div = document.createElement("div");
208
+ div.id = "my-popover";
209
+ div.setAttribute("popover", "");
210
+ const { showPopover } = mockPopoverMethods(div);
211
+ document.body.appendChild(div);
212
+ const button = document.createElement("button");
213
+ button.setAttribute("command", "show-popover");
214
+ button.setAttribute("commandfor", "my-popover");
215
+ document.body.appendChild(button);
216
+ (0, invoker_polyfill_1.setupInvokerPolyfill)();
217
+ button.click();
218
+ expect(showPopover).toHaveBeenCalled();
219
+ });
220
+ it("hide-popover calls hidePopover on target", () => {
221
+ const div = document.createElement("div");
222
+ div.id = "my-popover";
223
+ div.setAttribute("popover", "");
224
+ const { hidePopover } = mockPopoverMethods(div);
225
+ document.body.appendChild(div);
226
+ const button = document.createElement("button");
227
+ button.setAttribute("command", "hide-popover");
228
+ button.setAttribute("commandfor", "my-popover");
229
+ document.body.appendChild(button);
230
+ (0, invoker_polyfill_1.setupInvokerPolyfill)();
231
+ button.click();
232
+ expect(hidePopover).toHaveBeenCalled();
233
+ });
234
+ it("toggle-popover calls togglePopover on target", () => {
235
+ const div = document.createElement("div");
236
+ div.id = "my-popover";
237
+ div.setAttribute("popover", "");
238
+ const { togglePopover } = mockPopoverMethods(div);
239
+ document.body.appendChild(div);
240
+ const button = document.createElement("button");
241
+ button.setAttribute("command", "toggle-popover");
242
+ button.setAttribute("commandfor", "my-popover");
243
+ document.body.appendChild(button);
244
+ (0, invoker_polyfill_1.setupInvokerPolyfill)();
245
+ button.click();
246
+ expect(togglePopover).toHaveBeenCalled();
247
+ });
248
+ it("ignores popover commands on elements without popover attribute", () => {
249
+ const div = document.createElement("div");
250
+ div.id = "not-a-popover";
251
+ const showPopover = jest.fn();
252
+ div.showPopover = showPopover;
253
+ document.body.appendChild(div);
254
+ const button = document.createElement("button");
255
+ button.setAttribute("command", "show-popover");
256
+ button.setAttribute("commandfor", "not-a-popover");
257
+ document.body.appendChild(button);
258
+ (0, invoker_polyfill_1.setupInvokerPolyfill)();
259
+ button.click();
260
+ expect(showPopover).not.toHaveBeenCalled();
261
+ });
262
+ });
181
263
  });
182
264
  //# sourceMappingURL=invoker-polyfill.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoker-polyfill.test.js","sourceRoot":"","sources":["../../tests/invoker-polyfill.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invoker-polyfill.test.js","sourceRoot":"","sources":["../../tests/invoker-polyfill.test.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,15 @@
1
1
  /**
2
- * lvt-preserve attribute tests.
2
+ * lvt-ignore / lvt-ignore-attrs attribute tests.
3
3
  *
4
- * lvt-preserve tells the morphdom diff engine "don't touch this element".
5
- * It's the generic escape hatch for interactive elements whose state
6
- * lives on the client side — <details open>, <dialog open>, checkbox
7
- * state, scroll positions, third-party widgets, etc. Without it, any
8
- * server-driven update that doesn't include the client-managed state
9
- * clobbers it on the next diff cycle.
4
+ * lvt-ignore tells the morphdom diff engine "skip this element entirely".
5
+ * lvt-ignore-attrs skips attribute diffing but still diffs children.
6
+ *
7
+ * Both are checked on fromEl (the live DOM), so they're usable by both
8
+ * server templates and client JS. Use data-lvt-force-update to bypass.
10
9
  *
11
10
  * Equivalent attributes in other frameworks:
12
11
  * - Phoenix LiveView: phx-update="ignore"
13
12
  * - Hotwire Turbo: data-turbo-permanent
14
- * - HTMX: hx-preserve="true"
15
13
  */
16
14
  export {};
17
15
  //# sourceMappingURL=preserve.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"preserve.test.d.ts","sourceRoot":"","sources":["../../tests/preserve.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG"}
1
+ {"version":3,"file":"preserve.test.d.ts","sourceRoot":"","sources":["../../tests/preserve.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}