├── .gitignore ├── pnpm-workspace.yaml ├── .npmignore ├── .github └── logo.png ├── index.js ├── demo ├── public │ └── favicon.ico ├── src │ ├── assets │ │ └── logo.png │ ├── main.js │ ├── style.css │ ├── components │ │ └── HelloWorld.vue │ └── App.vue ├── postcss.config.js ├── vite.config.js ├── tailwind.config.js ├── index.html └── package.json ├── LICENCE ├── package.json ├── index.cjs ├── README.md └── pnpm-lock.yaml /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - demo 3 | -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | demo 2 | vite.config.js 3 | .github 4 | tailwind.config.js 5 | postcss.config.js -------------------------------------------------------------------------------- /.github/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/craigrileyuk/tailwind-fluid-typography/HEAD/.github/logo.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | import tailwindFluidTypography from "./index.cjs"; 2 | 3 | export default tailwindFluidTypography; -------------------------------------------------------------------------------- /demo/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/craigrileyuk/tailwind-fluid-typography/HEAD/demo/public/favicon.ico -------------------------------------------------------------------------------- /demo/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/craigrileyuk/tailwind-fluid-typography/HEAD/demo/src/assets/logo.png -------------------------------------------------------------------------------- /demo/src/main.js: -------------------------------------------------------------------------------- 1 | import "./style.css"; 2 | 3 | import { createApp } from "vue"; 4 | import App from "./App.vue"; 5 | 6 | createApp(App).mount("#app"); 7 | -------------------------------------------------------------------------------- /demo/postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | "postcss-import": {}, 4 | "tailwindcss/nesting": {}, 5 | tailwindcss: {}, 6 | autoprefixer: {}, 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /demo/vite.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from "vite"; 2 | import vue from "@vitejs/plugin-vue"; 3 | 4 | // https://vitejs.dev/config/ 5 | export default defineConfig({ 6 | plugins: [vue({})], 7 | }); 8 | -------------------------------------------------------------------------------- /demo/tailwind.config.js: -------------------------------------------------------------------------------- 1 | import fluidTypography from "tailwind-fluid-typography"; 2 | 3 | export default { 4 | content: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], 5 | theme: { 6 | extend: {}, 7 | }, 8 | plugins: [fluidTypography], 9 | }; 10 | -------------------------------------------------------------------------------- /demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Tailwind Fluid Typography 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /demo/src/style.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; 4 | 5 | @layer utilities { 6 | .fluid-prose { 7 | :where(h1) { 8 | @apply fluid-5xl mb-0; 9 | } 10 | :where(h2) { 11 | @apply fluid-4xl mb-0; 12 | } 13 | :where(h3) { 14 | @apply fluid-3xl mb-0; 15 | } 16 | :where(h4) { 17 | @apply fluid-2xl mb-0; 18 | } 19 | :where(h5) { 20 | @apply fluid-xl mb-0; 21 | } 22 | :where(h6) { 23 | @apply fluid-lg mb-0; 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /demo/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "type": "module", 7 | "scripts": { 8 | "dev": "vite", 9 | "build": "vite build", 10 | "preview": "vite preview" 11 | }, 12 | "keywords": [], 13 | "author": "", 14 | "license": "MIT", 15 | "dependencies": { 16 | "tailwind-fluid-typography": "workspace:*" 17 | }, 18 | "devDependencies": { 19 | "@vitejs/plugin-vue": "^5.2.1", 20 | "autoprefixer": "^10.4.20", 21 | "postcss": "^8.4.49", 22 | "postcss-import": "^16.1.0", 23 | "tailwindcss": "^3.4.17", 24 | "vite": "^6.0.7", 25 | "vue": "^3.5.0" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /demo/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 35 | 36 | 41 | -------------------------------------------------------------------------------- /demo/src/App.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 39 | -------------------------------------------------------------------------------- /LICENCE: -------------------------------------------------------------------------------- 1 | he MIT License (MIT) 2 | 3 | Copyright © 2025 Craig Riley 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tailwind-fluid-typography", 3 | "version": "2.0.0", 4 | "description": "Fluid typography plugin for the tailwindcss framework", 5 | "main": "index.cjs", 6 | "module": "index.js", 7 | "exports": { 8 | "require": "./index.cjs", 9 | "import": "./index.js" 10 | }, 11 | "type": "module", 12 | "contributors": [ 13 | "Craig Riley" 14 | ], 15 | "scripts": { 16 | "dev": "pnpm --filter=demo run dev", 17 | "build": "pnpm --filter=demo run build", 18 | "preview": "pnpm --filter=demo run preview" 19 | }, 20 | "repository": { 21 | "type": "git", 22 | "url": "git+https://github.com/craigrileyuk/tailwind-fluid-typography.git" 23 | }, 24 | "keywords": [ 25 | "tailwind", 26 | "tailwindcss", 27 | "plugin", 28 | "tailwindcss-plugin", 29 | "typography", 30 | "fluid", 31 | "responsive" 32 | ], 33 | "license": "MIT", 34 | "bugs": { 35 | "url": "https://github.com/craigrileyuk/tailwind-fluid-typography/issues" 36 | }, 37 | "homepage": "https://github.com/craigrileyuk/tailwind-fluid-typography#readme", 38 | "peerDependencies": { 39 | "tailwindcss": ">=1.2.0" 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /index.cjs: -------------------------------------------------------------------------------- 1 | const plugin = require("tailwindcss/plugin"); 2 | 3 | // React Demo: https://codesandbox.io/s/clamp-linear-intepolation-based-on-viewport-width-builder-xgkft 4 | 5 | function generateFluidRule(power, { minTypeScale, maxTypeScale, minScreenSize, maxScreenSize, remSize }) { 6 | const minFontSize = Math.pow(minTypeScale, power); 7 | const maxFontSize = Math.pow(maxTypeScale, power); 8 | // Transform the screen sizes from px values to expected rem values 9 | const minScreenSizeRem = minScreenSize / remSize; 10 | const maxScreenSizeRem = maxScreenSize / remSize; 11 | // Quick function to round calculations to a locked number of decimal places 12 | const r = (v) => v.toFixed(4); 13 | 14 | const slope = (maxFontSize - minFontSize) / (maxScreenSizeRem - minScreenSizeRem); 15 | let interpolation = minFontSize - slope * minScreenSizeRem; 16 | let sign = "+"; 17 | if (interpolation < 0) { 18 | sign = "-"; 19 | interpolation = Math.abs(interpolation); 20 | } 21 | 22 | // Return the formatted CSS value for the font-size 23 | return `clamp(${r(minFontSize)}rem, calc(${r(slope * 100)}vw ${sign} ${r(interpolation)}rem), ${r( 24 | maxFontSize 25 | )}rem)`; 26 | } 27 | 28 | const fluidTypography = function ({ addUtilities, theme }) { 29 | const fluidConfig = {}; 30 | const hasCustomRem = !!theme("fluidTypography.remSize"); 31 | /** 32 | * Suggested px value of rem. Since all browsers use 16, this is the default 33 | */ 34 | fluidConfig.remSize = theme("fluidTypography.remSize", 16); 35 | /** 36 | * This controls the scale at which the font sizes will increase at the lowest bounds (e.g. on mobile devices) 37 | */ 38 | fluidConfig.minTypeScale = theme("fluidTypography.minTypeScale", 1.2); 39 | /** 40 | * This controls the scale at which the font sizes will increase at the highest bounds (e.g. on desktop computers) 41 | */ 42 | fluidConfig.maxTypeScale = theme("fluidTypography.maxTypeScale", 1.333); 43 | /** 44 | * The px size of the screen at which you want the font-size to stop decreasing 45 | */ 46 | fluidConfig.minScreenSize = theme("fluidTypography.minScreenSize", 320); 47 | /** 48 | * The px size of the screen at which you want the font-size to stop increasing 49 | */ 50 | fluidConfig.maxScreenSize = theme("fluidTypography.maxScreenSize", 1920); 51 | /** 52 | * The relative line-height of the headings 53 | */ 54 | fluidConfig.lineHeight = theme("fluidTypography.lineHeight", 1.35); 55 | 56 | // letterSpacing sizes based on https://vuetifyjs.com/en/styles/text-and-typography/#typography 57 | const rules = { 58 | ".fluid-xs": { 59 | fontSize: generateFluidRule(-2, fluidConfig), 60 | letterSpacing: 0.2, 61 | }, 62 | ".fluid-sm": { 63 | fontSize: generateFluidRule(-1, fluidConfig), 64 | lineHeight: 1.5, 65 | letterSpacing: 0.2, 66 | }, 67 | ".fluid-base": { 68 | fontSize: hasCustomRem ? `${fluidConfig.remSize}px` : "1rem", 69 | lineHeight: 1.4, 70 | letterSpacing: 0.5, 71 | }, 72 | ".fluid-lg": { 73 | fontSize: generateFluidRule(1, fluidConfig), 74 | letterSpacing: "0.009375em", 75 | }, 76 | ".fluid-xl": { 77 | fontSize: generateFluidRule(2, fluidConfig), 78 | letterSpacing: "0.0125em", 79 | }, 80 | ".fluid-2xl": { 81 | fontSize: generateFluidRule(3, fluidConfig), 82 | letterSpacing: "normal", 83 | }, 84 | 85 | ".fluid-3xl": { 86 | fontSize: generateFluidRule(4, fluidConfig), 87 | letterSpacing: "0.0073529412em", 88 | }, 89 | 90 | ".fluid-4xl": { 91 | fontSize: generateFluidRule(5, fluidConfig), 92 | letterSpacing: "normal", 93 | }, 94 | ".fluid-5xl": { 95 | fontSize: generateFluidRule(6, fluidConfig), 96 | letterSpacing: "-0.0083333333em", 97 | }, 98 | ".fluid-6xl": { 99 | fontSize: generateFluidRule(7, fluidConfig), 100 | letterSpacing: "-0.015625em", 101 | }, 102 | ".fluid-7xl": { 103 | fontSize: generateFluidRule(8, fluidConfig), 104 | letterSpacing: "-0.0234375em", 105 | }, 106 | ".fluid-8xl": { 107 | fontSize: generateFluidRule(9, fluidConfig), 108 | letterSpacing: "-0.03125em", 109 | }, 110 | ".fluid-9xl": { 111 | fontSize: generateFluidRule(10, fluidConfig), 112 | letterSpacing: "-0.04em", 113 | }, 114 | }; 115 | /** 116 | * We use CSS variables here to allow the values to be overridden if used in a .fluid-prose style 117 | */ 118 | const lh = "--fluid-line-height"; 119 | const ls = "--fluid-letter-spacing"; 120 | Object.keys(rules).map((key) => { 121 | const rule = rules[key]; 122 | rule[lh] = rule.lineHeight?.toString() || fluidConfig.lineHeight?.toString(); 123 | rule[ls] = rule.letterSpacing; 124 | rule.lineHeight = `var(${lh})`; 125 | rule.letterSpacing = `var(${ls})`; 126 | }); 127 | 128 | addUtilities(rules); 129 | }; 130 | 131 | module.exports = plugin(fluidTypography); 132 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | Tailwind Fluid Typography 3 |

