diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index ddc2c235..491d4471 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -1,3 +1,5 @@ +import { URL, fileURLToPath } from 'node:url' + import { defineConfig } from 'vitepress' // https://vitepress.dev/reference/site-config @@ -32,19 +34,12 @@ export default defineConfig({ provider: 'local' }, - // lastUpdated: { - // text: 'Updated at', - // formatOptions: { - // dateStyle: 'full', - // timeStyle: 'medium' - // } - // }, - // Top navigation nav: [ + { text: 'Why KitOps?', activeMatch: `^/#whykitops`, link: '/#whykitops' }, + { text: 'How does it work?', activeMatch: `^/#howdoesitwork`, link: '/#howdoesitwork' }, { text: 'Docs', activeMatch: `^/docs`, link: '/docs/overview' }, - { text: 'Guides', activeMatch: `^/guides`, link: '/guides/index' }, - { text: 'Feed', activeMatch: `^/feed`, link: '/feed' }, + // { text: 'Blog', activeMatch: `^/blog`, link: '/blog' }, ], // Sidebar nav @@ -110,19 +105,15 @@ export default defineConfig({ ], socialLinks: [ + { + icon: 'discord', + link: 'https://discord.gg/XzSmtPn3' + }, { icon: 'github', link: 'https://github.com/jozu-ai/kitops' }, - { - icon: { - svg: '' - }, - link: 'https://jozu.com', - ariaLabel: 'JOzu Website' - } ], - /* footer: { license: { text: 'MIT License', @@ -130,6 +121,19 @@ export default defineConfig({ }, copyright: `Copyright © ${new Date().getFullYear()} Jozu` } - */ + }, + + vite: { + resolve: { + alias: [ + // Override the footer with out custom footer + { + find: /^.*\/VPFooter\.vue$/, + replacement: fileURLToPath( + new URL('./theme/components/Footer.vue', import.meta.url) + ) + } + ] + } } }) diff --git a/docs/.vitepress/theme/assets/css/fonts.css b/docs/.vitepress/theme/assets/css/fonts.css new file mode 100644 index 00000000..0f264b37 --- /dev/null +++ b/docs/.vitepress/theme/assets/css/fonts.css @@ -0,0 +1,148 @@ +@font-face { + font-family: 'Titillium Web'; + font-weight: 200; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-ExtraLight.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 200; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-ExtraLightItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 300; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-Light.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 300; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-LightItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 400; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-Regular.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 400; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-Italic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 600; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-SemiBold.ttf) format('truetype'); +} +@font-face { + font-family: 'Titillium Web'; + font-weight: 600; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-SemiBoldItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 700; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-Bold.ttf) format('truetype'); +} +@font-face { + font-family: 'Titillium Web'; + font-weight: 700; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-BoldItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 800; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-ExtraBold.ttf) format('truetype'); +} +@font-face { + font-family: 'Titillium Web'; + font-weight: 800; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-ExtraBoldItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 900; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-Black.ttf) format('truetype'); +} + +@font-face { + font-family: 'Titillium Web'; + font-weight: 900; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/titillium-web/TitilliumWeb-BlackItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Atkinson Hyperlegible'; + font-weight: 400; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Regular.ttf) format('truetype'); +} + +@font-face { + font-family: 'Atkinson Hyperlegible'; + font-weight: 400; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Italic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Atkinson Hyperlegible'; + font-weight: 700; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Bold.ttf) format('truetype'); +} + +@font-face { + font-family: 'Atkinson Hyperlegible'; + font-weight: 700; + font-style: italic; + font-display: swap; + src: local('Rubik'), url(/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-BoldItalic.ttf) format('truetype'); +} + +@font-face { + font-family: 'Major Mono Display'; + font-weight: 400; + font-style: normal; + font-display: swap; + src: local('Rubik'), url(/fonts/major-mono-display/MajorMonoDisplay-Regular.ttf) format('truetype'); +} diff --git a/docs/.vitepress/theme/assets/css/home.css b/docs/.vitepress/theme/assets/css/home.css new file mode 100644 index 00000000..10be86ba --- /dev/null +++ b/docs/.vitepress/theme/assets/css/home.css @@ -0,0 +1,166 @@ +.VPHome h1 { + @apply font-heading text-off-white; +} + +.VPHome h2, +.VPHome h3 { + @apply font-brand text-off-white; +} + +.VPHome h3 { + @apply text-gold; +} + +.VPHome h4 { + @apply font-heading text-salmon; +} + +h1 { + @apply font-extralight; + + /* Fonts/Mobile/H1 */ + font-size: 48px; + line-height: 54px; /* 112.5% */ + letter-spacing: -0.6px; + + /* Fonts/Tablet/H1 */ + @media screen(md) { + font-size: 72px; + line-height: 82px; /* 113.889% */ + letter-spacing: -0.6px; + } + + @media screen(xl) { + /* Fonts/Desktop/H1 */ + font-size: 96px; + line-height: 122px; /* 127.083% */ + letter-spacing: -0.6px; + } +} + +h2 { + @apply font-normal; + + /* Fonts/Mobile/H2 */ + font-size: 30px; + line-height: 37px; /* 123.333% */ + letter-spacing: -0.6px; + + @media screen(md) { + /* Fonts/Tablet/H2 */ + font-size: 40px; + line-height: 54px; /* 135% */ + letter-spacing: -0.6px; + } + + @media screen(xl) { + /* Fonts/Desktop/H2 */ + font-size: 48px; + line-height: 68px; /* 141.667% */ + letter-spacing: -0.6px; + } +} + +h3 { + @apply font-normal; + + /* Fonts/Mobile/H3 */ + font-size: 28px; + font-weight: 400; + line-height: 38px; /* 135.714% */ + letter-spacing: -0.6px; + + @media screen(md) { + /* Fonts/Tablet/H3 */ + font-size: 32px; + font-weight: 400; + line-height: 38px; /* 118.75% */ + letter-spacing: -0.6px; + } + + @media screen(xl) { + /* Fonts/Desktop/H3 */ + font-size: 38px; + font-weight: 400; + line-height: 46px; /* 121.053% */ + letter-spacing: -0.6px; + } +} + +h4 { + @apply font-normal; + + /* Fonts/Mobile/H4 */ + font-size: 24px; + font-weight: 275; + line-height: 30px; /* 125% */ + letter-spacing: -0.6px; + + @media screen(md) { + /* Fonts/Tablet/H4 */ + font-size: 28px; + font-weight: 275; + line-height: 34px; /* 121.429% */ + letter-spacing: -0.6px; + } + + @media screen(xl) { + /* Fonts/Desktop/H4 */ + font-size: 32px; + font-weight: 275; + line-height: 48px; /* 150% */ + letter-spacing: -0.6px; + } +} + +.p1 { + @apply text-off-white; + + /* Fonts/Mobile/P1 */ + font-size: 18px; + font-style: normal; + font-weight: 400; + line-height: 28px; /* 155.556% */ + + @media screen(md) { + /* Fonts/Tablet/P1 */ + font-size: 22px; + font-style: normal; + font-weight: 400; + line-height: 32px; /* 145.455% */ + } + + @media screen(xl) { + /* Fonts/Desktop/P1 */ + font-size: 24px; + font-style: normal; + font-weight: 400; + line-height: 36px; /* 150% */ + } +} + +.p2 { + @apply text-off-white; + + /* Fonts/Mobile/P2 */ + font-size: 18px; + font-style: normal; + font-weight: 400; + line-height: 24px; /* 133.333% */ + + @media screen(md) { + /* Fonts/Tablet/P2 */ + font-size: 17px; + font-style: normal; + font-weight: 400; + line-height: 28px; /* 164.706% */ + } + + @media screen(xl) { + /* Fonts/Desktop/P2 */ + font-size: 20px; + font-style: normal; + font-weight: 400; + line-height: 32px; /* 160% */ + } +} diff --git a/docs/.vitepress/theme/assets/css/tailwind.css b/docs/.vitepress/theme/assets/css/tailwind.css new file mode 100644 index 00000000..3a512428 --- /dev/null +++ b/docs/.vitepress/theme/assets/css/tailwind.css @@ -0,0 +1,69 @@ +@tailwind base; + +@tailwind components; + +@tailwind utilities; + +@layer base { + html { + @apply font-sans; + } + + h1, + h2, + h3, + h4 { + @apply font-heading; + } +} + +@layer components { + .kit-button { + @apply inline-block appearance-none; + @apply px-6 py-4 relative; + @apply text-gold font-bold uppercase; + @apply hocus:text-white; + + border: 2px solid var(--color-gold); + font-size: 14px; + line-height: normal; + letter-spacing: 2.1px; + transition: background 150ms, color 150ms; + background-size: 100% 100%; + background-repeat: no-repeat; + background-image: linear-gradient(135deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 10%, rgba(255,255,255,0) 10.1%, rgba(255,255,255,0) 100%); + + @media screen(md) { + font-size: 16px; + letter-spacing: 2.4px; + } + + @media screen(xl) { + font-size: 18px; + letter-spacing: 2.7px; + } + + &:hover { + background-color: var(--color-gold); + background-size: 0% 0%; + } + } + + .kit-button.kit-button-cornflower { + @apply text-cornflower; + @apply hocus:text-white hocus:bg-cornflower; + border: 2px solid var(--color-cornflower); + } + + .kit-cards { + @apply grid grid-cols-1 md:grid-cols-3 gap-2; + + > .kit-card { + @apply border border-gray-02 p-8 xl:p-10; + } + + .kit-card h4 { + @apply text-cornflower !font-bold; + } + } +} diff --git a/docs/.vitepress/theme/feed.data.ts b/docs/.vitepress/theme/blog.data.ts similarity index 79% rename from docs/.vitepress/theme/feed.data.ts rename to docs/.vitepress/theme/blog.data.ts index 469aa5bd..7529bf74 100644 --- a/docs/.vitepress/theme/feed.data.ts +++ b/docs/.vitepress/theme/blog.data.ts @@ -9,16 +9,17 @@ export type Post = { site_name: string, image: string, icon: string, - url: string + url: string, + tags: string[] } const postsUrls: string[] = require('./posts.json') export default { async load() { - const posts = postsUrls.map(async (url): Post[] => { + const posts = postsUrls.map(async (post): Post[] => { try { - const html = await (await fetch(url)).text() + const html = await (await fetch(post.url)).text() // Using cheerio to parse the html into actual dom nodes that we can interact. const $ = cheerio.load(html) @@ -27,7 +28,7 @@ export default { const getMetaTag = (name) => ( $(`meta[name=${name}]`).attr("content") || $(`meta[property="og:${name}"]`).attr("content") || - $(`meta[property="twitter${name}"]`).attr("content") + $(`meta[property="twitter${name}"]`).attr("content") || post[name] ) const title = getMetaTag('title') || $('title').text() @@ -36,10 +37,12 @@ export default { const image = getMetaTag('image') || $('meta[property="og:image:url"]').attr('content') const icon = $('link[rel="icon"]').attr('href') || $('link[rel="shortcut icon"]').attr('href') || $('link[rel="alternate icon"]').attr('href') const author = getMetaTag('author') - const published_time = $('meta[property="article:published_time"]').attr('content') + const published_time = $('meta[property="article:published_time"]').attr('content') || post.published_time + const tags = post.tags || [] return { - url, + url: post.url, + tags, title, description, published_time, diff --git a/docs/.vitepress/theme/components/Feed.vue b/docs/.vitepress/theme/components/Blog.vue similarity index 80% rename from docs/.vitepress/theme/components/Feed.vue rename to docs/.vitepress/theme/components/Blog.vue index c8db80df..3a4debfa 100644 --- a/docs/.vitepress/theme/components/Feed.vue +++ b/docs/.vitepress/theme/components/Blog.vue @@ -1,5 +1,5 @@ @@ -24,7 +22,7 @@ function formatDate(raw: string) {

