@substrate-system/blur-hash 0.0.26 → 0.0.29

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.d.ts CHANGED
@@ -18,372 +18,10 @@ export type ImgAttrs = {
18
18
  loading?: 'lazy' | 'eager' | 'auto' | null;
19
19
  };
20
20
  declare const BlurHash_base: {
21
- new (): {
22
- NAME: string;
23
- render(): void;
24
- attributeChangedCallback(name: string, oldValue: string, newValue: string): Promise<void>;
25
- connectedCallback(): void;
26
- qs<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
27
- qs<E extends Element = Element>(selector: string): E | null;
28
- qsa<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
29
- qsa<E extends Element = Element>(selector: string): E | null;
30
- emit<T = any>(type: string, opts?: Partial<{
31
- bubbles: boolean;
32
- cancelable: boolean;
33
- detail: CustomEvent<T>["detail"];
34
- }>): boolean;
35
- dispatch<T>(type: string, opts?: Partial<{
36
- bubbles: boolean;
37
- cancelable: boolean;
38
- detail: CustomEvent<T>["detail"];
39
- }>): boolean;
40
- accessKey: string;
41
- readonly accessKeyLabel: string;
42
- autocapitalize: string;
43
- dir: string;
44
- draggable: boolean;
45
- hidden: boolean;
46
- inert: boolean;
47
- innerText: string;
48
- lang: string;
49
- readonly offsetHeight: number;
50
- readonly offsetLeft: number;
51
- readonly offsetParent: Element | null;
52
- readonly offsetTop: number;
53
- readonly offsetWidth: number;
54
- outerText: string;
55
- popover: string | null;
56
- spellcheck: boolean;
57
- title: string;
58
- translate: boolean;
59
- writingSuggestions: string;
60
- attachInternals(): ElementInternals;
61
- click(): void;
62
- hidePopover(): void;
63
- showPopover(): void;
64
- togglePopover(options?: boolean): boolean;
65
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
66
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
67
- removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
68
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
69
- readonly attributes: NamedNodeMap;
70
- get classList(): DOMTokenList;
71
- set classList(value: string): any;
72
- className: string;
73
- readonly clientHeight: number;
74
- readonly clientLeft: number;
75
- readonly clientTop: number;
76
- readonly clientWidth: number;
77
- readonly currentCSSZoom: number;
78
- id: string;
79
- innerHTML: string;
80
- readonly localName: string;
81
- readonly namespaceURI: string | null;
82
- onfullscreenchange: ((this: Element, ev: Event) => any) | null;
83
- onfullscreenerror: ((this: Element, ev: Event) => any) | null;
84
- outerHTML: string;
85
- readonly ownerDocument: Document;
86
- get part(): DOMTokenList;
87
- set part(value: string): any;
88
- readonly prefix: string | null;
89
- readonly scrollHeight: number;
90
- scrollLeft: number;
91
- scrollTop: number;
92
- readonly scrollWidth: number;
93
- readonly shadowRoot: ShadowRoot | null;
94
- slot: string;
95
- readonly tagName: string;
96
- attachShadow(init: ShadowRootInit): ShadowRoot;
97
- checkVisibility(options?: CheckVisibilityOptions): boolean;
98
- closest<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | null;
99
- closest<K extends keyof SVGElementTagNameMap>(selector: K): SVGElementTagNameMap[K] | null;
100
- closest<K extends keyof MathMLElementTagNameMap>(selector: K): MathMLElementTagNameMap[K] | null;
101
- closest<E extends Element = Element>(selectors: string): E | null;
102
- computedStyleMap(): StylePropertyMapReadOnly;
103
- getAttribute(qualifiedName: string): string | null;
104
- getAttributeNS(namespace: string | null, localName: string): string | null;
105
- getAttributeNames(): string[];
106
- getAttributeNode(qualifiedName: string): Attr | null;
107
- getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
108
- getBoundingClientRect(): DOMRect;
109
- getClientRects(): DOMRectList;
110
- getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
111
- getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
112
- getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
113
- getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
114
- getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
115
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
116
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
117
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
118
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<MathMLElement>;
119
- getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
120
- getHTML(options?: GetHTMLOptions): string;
121
- hasAttribute(qualifiedName: string): boolean;
122
- hasAttributeNS(namespace: string | null, localName: string): boolean;
123
- hasAttributes(): boolean;
124
- hasPointerCapture(pointerId: number): boolean;
125
- insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
126
- insertAdjacentHTML(position: InsertPosition, string: string): void;
127
- insertAdjacentText(where: InsertPosition, data: string): void;
128
- matches(selectors: string): boolean;
129
- releasePointerCapture(pointerId: number): void;
130
- removeAttribute(qualifiedName: string): void;
131
- removeAttributeNS(namespace: string | null, localName: string): void;
132
- removeAttributeNode(attr: Attr): Attr;
133
- requestFullscreen(options?: FullscreenOptions): Promise<void>;
134
- requestPointerLock(options?: PointerLockOptions): Promise<void>;
135
- scroll(options?: ScrollToOptions): void;
136
- scroll(x: number, y: number): void;
137
- scrollBy(options?: ScrollToOptions): void;
138
- scrollBy(x: number, y: number): void;
139
- scrollIntoView(arg?: boolean | ScrollIntoViewOptions): void;
140
- scrollTo(options?: ScrollToOptions): void;
141
- scrollTo(x: number, y: number): void;
142
- setAttribute(qualifiedName: string, value: string): void;
143
- setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
144
- setAttributeNode(attr: Attr): Attr | null;
145
- setAttributeNodeNS(attr: Attr): Attr | null;
146
- setHTMLUnsafe(html: string): void;
147
- setPointerCapture(pointerId: number): void;
148
- toggleAttribute(qualifiedName: string, force?: boolean): boolean;
149
- webkitMatchesSelector(selectors: string): boolean;
150
- readonly baseURI: string;
151
- readonly childNodes: NodeListOf<ChildNode>;
152
- readonly firstChild: ChildNode | null;
153
- readonly isConnected: boolean;
154
- readonly lastChild: ChildNode | null;
155
- readonly nextSibling: ChildNode | null;
156
- readonly nodeName: string;
157
- readonly nodeType: number;
158
- nodeValue: string | null;
159
- readonly parentElement: HTMLElement | null;
160
- readonly parentNode: ParentNode | null;
161
- readonly previousSibling: ChildNode | null;
162
- textContent: string | null;
163
- appendChild<T extends Node>(node: T): T;
164
- cloneNode(subtree?: boolean): Node;
165
- compareDocumentPosition(other: Node): number;
166
- contains(other: Node | null): boolean;
167
- getRootNode(options?: GetRootNodeOptions): Node;
168
- hasChildNodes(): boolean;
169
- insertBefore<T extends Node>(node: T, child: Node | null): T;
170
- isDefaultNamespace(namespace: string | null): boolean;
171
- isEqualNode(otherNode: Node | null): boolean;
172
- isSameNode(otherNode: Node | null): boolean;
173
- lookupNamespaceURI(prefix: string | null): string | null;
174
- lookupPrefix(namespace: string | null): string | null;
175
- normalize(): void;
176
- removeChild<T extends Node>(child: T): T;
177
- replaceChild<T extends Node>(node: Node, child: T): T;
178
- readonly ELEMENT_NODE: 1;
179
- readonly ATTRIBUTE_NODE: 2;
180
- readonly TEXT_NODE: 3;
181
- readonly CDATA_SECTION_NODE: 4;
182
- readonly ENTITY_REFERENCE_NODE: 5;
183
- readonly ENTITY_NODE: 6;
184
- readonly PROCESSING_INSTRUCTION_NODE: 7;
185
- readonly COMMENT_NODE: 8;
186
- readonly DOCUMENT_NODE: 9;
187
- readonly DOCUMENT_TYPE_NODE: 10;
188
- readonly DOCUMENT_FRAGMENT_NODE: 11;
189
- readonly NOTATION_NODE: 12;
190
- readonly DOCUMENT_POSITION_DISCONNECTED: 1;
191
- readonly DOCUMENT_POSITION_PRECEDING: 2;
192
- readonly DOCUMENT_POSITION_FOLLOWING: 4;
193
- readonly DOCUMENT_POSITION_CONTAINS: 8;
194
- readonly DOCUMENT_POSITION_CONTAINED_BY: 16;
195
- readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 32;
196
- dispatchEvent(event: Event): boolean;
197
- dispatchEvent(event: Event): boolean;
198
- ariaAtomic: string | null;
199
- ariaAutoComplete: string | null;
200
- ariaBrailleLabel: string | null;
201
- ariaBrailleRoleDescription: string | null;
202
- ariaBusy: string | null;
203
- ariaChecked: string | null;
204
- ariaColCount: string | null;
205
- ariaColIndex: string | null;
206
- ariaColIndexText: string | null;
207
- ariaColSpan: string | null;
208
- ariaCurrent: string | null;
209
- ariaDescription: string | null;
210
- ariaDisabled: string | null;
211
- ariaExpanded: string | null;
212
- ariaHasPopup: string | null;
213
- ariaHidden: string | null;
214
- ariaInvalid: string | null;
215
- ariaKeyShortcuts: string | null;
216
- ariaLabel: string | null;
217
- ariaLevel: string | null;
218
- ariaLive: string | null;
219
- ariaModal: string | null;
220
- ariaMultiLine: string | null;
221
- ariaMultiSelectable: string | null;
222
- ariaOrientation: string | null;
223
- ariaPlaceholder: string | null;
224
- ariaPosInSet: string | null;
225
- ariaPressed: string | null;
226
- ariaReadOnly: string | null;
227
- ariaRelevant: string | null;
228
- ariaRequired: string | null;
229
- ariaRoleDescription: string | null;
230
- ariaRowCount: string | null;
231
- ariaRowIndex: string | null;
232
- ariaRowIndexText: string | null;
233
- ariaRowSpan: string | null;
234
- ariaSelected: string | null;
235
- ariaSetSize: string | null;
236
- ariaSort: string | null;
237
- ariaValueMax: string | null;
238
- ariaValueMin: string | null;
239
- ariaValueNow: string | null;
240
- ariaValueText: string | null;
241
- role: string | null;
242
- animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions): Animation;
243
- getAnimations(options?: GetAnimationsOptions): Animation[];
244
- after(...nodes: (Node | string)[]): void;
245
- before(...nodes: (Node | string)[]): void;
246
- remove(): void;
247
- replaceWith(...nodes: (Node | string)[]): void;
248
- readonly nextElementSibling: Element | null;
249
- readonly previousElementSibling: Element | null;
250
- readonly childElementCount: number;
251
- readonly children: HTMLCollection;
252
- readonly firstElementChild: Element | null;
253
- readonly lastElementChild: Element | null;
254
- append(...nodes: (Node | string)[]): void;
255
- prepend(...nodes: (Node | string)[]): void;
256
- querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
257
- querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
258
- querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
259
- querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;
260
- querySelector<E extends Element = Element>(selectors: string): E | null;
261
- querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
262
- querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
263
- querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
264
- querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;
265
- querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
266
- replaceChildren(...nodes: (Node | string)[]): void;
267
- readonly assignedSlot: HTMLSlotElement | null;
268
- readonly attributeStyleMap: StylePropertyMap;
269
- get style(): CSSStyleDeclaration;
270
- set style(cssText: string): any;
271
- contentEditable: string;
272
- enterKeyHint: string;
273
- inputMode: string;
274
- readonly isContentEditable: boolean;
275
- onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
276
- onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
277
- onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
278
- onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
279
- onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
280
- onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
281
- onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null;
282
- onbeforetoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
283
- onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
284
- oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null;
285
- oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
286
- oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
287
- onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
288
- onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
289
- onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
290
- oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null;
291
- oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
292
- oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null;
293
- oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
294
- oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
295
- oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
296
- ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
297
- ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
298
- ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
299
- ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
300
- ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
301
- ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
302
- ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
303
- ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
304
- ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
305
- onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
306
- onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
307
- onerror: OnErrorEventHandler;
308
- onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
309
- onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
310
- ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
311
- oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
312
- oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
313
- onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
314
- onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
315
- onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
316
- onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
317
- onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
318
- onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
319
- onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
320
- onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
321
- onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
322
- onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
323
- onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
324
- onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
325
- onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
326
- onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
327
- onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
328
- onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null;
329
- onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
330
- onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
331
- onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
332
- onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
333
- onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
334
- onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
335
- onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
336
- onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
337
- onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
338
- onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
339
- onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
340
- onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null;
341
- onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
342
- onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
343
- onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
344
- onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
345
- onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
346
- onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
347
- onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
348
- onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
349
- onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
350
- onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
351
- onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
352
- onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
353
- onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
354
- onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
355
- onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
356
- ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
357
- ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
358
- ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
359
- ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
360
- ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
361
- ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
362
- ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
363
- ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
364
- ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
365
- ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
366
- onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
367
- onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
368
- onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
369
- onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
370
- onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
371
- onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
372
- onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
373
- autofocus: boolean;
374
- readonly dataset: DOMStringMap;
375
- nonce?: string;
376
- tabIndex: number;
377
- blur(): void;
378
- focus(options?: FocusOptions): void;
379
- };
380
- NAME: string;
381
- create(elementName: string): any;
382
- define<T extends {
383
- new (...args: any[]): WebComponent;
384
- NAME: string;
385
- }>(this: T): void;
386
- event(evType: string): string;
21
+ new (...args: any[]): WebComponent;
22
+ TAG: string;
23
+ define: typeof WebComponent.define;
24
+ event: typeof WebComponent.event;
387
25
  };
