├── example ├── index.ts └── style.css ├── src ├── vite-env.d.ts ├── index.ts ├── style.css ├── waterfall.ts ├── layout.ts ├── dom-utils.ts └── layout-use.ts ├── docs ├── cover.webp ├── assets │ ├── index-c5229e1f.css │ └── index-ce6f3104.js ├── vite.svg └── index.html ├── public ├── cover.webp └── vite.svg ├── .gitignore ├── tsconfig.json ├── rollup.config.js ├── LICENSE ├── plugins └── inline.js ├── package.json ├── index.html ├── README.md └── pnpm-lock.yaml /example/index.ts: -------------------------------------------------------------------------------- 1 | import '../src/index.ts' 2 | -------------------------------------------------------------------------------- /src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /docs/cover.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huodoushigemi/wc-flow-layout/HEAD/docs/cover.webp -------------------------------------------------------------------------------- /public/cover.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/huodoushigemi/wc-flow-layout/HEAD/public/cover.webp -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import { WaterfallElement } from './waterfall' 2 | 3 | export * from './waterfall' 4 | export type { WaterfallProps } from './layout' 5 | 6 | if (!customElements.get('wc-waterfall')) { customElements.define('wc-waterfall', WaterfallElement); } -------------------------------------------------------------------------------- /src/style.css: -------------------------------------------------------------------------------- 1 | wc-waterfall { 2 | position: relative; 3 | display: block; 4 | box-sizing: border-box !important; 5 | overflow: unset !important; 6 | } 7 | 8 | wc-waterfall > * { 9 | position: absolute; 10 | box-sizing: border-box; 11 | } 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": false, 5 | "module": "ESNext", 6 | "lib": ["ESNext", "DOM", "DOM.Iterable"], 7 | "skipLibCheck": true, 8 | 9 | /* Bundler mode */ 10 | "moduleResolution": "bundler", 11 | "allowImportingTsExtensions": true, 12 | "resolveJsonModule": true, 13 | "isolatedModules": true, 14 | "noEmit": true, 15 | 16 | /* Linting */ 17 | "strict": true, 18 | "noUnusedLocals": true, 19 | "noUnusedParameters": true, 20 | "noFallthroughCasesInSwitch": true, 21 | "strictNullChecks": false 22 | }, 23 | "include": ["src"] 24 | } 25 | -------------------------------------------------------------------------------- /docs/assets/index-c5229e1f.css: -------------------------------------------------------------------------------- 1 | :root{font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%}body{margin:0;min-width:320px;min-height:100vh}#app{padding:2rem;margin:0 auto 0 220px}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.operation{position:fixed;top:0;left:0;bottom:0;width:220px;padding:12px;box-sizing:border-box;background:#80808040;border-top-right-radius:12px;border-bottom-right-radius:12px} 2 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'rollup' 2 | import esbuild from 'rollup-plugin-esbuild' 3 | import typescript from '@rollup/plugin-typescript' 4 | import inline from './plugins/inline.js' 5 | import { dts } from 'rollup-plugin-dts' 6 | import pkg from './package.json' assert { type: 'json' } 7 | 8 | const formats = { 9 | esm: 'mjs', 10 | cjs: 'cjs', 11 | iife: 'iife.js', 12 | } 13 | 14 | export default defineConfig([ 15 | { 16 | input: 'src/index.ts', 17 | output: Object.entries(formats).map(([format, ext]) => ({ 18 | format, 19 | file: `./dist/index.${ext}`, 20 | })), 21 | external: Object.keys(pkg.dependencies ?? []), 22 | plugins: [ 23 | inline(), 24 | typescript({ declaration: true, emitDeclarationOnly: true, outDir: 'dist/types' }), 25 | esbuild({ minify: true, target: ['chrome67', 'ios13'] }), 26 | ], 27 | }, 28 | { 29 | input: 'dist/types/index.d.ts', 30 | output: { file: 'dist/index.d.ts' }, 31 | external: /\.css/, 32 | plugins: [dts()] 33 | }, 34 | ]) 35 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 huodoushigemi 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /plugins/inline.js: -------------------------------------------------------------------------------- 1 | import { readFile } from 'fs/promises' 2 | import { extname } from 'path' 3 | 4 | import { defineConfig } from 'rollup' 5 | import postcss from 'postcss' 6 | import cssnano from 'cssnano' 7 | import cssminify from 'postcss-clean' 8 | 9 | /** 10 | * @example 11 | * import cssText from './style.css?inline' 12 | * 13 | * console.log(cssText) // div{display:none} 14 | */ 15 | const inline = () => defineConfig({ 16 | name: 'inline', 17 | async resolveId(id, importer) { 18 | if (!/[&?]inline(?:&|$)/.test(id)) return 19 | const file = id.replace(/[#?].*$/s, '') 20 | return id.replace(file, (await this.resolve(file, importer)).id) 21 | }, 22 | async load(id) { 23 | if (!/[&?]inline(?:&|$)/.test(id)) return 24 | const file = id.replace(/[#?].*$/s, '') 25 | let code = await readFile(file, 'utf8') 26 | if (extname(file) == '.css') { 27 | code = (await postcss() 28 | .use(cssminify()) 29 | // .use(cssnano({ preset: 'default' })) 30 | .process(code, { from: file })) 31 | .css 32 | } 33 | return `export default ${JSON.stringify(code)}` 34 | } 35 | }) 36 | 37 | export default inline -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wc-waterfall", 3 | "private": false, 4 | "version": "0.1.3", 5 | "type": "module", 6 | "main": "dist/index.cjs", 7 | "module": "dist/index.mjs", 8 | "unpkg": "dist/index.iife.js", 9 | "jsdelivr": "dist/index.iife.js", 10 | "types": "dist/index.d.ts", 11 | "files": ["dist"], 12 | "repository": { 13 | "type": "git", 14 | "url": "https://github.com/huodoushigemi/wc-flow-layout.git" 15 | }, 16 | "author": "灬都是个谜", 17 | "license": "MIT", 18 | "description": "wc-waterfall is a flow layout component written using web-component", 19 | "scripts": { 20 | "dev": "vite", 21 | "build:docs": "vite build --outDir docs --base ./", 22 | "build": "rimraf dist/* && rollup -c && rimraf dist/types", 23 | "preview": "vite preview" 24 | }, 25 | "devDependencies": { 26 | "@rollup/plugin-typescript": "^11.1.1", 27 | "cssnano": "^6.0.2", 28 | "postcss": "^8.4.32", 29 | "postcss-clean": "^1.2.2", 30 | "rollup": "^3.23.0", 31 | "rollup-plugin-dts": "^6.0.0", 32 | "rollup-plugin-esbuild": "^5.0.0", 33 | "rollup-plugin-postcss": "^4.0.2", 34 | "tslib": "^2.5.3", 35 | "typescript": "^5.0.2", 36 | "vite": "^4.3.9" 37 | }, 38 | "keywords": [ 39 | "flow", 40 | "flow-layout", 41 | "flow-list", 42 | "waterfall", 43 | "wc-waterfall" 44 | ] 45 | } 46 | -------------------------------------------------------------------------------- /src/waterfall.ts: -------------------------------------------------------------------------------- 1 | import cssText from './style.css?inline' 2 | document.head.appendChild(Object.assign(document.createElement('style'), { innerText: cssText })) 3 | 4 | import { useWaterfall } from './layout-use' 5 | import { createWebComponent } from './dom-utils' 6 | import { WaterfallProps } from './layout' 7 | 8 | const default_props = () => ({ 9 | cols: 2, 10 | gap: 4 11 | } as WaterfallProps) 12 | 13 | const formats = { 14 | gap: (v: any) => { 15 | if (typeof v === 'string') { 16 | if (v.includes(',')) { 17 | return v.split(',').map(Number); 18 | } 19 | 20 | if (v.includes(' ')) { 21 | return v.split(' ').map(Number); 22 | } 23 | 24 | return Number(v); 25 | } 26 | else if (Array.isArray(v)) { 27 | return v.map(Number); 28 | } 29 | else { 30 | return v; 31 | } 32 | } 33 | } 34 | 35 | export class WaterfallElement extends createWebComponent(default_props, formats) { 36 | constructor() { 37 | super() 38 | } 39 | 40 | _layout: ReturnType 41 | 42 | connectedCallback() { 43 | this._layout = useWaterfall(this, this) 44 | this._layout.mount() 45 | } 46 | 47 | disconnectedCallback() { 48 | this._layout.unmount() 49 | } 50 | 51 | /**update layout */ 52 | render() { 53 | this._layout?.relayout() 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /docs/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/vite.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /example/style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; 3 | line-height: 1.5; 4 | font-weight: 400; 5 | 6 | color-scheme: light dark; 7 | color: rgba(255, 255, 255, 0.87); 8 | background-color: #242424; 9 | 10 | font-synthesis: none; 11 | text-rendering: optimizeLegibility; 12 | -webkit-font-smoothing: antialiased; 13 | -moz-osx-font-smoothing: grayscale; 14 | -webkit-text-size-adjust: 100%; 15 | } 16 | 17 | body { 18 | margin: 0; 19 | min-width: 320px; 20 | min-height: 100vh; 21 | } 22 | 23 | #app { 24 | margin: 0 auto; 25 | padding: 2rem; 26 | margin-left: 220px; 27 | } 28 | 29 | button { 30 | border-radius: 8px; 31 | border: 1px solid transparent; 32 | padding: 0.6em 1.2em; 33 | font-size: 1em; 34 | font-weight: 500; 35 | font-family: inherit; 36 | background-color: #1a1a1a; 37 | cursor: pointer; 38 | transition: border-color 0.25s; 39 | } 40 | button:hover { 41 | border-color: #646cff; 42 | } 43 | button:focus, 44 | button:focus-visible { 45 | outline: 4px auto -webkit-focus-ring-color; 46 | } 47 | 48 | @media (prefers-color-scheme: light) { 49 | :root { 50 | color: #213547; 51 | background-color: #ffffff; 52 | } 53 | a:hover { 54 | color: #747bff; 55 | } 56 | button { 57 | background-color: #f9f9f9; 58 | } 59 | } 60 | 61 | 62 | .operation { 63 | position: fixed; 64 | top: 0; 65 | left: 0; 66 | bottom: 0; 67 | width: 220px; 68 | padding: 12px; 69 | box-sizing: border-box; 70 | background: #80808040; 71 | border-top-right-radius: 12px; 72 | border-bottom-right-radius: 12px; 73 | } -------------------------------------------------------------------------------- /src/layout.ts: -------------------------------------------------------------------------------- 1 | export function minIndex(arr: number[]) { 2 | let ii = 0 3 | for (let i = 0; i < arr.length; i++) ii = arr[ii] <= arr[i] ? ii : i 4 | return ii 5 | } 6 | 7 | export type WaterfallProps = { 8 | cols: number 9 | gap: number | [number, number] | string 10 | } 11 | 12 | type RenderOptions = { 13 | // w 14 | getW(el: T): number 15 | setW(el: T, v: number): void 16 | // h 17 | getH(el: T): number 18 | setH(el: T, v: number): void 19 | // padding 20 | getPad(el: T): [number, number, number, number] 21 | // xy 22 | setX(el: T, v: number): void 23 | setY(el: T, v: number): void 24 | // children 25 | getChildren(el: T): { [index: number]: T, readonly length: number } 26 | } 27 | 28 | export function waterfall_layout(container: T, { getW, setW, getH, setH, getPad, setX, setY, getChildren }: RenderOptions, { cols, gap }: WaterfallProps) { 29 | const [gapx, gapy] = Array.isArray(gap) ? gap : [gap, gap] 30 | const [pt, pr, pb, pl] = getPad(container) 31 | const children = getChildren(container), len = children.length 32 | 33 | if (len) { 34 | // 设置 item 宽度 35 | const w = (getW(container) - gapx * (cols - 1) - (pl + pr)) / cols 36 | Array.prototype.forEach.call(children, el => setW(el, w)) 37 | 38 | // 获取 item 高度 39 | const hs = Array.prototype.map.call(children, el => getH(el)) as number[] 40 | 41 | // 计算位置 42 | const stack = Array(cols).fill(pt) 43 | 44 | for (let i = 0; i < len; i++) { 45 | const el = children[i] 46 | const col = minIndex(stack) 47 | setY(el, stack[col]) 48 | setX(el, pl + (w + gapx) * col) 49 | stack[col] += hs[i] + gapy 50 | } 51 | 52 | // 设置容器高度 53 | setH(container, Math.max(...stack) - gapy + pb) 54 | } else { 55 | setH(container, pt + pb) 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /src/dom-utils.ts: -------------------------------------------------------------------------------- 1 | export const isEl = (el: Node): el is Element => el.nodeType == 1 2 | 3 | abstract class WebComponentBase

{ 4 | $props: P 5 | abstract render(): void 6 | } 7 | 8 | export const createWebComponent =

>(attrs: () => P, formats?: Record any>) => { 9 | const initial = attrs() 10 | abstract class WebComponent extends HTMLElement { 11 | $props = attrs() 12 | constructor() { 13 | super() 14 | const map = {} as any 15 | for (const k in this.$props) 16 | map[k] = { 17 | get: () => this.$props[k], 18 | set: (v: any) => { 19 | this.$props[k] = formats?.[k] ? formats[k](v) : typeMapping(initial, k, v) 20 | this.render() 21 | }, 22 | } 23 | Object.defineProperties(this, map) 24 | } 25 | 26 | // 仅监听基础类型 27 | static get observedAttributes() { 28 | return Object.keys(initial).filter(k => isBasic(initial[k])) 29 | } 30 | 31 | attributeChangedCallback(k: string, old: string, v: unknown) { 32 | // @ts-ignore 33 | this.$props[k] = formats?.[k] ? formats[k](v) : typeMapping(initial, k, v) 34 | } 35 | 36 | // 子类实现 37 | abstract render(): void 38 | } 39 | return WebComponent as unknown as new () => WebComponentBase

& P & HTMLElement 40 | } 41 | 42 | const typeMapping = (t: Record, k: string, v: any) => { 43 | const prev = t[k] 44 | if (!isBasic(prev)) return 45 | const type = typeof prev 46 | return { 47 | number: (v: string) => Number(v), 48 | string: (v: string) => String(v), 49 | boolean: (v: string) => v != null && v != 'false', 50 | }[type as string]!(v) 51 | } 52 | 53 | const isBasic = (v: any): v is boolean | number | string => { 54 | const type = typeof v 55 | return type == 'number' || type == 'string' || type == 'boolean' 56 | } 57 | -------------------------------------------------------------------------------- /src/layout-use.ts: -------------------------------------------------------------------------------- 1 | import { isEl } from './dom-utils' 2 | import { WaterfallProps, waterfall_layout } from './layout' 3 | 4 | const prevh = Symbol(), prevw = Symbol() 5 | 6 | /** 7 | * 布局监听 8 | * 9 | * @example 10 | * const layout = useLayoutObs(div, () => console.log('layout changed')) 11 | * layout.mount() 12 | */ 13 | export function useLayoutObs(el: HTMLElement, relayout: () => void) { 14 | let sizeObs: ResizeObserver // 监听大小变化 15 | let childObs: MutationObserver // 监听元素增删 16 | let attrsObs: MutationObserver // 监听属性变化 17 | 18 | function mount() { 19 | // 监听大小变化 20 | sizeObs = new ResizeObserver(es => es.some(({ target: el }) => el[prevw] != el.offsetWidth || el[prevh] != el.offsetHeight) && doRelayout()) 21 | sizeObs.observe(el) 22 | Array.prototype.forEach.call(el.children, el => sizeObs.observe(el)) 23 | 24 | // 监听元素增删 25 | childObs = new MutationObserver(ms => { 26 | ms.forEach(m => { 27 | m.addedNodes.forEach(el => isEl(el) && sizeObs.observe(el)) 28 | m.removedNodes.forEach(el => isEl(el) && sizeObs.unobserve(el)) 29 | }) 30 | doRelayout() 31 | }) 32 | childObs.observe(el, { childList: true, attributes: false }) 33 | 34 | // 监听属性变化 35 | attrsObs = new MutationObserver(() => doRelayout()) 36 | attrsObs.observe(el, { childList: false, attributes: true }) 37 | 38 | doRelayout() 39 | } 40 | 41 | function unmount() { 42 | sizeObs.disconnect() 43 | childObs.disconnect() 44 | attrsObs.disconnect() 45 | } 46 | 47 | let layouting = false 48 | /** 重排布局 */ 49 | function doRelayout() { 50 | if (layouting) return 51 | layouting = true 52 | requestAnimationFrame(() => { 53 | relayout() 54 | el[prevw] = el.offsetWidth 55 | el[prevh] = el.offsetHeight 56 | attrsObs.takeRecords() 57 | layouting = false 58 | }) 59 | } 60 | 61 | return { relayout: doRelayout, mount, unmount } 62 | } 63 | 64 | /** 65 | * 瀑布流布局 66 | * 67 | * @example 68 | * const layout = useWaterfall(div, { cols: 4, gap: 4 }) 69 | * layout.mount() 70 | */ 71 | export const useWaterfall = (el: HTMLElement, props: WaterfallProps) => ( 72 | useLayoutObs(el, () => { 73 | // console.log('relayout') 74 | waterfall_layout( 75 | el, 76 | { 77 | getW: el => el.offsetWidth, 78 | setW: (el, v) => (el.style.width = v + 'px'), 79 | getH: el => ((el[prevw] = el.offsetWidth), (el[prevh] = el.offsetHeight)), 80 | setH: (el, v) => (el.style.height = v + 'px'), 81 | getPad: el => { const pad = getComputedStyle(el); return [parseInt(pad.paddingTop), parseInt(pad.paddingRight), parseInt(pad.paddingBottom), parseInt(pad.paddingLeft)] }, 82 | setX: (el, v) => (el.style.left = v + 'px'), 83 | setY: (el, v) => (el.style.top = v + 'px'), 84 | getChildren: (el) => el.children as any, 85 | }, 86 | props 87 | ) 88 | }) 89 | ) -------------------------------------------------------------------------------- /docs/assets/index-ce6f3104.js: -------------------------------------------------------------------------------- 1 | (function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const n of document.querySelectorAll('link[rel="modulepreload"]'))o(n);new MutationObserver(n=>{for(const s of n)if(s.type==="childList")for(const i of s.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&o(i)}).observe(document,{childList:!0,subtree:!0});function t(n){const s={};return n.integrity&&(s.integrity=n.integrity),n.referrerPolicy&&(s.referrerPolicy=n.referrerPolicy),n.crossOrigin==="use-credentials"?s.credentials="include":n.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function o(n){if(n.ep)return;n.ep=!0;const s=t(n);fetch(n.href,s)}})();const M=`wc-waterfall{position:relative;display:block;box-sizing:border-box!important;overflow:unset!important}wc-waterfall>*{position:absolute;box-sizing:border-box} 2 | `,N=e=>e.nodeType==1,P=(e,r)=>{const t=e();class o extends HTMLElement{constructor(){super(),this.$props=e();const s={};for(const i in this.$props)s[i]={get:()=>this.$props[i],set:l=>{this.$props[i]=r!=null&&r[i]?r[i](l):W(t,i,l),this.render()}};Object.defineProperties(this,s)}static get observedAttributes(){return Object.keys(t).filter(s=>C(t[s]))}attributeChangedCallback(s,i,l){this.$props[s]=r!=null&&r[s]?r[s](l):W(t,s,l)}}return o},W=(e,r,t)=>{const o=e[r];return C(o)?{number:s=>Number(s),string:s=>String(s),boolean:s=>s!=null&&s!="false"}[typeof o](t):void 0},C=e=>{const r=typeof e;return r=="number"||r=="string"||r=="boolean"};function _(e){let r=0;for(let t=0;tt(p,A));const I=Array.prototype.map.call(f,p=>o(p)),h=Array(a).fill(w);for(let p=0;pa.some(({target:c})=>c[m]!=c.offsetWidth||c[b]!=c.offsetHeight)&&d()),t.observe(e),Array.prototype.forEach.call(e.children,a=>t.observe(a)),o=new MutationObserver(a=>{a.forEach(c=>{c.addedNodes.forEach(u=>N(u)&&t.observe(u)),c.removedNodes.forEach(u=>N(u)&&t.unobserve(u))}),d()}),o.observe(e,{childList:!0,attributes:!1}),n=new MutationObserver(()=>d()),n.observe(e,{childList:!1,attributes:!0}),d()}function i(){t.disconnect(),o.disconnect(),n.disconnect()}let l=!1;function d(){l||(l=!0,requestAnimationFrame(()=>{r(),e[m]=e.offsetWidth,e[b]=e.offsetHeight,n.takeRecords(),l=!1}))}return{relayout:d,mount:s,unmount:i}}const T=(e,r)=>S(e,()=>{H(e,{getW:t=>t.offsetWidth,setW:(t,o)=>t.style.width=o+"px",getH:t=>(t[m]=t.offsetWidth,t[b]=t.offsetHeight),setH:(t,o)=>t.style.height=o+"px",getPad:t=>{const o=getComputedStyle(t);return[parseInt(o.paddingTop),parseInt(o.paddingRight),parseInt(o.paddingBottom),parseInt(o.paddingLeft)]},setX:(t,o)=>t.style.left=o+"px",setY:(t,o)=>t.style.top=o+"px",getChildren:t=>t.children},r)});document.head.appendChild(Object.assign(document.createElement("style"),{innerText:M}));const $=()=>({cols:2,gap:4}),z={gap:e=>typeof e=="string"?e.includes(",")?e.split(",").map(Number):e.includes(" ")?e.split(" ").map(Number):Number(e):Array.isArray(e)?e.map(Number):e};class R extends P($,z){constructor(){super()}connectedCallback(){this._layout=T(this,this),this._layout.mount()}disconnectedCallback(){this._layout.unmount()}render(){var r;(r=this._layout)==null||r.relayout()}}customElements.get("wc-waterfall")||customElements.define("wc-waterfall",R); 3 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vite + TS 9 | 10 | 11 | 12 | 13 | 14 | 15 |

16 | 17 |
01
18 |
02
19 |
03
20 |
04
21 |
05
22 |
06
23 |
07
24 |
08
25 |
09
26 |
10
27 |
11
28 |
12
29 |
13
30 |
31 | 32 |
33 |

Props

34 | 35 |

Column Gap

36 |

Row Gap

37 | 38 |

Columns

39 | 40 |

41 | 42 |

43 |
44 |
45 | 46 | 80 | 81 | 82 | 113 | 114 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vite + TS 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 |
01
20 |
02
21 |
03
22 |
04
23 |
05
24 |
06
25 |
07
26 |
08
27 |
09
28 |
10
29 |
11
30 |
12
31 |
13
32 |
33 | 34 |
35 |

Props

36 | 37 |

Column Gap

38 |

Row Gap

39 | 40 |

Columns

41 | 42 |

43 | 44 |

45 |
46 |
47 | 48 | 82 | 83 | 84 | 115 | 116 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # wc-waterfall 2 | 3 | The `wc-waterfall` is a high performance waterfall component written using `web-component` 4 | 5 | It can support running in various frameworks, such as `React` `Vue` `SolidJs` 6 | 7 | ![image](https://raw.githubusercontent.com/huodoushigemi/wc-flow-layout/main/public/cover.webp) 8 | 9 | ## 🌈 Demo 10 | 11 | [vue-sfc]: https://play.vuejs.org/#eNqFVE1zmzAQ/Ss75JCkDQb81ZQSz7SdHNpD22l75IJBBiUgaSRhk3r837sCm0CUj/HB2rdvdx+r1e6dz0JMtjVxQidSqaRCgyK6FquY0UpwqWEPkmzgABvJKzhH6nnvOt+l7i7RRG6SskQ4ZilnSkPKSwU3Ju5idnkC80QcscBHMPK6clgIDU0qUWImtKANDyGiTNQatm7FM1LexI6BYwf0gyBoyYTlBM0qadBa4MlbwX7f1T4cTJ5oLRE0J6z9TEJEX8oX+H6f0QgfJjylbZFhByBEap83NEp62a0M5Gd0u/KDyDP/Q2hqQzMbmtvQwoaWNvTBhq5t6KMFBb4N2eoDW31gqw9s9cFAfeQNe4lQ5A2mAk2lH0pzHLV8Be9gb8I1XqCimnIWgnFMZupTzPDaYnaWCNGRqkTm1BBqzdFrgMbd0UwXISyCqWhGIaisCxNJllGWh3CkAGw4066i/0gIU1K10JrLjEhXJhmtcXyXR+Y6Se9zyWuWuTgJXIZwdu2b39R/WixkunDTgpbZxZzBewgu8fEVhOaFxjK+jxkBA16iT4f0YPoWfTaiL96iz0dilic6PuP2Wpwrp1sKbpWIyZ3iDDdK27z46MBHEHbtNNjwEo0jdgqthQo9L80YxuMLpVs5YUR7TFSj0cCJUdqjLCPNhNINQXbsmLwo54A6tMKFs6H5ExUprwQtifwpzJCM1WBWvvveYlrW5OqEpwVJ75/B71TTif4liSJyi4uj92mcMaI79+2fH6TBc+/E1VOXyH7F+ZsoXtZGY0f7gqODsge8Vu23tqk4lX/VbaMJzv7xo4zQthstP3ZwY3995dMf5c4ms76Lh/+zWfXS 12 | 13 | - https://huodoushigemi.github.io/wc-flow-layout/ 14 | - [codepen — Basic usage](https://codepen.io/huodoushigemi/pen/dyQbmgW?editors=1100) 15 | - [codepen — Photo wall](https://codepen.io/huodoushigemi/pen/BaGBxKM?editors=1100) 16 | - [Vue SFC Playground][vue-sfc] 17 | - [SolidJs Playground](https://playground.solidjs.com/anonymous/78577fad-c8e2-41fc-8a27-f47849e24615) 18 | - [Animation][vue-sfc] 19 | 20 | ## ⚙️ Installation 21 | 22 | - ### npm 23 | 24 | ```shell 25 | npm i wc-waterfall 26 | ``` 27 | 28 | - ### scripts 29 | 30 | ```html 31 | 32 | ``` 33 | 34 | ## 🦄 Example 35 | 36 | ### 🚀 Use in VanillaJS 37 | 38 | ```js 39 | import 'wc-waterfall' 40 | ``` 41 | 42 | ```html 43 | 44 |
01
45 |
02
46 |
03
47 |
04
48 |
05
49 |
06
50 |
51 | ``` 52 | 53 | ### 🚀 Use in React 54 | 55 | ```tsx 56 | // App.tsx 57 | import 'wc-waterfall' 58 | 59 | export default function MyApp() { 60 | return ( 61 | 62 |
01
63 |
02
64 |
03
65 |
04
66 |
05
67 |
06
68 |
69 | ) 70 | } 71 | ``` 72 | 73 | TypeScript support (JSX/TSX) 74 | 75 | ```ts 76 | // shims.d.ts 77 | declare namespace JSX { 78 | interface IntrinsicElements { 79 | 'wc-waterfall': React.DetailedHTMLProps & import('wc-waterfall').WaterfallProps, HTMLElement>; 80 | } 81 | } 82 | ``` 83 | 84 | ### 🚀 Use in Vue 85 | 86 | ```js 87 | // main.ts 88 | import 'wc-waterfall' 89 | ``` 90 | 91 | ```html 92 | 93 | 103 | ``` 104 | 105 | ```ts 106 | // vite.config.ts 107 | import { defineConfig } from 'vite' 108 | import vue from '@vitejs/plugin-vue' 109 | 110 | export default defineConfig({ 111 | plugins: [ 112 | vue({ 113 | template: { 114 | compilerOptions: { isCustomElement: (tag) => tag.startsWith('wc-') } 115 | }, 116 | }) 117 | ], 118 | }) 119 | ``` 120 | ## 🚀 Use in SSR 121 | ```diff 122 | - import 'wc-waterfall' 123 | + if (typeof document != 'undefined') import('wc-waterfall') 124 | ``` 125 | 126 | ## 📄 Props 127 | 128 | | Name | Type | Default | Description | 129 | | ---- | ---------------------------- | ------- | -------------------------------------------------------------------------------------- | 130 | | cols | `number` | 2 | Number of columns | 131 | | gap | `number \| string \| [number, number] ` | 4 | Interval between cells. Can be a single number(e.g. 10), space-separated values (e.g. "10 20"), or a numeric tuple (e.g., [10, 20]) | 132 | 133 | ## ⭐️ Show Your Support 134 | 135 | Please give a ⭐️ if this project helped you! 136 | 137 | ## 👏 Contributing 138 | 139 | If you have any questions or requests or want to contribute, please write the issue or give me a Pull Request freely. 140 | -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- 1 | lockfileVersion: 5.4 2 | 3 | specifiers: 4 | '@rollup/plugin-typescript': ^11.1.1 5 | cssnano: ^6.0.2 6 | postcss: ^8.4.32 7 | postcss-clean: ^1.2.2 8 | rollup: ^3.23.0 9 | rollup-plugin-dts: ^6.0.0 10 | rollup-plugin-esbuild: ^5.0.0 11 | rollup-plugin-postcss: ^4.0.2 12 | tslib: ^2.5.3 13 | typescript: ^5.0.2 14 | unplugin-raw: ^0.1.1 15 | vite: ^4.3.9 16 | 17 | dependencies: 18 | unplugin-raw: 0.1.1_rollup@3.27.0 19 | 20 | devDependencies: 21 | '@rollup/plugin-typescript': 11.1.2_35grdw4skhkqwrljttx5et6c64 22 | cssnano: 6.0.2_postcss@8.4.32 23 | postcss: 8.4.32 24 | postcss-clean: 1.2.2 25 | rollup: 3.27.0 26 | rollup-plugin-dts: 6.1.0_5kdi3tvld5tgllgal534h4tmxm 27 | rollup-plugin-esbuild: 5.0.0_rollup@3.27.0 28 | rollup-plugin-postcss: 4.0.2_postcss@8.4.32 29 | tslib: 2.6.1 30 | typescript: 5.1.6 31 | vite: 4.4.7 32 | 33 | packages: 34 | 35 | /@babel/code-frame/7.23.5: 36 | resolution: {integrity: sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==} 37 | engines: {node: '>=6.9.0'} 38 | requiresBuild: true 39 | dependencies: 40 | '@babel/highlight': 7.23.4 41 | chalk: 2.4.2 42 | dev: true 43 | optional: true 44 | 45 | /@babel/helper-validator-identifier/7.22.20: 46 | resolution: {integrity: sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==} 47 | engines: {node: '>=6.9.0'} 48 | dev: true 49 | optional: true 50 | 51 | /@babel/highlight/7.23.4: 52 | resolution: {integrity: sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==} 53 | engines: {node: '>=6.9.0'} 54 | dependencies: 55 | '@babel/helper-validator-identifier': 7.22.20 56 | chalk: 2.4.2 57 | js-tokens: 4.0.0 58 | dev: true 59 | optional: true 60 | 61 | /@esbuild/aix-ppc64/0.19.11: 62 | resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} 63 | engines: {node: '>=12'} 64 | cpu: [ppc64] 65 | os: [aix] 66 | requiresBuild: true 67 | dev: false 68 | optional: true 69 | 70 | /@esbuild/android-arm/0.18.17: 71 | resolution: {integrity: sha512-wHsmJG/dnL3OkpAcwbgoBTTMHVi4Uyou3F5mf58ZtmUyIKfcdA7TROav/6tCzET4A3QW2Q2FC+eFneMU+iyOxg==} 72 | engines: {node: '>=12'} 73 | cpu: [arm] 74 | os: [android] 75 | requiresBuild: true 76 | dev: true 77 | optional: true 78 | 79 | /@esbuild/android-arm/0.19.11: 80 | resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} 81 | engines: {node: '>=12'} 82 | cpu: [arm] 83 | os: [android] 84 | requiresBuild: true 85 | dev: false 86 | optional: true 87 | 88 | /@esbuild/android-arm64/0.18.17: 89 | resolution: {integrity: sha512-9np+YYdNDed5+Jgr1TdWBsozZ85U1Oa3xW0c7TWqH0y2aGghXtZsuT8nYRbzOMcl0bXZXjOGbksoTtVOlWrRZg==} 90 | engines: {node: '>=12'} 91 | cpu: [arm64] 92 | os: [android] 93 | requiresBuild: true 94 | dev: true 95 | optional: true 96 | 97 | /@esbuild/android-arm64/0.19.11: 98 | resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} 99 | engines: {node: '>=12'} 100 | cpu: [arm64] 101 | os: [android] 102 | requiresBuild: true 103 | dev: false 104 | optional: true 105 | 106 | /@esbuild/android-x64/0.18.17: 107 | resolution: {integrity: sha512-O+FeWB/+xya0aLg23hHEM2E3hbfwZzjqumKMSIqcHbNvDa+dza2D0yLuymRBQQnC34CWrsJUXyH2MG5VnLd6uw==} 108 | engines: {node: '>=12'} 109 | cpu: [x64] 110 | os: [android] 111 | requiresBuild: true 112 | dev: true 113 | optional: true 114 | 115 | /@esbuild/android-x64/0.19.11: 116 | resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} 117 | engines: {node: '>=12'} 118 | cpu: [x64] 119 | os: [android] 120 | requiresBuild: true 121 | dev: false 122 | optional: true 123 | 124 | /@esbuild/darwin-arm64/0.18.17: 125 | resolution: {integrity: sha512-M9uJ9VSB1oli2BE/dJs3zVr9kcCBBsE883prage1NWz6pBS++1oNn/7soPNS3+1DGj0FrkSvnED4Bmlu1VAE9g==} 126 | engines: {node: '>=12'} 127 | cpu: [arm64] 128 | os: [darwin] 129 | requiresBuild: true 130 | dev: true 131 | optional: true 132 | 133 | /@esbuild/darwin-arm64/0.19.11: 134 | resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} 135 | engines: {node: '>=12'} 136 | cpu: [arm64] 137 | os: [darwin] 138 | requiresBuild: true 139 | dev: false 140 | optional: true 141 | 142 | /@esbuild/darwin-x64/0.18.17: 143 | resolution: {integrity: sha512-XDre+J5YeIJDMfp3n0279DFNrGCXlxOuGsWIkRb1NThMZ0BsrWXoTg23Jer7fEXQ9Ye5QjrvXpxnhzl3bHtk0g==} 144 | engines: {node: '>=12'} 145 | cpu: [x64] 146 | os: [darwin] 147 | requiresBuild: true 148 | dev: true 149 | optional: true 150 | 151 | /@esbuild/darwin-x64/0.19.11: 152 | resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} 153 | engines: {node: '>=12'} 154 | cpu: [x64] 155 | os: [darwin] 156 | requiresBuild: true 157 | dev: false 158 | optional: true 159 | 160 | /@esbuild/freebsd-arm64/0.18.17: 161 | resolution: {integrity: sha512-cjTzGa3QlNfERa0+ptykyxs5A6FEUQQF0MuilYXYBGdBxD3vxJcKnzDlhDCa1VAJCmAxed6mYhA2KaJIbtiNuQ==} 162 | engines: {node: '>=12'} 163 | cpu: [arm64] 164 | os: [freebsd] 165 | requiresBuild: true 166 | dev: true 167 | optional: true 168 | 169 | /@esbuild/freebsd-arm64/0.19.11: 170 | resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} 171 | engines: {node: '>=12'} 172 | cpu: [arm64] 173 | os: [freebsd] 174 | requiresBuild: true 175 | dev: false 176 | optional: true 177 | 178 | /@esbuild/freebsd-x64/0.18.17: 179 | resolution: {integrity: sha512-sOxEvR8d7V7Kw8QqzxWc7bFfnWnGdaFBut1dRUYtu+EIRXefBc/eIsiUiShnW0hM3FmQ5Zf27suDuHsKgZ5QrA==} 180 | engines: {node: '>=12'} 181 | cpu: [x64] 182 | os: [freebsd] 183 | requiresBuild: true 184 | dev: true 185 | optional: true 186 | 187 | /@esbuild/freebsd-x64/0.19.11: 188 | resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} 189 | engines: {node: '>=12'} 190 | cpu: [x64] 191 | os: [freebsd] 192 | requiresBuild: true 193 | dev: false 194 | optional: true 195 | 196 | /@esbuild/linux-arm/0.18.17: 197 | resolution: {integrity: sha512-2d3Lw6wkwgSLC2fIvXKoMNGVaeY8qdN0IC3rfuVxJp89CRfA3e3VqWifGDfuakPmp90+ZirmTfye1n4ncjv2lg==} 198 | engines: {node: '>=12'} 199 | cpu: [arm] 200 | os: [linux] 201 | requiresBuild: true 202 | dev: true 203 | optional: true 204 | 205 | /@esbuild/linux-arm/0.19.11: 206 | resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} 207 | engines: {node: '>=12'} 208 | cpu: [arm] 209 | os: [linux] 210 | requiresBuild: true 211 | dev: false 212 | optional: true 213 | 214 | /@esbuild/linux-arm64/0.18.17: 215 | resolution: {integrity: sha512-c9w3tE7qA3CYWjT+M3BMbwMt+0JYOp3vCMKgVBrCl1nwjAlOMYzEo+gG7QaZ9AtqZFj5MbUc885wuBBmu6aADQ==} 216 | engines: {node: '>=12'} 217 | cpu: [arm64] 218 | os: [linux] 219 | requiresBuild: true 220 | dev: true 221 | optional: true 222 | 223 | /@esbuild/linux-arm64/0.19.11: 224 | resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} 225 | engines: {node: '>=12'} 226 | cpu: [arm64] 227 | os: [linux] 228 | requiresBuild: true 229 | dev: false 230 | optional: true 231 | 232 | /@esbuild/linux-ia32/0.18.17: 233 | resolution: {integrity: sha512-1DS9F966pn5pPnqXYz16dQqWIB0dmDfAQZd6jSSpiT9eX1NzKh07J6VKR3AoXXXEk6CqZMojiVDSZi1SlmKVdg==} 234 | engines: {node: '>=12'} 235 | cpu: [ia32] 236 | os: [linux] 237 | requiresBuild: true 238 | dev: true 239 | optional: true 240 | 241 | /@esbuild/linux-ia32/0.19.11: 242 | resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} 243 | engines: {node: '>=12'} 244 | cpu: [ia32] 245 | os: [linux] 246 | requiresBuild: true 247 | dev: false 248 | optional: true 249 | 250 | /@esbuild/linux-loong64/0.18.17: 251 | resolution: {integrity: sha512-EvLsxCk6ZF0fpCB6w6eOI2Fc8KW5N6sHlIovNe8uOFObL2O+Mr0bflPHyHwLT6rwMg9r77WOAWb2FqCQrVnwFg==} 252 | engines: {node: '>=12'} 253 | cpu: [loong64] 254 | os: [linux] 255 | requiresBuild: true 256 | dev: true 257 | optional: true 258 | 259 | /@esbuild/linux-loong64/0.19.11: 260 | resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} 261 | engines: {node: '>=12'} 262 | cpu: [loong64] 263 | os: [linux] 264 | requiresBuild: true 265 | dev: false 266 | optional: true 267 | 268 | /@esbuild/linux-mips64el/0.18.17: 269 | resolution: {integrity: sha512-e0bIdHA5p6l+lwqTE36NAW5hHtw2tNRmHlGBygZC14QObsA3bD4C6sXLJjvnDIjSKhW1/0S3eDy+QmX/uZWEYQ==} 270 | engines: {node: '>=12'} 271 | cpu: [mips64el] 272 | os: [linux] 273 | requiresBuild: true 274 | dev: true 275 | optional: true 276 | 277 | /@esbuild/linux-mips64el/0.19.11: 278 | resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} 279 | engines: {node: '>=12'} 280 | cpu: [mips64el] 281 | os: [linux] 282 | requiresBuild: true 283 | dev: false 284 | optional: true 285 | 286 | /@esbuild/linux-ppc64/0.18.17: 287 | resolution: {integrity: sha512-BAAilJ0M5O2uMxHYGjFKn4nJKF6fNCdP1E0o5t5fvMYYzeIqy2JdAP88Az5LHt9qBoUa4tDaRpfWt21ep5/WqQ==} 288 | engines: {node: '>=12'} 289 | cpu: [ppc64] 290 | os: [linux] 291 | requiresBuild: true 292 | dev: true 293 | optional: true 294 | 295 | /@esbuild/linux-ppc64/0.19.11: 296 | resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} 297 | engines: {node: '>=12'} 298 | cpu: [ppc64] 299 | os: [linux] 300 | requiresBuild: true 301 | dev: false 302 | optional: true 303 | 304 | /@esbuild/linux-riscv64/0.18.17: 305 | resolution: {integrity: sha512-Wh/HW2MPnC3b8BqRSIme/9Zhab36PPH+3zam5pqGRH4pE+4xTrVLx2+XdGp6fVS3L2x+DrsIcsbMleex8fbE6g==} 306 | engines: {node: '>=12'} 307 | cpu: [riscv64] 308 | os: [linux] 309 | requiresBuild: true 310 | dev: true 311 | optional: true 312 | 313 | /@esbuild/linux-riscv64/0.19.11: 314 | resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} 315 | engines: {node: '>=12'} 316 | cpu: [riscv64] 317 | os: [linux] 318 | requiresBuild: true 319 | dev: false 320 | optional: true 321 | 322 | /@esbuild/linux-s390x/0.18.17: 323 | resolution: {integrity: sha512-j/34jAl3ul3PNcK3pfI0NSlBANduT2UO5kZ7FCaK33XFv3chDhICLY8wJJWIhiQ+YNdQ9dxqQctRg2bvrMlYgg==} 324 | engines: {node: '>=12'} 325 | cpu: [s390x] 326 | os: [linux] 327 | requiresBuild: true 328 | dev: true 329 | optional: true 330 | 331 | /@esbuild/linux-s390x/0.19.11: 332 | resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} 333 | engines: {node: '>=12'} 334 | cpu: [s390x] 335 | os: [linux] 336 | requiresBuild: true 337 | dev: false 338 | optional: true 339 | 340 | /@esbuild/linux-x64/0.18.17: 341 | resolution: {integrity: sha512-QM50vJ/y+8I60qEmFxMoxIx4de03pGo2HwxdBeFd4nMh364X6TIBZ6VQ5UQmPbQWUVWHWws5MmJXlHAXvJEmpQ==} 342 | engines: {node: '>=12'} 343 | cpu: [x64] 344 | os: [linux] 345 | requiresBuild: true 346 | dev: true 347 | optional: true 348 | 349 | /@esbuild/linux-x64/0.19.11: 350 | resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} 351 | engines: {node: '>=12'} 352 | cpu: [x64] 353 | os: [linux] 354 | requiresBuild: true 355 | dev: false 356 | optional: true 357 | 358 | /@esbuild/netbsd-x64/0.18.17: 359 | resolution: {integrity: sha512-/jGlhWR7Sj9JPZHzXyyMZ1RFMkNPjC6QIAan0sDOtIo2TYk3tZn5UDrkE0XgsTQCxWTTOcMPf9p6Rh2hXtl5TQ==} 360 | engines: {node: '>=12'} 361 | cpu: [x64] 362 | os: [netbsd] 363 | requiresBuild: true 364 | dev: true 365 | optional: true 366 | 367 | /@esbuild/netbsd-x64/0.19.11: 368 | resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} 369 | engines: {node: '>=12'} 370 | cpu: [x64] 371 | os: [netbsd] 372 | requiresBuild: true 373 | dev: false 374 | optional: true 375 | 376 | /@esbuild/openbsd-x64/0.18.17: 377 | resolution: {integrity: sha512-rSEeYaGgyGGf4qZM2NonMhMOP/5EHp4u9ehFiBrg7stH6BYEEjlkVREuDEcQ0LfIl53OXLxNbfuIj7mr5m29TA==} 378 | engines: {node: '>=12'} 379 | cpu: [x64] 380 | os: [openbsd] 381 | requiresBuild: true 382 | dev: true 383 | optional: true 384 | 385 | /@esbuild/openbsd-x64/0.19.11: 386 | resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} 387 | engines: {node: '>=12'} 388 | cpu: [x64] 389 | os: [openbsd] 390 | requiresBuild: true 391 | dev: false 392 | optional: true 393 | 394 | /@esbuild/sunos-x64/0.18.17: 395 | resolution: {integrity: sha512-Y7ZBbkLqlSgn4+zot4KUNYst0bFoO68tRgI6mY2FIM+b7ZbyNVtNbDP5y8qlu4/knZZ73fgJDlXID+ohY5zt5g==} 396 | engines: {node: '>=12'} 397 | cpu: [x64] 398 | os: [sunos] 399 | requiresBuild: true 400 | dev: true 401 | optional: true 402 | 403 | /@esbuild/sunos-x64/0.19.11: 404 | resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} 405 | engines: {node: '>=12'} 406 | cpu: [x64] 407 | os: [sunos] 408 | requiresBuild: true 409 | dev: false 410 | optional: true 411 | 412 | /@esbuild/win32-arm64/0.18.17: 413 | resolution: {integrity: sha512-bwPmTJsEQcbZk26oYpc4c/8PvTY3J5/QK8jM19DVlEsAB41M39aWovWoHtNm78sd6ip6prilxeHosPADXtEJFw==} 414 | engines: {node: '>=12'} 415 | cpu: [arm64] 416 | os: [win32] 417 | requiresBuild: true 418 | dev: true 419 | optional: true 420 | 421 | /@esbuild/win32-arm64/0.19.11: 422 | resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} 423 | engines: {node: '>=12'} 424 | cpu: [arm64] 425 | os: [win32] 426 | requiresBuild: true 427 | dev: false 428 | optional: true 429 | 430 | /@esbuild/win32-ia32/0.18.17: 431 | resolution: {integrity: sha512-H/XaPtPKli2MhW+3CQueo6Ni3Avggi6hP/YvgkEe1aSaxw+AeO8MFjq8DlgfTd9Iz4Yih3QCZI6YLMoyccnPRg==} 432 | engines: {node: '>=12'} 433 | cpu: [ia32] 434 | os: [win32] 435 | requiresBuild: true 436 | dev: true 437 | optional: true 438 | 439 | /@esbuild/win32-ia32/0.19.11: 440 | resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} 441 | engines: {node: '>=12'} 442 | cpu: [ia32] 443 | os: [win32] 444 | requiresBuild: true 445 | dev: false 446 | optional: true 447 | 448 | /@esbuild/win32-x64/0.18.17: 449 | resolution: {integrity: sha512-fGEb8f2BSA3CW7riJVurug65ACLuQAzKq0SSqkY2b2yHHH0MzDfbLyKIGzHwOI/gkHcxM/leuSW6D5w/LMNitA==} 450 | engines: {node: '>=12'} 451 | cpu: [x64] 452 | os: [win32] 453 | requiresBuild: true 454 | dev: true 455 | optional: true 456 | 457 | /@esbuild/win32-x64/0.19.11: 458 | resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} 459 | engines: {node: '>=12'} 460 | cpu: [x64] 461 | os: [win32] 462 | requiresBuild: true 463 | dev: false 464 | optional: true 465 | 466 | /@jridgewell/sourcemap-codec/1.4.15: 467 | resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} 468 | dev: true 469 | 470 | /@rollup/plugin-typescript/11.1.2_35grdw4skhkqwrljttx5et6c64: 471 | resolution: {integrity: sha512-0ghSOCMcA7fl1JM+0gYRf+Q/HWyg+zg7/gDSc+fRLmlJWcW5K1I+CLRzaRhXf4Y3DRyPnnDo4M2ktw+a6JcDEg==} 472 | engines: {node: '>=14.0.0'} 473 | peerDependencies: 474 | rollup: ^2.14.0||^3.0.0 475 | tslib: '*' 476 | typescript: '>=3.7.0' 477 | peerDependenciesMeta: 478 | rollup: 479 | optional: true 480 | tslib: 481 | optional: true 482 | dependencies: 483 | '@rollup/pluginutils': 5.0.2_rollup@3.27.0 484 | resolve: 1.22.2 485 | rollup: 3.27.0 486 | tslib: 2.6.1 487 | typescript: 5.1.6 488 | dev: true 489 | 490 | /@rollup/pluginutils/5.0.2_rollup@3.27.0: 491 | resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} 492 | engines: {node: '>=14.0.0'} 493 | peerDependencies: 494 | rollup: ^1.20.0||^2.0.0||^3.0.0 495 | peerDependenciesMeta: 496 | rollup: 497 | optional: true 498 | dependencies: 499 | '@types/estree': 1.0.1 500 | estree-walker: 2.0.2 501 | picomatch: 2.3.1 502 | rollup: 3.27.0 503 | dev: true 504 | 505 | /@rollup/pluginutils/5.1.0_rollup@3.27.0: 506 | resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} 507 | engines: {node: '>=14.0.0'} 508 | peerDependencies: 509 | rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 510 | peerDependenciesMeta: 511 | rollup: 512 | optional: true 513 | dependencies: 514 | '@types/estree': 1.0.1 515 | estree-walker: 2.0.2 516 | picomatch: 2.3.1 517 | rollup: 3.27.0 518 | dev: false 519 | 520 | /@trysound/sax/0.2.0: 521 | resolution: {integrity: sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==} 522 | engines: {node: '>=10.13.0'} 523 | dev: true 524 | 525 | /@types/estree/1.0.1: 526 | resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} 527 | 528 | /acorn/8.11.3: 529 | resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} 530 | engines: {node: '>=0.4.0'} 531 | hasBin: true 532 | dev: false 533 | 534 | /ansi-styles/3.2.1: 535 | resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} 536 | engines: {node: '>=4'} 537 | dependencies: 538 | color-convert: 1.9.3 539 | dev: true 540 | 541 | /ansi-styles/4.3.0: 542 | resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 543 | engines: {node: '>=8'} 544 | dependencies: 545 | color-convert: 2.0.1 546 | dev: true 547 | 548 | /anymatch/3.1.3: 549 | resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} 550 | engines: {node: '>= 8'} 551 | dependencies: 552 | normalize-path: 3.0.0 553 | picomatch: 2.3.1 554 | dev: false 555 | 556 | /binary-extensions/2.2.0: 557 | resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} 558 | engines: {node: '>=8'} 559 | dev: false 560 | 561 | /boolbase/1.0.0: 562 | resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} 563 | dev: true 564 | 565 | /braces/3.0.2: 566 | resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} 567 | engines: {node: '>=8'} 568 | dependencies: 569 | fill-range: 7.0.1 570 | dev: false 571 | 572 | /browserslist/4.21.9: 573 | resolution: {integrity: sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==} 574 | engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 575 | hasBin: true 576 | dependencies: 577 | caniuse-lite: 1.0.30001517 578 | electron-to-chromium: 1.4.475 579 | node-releases: 2.0.13 580 | update-browserslist-db: 1.0.11_browserslist@4.21.9 581 | dev: true 582 | 583 | /caniuse-api/3.0.0: 584 | resolution: {integrity: sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==} 585 | dependencies: 586 | browserslist: 4.21.9 587 | caniuse-lite: 1.0.30001517 588 | lodash.memoize: 4.1.2 589 | lodash.uniq: 4.5.0 590 | dev: true 591 | 592 | /caniuse-lite/1.0.30001517: 593 | resolution: {integrity: sha512-Vdhm5S11DaFVLlyiKu4hiUTkpZu+y1KA/rZZqVQfOD5YdDT/eQKlkt7NaE0WGOFgX32diqt9MiP9CAiFeRklaA==} 594 | dev: true 595 | 596 | /chalk/2.4.2: 597 | resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} 598 | engines: {node: '>=4'} 599 | dependencies: 600 | ansi-styles: 3.2.1 601 | escape-string-regexp: 1.0.5 602 | supports-color: 5.5.0 603 | dev: true 604 | 605 | /chalk/4.1.2: 606 | resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} 607 | engines: {node: '>=10'} 608 | dependencies: 609 | ansi-styles: 4.3.0 610 | supports-color: 7.2.0 611 | dev: true 612 | 613 | /chokidar/3.5.3: 614 | resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} 615 | engines: {node: '>= 8.10.0'} 616 | dependencies: 617 | anymatch: 3.1.3 618 | braces: 3.0.2 619 | glob-parent: 5.1.2 620 | is-binary-path: 2.1.0 621 | is-glob: 4.0.3 622 | normalize-path: 3.0.0 623 | readdirp: 3.6.0 624 | optionalDependencies: 625 | fsevents: 2.3.2 626 | dev: false 627 | 628 | /clean-css/4.2.4: 629 | resolution: {integrity: sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==} 630 | engines: {node: '>= 4.0'} 631 | dependencies: 632 | source-map: 0.6.1 633 | dev: true 634 | 635 | /color-convert/1.9.3: 636 | resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} 637 | dependencies: 638 | color-name: 1.1.3 639 | dev: true 640 | 641 | /color-convert/2.0.1: 642 | resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} 643 | engines: {node: '>=7.0.0'} 644 | dependencies: 645 | color-name: 1.1.4 646 | dev: true 647 | 648 | /color-name/1.1.3: 649 | resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} 650 | dev: true 651 | 652 | /color-name/1.1.4: 653 | resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 654 | dev: true 655 | 656 | /colord/2.9.3: 657 | resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} 658 | dev: true 659 | 660 | /commander/7.2.0: 661 | resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} 662 | engines: {node: '>= 10'} 663 | dev: true 664 | 665 | /concat-with-sourcemaps/1.1.0: 666 | resolution: {integrity: sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==} 667 | dependencies: 668 | source-map: 0.6.1 669 | dev: true 670 | 671 | /css-declaration-sorter/6.4.1_postcss@8.4.32: 672 | resolution: {integrity: sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==} 673 | engines: {node: ^10 || ^12 || >=14} 674 | peerDependencies: 675 | postcss: ^8.0.9 676 | dependencies: 677 | postcss: 8.4.32 678 | dev: true 679 | 680 | /css-declaration-sorter/7.1.1_postcss@8.4.32: 681 | resolution: {integrity: sha512-dZ3bVTEEc1vxr3Bek9vGwfB5Z6ESPULhcRvO472mfjVnj8jRcTnKO8/JTczlvxM10Myb+wBM++1MtdO76eWcaQ==} 682 | engines: {node: ^14 || ^16 || >=18} 683 | peerDependencies: 684 | postcss: ^8.0.9 685 | dependencies: 686 | postcss: 8.4.32 687 | dev: true 688 | 689 | /css-select/4.3.0: 690 | resolution: {integrity: sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==} 691 | dependencies: 692 | boolbase: 1.0.0 693 | css-what: 6.1.0 694 | domhandler: 4.3.1 695 | domutils: 2.8.0 696 | nth-check: 2.1.1 697 | dev: true 698 | 699 | /css-select/5.1.0: 700 | resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} 701 | dependencies: 702 | boolbase: 1.0.0 703 | css-what: 6.1.0 704 | domhandler: 5.0.3 705 | domutils: 3.1.0 706 | nth-check: 2.1.1 707 | dev: true 708 | 709 | /css-tree/1.1.3: 710 | resolution: {integrity: sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==} 711 | engines: {node: '>=8.0.0'} 712 | dependencies: 713 | mdn-data: 2.0.14 714 | source-map: 0.6.1 715 | dev: true 716 | 717 | /css-tree/2.2.1: 718 | resolution: {integrity: sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==} 719 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 720 | dependencies: 721 | mdn-data: 2.0.28 722 | source-map-js: 1.0.2 723 | dev: true 724 | 725 | /css-tree/2.3.1: 726 | resolution: {integrity: sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==} 727 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} 728 | dependencies: 729 | mdn-data: 2.0.30 730 | source-map-js: 1.0.2 731 | dev: true 732 | 733 | /css-what/6.1.0: 734 | resolution: {integrity: sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==} 735 | engines: {node: '>= 6'} 736 | dev: true 737 | 738 | /cssesc/3.0.0: 739 | resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} 740 | engines: {node: '>=4'} 741 | hasBin: true 742 | dev: true 743 | 744 | /cssnano-preset-default/5.2.14_postcss@8.4.32: 745 | resolution: {integrity: sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==} 746 | engines: {node: ^10 || ^12 || >=14.0} 747 | peerDependencies: 748 | postcss: ^8.2.15 749 | dependencies: 750 | css-declaration-sorter: 6.4.1_postcss@8.4.32 751 | cssnano-utils: 3.1.0_postcss@8.4.32 752 | postcss: 8.4.32 753 | postcss-calc: 8.2.4_postcss@8.4.32 754 | postcss-colormin: 5.3.1_postcss@8.4.32 755 | postcss-convert-values: 5.1.3_postcss@8.4.32 756 | postcss-discard-comments: 5.1.2_postcss@8.4.32 757 | postcss-discard-duplicates: 5.1.0_postcss@8.4.32 758 | postcss-discard-empty: 5.1.1_postcss@8.4.32 759 | postcss-discard-overridden: 5.1.0_postcss@8.4.32 760 | postcss-merge-longhand: 5.1.7_postcss@8.4.32 761 | postcss-merge-rules: 5.1.4_postcss@8.4.32 762 | postcss-minify-font-values: 5.1.0_postcss@8.4.32 763 | postcss-minify-gradients: 5.1.1_postcss@8.4.32 764 | postcss-minify-params: 5.1.4_postcss@8.4.32 765 | postcss-minify-selectors: 5.2.1_postcss@8.4.32 766 | postcss-normalize-charset: 5.1.0_postcss@8.4.32 767 | postcss-normalize-display-values: 5.1.0_postcss@8.4.32 768 | postcss-normalize-positions: 5.1.1_postcss@8.4.32 769 | postcss-normalize-repeat-style: 5.1.1_postcss@8.4.32 770 | postcss-normalize-string: 5.1.0_postcss@8.4.32 771 | postcss-normalize-timing-functions: 5.1.0_postcss@8.4.32 772 | postcss-normalize-unicode: 5.1.1_postcss@8.4.32 773 | postcss-normalize-url: 5.1.0_postcss@8.4.32 774 | postcss-normalize-whitespace: 5.1.1_postcss@8.4.32 775 | postcss-ordered-values: 5.1.3_postcss@8.4.32 776 | postcss-reduce-initial: 5.1.2_postcss@8.4.32 777 | postcss-reduce-transforms: 5.1.0_postcss@8.4.32 778 | postcss-svgo: 5.1.0_postcss@8.4.32 779 | postcss-unique-selectors: 5.1.1_postcss@8.4.32 780 | dev: true 781 | 782 | /cssnano-preset-default/6.0.2_postcss@8.4.32: 783 | resolution: {integrity: sha512-VnZybFeZ63AiVqIUNlxqMxpj9VU8B5j0oKgP7WyVt/7mkyf97KsYkNzsPTV/RVmy54Pg7cBhOK4WATbdCB44gw==} 784 | engines: {node: ^14 || ^16 || >=18.0} 785 | peerDependencies: 786 | postcss: ^8.4.31 787 | dependencies: 788 | css-declaration-sorter: 7.1.1_postcss@8.4.32 789 | cssnano-utils: 4.0.1_postcss@8.4.32 790 | postcss: 8.4.32 791 | postcss-calc: 9.0.1_postcss@8.4.32 792 | postcss-colormin: 6.0.1_postcss@8.4.32 793 | postcss-convert-values: 6.0.1_postcss@8.4.32 794 | postcss-discard-comments: 6.0.1_postcss@8.4.32 795 | postcss-discard-duplicates: 6.0.1_postcss@8.4.32 796 | postcss-discard-empty: 6.0.1_postcss@8.4.32 797 | postcss-discard-overridden: 6.0.1_postcss@8.4.32 798 | postcss-merge-longhand: 6.0.1_postcss@8.4.32 799 | postcss-merge-rules: 6.0.2_postcss@8.4.32 800 | postcss-minify-font-values: 6.0.1_postcss@8.4.32 801 | postcss-minify-gradients: 6.0.1_postcss@8.4.32 802 | postcss-minify-params: 6.0.1_postcss@8.4.32 803 | postcss-minify-selectors: 6.0.1_postcss@8.4.32 804 | postcss-normalize-charset: 6.0.1_postcss@8.4.32 805 | postcss-normalize-display-values: 6.0.1_postcss@8.4.32 806 | postcss-normalize-positions: 6.0.1_postcss@8.4.32 807 | postcss-normalize-repeat-style: 6.0.1_postcss@8.4.32 808 | postcss-normalize-string: 6.0.1_postcss@8.4.32 809 | postcss-normalize-timing-functions: 6.0.1_postcss@8.4.32 810 | postcss-normalize-unicode: 6.0.1_postcss@8.4.32 811 | postcss-normalize-url: 6.0.1_postcss@8.4.32 812 | postcss-normalize-whitespace: 6.0.1_postcss@8.4.32 813 | postcss-ordered-values: 6.0.1_postcss@8.4.32 814 | postcss-reduce-initial: 6.0.1_postcss@8.4.32 815 | postcss-reduce-transforms: 6.0.1_postcss@8.4.32 816 | postcss-svgo: 6.0.1_postcss@8.4.32 817 | postcss-unique-selectors: 6.0.1_postcss@8.4.32 818 | dev: true 819 | 820 | /cssnano-utils/3.1.0_postcss@8.4.32: 821 | resolution: {integrity: sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==} 822 | engines: {node: ^10 || ^12 || >=14.0} 823 | peerDependencies: 824 | postcss: ^8.2.15 825 | dependencies: 826 | postcss: 8.4.32 827 | dev: true 828 | 829 | /cssnano-utils/4.0.1_postcss@8.4.32: 830 | resolution: {integrity: sha512-6qQuYDqsGoiXssZ3zct6dcMxiqfT6epy7x4R0TQJadd4LWO3sPR6JH6ZByOvVLoZ6EdwPGgd7+DR1EmX3tiXQQ==} 831 | engines: {node: ^14 || ^16 || >=18.0} 832 | peerDependencies: 833 | postcss: ^8.4.31 834 | dependencies: 835 | postcss: 8.4.32 836 | dev: true 837 | 838 | /cssnano/5.1.15_postcss@8.4.32: 839 | resolution: {integrity: sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==} 840 | engines: {node: ^10 || ^12 || >=14.0} 841 | peerDependencies: 842 | postcss: ^8.2.15 843 | dependencies: 844 | cssnano-preset-default: 5.2.14_postcss@8.4.32 845 | lilconfig: 2.1.0 846 | postcss: 8.4.32 847 | yaml: 1.10.2 848 | dev: true 849 | 850 | /cssnano/6.0.2_postcss@8.4.32: 851 | resolution: {integrity: sha512-Tu9wv8UdN6CoiQnIVkCNvi+0rw/BwFWOJBlg2bVfEyKaadSuE3Gq/DD8tniVvggTJGwK88UjqZp7zL5sv6t1aA==} 852 | engines: {node: ^14 || ^16 || >=18.0} 853 | peerDependencies: 854 | postcss: ^8.4.31 855 | dependencies: 856 | cssnano-preset-default: 6.0.2_postcss@8.4.32 857 | lilconfig: 3.0.0 858 | postcss: 8.4.32 859 | dev: true 860 | 861 | /csso/4.2.0: 862 | resolution: {integrity: sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==} 863 | engines: {node: '>=8.0.0'} 864 | dependencies: 865 | css-tree: 1.1.3 866 | dev: true 867 | 868 | /csso/5.0.5: 869 | resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} 870 | engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} 871 | dependencies: 872 | css-tree: 2.2.1 873 | dev: true 874 | 875 | /debug/4.3.4: 876 | resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} 877 | engines: {node: '>=6.0'} 878 | peerDependencies: 879 | supports-color: '*' 880 | peerDependenciesMeta: 881 | supports-color: 882 | optional: true 883 | dependencies: 884 | ms: 2.1.2 885 | dev: true 886 | 887 | /dom-serializer/1.4.1: 888 | resolution: {integrity: sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==} 889 | dependencies: 890 | domelementtype: 2.3.0 891 | domhandler: 4.3.1 892 | entities: 2.2.0 893 | dev: true 894 | 895 | /dom-serializer/2.0.0: 896 | resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} 897 | dependencies: 898 | domelementtype: 2.3.0 899 | domhandler: 5.0.3 900 | entities: 4.5.0 901 | dev: true 902 | 903 | /domelementtype/2.3.0: 904 | resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} 905 | dev: true 906 | 907 | /domhandler/4.3.1: 908 | resolution: {integrity: sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==} 909 | engines: {node: '>= 4'} 910 | dependencies: 911 | domelementtype: 2.3.0 912 | dev: true 913 | 914 | /domhandler/5.0.3: 915 | resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} 916 | engines: {node: '>= 4'} 917 | dependencies: 918 | domelementtype: 2.3.0 919 | dev: true 920 | 921 | /domutils/2.8.0: 922 | resolution: {integrity: sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==} 923 | dependencies: 924 | dom-serializer: 1.4.1 925 | domelementtype: 2.3.0 926 | domhandler: 4.3.1 927 | dev: true 928 | 929 | /domutils/3.1.0: 930 | resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} 931 | dependencies: 932 | dom-serializer: 2.0.0 933 | domelementtype: 2.3.0 934 | domhandler: 5.0.3 935 | dev: true 936 | 937 | /electron-to-chromium/1.4.475: 938 | resolution: {integrity: sha512-mTye5u5P98kSJO2n7zYALhpJDmoSQejIGya0iR01GpoRady8eK3bw7YHHnjA1Rfi4ZSLdpuzlAC7Zw+1Zu7Z6A==} 939 | dev: true 940 | 941 | /entities/2.2.0: 942 | resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==} 943 | dev: true 944 | 945 | /entities/4.5.0: 946 | resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} 947 | engines: {node: '>=0.12'} 948 | dev: true 949 | 950 | /es-module-lexer/1.3.0: 951 | resolution: {integrity: sha512-vZK7T0N2CBmBOixhmjdqx2gWVbFZ4DXZ/NyRMZVlJXPa7CyFS+/a4QQsDGDQy9ZfEzxFuNEsMLeQJnKP2p5/JA==} 952 | dev: true 953 | 954 | /esbuild/0.18.17: 955 | resolution: {integrity: sha512-1GJtYnUxsJreHYA0Y+iQz2UEykonY66HNWOb0yXYZi9/kNrORUEHVg87eQsCtqh59PEJ5YVZJO98JHznMJSWjg==} 956 | engines: {node: '>=12'} 957 | hasBin: true 958 | requiresBuild: true 959 | optionalDependencies: 960 | '@esbuild/android-arm': 0.18.17 961 | '@esbuild/android-arm64': 0.18.17 962 | '@esbuild/android-x64': 0.18.17 963 | '@esbuild/darwin-arm64': 0.18.17 964 | '@esbuild/darwin-x64': 0.18.17 965 | '@esbuild/freebsd-arm64': 0.18.17 966 | '@esbuild/freebsd-x64': 0.18.17 967 | '@esbuild/linux-arm': 0.18.17 968 | '@esbuild/linux-arm64': 0.18.17 969 | '@esbuild/linux-ia32': 0.18.17 970 | '@esbuild/linux-loong64': 0.18.17 971 | '@esbuild/linux-mips64el': 0.18.17 972 | '@esbuild/linux-ppc64': 0.18.17 973 | '@esbuild/linux-riscv64': 0.18.17 974 | '@esbuild/linux-s390x': 0.18.17 975 | '@esbuild/linux-x64': 0.18.17 976 | '@esbuild/netbsd-x64': 0.18.17 977 | '@esbuild/openbsd-x64': 0.18.17 978 | '@esbuild/sunos-x64': 0.18.17 979 | '@esbuild/win32-arm64': 0.18.17 980 | '@esbuild/win32-ia32': 0.18.17 981 | '@esbuild/win32-x64': 0.18.17 982 | dev: true 983 | 984 | /esbuild/0.19.11: 985 | resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} 986 | engines: {node: '>=12'} 987 | hasBin: true 988 | requiresBuild: true 989 | optionalDependencies: 990 | '@esbuild/aix-ppc64': 0.19.11 991 | '@esbuild/android-arm': 0.19.11 992 | '@esbuild/android-arm64': 0.19.11 993 | '@esbuild/android-x64': 0.19.11 994 | '@esbuild/darwin-arm64': 0.19.11 995 | '@esbuild/darwin-x64': 0.19.11 996 | '@esbuild/freebsd-arm64': 0.19.11 997 | '@esbuild/freebsd-x64': 0.19.11 998 | '@esbuild/linux-arm': 0.19.11 999 | '@esbuild/linux-arm64': 0.19.11 1000 | '@esbuild/linux-ia32': 0.19.11 1001 | '@esbuild/linux-loong64': 0.19.11 1002 | '@esbuild/linux-mips64el': 0.19.11 1003 | '@esbuild/linux-ppc64': 0.19.11 1004 | '@esbuild/linux-riscv64': 0.19.11 1005 | '@esbuild/linux-s390x': 0.19.11 1006 | '@esbuild/linux-x64': 0.19.11 1007 | '@esbuild/netbsd-x64': 0.19.11 1008 | '@esbuild/openbsd-x64': 0.19.11 1009 | '@esbuild/sunos-x64': 0.19.11 1010 | '@esbuild/win32-arm64': 0.19.11 1011 | '@esbuild/win32-ia32': 0.19.11 1012 | '@esbuild/win32-x64': 0.19.11 1013 | dev: false 1014 | 1015 | /escalade/3.1.1: 1016 | resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} 1017 | engines: {node: '>=6'} 1018 | dev: true 1019 | 1020 | /escape-string-regexp/1.0.5: 1021 | resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} 1022 | engines: {node: '>=0.8.0'} 1023 | dev: true 1024 | 1025 | /estree-walker/0.6.1: 1026 | resolution: {integrity: sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==} 1027 | dev: true 1028 | 1029 | /estree-walker/2.0.2: 1030 | resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} 1031 | 1032 | /eventemitter3/4.0.7: 1033 | resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} 1034 | dev: true 1035 | 1036 | /fill-range/7.0.1: 1037 | resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} 1038 | engines: {node: '>=8'} 1039 | dependencies: 1040 | to-regex-range: 5.0.1 1041 | dev: false 1042 | 1043 | /fsevents/2.3.2: 1044 | resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} 1045 | engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1046 | os: [darwin] 1047 | requiresBuild: true 1048 | optional: true 1049 | 1050 | /function-bind/1.1.1: 1051 | resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} 1052 | dev: true 1053 | 1054 | /generic-names/4.0.0: 1055 | resolution: {integrity: sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A==} 1056 | dependencies: 1057 | loader-utils: 3.2.1 1058 | dev: true 1059 | 1060 | /glob-parent/5.1.2: 1061 | resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} 1062 | engines: {node: '>= 6'} 1063 | dependencies: 1064 | is-glob: 4.0.3 1065 | dev: false 1066 | 1067 | /has-flag/3.0.0: 1068 | resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} 1069 | engines: {node: '>=4'} 1070 | dev: true 1071 | 1072 | /has-flag/4.0.0: 1073 | resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1074 | engines: {node: '>=8'} 1075 | dev: true 1076 | 1077 | /has/1.0.3: 1078 | resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} 1079 | engines: {node: '>= 0.4.0'} 1080 | dependencies: 1081 | function-bind: 1.1.1 1082 | dev: true 1083 | 1084 | /icss-replace-symbols/1.1.0: 1085 | resolution: {integrity: sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg==} 1086 | dev: true 1087 | 1088 | /icss-utils/5.1.0_postcss@8.4.32: 1089 | resolution: {integrity: sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==} 1090 | engines: {node: ^10 || ^12 || >= 14} 1091 | peerDependencies: 1092 | postcss: ^8.1.0 1093 | dependencies: 1094 | postcss: 8.4.32 1095 | dev: true 1096 | 1097 | /import-cwd/3.0.0: 1098 | resolution: {integrity: sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg==} 1099 | engines: {node: '>=8'} 1100 | dependencies: 1101 | import-from: 3.0.0 1102 | dev: true 1103 | 1104 | /import-from/3.0.0: 1105 | resolution: {integrity: sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==} 1106 | engines: {node: '>=8'} 1107 | dependencies: 1108 | resolve-from: 5.0.0 1109 | dev: true 1110 | 1111 | /is-binary-path/2.1.0: 1112 | resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} 1113 | engines: {node: '>=8'} 1114 | dependencies: 1115 | binary-extensions: 2.2.0 1116 | dev: false 1117 | 1118 | /is-core-module/2.12.1: 1119 | resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} 1120 | dependencies: 1121 | has: 1.0.3 1122 | dev: true 1123 | 1124 | /is-extglob/2.1.1: 1125 | resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} 1126 | engines: {node: '>=0.10.0'} 1127 | dev: false 1128 | 1129 | /is-glob/4.0.3: 1130 | resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} 1131 | engines: {node: '>=0.10.0'} 1132 | dependencies: 1133 | is-extglob: 2.1.1 1134 | dev: false 1135 | 1136 | /is-number/7.0.0: 1137 | resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1138 | engines: {node: '>=0.12.0'} 1139 | dev: false 1140 | 1141 | /joycon/3.1.1: 1142 | resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} 1143 | engines: {node: '>=10'} 1144 | dev: true 1145 | 1146 | /js-tokens/4.0.0: 1147 | resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1148 | dev: true 1149 | optional: true 1150 | 1151 | /jsonc-parser/3.2.0: 1152 | resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} 1153 | dev: true 1154 | 1155 | /lilconfig/2.1.0: 1156 | resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} 1157 | engines: {node: '>=10'} 1158 | dev: true 1159 | 1160 | /lilconfig/3.0.0: 1161 | resolution: {integrity: sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==} 1162 | engines: {node: '>=14'} 1163 | dev: true 1164 | 1165 | /loader-utils/3.2.1: 1166 | resolution: {integrity: sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw==} 1167 | engines: {node: '>= 12.13.0'} 1168 | dev: true 1169 | 1170 | /lodash.camelcase/4.3.0: 1171 | resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} 1172 | dev: true 1173 | 1174 | /lodash.memoize/4.1.2: 1175 | resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} 1176 | dev: true 1177 | 1178 | /lodash.uniq/4.5.0: 1179 | resolution: {integrity: sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==} 1180 | dev: true 1181 | 1182 | /magic-string/0.30.5: 1183 | resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} 1184 | engines: {node: '>=12'} 1185 | dependencies: 1186 | '@jridgewell/sourcemap-codec': 1.4.15 1187 | dev: true 1188 | 1189 | /mdn-data/2.0.14: 1190 | resolution: {integrity: sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==} 1191 | dev: true 1192 | 1193 | /mdn-data/2.0.28: 1194 | resolution: {integrity: sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==} 1195 | dev: true 1196 | 1197 | /mdn-data/2.0.30: 1198 | resolution: {integrity: sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==} 1199 | dev: true 1200 | 1201 | /ms/2.1.2: 1202 | resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} 1203 | dev: true 1204 | 1205 | /nanoid/3.3.7: 1206 | resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} 1207 | engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} 1208 | hasBin: true 1209 | dev: true 1210 | 1211 | /node-releases/2.0.13: 1212 | resolution: {integrity: sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ==} 1213 | dev: true 1214 | 1215 | /normalize-path/3.0.0: 1216 | resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} 1217 | engines: {node: '>=0.10.0'} 1218 | dev: false 1219 | 1220 | /normalize-url/6.1.0: 1221 | resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} 1222 | engines: {node: '>=10'} 1223 | dev: true 1224 | 1225 | /nth-check/2.1.1: 1226 | resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} 1227 | dependencies: 1228 | boolbase: 1.0.0 1229 | dev: true 1230 | 1231 | /p-finally/1.0.0: 1232 | resolution: {integrity: sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==} 1233 | engines: {node: '>=4'} 1234 | dev: true 1235 | 1236 | /p-queue/6.6.2: 1237 | resolution: {integrity: sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ==} 1238 | engines: {node: '>=8'} 1239 | dependencies: 1240 | eventemitter3: 4.0.7 1241 | p-timeout: 3.2.0 1242 | dev: true 1243 | 1244 | /p-timeout/3.2.0: 1245 | resolution: {integrity: sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==} 1246 | engines: {node: '>=8'} 1247 | dependencies: 1248 | p-finally: 1.0.0 1249 | dev: true 1250 | 1251 | /path-parse/1.0.7: 1252 | resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} 1253 | dev: true 1254 | 1255 | /picocolors/1.0.0: 1256 | resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} 1257 | dev: true 1258 | 1259 | /picomatch/2.3.1: 1260 | resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} 1261 | engines: {node: '>=8.6'} 1262 | 1263 | /pify/5.0.0: 1264 | resolution: {integrity: sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA==} 1265 | engines: {node: '>=10'} 1266 | dev: true 1267 | 1268 | /postcss-calc/8.2.4_postcss@8.4.32: 1269 | resolution: {integrity: sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==} 1270 | peerDependencies: 1271 | postcss: ^8.2.2 1272 | dependencies: 1273 | postcss: 8.4.32 1274 | postcss-selector-parser: 6.0.13 1275 | postcss-value-parser: 4.2.0 1276 | dev: true 1277 | 1278 | /postcss-calc/9.0.1_postcss@8.4.32: 1279 | resolution: {integrity: sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ==} 1280 | engines: {node: ^14 || ^16 || >=18.0} 1281 | peerDependencies: 1282 | postcss: ^8.2.2 1283 | dependencies: 1284 | postcss: 8.4.32 1285 | postcss-selector-parser: 6.0.13 1286 | postcss-value-parser: 4.2.0 1287 | dev: true 1288 | 1289 | /postcss-clean/1.2.2: 1290 | resolution: {integrity: sha512-DpuMWW19Dd2K9KY4wknMz3khq9q2yZYa2U37bnhzdtBdBv0ggIfUj5T2XD3ir6gKVlDkb5OtOqw1iQJWq6qvpw==} 1291 | engines: {node: '>=4.0.0'} 1292 | dependencies: 1293 | clean-css: 4.2.4 1294 | postcss: 6.0.23 1295 | dev: true 1296 | 1297 | /postcss-colormin/5.3.1_postcss@8.4.32: 1298 | resolution: {integrity: sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==} 1299 | engines: {node: ^10 || ^12 || >=14.0} 1300 | peerDependencies: 1301 | postcss: ^8.2.15 1302 | dependencies: 1303 | browserslist: 4.21.9 1304 | caniuse-api: 3.0.0 1305 | colord: 2.9.3 1306 | postcss: 8.4.32 1307 | postcss-value-parser: 4.2.0 1308 | dev: true 1309 | 1310 | /postcss-colormin/6.0.1_postcss@8.4.32: 1311 | resolution: {integrity: sha512-Tb9aR2wCJCzKuNjIeMzVNd0nXjQy25HDgFmmaRsHnP0eP/k8uQWE4S8voX5S2coO5CeKrp+USFs1Ayv9Tpxx6w==} 1312 | engines: {node: ^14 || ^16 || >=18.0} 1313 | peerDependencies: 1314 | postcss: ^8.4.31 1315 | dependencies: 1316 | browserslist: 4.21.9 1317 | caniuse-api: 3.0.0 1318 | colord: 2.9.3 1319 | postcss: 8.4.32 1320 | postcss-value-parser: 4.2.0 1321 | dev: true 1322 | 1323 | /postcss-convert-values/5.1.3_postcss@8.4.32: 1324 | resolution: {integrity: sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==} 1325 | engines: {node: ^10 || ^12 || >=14.0} 1326 | peerDependencies: 1327 | postcss: ^8.2.15 1328 | dependencies: 1329 | browserslist: 4.21.9 1330 | postcss: 8.4.32 1331 | postcss-value-parser: 4.2.0 1332 | dev: true 1333 | 1334 | /postcss-convert-values/6.0.1_postcss@8.4.32: 1335 | resolution: {integrity: sha512-zTd4Vh0HxGkhg5aHtfCogcRHzGkvblfdWlQ53lIh1cJhYcGyIxh2hgtKoVh40AMktRERet+JKdB04nNG19kjmA==} 1336 | engines: {node: ^14 || ^16 || >=18.0} 1337 | peerDependencies: 1338 | postcss: ^8.4.31 1339 | dependencies: 1340 | browserslist: 4.21.9 1341 | postcss: 8.4.32 1342 | postcss-value-parser: 4.2.0 1343 | dev: true 1344 | 1345 | /postcss-discard-comments/5.1.2_postcss@8.4.32: 1346 | resolution: {integrity: sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==} 1347 | engines: {node: ^10 || ^12 || >=14.0} 1348 | peerDependencies: 1349 | postcss: ^8.2.15 1350 | dependencies: 1351 | postcss: 8.4.32 1352 | dev: true 1353 | 1354 | /postcss-discard-comments/6.0.1_postcss@8.4.32: 1355 | resolution: {integrity: sha512-f1KYNPtqYLUeZGCHQPKzzFtsHaRuECe6jLakf/RjSRqvF5XHLZnM2+fXLhb8Qh/HBFHs3M4cSLb1k3B899RYIg==} 1356 | engines: {node: ^14 || ^16 || >=18.0} 1357 | peerDependencies: 1358 | postcss: ^8.4.31 1359 | dependencies: 1360 | postcss: 8.4.32 1361 | dev: true 1362 | 1363 | /postcss-discard-duplicates/5.1.0_postcss@8.4.32: 1364 | resolution: {integrity: sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==} 1365 | engines: {node: ^10 || ^12 || >=14.0} 1366 | peerDependencies: 1367 | postcss: ^8.2.15 1368 | dependencies: 1369 | postcss: 8.4.32 1370 | dev: true 1371 | 1372 | /postcss-discard-duplicates/6.0.1_postcss@8.4.32: 1373 | resolution: {integrity: sha512-1hvUs76HLYR8zkScbwyJ8oJEugfPV+WchpnA+26fpJ7Smzs51CzGBHC32RS03psuX/2l0l0UKh2StzNxOrKCYg==} 1374 | engines: {node: ^14 || ^16 || >=18.0} 1375 | peerDependencies: 1376 | postcss: ^8.4.31 1377 | dependencies: 1378 | postcss: 8.4.32 1379 | dev: true 1380 | 1381 | /postcss-discard-empty/5.1.1_postcss@8.4.32: 1382 | resolution: {integrity: sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==} 1383 | engines: {node: ^10 || ^12 || >=14.0} 1384 | peerDependencies: 1385 | postcss: ^8.2.15 1386 | dependencies: 1387 | postcss: 8.4.32 1388 | dev: true 1389 | 1390 | /postcss-discard-empty/6.0.1_postcss@8.4.32: 1391 | resolution: {integrity: sha512-yitcmKwmVWtNsrrRqGJ7/C0YRy53i0mjexBDQ9zYxDwTWVBgbU4+C9jIZLmQlTDT9zhml+u0OMFJh8+31krmOg==} 1392 | engines: {node: ^14 || ^16 || >=18.0} 1393 | peerDependencies: 1394 | postcss: ^8.4.31 1395 | dependencies: 1396 | postcss: 8.4.32 1397 | dev: true 1398 | 1399 | /postcss-discard-overridden/5.1.0_postcss@8.4.32: 1400 | resolution: {integrity: sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==} 1401 | engines: {node: ^10 || ^12 || >=14.0} 1402 | peerDependencies: 1403 | postcss: ^8.2.15 1404 | dependencies: 1405 | postcss: 8.4.32 1406 | dev: true 1407 | 1408 | /postcss-discard-overridden/6.0.1_postcss@8.4.32: 1409 | resolution: {integrity: sha512-qs0ehZMMZpSESbRkw1+inkf51kak6OOzNRaoLd/U7Fatp0aN2HQ1rxGOrJvYcRAN9VpX8kUF13R2ofn8OlvFVA==} 1410 | engines: {node: ^14 || ^16 || >=18.0} 1411 | peerDependencies: 1412 | postcss: ^8.4.31 1413 | dependencies: 1414 | postcss: 8.4.32 1415 | dev: true 1416 | 1417 | /postcss-load-config/3.1.4_postcss@8.4.32: 1418 | resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} 1419 | engines: {node: '>= 10'} 1420 | peerDependencies: 1421 | postcss: '>=8.0.9' 1422 | ts-node: '>=9.0.0' 1423 | peerDependenciesMeta: 1424 | postcss: 1425 | optional: true 1426 | ts-node: 1427 | optional: true 1428 | dependencies: 1429 | lilconfig: 2.1.0 1430 | postcss: 8.4.32 1431 | yaml: 1.10.2 1432 | dev: true 1433 | 1434 | /postcss-merge-longhand/5.1.7_postcss@8.4.32: 1435 | resolution: {integrity: sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==} 1436 | engines: {node: ^10 || ^12 || >=14.0} 1437 | peerDependencies: 1438 | postcss: ^8.2.15 1439 | dependencies: 1440 | postcss: 8.4.32 1441 | postcss-value-parser: 4.2.0 1442 | stylehacks: 5.1.1_postcss@8.4.32 1443 | dev: true 1444 | 1445 | /postcss-merge-longhand/6.0.1_postcss@8.4.32: 1446 | resolution: {integrity: sha512-vmr/HZQzaPXc45FRvSctqFTF05UaDnTn5ABX+UtQPJznDWT/QaFbVc/pJ5C2YPxx2J2XcfmWowlKwtCDwiQ5hA==} 1447 | engines: {node: ^14 || ^16 || >=18.0} 1448 | peerDependencies: 1449 | postcss: ^8.4.31 1450 | dependencies: 1451 | postcss: 8.4.32 1452 | postcss-value-parser: 4.2.0 1453 | stylehacks: 6.0.1_postcss@8.4.32 1454 | dev: true 1455 | 1456 | /postcss-merge-rules/5.1.4_postcss@8.4.32: 1457 | resolution: {integrity: sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==} 1458 | engines: {node: ^10 || ^12 || >=14.0} 1459 | peerDependencies: 1460 | postcss: ^8.2.15 1461 | dependencies: 1462 | browserslist: 4.21.9 1463 | caniuse-api: 3.0.0 1464 | cssnano-utils: 3.1.0_postcss@8.4.32 1465 | postcss: 8.4.32 1466 | postcss-selector-parser: 6.0.13 1467 | dev: true 1468 | 1469 | /postcss-merge-rules/6.0.2_postcss@8.4.32: 1470 | resolution: {integrity: sha512-6lm8bl0UfriSfxI+F/cezrebqqP8w702UC6SjZlUlBYwuRVNbmgcJuQU7yePIvD4MNT53r/acQCUAyulrpgmeQ==} 1471 | engines: {node: ^14 || ^16 || >=18.0} 1472 | peerDependencies: 1473 | postcss: ^8.4.31 1474 | dependencies: 1475 | browserslist: 4.21.9 1476 | caniuse-api: 3.0.0 1477 | cssnano-utils: 4.0.1_postcss@8.4.32 1478 | postcss: 8.4.32 1479 | postcss-selector-parser: 6.0.13 1480 | dev: true 1481 | 1482 | /postcss-minify-font-values/5.1.0_postcss@8.4.32: 1483 | resolution: {integrity: sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==} 1484 | engines: {node: ^10 || ^12 || >=14.0} 1485 | peerDependencies: 1486 | postcss: ^8.2.15 1487 | dependencies: 1488 | postcss: 8.4.32 1489 | postcss-value-parser: 4.2.0 1490 | dev: true 1491 | 1492 | /postcss-minify-font-values/6.0.1_postcss@8.4.32: 1493 | resolution: {integrity: sha512-tIwmF1zUPoN6xOtA/2FgVk1ZKrLcCvE0dpZLtzyyte0j9zUeB8RTbCqrHZGjJlxOvNWKMYtunLrrl7HPOiR46w==} 1494 | engines: {node: ^14 || ^16 || >=18.0} 1495 | peerDependencies: 1496 | postcss: ^8.4.31 1497 | dependencies: 1498 | postcss: 8.4.32 1499 | postcss-value-parser: 4.2.0 1500 | dev: true 1501 | 1502 | /postcss-minify-gradients/5.1.1_postcss@8.4.32: 1503 | resolution: {integrity: sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==} 1504 | engines: {node: ^10 || ^12 || >=14.0} 1505 | peerDependencies: 1506 | postcss: ^8.2.15 1507 | dependencies: 1508 | colord: 2.9.3 1509 | cssnano-utils: 3.1.0_postcss@8.4.32 1510 | postcss: 8.4.32 1511 | postcss-value-parser: 4.2.0 1512 | dev: true 1513 | 1514 | /postcss-minify-gradients/6.0.1_postcss@8.4.32: 1515 | resolution: {integrity: sha512-M1RJWVjd6IOLPl1hYiOd5HQHgpp6cvJVLrieQYS9y07Yo8itAr6jaekzJphaJFR0tcg4kRewCk3kna9uHBxn/w==} 1516 | engines: {node: ^14 || ^16 || >=18.0} 1517 | peerDependencies: 1518 | postcss: ^8.4.31 1519 | dependencies: 1520 | colord: 2.9.3 1521 | cssnano-utils: 4.0.1_postcss@8.4.32 1522 | postcss: 8.4.32 1523 | postcss-value-parser: 4.2.0 1524 | dev: true 1525 | 1526 | /postcss-minify-params/5.1.4_postcss@8.4.32: 1527 | resolution: {integrity: sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==} 1528 | engines: {node: ^10 || ^12 || >=14.0} 1529 | peerDependencies: 1530 | postcss: ^8.2.15 1531 | dependencies: 1532 | browserslist: 4.21.9 1533 | cssnano-utils: 3.1.0_postcss@8.4.32 1534 | postcss: 8.4.32 1535 | postcss-value-parser: 4.2.0 1536 | dev: true 1537 | 1538 | /postcss-minify-params/6.0.1_postcss@8.4.32: 1539 | resolution: {integrity: sha512-eFvGWArqh4khPIgPDu6SZNcaLctx97nO7c59OXnRtGntAp5/VS4gjMhhW9qUFsK6mQ27pEZGt2kR+mPizI+Z9g==} 1540 | engines: {node: ^14 || ^16 || >=18.0} 1541 | peerDependencies: 1542 | postcss: ^8.4.31 1543 | dependencies: 1544 | browserslist: 4.21.9 1545 | cssnano-utils: 4.0.1_postcss@8.4.32 1546 | postcss: 8.4.32 1547 | postcss-value-parser: 4.2.0 1548 | dev: true 1549 | 1550 | /postcss-minify-selectors/5.2.1_postcss@8.4.32: 1551 | resolution: {integrity: sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==} 1552 | engines: {node: ^10 || ^12 || >=14.0} 1553 | peerDependencies: 1554 | postcss: ^8.2.15 1555 | dependencies: 1556 | postcss: 8.4.32 1557 | postcss-selector-parser: 6.0.13 1558 | dev: true 1559 | 1560 | /postcss-minify-selectors/6.0.1_postcss@8.4.32: 1561 | resolution: {integrity: sha512-mfReq5wrS6vkunxvJp6GDuOk+Ak6JV7134gp8L+ANRnV9VwqzTvBtX6lpohooVU750AR0D3pVx2Zn6uCCwOAfQ==} 1562 | engines: {node: ^14 || ^16 || >=18.0} 1563 | peerDependencies: 1564 | postcss: ^8.4.31 1565 | dependencies: 1566 | postcss: 8.4.32 1567 | postcss-selector-parser: 6.0.13 1568 | dev: true 1569 | 1570 | /postcss-modules-extract-imports/3.0.0_postcss@8.4.32: 1571 | resolution: {integrity: sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==} 1572 | engines: {node: ^10 || ^12 || >= 14} 1573 | peerDependencies: 1574 | postcss: ^8.1.0 1575 | dependencies: 1576 | postcss: 8.4.32 1577 | dev: true 1578 | 1579 | /postcss-modules-local-by-default/4.0.3_postcss@8.4.32: 1580 | resolution: {integrity: sha512-2/u2zraspoACtrbFRnTijMiQtb4GW4BvatjaG/bCjYQo8kLTdevCUlwuBHx2sCnSyrI3x3qj4ZK1j5LQBgzmwA==} 1581 | engines: {node: ^10 || ^12 || >= 14} 1582 | peerDependencies: 1583 | postcss: ^8.1.0 1584 | dependencies: 1585 | icss-utils: 5.1.0_postcss@8.4.32 1586 | postcss: 8.4.32 1587 | postcss-selector-parser: 6.0.13 1588 | postcss-value-parser: 4.2.0 1589 | dev: true 1590 | 1591 | /postcss-modules-scope/3.0.0_postcss@8.4.32: 1592 | resolution: {integrity: sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==} 1593 | engines: {node: ^10 || ^12 || >= 14} 1594 | peerDependencies: 1595 | postcss: ^8.1.0 1596 | dependencies: 1597 | postcss: 8.4.32 1598 | postcss-selector-parser: 6.0.13 1599 | dev: true 1600 | 1601 | /postcss-modules-values/4.0.0_postcss@8.4.32: 1602 | resolution: {integrity: sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==} 1603 | engines: {node: ^10 || ^12 || >= 14} 1604 | peerDependencies: 1605 | postcss: ^8.1.0 1606 | dependencies: 1607 | icss-utils: 5.1.0_postcss@8.4.32 1608 | postcss: 8.4.32 1609 | dev: true 1610 | 1611 | /postcss-modules/4.3.1_postcss@8.4.32: 1612 | resolution: {integrity: sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q==} 1613 | peerDependencies: 1614 | postcss: ^8.0.0 1615 | dependencies: 1616 | generic-names: 4.0.0 1617 | icss-replace-symbols: 1.1.0 1618 | lodash.camelcase: 4.3.0 1619 | postcss: 8.4.32 1620 | postcss-modules-extract-imports: 3.0.0_postcss@8.4.32 1621 | postcss-modules-local-by-default: 4.0.3_postcss@8.4.32 1622 | postcss-modules-scope: 3.0.0_postcss@8.4.32 1623 | postcss-modules-values: 4.0.0_postcss@8.4.32 1624 | string-hash: 1.1.3 1625 | dev: true 1626 | 1627 | /postcss-normalize-charset/5.1.0_postcss@8.4.32: 1628 | resolution: {integrity: sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==} 1629 | engines: {node: ^10 || ^12 || >=14.0} 1630 | peerDependencies: 1631 | postcss: ^8.2.15 1632 | dependencies: 1633 | postcss: 8.4.32 1634 | dev: true 1635 | 1636 | /postcss-normalize-charset/6.0.1_postcss@8.4.32: 1637 | resolution: {integrity: sha512-aW5LbMNRZ+oDV57PF9K+WI1Z8MPnF+A8qbajg/T8PP126YrGX1f9IQx21GI2OlGz7XFJi/fNi0GTbY948XJtXg==} 1638 | engines: {node: ^14 || ^16 || >=18.0} 1639 | peerDependencies: 1640 | postcss: ^8.4.31 1641 | dependencies: 1642 | postcss: 8.4.32 1643 | dev: true 1644 | 1645 | /postcss-normalize-display-values/5.1.0_postcss@8.4.32: 1646 | resolution: {integrity: sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==} 1647 | engines: {node: ^10 || ^12 || >=14.0} 1648 | peerDependencies: 1649 | postcss: ^8.2.15 1650 | dependencies: 1651 | postcss: 8.4.32 1652 | postcss-value-parser: 4.2.0 1653 | dev: true 1654 | 1655 | /postcss-normalize-display-values/6.0.1_postcss@8.4.32: 1656 | resolution: {integrity: sha512-mc3vxp2bEuCb4LgCcmG1y6lKJu1Co8T+rKHrcbShJwUmKJiEl761qb/QQCfFwlrvSeET3jksolCR/RZuMURudw==} 1657 | engines: {node: ^14 || ^16 || >=18.0} 1658 | peerDependencies: 1659 | postcss: ^8.4.31 1660 | dependencies: 1661 | postcss: 8.4.32 1662 | postcss-value-parser: 4.2.0 1663 | dev: true 1664 | 1665 | /postcss-normalize-positions/5.1.1_postcss@8.4.32: 1666 | resolution: {integrity: sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==} 1667 | engines: {node: ^10 || ^12 || >=14.0} 1668 | peerDependencies: 1669 | postcss: ^8.2.15 1670 | dependencies: 1671 | postcss: 8.4.32 1672 | postcss-value-parser: 4.2.0 1673 | dev: true 1674 | 1675 | /postcss-normalize-positions/6.0.1_postcss@8.4.32: 1676 | resolution: {integrity: sha512-HRsq8u/0unKNvm0cvwxcOUEcakFXqZ41fv3FOdPn916XFUrympjr+03oaLkuZENz3HE9RrQE9yU0Xv43ThWjQg==} 1677 | engines: {node: ^14 || ^16 || >=18.0} 1678 | peerDependencies: 1679 | postcss: ^8.4.31 1680 | dependencies: 1681 | postcss: 8.4.32 1682 | postcss-value-parser: 4.2.0 1683 | dev: true 1684 | 1685 | /postcss-normalize-repeat-style/5.1.1_postcss@8.4.32: 1686 | resolution: {integrity: sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==} 1687 | engines: {node: ^10 || ^12 || >=14.0} 1688 | peerDependencies: 1689 | postcss: ^8.2.15 1690 | dependencies: 1691 | postcss: 8.4.32 1692 | postcss-value-parser: 4.2.0 1693 | dev: true 1694 | 1695 | /postcss-normalize-repeat-style/6.0.1_postcss@8.4.32: 1696 | resolution: {integrity: sha512-Gbb2nmCy6tTiA7Sh2MBs3fj9W8swonk6lw+dFFeQT68B0Pzwp1kvisJQkdV6rbbMSd9brMlS8I8ts52tAGWmGQ==} 1697 | engines: {node: ^14 || ^16 || >=18.0} 1698 | peerDependencies: 1699 | postcss: ^8.4.31 1700 | dependencies: 1701 | postcss: 8.4.32 1702 | postcss-value-parser: 4.2.0 1703 | dev: true 1704 | 1705 | /postcss-normalize-string/5.1.0_postcss@8.4.32: 1706 | resolution: {integrity: sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==} 1707 | engines: {node: ^10 || ^12 || >=14.0} 1708 | peerDependencies: 1709 | postcss: ^8.2.15 1710 | dependencies: 1711 | postcss: 8.4.32 1712 | postcss-value-parser: 4.2.0 1713 | dev: true 1714 | 1715 | /postcss-normalize-string/6.0.1_postcss@8.4.32: 1716 | resolution: {integrity: sha512-5Fhx/+xzALJD9EI26Aq23hXwmv97Zfy2VFrt5PLT8lAhnBIZvmaT5pQk+NuJ/GWj/QWaKSKbnoKDGLbV6qnhXg==} 1717 | engines: {node: ^14 || ^16 || >=18.0} 1718 | peerDependencies: 1719 | postcss: ^8.4.31 1720 | dependencies: 1721 | postcss: 8.4.32 1722 | postcss-value-parser: 4.2.0 1723 | dev: true 1724 | 1725 | /postcss-normalize-timing-functions/5.1.0_postcss@8.4.32: 1726 | resolution: {integrity: sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==} 1727 | engines: {node: ^10 || ^12 || >=14.0} 1728 | peerDependencies: 1729 | postcss: ^8.2.15 1730 | dependencies: 1731 | postcss: 8.4.32 1732 | postcss-value-parser: 4.2.0 1733 | dev: true 1734 | 1735 | /postcss-normalize-timing-functions/6.0.1_postcss@8.4.32: 1736 | resolution: {integrity: sha512-4zcczzHqmCU7L5dqTB9rzeqPWRMc0K2HoR+Bfl+FSMbqGBUcP5LRfgcH4BdRtLuzVQK1/FHdFoGT3F7rkEnY+g==} 1737 | engines: {node: ^14 || ^16 || >=18.0} 1738 | peerDependencies: 1739 | postcss: ^8.4.31 1740 | dependencies: 1741 | postcss: 8.4.32 1742 | postcss-value-parser: 4.2.0 1743 | dev: true 1744 | 1745 | /postcss-normalize-unicode/5.1.1_postcss@8.4.32: 1746 | resolution: {integrity: sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==} 1747 | engines: {node: ^10 || ^12 || >=14.0} 1748 | peerDependencies: 1749 | postcss: ^8.2.15 1750 | dependencies: 1751 | browserslist: 4.21.9 1752 | postcss: 8.4.32 1753 | postcss-value-parser: 4.2.0 1754 | dev: true 1755 | 1756 | /postcss-normalize-unicode/6.0.1_postcss@8.4.32: 1757 | resolution: {integrity: sha512-ok9DsI94nEF79MkvmLfHfn8ddnKXA7w+8YuUoz5m7b6TOdoaRCpvu/QMHXQs9+DwUbvp+ytzz04J55CPy77PuQ==} 1758 | engines: {node: ^14 || ^16 || >=18.0} 1759 | peerDependencies: 1760 | postcss: ^8.4.31 1761 | dependencies: 1762 | browserslist: 4.21.9 1763 | postcss: 8.4.32 1764 | postcss-value-parser: 4.2.0 1765 | dev: true 1766 | 1767 | /postcss-normalize-url/5.1.0_postcss@8.4.32: 1768 | resolution: {integrity: sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==} 1769 | engines: {node: ^10 || ^12 || >=14.0} 1770 | peerDependencies: 1771 | postcss: ^8.2.15 1772 | dependencies: 1773 | normalize-url: 6.1.0 1774 | postcss: 8.4.32 1775 | postcss-value-parser: 4.2.0 1776 | dev: true 1777 | 1778 | /postcss-normalize-url/6.0.1_postcss@8.4.32: 1779 | resolution: {integrity: sha512-jEXL15tXSvbjm0yzUV7FBiEXwhIa9H88JOXDGQzmcWoB4mSjZIsmtto066s2iW9FYuIrIF4k04HA2BKAOpbsaQ==} 1780 | engines: {node: ^14 || ^16 || >=18.0} 1781 | peerDependencies: 1782 | postcss: ^8.4.31 1783 | dependencies: 1784 | postcss: 8.4.32 1785 | postcss-value-parser: 4.2.0 1786 | dev: true 1787 | 1788 | /postcss-normalize-whitespace/5.1.1_postcss@8.4.32: 1789 | resolution: {integrity: sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==} 1790 | engines: {node: ^10 || ^12 || >=14.0} 1791 | peerDependencies: 1792 | postcss: ^8.2.15 1793 | dependencies: 1794 | postcss: 8.4.32 1795 | postcss-value-parser: 4.2.0 1796 | dev: true 1797 | 1798 | /postcss-normalize-whitespace/6.0.1_postcss@8.4.32: 1799 | resolution: {integrity: sha512-76i3NpWf6bB8UHlVuLRxG4zW2YykF9CTEcq/9LGAiz2qBuX5cBStadkk0jSkg9a9TCIXbMQz7yzrygKoCW9JuA==} 1800 | engines: {node: ^14 || ^16 || >=18.0} 1801 | peerDependencies: 1802 | postcss: ^8.4.31 1803 | dependencies: 1804 | postcss: 8.4.32 1805 | postcss-value-parser: 4.2.0 1806 | dev: true 1807 | 1808 | /postcss-ordered-values/5.1.3_postcss@8.4.32: 1809 | resolution: {integrity: sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==} 1810 | engines: {node: ^10 || ^12 || >=14.0} 1811 | peerDependencies: 1812 | postcss: ^8.2.15 1813 | dependencies: 1814 | cssnano-utils: 3.1.0_postcss@8.4.32 1815 | postcss: 8.4.32 1816 | postcss-value-parser: 4.2.0 1817 | dev: true 1818 | 1819 | /postcss-ordered-values/6.0.1_postcss@8.4.32: 1820 | resolution: {integrity: sha512-XXbb1O/MW9HdEhnBxitZpPFbIvDgbo9NK4c/5bOfiKpnIGZDoL2xd7/e6jW5DYLsWxBbs+1nZEnVgnjnlFViaA==} 1821 | engines: {node: ^14 || ^16 || >=18.0} 1822 | peerDependencies: 1823 | postcss: ^8.4.31 1824 | dependencies: 1825 | cssnano-utils: 4.0.1_postcss@8.4.32 1826 | postcss: 8.4.32 1827 | postcss-value-parser: 4.2.0 1828 | dev: true 1829 | 1830 | /postcss-reduce-initial/5.1.2_postcss@8.4.32: 1831 | resolution: {integrity: sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==} 1832 | engines: {node: ^10 || ^12 || >=14.0} 1833 | peerDependencies: 1834 | postcss: ^8.2.15 1835 | dependencies: 1836 | browserslist: 4.21.9 1837 | caniuse-api: 3.0.0 1838 | postcss: 8.4.32 1839 | dev: true 1840 | 1841 | /postcss-reduce-initial/6.0.1_postcss@8.4.32: 1842 | resolution: {integrity: sha512-cgzsI2ThG1PMSdSyM9A+bVxiiVgPIVz9f5c6H+TqEv0CA89iCOO81mwLWRWLgOKFtQkKob9nNpnkxG/1RlgFcA==} 1843 | engines: {node: ^14 || ^16 || >=18.0} 1844 | peerDependencies: 1845 | postcss: ^8.4.31 1846 | dependencies: 1847 | browserslist: 4.21.9 1848 | caniuse-api: 3.0.0 1849 | postcss: 8.4.32 1850 | dev: true 1851 | 1852 | /postcss-reduce-transforms/5.1.0_postcss@8.4.32: 1853 | resolution: {integrity: sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==} 1854 | engines: {node: ^10 || ^12 || >=14.0} 1855 | peerDependencies: 1856 | postcss: ^8.2.15 1857 | dependencies: 1858 | postcss: 8.4.32 1859 | postcss-value-parser: 4.2.0 1860 | dev: true 1861 | 1862 | /postcss-reduce-transforms/6.0.1_postcss@8.4.32: 1863 | resolution: {integrity: sha512-fUbV81OkUe75JM+VYO1gr/IoA2b/dRiH6HvMwhrIBSUrxq3jNZQZitSnugcTLDi1KkQh1eR/zi+iyxviUNBkcQ==} 1864 | engines: {node: ^14 || ^16 || >=18.0} 1865 | peerDependencies: 1866 | postcss: ^8.4.31 1867 | dependencies: 1868 | postcss: 8.4.32 1869 | postcss-value-parser: 4.2.0 1870 | dev: true 1871 | 1872 | /postcss-selector-parser/6.0.13: 1873 | resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==} 1874 | engines: {node: '>=4'} 1875 | dependencies: 1876 | cssesc: 3.0.0 1877 | util-deprecate: 1.0.2 1878 | dev: true 1879 | 1880 | /postcss-svgo/5.1.0_postcss@8.4.32: 1881 | resolution: {integrity: sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==} 1882 | engines: {node: ^10 || ^12 || >=14.0} 1883 | peerDependencies: 1884 | postcss: ^8.2.15 1885 | dependencies: 1886 | postcss: 8.4.32 1887 | postcss-value-parser: 4.2.0 1888 | svgo: 2.8.0 1889 | dev: true 1890 | 1891 | /postcss-svgo/6.0.1_postcss@8.4.32: 1892 | resolution: {integrity: sha512-eWV4Rrqa06LzTgqirOv5Ln6WTGyU7Pbeqj9WEyKo9tpnWixNATVJMeaEcOHOW1ZYyjcG8wSJwX/28DvU3oy3HA==} 1893 | engines: {node: ^14 || ^16 || >= 18} 1894 | peerDependencies: 1895 | postcss: ^8.4.31 1896 | dependencies: 1897 | postcss: 8.4.32 1898 | postcss-value-parser: 4.2.0 1899 | svgo: 3.1.0 1900 | dev: true 1901 | 1902 | /postcss-unique-selectors/5.1.1_postcss@8.4.32: 1903 | resolution: {integrity: sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==} 1904 | engines: {node: ^10 || ^12 || >=14.0} 1905 | peerDependencies: 1906 | postcss: ^8.2.15 1907 | dependencies: 1908 | postcss: 8.4.32 1909 | postcss-selector-parser: 6.0.13 1910 | dev: true 1911 | 1912 | /postcss-unique-selectors/6.0.1_postcss@8.4.32: 1913 | resolution: {integrity: sha512-/KCCEpNNR7oXVJ38/Id7GC9Nt0zxO1T3zVbhVaq6F6LSG+3gU3B7+QuTHfD0v8NPEHlzewAout29S0InmB78EQ==} 1914 | engines: {node: ^14 || ^16 || >=18.0} 1915 | peerDependencies: 1916 | postcss: ^8.4.31 1917 | dependencies: 1918 | postcss: 8.4.32 1919 | postcss-selector-parser: 6.0.13 1920 | dev: true 1921 | 1922 | /postcss-value-parser/4.2.0: 1923 | resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} 1924 | dev: true 1925 | 1926 | /postcss/6.0.23: 1927 | resolution: {integrity: sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==} 1928 | engines: {node: '>=4.0.0'} 1929 | dependencies: 1930 | chalk: 2.4.2 1931 | source-map: 0.6.1 1932 | supports-color: 5.5.0 1933 | dev: true 1934 | 1935 | /postcss/8.4.32: 1936 | resolution: {integrity: sha512-D/kj5JNu6oo2EIy+XL/26JEDTlIbB8hw85G8StOE6L74RQAVVP5rej6wxCNqyMbR4RkPfqvezVbPw81Ngd6Kcw==} 1937 | engines: {node: ^10 || ^12 || >=14} 1938 | dependencies: 1939 | nanoid: 3.3.7 1940 | picocolors: 1.0.0 1941 | source-map-js: 1.0.2 1942 | dev: true 1943 | 1944 | /promise.series/0.2.0: 1945 | resolution: {integrity: sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ==} 1946 | engines: {node: '>=0.12'} 1947 | dev: true 1948 | 1949 | /readdirp/3.6.0: 1950 | resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} 1951 | engines: {node: '>=8.10.0'} 1952 | dependencies: 1953 | picomatch: 2.3.1 1954 | dev: false 1955 | 1956 | /resolve-from/5.0.0: 1957 | resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} 1958 | engines: {node: '>=8'} 1959 | dev: true 1960 | 1961 | /resolve/1.22.2: 1962 | resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} 1963 | hasBin: true 1964 | dependencies: 1965 | is-core-module: 2.12.1 1966 | path-parse: 1.0.7 1967 | supports-preserve-symlinks-flag: 1.0.0 1968 | dev: true 1969 | 1970 | /rollup-plugin-dts/6.1.0_5kdi3tvld5tgllgal534h4tmxm: 1971 | resolution: {integrity: sha512-ijSCPICkRMDKDLBK9torss07+8dl9UpY9z1N/zTeA1cIqdzMlpkV3MOOC7zukyvQfDyxa1s3Dl2+DeiP/G6DOw==} 1972 | engines: {node: '>=16'} 1973 | peerDependencies: 1974 | rollup: ^3.29.4 || ^4 1975 | typescript: ^4.5 || ^5.0 1976 | dependencies: 1977 | magic-string: 0.30.5 1978 | rollup: 3.27.0 1979 | typescript: 5.1.6 1980 | optionalDependencies: 1981 | '@babel/code-frame': 7.23.5 1982 | dev: true 1983 | 1984 | /rollup-plugin-esbuild/5.0.0_rollup@3.27.0: 1985 | resolution: {integrity: sha512-1cRIOHAPh8WQgdQQyyvFdeOdxuiyk+zB5zJ5+YOwrZP4cJ0MT3Fs48pQxrZeyZHcn+klFherytILVfE4aYrneg==} 1986 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 1987 | peerDependencies: 1988 | esbuild: '>=0.10.1' 1989 | rollup: ^1.20.0 || ^2.0.0 || ^3.0.0 1990 | dependencies: 1991 | '@rollup/pluginutils': 5.0.2_rollup@3.27.0 1992 | debug: 4.3.4 1993 | es-module-lexer: 1.3.0 1994 | joycon: 3.1.1 1995 | jsonc-parser: 3.2.0 1996 | rollup: 3.27.0 1997 | transitivePeerDependencies: 1998 | - supports-color 1999 | dev: true 2000 | 2001 | /rollup-plugin-postcss/4.0.2_postcss@8.4.32: 2002 | resolution: {integrity: sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w==} 2003 | engines: {node: '>=10'} 2004 | peerDependencies: 2005 | postcss: 8.x 2006 | dependencies: 2007 | chalk: 4.1.2 2008 | concat-with-sourcemaps: 1.1.0 2009 | cssnano: 5.1.15_postcss@8.4.32 2010 | import-cwd: 3.0.0 2011 | p-queue: 6.6.2 2012 | pify: 5.0.0 2013 | postcss: 8.4.32 2014 | postcss-load-config: 3.1.4_postcss@8.4.32 2015 | postcss-modules: 4.3.1_postcss@8.4.32 2016 | promise.series: 0.2.0 2017 | resolve: 1.22.2 2018 | rollup-pluginutils: 2.8.2 2019 | safe-identifier: 0.4.2 2020 | style-inject: 0.3.0 2021 | transitivePeerDependencies: 2022 | - ts-node 2023 | dev: true 2024 | 2025 | /rollup-pluginutils/2.8.2: 2026 | resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} 2027 | dependencies: 2028 | estree-walker: 0.6.1 2029 | dev: true 2030 | 2031 | /rollup/3.27.0: 2032 | resolution: {integrity: sha512-aOltLCrYZ0FhJDm7fCqwTjIUEVjWjcydKBV/Zeid6Mn8BWgDCUBBWT5beM5ieForYNo/1ZHuGJdka26kvQ3Gzg==} 2033 | engines: {node: '>=14.18.0', npm: '>=8.0.0'} 2034 | hasBin: true 2035 | optionalDependencies: 2036 | fsevents: 2.3.2 2037 | dev: true 2038 | 2039 | /safe-identifier/0.4.2: 2040 | resolution: {integrity: sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==} 2041 | dev: true 2042 | 2043 | /source-map-js/1.0.2: 2044 | resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} 2045 | engines: {node: '>=0.10.0'} 2046 | dev: true 2047 | 2048 | /source-map/0.6.1: 2049 | resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} 2050 | engines: {node: '>=0.10.0'} 2051 | dev: true 2052 | 2053 | /stable/0.1.8: 2054 | resolution: {integrity: sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==} 2055 | deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility' 2056 | dev: true 2057 | 2058 | /string-hash/1.1.3: 2059 | resolution: {integrity: sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A==} 2060 | dev: true 2061 | 2062 | /style-inject/0.3.0: 2063 | resolution: {integrity: sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw==} 2064 | dev: true 2065 | 2066 | /stylehacks/5.1.1_postcss@8.4.32: 2067 | resolution: {integrity: sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==} 2068 | engines: {node: ^10 || ^12 || >=14.0} 2069 | peerDependencies: 2070 | postcss: ^8.2.15 2071 | dependencies: 2072 | browserslist: 4.21.9 2073 | postcss: 8.4.32 2074 | postcss-selector-parser: 6.0.13 2075 | dev: true 2076 | 2077 | /stylehacks/6.0.1_postcss@8.4.32: 2078 | resolution: {integrity: sha512-jTqG2aIoX2fYg0YsGvqE4ooE/e75WmaEjnNiP6Ag7irLtHxML8NJRxRxS0HyDpde8DRGuEXTFVHVfR5Tmbxqzg==} 2079 | engines: {node: ^14 || ^16 || >=18.0} 2080 | peerDependencies: 2081 | postcss: ^8.4.31 2082 | dependencies: 2083 | browserslist: 4.21.9 2084 | postcss: 8.4.32 2085 | postcss-selector-parser: 6.0.13 2086 | dev: true 2087 | 2088 | /supports-color/5.5.0: 2089 | resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} 2090 | engines: {node: '>=4'} 2091 | dependencies: 2092 | has-flag: 3.0.0 2093 | dev: true 2094 | 2095 | /supports-color/7.2.0: 2096 | resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 2097 | engines: {node: '>=8'} 2098 | dependencies: 2099 | has-flag: 4.0.0 2100 | dev: true 2101 | 2102 | /supports-preserve-symlinks-flag/1.0.0: 2103 | resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} 2104 | engines: {node: '>= 0.4'} 2105 | dev: true 2106 | 2107 | /svgo/2.8.0: 2108 | resolution: {integrity: sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==} 2109 | engines: {node: '>=10.13.0'} 2110 | hasBin: true 2111 | dependencies: 2112 | '@trysound/sax': 0.2.0 2113 | commander: 7.2.0 2114 | css-select: 4.3.0 2115 | css-tree: 1.1.3 2116 | csso: 4.2.0 2117 | picocolors: 1.0.0 2118 | stable: 0.1.8 2119 | dev: true 2120 | 2121 | /svgo/3.1.0: 2122 | resolution: {integrity: sha512-R5SnNA89w1dYgNv570591F66v34b3eQShpIBcQtZtM5trJwm1VvxbIoMpRYY3ybTAutcKTLEmTsdnaknOHbiQA==} 2123 | engines: {node: '>=14.0.0'} 2124 | hasBin: true 2125 | dependencies: 2126 | '@trysound/sax': 0.2.0 2127 | commander: 7.2.0 2128 | css-select: 5.1.0 2129 | css-tree: 2.3.1 2130 | css-what: 6.1.0 2131 | csso: 5.0.5 2132 | picocolors: 1.0.0 2133 | dev: true 2134 | 2135 | /to-regex-range/5.0.1: 2136 | resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 2137 | engines: {node: '>=8.0'} 2138 | dependencies: 2139 | is-number: 7.0.0 2140 | dev: false 2141 | 2142 | /tslib/2.6.1: 2143 | resolution: {integrity: sha512-t0hLfiEKfMUoqhG+U1oid7Pva4bbDPHYfJNiB7BiIjRkj1pyC++4N3huJfqY6aRH6VTB0rvtzQwjM4K6qpfOig==} 2144 | dev: true 2145 | 2146 | /typescript/5.1.6: 2147 | resolution: {integrity: sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==} 2148 | engines: {node: '>=14.17'} 2149 | hasBin: true 2150 | dev: true 2151 | 2152 | /unplugin-raw/0.1.1_rollup@3.27.0: 2153 | resolution: {integrity: sha512-ltUo6rhlvgipTPvZsvhIIiK5mfesEx5tc79su0qHhG08Xvv0X1jfAa0/ExE/ykIStU6lAlAvDUf6uswpezOFtQ==} 2154 | engines: {node: '>=16.14.0'} 2155 | dependencies: 2156 | '@rollup/pluginutils': 5.1.0_rollup@3.27.0 2157 | esbuild: 0.19.11 2158 | unplugin: 1.6.0 2159 | transitivePeerDependencies: 2160 | - rollup 2161 | dev: false 2162 | 2163 | /unplugin/1.6.0: 2164 | resolution: {integrity: sha512-BfJEpWBu3aE/AyHx8VaNE/WgouoQxgH9baAiH82JjX8cqVyi3uJQstqwD5J+SZxIK326SZIhsSZlALXVBCknTQ==} 2165 | dependencies: 2166 | acorn: 8.11.3 2167 | chokidar: 3.5.3 2168 | webpack-sources: 3.2.3 2169 | webpack-virtual-modules: 0.6.1 2170 | dev: false 2171 | 2172 | /update-browserslist-db/1.0.11_browserslist@4.21.9: 2173 | resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} 2174 | hasBin: true 2175 | peerDependencies: 2176 | browserslist: '>= 4.21.0' 2177 | dependencies: 2178 | browserslist: 4.21.9 2179 | escalade: 3.1.1 2180 | picocolors: 1.0.0 2181 | dev: true 2182 | 2183 | /util-deprecate/1.0.2: 2184 | resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} 2185 | dev: true 2186 | 2187 | /vite/4.4.7: 2188 | resolution: {integrity: sha512-6pYf9QJ1mHylfVh39HpuSfMPojPSKVxZvnclX1K1FyZ1PXDOcLBibdq5t1qxJSnL63ca8Wf4zts6mD8u8oc9Fw==} 2189 | engines: {node: ^14.18.0 || >=16.0.0} 2190 | hasBin: true 2191 | peerDependencies: 2192 | '@types/node': '>= 14' 2193 | less: '*' 2194 | lightningcss: ^1.21.0 2195 | sass: '*' 2196 | stylus: '*' 2197 | sugarss: '*' 2198 | terser: ^5.4.0 2199 | peerDependenciesMeta: 2200 | '@types/node': 2201 | optional: true 2202 | less: 2203 | optional: true 2204 | lightningcss: 2205 | optional: true 2206 | sass: 2207 | optional: true 2208 | stylus: 2209 | optional: true 2210 | sugarss: 2211 | optional: true 2212 | terser: 2213 | optional: true 2214 | dependencies: 2215 | esbuild: 0.18.17 2216 | postcss: 8.4.32 2217 | rollup: 3.27.0 2218 | optionalDependencies: 2219 | fsevents: 2.3.2 2220 | dev: true 2221 | 2222 | /webpack-sources/3.2.3: 2223 | resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==} 2224 | engines: {node: '>=10.13.0'} 2225 | dev: false 2226 | 2227 | /webpack-virtual-modules/0.6.1: 2228 | resolution: {integrity: sha512-poXpCylU7ExuvZK8z+On3kX+S8o/2dQ/SVYueKA0D4WEMXROXgY8Ez50/bQEUmvoSMMrWcrJqCHuhAbsiwg7Dg==} 2229 | dev: false 2230 | 2231 | /yaml/1.10.2: 2232 | resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} 2233 | engines: {node: '>= 6'} 2234 | dev: true 2235 | --------------------------------------------------------------------------------