nanosplash 4.0.6 β†’ 4.0.8

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.
@@ -58,11 +58,4 @@ jobs:
58
58
  name: Build
59
59
  uses: './.github/workflows/reusable.build.yml'
60
60
  with:
61
- persistent: true
62
-
63
- call-npm-publish:
64
- needs: call-build
65
- name: NPM Publish
66
- uses: './.github/workflows/reusable.npm-publish.yml'
67
- with:
68
61
  persistent: true
package/README.md CHANGED
@@ -7,25 +7,19 @@
7
7
 
8
8
  ---
9
9
 
10
- ## πŸš€ Introduction
10
+ ### Nanosplash is the ultra-lightweight JavaScript library that makes adding a polished loading experience to your web app effortless. Weighing in at just 3KB and with zero dependencies, it’s designed to be blazingly fast and beautifully simple. Whether you need a fullscreen spinner or a branded loading message within a specific container, Nanosplash’s dead-simple 2-function API (show and hide) and full CSS customization make it the perfect tool for any modern web project. Try it today and elevate your app’s loading experience with zero fuss!
11
11
 
12
- Nanosplash provides a lightweight and customizable loading screen for your web applications. Whether you want a simple spinner or a fully branded loading experience, Nanosplash makes it easy to implement and customize.
12
+ ## Features
13
13
 
14
- ---
15
-
16
- ## ✨ Features
17
-
18
- - πŸ”¬ Tiny size: Only 3KB – ideal for lean, fast applications.
19
- - ⚑ High performance: Engineered for speed and responsiveness.
20
- - βœ… Zero dependencies: No extra baggage – pure JavaScript!
21
- - 🎨 Minimalistic design: Easily integrates with other designs.
22
- - 🚚 Exports in multiple formats: Supports ESM, CJS, and IIFE.
23
- - πŸ“˜ TypeScript support: Fully typed. Better DX.
24
- - ✌️ 2 Function API: Small, simple – just what you need.
25
-
26
- ---
14
+ - **Tiny**: Only 3KB
15
+ - **Performance**: Created to be fast.
16
+ - **Zero dependencies**: Pure JS.
17
+ - **Beautiful**: Good and generic design.
18
+ - **Modules**: Supports ESM, CJS, and IIFE.
19
+ - **TypeScript support**: Fully typed.
20
+ - **2 Function API**: Easy to use.
27
21
 
28
- ## πŸ“¦ Installation
22
+ ## Installation
29
23
 
30
24
  Include Nanosplash in your project via your preferred method (e.g., CDN, module bundler). Example:
31
25
 
@@ -39,13 +33,19 @@ or
39
33
  npm install nanosplash
40
34
  ```
41
35
 
42
- ---
36
+ ## API Documentation
37
+
38
+ ### Show
43
39
 
44
- ## 🎯 API Documentation
40
+ The show function displays a Nanosplash loading indicator on your page.
41
+ You can pass in optional text to display with the spinner, and an optional target element (or CSS selector) to control where it appears.
42
+ If no target is provided, Nanosplash will create a fullscreen splash covering the entire viewport.
45
43
 
46
- ### `ns.show(text?, target?)`
44
+ ```txt
45
+ show(text?: string, target?: string | Element): number
46
+ ```
47
47
 
48
- Displays a Nanosplash.
48
+ #### Parameters
49
49
 
50
50
  | Parameter | Type | Description |
51
51
  |-----------|----------------------------------|-------------------------------------------------------------|
@@ -78,11 +78,16 @@ Displays a Nanosplash.
78
78
  ns.show('Please wait', '#my-div')
79
79
  ```
80
80
 
81
- ---
81
+ ### Hide
82
82
 
83
- ### `ns.hide(id?)`
83
+ The hide function removes one or more Nanosplash loading indicators from your page.
84
+ By default, it removes the oldest fullscreen splash (FIFO). If you want to remove a specific splash, you can pass its ID (returned by show).
85
+ You can also remove all splashes at once by passing the wildcard '*'.
84
86
 
85
- Hides or removes a Nanosplash.
87
+ ```txt
88
+ hide(id?: number | '*'): void
89
+ ```
90
+ #### Arguments
86
91
 
87
92
  | Parameter | Type | Description |
88
93
  |-----------|-----------------------|------------------------------------------------------------|
@@ -109,9 +114,7 @@ Hides or removes a Nanosplash.
109
114
  ns.hide('*')
110
115
  ```
111
116
 
112
- ---
113
-
114
- ## 🎨 Customization
117
+ ## Customization
115
118
 
116
119
  Nanosplash is designed to be fully customizable with CSS. You can style its key parts using these selectors:
117
120
 
@@ -122,9 +125,7 @@ Nanosplash is designed to be fully customizable with CSS. You can style its key
122
125
  | `.nst` | Text element |
123
126
  | `.nss` | Spinner element |
124
127
 
125
- ---
126
-
127
- ## πŸ› οΈ Examples
128
+ ## Examples
128
129
 
129
130
  Here’s a quick snippet to show a loading indicator while fetching data:
130
131
 
@@ -147,10 +148,6 @@ Here’s a quick snippet to show a loading indicator while fetching data:
147
148
  </script>
148
149
  ```
149
150
 
150
- ---
151
-
152
151
  ## πŸ’– Contributing & Feedback
153
152
 
