diff --git a/docs/docs-next/docs/how-to/asset-management.md b/docs/docs-next/docs/how-to/asset-management.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/docs/docs-next/docs/how-to/data-movement-transformation.md b/docs/docs-next/docs/how-to/data-movement-transformation.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/docs/docs-next/docs/intro.md b/docs/docs-next/docs/intro.md index ba56f356dfd3a..ee9a9adebd7bd 100644 --- a/docs/docs-next/docs/intro.md +++ b/docs/docs-next/docs/intro.md @@ -1,6 +1,5 @@ --- slug: / -sidebar_position: 1 --- # Tutorial Intro diff --git a/docs/docs-next/docs/tutorial-basics/_category_.json b/docs/docs-next/docs/tutorial-basics/_category_.json deleted file mode 100644 index 2e6db55b1eb61..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/_category_.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "label": "Tutorial - Basics", - "position": 2, - "link": { - "type": "generated-index", - "description": "5 minutes to learn the most important Docusaurus concepts." - } -} diff --git a/docs/docs-next/docs/tutorial-basics/congratulations.md b/docs/docs-next/docs/tutorial-basics/congratulations.md deleted file mode 100644 index 04771a00b72f8..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/congratulations.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -sidebar_position: 6 ---- - -# Congratulations! - -You have just learned the **basics of Docusaurus** and made some changes to the **initial template**. - -Docusaurus has **much more to offer**! - -Have **5 more minutes**? Take a look at **[versioning](../tutorial-extras/manage-docs-versions.md)** and **[i18n](../tutorial-extras/translate-your-site.md)**. - -Anything **unclear** or **buggy** in this tutorial? [Please report it!](https://github.com/facebook/docusaurus/discussions/4610) - -## What's next? - -- Read the [official documentation](https://docusaurus.io/) -- Modify your site configuration with [`docusaurus.config.js`](https://docusaurus.io/docs/api/docusaurus-config) -- Add navbar and footer items with [`themeConfig`](https://docusaurus.io/docs/api/themes/configuration) -- Add a custom [Design and Layout](https://docusaurus.io/docs/styling-layout) -- Add a [search bar](https://docusaurus.io/docs/search) -- Find inspirations in the [Docusaurus showcase](https://docusaurus.io/showcase) -- Get involved in the [Docusaurus Community](https://docusaurus.io/community/support) diff --git a/docs/docs-next/docs/tutorial-basics/create-a-blog-post.md b/docs/docs-next/docs/tutorial-basics/create-a-blog-post.md deleted file mode 100644 index 550ae17ee1a23..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/create-a-blog-post.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -sidebar_position: 3 ---- - -# Create a Blog Post - -Docusaurus creates a **page for each blog post**, but also a **blog index page**, a **tag system**, an **RSS** feed... - -## Create your first Post - -Create a file at `blog/2021-02-28-greetings.md`: - -```md title="blog/2021-02-28-greetings.md" ---- -slug: greetings -title: Greetings! -authors: - - name: Joel Marcey - title: Co-creator of Docusaurus 1 - url: https://github.com/JoelMarcey - image_url: https://github.com/JoelMarcey.png - - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png -tags: [greetings] ---- - -Congratulations, you have made your first post! - -Feel free to play around and edit this post as much as you like. -``` - -A new blog post is now available at [http://localhost:3000/blog/greetings](http://localhost:3000/blog/greetings). diff --git a/docs/docs-next/docs/tutorial-basics/create-a-document.md b/docs/docs-next/docs/tutorial-basics/create-a-document.md deleted file mode 100644 index 5638bb63f47f3..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/create-a-document.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Create a Document - -Documents are **groups of pages** connected through: - -- a **sidebar** -- **previous/next navigation** -- **versioning** - -## Create your first Doc - -Create a Markdown file at `docs/hello.md`: - -```md title="docs/hello.md" -# Hello - -This is my **first Docusaurus document**! -``` - -A new document is now available at [http://localhost:3000/docs/hello](http://localhost:3000/docs/hello). - -## Configure the Sidebar - -Docusaurus automatically **creates a sidebar** from the `docs` folder. - -Add metadata to customize the sidebar label and position: - -```md title="docs/hello.md" {1-4} ---- -sidebar_label: "Hi!" -sidebar_position: 3 ---- - -# Hello - -This is my **first Docusaurus document**! -``` - -It is also possible to create your sidebar explicitly in `sidebars.js`: - -```js title="sidebars.js" -export default { - tutorialSidebar: [ - "intro", - // highlight-next-line - "hello", - { - type: "category", - label: "Tutorial", - items: ["tutorial-basics/create-a-document"], - }, - ], -}; -``` diff --git a/docs/docs-next/docs/tutorial-basics/create-a-page.md b/docs/docs-next/docs/tutorial-basics/create-a-page.md deleted file mode 100644 index a2cb8eda411d0..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/create-a-page.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Create a Page - -Add **Markdown or React** files to `src/pages` to create a **standalone page**: - -- `src/pages/index.js` → `localhost:3000/` -- `src/pages/foo.md` → `localhost:3000/foo` -- `src/pages/foo/bar.js` → `localhost:3000/foo/bar` - -## Create your first React Page - -Create a file at `src/pages/my-react-page.js`: - -```jsx title="src/pages/my-react-page.js" -import React from "react"; -import Layout from "@theme/Layout"; - -export default function MyReactPage() { - return ( - -

My React page

-

This is a React page

-
- ); -} -``` - -A new page is now available at [http://localhost:3000/my-react-page](http://localhost:3000/my-react-page). - -## Create your first Markdown Page - -Create a file at `src/pages/my-markdown-page.md`: - -```mdx title="src/pages/my-markdown-page.md" -# My Markdown page - -This is a Markdown page -``` - -A new page is now available at [http://localhost:3000/my-markdown-page](http://localhost:3000/my-markdown-page). diff --git a/docs/docs-next/docs/tutorial-basics/deploy-your-site.md b/docs/docs-next/docs/tutorial-basics/deploy-your-site.md deleted file mode 100644 index 1c50ee063ef41..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/deploy-your-site.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -sidebar_position: 5 ---- - -# Deploy your site - -Docusaurus is a **static-site-generator** (also called **[Jamstack](https://jamstack.org/)**). - -It builds your site as simple **static HTML, JavaScript and CSS files**. - -## Build your site - -Build your site **for production**: - -```bash -npm run build -``` - -The static files are generated in the `build` folder. - -## Deploy your site - -Test your production build locally: - -```bash -npm run serve -``` - -The `build` folder is now served at [http://localhost:3000/](http://localhost:3000/). - -You can now deploy the `build` folder **almost anywhere** easily, **for free** or very small cost (read the **[Deployment Guide](https://docusaurus.io/docs/deployment)**). diff --git a/docs/docs-next/docs/tutorial-basics/markdown-features.mdx b/docs/docs-next/docs/tutorial-basics/markdown-features.mdx deleted file mode 100644 index 0c5902858d912..0000000000000 --- a/docs/docs-next/docs/tutorial-basics/markdown-features.mdx +++ /dev/null @@ -1,153 +0,0 @@ ---- -sidebar_position: 4 ---- - -# Markdown Features - -Docusaurus supports **[Markdown](https://daringfireball.net/projects/markdown/syntax)** and a few **additional features**. - -## Front Matter - -Markdown documents have metadata at the top called [Front Matter](https://jekyllrb.com/docs/front-matter/): - -```text title="my-doc.md" -// highlight-start ---- -id: my-doc-id -title: My document title -description: My document description -slug: /my-custom-url ---- -// highlight-end - -## Markdown heading - -Markdown text with [links](./hello.md) -``` - -## Links - -Regular Markdown links are supported, using url paths or relative file paths. - -```md -Let's see how to [Create a page](/create-a-page). -``` - -```md -Let's see how to [Create a page](./create-a-page.md). -``` - -**Result:** Let's see how to [Create a page](./create-a-page.md). - -## Images - -Regular Markdown images are supported. - -You can use absolute paths to reference images in the static directory (`static/img/docusaurus.png`): - -```md -![Docusaurus logo](/img/docusaurus.png) -``` - -![Docusaurus logo](/img/docusaurus.png) - -You can reference images relative to the current file as well. This is particularly useful to colocate images close to the Markdown files using them: - -```md -![Docusaurus logo](./img/docusaurus.png) -``` - -## Code Blocks - -Markdown code blocks are supported with Syntax highlighting. - -````md -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` -```` - -```jsx title="src/components/HelloDocusaurus.js" -function HelloDocusaurus() { - return

