@t007/utils 0.0.1 → 0.0.2

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/index.cjs CHANGED
@@ -66,7 +66,7 @@ function assignEl(el, props = {}, dataset = {}, styles = {}) {
66
66
  for (const k of Object.keys(styles)) if (styles[k] !== void 0) el.style[k] = styles[k];
67
67
  }
68
68
  function loadResource(src, type = "style", { module: module2, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, attempts = 3, retryKey = false } = {}, w = window) {
69
- w.t007 ??= {}, w.t007._resourceCache ??= {};
69
+ w.t007._resourceCache ??= {};
70
70
  if (w.t007._resourceCache[src]) return w.t007._resourceCache[src];
71
71
  const existing = type === "script" ? Array.prototype.find.call(w.document.scripts, (s) => isSameURL(s.src, src)) : type === "style" ? Array.prototype.find.call(w.document.styleSheets, (s) => isSameURL(s.href, src)) : null;
72
72
  if (existing) return w.t007._resourceCache[src] = Promise.resolve(existing);
@@ -139,20 +139,20 @@ function initVScrollerator({ baseSpeed = 3, maxSpeed = 10, stepDelay = 2e3, base
139
139
  const reset = () => (accelId && clearTimeout(accelId), accelId = null, linesPerSec = baseSpeed, lastTime = null);
140
140
  return { drive, reset };
141
141
  }
142
- var _SCROLLERS = /* @__PURE__ */ new WeakMap();
143
- var _SCROLLER_R_OBSERVER = typeof window !== "undefined" ? new ResizeObserver((entries) => entries.forEach(({ target }) => _SCROLLERS.get(target)?.update())) : null;
144
- var _SCROLLER_M_OBSERVER = typeof window !== "undefined" ? new MutationObserver((entries) => {
145
- const els = /* @__PURE__ */ new Set();
146
- for (const entry of entries) {
147
- let node = entry.target instanceof Element ? entry.target : null;
148
- while (node && !_SCROLLERS.has(node)) node = node.parentElement;
149
- if (node) els.add(node);
150
- }
151
- for (const el of els) _SCROLLERS.get(el)?.update();
152
- }) : null;
153
142
  function initScrollAssist(el, { pxPerSecond = 80, assistClassName = "tmg-video-controls-scroll-assist", vertical = true, horizontal = true } = {}) {
143
+ t007._scrollers ??= /* @__PURE__ */ new WeakMap();
144
+ t007._scroller_r_observer ??= new ResizeObserver((entries) => entries.forEach(({ target }) => t007._scrollers.get(target)?.update()));
145
+ t007._scroller_m_observer ??= new MutationObserver((entries) => {
146
+ const els = /* @__PURE__ */ new Set();
147
+ for (const entry of entries) {
148
+ let node = entry.target instanceof Element ? entry.target : null;
149
+ while (node && !t007._scrollers.has(node)) node = node.parentElement;
150
+ if (node) els.add(node);
151
+ }
152
+ for (const el2 of els) t007._scrollers.get(el2)?.update();
153
+ });
154
154
  const parent = el?.parentElement;
155
- if (!parent || _SCROLLERS.has(el)) return;
155
+ if (!parent || t007._scrollers.has(el)) return;
156
156
  const assist = {};
157
157
  let scrollId = null, last = performance.now(), assistWidth = 20, assistHeight = 20;
158
158
  const update = () => {
@@ -196,22 +196,32 @@ function initScrollAssist(el, { pxPerSecond = 80, assistClassName = "tmg-video-c
196
196
  if (horizontal) ["left", "right"].forEach(addAssist);
197
197
  if (vertical) ["up", "down"].forEach(addAssist);
198
198
  el.addEventListener("scroll", update);
199
- _SCROLLER_R_OBSERVER.observe(el);
200
- _SCROLLER_M_OBSERVER.observe(el, { childList: true, subtree: true, characterData: true });
201
- _SCROLLERS.set(el, {
199
+ t007._scroller_r_observer.observe(el);
200
+ t007._scroller_m_observer.observe(el, { childList: true, subtree: true, characterData: true });
201
+ t007._scrollers.set(el, {
202
202
  update,
203
203
  destroy() {
204
204
  stop();
205
205
  el.removeEventListener("scroll", update);
206
- _SCROLLER_R_OBSERVER.unobserve(el);
207
- _SCROLLERS.delete(el);
206
+ t007._scroller_r_observer.unobserve(el);
207
+ t007._scrollers.delete(el);
208
208
  Object.values(assist).forEach((a) => a.remove());
209
209
  }
210
210
  });
211
- update();
212
- return _SCROLLERS.get(el);
211
+ return update(), t007._scrollers.get(el);
212
+ }
213
+ var removeScrollAssist = (el) => t007._scrollers.get(el)?.destroy();
214
+
215
+ // src/index.ts
216
+ if (typeof window !== "undefined") {
217
+ window.t007 ??= {};
218
+ window.T007_TOAST_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest`;
219
+ window.T007_INPUT_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest`;
220
+ window.T007_DIALOG_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest`;
221
+ window.T007_TOAST_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest/dist/style.css`;
222
+ window.T007_INPUT_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest/dist/style.css`;
223
+ window.T007_DIALOG_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest/dist/style.css`;
213
224
  }
214
- var removeScrollAssist = (el) => _SCROLLERS.get(el)?.destroy();
215
225
  // Annotate the CommonJS export names for ESM import in node:
216
226
  0 && (module.exports = {
217
227
  assignEl,
package/dist/index.d.cts CHANGED
@@ -1,11 +1,51 @@
1
+ interface ScrolleratorOptions {
2
+ baseSpeed?: number;
3
+ maxSpeed?: number;
4
+ stepDelay?: number;
5
+ baseRate?: number;
6
+ lineHeight?: number;
7
+ margin?: number;
8
+ car?: Window | HTMLElement;
9
+ }
10
+ interface Scrollerator {
11
+ drive: (clientY: number, brake?: boolean, offsetY?: number) => number;
12
+ reset: () => void;
13
+ }
14
+ declare function initVScrollerator({ baseSpeed, maxSpeed, stepDelay, baseRate, lineHeight, margin, car }?: ScrolleratorOptions): Scrollerator;
15
+ interface ScrollAssistControl {
16
+ update: () => void;
17
+ destroy: () => void;
18
+ }
19
+ interface ScrollAssistOptions {
20
+ pxPerSecond?: number;
21
+ assistClassName?: string;
22
+ vertical?: boolean;
23
+ horizontal?: boolean;
24
+ }
25
+ declare function initScrollAssist(el: HTMLElement, { pxPerSecond, assistClassName, vertical, horizontal }?: ScrollAssistOptions): ScrollAssistControl | void;
26
+ declare const removeScrollAssist: (el: HTMLElement) => void | undefined;
27
+
1
28
  declare global {
2
- interface T007Namespace {
3
- _resourceCache: Partial<Record<string, Promise<HTMLElement | void>>>;
4
- }
5
- interface Window {
6
- t007: T007Namespace;
7
- }
8
- var t007: T007Namespace;
29
+ interface T007Namespace {
30
+ _resourceCache: Partial<Record<string, Promise<HTMLElement | void>>>;
31
+ _scrollers?: WeakMap<HTMLElement, ScrollAssistControl>;
32
+ _scroller_r_observer?: ResizeObserver;
33
+ _scroller_m_observer?: MutationObserver;
34
+ }
35
+
36
+ interface Window {
37
+ t007: T007Namespace;
38
+
39
+ T007_TOAST_JS_SRC?: string;
40
+ T007_INPUT_JS_SRC?: string;
41
+ T007_DIALOG_JS_SRC?: string;
42
+
43
+ T007_TOAST_CSS_SRC?: string;
44
+ T007_INPUT_CSS_SRC?: string;
45
+ T007_DIALOG_CSS_SRC?: string;
46
+ }
47
+
48
+ var t007: T007Namespace;
9
49
  }
10
50
 
11
51
  declare function clamp(min: number | undefined, val: number, max?: number): number;
@@ -38,31 +78,4 @@ declare function bindAllMethods(owner: any): void;
38
78
  declare function guardAllMethods(owner: any, guardFn?: (fn: Function) => Function, bound?: boolean): void;
39
79
  declare function guardMethod<T extends Function>(fn: T, onError?: (e: any) => void): T;
40
80
 
41
- interface ScrolleratorOptions {
42
- baseSpeed?: number;
43
- maxSpeed?: number;
44
- stepDelay?: number;
45
- baseRate?: number;
46
- lineHeight?: number;
47
- margin?: number;
48
- car?: Window | HTMLElement;
49
- }
50
- interface Scrollerator {
51
- drive: (clientY: number, brake?: boolean, offsetY?: number) => number;
52
- reset: () => void;
53
- }
54
- declare function initVScrollerator({ baseSpeed, maxSpeed, stepDelay, baseRate, lineHeight, margin, car }?: ScrolleratorOptions): Scrollerator;
55
- interface ScrollAssistControl {
56
- update: () => void;
57
- destroy: () => void;
58
- }
59
- interface ScrollAssistOptions {
60
- pxPerSecond?: number;
61
- assistClassName?: string;
62
- vertical?: boolean;
63
- horizontal?: boolean;
64
- }
65
- declare function initScrollAssist(el: HTMLElement, { pxPerSecond, assistClassName, vertical, horizontal }?: ScrollAssistOptions): ScrollAssistControl | void;
66
- declare const removeScrollAssist: (el: HTMLElement) => void | undefined;
67
-
68
- export { type Dataset, type LoadResourceOptions, type ResourceType, type Style, assignEl, bindAllMethods, clamp, createEl, guardAllMethods, guardMethod, initScrollAssist, initVScrollerator, isSameURL, loadResource, onAllMethods, removeScrollAssist, uid };
81
+ export { type Dataset, type LoadResourceOptions, type ResourceType, type ScrollAssistControl, type Style, assignEl, bindAllMethods, clamp, createEl, guardAllMethods, guardMethod, initScrollAssist, initVScrollerator, isSameURL, loadResource, onAllMethods, removeScrollAssist, uid };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,51 @@
1
+ interface ScrolleratorOptions {
2
+ baseSpeed?: number;
3
+ maxSpeed?: number;
4
+ stepDelay?: number;
5
+ baseRate?: number;
6
+ lineHeight?: number;
7
+ margin?: number;
8
+ car?: Window | HTMLElement;
9
+ }
10
+ interface Scrollerator {
11
+ drive: (clientY: number, brake?: boolean, offsetY?: number) => number;
12
+ reset: () => void;
13
+ }
14
+ declare function initVScrollerator({ baseSpeed, maxSpeed, stepDelay, baseRate, lineHeight, margin, car }?: ScrolleratorOptions): Scrollerator;
15
+ interface ScrollAssistControl {
16
+ update: () => void;
17
+ destroy: () => void;
18
+ }
19
+ interface ScrollAssistOptions {
20
+ pxPerSecond?: number;
21
+ assistClassName?: string;
22
+ vertical?: boolean;
23
+ horizontal?: boolean;
24
+ }
25
+ declare function initScrollAssist(el: HTMLElement, { pxPerSecond, assistClassName, vertical, horizontal }?: ScrollAssistOptions): ScrollAssistControl | void;
26
+ declare const removeScrollAssist: (el: HTMLElement) => void | undefined;
27
+
1
28
  declare global {
2
- interface T007Namespace {
3
- _resourceCache: Partial<Record<string, Promise<HTMLElement | void>>>;
4
- }
5
- interface Window {
6
- t007: T007Namespace;
7
- }
8
- var t007: T007Namespace;
29
+ interface T007Namespace {
30
+ _resourceCache: Partial<Record<string, Promise<HTMLElement | void>>>;
31
+ _scrollers?: WeakMap<HTMLElement, ScrollAssistControl>;
32
+ _scroller_r_observer?: ResizeObserver;
33
+ _scroller_m_observer?: MutationObserver;
34
+ }
35
+
36
+ interface Window {
37
+ t007: T007Namespace;
38
+
39
+ T007_TOAST_JS_SRC?: string;
40
+ T007_INPUT_JS_SRC?: string;
41
+ T007_DIALOG_JS_SRC?: string;
42
+
43
+ T007_TOAST_CSS_SRC?: string;
44
+ T007_INPUT_CSS_SRC?: string;
45
+ T007_DIALOG_CSS_SRC?: string;
46
+ }
47
+
48
+ var t007: T007Namespace;
9
49
  }
10
50
 
11
51
  declare function clamp(min: number | undefined, val: number, max?: number): number;
@@ -38,31 +78,4 @@ declare function bindAllMethods(owner: any): void;
38
78
  declare function guardAllMethods(owner: any, guardFn?: (fn: Function) => Function, bound?: boolean): void;
39
79
  declare function guardMethod<T extends Function>(fn: T, onError?: (e: any) => void): T;
40
80
 
41
- interface ScrolleratorOptions {
42
- baseSpeed?: number;
43
- maxSpeed?: number;
44
- stepDelay?: number;
45
- baseRate?: number;
46
- lineHeight?: number;
47
- margin?: number;
48
- car?: Window | HTMLElement;
49
- }
50
- interface Scrollerator {
51
- drive: (clientY: number, brake?: boolean, offsetY?: number) => number;
52
- reset: () => void;
53
- }
54
- declare function initVScrollerator({ baseSpeed, maxSpeed, stepDelay, baseRate, lineHeight, margin, car }?: ScrolleratorOptions): Scrollerator;
55
- interface ScrollAssistControl {
56
- update: () => void;
57
- destroy: () => void;
58
- }
59
- interface ScrollAssistOptions {
60
- pxPerSecond?: number;
61
- assistClassName?: string;
62
- vertical?: boolean;
63
- horizontal?: boolean;
64
- }
65
- declare function initScrollAssist(el: HTMLElement, { pxPerSecond, assistClassName, vertical, horizontal }?: ScrollAssistOptions): ScrollAssistControl | void;
66
- declare const removeScrollAssist: (el: HTMLElement) => void | undefined;
67
-
68
- export { type Dataset, type LoadResourceOptions, type ResourceType, type Style, assignEl, bindAllMethods, clamp, createEl, guardAllMethods, guardMethod, initScrollAssist, initVScrollerator, isSameURL, loadResource, onAllMethods, removeScrollAssist, uid };
81
+ export { type Dataset, type LoadResourceOptions, type ResourceType, type ScrollAssistControl, type Style, assignEl, bindAllMethods, clamp, createEl, guardAllMethods, guardMethod, initScrollAssist, initVScrollerator, isSameURL, loadResource, onAllMethods, removeScrollAssist, uid };
package/dist/index.js CHANGED
@@ -28,7 +28,7 @@ function assignEl(el, props = {}, dataset = {}, styles = {}) {
28
28
  for (const k of Object.keys(styles)) if (styles[k] !== void 0) el.style[k] = styles[k];
29
29
  }
30
30
  function loadResource(src, type = "style", { module, media, crossOrigin, integrity, referrerPolicy, nonce, fetchPriority, attempts = 3, retryKey = false } = {}, w = window) {
31
- w.t007 ??= {}, w.t007._resourceCache ??= {};
31
+ w.t007._resourceCache ??= {};
32
32
  if (w.t007._resourceCache[src]) return w.t007._resourceCache[src];
33
33
  const existing = type === "script" ? Array.prototype.find.call(w.document.scripts, (s) => isSameURL(s.src, src)) : type === "style" ? Array.prototype.find.call(w.document.styleSheets, (s) => isSameURL(s.href, src)) : null;
34
34
  if (existing) return w.t007._resourceCache[src] = Promise.resolve(existing);
@@ -101,20 +101,20 @@ function initVScrollerator({ baseSpeed = 3, maxSpeed = 10, stepDelay = 2e3, base
101
101
  const reset = () => (accelId && clearTimeout(accelId), accelId = null, linesPerSec = baseSpeed, lastTime = null);
102
102
  return { drive, reset };
103
103
  }
104
- var _SCROLLERS = /* @__PURE__ */ new WeakMap();
105
- var _SCROLLER_R_OBSERVER = typeof window !== "undefined" ? new ResizeObserver((entries) => entries.forEach(({ target }) => _SCROLLERS.get(target)?.update())) : null;
106
- var _SCROLLER_M_OBSERVER = typeof window !== "undefined" ? new MutationObserver((entries) => {
107
- const els = /* @__PURE__ */ new Set();
108
- for (const entry of entries) {
109
- let node = entry.target instanceof Element ? entry.target : null;
110
- while (node && !_SCROLLERS.has(node)) node = node.parentElement;
111
- if (node) els.add(node);
112
- }
113
- for (const el of els) _SCROLLERS.get(el)?.update();
114
- }) : null;
115
104
  function initScrollAssist(el, { pxPerSecond = 80, assistClassName = "tmg-video-controls-scroll-assist", vertical = true, horizontal = true } = {}) {
105
+ t007._scrollers ??= /* @__PURE__ */ new WeakMap();
106
+ t007._scroller_r_observer ??= new ResizeObserver((entries) => entries.forEach(({ target }) => t007._scrollers.get(target)?.update()));
107
+ t007._scroller_m_observer ??= new MutationObserver((entries) => {
108
+ const els = /* @__PURE__ */ new Set();
109
+ for (const entry of entries) {
110
+ let node = entry.target instanceof Element ? entry.target : null;
111
+ while (node && !t007._scrollers.has(node)) node = node.parentElement;
112
+ if (node) els.add(node);
113
+ }
114
+ for (const el2 of els) t007._scrollers.get(el2)?.update();
115
+ });
116
116
  const parent = el?.parentElement;
117
- if (!parent || _SCROLLERS.has(el)) return;
117
+ if (!parent || t007._scrollers.has(el)) return;
118
118
  const assist = {};
119
119
  let scrollId = null, last = performance.now(), assistWidth = 20, assistHeight = 20;
120
120
  const update = () => {
@@ -158,22 +158,32 @@ function initScrollAssist(el, { pxPerSecond = 80, assistClassName = "tmg-video-c
158
158
  if (horizontal) ["left", "right"].forEach(addAssist);
159
159
  if (vertical) ["up", "down"].forEach(addAssist);
160
160
  el.addEventListener("scroll", update);
161
- _SCROLLER_R_OBSERVER.observe(el);
162
- _SCROLLER_M_OBSERVER.observe(el, { childList: true, subtree: true, characterData: true });
163
- _SCROLLERS.set(el, {
161
+ t007._scroller_r_observer.observe(el);
162
+ t007._scroller_m_observer.observe(el, { childList: true, subtree: true, characterData: true });
163
+ t007._scrollers.set(el, {
164
164
  update,
165
165
  destroy() {
166
166
  stop();
167
167
  el.removeEventListener("scroll", update);
168
- _SCROLLER_R_OBSERVER.unobserve(el);
169
- _SCROLLERS.delete(el);
168
+ t007._scroller_r_observer.unobserve(el);
169
+ t007._scrollers.delete(el);
170
170
  Object.values(assist).forEach((a) => a.remove());
171
171
  }
172
172
  });
173
- update();
174
- return _SCROLLERS.get(el);
173
+ return update(), t007._scrollers.get(el);
174
+ }
175
+ var removeScrollAssist = (el) => t007._scrollers.get(el)?.destroy();
176
+
177
+ // src/index.ts
178
+ if (typeof window !== "undefined") {
179
+ window.t007 ??= {};
180
+ window.T007_TOAST_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest`;
181
+ window.T007_INPUT_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest`;
182
+ window.T007_DIALOG_JS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest`;
183
+ window.T007_TOAST_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/toast@latest/dist/style.css`;
184
+ window.T007_INPUT_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/input@latest/dist/style.css`;
185
+ window.T007_DIALOG_CSS_SRC ??= `https://cdn.jsdelivr.net/npm/@t007/dialog@latest/dist/style.css`;
175
186
  }
176
- var removeScrollAssist = (el) => _SCROLLERS.get(el)?.destroy();
177
187
  export {
178
188
  assignEl,
179
189
  bindAllMethods,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t007/utils",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "High-performance, zero-dependency utility functions for the t007 ecosystem.",
5
5
  "author": "Oketade Oluwatobiloba <tobioketade007@gmail.com>",
6
6
  "license": "MIT",
@@ -13,6 +13,7 @@
13
13
  "type": "module",
14
14
  "main": "./dist/index.cjs",
15
15
  "module": "./dist/index.js",
16
+ "browser": "./dist/index.js",
16
17
  "types": "./dist/index.d.ts",
17
18
  "sideEffects": false,
18
19
  "exports": {