@trunkjs/browser-utils 1.0.24 → 1.0.25

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 CHANGED
@@ -1,3 +1,7 @@
1
+ ## 1.0.25 (2026-01-22)
2
+
3
+ This was a version bump only for browser-utils to align it with other projects, there were no code changes.
4
+
1
5
  ## 1.0.24 (2025-12-23)
2
6
 
3
7
  This was a version bump only for browser-utils to align it with other projects, there were no code changes.
package/index.d.ts CHANGED
@@ -8,3 +8,4 @@ export * from './lib/wait-for';
8
8
  export * from './mixins/BreakPointMixin';
9
9
  export * from './mixins/EventBindingsMixin';
10
10
  export * from './mixins/LoggingMixin';
11
+ export * from './mixins/SlotVisibilityMixin';
package/index.js CHANGED
@@ -1,52 +1,52 @@
1
1
  var A = Object.defineProperty;
2
- var p = (t) => {
2
+ var L = (t) => {
3
3
  throw TypeError(t);
4
4
  };
5
- var C = (t, e, n) => e in t ? A(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
6
- var d = (t, e, n) => C(t, typeof e != "symbol" ? e + "" : e, n), w = (t, e, n) => e.has(t) || p("Cannot " + n);
7
- var a = (t, e, n) => (w(t, e, "read from private field"), n ? n.call(t) : e.get(t)), m = (t, e, n) => e.has(t) ? p("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), c = (t, e, n, i) => (w(t, e, "write to private field"), i ? i.call(t, n) : e.set(t, n), n), L = (t, e, n) => (w(t, e, "access private method"), n);
8
- const f = [
5
+ var $ = (t, e, n) => e in t ? A(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
6
+ var l = (t, e, n) => $(t, typeof e != "symbol" ? e + "" : e, n), y = (t, e, n) => e.has(t) || L("Cannot " + n);
7
+ var u = (t, e, n) => (y(t, e, "read from private field"), n ? n.call(t) : e.get(t)), c = (t, e, n) => e.has(t) ? L("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), g = (t, e, n, i) => (y(t, e, "write to private field"), i ? i.call(t, n) : e.set(t, n), n), w = (t, e, n) => (y(t, e, "access private method"), n);
8
+ const b = [
9
9
  { name: "xs", minWidth: 0 },
10
10
  { name: "sm", minWidth: 576 },
11
11
  { name: "md", minWidth: 768 },
12
12
  { name: "lg", minWidth: 992 },
13
13
  { name: "xl", minWidth: 1200 },
14
14
  { name: "xxl", minWidth: 1400 }
15
- ], y = f.reduce(
15
+ ], T = b.reduce(
16
16
  (t, e) => (t[e.name] = e.minWidth, t),
17
17
  {}
18
18
  );
19
19
  function v(t) {
20
- if (!(t in y))
20
+ if (!(t in T))
21
21
  throw new Error(`Unknown breakpoint: ${t}`);
22
- return y[t];
22
+ return T[t];
23
23
  }
24
- function D(t) {
24
+ function R(t) {
25
25
  t === void 0 && (t = window.innerWidth);
26
- for (let e = f.length - 1; e >= 0; e--)
27
- if (t >= f[e].minWidth)
28
- return f[e].name;
26
+ for (let e = b.length - 1; e >= 0; e--)
27
+ if (t >= b[e].minWidth)
28
+ return b[e].name;
29
29
  return "xs";
30
30
  }
31
- function S(t, e = {}, n = []) {
31
+ function O(t, e = {}, n = []) {
32
32
  Array.isArray(n) || (n = [n]);
33
33
  const i = document.createElement(t);
34
- for (const r in e)
35
- e[r] !== null && e[r] !== void 0 && i.setAttribute(r, e[r] !== !0 ? e[r] : "");
36
- for (const r of n)
37
- i.append(typeof r == "string" ? document.createTextNode(r) : r);
34
+ for (const s in e)
35
+ e[s] !== null && e[s] !== void 0 && i.setAttribute(s, e[s] !== !0 ? e[s] : "");
36
+ for (const s of n)
37
+ i.append(typeof s == "string" ? document.createTextNode(s) : s);
38
38
  return i;
39
39
  }
40
- class T {
40
+ class k {
41
41
  /**
42
42
  *
43
43
  * @param delay Debounce delay in milliseconds
44
44
  * @param max_delay Maximum delay in milliseconds, if false then no maximum delay is applied
45
45
  */
46
46
  constructor(e, n = !1) {
47
- d(this, "timeout", null);
48
- d(this, "startTimeWithMs", 0);
49
- d(this, "maxTimeout", null);
47
+ l(this, "timeout", null);
48
+ l(this, "startTimeWithMs", 0);
49
+ l(this, "maxTimeout", null);
50
50
  this.delay = e, this.max_delay = n;
51
51
  }
52
52
  async wait() {
@@ -63,25 +63,25 @@ class T {
63
63
  this.timeout && (clearTimeout(this.timeout), this.timeout = null), this.maxTimeout && (clearTimeout(this.maxTimeout), this.maxTimeout = null), this.startTimeWithMs = 0, e();
64
64
  };
65
65
  if (this.timeout && clearTimeout(this.timeout), this.timeout = setTimeout(i, this.delay), this.max_delay !== !1 && !this.maxTimeout) {
66
- const r = n - this.startTimeWithMs, o = Math.max(0, this.max_delay - r);
67
- this.maxTimeout = setTimeout(i, o);
66
+ const s = n - this.startTimeWithMs, a = Math.max(0, this.max_delay - s);
67
+ this.maxTimeout = setTimeout(i, a);
68
68
  }
69
69
  }
70
70
  }
71
- function U(t, e = !1) {
71
+ function F(t, e = !1) {
72
72
  const n = /* @__PURE__ */ new WeakMap();
73
- return function(i, r) {
74
- if (r.kind !== "method") return i;
75
- const o = r.name;
76
- return function(...l) {
77
- let s = n.get(this);
78
- s || (s = /* @__PURE__ */ new Map(), n.set(this, s));
79
- let u = s.get(o);
80
- u || (u = new T(t, e), s.set(o, u)), u.debounce(() => i.apply(this, l));
73
+ return function(i, s) {
74
+ if (s.kind !== "method") return i;
75
+ const a = s.name;
76
+ return function(...m) {
77
+ let r = n.get(this);
78
+ r || (r = /* @__PURE__ */ new Map(), n.set(this, r));
79
+ let o = r.get(a);
80
+ o || (o = new k(t, e), r.set(a, o)), o.debounce(() => i.apply(this, m));
81
81
  };
82
82
  };
83
83
  }
84
- function F(t) {
84
+ function V(t) {
85
85
  if (typeof t.lineNumber == "number")
86
86
  return {
87
87
  file: t.fileName || t.sourceURL,
@@ -96,14 +96,14 @@ function F(t) {
96
96
  };
97
97
  const n = String(t.stack || t.message || "").split(`
98
98
  `), i = /(.*?)(?:\(|@)?(.*?):(\d+):(\d+)\)?$/;
99
- for (const r of n) {
100
- const o = r.match(i);
101
- if (o)
102
- return { file: o[2], line: +o[3], column: +o[4] };
99
+ for (const s of n) {
100
+ const a = s.match(i);
101
+ if (a)
102
+ return { file: a[2], line: +a[3], column: +a[4] };
103
103
  }
104
104
  return { file: t.fileName || t.sourceURL };
105
105
  }
106
- class $ {
106
+ class B {
107
107
  constructor(e, n, i = "main") {
108
108
  this._debug = e, this.myElementId = n, this.instanceId = i;
109
109
  }
@@ -123,11 +123,11 @@ class $ {
123
123
  }
124
124
  class H {
125
125
  constructor(e, n = !0) {
126
- d(this, "label");
127
- d(this, "last");
128
- d(this, "startTime");
129
- d(this, "running", !1);
130
- d(this, "enabled");
126
+ l(this, "label");
127
+ l(this, "last");
128
+ l(this, "startTime");
129
+ l(this, "running", !1);
130
+ l(this, "enabled");
131
131
  this.label = e, this.enabled = n, this.startTime = this.last = performance.now(), this.running = !0;
132
132
  }
133
133
  lap(e = "") {
@@ -151,28 +151,28 @@ class H {
151
151
  return this.running;
152
152
  }
153
153
  }
154
- function O(t, e, n) {
155
- return new Promise((i, r) => {
156
- const o = (l) => {
157
- t.removeEventListener(e, o, n), i(l);
154
+ function z(t, e, n) {
155
+ return new Promise((i, s) => {
156
+ const a = (m) => {
157
+ t.removeEventListener(e, a, n), i(m);
158
158
  };
159
- t.addEventListener(e, o, n);
159
+ t.addEventListener(e, a, n);
160
160
  });
161
161
  }
162
- function B() {
162
+ function N() {
163
163
  return document.readyState === "loading" ? new Promise((t) => {
164
164
  document.addEventListener("DOMContentLoaded", () => t());
165
165
  }) : Promise.resolve();
166
166
  }
167
- function V(t = window) {
167
+ function G(t = window) {
168
168
  return t || (t = window), t === window ? document.readyState === "complete" ? Promise.resolve() : new Promise((e) => window.addEventListener("load", () => e(), { once: !0 })) : t instanceof HTMLImageElement ? t.complete && t.naturalWidth !== 0 ? Promise.resolve() : new Promise((e, n) => {
169
169
  t.addEventListener("load", () => e(), { once: !0 }), t.addEventListener("error", () => n(new Error("image error")), { once: !0 });
170
170
  }) : t instanceof HTMLMediaElement ? t.readyState >= HTMLMediaElement.HAVE_FUTURE_DATA ? Promise.resolve() : new Promise((e) => t.addEventListener("loadeddata", () => e(), { once: !0 })) : new Promise((e) => t.addEventListener("load", () => e(), { once: !0 }));
171
171
  }
172
- function z(t) {
172
+ function j(t) {
173
173
  return new Promise((e) => setTimeout(e, t));
174
174
  }
175
- function G(t) {
175
+ function q(t) {
176
176
  return new Promise((e) => {
177
177
  const n = (i) => {
178
178
  t.removeEventListener("animationend", n), e(i);
@@ -180,139 +180,166 @@ function G(t) {
180
180
  t.addEventListener("animationend", n);
181
181
  });
182
182
  }
183
- function j(t) {
183
+ function X(t) {
184
184
  var i;
185
- const e = new T(200, 5e3);
185
+ const e = new k(200, 5e3);
186
186
  class n extends t {
187
187
  constructor() {
188
188
  super(...arguments);
189
- d(this, "currentBreakPoint", null);
190
- m(this, i, async () => {
191
- await e.wait(), await B();
192
- const l = window.innerWidth;
193
- let s = getComputedStyle(this).getPropertyValue("--breakpoint");
194
- s || (this.style.setProperty("--breakpoint", "md"), s = getComputedStyle(this).getPropertyValue("--breakpoint"));
195
- const u = D(l);
196
- this.currentBreakPoint !== u && (v(s) < v(u) ? this.setAttribute("mode", "desktop") : this.setAttribute("mode", "mobile"));
189
+ l(this, "currentBreakPoint", null);
190
+ c(this, i, async () => {
191
+ await e.wait(), await N();
192
+ const m = window.innerWidth;
193
+ let r = getComputedStyle(this).getPropertyValue("--breakpoint");
194
+ r || (this.style.setProperty("--breakpoint", "md"), r = getComputedStyle(this).getPropertyValue("--breakpoint"));
195
+ const o = R(m);
196
+ this.currentBreakPoint !== o && (v(r) < v(o) ? this.setAttribute("mode", "desktop") : this.setAttribute("mode", "mobile"));
197
197
  });
198
198
  }
199
199
  connectedCallback() {
200
- super.connectedCallback(), a(this, i).call(this), window.addEventListener("resize", a(this, i)), a(this, i).call(this);
200
+ super.connectedCallback(), u(this, i).call(this), window.addEventListener("resize", u(this, i)), u(this, i).call(this);
201
201
  }
202
202
  disconnectedCallback() {
203
- super.disconnectedCallback(), window.removeEventListener("resize", a(this, i));
203
+ super.disconnectedCallback(), window.removeEventListener("resize", u(this, i));
204
204
  }
205
205
  }
206
206
  return i = new WeakMap(), n;
207
207
  }
208
- const g = Symbol("listenerDefs"), k = Symbol("withEventBindings");
209
- function q(t, e) {
208
+ const E = Symbol("listenerDefs"), M = Symbol("withEventBindings");
209
+ function J(t, e) {
210
210
  const n = Array.isArray(t) ? t : [t];
211
- return function(i, r) {
212
- if (r.kind !== "method") throw new Error("@Listen nur für Methoden");
213
- return r.addInitializer(function() {
214
- const o = this.constructor;
215
- (o[g] || (o[g] = [])).push({
216
- method: r.name,
211
+ return function(i, s) {
212
+ if (s.kind !== "method") throw new Error("@Listen nur für Methoden");
213
+ return s.addInitializer(function() {
214
+ const a = this.constructor;
215
+ (a[E] || (a[E] = [])).push({
216
+ method: s.name,
217
217
  events: n,
218
218
  opts: e
219
219
  });
220
- }), function(...o) {
221
- if (!this[k])
220
+ }), function(...a) {
221
+ if (!this[M])
222
222
  throw new Error("[EventBindings] @Listen - decorator requires EventBindingMixin.");
223
- return i.apply(this, o);
223
+ return i.apply(this, a);
224
224
  };
225
225
  };
226
226
  }
227
- function R(t, e) {
227
+ function _(t, e) {
228
228
  var n;
229
229
  return !e || e === "host" ? t : e === "document" ? t.ownerDocument ?? document : e === "window" ? ((n = t.ownerDocument) == null ? void 0 : n.defaultView) ?? window : e === "shadowRoot" ? t.shadowRoot ?? t : typeof e == "function" ? e(t) : e;
230
230
  }
231
- function X(t) {
232
- var n, i, M;
231
+ function K(t) {
232
+ var n, i, x;
233
233
  class e extends t {
234
- constructor(...s) {
235
- super(...s);
236
- m(this, i);
237
- m(this, n);
238
- this[k] = !0;
234
+ constructor(...r) {
235
+ super(...r);
236
+ c(this, i);
237
+ c(this, n);
238
+ this[M] = !0;
239
239
  }
240
240
  connectedCallback() {
241
- var s;
242
- (s = super.connectedCallback) == null || s.call(this), L(this, i, M).call(this);
241
+ var r;
242
+ (r = super.connectedCallback) == null || r.call(this), w(this, i, x).call(this);
243
243
  }
244
244
  disconnectedCallback() {
245
- var s, u;
246
- (s = a(this, n)) == null || s.abort(), (u = super.disconnectedCallback) == null || u.call(this);
245
+ var r, o;
246
+ (r = u(this, n)) == null || r.abort(), (o = super.disconnectedCallback) == null || o.call(this);
247
247
  }
248
248
  }
249
- return n = new WeakMap(), i = new WeakSet(), M = function() {
250
- var u, b, E;
251
- (u = a(this, n)) == null || u.abort(), c(this, n, new AbortController());
252
- const s = this.constructor[g] || [];
253
- for (const h of s) {
254
- const x = R(this, (b = h.opts) == null ? void 0 : b.target), W = ((E = h.opts) == null ? void 0 : E.options) ?? {}, P = this[h.method].bind(this);
255
- for (const I of h.events)
256
- x.addEventListener(I, P, { ...W, signal: a(this, n).signal });
249
+ return n = new WeakMap(), i = new WeakSet(), x = function() {
250
+ var o, d, f;
251
+ (o = u(this, n)) == null || o.abort(), g(this, n, new AbortController());
252
+ const r = this.constructor[E] || [];
253
+ for (const h of r) {
254
+ const p = _(this, (d = h.opts) == null ? void 0 : d.target), C = ((f = h.opts) == null ? void 0 : f.options) ?? {}, I = this[h.method].bind(this);
255
+ for (const D of h.events)
256
+ p.addEventListener(D, I, { ...C, signal: u(this, n).signal });
257
257
  }
258
258
  }, e;
259
259
  }
260
- let _ = 1;
261
- function J(t) {
262
- var n, i, r;
260
+ let S = 1;
261
+ function Q(t) {
262
+ var n, i, s;
263
263
  class e extends t {
264
264
  constructor() {
265
265
  super(...arguments);
266
- m(this, n, null);
267
- m(this, i, _++);
268
- m(this, r, null);
266
+ c(this, n, null);
267
+ c(this, i, S++);
268
+ c(this, s, null);
269
269
  }
270
270
  /**
271
271
  * Clears the cached debug flag so the attribute will be checked again
272
272
  * on the next log/warn/error call.
273
273
  */
274
274
  invalidateDebugCache() {
275
- c(this, n, null);
275
+ g(this, n, null);
276
276
  }
277
277
  get _debug() {
278
- return a(this, n) !== null ? a(this, n) : (this instanceof HTMLElement && c(this, n, this.hasAttribute("debug") && !["false", "0", "off", "no"].includes(this.getAttribute("debug") || "")), a(this, n) === !0 && console.log(`[DEBUG][ID:${a(this, i)}] LoggingMixin: Debug mode is enabled for <${this.tagName}>`, this), a(this, n) ?? !1);
278
+ return u(this, n) !== null ? u(this, n) : (this instanceof HTMLElement && g(this, n, this.hasAttribute("debug") && !["false", "0", "off", "no"].includes(this.getAttribute("debug") || "")), u(this, n) === !0 && console.log(`[DEBUG][ID:${u(this, i)}] LoggingMixin: Debug mode is enabled for <${this.tagName}>`, this), u(this, n) ?? !1);
279
+ }
280
+ getLogger(r = "main") {
281
+ return u(this, s) || g(this, s, new B(this._debug, `${u(this, i)}`, r)), u(this, s);
282
+ }
283
+ log(...r) {
284
+ this.getLogger().log(...r);
279
285
  }
280
- getLogger(s = "main") {
281
- return a(this, r) || c(this, r, new $(this._debug, `${a(this, i)}`, s)), a(this, r);
286
+ warn(...r) {
287
+ this.getLogger().warn(...r);
282
288
  }
283
- log(...s) {
284
- this.getLogger().log(...s);
289
+ error(...r) {
290
+ this.getLogger().error(...r);
285
291
  }
286
- warn(...s) {
287
- this.getLogger().warn(...s);
292
+ throwError(...r) {
293
+ return this.getLogger().throwError(...r);
288
294
  }
289
- error(...s) {
290
- this.getLogger().error(...s);
295
+ }
296
+ return n = new WeakMap(), i = new WeakMap(), s = new WeakMap(), e;
297
+ }
298
+ function Y(t) {
299
+ var n, W, s, P;
300
+ class e extends t {
301
+ constructor() {
302
+ super(...arguments);
303
+ c(this, n);
304
+ c(this, s, (o) => {
305
+ const d = o.target;
306
+ d.assignedNodes({ flatten: !0 }).filter((p) => w(this, n, P).call(this, p)).length > 0 && d.classList.remove("slot-empty");
307
+ });
291
308
  }
292
- throwError(...s) {
293
- return this.getLogger().throwError(...s);
309
+ firstUpdated(o) {
310
+ var d;
311
+ (d = super.firstUpdated) == null || d.call(this, o), w(this, n, W).call(this);
294
312
  }
295
313
  }
296
- return n = new WeakMap(), i = new WeakMap(), r = new WeakMap(), e;
314
+ return n = new WeakSet(), W = function() {
315
+ var d;
316
+ const o = (d = this.shadowRoot) == null ? void 0 : d.querySelectorAll("slot");
317
+ o == null || o.forEach((f) => {
318
+ f.classList.add("slot-empty"), f.addEventListener("slotchange", (h) => u(this, s).call(this, h));
319
+ });
320
+ }, s = new WeakMap(), P = function(o) {
321
+ return o.nodeType === Node.TEXT_NODE ? (o.textContent || "").trim().length > 0 : o.nodeType === Node.ELEMENT_NODE;
322
+ }, e;
297
323
  }
298
324
  export {
299
- j as BreakPointMixin,
300
- T as Debouncer,
301
- X as EventBindingsMixin,
302
- q as Listen,
303
- $ as Logger,
304
- J as LoggingMixin,
325
+ X as BreakPointMixin,
326
+ k as Debouncer,
327
+ K as EventBindingsMixin,
328
+ J as Listen,
329
+ B as Logger,
330
+ Q as LoggingMixin,
331
+ Y as SlotVisibilityMixin,
305
332
  H as Stopwatch,
306
- y as breakpointMap,
307
- f as breakpoints,
308
- S as create_element,
309
- U as debounce,
333
+ T as breakpointMap,
334
+ b as breakpoints,
335
+ O as create_element,
336
+ F as debounce,
310
337
  v as getBreakpointMinWidth,
311
- D as getCurrentBreakpoint,
312
- F as getErrorLocation,
313
- z as sleep,
314
- O as waitFor,
315
- G as waitForAnimationEnd,
316
- B as waitForDomContentLoaded,
317
- V as waitForLoad
338
+ R as getCurrentBreakpoint,
339
+ V as getErrorLocation,
340
+ j as sleep,
341
+ z as waitFor,
342
+ q as waitForAnimationEnd,
343
+ N as waitForDomContentLoaded,
344
+ G as waitForLoad
318
345
  };
@@ -1,7 +1,7 @@
1
1
  type Constructor<T = object> = abstract new (...args: any[]) => T;
2
2
  export declare function BreakPointMixin<TBase extends Constructor<HTMLElement>>(Base: TBase): (abstract new (...args: any[]) => {
3
3
  currentBreakPoint: string | null;
4
- "__#2763@#updateBreakPoint": () => Promise<void>;
4
+ "__#2876@#updateBreakPoint": () => Promise<void>;
5
5
  connectedCallback(): void;
6
6
  disconnectedCallback(): void;
7
7
  accessKey: string;
@@ -9,9 +9,9 @@ type OneOrMany<N extends EventName> = N | readonly N[];
9
9
  type EventFromInput<I extends OneOrMany<EventName>> = I extends readonly (infer K)[] ? K extends EventName ? DocumentEventMap[K] : never : I extends EventName ? DocumentEventMap[I] : never;
10
10
  export declare function Listen<I extends OneOrMany<EventName>>(type: I, opts?: ListenOpts): <This, Fn extends (this: This, ev: EventFromInput<I>, ...args: any[]) => any>(value: Fn, context: ClassMethodDecoratorContext<This, Fn>) => Fn;
11
11
  export declare function EventBindingsMixin<TBase extends Ctor<object>>(Base: TBase): (abstract new (...a: any[]) => {
12
- "__#2764@#ac"?: AbortController;
12
+ "__#2877@#ac"?: AbortController;
13
13
  connectedCallback(): void;
14
14
  disconnectedCallback(): void;
15
- "__#2764@#bindEventListeners"(): void;
15
+ "__#2877@#bindEventListeners"(): void;
16
16
  }) & TBase;
17
17
  export {};
@@ -26,14 +26,14 @@ type Constructor<T = object> = abstract new (...args: any[]) => T;
26
26
  * <my-element debug></my-element> // enables debug logging
27
27
  */
28
28
  export declare function LoggingMixin<TBase extends Constructor<object>>(Base: TBase): (abstract new (...args: any[]) => {
29
- "__#2765@#debugCached": boolean | null;
30
- "__#2765@#myElementId": number;
29
+ "__#2878@#debugCached": boolean | null;
30
+ "__#2878@#myElementId": number;
31
31
  /**
32
32
  * Clears the cached debug flag so the attribute will be checked again
33
33
  * on the next log/warn/error call.
34
34
  */
35
35
  invalidateDebugCache(): void;
36
- "__#2765@#myLoggerInstance": Logger | null;
36
+ "__#2878@#myLoggerInstance": Logger | null;
37
37
  readonly _debug: boolean;
38
38
  getLogger(instanceId?: string): Logger;
39
39
  log(...args: any[]): void;
@@ -0,0 +1,7 @@
1
+ import { LitElement } from 'lit';
2
+ type Constructor<T = object> = abstract new (...args: any[]) => T;
3
+ export interface SlotVisibilityInterface {
4
+ firstUpdated(changedProperties: Map<string, unknown>): void;
5
+ }
6
+ export declare function SlotVisibilityMixin<TBase extends Constructor<LitElement>>(Base: TBase): TBase & Constructor<SlotVisibilityInterface>;
7
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trunkjs/browser-utils",
3
- "version": "1.0.24",
3
+ "version": "1.0.25",
4
4
  "main": "./index.js",
5
5
  "dependencies": {},
6
6
  "type": "module",