Hello, Docusaurus!

; -} -``` - -## Admonitions - -Docusaurus has a special syntax to create admonitions and callouts: - -```md -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: -``` - -:::tip My tip - -Use this awesome feature option - -::: - -:::danger Take care - -This action is dangerous - -::: - -## MDX and React Components - -[MDX](https://mdxjs.com/) can make your documentation more **interactive** and allows using any **React components inside Markdown**: - -```jsx -export const Highlight = ({children, color}) => ( - { - alert(`You clicked the color ${color} with label ${children}`) - }}> - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! -``` - -export const Highlight = ({ children, color }) => ( - { - alert(`You clicked the color ${color} with label ${children}`); - }} - > - {children} - -); - -This is Docusaurus green ! - -This is Facebook blue ! diff --git a/docs/docs-next/docs/tutorial-extras/_category_.json b/docs/docs-next/docs/tutorial-extras/_category_.json deleted file mode 100644 index a8ffcc19300ec..0000000000000 --- a/docs/docs-next/docs/tutorial-extras/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Tutorial - Extras", - "position": 3, - "link": { - "type": "generated-index" - } -} diff --git a/docs/docs-next/docs/tutorial-extras/img/docsVersionDropdown.png b/docs/docs-next/docs/tutorial-extras/img/docsVersionDropdown.png deleted file mode 100644 index 97e4164618b5f..0000000000000 Binary files a/docs/docs-next/docs/tutorial-extras/img/docsVersionDropdown.png and /dev/null differ diff --git a/docs/docs-next/docs/tutorial-extras/img/localeDropdown.png b/docs/docs-next/docs/tutorial-extras/img/localeDropdown.png deleted file mode 100644 index e257edc1f9329..0000000000000 Binary files a/docs/docs-next/docs/tutorial-extras/img/localeDropdown.png and /dev/null differ diff --git a/docs/docs-next/docs/tutorial-extras/manage-docs-versions.md b/docs/docs-next/docs/tutorial-extras/manage-docs-versions.md deleted file mode 100644 index 9ea672c787408..0000000000000 --- a/docs/docs-next/docs/tutorial-extras/manage-docs-versions.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -sidebar_position: 1 ---- - -# Manage Docs Versions - -Docusaurus can manage multiple versions of your docs. - -## Create a docs version - -Release a version 1.0 of your project: - -```bash -npm run docusaurus docs:version 1.0 -``` - -The `docs` folder is copied into `versioned_docs/version-1.0` and `versions.json` is created. - -Your docs now have 2 versions: - -- `1.0` at `http://localhost:3000/docs/` for the version 1.0 docs -- `current` at `http://localhost:3000/docs/next/` for the **upcoming, unreleased docs** - -## Add a Version Dropdown - -To navigate seamlessly across versions, add a version dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "docsVersionDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` - -The docs version dropdown appears in your navbar: - -![Docs Version Dropdown](./img/docsVersionDropdown.png) - -## Update an existing version - -It is possible to edit versioned docs in their respective folder: - -- `versioned_docs/version-1.0/hello.md` updates `http://localhost:3000/docs/hello` -- `docs/hello.md` updates `http://localhost:3000/docs/next/hello` diff --git a/docs/docs-next/docs/tutorial-extras/translate-your-site.md b/docs/docs-next/docs/tutorial-extras/translate-your-site.md deleted file mode 100644 index cf3a0c43f66ba..0000000000000 --- a/docs/docs-next/docs/tutorial-extras/translate-your-site.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -sidebar_position: 2 ---- - -# Translate your site - -Let's translate `docs/intro.md` to French. - -## Configure i18n - -Modify `docusaurus.config.js` to add support for the `fr` locale: - -```js title="docusaurus.config.js" -export default { - i18n: { - defaultLocale: "en", - locales: ["en", "fr"], - }, -}; -``` - -## Translate a doc - -Copy the `docs/intro.md` file to the `i18n/fr` folder: - -```bash -mkdir -p i18n/fr/docusaurus-plugin-content-docs/current/ - -cp docs/intro.md i18n/fr/docusaurus-plugin-content-docs/current/intro.md -``` - -Translate `i18n/fr/docusaurus-plugin-content-docs/current/intro.md` in French. - -## Start your localized site - -Start your site on the French locale: - -```bash -npm run start -- --locale fr -``` - -Your localized site is accessible at [http://localhost:3000/fr/](http://localhost:3000/fr/) and the `Getting Started` page is translated. - -:::caution - -In development, you can only use one locale at a time. - -::: - -## Add a Locale Dropdown - -To navigate seamlessly across languages, add a locale dropdown. - -Modify the `docusaurus.config.js` file: - -```js title="docusaurus.config.js" -export default { - themeConfig: { - navbar: { - items: [ - // highlight-start - { - type: "localeDropdown", - }, - // highlight-end - ], - }, - }, -}; -``` - -The locale dropdown now appears in your navbar: - -![Locale Dropdown](./img/localeDropdown.png) - -## Build your localized site - -Build your site for a specific locale: - -```bash -npm run build -- --locale fr -``` - -Or build your site to include all the locales at once: - -```bash -npm run build -``` diff --git a/docs/docs-next/docs/tutorial/installation.md b/docs/docs-next/docs/tutorial/installation.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/docs/docs-next/docs/tutorial/introduction.md b/docs/docs-next/docs/tutorial/introduction.md new file mode 100644 index 0000000000000..1c573ca873646 --- /dev/null +++ b/docs/docs-next/docs/tutorial/introduction.md @@ -0,0 +1,6 @@ +--- +title: 'Introduction' +description: 'Welcome to the Dagster documentation! If this is your first time developing a Dagster pipeline, read through this Getting Started section to get familiar with the basics. Otherwise, feel free to explore our guides and API documentation!' +slug: introduction +hide_title: false +--- diff --git a/docs/docs-next/docs/tutorial/quick-start.md b/docs/docs-next/docs/tutorial/quick-start.md new file mode 100644 index 0000000000000..fdae0cd9d296e --- /dev/null +++ b/docs/docs-next/docs/tutorial/quick-start.md @@ -0,0 +1,167 @@ +--- +title: "Quick Start" +description: "This guide will step you through the process of creating a barebones Hello World app in Electron, similar to electron/electron-quick-start." +slug: quick-start +hide_title: false +--- +# Quickstart + + + +Welcome to Dagster! This guide will help you quickly run the [Dagster Quickstart](https://github.com/dagster-io/dagster-quickstart) project, showcasing Dagster's capabilities and serving as a foundation for exploring its features. + +The [Dagster Quickstart](https://github.com/dagster-io/dagster-quickstart) project can be used without installing anything on your machine by using the pre-configured [GitHub Codespace](https://github.com/features/codespaces). If you prefer to run things on your own machine, however, we've got you covered. + + + + +### Option 1: Running Locally + +Ensure you have one of the supported Python versions installed before proceeding. + +Refer to Python's official getting started guide, or our recommendation of using pyenv for installing Python. + +1. Clone the Dagster Quickstart repository by executing: + + ```bash title="Clone the repo" + git clone https://github.com/dagster-io/dagster-quickstart + cd dagster-quickstart + ``` + +2. Install the necessary dependencies using the following command: + + We use `-e` to install dependencies in ["editable mode"](https://pip.pypa.io/en/latest/topics/local-project-installs/#editable-installs). This allows changes to be automatically applied when we modify code. + + ```bash title="Install dependencies" + pip install -e ".[dev]" + ``` + +3. Run the project! + + ```bash title="Run the project" + dagster dev + ``` + +4. Navigate to localhost:3000 in your web browser. + +5. **Success!** + + + + +### Option 2: Using GitHub Codespaces + +1. Fork the [Dagster Quickstart](https://github.com/dagster-io/dagster-quickstart) repository + +2. Select **Create codespace on main** from the **Code** dropdown menu. + +Create codespace + +3. After the codespace loads, start Dagster by running `dagster dev` in the terminal: + + ```bash + dagster dev + ``` + +4. Click **Open in Browser** when prompted. + +Codespace Open In Browser + +5. **Success!** + + + + +## Navigating the User Interface + +You should now have a running instance of Dagster! From here, we can run our data pipeline. + +To run the pipeline, click the **Materialize All** button in the top right. In Dagster, _materialization_ refers to executing the code associated with an asset to produce an output. + +HackerNews assets in Dagster's Asset Graph, unmaterialized + +Congratulations! You have successfully materialized two Dagster assets: + +HackerNews asset graph + +But wait - there's more. Because the `hackernews_top_stories` asset returned some `metadata`, you can view the metadata right in the UI: + +1. Click the asset +2. In the sidebar, click the **Show Markdown** link in the **Materialization in Last Run** section. This opens a preview of the pipeline result, allowing you to view the top 10 HackerNews stories: + +Markdown preview of HackerNews top 10 stories + +## Understanding the Code + +The Quickstart project defines two **Assets** using the decorator: + +- `hackernews_top_story_ids` retrieves the top stories from the Hacker News API and saves them as a JSON file. +- `hackernews_top_stories` asset builds upon the first asset, retrieving data for each story as a CSV file, and returns a `MaterializeResult` with a markdown preview of the top stories. + +```python file=/getting-started/quickstart/assets.py +import json + +import pandas as pd +import requests + +from dagster import Config, MaterializeResult, MetadataValue, asset + + +class HNStoriesConfig(Config): + top_stories_limit: int = 10 + hn_top_story_ids_path: str = "hackernews_top_story_ids.json" + hn_top_stories_path: str = "hackernews_top_stories.csv" + + +@asset +def hackernews_top_story_ids(config: HNStoriesConfig): + """Get top stories from the HackerNews top stories endpoint.""" + top_story_ids = requests.get( + "https://hacker-news.firebaseio.com/v0/topstories.json" + ).json() + + with open(config.hn_top_story_ids_path, "w") as f: + json.dump(top_story_ids[: config.top_stories_limit], f) + + +@asset(deps=[hackernews_top_story_ids]) +def hackernews_top_stories(config: HNStoriesConfig) -> MaterializeResult: + """Get items based on story ids from the HackerNews items endpoint.""" + with open(config.hn_top_story_ids_path, "r") as f: + hackernews_top_story_ids = json.load(f) + + results = [] + for item_id in hackernews_top_story_ids: + item = requests.get( + f"https://hacker-news.firebaseio.com/v0/item/{item_id}.json" + ).json() + results.append(item) + + df = pd.DataFrame(results) + df.to_csv(config.hn_top_stories_path) + + return MaterializeResult( + metadata={ + "num_records": len(df), + "preview": MetadataValue.md(str(df[["title", "by", "url"]].to_markdown())), + } + ) +``` + +--- + +## Next steps + +Congratulations on successfully running your first Dagster pipeline! In this example, we used [assets](/tutorial), which are a cornerstone of Dagster projects. They empower data engineers to: + +- Think in the same terms as stakeholders +- Answer questions about data quality and lineage +- Work with the modern data stack (dbt, Airbyte/Fivetran, Spark) +- Create declarative freshness policies instead of task-driven cron schedules + +Dagster also offers [ops and jobs](/guides/dagster/intro-to-ops-jobs), but we recommend starting with assets. + +To create your own project, consider the following options: + +- Scaffold a new project using our [new project guide](/getting-started/create-new-project). +- Begin with an official example, like the [dbt & Dagster project](/integrations/dbt/using-dbt-with-dagster), and explore [all examples on GitHub](https://github.com/dagster-io/dagster/tree/master/examples). diff --git a/docs/docs-next/docs/tutorial/tutorial-1.md b/docs/docs-next/docs/tutorial/tutorial-1.md new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/docs/docs-next/docusaurus.config.ts b/docs/docs-next/docusaurus.config.ts index e3a0f6e162278..c24672c68a907 100644 --- a/docs/docs-next/docusaurus.config.ts +++ b/docs/docs-next/docusaurus.config.ts @@ -19,7 +19,10 @@ const config: Config = { }, themes: ["@docusaurus/theme-mermaid"], i18n: { defaultLocale: "en", locales: ["en"] }, - plugins: ["docusaurus-plugin-sass"], + plugins: [ + require.resolve("docusaurus-plugin-sass"), + require.resolve("docusaurus-plugin-image-zoom"), + ], themeConfig: { colorMode: { defaultMode: "dark", @@ -29,7 +32,17 @@ const config: Config = { prism: { theme: prismThemes.github, darkTheme: prismThemes.dracula, - additionalLanguages: ["diff", "json"], + additionalLanguages: ["diff", "json", "bash"], + }, + zoom: { + selector: ".markdown > img", + config: { + // options you can specify via https://github.com/francoischalifour/medium-zoom#usage + background: { + light: "rgb(255, 255, 255)", + dark: "rgb(50, 50, 50)", + }, + }, }, tableOfContents: { minHeadingLevel: 2, @@ -66,7 +79,8 @@ const config: Config = { image: "img/docusaurus-social-card.jpg", docs: { sidebar: { - autoCollapseCategories: false, + autoCollapseCategories: true, + hideable: true, }, }, @@ -113,6 +127,7 @@ const config: Config = { copyright: `Copyright © ${new Date().getFullYear()} Dagster Labs.`, }, } satisfies Preset.ThemeConfig, + presets: [ [ "@docusaurus/preset-classic", @@ -121,7 +136,7 @@ const config: Config = { sidebarPath: "./sidebars.ts", routeBasePath: "/", editUrl: - "https://github.com/dagster-io/dagster/tree/main/docs/docs-next", + "https://github.com/dagster-io/dagster/tree/docs/revamp/docs/docs-next", }, blog: false, theme: { diff --git a/docs/docs-next/package.json b/docs/docs-next/package.json index e7004234c0181..8aa080a5d6f93 100644 --- a/docs/docs-next/package.json +++ b/docs/docs-next/package.json @@ -19,10 +19,12 @@ }, "dependencies": { "@docusaurus/core": "3.5.1", + "@docusaurus/plugin-ideal-image": "^3.5.1", "@docusaurus/preset-classic": "3.5.1", "@docusaurus/theme-mermaid": "^3.5.1", "@mdx-js/react": "^3.0.0", "clsx": "^2.0.0", + "docusaurus-plugin-image-zoom": "^2.0.0", "docusaurus-plugin-sass": "^0.2.5", "modern-normalize": "^2.0.0", "prism-react-renderer": "^2.3.0", diff --git a/docs/docs-next/pnpm-lock.yaml b/docs/docs-next/pnpm-lock.yaml index 577c7002bf831..d35039836a739 100644 --- a/docs/docs-next/pnpm-lock.yaml +++ b/docs/docs-next/pnpm-lock.yaml @@ -11,6 +11,9 @@ importers: '@docusaurus/core': specifier: 3.5.1 version: 3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/plugin-ideal-image': + specifier: ^3.5.1 + version: 3.5.1(eslint@9.9.0(jiti@1.21.6))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) '@docusaurus/preset-classic': specifier: 3.5.1 version: 3.5.1(@algolia/client-search@4.24.0)(@types/react@18.3.3)(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(search-insights@2.16.1)(typescript@5.5.4) @@ -23,6 +26,9 @@ importers: clsx: specifier: ^2.0.0 version: 2.1.1 + docusaurus-plugin-image-zoom: + specifier: ^2.0.0 + version: 2.0.0(@docusaurus/theme-classic@3.5.1(@types/react@18.3.3)(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)) docusaurus-plugin-sass: specifier: ^0.2.5 version: 0.2.5(@docusaurus/core@3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(sass@1.77.8)(webpack@5.93.0) @@ -839,6 +845,10 @@ packages: resolution: {integrity: sha512-B36a88CEHCtxIylAV1HNuiiISpoKBqm0UxA6a/JwtHX++Dxb7LNDSGs8ELBlQsZN0OG2tX3tBsCWyaLPwYorkQ==} engines: {node: '>=18.0'} + '@docusaurus/lqip-loader@3.5.1': + resolution: {integrity: sha512-6zH81/yQyJlRxyVUKUXUt1XmsrbcRlWWwQmnq+xfVHgLymkZnLXD4C28ZSUWVt6SBVXOj4f0FTAo31UrMXfYdQ==} + engines: {node: '>=18.0'} + '@docusaurus/mdx-loader@3.5.1': resolution: {integrity: sha512-D6Ea2dt32xhoqH+1EuHLGDVSX2HLFiR4QpI0GTU46qOu2hb2ChpQENIUZ2inOsdGFunNa0fCnDG3qn7Kdbzq1A==} engines: {node: '>=18.0'} @@ -902,6 +912,17 @@ packages: react: ^18.0.0 react-dom: ^18.0.0 + '@docusaurus/plugin-ideal-image@3.5.1': + resolution: {integrity: sha512-gBdjBTIHyHR5Na3kCKKf2k/29KQ7wljh32zICSJkd59ts5VQzAbFgacNDmA/ZLpHFX88QMXJrwOQ6u/WAayGaw==} + engines: {node: '>=18.0'} + peerDependencies: + jimp: '*' + react: ^18.0.0 + react-dom: ^18.0.0 + peerDependenciesMeta: + jimp: + optional: true + '@docusaurus/plugin-sitemap@3.5.1': resolution: {integrity: sha512-VXMGJM6uy4jx6HUsFs+kn8MujWGjN7S7p7PYUYSf1bmcFNlf+Qg5vDZtwBElHa2hapeH2AIj2b3QmTgmWeyOHw==} engines: {node: '>=18.0'} @@ -921,6 +942,18 @@ packages: peerDependencies: react: '*' + '@docusaurus/responsive-loader@1.7.0': + resolution: {integrity: sha512-N0cWuVqTRXRvkBxeMQcy/OF2l7GN8rmni5EzR3HpwR+iU2ckYPnziceojcxvvxQ5NqZg1QfEW0tycQgHp+e+Nw==} + engines: {node: '>=12'} + peerDependencies: + jimp: '*' + sharp: '*' + peerDependenciesMeta: + jimp: + optional: true + sharp: + optional: true + '@docusaurus/theme-classic@3.5.1': resolution: {integrity: sha512-k8rLMwHuTc3SqYekc20s1uZHjabt9yi6mt1RUjbkwmjsJlAB6zrtYvsB+ZxrhY5yeUD8DZm3h0qVvKbClHVCCA==} engines: {node: '>=18.0'} @@ -1130,6 +1163,14 @@ packages: resolution: {integrity: sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g==} engines: {node: '>=14.16'} + '@slorber/react-ideal-image@0.0.12': + resolution: {integrity: sha512-u8KiDTEkMA7/KAeA5ywg/P7YG4zuKhWtswfVZDH8R8HXgQsFcHIYU2WaQnGuK/Du7Wdj90I+SdFmajSGFRvoKA==} + engines: {node: '>= 8.9.0', npm: '> 3'} + peerDependencies: + prop-types: '>=15' + react: '>=0.14.x' + react-waypoint: '>=9.0.2' + '@slorber/remark-comment@1.0.0': resolution: {integrity: sha512-RCE24n7jsOj1M0UPvIQCHTe7fI0sFL4S2nwKVWwHyVr/wI/H8GosgsJGyhnsZoGFnD/P2hLf1mSbrrgSLN93NA==} @@ -1693,6 +1734,9 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + b4a@1.6.6: + resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==} + babel-loader@9.1.3: resolution: {integrity: sha512-xG3ST4DglodGf8qSwv0MdeWLhrDsw/32QMdTO5T1ZIp9gQur0HkCyFs7Awskr10JKXFXwpAhiCuYX5oGXnRGbw==} engines: {node: '>= 14.15.0'} @@ -1724,6 +1768,24 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + bare-events@2.4.2: + resolution: {integrity: sha512-qMKFd2qG/36aA4GwvKq8MxnPgCQAmBWmSyLWsJcbn8v03wvIPQ/hG1Ms8bPzndZxMDoHpxez5VOS+gC9Yi24/Q==} + + bare-fs@2.3.1: + resolution: {integrity: sha512-W/Hfxc/6VehXlsgFtbB5B4xFcsCl+pAh30cYhoFyXErf6oGrwjh8SwiPAdHgpmWonKuYpZgGywN0SXt7dgsADA==} + + bare-os@2.4.0: + resolution: {integrity: sha512-v8DTT08AS/G0F9xrhyLtepoo9EJBJ85FRSMbu1pQUlAf6A8T0tEEQGMVObWeqpjhSPXsE0VGlluFBJu2fdoTNg==} + + bare-path@2.1.3: + resolution: {integrity: sha512-lh/eITfU8hrj9Ru5quUp0Io1kJWIk1bTjzo7JH1P5dWmQ2EL4hFUlfI8FonAhSlgIfhn63p84CDY/x+PisgcXA==} + + bare-stream@2.1.3: + resolution: {integrity: sha512-tiDAH9H/kP+tvNO5sczyn9ZAA7utrSMobyDchsnyyXBuUe2FSQWbxhtuHB8jwpHYYevVo2UJpcmvvjrbHboUUQ==} + + base64-js@1.5.1: + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + batch@0.6.1: resolution: {integrity: sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==} @@ -1734,6 +1796,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + body-parser@1.20.2: resolution: {integrity: sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} @@ -1770,6 +1835,9 @@ packages: buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + bytes@3.0.0: resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} engines: {node: '>= 0.8'} @@ -1857,6 +1925,9 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} @@ -1905,6 +1976,13 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + color-string@1.9.1: + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + + color@4.2.3: + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} + colord@2.9.3: resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} @@ -1969,6 +2047,9 @@ packages: consola@2.15.3: resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==} + consolidated-events@2.0.2: + resolution: {integrity: sha512-2/uRVMdRypf5z/TW/ncD/66l75P5hH2vM/GR8Jf8HLc2xnfJtmina6F6du8+v4Z2vTrMo7jC+W1tmEEuuELgkQ==} + content-disposition@0.5.2: resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} engines: {node: '>= 0.6'} @@ -2381,6 +2462,10 @@ packages: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} engines: {node: '>= 0.8', npm: 1.2.8000 || >= 1.4.16} + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==} + engines: {node: '>=8'} + detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} @@ -2420,6 +2505,11 @@ packages: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} + docusaurus-plugin-image-zoom@2.0.0: + resolution: {integrity: sha512-TWHQZeoiged+95CESlZk++lihzl3pqw34n0/fbexx2AocmFhbo9K2scYDgYB8amki4/X6mUCLTPZE1pQvT+00Q==} + peerDependencies: + '@docusaurus/theme-classic': '>=3.0.0' + docusaurus-plugin-sass@0.2.5: resolution: {integrity: sha512-Z+D0fLFUKcFpM+bqSUmqKIU+vO+YF1xoEQh5hoFreg2eMf722+siwXDD+sqtwU8E4MvVpuvsQfaHwODNlxJAEg==} peerDependencies: @@ -2497,6 +2587,9 @@ packages: resolution: {integrity: sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==} engines: {node: '>= 0.8'} + end-of-stream@1.4.4: + resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} + enhanced-resolve@5.17.1: resolution: {integrity: sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==} engines: {node: '>=10.13.0'} @@ -2686,6 +2779,10 @@ packages: resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} engines: {node: '>=10'} + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} + engines: {node: '>=6'} + express@4.19.2: resolution: {integrity: sha512-5T6nhjsT+EOMzuck8JjBHARTHfMht0POzlA60WV2pMD3gyXw2LZnZ+ueGdNxG+0calOJcWKbpFcuzLZ91YWq9Q==} engines: {node: '>= 0.10.0'} @@ -2700,6 +2797,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + fast-fifo@1.3.2: + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + fast-glob@3.3.2: resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} @@ -2832,6 +2932,9 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==} engines: {node: '>= 0.6'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + fs-extra@11.2.0: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} @@ -2880,6 +2983,9 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==} + github-slugger@1.5.0: resolution: {integrity: sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw==} @@ -3133,6 +3239,9 @@ packages: peerDependencies: postcss: ^8.1.0 + ieee754@1.2.1: + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.1: resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} @@ -3230,6 +3339,9 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + is-arrayish@0.3.2: + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-async-function@2.0.0: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} @@ -3691,6 +3803,9 @@ packages: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} + medium-zoom@1.1.0: + resolution: {integrity: sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==} + memfs@3.5.3: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} engines: {node: '>= 4.0.0'} @@ -3950,6 +4065,9 @@ packages: minimist@1.2.8: resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==} + modern-normalize@2.0.0: resolution: {integrity: sha512-CxBoEVKh5U4DH3XuNbc5ONLF6dQBc8dSc7pdZ1957FGbIO5JBqGqqchhET9dTexri8/pk9xBL6+5ceOtCIp1QA==} engines: {node: '>=6'} @@ -3980,6 +4098,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@1.0.2: + resolution: {integrity: sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==} + natural-compare@1.4.0: resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} @@ -3993,6 +4114,13 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-abi@3.65.0: + resolution: {integrity: sha512-ThjYBfoDNr08AWx6hGaRbfPwxKV9kVzAzOzlLKbk2CuqXE2xnCh+cbAGnwM3t8Lq4v9rUB7VfondlkBckcJrVA==} + engines: {node: '>=10'} + + node-addon-api@6.1.0: + resolution: {integrity: sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA==} + node-emoji@2.1.3: resolution: {integrity: sha512-E2WEOVsgs7O16zsURJ/eH8BqhF029wGpEOnv7Urwdo2wmQanOACwJQh0devF9D9RhoZru0+9JXIS0dBXIAz+lA==} engines: {node: '>=18'} @@ -4187,6 +4315,14 @@ packages: path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + path-root-regex@0.1.2: + resolution: {integrity: sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==} + engines: {node: '>=0.10.0'} + + path-root@0.1.1: + resolution: {integrity: sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==} + engines: {node: '>=0.10.0'} + path-to-regexp@0.1.7: resolution: {integrity: sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==} @@ -4456,6 +4592,11 @@ packages: resolution: {integrity: sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==} engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.2: + resolution: {integrity: sha512-UnNke3IQb6sgarcZIDU3gbMeTp/9SSU1DAIkil7PrqG1vZlBtY5msYccSKSHDqa3hNg436IXK+SNImReuA1wEQ==} + engines: {node: '>=10'} + hasBin: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -4517,6 +4658,9 @@ packages: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} + pump@3.0.0: + resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} + punycode@1.4.1: resolution: {integrity: sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==} @@ -4535,6 +4679,9 @@ packages: queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + queue-tick@1.0.1: + resolution: {integrity: sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==} + queue@6.0.2: resolution: {integrity: sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==} @@ -4628,6 +4775,11 @@ packages: peerDependencies: react: '>=15' + react-waypoint@10.3.0: + resolution: {integrity: sha512-iF1y2c1BsoXuEGz08NoahaLFIGI9gTUAAOKip96HUmylRT6DUtpgoBPjk/Y8dfcFVmfVDvUzWjNXpZyKTOV0SQ==} + peerDependencies: + react: ^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} engines: {node: '>=0.10.0'} @@ -4746,6 +4898,10 @@ packages: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} + resolve-package-path@4.0.3: + resolution: {integrity: sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==} + engines: {node: '>= 12'} + resolve-pathname@3.0.0: resolution: {integrity: sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng==} @@ -4917,6 +5073,10 @@ packages: shallowequal@1.1.0: resolution: {integrity: sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==} + sharp@0.32.6: + resolution: {integrity: sha512-KyLTWwgcR9Oe4d9HwCwNM2l7+J0dUQwn/yf7S0EnTtb0eVS4RxO0eUSvxPtzT4F3SY+C4K6fqdv/DO27sJ/v/w==} + engines: {node: '>=14.15.0'} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -4940,6 +5100,15 @@ packages: signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==} + + simple-swizzle@0.2.2: + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + sirv@2.0.4: resolution: {integrity: sha512-94Bdh3cC2PKrbgSOUqTiGPWVZeSiXfKOVZNJniWoqrWrRkB1CJzBU3NEbiTsPcYy1lDsANA/THzS+9WBiy5nfQ==} engines: {node: '>= 10'} @@ -5017,6 +5186,9 @@ packages: std-env@3.7.0: resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} + streamx@2.18.0: + resolution: {integrity: sha512-LLUC1TWdjVdn1weXGcSxyTR3T4+acB6tVGXT95y0nGbca4t4o/ng1wKAGTljm9VicuCVLvRlqFYXYy5GwgM7sQ==} + string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -5135,6 +5307,19 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} + tar-fs@2.1.1: + resolution: {integrity: sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==} + + tar-fs@3.0.6: + resolution: {integrity: sha512-iokBDQQkUyeXhgPYaZxmczGPhnhXZ0CmrqI+MOb/WFGS9DW5wnfrLgtjUJBvz50vQ3qfRwJ62QVoCFu8mPVu5w==} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} + + tar-stream@3.1.7: + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + terser-webpack-plugin@5.3.10: resolution: {integrity: sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==} engines: {node: '>= 10.13.0'} @@ -5156,6 +5341,9 @@ packages: engines: {node: '>=10'} hasBin: true + text-decoder@1.1.1: + resolution: {integrity: sha512-8zll7REEv4GDD3x4/0pW+ppIxSNs7H1J10IKFZsuOMscumCdM2a+toDGLPA3T+1+fLBql4zbt5z83GEQGGV5VA==} + text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -5203,6 +5391,9 @@ packages: tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -5371,6 +5562,10 @@ packages: engines: {node: '>=8'} hasBin: true + validate-peer-dependencies@2.2.0: + resolution: {integrity: sha512-8X1OWlERjiUY6P6tdeU9E0EwO8RA3bahoOVG7ulOZT5MqgNDUO/BQoVjYiHPcNe+v8glsboZRIw9iToMAA2zAA==} + engines: {node: '>= 12'} + value-equal@1.0.1: resolution: {integrity: sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw==} @@ -6652,6 +6847,16 @@ snapshots: chalk: 4.1.2 tslib: 2.6.3 + '@docusaurus/lqip-loader@3.5.1(webpack@5.93.0)': + dependencies: + '@docusaurus/logger': 3.5.1 + file-loader: 6.2.0(webpack@5.93.0) + lodash: 4.17.21 + sharp: 0.32.6 + tslib: 2.6.3 + transitivePeerDependencies: + - webpack + '@docusaurus/mdx-loader@3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: '@docusaurus/logger': 3.5.1 @@ -6924,6 +7129,40 @@ snapshots: - vue-template-compiler - webpack-cli + '@docusaurus/plugin-ideal-image@3.5.1(eslint@9.9.0(jiti@1.21.6))(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': + dependencies: + '@docusaurus/core': 3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + '@docusaurus/lqip-loader': 3.5.1(webpack@5.93.0) + '@docusaurus/responsive-loader': 1.7.0(sharp@0.32.6) + '@docusaurus/theme-translations': 3.5.1 + '@docusaurus/types': 3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@docusaurus/utils-validation': 3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(typescript@5.5.4) + '@slorber/react-ideal-image': 0.0.12(prop-types@15.8.1)(react-waypoint@10.3.0(react@18.3.1))(react@18.3.1) + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-waypoint: 10.3.0(react@18.3.1) + sharp: 0.32.6 + tslib: 2.6.3 + webpack: 5.93.0 + transitivePeerDependencies: + - '@parcel/css' + - '@rspack/core' + - '@swc/core' + - '@swc/css' + - bufferutil + - csso + - debug + - esbuild + - eslint + - lightningcss + - prop-types + - supports-color + - typescript + - uglify-js + - utf-8-validate + - vue-template-compiler + - webpack-cli + '@docusaurus/plugin-sitemap@3.5.1(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: '@docusaurus/core': 3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) @@ -6998,6 +7237,12 @@ snapshots: '@types/react': 18.3.3 react: 18.3.1 + '@docusaurus/responsive-loader@1.7.0(sharp@0.32.6)': + dependencies: + loader-utils: 2.0.4 + optionalDependencies: + sharp: 0.32.6 + '@docusaurus/theme-classic@3.5.1(@types/react@18.3.3)(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)': dependencies: '@docusaurus/core': 3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) @@ -7413,6 +7658,12 @@ snapshots: '@sindresorhus/is@5.6.0': {} + '@slorber/react-ideal-image@0.0.12(prop-types@15.8.1)(react-waypoint@10.3.0(react@18.3.1))(react@18.3.1)': + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-waypoint: 10.3.0(react@18.3.1) + '@slorber/remark-comment@1.0.0': dependencies: micromark-factory-space: 1.1.0 @@ -8103,6 +8354,8 @@ snapshots: dependencies: possible-typed-array-names: 1.0.0 + b4a@1.6.6: {} + babel-loader@9.1.3(@babel/core@7.25.2)(webpack@5.93.0): dependencies: '@babel/core': 7.25.2 @@ -8142,12 +8395,43 @@ snapshots: balanced-match@1.0.2: {} + bare-events@2.4.2: + optional: true + + bare-fs@2.3.1: + dependencies: + bare-events: 2.4.2 + bare-path: 2.1.3 + bare-stream: 2.1.3 + optional: true + + bare-os@2.4.0: + optional: true + + bare-path@2.1.3: + dependencies: + bare-os: 2.4.0 + optional: true + + bare-stream@2.1.3: + dependencies: + streamx: 2.18.0 + optional: true + + base64-js@1.5.1: {} + batch@0.6.1: {} big.js@5.2.2: {} binary-extensions@2.3.0: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + body-parser@1.20.2: dependencies: bytes: 3.1.2 @@ -8216,6 +8500,11 @@ snapshots: buffer-from@1.1.2: {} + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + bytes@3.0.0: {} bytes@3.1.2: {} @@ -8324,6 +8613,8 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chownr@1.1.4: {} + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -8364,6 +8655,16 @@ snapshots: color-name@1.1.4: {} + color-string@1.9.1: + dependencies: + color-name: 1.1.4 + simple-swizzle: 0.2.2 + + color@4.2.3: + dependencies: + color-convert: 2.0.1 + color-string: 1.9.1 + colord@2.9.3: {} colorette@2.0.20: {} @@ -8421,6 +8722,8 @@ snapshots: consola@2.15.3: {} + consolidated-events@2.0.2: {} + content-disposition@0.5.2: {} content-disposition@0.5.4: @@ -8874,6 +9177,8 @@ snapshots: destroy@1.2.0: {} + detect-libc@2.0.3: {} + detect-node@2.1.0: {} detect-port-alt@1.1.6: @@ -8914,6 +9219,12 @@ snapshots: dependencies: esutils: 2.0.3 + docusaurus-plugin-image-zoom@2.0.0(@docusaurus/theme-classic@3.5.1(@types/react@18.3.3)(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4)): + dependencies: + '@docusaurus/theme-classic': 3.5.1(@types/react@18.3.3)(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) + medium-zoom: 1.1.0 + validate-peer-dependencies: 2.2.0 + docusaurus-plugin-sass@0.2.5(@docusaurus/core@3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4))(sass@1.77.8)(webpack@5.93.0): dependencies: '@docusaurus/core': 3.5.1(@docusaurus/types@3.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(eslint@9.9.0(jiti@1.21.6))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.4) @@ -8995,6 +9306,10 @@ snapshots: encodeurl@1.0.2: {} + end-of-stream@1.4.4: + dependencies: + once: 1.4.0 + enhanced-resolve@5.17.1: dependencies: graceful-fs: 4.2.11 @@ -9324,6 +9639,8 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 2.0.0 + expand-template@2.0.3: {} + express@4.19.2: dependencies: accepts: 1.3.8 @@ -9368,6 +9685,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-fifo@1.3.2: {} + fast-glob@3.3.2: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9504,6 +9823,8 @@ snapshots: fresh@0.5.2: {} + fs-constants@1.0.0: {} + fs-extra@11.2.0: dependencies: graceful-fs: 4.2.11 @@ -9555,6 +9876,8 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 + github-from-package@0.0.0: {} + github-slugger@1.5.0: {} glob-parent@5.1.2: @@ -9915,6 +10238,8 @@ snapshots: dependencies: postcss: 8.4.41 + ieee754@1.2.1: {} + ignore@5.3.1: {} image-size@1.1.1: @@ -9989,6 +10314,8 @@ snapshots: is-arrayish@0.2.1: {} + is-arrayish@0.3.2: {} + is-async-function@2.0.0: dependencies: has-tostringtag: 1.0.2 @@ -10539,6 +10866,8 @@ snapshots: media-typer@0.3.0: {} + medium-zoom@1.1.0: {} + memfs@3.5.3: dependencies: fs-monkey: 1.0.6 @@ -11039,6 +11368,8 @@ snapshots: minimist@1.2.8: {} + mkdirp-classic@0.5.3: {} + modern-normalize@2.0.0: {} mri@1.2.0: {} @@ -11058,6 +11389,8 @@ snapshots: nanoid@3.3.7: {} + napi-build-utils@1.0.2: {} + natural-compare@1.4.0: {} negotiator@0.6.3: {} @@ -11069,6 +11402,12 @@ snapshots: lower-case: 2.0.2 tslib: 2.6.3 + node-abi@3.65.0: + dependencies: + semver: 7.6.3 + + node-addon-api@6.1.0: {} + node-emoji@2.1.3: dependencies: '@sindresorhus/is': 4.6.0 @@ -11266,6 +11605,12 @@ snapshots: path-parse@1.0.7: {} + path-root-regex@0.1.2: {} + + path-root@0.1.1: + dependencies: + path-root-regex: 0.1.2 + path-to-regexp@0.1.7: {} path-to-regexp@1.8.0: @@ -11512,6 +11857,21 @@ snapshots: picocolors: 1.0.1 source-map-js: 1.2.0 + prebuild-install@7.1.2: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 1.0.2 + node-abi: 3.65.0 + pump: 3.0.0 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.1 + tunnel-agent: 0.6.0 + prelude-ls@1.2.1: {} prettier-eslint@16.3.0: @@ -11576,6 +11936,11 @@ snapshots: forwarded: 0.2.0 ipaddr.js: 1.9.1 + pump@3.0.0: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + punycode@1.4.1: {} punycode@2.3.1: {} @@ -11590,6 +11955,8 @@ snapshots: queue-microtask@1.2.3: {} + queue-tick@1.0.1: {} + queue@6.0.2: dependencies: inherits: 2.0.4 @@ -11723,6 +12090,14 @@ snapshots: tiny-invariant: 1.3.3 tiny-warning: 1.0.3 + react-waypoint@10.3.0(react@18.3.1): + dependencies: + '@babel/runtime': 7.25.0 + consolidated-events: 2.0.2 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 18.3.1 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -11902,6 +12277,10 @@ snapshots: resolve-from@4.0.0: {} + resolve-package-path@4.0.3: + dependencies: + path-root: 0.1.1 + resolve-pathname@3.0.0: {} resolve@1.22.8: @@ -12112,6 +12491,17 @@ snapshots: shallowequal@1.1.0: {} + sharp@0.32.6: + dependencies: + color: 4.2.3 + detect-libc: 2.0.3 + node-addon-api: 6.1.0 + prebuild-install: 7.1.2 + semver: 7.6.3 + simple-get: 4.0.1 + tar-fs: 3.0.6 + tunnel-agent: 0.6.0 + shebang-command@2.0.0: dependencies: shebang-regex: 3.0.0 @@ -12135,6 +12525,18 @@ snapshots: signal-exit@3.0.7: {} + simple-concat@1.0.1: {} + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + + simple-swizzle@0.2.2: + dependencies: + is-arrayish: 0.3.2 + sirv@2.0.4: dependencies: '@polka/url': 1.0.0-next.25 @@ -12215,6 +12617,14 @@ snapshots: std-env@3.7.0: {} + streamx@2.18.0: + dependencies: + fast-fifo: 1.3.2 + queue-tick: 1.0.1 + text-decoder: 1.1.1 + optionalDependencies: + bare-events: 2.4.2 + string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -12353,6 +12763,35 @@ snapshots: tapable@2.2.1: {} + tar-fs@2.1.1: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.0 + tar-stream: 2.2.0 + + tar-fs@3.0.6: + dependencies: + pump: 3.0.0 + tar-stream: 3.1.7 + optionalDependencies: + bare-fs: 2.3.1 + bare-path: 2.1.3 + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + + tar-stream@3.1.7: + dependencies: + b4a: 1.6.6 + fast-fifo: 1.3.2 + streamx: 2.18.0 + terser-webpack-plugin@5.3.10(webpack@5.93.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -12369,6 +12808,10 @@ snapshots: commander: 2.20.3 source-map-support: 0.5.21 + text-decoder@1.1.1: + dependencies: + b4a: 1.6.6 + text-table@0.2.0: {} thunky@1.1.0: {} @@ -12399,6 +12842,10 @@ snapshots: tslib@2.6.3: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -12594,6 +13041,11 @@ snapshots: kleur: 4.1.5 sade: 1.8.1 + validate-peer-dependencies@2.2.0: + dependencies: + resolve-package-path: 4.0.3 + semver: 7.6.3 + value-equal@1.0.1: {} vary@1.1.2: {} diff --git a/docs/docs-next/sidebars.ts b/docs/docs-next/sidebars.ts index 4f81c73e349ea..cec3cb180e198 100644 --- a/docs/docs-next/sidebars.ts +++ b/docs/docs-next/sidebars.ts @@ -13,11 +13,21 @@ import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; const sidebars: SidebarsConfig = { // By default, Docusaurus generates a sidebar from the docs folder structure // docSidebar: [{ type: "autogenerated", dirName: "." }], - docSidebar: [ + docs: [ + { + type: "category", + label: "Getting Started", + items: ["intro", "tutorial/quick-start", "tutorial/installation"], + }, + { + type: "category", + label: "Tutorial", + items: ["tutorial/tutorial-1"], + }, { type: "category", - label: "Docs", - items: ["intro", "api"], + label: "How-To Guides", + items: ["how-to/asset-management", "how-to/data-movement-transformation"], }, ], /* diff --git a/docs/docs-next/src/components/HomepageFeatures/index.tsx b/docs/docs-next/src/components/HomepageFeatures/index.tsx deleted file mode 100644 index 5bc84c2626387..0000000000000 --- a/docs/docs-next/src/components/HomepageFeatures/index.tsx +++ /dev/null @@ -1,70 +0,0 @@ -import clsx from "clsx"; -import Heading from "@theme/Heading"; -import styles from "./styles.module.css"; - -type FeatureItem = { - title: string; - Svg: React.ComponentType>; - description: JSX.Element; -}; - -const FeatureList: FeatureItem[] = [ - { - title: "Easy to Use", - Svg: require("@site/static/img/undraw_docusaurus_mountain.svg").default, - description: ( - <> - Docusaurus was designed from the ground up to be easily installed and - used to get your website up and running quickly. - - ), - }, - { - title: "Focus on What Matters", - Svg: require("@site/static/img/undraw_docusaurus_tree.svg").default, - description: ( - <> - Docusaurus lets you focus on your docs, and we'll do the chores. Go - ahead and move your docs into the docs directory. - - ), - }, - { - title: "Powered by React", - Svg: require("@site/static/img/undraw_docusaurus_react.svg").default, - description: ( - <> - Extend or customize your website layout by reusing React. Docusaurus can - be extended while reusing the same header and footer. - - ), - }, -]; - -function Feature({ title, Svg, description }: FeatureItem) { - return ( -
-
- -
-
- {title} -

