nanosplash 3.1.0 → 3.1.1

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/package.json CHANGED
@@ -1,92 +1,91 @@
1
1
  {
2
- "name": "nanosplash",
3
- "version": "3.1.0",
4
- "author": {
5
- "name": "Isak K. Hauge",
6
- "email": "isakhauge@icloud.com",
7
- "url": "https://no.linkedin.com/in/isakhauge"
8
- },
9
- "repository": {
10
- "type": "git",
11
- "url": "git+https://github.com/isakhauge/nanosplash.git"
12
- },
13
- "main": "./dist/es/ns.js",
14
- "module": "./dist/es/ns.js",
15
- "devDependencies": {
16
- "@types/jsdom": "^21.1.6",
17
- "@types/node": "^20.11.28",
18
- "@types/rollup": "^0.54.0",
19
- "@vitest/coverage-v8": "^1.4.0",
20
- "@vitest/ui": "^1.4.0",
21
- "cross-env": "^7.0.3",
22
- "eslint": "^8.57.0",
23
- "eslint-config-prettier": "^9.1.0",
24
- "eslint-plugin-prettier": "^5.1.3",
25
- "jsdom": "^24.0.0",
26
- "sass": "^1.72.0",
27
- "stylelint-prettier": "^5.0.0",
28
- "terser": "^5.29.2",
29
- "typescript": "5.4.2",
30
- "typescript-eslint": "^7.2.0",
31
- "vite": "^5.1.6",
32
- "vitepress": "1.0.0-rc.45",
33
- "vitest": "^1.4.0"
34
- },
35
- "exports": {
36
- ".": {
37
- "types": {
38
- "require": "./src/ts/types/global.d.ts",
39
- "default": "./src/ts/types/global.d.ts"
40
- },
41
- "browser": {
42
- "require": "./dist/cjs/ns.cjs",
43
- "default": "./dist/es/ns.js"
44
- },
45
- "default": {
46
- "require": "./dist/cjs/ns.cjs",
47
- "default": "./dist/es/ns.js"
48
- }
49
- }
50
- },
51
- "description": "The tiny loading screen for web artisans",
52
- "homepage": "https://isakhauge.github.io/nanosplash",
53
- "keywords": [
54
- "loading",
55
- "loader",
56
- "screen",
57
- "splash",
58
- "nano",
59
- "nanosplash",
60
- "small",
61
- "tiny",
62
- "es",
63
- "esm",
64
- "ts",
65
- "typescript",
66
- "iife",
67
- "cdn",
68
- "vite"
69
- ],
70
- "license": "MIT",
71
- "private": false,
72
- "scripts": {
73
- "build": "bun build:all && bun build:docs",
74
- "build:es": "bun x -b tsc && cross-env entry=./src/ts/Nanosplash.ts format=es bun run -b vite build -m production --c vite.config.ts",
75
- "build:cjs": "bun x -b tsc && cross-env entry=./src/ts/Nanosplash.ts format=cjs bun run -b vite build -m production --c vite.config.ts",
76
- "build:iife": "bun x -b tsc && cross-env entry=./src/ts/main.ts format=iife bun run -b vite build -m production --c vite.config.ts",
77
- "build:all": "bun build:es && bun build:cjs && bun build:iife",
78
- "build:docs": "bun docs:build",
79
- "preview": "vite preview",
80
- "test": "vitest",
81
- "test:ui": "vitest --ui",
82
- "lint": "bunx eslint src/ts/**/*.ts --fix",
83
- "coverage": "vitest --coverage",
84
- "docs:dev": "bun x vitepress dev docs",
85
- "docs:build": "bun x vitepress build docs",
86
- "docs:preview": "bun x vitepress preview docs"
87
- },
88
- "source": "./src/main.ts",
89
- "type": "module",
90
- "types": "./src/ts/types/global.d.ts",
91
- "unpkg": "./dist/iife/ns.iife.js"
92
- }
2
+ "name": "nanosplash",
3
+ "version": "3.1.1",
4
+ "author": {
5
+ "name": "Isak K. Hauge",
6
+ "email": "isakhauge@icloud.com",
7
+ "url": "https://no.linkedin.com/in/isakhauge"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "git+https://github.com/isakhauge/nanosplash.git"
12
+ },
13
+ "main": "./dist/es/ns.js",
14
+ "module": "./dist/es/ns.js",
15
+ "devDependencies": {
16
+ "@types/jsdom": "^21.1.6",
17
+ "@types/node": "^20.11.29",
18
+ "@types/rollup": "^0.54.0",
19
+ "@vitest/coverage-v8": "^1.4.0",
20
+ "@vitest/ui": "^1.4.0",
21
+ "cross-env": "^7.0.3",
22
+ "eslint": "^8.57.0",
23
+ "eslint-config-prettier": "^9.1.0",
24
+ "eslint-plugin-prettier": "^5.1.3",
25
+ "jsdom": "^24.0.0",
26
+ "sass": "^1.72.0",
27
+ "stylelint-prettier": "^5.0.0",
28
+ "typescript": "5.4.2",
29
+ "typescript-eslint": "^7.2.0",
30
+ "vite": "^5.1.6",
31
+ "vitepress": "",
32
+ "vitest": "^1.4.0"
33
+ },
34
+ "exports": {
35
+ ".": {
36
+ "types": {
37
+ "require": "./src/ts/types/global.d.ts",
38
+ "default": "./src/ts/types/global.d.ts"
39
+ },
40
+ "browser": {
41
+ "require": "./dist/cjs/ns.cjs",
42
+ "default": "./dist/es/ns.js"
43
+ },
44
+ "default": {
45
+ "require": "./dist/cjs/ns.cjs",
46
+ "default": "./dist/es/ns.js"
47
+ }
48
+ }
49
+ },
50
+ "description": "The tiny loading screen for web artisans",
51
+ "homepage": "https://isakhauge.github.io/nanosplash",
52
+ "keywords": [
53
+ "loading",
54
+ "loader",
55
+ "screen",
56
+ "splash",
57
+ "nano",
58
+ "nanosplash",
59
+ "small",
60
+ "tiny",
61
+ "es",
62
+ "esm",
63
+ "ts",
64
+ "typescript",
65
+ "iife",
66
+ "cdn",
67
+ "vite"
68
+ ],
69
+ "license": "MIT",
70
+ "private": false,
71
+ "source": "./src/main.ts",
72
+ "type": "module",
73
+ "types": "./src/ts/types/global.d.ts",
74
+ "unpkg": "./dist/iife/ns.iife.js",
75
+ "scripts": {
76
+ "build": "pnpm build:all && pnpm build:docs",
77
+ "build:es": "tsc && cross-env entry=./src/ts/Nanosplash.ts format=es vite build -m production --c vite.config.ts",
78
+ "build:cjs": "tsc && cross-env entry=./src/ts/Nanosplash.ts format=cjs vite build -m production --c vite.config.ts",
79
+ "build:iife": "tsc && cross-env entry=./src/ts/main.ts format=iife vite build -m production --c vite.config.ts",
80
+ "build:all": "pnpm build:es && pnpm build:cjs && pnpm build:iife",
81
+ "build:docs": "pnpm docs:build",
82
+ "preview": "vite preview",
83
+ "test": "vitest",
84
+ "test:ui": "vitest --ui",
85
+ "lint": "eslint src/ts/**/*.ts --fix",
86
+ "coverage": "vitest --coverage",
87
+ "docs:dev": "pnpm exec vitepress dev docs",
88
+ "docs:build": "pnpm exec vitepress build docs",
89
+ "docs:preview": "pnpm exec vitepress preview docs"
90
+ }
91
+ }
@@ -9,8 +9,9 @@ import {
9
9
  } from './types/Types'