154
- Found a bug or have a feature request? Visit the [GitHub repository](https://github.com/isakhauge/nanosplash) and open an issue or pull request!
155
-
156
- ---
153
+ Found a bug or have a feature request? Visit the [GitHub repository](https://github.com/isakhauge/nanosplash) and open an issue or pull request!
package/bun.lock CHANGED
@@ -3,9 +3,6 @@
3
3
  "workspaces": {
4
4
  "": {
5
5
  "name": "nanosplash",
6
- "dependencies": {
7
- "vitest": "^3.1.4",
8
- },
9
6
  "devDependencies": {
10
7
  "@eslint/js": "^9.28.0",
11
8
  "@types/node": "^22.15.29",
@@ -13,15 +10,18 @@
13
10
  "@typescript-eslint/parser": "^8.33.0",
14
11
  "@vitest/coverage-v8": "3.1.4",
15
12
  "cross-env": "^7.0.3",
13
+ "cssnano": "^7.0.7",
16
14
  "dotenv": "^16.5.0",
17
15
  "eslint": "^9.28.0",
18
16
  "eslint-config-prettier": "^10.1.5",
19
17
  "globals": "^16.2.0",
20
18
  "jsdom": "^26.1.0",
19
+ "postcss": "^8.5.4",
21
20
  "prettier": "3.5.3",
22
21
  "typescript": "^5.8.3",
23
22
  "typescript-eslint": "^8.33.0",
24
23
  "vite": "^6.3.5",
24
+ "vitest": "^3.1.4",
25
25
  },
26
26
  },
27
27
  },
@@ -188,6 +188,8 @@
188
188
 
189
189
  "@rollup/rollup-win32-x64-msvc": ["@rollup/rollup-win32-x64-msvc@4.41.1", "", { "os": "win32", "cpu": "x64" }, "sha512-Wq2zpapRYLfi4aKxf2Xff0tN+7slj2d4R87WEzqw7ZLsVvO5zwYCIuEGSZYiK41+GlwUo1HiR+GdkLEJnCKTCw=="],
190
190
 
191
+ "@trysound/sax": ["@trysound/sax@0.2.0", "", {}, "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA=="],
192
+
191
193
  "@types/estree": ["@types/estree@1.0.7", "", {}, "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ=="],
192
194
 
193
195
  "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
@@ -248,14 +250,22 @@
248
250
 
249
251
  "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
250
252
 
253
+ "boolbase": ["boolbase@1.0.0", "", {}, "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww=="],
254
+
251
255
  "brace-expansion": ["brace-expansion@1.1.11", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="],
252
256
 
253
257
  "braces": ["braces@3.0.3", "", { "dependencies": { "fill-range": "^7.1.1" } }, "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA=="],
254
258
 
259
+ "browserslist": ["browserslist@4.25.0", "", { "dependencies": { "caniuse-lite": "^1.0.30001718", "electron-to-chromium": "^1.5.160", "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.3" }, "bin": { "browserslist": "cli.js" } }, "sha512-PJ8gYKeS5e/whHBh8xrwYK+dAvEj7JXtz6uTucnMRB8OiGTsKccFekoRrjajPBHV8oOY+2tI4uxeceSimKwMFA=="],
260
+
255
261
  "cac": ["cac@6.7.14", "", {}, "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ=="],
256
262
 
257
263
  "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
258
264
 
265
+ "caniuse-api": ["caniuse-api@3.0.0", "", { "dependencies": { "browserslist": "^4.0.0", "caniuse-lite": "^1.0.0", "lodash.memoize": "^4.1.2", "lodash.uniq": "^4.5.0" } }, "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw=="],
266
+
267
+ "caniuse-lite": ["caniuse-lite@1.0.30001721", "", {}, "sha512-cOuvmUVtKrtEaoKiO0rSc29jcjwMwX5tOHDy4MgVFEWiUXj4uBMJkwI8MDySkgXidpMiHUcviogAvFi4pA2hDQ=="],
268
+
259
269
  "chai": ["chai@5.2.0", "", { "dependencies": { "assertion-error": "^2.0.1", "check-error": "^2.1.1", "deep-eql": "^5.0.1", "loupe": "^3.1.0", "pathval": "^2.0.0" } }, "sha512-mCuXncKXk5iCLhfhwTc0izo0gtEmpz5CtG2y8GiOINBlMVS6v8TMRc5TaLWKS6692m9+dVVfzgeVxR5UxWHTYw=="],
260
270
 
261
271
  "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
@@ -266,12 +276,34 @@
266
276
 
267
277
  "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
268
278
 
279
+ "colord": ["colord@2.9.3", "", {}, "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw=="],
280
+
281
+ "commander": ["commander@7.2.0", "", {}, "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw=="],
282
+
269
283
  "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
270
284
 
271
285
  "cross-env": ["cross-env@7.0.3", "", { "dependencies": { "cross-spawn": "^7.0.1" }, "bin": { "cross-env": "src/bin/cross-env.js", "cross-env-shell": "src/bin/cross-env-shell.js" } }, "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw=="],
272
286
 
273
287
  "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
274
288
 
289
+ "css-declaration-sorter": ["css-declaration-sorter@7.2.0", "", { "peerDependencies": { "postcss": "^8.0.9" } }, "sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow=="],
290
+
291
+ "css-select": ["css-select@5.1.0", "", { "dependencies": { "boolbase": "^1.0.0", "css-what": "^6.1.0", "domhandler": "^5.0.2", "domutils": "^3.0.1", "nth-check": "^2.0.1" } }, "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg=="],
292
+
293
+ "css-tree": ["css-tree@2.3.1", "", { "dependencies": { "mdn-data": "2.0.30", "source-map-js": "^1.0.1" } }, "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw=="],
294
+
295
+ "css-what": ["css-what@6.1.0", "", {}, "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="],
296
+
297
+ "cssesc": ["cssesc@3.0.0", "", { "bin": { "cssesc": "bin/cssesc" } }, "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg=="],
298
+
299
+ "cssnano": ["cssnano@7.0.7", "", { "dependencies": { "cssnano-preset-default": "^7.0.7", "lilconfig": "^3.1.3" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-evKu7yiDIF7oS+EIpwFlMF730ijRyLFaM2o5cTxRGJR9OKHKkc+qP443ZEVR9kZG0syaAJJCPJyfv5pbrxlSng=="],
300
+
301
+ "cssnano-preset-default": ["cssnano-preset-default@7.0.7", "", { "dependencies": { "browserslist": "^4.24.5", "css-declaration-sorter": "^7.2.0", "cssnano-utils": "^5.0.1", "postcss-calc": "^10.1.1", "postcss-colormin": "^7.0.3", "postcss-convert-values": "^7.0.5", "postcss-discard-comments": "^7.0.4", "postcss-discard-duplicates": "^7.0.2", "postcss-discard-empty": "^7.0.1", "postcss-discard-overridden": "^7.0.1", "postcss-merge-longhand": "^7.0.5", "postcss-merge-rules": "^7.0.5", "postcss-minify-font-values": "^7.0.1", "postcss-minify-gradients": "^7.0.1", "postcss-minify-params": "^7.0.3", "postcss-minify-selectors": "^7.0.5", "postcss-normalize-charset": "^7.0.1", "postcss-normalize-display-values": "^7.0.1", "postcss-normalize-positions": "^7.0.1", "postcss-normalize-repeat-style": "^7.0.1", "postcss-normalize-string": "^7.0.1", "postcss-normalize-timing-functions": "^7.0.1", "postcss-normalize-unicode": "^7.0.3", "postcss-normalize-url": "^7.0.1", "postcss-normalize-whitespace": "^7.0.1", "postcss-ordered-values": "^7.0.2", "postcss-reduce-initial": "^7.0.3", "postcss-reduce-transforms": "^7.0.1", "postcss-svgo": "^7.0.2", "postcss-unique-selectors": "^7.0.4" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-jW6CG/7PNB6MufOrlovs1TvBTEVmhY45yz+bd0h6nw3h6d+1e+/TX+0fflZ+LzvZombbT5f+KC063w9VoHeHow=="],
302
+
303
+ "cssnano-utils": ["cssnano-utils@5.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ZIP71eQgG9JwjVZsTPSqhc6GHgEr53uJ7tK5///VfyWj6Xp2DBmixWHqJgPno+PqATzn48pL42ww9x5SSGmhZg=="],
304
+
305
+ "csso": ["csso@5.0.5", "", { "dependencies": { "css-tree": "~2.2.0" } }, "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ=="],
306
+
275
307
  "cssstyle": ["cssstyle@4.3.1", "", { "dependencies": { "@asamuzakjp/css-color": "^3.1.2", "rrweb-cssom": "^0.8.0" } }, "sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q=="],
276
308
 
277
309
  "data-urls": ["data-urls@5.0.0", "", { "dependencies": { "whatwg-mimetype": "^4.0.0", "whatwg-url": "^14.0.0" } }, "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg=="],
@@ -284,10 +316,20 @@
284
316
 
285
317
  "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
286
318
 
319
+ "dom-serializer": ["dom-serializer@2.0.0", "", { "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.2", "entities": "^4.2.0" } }, "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg=="],
320
+
321
+ "domelementtype": ["domelementtype@2.3.0", "", {}, "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw=="],
322
+
323
+ "domhandler": ["domhandler@5.0.3", "", { "dependencies": { "domelementtype": "^2.3.0" } }, "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w=="],
324
+
325
+ "domutils": ["domutils@3.2.2", "", { "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", "domhandler": "^5.0.3" } }, "sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw=="],
326
+
287
327
  "dotenv": ["dotenv@16.5.0", "", {}, "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg=="],
288
328
 
289
329
  "eastasianwidth": ["eastasianwidth@0.2.0", "", {}, "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="],
290
330
 
331
+ "electron-to-chromium": ["electron-to-chromium@1.5.165", "", {}, "sha512-naiMx1Z6Nb2TxPU6fiFrUrDTjyPMLdTtaOd2oLmG8zVSg2hCWGkhPyxwk+qRmZ1ytwVqUv0u7ZcDA5+ALhaUtw=="],
332
+
291
333
  "emoji-regex": ["emoji-regex@9.2.2", "", {}, "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="],
292
334
 
293
335
  "entities": ["entities@6.0.0", "", {}, "sha512-aKstq2TDOndCn4diEyp9Uq/Flu2i1GlLkc6XIDQSDMuaFE3OPW5OphLCyQ5SpSJZTb4reN+kTcYru5yIfXoRPw=="],
@@ -296,6 +338,8 @@
296
338
 
297
339
  "esbuild": ["esbuild@0.25.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.5", "@esbuild/android-arm": "0.25.5", "@esbuild/android-arm64": "0.25.5", "@esbuild/android-x64": "0.25.5", "@esbuild/darwin-arm64": "0.25.5", "@esbuild/darwin-x64": "0.25.5", "@esbuild/freebsd-arm64": "0.25.5", "@esbuild/freebsd-x64": "0.25.5", "@esbuild/linux-arm": "0.25.5", "@esbuild/linux-arm64": "0.25.5", "@esbuild/linux-ia32": "0.25.5", "@esbuild/linux-loong64": "0.25.5", "@esbuild/linux-mips64el": "0.25.5", "@esbuild/linux-ppc64": "0.25.5", "@esbuild/linux-riscv64": "0.25.5", "@esbuild/linux-s390x": "0.25.5", "@esbuild/linux-x64": "0.25.5", "@esbuild/netbsd-arm64": "0.25.5", "@esbuild/netbsd-x64": "0.25.5", "@esbuild/openbsd-arm64": "0.25.5", "@esbuild/openbsd-x64": "0.25.5", "@esbuild/sunos-x64": "0.25.5", "@esbuild/win32-arm64": "0.25.5", "@esbuild/win32-ia32": "0.25.5", "@esbuild/win32-x64": "0.25.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ=="],
298
340
 
341
+ "escalade": ["escalade@3.2.0", "", {}, "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA=="],
342
+
299
343
  "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
300
344
 
301
345
  "eslint": ["eslint@9.28.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.1", "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.28.0", "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.3.0", "eslint-visitor-keys": "^4.2.0", "espree": "^10.3.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-ocgh41VhRlf9+fVpe7QKzwLj9c92fDiqOj8Y3Sd4/ZmVA4Btx4PlUYPq4pp9JDyupkf1upbEXecxL2mwNV7jPQ=="],
@@ -408,10 +452,16 @@
408
452
 
409
453
  "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
410
454
 
455
+ "lilconfig": ["lilconfig@3.1.3", "", {}, "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw=="],
456
+
411
457
  "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
412
458
 
459
+ "lodash.memoize": ["lodash.memoize@4.1.2", "", {}, "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag=="],
460
+
413
461
  "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
414
462
 
463
+ "lodash.uniq": ["lodash.uniq@4.5.0", "", {}, "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ=="],
464
+
415
465
  "loupe": ["loupe@3.1.3", "", {}, "sha512-kkIp7XSkP78ZxJEsSxW3712C6teJVoeHHwgo9zJ380de7IYyJ2ISlxojcH2pC5OFLewESmnRi/+XCDIEEVyoug=="],
416
466
 
417
467
  "lru-cache": ["lru-cache@10.4.3", "", {}, "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ=="],
@@ -422,6 +472,8 @@
422
472
 
423
473
  "make-dir": ["make-dir@4.0.0", "", { "dependencies": { "semver": "^7.5.3" } }, "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw=="],
424
474
 
475
+ "mdn-data": ["mdn-data@2.0.30", "", {}, "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA=="],
476
+
425
477
  "merge2": ["merge2@1.4.1", "", {}, "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="],
426
478
 
427
479
  "micromatch": ["micromatch@4.0.8", "", { "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" } }, "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA=="],
@@ -436,6 +488,10 @@
436
488
 
437
489
  "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
438
490
 
491
+ "node-releases": ["node-releases@2.0.19", "", {}, "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw=="],
492
+
493
+ "nth-check": ["nth-check@2.1.1", "", { "dependencies": { "boolbase": "^1.0.0" } }, "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w=="],
494
+
439
495
  "nwsapi": ["nwsapi@2.2.20", "", {}, "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA=="],
440
496
 
441
497
  "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="],
@@ -466,6 +522,64 @@
466
522
 
467
523
  "postcss": ["postcss@8.5.4", "", { "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", "source-map-js": "^1.2.1" } }, "sha512-QSa9EBe+uwlGTFmHsPKokv3B/oEMQZxfqW0QqNCyhpa6mB1afzulwn8hihglqAb2pOw+BJgNlmXQ8la2VeHB7w=="],
468
524
 
525
+ "postcss-calc": ["postcss-calc@10.1.1", "", { "dependencies": { "postcss-selector-parser": "^7.0.0", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.38" } }, "sha512-NYEsLHh8DgG/PRH2+G9BTuUdtf9ViS+vdoQ0YA5OQdGsfN4ztiwtDWNtBl9EKeqNMFnIu8IKZ0cLxEQ5r5KVMw=="],
526
+
527
+ "postcss-colormin": ["postcss-colormin@7.0.3", "", { "dependencies": { "browserslist": "^4.24.5", "caniuse-api": "^3.0.0", "colord": "^2.9.3", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-xZxQcSyIVZbSsl1vjoqZAcMYYdnJsIyG8OvqShuuqf12S88qQboxxEy0ohNCOLwVPXTU+hFHvJPACRL2B5ohTA=="],
528
+
529
+ "postcss-convert-values": ["postcss-convert-values@7.0.5", "", { "dependencies": { "browserslist": "^4.24.5", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-0VFhH8nElpIs3uXKnVtotDJJNX0OGYSZmdt4XfSfvOMrFw1jKfpwpZxfC4iN73CTM/MWakDEmsHQXkISYj4BXw=="],
530
+
531
+ "postcss-discard-comments": ["postcss-discard-comments@7.0.4", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-6tCUoql/ipWwKtVP/xYiFf1U9QgJ0PUvxN7pTcsQ8Ns3Fnwq1pU5D5s1MhT/XySeLq6GXNvn37U46Ded0TckWg=="],
532
+
533
+ "postcss-discard-duplicates": ["postcss-discard-duplicates@7.0.2", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-eTonaQvPZ/3i1ASDHOKkYwAybiM45zFIc7KXils4mQmHLqIswXD9XNOKEVxtTFnsmwYzF66u4LMgSr0abDlh5w=="],
534
+
535
+ "postcss-discard-empty": ["postcss-discard-empty@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-cFrJKZvcg/uxB6Ijr4l6qmn3pXQBna9zyrPC+sK0zjbkDUZew+6xDltSF7OeB7rAtzaaMVYSdbod+sZOCWnMOg=="],
536
+
537
+ "postcss-discard-overridden": ["postcss-discard-overridden@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-7c3MMjjSZ/qYrx3uc1940GSOzN1Iqjtlqe8uoSg+qdVPYyRb0TILSqqmtlSFuE4mTDECwsm397Ya7iXGzfF7lg=="],
538
+
539
+ "postcss-merge-longhand": ["postcss-merge-longhand@7.0.5", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "stylehacks": "^7.0.5" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-Kpu5v4Ys6QI59FxmxtNB/iHUVDn9Y9sYw66D6+SZoIk4QTz1prC4aYkhIESu+ieG1iylod1f8MILMs1Em3mmIw=="],
540
+
541
+ "postcss-merge-rules": ["postcss-merge-rules@7.0.5", "", { "dependencies": { "browserslist": "^4.24.5", "caniuse-api": "^3.0.0", "cssnano-utils": "^5.0.1", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-ZonhuSwEaWA3+xYbOdJoEReKIBs5eDiBVLAGpYZpNFPzXZcEE5VKR7/qBEQvTZpiwjqhhqEQ+ax5O3VShBj9Wg=="],
542
+
543
+ "postcss-minify-font-values": ["postcss-minify-font-values@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-2m1uiuJeTplll+tq4ENOQSzB8LRnSUChBv7oSyFLsJRtUgAAJGP6LLz0/8lkinTgxrmJSPOEhgY1bMXOQ4ZXhQ=="],
544
+
545
+ "postcss-minify-gradients": ["postcss-minify-gradients@7.0.1", "", { "dependencies": { "colord": "^2.9.3", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-X9JjaysZJwlqNkJbUDgOclyG3jZEpAMOfof6PUZjPnPrePnPG62pS17CjdM32uT1Uq1jFvNSff9l7kNbmMSL2A=="],
546
+
547
+ "postcss-minify-params": ["postcss-minify-params@7.0.3", "", { "dependencies": { "browserslist": "^4.24.5", "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-vUKV2+f5mtjewYieanLX0xemxIp1t0W0H/D11u+kQV/MWdygOO7xPMkbK+r9P6Lhms8MgzKARF/g5OPXhb8tgg=="],
548
+
549
+ "postcss-minify-selectors": ["postcss-minify-selectors@7.0.5", "", { "dependencies": { "cssesc": "^3.0.0", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-x2/IvofHcdIrAm9Q+p06ZD1h6FPcQ32WtCRVodJLDR+WMn8EVHI1kvLxZuGKz/9EY5nAmI6lIQIrpo4tBy5+ug=="],
550
+
551
+ "postcss-normalize-charset": ["postcss-normalize-charset@7.0.1", "", { "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-sn413ofhSQHlZFae//m9FTOfkmiZ+YQXsbosqOWRiVQncU2BA3daX3n0VF3cG6rGLSFVc5Di/yns0dFfh8NFgQ=="],
552
+
553
+ "postcss-normalize-display-values": ["postcss-normalize-display-values@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-E5nnB26XjSYz/mGITm6JgiDpAbVuAkzXwLzRZtts19jHDUBFxZ0BkXAehy0uimrOjYJbocby4FVswA/5noOxrQ=="],
554
+
555
+ "postcss-normalize-positions": ["postcss-normalize-positions@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-pB/SzrIP2l50ZIYu+yQZyMNmnAcwyYb9R1fVWPRxm4zcUFCY2ign7rcntGFuMXDdd9L2pPNUgoODDk91PzRZuQ=="],
556
+
557
+ "postcss-normalize-repeat-style": ["postcss-normalize-repeat-style@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-NsSQJ8zj8TIDiF0ig44Byo3Jk9e4gNt9x2VIlJudnQQ5DhWAHJPF4Tr1ITwyHio2BUi/I6Iv0HRO7beHYOloYQ=="],
558
+
559
+ "postcss-normalize-string": ["postcss-normalize-string@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-QByrI7hAhsoze992kpbMlJSbZ8FuCEc1OT9EFbZ6HldXNpsdpZr+YXC5di3UEv0+jeZlHbZcoCADgb7a+lPmmQ=="],
560
+
561
+ "postcss-normalize-timing-functions": ["postcss-normalize-timing-functions@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-bHifyuuSNdKKsnNJ0s8fmfLMlvsQwYVxIoUBnowIVl2ZAdrkYQNGVB4RxjfpvkMjipqvbz0u7feBZybkl/6NJg=="],
562
+
563
+ "postcss-normalize-unicode": ["postcss-normalize-unicode@7.0.3", "", { "dependencies": { "browserslist": "^4.24.5", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-EcoA29LvG3F+EpOh03iqu+tJY3uYYKzArqKJHxDhUYLa2u58aqGq16K6/AOsXD9yqLN8O6y9mmePKN5cx6krOw=="],
564
+
565
+ "postcss-normalize-url": ["postcss-normalize-url@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-sUcD2cWtyK1AOL/82Fwy1aIVm/wwj5SdZkgZ3QiUzSzQQofrbq15jWJ3BA7Z+yVRwamCjJgZJN0I9IS7c6tgeQ=="],
566
+
567
+ "postcss-normalize-whitespace": ["postcss-normalize-whitespace@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-vsbgFHMFQrJBJKrUFJNZ2pgBeBkC2IvvoHjz1to0/0Xk7sII24T0qFOiJzG6Fu3zJoq/0yI4rKWi7WhApW+EFA=="],
568
+
569
+ "postcss-ordered-values": ["postcss-ordered-values@7.0.2", "", { "dependencies": { "cssnano-utils": "^5.0.1", "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-AMJjt1ECBffF7CEON/Y0rekRLS6KsePU6PRP08UqYW4UGFRnTXNrByUzYK1h8AC7UWTZdQ9O3Oq9kFIhm0SFEw=="],
570
+
571
+ "postcss-reduce-initial": ["postcss-reduce-initial@7.0.3", "", { "dependencies": { "browserslist": "^4.24.5", "caniuse-api": "^3.0.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-RFvkZaqiWtGMlVjlUHpaxGqEL27lgt+Q2Ixjf83CRAzqdo+TsDyGPtJUbPx2MuYIJ+sCQc2TrOvRnhcXQfgIVA=="],
572
+
573
+ "postcss-reduce-transforms": ["postcss-reduce-transforms@7.0.1", "", { "dependencies": { "postcss-value-parser": "^4.2.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-MhyEbfrm+Mlp/36hvZ9mT9DaO7dbncU0CvWI8V93LRkY6IYlu38OPg3FObnuKTUxJ4qA8HpurdQOo5CyqqO76g=="],
574
+
575
+ "postcss-selector-parser": ["postcss-selector-parser@7.1.0", "", { "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" } }, "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA=="],
576
+
577
+ "postcss-svgo": ["postcss-svgo@7.0.2", "", { "dependencies": { "postcss-value-parser": "^4.2.0", "svgo": "^3.3.2" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-5Dzy66JlnRM6pkdOTF8+cGsB1fnERTE8Nc+Eed++fOWo1hdsBptCsbG8UuJkgtZt75bRtMJIrPeZmtfANixdFA=="],
578
+
579
+ "postcss-unique-selectors": ["postcss-unique-selectors@7.0.4", "", { "dependencies": { "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-pmlZjsmEAG7cHd7uK3ZiNSW6otSZ13RHuZ/4cDN/bVglS5EpF2r2oxY99SuOHa8m7AWoBCelTS3JPpzsIs8skQ=="],
580
+
581
+ "postcss-value-parser": ["postcss-value-parser@4.2.0", "", {}, "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ=="],
582
+
469
583
  "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
470
584
 
471
585
  "prettier": ["prettier@3.5.3", "", { "bin": { "prettier": "bin/prettier.cjs" } }, "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw=="],
@@ -514,8 +628,12 @@
514
628
 
515
629
  "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
516
630
 
631
+ "stylehacks": ["stylehacks@7.0.5", "", { "dependencies": { "browserslist": "^4.24.5", "postcss-selector-parser": "^7.1.0" }, "peerDependencies": { "postcss": "^8.4.32" } }, "sha512-5kNb7V37BNf0Q3w+1pxfa+oiNPS++/b4Jil9e/kPDgrk1zjEd6uR7SZeJiYaLYH6RRSC1XX2/37OTeU/4FvuIA=="],
632
+
517
633
  "supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
518
634
 
635
+ "svgo": ["svgo@3.3.2", "", { "dependencies": { "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^5.1.0", "css-tree": "^2.3.1", "css-what": "^6.1.0", "csso": "^5.0.5", "picocolors": "^1.0.0" }, "bin": "./bin/svgo" }, "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw=="],
636
+
519
637
  "symbol-tree": ["symbol-tree@3.2.4", "", {}, "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw=="],
520
638
 
521
639
  "test-exclude": ["test-exclude@7.0.1", "", { "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^10.4.1", "minimatch": "^9.0.4" } }, "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg=="],
@@ -552,8 +670,12 @@
552
670
 
553
671
  "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
554
672
 
673
+ "update-browserslist-db": ["update-browserslist-db@1.1.3", "", { "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" }, "peerDependencies": { "browserslist": ">= 4.21.0" }, "bin": { "update-browserslist-db": "cli.js" } }, "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw=="],
674
+
555
675
  "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
556
676
 
677
+ "util-deprecate": ["util-deprecate@1.0.2", "", {}, "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="],
678
+
557
679
  "vite": ["vite@6.3.5", "", { "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.4.4", "picomatch": "^4.0.2", "postcss": "^8.5.3", "rollup": "^4.34.9", "tinyglobby": "^0.2.13" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "peerDependencies": { "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", "jiti": ">=1.21.0", "less": "*", "lightningcss": "^1.21.0", "sass": "*", "sass-embedded": "*", "stylus": "*", "sugarss": "*", "terser": "^5.16.0", "tsx": "^4.8.1", "yaml": "^2.4.2" }, "optionalPeers": ["@types/node", "jiti", "less", "lightningcss", "sass", "sass-embedded", "stylus", "sugarss", "terser", "tsx", "yaml"], "bin": { "vite": "bin/vite.js" } }, "sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ=="],
558
680
 
559
681
  "vite-node": ["vite-node@3.1.4", "", { "dependencies": { "cac": "^6.7.14", "debug": "^4.4.0", "es-module-lexer": "^1.7.0", "pathe": "^2.0.3", "vite": "^5.0.0 || ^6.0.0" }, "bin": { "vite-node": "vite-node.mjs" } }, "sha512-6enNwYnpyDo4hEgytbmc6mYWHXDHYEn0D1/rw4Q+tnHUGtKTJsn8T1YkX6Q18wI5LCrS8CTYlBaiCqxOy2kvUA=="],
@@ -586,6 +708,8 @@
586
708
 
587
709
  "xmlchars": ["xmlchars@2.2.0", "", {}, "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw=="],
588
710
 
711
+ "yaml": ["yaml@2.8.0", "", { "bin": { "yaml": "bin.mjs" } }, "sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ=="],
712
+
589
713
  "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
590
714
 
591
715
  "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
@@ -598,6 +722,10 @@
598
722
 
599
723
  "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
600
724
 
725
+ "csso/css-tree": ["css-tree@2.2.1", "", { "dependencies": { "mdn-data": "2.0.28", "source-map-js": "^1.0.1" } }, "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA=="],
726
+
727
+ "dom-serializer/entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="],
728
+
601
729
  "eslint/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
602
730
 
603
731
  "fast-glob/glob-parent": ["glob-parent@5.1.2", "", { "dependencies": { "is-glob": "^4.0.1" } }, "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow=="],
@@ -622,6 +750,8 @@
622
750
 
623
751
  "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
624
752
 
753
+ "csso/css-tree/mdn-data": ["mdn-data@2.0.28", "", {}, "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g=="],
754
+
625
755
  "glob/minimatch/brace-expansion": ["brace-expansion@2.0.1", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA=="],
626
756
 
627
757
  "string-width-cjs/strip-ansi/ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="],
@@ -161,7 +161,7 @@
161
161
  <div class='footer quiet pad2 space-top1 center small'>
162
162
  Code coverage generated by
163
163
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
164
- at 2025-06-09T11:27:59.134Z
164
+ at 2025-06-09T13:54:28.777Z
165
165
  </div>
166
166
  <script src="prettify.js"></script>
167
167
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-06-09T11:27:59.134Z
104
+ at 2025-06-09T13:54:28.777Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -371,7 +371,7 @@
371
371
  <span class="cline-any cline-yes">11x</span>
372
372
  <span class="cline-any cline-yes">11x</span>
373
373
  <span class="cline-any cline-yes">11x</span>
374
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import style from '@/style/ns.css?raw'
374
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import style from '@/style/ns.css?inline'
375
375
  import type { INanosplash } from '@/interfaces/INanosplash.ts'
376
376
  import type { Func } from '@/types/generic/function.ts'
377
377
  import type { INSElement } from '@/interfaces/INSElement.ts'
@@ -532,7 +532,7 @@ export const useNs: Func&lt;INanosplash&gt; = (): INanosplash =&gt; {
532
532
  <div class='footer quiet pad2 space-top1 center small'>
533
533
  Code coverage generated by
534
534
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
535
- at 2025-06-09T11:27:59.134Z
535
+ at 2025-06-09T13:54:28.777Z
536
536
  </div>
537
537
  <script src="../../prettify.js"></script>
538
538
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-06-09T11:27:59.134Z
104
+ at 2025-06-09T13:54:28.777Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -109,7 +109,7 @@ export const Selectors = {
109
109
  <div class='footer quiet pad2 space-top1 center small'>
110
110
  Code coverage generated by
111
111
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
112
- at 2025-06-09T11:27:59.134Z
112
+ at 2025-06-09T13:54:28.777Z
113
113
  </div>
114
114
  <script src="../../prettify.js"></script>
115
115
  <script>
@@ -85,7 +85,7 @@
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at 2025-06-09T11:27:59.134Z
88
+ at 2025-06-09T13:54:28.777Z
89
89
  </div>
90
90
  <script src="../prettify.js"></script>
91
91
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-06-09T11:27:59.134Z
104
+ at 2025-06-09T13:54:28.777Z
105
105
  </div>
106
106
  <script src="../prettify.js"></script>
107
107
  <script>
@@ -85,7 +85,7 @@ export interface INSElement extends HTMLDivElement {
85
85
  <div class='footer quiet pad2 space-top1 center small'>
86
86
  Code coverage generated by
87
87
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
88
- at 2025-06-09T11:27:59.134Z
88
+ at 2025-06-09T13:54:28.777Z
89
89
  </div>
90
90
  <script src="../../prettify.js"></script>
91
91
  <script>
@@ -289,7 +289,7 @@ export interface INanosplash {
289
289
  <div class='footer quiet pad2 space-top1 center small'>
290
290
  Code coverage generated by
291
291
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
292
- at 2025-06-09T11:27:59.134Z
292
+ at 2025-06-09T13:54:28.777Z
293
293
  </div>
294
294
  <script src="../../prettify.js"></script>
295
295
  <script>
@@ -116,7 +116,7 @@
116
116
  <div class='footer quiet pad2 space-top1 center small'>
117
117
  Code coverage generated by
118
118
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
- at 2025-06-09T11:27:59.134Z
119
+ at 2025-06-09T13:54:28.777Z
120
120
  </div>
121
121
  <script src="../../prettify.js"></script>
122
122
  <script>
@@ -274,7 +274,7 @@ export const parseHtml = &lt;T extends HTMLElement&gt;(html: HTMLString): T =&gt
274
274
  <div class='footer quiet pad2 space-top1 center small'>
275
275
  Code coverage generated by
276
276
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
277
- at 2025-06-09T11:27:59.134Z
277
+ at 2025-06-09T13:54:28.777Z
278
278
  </div>
279
279
  <script src="../../prettify.js"></script>
280
280
  <script>
@@ -101,7 +101,7 @@
101
101
  <div class='footer quiet pad2 space-top1 center small'>
102
102
  Code coverage generated by
103
103
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
104
- at 2025-06-09T11:27:59.134Z
104
+ at 2025-06-09T13:54:28.777Z
105
105
  </div>
106
106
  <script src="../../prettify.js"></script>
107
107
  <script>
@@ -1,135 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const T=`@keyframes nsRotate {
2
- 100% {
3
- transform: rotate(360deg);
4
- }
5
- }
6
-
7
- @keyframes nsDash {
8
- 0% {
9
- stroke-dasharray: 1, 150;
10
- stroke-dashoffset: 0;
11
- }
12
- 50% {
13
- stroke-dasharray: 90, 150;
14
- stroke-dashoffset: -35;
15
- }
16
- 100% {
17
- stroke-dasharray: 90, 150;
18
- stroke-dashoffset: -124;
19
- }
20
- }
21
-
22
- @keyframes nsFade {
23
- from {
24
- opacity: 0;
25
- }
26
- to {
27
- opacity: 1;
28
- }
29
- }
30
-
31
- @keyframes nsAscend {
32
- from {
33
- opacity: 0;
34
- transform: translateY(13px);
35
- }
36
- to {
37
- opacity: 1;
38
- transform: translateY(0);
39
- }
40
- }
41
-
42
- :root {
43
- --ns-top: 0;
44
- }
45
-
46
- /* Nanosplash host */
47
- .nsh {
48
- --color: DarkSlateGray;
49
- --size: 20px;
50
- --relSize: calc(var(--size) * 0.9);
51
- --font: 'Inter', 'Helvetica', 'Arial';
52
- --weight: 400;
53
- --bg: rgba(255, 255, 255, 0.9);
54
- --zIdx: 9999999999;
55
- --blur: blur(5px);
56
-
57
- position: relative;
58
- z-index: var(--zIdx);
59
- &::before {
60
- width: 100%;
61
- height: 100%;
62
- bottom: 0; /* Not sure why */
63
- right: 0; /* Not sure why */
64
- position: absolute;
65
- content: '';
66
- background-color: var(--bg);
67
- backdrop-filter: var(--blur);
68
- -webkit-backdrop-filter: var(--blur);
69
- z-index: calc(var(--zIdx) + 1);
70
- border-radius: var(--size);
71
- }
72
- }
73
-
74
- /* For when the Nanosplash host is the document body */
75
- body.nsh {
76
- &,
77
- &::before {
78
- width: 100%;
79
- height: 100%;
80
- position: fixed;
81
- top: var(--ns-top);
82
- left: 0;
83
- }
84
- }
85
-
86
- /* Nanosplash main element */
87
- .ns {
88
- width: 100%;
89
- height: 100%;
90
- bottom: 0; /* Not sure why */
91
- right: 0; /* Not sure why */
92
- display: flex;
93
- justify-content: center;
94
- align-items: center;
95
- position: absolute;
96
- z-index: calc(var(--zIdx) + 2);
97
- animation: nsFade 2s;
98
- gap: var(--relSize);
99
- }
100
-
101
- /* Nanosplash text */
102
- .nst {
103
- color: var(--color);
104
- font-size: var(--size);
105
- font-family: var(--font), sans-serif;
106
- font-weight: var(--weight);
107
- max-width: 80dvw;
108
- white-space: nowrap;
109
- text-overflow: ellipsis;
110
- overflow: hidden;
111
- text-shadow: 0 0 0.06rem rgba(0, 0, 0, 0.25);
112
- filter: drop-shadow(0 0 0.07rem rgba(0, 0, 0, 0.25));
113
- animation: nsAscend 0.5s;
114
- }
115
-
116
- /* Nanosplash spinner */
117
- .nss {
118
- display: block;
119
- width: var(--relSize);
120
- height: var(--relSize);
121
- animation: nsAscend 0.5s;
122
- & > svg {
123
- animation: nsRotate 2s linear infinite;
124
- position: relative;
125
- width: inherit;
126
- height: inherit;
127
- stroke-width: 8;
128
- }
129
- & .path {
130
- stroke: var(--color);
131
- stroke-linecap: round;
132
- animation: nsDash 1.5s ease-in-out infinite;
133
- }
134
- }
135
- `,d=()=>globalThis.document,l=()=>globalThis.document.body,y=t=>Array.from(t),v=(t,o)=>y(t.querySelectorAll(o)),h=(t,o)=>v(t,o)[0]??null,I=t=>t instanceof Element?t:h(d(),t),c=(t,...o)=>{const a=d().createElement("div");return t&&a.classList.add(t),a.append(...o),a},m=t=>{const o=c();return o.innerHTML=t,o.firstChild},r={ns:"ns",nsHost:"nsh",nsText:"nst",nsSpinner:"nss"},u={ns:"."+r.ns,nsText:"."+r.nsText},A="4.0.5",E=()=>{const t=()=>v(d(),u.ns),o=()=>{const e=m('<svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none /></svg>'),s=c(r.ns,c(r.nsText),c(r.nsSpinner,e));return s.nsId=Date.now(),s},a=()=>t().sort((n,e)=>n.nsId-e.nsId),b=()=>a()[0]??null,g=(n,e)=>{var i;if((i=h(n,u.nsText))==null||i.remove(),!e)return;const s=c(r.nsText,e);n.insertBefore(s,n.firstChild)},w=(n,e)=>{const s=e.firstElementChild;s&&e.insertBefore(n,s),e.append(n),e.classList.add(r.nsHost)},x=n=>y(n.children).find(s=>s.classList.contains(r.ns)),k=(n,e)=>{const s=e?I(e)??l():l();let i;const p=x(s);if(p?i=p:(i=o(),w(i,s)),g(i,n??""),s===l()){const S=scrollY+"px";l().style.setProperty("--ns-top",S)}return i.nsId},f=n=>{var e;(e=n==null?void 0:n.parentElement)==null||e.classList.remove(r.nsHost),n==null||n.remove()},N=n=>t().find(e=>e.nsId===n)??null,z=n=>{n==="*"?t().forEach(f):f(typeof n=="number"?N(n):b())};return(()=>{var e;(e=h(d(),"#ns"))==null||e.remove();const n=m(`<style id="ns">${T}</style>`);l().append(n)})(),{show:k,hide:z,version:A}};exports.useNs=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const I='@keyframes nsRotate{to{transform:rotate(360deg)}}@keyframes nsDash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes nsFade{0%{opacity:0}to{opacity:1}}@keyframes nsAscend{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}:root{--ns-top: 0}.nsh{--color: DarkSlateGray;--size: 20px;--relSize: calc(var(--size) * .9);--font: "Inter", "Helvetica", "Arial";--weight: 400;--bg: rgba(255, 255, 255, .9);--zIdx: 9999999999;--blur: blur(5px);position:relative;z-index:var(--zIdx)}.nsh:before{width:100%;height:100%;bottom:0;right:0;position:absolute;content:"";background-color:var(--bg);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);z-index:calc(var(--zIdx) + 1);border-radius:var(--size)}body.nsh,body.nsh:before{width:100%;height:100%;position:fixed;top:var(--ns-top);left:0}.ns{width:100%;height:100%;bottom:0;right:0;display:flex;justify-content:center;align-items:center;position:absolute;z-index:calc(var(--zIdx) + 2);animation:nsFade 2s;gap:var(--relSize)}.nst{color:var(--color);font-size:var(--size);font-family:var(--font),sans-serif;font-weight:var(--weight);max-width:80dvw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-shadow:0 0 .06rem rgba(0,0,0,.25);filter:drop-shadow(0 0 .07rem rgba(0,0,0,.25));animation:nsAscend .5s}.nss{display:block;width:var(--relSize);height:var(--relSize);animation:nsAscend .5s}.nss>svg{animation:nsRotate 2s linear infinite;position:relative;width:inherit;height:inherit;stroke-width:8}.nss .path{stroke:var(--color);stroke-linecap:round;animation:nsDash 1.5s ease-in-out infinite}',d=()=>globalThis.document,l=()=>globalThis.document.body,y=s=>Array.from(s),u=(s,o)=>y(s.querySelectorAll(o)),h=(s,o)=>u(s,o)[0]??null,N=s=>s instanceof Element?s:h(d(),s),c=(s,...o)=>{const a=d().createElement("div");return s&&a.classList.add(s),a.append(...o),a},v=s=>{const o=c();return o.innerHTML=s,o.firstChild},r={ns:"ns",nsHost:"nsh",nsText:"nst",nsSpinner:"nss"},m={ns:"."+r.ns,nsText:"."+r.nsText},A="4.0.8",E=()=>{const s=()=>u(d(),m.ns),o=()=>{const t=v('<svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none /></svg>'),n=c(r.ns,c(r.nsText),c(r.nsSpinner,t));return n.nsId=Date.now(),n},a=()=>s().sort((e,t)=>e.nsId-t.nsId),b=()=>a()[0]??null,g=(e,t)=>{var i;if((i=h(e,m.nsText))==null||i.remove(),!t)return;const n=c(r.nsText,t);e.insertBefore(n,e.firstChild)},x=(e,t)=>{const n=t.firstElementChild;n&&t.insertBefore(e,n),t.append(e),t.classList.add(r.nsHost)},w=e=>y(e.children).find(n=>n.classList.contains(r.ns)),k=(e,t)=>{const n=t?N(t)??l():l();let i;const p=w(n);if(p?i=p:(i=o(),x(i,n)),g(i,e??""),n===l()){const T=scrollY+"px";l().style.setProperty("--ns-top",T)}return i.nsId},f=e=>{var t;(t=e==null?void 0:e.parentElement)==null||t.classList.remove(r.nsHost),e==null||e.remove()},z=e=>s().find(t=>t.nsId===e)??null,S=e=>{e==="*"?s().forEach(f):f(typeof e=="number"?z(e):b())};return(()=>{var t;(t=h(d(),"#ns"))==null||t.remove();const e=v(`<style id="ns">${I}</style>`);l().append(e)})(),{show:k,hide:S,version:A}};exports.useNs=E;
package/dist/es/ns.es.js CHANGED
@@ -1,195 +1,61 @@
1
- const S = `@keyframes nsRotate {
2
- 100% {
3
- transform: rotate(360deg);
4
- }
5
- }
6
-
7
- @keyframes nsDash {
8
- 0% {
9
- stroke-dasharray: 1, 150;
10
- stroke-dashoffset: 0;
11
- }
12
- 50% {
13
- stroke-dasharray: 90, 150;
14
- stroke-dashoffset: -35;
15
- }
16
- 100% {
17
- stroke-dasharray: 90, 150;
18
- stroke-dashoffset: -124;
19
- }
20
- }
21
-
22
- @keyframes nsFade {
23
- from {
24
- opacity: 0;
25
- }
26
- to {
27
- opacity: 1;
28
- }
29
- }
30
-
31
- @keyframes nsAscend {
32
- from {
33
- opacity: 0;
34
- transform: translateY(13px);
35
- }
36
- to {
37
- opacity: 1;
38
- transform: translateY(0);
39
- }
40
- }
41
-
42
- :root {
43
- --ns-top: 0;
44
- }
45
-
46
- /* Nanosplash host */
47
- .nsh {
48
- --color: DarkSlateGray;
49
- --size: 20px;
50
- --relSize: calc(var(--size) * 0.9);
51
- --font: 'Inter', 'Helvetica', 'Arial';
52
- --weight: 400;
53
- --bg: rgba(255, 255, 255, 0.9);
54
- --zIdx: 9999999999;
55
- --blur: blur(5px);
56
-
57
- position: relative;
58
- z-index: var(--zIdx);
59
- &::before {
60
- width: 100%;
61
- height: 100%;
62
- bottom: 0; /* Not sure why */
63
- right: 0; /* Not sure why */
64
- position: absolute;
65
- content: '';
66
- background-color: var(--bg);
67
- backdrop-filter: var(--blur);
68
- -webkit-backdrop-filter: var(--blur);
69
- z-index: calc(var(--zIdx) + 1);
70
- border-radius: var(--size);
71
- }
72
- }
73
-
74
- /* For when the Nanosplash host is the document body */
75
- body.nsh {
76
- &,
77
- &::before {
78
- width: 100%;
79
- height: 100%;
80
- position: fixed;
81
- top: var(--ns-top);
82
- left: 0;
83
- }
84
- }
85
-
86
- /* Nanosplash main element */
87
- .ns {
88
- width: 100%;
89
- height: 100%;
90
- bottom: 0; /* Not sure why */
91
- right: 0; /* Not sure why */
92
- display: flex;
93
- justify-content: center;
94
- align-items: center;
95
- position: absolute;
96
- z-index: calc(var(--zIdx) + 2);
97
- animation: nsFade 2s;
98
- gap: var(--relSize);
99
- }
100
-
101
- /* Nanosplash text */
102
- .nst {
103
- color: var(--color);
104
- font-size: var(--size);
105
- font-family: var(--font), sans-serif;
106
- font-weight: var(--weight);
107
- max-width: 80dvw;
108
- white-space: nowrap;
109
- text-overflow: ellipsis;
110
- overflow: hidden;
111
- text-shadow: 0 0 0.06rem rgba(0, 0, 0, 0.25);
112
- filter: drop-shadow(0 0 0.07rem rgba(0, 0, 0, 0.25));
113
- animation: nsAscend 0.5s;
114
- }
115
-
116
- /* Nanosplash spinner */
117
- .nss {
118
- display: block;
119
- width: var(--relSize);
120
- height: var(--relSize);
121
- animation: nsAscend 0.5s;
122
- & > svg {
123
- animation: nsRotate 2s linear infinite;
124
- position: relative;
125
- width: inherit;
126
- height: inherit;
127
- stroke-width: 8;
128
- }
129
- & .path {
130
- stroke: var(--color);
131
- stroke-linecap: round;
132
- animation: nsDash 1.5s ease-in-out infinite;
133
- }
134
- }
135
- `, d = () => globalThis.document, l = () => globalThis.document.body, v = (t) => Array.from(t), u = (t, o) => v(t.querySelectorAll(o)), h = (t, o) => u(t, o)[0] ?? null, T = (t) => t instanceof Element ? t : h(d(), t), c = (t, ...o) => {
1
+ const T = '@keyframes nsRotate{to{transform:rotate(360deg)}}@keyframes nsDash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes nsFade{0%{opacity:0}to{opacity:1}}@keyframes nsAscend{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}:root{--ns-top: 0}.nsh{--color: DarkSlateGray;--size: 20px;--relSize: calc(var(--size) * .9);--font: "Inter", "Helvetica", "Arial";--weight: 400;--bg: rgba(255, 255, 255, .9);--zIdx: 9999999999;--blur: blur(5px);position:relative;z-index:var(--zIdx)}.nsh:before{width:100%;height:100%;bottom:0;right:0;position:absolute;content:"";background-color:var(--bg);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);z-index:calc(var(--zIdx) + 1);border-radius:var(--size)}body.nsh,body.nsh:before{width:100%;height:100%;position:fixed;top:var(--ns-top);left:0}.ns{width:100%;height:100%;bottom:0;right:0;display:flex;justify-content:center;align-items:center;position:absolute;z-index:calc(var(--zIdx) + 2);animation:nsFade 2s;gap:var(--relSize)}.nst{color:var(--color);font-size:var(--size);font-family:var(--font),sans-serif;font-weight:var(--weight);max-width:80dvw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-shadow:0 0 .06rem rgba(0,0,0,.25);filter:drop-shadow(0 0 .07rem rgba(0,0,0,.25));animation:nsAscend .5s}.nss{display:block;width:var(--relSize);height:var(--relSize);animation:nsAscend .5s}.nss>svg{animation:nsRotate 2s linear infinite;position:relative;width:inherit;height:inherit;stroke-width:8}.nss .path{stroke:var(--color);stroke-linecap:round;animation:nsDash 1.5s ease-in-out infinite}', d = () => globalThis.document, l = () => globalThis.document.body, y = (s) => Array.from(s), u = (s, o) => y(s.querySelectorAll(o)), h = (s, o) => u(s, o)[0] ?? null, A = (s) => s instanceof Element ? s : h(d(), s), c = (s, ...o) => {
136
2
  const a = d().createElement("div");
137
- return t && a.classList.add(t), a.append(...o), a;
138
- }, m = (t) => {
3
+ return s && a.classList.add(s), a.append(...o), a;
4
+ }, v = (s) => {
139
5
  const o = c();
140
- return o.innerHTML = t, o.firstChild;
6
+ return o.innerHTML = s, o.firstChild;
141
7
  }, r = {
142
8
  ns: "ns",
143
9
  nsHost: "nsh",
144
10
  nsText: "nst",
145
11
  nsSpinner: "nss"
146
- }, y = {
12
+ }, m = {
147
13
  ns: "." + r.ns,
148
14
  nsText: "." + r.nsText
149
- }, A = "4.0.5", H = () => {
150
- const t = () => u(d(), y.ns), o = () => {
151
- const e = m('<svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none /></svg>'), s = c(
15
+ }, N = "4.0.8", H = () => {
16
+ const s = () => u(d(), m.ns), o = () => {
17
+ const t = v('<svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none /></svg>'), n = c(
152
18
  r.ns,
153
19
  c(r.nsText),
154
- c(r.nsSpinner, e)
20
+ c(r.nsSpinner, t)
155
21
  );
156
- return s.nsId = Date.now(), s;
157
- }, a = () => t().sort((n, e) => n.nsId - e.nsId), b = () => a()[0] ?? null, g = (n, e) => {
22
+ return n.nsId = Date.now(), n;
23
+ }, a = () => s().sort((e, t) => e.nsId - t.nsId), b = () => a()[0] ?? null, g = (e, t) => {
158
24
  var i;
159
- if ((i = h(n, y.nsText)) == null || i.remove(), !e) return;
160
- const s = c(r.nsText, e);
161
- n.insertBefore(s, n.firstChild);
162
- }, w = (n, e) => {
163
- const s = e.firstElementChild;
164
- s && e.insertBefore(n, s), e.append(n), e.classList.add(r.nsHost);
165
- }, x = (n) => v(n.children).find(
166
- (s) => s.classList.contains(r.ns)
167
- ), k = (n, e) => {
168
- const s = e ? T(e) ?? l() : l();
25
+ if ((i = h(e, m.nsText)) == null || i.remove(), !t) return;
26
+ const n = c(r.nsText, t);
27
+ e.insertBefore(n, e.firstChild);
28
+ }, x = (e, t) => {
29
+ const n = t.firstElementChild;
30
+ n && t.insertBefore(e, n), t.append(e), t.classList.add(r.nsHost);
31
+ }, w = (e) => y(e.children).find(
32
+ (n) => n.classList.contains(r.ns)
33
+ ), k = (e, t) => {
34
+ const n = t ? A(t) ?? l() : l();
169
35
  let i;
170
- const p = x(s);
171
- if (p ? i = p : (i = o(), w(i, s)), g(i, n ?? ""), s === l()) {
172
- const I = scrollY + "px";
173
- l().style.setProperty("--ns-top", I);
36
+ const p = w(n);
37
+ if (p ? i = p : (i = o(), x(i, n)), g(i, e ?? ""), n === l()) {
38
+ const S = scrollY + "px";
39
+ l().style.setProperty("--ns-top", S);
174
40
  }
175
41
  return i.nsId;
176
- }, f = (n) => {
177
- var e;
178
- (e = n == null ? void 0 : n.parentElement) == null || e.classList.remove(r.nsHost), n == null || n.remove();
179
- }, N = (n) => t().find((e) => e.nsId === n) ?? null, z = (n) => {
180
- n === "*" ? t().forEach(f) : f(typeof n == "number" ? N(n) : b());
42
+ }, f = (e) => {
43
+ var t;
44
+ (t = e == null ? void 0 : e.parentElement) == null || t.classList.remove(r.nsHost), e == null || e.remove();
45
+ }, z = (e) => s().find((t) => t.nsId === e) ?? null, I = (e) => {
46
+ e === "*" ? s().forEach(f) : f(typeof e == "number" ? z(e) : b());
181
47
  };
182
48
  return (() => {
183
- var e;
184
- (e = h(d(), "#ns")) == null || e.remove();
185
- const n = m(
186
- `<style id="ns">${S}</style>`
49
+ var t;
50
+ (t = h(d(), "#ns")) == null || t.remove();
51
+ const e = v(
52
+ `<style id="ns">${T}</style>`
187
53
  );
188
- l().append(n);
54
+ l().append(e);
189
55
  })(), {
190
56
  show: k,
191
- hide: z,
192
- version: A
57
+ hide: I,
58
+ version: N
193
59
  };
194
60
  };
195
61
  export {
@@ -1,135 +1 @@
1
- (function(){"use strict";const w=`@keyframes nsRotate {
2
- 100% {
3
- transform: rotate(360deg);
4
- }
5
- }
6
-
7
- @keyframes nsDash {
8
- 0% {
9
- stroke-dasharray: 1, 150;
10
- stroke-dashoffset: 0;
11
- }
12
- 50% {
13
- stroke-dasharray: 90, 150;
14
- stroke-dashoffset: -35;
15
- }
16
- 100% {
17
- stroke-dasharray: 90, 150;
18
- stroke-dashoffset: -124;
19
- }
20
- }
21
-
22
- @keyframes nsFade {
23
- from {
24
- opacity: 0;
25
- }
26
- to {
27
- opacity: 1;
28
- }
29
- }
30
-
31
- @keyframes nsAscend {
32
- from {
33
- opacity: 0;
34
- transform: translateY(13px);
35
- }
36
- to {
37
- opacity: 1;
38
- transform: translateY(0);
39
- }
40
- }
41
-
42
- :root {
43
- --ns-top: 0;
44
- }
45
-
46
- /* Nanosplash host */
47
- .nsh {
48
- --color: DarkSlateGray;
49
- --size: 20px;
50
- --relSize: calc(var(--size) * 0.9);
51
- --font: 'Inter', 'Helvetica', 'Arial';
52
- --weight: 400;
53
- --bg: rgba(255, 255, 255, 0.9);
54
- --zIdx: 9999999999;
55
- --blur: blur(5px);
56
-
57
- position: relative;
58
- z-index: var(--zIdx);
59
- &::before {
60
- width: 100%;
61
- height: 100%;
62
- bottom: 0; /* Not sure why */
63
- right: 0; /* Not sure why */
64
- position: absolute;
65
- content: '';
66
- background-color: var(--bg);
67
- backdrop-filter: var(--blur);
68
- -webkit-backdrop-filter: var(--blur);
69
- z-index: calc(var(--zIdx) + 1);
70
- border-radius: var(--size);
71
- }
72
- }
73
-
74
- /* For when the Nanosplash host is the document body */
75
- body.nsh {
76
- &,
77
- &::before {
78
- width: 100%;
79
- height: 100%;
80
- position: fixed;
81
- top: var(--ns-top);
82
- left: 0;
83
- }
84
- }
85
-
86
- /* Nanosplash main element */
87
- .ns {
88
- width: 100%;
89
- height: 100%;
90
- bottom: 0; /* Not sure why */
91
- right: 0; /* Not sure why */
92
- display: flex;
93
- justify-content: center;
94
- align-items: center;
95
- position: absolute;
96
- z-index: calc(var(--zIdx) + 2);
97
- animation: nsFade 2s;
98
- gap: var(--relSize);
99
- }
100
-
101
- /* Nanosplash text */
102
- .nst {
103
- color: var(--color);
104
- font-size: var(--size);
105
- font-family: var(--font), sans-serif;
106
- font-weight: var(--weight);
107
- max-width: 80dvw;
108
- white-space: nowrap;
109
- text-overflow: ellipsis;
110
- overflow: hidden;
111
- text-shadow: 0 0 0.06rem rgba(0, 0, 0, 0.25);
112
- filter: drop-shadow(0 0 0.07rem rgba(0, 0, 0, 0.25));
113
- animation: nsAscend 0.5s;
114
- }
115
-
116
- /* Nanosplash spinner */
117
- .nss {
118
- display: block;
119
- width: var(--relSize);
120
- height: var(--relSize);
121
- animation: nsAscend 0.5s;
122
- & > svg {
123
- animation: nsRotate 2s linear infinite;
124
- position: relative;
125
- width: inherit;
126
- height: inherit;
127
- stroke-width: 8;
128
- }
129
- & .path {
130
- stroke: var(--color);
131
- stroke-linecap: round;
132
- animation: nsDash 1.5s ease-in-out infinite;
133
- }
134
- }
135
- `,d=()=>globalThis.document,a=()=>globalThis.document.body,f=t=>Array.from(t),p=(t,o)=>f(t.querySelectorAll(o)),h=(t,o)=>p(t,o)[0]??null,b=t=>t instanceof Element?t:h(d(),t),l=(t,...o)=>{const c=d().createElement("div");return t&&c.classList.add(t),c.append(...o),c},m=t=>{const o=l();return o.innerHTML=t,o.firstChild},r={ns:"ns",nsHost:"nsh",nsText:"nst",nsSpinner:"nss"},u={ns:"."+r.ns,nsText:"."+r.nsText},g="4.0.5",x=()=>{const t=()=>p(d(),u.ns),o=()=>{const e=m('<svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none /></svg>'),s=l(r.ns,l(r.nsText),l(r.nsSpinner,e));return s.nsId=Date.now(),s},c=()=>t().sort((n,e)=>n.nsId-e.nsId),k=()=>c()[0]??null,N=(n,e)=>{var i;if((i=h(n,u.nsText))==null||i.remove(),!e)return;const s=l(r.nsText,e);n.insertBefore(s,n.firstChild)},z=(n,e)=>{const s=e.firstElementChild;s&&e.insertBefore(n,s),e.append(n),e.classList.add(r.nsHost)},I=n=>f(n.children).find(s=>s.classList.contains(r.ns)),S=(n,e)=>{const s=e?b(e)??a():a();let i;const y=I(s);if(y?i=y:(i=o(),z(i,s)),N(i,n??""),s===a()){const E=scrollY+"px";a().style.setProperty("--ns-top",E)}return i.nsId},v=n=>{var e;(e=n==null?void 0:n.parentElement)==null||e.classList.remove(r.nsHost),n==null||n.remove()},T=n=>t().find(e=>e.nsId===n)??null,A=n=>{n==="*"?t().forEach(v):v(typeof n=="number"?T(n):k())};return(()=>{var e;(e=h(d(),"#ns"))==null||e.remove();const n=m(`<style id="ns">${w}</style>`);a().append(n)})(),{show:S,hide:A,version:g}};window.addEventListener("load",function(){this.ns=x()})})();
1
+ (function(){"use strict";const b='@keyframes nsRotate{to{transform:rotate(360deg)}}@keyframes nsDash{0%{stroke-dasharray:1,150;stroke-dashoffset:0}50%{stroke-dasharray:90,150;stroke-dashoffset:-35}to{stroke-dasharray:90,150;stroke-dashoffset:-124}}@keyframes nsFade{0%{opacity:0}to{opacity:1}}@keyframes nsAscend{0%{opacity:0;transform:translateY(13px)}to{opacity:1;transform:translateY(0)}}:root{--ns-top: 0}.nsh{--color: DarkSlateGray;--size: 20px;--relSize: calc(var(--size) * .9);--font: "Inter", "Helvetica", "Arial";--weight: 400;--bg: rgba(255, 255, 255, .9);--zIdx: 9999999999;--blur: blur(5px);position:relative;z-index:var(--zIdx)}.nsh:before{width:100%;height:100%;bottom:0;right:0;position:absolute;content:"";background-color:var(--bg);backdrop-filter:var(--blur);-webkit-backdrop-filter:var(--blur);z-index:calc(var(--zIdx) + 1);border-radius:var(--size)}body.nsh,body.nsh:before{width:100%;height:100%;position:fixed;top:var(--ns-top);left:0}.ns{width:100%;height:100%;bottom:0;right:0;display:flex;justify-content:center;align-items:center;position:absolute;z-index:calc(var(--zIdx) + 2);animation:nsFade 2s;gap:var(--relSize)}.nst{color:var(--color);font-size:var(--size);font-family:var(--font),sans-serif;font-weight:var(--weight);max-width:80dvw;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;text-shadow:0 0 .06rem rgba(0,0,0,.25);filter:drop-shadow(0 0 .07rem rgba(0,0,0,.25));animation:nsAscend .5s}.nss{display:block;width:var(--relSize);height:var(--relSize);animation:nsAscend .5s}.nss>svg{animation:nsRotate 2s linear infinite;position:relative;width:inherit;height:inherit;stroke-width:8}.nss .path{stroke:var(--color);stroke-linecap:round;animation:nsDash 1.5s ease-in-out infinite}',d=()=>globalThis.document,a=()=>globalThis.document.body,f=s=>Array.from(s),p=(s,o)=>f(s.querySelectorAll(o)),h=(s,o)=>p(s,o)[0]??null,g=s=>s instanceof Element?s:h(d(),s),c=(s,...o)=>{const l=d().createElement("div");return s&&l.classList.add(s),l.append(...o),l},v=s=>{const o=c();return o.innerHTML=s,o.firstChild},r={ns:"ns",nsHost:"nsh",nsText:"nst",nsSpinner:"nss"},m={ns:"."+r.ns,nsText:"."+r.nsText},x="4.0.8",w=()=>{const s=()=>p(d(),m.ns),o=()=>{const t=v('<svg viewBox="0 0 50 50"><circle class=path cx=25 cy=25 r=20 fill=none /></svg>'),n=c(r.ns,c(r.nsText),c(r.nsSpinner,t));return n.nsId=Date.now(),n},l=()=>s().sort((e,t)=>e.nsId-t.nsId),k=()=>l()[0]??null,z=(e,t)=>{var i;if((i=h(e,m.nsText))==null||i.remove(),!t)return;const n=c(r.nsText,t);e.insertBefore(n,e.firstChild)},I=(e,t)=>{const n=t.firstElementChild;n&&t.insertBefore(e,n),t.append(e),t.classList.add(r.nsHost)},S=e=>f(e.children).find(n=>n.classList.contains(r.ns)),T=(e,t)=>{const n=t?g(t)??a():a();let i;const y=S(n);if(y?i=y:(i=o(),I(i,n)),z(i,e??""),n===a()){const E=scrollY+"px";a().style.setProperty("--ns-top",E)}return i.nsId},u=e=>{var t;(t=e==null?void 0:e.parentElement)==null||t.classList.remove(r.nsHost),e==null||e.remove()},A=e=>s().find(t=>t.nsId===e)??null,N=e=>{e==="*"?s().forEach(u):u(typeof e=="number"?A(e):k())};return(()=>{var t;(t=h(d(),"#ns"))==null||t.remove();const e=v(`<style id="ns">${b}</style>`);a().append(e)})(),{show:T,hide:N,version:x}};window.addEventListener("load",function(){this.ns=w()})})();
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nanosplash",
3
3
  "private": false,
4
- "version": "4.0.6",
4
+ "version": "4.0.8",
5
5
  "type": "module",
6
6
  "author": {
7
7
  "name": "Isak K. Hauge",
@@ -34,12 +34,12 @@
34
34
  "scripts": {
35
35
  "dev": "vite",
36
36
  "build": "bun run build:es && bun run build:cjs && bun run build:iife",
37
- "build:es": "tsc && cross-env entry=./src/composables/ns.ts format=es vite build -m production --outDir dist/es",
38
- "build:cjs": "tsc && cross-env entry=./src/composables/ns.ts format=cjs vite build -m production --outDir dist/cjs",
39
- "build:iife": "tsc && cross-env entry=./src/iife.ts format=iife vite build -m production --outDir dist/iife",
37
+ "build:es": "tsc && cross-env entry=./src/composables/ns.ts format=es vite build -m production --outDir ./dist/es",
38
+ "build:cjs": "tsc && cross-env entry=./src/composables/ns.ts format=cjs vite build -m production --outDir ./dist/cjs",
39
+ "build:iife": "tsc && cross-env entry=./src/iife.ts format=iife vite build -m production --outDir ./dist/iife",
40
40
  "preview": "vite preview",
41
41
  "lint": "eslint . --fix",
42
- "format": "prettier --write \"src/**/*.ts\" \"vite.config.ts\"",
42
+ "format": "prettier --write ./src/**/*.ts ./vite.config.ts",
43
43
  "test": "bunx vitest --coverage"
44
44
  },
45
45
  "types": "./src/types/global.d.ts",
@@ -61,11 +61,13 @@
61
61
  "@typescript-eslint/parser": "^8.33.0",
62
62
  "@vitest/coverage-v8": "3.1.4",
63
63
  "cross-env": "^7.0.3",
64
+ "cssnano": "^7.0.7",
64
65
  "dotenv": "^16.5.0",
65
66
  "eslint": "^9.28.0",
66
67
  "eslint-config-prettier": "^10.1.5",
67
68
  "globals": "^16.2.0",
68
69
  "jsdom": "^26.1.0",
70
+ "postcss": "^8.5.4",
69
71
  "prettier": "3.5.3",
70
72
  "typescript": "^5.8.3",
71
73
  "typescript-eslint": "^8.33.0",
@@ -1,4 +1,4 @@
1
- import style from '@/style/ns.css?raw'
1
+ import style from '@/style/ns.css?inline'
2
2
  import type { INanosplash } from '@/interfaces/INanosplash.ts'
3
3
  import type { Func } from '@/types/generic/function.ts'
4
4
  import type { INSElement } from '@/interfaces/INSElement.ts'
package/vite.config.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import { defineConfig, type LibraryFormats } from 'vite'
2
2
  import path from 'node:path'
3
3
  import { config } from 'dotenv'
4
+ import postcss from 'postcss'
5
+ import cssnano from 'cssnano'
4
6
  config()
5
7
 
6
8
  const name = 'ns'
@@ -21,4 +23,14 @@ export default defineConfig({
21
23
  '@': path.resolve(__dirname, './src'),
22
24
  },
23
25
  },
26
+ plugins: [
27
+ // @ts-expect-error Because postcss is missing types.
28
+ postcss({
29
+ plugins: [
30
+ cssnano({
31
+ preset: 'default', // Use default preset for standard CSS minification
32
+ }),
33
+ ],
34
+ }),
35
+ ],
24
36
  })