{description}

-
-
- ); -} - -export default function HomepageFeatures(): JSX.Element { - return ( -
-
-
- {FeatureList.map((props, idx) => ( - - ))} -
-
-
- ); -} diff --git a/docs/docs-next/src/components/HomepageFeatures/styles.module.css b/docs/docs-next/src/components/HomepageFeatures/styles.module.css deleted file mode 100644 index b248eb2e5dee2..0000000000000 --- a/docs/docs-next/src/components/HomepageFeatures/styles.module.css +++ /dev/null @@ -1,11 +0,0 @@ -.features { - display: flex; - align-items: center; - padding: 2rem 0; - width: 100%; -} - -.featureSvg { - height: 200px; - width: 200px; -} diff --git a/docs/docs-next/src/components/PyObject.tsx b/docs/docs-next/src/components/PyObject.tsx new file mode 100644 index 0000000000000..a2524fd4b6dfc --- /dev/null +++ b/docs/docs-next/src/components/PyObject.tsx @@ -0,0 +1,39 @@ +import React from "react"; + +export const SearchIndexContext = React.createContext(null); + +export const PyObject: React.FunctionComponent<{ + module: string; + object: string; + method?: string; + displayText?: string; + pluralize?: boolean; + decorator?: boolean; +}> = ({object, method, displayText, pluralize = false, decorator = false}) => { + let textValue = displayText || object; + if (pluralize) { + textValue += 's'; + } + if (decorator) { + textValue = '@' + textValue; + } + if (method) { + textValue += '.' + method; + } + + const handleClick = (e: React.MouseEvent) => { + e.preventDefault(); + alert("PyObject not implemented yet"); + }; + + return ( + + {textValue} + + ); +} diff --git a/docs/docs-next/src/styles/custom.scss b/docs/docs-next/src/styles/custom.scss index d8db769ed82b6..29ac26dbebaad 100644 --- a/docs/docs-next/src/styles/custom.scss +++ b/docs/docs-next/src/styles/custom.scss @@ -5,7 +5,7 @@ */ /* You can override the default Infima variables here. */ - +/* Some styles heavily influenced from: https://github.com/electron/website/blob/main/src/css/custom.scss */ :root { // modified base colors --ifm-color-primary: var(--dagster-color-primary-500); @@ -67,7 +67,7 @@ // docusaurus variables --ifm-hover-overlay: rgba(162, 236, 251, 0.2); - --ifm-link-color: var(--dagster-color-mid); + --ifm-link-color: var(--dagster-color-primary-900); --ifm-menu-color-active: var(--dagster-color-dark); // these require !important because of some weirdness in CSS ordering // see: https://github.com/facebook/docusaurus/issues/3678 @@ -123,17 +123,17 @@ --dagster-inline-code: var(--dagster-color-secondary-light); } -.hero { - &--electron { - color: var(--dagster-color-light); - background: var(--dagster-color-dark); - } -} - +/* Main content */ .theme-doc-markdown { - max-width: 700px; + max-width: 900px; margin: 0 auto; - margin-top: 2rem; + margin-top: 1rem; + padding-left: 3rem; +} + +/* Custom code for PyObject */ +a.pyobject { + color: var(--dagster-color-red); } .navbar { @@ -144,7 +144,7 @@ &__inner { max-width: 1400px; - margin: 0 auto; + margin: 0 0; } &__item { @@ -157,7 +157,7 @@ &__link { font-weight: var(--ifm-font-weight-normal); - border-bottom: 2px solid transparent; + border-bottom: 3px solid transparent; &--active { color: var(--dagster-color-light); @@ -177,25 +177,23 @@ } .markdown { + line-height: 175%; + a { - font-weight: var(--ifm-font-weight-bold); + font-weight: var(--ifm-font-weight-semibold); code { font-weight: var(--ifm-font-weight-bold); } } - p { - line-height: 180%; - } - h1, h2, h3, h4, h5, h6 { - --ifm-h2-font-size: 1.6rem; - --ifm-h3-font-size: 1.2rem; + --ifm-h2-font-size: 1.5rem; + --ifm-h3-font-size: 1.3rem; --ifm-h4-font-size: 1rem; --ifm-h5-font-size: 0.8rem; } @@ -228,20 +226,16 @@ // sidebar .menu { &__link { - font-size: 0.9rem; + font-size: 1rem; font-weight: var(--ifm-font-weight-normal); &--active { font-weight: var(--ifm-font-weight-bold); + color: var(--dagster-color-blurple-dark); } } } -// utility -.no-select { - user-select: none; -} - .card { border: 1px solid rgba(200, 200, 200, 0.3); } @@ -250,7 +244,11 @@ font-weight: var(--ifm-font-weight-bold); } -// fix https://github.com/electron/website/issues/539 -.navbar__logo { - width: 2rem; +.pagination-nav { + &__link { + border: 0; + border-radius: 0; + border-top: 1px solid var(--dagster-color-gray-300); + color: var(--dagster-color-gray-900); + } } diff --git a/docs/docs-next/src/theme/MDXComponents.tsx b/docs/docs-next/src/theme/MDXComponents.tsx new file mode 100644 index 0000000000000..1c3d86433c2b7 --- /dev/null +++ b/docs/docs-next/src/theme/MDXComponents.tsx @@ -0,0 +1,12 @@ +// Import the original mapper +import MDXComponents from "@theme-original/MDXComponents"; +import { PyObject } from "../components/PyObject"; +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; +export default { + // Re-use the default mapping + ...MDXComponents, + PyObject, + Tabs, + TabItem, +}; \ No newline at end of file diff --git a/docs/docs-next/static/images/getting-started/materialize-asset-in-ui.gif b/docs/docs-next/static/images/getting-started/materialize-asset-in-ui.gif new file mode 100644 index 0000000000000..a4f819b8aa21d Binary files /dev/null and b/docs/docs-next/static/images/getting-started/materialize-asset-in-ui.gif differ diff --git a/docs/docs-next/static/images/getting-started/quickstart/github-codespace-create.png b/docs/docs-next/static/images/getting-started/quickstart/github-codespace-create.png new file mode 100644 index 0000000000000..e7f3c8c0c45b1 Binary files /dev/null and b/docs/docs-next/static/images/getting-started/quickstart/github-codespace-create.png differ diff --git a/docs/docs-next/static/images/getting-started/quickstart/github-codespace-open-in-browser.png b/docs/docs-next/static/images/getting-started/quickstart/github-codespace-open-in-browser.png new file mode 100644 index 0000000000000..d1b483eb2a262 Binary files /dev/null and b/docs/docs-next/static/images/getting-started/quickstart/github-codespace-open-in-browser.png differ diff --git a/docs/docs-next/static/images/getting-started/quickstart/hn-preview.png b/docs/docs-next/static/images/getting-started/quickstart/hn-preview.png new file mode 100644 index 0000000000000..c65cf89307cef Binary files /dev/null and b/docs/docs-next/static/images/getting-started/quickstart/hn-preview.png differ diff --git a/docs/docs-next/static/images/getting-started/quickstart/quickstart-unmaterialized.png b/docs/docs-next/static/images/getting-started/quickstart/quickstart-unmaterialized.png new file mode 100644 index 0000000000000..141bd713035c8 Binary files /dev/null and b/docs/docs-next/static/images/getting-started/quickstart/quickstart-unmaterialized.png differ diff --git a/docs/docs-next/static/images/getting-started/quickstart/quickstart.png b/docs/docs-next/static/images/getting-started/quickstart/quickstart.png new file mode 100644 index 0000000000000..ae8847e77a571 Binary files /dev/null and b/docs/docs-next/static/images/getting-started/quickstart/quickstart.png differ diff --git a/docs/docs-next/static/images/getting-started/ui-def.png b/docs/docs-next/static/images/getting-started/ui-def.png new file mode 100644 index 0000000000000..5f6a5ca142abc Binary files /dev/null and b/docs/docs-next/static/images/getting-started/ui-def.png differ diff --git a/docs/docs-next/static/images/getting-started/ui-run.png b/docs/docs-next/static/images/getting-started/ui-run.png new file mode 100644 index 0000000000000..281d011de77eb Binary files /dev/null and b/docs/docs-next/static/images/getting-started/ui-run.png differ diff --git a/docs/docs-next/tsconfig.json b/docs/docs-next/tsconfig.json index 1f7a85c8f664b..b1b36ccc812bc 100644 --- a/docs/docs-next/tsconfig.json +++ b/docs/docs-next/tsconfig.json @@ -1,6 +1,12 @@ { "extends": "./node_modules/@docusaurus/tsconfig/tsconfig.json", "compilerOptions": { + "baseUrl": "./", + "paths": { + "@/*": [ + "src/*" + ] + }, "types": [ "@docusaurus/theme-classic", "node"