10
10
  import { version } from '../../package.json'
11
11
 
12
- const StyleID: string = 'nscss'
13
- const b = () => document.body
12
+ const styleId: string = 'ns'
13
+ const doc: Document = document
14
+ const bod: HTMLElement = doc.body
14
15
 
15
16
  /**
16
17
  * # Scope
@@ -30,8 +31,7 @@ const scope = (node: ParentNode): ScopedSelectors =>
30
31
  * @param selector CSS selector used to match nodes in the DOM.
31
32
  * @returns An array of Element nodes.
32
33
  */
33
- const getAll = (selector: DOMSelector): Element[] =>
34
- scope(document).all(selector)
34
+ const getAll = (selector: DOMSelector): Element[] => scope(doc).all(selector)
35
35
 
36
36
  /**
37
37
  * # Get
@@ -39,13 +39,13 @@ const getAll = (selector: DOMSelector): Element[] =>
39
39
  * @returns Firs Element node from the DOM matching the selector.
40
40
  */
41
41
  const get = (selector: DOMSelector): Element | null =>
42
- scope(document).first(selector)
42
+ scope(doc).first(selector)
43
43
 
44
44
  /**
45
- * # Get All NS
45
+ * # Get All Nanosplashes
46
46
  * @returns An array of all Nanosplash elements in the DOM.
47
47
  */
48
- const getAllNS = (): NSElement[] => getAll('.ns') as NSElement[]
48
+ const getAllNs = (): NSElement[] => getAll('.ns') as NSElement[]
49
49
 
