@sparkvault/sdk 1.8.2 → 1.8.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sparkvault.cjs.js +86 -57
- package/dist/sparkvault.cjs.js.map +1 -1
- package/dist/sparkvault.esm.js +86 -57
- package/dist/sparkvault.esm.js.map +1 -1
- package/dist/sparkvault.js +1 -1
- package/dist/sparkvault.js.map +1 -1
- package/dist/utils/dom.d.ts +11 -0
- package/package.json +1 -1
package/dist/sparkvault.cjs.js
CHANGED
|
@@ -5276,6 +5276,25 @@ class InlineContainer {
|
|
|
5276
5276
|
}
|
|
5277
5277
|
}
|
|
5278
5278
|
|
|
5279
|
+
/**
|
|
5280
|
+
* DOM Utilities
|
|
5281
|
+
*
|
|
5282
|
+
* Shared utilities for DOM operations.
|
|
5283
|
+
*/
|
|
5284
|
+
/**
|
|
5285
|
+
* Execute a callback when the DOM is ready.
|
|
5286
|
+
* If DOM is already ready, executes immediately.
|
|
5287
|
+
* Otherwise, waits for DOMContentLoaded.
|
|
5288
|
+
*/
|
|
5289
|
+
function onDomReady(callback) {
|
|
5290
|
+
if (document.readyState === 'loading') {
|
|
5291
|
+
document.addEventListener('DOMContentLoaded', callback, { once: true });
|
|
5292
|
+
}
|
|
5293
|
+
else {
|
|
5294
|
+
callback();
|
|
5295
|
+
}
|
|
5296
|
+
}
|
|
5297
|
+
|
|
5279
5298
|
/* global Element */
|
|
5280
5299
|
/**
|
|
5281
5300
|
* Identity Module
|
|
@@ -5387,7 +5406,7 @@ class IdentityModule {
|
|
|
5387
5406
|
* cleanup();
|
|
5388
5407
|
*/
|
|
5389
5408
|
attach(selector, options = {}) {
|
|
5390
|
-
|
|
5409
|
+
let observer = null;
|
|
5391
5410
|
const handleClick = async (event) => {
|
|
5392
5411
|
event.preventDefault();
|
|
5393
5412
|
try {
|
|
@@ -5404,40 +5423,45 @@ class IdentityModule {
|
|
|
5404
5423
|
// Error already handled by callbacks or will use server redirect
|
|
5405
5424
|
}
|
|
5406
5425
|
};
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
element.
|
|
5426
|
+
const attachToElements = () => {
|
|
5427
|
+
const elements = document.querySelectorAll(selector);
|
|
5428
|
+
elements.forEach((element) => {
|
|
5429
|
+
element.addEventListener('click', handleClick);
|
|
5430
|
+
this.attachedElements.set(element, () => {
|
|
5431
|
+
element.removeEventListener('click', handleClick);
|
|
5432
|
+
});
|
|
5411
5433
|
});
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
|
|
5418
|
-
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
node.removeEventListener('click', handleClick);
|
|
5422
|
-
});
|
|
5423
|
-
}
|
|
5424
|
-
// Check descendants
|
|
5425
|
-
node.querySelectorAll(selector).forEach((el) => {
|
|
5426
|
-
if (!this.attachedElements.has(el)) {
|
|
5427
|
-
el.addEventListener('click', handleClick);
|
|
5428
|
-
this.attachedElements.set(el, () => {
|
|
5429
|
-
el.removeEventListener('click', handleClick);
|
|
5434
|
+
// Watch for dynamically added elements
|
|
5435
|
+
observer = new MutationObserver((mutations) => {
|
|
5436
|
+
mutations.forEach((mutation) => {
|
|
5437
|
+
mutation.addedNodes.forEach((node) => {
|
|
5438
|
+
if (node instanceof Element) {
|
|
5439
|
+
if (node.matches(selector)) {
|
|
5440
|
+
node.addEventListener('click', handleClick);
|
|
5441
|
+
this.attachedElements.set(node, () => {
|
|
5442
|
+
node.removeEventListener('click', handleClick);
|
|
5430
5443
|
});
|
|
5431
5444
|
}
|
|
5432
|
-
|
|
5433
|
-
|
|
5445
|
+
// Check descendants
|
|
5446
|
+
node.querySelectorAll(selector).forEach((el) => {
|
|
5447
|
+
if (!this.attachedElements.has(el)) {
|
|
5448
|
+
el.addEventListener('click', handleClick);
|
|
5449
|
+
this.attachedElements.set(el, () => {
|
|
5450
|
+
el.removeEventListener('click', handleClick);
|
|
5451
|
+
});
|
|
5452
|
+
}
|
|
5453
|
+
});
|
|
5454
|
+
}
|
|
5455
|
+
});
|
|
5434
5456
|
});
|
|
5435
5457
|
});
|
|
5436
|
-
|
|
5437
|
-
|
|
5458
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
5459
|
+
};
|
|
5460
|
+
// Defer attachment until DOM is ready
|
|
5461
|
+
onDomReady(attachToElements);
|
|
5438
5462
|
// Return cleanup function
|
|
5439
5463
|
return () => {
|
|
5440
|
-
observer
|
|
5464
|
+
observer?.disconnect();
|
|
5441
5465
|
this.attachedElements.forEach((cleanup) => cleanup());
|
|
5442
5466
|
this.attachedElements.clear();
|
|
5443
5467
|
};
|
|
@@ -5695,7 +5719,7 @@ function injectUploadStyles(options) {
|
|
|
5695
5719
|
function getUploadStyles(options) {
|
|
5696
5720
|
const { backdropBlur } = options;
|
|
5697
5721
|
const enableBlur = backdropBlur !== false;
|
|
5698
|
-
// Design tokens - using light theme for upload widget (matches
|
|
5722
|
+
// Design tokens - using light theme for upload widget (matches SecureUploadPortal)
|
|
5699
5723
|
const tokens = {
|
|
5700
5724
|
// Colors
|
|
5701
5725
|
primary: '#4F46E5',
|
|
@@ -8231,7 +8255,7 @@ class VaultUploadModule {
|
|
|
8231
8255
|
if (!options.vaultId) {
|
|
8232
8256
|
throw new ValidationError('vaultId is required');
|
|
8233
8257
|
}
|
|
8234
|
-
|
|
8258
|
+
let observer = null;
|
|
8235
8259
|
const handleClick = async (event) => {
|
|
8236
8260
|
event.preventDefault();
|
|
8237
8261
|
try {
|
|
@@ -8247,40 +8271,45 @@ class VaultUploadModule {
|
|
|
8247
8271
|
// Error already handled by callbacks or will use server redirect
|
|
8248
8272
|
}
|
|
8249
8273
|
};
|
|
8250
|
-
|
|
8251
|
-
|
|
8252
|
-
|
|
8253
|
-
element.
|
|
8274
|
+
const attachToElements = () => {
|
|
8275
|
+
const elements = document.querySelectorAll(selector);
|
|
8276
|
+
elements.forEach((element) => {
|
|
8277
|
+
element.addEventListener('click', handleClick);
|
|
8278
|
+
this.attachedElements.set(element, () => {
|
|
8279
|
+
element.removeEventListener('click', handleClick);
|
|
8280
|
+
});
|
|
8254
8281
|
});
|
|
8255
|
-
|
|
8256
|
-
|
|
8257
|
-
|
|
8258
|
-
|
|
8259
|
-
|
|
8260
|
-
|
|
8261
|
-
|
|
8262
|
-
|
|
8263
|
-
|
|
8264
|
-
node.removeEventListener('click', handleClick);
|
|
8265
|
-
});
|
|
8266
|
-
}
|
|
8267
|
-
// Check descendants
|
|
8268
|
-
node.querySelectorAll(selector).forEach((el) => {
|
|
8269
|
-
if (!this.attachedElements.has(el)) {
|
|
8270
|
-
el.addEventListener('click', handleClick);
|
|
8271
|
-
this.attachedElements.set(el, () => {
|
|
8272
|
-
el.removeEventListener('click', handleClick);
|
|
8282
|
+
// Watch for dynamically added elements
|
|
8283
|
+
observer = new MutationObserver((mutations) => {
|
|
8284
|
+
mutations.forEach((mutation) => {
|
|
8285
|
+
mutation.addedNodes.forEach((node) => {
|
|
8286
|
+
if (node instanceof Element) {
|
|
8287
|
+
if (node.matches(selector)) {
|
|
8288
|
+
node.addEventListener('click', handleClick);
|
|
8289
|
+
this.attachedElements.set(node, () => {
|
|
8290
|
+
node.removeEventListener('click', handleClick);
|
|
8273
8291
|
});
|
|
8274
8292
|
}
|
|
8275
|
-
|
|
8276
|
-
|
|
8293
|
+
// Check descendants
|
|
8294
|
+
node.querySelectorAll(selector).forEach((el) => {
|
|
8295
|
+
if (!this.attachedElements.has(el)) {
|
|
8296
|
+
el.addEventListener('click', handleClick);
|
|
8297
|
+
this.attachedElements.set(el, () => {
|
|
8298
|
+
el.removeEventListener('click', handleClick);
|
|
8299
|
+
});
|
|
8300
|
+
}
|
|
8301
|
+
});
|
|
8302
|
+
}
|
|
8303
|
+
});
|
|
8277
8304
|
});
|
|
8278
8305
|
});
|
|
8279
|
-
|
|
8280
|
-
|
|
8306
|
+
observer.observe(document.body, { childList: true, subtree: true });
|
|
8307
|
+
};
|
|
8308
|
+
// Defer attachment until DOM is ready
|
|
8309
|
+
onDomReady(attachToElements);
|
|
8281
8310
|
// Return cleanup function
|
|
8282
8311
|
return () => {
|
|
8283
|
-
observer
|
|
8312
|
+
observer?.disconnect();
|
|
8284
8313
|
this.attachedElements.forEach((cleanup) => cleanup());
|
|
8285
8314
|
this.attachedElements.clear();
|
|
8286
8315
|
};
|