4 | 5 |

6 | Downloads 7 | Version 8 | Licence 9 |

10 | 11 | # Tailwind Fluid Typography 12 | 13 | Based on the fluid typography theory devised by [Mike Riethmuller](https://madebymike.com.au) and incorporating ideas from Google's Material Design spec, Tailwind Fluid Typography gives you a new set of utility classes that scale modularly depending on screen size. 14 | 15 | - Set breakpoints for when your type should start and stop scaling 16 | - Dual scaling system gives you the ability to set your desired scale for your lower breakpoint and for your higher breakpoint 17 | - Provides xs, sm, base, lg, xl, 2xl, 3xl, 4xl, 5xl, 6xl, 7xl, 8xl and 9xl font-sizes 18 | 19 | ## Installation 20 | 21 | ``` 22 | npm i tailwind-fluid-typography 23 | // or 24 | yarn add tailwind-fluid-typography 25 | ``` 26 | 27 | ```js 28 | // tailwind.config.js 29 | import fluidTypography from "tailwind-fluid-typography"; 30 | 31 | export default { 32 | theme: { 33 | fluidTypography: {}, 34 | }, 35 | plugins: [fluidTypography], 36 | }; 37 | ``` 38 | 39 | ## Usage 40 | 41 | ```html 42 |

Fluid Typography @ 4XL

43 |

Fluid Typography @ 3XL

44 |

Fluid Typography @ 2XL

45 |

Fluid Typography @ XL

46 |
Fluid Typography @ LG
47 |
Fluid Typography @ LG
48 |

Fluid Typography

49 |

Fluid Typography @ SM

50 | Fluid Typography @ XS 51 | ``` 52 | 53 | ## Customisation 54 | 55 | To customise the plugin settings, you can pass the following properties as part of a `fluidTypography` property on `theme`: 56 | 57 | | Name | Type | Default | Description | 58 | | ------------- | ------ | ------- | -------------------------------------------------------------- | 59 | | remSize | Number | 16 | The px size to assume for 1rem ( \*reference only ) | 60 | | minScreenSize | Number | 320 | The screen size (in px) at which to begin scaling | 61 | | maxScreenSize | Number | 1920 | The screen size (in px) at which to stop scaling | 62 | | minTypeScale | Number | 1.2 | The scaling factor to use at minScreenSize | 63 | | maxTypeScale | Number | 1.333 | The scaling factor to use at maxScreenSize | 64 | | lineHeight | Number | 1.35 | The line-height to use for heading classes | 65 | 66 | - _remSize is required as configuration for Tailwind to setup fluid typography classes. It does not change your actual html base REM size, you must do this yourself._ 67 | 68 | For example: 69 | 70 | ```js 71 | theme: { 72 | fluidTypography: { 73 | remSize: 14, 74 | minScreenSize: 600, 75 | maxScreenSize: 1280, 76 | minTypeScale: 1.250, 77 | maxTypeScale: 1.618, 78 | lineHeight: 1.5 79 | } 80 | } 81 | ``` 82 | 83 | ### Suggested type scales 84 | 85 | | | | | 86 | | ---------------- | ----- | -------------------- | 87 | | Minor Second | 1.067 | | 88 | | Major Second | 1.125 | | 89 | | Minor Third | 1.200 | default minTypeScale | 90 | | Major Third | 1.250 | | 91 | | Perfect Fourth | 1.333 | default maxTypeScale | 92 | | Augmented Fourth | 1.414 | | 93 | | Perfect Fifth | 1.500 | | 94 | | Golden Ratio | 1.618 | | 95 | 96 | ## Fluid Prose 97 | 98 | At times, you may need to render fluid typography of which you don't have direct control over the classes. Because the style requirements of this vary greatly between sites, we haven't included the functionality in the plugin itself, but it is easily implemented in your own Tailwind stylesheet: 99 | 100 | ```css 101 | @layer utilities { 102 | .fluid-prose { 103 | :where(h1) { 104 | @apply fluid-5xl mb-0; 105 | } 106 | :where(h2) { 107 | @apply fluid-4xl mb-0; 108 | } 109 | :where(h3) { 110 | @apply fluid-3xl mb-0; 111 | } 112 | :where(h4) { 113 | @apply fluid-2xl mb-0; 114 | } 115 | :where(h5) { 116 | @apply fluid-xl mb-0; 117 | } 118 | :where(h6) { 119 | @apply fluid-lg mb-0; 120 | } 121 | } 122 | } 123 | ``` 124 | 125 | In case you were wondering, the `:where` selector comes with a CSS specificity of 0, so it is more easily overridden by other utility/custom classes than a normal `

