From 9a87cf71a1c69aed3534f305b7e54271bb3caf56 Mon Sep 17 00:00:00 2001 From: shiro Date: Wed, 27 Mar 2024 14:11:19 +0900 Subject: [PATCH] Add CSS, tailwind, colors, theming --- app.config.ts | 37 + package.json | 7 + postcss.config.js | 17 + src/app.tsx | 5 +- src/entry-server.tsx | 2 +- src/routes/about.tsx | 3 + .../articles/2024-03-25-first-article.mdx | 3 - .../articles/2024-03-25-starting-a-blog.mdx | 10 + ...03-30-maping-chord-key-combos-on-linux.mdx | 26 + src/routes/index.tsx | 2 +- src/routes/page/[page].tsx | 11 + src/style/animations.ts | 11 + src/style/colorVariableCSS.ts | 20 + src/style/colorsTs.tsx | 18 + src/style/commonStyle.tsx | 52 + src/style/fluidSizeTS.tsx | 191 +++ src/style/fontFaces.tsx | 138 ++ src/style/fontPreamble.style.tsx | 6 + src/style/global.style.tsx | 255 +++ src/style/layerPreamble.style.tsx | 5 + src/style/mixins/layout.scss | 15 + src/style/mixins/layoutTs.tsx | 65 + src/style/mixins/sassUtil.scss | 86 + src/style/mixins/shadowMixins.ts | 19 + src/style/reset.scss | 178 ++ src/style/sizesTS.tsx | 72 + src/style/styleLoadOrder.tsx | 4 + src/style/styleUtil.tsx | 13 + src/style/styleUtilTS.tsx | 16 + src/style/textStylesTS.tsx | 198 +++ src/style/theme.ts | 215 +++ tailwind.config.js | 29 + yarn.lock | 1482 ++++++++++++++++- 33 files changed, 3191 insertions(+), 20 deletions(-) create mode 100644 postcss.config.js delete mode 100644 src/routes/articles/2024-03-25-first-article.mdx create mode 100644 src/routes/articles/2024-03-25-starting-a-blog.mdx create mode 100644 src/routes/articles/2024-03-30-maping-chord-key-combos-on-linux.mdx create mode 100644 src/routes/page/[page].tsx create mode 100644 src/style/animations.ts create mode 100644 src/style/colorVariableCSS.ts create mode 100644 src/style/colorsTs.tsx create mode 100644 src/style/commonStyle.tsx create mode 100644 src/style/fluidSizeTS.tsx create mode 100644 src/style/fontFaces.tsx create mode 100644 src/style/fontPreamble.style.tsx create mode 100644 src/style/global.style.tsx create mode 100644 src/style/layerPreamble.style.tsx create mode 100644 src/style/mixins/layout.scss create mode 100644 src/style/mixins/layoutTs.tsx create mode 100644 src/style/mixins/sassUtil.scss create mode 100644 src/style/mixins/shadowMixins.ts create mode 100644 src/style/reset.scss create mode 100644 src/style/sizesTS.tsx create mode 100644 src/style/styleLoadOrder.tsx create mode 100644 src/style/styleUtil.tsx create mode 100644 src/style/styleUtilTS.tsx create mode 100644 src/style/textStylesTS.tsx create mode 100644 src/style/theme.ts create mode 100644 tailwind.config.js diff --git a/app.config.ts b/app.config.ts index 25e9f23..2e4b604 100644 --- a/app.config.ts +++ b/app.config.ts @@ -1,5 +1,8 @@ import { defineConfig } from "@solidjs/start/config"; +import { nodeTypes } from "@mdx-js/mdx"; import { linariaVitePlugin } from "./vite/linariaVitePlugin"; +import remarkShikiTwoslash from "remark-shiki-twoslash"; +import rehypeRaw from "rehype-raw"; import pkg from "@vinxi/plugin-mdx"; const { default: mdx } = pkg; @@ -9,11 +12,14 @@ export default defineConfig({ devOverlay: false, server: { + static: true, prerender: { routes: [ "/", "/about", "/foo", + "/page/1", + "/page/2", // // "/articles/2024-03-25-first-article", ], @@ -26,11 +32,42 @@ export default defineConfig({ vite(options) { return { + css: { postcss: "./postcss.config.js" }, plugins: [ mdx.withImports({})({ jsx: true, jsxImportSource: "solid-js", providerImportSource: "solid-mdx", + rehypePlugins: [ + // rehypeSlug, rehypeCollectHeadings, + [rehypeRaw, { passThrough: nodeTypes }], + ], + remarkPlugins: [ + // remarkFrontmatter, + // remarkMdxFrontmatter, + [ + remarkShikiTwoslash.default, + { + disableImplicitReactImport: true, + includeJSDocInHover: true, + // theme: "css-variables", + themes: ["github-dark", "github-light"], + defaultCompilerOptions: { + allowSyntheticDefaultImports: true, + esModuleInterop: true, + target: "ESNext", + module: "esnext", + lib: ["lib.dom.d.ts", "lib.es2015.d.ts"], + jsxImportSource: "solid-js", + jsx: "preserve", + types: ["solid-start/env"], + paths: { + "~/*": ["./src/*"], + }, + }, + }, + ], + ], }), linariaVitePlugin({ include: [ diff --git a/package.json b/package.json index 311704e..d9f07cc 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,10 @@ "dependencies": { "@solidjs/meta": "^0.29.2", "@wyw-in-js/vite": "0.5.0", + "typescript": "5.4.3", "@solidjs/router": "^0.13.1", + "tailwindcss": "3.4.1", + "remark-shiki-twoslash": "^3.1.3", "@linaria/core": "6.1.0", "@solidjs/start": "^1.0.0-rc.0", "solid-js": "^1.8.16", @@ -19,6 +22,10 @@ "@babel/preset-typescript": "7.24.1", "@mdx-js/mdx": "3.0.1", "solid-mdx": "0.0.7", + "rehype-raw": "^6.1.1", + "postcss-preset-env": "9.4.0", + "cssnano": "6.1.0", + "postcss-pxtorem": "6.1.0", "sass": "1.72.0", "@vinxi/plugin-mdx": "3.7.1", "vinxi": "^0.3.11" diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..0f9b854 --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,17 @@ +import cssnano from "cssnano"; +import tailwindcss from "tailwindcss"; +import postcssPresentEnv from "postcss-preset-env"; +import pxtorem from "postcss-pxtorem"; + + +export default { + plugins: [ + pxtorem({ + replace: true, + propList: ["*"], + }), + postcssPresentEnv(), + tailwindcss, + ...(process.env.NODE_ENV === "production" ? [cssnano] : []), + ] +}; \ No newline at end of file diff --git a/src/app.tsx b/src/app.tsx index e377a31..efb1144 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -3,6 +3,7 @@ import { Router } from "@solidjs/router"; import { FileRoutes } from "@solidjs/start/router"; import { Suspense } from "solid-js"; import { css } from "@linaria/core"; +import "~/style/global.style"; import "./app.css"; export default function App() { @@ -16,7 +17,9 @@ export default function App() { About Foo - {props.children} +
+ {props.children} +
)} > diff --git a/src/entry-server.tsx b/src/entry-server.tsx index 401eff8..16c3abc 100644 --- a/src/entry-server.tsx +++ b/src/entry-server.tsx @@ -4,7 +4,7 @@ import { createHandler, StartServer } from "@solidjs/start/server"; export default createHandler(() => ( ( - + diff --git a/src/routes/about.tsx b/src/routes/about.tsx index 6a0467f..65bd6fb 100644 --- a/src/routes/about.tsx +++ b/src/routes/about.tsx @@ -1,11 +1,14 @@ import { Title } from "@solidjs/meta"; import { css } from "@linaria/core"; +import { getRequestEvent } from "solid-js/web"; export default function Home() { + const q = getRequestEvent()?.request.url; return (
About

About

+
q: {q}
); } diff --git a/src/routes/articles/2024-03-25-first-article.mdx b/src/routes/articles/2024-03-25-first-article.mdx deleted file mode 100644 index 2d425dc..0000000 --- a/src/routes/articles/2024-03-25-first-article.mdx +++ /dev/null @@ -1,3 +0,0 @@ -# First article - -This is the first **article**! diff --git a/src/routes/articles/2024-03-25-starting-a-blog.mdx b/src/routes/articles/2024-03-25-starting-a-blog.mdx new file mode 100644 index 0000000..cf4197d --- /dev/null +++ b/src/routes/articles/2024-03-25-starting-a-blog.mdx @@ -0,0 +1,10 @@ +# Starting a blog + +Since everyone and their dog likes to post about cool new tech on their blog, I decided to try it out. + +I'll mostly write about frameworks, libraries and how to make lots of moving parts work together. + +```ts +const f = 33; +console.log(f); +``` diff --git a/src/routes/articles/2024-03-30-maping-chord-key-combos-on-linux.mdx b/src/routes/articles/2024-03-30-maping-chord-key-combos-on-linux.mdx new file mode 100644 index 0000000..033abd9 --- /dev/null +++ b/src/routes/articles/2024-03-30-maping-chord-key-combos-on-linux.mdx @@ -0,0 +1,26 @@ +# Mapping chord key combos on Linux + +Recently I realized that lots of my key combinations require pretty unhealthy hand movements. + +```python +import map2 + +# capture keyboard inputs with a reader +reader = map2.Reader(patterns=["/dev/input/by-id/your-kbd"]) +# re-map them using a chrod mapper +mapper = map2.ChordMapper() +# and write them to a virtual device +writer = map2.Writer(clone_from="/dev/input/by-id/your-kbd") +# setup the event pipeline +map2.link([reader, mapper, writer]) + +# and map some chords! +mapper_kbd_arp.map([";", "a"], "A") +mapper_kbd_arp.map([";", "s"], "S") +mapper_kbd_arp.map([";", "d"], "D") +mapper_kbd_arp.map([";", "f"], "F") +mapper_kbd_arp.map([";", "g"], "G") +# and so on... +``` + +And that's it! diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 6a1dd88..41f699a 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -26,7 +26,7 @@ export default function Home() {

Hello world!

-
    +
      {(item) => (
    • diff --git a/src/routes/page/[page].tsx b/src/routes/page/[page].tsx new file mode 100644 index 0000000..db1fc22 --- /dev/null +++ b/src/routes/page/[page].tsx @@ -0,0 +1,11 @@ +import { getRequestEvent } from "solid-js/web"; + +export default function Home() { + const q = getRequestEvent()?.request.url; + return ( +
      +

      Page

      +
      q: {q}
      +
      + ); +} diff --git a/src/style/animations.ts b/src/style/animations.ts new file mode 100644 index 0000000..f281392 --- /dev/null +++ b/src/style/animations.ts @@ -0,0 +1,11 @@ +import {style} from "@client/style/commonStyle"; + + +export const flashAnimation = style` + animation: flash 0.6s alternate ease-in-out infinite; + + @keyframes flash { + 0% { opacity: 0.4; } + 100% { opacity: 0.7; } + } +`; diff --git a/src/style/colorVariableCSS.ts b/src/style/colorVariableCSS.ts new file mode 100644 index 0000000..e709905 --- /dev/null +++ b/src/style/colorVariableCSS.ts @@ -0,0 +1,20 @@ +import { normalizeColorName, themeColors } from "~/style/colorsTs"; + +export const colorVariablesCSS = (() => { + let colorVariablesCSS = ""; + for (const [key, value] of Object.entries(themeColors)) { + const theme = key; + if (typeof value == "object") { + colorVariablesCSS += `&.theme-${theme} {`; + for (const [name, color] of Object.entries(themeColors[theme])) { + colorVariablesCSS += `--color-${normalizeColorName(name)}: ${color};`; + } + colorVariablesCSS += "\n}"; + } else { + // top level + colorVariablesCSS += `--color-${normalizeColorName(key)}: ${value};`; + } + } + return colorVariablesCSS; +})(); + diff --git a/src/style/colorsTs.tsx b/src/style/colorsTs.tsx new file mode 100644 index 0000000..e202657 --- /dev/null +++ b/src/style/colorsTs.tsx @@ -0,0 +1,18 @@ +import theme from "./theme"; + +export const themeColors = theme.colors as any; + +export const themeColorList = (() => { + const list: string[] = []; + + for (const colorSet of [themeColors, themeColors.light, themeColors.dark]) { + for (const [key, value] of Object.entries(colorSet)) { + if (typeof value == "string") list.push(key); + } + } + + return list; +})(); + +export const normalizeColorName = (colorName: string) => + colorName.replace(/\//g, "-"); diff --git a/src/style/commonStyle.tsx b/src/style/commonStyle.tsx new file mode 100644 index 0000000..5dc360b --- /dev/null +++ b/src/style/commonStyle.tsx @@ -0,0 +1,52 @@ +import * as layoutMixins from "~/style/mixins/layoutTs"; +import { + _boxShadowMixin, + _dropShadowMixin, +} from "~/style/mixins/shadowMixins"; +import * as sizes from "~/style/sizesTS"; +import * as reactStyleUtil from "~/style/styleUtil"; +import * as styleUtils from "~/style/styleUtilTS"; +import * as textStyles from "~/style/textStylesTS"; + +export const jumboText = textStyles._jumboText; +export const largeText = textStyles._largeText; +export const bigText = textStyles._bigText; +export const heading1Text = textStyles._heading1Text; +export const heading2Text = textStyles._heading2Text; +export const heading3Text = textStyles._heading3Text; +export const bodyText = textStyles._bodyText; +export const subText = textStyles._subText; +export const smallText = textStyles._smallText; + +export type FontSize = textStyles._FontSize; +export type FontStyle = textStyles._FontStyle; +export const primaryFont = textStyles._primaryFont; +export const primaryFontItalic = textStyles._primaryFontItalic; +export const primaryFontBold = textStyles._primaryFontBold; +export const primaryFontBoldItalic = textStyles._primaryFontBoldItalic; + +export const text = textStyles._text; +export const variableTextStyle = textStyles._variableTextStyle; + +export const sizeXS = sizes._sizeXS; +export const sizeS = sizes._sizeS; +export const sizeM = sizes._sizeM; +export const sizeL = sizes._sizeL; +export const sizeXL = sizes._sizeXL; +export const breakpoint = sizes._breakpoint; +export const breakpointFrom = sizes._breakpointFrom; +export const breakpointUntil = sizes._breakpointUntil; + +export const style = styleUtils.style; + +export const edgeChildrenNoMargin = layoutMixins._edgeChildrenNoMargin; +export const edgeChildrenNoPadding = layoutMixins._edgeChildrenNoPadding; +export const contentContainer = layoutMixins._contentContainer; + +export const color = layoutMixins._color; +export const staticColor = layoutMixins._staticColor; + +export const withStyle = reactStyleUtil._withStyle; + +export const dropShadow = _dropShadowMixin; +export const boxShadow = _boxShadowMixin; diff --git a/src/style/fluidSizeTS.tsx b/src/style/fluidSizeTS.tsx new file mode 100644 index 0000000..d17c1f0 --- /dev/null +++ b/src/style/fluidSizeTS.tsx @@ -0,0 +1,191 @@ +import { getUnit, style } from "./styleUtilTS"; + +const cssUnitMult = (value: string, multiplier: number) => + `${parseFloat(value) * multiplier}${getUnit(value)}`; + +const scalingMap = [ + [0, 0.8], + [720, 0.9], + [1280, 1], + [1920, 1], + [4020, 1.3], +]; + +export const _calculateFluidProperty = ( + minVW: string, + maxVW: string, + minFontSize: string, + maxFonSize: string, + usesVariables: boolean +) => { + // only check if units are the same on static values, no way to do it on variables + if (!usesVariables) { + const units = [minVW, maxVW, minFontSize, maxFonSize].map(getUnit); + const allEqual = units.every((u) => u == units[0]); + if (!allEqual) { + throw new Error( + `_calculateFluidProperty: all 4 values need to have the same units, got ${units}` + ); + } + } + + // calculate values without unit + const _minFontSize = usesVariables + ? minFontSize.replace(/(px|rem)/g, "") + : parseFloat(minFontSize); + const _maxFontSize = usesVariables + ? maxFonSize.replace(/(px|rem)/g, "") + : parseFloat(maxFonSize); + + return `calc(${minFontSize} + (${_maxFontSize} - ${_minFontSize}) * ((100vw - ${minVW}) / ${ + parseFloat(maxVW) - parseFloat(minVW) + }))`; +}; + +export const remBase = 16; +export const pxToEmDepr = (value: string | number) => + parseFloat(`${value}`) / remBase + "em"; +export const pxToRemDepr = (value: string | number) => + parseFloat(`${value}`) / remBase + "rem"; +const pxToRemRuntime = (value: string | number) => `(${value}/${remBase}*1rem)`; + +export const pxToEm = pxToEmDepr; +export const pxToRem = pxToRemDepr; + +export const fluidScope = ( + callback: ( + fluid: (value: string | string[]) => any, + isFirst: boolean + ) => any, + convertPxToRem = true +) => { + let result = ""; + let prevScreenSize = scalingMap[0][0]; + let prevFontScale = scalingMap[0][1]; + + const normalizeValues = (values: string | string[]) => { + const usesVariables = values.includes("var("); + let important = false; + if (typeof values == "string") values = values.split(" "); + + for (let i = 0; i < values.length; ++i) { + if (values[i] == "!important") { + important = true; + values.splice(i, 1); + --i; + continue; + } + + if (values[i].startsWith("var(")) { + if (convertPxToRem) values[i] = pxToRemRuntime(values[i]); + } else { + let unit = getUnit(values[i]); + + if (!unit) { + unit = "px"; + values[i] += "px"; + } + if (convertPxToRem && unit == "px") + values[i] = pxToRem(values[i]); + } + } + + return { values, important, usesVariables }; + }; + + const fluidBase = (_values: string | string[]) => { + const { values, important, usesVariables } = normalizeValues(_values); + let result = values + .map((value) => + usesVariables + ? ` calc( ${value} * ${prevFontScale} )` + : ` ${cssUnitMult(value, prevFontScale)}` + ) + .join(" ") + .trim(); + + if (important) result += " !important"; + return result; + }; + + // first iteration (0 to first step) + result += callback(fluidBase, true); + + for (const [screenSize, fontScale] of scalingMap.slice(1)) { + const minVWSize = convertPxToRem + ? pxToRem(prevScreenSize) + : prevScreenSize + "px"; + const maxVWSize = convertPxToRem + ? pxToRem(screenSize) + : screenSize + "px"; + + const fluid = (_values: string | string[]) => { + const { values, important, usesVariables } = + normalizeValues(_values); + + let expandedValue = ""; + for (const value of values) { + const minSize = usesVariables + ? `( ${value} * ${prevFontScale} )` + : cssUnitMult(value, prevFontScale); + const maxSize = usesVariables + ? `( ${value} * ${fontScale} )` + : cssUnitMult(value, fontScale); + + expandedValue += _calculateFluidProperty( + minVWSize, + maxVWSize, + minSize, + maxSize, + usesVariables + ); + } + expandedValue = expandedValue.trim(); + + if (important) expandedValue += " !important"; + return expandedValue; + }; + + result += style` + @media (min-width: ${prevScreenSize + "px"}) { + ${callback(fluid, false)} + } + `; + prevFontScale = fontScale; + prevScreenSize = screenSize; + } + + // last iteration (last step to infinity) + result += style` + @media (min-width: ${prevScreenSize + "px"}) { + ${callback(fluidBase, false)} + } + `; + + return result; +}; + +export const fluidProperty = ( + property: string, + values: string | string[], + convertPxToRem = true, + important?: boolean +) => { + // if (process?.env.DISABLE_FLUID_SIZE) { + // if (Array.isArray(values)) values = values.join(" "); + // return style`${property}: ${values};`; + // } + + return fluidScope( + (fluid, isFirst) => + style`${property}: ${fluid(values)}${ + !isFirst && important ? " !important" : "" + };`, + convertPxToRem + ); +}; + +export const _fluidFontSize = (value: string, important?: boolean) => + fluidProperty("font-size", value, false, important); +export const _fluidLineHeight = (value: string, important?: boolean) => + fluidProperty("line-height", value, true, important); diff --git a/src/style/fontFaces.tsx b/src/style/fontFaces.tsx new file mode 100644 index 0000000..b2c52cb --- /dev/null +++ b/src/style/fontFaces.tsx @@ -0,0 +1,138 @@ +type FontLoader = (font: string, format: string) => string; + +const japaneseCodeRange = (show: boolean) => + show ? `unicode-range: U+3000-30FF , U+FF00-FFEF , U+4E00-9FAF ;` : ""; +const nameSuffix = (isFull: boolean) => (isFull ? "" : " JP Only"); + +// language=SCSS +const notoFragments = (isFull: boolean, fontLoader?: FontLoader) => ` + /* noto-sans-jp-regular - japanese */ + @font-face { + ${japaneseCodeRange(!isFull)} + font-family: 'Noto Sans JP Regular${nameSuffix(isFull)}'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-regular.eot'); /* IE9 Compat Modes */ + src: local('Noto Sans Japanese Regular'), + local('NotoSansJapanese-Regular'), + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-regular.woff') format('woff'), /* Modern Browsers */ + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-regular.svg#NotoSansJP') format('svg'); /* Legacy iOS */ + ${ + fontLoader != null + ? `src: ${fontLoader( + "/assets/resources/static/fonts/noto-sans-jp-v40-japanese-regular.woff2", + "woff2" + )};` + : `` + } + } + + /* noto-sans-jp-700 - japanese */ + @font-face { + ${japaneseCodeRange(!isFull)} + font-family: 'Noto Sans JP Bold${nameSuffix(isFull)}'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-700.eot'); /* IE9 Compat Modes */ + src: local('Noto Sans Japanese Medium'), + local('NotoSansJapanese-Medium'), + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-700.woff') format('woff'), /* Modern Browsers */ + url('/assets/resources/static/fonts/noto-sans-jp-v40-japanese-700.svg#NotoSansJP') format('svg'); /* Legacy iOS */ + ${ + fontLoader != null + ? `src: ${fontLoader( + "/assets/resources/static/fonts/noto-sans-jp-v40-japanese-700.woff2", + "woff2" + )};` + : `` + } + } +`; + +const interPath = `/assets/resources/static/fonts/inter-3.19-roman/Inter`; + +// language=SCSS +export const fontFaceFragmentNativeInter = ` + ${notoFragments(true)} + ${notoFragments(false)} +`; + +// language=SCSS +export const fontFaceFragment = (fontLoader?: FontLoader) => ` + ${notoFragments(true, fontLoader)} + ${notoFragments(false, fontLoader)} + + /* inter-regular - latin */ + @font-face { + font-family: 'Inter Regular'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local(''), + url('${interPath}-Regular-Roman.woff2') format('woff2'), /* Super Modern Browsers */ + url('${interPath}-Regular-Roman.woff') format('woff'), /* Modern Browsers */ + ${ + fontLoader != null + ? `src: ${fontLoader(`${interPath}-Regular-Roman.woff2`, "woff2")};` + : `` + } + } + + @font-face { + font-family: 'Inter Regular Italic'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: local(''), + url('${interPath}-Italic-Roman.woff2') format('woff2'), /* Super Modern Browsers */ + url('${interPath}-Italic-Roman.woff') format('woff'), /* Modern Browsers */ + ${ + fontLoader != null + ? `src: ${fontLoader(`${interPath}-Italic-Roman.woff2`, "woff2")};` + : `` + } + } + + /* inter-600 - latin */ + @font-face { + font-family: 'Inter Bold'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: local('Inter SemiBold'), + url('${interPath}-SemiBold-Roman.woff2') format('woff2'), /* Super Modern Browsers */ + url('${interPath}-SemiBold-Roman.woff') format('woff'), /* Modern Browsers */ + ${ + fontLoader != null + ? `src: ${fontLoader( + `${interPath}-SemiBold-Roman.woff2`, + "woff2" + )};` + : `` + } + } + + @font-face { + font-family: 'Inter Bold Italic'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: local('Inter SemiBold'), + url('${interPath}-SemiBoldItalic-Roman.woff2') format('woff2'), /* Super Modern Browsers */ + url('${interPath}-SemiBoldItalic-Roman.woff') format('woff'), /* Modern Browsers */ + ${ + fontLoader != null + ? `src: ${fontLoader( + `${interPath}-SemiBoldItalic-Roman.woff2`, + "woff2" + )};` + : `` + } + } +`; diff --git a/src/style/fontPreamble.style.tsx b/src/style/fontPreamble.style.tsx new file mode 100644 index 0000000..85a1260 --- /dev/null +++ b/src/style/fontPreamble.style.tsx @@ -0,0 +1,6 @@ +import { fontFaceFragment } from "~/style/fontFaces"; +import { css } from "@linaria/core"; + +export const globals = css` + ${fontFaceFragment()}/* END FONT PREAMBLE */ +`; diff --git a/src/style/global.style.tsx b/src/style/global.style.tsx new file mode 100644 index 0000000..21f0598 --- /dev/null +++ b/src/style/global.style.tsx @@ -0,0 +1,255 @@ +import { colorVariablesCSS } from "~/style/colorVariableCSS"; +import { + bigText, + bodyText, + color, + contentContainer, + heading1Text, + heading2Text, + heading3Text, + jumboText, + largeText, + primaryFontBold, + primaryFontBoldItalic, + primaryFontItalic, + subText, + text, +} from "~/style/commonStyle"; +// import "@client/style/fontPreamble.style"; +import "~/style/layerPreamble.style"; +import "~/style/reset.scss"; +// import "~/style/styleLoadOrder"; +import { baseText, bodyTextHeight } from "~/style/textStylesTS"; +import { css } from "@linaria/core"; + +export const globals = css` + @layer tw-base { + @tailwind base; + } + // + @layer tw-utilities { + @tailwind components; + @tailwind utilities; + @tailwind variants; + } + // + @layer tw-base { + @layer base { + .text-sub { + ${subText}; + } + .text-body { + ${bodyText}; + } + .text-heading1 { + ${heading1Text}; + } + .text-heading2 { + ${heading2Text}; + } + .text-heading3 { + ${heading3Text}; + } + .text-big { + ${bigText}; + } + .text-large { + ${largeText}; + } + .text-jumbo { + ${jumboText}; + } + .text-bold { + ${primaryFontBold}; + } + .content-container { + ${contentContainer}; + } + } + } + // + @layer tw-base { + html { + ${baseText} + ${colorVariablesCSS} + } + + a, + span { + display: inline-block; + } + + a, + a:visited, + a:hover, + a:active { + color: inherit; + } + + a:hover { + text-decoration: underline; + } + + button { + font-size: inherit; + } + + * { + box-sizing: border-box; + } + /* #root * { */ + /* position: relative; */ + /* } */ + + body { + min-height: 100vh; + background: ${color("colors/special-bg")}; + overflow-x: hidden; + + line-height: 1.5; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: optimizeLegibility; + + ${text("primary", "body", "colors/text-600a")} + } + + em { + ${primaryFontItalic} + strong { + ${primaryFontBoldItalic} + } + } + + strong { + color: ${color("colors/text-900a")}; + ${primaryFontBold} + } + + #root { + min-height: 100vh; + display: flex; + flex-direction: column; + } + + p + p { + margin-top: 16px; + } + p + h1 { + margin-top: 36px; + } + p + h2 { + margin-top: 16px; + } + p + h3 { + margin-top: 16px; + } + p + h4 { + margin-top: 16px; + } + p + h5 { + margin-top: 16px; + } + + h1 + p, + h1 + ul, + h1 + ol { + margin-top: 16px; + } + h2 + p, + h2 + ul, + h2 + ol { + margin-top: 16px; + } + h3 + p, + h3 + ul, + h3 + ol { + margin-top: 8px; + } + h4 + p, + h4 + ul, + h4 + ol { + margin-top: 8px; + } + h5 + p, + h5 + ul, + h5 + ol { + margin-top: 8px; + } + + p + ul, + p + ol { + margin-top: 16px; + } + ul + p, + ol + p { + margin-top: 16px; + } + ul + h1, + ol + h1 { + margin-top: 16px; + } + ul + h2, + ol + h2 { + margin-top: 16px; + } + ul + h3, + ol + h3 { + margin-top: 16px; + } + ul + h4, + ol + h4 { + margin-top: 16px; + } + ul + h5, + ol + h5 { + margin-top: 16px; + } + + html { + // firefox-only for now (https://developer.mozilla.org/en-US/docs/Web/CSS/scrollbar-color) + scrollbar-color: ${color("colors/primary-700")} + ${color("colors/special-bg")}; + overflow-y: overlay; + } + + /* hide arrows on number inputs */ + input::-webkit-outer-spin-button, + input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; + } + input[type="number"] { + -moz-appearance: textfield; + } + + ::-webkit-scrollbar { + width: 12px; + } + ::-webkit-scrollbar-track { + border-radius: 4px; + background: none; + } + ::-webkit-scrollbar-thumb { + width: 4px; + background: ${color("colors/primary-700")}; + border-left: solid transparent; + border-left-width: 8px; + background-clip: padding-box; + transition: all 0.5s ease-in-out; + &:hover { + width: 12px; + border-left-width: 0; + } + } + } + + .code-container .line { min-height: ${bodyTextHeight}px; } + .language-id { display: none; } + .theme-light .shiki.github-dark { display: none; } + .theme-dark .shiki.github-light { display: none; } + .shiki { + background-color: ${color("colors/primary-50")}; + padding: 8px; + } +`; diff --git a/src/style/layerPreamble.style.tsx b/src/style/layerPreamble.style.tsx new file mode 100644 index 0000000..9c6009a --- /dev/null +++ b/src/style/layerPreamble.style.tsx @@ -0,0 +1,5 @@ +import { css } from "@linaria/core"; + +export const globals = css` + @layer root, tw-base, c, tw-utilities; +`; diff --git a/src/style/mixins/layout.scss b/src/style/mixins/layout.scss new file mode 100644 index 0000000..129047f --- /dev/null +++ b/src/style/mixins/layout.scss @@ -0,0 +1,15 @@ +@mixin container { + margin: 0 auto; + width: calc(600px + 30vw); + @include size-xs { width: 100%; } + @include size-xs { padding: 0 3vw; } +} + +@mixin edgeChildrenNoMargin { + &:first-child { margin-left: 0; } + &:last-child { margin-right: 0; } +} + +@function du($fixed, $dynamic) { + @return calc(#{$fixed}px + #{$dynamic}vw); +} diff --git a/src/style/mixins/layoutTs.tsx b/src/style/mixins/layoutTs.tsx new file mode 100644 index 0000000..a3e0955 --- /dev/null +++ b/src/style/mixins/layoutTs.tsx @@ -0,0 +1,65 @@ +import { + normalizeColorName, + themeColorList, + themeColors, +} from "~/style/colorsTs"; +import { _breakpoint, _breakpointUntil } from "~/style/sizesTS"; +import { style } from "~/style/styleUtilTS"; + +export const _edgeChildrenNoMargin = style` + &:first-child { margin-left: 0; } + &:last-child { margin-right: 0; } +`; + +export const _edgeChildrenNoPadding = style` + &:first-child { padding-left: 0; } + &:last-child { padding-right: 0; } +`; + +export const _contentContainer = style` + width: calc(600px + 30vw); + margin-left: auto; + margin-right: auto; + + ${_breakpointUntil("m")} { + width: calc(100vw - 32px); + margin-left: auto; + margin-right: auto; + } + ${_breakpoint("m")} { + width: calc(100vw - 64px); + margin-left: auto; + margin-right: auto; + } +`; + +export const _color = (value: string) => { + let rest; + [value, ...rest] = value.split(" "); + + const important = rest.some((v) => v == "!important"); + + if (!themeColorList.includes(value)) { + console.warn( + `color '${value}' was not found in the current color palette` + ); + console.trace(); + } + + value = normalizeColorName(value); + return `var(--color-${value})${important ? " !important" : ""}`; +}; + +type ColorTheme = "light" | "dark"; + +export const _staticColor = (value: string, theme: ColorTheme) => { + if (!themeColorList.includes(value)) { + console.warn( + `color '${value}' was not found in the current color palette` + ); + console.trace(); + return; + } + + return themeColors[theme][value]; +}; diff --git a/src/style/mixins/sassUtil.scss b/src/style/mixins/sassUtil.scss new file mode 100644 index 0000000..93581a5 --- /dev/null +++ b/src/style/mixins/sassUtil.scss @@ -0,0 +1,86 @@ +@function px($number) { @return $number * 1px; } +@function em($number) { @return $number * 1em; } +@function rem($number) { @return $number * 1rem; } +@function first($list) { @return nth($list, 1); } +@function last($list) { @return nth($list, length($list)); } + +@function nth-delete($list, $n) { + $result: (); + $n: if($n < 0, length($list) + $n + 1, $n); + $bracketed: is-bracketed($list); + $separator: list-separator($list); + @for $i from 1 through length($list) { + @if $i != $n { $result: append($result, nth($list, $i)); } + } + @return join((), $result, $separator, $bracketed); +} + +@function str-split($string, $separator) { + $split-arr: (); + // first index of separator in string + $index: str-index($string, $separator); + // loop through string + @while $index != null { + // get the substring from the first character to the separator + $item: str-slice($string, 1, $index - 1); + // push item to array + $split-arr: append($split-arr, $item); + // remove item and separator from string + $string: str-slice($string, $index + 1); + // find new index of separator + $index: str-index($string, $separator); + } + // add the remaining string to list (the last item) + $split-arr: append($split-arr, $string); + + @return $split-arr; +} + +@function replace-nth($list, $index, $value) { + $result: null; + + @if type-of($index) != number { + @warn "$index: #{quote($index)} is not a number for `replace-nth`."; + } + @else if $index == 0 { + @warn "List index 0 must be a non-zero integer for `replace-nth`."; + } + @else if abs($index) > length($list) { + @warn "List index is #{$index} but list is only #{length($list)} item long for `replace-nth`."; + } + @else { + $result: (); + $index: if($index < 0, length($list) + $index + 1, $index); + + @for $i from 1 through length($list) { + @if $i == $index { + $result: append($result, $value); + } + @else { + $result: append($result, nth($list, $i)); + } + } + } + + @return $result; +} + +@function str-trim($string) { + @if (str-slice($string, 1, 1) == ' ') { + @return str-trim(str-slice($string, 2)); + } + @else if (str-slice($string, str-length($string), -1) == ' ') { + @return str-trim(str-slice($string, 1, -2)); + } + @else { + @return $string; + } +} + +@function pxToRem($value) { + @return rem($value / $emBase); +} + +@function strip-unit($value) { + @return $value / ($value * 0 + 1); +} diff --git a/src/style/mixins/shadowMixins.ts b/src/style/mixins/shadowMixins.ts new file mode 100644 index 0000000..63db4ec --- /dev/null +++ b/src/style/mixins/shadowMixins.ts @@ -0,0 +1,19 @@ +import {style} from "~/style/styleUtilTS"; + + +// iOS dies without this for some reason +const base = style` + -webkit-transform: translateZ(0); + -webkit-perspective: 1000; + -webkit-backface-visibility: hidden; +`; + +export const _dropShadowMixin = (x: number, y: number, blur: number, color: string) => style` + filter: drop-shadow(${x}px ${y}px ${blur}px ${color}); + ${base} +`; + +export const _boxShadowMixin = (x: number, y: number, blur: number, color: string, options?: { inset?: boolean }) => style` + box-shadow: ${options?.inset ? "inset " : ""}${x}px ${y}px ${blur}px ${color}; + ${base} +`; diff --git a/src/style/reset.scss b/src/style/reset.scss new file mode 100644 index 0000000..b85bf8a --- /dev/null +++ b/src/style/reset.scss @@ -0,0 +1,178 @@ +/* stylelint-disable */ +/* http://meyerweb.com/eric/tools/css/reset/ + v2.0 | 20110126 + License: none (public domain) +*/ + +@layer root { + html, + body, + div, + span, + applet, + object, + iframe, + h1, + h2, + h3, + h4, + h5, + h6, + p, + blockquote, + pre, + a, + abbr, + acronym, + address, + big, + cite, + code, + del, + dfn, + em, + img, + ins, + kbd, + q, + s, + samp, + small, + strike, + strong, + sub, + sup, + tt, + var, + b, + u, + i, + center, + dl, + dt, + dd, + ol, + ul, + li, + fieldset, + form, + label, + legend, + table, + caption, + tbody, + tfoot, + thead, + tr, + th, + td, + article, + aside, + canvas, + details, + embed, + figure, + figcaption, + footer, + header, + hgroup, + menu, + nav, + output, + ruby, + section, + summary, + time, + mark, + audio, + video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; + } + + /* HTML5 display-role reset for older browsers */ + article, + aside, + details, + figcaption, + figure, + footer, + header, + hgroup, + menu, + nav, + section { + display: block; + } + + body { + line-height: 1; + } + + hr { + margin: 0; + padding: 0; + border-style: solid; + } + + a { + text-decoration: none; + } + + ol, + ul { + list-style: none; + } + + blockquote, + q { + quotes: none; + } + + blockquote { + &::before, + &::after { + content: ''; + content: none; + } + } + + q { + &::before, + &::after { + content: ''; + content: none; + } + } + + table { + border-collapse: collapse; + border-spacing: 0; + } + + p { + margin: 0; + padding: 0; + } + + button { + outline: none; + border: none; + cursor: pointer; + padding: 0; + margin: 0; + } + + * { + box-sizing: border-box; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + } + + *:focus { + outline: none; + } +} \ No newline at end of file diff --git a/src/style/sizesTS.tsx b/src/style/sizesTS.tsx new file mode 100644 index 0000000..d076e7e --- /dev/null +++ b/src/style/sizesTS.tsx @@ -0,0 +1,72 @@ +import { style } from "~/style/styleUtilTS"; + +export const sizeSWidth = 600; +export const sizeMWidth = 960; +export const sizeLWidth = 1280; +export const sizeXLWidth = 1920; + +const between = (min?: number, max?: number) => { + let result = ""; + + if (min != null) result += `(min-width: ${min}px)`; + + if (min != null && max != null) result += " and "; + + if (max != null) result += `(max-width: ${max - 1}px)`; + + return result; +}; + +export type ISize = "xs" | "s" | "m" | "l" | "xl"; +const breakpointList: ISize[] = ["xs", "s", "m", "l", "xl"]; + +export const _breakpoint = (...sizes: ISize[]) => { + if (!sizes.length) + throw new Error( + "at least one size needs to be specified in breakpoints" + ); + + const sizeQueries: string[] = []; + + for (const size of sizes) { + switch (size) { + case "xl": + sizeQueries.push(`${between(sizeXLWidth, undefined)}`); + break; + case "l": + sizeQueries.push(`${between(sizeLWidth, sizeXLWidth)}`); + break; + case "m": + sizeQueries.push(`${between(sizeMWidth, sizeLWidth)}`); + break; + case "s": + sizeQueries.push(`${between(sizeSWidth, sizeMWidth)}`); + break; + case "xs": + sizeQueries.push(`${between(undefined, sizeSWidth)}`); + break; + default: + throw new Error(`unknown breakpoint size '${size}'`); + } + } + + return style`@media ${sizeQueries.join(", ").trim()}`; +}; + +// valid from size..[infinity] (including size) +export const _breakpointFrom = (size: ISize) => { + const index = breakpointList.findIndex((b) => b == size); + return _breakpoint(...breakpointList.slice(index)); +}; + +// valid from 0..size (including size) +export const _breakpointUntil = (size: ISize) => { + const index = breakpointList.findIndex((b) => b == size); + return _breakpoint(...breakpointList.slice(0, index)); +}; + +export const _sizeXS = _breakpoint("xs"); +export const _sizeS = _breakpoint("s"); +export const _sizeM = _breakpoint("m"); +export const _sizeL = _breakpoint("l"); +export const _sizeXL = _breakpoint("xl"); diff --git a/src/style/styleLoadOrder.tsx b/src/style/styleLoadOrder.tsx new file mode 100644 index 0000000..032d832 --- /dev/null +++ b/src/style/styleLoadOrder.tsx @@ -0,0 +1,4 @@ +// import "~/Design/Button/Button.style"; +// import "~/Design/Button/PlainButton"; +// import "~/Design/Input/Input.style"; +// import "~/Design/Link/Link.style"; diff --git a/src/style/styleUtil.tsx b/src/style/styleUtil.tsx new file mode 100644 index 0000000..85a300c --- /dev/null +++ b/src/style/styleUtil.tsx @@ -0,0 +1,13 @@ +export function _withStyle>( + component: C, + styles: S +): C & { styles: S } { + // add a dot before classnames + for (const key of Object.keys(styles)) { + if (typeof styles[key] == "string") + (styles as Record)[key] = "." + styles[key]; + } + + (component as any).styles = styles; + return component as any; +} diff --git a/src/style/styleUtilTS.tsx b/src/style/styleUtilTS.tsx new file mode 100644 index 0000000..be31052 --- /dev/null +++ b/src/style/styleUtilTS.tsx @@ -0,0 +1,16 @@ +import { CSSProperties } from "@linaria/core"; + +export const getUnit = (value: string) => value.replaceAll(/[\d.,]/g, ""); + +export const style = ( + s: TemplateStringsArray, + ...expr: Array +): string => { + let res = ""; + for (let i = 0; i < Math.max(s.length, expr.length); ++i) { + res += s[i] ?? ""; + res += expr[i] ?? ""; + } + + return res; +}; diff --git a/src/style/textStylesTS.tsx b/src/style/textStylesTS.tsx new file mode 100644 index 0000000..fc2a670 --- /dev/null +++ b/src/style/textStylesTS.tsx @@ -0,0 +1,198 @@ +// linaria strips istanbul symbols, causing tests to fail, should have been fixed in https://github.com/callstack/linaria/pull/324/files, but not really +/* istanbul ignore file */ +import { _color } from "~/style/mixins/layoutTs"; +import { css } from "@linaria/core"; +import { _fluidFontSize as fluidFontSize, remBase } from "./fluidSizeTS"; +import { style } from "./styleUtilTS"; + +const generalFontProperties = style` + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + text-rendering: optimizeLegibility; +`; + +export const _primaryFont = style` + font-family: 'Noto Sans JP Regular JP Only', 'Inter Regular', "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif; + ${generalFontProperties} +`; +export const _primaryFontItalic = style` + font-family: 'Noto Sans JP Regular JP Only', 'Inter Regular Italic', 'Noto Sans Regular', "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif; + ${generalFontProperties} +`; +export const _primaryFontBold = style` + font-family: 'Noto Sans JP Bold JP Only', 'Inter Bold', 'Noto Sans Bold', "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif; + ${generalFontProperties} +`; +export const _primaryFontBoldItalic = style` + font-family: 'Noto Sans JP Bold JP Only', 'Inter Bold Italic', 'Noto Sans Bold', "Hiragino Kaku Gothic Pro", Osaka, "メイリオ", Meiryo, "MS Pゴシック", "MS PGothic", sans-serif; + ${generalFontProperties} +`; + +const scaleFactor = 1.2; +// base +const bodyText = { size: 17, lineHeight: 28, fontAdjustment: 0 }; +// small +const subText = { + size: bodyText.size * (1 / scaleFactor), + lineHeight: 22, + fontAdjustment: 0, +}; +const smallText = { + size: subText.size * (1 / scaleFactor), + lineHeight: 18, + fontAdjustment: 0, +}; +// big +const heading3Text = { + size: bodyText.size * scaleFactor, + lineHeight: 32, + fontAdjustment: 0, +}; +const heading2Text = { + size: heading3Text.size * scaleFactor, + lineHeight: 36, + fontAdjustment: 0, +}; +const heading1Text = { + size: heading2Text.size * scaleFactor, + lineHeight: 44, + fontAdjustment: 0, +}; +const bigText = { + size: heading1Text.size * scaleFactor, + lineHeight: 52, + fontAdjustment: 0, +}; +const largeText = { + size: bigText.size * scaleFactor, + lineHeight: 64, + fontAdjustment: 0, +}; +const jumboText = { + size: largeText.size * scaleFactor, + lineHeight: 76, + fontAdjustment: 0, +}; + +export const subTextHeight = subText.lineHeight; +export const smallTextHeight = smallText.lineHeight; +export const bodyTextHeight = bodyText.lineHeight; +export const heading3TextHeight = heading3Text.lineHeight; +export const heading2TextHeight = heading2Text.lineHeight; +export const heading1TextHeight = heading1Text.lineHeight; +export const bigTextHeight = bigText.lineHeight; +export const largeTextHeight = largeText.lineHeight; +export const jumboTextHeight = jumboText.lineHeight; + +const textFragment = (currentSize: { + size: number; + lineHeight: number; + fontAdjustment: number; +}) => + `font-size: ${currentSize.size}px; line-height: ${currentSize.lineHeight}px; --line-height: ${currentSize.lineHeight}px; --font-adjustment: ${currentSize.fontAdjustment}px;`; + +export const baseText = fluidFontSize(`${remBase}px`); +export const baseTextImportant = fluidFontSize(`${remBase}px`, true); + +export const _jumboText = textFragment(jumboText); +export const _largeText = textFragment(largeText); +export const _bigText = textFragment(bigText); +export const _heading1Text = textFragment(heading1Text); +export const _heading2Text = textFragment(heading2Text); +export const _heading3Text = textFragment(heading3Text); +export const _bodyText = textFragment(bodyText); +export const _subText = textFragment(subText); +export const _smallText = textFragment(smallText); + +export type _FontStyle = "primary" | "primaryItalic" | "primaryBold"; +export type _FontSize = + | "small" + | "sub" + | "body" + | "heading1" + | "heading2" + | "heading3" + | "big" + | "large" + | "jumbo"; +export const _text = ( + font: _FontStyle, + size: _FontSize, + textColor?: string +) => { + let resultStyle = ""; + + switch (font) { + case "primary": + resultStyle += _primaryFont; + break; + case "primaryItalic": + resultStyle += _primaryFontItalic; + break; + case "primaryBold": + resultStyle += _primaryFontBold; + break; + } + + switch (size) { + case "jumbo": + resultStyle += _jumboText; + break; + case "large": + resultStyle += _largeText; + break; + case "big": + resultStyle += _bigText; + break; + case "heading1": + resultStyle += _heading1Text; + break; + case "heading2": + resultStyle += _heading2Text; + break; + case "heading3": + resultStyle += _heading3Text; + break; + case "body": + resultStyle += _bodyText; + break; + case "sub": + resultStyle += _subText; + break; + case "small": + resultStyle += _smallText; + break; + default: + throw new Error( + `text shorthand error: size '${size}' does not exist` + ); + } + + if (textColor) { + if (textColor == "inherit") { + resultStyle += style`color: inherit;`; + } else { + resultStyle += style`color: ${_color(textColor)};`; + } + } + + return resultStyle; +}; + +export const _variableTextStyle = css` + &.sub { + ${_subText} + } + &.body { + ${_bodyText} + } + &.heading1 { + ${_heading1Text} + } + &.heading2 { + ${_heading2Text} + } + &.heading3 { + ${_heading3Text} + } +`; diff --git a/src/style/theme.ts b/src/style/theme.ts new file mode 100644 index 0000000..cf6b5c7 --- /dev/null +++ b/src/style/theme.ts @@ -0,0 +1,215 @@ +export default { + base: "16px", + spacing: "1rem", + breakpoints: { + xs: "0em" /* 0px */, + sm: "30em" /* 480px */, + md: "64em" /* 1024px */, + lg: "75em" /* 1200px */ + }, + typography: { + font: "'Open Sans', sans-serif", + text: "1rem", + title: "2rem" + }, + colors: { + "light": { + "figma-component-outline": "rgba(75, 117, 159, 1)", + "link-primary-600": "rgba(75, 117, 159, 1)", + "link-primary-900": "rgba(73.19, 103.5, 135.91, 1)", + "link-secondary-600": "rgba(159, 75, 75, 1)", + "background-fish-footer": "rgba(234.09, 188.78, 188.78, 1)", + "link-secondary-900": "rgba(136, 74, 74, 1)", + "button/hollow-primary": "rgba(75, 117, 159, 1)", + "button/hollow-primary-active": "rgba(62, 130, 197, 1)", + "button/hollow-primary-hover": "rgba(139, 172, 205, 1)", + "button/hollow-primary-text": "rgba(90, 128, 167, 1)", + "button/hollow-primary-text-active": "rgba(226.95, 229.5, 232.05, 1)", + "button/hollow-primary-text-disabled": "rgba(58, 92, 125, 1)", + "button/hollow-primary-text-hover": "rgba(226.95, 229.5, 232.05, 1)", + "button/hollow-secondary": "rgba(179, 110, 110, 1)", + "button/hollow-secondary-active": "rgba(197, 62, 62, 1)", + "button/hollow-secondary-hover": "rgba(180.02, 83.48, 83.48, 1)", + "button/hollow-secondary-text": "rgba(167, 90, 90, 1)", + "button/hollow-secondary-text-active": "rgba(232.05, 226.95, 226.95, 1)", + "button/hollow-secondary-text-disabled": "rgba(130.42, 58.71, 58.71, 1)", + "button/hollow-secondary-text-hover": "rgba(232.05, 226.95, 226.95, 1)", + "button/regular-primary": "rgba(75, 117, 159, 1)", + "button/primary-disabled": "rgba(159.38, 191.25, 223.13, 1)", + "button/regular-primary-active": "rgba(43.48, 84.55, 124.82, 1)", + "button/regular-primary-hover": "rgba(73.55, 104.02, 135.55, 1)", + "button/regular-primary-text": "rgba(224.4, 229.5, 234.6, 0.949999988079071)", + "button/regular-primary-text-active": "rgba(226.95, 229.5, 232.05, 1)", + "button/regular-primary-text-hover": "rgba(226.95, 229.5, 232.05, 1)", + "button/regular-secondary": "rgba(187, 94, 94, 1)", + "button/regular-secondary-active": "rgba(197, 62, 62, 1)", + "button/regular-secondary-hover": "rgba(148, 61, 61, 1)", + "button/regular-secondary-text": "rgba(232.05, 226.95, 226.95, 1)", + "button/secondary-disabled": "rgba(223, 159, 159, 1)", + "button/regular-secondary-text-active": "rgba(232.05, 226.95, 226.95, 1)", + "highlight/bg": "rgba(188.78, 211.44, 234.09, 1)", + "highlight/bg-dark": "rgba(113.78, 153.05, 192.31, 1)", + "highlight/bg-light": "rgba(206, 221, 236, 1)", + "highlight/text": "rgba(240.34, 242.25, 244.16, 0.800000011920929)", + "highlight/text-dark": "rgba(246.88, 247.56, 248.24, 1)", + "highlight/text-light": "rgba(223.13, 229.29, 235.88, 0.949999988079071)", + "input/bg": "rgba(220.22, 227.4, 233.68, 1)", + "input/bg-active": "rgba(189, 202, 214, 1)", + "input/text": "rgba(51, 63.75, 76.5, 0.8999999761581421)", + "input/text-active": "rgba(57.37, 63.75, 70.13, 1)", + "input/text-placeholder": "rgba(51, 63.75, 76.5, 0.44999998807907104)", + "logo/mountain": "rgba(67, 122, 178, 1)", + "logo/outline": "rgba(65, 84, 104, 1)", + "logo/peak": "rgba(223.13, 228.44, 233.75, 1)", + "logo/sun": "rgba(194, 90, 90, 1)", + "search-section/options-text": "rgba(223.13, 229.28, 235.87, 0.949999988079071)", + "search-section/options-text-active": "rgba(225.67, 229.5, 233.32, 1)", + "seekbar/bar": "rgba(104, 155, 206, 1)", + "seekbar/bar-bg": "rgba(196, 202, 208, 1)", + "seekbar/bar-full": "rgba(132.41, 172.13, 211.84, 1)", + "seekbar/bg": "rgba(75, 117, 159, 1)", + "seekbar/popup-bg": "rgba(83, 117, 151, 1)", + "seekbar/section-marker": "rgba(221, 228, 234, 1)", + "seekbar/text-active": "rgba(226.95, 229.5, 232.05, 1)", + "seekbar/text-disabled": "rgba(224.4, 229.5, 234.6, 0.44999998807907104)", + "seekbar/text-inactive": "rgba(224.4, 229.5, 234.6, 0.949999988079071)", + "dropdown/separator": "rgba(132.41, 172.13, 211.84, 1)", + "colors/primary-100": "rgba(219, 229, 240, 1)", + "colors/primary-200": "rgba(206, 221, 236, 1)", + "colors/primary-300": "rgba(188.78, 211.44, 234.09, 1)", + "colors/primary-400": "rgba(159.38, 191.25, 223.13, 1)", + "colors/primary-450": "rgba(113.78, 153.05, 192.31, 1)", + "colors/primary-50": "rgba(226, 232, 238, 1)", + "colors/primary-500": "rgba(75, 117, 159, 1)", + "colors/primary-600": "rgba(73.55, 104.02, 135.55, 1)", + "colors/primary-700": "rgba(43.48, 84.55, 124.82, 1)", + "colors/primary-800": "rgba(42.84, 103.44, 161.16, 1)", + "colors/primary-900": "rgba(18.36, 92.53, 165.24, 1)", + "colors/secondary-100": "rgba(240, 219, 219, 1)", + "colors/secondary-200": "rgba(236, 206, 206, 1)", + "colors/secondary-300": "rgba(234.09, 188.78, 188.78, 1)", + "colors/secondary-400": "rgba(223, 159, 159, 1)", + "colors/secondary-500": "rgba(159, 75, 75, 1)", + "colors/secondary-600": "rgba(135.55, 73.55, 73.55, 1)", + "colors/secondary-700": "rgba(124.82, 43.48, 43.48, 1)", + "colors/secondary-800": "rgba(122, 29, 29, 1)", + "colors/secondary-900": "rgba(135.02, 11.61, 11.61, 1)", + "colors/special-bg": "rgba(232, 237, 242, 1)", + "colors/text-600b": "rgba(246.88, 247.56, 248.24, 1)", + "colors/text-300a": "rgba(36, 66, 96, 0.7699999809265137)", + "colors/text-300b": "rgba(246.88, 247.56, 248.24, 0.6000000238418579)", + "colors/text-600a": "rgba(36, 66, 96, 0.8799999952316284)", + "colors/text-900b": "rgba(246.88, 247.56, 248.24, 1)", + "colors/text-900a": "rgba(36.46, 66.3, 96.14, 1)", + "colors/secondary-450": "rgba(107.05, 51.05, 51.05, 1)", + "colors/text-100a": "rgba(36, 66, 96, 0.4000000059604645)", + "header/pill-bg-active": "rgba(188.78, 211.44, 234.09, 1)", + "header/pill-bg": "rgba(73.55, 104.02, 135.55, 1)", + "header/bg": "rgba(75, 117, 159, 1)", + "checkbox/off-bg": "rgba(219, 229, 240, 1)", + "checkbox/off-stroke": "rgba(75, 117, 159, 1)", + "checkbox/on-bg": "rgba(75, 117, 159, 1)" + }, + "dark": { + "figma-component-outline": "rgba(59.7, 92.44, 125.18, 1)", + "link-primary-600": "rgba(127.93, 171.27, 213.77, 1)", + "link-secondary-600": "rgba(214, 128, 128, 1)", + "link-primary-900": "rgba(150.25, 188.7, 227.15, 1)", + "background-fish-footer": "rgba(125.18, 59.7, 59.7, 1)", + "link-secondary-900": "rgba(227, 151, 151, 1)", + "button/hollow-primary": "rgba(100, 151, 201, 1)", + "button/hollow-primary-active": "rgba(151, 189, 227, 1)", + "button/hollow-primary-hover": "rgba(139, 172, 205, 1)", + "button/hollow-primary-text": "rgba(90, 128, 167, 1)", + "button/hollow-primary-text-active": "rgba(47.22, 66.05, 85.79, 1)", + "button/hollow-primary-text-disabled": "rgba(59.7, 92.44, 125.18, 1)", + "button/hollow-primary-text-hover": "rgba(47.22, 66.05, 85.79, 1)", + "button/hollow-secondary": "rgba(180.02, 83.48, 83.48, 1)", + "button/hollow-secondary-active": "rgba(227, 151, 151, 1)", + "button/hollow-secondary-hover": "rgba(180.02, 83.48, 83.48, 1)", + "button/hollow-secondary-text": "rgba(167, 90, 90, 1)", + "button/hollow-secondary-text-active": "rgba(85.79, 47.22, 47.22, 1)", + "button/hollow-secondary-text-disabled": "rgba(125.18, 59.7, 59.7, 1)", + "button/hollow-secondary-text-hover": "rgba(85.79, 47.22, 47.22, 1)", + "button/regular-primary": "rgba(59.7, 92.44, 125.18, 1)", + "button/regular-primary-active": "rgba(100, 151, 201, 1)", + "button/primary-disabled": "rgba(47.22, 66.05, 85.79, 1)", + "button/regular-primary-hover": "rgba(62, 100, 138, 1)", + "button/regular-primary-text": "rgba(224.4, 229.5, 234.6, 0.8999999761581421)", + "button/regular-primary-text-active": "rgba(226.95, 229.5, 232.05, 1)", + "button/regular-primary-text-hover": "rgba(224.4, 229.5, 234.6, 0.8999999761581421)", + "button/regular-secondary": "rgba(125.18, 59.7, 59.7, 1)", + "button/regular-secondary-active": "rgba(201, 100, 100, 1)", + "button/regular-secondary-hover": "rgba(138, 62, 62, 1)", + "button/secondary-disabled": "rgba(85.79, 47.22, 47.22, 1)", + "button/regular-secondary-text": "rgba(234.6, 224.4, 224.4, 0.8999999761581421)", + "button/regular-secondary-text-active": "rgba(232.05, 226.95, 226.95, 1)", + "checkbox/off-bg": "rgba(47.22, 66.05, 85.79, 1)", + "checkbox/off-stroke": "rgba(59.7, 92.44, 125.18, 1)", + "checkbox/on-bg": "rgba(59.7, 92.44, 125.18, 1)", + "highlight/bg": "rgba(47.76, 73.95, 100.14, 1)", + "highlight/bg-dark": "rgba(59.7, 92.44, 125.18, 1)", + "highlight/bg-light": "rgba(47.22, 66.05, 85.79, 1)", + "highlight/text": "rgba(223.13, 229.5, 235.88, 0.949999988079071)", + "highlight/text-dark": "rgba(223.13, 229.5, 235.88, 0.949999988079071)", + "highlight/text-light": "rgba(36, 66, 96, 0.8799999952316284)", + "input/bg": "rgba(54.35, 79.05, 103.75, 1)", + "input/bg-active": "rgba(63, 92, 121, 1)", + "input/text": "rgba(223.13, 229.5, 235.88, 0.949999988079071)", + "input/text-active": "rgba(240.34, 242.25, 244.16, 1)", + "input/text-placeholder": "rgba(223.13, 229.5, 235.88, 0.44999998807907104)", + "logo/mountain": "rgba(63.35, 112.02, 161.9, 1)", + "logo/outline": "rgba(47.76, 73.95, 100.14, 1)", + "logo/peak": "rgba(204, 204, 204, 1)", + "logo/sun": "rgba(214, 128, 128, 1)", + "search-section/options-text": "rgba(223.13, 229.5, 235.87, 0.949999988079071)", + "search-section/options-text-active": "rgba(223.13, 229.5, 235.87, 0.949999988079071)", + "seekbar/bar": "rgba(91, 129, 169, 1)", + "seekbar/bar-bg": "rgba(149, 172, 195, 1)", + "seekbar/bar-full": "rgba(63.35, 112.02, 161.9, 1)", + "seekbar/bg": "rgba(54.35, 79.05, 103.75, 1)", + "seekbar/popup-bg": "rgba(62.42, 91.8, 121.18, 1)", + "seekbar/section-marker": "rgba(137.19, 170.85, 204.51, 1)", + "seekbar/text-active": "rgba(226.95, 229.5, 232.05, 1)", + "seekbar/text-disabled": "rgba(224.4, 229.5, 234.6, 0.44999998807907104)", + "seekbar/text-inactive": "rgba(224.4, 229.5, 234.6, 0.8999999761581421)", + "colors/primary-100": "rgba(46, 61, 76, 1)", + "colors/primary-200": "rgba(47.22, 66.05, 85.79, 1)", + "colors/primary-300": "rgba(47.76, 73.95, 100.14, 1)", + "colors/primary-400": "rgba(47.76, 73.95, 100.14, 1)", + "colors/primary-450": "rgba(51.05, 79.05, 107.05, 1)", + "colors/primary-50": "rgba(50.18, 61.2, 72.22, 1)", + "colors/primary-500": "rgba(59.7, 92.44, 125.18, 1)", + "colors/primary-600": "rgba(63.35, 112.02, 161.9, 1)", + "colors/primary-700": "rgba(100, 151, 201, 1)", + "colors/primary-800": "rgba(127.93, 171.27, 213.77, 1)", + "colors/primary-900": "rgba(151, 189, 227, 1)", + "colors/secondary-100": "rgba(76, 46, 46, 1)", + "colors/secondary-200": "rgba(85.79, 47.22, 47.22, 1)", + "colors/secondary-300": "rgba(100.14, 47.76, 47.76, 1)", + "colors/secondary-400": "rgba(100.14, 47.76, 47.76, 1)", + "colors/secondary-450": "rgba(107.05, 51.05, 51.05, 1)", + "colors/secondary-500": "rgba(125.18, 59.7, 59.7, 1)", + "colors/secondary-600": "rgba(161.9, 63.35, 63.35, 1)", + "colors/secondary-700": "rgba(201, 100, 100, 1)", + "colors/secondary-800": "rgba(214, 128, 128, 1)", + "colors/secondary-900": "rgba(227, 151, 151, 1)", + "colors/special-bg": "rgba(46, 57, 70, 1)", + "colors/text-100a": "rgba(240.34, 242.25, 244.16, 0.25)", + "colors/text-300a": "rgba(240.34, 242.25, 244.16, 0.6499999761581421)", + "colors/text-300b": "rgba(240.34, 242.25, 244.16, 0.6499999761581421)", + "colors/text-600a": "rgba(240.34, 242.25, 244.16, 0.800000011920929)", + "colors/text-600b": "rgba(240.34, 242.25, 244.16, 0.800000011920929)", + "colors/text-900a": "rgba(240.34, 242.25, 244.16, 1)", + "colors/text-900b": "rgba(240.34, 242.25, 244.16, 1)", + "header/pill-bg": "rgba(47.76, 73.95, 100.14, 1)", + "header/pill-bg-active": "rgba(51.05, 79.05, 107.05, 1)", + "header/bg": "rgba(47.22, 66.05, 85.79, 1)", + "dropdown/separator": "rgba(59.7, 92.44, 125.18, 1)" + }, + "colors": { + "light": {}, + "dark": {} + } + } +}; diff --git a/tailwind.config.js b/tailwind.config.js new file mode 100644 index 0000000..85f1a90 --- /dev/null +++ b/tailwind.config.js @@ -0,0 +1,29 @@ +const theme = require("./src/style/theme"); +const colors = theme.colors.light; + + +const mappedColors = {}; +for(const key of Object.keys(colors)){ + const mappedKey = key.replaceAll("/", "-"); + mappedColors[mappedKey] = `var(--color-${mappedKey})`; +} + +/** @type {import("tailwindcss").Config} */ +module.exports = { + content: ["./src/**/*.{ts,tsx,md,mdx}"], + mode: "jit", + theme: { + // extend: {}, + colors: { + ...mappedColors, + transparent: "transparent", + }, + screens: { + s: "600px", + m: "960px", + l: "1280px", + xl: "1920px", + }, + }, + plugins: [], +}; diff --git a/yarn.lock b/yarn.lock index 2ac8536..d7fc22e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -330,6 +330,300 @@ dependencies: mime "^3.0.0" +"@csstools/cascade-layer-name-parser@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@csstools/cascade-layer-name-parser/-/cascade-layer-name-parser-1.0.9.tgz#7093f9c26fd92dee87d853a97de0647c5a8c4262" + integrity sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw== + +"@csstools/color-helpers@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-4.0.0.tgz#a1d6ffcefe5c1d389cbcca15f46da3cdaf241443" + integrity sha512-wjyXB22/h2OvxAr3jldPB7R7kjTUEzopvjitS8jWtyd8fN6xJ8vy1HnHu0ZNfEkqpBJgQ76Q+sBDshWcMvTa/w== + +"@csstools/css-calc@^1.2.0": + version "1.2.0" + resolved "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-1.2.0.tgz#a45145a868e644c31c79baf74c8de64fd09b3415" + integrity sha512-iQqIW5vDPqQdLx07/atCuNKDprhIWjB0b8XRhUyXZWBZYUG+9mNyFwyu30rypX84WLevVo25NYW2ipxR8WyseQ== + +"@csstools/css-color-parser@^1.6.2": + version "1.6.2" + resolved "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-1.6.2.tgz#d5ce6f7704886daf3b9fe359b89986711822b4fe" + integrity sha512-mlt0PomBlDXMGcbPAqCG36Fw35LZTtaSgCQCHEs4k8QTv1cUKe0rJDlFSJMHtqrgQiLC7LAAS9+s9kKQp2ou/Q== + dependencies: + "@csstools/color-helpers" "^4.0.0" + "@csstools/css-calc" "^1.2.0" + +"@csstools/css-parser-algorithms@^2.6.1": + version "2.6.1" + resolved "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-2.6.1.tgz#c45440d1efa2954006748a01697072dae5881bcd" + integrity sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA== + +"@csstools/css-tokenizer@^2.2.4": + version "2.2.4" + resolved "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-2.2.4.tgz#a4b8718ed7fcd2dcd555de16b31ca59ad4b96a06" + integrity sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw== + +"@csstools/media-query-list-parser@^2.1.9": + version "2.1.9" + resolved "https://registry.npmjs.org/@csstools/media-query-list-parser/-/media-query-list-parser-2.1.9.tgz#feb4b7268f998956eb3ded69507869e73d005dda" + integrity sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA== + +"@csstools/postcss-cascade-layers@^4.0.3": + version "4.0.3" + resolved "https://registry.npmjs.org/@csstools/postcss-cascade-layers/-/postcss-cascade-layers-4.0.3.tgz#2805dbb8dec661101928298b2e16599edf3c2bea" + integrity sha512-RbkQoOH23yGhWVetgBTwFgIOHEyU2tKMN7blTz/YAKKabR6tr9pP7mYS23Q9snFY2hr8WSaV8Le64KdM9BtUSA== + dependencies: + "@csstools/selector-specificity" "^3.0.2" + postcss-selector-parser "^6.0.13" + +"@csstools/postcss-color-function@^3.0.10": + version "3.0.12" + resolved "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-3.0.12.tgz#7d1c23bf988433aab5ee15f00ab479683d92d46e" + integrity sha512-amPGGDI4Xmgu7VN2ciKQe0pP/j5raaETT50nzbnkydp9FMw7imKxSUnXdVQU4NmRgpLKIc5Q7jox0MFhMBImIg== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-color-mix-function@^2.0.10": + version "2.0.12" + resolved "https://registry.npmjs.org/@csstools/postcss-color-mix-function/-/postcss-color-mix-function-2.0.12.tgz#850875e7253cd00ac282644149b358718e1b7683" + integrity sha512-qpAEGwVVqHSa88i3gLb43IMpT4/LyZEE8HzZylQKKXFVJ7XykXaORTmXySxyH6H+flT+NyCnutKG2fegCVyCug== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-exponential-functions@^1.0.4": + version "1.0.5" + resolved "https://registry.npmjs.org/@csstools/postcss-exponential-functions/-/postcss-exponential-functions-1.0.5.tgz#ac6f9e545cf6bbf9d6bad11e655ca693c4982e58" + integrity sha512-7S7I7KgwHWQYzJJAoIjRtUf7DQs1dxipeg1A6ikZr0PYapNJX7UHz0evlpE67SQqYj1xBs70gpG7xUv3uLp4PA== + dependencies: + "@csstools/css-calc" "^1.2.0" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + +"@csstools/postcss-font-format-keywords@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-3.0.2.tgz#b504cfc60588ac39fa5d1c67ef3da802b1bd7701" + integrity sha512-E0xz2sjm4AMCkXLCFvI/lyl4XO6aN1NCSMMVEOngFDJ+k2rDwfr6NDjWljk1li42jiLNChVX+YFnmfGCigZKXw== + dependencies: + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-gamut-mapping@^1.0.3": + version "1.0.5" + resolved "https://registry.npmjs.org/@csstools/postcss-gamut-mapping/-/postcss-gamut-mapping-1.0.5.tgz#f6565d5c3d8d6a728e071052eda801eebf5c118b" + integrity sha512-AJ74/4nHXgghLWY4/ydEhu3mzwN8c56EjIGrJsoEhKaNuGBAOtUfE5qbkc9XQQ0G2FMhHggqE+9eRrApeK7ebQ== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + +"@csstools/postcss-gradients-interpolation-method@^4.0.10": + version "4.0.13" + resolved "https://registry.npmjs.org/@csstools/postcss-gradients-interpolation-method/-/postcss-gradients-interpolation-method-4.0.13.tgz#3bf6b9ccef763e48b36435010ad334c653e32103" + integrity sha512-dBbyxs9g+mrIzmEH+UtrqJUmvcJB/60j0ijhBcVJMHCgl/rKjj8ey6r/pJOI0EhkVsckOu3Prc9AGzH88C+1pQ== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-hwb-function@^3.0.9": + version "3.0.11" + resolved "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-3.0.11.tgz#a995a092254ea4976652f98e2584df082daaea9b" + integrity sha512-c36FtMFptwGn5CmsfdONA40IlWG2lHeoC/TDyED/7lwiTht5okxe6iLAa9t2LjBBo5AHQSHfeMvOASdXk/SHog== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-ic-unit@^3.0.4": + version "3.0.5" + resolved "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-3.0.5.tgz#3ca9a830c55aab0e9b2561b3c94a0a08d9ffa9cf" + integrity sha512-9CriM/zvKXa/lDARlxs/MgeyKE6ZmmX4V77VLD7VUxKLVSt0Go3NCy/gRMbwGzxbrk3iaHFXnFbc2lNw+/7jcg== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-initial@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-initial/-/postcss-initial-1.0.1.tgz#5aa378de9bfd0e6e377433f8986bdecf579e1268" + integrity sha512-wtb+IbUIrIf8CrN6MLQuFR7nlU5C7PwuebfeEXfjthUha1+XZj2RVi+5k/lukToA24sZkYAiSJfHM8uG/UZIdg== + +"@csstools/postcss-is-pseudo-class@^4.0.5": + version "4.0.5" + resolved "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-4.0.5.tgz#c2b9a89e8c2f4cb80c3587dae1ed544447bbd16e" + integrity sha512-qG3MI7IN3KY9UwdaE9E7G7sFydscVW7nAj5OGwaBP9tQPEEVdxXTGI+l1ZW5EUpZFSj+u3q/22fH5+8HI72+Bg== + dependencies: + "@csstools/selector-specificity" "^3.0.2" + postcss-selector-parser "^6.0.13" + +"@csstools/postcss-light-dark-function@^1.0.0": + version "1.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-light-dark-function/-/postcss-light-dark-function-1.0.1.tgz#e9b30e7d5a2473f1ddd824c05253d7c7c48e07e8" + integrity sha512-CJOcp+m7Njbu91HtYMMoYuZznsvNSpJtLiR/7BO8/bHTXYPiuAZfxunh7wXLkMbHd5dRBgAVAQZ+H4iFqrvWZw== + dependencies: + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-logical-float-and-clear@^2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-logical-float-and-clear/-/postcss-logical-float-and-clear-2.0.1.tgz#c70ed8293cc376b1572bf56794219f54dc58c54d" + integrity sha512-SsrWUNaXKr+e/Uo4R/uIsqJYt3DaggIh/jyZdhy/q8fECoJSKsSMr7nObSLdvoULB69Zb6Bs+sefEIoMG/YfOA== + +"@csstools/postcss-logical-overflow@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-logical-overflow/-/postcss-logical-overflow-1.0.1.tgz#d14631369f43ef989c7e32f051ddb6952a8ce35c" + integrity sha512-Kl4lAbMg0iyztEzDhZuQw8Sj9r2uqFDcU1IPl+AAt2nue8K/f1i7ElvKtXkjhIAmKiy5h2EY8Gt/Cqg0pYFDCw== + +"@csstools/postcss-logical-overscroll-behavior@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-logical-overscroll-behavior/-/postcss-logical-overscroll-behavior-1.0.1.tgz#9305a6f0d08bb7b5f1a228272951f72d3bf9d44f" + integrity sha512-+kHamNxAnX8ojPCtV8WPcUP3XcqMFBSDuBuvT6MHgq7oX4IQxLIXKx64t7g9LiuJzE7vd06Q9qUYR6bh4YnGpQ== + +"@csstools/postcss-logical-resize@^2.0.1": + version "2.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-logical-resize/-/postcss-logical-resize-2.0.1.tgz#a46c1b51055db96fb63af3bfe58909c773aea377" + integrity sha512-W5Gtwz7oIuFcKa5SmBjQ2uxr8ZoL7M2bkoIf0T1WeNqljMkBrfw1DDA8/J83k57NQ1kcweJEjkJ04pUkmyee3A== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-logical-viewport-units@^2.0.6": + version "2.0.7" + resolved "https://registry.npmjs.org/@csstools/postcss-logical-viewport-units/-/postcss-logical-viewport-units-2.0.7.tgz#3bb03b9a57fe9ec2304bc35cf6c3d5d7c938ee26" + integrity sha512-L4G3zsp/bnU0+WXUyysihCUH14LkfMgUJsS9vKz3vCYbVobOTqQRoNXnEPpyNp8WYyolLqAWbGGJhVu8J6u2OQ== + dependencies: + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-media-minmax@^1.1.3": + version "1.1.4" + resolved "https://registry.npmjs.org/@csstools/postcss-media-minmax/-/postcss-media-minmax-1.1.4.tgz#1af01cc02fdb936a1c10a11e2663fd1b1ce1bd79" + integrity sha512-xl/PIO3TUbXO1ZA4SA6HCw+Q9UGe2cgeRKx3lHCzoNig2D4bT5vfVCOrwhxjUb09oHihc9eI3I0iIfVPiXaN1A== + dependencies: + "@csstools/css-calc" "^1.2.0" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/media-query-list-parser" "^2.1.9" + +"@csstools/postcss-media-queries-aspect-ratio-number-values@^2.0.6": + version "2.0.7" + resolved "https://registry.npmjs.org/@csstools/postcss-media-queries-aspect-ratio-number-values/-/postcss-media-queries-aspect-ratio-number-values-2.0.7.tgz#5f4939e6330a3c2cd0cba1e1b76bc51a74dc839c" + integrity sha512-HBDAQw1K0NilcHGMUHv8jzf2mpOtcWTVKtuY3AeZ5TS1uyWWNVi5/yuA/tREPLU9WifNdqHQ+rfbsV/8zTIkTg== + dependencies: + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/media-query-list-parser" "^2.1.9" + +"@csstools/postcss-nested-calc@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@csstools/postcss-nested-calc/-/postcss-nested-calc-3.0.2.tgz#72ae4d087987ab5596397f5c2e5db4403b81c4a9" + integrity sha512-ySUmPyawiHSmBW/VI44+IObcKH0v88LqFe0d09Sb3w4B1qjkaROc6d5IA3ll9kjD46IIX/dbO5bwFN/swyoyZA== + dependencies: + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-normalize-display-values@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-3.0.2.tgz#9013e6ade2fbd4cd725438c9ff0b1000062cf20d" + integrity sha512-fCapyyT/dUdyPtrelQSIV+d5HqtTgnNP/BEG9IuhgXHt93Wc4CfC1bQ55GzKAjWrZbgakMQ7MLfCXEf3rlZJOw== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-oklab-function@^3.0.10": + version "3.0.12" + resolved "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-3.0.12.tgz#6b563034a611874cb3420c3b49410b428aed90c3" + integrity sha512-RNitTHamFvUUh8x+MJuPd2tCekYexUrylGKfUoor5D2GGcgzY1WB6Bl3pIj9t8bAq5h/lcacKaB2wmvUOTfGgQ== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-progressive-custom-properties@^3.1.0", "@csstools/postcss-progressive-custom-properties@^3.1.1": + version "3.1.1" + resolved "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-3.1.1.tgz#c90d99bbe1ac9ae40a6f13631c341a6976c69558" + integrity sha512-cx/bZgj+MK8SpRZNTu2zGeVFMCQfhsaeuDhukAhfA53yykvIXaTIwLi5shW9hfkvPrkqBeFoiRAzq/qogxeHTA== + dependencies: + postcss-value-parser "^4.2.0" + +"@csstools/postcss-relative-color-syntax@^2.0.10": + version "2.0.12" + resolved "https://registry.npmjs.org/@csstools/postcss-relative-color-syntax/-/postcss-relative-color-syntax-2.0.12.tgz#0b8f825f771b0e804f0c96feb1c1f37ca3026d69" + integrity sha512-VreDGDgE634niwCytLtkoE5kRxfva7bnMzSoyok7Eh9VPYFOm8CK/oJXt9y3df71Bxc9PG4KC8RA3CxTknudnw== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +"@csstools/postcss-scope-pseudo-class@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-scope-pseudo-class/-/postcss-scope-pseudo-class-3.0.1.tgz#c5454ea2fb3cf9beaf212d3a631a5c18cd4fbc14" + integrity sha512-3ZFonK2gfgqg29gUJ2w7xVw2wFJ1eNWVDONjbzGkm73gJHVCYK5fnCqlLr+N+KbEfv2XbWAO0AaOJCFB6Fer6A== + dependencies: + postcss-selector-parser "^6.0.13" + +"@csstools/postcss-stepped-value-functions@^3.0.5": + version "3.0.6" + resolved "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-3.0.6.tgz#8263ddafab483100e13d63929d43cd12fb14767f" + integrity sha512-rnyp8tWRuBXERTHVdB5hjUlif5dQgPcyN+BX55wUnYpZ3LN9QPfK2Z3/HUZymwyou8Gg6vhd6X2W+g1pLq1jYg== + dependencies: + "@csstools/css-calc" "^1.2.0" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + +"@csstools/postcss-text-decoration-shorthand@^3.0.4": + version "3.0.4" + resolved "https://registry.npmjs.org/@csstools/postcss-text-decoration-shorthand/-/postcss-text-decoration-shorthand-3.0.4.tgz#b8c5216faa2c9d8a05b3f93da7b403dd5dd53a79" + integrity sha512-yUZmbnUemgQmja7SpOZeU45+P49wNEgQguRdyTktFkZsHf7Gof+ZIYfvF6Cm+LsU1PwSupy4yUeEKKjX5+k6cQ== + dependencies: + "@csstools/color-helpers" "^4.0.0" + postcss-value-parser "^4.2.0" + +"@csstools/postcss-trigonometric-functions@^3.0.5": + version "3.0.6" + resolved "https://registry.npmjs.org/@csstools/postcss-trigonometric-functions/-/postcss-trigonometric-functions-3.0.6.tgz#f8227f1807d28e817e4ff9053093eb8f1bcd9e13" + integrity sha512-i5Zd0bMJooZAn+ZcDmPij2WCkcOJJJ6opzK+QeDjxbMrYmoGQl0CY8FDHdeQyBF1Nly+Q0Fq3S7QfdNLKBBaCg== + dependencies: + "@csstools/css-calc" "^1.2.0" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + +"@csstools/postcss-unset-value@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-3.0.1.tgz#598a25630fd9ab0edf066d235916f7441404942a" + integrity sha512-dbDnZ2ja2U8mbPP0Hvmt2RMEGBiF1H7oY6HYSpjteXJGihYwgxgTr6KRbbJ/V6c+4wd51M+9980qG4gKVn5ttg== + +"@csstools/selector-resolve-nested@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@csstools/selector-resolve-nested/-/selector-resolve-nested-1.1.0.tgz#d872f2da402d3ce8bd0cf16ea5f9fba76b18e430" + integrity sha512-uWvSaeRcHyeNenKg8tp17EVDRkpflmdyvbE0DHo6D/GdBb6PDnCYYU6gRpXhtICMGMcahQmj2zGxwFM/WC8hCg== + +"@csstools/selector-specificity@^3.0.2": + version "3.0.2" + resolved "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz#ea61ba7bb24be3502c6aaa3190ed231f4633a81e" + integrity sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg== + +"@csstools/utilities@^1.0.0": + version "1.0.0" + resolved "https://registry.npmjs.org/@csstools/utilities/-/utilities-1.0.0.tgz#42f3c213f2fb929324d465684ab9f46a0febd4bb" + integrity sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg== + "@deno/shim-deno-test@^0.5.0": version "0.5.0" resolved "https://registry.npmjs.org/@deno/shim-deno-test/-/shim-deno-test-0.5.0.tgz#7d5dd221c736d182e587b8fd9bfca49b4dc0aa79" @@ -700,7 +994,7 @@ wrap-ansi "^8.1.0" wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" -"@jridgewell/gen-mapping@^0.3.5": +"@jridgewell/gen-mapping@^0.3.2", "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== @@ -1125,6 +1419,11 @@ vite-plugin-inspect "^0.7.33" vite-plugin-solid "~2.9.1" +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + "@types/acorn@^4.0.0": version "4.0.6" resolved "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" @@ -1189,6 +1488,13 @@ resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/hast@^2.0.0": + version "2.3.10" + resolved "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz#5c9d9e0b304bbb8879b857225c5ebab2d81d7643" + integrity sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw== + dependencies: + "@types/unist" "^2" + "@types/hast@^3.0.0": version "3.0.4" resolved "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz#1d6b39993b82cea6ad783945b0508c25903e15aa" @@ -1234,6 +1540,11 @@ dependencies: undici-types "~5.26.4" +"@types/parse5@^6.0.0": + version "6.0.3" + resolved "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb" + integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g== + "@types/resolve@1.20.2": version "1.20.2" resolved "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" @@ -1244,11 +1555,34 @@ resolved "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz#6dd61e43ef60b34086287f83683a5c1b2dc53d20" integrity sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ== -"@types/unist@^2.0.0", "@types/unist@^2.0.2": +"@types/unist@^2", "@types/unist@^2.0.0", "@types/unist@^2.0.2": version "2.0.10" resolved "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz#04ffa7f406ab628f7f7e97ca23e290cd8ab15efc" integrity sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA== +"@typescript/twoslash@3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@typescript/twoslash/-/twoslash-3.1.0.tgz#20b4d4bb58729681ff7f4b187af98757ea8723d4" + integrity sha512-kTwMUQ8xtAZaC4wb2XuLkPqFVBj2dNBueMQ89NWEuw87k2nLBbuafeG5cob/QEr6YduxIdTVUjix0MtC7mPlmg== + dependencies: + "@typescript/vfs" "1.3.5" + debug "^4.1.1" + lz-string "^1.4.4" + +"@typescript/vfs@1.3.4": + version "1.3.4" + resolved "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.4.tgz#07f89d2114f6e29255d589395ed7f3b4af8a00c2" + integrity sha512-RbyJiaAGQPIcAGWFa3jAXSuAexU4BFiDRF1g3hy7LmRqfNpYlTQWGXjcrOaVZjJ8YkkpuwG0FcsYvtWQpd9igQ== + dependencies: + debug "^4.1.1" + +"@typescript/vfs@1.3.5": + version "1.3.5" + resolved "https://registry.npmjs.org/@typescript/vfs/-/vfs-1.3.5.tgz#801e3c97b5beca4ff5b8763299ca5fd605b862b8" + integrity sha512-pI8Saqjupf9MfLw7w2+og+fmb0fZS0J6vsKXXrp4/PDXEFvntgzXmChCXC/KefZZS0YGS6AT8e0hGAJcTsdJlg== + dependencies: + debug "^4.1.1" + "@ungap/structured-clone@^1.0.0": version "1.2.0" resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" @@ -1498,6 +1832,11 @@ ansi-styles@^6.1.0: resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== +any-promise@^1.0.0: + version "1.3.0" + resolved "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" + integrity sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A== + anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" @@ -1545,6 +1884,11 @@ are-we-there-yet@^2.0.0: delegates "^1.0.0" readable-stream "^3.6.0" +arg@^5.0.2: + version "5.0.2" + resolved "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz#c81433cc427c92c4dcf4865142dbca6f15acd59c" + integrity sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg== + argparse@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" @@ -1572,6 +1916,18 @@ async@^3.2.4: resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== +autoprefixer@^10.4.17: + version "10.4.19" + resolved "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.19.tgz#ad25a856e82ee9d7898c59583c1afeb3fa65f89f" + integrity sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew== + dependencies: + browserslist "^4.23.0" + caniuse-lite "^1.0.30001599" + fraction.js "^4.3.7" + normalize-range "^0.1.2" + picocolors "^1.0.0" + postcss-value-parser "^4.2.0" + b4a@^1.6.4: version "1.6.6" resolved "https://registry.npmjs.org/b4a/-/b4a-1.6.6.tgz#a4cc349a3851987c3c4ac2d7785c18744f6da9ba" @@ -1650,6 +2006,11 @@ bindings@^1.4.0: dependencies: file-uri-to-path "1.0.0" +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + boxen@^7.1.1: version "7.1.1" resolved "https://registry.npmjs.org/boxen/-/boxen-7.1.1.tgz#f9ba525413c2fec9cdb88987d835c4f7cad9c8f4" @@ -1693,7 +2054,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.22.2: +browserslist@^4.0.0, browserslist@^4.22.2, browserslist@^4.22.3, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -1756,12 +2117,27 @@ callsites@^3.0.0: resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== +camelcase-css@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + camelcase@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/camelcase/-/camelcase-7.0.1.tgz#f02e50af9fd7782bc8b88a3558c32fd3a388f048" integrity sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw== -caniuse-lite@^1.0.30001587: +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001587, caniuse-lite@^1.0.30001599: version "1.0.30001600" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001600.tgz#93a3ee17a35aa6a9f0c6ef1b2ab49507d1ab9079" integrity sha512-+2S9/2JFhYmYaDpZvo0lKkfvuKIglrx68MwOBqMGHhQsNkLjB5xtc/TGoEPs+MxjSyN/72qer2g97nzR641mOQ== @@ -1894,6 +2270,11 @@ color-support@^1.1.2: resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== +colord@^2.9.3: + version "2.9.3" + resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + comma-separated-tokens@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" @@ -1904,6 +2285,16 @@ commander@^2.20.0: resolved "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== +commander@^4.0.0: + version "4.1.1" + resolved "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" + integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1997,11 +2388,135 @@ crossws@^0.2.0, crossws@^0.2.2, crossws@^0.2.4: resolved "https://registry.npmjs.org/crossws/-/crossws-0.2.4.tgz#82a8b518bff1018ab1d21ced9e35ffbe1681ad03" integrity sha512-DAxroI2uSOgUKLz00NX6A8U/8EE3SZHmIND+10jkVSaypvyt57J5JEOxAQOL6lQxyzi/wZbTIwssU1uy69h5Vg== +css-blank-pseudo@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-6.0.1.tgz#f79f8b84cc00f891e16aa85f14093c5e1c3499a8" + integrity sha512-goSnEITByxTzU4Oh5oJZrEWudxTqk7L6IXj1UW69pO6Hv0UdX+Vsrt02FFu5DweRh2bLu6WpX/+zsQCu5O1gKw== + dependencies: + postcss-selector-parser "^6.0.13" + +css-declaration-sorter@^7.2.0: + version "7.2.0" + resolved "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-7.2.0.tgz#6dec1c9523bc4a643e088aab8f09e67a54961024" + integrity sha512-h70rUM+3PNFuaBDTLe8wF/cdWu+dOZmb7pJt8Z2sedYbAcQVQV/tEchueg3GWxwqS0cxtbxmaHEdkNACqcvsow== + +css-has-pseudo@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-6.0.2.tgz#a1a15ee7082d72a23ed1d810220ba384da867d15" + integrity sha512-Z2Qm5yyOvJRTy6THdUlnGIX6PW/1wOc4FHWlfkcBkfkpZ3oz6lPdG+h+J7t1HZHT4uSSVR8XatXiMpqMUADXow== + dependencies: + "@csstools/selector-specificity" "^3.0.2" + postcss-selector-parser "^6.0.13" + postcss-value-parser "^4.2.0" + +css-prefers-color-scheme@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-9.0.1.tgz#30fcb94cc38b639b66fb99e1882ffd97f741feaa" + integrity sha512-iFit06ochwCKPRiWagbTa1OAWCvWWVdEnIFd8BaRrgO8YrrNh4RAWUQTFcYX5tdFZgFl1DJ3iiULchZyEbnF4g== + +css-select@^5.1.0: + version "5.1.0" + resolved "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz#b8ebd6554c3637ccc76688804ad3f6a6fdaea8a6" + integrity sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg== + dependencies: + boolbase "^1.0.0" + css-what "^6.1.0" + domhandler "^5.0.2" + domutils "^3.0.1" + nth-check "^2.0.1" + +css-tree@^2.3.1: + version "2.3.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20" + integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw== + dependencies: + mdn-data "2.0.30" + source-map-js "^1.0.1" + +css-tree@~2.2.0: + version "2.2.1" + resolved "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz#36115d382d60afd271e377f9c5f67d02bd48c032" + integrity sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA== + dependencies: + mdn-data "2.0.28" + source-map-js "^1.0.1" + +css-what@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + css.escape@^1.5.1: version "1.5.1" resolved "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb" integrity sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg== +cssdb@^7.11.0: + version "7.11.2" + resolved "https://registry.npmjs.org/cssdb/-/cssdb-7.11.2.tgz#127a2f5b946ee653361a5af5333ea85a39df5ae5" + integrity sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^6.1.0: + version "6.1.2" + resolved "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-6.1.2.tgz#adf4b89b975aa775f2750c89dbaf199bbd9da35e" + integrity sha512-1C0C+eNaeN8OcHQa193aRgYexyJtU8XwbdieEjClw+J9d94E41LwT6ivKH0WT+fYwYWB0Zp3I3IZ7tI/BbUbrg== + dependencies: + browserslist "^4.23.0" + css-declaration-sorter "^7.2.0" + cssnano-utils "^4.0.2" + postcss-calc "^9.0.1" + postcss-colormin "^6.1.0" + postcss-convert-values "^6.1.0" + postcss-discard-comments "^6.0.2" + postcss-discard-duplicates "^6.0.3" + postcss-discard-empty "^6.0.3" + postcss-discard-overridden "^6.0.2" + postcss-merge-longhand "^6.0.5" + postcss-merge-rules "^6.1.1" + postcss-minify-font-values "^6.1.0" + postcss-minify-gradients "^6.0.3" + postcss-minify-params "^6.1.0" + postcss-minify-selectors "^6.0.4" + postcss-normalize-charset "^6.0.2" + postcss-normalize-display-values "^6.0.2" + postcss-normalize-positions "^6.0.2" + postcss-normalize-repeat-style "^6.0.2" + postcss-normalize-string "^6.0.2" + postcss-normalize-timing-functions "^6.0.2" + postcss-normalize-unicode "^6.1.0" + postcss-normalize-url "^6.0.2" + postcss-normalize-whitespace "^6.0.2" + postcss-ordered-values "^6.0.2" + postcss-reduce-initial "^6.1.0" + postcss-reduce-transforms "^6.0.2" + postcss-svgo "^6.0.3" + postcss-unique-selectors "^6.0.4" + +cssnano-utils@^4.0.2: + version "4.0.2" + resolved "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-4.0.2.tgz#56f61c126cd0f11f2eef1596239d730d9fceff3c" + integrity sha512-ZR1jHg+wZ8o4c3zqf1SIUSTIvm/9mU343FMR6Obe/unskbvpGhZOo1J6d/r8D1pzkRQYuwbcH3hToOuoA2G7oQ== + +cssnano@6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/cssnano/-/cssnano-6.1.0.tgz#f36de7311d7f7cefe4c6d9045927611d56b6b9eb" + integrity sha512-e2v4w/t3OFM6HTuSweI4RSdABaqgVgHlJp5FZrQsopHnKKHLFIvK2D3C4kHWeFIycN/1L1J5VIrg5KlDzn3r/g== + dependencies: + cssnano-preset-default "^6.1.0" + lilconfig "^3.1.1" + +csso@^5.0.5: + version "5.0.5" + resolved "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz#f9b7fe6cc6ac0b7d90781bb16d5e9874303e2ca6" + integrity sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ== + dependencies: + css-tree "~2.2.0" + csstype@^3.1.0: version "3.1.3" resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz#d80ff294d114fb0e6ac500fbf85b60137d7eff81" @@ -2027,7 +2542,7 @@ debug@2.6.9: dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.3.1, debug@^4.3.4: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== @@ -2131,6 +2646,46 @@ devlop@^1.0.0, devlop@^1.1.0: dependencies: dequal "^2.0.0" +didyoumean@^1.2.2: + version "1.2.2" + resolved "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz#989346ffe9e839b4555ecf5666edea0d3e8ad037" + integrity sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw== + +dlv@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz#5c198a8a11453596e751494d49874bc7732f2e79" + integrity sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA== + +dom-serializer@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz#e41b802e1eedf9f6cae183ce5e622d789d7d8e53" + integrity sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg== + dependencies: + domelementtype "^2.3.0" + domhandler "^5.0.2" + entities "^4.2.0" + +domelementtype@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^5.0.2, domhandler@^5.0.3: + version "5.0.3" + resolved "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz#cc385f7f751f1d1fc650c21374804254538c7d31" + integrity sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w== + dependencies: + domelementtype "^2.3.0" + +domutils@^3.0.1: + version "3.1.0" + resolved "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz#c47f551278d3dc4b0b1ab8cbb42d751a6f0d824e" + integrity sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA== + dependencies: + dom-serializer "^2.0.0" + domelementtype "^2.3.0" + domhandler "^5.0.3" + dot-prop@^8.0.2: version "8.0.2" resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-8.0.2.tgz#afda6866610684dd155a96538f8efcdf78a27f18" @@ -2178,7 +2733,7 @@ encodeurl@~1.0.2: resolved "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== -entities@^4.5.0: +entities@^4.2.0, entities@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz#5d268ea5e7113ec74c4d033b79ea5a35a488fb48" integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== @@ -2443,7 +2998,7 @@ fast-fifo@^1.1.0, fast-fifo@^1.2.0: resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== -fast-glob@^3.3.1, fast-glob@^3.3.2: +fast-glob@^3.3.0, fast-glob@^3.3.1, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -2461,6 +3016,11 @@ fastq@^1.6.0: dependencies: reusify "^1.0.4" +fenceparser@^1.1.0: + version "1.1.1" + resolved "https://registry.npmjs.org/fenceparser/-/fenceparser-1.1.1.tgz#e10a5f12a54884d4f14edb0f7a52a0edc58fa667" + integrity sha512-VdkTsK7GWLT0VWMK5S5WTAPn61wJ98WPFwJiRHumhg4ESNUO/tnkU8bzzzc62o6Uk1SVhuZFLnakmDA4SGV7wA== + file-uri-to-path@1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" @@ -2499,6 +3059,11 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" +fraction.js@^4.3.7: + version "4.3.7" + resolved "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" + integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== + fresh@0.5.2: version "0.5.2" resolved "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" @@ -2596,6 +3161,13 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + glob@^10.0.0, glob@^10.3.10: version "10.3.10" resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" @@ -2704,6 +3276,43 @@ hasown@^2.0.0: dependencies: function-bind "^1.1.2" +hast-util-from-parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" + integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hastscript "^7.0.0" + property-information "^6.0.0" + vfile "^5.0.0" + vfile-location "^4.0.0" + web-namespaces "^2.0.0" + +hast-util-parse-selector@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" + integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== + dependencies: + "@types/hast" "^2.0.0" + +hast-util-raw@^7.2.0: + version "7.2.3" + resolved "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.3.tgz#dcb5b22a22073436dbdc4aa09660a644f4991d99" + integrity sha512-RujVQfVsOrxzPOPSzZFiwofMArbQke6DJjnFfceiEbFh7S05CbPt0cYN+A5YeD3pso0JQk6O1aHBnx9+Pm2uqg== + dependencies: + "@types/hast" "^2.0.0" + "@types/parse5" "^6.0.0" + hast-util-from-parse5 "^7.0.0" + hast-util-to-parse5 "^7.0.0" + html-void-elements "^2.0.0" + parse5 "^6.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + hast-util-to-estree@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz#f2afe5e869ddf0cf690c75f9fc699f3180b51b19" @@ -2747,6 +3356,18 @@ hast-util-to-jsx-runtime@^2.0.0: unist-util-position "^5.0.0" vfile-message "^4.0.0" +hast-util-to-parse5@^7.0.0: + version "7.1.0" + resolved "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-7.1.0.tgz#c49391bf8f151973e0c9adcd116b561e8daf29f3" + integrity sha512-YNRgAJkH2Jky5ySkIqFXTQiaqcAtJyVE+D5lkN6CdtOqrnkLfGYYrEcKuHOJZlp+MwjSwuD3fZuawI+sic/RBw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + web-namespaces "^2.0.0" + zwitch "^2.0.0" + hast-util-whitespace@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz#7778ed9d3c92dd9e8c5c8f648a49c21fc51cb621" @@ -2754,6 +3375,17 @@ hast-util-whitespace@^3.0.0: dependencies: "@types/hast" "^3.0.0" +hastscript@^7.0.0: + version "7.2.0" + resolved "https://registry.npmjs.org/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" + integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^3.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + hookable@^5.5.3: version "5.5.3" resolved "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz#6cfc358984a1ef991e2518cb9ed4a778bbd3215d" @@ -2769,6 +3401,11 @@ html-to-image@^1.11.11: resolved "https://registry.npmjs.org/html-to-image/-/html-to-image-1.11.11.tgz#c0f8a34dc9e4b97b93ff7ea286eb8562642ebbea" integrity sha512-9gux8QhvjRO/erSnDPv28noDZcPZmYE7e1vFsBLKLlRlKDSqNJYebj6Qz1TGd5lsRV+X+xYyjCKjuZdABinWjA== +html-void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz#29459b8b05c200b6c5ee98743c41b979d577549f" + integrity sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A== + http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" @@ -3101,7 +3738,7 @@ jackspeak@^2.3.5: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jiti@^1.21.0: +jiti@^1.19.1, jiti@^1.21.0: version "1.21.0" resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== @@ -3133,7 +3770,7 @@ json5@^2.2.3: resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -jsonc-parser@^3.2.0: +jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: version "3.2.1" resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.1.tgz#031904571ccf929d7670ee8c547545081cb37f1a" integrity sha512-AilxAyFOAcK5wA1+LeaySVBrHsGQvUFCDWXKpZjzaL0PqW+xfBOttn8GNtWKFWqneyMZj41MWF9Kl6iPWLwgOA== @@ -3164,6 +3801,16 @@ lazystream@^1.0.0: dependencies: readable-stream "^2.0.5" +lilconfig@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" + integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== + +lilconfig@^3.0.0, lilconfig@^3.1.1: + version "3.1.1" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz#9d8a246fa753106cfc205fd2d77042faca56e5e3" + integrity sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ== + lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -3218,6 +3865,16 @@ lodash.isarguments@^3.1.0: resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + lodash@^4.17.15: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" @@ -3247,6 +3904,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lz-string@^1.4.4: + version "1.5.0" + resolved "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz#c1ab50f77887b712621201ba9fd4e3a6ed099941" + integrity sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ== + magic-string@^0.30.0, magic-string@^0.30.3, magic-string@^0.30.5, magic-string@^0.30.8: version "0.30.8" resolved "https://registry.npmjs.org/magic-string/-/magic-string-0.30.8.tgz#14e8624246d2bedba70d5462aa99ac9681844613" @@ -3391,6 +4053,16 @@ mdast-util-to-string@^4.0.0: dependencies: "@types/mdast" "^4.0.0" +mdn-data@2.0.28: + version "2.0.28" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz#5ec48e7bef120654539069e1ae4ddc81ca490eba" + integrity sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g== + +mdn-data@2.0.30: + version "2.0.30" + resolved "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc" + integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA== + merge-anything@^5.1.7: version "5.1.7" resolved "https://registry.npmjs.org/merge-anything/-/merge-anything-5.1.7.tgz#94f364d2b0cf21ac76067b5120e429353b3525d7" @@ -3815,6 +4487,15 @@ ms@2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== +mz@^2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz#95008057a56cafadc2bc63dde7f9ff6955948e32" + integrity sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q== + dependencies: + any-promise "^1.0.0" + object-assign "^4.0.1" + thenify-all "^1.0.0" + nanoid@^3.3.7: version "3.3.7" resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" @@ -3942,6 +4623,11 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA== + npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -3966,6 +4652,13 @@ npmlog@^5.0.1: gauge "^3.0.0" set-blocking "^2.0.0" +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + nypm@^0.3.8: version "0.3.8" resolved "https://registry.npmjs.org/nypm/-/nypm-0.3.8.tgz#a16b078b161be5885351e72cf0b97326973722bf" @@ -3977,11 +4670,16 @@ nypm@^0.3.8: pathe "^1.1.2" ufo "^1.4.0" -object-assign@^4.1.1: +object-assign@^4.0.1, object-assign@^4.1.1: version "4.1.1" resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== +object-hash@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" + integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== + object.omit@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/object.omit/-/object.omit-3.0.0.tgz#0e3edc2fce2ba54df5577ff529f6d97bd8a522af" @@ -4107,6 +4805,11 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse5@^6.0.0: + version "6.0.1" + resolved "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== + parseurl@~1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" @@ -4189,6 +4892,16 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== +pify@^2.3.0: + version "2.3.0" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== + +pirates@^4.0.1: + version "4.0.6" + resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" + integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== + pkg-types@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/pkg-types/-/pkg-types-1.0.3.tgz#988b42ab19254c01614d13f4f65a2cfc7880f868" @@ -4198,7 +4911,508 @@ pkg-types@^1.0.3: mlly "^1.2.0" pathe "^1.1.0" -postcss@^8.4.36: +postcss-attribute-case-insensitive@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-6.0.3.tgz#d118023911a768dfccfc0b0147f5ff06d8485806" + integrity sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ== + dependencies: + postcss-selector-parser "^6.0.13" + +postcss-calc@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" + integrity sha512-TipgjGyzP5QzEhsOZUaIkeO5mKeMFpebWzRogWG/ysonUlnHcq5aJe0jOjpfzUU8PeSaBQnrE8ehR0QA5vs8PQ== + dependencies: + postcss-selector-parser "^6.0.11" + postcss-value-parser "^4.2.0" + +postcss-clamp@^4.1.0: + version "4.1.0" + resolved "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz#7263e95abadd8c2ba1bd911b0b5a5c9c93e02363" + integrity sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-color-functional-notation@^6.0.5: + version "6.0.7" + resolved "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-6.0.7.tgz#195d5f4132f65c1a728591a4f27839306b3c5ebc" + integrity sha512-VwzaVfu1kEYDK2yM8ixeKA/QbgQ8k0uxpRevLH9Wam+R3C1sg68vnRB7m2AMhYfjqb5khp4p0EQk5aO90ASAkw== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +postcss-color-hex-alpha@^9.0.4: + version "9.0.4" + resolved "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-9.0.4.tgz#f455902fb222453b2eb9699dfa9fc17a9c056f1e" + integrity sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ== + dependencies: + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +postcss-color-rebeccapurple@^9.0.3: + version "9.0.3" + resolved "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-9.0.3.tgz#63e14d9b9ab196e62e3491606a2b77a9531a6825" + integrity sha512-ruBqzEFDYHrcVq3FnW3XHgwRqVMrtEPLBtD7K2YmsLKVc2jbkxzzNEctJKsPCpDZ+LeMHLKRDoSShVefGc+CkQ== + dependencies: + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +postcss-colormin@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-6.1.0.tgz#076e8d3fb291fbff7b10e6b063be9da42ff6488d" + integrity sha512-x9yX7DOxeMAR+BgGVnNSAxmAj98NX/YxEMNFP+SDCEeNLb2r3i6Hh1ksMsnW8Ub5SLCpbescQqn9YEbE9554Sw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + colord "^2.9.3" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-6.1.0.tgz#3498387f8efedb817cbc63901d45bd1ceaa40f48" + integrity sha512-zx8IwP/ts9WvUM6NkVSkiU902QZL1bwPhaVaLynPtCsOTqp+ZKbNi+s6XJg3rfqpKGA/oc7Oxk5t8pOQJcwl/w== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-custom-media@^10.0.3: + version "10.0.4" + resolved "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-10.0.4.tgz#f40fcf05f3ee95e7a34bbdcb4dff99da41f0238f" + integrity sha512-Ubs7O3wj2prghaKRa68VHBvuy3KnTQ0zbGwqDYY1mntxJD0QL2AeiAy+AMfl3HBedTCVr2IcFNktwty9YpSskA== + dependencies: + "@csstools/cascade-layer-name-parser" "^1.0.9" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/media-query-list-parser" "^2.1.9" + +postcss-custom-properties@^13.3.5: + version "13.3.6" + resolved "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-13.3.6.tgz#f18f3105ab33b8cb2e69da38192a415f6e4c0ea8" + integrity sha512-vVVIwQbJiIz+PBLMIWA6XMi53Zg66/f474KolA7x0Das6EwkATc/9ZvM6zZx2gs7ZhcgVHjmWBbHkK9FlCgLeA== + dependencies: + "@csstools/cascade-layer-name-parser" "^1.0.9" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +postcss-custom-selectors@^7.1.7: + version "7.1.8" + resolved "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-7.1.8.tgz#600ce32a487737038831bb679e9a8011ffc62ee5" + integrity sha512-fqDkGSEsO7+oQaqdRdR8nwwqH+N2uk6LE/2g4myVJJYz/Ly418lHKEleKTdV/GzjBjFcG4n0dbfuH/Pd2BE8YA== + dependencies: + "@csstools/cascade-layer-name-parser" "^1.0.9" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + postcss-selector-parser "^6.0.13" + +postcss-dir-pseudo-class@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-8.0.1.tgz#b93755f52fb90215301b1d3ecb7c5e6416930a1e" + integrity sha512-uULohfWBBVoFiZXgsQA24JV6FdKIidQ+ZqxOouhWwdE+qJlALbkS5ScB43ZTjPK+xUZZhlaO/NjfCt5h4IKUfw== + dependencies: + postcss-selector-parser "^6.0.13" + +postcss-discard-comments@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-6.0.2.tgz#e768dcfdc33e0216380623652b0a4f69f4678b6c" + integrity sha512-65w/uIqhSBBfQmYnG92FO1mWZjJ4GL5b8atm5Yw2UgrwD7HiNiSSNwJor1eCFGzUgYnN/iIknhNRVqjrrpuglw== + +postcss-discard-duplicates@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-6.0.3.tgz#d121e893c38dc58a67277f75bb58ba43fce4c3eb" + integrity sha512-+JA0DCvc5XvFAxwx6f/e68gQu/7Z9ud584VLmcgto28eB8FqSFZwtrLwB5Kcp70eIoWP/HXqz4wpo8rD8gpsTw== + +postcss-discard-empty@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-6.0.3.tgz#ee39c327219bb70473a066f772621f81435a79d9" + integrity sha512-znyno9cHKQsK6PtxL5D19Fj9uwSzC2mB74cpT66fhgOadEUPyXFkbgwm5tvc3bt3NAy8ltE5MrghxovZRVnOjQ== + +postcss-discard-overridden@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-6.0.2.tgz#4e9f9c62ecd2df46e8fdb44dc17e189776572e2d" + integrity sha512-j87xzI4LUggC5zND7KdjsI25APtyMuynXZSujByMaav2roV6OZX+8AaCUcZSWqckZpjAjRyFDdpqybgjFO0HJQ== + +postcss-double-position-gradients@^5.0.4: + version "5.0.5" + resolved "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-5.0.5.tgz#4baa4d3ec35ef59ddb8b7ee44fd8855cd7faeb40" + integrity sha512-26Tx4BfoxMNO9C89Nk56bfGv4jAwdDVgrQOyHZOP/6/D+xuOBf306KzTjHC2oBzaIIVtX+famOWHv4raxMjJMQ== + dependencies: + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +postcss-focus-visible@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-9.0.1.tgz#eede1032ce86b3bb2556d93ca5df63c68dfc2559" + integrity sha512-N2VQ5uPz3Z9ZcqI5tmeholn4d+1H14fKXszpjogZIrFbhaq0zNAtq8sAnw6VLiqGbL8YBzsnu7K9bBkTqaRimQ== + dependencies: + postcss-selector-parser "^6.0.13" + +postcss-focus-within@^8.0.1: + version "8.0.1" + resolved "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-8.0.1.tgz#524af4c7eabae35cb1efa220a7903016fcc897fa" + integrity sha512-NFU3xcY/xwNaapVb+1uJ4n23XImoC86JNwkY/uduytSl2s9Ekc2EpzmRR63+ExitnW3Mab3Fba/wRPCT5oDILA== + dependencies: + postcss-selector-parser "^6.0.13" + +postcss-font-variant@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz#efd59b4b7ea8bb06127f2d031bfbb7f24d32fa66" + integrity sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA== + +postcss-gap-properties@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-5.0.1.tgz#887b64655f42370b43f0ab266cc6dbabf504d276" + integrity sha512-k2z9Cnngc24c0KF4MtMuDdToROYqGMMUQGcE6V0odwjHyOHtaDBlLeRBV70y9/vF7KIbShrTRZ70JjsI1BZyWw== + +postcss-image-set-function@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-6.0.3.tgz#84c5e32cc1085198f2cf4a786028dae8a2632bb2" + integrity sha512-i2bXrBYzfbRzFnm+pVuxVePSTCRiNmlfssGI4H0tJQvDue+yywXwUxe68VyzXs7cGtMaH6MCLY6IbCShrSroCw== + dependencies: + "@csstools/utilities" "^1.0.0" + postcss-value-parser "^4.2.0" + +postcss-import@^15.1.0: + version "15.1.0" + resolved "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz#41c64ed8cc0e23735a9698b3249ffdbf704adc70" + integrity sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew== + dependencies: + postcss-value-parser "^4.0.0" + read-cache "^1.0.0" + resolve "^1.1.7" + +postcss-js@^4.0.1: + version "4.0.1" + resolved "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz#61598186f3703bab052f1c4f7d805f3991bee9d2" + integrity sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw== + dependencies: + camelcase-css "^2.0.1" + +postcss-lab-function@^6.0.10: + version "6.0.12" + resolved "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-6.0.12.tgz#0e8a63c2ef4fd7f7fd1f732a33389fe48c6dd895" + integrity sha512-flHW2jdRCRe8ClhMgrylR1BCiyyqLLvp1qKfO5wuAclUihldfRsoDIFQWFVW7rJbruil9/LCoHNUvY9JwTlLPw== + dependencies: + "@csstools/css-color-parser" "^1.6.2" + "@csstools/css-parser-algorithms" "^2.6.1" + "@csstools/css-tokenizer" "^2.2.4" + "@csstools/postcss-progressive-custom-properties" "^3.1.1" + "@csstools/utilities" "^1.0.0" + +postcss-load-config@^4.0.1: + version "4.0.2" + resolved "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz#7159dcf626118d33e299f485d6afe4aff7c4a3e3" + integrity sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ== + dependencies: + lilconfig "^3.0.0" + yaml "^2.3.4" + +postcss-logical@^7.0.1: + version "7.0.1" + resolved "https://registry.npmjs.org/postcss-logical/-/postcss-logical-7.0.1.tgz#a3121f6510591b195321b16e65fbe13b1cfd3115" + integrity sha512-8GwUQZE0ri0K0HJHkDv87XOLC8DE0msc+HoWLeKdtjDZEwpZ5xuK3QdV6FhmHSQW40LPkg43QzvATRAI3LsRkg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-merge-longhand@^6.0.5: + version "6.0.5" + resolved "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-6.0.5.tgz#ba8a8d473617c34a36abbea8dda2b215750a065a" + integrity sha512-5LOiordeTfi64QhICp07nzzuTDjNSO8g5Ksdibt44d+uvIIAE1oZdRn8y/W5ZtYgRH/lnLDlvi9F8btZcVzu3w== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^6.1.1" + +postcss-merge-rules@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-6.1.1.tgz#7aa539dceddab56019469c0edd7d22b64c3dea9d" + integrity sha512-KOdWF0gju31AQPZiD+2Ar9Qjowz1LTChSjFFbS+e2sFgc4uHOp3ZvVX4sNeTlk0w2O31ecFGgrFzhO0RSWbWwQ== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + cssnano-utils "^4.0.2" + postcss-selector-parser "^6.0.16" + +postcss-minify-font-values@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-6.1.0.tgz#a0e574c02ee3f299be2846369211f3b957ea4c59" + integrity sha512-gklfI/n+9rTh8nYaSJXlCo3nOKqMNkxuGpTn/Qm0gstL3ywTr9/WRKznE+oy6fvfolH6dF+QM4nCo8yPLdvGJg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-6.0.3.tgz#ca3eb55a7bdb48a1e187a55c6377be918743dbd6" + integrity sha512-4KXAHrYlzF0Rr7uc4VrfwDJ2ajrtNEpNEuLxFgwkhFZ56/7gaE4Nr49nLsQDZyUe+ds+kEhf+YAUolJiYXF8+Q== + dependencies: + colord "^2.9.3" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-6.1.0.tgz#54551dec77b9a45a29c3cb5953bf7325a399ba08" + integrity sha512-bmSKnDtyyE8ujHQK0RQJDIKhQ20Jq1LYiez54WiaOoBtcSuflfK3Nm596LvbtlFcpipMjgClQGyGr7GAs+H1uA== + dependencies: + browserslist "^4.23.0" + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-6.0.4.tgz#197f7d72e6dd19eed47916d575d69dc38b396aff" + integrity sha512-L8dZSwNLgK7pjTto9PzWRoMbnLq5vsZSTu8+j1P/2GB8qdtGQfn+K1uSvFgYvgh83cbyxT5m43ZZhUMTJDSClQ== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-nested@^6.0.1: + version "6.0.1" + resolved "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz#f83dc9846ca16d2f4fa864f16e9d9f7d0961662c" + integrity sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ== + dependencies: + postcss-selector-parser "^6.0.11" + +postcss-nesting@^12.0.3: + version "12.1.0" + resolved "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.1.0.tgz#9ecca8da9d0bbfdaa47d3608ccf5ac48bfdfc0d2" + integrity sha512-QOYnosaZ+mlP6plQrAxFw09UUp2Sgtxj1BVHN+rSVbtV0Yx48zRt9/9F/ZOoxOKBBEsaJk2MYhhVRjeRRw5yuw== + dependencies: + "@csstools/selector-resolve-nested" "^1.1.0" + "@csstools/selector-specificity" "^3.0.2" + postcss-selector-parser "^6.0.13" + +postcss-normalize-charset@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-6.0.2.tgz#1ec25c435057a8001dac942942a95ffe66f721e1" + integrity sha512-a8N9czmdnrjPHa3DeFlwqst5eaL5W8jYu3EBbTTkI5FHkfMhFZh1EGbku6jhHhIzTA6tquI2P42NtZ59M/H/kQ== + +postcss-normalize-display-values@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-6.0.2.tgz#54f02764fed0b288d5363cbb140d6950dbbdd535" + integrity sha512-8H04Mxsb82ON/aAkPeq8kcBbAtI5Q2a64X/mnRRfPXBq7XeogoQvReqxEfc0B4WPq1KimjezNC8flUtC3Qz6jg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-6.0.2.tgz#e982d284ec878b9b819796266f640852dbbb723a" + integrity sha512-/JFzI441OAB9O7VnLA+RtSNZvQ0NCFZDOtp6QPFo1iIyawyXg0YI3CYM9HBy1WvwCRHnPep/BvI1+dGPKoXx/Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-6.0.2.tgz#f8006942fd0617c73f049dd8b6201c3a3040ecf3" + integrity sha512-YdCgsfHkJ2jEXwR4RR3Tm/iOxSfdRt7jplS6XRh9Js9PyCR/aka/FCb6TuHT2U8gQubbm/mPmF6L7FY9d79VwQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-6.0.2.tgz#e3cc6ad5c95581acd1fc8774b309dd7c06e5e363" + integrity sha512-vQZIivlxlfqqMp4L9PZsFE4YUkWniziKjQWUtsxUiVsSSPelQydwS8Wwcuw0+83ZjPWNTl02oxlIvXsmmG+CiQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-6.0.2.tgz#40cb8726cef999de984527cbd9d1db1f3e9062c0" + integrity sha512-a+YrtMox4TBtId/AEwbA03VcJgtyW4dGBizPl7e88cTFULYsprgHWTbfyjSLyHeBcK/Q9JhXkt2ZXiwaVHoMzA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-6.1.0.tgz#aaf8bbd34c306e230777e80f7f12a4b7d27ce06e" + integrity sha512-QVC5TQHsVj33otj8/JD869Ndr5Xcc/+fwRh4HAsFsAeygQQXm+0PySrKbr/8tkDKzW+EVT3QkqZMfFrGiossDg== + dependencies: + browserslist "^4.23.0" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-6.0.2.tgz#292792386be51a8de9a454cb7b5c58ae22db0f79" + integrity sha512-kVNcWhCeKAzZ8B4pv/DnrU1wNh458zBNp8dh4y5hhxih5RZQ12QWMuQrDgPRw3LRl8mN9vOVfHl7uhvHYMoXsQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-6.0.2.tgz#fbb009e6ebd312f8b2efb225c2fcc7cf32b400cd" + integrity sha512-sXZ2Nj1icbJOKmdjXVT9pnyHQKiSAyuNQHSgRCUgThn2388Y9cGVDR+E9J9iAYbSbLHI+UUwLVl1Wzco/zgv0Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-opacity-percentage@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-2.0.0.tgz#c0a56060cd4586e3f954dbde1efffc2deed53002" + integrity sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ== + +postcss-ordered-values@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-6.0.2.tgz#366bb663919707093451ab70c3f99c05672aaae5" + integrity sha512-VRZSOB+JU32RsEAQrO94QPkClGPKJEL/Z9PCBImXMhIeK5KAYo6slP/hBYlLgrCjFxyqvn5VC81tycFEDBLG1Q== + dependencies: + cssnano-utils "^4.0.2" + postcss-value-parser "^4.2.0" + +postcss-overflow-shorthand@^5.0.1: + version "5.0.1" + resolved "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-5.0.1.tgz#c0a124edad4f7ad88109275a60510e1fb07ab833" + integrity sha512-XzjBYKLd1t6vHsaokMV9URBt2EwC9a7nDhpQpjoPk2HRTSQfokPfyAS/Q7AOrzUu6q+vp/GnrDBGuj/FCaRqrQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-page-break@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz#7fbf741c233621622b68d435babfb70dd8c1ee5f" + integrity sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ== + +postcss-place@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/postcss-place/-/postcss-place-9.0.1.tgz#c08c46a94e639c1ee3457ac96d50c50a89bd6ac3" + integrity sha512-JfL+paQOgRQRMoYFc2f73pGuG/Aw3tt4vYMR6UA3cWVMxivviPTnMFnFTczUJOA4K2Zga6xgQVE+PcLs64WC8Q== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-preset-env@9.4.0: + version "9.4.0" + resolved "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-9.4.0.tgz#9896efc0e9896d68316adcf2d314d36f38f04bba" + integrity sha512-5X2UA4Dn4xo7sJFCxlzW/dAGo71Oxh/K5DVls33hd2e3j06OKnW5FJQTw2hB0wTnGv0f6WcMaVBGFqcEfAgwlw== + dependencies: + "@csstools/postcss-cascade-layers" "^4.0.3" + "@csstools/postcss-color-function" "^3.0.10" + "@csstools/postcss-color-mix-function" "^2.0.10" + "@csstools/postcss-exponential-functions" "^1.0.4" + "@csstools/postcss-font-format-keywords" "^3.0.2" + "@csstools/postcss-gamut-mapping" "^1.0.3" + "@csstools/postcss-gradients-interpolation-method" "^4.0.10" + "@csstools/postcss-hwb-function" "^3.0.9" + "@csstools/postcss-ic-unit" "^3.0.4" + "@csstools/postcss-initial" "^1.0.1" + "@csstools/postcss-is-pseudo-class" "^4.0.5" + "@csstools/postcss-light-dark-function" "^1.0.0" + "@csstools/postcss-logical-float-and-clear" "^2.0.1" + "@csstools/postcss-logical-overflow" "^1.0.1" + "@csstools/postcss-logical-overscroll-behavior" "^1.0.1" + "@csstools/postcss-logical-resize" "^2.0.1" + "@csstools/postcss-logical-viewport-units" "^2.0.6" + "@csstools/postcss-media-minmax" "^1.1.3" + "@csstools/postcss-media-queries-aspect-ratio-number-values" "^2.0.6" + "@csstools/postcss-nested-calc" "^3.0.2" + "@csstools/postcss-normalize-display-values" "^3.0.2" + "@csstools/postcss-oklab-function" "^3.0.10" + "@csstools/postcss-progressive-custom-properties" "^3.1.0" + "@csstools/postcss-relative-color-syntax" "^2.0.10" + "@csstools/postcss-scope-pseudo-class" "^3.0.1" + "@csstools/postcss-stepped-value-functions" "^3.0.5" + "@csstools/postcss-text-decoration-shorthand" "^3.0.4" + "@csstools/postcss-trigonometric-functions" "^3.0.5" + "@csstools/postcss-unset-value" "^3.0.1" + autoprefixer "^10.4.17" + browserslist "^4.22.3" + css-blank-pseudo "^6.0.1" + css-has-pseudo "^6.0.2" + css-prefers-color-scheme "^9.0.1" + cssdb "^7.11.0" + postcss-attribute-case-insensitive "^6.0.3" + postcss-clamp "^4.1.0" + postcss-color-functional-notation "^6.0.5" + postcss-color-hex-alpha "^9.0.4" + postcss-color-rebeccapurple "^9.0.3" + postcss-custom-media "^10.0.3" + postcss-custom-properties "^13.3.5" + postcss-custom-selectors "^7.1.7" + postcss-dir-pseudo-class "^8.0.1" + postcss-double-position-gradients "^5.0.4" + postcss-focus-visible "^9.0.1" + postcss-focus-within "^8.0.1" + postcss-font-variant "^5.0.0" + postcss-gap-properties "^5.0.1" + postcss-image-set-function "^6.0.3" + postcss-lab-function "^6.0.10" + postcss-logical "^7.0.1" + postcss-nesting "^12.0.3" + postcss-opacity-percentage "^2.0.0" + postcss-overflow-shorthand "^5.0.1" + postcss-page-break "^3.0.4" + postcss-place "^9.0.1" + postcss-pseudo-class-any-link "^9.0.1" + postcss-replace-overflow-wrap "^4.0.0" + postcss-selector-not "^7.0.2" + +postcss-pseudo-class-any-link@^9.0.1: + version "9.0.1" + resolved "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-9.0.1.tgz#71c24a886765763d4e37e21a27ecc6f1c1a5d698" + integrity sha512-cKYGGZ9yzUZi+dZd7XT2M8iSDfo+T2Ctbpiizf89uBTBfIpZpjvTavzIJXpCReMVXSKROqzpxClNu6fz4DHM0Q== + dependencies: + postcss-selector-parser "^6.0.13" + +postcss-pxtorem@6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-pxtorem/-/postcss-pxtorem-6.1.0.tgz#7e6410e30426adef53bad6c4c5f00cd5f586937c" + integrity sha512-ROODSNci9ADal3zUcPHOF/K83TiCgNSPXQFSbwyPHNV8ioHIE4SaC+FPOufd8jsr5jV2uIz29v1Uqy1c4ov42g== + +postcss-reduce-initial@^6.1.0: + version "6.1.0" + resolved "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-6.1.0.tgz#4401297d8e35cb6e92c8e9586963e267105586ba" + integrity sha512-RarLgBK/CrL1qZags04oKbVbrrVK2wcxhvta3GCxrZO4zveibqbRPmm2VI8sSgCXwoUHEliRSbOfpR0b/VIoiw== + dependencies: + browserslist "^4.23.0" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-6.0.2.tgz#6fa2c586bdc091a7373caeee4be75a0f3e12965d" + integrity sha512-sB+Ya++3Xj1WaT9+5LOOdirAxP7dJZms3GRcYheSPi1PiTMigsxHAdkrbItHxwYHr4kt1zL7mmcHstgMYT+aiA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-replace-overflow-wrap@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz#d2df6bed10b477bf9c52fab28c568b4b29ca4319" + integrity sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw== + +postcss-selector-not@^7.0.2: + version "7.0.2" + resolved "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-7.0.2.tgz#f9184c7770be5dcb4abd7efa3610a15fbd2f0b31" + integrity sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA== + dependencies: + postcss-selector-parser "^6.0.13" + +postcss-selector-parser@^6.0.11, postcss-selector-parser@^6.0.13, postcss-selector-parser@^6.0.16: + version "6.0.16" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz#3b88b9f5c5abd989ef4e2fc9ec8eedd34b20fb04" + integrity sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-6.0.3.tgz#1d6e180d6df1fa8a3b30b729aaa9161e94f04eaa" + integrity sha512-dlrahRmxP22bX6iKEjOM+c8/1p+81asjKT+V5lrgOH944ryx/OHpclnIbGsKVd3uWOXFLYJwCVf0eEkJGvO96g== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^3.2.0" + +postcss-unique-selectors@^6.0.4: + version "6.0.4" + resolved "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-6.0.4.tgz#983ab308896b4bf3f2baaf2336e14e52c11a2088" + integrity sha512-K38OCaIrO8+PzpArzkLKB42dSARtC2tmG6PvD4b1o1Q2E9Os8jzfWFfSy/rixsHwohtsDdFtAWGjFVFUdwYaMg== + dependencies: + postcss-selector-parser "^6.0.16" + +postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.4.23, postcss@^8.4.36: version "8.4.38" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz#b387d533baf2054288e337066d81c6bee9db9e0e" integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== @@ -4263,6 +5477,13 @@ rc9@^2.1.1: destr "^2.0.0" flat "^5.0.2" +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + integrity sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA== + dependencies: + pify "^2.3.0" + readable-stream@^2.0.5: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" @@ -4333,6 +5554,20 @@ redis-parser@^3.0.0: dependencies: redis-errors "^1.0.0" +regenerator-runtime@^0.13.7: + version "0.13.11" + resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +rehype-raw@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz#81bbef3793bd7abacc6bf8335879d1b6c868c9d4" + integrity sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ== + dependencies: + "@types/hast" "^2.0.0" + hast-util-raw "^7.2.0" + unified "^10.0.0" + remark-mdx@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz#8f73dd635c1874e44426e243f72c0977cf60e212" @@ -4362,6 +5597,21 @@ remark-rehype@^11.0.0: unified "^11.0.0" vfile "^6.0.0" +remark-shiki-twoslash@^3.1.3: + version "3.1.3" + resolved "https://registry.npmjs.org/remark-shiki-twoslash/-/remark-shiki-twoslash-3.1.3.tgz#0edc4929a68ca24da2cdd80d662feb7811a6194b" + integrity sha512-4e8OH3ySOCw5wUbDcPszokOKjKuebOqlP2WlySvC7ITBOq27BiGsFlq+FNWhxppZ+JzhTWah4gQrnMjX3KDbAQ== + dependencies: + "@types/unist" "^2.0.0" + "@typescript/twoslash" "3.1.0" + "@typescript/vfs" "1.3.4" + fenceparser "^1.1.0" + regenerator-runtime "^0.13.7" + shiki "0.10.1" + shiki-twoslash "3.1.2" + tslib "2.1.0" + unist-util-visit "^2.0.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -4382,7 +5632,7 @@ resolve-from@^5.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve@^1.22.1, resolve@^1.22.4, resolve@^1.22.6: +resolve@^1.1.7, resolve@^1.22.1, resolve@^1.22.2, resolve@^1.22.4, resolve@^1.22.6: version "1.22.8" resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -4565,6 +5815,25 @@ shebang-regex@^3.0.0: resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== +shiki-twoslash@3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/shiki-twoslash/-/shiki-twoslash-3.1.2.tgz#fba4a5bf6f055d96543691c1585b04528fe4c486" + integrity sha512-JBcRIIizi+exIA/OUhYkV6jtyeZco0ykCkIRd5sgwIt1Pm4pz+maoaRZpm6SkhPwvif4fCA7xOtJOykhpIV64Q== + dependencies: + "@typescript/twoslash" "3.1.0" + "@typescript/vfs" "1.3.4" + fenceparser "^1.1.0" + shiki "0.10.1" + +shiki@0.10.1: + version "0.10.1" + resolved "https://registry.npmjs.org/shiki/-/shiki-0.10.1.tgz#6f9a16205a823b56c072d0f1a0bcd0f2646bef14" + integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng== + dependencies: + jsonc-parser "^3.0.0" + vscode-oniguruma "^1.6.1" + vscode-textmate "5.2.0" + shikiji-core@0.9.19: version "0.9.19" resolved "https://registry.npmjs.org/shikiji-core/-/shikiji-core-0.9.19.tgz#227975e998eb2a579cf83de30977762be3802507" @@ -4639,7 +5908,7 @@ solid-use@^0.8.0: resolved "https://registry.npmjs.org/solid-use/-/solid-use-0.8.0.tgz#d46258c45edb0f4c621285e0ad1aa6b6a674d79b" integrity sha512-YX+XmcKLvSx3bwMimMhFy40ZkDnShnUcEw6cW6fSscwKEgl1TG3GlgAvkBmQ3AeWjvQSd8+HGTr82ImsrjkkqA== -"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2, source-map-js@^1.2.0: +"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.1, source-map-js@^1.0.2, source-map-js@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz#16b809c162517b5b8c3e7dcd315a2a5c2612b2af" integrity sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg== @@ -4798,11 +6067,32 @@ style-to-object@^1.0.0: dependencies: inline-style-parser "0.2.3" +stylehacks@^6.1.1: + version "6.1.1" + resolved "https://registry.npmjs.org/stylehacks/-/stylehacks-6.1.1.tgz#543f91c10d17d00a440430362d419f79c25545a6" + integrity sha512-gSTTEQ670cJNoaeIp9KX6lZmm8LJ3jPB5yJmX8Zq/wQxOsAFXV3qjWzHas3YYk1qesuVIyYWWUpZ0vSE/dTSGg== + dependencies: + browserslist "^4.23.0" + postcss-selector-parser "^6.0.16" + stylis@^4.3.0: version "4.3.1" resolved "https://registry.npmjs.org/stylis/-/stylis-4.3.1.tgz#ed8a9ebf9f76fe1e12d462f5cc3c4c980b23a7eb" integrity sha512-EQepAV+wMsIaGVGX1RECzgrcqRRU/0sYOHkeLsZ3fzHaHXZy4DaOOX0vOlGQdlsjkh3mFHAIlVimpwAs4dslyQ== +sucrase@^3.32.0: + version "3.35.0" + resolved "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz#57f17a3d7e19b36d8995f06679d121be914ae263" + integrity sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA== + dependencies: + "@jridgewell/gen-mapping" "^0.3.2" + commander "^4.0.0" + glob "^10.3.10" + lines-and-columns "^1.1.6" + mz "^2.7.0" + pirates "^4.0.1" + ts-interface-checker "^0.1.9" + supports-color@^5.3.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" @@ -4820,11 +6110,52 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== +svgo@^3.2.0: + version "3.2.0" + resolved "https://registry.npmjs.org/svgo/-/svgo-3.2.0.tgz#7a5dff2938d8c6096e00295c2390e8e652fa805d" + integrity sha512-4PP6CMW/V7l/GmKRKzsLR8xxjdHTV4IMvhTnpuHwwBazSIlw5W/5SmPjN8Dwyt7lKbSJrRDgp4t9ph0HgChFBQ== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^5.1.0" + css-tree "^2.3.1" + css-what "^6.1.0" + csso "^5.0.5" + picocolors "^1.0.0" + system-architecture@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz#71012b3ac141427d97c67c56bc7921af6bff122d" integrity sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA== +tailwindcss@3.4.1: + version "3.4.1" + resolved "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.1.tgz#f512ca5d1dd4c9503c7d3d28a968f1ad8f5c839d" + integrity sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA== + dependencies: + "@alloc/quick-lru" "^5.2.0" + arg "^5.0.2" + chokidar "^3.5.3" + didyoumean "^1.2.2" + dlv "^1.1.3" + fast-glob "^3.3.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" + jiti "^1.19.1" + lilconfig "^2.1.0" + micromatch "^4.0.5" + normalize-path "^3.0.0" + object-hash "^3.0.0" + picocolors "^1.0.0" + postcss "^8.4.23" + postcss-import "^15.1.0" + postcss-js "^4.0.1" + postcss-load-config "^4.0.1" + postcss-nested "^6.0.1" + postcss-selector-parser "^6.0.11" + resolve "^1.22.2" + sucrase "^3.32.0" + tar-stream@^3.0.0: version "3.1.7" resolved "https://registry.npmjs.org/tar-stream/-/tar-stream-3.1.7.tgz#24b3fb5eabada19fe7338ed6d26e5f7c482e792b" @@ -4863,6 +6194,20 @@ terser@^5.17.4: commander "^2.20.0" source-map-support "~0.5.20" +thenify-all@^1.0.0: + version "1.6.0" + resolved "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz#1a1918d402d8fc3f98fbf234db0bcc8cc10e9726" + integrity sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA== + dependencies: + thenify ">= 3.1.0 < 4" + +"thenify@>= 3.1.0 < 4": + version "3.3.1" + resolved "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz#8932e686a4066038a016dd9e2ca46add9838a95f" + integrity sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw== + dependencies: + any-promise "^1.0.0" + tiny-invariant@^1.3.3: version "1.3.3" resolved "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.3.3.tgz#46680b7a873a0d5d10005995eb90a70d74d60127" @@ -4915,6 +6260,11 @@ trough@^2.0.0: resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz#94a60bd6bd375c152c1df911a4b11d5b0256f50f" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== +ts-interface-checker@^0.1.9: + version "0.1.13" + resolved "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz#784fd3d679722bc103b1b4b8030bcddb5db2a699" + integrity sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA== + ts-invariant@^0.10.3: version "0.10.3" resolved "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" @@ -4922,6 +6272,11 @@ ts-invariant@^0.10.3: dependencies: tslib "^2.1.0" +tslib@2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz#da60860f1c2ecaa5703ab7d39bc05b6bf988b97a" + integrity sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A== + tslib@^2.0.1, tslib@^2.1.0, tslib@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" @@ -4937,6 +6292,11 @@ type-fest@^3.8.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== +typescript@5.4.3: + version "5.4.3" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.3.tgz#5c6fedd4c87bee01cd7a528a30145521f8e0feff" + integrity sha512-KrPd3PKaCLr78MalgiwJnA25Nm8HAmdwN3mYUYZgG/wizIo9EainNVQI9/yDavtVFRN2h3k8uf3GLHuhDMgEHg== + ufo@^1.3.0, ufo@^1.3.2, ufo@^1.4.0, ufo@^1.5.3: version "1.5.3" resolved "https://registry.npmjs.org/ufo/-/ufo-1.5.3.tgz#3325bd3c977b6c6cd3160bf4ff52989adc9d3344" @@ -4990,6 +6350,19 @@ unicorn-magic@^0.1.0: resolved "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz#1bb9a51c823aaf9d73a8bfcd3d1a23dde94b0ce4" integrity sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ== +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + unified@^11.0.0: version "11.0.4" resolved "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz#f4be0ac0fe4c88cb873687c07c64c49ed5969015" @@ -5034,6 +6407,18 @@ unimport@^3.7.1: strip-literal "^1.3.0" unplugin "^1.5.1" +unist-util-is@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" + integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== + +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz#b775956486aff107a9ded971d996c173374be424" @@ -5048,6 +6433,13 @@ unist-util-position-from-estree@^2.0.0: dependencies: "@types/unist" "^3.0.0" +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-position@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz#678f20ab5ca1207a97d7ea8a388373c9cf896be4" @@ -5084,6 +6476,22 @@ unist-util-stringify-position@^4.0.0: dependencies: "@types/unist" "^3.0.0" +unist-util-visit-parents@^3.0.0: + version "3.1.1" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" + integrity sha512-1KROIZWo6bcMrZEwiH2UrXDyalAa0uqzWCxCJj6lPOvTve2WkfgCytoDTPaMnodXh1WrXOq0haVYHj99ynJlsg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents@^6.0.0: version "6.0.1" resolved "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz#4d5f85755c3b8f0dc69e21eca5d6d82d22162815" @@ -5092,6 +6500,24 @@ unist-util-visit-parents@^6.0.0: "@types/unist" "^3.0.0" unist-util-is "^6.0.0" +unist-util-visit@^2.0.0: + version "2.0.3" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz#c3703893146df47203bb8a9795af47d7b971208c" + integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +unist-util-visit@^4.0.0: + version "4.1.2" + resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + unist-util-visit@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz#a7de1f31f72ffd3519ea71814cccf5fd6a9217d6" @@ -5176,7 +6602,7 @@ urlpattern-polyfill@8.0.2: resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-8.0.2.tgz#99f096e35eff8bf4b5a2aa7d58a1523d6ebc7ce5" integrity sha512-Qp95D4TPJl1kC9SKigDcqgyM2VDVO4RiJc2d4qe5GrYm+zbIQCWWKAFaJNQ4BhdFeDGwBmAxqJBwWSJDb9T3BQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -5186,6 +6612,14 @@ validate-html-nesting@^1.2.1: resolved "https://registry.npmjs.org/validate-html-nesting/-/validate-html-nesting-1.2.2.tgz#2d74de14b598a0de671fad01bd71deabb93b8aca" integrity sha512-hGdgQozCsQJMyfK5urgFcWEqsSSrK63Awe0t/IMR0bZ0QMtnuaiHzThW81guu3qx9abLi99NEuiaN6P9gVYsNg== +vfile-location@^4.0.0: + version "4.1.0" + resolved "https://registry.npmjs.org/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" + integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + vfile-message@^2.0.0: version "2.0.4" resolved "https://registry.npmjs.org/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" @@ -5321,6 +6755,21 @@ vitefu@^0.2.5: resolved "https://registry.npmjs.org/vitefu/-/vitefu-0.2.5.tgz#c1b93c377fbdd3e5ddd69840ea3aa70b40d90969" integrity sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q== +vscode-oniguruma@^1.6.1: + version "1.7.0" + resolved "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz#439bfad8fe71abd7798338d1cd3dc53a8beea94b" + integrity sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA== + +vscode-textmate@5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== + +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + webidl-conversions@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" @@ -5436,6 +6885,11 @@ yallist@^4.0.0: resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml@^2.3.4: + version "2.4.1" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz#2e57e0b5e995292c25c75d2658f0664765210eed" + integrity sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg== + yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35"