388
26
  export declare class BlurHash extends BlurHash_base {
389
27
  time: number;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAK9D,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,WAAW,EAAE,QAAQ,CAAA;KACxB;CACJ;AAED,MAAM,MAAM,QAAQ,GAAG;IACnB,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,MAAM,GAAC,MAAM,CAAC;IACpB,MAAM,EAAC,MAAM,GAAC,MAAM,CAAC;IACrB,WAAW,EAAC,MAAM,CAAC;IACnB,GAAG,EAAC,MAAM,CAAC;IACX,MAAM,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;IACpB,KAAK,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;IACnB,IAAI,CAAC,EAAC,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAC,SAAS,GAAC,MAAM,GAAC,QAAQ,GAAC,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,IAAI,CAAC;IACrC,OAAO,CAAC,EAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,IAAI,CAAC;CACvC,CAAA;;;;;;;;;;;wCA8BgB,CAAC;;;;;sCAKD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BA8BF,CAAZ;gJAOoB,CAAC;4FAEQ,CAAC;mJAGgB,CAAC;+FAO3C,CAAN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BAgC4E,CAAC;;;;;;;;;;;;;;;;;;;;;;;uBAGsjE,CAAC,EAAC,cAAe;;;;;;;;;;;;;iCAAg0B,CAAC;kCAA2E,CAAC,EAAC,kBAAmB;sBAA4C,CAAC;;wBAAsG,CAAC;;0BAA0G,CAAC;wBAAsE,CAAC;;;;;;;;oDAAmgB,CAAC;;;;;;;;;;;;;;;;yBAAwwB,CAAC;;;2BAA8J,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gFAAu4G,CAAC;6BAAkF,CAAC;cAAwD,GAAG;eAAoD,GAAG;;oBAAqF,GAAG;;;;;;;eAAwX,GAAG;gBAAqD,GAAG;;;;;;;;;;;wBAAmsC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAA4tO,CAAC;kBAAiG,CAAC;mBAAkG,CAAC;oBAAmG,CAAC;;;;;;;;;;;;;;aAA+oC,CAAC;;;qBAA2F,CAAC;;;;;aAAyJ,GAAG;;;;;AArHr9lB,qBAAa,QAAS,SAAQ,aAAgC;IAC1D,IAAI,EAAC,MAAM,CAAA;;IAgBX;;;OAGG;IACH,KAAK,CAAE,KAAK,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;QACpD,KAAK,CAAC,EAAC,MAAM,GAAC,MAAM,CAAC;QACrB,MAAM,CAAC,EAAC,MAAM,GAAC,MAAM,CAAC;KACzB,CAAC,GAAE,IAAI;IAgCR,OAAO;IAaP,iBAAiB;IAuBjB,MAAM,CAAC,IAAI,CAAE,KAAK,EAAC,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAC,MAAM,CAAA;KAAE;IAIjD;;OAEG;IACH,MAAM,IAAI,MAAM;CAiBnB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAA;AAK9D,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,WAAW,EAAE,QAAQ,CAAA;KACxB;CACJ;AAED,MAAM,MAAM,QAAQ,GAAG;IACnB,GAAG,EAAC,MAAM,CAAC;IACX,KAAK,EAAC,MAAM,GAAC,MAAM,CAAC;IACpB,MAAM,EAAC,MAAM,GAAC,MAAM,CAAC;IACrB,WAAW,EAAC,MAAM,CAAC;IACnB,GAAG,EAAC,MAAM,CAAC;IACX,MAAM,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;IACpB,KAAK,CAAC,EAAC,MAAM,GAAC,IAAI,CAAC;IACnB,IAAI,CAAC,EAAC,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAC,SAAS,GAAC,MAAM,GAAC,QAAQ,GAAC,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,IAAI,CAAC;IACrC,OAAO,CAAC,EAAC,MAAM,GAAC,OAAO,GAAC,MAAM,GAAC,IAAI,CAAC;CACvC,CAAA;;;;mBAGG,aAAS,MAEX;kBACM,aACA,KAAD;;AALP,qBAAa,QAAS,SAAQ,aAAgC;IAC1D,IAAI,EAAC,MAAM,CAAA;;IAgBX;;;OAGG;IACH,KAAK,CAAE,KAAK,EAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG;QACpD,KAAK,CAAC,EAAC,MAAM,GAAC,MAAM,CAAC;QACrB,MAAM,CAAC,EAAC,MAAM,GAAC,MAAM,CAAC;KACzB,CAAC,GAAE,IAAI;IAgCR,OAAO;IAaP,iBAAiB;IAuBjB,MAAM,CAAC,IAAI,CAAE,KAAK,EAAC,QAAQ,GAAG;QAAE,OAAO,CAAC,EAAC,MAAM,CAAA;KAAE;IAIjD;;OAEG;IACH,MAAM,IAAI,MAAM;CAiBnB"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
  import { WebComponent } from "@substrate-system/web-component";
4
4
  import { decode } from "blurhash";
5
- import { html } from "./ssr.js";
5
+ import { render } from "./html.js";
6
6
  class BlurHash extends WebComponent.create("blur-hash") {
7
7
  static {
8
8
  __name(this, "BlurHash");
@@ -76,7 +76,7 @@ class BlurHash extends WebComponent.create("blur-hash") {
76
76
  this.sharpen();
77
77
  }
78
78
  static html(attrs) {
79
- return html(attrs);
79
+ return render(attrs);
80
80
  }
81
81
  /**
82
82
  * Use the attributes to create HTML.
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts"],
4
- "sourcesContent": ["import { WebComponent } from '@substrate-system/web-component'\nimport { decode } from 'blurhash'\nimport { html } from './ssr.js'\n\n// for docuement.querySelector\ndeclare global {\n interface HTMLElementTagNameMap {\n 'blur-hash': BlurHash\n }\n}\n\nexport type ImgAttrs = {\n alt:string;\n width:string|number;\n height:string|number;\n placeholder:string;\n src:string;\n srcset?:string|null;\n sizes?:string|null;\n time?:number;\n contentVisibility?:'visible'|'auto'|'hidden'|null;\n decoding?:'sync'|'async'|'auto'|null;\n loading?:'lazy'|'eager'|'auto'|null;\n}\n\nexport class BlurHash extends WebComponent.create('blur-hash') {\n time:number\n\n constructor () {\n super()\n const w = this.getAttribute('width')\n const h = this.getAttribute('height')\n const time = this.getAttribute('time')\n this.time = time ? parseInt(time) : 800\n\n this.style.width = '' + w\n this.style.height = '' + h\n\n document.body.style.setProperty('--blur-hash-time',\n time ? '.' + (parseInt(time) / 1000 + 's') : '0.8s')\n }\n\n /**\n * Change the image, and do the blur-up thing again.\n * Will use the existing width & height if they are not passed in.\n */\n reset (attrs:(Omit<Omit<ImgAttrs, 'width'>, 'height'> & {\n width?:string|number;\n height?:string|number;\n })):void {\n if (attrs.width) this.style.width = '' + attrs.width\n if (attrs.height) this.style.height = '' + attrs.height\n\n const width = (attrs.width ?\n (typeof attrs.width === 'string' ? parseInt(attrs.width) : attrs.width) :\n parseInt(this.style.width))\n const height = (attrs.height ?\n (typeof attrs.height === 'string' ? parseInt(attrs.height) : attrs.height) :\n parseInt(this.style.height))\n\n this.innerHTML = BlurHash.html(Object.assign(attrs, { width, height }))\n\n const { placeholder, src: newSrc } = attrs\n\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n this.setAttribute('src', newSrc)\n this.setAttribute('placeholder', placeholder)\n\n const img = this.querySelector('img')!\n if (attrs.srcset) img.setAttribute('srcset', attrs.srcset)\n if (attrs.sizes) img.setAttribute('sizes', attrs.sizes)\n\n this.sharpen()\n }\n\n sharpen () {\n const img = this.qs('img')!\n if (img.complete && img.naturalWidth > 0) {\n img.classList.remove('blurry')\n img.classList.add('sharp')\n } else {\n img.addEventListener('load', () => {\n img.classList.remove('blurry')\n img.classList.add('sharp')\n })\n }\n }\n\n connectedCallback () {\n const width = parseInt(this.getAttribute('width') ?? '')\n const height = parseInt(this.getAttribute('height') ?? '')\n const placeholder = this.getAttribute('placeholder')\n if (!placeholder) throw new Error('Missing placeholder')\n if (!width) throw new Error('Missing width')\n if (!height) throw new Error('Missing height')\n\n // don't render again if we dont have to\n if (!this.innerHTML) {\n this.innerHTML = this.render()\n }\n\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n this.sharpen()\n }\n\n static html (attrs:ImgAttrs & { classes?:string }) {\n return html(attrs)\n }\n\n /**\n * Use the attributes to create HTML.\n */\n render ():string {\n const srcset = this.getAttribute('srcset')\n const width = this.getAttribute('width')\n const height = this.getAttribute('height')\n const time = this.getAttribute('time')\n const classes = this.classList.toString()\n const placeholder = this.getAttribute('placeholder')\n this.time = time ? parseInt(time) : 800\n const src = this.getAttribute('src')\n const alt = this.getAttribute('alt')\n if (!placeholder) throw new Error('not placeholder')\n if (!width || !height) throw new Error('not width or not height')\n if (!src) throw new Error('Not src')\n if (!alt) throw new Error('Not alt')\n\n return BlurHash.html({ classes, srcset, width, height, src, alt, placeholder })\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { WebComponent } from '@substrate-system/web-component'\nimport { decode } from 'blurhash'\nimport { render } from './html.js'\n\n// for docuement.querySelector\ndeclare global {\n interface HTMLElementTagNameMap {\n 'blur-hash': BlurHash\n }\n}\n\nexport type ImgAttrs = {\n alt:string;\n width:string|number;\n height:string|number;\n placeholder:string;\n src:string;\n srcset?:string|null;\n sizes?:string|null;\n time?:number;\n contentVisibility?:'visible'|'auto'|'hidden'|null;\n decoding?:'sync'|'async'|'auto'|null;\n loading?:'lazy'|'eager'|'auto'|null;\n}\n\nexport class BlurHash extends WebComponent.create('blur-hash') {\n time:number\n\n constructor () {\n super()\n const w = this.getAttribute('width')\n const h = this.getAttribute('height')\n const time = this.getAttribute('time')\n this.time = time ? parseInt(time) : 800\n\n this.style.width = '' + w\n this.style.height = '' + h\n\n document.body.style.setProperty('--blur-hash-time',\n time ? '.' + (parseInt(time) / 1000 + 's') : '0.8s')\n }\n\n /**\n * Change the image, and do the blur-up thing again.\n * Will use the existing width & height if they are not passed in.\n */\n reset (attrs:(Omit<Omit<ImgAttrs, 'width'>, 'height'> & {\n width?:string|number;\n height?:string|number;\n })):void {\n if (attrs.width) this.style.width = '' + attrs.width\n if (attrs.height) this.style.height = '' + attrs.height\n\n const width = (attrs.width ?\n (typeof attrs.width === 'string' ? parseInt(attrs.width) : attrs.width) :\n parseInt(this.style.width))\n const height = (attrs.height ?\n (typeof attrs.height === 'string' ? parseInt(attrs.height) : attrs.height) :\n parseInt(this.style.height))\n\n this.innerHTML = BlurHash.html(Object.assign(attrs, { width, height }))\n\n const { placeholder, src: newSrc } = attrs\n\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n this.setAttribute('src', newSrc)\n this.setAttribute('placeholder', placeholder)\n\n const img = this.querySelector('img')!\n if (attrs.srcset) img.setAttribute('srcset', attrs.srcset)\n if (attrs.sizes) img.setAttribute('sizes', attrs.sizes)\n\n this.sharpen()\n }\n\n sharpen () {\n const img = this.qs('img')!\n if (img.complete && img.naturalWidth > 0) {\n img.classList.remove('blurry')\n img.classList.add('sharp')\n } else {\n img.addEventListener('load', () => {\n img.classList.remove('blurry')\n img.classList.add('sharp')\n })\n }\n }\n\n connectedCallback () {\n const width = parseInt(this.getAttribute('width') ?? '')\n const height = parseInt(this.getAttribute('height') ?? '')\n const placeholder = this.getAttribute('placeholder')\n if (!placeholder) throw new Error('Missing placeholder')\n if (!width) throw new Error('Missing width')\n if (!height) throw new Error('Missing height')\n\n // don't render again if we dont have to\n if (!this.innerHTML) {\n this.innerHTML = this.render()\n }\n\n const pixels = decode(placeholder, width, height)\n const canvas = this.querySelector('canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d')!\n const imageData = ctx.createImageData(width, height)\n imageData.data.set(pixels)\n ctx.putImageData(imageData, 0, 0)\n\n this.sharpen()\n }\n\n static html (attrs:ImgAttrs & { classes?:string }) {\n return render(attrs)\n }\n\n /**\n * Use the attributes to create HTML.\n */\n render ():string {\n const srcset = this.getAttribute('srcset')\n const width = this.getAttribute('width')\n const height = this.getAttribute('height')\n const time = this.getAttribute('time')\n const classes = this.classList.toString()\n const placeholder = this.getAttribute('placeholder')\n this.time = time ? parseInt(time) : 800\n const src = this.getAttribute('src')\n const alt = this.getAttribute('alt')\n if (!placeholder) throw new Error('not placeholder')\n if (!width || !height) throw new Error('not width or not height')\n if (!src) throw new Error('Not src')\n if (!alt) throw new Error('Not alt')\n\n return BlurHash.html({ classes, srcset, width, height, src, alt, placeholder })\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
package/dist/index.min.js CHANGED
@@ -1,21 +1,21 @@
1
- var D=Object.defineProperty;var i=(e,t)=>D(e,"name",{value:t,configurable:!0});var R=Object.defineProperty,y=i((e,t)=>R(e,"name",{value:t,configurable:!0}),"__name"),w=class e extends window.HTMLElement{static{i(this,"WebComponent")}static{y(this,"WebComponent")}static NAME="";NAME="";static create(t){return class extends e{static NAME=t;NAME=t;render(){}}}static define(){j(this.NAME)||window.customElements.define(this.NAME,this)}async attributeChangedCallback(t,r,s){let n=this[`handleChange_${t}`];n&&await n.call(this,r,s),this.render()}connectedCallback(){this.render()}qs(t){return this.querySelector(t)}qsa(t){return this.querySelectorAll(t)}static event(t){return T(this.NAME,t)}emit(t,r={}){let s=this.NAME,n=new CustomEvent(`${s}:${t}`,{bubbles:r.bubbles===void 0?!0:r.bubbles,cancelable:r.cancelable===void 0?!0:r.cancelable,detail:r.detail});return this.dispatchEvent(n)}dispatch(t,r={}){let s=new CustomEvent(t,{bubbles:r.bubbles===void 0?!0:r.bubbles,cancelable:r.cancelable===void 0?!0:r.cancelable,detail:r.detail});return this.dispatchEvent(s)}};function T(e,t){return`${e}:${t}`}i(T,"eventName");y(T,"eventName");function j(e){return document.createElement(e).constructor!==window.HTMLElement}i(j,"isRegistered");y(j,"isRegistered");var V=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],b=i(e=>{let t=0;for(let r=0;r<e.length;r++){let s=e[r],n=V.indexOf(s);t=t*83+n}return t},"x");var A=i(e=>{let t=e/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},"f"),x=i(e=>{let t=Math.max(0,Math.min(1,e));return t<=.0031308?Math.trunc(t*12.92*255+.5):Math.trunc((1.055*Math.pow(t,.4166666666666667)-.055)*255+.5)},"h"),B=i(e=>e<0?-1:1,"F"),E=i((e,t)=>B(e)*Math.pow(Math.abs(e),t),"M"),L=class extends Error{static{i(this,"d")}constructor(e){super(e),this.name="ValidationError",this.message=e}},F=i(e=>{if(!e||e.length<6)throw new L("The blurhash string must be at least 6 characters");let t=b(e[0]),r=Math.floor(t/9)+1,s=t%9+1;if(e.length!==4+2*s*r)throw new L(`blurhash length mismatch: length is ${e.length} but it should be ${4+2*s*r}`)},"C");var W=i(e=>{let t=e>>16,r=e>>8&255,s=e&255;return[A(t),A(r),A(s)]},"z"),U=i((e,t)=>{let r=Math.floor(e/361),s=Math.floor(e/19)%19,n=e%19;return[E((r-9)/9,2)*t,E((s-9)/9,2)*t,E((n-9)/9,2)*t]},"L"),G=i((e,t,r,s)=>{F(e),s=s|1;let n=b(e[0]),c=Math.floor(n/9)+1,o=n%9+1,d=(b(e[1])+1)/166,h=new Array(o*c);for(let a=0;a<h.length;a++)if(a===0){let l=b(e.substring(2,6));h[a]=W(l)}else{let l=b(e.substring(4+a*2,6+a*2));h[a]=U(l,d*s)}let u=t*4,m=new Uint8ClampedArray(u*r);for(let a=0;a<r;a++)for(let l=0;l<t;l++){let _=0,P=0,S=0;for(let f=0;f<c;f++)for(let p=0;p<o;p++){let M=Math.cos(Math.PI*l*p/t)*Math.cos(Math.PI*a*f/r),v=h[p+f*o];_+=v[0]*M,P+=v[1]*M,S+=v[2]*M}let H=x(_),q=x(P),z=x(S);m[4*l+0+a*u]=H,m[4*l+1+a*u]=q,m[4*l+2+a*u]=z,m[4*l+3+a*u]=255}return m},"U"),$=G;var J=Object.defineProperty,K=i((e,t)=>J(e,"name",{value:t,configurable:!0}),"__name"),C=class{static{i(this,"Queue")}static{K(this,"Queue")}_inProgress=Promise.resolve();add(t){return this._inProgress=this._inProgress.then(()=>t()),this._inProgress}};var Q=Object.defineProperty,X=i((e,t)=>Q(e,"name",{value:t,configurable:!0}),"__name");function I(e){return Object.keys(e).reduce((t,r)=>{let s=e[r];return s?typeof s=="boolean"?s?(t+` ${r}`).trim():t:Array.isArray(s)?t+` ${r}="${s.join(" ")}"`:(t+` ${r}="${s}"`).trim():t},"")}i(I,"attributes");X(I,"attributes");var Y=Object.defineProperty,g=i((e,t)=>Y(e,"name",{value:t,configurable:!0}),"__name");function Z(e){return e.map(t=>t.name+(t.value===""?"":`="${t.value}"`)).join(" ")}i(Z,"attributesToString");g(Z,"attributesToString");function k(e){return new Promise(t=>{e?setTimeout(t,e):setTimeout(t,0)})}i(k,"sleep");g(k,"sleep");function tt(e){let t=new FormData(e),r={};return t.forEach((s,n)=>{if(Reflect.has(r,n)){let c=r[n];Array.isArray(c)?c.push(s):r[n]=[r[n],s]}else r[n]=s}),r}i(tt,"parseForm");g(tt,"parseForm");function et(e){return e.reduce((t,r)=>(t[r.name]=r.value||!0,t),{})}i(et,"attributesAsObject");g(et,"attributesAsObject");function rt(e){return Object.keys(e).map(t=>t+(e[t]===!0?"":`="${e[t]}"`)).join(" ")}i(rt,"objectToString");g(rt,"objectToString");function st(e,t){for(let r in t){let s=t[r];s===!1?e.removeAttribute(r):e.setAttribute(r,s===!0?"":s)}}i(st,"setAttributes");g(st,"setAttributes");function O(e){let{width:t,height:r,alt:s,contentVisibility:n,placeholder:c,decoding:o,loading:d,srcset:h,sizes:u,src:m}=e;if(!c)throw new Error("not placeholder");let a=`<canvas
1
+ var q=Object.defineProperty;var i=(r,t)=>q(r,"name",{value:t,configurable:!0});var N=Object.defineProperty,g=i((r,t)=>N(r,"name",{value:t,configurable:!0}),"__name"),v=class r extends window.HTMLElement{static{i(this,"WebComponent")}static{g(this,"WebComponent")}static TAG="";TAG="";_globalWildcardListeners=new Set;_namespacedWildcardListeners=new Set;static create(t){let e=class extends r{static{i(this,"CreatedClass")}static{g(this,"CreatedClass")}static TAG=t;TAG=t;render(){throw new Error("`render` should be implemented by children")}};return e.define=function(){return r.define.call(this)},e.event=function(s){return r.event.call(this,s)},e}static define(){W(this.TAG,this)}async attributeChangedCallback(t,e,s){let n=this[`handleChange_${t}`];n&&await n.call(this,e,s)}addEventListener(t,e,s){t===r.event.call(this,"*")?this._namespacedWildcardListeners.add({listener:e,options:s}):t==="*"?e&&this._globalWildcardListeners.add({listener:e,options:s}):super.addEventListener(t,e,s)}_notifyNamespacedWildcardListeners(t){if(this._namespacedWildcardListeners.size===0)return;let e=this.TAG;!e||!t.type.startsWith(`${e}:`)||this._namespacedWildcardListeners.forEach(({listener:s})=>{try{typeof s=="function"?s.call(this,t):s&&typeof s.handleEvent=="function"&&s.handleEvent(t)}catch(n){console.error("Error in namespaced wildcard event listener:",n)}})}_notifyGlobalWildcardListeners(t){this._globalWildcardListeners.size!==0&&this._globalWildcardListeners.forEach(({listener:e})=>{try{typeof e=="function"?e.call(this,t):e&&typeof e.handleEvent=="function"&&e.handleEvent(t)}catch(s){console.error("Error in global wildcard event listener:",s)}})}connectedCallback(){this.render()}qs(t){return this.querySelector(t)}qsa(t){return this.querySelectorAll(t)}static event(t){return P(this.TAG,t)}emit(t,e={}){if(t==="*")throw new Error('Do not emit the literal "*"');let{bubbles:s=!0,cancelable:n=!0,detail:h}=e,o=`${this.TAG}:${t}`,c=new CustomEvent(o,{bubbles:s,cancelable:n,detail:h}),l=this.dispatchEvent(c);return this._notifyNamespacedWildcardListeners(c),l}dispatchEvent(t){let e=super.dispatchEvent(t);return this._notifyGlobalWildcardListeners(t),e}dispatch(t,e={}){let s=new CustomEvent(t,{bubbles:e.bubbles===void 0?!0:e.bubbles,cancelable:e.cancelable===void 0?!0:e.cancelable,detail:e.detail});return this.dispatchEvent(s)}removeEventListener(t,e,s){if(t===r.event.call(this,"*")){if(e&&this._namespacedWildcardListeners){for(let n of this._namespacedWildcardListeners)if(n.listener===e){this._namespacedWildcardListeners.delete(n);break}}}else if(t==="*"){if(e&&this._globalWildcardListeners){for(let n of this._globalWildcardListeners)if(n.listener===e){this._globalWildcardListeners.delete(n);break}}}else super.removeEventListener(t,e,s)}};function P(r,t){return`${r}:${t}`}i(P,"eventName");g(P,"eventName");function S(r){return document.createElement(r).constructor!==window.HTMLElement}i(S,"isRegistered");g(S,"isRegistered");function W(r,t){window&&"customElements"in window&&(S(r)||window.customElements.define(r,t))}i(W,"define");g(W,"define");var R=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","#","$","%","*","+",",","-",".",":",";","=","?","@","[","]","^","_","{","|","}","~"],b=i(r=>{let t=0;for(let e=0;e<r.length;e++){let s=r[e],n=R.indexOf(s);t=t*83+n}return t},"x");var A=i(r=>{let t=r/255;return t<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)},"f"),E=i(r=>{let t=Math.max(0,Math.min(1,r));return t<=.0031308?Math.trunc(t*12.92*255+.5):Math.trunc((1.055*Math.pow(t,.4166666666666667)-.055)*255+.5)},"h"),V=i(r=>r<0?-1:1,"F"),L=i((r,t)=>V(r)*Math.pow(Math.abs(r),t),"M"),C=class extends Error{static{i(this,"d")}constructor(r){super(r),this.name="ValidationError",this.message=r}},B=i(r=>{if(!r||r.length<6)throw new C("The blurhash string must be at least 6 characters");let t=b(r[0]),e=Math.floor(t/9)+1,s=t%9+1;if(r.length!==4+2*s*e)throw new C(`blurhash length mismatch: length is ${r.length} but it should be ${4+2*s*e}`)},"C");var F=i(r=>{let t=r>>16,e=r>>8&255,s=r&255;return[A(t),A(e),A(s)]},"z"),U=i((r,t)=>{let e=Math.floor(r/361),s=Math.floor(r/19)%19,n=r%19;return[L((e-9)/9,2)*t,L((s-9)/9,2)*t,L((n-9)/9,2)*t]},"L"),J=i((r,t,e,s)=>{B(r),s=s|1;let n=b(r[0]),h=Math.floor(n/9)+1,o=n%9+1,c=(b(r[1])+1)/166,l=new Array(o*h);for(let a=0;a<l.length;a++)if(a===0){let d=b(r.substring(2,6));l[a]=F(d)}else{let d=b(r.substring(4+a*2,6+a*2));l[a]=U(d,c*s)}let u=t*4,f=new Uint8ClampedArray(u*e);for(let a=0;a<e;a++)for(let d=0;d<t;d++){let $=0,T=0,I=0;for(let p=0;p<h;p++)for(let w=0;w<o;w++){let y=Math.cos(Math.PI*d*w/t)*Math.cos(Math.PI*a*p/e),M=l[w+p*o];$+=M[0]*y,T+=M[1]*y,I+=M[2]*y}let G=E($),H=E(T),D=E(I);f[4*d+0+a*u]=G,f[4*d+1+a*u]=H,f[4*d+2+a*u]=D,f[4*d+3+a*u]=255}return f},"U"),_=J;var K=Object.defineProperty,Q=i((r,t)=>K(r,"name",{value:t,configurable:!0}),"__name"),j=class{static{i(this,"Queue")}static{Q(this,"Queue")}_inProgress=Promise.resolve();add(t){return this._inProgress=this._inProgress.then(()=>t()),this._inProgress}};var X=Object.defineProperty,Y=i((r,t)=>X(r,"name",{value:t,configurable:!0}),"__name");function x(r){return Object.keys(r).reduce((t,e)=>{let s=r[e];return s?typeof s=="boolean"?s?(t+` ${e}`).trim():t:Array.isArray(s)?t+` ${e}="${s.join(" ")}"`:(t+` ${e}="${s}"`).trim():t},"")}i(x,"attributes");Y(x,"attributes");var Z=Object.defineProperty,m=i((r,t)=>Z(r,"name",{value:t,configurable:!0}),"__name");function k(r){return r.map(t=>t.name+(t.value===""?"":`="${t.value}"`)).join(" ")}i(k,"attributesToString");m(k,"attributesToString");function tt(r){return new Promise(t=>{r?setTimeout(t,r):setTimeout(t,0)})}i(tt,"sleep");m(tt,"sleep");function et(r){let t=new FormData(r),e={};return t.forEach((s,n)=>{if(Reflect.has(e,n)){let h=e[n];Array.isArray(h)?h.push(s):e[n]=[e[n],s]}else e[n]=s}),e}i(et,"parseForm");m(et,"parseForm");function rt(r){return r.reduce((t,e)=>(t[e.name]=e.value||!0,t),{})}i(rt,"attributesAsObject");m(rt,"attributesAsObject");function st(r){return Object.keys(r).map(t=>t+(r[t]===!0?"":`="${r[t]}"`)).join(" ")}i(st,"objectToString");m(st,"objectToString");function it(r,t){for(let e in t){let s=t[e];s===!1?r.removeAttribute(e):r.setAttribute(e,s===!0?"":s)}}i(it,"setAttributes");m(it,"setAttributes");function O(r){let{width:t,height:e,alt:s,contentVisibility:n,placeholder:h,decoding:o,loading:c,srcset:l,sizes:u,src:f}=r;if(!h)throw new Error("not placeholder");let a=`<canvas
2
2
  alt="${s}"
3
3
  width=${t}
4
- height=${r}
4
+ height=${e}
5
5
  class="blurry"
6
6
  width=${t}
7
- height=${r}
7
+ height=${e}
8
8
  ></canvas>
9
9
 
10
10
  <img class="blurry"
11
11
  alt="${s}"
12
12
  content-visibility="${n||"auto"}"
13
13
  decoding="${o||"async"}"
14
- loading="${d||"lazy"}"
15
- ${h?`srcset="${h}"`:""}
14
+ loading="${c||"lazy"}"
15
+ ${l?`srcset="${l}"`:""}
16
16
  ${u?`sizes="${u}"`:""}
17
- src="${m}"
18
- />`,l=I(e);return typeof window>"u"?`<blur-hash ${l}>
17
+ src="${f}"
18
+ />`,d=x(r);return typeof window>"u"?`<blur-hash ${d}>
19
19
  ${a}
20
- </blur-hash>`:a}i(O,"html");var N=class e extends w.create("blur-hash"){static{i(this,"BlurHash")}time;constructor(){super();let t=this.getAttribute("width"),r=this.getAttribute("height"),s=this.getAttribute("time");this.time=s?parseInt(s):800,this.style.width=""+t,this.style.height=""+r,document.body.style.setProperty("--blur-hash-time",s?"."+(parseInt(s)/1e3+"s"):"0.8s")}reset(t){t.width&&(this.style.width=""+t.width),t.height&&(this.style.height=""+t.height);let r=t.width?typeof t.width=="string"?parseInt(t.width):t.width:parseInt(this.style.width),s=t.height?typeof t.height=="string"?parseInt(t.height):t.height:parseInt(this.style.height);this.innerHTML=e.html(Object.assign(t,{width:r,height:s}));let{placeholder:n,src:c}=t,o=$(n,r,s),h=this.querySelector("canvas").getContext("2d"),u=h.createImageData(r,s);u.data.set(o),h.putImageData(u,0,0),this.setAttribute("src",c),this.setAttribute("placeholder",n);let m=this.querySelector("img");t.srcset&&m.setAttribute("srcset",t.srcset),t.sizes&&m.setAttribute("sizes",t.sizes),this.sharpen()}sharpen(){let t=this.qs("img");t.complete&&t.naturalWidth>0?(t.classList.remove("blurry"),t.classList.add("sharp")):t.addEventListener("load",()=>{t.classList.remove("blurry"),t.classList.add("sharp")})}connectedCallback(){let t=parseInt(this.getAttribute("width")??""),r=parseInt(this.getAttribute("height")??""),s=this.getAttribute("placeholder");if(!s)throw new Error("Missing placeholder");if(!t)throw new Error("Missing width");if(!r)throw new Error("Missing height");this.innerHTML||(this.innerHTML=this.render());let n=$(s,t,r),o=this.querySelector("canvas").getContext("2d"),d=o.createImageData(t,r);d.data.set(n),o.putImageData(d,0,0),this.sharpen()}static html(t){return O(t)}render(){let t=this.getAttribute("srcset"),r=this.getAttribute("width"),s=this.getAttribute("height"),n=this.getAttribute("time"),c=this.classList.toString(),o=this.getAttribute("placeholder");this.time=n?parseInt(n):800;let d=this.getAttribute("src"),h=this.getAttribute("alt");if(!o)throw new Error("not placeholder");if(!r||!s)throw new Error("not width or not height");if(!d)throw new Error("Not src");if(!h)throw new Error("Not alt");return e.html({classes:c,srcset:t,width:r,height:s,src:d,alt:h,placeholder:o})}};export{N as BlurHash};
20
+ </blur-hash>`:a}i(O,"render");var z=class r extends v.create("blur-hash"){static{i(this,"BlurHash")}time;constructor(){super();let t=this.getAttribute("width"),e=this.getAttribute("height"),s=this.getAttribute("time");this.time=s?parseInt(s):800,this.style.width=""+t,this.style.height=""+e,document.body.style.setProperty("--blur-hash-time",s?"."+(parseInt(s)/1e3+"s"):"0.8s")}reset(t){t.width&&(this.style.width=""+t.width),t.height&&(this.style.height=""+t.height);let e=t.width?typeof t.width=="string"?parseInt(t.width):t.width:parseInt(this.style.width),s=t.height?typeof t.height=="string"?parseInt(t.height):t.height:parseInt(this.style.height);this.innerHTML=r.html(Object.assign(t,{width:e,height:s}));let{placeholder:n,src:h}=t,o=_(n,e,s),l=this.querySelector("canvas").getContext("2d"),u=l.createImageData(e,s);u.data.set(o),l.putImageData(u,0,0),this.setAttribute("src",h),this.setAttribute("placeholder",n);let f=this.querySelector("img");t.srcset&&f.setAttribute("srcset",t.srcset),t.sizes&&f.setAttribute("sizes",t.sizes),this.sharpen()}sharpen(){let t=this.qs("img");t.complete&&t.naturalWidth>0?(t.classList.remove("blurry"),t.classList.add("sharp")):t.addEventListener("load",()=>{t.classList.remove("blurry"),t.classList.add("sharp")})}connectedCallback(){let t=parseInt(this.getAttribute("width")??""),e=parseInt(this.getAttribute("height")??""),s=this.getAttribute("placeholder");if(!s)throw new Error("Missing placeholder");if(!t)throw new Error("Missing width");if(!e)throw new Error("Missing height");this.innerHTML||(this.innerHTML=this.render());let n=_(s,t,e),o=this.querySelector("canvas").getContext("2d"),c=o.createImageData(t,e);c.data.set(n),o.putImageData(c,0,0),this.sharpen()}static html(t){return O(t)}render(){let t=this.getAttribute("srcset"),e=this.getAttribute("width"),s=this.getAttribute("height"),n=this.getAttribute("time"),h=this.classList.toString(),o=this.getAttribute("placeholder");this.time=n?parseInt(n):800;let c=this.getAttribute("src"),l=this.getAttribute("alt");if(!o)throw new Error("not placeholder");if(!e||!s)throw new Error("not width or not height");if(!c)throw new Error("Not src");if(!l)throw new Error("Not alt");return r.html({classes:h,srcset:t,width:e,height:s,src:c,alt:l,placeholder:o})}};export{z as BlurHash};
21
21
  //# sourceMappingURL=index.min.js.map