`-style rule. 126 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: '9.0' 2 | 3 | settings: 4 | autoInstallPeers: true 5 | excludeLinksFromLockfile: false 6 | 7 | importers: 8 | 9 | .: 10 | dependencies: 11 | tailwindcss: 12 | specifier: '>=1.2.0' 13 | version: 3.4.17 14 | 15 | demo: 16 | dependencies: 17 | tailwind-fluid-typography: 18 | specifier: workspace:* 19 | version: link:.. 20 | devDependencies: 21 | '@vitejs/plugin-vue': 22 | specifier: ^5.2.1 23 | version: 5.2.1(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0))(vue@3.5.13) 24 | autoprefixer: 25 | specifier: ^10.4.20 26 | version: 10.4.20(postcss@8.4.49) 27 | postcss: 28 | specifier: ^8.4.49 29 | version: 8.4.49 30 | postcss-import: 31 | specifier: ^16.1.0 32 | version: 16.1.0(postcss@8.4.49) 33 | tailwindcss: 34 | specifier: ^3.4.17 35 | version: 3.4.17 36 | vite: 37 | specifier: ^6.0.7 38 | version: 6.0.7(jiti@1.21.7)(yaml@2.7.0) 39 | vue: 40 | specifier: ^3.5.0 41 | version: 3.5.13 42 | 43 | packages: 44 | 45 | '@alloc/quick-lru@5.2.0': 46 | resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} 47 | engines: {node: '>=10'} 48 | 49 | '@babel/helper-string-parser@7.25.9': 50 | resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} 51 | engines: {node: '>=6.9.0'} 52 | 53 | '@babel/helper-validator-identifier@7.25.9': 54 | resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} 55 | engines: {node: '>=6.9.0'} 56 | 57 | '@babel/parser@7.26.3': 58 | resolution: {integrity: sha512-WJ/CvmY8Mea8iDXo6a7RK2wbmJITT5fN3BEkRuFlxVyNx8jOKIIhmC4fSkTcPcf8JyavbBwIe6OpiCOBXt/IcA==} 59 | engines: {node: '>=6.0.0'} 60 | hasBin: true 61 | 62 | '@babel/types@7.26.3': 63 | resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} 64 | engines: {node: '>=6.9.0'} 65 | 66 | '@esbuild/aix-ppc64@0.24.2': 67 | resolution: {integrity: sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==} 68 | engines: {node: '>=18'} 69 | cpu: [ppc64] 70 | os: [aix] 71 | 72 | '@esbuild/android-arm64@0.24.2': 73 | resolution: {integrity: sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==} 74 | engines: {node: '>=18'} 75 | cpu: [arm64] 76 | os: [android] 77 | 78 | '@esbuild/android-arm@0.24.2': 79 | resolution: {integrity: sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==} 80 | engines: {node: '>=18'} 81 | cpu: [arm] 82 | os: [android] 83 | 84 | '@esbuild/android-x64@0.24.2': 85 | resolution: {integrity: sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==} 86 | engines: {node: '>=18'} 87 | cpu: [x64] 88 | os: [android] 89 | 90 | '@esbuild/darwin-arm64@0.24.2': 91 | resolution: {integrity: sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==} 92 | engines: {node: '>=18'} 93 | cpu: [arm64] 94 | os: [darwin] 95 | 96 | '@esbuild/darwin-x64@0.24.2': 97 | resolution: {integrity: sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==} 98 | engines: {node: '>=18'} 99 | cpu: [x64] 100 | os: [darwin] 101 | 102 | '@esbuild/freebsd-arm64@0.24.2': 103 | resolution: {integrity: sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==} 104 | engines: {node: '>=18'} 105 | cpu: [arm64] 106 | os: [freebsd] 107 | 108 | '@esbuild/freebsd-x64@0.24.2': 109 | resolution: {integrity: sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==} 110 | engines: {node: '>=18'} 111 | cpu: [x64] 112 | os: [freebsd] 113 | 114 | '@esbuild/linux-arm64@0.24.2': 115 | resolution: {integrity: sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==} 116 | engines: {node: '>=18'} 117 | cpu: [arm64] 118 | os: [linux] 119 | 120 | '@esbuild/linux-arm@0.24.2': 121 | resolution: {integrity: sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==} 122 | engines: {node: '>=18'} 123 | cpu: [arm] 124 | os: [linux] 125 | 126 | '@esbuild/linux-ia32@0.24.2': 127 | resolution: {integrity: sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==} 128 | engines: {node: '>=18'} 129 | cpu: [ia32] 130 | os: [linux] 131 | 132 | '@esbuild/linux-loong64@0.24.2': 133 | resolution: {integrity: sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==} 134 | engines: {node: '>=18'} 135 | cpu: [loong64] 136 | os: [linux] 137 | 138 | '@esbuild/linux-mips64el@0.24.2': 139 | resolution: {integrity: sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==} 140 | engines: {node: '>=18'} 141 | cpu: [mips64el] 142 | os: [linux] 143 | 144 | '@esbuild/linux-ppc64@0.24.2': 145 | resolution: {integrity: sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==} 146 | engines: {node: '>=18'} 147 | cpu: [ppc64] 148 | os: [linux] 149 | 150 | '@esbuild/linux-riscv64@0.24.2': 151 | resolution: {integrity: sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==} 152 | engines: {node: '>=18'} 153 | cpu: [riscv64] 154 | os: [linux] 155 | 156 | '@esbuild/linux-s390x@0.24.2': 157 | resolution: {integrity: sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==} 158 | engines: {node: '>=18'} 159 | cpu: [s390x] 160 | os: [linux] 161 | 162 | '@esbuild/linux-x64@0.24.2': 163 | resolution: {integrity: sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==} 164 | engines: {node: '>=18'} 165 | cpu: [x64] 166 | os: [linux] 167 | 168 | '@esbuild/netbsd-arm64@0.24.2': 169 | resolution: {integrity: sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==} 170 | engines: {node: '>=18'} 171 | cpu: [arm64] 172 | os: [netbsd] 173 | 174 | '@esbuild/netbsd-x64@0.24.2': 175 | resolution: {integrity: sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==} 176 | engines: {node: '>=18'} 177 | cpu: [x64] 178 | os: [netbsd] 179 | 180 | '@esbuild/openbsd-arm64@0.24.2': 181 | resolution: {integrity: sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==} 182 | engines: {node: '>=18'} 183 | cpu: [arm64] 184 | os: [openbsd] 185 | 186 | '@esbuild/openbsd-x64@0.24.2': 187 | resolution: {integrity: sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==} 188 | engines: {node: '>=18'} 189 | cpu: [x64] 190 | os: [openbsd] 191 | 192 | '@esbuild/sunos-x64@0.24.2': 193 | resolution: {integrity: sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==} 194 | engines: {node: '>=18'} 195 | cpu: [x64] 196 | os: [sunos] 197 | 198 | '@esbuild/win32-arm64@0.24.2': 199 | resolution: {integrity: sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==} 200 | engines: {node: '>=18'} 201 | cpu: [arm64] 202 | os: [win32] 203 | 204 | '@esbuild/win32-ia32@0.24.2': 205 | resolution: {integrity: sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==} 206 | engines: {node: '>=18'} 207 | cpu: [ia32] 208 | os: [win32] 209 | 210 | '@esbuild/win32-x64@0.24.2': 211 | resolution: {integrity: sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==} 212 | engines: {node: '>=18'} 213 | cpu: [x64] 214 | os: [win32] 215 | 216 | '@isaacs/cliui@8.0.2': 217 | resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} 218 | engines: {node: '>=12'} 219 | 220 | '@jridgewell/gen-mapping@0.3.8': 221 | resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} 222 | engines: {node: '>=6.0.0'} 223 | 224 | '@jridgewell/resolve-uri@3.1.2': 225 | resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 226 | engines: {node: '>=6.0.0'} 227 | 228 | '@jridgewell/set-array@1.2.1': 229 | resolution: {integrity: sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==} 230 | engines: {node: '>=6.0.0'} 231 | 232 | '@jridgewell/sourcemap-codec@1.5.0': 233 | resolution: {integrity: sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==} 234 | 235 | '@jridgewell/trace-mapping@0.3.25': 236 | resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==} 237 | 238 | '@nodelib/fs.scandir@2.1.5': 239 | resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} 240 | engines: {node: '>= 8'} 241 | 242 | '@nodelib/fs.stat@2.0.5': 243 | resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} 244 | engines: {node: '>= 8'} 245 | 246 | '@nodelib/fs.walk@1.2.8': 247 | resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} 248 | engines: {node: '>= 8'} 249 | 250 | '@pkgjs/parseargs@0.11.0': 251 | resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} 252 | engines: {node: '>=14'} 253 | 254 | '@rollup/rollup-android-arm-eabi@4.30.0': 255 | resolution: {integrity: sha512-qFcFto9figFLz2g25DxJ1WWL9+c91fTxnGuwhToCl8BaqDsDYMl/kOnBXAyAqkkzAWimYMSWNPWEjt+ADAHuoQ==} 256 | cpu: [arm] 257 | os: [android] 258 | 259 | '@rollup/rollup-android-arm64@4.30.0': 260 | resolution: {integrity: sha512-vqrQdusvVl7dthqNjWCL043qelBK+gv9v3ZiqdxgaJvmZyIAAXMjeGVSqZynKq69T7062T5VrVTuikKSAAVP6A==} 261 | cpu: [arm64] 262 | os: [android] 263 | 264 | '@rollup/rollup-darwin-arm64@4.30.0': 265 | resolution: {integrity: sha512-617pd92LhdA9+wpixnzsyhVft3szYiN16aNUMzVkf2N+yAk8UXY226Bfp36LvxYTUt7MO/ycqGFjQgJ0wlMaWQ==} 266 | cpu: [arm64] 267 | os: [darwin] 268 | 269 | '@rollup/rollup-darwin-x64@4.30.0': 270 | resolution: {integrity: sha512-Y3b4oDoaEhCypg8ajPqigKDcpi5ZZovemQl9Edpem0uNv6UUjXv7iySBpGIUTSs2ovWOzYpfw9EbFJXF/fJHWw==} 271 | cpu: [x64] 272 | os: [darwin] 273 | 274 | '@rollup/rollup-freebsd-arm64@4.30.0': 275 | resolution: {integrity: sha512-3REQJ4f90sFIBfa0BUokiCdrV/E4uIjhkWe1bMgCkhFXbf4D8YN6C4zwJL881GM818qVYE9BO3dGwjKhpo2ABA==} 276 | cpu: [arm64] 277 | os: [freebsd] 278 | 279 | '@rollup/rollup-freebsd-x64@4.30.0': 280 | resolution: {integrity: sha512-ZtY3Y8icbe3Cc+uQicsXG5L+CRGUfLZjW6j2gn5ikpltt3Whqjfo5mkyZ86UiuHF9Q3ZsaQeW7YswlHnN+lAcg==} 281 | cpu: [x64] 282 | os: [freebsd] 283 | 284 | '@rollup/rollup-linux-arm-gnueabihf@4.30.0': 285 | resolution: {integrity: sha512-bsPGGzfiHXMhQGuFGpmo2PyTwcrh2otL6ycSZAFTESviUoBOuxF7iBbAL5IJXc/69peXl5rAtbewBFeASZ9O0g==} 286 | cpu: [arm] 287 | os: [linux] 288 | 289 | '@rollup/rollup-linux-arm-musleabihf@4.30.0': 290 | resolution: {integrity: sha512-kvyIECEhs2DrrdfQf++maCWJIQ974EI4txlz1nNSBaCdtf7i5Xf1AQCEJWOC5rEBisdaMFFnOWNLYt7KpFqy5A==} 291 | cpu: [arm] 292 | os: [linux] 293 | 294 | '@rollup/rollup-linux-arm64-gnu@4.30.0': 295 | resolution: {integrity: sha512-CFE7zDNrokaotXu+shwIrmWrFxllg79vciH4E/zeK7NitVuWEaXRzS0mFfFvyhZfn8WfVOG/1E9u8/DFEgK7WQ==} 296 | cpu: [arm64] 297 | os: [linux] 298 | 299 | '@rollup/rollup-linux-arm64-musl@4.30.0': 300 | resolution: {integrity: sha512-MctNTBlvMcIBP0t8lV/NXiUwFg9oK5F79CxLU+a3xgrdJjfBLVIEHSAjQ9+ipofN2GKaMLnFFXLltg1HEEPaGQ==} 301 | cpu: [arm64] 302 | os: [linux] 303 | 304 | '@rollup/rollup-linux-loongarch64-gnu@4.30.0': 305 | resolution: {integrity: sha512-fBpoYwLEPivL3q368+gwn4qnYnr7GVwM6NnMo8rJ4wb0p/Y5lg88vQRRP077gf+tc25akuqd+1Sxbn9meODhwA==} 306 | cpu: [loong64] 307 | os: [linux] 308 | 309 | '@rollup/rollup-linux-powerpc64le-gnu@4.30.0': 310 | resolution: {integrity: sha512-1hiHPV6dUaqIMXrIjN+vgJqtfkLpqHS1Xsg0oUfUVD98xGp1wX89PIXgDF2DWra1nxAd8dfE0Dk59MyeKaBVAw==} 311 | cpu: [ppc64] 312 | os: [linux] 313 | 314 | '@rollup/rollup-linux-riscv64-gnu@4.30.0': 315 | resolution: {integrity: sha512-U0xcC80SMpEbvvLw92emHrNjlS3OXjAM0aVzlWfar6PR0ODWCTQtKeeB+tlAPGfZQXicv1SpWwRz9Hyzq3Jx3g==} 316 | cpu: [riscv64] 317 | os: [linux] 318 | 319 | '@rollup/rollup-linux-s390x-gnu@4.30.0': 320 | resolution: {integrity: sha512-VU/P/IODrNPasgZDLIFJmMiLGez+BN11DQWfTVlViJVabyF3JaeaJkP6teI8760f18BMGCQOW9gOmuzFaI1pUw==} 321 | cpu: [s390x] 322 | os: [linux] 323 | 324 | '@rollup/rollup-linux-x64-gnu@4.30.0': 325 | resolution: {integrity: sha512-laQVRvdbKmjXuFA3ZiZj7+U24FcmoPlXEi2OyLfbpY2MW1oxLt9Au8q9eHd0x6Pw/Kw4oe9gwVXWwIf2PVqblg==} 326 | cpu: [x64] 327 | os: [linux] 328 | 329 | '@rollup/rollup-linux-x64-musl@4.30.0': 330 | resolution: {integrity: sha512-3wzKzduS7jzxqcOvy/ocU/gMR3/QrHEFLge5CD7Si9fyHuoXcidyYZ6jyx8OPYmCcGm3uKTUl+9jUSAY74Ln5A==} 331 | cpu: [x64] 332 | os: [linux] 333 | 334 | '@rollup/rollup-win32-arm64-msvc@4.30.0': 335 | resolution: {integrity: sha512-jROwnI1+wPyuv696rAFHp5+6RFhXGGwgmgSfzE8e4xfit6oLRg7GyMArVUoM3ChS045OwWr9aTnU+2c1UdBMyw==} 336 | cpu: [arm64] 337 | os: [win32] 338 | 339 | '@rollup/rollup-win32-ia32-msvc@4.30.0': 340 | resolution: {integrity: sha512-duzweyup5WELhcXx5H1jokpr13i3BV9b48FMiikYAwk/MT1LrMYYk2TzenBd0jj4ivQIt58JWSxc19y4SvLP4g==} 341 | cpu: [ia32] 342 | os: [win32] 343 | 344 | '@rollup/rollup-win32-x64-msvc@4.30.0': 345 | resolution: {integrity: sha512-DYvxS0M07PvgvavMIybCOBYheyrqlui6ZQBHJs6GqduVzHSZ06TPPvlfvnYstjODHQ8UUXFwt5YE+h0jFI8kwg==} 346 | cpu: [x64] 347 | os: [win32] 348 | 349 | '@types/estree@1.0.6': 350 | resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} 351 | 352 | '@vitejs/plugin-vue@5.2.1': 353 | resolution: {integrity: sha512-cxh314tzaWwOLqVes2gnnCtvBDcM1UMdn+iFR+UjAn411dPT3tOmqrJjbMd7koZpMAmBM/GqeV4n9ge7JSiJJQ==} 354 | engines: {node: ^18.0.0 || >=20.0.0} 355 | peerDependencies: 356 | vite: ^5.0.0 || ^6.0.0 357 | vue: ^3.2.25 358 | 359 | '@vue/compiler-core@3.5.13': 360 | resolution: {integrity: sha512-oOdAkwqUfW1WqpwSYJce06wvt6HljgY3fGeM9NcVA1HaYOij3mZG9Rkysn0OHuyUAGMbEbARIpsG+LPVlBJ5/Q==} 361 | 362 | '@vue/compiler-dom@3.5.13': 363 | resolution: {integrity: sha512-ZOJ46sMOKUjO3e94wPdCzQ6P1Lx/vhp2RSvfaab88Ajexs0AHeV0uasYhi99WPaogmBlRHNRuly8xV75cNTMDA==} 364 | 365 | '@vue/compiler-sfc@3.5.13': 366 | resolution: {integrity: sha512-6VdaljMpD82w6c2749Zhf5T9u5uLBWKnVue6XWxprDobftnletJ8+oel7sexFfM3qIxNmVE7LSFGTpv6obNyaQ==} 367 | 368 | '@vue/compiler-ssr@3.5.13': 369 | resolution: {integrity: sha512-wMH6vrYHxQl/IybKJagqbquvxpWCuVYpoUJfCqFZwa/JY1GdATAQ+TgVtgrwwMZ0D07QhA99rs/EAAWfvG6KpA==} 370 | 371 | '@vue/reactivity@3.5.13': 372 | resolution: {integrity: sha512-NaCwtw8o48B9I6L1zl2p41OHo/2Z4wqYGGIK1Khu5T7yxrn+ATOixn/Udn2m+6kZKB/J7cuT9DbWWhRxqixACg==} 373 | 374 | '@vue/runtime-core@3.5.13': 375 | resolution: {integrity: sha512-Fj4YRQ3Az0WTZw1sFe+QDb0aXCerigEpw418pw1HBUKFtnQHWzwojaukAs2X/c9DQz4MQ4bsXTGlcpGxU/RCIw==} 376 | 377 | '@vue/runtime-dom@3.5.13': 378 | resolution: {integrity: sha512-dLaj94s93NYLqjLiyFzVs9X6dWhTdAlEAciC3Moq7gzAc13VJUdCnjjRurNM6uTLFATRHexHCTu/Xp3eW6yoog==} 379 | 380 | '@vue/server-renderer@3.5.13': 381 | resolution: {integrity: sha512-wAi4IRJV/2SAW3htkTlB+dHeRmpTiVIK1OGLWV1yeStVSebSQQOwGwIq0D3ZIoBj2C2qpgz5+vX9iEBkTdk5YA==} 382 | peerDependencies: 383 | vue: 3.5.13 384 | 385 | '@vue/shared@3.5.13': 386 | resolution: {integrity: sha512-/hnE/qP5ZoGpol0a5mDi45bOd7t3tjYJBjsgCsivow7D48cJeV5l05RD82lPqi7gRiphZM37rnhW1l6ZoCNNnQ==} 387 | 388 | ansi-regex@5.0.1: 389 | resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} 390 | engines: {node: '>=8'} 391 | 392 | ansi-regex@6.1.0: 393 | resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} 394 | engines: {node: '>=12'} 395 | 396 | ansi-styles@4.3.0: 397 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 398 | engines: {node: '>=8'} 399 | 400 | ansi-styles@6.2.1: 401 | resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} 402 | engines: {node: '>=12'} 403 | 404 | any-promise@1.3.0: 405 | resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} 406 | 407 | anymatch@3.1.3: 408 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 409 | engines: {node: '>= 8'} 410 | 411 | arg@5.0.2: 412 | resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} 413 | 414 | autoprefixer@10.4.20: 415 | resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} 416 | engines: {node: ^10 || ^12 || >=14} 417 | hasBin: true 418 | peerDependencies: 419 | postcss: ^8.1.0 420 | 421 | balanced-match@1.0.2: 422 | resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 423 | 424 | binary-extensions@2.3.0: 425 | resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} 426 | engines: {node: '>=8'} 427 | 428 | brace-expansion@2.0.1: 429 | resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} 430 | 431 | braces@3.0.3: 432 | resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 433 | engines: {node: '>=8'} 434 | 435 | browserslist@4.24.3: 436 | resolution: {integrity: sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==} 437 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 438 | hasBin: true 439 | 440 | camelcase-css@2.0.1: 441 | resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} 442 | engines: {node: '>= 6'} 443 | 444 | caniuse-lite@1.0.30001690: 445 | resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} 446 | 447 | chokidar@3.6.0: 448 | resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} 449 | engines: {node: '>= 8.10.0'} 450 | 451 | color-convert@2.0.1: 452 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 453 | engines: {node: '>=7.0.0'} 454 | 455 | color-name@1.1.4: 456 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 457 | 458 | commander@4.1.1: 459 | resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} 460 | engines: {node: '>= 6'} 461 | 462 | cross-spawn@7.0.6: 463 | resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 464 | engines: {node: '>= 8'} 465 | 466 | cssesc@3.0.0: 467 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 468 | engines: {node: '>=4'} 469 | hasBin: true 470 | 471 | csstype@3.1.3: 472 | resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 473 | 474 | didyoumean@1.2.2: 475 | resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} 476 | 477 | dlv@1.1.3: 478 | resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} 479 | 480 | eastasianwidth@0.2.0: 481 | resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} 482 | 483 | electron-to-chromium@1.5.76: 484 | resolution: {integrity: sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==} 485 | 486 | emoji-regex@8.0.0: 487 | resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 488 | 489 | emoji-regex@9.2.2: 490 | resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} 491 | 492 | entities@4.5.0: 493 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 494 | engines: {node: '>=0.12'} 495 | 496 | esbuild@0.24.2: 497 | resolution: {integrity: sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==} 498 | engines: {node: '>=18'} 499 | hasBin: true 500 | 501 | escalade@3.2.0: 502 | resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} 503 | engines: {node: '>=6'} 504 | 505 | estree-walker@2.0.2: 506 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 507 | 508 | fast-glob@3.3.3: 509 | resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} 510 | engines: {node: '>=8.6.0'} 511 | 512 | fastq@1.18.0: 513 | resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} 514 | 515 | fill-range@7.1.1: 516 | resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} 517 | engines: {node: '>=8'} 518 | 519 | foreground-child@3.3.0: 520 | resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} 521 | engines: {node: '>=14'} 522 | 523 | fraction.js@4.3.7: 524 | resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} 525 | 526 | fsevents@2.3.3: 527 | resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 528 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 529 | os: [darwin] 530 | 531 | function-bind@1.1.2: 532 | resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 533 | 534 | glob-parent@5.1.2: 535 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 536 | engines: {node: '>= 6'} 537 | 538 | glob-parent@6.0.2: 539 | resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} 540 | engines: {node: '>=10.13.0'} 541 | 542 | glob@10.4.5: 543 | resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} 544 | hasBin: true 545 | 546 | hasown@2.0.2: 547 | resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 548 | engines: {node: '>= 0.4'} 549 | 550 | is-binary-path@2.1.0: 551 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 552 | engines: {node: '>=8'} 553 | 554 | is-core-module@2.16.1: 555 | resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} 556 | engines: {node: '>= 0.4'} 557 | 558 | is-extglob@2.1.1: 559 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 560 | engines: {node: '>=0.10.0'} 561 | 562 | is-fullwidth-code-point@3.0.0: 563 | resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} 564 | engines: {node: '>=8'} 565 | 566 | is-glob@4.0.3: 567 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 568 | engines: {node: '>=0.10.0'} 569 | 570 | is-number@7.0.0: 571 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 572 | engines: {node: '>=0.12.0'} 573 | 574 | isexe@2.0.0: 575 | resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 576 | 577 | jackspeak@3.4.3: 578 | resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} 579 | 580 | jiti@1.21.7: 581 | resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} 582 | hasBin: true 583 | 584 | lilconfig@3.1.3: 585 | resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} 586 | engines: {node: '>=14'} 587 | 588 | lines-and-columns@1.2.4: 589 | resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} 590 | 591 | lru-cache@10.4.3: 592 | resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 593 | 594 | magic-string@0.30.17: 595 | resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} 596 | 597 | merge2@1.4.1: 598 | resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 599 | engines: {node: '>= 8'} 600 | 601 | micromatch@4.0.8: 602 | resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 603 | engines: {node: '>=8.6'} 604 | 605 | minimatch@9.0.5: 606 | resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 607 | engines: {node: '>=16 || 14 >=14.17'} 608 | 609 | minipass@7.1.2: 610 | resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} 611 | engines: {node: '>=16 || 14 >=14.17'} 612 | 613 | mz@2.7.0: 614 | resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} 615 | 616 | nanoid@3.3.8: 617 | resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} 618 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 619 | hasBin: true 620 | 621 | node-releases@2.0.19: 622 | resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} 623 | 624 | normalize-path@3.0.0: 625 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 626 | engines: {node: '>=0.10.0'} 627 | 628 | normalize-range@0.1.2: 629 | resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} 630 | engines: {node: '>=0.10.0'} 631 | 632 | object-assign@4.1.1: 633 | resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} 634 | engines: {node: '>=0.10.0'} 635 | 636 | object-hash@3.0.0: 637 | resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} 638 | engines: {node: '>= 6'} 639 | 640 | package-json-from-dist@1.0.1: 641 | resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} 642 | 643 | path-key@3.1.1: 644 | resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} 645 | engines: {node: '>=8'} 646 | 647 | path-parse@1.0.7: 648 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 649 | 650 | path-scurry@1.11.1: 651 | resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} 652 | engines: {node: '>=16 || 14 >=14.18'} 653 | 654 | picocolors@1.1.1: 655 | resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} 656 | 657 | picomatch@2.3.1: 658 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 659 | engines: {node: '>=8.6'} 660 | 661 | pify@2.3.0: 662 | resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} 663 | engines: {node: '>=0.10.0'} 664 | 665 | pirates@4.0.6: 666 | resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} 667 | engines: {node: '>= 6'} 668 | 669 | postcss-import@15.1.0: 670 | resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} 671 | engines: {node: '>=14.0.0'} 672 | peerDependencies: 673 | postcss: ^8.0.0 674 | 675 | postcss-import@16.1.0: 676 | resolution: {integrity: sha512-7hsAZ4xGXl4MW+OKEWCnF6T5jqBw80/EE9aXg1r2yyn1RsVEU8EtKXbijEODa+rg7iih4bKf7vlvTGYR4CnPNg==} 677 | engines: {node: '>=18.0.0'} 678 | peerDependencies: 679 | postcss: ^8.0.0 680 | 681 | postcss-js@4.0.1: 682 | resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} 683 | engines: {node: ^12 || ^14 || >= 16} 684 | peerDependencies: 685 | postcss: ^8.4.21 686 | 687 | postcss-load-config@4.0.2: 688 | resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} 689 | engines: {node: '>= 14'} 690 | peerDependencies: 691 | postcss: '>=8.0.9' 692 | ts-node: '>=9.0.0' 693 | peerDependenciesMeta: 694 | postcss: 695 | optional: true 696 | ts-node: 697 | optional: true 698 | 699 | postcss-nested@6.2.0: 700 | resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} 701 | engines: {node: '>=12.0'} 702 | peerDependencies: 703 | postcss: ^8.2.14 704 | 705 | postcss-selector-parser@6.1.2: 706 | resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} 707 | engines: {node: '>=4'} 708 | 709 | postcss-value-parser@4.2.0: 710 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 711 | 712 | postcss@8.4.49: 713 | resolution: {integrity: sha512-OCVPnIObs4N29kxTjzLfUryOkvZEq+pf8jTF0lg8E7uETuWHA+v7j3c/xJmiqpX450191LlmZfUKkXxkTry7nA==} 714 | engines: {node: ^10 || ^12 || >=14} 715 | 716 | queue-microtask@1.2.3: 717 | resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 718 | 719 | read-cache@1.0.0: 720 | resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} 721 | 722 | readdirp@3.6.0: 723 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 724 | engines: {node: '>=8.10.0'} 725 | 726 | resolve@1.22.10: 727 | resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} 728 | engines: {node: '>= 0.4'} 729 | hasBin: true 730 | 731 | reusify@1.0.4: 732 | resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} 733 | engines: {iojs: '>=1.0.0', node: '>=0.10.0'} 734 | 735 | rollup@4.30.0: 736 | resolution: {integrity: sha512-sDnr1pcjTgUT69qBksNF1N1anwfbyYG6TBQ22b03bII8EdiUQ7J0TlozVaTMjT/eEJAO49e1ndV7t+UZfL1+vA==} 737 | engines: {node: '>=18.0.0', npm: '>=8.0.0'} 738 | hasBin: true 739 | 740 | run-parallel@1.2.0: 741 | resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 742 | 743 | shebang-command@2.0.0: 744 | resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} 745 | engines: {node: '>=8'} 746 | 747 | shebang-regex@3.0.0: 748 | resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} 749 | engines: {node: '>=8'} 750 | 751 | signal-exit@4.1.0: 752 | resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} 753 | engines: {node: '>=14'} 754 | 755 | source-map-js@1.2.1: 756 | resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} 757 | engines: {node: '>=0.10.0'} 758 | 759 | string-width@4.2.3: 760 | resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} 761 | engines: {node: '>=8'} 762 | 763 | string-width@5.1.2: 764 | resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} 765 | engines: {node: '>=12'} 766 | 767 | strip-ansi@6.0.1: 768 | resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 769 | engines: {node: '>=8'} 770 | 771 | strip-ansi@7.1.0: 772 | resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} 773 | engines: {node: '>=12'} 774 | 775 | sucrase@3.35.0: 776 | resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} 777 | engines: {node: '>=16 || 14 >=14.17'} 778 | hasBin: true 779 | 780 | supports-preserve-symlinks-flag@1.0.0: 781 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 782 | engines: {node: '>= 0.4'} 783 | 784 | tailwindcss@3.4.17: 785 | resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} 786 | engines: {node: '>=14.0.0'} 787 | hasBin: true 788 | 789 | thenify-all@1.6.0: 790 | resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} 791 | engines: {node: '>=0.8'} 792 | 793 | thenify@3.3.1: 794 | resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} 795 | 796 | to-regex-range@5.0.1: 797 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 798 | engines: {node: '>=8.0'} 799 | 800 | ts-interface-checker@0.1.13: 801 | resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} 802 | 803 | update-browserslist-db@1.1.1: 804 | resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} 805 | hasBin: true 806 | peerDependencies: 807 | browserslist: '>= 4.21.0' 808 | 809 | util-deprecate@1.0.2: 810 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 811 | 812 | vite@6.0.7: 813 | resolution: {integrity: sha512-RDt8r/7qx9940f8FcOIAH9PTViRrghKaK2K1jY3RaAURrEUbm9Du1mJ72G+jlhtG3WwodnfzY8ORQZbBavZEAQ==} 814 | engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 815 | hasBin: true 816 | peerDependencies: 817 | '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 818 | jiti: '>=1.21.0' 819 | less: '*' 820 | lightningcss: ^1.21.0 821 | sass: '*' 822 | sass-embedded: '*' 823 | stylus: '*' 824 | sugarss: '*' 825 | terser: ^5.16.0 826 | tsx: ^4.8.1 827 | yaml: ^2.4.2 828 | peerDependenciesMeta: 829 | '@types/node': 830 | optional: true 831 | jiti: 832 | optional: true 833 | less: 834 | optional: true 835 | lightningcss: 836 | optional: true 837 | sass: 838 | optional: true 839 | sass-embedded: 840 | optional: true 841 | stylus: 842 | optional: true 843 | sugarss: 844 | optional: true 845 | terser: 846 | optional: true 847 | tsx: 848 | optional: true 849 | yaml: 850 | optional: true 851 | 852 | vue@3.5.13: 853 | resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==} 854 | peerDependencies: 855 | typescript: '*' 856 | peerDependenciesMeta: 857 | typescript: 858 | optional: true 859 | 860 | which@2.0.2: 861 | resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 862 | engines: {node: '>= 8'} 863 | hasBin: true 864 | 865 | wrap-ansi@7.0.0: 866 | resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 867 | engines: {node: '>=10'} 868 | 869 | wrap-ansi@8.1.0: 870 | resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} 871 | engines: {node: '>=12'} 872 | 873 | yaml@2.7.0: 874 | resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} 875 | engines: {node: '>= 14'} 876 | hasBin: true 877 | 878 | snapshots: 879 | 880 | '@alloc/quick-lru@5.2.0': {} 881 | 882 | '@babel/helper-string-parser@7.25.9': {} 883 | 884 | '@babel/helper-validator-identifier@7.25.9': {} 885 | 886 | '@babel/parser@7.26.3': 887 | dependencies: 888 | '@babel/types': 7.26.3 889 | 890 | '@babel/types@7.26.3': 891 | dependencies: 892 | '@babel/helper-string-parser': 7.25.9 893 | '@babel/helper-validator-identifier': 7.25.9 894 | 895 | '@esbuild/aix-ppc64@0.24.2': 896 | optional: true 897 | 898 | '@esbuild/android-arm64@0.24.2': 899 | optional: true 900 | 901 | '@esbuild/android-arm@0.24.2': 902 | optional: true 903 | 904 | '@esbuild/android-x64@0.24.2': 905 | optional: true 906 | 907 | '@esbuild/darwin-arm64@0.24.2': 908 | optional: true 909 | 910 | '@esbuild/darwin-x64@0.24.2': 911 | optional: true 912 | 913 | '@esbuild/freebsd-arm64@0.24.2': 914 | optional: true 915 | 916 | '@esbuild/freebsd-x64@0.24.2': 917 | optional: true 918 | 919 | '@esbuild/linux-arm64@0.24.2': 920 | optional: true 921 | 922 | '@esbuild/linux-arm@0.24.2': 923 | optional: true 924 | 925 | '@esbuild/linux-ia32@0.24.2': 926 | optional: true 927 | 928 | '@esbuild/linux-loong64@0.24.2': 929 | optional: true 930 | 931 | '@esbuild/linux-mips64el@0.24.2': 932 | optional: true 933 | 934 | '@esbuild/linux-ppc64@0.24.2': 935 | optional: true 936 | 937 | '@esbuild/linux-riscv64@0.24.2': 938 | optional: true 939 | 940 | '@esbuild/linux-s390x@0.24.2': 941 | optional: true 942 | 943 | '@esbuild/linux-x64@0.24.2': 944 | optional: true 945 | 946 | '@esbuild/netbsd-arm64@0.24.2': 947 | optional: true 948 | 949 | '@esbuild/netbsd-x64@0.24.2': 950 | optional: true 951 | 952 | '@esbuild/openbsd-arm64@0.24.2': 953 | optional: true 954 | 955 | '@esbuild/openbsd-x64@0.24.2': 956 | optional: true 957 | 958 | '@esbuild/sunos-x64@0.24.2': 959 | optional: true 960 | 961 | '@esbuild/win32-arm64@0.24.2': 962 | optional: true 963 | 964 | '@esbuild/win32-ia32@0.24.2': 965 | optional: true 966 | 967 | '@esbuild/win32-x64@0.24.2': 968 | optional: true 969 | 970 | '@isaacs/cliui@8.0.2': 971 | dependencies: 972 | string-width: 5.1.2 973 | string-width-cjs: string-width@4.2.3 974 | strip-ansi: 7.1.0 975 | strip-ansi-cjs: strip-ansi@6.0.1 976 | wrap-ansi: 8.1.0 977 | wrap-ansi-cjs: wrap-ansi@7.0.0 978 | 979 | '@jridgewell/gen-mapping@0.3.8': 980 | dependencies: 981 | '@jridgewell/set-array': 1.2.1 982 | '@jridgewell/sourcemap-codec': 1.5.0 983 | '@jridgewell/trace-mapping': 0.3.25 984 | 985 | '@jridgewell/resolve-uri@3.1.2': {} 986 | 987 | '@jridgewell/set-array@1.2.1': {} 988 | 989 | '@jridgewell/sourcemap-codec@1.5.0': {} 990 | 991 | '@jridgewell/trace-mapping@0.3.25': 992 | dependencies: 993 | '@jridgewell/resolve-uri': 3.1.2 994 | '@jridgewell/sourcemap-codec': 1.5.0 995 | 996 | '@nodelib/fs.scandir@2.1.5': 997 | dependencies: 998 | '@nodelib/fs.stat': 2.0.5 999 | run-parallel: 1.2.0 1000 | 1001 | '@nodelib/fs.stat@2.0.5': {} 1002 | 1003 | '@nodelib/fs.walk@1.2.8': 1004 | dependencies: 1005 | '@nodelib/fs.scandir': 2.1.5 1006 | fastq: 1.18.0 1007 | 1008 | '@pkgjs/parseargs@0.11.0': 1009 | optional: true 1010 | 1011 | '@rollup/rollup-android-arm-eabi@4.30.0': 1012 | optional: true 1013 | 1014 | '@rollup/rollup-android-arm64@4.30.0': 1015 | optional: true 1016 | 1017 | '@rollup/rollup-darwin-arm64@4.30.0': 1018 | optional: true 1019 | 1020 | '@rollup/rollup-darwin-x64@4.30.0': 1021 | optional: true 1022 | 1023 | '@rollup/rollup-freebsd-arm64@4.30.0': 1024 | optional: true 1025 | 1026 | '@rollup/rollup-freebsd-x64@4.30.0': 1027 | optional: true 1028 | 1029 | '@rollup/rollup-linux-arm-gnueabihf@4.30.0': 1030 | optional: true 1031 | 1032 | '@rollup/rollup-linux-arm-musleabihf@4.30.0': 1033 | optional: true 1034 | 1035 | '@rollup/rollup-linux-arm64-gnu@4.30.0': 1036 | optional: true 1037 | 1038 | '@rollup/rollup-linux-arm64-musl@4.30.0': 1039 | optional: true 1040 | 1041 | '@rollup/rollup-linux-loongarch64-gnu@4.30.0': 1042 | optional: true 1043 | 1044 | '@rollup/rollup-linux-powerpc64le-gnu@4.30.0': 1045 | optional: true 1046 | 1047 | '@rollup/rollup-linux-riscv64-gnu@4.30.0': 1048 | optional: true 1049 | 1050 | '@rollup/rollup-linux-s390x-gnu@4.30.0': 1051 | optional: true 1052 | 1053 | '@rollup/rollup-linux-x64-gnu@4.30.0': 1054 | optional: true 1055 | 1056 | '@rollup/rollup-linux-x64-musl@4.30.0': 1057 | optional: true 1058 | 1059 | '@rollup/rollup-win32-arm64-msvc@4.30.0': 1060 | optional: true 1061 | 1062 | '@rollup/rollup-win32-ia32-msvc@4.30.0': 1063 | optional: true 1064 | 1065 | '@rollup/rollup-win32-x64-msvc@4.30.0': 1066 | optional: true 1067 | 1068 | '@types/estree@1.0.6': {} 1069 | 1070 | '@vitejs/plugin-vue@5.2.1(vite@6.0.7(jiti@1.21.7)(yaml@2.7.0))(vue@3.5.13)': 1071 | dependencies: 1072 | vite: 6.0.7(jiti@1.21.7)(yaml@2.7.0) 1073 | vue: 3.5.13 1074 | 1075 | '@vue/compiler-core@3.5.13': 1076 | dependencies: 1077 | '@babel/parser': 7.26.3 1078 | '@vue/shared': 3.5.13 1079 | entities: 4.5.0 1080 | estree-walker: 2.0.2 1081 | source-map-js: 1.2.1 1082 | 1083 | '@vue/compiler-dom@3.5.13': 1084 | dependencies: 1085 | '@vue/compiler-core': 3.5.13 1086 | '@vue/shared': 3.5.13 1087 | 1088 | '@vue/compiler-sfc@3.5.13': 1089 | dependencies: 1090 | '@babel/parser': 7.26.3 1091 | '@vue/compiler-core': 3.5.13 1092 | '@vue/compiler-dom': 3.5.13 1093 | '@vue/compiler-ssr': 3.5.13 1094 | '@vue/shared': 3.5.13 1095 | estree-walker: 2.0.2 1096 | magic-string: 0.30.17 1097 | postcss: 8.4.49 1098 | source-map-js: 1.2.1 1099 | 1100 | '@vue/compiler-ssr@3.5.13': 1101 | dependencies: 1102 | '@vue/compiler-dom': 3.5.13 1103 | '@vue/shared': 3.5.13 1104 | 1105 | '@vue/reactivity@3.5.13': 1106 | dependencies: 1107 | '@vue/shared': 3.5.13 1108 | 1109 | '@vue/runtime-core@3.5.13': 1110 | dependencies: 1111 | '@vue/reactivity': 3.5.13 1112 | '@vue/shared': 3.5.13 1113 | 1114 | '@vue/runtime-dom@3.5.13': 1115 | dependencies: 1116 | '@vue/reactivity': 3.5.13 1117 | '@vue/runtime-core': 3.5.13 1118 | '@vue/shared': 3.5.13 1119 | csstype: 3.1.3 1120 | 1121 | '@vue/server-renderer@3.5.13(vue@3.5.13)': 1122 | dependencies: 1123 | '@vue/compiler-ssr': 3.5.13 1124 | '@vue/shared': 3.5.13 1125 | vue: 3.5.13 1126 | 1127 | '@vue/shared@3.5.13': {} 1128 | 1129 | ansi-regex@5.0.1: {} 1130 | 1131 | ansi-regex@6.1.0: {} 1132 | 1133 | ansi-styles@4.3.0: 1134 | dependencies: 1135 | color-convert: 2.0.1 1136 | 1137 | ansi-styles@6.2.1: {} 1138 | 1139 | any-promise@1.3.0: {} 1140 | 1141 | anymatch@3.1.3: 1142 | dependencies: 1143 | normalize-path: 3.0.0 1144 | picomatch: 2.3.1 1145 | 1146 | arg@5.0.2: {} 1147 | 1148 | autoprefixer@10.4.20(postcss@8.4.49): 1149 | dependencies: 1150 | browserslist: 4.24.3 1151 | caniuse-lite: 1.0.30001690 1152 | fraction.js: 4.3.7 1153 | normalize-range: 0.1.2 1154 | picocolors: 1.1.1 1155 | postcss: 8.4.49 1156 | postcss-value-parser: 4.2.0 1157 | 1158 | balanced-match@1.0.2: {} 1159 | 1160 | binary-extensions@2.3.0: {} 1161 | 1162 | brace-expansion@2.0.1: 1163 | dependencies: 1164 | balanced-match: 1.0.2 1165 | 1166 | braces@3.0.3: 1167 | dependencies: 1168 | fill-range: 7.1.1 1169 | 1170 | browserslist@4.24.3: 1171 | dependencies: 1172 | caniuse-lite: 1.0.30001690 1173 | electron-to-chromium: 1.5.76 1174 | node-releases: 2.0.19 1175 | update-browserslist-db: 1.1.1(browserslist@4.24.3) 1176 | 1177 | camelcase-css@2.0.1: {} 1178 | 1179 | caniuse-lite@1.0.30001690: {} 1180 | 1181 | chokidar@3.6.0: 1182 | dependencies: 1183 | anymatch: 3.1.3 1184 | braces: 3.0.3 1185 | glob-parent: 5.1.2 1186 | is-binary-path: 2.1.0 1187 | is-glob: 4.0.3 1188 | normalize-path: 3.0.0 1189 | readdirp: 3.6.0 1190 | optionalDependencies: 1191 | fsevents: 2.3.3 1192 | 1193 | color-convert@2.0.1: 1194 | dependencies: 1195 | color-name: 1.1.4 1196 | 1197 | color-name@1.1.4: {} 1198 | 1199 | commander@4.1.1: {} 1200 | 1201 | cross-spawn@7.0.6: 1202 | dependencies: 1203 | path-key: 3.1.1 1204 | shebang-command: 2.0.0 1205 | which: 2.0.2 1206 | 1207 | cssesc@3.0.0: {} 1208 | 1209 | csstype@3.1.3: {} 1210 | 1211 | didyoumean@1.2.2: {} 1212 | 1213 | dlv@1.1.3: {} 1214 | 1215 | eastasianwidth@0.2.0: {} 1216 | 1217 | electron-to-chromium@1.5.76: {} 1218 | 1219 | emoji-regex@8.0.0: {} 1220 | 1221 | emoji-regex@9.2.2: {} 1222 | 1223 | entities@4.5.0: {} 1224 | 1225 | esbuild@0.24.2: 1226 | optionalDependencies: 1227 | '@esbuild/aix-ppc64': 0.24.2 1228 | '@esbuild/android-arm': 0.24.2 1229 | '@esbuild/android-arm64': 0.24.2 1230 | '@esbuild/android-x64': 0.24.2 1231 | '@esbuild/darwin-arm64': 0.24.2 1232 | '@esbuild/darwin-x64': 0.24.2 1233 | '@esbuild/freebsd-arm64': 0.24.2 1234 | '@esbuild/freebsd-x64': 0.24.2 1235 | '@esbuild/linux-arm': 0.24.2 1236 | '@esbuild/linux-arm64': 0.24.2 1237 | '@esbuild/linux-ia32': 0.24.2 1238 | '@esbuild/linux-loong64': 0.24.2 1239 | '@esbuild/linux-mips64el': 0.24.2 1240 | '@esbuild/linux-ppc64': 0.24.2 1241 | '@esbuild/linux-riscv64': 0.24.2 1242 | '@esbuild/linux-s390x': 0.24.2 1243 | '@esbuild/linux-x64': 0.24.2 1244 | '@esbuild/netbsd-arm64': 0.24.2 1245 | '@esbuild/netbsd-x64': 0.24.2 1246 | '@esbuild/openbsd-arm64': 0.24.2 1247 | '@esbuild/openbsd-x64': 0.24.2 1248 | '@esbuild/sunos-x64': 0.24.2 1249 | '@esbuild/win32-arm64': 0.24.2 1250 | '@esbuild/win32-ia32': 0.24.2 1251 | '@esbuild/win32-x64': 0.24.2 1252 | 1253 | escalade@3.2.0: {} 1254 | 1255 | estree-walker@2.0.2: {} 1256 | 1257 | fast-glob@3.3.3: 1258 | dependencies: 1259 | '@nodelib/fs.stat': 2.0.5 1260 | '@nodelib/fs.walk': 1.2.8 1261 | glob-parent: 5.1.2 1262 | merge2: 1.4.1 1263 | micromatch: 4.0.8 1264 | 1265 | fastq@1.18.0: 1266 | dependencies: 1267 | reusify: 1.0.4 1268 | 1269 | fill-range@7.1.1: 1270 | dependencies: 1271 | to-regex-range: 5.0.1 1272 | 1273 | foreground-child@3.3.0: 1274 | dependencies: 1275 | cross-spawn: 7.0.6 1276 | signal-exit: 4.1.0 1277 | 1278 | fraction.js@4.3.7: {} 1279 | 1280 | fsevents@2.3.3: 1281 | optional: true 1282 | 1283 | function-bind@1.1.2: {} 1284 | 1285 | glob-parent@5.1.2: 1286 | dependencies: 1287 | is-glob: 4.0.3 1288 | 1289 | glob-parent@6.0.2: 1290 | dependencies: 1291 | is-glob: 4.0.3 1292 | 1293 | glob@10.4.5: 1294 | dependencies: 1295 | foreground-child: 3.3.0 1296 | jackspeak: 3.4.3 1297 | minimatch: 9.0.5 1298 | minipass: 7.1.2 1299 | package-json-from-dist: 1.0.1 1300 | path-scurry: 1.11.1 1301 | 1302 | hasown@2.0.2: 1303 | dependencies: 1304 | function-bind: 1.1.2 1305 | 1306 | is-binary-path@2.1.0: 1307 | dependencies: 1308 | binary-extensions: 2.3.0 1309 | 1310 | is-core-module@2.16.1: 1311 | dependencies: 1312 | hasown: 2.0.2 1313 | 1314 | is-extglob@2.1.1: {} 1315 | 1316 | is-fullwidth-code-point@3.0.0: {} 1317 | 1318 | is-glob@4.0.3: 1319 | dependencies: 1320 | is-extglob: 2.1.1 1321 | 1322 | is-number@7.0.0: {} 1323 | 1324 | isexe@2.0.0: {} 1325 | 1326 | jackspeak@3.4.3: 1327 | dependencies: 1328 | '@isaacs/cliui': 8.0.2 1329 | optionalDependencies: 1330 | '@pkgjs/parseargs': 0.11.0 1331 | 1332 | jiti@1.21.7: {} 1333 | 1334 | lilconfig@3.1.3: {} 1335 | 1336 | lines-and-columns@1.2.4: {} 1337 | 1338 | lru-cache@10.4.3: {} 1339 | 1340 | magic-string@0.30.17: 1341 | dependencies: 1342 | '@jridgewell/sourcemap-codec': 1.5.0 1343 | 1344 | merge2@1.4.1: {} 1345 | 1346 | micromatch@4.0.8: 1347 | dependencies: 1348 | braces: 3.0.3 1349 | picomatch: 2.3.1 1350 | 1351 | minimatch@9.0.5: 1352 | dependencies: 1353 | brace-expansion: 2.0.1 1354 | 1355 | minipass@7.1.2: {} 1356 | 1357 | mz@2.7.0: 1358 | dependencies: 1359 | any-promise: 1.3.0 1360 | object-assign: 4.1.1 1361 | thenify-all: 1.6.0 1362 | 1363 | nanoid@3.3.8: {} 1364 | 1365 | node-releases@2.0.19: {} 1366 | 1367 | normalize-path@3.0.0: {} 1368 | 1369 | normalize-range@0.1.2: {} 1370 | 1371 | object-assign@4.1.1: {} 1372 | 1373 | object-hash@3.0.0: {} 1374 | 1375 | package-json-from-dist@1.0.1: {} 1376 | 1377 | path-key@3.1.1: {} 1378 | 1379 | path-parse@1.0.7: {} 1380 | 1381 | path-scurry@1.11.1: 1382 | dependencies: 1383 | lru-cache: 10.4.3 1384 | minipass: 7.1.2 1385 | 1386 | picocolors@1.1.1: {} 1387 | 1388 | picomatch@2.3.1: {} 1389 | 1390 | pify@2.3.0: {} 1391 | 1392 | pirates@4.0.6: {} 1393 | 1394 | postcss-import@15.1.0(postcss@8.4.49): 1395 | dependencies: 1396 | postcss: 8.4.49 1397 | postcss-value-parser: 4.2.0 1398 | read-cache: 1.0.0 1399 | resolve: 1.22.10 1400 | 1401 | postcss-import@16.1.0(postcss@8.4.49): 1402 | dependencies: 1403 | postcss: 8.4.49 1404 | postcss-value-parser: 4.2.0 1405 | read-cache: 1.0.0 1406 | resolve: 1.22.10 1407 | 1408 | postcss-js@4.0.1(postcss@8.4.49): 1409 | dependencies: 1410 | camelcase-css: 2.0.1 1411 | postcss: 8.4.49 1412 | 1413 | postcss-load-config@4.0.2(postcss@8.4.49): 1414 | dependencies: 1415 | lilconfig: 3.1.3 1416 | yaml: 2.7.0 1417 | optionalDependencies: 1418 | postcss: 8.4.49 1419 | 1420 | postcss-nested@6.2.0(postcss@8.4.49): 1421 | dependencies: 1422 | postcss: 8.4.49 1423 | postcss-selector-parser: 6.1.2 1424 | 1425 | postcss-selector-parser@6.1.2: 1426 | dependencies: 1427 | cssesc: 3.0.0 1428 | util-deprecate: 1.0.2 1429 | 1430 | postcss-value-parser@4.2.0: {} 1431 | 1432 | postcss@8.4.49: 1433 | dependencies: 1434 | nanoid: 3.3.8 1435 | picocolors: 1.1.1 1436 | source-map-js: 1.2.1 1437 | 1438 | queue-microtask@1.2.3: {} 1439 | 1440 | read-cache@1.0.0: 1441 | dependencies: 1442 | pify: 2.3.0 1443 | 1444 | readdirp@3.6.0: 1445 | dependencies: 1446 | picomatch: 2.3.1 1447 | 1448 | resolve@1.22.10: 1449 | dependencies: 1450 | is-core-module: 2.16.1 1451 | path-parse: 1.0.7 1452 | supports-preserve-symlinks-flag: 1.0.0 1453 | 1454 | reusify@1.0.4: {} 1455 | 1456 | rollup@4.30.0: 1457 | dependencies: 1458 | '@types/estree': 1.0.6 1459 | optionalDependencies: 1460 | '@rollup/rollup-android-arm-eabi': 4.30.0 1461 | '@rollup/rollup-android-arm64': 4.30.0 1462 | '@rollup/rollup-darwin-arm64': 4.30.0 1463 | '@rollup/rollup-darwin-x64': 4.30.0 1464 | '@rollup/rollup-freebsd-arm64': 4.30.0 1465 | '@rollup/rollup-freebsd-x64': 4.30.0 1466 | '@rollup/rollup-linux-arm-gnueabihf': 4.30.0 1467 | '@rollup/rollup-linux-arm-musleabihf': 4.30.0 1468 | '@rollup/rollup-linux-arm64-gnu': 4.30.0 1469 | '@rollup/rollup-linux-arm64-musl': 4.30.0 1470 | '@rollup/rollup-linux-loongarch64-gnu': 4.30.0 1471 | '@rollup/rollup-linux-powerpc64le-gnu': 4.30.0 1472 | '@rollup/rollup-linux-riscv64-gnu': 4.30.0 1473 | '@rollup/rollup-linux-s390x-gnu': 4.30.0 1474 | '@rollup/rollup-linux-x64-gnu': 4.30.0 1475 | '@rollup/rollup-linux-x64-musl': 4.30.0 1476 | '@rollup/rollup-win32-arm64-msvc': 4.30.0 1477 | '@rollup/rollup-win32-ia32-msvc': 4.30.0 1478 | '@rollup/rollup-win32-x64-msvc': 4.30.0 1479 | fsevents: 2.3.3 1480 | 1481 | run-parallel@1.2.0: 1482 | dependencies: 1483 | queue-microtask: 1.2.3 1484 | 1485 | shebang-command@2.0.0: 1486 | dependencies: 1487 | shebang-regex: 3.0.0 1488 | 1489 | shebang-regex@3.0.0: {} 1490 | 1491 | signal-exit@4.1.0: {} 1492 | 1493 | source-map-js@1.2.1: {} 1494 | 1495 | string-width@4.2.3: 1496 | dependencies: 1497 | emoji-regex: 8.0.0 1498 | is-fullwidth-code-point: 3.0.0 1499 | strip-ansi: 6.0.1 1500 | 1501 | string-width@5.1.2: 1502 | dependencies: 1503 | eastasianwidth: 0.2.0 1504 | emoji-regex: 9.2.2 1505 | strip-ansi: 7.1.0 1506 | 1507 | strip-ansi@6.0.1: 1508 | dependencies: 1509 | ansi-regex: 5.0.1 1510 | 1511 | strip-ansi@7.1.0: 1512 | dependencies: 1513 | ansi-regex: 6.1.0 1514 | 1515 | sucrase@3.35.0: 1516 | dependencies: 1517 | '@jridgewell/gen-mapping': 0.3.8 1518 | commander: 4.1.1 1519 | glob: 10.4.5 1520 | lines-and-columns: 1.2.4 1521 | mz: 2.7.0 1522 | pirates: 4.0.6 1523 | ts-interface-checker: 0.1.13 1524 | 1525 | supports-preserve-symlinks-flag@1.0.0: {} 1526 | 1527 | tailwindcss@3.4.17: 1528 | dependencies: 1529 | '@alloc/quick-lru': 5.2.0 1530 | arg: 5.0.2 1531 | chokidar: 3.6.0 1532 | didyoumean: 1.2.2 1533 | dlv: 1.1.3 1534 | fast-glob: 3.3.3 1535 | glob-parent: 6.0.2 1536 | is-glob: 4.0.3 1537 | jiti: 1.21.7 1538 | lilconfig: 3.1.3 1539 | micromatch: 4.0.8 1540 | normalize-path: 3.0.0 1541 | object-hash: 3.0.0 1542 | picocolors: 1.1.1 1543 | postcss: 8.4.49 1544 | postcss-import: 15.1.0(postcss@8.4.49) 1545 | postcss-js: 4.0.1(postcss@8.4.49) 1546 | postcss-load-config: 4.0.2(postcss@8.4.49) 1547 | postcss-nested: 6.2.0(postcss@8.4.49) 1548 | postcss-selector-parser: 6.1.2 1549 | resolve: 1.22.10 1550 | sucrase: 3.35.0 1551 | transitivePeerDependencies: 1552 | - ts-node 1553 | 1554 | thenify-all@1.6.0: 1555 | dependencies: 1556 | thenify: 3.3.1 1557 | 1558 | thenify@3.3.1: 1559 | dependencies: 1560 | any-promise: 1.3.0 1561 | 1562 | to-regex-range@5.0.1: 1563 | dependencies: 1564 | is-number: 7.0.0 1565 | 1566 | ts-interface-checker@0.1.13: {} 1567 | 1568 | update-browserslist-db@1.1.1(browserslist@4.24.3): 1569 | dependencies: 1570 | browserslist: 4.24.3 1571 | escalade: 3.2.0 1572 | picocolors: 1.1.1 1573 | 1574 | util-deprecate@1.0.2: {} 1575 | 1576 | vite@6.0.7(jiti@1.21.7)(yaml@2.7.0): 1577 | dependencies: 1578 | esbuild: 0.24.2 1579 | postcss: 8.4.49 1580 | rollup: 4.30.0 1581 | optionalDependencies: 1582 | fsevents: 2.3.3 1583 | jiti: 1.21.7 1584 | yaml: 2.7.0 1585 | 1586 | vue@3.5.13: 1587 | dependencies: 1588 | '@vue/compiler-dom': 3.5.13 1589 | '@vue/compiler-sfc': 3.5.13 1590 | '@vue/runtime-dom': 3.5.13 1591 | '@vue/server-renderer': 3.5.13(vue@3.5.13) 1592 | '@vue/shared': 3.5.13 1593 | 1594 | which@2.0.2: 1595 | dependencies: 1596 | isexe: 2.0.0 1597 | 1598 | wrap-ansi@7.0.0: 1599 | dependencies: 1600 | ansi-styles: 4.3.0 1601 | string-width: 4.2.3 1602 | strip-ansi: 6.0.1 1603 | 1604 | wrap-ansi@8.1.0: 1605 | dependencies: 1606 | ansi-styles: 6.2.1 1607 | string-width: 5.1.2 1608 | strip-ansi: 7.1.0 1609 | 1610 | yaml@2.7.0: {} 1611 | --------------------------------------------------------------------------------