50
50
  /**
51
51
  * # Parse Ref
@@ -56,7 +56,7 @@ const parseRef = (ref: ElementReference): Element | null =>
56
56
  ref instanceof Element ? ref : get(ref)
57
57
 
58
58
  /**
59
- * # Div
59
+ * # Create HTMLDivElement
60
60
  * @param className Optional string containing class names.
61
61
  * @param children Optional list of Nodes or strings.
62
62
  * @returns The newly created HTMLDivElement.
@@ -65,10 +65,10 @@ const div = (
65
65
  className?: string,
66
66
  ...children: (Node | string)[]
67
67
  ): HTMLDivElement => {
68
- const el: HTMLDivElement = document.createElement('div')
69
- if (className) el.classList.add(className)
70
- el.append(...children)
71
- return el
68
+ const node: HTMLDivElement = doc.createElement('div')
69
+ if (className) node.classList.add(className)
70
+ node.append(...children)
71
+ return node
72
72
  }
73
73
 
74
74
  /**
@@ -77,58 +77,57 @@ const div = (
77
77
  * @returns Parsed node.
78
78
  */
79
79
  const parse = (html: string): Node => {
80
- const el: HTMLDivElement = div()
81
- el.innerHTML = html
82
- return el.firstChild as Node
80
+ const node: HTMLDivElement = div()
81
+ node.innerHTML = html
82
+ return node.firstChild as Node
83
83
  }
84
84
 
85
85
  /**
86
- * # Create NS
86
+ * # Make Nanosplash Element
87
87
  * @returns Nanpslash DOM element.
88
88
  */
