@trunkjs/browser-utils 1.0.24 → 1.0.26

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,11 @@
1
+ ## 1.0.26 (2026-01-23)
2
+
3
+ This was a version bump only for browser-utils to align it with other projects, there were no code changes.
4
+
5
+ ## 1.0.25 (2026-01-22)
6
+
7
+ This was a version bump only for browser-utils to align it with other projects, there were no code changes.
8
+
1
9
  ## 1.0.24 (2025-12-23)
2
10
 
3
11
  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
- var A = Object.defineProperty;
2
- var p = (t) => {
1
+ var D = Object.defineProperty;
2
+ var T = (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 ? D(t, e, { enumerable: !0, configurable: !0, writable: !0, value: n }) : t[e] = n;
6
+ var c = (t, e, n) => $(t, typeof e != "symbol" ? e + "" : e, n), y = (t, e, n) => e.has(t) || T("Cannot " + n);
7
+ var u = (t, e, n) => (y(t, e, "read from private field"), n ? n.call(t) : e.get(t)), m = (t, e, n) => e.has(t) ? T("Cannot add the same private member more than once") : e instanceof WeakSet ? e.add(t) : e.set(t, n), w = (t, e, n, i) => (y(t, e, "write to private field"), i ? i.call(t, n) : e.set(t, n), n), b = (t, e, n) => (y(t, e, "access private method"), n);
8
+ const p = [
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
+ ], v = p.reduce(
16
16
  (t, e) => (t[e.name] = e.minWidth, t),
17
17
  {}
18
18
  );
19
- function v(t) {
20
- if (!(t in y))
19
+ function E(t) {
20
+ if (!(t in v))
21
21
  throw new Error(`Unknown breakpoint: ${t}`);
22
- return y[t];
22
+ return v[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 = p.length - 1; e >= 0; e--)
27
+ if (t >= p[e].minWidth)
28
+ return p[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
+ c(this, "timeout", null);
48
+ c(this, "startTimeWithMs", 0);
49
+ c(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(...h) {
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, h));
81
81
  };
82
82
  };
83
83
  }
84
- function F(t) {
84
+ function H(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
  }
@@ -121,13 +121,13 @@ class $ {
121
121
  throw this.error(...e), new Error(n);
122
122
  }
123
123
  }
124
- class H {
124
+ class V {
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
+ c(this, "label");
127
+ c(this, "last");
128
+ c(this, "startTime");
129
+ c(this, "running", !1);
130
+ c(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 = (h) => {
157
+ t.removeEventListener(e, a, n), i(h);
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,167 @@ function G(t) {
180
180
  t.addEventListener("animationend", n);
181
181
  });
182
182
  }
183
- function j(t) {
184
- var i;
185
- const e = new T(200, 5e3);
186
- class n extends t {
183
+ function X(t) {
184
+ var n, i;
185
+ class e extends t {
187
186
  constructor() {
188
187
  super(...arguments);
189
- d(this, "currentBreakPoint", null);
188
+ m(this, n, new k(200, 5e3));
189
+ c(this, "currentBreakPoint", null);
190
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"));
191
+ var g;
192
+ await u(this, n).wait(), await N();
193
+ const h = window.innerWidth, r = getComputedStyle(this).getPropertyValue("--breakpoint");
194
+ if (!r || r === "")
195
+ return;
196
+ const o = r.split(","), d = o[0].trim(), f = ((g = o[1]) == null ? void 0 : g.trim()) ?? d, l = R(h);
197
+ this.currentBreakPoint !== l && (E(f) <= E(l) ? this.setAttribute("mode", "desktop") : E(d) > E(l) ? this.setAttribute("mode", "mobile") : this.setAttribute("mode", "tablet"));
197
198
  });
198
199
  }
199
200
  connectedCallback() {
200
- super.connectedCallback(), a(this, i).call(this), window.addEventListener("resize", a(this, i)), a(this, i).call(this);
201
+ super.connectedCallback(), u(this, i).call(this), window.addEventListener("resize", u(this, i)), u(this, i).call(this);
201
202
  }
202
203
  disconnectedCallback() {
203
- super.disconnectedCallback(), window.removeEventListener("resize", a(this, i));
204
+ super.disconnectedCallback(), window.removeEventListener("resize", u(this, i));
204
205
  }
205
206
  }
206
- return i = new WeakMap(), n;
207
+ return n = new WeakMap(), i = new WeakMap(), e;
207
208
  }
208
- const g = Symbol("listenerDefs"), k = Symbol("withEventBindings");
209
- function q(t, e) {
209
+ const L = Symbol("listenerDefs"), M = Symbol("withEventBindings");
210
+ function J(t, e) {
210
211
  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,
212
+ return function(i, s) {
213
+ if (s.kind !== "method") throw new Error("@Listen nur für Methoden");
214
+ return s.addInitializer(function() {
215
+ const a = this.constructor;
216
+ (a[L] || (a[L] = [])).push({
217
+ method: s.name,
217
218
  events: n,
218
219
  opts: e
219
220
  });
220
- }), function(...o) {
221
- if (!this[k])
221
+ }), function(...a) {
222
+ if (!this[M])
222
223
  throw new Error("[EventBindings] @Listen - decorator requires EventBindingMixin.");
223
- return i.apply(this, o);
224
+ return i.apply(this, a);
224
225
  };
225
226
  };
226
227
  }
227
- function R(t, e) {
228
+ function _(t, e) {
228
229
  var n;
229
230
  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
231
  }
231
- function X(t) {
232
- var n, i, M;
232
+ function K(t) {
233
+ var n, i, x;
233
234
  class e extends t {
234
- constructor(...s) {
235
- super(...s);
235
+ constructor(...r) {
236
+ super(...r);
236
237
  m(this, i);
237
238
  m(this, n);
238
- this[k] = !0;
239
+ this[M] = !0;
239
240
  }
240
241
  connectedCallback() {
241
- var s;
242
- (s = super.connectedCallback) == null || s.call(this), L(this, i, M).call(this);
242
+ var r;
243
+ (r = super.connectedCallback) == null || r.call(this), b(this, i, x).call(this);
243
244
  }
244
245
  disconnectedCallback() {
245
- var s, u;
246
- (s = a(this, n)) == null || s.abort(), (u = super.disconnectedCallback) == null || u.call(this);
246
+ var r, o;
247
+ (r = u(this, n)) == null || r.abort(), (o = super.disconnectedCallback) == null || o.call(this);
247
248
  }
248
249
  }
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 });
250
+ return n = new WeakMap(), i = new WeakSet(), x = function() {
251
+ var o, d, f;
252
+ (o = u(this, n)) == null || o.abort(), w(this, n, new AbortController());
253
+ const r = this.constructor[L] || [];
254
+ for (const l of r) {
255
+ const g = _(this, (d = l.opts) == null ? void 0 : d.target), I = ((f = l.opts) == null ? void 0 : f.options) ?? {}, C = this[l.method].bind(this);
256
+ for (const P of l.events)
257
+ g.addEventListener(P, C, { ...I, signal: u(this, n).signal });
257
258
  }
258
259
  }, e;
259
260
  }
260
- let _ = 1;
261
- function J(t) {
262
- var n, i, r;
261
+ let S = 1;
262
+ function Q(t) {
263
+ var n, i, s;
263
264
  class e extends t {
264
265
  constructor() {
265
266
  super(...arguments);
266
267
  m(this, n, null);
267
- m(this, i, _++);
268
- m(this, r, null);
268
+ m(this, i, S++);
269
+ m(this, s, null);
269
270
  }
270
271
  /**
271
272
  * Clears the cached debug flag so the attribute will be checked again
272
273
  * on the next log/warn/error call.
273
274
  */
274
275
  invalidateDebugCache() {
275
- c(this, n, null);
276
+ w(this, n, null);
276
277
  }
277
278
  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);
279
+ return u(this, n) !== null ? u(this, n) : (this instanceof HTMLElement && w(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);
280
+ }
281
+ getLogger(r = "main") {
282
+ return u(this, s) || w(this, s, new B(this._debug, `${u(this, i)}`, r)), u(this, s);
279
283
  }
280
- getLogger(s = "main") {
281
- return a(this, r) || c(this, r, new $(this._debug, `${a(this, i)}`, s)), a(this, r);
284
+ log(...r) {
285
+ this.getLogger().log(...r);
282
286
  }
283
- log(...s) {
284
- this.getLogger().log(...s);
287
+ warn(...r) {
288
+ this.getLogger().warn(...r);
285
289
  }
286
- warn(...s) {
287
- this.getLogger().warn(...s);
290
+ error(...r) {
291
+ this.getLogger().error(...r);
288
292
  }
289
- error(...s) {
290
- this.getLogger().error(...s);
293
+ throwError(...r) {
294
+ return this.getLogger().throwError(...r);
295
+ }
296
+ }
297
+ return n = new WeakMap(), i = new WeakMap(), s = new WeakMap(), e;
298
+ }
299
+ function Y(t) {
300
+ var n, A, s, W;
301
+ class e extends t {
302
+ constructor() {
303
+ super(...arguments);
304
+ m(this, n);
305
+ m(this, s, (o) => {
306
+ const d = o.target;
307
+ d.assignedNodes({ flatten: !0 }).filter((g) => b(this, n, W).call(this, g)).length > 0 && d.classList.remove("slot-empty");
308
+ });
291
309
  }
292
- throwError(...s) {
293
- return this.getLogger().throwError(...s);
310
+ firstUpdated(o) {
311
+ var d;
312
+ (d = super.firstUpdated) == null || d.call(this, o), b(this, n, A).call(this);
294
313
  }
295
314
  }
296
- return n = new WeakMap(), i = new WeakMap(), r = new WeakMap(), e;
315
+ return n = new WeakSet(), A = function() {
316
+ var d;
317
+ const o = (d = this.shadowRoot) == null ? void 0 : d.querySelectorAll("slot");
318
+ o == null || o.forEach((f) => {
319
+ f.classList.add("slot-empty"), f.addEventListener("slotchange", (l) => u(this, s).call(this, l));
320
+ });
321
+ }, s = new WeakMap(), W = function(o) {
322
+ return o.nodeType === Node.TEXT_NODE ? (o.textContent || "").trim().length > 0 : o.nodeType === Node.ELEMENT_NODE;
323
+ }, e;
297
324
  }
298
325
  export {
299
- j as BreakPointMixin,
300
- T as Debouncer,
301
- X as EventBindingsMixin,
302
- q as Listen,
303
- $ as Logger,
304
- J as LoggingMixin,
305
- H as Stopwatch,
306
- y as breakpointMap,
307
- f as breakpoints,
308
- S as create_element,
309
- U as debounce,
310
- 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
326
+ X as BreakPointMixin,
327
+ k as Debouncer,
328
+ K as EventBindingsMixin,
329
+ J as Listen,
330
+ B as Logger,
331
+ Q as LoggingMixin,
332
+ Y as SlotVisibilityMixin,
333
+ V as Stopwatch,
334
+ v as breakpointMap,
335
+ p as breakpoints,
336
+ O as create_element,
337
+ F as debounce,
338
+ E as getBreakpointMinWidth,
339
+ R as getCurrentBreakpoint,
340
+ H as getErrorLocation,
341
+ j as sleep,
342
+ z as waitFor,
343
+ q as waitForAnimationEnd,
344
+ N as waitForDomContentLoaded,
345
+ G as waitForLoad
318
346
  };
@@ -1,7 +1,9 @@
1
+ import { Debouncer } from '../lib/Debouncer';
1
2
  type Constructor<T = object> = abstract new (...args: any[]) => T;
2
3
  export declare function BreakPointMixin<TBase extends Constructor<HTMLElement>>(Base: TBase): (abstract new (...args: any[]) => {
4
+ "__#2877@#debouncer": Debouncer;
3
5
  currentBreakPoint: string | null;
4
- "__#2763@#updateBreakPoint": () => Promise<void>;
6
+ "__#2877@#updateBreakPoint": () => Promise<void>;
5
7
  connectedCallback(): void;
6
8
  disconnectedCallback(): void;
7
9
  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
+ "__#2878@#ac"?: AbortController;
13
13
  connectedCallback(): void;
14
14
  disconnectedCallback(): void;
15
- "__#2764@#bindEventListeners"(): void;
15
+ "__#2878@#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
+ "__#2879@#debugCached": boolean | null;
30
+ "__#2879@#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
+ "__#2879@#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.26",
4
4
  "main": "./index.js",
5
5
  "dependencies": {},
6
6
  "type": "module",