{{ post.title }}

- + @@ -73,3 +71,4 @@ time { color: #999; } +@theme/blog.data diff --git a/docs/.vitepress/theme/components/Footer.vue b/docs/.vitepress/theme/components/Footer.vue new file mode 100644 index 00000000..58f09b9d --- /dev/null +++ b/docs/.vitepress/theme/components/Footer.vue @@ -0,0 +1,86 @@ + + + diff --git a/docs/.vitepress/theme/components/Home.vue b/docs/.vitepress/theme/components/Home.vue new file mode 100644 index 00000000..9b3d3422 --- /dev/null +++ b/docs/.vitepress/theme/components/Home.vue @@ -0,0 +1,168 @@ + + + + diff --git a/docs/.vitepress/theme/components/PlatformSnippet.vue b/docs/.vitepress/theme/components/PlatformSnippet.vue index 65acb361..901e9ed1 100644 --- a/docs/.vitepress/theme/components/PlatformSnippet.vue +++ b/docs/.vitepress/theme/components/PlatformSnippet.vue @@ -30,7 +30,7 @@ const openPlatformSelector = () => {

This snippet is for {{ selectedPlatform }}. -

@@ -51,11 +51,6 @@ const openPlatformSelector = () => { color: var(--vp-c-brand-1); } -.switch-info-text button:hover, -.switch-info-text button:focus { - color: var(--vp-c-brand-2); -} - .capitalize { text-transform: capitalize; } diff --git a/docs/.vitepress/theme/index.ts b/docs/.vitepress/theme/index.ts index 28255f80..1572400e 100644 --- a/docs/.vitepress/theme/index.ts +++ b/docs/.vitepress/theme/index.ts @@ -5,6 +5,8 @@ import DefaultTheme from 'vitepress/theme' import PlatformSelect from './components/PlatformSelect.vue' import PlatformSnippet from './components/PlatformSnippet.vue' import Layout from './Layout.vue' +import './assets/css/fonts.css' +import './assets/css/tailwind.css' import './style.css' const isPlatformModalOpen = ref(false) diff --git a/docs/.vitepress/theme/posts.json b/docs/.vitepress/theme/posts.json index 9bc8e107..7ba79464 100644 --- a/docs/.vitepress/theme/posts.json +++ b/docs/.vitepress/theme/posts.json @@ -1,4 +1,7 @@ [ - "https://blog.vuejs.org/posts/vue-3-4", - "https://wordpress.com/blog/2024/02/22/wordpress-themes-february-24/" + { + "url": "https://www.gorkem-ercan.com/p/do-data-scientists-really-like-git", + "tags": ["thought leadership"], + "published_time": "2024-02-27" + } ] diff --git a/docs/.vitepress/theme/style.css b/docs/.vitepress/theme/style.css index 4c514be3..b0917e83 100644 --- a/docs/.vitepress/theme/style.css +++ b/docs/.vitepress/theme/style.css @@ -49,9 +49,9 @@ --vp-c-default-3: var(--vp-c-gray-3); --vp-c-default-soft: var(--vp-c-gray-soft); - --vp-c-brand-1: #3febe0; - --vp-c-brand-2: #34C0B7; - --vp-c-brand-3: #065550; + --vp-c-brand-1: var(--color-cornflower); + --vp-c-brand-2: var(--color-cornflower); + --vp-c-brand-3: var(--color-cornflower); --vp-c-brand-soft: var(--vp-c-indigo-soft); --vp-c-tip-1: var(--vp-c-brand-1); @@ -69,6 +69,8 @@ --vp-c-danger-3: var(--vp-c-red-3); --vp-c-danger-soft: var(--vp-c-red-soft); + --vp-c-bg: var(--color-night); + /* Custom jozu branding colors */ --color-elevation-05: rgba(70, 70, 70, 0.14); } @@ -77,6 +79,11 @@ --vp-c-text-1: #ECECEC; } +/* Hide the logo text */ +.VPNavBarTitle .title > span { + display: none; +} + /** * Component: Button * -------------------------------------------------------------------------- */ @@ -96,7 +103,7 @@ /** * Component: Home * -------------------------------------------------------------------------- */ - +/* :root { --vp-home-hero-name-color: transparent; --vp-home-hero-name-background: -webkit-linear-gradient( @@ -123,7 +130,7 @@ :root { --vp-home-hero-image-filter: blur(68px); } -} +} */ /** * Component: Custom Block @@ -144,11 +151,11 @@ --docsearch-primary-color: var(--vp-c-brand-1) !important; } -.dark h1, +/* .dark h1, .dark h2, .dark h3 { color: #FFF; -} +} */ *:focus-visible { outline-color: var(--vp-c-brand-1); diff --git a/docs/README.md b/docs/README.md index 19d8805e..5152c830 100644 --- a/docs/README.md +++ b/docs/README.md @@ -49,6 +49,23 @@ For local development, [pnpm](https://pnpm.io/) is preferred as package manager. The documentation should now be available at `http://localhost:5173`. +### Building and previewing + +To build the docs (from .md to .html): + +```sh +pnpm docs:build +``` + +And to serve the builds files (preview): + +```sh +pnpm docs:preview +``` + +This will serve the just built files in port `4173`, so you go to `http://localhost:4173` to see exactly what will be served once built and deployed. + + ## Contributing Guidelines We welcome contributions from the community to help improve our project and documentation. Please read our [Guide to Contributing](../CONTRIBUTING.md) and follow these guidelines: diff --git a/docs/package.json b/docs/package.json index 8320072b..1814ebf5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -3,6 +3,9 @@ "vue": "^3.4" }, "devDependencies": { + "autoprefixer": "^10.4.17", + "postcss": "^8.4.35", + "tailwindcss": "^3.4.1", "vitepress": "1.0.0-rc.42", "vue": "^3.4.18" }, diff --git a/docs/pnpm-lock.yaml b/docs/pnpm-lock.yaml index 0a28ae88..57b3d4fd 100644 --- a/docs/pnpm-lock.yaml +++ b/docs/pnpm-lock.yaml @@ -13,9 +13,18 @@ dependencies: version: 1.0.0-rc.12 devDependencies: + autoprefixer: + specifier: ^10.4.17 + version: 10.4.17(postcss@8.4.35) + postcss: + specifier: ^8.4.35 + version: 8.4.35 + tailwindcss: + specifier: ^3.4.1 + version: 3.4.1 vitepress: specifier: 1.0.0-rc.42 - version: 1.0.0-rc.42(@algolia/client-search@4.22.1)(search-insights@2.13.0) + version: 1.0.0-rc.42(@algolia/client-search@4.22.1)(postcss@8.4.35)(search-insights@2.13.0) vue: specifier: ^3.4.18 version: 3.4.18 @@ -156,6 +165,11 @@ packages: '@algolia/requester-common': 4.22.1 dev: true + /@alloc/quick-lru@5.2.0: + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + dev: true + /@babel/helper-string-parser@7.23.4: resolution: {integrity: sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==} engines: {node: '>=6.9.0'} @@ -429,9 +443,75 @@ packages: dev: true optional: true + /@isaacs/cliui@8.0.2: + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} + dependencies: + string-width: 5.1.2 + string-width-cjs: /string-width@4.2.3 + strip-ansi: 7.1.0 + strip-ansi-cjs: /strip-ansi@6.0.1 + wrap-ansi: 8.1.0 + wrap-ansi-cjs: /wrap-ansi@7.0.0 + dev: true + + /@jridgewell/gen-mapping@0.3.4: + resolution: {integrity: sha512-Oud2QPM5dHviZNn4y/WhhYKSXksv+1xLEIsNrAbGcFzUN3ubqWRFT5gwPchNc5NuzILOU4tPBDTZ4VwhL8Y7cw==} + engines: {node: '>=6.0.0'} + dependencies: + '@jridgewell/set-array': 1.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + '@jridgewell/trace-mapping': 0.3.23 + dev: true + + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} + dev: true + + /@jridgewell/set-array@1.1.2: + resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==} + engines: {node: '>=6.0.0'} + dev: true + /@jridgewell/sourcemap-codec@1.4.15: resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + /@jridgewell/trace-mapping@0.3.23: + resolution: {integrity: sha512-9/4foRoUKp8s96tSkh8DlAAc5A0Ty8vLXld+l9gjKKY6ckwI8G15f0hskGmuLZu78ZlGa1vtsfOa+lnB4vG6Jg==} + dependencies: + '@jridgewell/resolve-uri': 3.1.2 + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + + /@nodelib/fs.scandir@2.1.5: + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + dev: true + + /@nodelib/fs.stat@2.0.5: + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + dev: true + + /@nodelib/fs.walk@1.2.8: + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.17.1 + dev: true + + /@pkgjs/parseargs@0.11.0: + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} + requiresBuild: true + dev: true + optional: true + /@rollup/rollup-android-arm-eabi@4.9.6: resolution: {integrity: sha512-MVNXSSYN6QXOulbHpLMKYi60ppyO13W9my1qogeiAqtjb2yR4LSmfU2+POvDkLzhjYLXz9Rf9+9a3zFHW1Lecg==} cpu: [arm] @@ -761,10 +841,106 @@ packages: '@algolia/transporter': 4.22.1 dev: true + /ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + dev: true + + /ansi-regex@6.0.1: + resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + engines: {node: '>=12'} + dev: true + + /ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + dependencies: + color-convert: 2.0.1 + dev: true + + /ansi-styles@6.2.1: + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} + dev: true + + /any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + dev: true + + /anymatch@3.1.3: + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} + dependencies: + normalize-path: 3.0.0 + picomatch: 2.3.1 + dev: true + + /arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + + /autoprefixer@10.4.17(postcss@8.4.35): + resolution: {integrity: sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.23.0 + caniuse-lite: 1.0.30001589 + fraction.js: 4.3.7 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + dev: true + + /balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + dev: true + + /binary-extensions@2.2.0: + resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + engines: {node: '>=8'} + dev: true + /boolbase@1.0.0: resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} dev: false + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} + dependencies: + balanced-match: 1.0.2 + dev: true + + /braces@3.0.2: + resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} + engines: {node: '>=8'} + dependencies: + fill-range: 7.0.1 + dev: true + + /browserslist@4.23.0: + resolution: {integrity: sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001589 + electron-to-chromium: 1.4.681 + node-releases: 2.0.14 + update-browserslist-db: 1.0.13(browserslist@4.23.0) + dev: true + + /camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + + /caniuse-lite@1.0.30001589: + resolution: {integrity: sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==} + dev: true + /cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: @@ -789,6 +965,46 @@ packages: parse5-htmlparser2-tree-adapter: 7.0.0 dev: false + /chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + dependencies: + anymatch: 3.1.3 + braces: 3.0.2 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + dev: true + + /color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + dependencies: + color-name: 1.1.4 + dev: true + + /color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + dev: true + + /commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + dev: true + + /cross-spawn@7.0.3: + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + dev: true + /css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: @@ -804,9 +1020,23 @@ packages: engines: {node: '>= 6'} dev: false + /cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + dev: true + /csstype@3.1.3: resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + /didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + + /dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /dom-serializer@2.0.0: resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} dependencies: @@ -834,6 +1064,22 @@ packages: domhandler: 5.0.3 dev: false + /eastasianwidth@0.2.0: + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + dev: true + + /electron-to-chromium@1.4.681: + resolution: {integrity: sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==} + dev: true + + /emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + dev: true + + /emoji-regex@9.2.2: + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + dev: true + /entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} engines: {node: '>=0.12'} @@ -869,15 +1115,56 @@ packages: '@esbuild/win32-x64': 0.19.12 dev: true + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} + engines: {node: '>=6'} + dev: true + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + dev: true + + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + dependencies: + reusify: 1.0.4 + dev: true + + /fill-range@7.0.1: + resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} + engines: {node: '>=8'} + dependencies: + to-regex-range: 5.0.1 + dev: true + /focus-trap@7.5.4: resolution: {integrity: sha512-N7kHdlgsO/v+iD/dMoJKtsSqs5Dz/dXZVebRgJw23LDk+jMi/974zyiOYDziY2JPp8xivq9BmUGwIJMiuSBi7w==} dependencies: tabbable: 6.2.0 dev: true + /foreground-child@3.1.1: + resolution: {integrity: sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==} + engines: {node: '>=14'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 4.1.0 + dev: true + + /fraction.js@4.3.7: + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + dev: true + /fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -886,6 +1173,43 @@ packages: dev: true optional: true + /function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + dev: true + + /glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + dependencies: + is-glob: 4.0.3 + dev: true + + /glob@10.3.10: + resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + foreground-child: 3.1.1 + jackspeak: 2.3.6 + minimatch: 9.0.3 + minipass: 7.0.4 + path-scurry: 1.10.1 + dev: true + + /hasown@2.0.1: + resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + engines: {node: '>= 0.4'} + dependencies: + function-bind: 1.1.2 + dev: true + /hookable@5.5.3: resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} dev: true @@ -899,6 +1223,78 @@ packages: entities: 4.5.0 dev: false + /is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + dependencies: + binary-extensions: 2.2.0 + dev: true + + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + dependencies: + hasown: 2.0.1 + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + dev: true + + /is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + dev: true + + /is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + dependencies: + is-extglob: 2.1.1 + dev: true + + /is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + dev: true + + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + dev: true + + /jackspeak@2.3.6: + resolution: {integrity: sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==} + engines: {node: '>=14'} + dependencies: + '@isaacs/cliui': 8.0.2 + optionalDependencies: + '@pkgjs/parseargs': 0.11.0 + dev: true + + /jiti@1.21.0: + resolution: {integrity: sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==} + hasBin: true + dev: true + + /lilconfig@2.1.0: + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} + dev: true + + /lilconfig@3.1.1: + resolution: {integrity: sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==} + engines: {node: '>=14'} + dev: true + + /lines-and-columns@1.2.4: + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + dev: true + + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + /magic-string@0.30.7: resolution: {integrity: sha512-8vBuFF/I/+OSLRmdf2wwFCJCz+nSn0m6DPvGH1fS/KiQoSaR+sETbov0eIk9KhEKy8CYqIkIAnbohxT/4H0kuA==} engines: {node: '>=12'} @@ -909,6 +1305,31 @@ packages: resolution: {integrity: sha512-1I+1qpDt4idfgLQG+BNWmrqku+7/2bi5nLf4YwF8y8zXvmfiTBY3PV3ZibfrjBueCByROpuBjLLFCajqkgYoLQ==} dev: true + /merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + dev: true + + /micromatch@4.0.5: + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} + dependencies: + braces: 3.0.2 + picomatch: 2.3.1 + dev: true + + /minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} + dev: true + /minisearch@6.3.0: resolution: {integrity: sha512-ihFnidEeU8iXzcVHy74dhkxh/dn8Dc08ERl0xwoMMGqp4+LvRSCgicb+zGqWthVokQKvCSxITlh3P08OzdTYCQ==} dev: true @@ -917,17 +1338,49 @@ packages: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} dev: true + /mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + dev: true + /nanoid@3.3.7: resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + /node-releases@2.0.14: + resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + dev: true + + /normalize-path@3.0.0: + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} + dev: true + + /normalize-range@0.1.2: + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} + dev: true + /nth-check@2.1.1: resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} dependencies: boolbase: 1.0.0 dev: false + /object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + dev: true + + /object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /parse5-htmlparser2-tree-adapter@7.0.0: resolution: {integrity: sha512-B77tOZrqqfUfnVcOrUvfdLbz4pu4RopLD/4vmu3HUPswwTA8OH0EMW9BlWR2B0RCoiZRAHEUu7IxeP1Pd1UU+g==} dependencies: @@ -941,6 +1394,23 @@ packages: entities: 4.5.0 dev: false + /path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + dev: true + + /path-parse@1.0.7: + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + dev: true + + /path-scurry@1.10.1: + resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 + dev: true + /perfect-debounce@1.0.0: resolution: {integrity: sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==} dev: true @@ -948,6 +1418,82 @@ packages: /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} + /picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + dev: true + + /pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + dev: true + + /pirates@4.0.6: + resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} + engines: {node: '>= 6'} + dev: true + + /postcss-import@15.1.0(postcss@8.4.35): + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.35 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.8 + dev: true + + /postcss-js@4.0.1(postcss@8.4.35): + resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.35 + dev: true + + /postcss-load-config@4.0.2(postcss@8.4.35): + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 3.1.1 + postcss: 8.4.35 + yaml: 2.4.0 + dev: true + + /postcss-nested@6.0.1(postcss@8.4.35): + resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.35 + postcss-selector-parser: 6.0.15 + dev: true + + /postcss-selector-parser@6.0.15: + resolution: {integrity: sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==} + engines: {node: '>=4'} + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + dev: true + + /postcss-value-parser@4.2.0: + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + dev: true + /postcss@8.4.35: resolution: {integrity: sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==} engines: {node: ^10 || ^12 || >=14} @@ -960,6 +1506,37 @@ packages: resolution: {integrity: sha512-dwaX5jAh0Ga8uENBX1hSOujmKWgx9RtL80KaKUFLc6jb4vCEAc3EeZ0rnQO/FO4VgjfPMfoLFWnNG8bHuZ9VLw==} dev: true + /queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + dev: true + + /read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + + /readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + dependencies: + picomatch: 2.3.1 + dev: true + + /resolve@1.22.8: + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + hasBin: true + dependencies: + is-core-module: 2.13.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /reusify@1.0.4: + resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + dev: true + /rfdc@1.3.1: resolution: {integrity: sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==} dev: true @@ -987,16 +1564,39 @@ packages: fsevents: 2.3.3 dev: true + /run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + dependencies: + queue-microtask: 1.2.3 + dev: true + /search-insights@2.13.0: resolution: {integrity: sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==} dev: true + /shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + dependencies: + shebang-regex: 3.0.0 + dev: true + + /shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + dev: true + /shiki@1.1.0: resolution: {integrity: sha512-esLKFNE2wwgAU/Ze4u/7qZRi9CwDfPq/4PQNFf7TiAN6+pbgTmibOxBS0eu1xvSW7autXP/g1bOGRGkAQK233w==} dependencies: '@shikijs/core': 1.1.0 dev: true + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} + dev: true + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} @@ -1006,14 +1606,135 @@ packages: engines: {node: '>=0.10.0'} dev: true + /string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + dev: true + + /string-width@5.1.2: + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} + dependencies: + eastasianwidth: 0.2.0 + emoji-regex: 9.2.2 + strip-ansi: 7.1.0 + dev: true + + /strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + dependencies: + ansi-regex: 5.0.1 + dev: true + + /strip-ansi@7.1.0: + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} + dependencies: + ansi-regex: 6.0.1 + dev: true + + /sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + dependencies: + '@jridgewell/gen-mapping': 0.3.4 + commander: 4.1.1 + glob: 10.3.10 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.6 + ts-interface-checker: 0.1.13 + dev: true + + /supports-preserve-symlinks-flag@1.0.0: + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} + dev: true + /tabbable@6.2.0: resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} dev: true + /tailwindcss@3.4.1: + resolution: {integrity: sha512-qAYmXRfk3ENzuPBakNK0SRrUDipP8NQnEY6772uDhflcQz5EhRdD7JNZxyrFHVQNCwULPBn6FNPp9brpO7ctcA==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.2 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.0 + 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.35 + postcss-import: 15.1.0(postcss@8.4.35) + postcss-js: 4.0.1(postcss@8.4.35) + postcss-load-config: 4.0.2(postcss@8.4.35) + postcss-nested: 6.0.1(postcss@8.4.35) + postcss-selector-parser: 6.0.15 + resolve: 1.22.8 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + dev: true + + /thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + dependencies: + thenify: 3.3.1 + dev: true + + /thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + dependencies: + any-promise: 1.3.0 + dev: true + /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} + /to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + dependencies: + is-number: 7.0.0 + dev: true + + /ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + dev: true + + /update-browserslist-db@1.0.13(browserslist@4.23.0): + resolution: {integrity: sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.23.0 + escalade: 3.1.2 + picocolors: 1.0.0 + dev: true + + /util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + dev: true + /vite@5.1.1: resolution: {integrity: sha512-wclpAgY3F1tR7t9LL5CcHC41YPkQIpKUGeIuT8MdNwNZr6OqOTLs7JX5vIHAtzqLWXts0T+GDrh9pN2arneKqg==} engines: {node: ^18.0.0 || >=20.0.0} @@ -1049,7 +1770,7 @@ packages: fsevents: 2.3.3 dev: true - /vitepress@1.0.0-rc.42(@algolia/client-search@4.22.1)(search-insights@2.13.0): + /vitepress@1.0.0-rc.42(@algolia/client-search@4.22.1)(postcss@8.4.35)(search-insights@2.13.0): resolution: {integrity: sha512-VeiVVXFblt/sjruFSJBNChMWwlztMrRMe8UXdNpf4e05mKtTYEY38MF5qoP90KxPTCfMQiKqwEGwXAGuOTK8HQ==} hasBin: true peerDependencies: @@ -1073,6 +1794,7 @@ packages: focus-trap: 7.5.4 mark.js: 8.11.1 minisearch: 6.3.0 + postcss: 8.4.35 shiki: 1.1.0 vite: 5.1.1 vue: 3.4.18 @@ -1131,3 +1853,35 @@ packages: '@vue/runtime-dom': 3.4.18 '@vue/server-renderer': 3.4.18(vue@3.4.18) '@vue/shared': 3.4.18 + + /which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + dependencies: + isexe: 2.0.0 + dev: true + + /wrap-ansi@7.0.0: + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} + dependencies: + ansi-styles: 4.3.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + dev: true + + /wrap-ansi@8.1.0: + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} + dependencies: + ansi-styles: 6.2.1 + string-width: 5.1.2 + strip-ansi: 7.1.0 + dev: true + + /yaml@2.4.0: + resolution: {integrity: sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==} + engines: {node: '>= 14'} + hasBin: true + dev: true diff --git a/docs/postcss.config.js b/docs/postcss.config.js new file mode 100644 index 00000000..cad62c39 --- /dev/null +++ b/docs/postcss.config.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: { + 'tailwindcss/nesting': {}, + tailwindcss: {}, + autoprefixer: {}, + } +} diff --git a/docs/src/blog.md b/docs/src/blog.md new file mode 100644 index 00000000..4074313c --- /dev/null +++ b/docs/src/blog.md @@ -0,0 +1,10 @@ +--- +layout: page +sidebar: false +--- + + + diff --git a/docs/src/feed.md b/docs/src/feed.md deleted file mode 100644 index c0fb7064..00000000 --- a/docs/src/feed.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -layout: page -sidebar: false ---- - - - diff --git a/docs/src/guides/index.md b/docs/src/guides/index.md deleted file mode 100644 index 6cbfa3d6..00000000 --- a/docs/src/guides/index.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Guides and Walkthroughs -sidebar: false -aside: false -footer: false -prev: false -next: false ---- - -# Guides - -Collection of code samples and walkthroughs for performing common tasks. - -Minus labore dicta quia ut ipsum. Sed error aspernatur repellendus rerum. Labore id asperiores dignissimos error totam. Est est cupiditate delectus quaerat aperiam optio voluptatem facere. - -Repellat eveniet rerum. At nobis accusamus. Assumenda exercitationem sunt. Aut ex exercitationem cupiditate assumenda voluptas quod. Eum earum beatae eveniet. Pariatur sed minus deleniti quia nam laboriosam accusantium aut. - -Et itaque quos ab quis quaerat sit et cupiditate. Ea rerum minus blanditiis et. Numquam impedit id aut est eum quis est perspiciatis quaerat. diff --git a/docs/src/index.md b/docs/src/index.md index 17d2017d..052f3781 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,29 +1,18 @@ --- -# https://vitepress.dev/reference/default-theme-home-page layout: home +--- -hero: - name: "KitOps" - text: "Documentation for the KitOps" - tagline: The simple and standard way to build, package, and manage AI / ML models for deploying anywhere. - actions: - - theme: brand - text: What exactly is KitOps? - link: /docs/overview - - theme: alt - text: Install - link: /docs/cli/installation - - theme: alt - text: Guides - link: /guides + -features: - - title: Simple - details: Create, share, and deploy to any infrastructure while maintaining traceability and provenance for the datasets, models, and applications. - - title: Open source - details: Open source CLI and packaging file that tracks models, datasets, parameters, configuration, and test results from a Jupyter Notebook to Production. - - title: More visible - details: Unified visibility and provenance across ML and App teams for datasets, models, and application dependencies. + ---- + diff --git a/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Bold.ttf b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Bold.ttf new file mode 100644 index 00000000..c72b4889 Binary files /dev/null and b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Bold.ttf differ diff --git a/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-BoldItalic.ttf b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-BoldItalic.ttf new file mode 100644 index 00000000..ff966b11 Binary files /dev/null and b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-BoldItalic.ttf differ diff --git a/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Italic.ttf b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Italic.ttf new file mode 100644 index 00000000..1cf113a0 Binary files /dev/null and b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Italic.ttf differ diff --git a/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Regular.ttf b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Regular.ttf new file mode 100644 index 00000000..23614a4d Binary files /dev/null and b/docs/src/public/fonts/atkinson-hyperlegible/AtkinsonHyperlegible-Regular.ttf differ diff --git a/docs/src/public/fonts/atkinson-hyperlegible/OFL.txt b/docs/src/public/fonts/atkinson-hyperlegible/OFL.txt new file mode 100644 index 00000000..8a983cae --- /dev/null +++ b/docs/src/public/fonts/atkinson-hyperlegible/OFL.txt @@ -0,0 +1,93 @@ +Copyright 2020 Braille Institute of America, Inc. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/docs/src/public/fonts/major-mono-display/MajorMonoDisplay-Regular.ttf b/docs/src/public/fonts/major-mono-display/MajorMonoDisplay-Regular.ttf new file mode 100644 index 00000000..bd42f441 Binary files /dev/null and b/docs/src/public/fonts/major-mono-display/MajorMonoDisplay-Regular.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-Black.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-Black.ttf new file mode 100644 index 00000000..e905106d Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-Black.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-Bold.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-Bold.ttf new file mode 100644 index 00000000..b3d8c34f Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-Bold.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-BoldItalic.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-BoldItalic.ttf new file mode 100644 index 00000000..8eaa375d Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-BoldItalic.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-ExtraLight.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-ExtraLight.ttf new file mode 100644 index 00000000..e45fdc99 Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-ExtraLight.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-ExtraLightItalic.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-ExtraLightItalic.ttf new file mode 100644 index 00000000..533c474a Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-ExtraLightItalic.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-Italic.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-Italic.ttf new file mode 100644 index 00000000..e28f69b4 Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-Italic.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-Light.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-Light.ttf new file mode 100644 index 00000000..fa9393d1 Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-Light.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-LightItalic.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-LightItalic.ttf new file mode 100644 index 00000000..e111a229 Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-LightItalic.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-Regular.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-Regular.ttf new file mode 100644 index 00000000..e0e2dc88 Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-Regular.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-SemiBold.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-SemiBold.ttf new file mode 100644 index 00000000..2a1a0bca Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-SemiBold.ttf differ diff --git a/docs/src/public/fonts/titillium-web/TitilliumWeb-SemiBoldItalic.ttf b/docs/src/public/fonts/titillium-web/TitilliumWeb-SemiBoldItalic.ttf new file mode 100644 index 00000000..f2184b10 Binary files /dev/null and b/docs/src/public/fonts/titillium-web/TitilliumWeb-SemiBoldItalic.ttf differ diff --git a/docs/src/public/images/cli-screenshot.png b/docs/src/public/images/cli-screenshot.png new file mode 100644 index 00000000..e7f99f5f Binary files /dev/null and b/docs/src/public/images/cli-screenshot.png differ diff --git a/docs/src/public/images/logos/docker.svg b/docs/src/public/images/logos/docker.svg new file mode 100644 index 00000000..37609331 --- /dev/null +++ b/docs/src/public/images/logos/docker.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/src/public/images/logos/github.svg b/docs/src/public/images/logos/github.svg new file mode 100644 index 00000000..428b6dcb --- /dev/null +++ b/docs/src/public/images/logos/github.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/src/public/images/logos/jupyter.svg b/docs/src/public/images/logos/jupyter.svg new file mode 100644 index 00000000..7d678f23 --- /dev/null +++ b/docs/src/public/images/logos/jupyter.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/src/public/images/logos/kubernetes.svg b/docs/src/public/images/logos/kubernetes.svg new file mode 100644 index 00000000..3206b50e --- /dev/null +++ b/docs/src/public/images/logos/kubernetes.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/src/public/images/logos/mlflow.svg b/docs/src/public/images/logos/mlflow.svg new file mode 100644 index 00000000..b6ddd07d --- /dev/null +++ b/docs/src/public/images/logos/mlflow.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/docs/src/public/images/logos/rest-api.svg b/docs/src/public/images/logos/rest-api.svg new file mode 100644 index 00000000..4c8a87ad --- /dev/null +++ b/docs/src/public/images/logos/rest-api.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/docs/src/public/logo.png b/docs/src/public/logo.png deleted file mode 100644 index ebf63845..00000000 Binary files a/docs/src/public/logo.png and /dev/null differ diff --git a/docs/src/public/logo.svg b/docs/src/public/logo.svg index b6ae69be..431d1581 100644 --- a/docs/src/public/logo.svg +++ b/docs/src/public/logo.svg @@ -1,7 +1,9 @@ - - - - - - - \ No newline at end of file + + + + + + + + + diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js new file mode 100644 index 00000000..9578c254 --- /dev/null +++ b/docs/tailwind.config.js @@ -0,0 +1,64 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + content: [ + './src/**/*.md', + './.vitepress/**/*.{ts,vue,css}' + ], + theme: { + extend: { + fontFamily: { + heading: ['Titillium Web', 'sans-serif'], + brand: ['Major Mono Display', 'sans-serif'], + sans: ['Atkinson Hyperlegible', 'sans-serif'] + }, + + colors: { + 'off-white': '#ECECEC', + gold: '#FFAF52', + night: '#121212', + salmon: '#FFA3AF', + cornflower: '#7A8CFF', + ash: '#BED8D4', + gray: { + '02': '#4D4D4F' + } + }, + + spacing: { + 22: '5.5rem' + } + }, + }, + plugins: [ + // Extract the colors to custom css variables for convenience with the theme config values + function({ addBase, theme }) { + function extractColorVars(colorObj, colorGroup = '') { + return Object.keys(colorObj).reduce((vars, colorKey) => { + const value = colorObj[colorKey]; + + const newVars = + typeof value === 'string' + ? { [`--color${colorGroup}-${colorKey}`]: value } + : extractColorVars(value, `-${colorKey}`); + + return { ...vars, ...newVars }; + }, {}); + } + + addBase({ + ':root': extractColorVars(theme('colors')), + }); + }, + + // hocus variant = hover OR focus + function({ addVariant }) { + addVariant('hocus', ['&:hover', '&:focus']) + }, + + // xs: media breakpoint for mobiles from 0 to `screens.sm` + function ({ addVariant }) { + addVariant('xs', "@media screen and (max-width: theme('screens.sm'))") + }, + ], +} +