89
- const createNS = (): NSElement => {
89
+ const makeNs = (): NSElement => {
90
90
  const circle: string = '<circle class=path cx=25 cy=25 r=20 fill=none />'
91
91
  const svg = parse(`<svg viewBox="0 0 50 50">${circle}</svg>`) as Element
92
- const el = div('ns', div('nst'), div('nss', svg)) as NSElement
93
- el.nsId = Date.now()
94
- return el
92
+ const node = div('ns', div('nst'), div('nss', svg)) as NSElement
93
+ node.nsId = Date.now()
94
+ return node
95
95
  }
96
96
 
97
97
  /**
98
- * # Peek
98
+ * # Peek Nanosplash Queue
99
99
  * Collect all Nanosplash elements in the DOM, sort them by their NS ID
100
100
  * in ascending order, and return the first element.
101
101
  * @returns The front of the queue.
102
102
  */
103
- const peek = (): NSElement | null =>
104
- getAllNS().sort((a: NSElement, b: NSElement) => a.nsId - b.nsId)[0] ?? null
103
+ const peekNsQueue = (): NSElement | null =>
104
+ getAllNs().sort((a: NSElement, b: NSElement) => a.nsId - b.nsId)[0] ?? null
105
105
 
106
106
  /**
107
- * # Set NS Text
107
+ * # Set Nanosplash Text
108
108
  * Replace the text node to trigger the animation which in turn is invoked
109
109
  * by the connected callback in the DOM.
110
110
  * @param ns Nanosplash element.
111
111
  * @param text Text to display adjacent to spinner.
112
112
  */
113
- const setNSText = (ns: NSElement, text: string): void => {
114
- const nsScope = scope(ns)
115
- const oldNst = nsScope.first('.nst') as Element | null
116
- if (!text) return oldNst?.remove()
117
- const newNst = div('nst', text)
118
- if (oldNst) {
119
- oldNst.replaceWith(newNst)
113
+ const setNsText = (ns: NSElement, text: string): void => {
114
+ const oldNsText = scope(ns).first('.nst') as Element | null
115
+ if (!text) return oldNsText?.remove()
116
+ const newNsText = div('nst', text)
117
+ if (oldNsText) {
118
+ oldNsText.replaceWith(newNsText)
120
119
  } else {
121
- ns.insertBefore(newNst, ns.firstChild)
120
+ ns.insertBefore(newNsText, ns.firstChild)
122
121
  }
123
122
  }
124
123
 
125
124
  /**
126
- * # Set NS Parent
125
+ * # Set Nanosplash Parent
127
126
  * Define where inside the DOM to spawn the Nansoplash.
128
127
  * @param ns Nanosplash element.
129
128
  * @param parent NS element's parent to be.
130
129
  */
131
- const setNSParent = (ns: NSElement, parent: Element): void => {
130
+ const setNsParent = (ns: NSElement, parent: Element): void => {
132
131
  const child = parent.firstElementChild
133
132
  if (child) {
134
133
  parent.insertBefore(ns, child)
@@ -138,72 +137,73 @@ const setNSParent = (ns: NSElement, parent: Element): void => {
138
137
  }
139
138
 
140
139
  /**
141
- * # Show
140
+ * # Show Nanosplash
142
141
  * @param text Text to display adjacent to spinner.
143
142
  * @param inside Selector or element in which the NS element will be spawned.
144
143
  * @returns The ID if the NS element — which is a UTC integer.
145
144
  */
146
145
  const show = (text?: string, inside?: string | Element): number | null => {
147
146
  const parent: Element | null = (
148
- inside ? parseRef(inside) : b
147
+ inside ? parseRef(inside) : bod
149
148
  ) as Element | null
150
149
  let ns: NSElement
151
- const recycledNs = scope(parent ?? b()).first('& > .ns')
150
+ const recycledNs = scope(parent ?? bod).first('& > .ns')
152
151
  if (recycledNs) {
153
152
  ns = recycledNs as NSElement
154
153
  } else {
155
- ns = createNS()
156
- setNSParent(ns, parent as Element)
154
+ ns = makeNs()
155
+ setNsParent(ns, parent as Element)
157
156
  }
158
- setNSText(ns, text ?? '')
159
- const top: string = window.scrollY + 'px'
160
- b().style.setProperty('--ns-top', top)
157
+ setNsText(ns, text ?? '')
158
+ const top: string = scrollY + 'px'
159
+ bod.style.setProperty('--ns-top', top)
161
160
  return ns.nsId
162
161
  }
163
162
 
164
163
  /**
165
- * # Delete NS
164
+ * # Remove Nanosplash
166
165
  * @param ns Nanosplash elememnt.
167
166
  */
168
- const deleteNS = (ns?: Element | null): void => {
167
+ const removeNs = (ns?: Element | null): void => {
169
168
  ns?.parentElement?.classList.remove('nsh')
170
169
  ns?.remove()
171
170
  }
172
171
 
173
172
  /**
174
- * # Find NS
173
+ * # Find Nanosplash
175
174
  * @param id The UTC integer returned from the `show` function.
176
175
  * @returns Null or the corresponding Nanosplash element.
177
176
  */
178
- const findNS = (id: number) => getAllNS().find(v => v.nsId === id) ?? null
177
+ const findNs = (id: number) => getAllNs().find(v => v.nsId === id) ?? null
179
178
 
180
179
  /**
181
- * # Hide
180
+ * # Hide Nanosplash
182
181
  * Hide agnostically in FIFO order, specifically by ID, or all by the asterisk
183
182
  * which will delete all Nanosplashes.
184
183
  * @param id Optional ID of a Nanosplash element or '*' .
185
184
  */
186
185
  const hide = (id?: number | '*'): void => {
187
- if (id === '*') getAll('.ns').forEach(deleteNS)
188
- else deleteNS(typeof id === 'number' ? findNS(id) : peek())
186
+ if (id === '*') getAll('.ns').forEach(removeNs)
187
+ else removeNs(typeof id === 'number' ? findNs(id) : peekNsQueue())
189
188
  }
190
189
 
191
190
  /**
192
- * # Add style
191
+ * # Add CSS
193
192
  */
194
- const addStyle = (): void => {
195
- get('#nscss')?.remove()
196
- b().append(parse(`<style id=${StyleID}>${style}</style>`))
193
+ const addCssToBody = (): void => {
194
+ get('#' + styleId)?.remove()
195
+ bod.append(parse(`<style id=${styleId}>${style}</style>`))
197
196
  }
198
197
 
199
198
  /**
200
- * # Use NS
199
+ * # Use Nanosplash
201
200
  * @returns Nanosplash API.
202
201
  */
203
- export const useNs = (): NanosplashInterface =>
204
- !!new Promise(addStyle) &&
205
- (window.ns = {
202
+ export const useNs = (): NanosplashInterface => {
203
+ addCssToBody()
204
+ return (window.ns = {
206
205
  show,
207
206
  hide,
208
- version: version,
207
+ version,
209
208
  })
209
+ }
@@ -1,18 +1,20 @@
1
1
  import { describe, it, test, expect, beforeEach } from 'vitest'
2
- import { useNs } from '../src/ts/Nanosplash'
3
2
  import { JSDOM } from 'jsdom'
4
3
  import { NanosplashInterface } from '../src/ts/types/NanosplashInterface'
5
4
 
5
+ let dom = new JSDOM()
6
6
  let document: Document | null = null
7
7
  let ns: NanosplashInterface | null = null
8
8
 
9
- beforeEach(() => {
10
- const dom = new JSDOM()
9
+ async function updateGlobals() {
10
+ dom = new JSDOM()
11
11
  // @ts-ignore
12
12
  globalThis.window = dom.window
13
13
  document = globalThis.document = dom.window.document
14
- ns = globalThis.window.ns = useNs()
15
- })
14
+ ns = globalThis.window.ns = (await import('../src/ts/Nanosplash')).useNs()
15
+ }
16
+
17
+ beforeEach(updateGlobals)
16
18
 
17
19
  describe('Nanosplash API', () => {
18
20
  it('should be defined', () => {
package/bun.lockb DELETED
Binary file
@@ -1,4 +0,0 @@
1
- const _localSearchIndexroot = '{"documentCount":19,"nextId":19,"documentIds":{"0":"/nanosplash/api/doc/hide.html#hide-nanosplash","1":"/nanosplash/api/doc/hide.html#hide","2":"/nanosplash/api/doc/hide.html#hide-by-id","3":"/nanosplash/api/doc/hide.html#hide-all","4":"/nanosplash/api/doc/show.html#show-nanosplash","5":"/nanosplash/api/doc/show.html#show","6":"/nanosplash/api/doc/show.html#show-inside","7":"/nanosplash/api/start/customize.html#customize","8":"/nanosplash/api/start/features.html#features","9":"/nanosplash/api/start/features.html#small-bundle-size","10":"/nanosplash/api/start/features.html#simple-2-function-api","11":"/nanosplash/api/start/features.html#spawning","12":"/nanosplash/api/start/features.html#node-recycling","13":"/nanosplash/api/start/install.html#installation","14":"/nanosplash/api/start/install.html#css","15":"/nanosplash/api/start/install.html#install-via-cdn","16":"/nanosplash/api/start/install.html#install-via-npm","17":"/nanosplash/api/start/playground.html#playground","18":"/nanosplash/api/start/usage.html#usage"},"fieldIds":{"title":0,"titles":1,"text":2},"fieldLength":{"0":[2,1,1],"1":[1,2,41],"2":[3,2,32],"3":[2,2,10],"4":[2,1,1],"5":[1,2,30],"6":[2,2,67],"7":[1,1,38],"8":[1,1,1],"9":[3,1,28],"10":[4,1,39],"11":[1,1,26],"12":[2,1,33],"13":[1,1,34],"14":[1,1,9],"15":[3,1,52],"16":[3,1,51],"17":[1,1,27],"18":[1,1,32]},"averageFieldLength":[1.8421052631578947,1.263157894736842,29.05263157894737],"storedFields":{"0":{"title":"Hide Nanosplash","titles":[]},"1":{"title":"Hide","titles":["Hide Nanosplash"]},"2":{"title":"Hide by ID","titles":["Hide Nanosplash"]},"3":{"title":"Hide all","titles":["Hide Nanosplash"]},"4":{"title":"Show Nanosplash","titles":[]},"5":{"title":"Show","titles":["Show Nanosplash"]},"6":{"title":"Show inside","titles":["Show Nanosplash"]},"7":{"title":"Customize","titles":[]},"8":{"title":"Features","titles":[]},"9":{"title":"Small bundle size","titles":["Features"]},"10":{"title":"Simple, 2 Function API","titles":["Features"]},"11":{"title":"Spawning","titles":["Features"]},"12":{"title":"Node recycling","titles":["Features"]},"13":{"title":"Installation","titles":[]},"14":{"title":"CSS","titles":["Installation"]},"15":{"title":"Install via CDN","titles":["Installation"]},"16":{"title":"Install via NPM","titles":["Installation"]},"17":{"title":"Playground","titles":[]},"18":{"title":"Usage","titles":[]}},"dirtCount":0,"index":[["quot",{"2":{"17":2}}],["play",{"2":{"17":1}}],["playground",{"0":{"17":1}}],["parent",{"2":{"12":1}}],["package",{"2":{"10":1}}],["🚀",{"2":{"15":1}}],["8",{"2":{"15":1}}],[">",{"2":{"15":3}}],["x3c",{"2":{"15":13}}],["🎉",{"2":{"14":1}}],["run",{"2":{"17":1}}],["running",{"2":{"13":1,"16":1}}],["requires",{"2":{"13":1}}],["repurpose",{"2":{"12":1}}],["recycle",{"2":{"12":1}}],["recycling",{"0":{"12":1}}],["recommend",{"2":{"1":1}}],["ref",{"2":{"6":1}}],["reference",{"2":{"6":1}}],["returns",{"2":{"2":1,"5":1,"6":1}}],["just",{"2":{"10":1}}],["jsimport",{"2":{"16":1}}],["js",{"2":{"6":1,"14":1,"15":2,"18":1}}],["jsconst",{"2":{"2":1}}],["jsns",{"2":{"1":1,"5":2}}],["utf",{"2":{"15":1}}],["unpkg",{"2":{"15":2}}],["usage",{"0":{"18":1}}],["using",{"2":{"10":1,"15":1,"16":1}}],["usens",{"2":{"16":2}}],["use",{"2":{"10":1,"12":1}}],["used",{"2":{"2":1}}],["up",{"2":{"10":1}}],["2",{"0":{"10":1}}],["2kb",{"2":{"9":1}}],["global",{"2":{"16":1}}],["gt",{"2":{"15":1}}],["getting",{"2":{"10":1}}],["get",{"2":{"10":1}}],["getelementbyid",{"2":{"6":1}}],["ground",{"2":{"10":1}}],["go",{"2":{"9":1,"10":1,"11":1}}],["gzipped",{"2":{"9":1}}],["gap",{"2":{"7":1}}],["\\t\\t",{"2":{"15":4}}],["\\t",{"2":{"15":4}}],["\\theight",{"2":{"7":1}}],["\\twidth",{"2":{"7":1}}],["\\tfont",{"2":{"7":3}}],["\\tcolor",{"2":{"7":1}}],["\\tgap",{"2":{"7":1}}],["\\tbackdrop",{"2":{"7":1}}],["\\tbackground",{"2":{"7":1}}],["via",{"0":{"15":1,"16":1},"2":{"13":3,"16":1}}],["very",{"2":{"10":1}}],["var",{"2":{"7":9}}],["void",{"2":{"1":1,"3":1}}],["data",{"2":{"18":1}}],["dropdown",{"2":{"17":1}}],["dist",{"2":{"15":2}}],["display",{"2":{"5":3,"6":1,"18":1}}],["documentation",{"2":{"11":1}}],["document",{"2":{"6":1}}],["dom",{"2":{"6":2,"11":1,"12":1}}],["does",{"2":{"6":1}}],["either",{"2":{"13":1}}],["each",{"2":{"12":1}}],["easier",{"2":{"13":1}}],["easily",{"2":{"10":1,"15":1}}],["easy",{"2":{"7":1,"10":1}}],["exhausting",{"2":{"12":1}}],["existing",{"2":{"6":1,"12":1}}],["even",{"2":{"11":1}}],["ever",{"2":{"9":1}}],["element",{"2":{"6":8,"11":1,"12":2,"18":1}}],["elements",{"2":{"1":1,"11":1,"12":3}}],["enter",{"2":{"5":2}}],["works",{"2":{"15":1,"16":1,"17":1}}],["would",{"2":{"1":1}}],["we",{"2":{"12":2}}],["weight",{"2":{"7":2,"9":1}}],["want",{"2":{"11":1}}],["was",{"2":{"10":1}}],["written",{"2":{"10":1}}],["what",{"2":{"9":1}}],["wheel",{"2":{"5":2,"18":2}}],["with",{"2":{"10":1,"11":1,"17":1,"18":1}}],["width",{"2":{"7":1}}],["will",{"2":{"5":2,"6":1,"9":1,"16":1}}],["window",{"2":{"3":1,"16":1}}],["lt",{"2":{"15":1}}],["less",{"2":{"9":1,"13":1}}],["loading",{"2":{"2":1,"5":1,"6":2,"18":5}}],["later",{"2":{"2":1}}],["=",{"2":{"2":1,"6":2,"16":1,"18":1}}],["|",{"2":{"2":1,"6":2}}],["menu",{"2":{"17":1}}],["meta",{"2":{"15":1}}],["method",{"2":{"2":1,"17":1}}],["mind",{"2":{"10":1}}],["minified",{"2":{"9":1}}],["manipulations",{"2":{"12":1}}],["main",{"2":{"7":1}}],["match",{"2":{"6":1}}],["my",{"2":{"6":2,"18":1}}],["more",{"2":{"1":1,"13":1}}],["multiple",{"2":{"1":1,"11":1}}],["fetching",{"2":{"18":1}}],["features",{"0":{"8":1},"1":{"9":1,"10":1,"11":1,"12":1}}],["flexible",{"2":{"13":1}}],["from",{"2":{"10":1,"16":1,"17":1}}],["following",{"2":{"15":1,"16":1}}],["font",{"2":{"7":1}}],["for",{"2":{"1":1,"9":1,"12":2}}],["family",{"2":{"7":1}}],["first",{"2":{"18":1}}],["filter",{"2":{"7":2}}],["fifo",{"2":{"1":1,"18":1}}],["fullscreen",{"2":{"5":1,"18":2}}],["function",{"0":{"10":1},"2":{"5":1,"6":1}}],["import",{"2":{"16":2}}],["imports",{"2":{"13":1}}],["iife",{"2":{"15":4}}],["is",{"2":{"7":1,"9":1,"10":1,"12":1,"13":2,"14":1}}],["it",{"2":{"5":2,"15":1,"16":2,"17":2}}],["its",{"2":{"2":1}}],["inject",{"2":{"16":1}}],["included",{"2":{"14":1}}],["initialization",{"2":{"13":1}}],["instead",{"2":{"12":3}}],["installing",{"2":{"13":2}}],["installed",{"2":{"13":1}}],["installation",{"0":{"13":1},"1":{"14":1,"15":1,"16":1}}],["install",{"0":{"15":1,"16":1},"2":{"10":1,"16":1}}],["inside",{"0":{"6":1},"2":{"6":3,"12":1,"14":1,"15":1,"16":1,"18":1}}],["internal",{"2":{"5":1,"6":1}}],["in",{"2":{"3":1,"5":1,"10":2,"11":1,"13":1,"16":1,"17":1}}],["information",{"2":{"1":1}}],["identifier",{"2":{"2":1}}],["id",{"0":{"2":1},"2":{"1":2,"2":5,"5":1,"6":1,"18":2}}],["i",{"2":{"1":1}}],["if",{"2":{"1":1,"5":2,"6":2,"11":1}}],["screens",{"2":{"18":1}}],["screen",{"2":{"18":2}}],["script>",{"2":{"15":2}}],["script",{"2":{"15":3}}],["src=",{"2":{"15":2}}],["so",{"2":{"9":1}}],["simply",{"2":{"15":1,"16":1}}],["simplicity",{"2":{"10":1}}],["simple",{"0":{"10":1},"2":{"10":1}}],["significant",{"2":{"9":1}}],["size",{"0":{"9":1},"2":{"7":2}}],["small",{"0":{"9":1}}],["start",{"2":{"10":1,"15":1,"16":3}}],["started",{"2":{"10":2}}],["stying",{"2":{"7":1}}],["string",{"2":{"5":1,"6":3}}],["select",{"2":{"17":1}}],["selector",{"2":{"6":3}}],["service",{"2":{"13":1,"16":2}}],["seconds",{"2":{"10":1}}],["see",{"2":{"1":1,"9":1,"10":1,"11":1,"17":2}}],["spawn",{"2":{"11":2}}],["spawning",{"0":{"11":1}}],["spinner",{"2":{"7":4}}],["spinning",{"2":{"5":2,"18":2}}],["splash",{"2":{"6":3,"11":2,"12":3}}],["specific",{"2":{"1":1,"2":1,"18":1}}],["same",{"2":{"1":1}}],["show",{"0":{"4":1,"5":1,"6":1},"1":{"5":1,"6":1},"2":{"1":3,"2":2,"5":3,"6":4,"10":1,"15":2,"16":2,"18":4}}],["object",{"2":{"16":1}}],["obsolete",{"2":{"12":1}}],["of",{"2":{"12":2,"13":1,"15":1}}],["overwritten",{"2":{"6":1}}],["or",{"2":{"6":1,"13":1}}],["ones",{"2":{"12":1}}],["one",{"2":{"6":1}}],["only",{"2":{"5":1,"6":1}}],["on",{"2":{"1":1}}],["open",{"2":{"1":1}}],["oldest",{"2":{"1":1}}],["here",{"2":{"17":1}}],["head>",{"2":{"15":2}}],["height",{"2":{"7":1}}],["https",{"2":{"15":2}}],["html>",{"2":{"15":2}}],["html",{"2":{"15":2}}],["htmlelement",{"2":{"6":1}}],["hook",{"2":{"16":1}}],["how",{"2":{"10":1,"11":1,"17":1}}],["host",{"2":{"6":1}}],["have",{"2":{"1":1}}],["hides",{"2":{"1":4,"2":1,"3":1}}],["hide",{"0":{"0":1,"1":1,"2":1,"3":1},"1":{"1":1,"2":1,"3":1},"2":{"1":6,"2":3,"3":1,"10":1,"18":6}}],["yourself",{"2":{"9":1}}],["your",{"2":{"7":3,"9":1,"11":1,"13":1,"16":1}}],["you",{"2":{"1":2,"5":2,"6":1,"10":1,"11":3,"13":1,"15":1,"16":2,"17":1}}],["click",{"2":{"17":1}}],["class",{"2":{"16":1}}],["calling",{"2":{"15":1,"16":1}}],["can",{"2":{"2":1,"6":1,"10":1,"11":2,"13":1,"15":1,"16":1,"17":1}}],["charset=",{"2":{"15":1}}],["check",{"2":{"12":1}}],["cdn",{"0":{"15":1},"2":{"13":2}}],["created",{"2":{"12":1,"18":1}}],["creating",{"2":{"12":2}}],["command",{"2":{"16":1}}],["com",{"2":{"15":2}}],["color",{"2":{"7":2}}],["controll",{"2":{"13":1}}],["contains",{"2":{"6":1}}],["contain",{"2":{"6":1}}],["configuration",{"2":{"13":1}}],["const",{"2":{"6":2,"16":1,"18":1}}],["css",{"0":{"14":1},"2":{"7":1,"14":1}}],["customize",{"0":{"7":1}}],["c",{"2":{"1":2}}],["body>",{"2":{"15":2}}],["body",{"2":{"15":1}}],["but",{"2":{"13":1}}],["bundlephobia",{"2":{"9":1}}],["bundle",{"0":{"9":1},"2":{"9":1,"14":1}}],["bg",{"2":{"7":1}}],["bashyarn",{"2":{"16":1}}],["based",{"2":{"1":1}}],["backdrop",{"2":{"7":1}}],["before",{"2":{"7":1}}],["be",{"2":{"2":1,"6":1,"13":1}}],["by",{"0":{"2":1},"2":{"1":1,"2":1,"15":1,"16":2}}],["b",{"2":{"1":2}}],["npm",{"0":{"16":1},"2":{"13":2,"16":1}}],["need",{"2":{"16":1}}],["needs",{"2":{"7":1}}],["new",{"2":{"12":2}}],["now",{"2":{"15":1,"16":1}}],["node",{"0":{"12":1},"2":{"6":1}}],["not",{"2":{"6":1,"9":1}}],["no",{"2":{"5":1}}],["null",{"2":{"2":1,"6":2}}],["number",{"2":{"2":2,"5":3,"6":1}}],["nss",{"2":{"7":1}}],["nst",{"2":{"7":1}}],["nsh",{"2":{"7":1}}],["ns",{"2":{"1":5,"2":2,"5":1,"6":3,"7":1,"10":2,"15":3,"16":3,"18":7}}],["nanosplashes",{"2":{"1":1,"3":1}}],["nanosplash",{"0":{"0":1,"4":1},"1":{"1":1,"2":1,"3":1,"5":1,"6":1},"2":{"1":1,"2":3,"6":1,"7":1,"9":1,"10":1,"11":1,"13":2,"15":3,"16":6,"17":1}}],["action",{"2":{"17":1}}],["above",{"2":{"17":1}}],["around",{"2":{"17":1}}],["argument",{"2":{"6":1}}],["awesome",{"2":{"15":1}}],["api",{"0":{"10":1},"2":{"10":1,"11":1,"16":1}}],["application",{"2":{"9":1,"13":1,"15":1,"16":1}}],["add",{"2":{"9":1,"15":1,"16":1}}],["adjacent",{"2":{"5":1}}],["already",{"2":{"6":1}}],["allows",{"2":{"13":1}}],["all",{"0":{"3":1},"2":{"3":1,"12":1,"18":1}}],["an",{"2":{"6":1,"18":1}}],["anywhere",{"2":{"11":1}}],["any",{"2":{"6":1,"9":1}}],["another",{"2":{"6":1}}],["and",{"2":{"5":1,"6":1,"9":2,"10":4,"12":3,"13":3,"16":2,"17":2}}],["at",{"2":{"1":1,"2":1,"6":1}}],["a",{"2":{"1":2,"2":3,"6":4,"11":1,"12":1,"17":1}}],["tag",{"2":{"15":2}}],["table",{"2":{"6":2,"18":1}}],["try",{"2":{"6":1}}],["text",{"2":{"5":4,"6":1,"7":2,"18":1}}],["to",{"2":{"2":1,"5":1,"6":1,"7":1,"9":3,"10":3,"11":3,"13":1,"16":2,"17":1}}],["than",{"2":{"9":1}}],["that",{"2":{"1":1,"6":1}}],["this",{"2":{"2":1,"5":1,"6":1}}],["them",{"2":{"12":1}}],["their",{"2":{"1":1}}],["the",{"2":{"1":2,"2":2,"3":1,"5":4,"6":4,"9":1,"10":3,"11":1,"12":2,"13":2,"14":1,"15":2,"16":6,"17":1,"18":1}}],["title>",{"2":{"15":1}}],["title>my",{"2":{"15":1}}],["time",{"2":{"1":1,"2":1,"6":1,"12":2}}],["tip",{"2":{"1":1,"6":1}}],["tsns",{"2":{"1":1,"2":1,"3":1,"5":1,"6":1,"15":1}}]],"serializationVersion":2}';
2
- export {
3
- _localSearchIndexroot as default
4
- };
@@ -1,30 +0,0 @@
1
- import { useSSRContext, useAttrs, mergeProps, unref } from "vue";
2
- import { ssrRenderAttrs, ssrInterpolate, ssrRenderSlot } from "vue/server-renderer";
3
- import { _ as _export_sfc } from "./plugin-vue_export-helper.1tPrXgE0.js";
4
- const _sfc_main = {
5
- __name: "Card",
6
- __ssrInlineRender: true,
7
- setup(__props) {
8
- const attrs = useAttrs();
9
- return (_ctx, _push, _parent, _attrs) => {
10
- _push(`<div${ssrRenderAttrs(mergeProps({ class: "card" }, _attrs))} data-v-11a850dd>`);
11
- if (unref(attrs).id) {
12
- _push(`<div class="id" data-v-11a850dd>#${ssrInterpolate(unref(attrs).id)}</div>`);
13
- } else {
14
- _push(`<!---->`);
15
- }
16
- ssrRenderSlot(_ctx.$slots, "default", {}, null, _push, _parent);
17
- _push(`</div>`);
18
- };
19
- }
20
- };
21
- const _sfc_setup = _sfc_main.setup;
22
- _sfc_main.setup = (props, ctx) => {
23
- const ssrContext = useSSRContext();
24
- (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add(".vitepress/theme/vue/Card.vue");
25
- return _sfc_setup ? _sfc_setup(props, ctx) : void 0;
26
- };
27
- const Card = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-11a850dd"]]);
28
- export {
29
- Card as C
30
- };