From 05b8619f06f59d6ece43f54c3c1efe9a4b5bfd6c Mon Sep 17 00:00:00 2001 From: bdbch Date: Wed, 26 Jun 2024 20:45:33 +0200 Subject: [PATCH] initial public commit --- .changeset/README.md | 8 + .changeset/cold-guests-remain.md | 5 + .changeset/cold-spies-heal.md | 5 + .changeset/config.json | 11 + .changeset/curly-teachers-film.md | 5 + .changeset/curvy-toys-refuse.md | 5 + .changeset/eleven-owls-refuse.md | 5 + .changeset/friendly-walls-explode.md | 5 + .changeset/gentle-news-mix.md | 5 + .changeset/grumpy-rules-change.md | 5 + .changeset/nice-doors-eat.md | 5 + .changeset/pre.json | 25 + .changeset/silly-boats-smell.md | 5 + .changeset/slow-feet-hammer.md | 5 + .changeset/sour-boxes-invite.md | 5 + .changeset/sweet-keys-switch.md | 5 + .changeset/tidy-hotels-learn.md | 5 + .changeset/weak-moose-peel.md | 5 + .changeset/wild-crabs-lick.md | 5 + .changeset/witty-rocks-sneeze.md | 5 + .changeset/yellow-planes-return.md | 5 + .env.example | 16 + .eslintrc.json | 11 + .github/workflows/docsearch.yml | 29 + .gitignore | 40 + .idea/.gitignore | 5 + .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/inspectionProfiles/Project_Default.xml | 6 + .idea/modules.xml | 8 + .idea/tiptap-docs-v2.iml | 12 + .idea/vcs.xml | 6 + .vscode/settings.json | 7 + CHANGELOG.md | 32 + CONTRIBUTING.md | 27 + Dockerfile | 60 + LICENSE | 21 + LICENSE-DOCS | 11 + README.md | 23 + custom.d.ts | 10 + docsearch.config.json | 41 + next.config.mjs | 57 + package-lock.json | 15608 ++++++++++++++++ package.json | 73 + postcss.config.js | 7 + public/assets/fonts/Inter-Bold.ttf | Bin 0 -> 316584 bytes public/assets/fonts/Inter-SemiBold.ttf | Bin 0 -> 316220 bytes public/assets/images/example-image.jpg | Bin 0 -> 22457 bytes public/assets/images/tiptap-logo.png | Bin 0 -> 7930 bytes public/favicon.png | Bin 0 -> 528 bytes src/app/[...markdownPath]/page.tsx | 137 + src/app/[...markdownPath]/sidebars.ts | 13 + src/app/api/og/route.tsx | 72 + src/app/globals.css | 349 + src/app/layout.tsx | 107 + src/app/not-found.tsx | 38 + src/app/page.tsx | 82 + src/app/sitemap.ts | 25 + src/assets/alpine.png | Bin 0 -> 812 bytes src/assets/angular.png | Bin 0 -> 1883 bytes src/assets/card-cover.png | Bin 0 -> 252990 bytes .../card-covers/examples/clever-editor.jpg | Bin 0 -> 23115 bytes .../examples/collaborative-editing.jpg | Bin 0 -> 21048 bytes .../examples/collaborative-fields.jpg | Bin 0 -> 23364 bytes .../examples/default-text-editor.jpg | Bin 0 -> 23524 bytes src/assets/card-covers/examples/drawing.jpg | Bin 0 -> 21566 bytes src/assets/card-covers/examples/figure.jpg | Bin 0 -> 22394 bytes .../examples/forced-content-structure.jpg | Bin 0 -> 21503 bytes .../card-covers/examples/formatting.jpg | Bin 0 -> 23622 bytes .../card-covers/examples/generic-figure.jpg | Bin 0 -> 24321 bytes src/assets/card-covers/examples/iframe.jpg | Bin 0 -> 21887 bytes src/assets/card-covers/examples/images.jpg | Bin 0 -> 21739 bytes .../examples/interactive-views.jpg | Bin 0 -> 23714 bytes src/assets/card-covers/examples/linting.jpg | Bin 0 -> 22392 bytes src/assets/card-covers/examples/long-text.jpg | Bin 0 -> 21944 bytes .../examples/markdown-shortcuts.jpg | Bin 0 -> 21618 bytes src/assets/card-covers/examples/mentions.jpg | Bin 0 -> 21710 bytes src/assets/card-covers/examples/menus.jpg | Bin 0 -> 22707 bytes .../examples/minimal-setup-alternative.jpg | Bin 0 -> 20963 bytes .../card-covers/examples/minimal-setup.jpg | Bin 0 -> 22060 bytes .../card-covers/examples/slash-commands.jpg | Bin 0 -> 21616 bytes .../examples/syntax-highlighting.jpg | Bin 0 -> 21443 bytes src/assets/card-covers/examples/tables.jpg | Bin 0 -> 22054 bytes src/assets/card-covers/examples/tasks.jpg | Bin 0 -> 21340 bytes .../card-covers/examples/trailing-node.jpg | Bin 0 -> 21763 bytes src/assets/cdn.png | Bin 0 -> 582 bytes src/assets/collaboration.png | Bin 0 -> 5382 bytes src/assets/comments.png | Bin 0 -> 2759 bytes src/assets/content-ai.png | Bin 0 -> 2587 bytes src/assets/content-templates.png | Bin 0 -> 198141 bytes src/assets/documents.png | Bin 0 -> 4289 bytes src/assets/editor.png | Bin 0 -> 4121 bytes src/assets/gradient-bg-light.svg | 1 + src/assets/gradient-bg.svg | 30 + src/assets/icons/TableOfContent.svg | 8 + src/assets/icons/audit-logs.svg | 3 + src/assets/icons/cloud.svg | 3 + src/assets/icons/dedicated-cloud.svg | 11 + src/assets/icons/discord.svg | 10 + src/assets/icons/document-management.svg | 10 + src/assets/icons/github.svg | 10 + src/assets/icons/self-hosted.svg | 10 + src/assets/icons/webhook.svg | 10 + src/assets/icons/x.svg | 3 + src/assets/javascript.png | Bin 0 -> 18387 bytes src/assets/next.png | Bin 0 -> 1486 bytes src/assets/noise-dark.png | Bin 0 -> 60984 bytes src/assets/noise-light.png | Bin 0 -> 68435 bytes src/assets/nuxt.png | Bin 0 -> 1211 bytes src/assets/php.png | Bin 0 -> 1057 bytes src/assets/react.png | Bin 0 -> 3535 bytes src/assets/solid.png | Bin 0 -> 5736 bytes src/assets/svelte.png | Bin 0 -> 2080 bytes src/assets/vue.png | Bin 0 -> 1632 bytes src/components/CardGrid.tsx | 168 + src/components/CodeDemo.tsx | 17 + src/components/CodeExample.tsx | 48 + src/components/Codeblock.tsx | 48 + src/components/CtaBox.tsx | 150 + src/components/DocsHeader.tsx | 33 + src/components/ExtensionGrid.tsx | 252 + src/components/Extensions.tsx | 35 + src/components/FilterGrid.tsx | 75 + src/components/Grid.tsx | 117 + src/components/ImageCard.tsx | 86 + src/components/MobileNavigationButton.tsx | 43 + src/components/MobileNavigationDropdown.tsx | 100 + src/components/MobileSidebarNavigation.tsx | 42 + src/components/MobileTableOfContent.tsx | 45 + src/components/NavLink.tsx | 45 + src/components/NoisePattern.tsx | 28 + src/components/PageHeader.client.tsx | 73 + src/components/PageHeader.tsx | 136 + src/components/ProductCard.tsx | 68 + src/components/ProductDropdown.tsx | 82 + src/components/Providers.tsx | 16 + src/components/Search.tsx | 151 + src/components/SearchButton.tsx | 25 + src/components/SidebarRenderer.tsx | 131 + src/components/SidebarTableOfContent.tsx | 12 + src/components/TableOfContent.tsx | 57 + src/components/TiptapLogo.tsx | 39 + src/components/TiptapLogoWithText.tsx | 43 + src/components/ToCButton.tsx | 19 + src/components/layouts/Layout.tsx | 239 + src/components/ui/Button.tsx | 57 + src/components/ui/Callout.tsx | 75 + src/components/ui/Card.tsx | 28 + src/components/ui/NavLinkButton.tsx | 36 + src/components/ui/PageEditStatus.tsx | 37 + src/components/ui/Section.tsx | 40 + src/components/ui/Sidebar.tsx | 97 + src/components/ui/Tag.tsx | 37 + .../collaboration/core-concepts/awareness.mdx | 76 + .../collaboration/core-concepts/webhooks.mdx | 58 + .../documents/content-injection.mdx | 192 + .../collaboration/documents/history.mdx | 347 + src/content/collaboration/documents/index.mdx | 75 + .../collaboration/documents/rest-api.mdx | 228 + .../getting-started/authenticate.mdx | 170 + .../collaboration/getting-started/install.mdx | 240 + .../getting-started/overview.mdx | 112 + .../collaboration/operations/configure.mdx | 95 + .../collaboration/operations/metrics.mdx | 113 + src/content/collaboration/provider/events.mdx | 115 + .../collaboration/provider/integration.mdx | 82 + src/content/collaboration/sidebar.ts | 96 + .../comments/core-concepts/configure.mdx | 57 + .../comments/core-concepts/manage-threads.mdx | 236 + .../comments/core-concepts/style-threads.mdx | 67 + .../comments/getting-started/install.mdx | 64 + .../comments/getting-started/overview.mdx | 35 + .../comments/integrate/editor-commands.mdx | 139 + src/content/comments/integrate/rest-api.mdx | 140 + src/content/comments/integrate/webhook.mdx | 240 + src/content/comments/sidebar.ts | 62 + .../capabilities/image-generation.mdx | 31 + .../text-generation/autocompletion.mdx | 51 + .../text-generation/built-in-commands.mdx | 109 + .../text-generation/custom-commands.mdx | 61 + .../capabilities/text-generation/format.mdx | 25 + .../capabilities/text-generation/index.mdx | 8 + .../text-generation/manage-responses.mdx | 157 + .../text-generation/provide-context.mdx | 39 + .../content-ai/custom-llms/integrate.mdx | 215 + .../content-ai/getting-started/configure.mdx | 21 + .../content-ai/getting-started/install.mdx | 62 + .../content-ai/getting-started/overview.mdx | 35 + src/content/content-ai/resources/privacy.mdx | 63 + src/content/content-ai/sidebar.ts | 91 + .../api/commands/content/clear-content.mdx | 29 + .../editor/api/commands/content/cut.mdx | 22 + .../editor/api/commands/content/index.mdx | 25 + .../commands/content/insert-content-at.mdx | 81 + .../api/commands/content/insert-content.mdx | 70 + .../api/commands/content/set-content.mdx | 51 + src/content/editor/api/commands/for-each.mdx | 29 + src/content/editor/api/commands/index.mdx | 269 + .../editor/api/commands/lists/index.mdx | 30 + .../api/commands/lists/lift-list-item.mdx | 15 + .../api/commands/lists/sink-list-item.mdx | 15 + .../api/commands/lists/split-list-item.mdx | 21 + .../editor/api/commands/lists/toggle-list.mdx | 37 + .../api/commands/lists/wrap-in-list.mdx | 26 + .../commands/nodes-and-marks/clear-nodes.mdx | 17 + .../nodes-and-marks/create-paragraph-near.mdx | 15 + .../commands/nodes-and-marks/delete-node.mdx | 25 + .../commands/nodes-and-marks/exit-code.mdx | 15 + .../nodes-and-marks/extend-mark-range.mdx | 38 + .../api/commands/nodes-and-marks/index.mdx | 44 + .../nodes-and-marks/join-backward.mdx | 15 + .../commands/nodes-and-marks/join-down.mdx | 15 + .../commands/nodes-and-marks/join-forward.mdx | 15 + .../join-textblock-backward.mdx | 14 + .../join-textblock-forward.mdx | 14 + .../api/commands/nodes-and-marks/join-up.mdx | 15 + .../nodes-and-marks/lift-empty-block.mdx | 15 + .../api/commands/nodes-and-marks/lift.mdx | 29 + .../nodes-and-marks/newline-in-code.mdx | 15 + .../nodes-and-marks/reset-attributes.mdx | 26 + .../api/commands/nodes-and-marks/set-mark.mdx | 25 + .../api/commands/nodes-and-marks/set-node.mdx | 25 + .../commands/nodes-and-marks/split-block.mdx | 25 + .../commands/nodes-and-marks/toggle-mark.mdx | 36 + .../commands/nodes-and-marks/toggle-node.mdx | 33 + .../commands/nodes-and-marks/toggle-wrap.mdx | 26 + .../nodes-and-marks/undo-input-rule.mdx | 15 + .../nodes-and-marks/unset-all-marks.mdx | 15 + .../commands/nodes-and-marks/unset-mark.mdx | 29 + .../nodes-and-marks/update-attributes.mdx | 31 + .../api/commands/select-textblock-end.mdx | 15 + .../api/commands/select-textblock-start.mdx | 15 + .../editor/api/commands/selection/blur.mdx | 17 + .../api/commands/selection/delete-range.mdx | 19 + .../commands/selection/delete-selection.mdx | 16 + .../editor/api/commands/selection/enter.mdx | 15 + .../editor/api/commands/selection/focus.mdx | 42 + .../editor/api/commands/selection/index.mdx | 33 + .../commands/selection/keyboard-shortcut.mdx | 21 + .../commands/selection/scroll-into-view.mdx | 15 + .../api/commands/selection/select-all.mdx | 16 + .../selection/select-node-backward.mdx | 15 + .../selection/select-node-forward.mdx | 15 + .../commands/selection/select-parent-node.mdx | 15 + .../commands/selection/set-node-selection.mdx | 20 + .../commands/selection/set-text-selection.mdx | 27 + src/content/editor/api/commands/set-meta.mdx | 30 + src/content/editor/api/editor.mdx | 424 + src/content/editor/api/events.mdx | 161 + src/content/editor/api/node-positions.mdx | 314 + src/content/editor/api/utilities/html.mdx | 123 + src/content/editor/api/utilities/index.mdx | 17 + .../editor/api/utilities/suggestion.mdx | 93 + .../editor/api/utilities/tiptap-for-php.mdx | 43 + .../editor/core-concepts/extensions.mdx | 54 + .../editor/core-concepts/introduction.mdx | 36 + .../core-concepts/keyboard-shortcuts.mdx | 104 + .../editor/core-concepts/nodes-and-marks.mdx | 17 + .../editor/core-concepts/prosemirror.mdx | 51 + src/content/editor/core-concepts/schema.mdx | 460 + .../custom-extensions/create-new.mdx | 66 + .../custom-extensions/extend-existing.mdx | 626 + .../extensions/custom-extensions/index.mdx | 67 + .../custom-extensions/node-views/examples.mdx | 27 + .../custom-extensions/node-views/index.mdx | 115 + .../node-views/javascript.mdx | 128 + .../custom-extensions/node-views/react.mdx | 150 + .../custom-extensions/node-views/vue.mdx | 244 + .../extensions/functionality/bubble-menu.mdx | 158 + .../functionality/character-count.mdx | 91 + .../functionality/collaboration-cursor.mdx | 110 + .../functionality/collaboration.mdx | 136 + .../editor/extensions/functionality/color.mdx | 72 + .../extensions/functionality/comments.mdx | 27 + .../extensions/functionality/content-ai.mdx | 29 + .../extensions/functionality/dropcursor.mdx | 76 + .../extensions/functionality/filehandler.mdx | 90 + .../extensions/functionality/floatingmenu.mdx | 145 + .../editor/extensions/functionality/focus.mdx | 66 + .../extensions/functionality/fontfamily.mdx | 72 + .../extensions/functionality/gapcursor.mdx | 40 + .../extensions/functionality/history.mdx | 25 + .../editor/extensions/functionality/index.mdx | 15 + .../functionality/invisiblecharacters.mdx | 185 + .../extensions/functionality/listkeymap.mdx | 70 + .../extensions/functionality/mathematics.mdx | 84 + .../extensions/functionality/placeholder.mdx | 166 + .../extensions/functionality/starterkit.mdx | 99 + .../functionality/table-of-contents.mdx | 226 + .../extensions/functionality/textalign.mdx | 110 + .../extensions/functionality/typography.mdx | 109 + .../extensions/functionality/undo-redo.mdx | 90 + .../extensions/functionality/uniqueid.mdx | 83 + src/content/editor/extensions/marks/bold.mdx | 91 + src/content/editor/extensions/marks/code.mdx | 86 + .../editor/extensions/marks/highlight.mdx | 100 + src/content/editor/extensions/marks/index.mdx | 15 + .../editor/extensions/marks/italic.mdx | 91 + src/content/editor/extensions/marks/link.mdx | 205 + .../editor/extensions/marks/strike.mdx | 91 + .../editor/extensions/marks/subscript.mdx | 89 + .../editor/extensions/marks/superscript.mdx | 89 + .../editor/extensions/marks/text-style.mdx | 48 + .../editor/extensions/marks/underline.mdx | 91 + .../editor/extensions/nodes/blockquote.mdx | 86 + .../editor/extensions/nodes/bullet-list.mdx | 112 + .../extensions/nodes/code-block-lowlight.mdx | 126 + .../editor/extensions/nodes/code-block.mdx | 121 + .../extensions/nodes/details-content.mdx | 51 + .../extensions/nodes/details-summary.mdx | 51 + .../editor/extensions/nodes/details.mdx | 89 + .../editor/extensions/nodes/document.mdx | 46 + src/content/editor/extensions/nodes/emoji.mdx | 137 + .../editor/extensions/nodes/hard-break.mdx | 80 + .../editor/extensions/nodes/heading.mdx | 95 + .../extensions/nodes/horizontal-rule.mdx | 64 + src/content/editor/extensions/nodes/image.mdx | 100 + src/content/editor/extensions/nodes/index.mdx | 15 + .../editor/extensions/nodes/list-item.mdx | 68 + .../editor/extensions/nodes/mention.mdx | 116 + .../editor/extensions/nodes/ordered-list.mdx | 114 + .../editor/extensions/nodes/paragraph.mdx | 74 + .../editor/extensions/nodes/table-cell.mdx | 40 + .../editor/extensions/nodes/table-header.mdx | 58 + .../editor/extensions/nodes/table-row.mdx | 40 + src/content/editor/extensions/nodes/table.mdx | 228 + .../editor/extensions/nodes/task-item.mdx | 88 + .../editor/extensions/nodes/task-list.mdx | 84 + src/content/editor/extensions/nodes/text.mdx | 44 + .../editor/extensions/nodes/youtube.mdx | 291 + src/content/editor/extensions/overview.mdx | 15 + .../editor/getting-started/configure.mdx | 136 + .../editor/getting-started/install/alpine.mdx | 150 + .../editor/getting-started/install/cdn.mdx | 32 + .../editor/getting-started/install/index.mdx | 104 + .../editor/getting-started/install/nextjs.mdx | 74 + .../editor/getting-started/install/nuxt.mdx | 176 + .../editor/getting-started/install/php.mdx | 91 + .../editor/getting-started/install/react.mdx | 146 + .../editor/getting-started/install/svelte.mdx | 115 + .../install/vanilla-javascript.mdx | 48 + .../editor/getting-started/install/vue2.mdx | 172 + .../editor/getting-started/install/vue3.mdx | 158 + .../editor/getting-started/overview.mdx | 152 + .../style-editor/custom-menus.mdx | 134 + .../getting-started/style-editor/index.mdx | 150 + src/content/editor/sidebar.ts | 698 + .../examples/advanced/clever-editor.mdx | 13 + .../advanced/collaborative-editing.mdx | 15 + src/content/examples/advanced/drawing.mdx | 13 + .../advanced/forced-content-structure.mdx | 13 + .../interactive-react-and-vue-views.mdx | 21 + src/content/examples/advanced/mentions.mdx | 13 + src/content/examples/advanced/menus.mdx | 13 + .../examples/advanced/syntax-highlighting.mdx | 13 + .../examples/basics/default-text-editor.mdx | 13 + src/content/examples/basics/formatting.mdx | 13 + src/content/examples/basics/images.mdx | 13 + src/content/examples/basics/long-texts.mdx | 13 + .../examples/basics/markdown-shortcuts.mdx | 13 + src/content/examples/basics/minimal-setup.mdx | 13 + src/content/examples/basics/tables.mdx | 13 + src/content/examples/basics/tasks.mdx | 13 + .../experiments/collaborative-fields.mdx | 18 + src/content/examples/experiments/figure.mdx | 37 + .../examples/experiments/generic-figure.mdx | 18 + src/content/examples/experiments/iframe.mdx | 31 + src/content/examples/experiments/linting.mdx | 22 + .../examples/experiments/slash-commands.mdx | 34 + .../examples/experiments/trailing-node.mdx | 48 + src/content/examples/index.mdx | 551 + src/content/examples/sidebar.ts | 133 + src/content/guides/accessibility.mdx | 37 + src/content/guides/authentication.mdx | 63 + src/content/guides/index.mdx | 138 + src/content/guides/naming-documents.mdx | 80 + src/content/guides/offline-support.mdx | 44 + src/content/guides/output-json-html.mdx | 151 + src/content/guides/pro-extensions.mdx | 118 + src/content/guides/sidebar.ts | 62 + src/content/guides/typescript.mdx | 102 + src/content/guides/upgrade-tiptap-v1.mdx | 202 + src/content/index.mdx | 345 + src/content/resources/changelog.mdx | 16 + src/content/resources/contributing.mdx | 65 + src/content/resources/pro-license.mdx | 82 + src/content/resources/sidebar.ts | 74 + src/content/sidebar.ts | 74 + src/content/templates/index.mdx | 1 + src/hooks/useCommands.ts | 78 + src/hooks/usePageTrack.ts | 49 + src/hooks/useToC.ts | 39 + src/mdx-components.tsx | 101 + src/providers/AppState.tsx | 50 + src/server/createCanonicalPath.ts | 6 + src/server/createMetadata.ts | 46 + src/server/getAllContent.ts | 10 + src/server/getAllContentPaths.ts | 30 + src/server/getAllMetadata.ts | 31 + src/server/getExtensions.ts | 48 + src/server/index.ts | 0 src/types.ts | 121 + src/utils/constants.ts | 11 + src/utils/generateBreadcrumbs.ts | 66 + src/utils/iconKit.ts | 11 + src/utils/index.ts | 10 + src/utils/sandpackConfiguration.ts | 155 + src/utils/search.ts | 23 + tailwind.config.ts | 238 + tsconfig.json | 33 + 409 files changed, 41250 insertions(+) create mode 100644 .changeset/README.md create mode 100644 .changeset/cold-guests-remain.md create mode 100644 .changeset/cold-spies-heal.md create mode 100644 .changeset/config.json create mode 100644 .changeset/curly-teachers-film.md create mode 100644 .changeset/curvy-toys-refuse.md create mode 100644 .changeset/eleven-owls-refuse.md create mode 100644 .changeset/friendly-walls-explode.md create mode 100644 .changeset/gentle-news-mix.md create mode 100644 .changeset/grumpy-rules-change.md create mode 100644 .changeset/nice-doors-eat.md create mode 100644 .changeset/pre.json create mode 100644 .changeset/silly-boats-smell.md create mode 100644 .changeset/slow-feet-hammer.md create mode 100644 .changeset/sour-boxes-invite.md create mode 100644 .changeset/sweet-keys-switch.md create mode 100644 .changeset/tidy-hotels-learn.md create mode 100644 .changeset/weak-moose-peel.md create mode 100644 .changeset/wild-crabs-lick.md create mode 100644 .changeset/witty-rocks-sneeze.md create mode 100644 .changeset/yellow-planes-return.md create mode 100644 .env.example create mode 100644 .eslintrc.json create mode 100644 .github/workflows/docsearch.yml create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 .idea/inspectionProfiles/Project_Default.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/tiptap-docs-v2.iml create mode 100644 .idea/vcs.xml create mode 100644 .vscode/settings.json create mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.md create mode 100644 Dockerfile create mode 100644 LICENSE create mode 100644 LICENSE-DOCS create mode 100644 README.md create mode 100644 custom.d.ts create mode 100644 docsearch.config.json create mode 100644 next.config.mjs create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 postcss.config.js create mode 100644 public/assets/fonts/Inter-Bold.ttf create mode 100644 public/assets/fonts/Inter-SemiBold.ttf create mode 100644 public/assets/images/example-image.jpg create mode 100644 public/assets/images/tiptap-logo.png create mode 100644 public/favicon.png create mode 100644 src/app/[...markdownPath]/page.tsx create mode 100644 src/app/[...markdownPath]/sidebars.ts create mode 100644 src/app/api/og/route.tsx create mode 100644 src/app/globals.css create mode 100644 src/app/layout.tsx create mode 100644 src/app/not-found.tsx create mode 100644 src/app/page.tsx create mode 100644 src/app/sitemap.ts create mode 100644 src/assets/alpine.png create mode 100644 src/assets/angular.png create mode 100644 src/assets/card-cover.png create mode 100644 src/assets/card-covers/examples/clever-editor.jpg create mode 100644 src/assets/card-covers/examples/collaborative-editing.jpg create mode 100644 src/assets/card-covers/examples/collaborative-fields.jpg create mode 100644 src/assets/card-covers/examples/default-text-editor.jpg create mode 100644 src/assets/card-covers/examples/drawing.jpg create mode 100644 src/assets/card-covers/examples/figure.jpg create mode 100644 src/assets/card-covers/examples/forced-content-structure.jpg create mode 100644 src/assets/card-covers/examples/formatting.jpg create mode 100644 src/assets/card-covers/examples/generic-figure.jpg create mode 100644 src/assets/card-covers/examples/iframe.jpg create mode 100644 src/assets/card-covers/examples/images.jpg create mode 100644 src/assets/card-covers/examples/interactive-views.jpg create mode 100644 src/assets/card-covers/examples/linting.jpg create mode 100644 src/assets/card-covers/examples/long-text.jpg create mode 100644 src/assets/card-covers/examples/markdown-shortcuts.jpg create mode 100644 src/assets/card-covers/examples/mentions.jpg create mode 100644 src/assets/card-covers/examples/menus.jpg create mode 100644 src/assets/card-covers/examples/minimal-setup-alternative.jpg create mode 100644 src/assets/card-covers/examples/minimal-setup.jpg create mode 100644 src/assets/card-covers/examples/slash-commands.jpg create mode 100644 src/assets/card-covers/examples/syntax-highlighting.jpg create mode 100644 src/assets/card-covers/examples/tables.jpg create mode 100644 src/assets/card-covers/examples/tasks.jpg create mode 100644 src/assets/card-covers/examples/trailing-node.jpg create mode 100644 src/assets/cdn.png create mode 100644 src/assets/collaboration.png create mode 100644 src/assets/comments.png create mode 100644 src/assets/content-ai.png create mode 100644 src/assets/content-templates.png create mode 100644 src/assets/documents.png create mode 100644 src/assets/editor.png create mode 100644 src/assets/gradient-bg-light.svg create mode 100644 src/assets/gradient-bg.svg create mode 100644 src/assets/icons/TableOfContent.svg create mode 100644 src/assets/icons/audit-logs.svg create mode 100644 src/assets/icons/cloud.svg create mode 100644 src/assets/icons/dedicated-cloud.svg create mode 100644 src/assets/icons/discord.svg create mode 100644 src/assets/icons/document-management.svg create mode 100644 src/assets/icons/github.svg create mode 100644 src/assets/icons/self-hosted.svg create mode 100644 src/assets/icons/webhook.svg create mode 100644 src/assets/icons/x.svg create mode 100644 src/assets/javascript.png create mode 100644 src/assets/next.png create mode 100644 src/assets/noise-dark.png create mode 100644 src/assets/noise-light.png create mode 100644 src/assets/nuxt.png create mode 100644 src/assets/php.png create mode 100644 src/assets/react.png create mode 100644 src/assets/solid.png create mode 100644 src/assets/svelte.png create mode 100644 src/assets/vue.png create mode 100644 src/components/CardGrid.tsx create mode 100644 src/components/CodeDemo.tsx create mode 100644 src/components/CodeExample.tsx create mode 100644 src/components/Codeblock.tsx create mode 100644 src/components/CtaBox.tsx create mode 100644 src/components/DocsHeader.tsx create mode 100644 src/components/ExtensionGrid.tsx create mode 100644 src/components/Extensions.tsx create mode 100644 src/components/FilterGrid.tsx create mode 100644 src/components/Grid.tsx create mode 100644 src/components/ImageCard.tsx create mode 100644 src/components/MobileNavigationButton.tsx create mode 100644 src/components/MobileNavigationDropdown.tsx create mode 100644 src/components/MobileSidebarNavigation.tsx create mode 100644 src/components/MobileTableOfContent.tsx create mode 100644 src/components/NavLink.tsx create mode 100644 src/components/NoisePattern.tsx create mode 100644 src/components/PageHeader.client.tsx create mode 100644 src/components/PageHeader.tsx create mode 100644 src/components/ProductCard.tsx create mode 100644 src/components/ProductDropdown.tsx create mode 100644 src/components/Providers.tsx create mode 100644 src/components/Search.tsx create mode 100644 src/components/SearchButton.tsx create mode 100644 src/components/SidebarRenderer.tsx create mode 100644 src/components/SidebarTableOfContent.tsx create mode 100644 src/components/TableOfContent.tsx create mode 100644 src/components/TiptapLogo.tsx create mode 100644 src/components/TiptapLogoWithText.tsx create mode 100644 src/components/ToCButton.tsx create mode 100644 src/components/layouts/Layout.tsx create mode 100644 src/components/ui/Button.tsx create mode 100644 src/components/ui/Callout.tsx create mode 100644 src/components/ui/Card.tsx create mode 100644 src/components/ui/NavLinkButton.tsx create mode 100644 src/components/ui/PageEditStatus.tsx create mode 100644 src/components/ui/Section.tsx create mode 100644 src/components/ui/Sidebar.tsx create mode 100644 src/components/ui/Tag.tsx create mode 100644 src/content/collaboration/core-concepts/awareness.mdx create mode 100644 src/content/collaboration/core-concepts/webhooks.mdx create mode 100644 src/content/collaboration/documents/content-injection.mdx create mode 100644 src/content/collaboration/documents/history.mdx create mode 100644 src/content/collaboration/documents/index.mdx create mode 100644 src/content/collaboration/documents/rest-api.mdx create mode 100644 src/content/collaboration/getting-started/authenticate.mdx create mode 100644 src/content/collaboration/getting-started/install.mdx create mode 100644 src/content/collaboration/getting-started/overview.mdx create mode 100644 src/content/collaboration/operations/configure.mdx create mode 100644 src/content/collaboration/operations/metrics.mdx create mode 100644 src/content/collaboration/provider/events.mdx create mode 100644 src/content/collaboration/provider/integration.mdx create mode 100644 src/content/collaboration/sidebar.ts create mode 100644 src/content/comments/core-concepts/configure.mdx create mode 100644 src/content/comments/core-concepts/manage-threads.mdx create mode 100644 src/content/comments/core-concepts/style-threads.mdx create mode 100644 src/content/comments/getting-started/install.mdx create mode 100644 src/content/comments/getting-started/overview.mdx create mode 100644 src/content/comments/integrate/editor-commands.mdx create mode 100644 src/content/comments/integrate/rest-api.mdx create mode 100644 src/content/comments/integrate/webhook.mdx create mode 100644 src/content/comments/sidebar.ts create mode 100644 src/content/content-ai/capabilities/image-generation.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/autocompletion.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/built-in-commands.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/custom-commands.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/format.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/index.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/manage-responses.mdx create mode 100644 src/content/content-ai/capabilities/text-generation/provide-context.mdx create mode 100644 src/content/content-ai/custom-llms/integrate.mdx create mode 100644 src/content/content-ai/getting-started/configure.mdx create mode 100644 src/content/content-ai/getting-started/install.mdx create mode 100644 src/content/content-ai/getting-started/overview.mdx create mode 100644 src/content/content-ai/resources/privacy.mdx create mode 100644 src/content/content-ai/sidebar.ts create mode 100644 src/content/editor/api/commands/content/clear-content.mdx create mode 100644 src/content/editor/api/commands/content/cut.mdx create mode 100644 src/content/editor/api/commands/content/index.mdx create mode 100644 src/content/editor/api/commands/content/insert-content-at.mdx create mode 100644 src/content/editor/api/commands/content/insert-content.mdx create mode 100644 src/content/editor/api/commands/content/set-content.mdx create mode 100644 src/content/editor/api/commands/for-each.mdx create mode 100644 src/content/editor/api/commands/index.mdx create mode 100644 src/content/editor/api/commands/lists/index.mdx create mode 100644 src/content/editor/api/commands/lists/lift-list-item.mdx create mode 100644 src/content/editor/api/commands/lists/sink-list-item.mdx create mode 100644 src/content/editor/api/commands/lists/split-list-item.mdx create mode 100644 src/content/editor/api/commands/lists/toggle-list.mdx create mode 100644 src/content/editor/api/commands/lists/wrap-in-list.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/clear-nodes.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/create-paragraph-near.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/delete-node.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/exit-code.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/extend-mark-range.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/index.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/join-backward.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/join-down.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/join-forward.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/join-textblock-backward.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/join-textblock-forward.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/join-up.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/lift-empty-block.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/lift.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/newline-in-code.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/reset-attributes.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/set-mark.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/set-node.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/split-block.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/toggle-mark.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/toggle-node.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/toggle-wrap.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/undo-input-rule.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/unset-all-marks.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/unset-mark.mdx create mode 100644 src/content/editor/api/commands/nodes-and-marks/update-attributes.mdx create mode 100644 src/content/editor/api/commands/select-textblock-end.mdx create mode 100644 src/content/editor/api/commands/select-textblock-start.mdx create mode 100644 src/content/editor/api/commands/selection/blur.mdx create mode 100644 src/content/editor/api/commands/selection/delete-range.mdx create mode 100644 src/content/editor/api/commands/selection/delete-selection.mdx create mode 100644 src/content/editor/api/commands/selection/enter.mdx create mode 100644 src/content/editor/api/commands/selection/focus.mdx create mode 100644 src/content/editor/api/commands/selection/index.mdx create mode 100644 src/content/editor/api/commands/selection/keyboard-shortcut.mdx create mode 100644 src/content/editor/api/commands/selection/scroll-into-view.mdx create mode 100644 src/content/editor/api/commands/selection/select-all.mdx create mode 100644 src/content/editor/api/commands/selection/select-node-backward.mdx create mode 100644 src/content/editor/api/commands/selection/select-node-forward.mdx create mode 100644 src/content/editor/api/commands/selection/select-parent-node.mdx create mode 100644 src/content/editor/api/commands/selection/set-node-selection.mdx create mode 100644 src/content/editor/api/commands/selection/set-text-selection.mdx create mode 100644 src/content/editor/api/commands/set-meta.mdx create mode 100644 src/content/editor/api/editor.mdx create mode 100644 src/content/editor/api/events.mdx create mode 100644 src/content/editor/api/node-positions.mdx create mode 100644 src/content/editor/api/utilities/html.mdx create mode 100644 src/content/editor/api/utilities/index.mdx create mode 100644 src/content/editor/api/utilities/suggestion.mdx create mode 100644 src/content/editor/api/utilities/tiptap-for-php.mdx create mode 100644 src/content/editor/core-concepts/extensions.mdx create mode 100644 src/content/editor/core-concepts/introduction.mdx create mode 100644 src/content/editor/core-concepts/keyboard-shortcuts.mdx create mode 100644 src/content/editor/core-concepts/nodes-and-marks.mdx create mode 100644 src/content/editor/core-concepts/prosemirror.mdx create mode 100644 src/content/editor/core-concepts/schema.mdx create mode 100644 src/content/editor/extensions/custom-extensions/create-new.mdx create mode 100644 src/content/editor/extensions/custom-extensions/extend-existing.mdx create mode 100644 src/content/editor/extensions/custom-extensions/index.mdx create mode 100644 src/content/editor/extensions/custom-extensions/node-views/examples.mdx create mode 100644 src/content/editor/extensions/custom-extensions/node-views/index.mdx create mode 100644 src/content/editor/extensions/custom-extensions/node-views/javascript.mdx create mode 100644 src/content/editor/extensions/custom-extensions/node-views/react.mdx create mode 100644 src/content/editor/extensions/custom-extensions/node-views/vue.mdx create mode 100644 src/content/editor/extensions/functionality/bubble-menu.mdx create mode 100644 src/content/editor/extensions/functionality/character-count.mdx create mode 100644 src/content/editor/extensions/functionality/collaboration-cursor.mdx create mode 100644 src/content/editor/extensions/functionality/collaboration.mdx create mode 100644 src/content/editor/extensions/functionality/color.mdx create mode 100644 src/content/editor/extensions/functionality/comments.mdx create mode 100644 src/content/editor/extensions/functionality/content-ai.mdx create mode 100644 src/content/editor/extensions/functionality/dropcursor.mdx create mode 100644 src/content/editor/extensions/functionality/filehandler.mdx create mode 100644 src/content/editor/extensions/functionality/floatingmenu.mdx create mode 100644 src/content/editor/extensions/functionality/focus.mdx create mode 100644 src/content/editor/extensions/functionality/fontfamily.mdx create mode 100644 src/content/editor/extensions/functionality/gapcursor.mdx create mode 100644 src/content/editor/extensions/functionality/history.mdx create mode 100644 src/content/editor/extensions/functionality/index.mdx create mode 100644 src/content/editor/extensions/functionality/invisiblecharacters.mdx create mode 100644 src/content/editor/extensions/functionality/listkeymap.mdx create mode 100644 src/content/editor/extensions/functionality/mathematics.mdx create mode 100644 src/content/editor/extensions/functionality/placeholder.mdx create mode 100644 src/content/editor/extensions/functionality/starterkit.mdx create mode 100644 src/content/editor/extensions/functionality/table-of-contents.mdx create mode 100644 src/content/editor/extensions/functionality/textalign.mdx create mode 100644 src/content/editor/extensions/functionality/typography.mdx create mode 100644 src/content/editor/extensions/functionality/undo-redo.mdx create mode 100644 src/content/editor/extensions/functionality/uniqueid.mdx create mode 100644 src/content/editor/extensions/marks/bold.mdx create mode 100644 src/content/editor/extensions/marks/code.mdx create mode 100644 src/content/editor/extensions/marks/highlight.mdx create mode 100644 src/content/editor/extensions/marks/index.mdx create mode 100644 src/content/editor/extensions/marks/italic.mdx create mode 100644 src/content/editor/extensions/marks/link.mdx create mode 100644 src/content/editor/extensions/marks/strike.mdx create mode 100644 src/content/editor/extensions/marks/subscript.mdx create mode 100644 src/content/editor/extensions/marks/superscript.mdx create mode 100644 src/content/editor/extensions/marks/text-style.mdx create mode 100644 src/content/editor/extensions/marks/underline.mdx create mode 100644 src/content/editor/extensions/nodes/blockquote.mdx create mode 100644 src/content/editor/extensions/nodes/bullet-list.mdx create mode 100644 src/content/editor/extensions/nodes/code-block-lowlight.mdx create mode 100644 src/content/editor/extensions/nodes/code-block.mdx create mode 100644 src/content/editor/extensions/nodes/details-content.mdx create mode 100644 src/content/editor/extensions/nodes/details-summary.mdx create mode 100644 src/content/editor/extensions/nodes/details.mdx create mode 100644 src/content/editor/extensions/nodes/document.mdx create mode 100644 src/content/editor/extensions/nodes/emoji.mdx create mode 100644 src/content/editor/extensions/nodes/hard-break.mdx create mode 100644 src/content/editor/extensions/nodes/heading.mdx create mode 100644 src/content/editor/extensions/nodes/horizontal-rule.mdx create mode 100644 src/content/editor/extensions/nodes/image.mdx create mode 100644 src/content/editor/extensions/nodes/index.mdx create mode 100644 src/content/editor/extensions/nodes/list-item.mdx create mode 100644 src/content/editor/extensions/nodes/mention.mdx create mode 100644 src/content/editor/extensions/nodes/ordered-list.mdx create mode 100644 src/content/editor/extensions/nodes/paragraph.mdx create mode 100644 src/content/editor/extensions/nodes/table-cell.mdx create mode 100644 src/content/editor/extensions/nodes/table-header.mdx create mode 100644 src/content/editor/extensions/nodes/table-row.mdx create mode 100644 src/content/editor/extensions/nodes/table.mdx create mode 100644 src/content/editor/extensions/nodes/task-item.mdx create mode 100644 src/content/editor/extensions/nodes/task-list.mdx create mode 100644 src/content/editor/extensions/nodes/text.mdx create mode 100644 src/content/editor/extensions/nodes/youtube.mdx create mode 100644 src/content/editor/extensions/overview.mdx create mode 100644 src/content/editor/getting-started/configure.mdx create mode 100644 src/content/editor/getting-started/install/alpine.mdx create mode 100644 src/content/editor/getting-started/install/cdn.mdx create mode 100644 src/content/editor/getting-started/install/index.mdx create mode 100644 src/content/editor/getting-started/install/nextjs.mdx create mode 100644 src/content/editor/getting-started/install/nuxt.mdx create mode 100644 src/content/editor/getting-started/install/php.mdx create mode 100644 src/content/editor/getting-started/install/react.mdx create mode 100644 src/content/editor/getting-started/install/svelte.mdx create mode 100644 src/content/editor/getting-started/install/vanilla-javascript.mdx create mode 100644 src/content/editor/getting-started/install/vue2.mdx create mode 100644 src/content/editor/getting-started/install/vue3.mdx create mode 100644 src/content/editor/getting-started/overview.mdx create mode 100644 src/content/editor/getting-started/style-editor/custom-menus.mdx create mode 100644 src/content/editor/getting-started/style-editor/index.mdx create mode 100644 src/content/editor/sidebar.ts create mode 100644 src/content/examples/advanced/clever-editor.mdx create mode 100644 src/content/examples/advanced/collaborative-editing.mdx create mode 100644 src/content/examples/advanced/drawing.mdx create mode 100644 src/content/examples/advanced/forced-content-structure.mdx create mode 100644 src/content/examples/advanced/interactive-react-and-vue-views.mdx create mode 100644 src/content/examples/advanced/mentions.mdx create mode 100644 src/content/examples/advanced/menus.mdx create mode 100644 src/content/examples/advanced/syntax-highlighting.mdx create mode 100644 src/content/examples/basics/default-text-editor.mdx create mode 100644 src/content/examples/basics/formatting.mdx create mode 100644 src/content/examples/basics/images.mdx create mode 100644 src/content/examples/basics/long-texts.mdx create mode 100644 src/content/examples/basics/markdown-shortcuts.mdx create mode 100644 src/content/examples/basics/minimal-setup.mdx create mode 100644 src/content/examples/basics/tables.mdx create mode 100644 src/content/examples/basics/tasks.mdx create mode 100644 src/content/examples/experiments/collaborative-fields.mdx create mode 100644 src/content/examples/experiments/figure.mdx create mode 100644 src/content/examples/experiments/generic-figure.mdx create mode 100644 src/content/examples/experiments/iframe.mdx create mode 100644 src/content/examples/experiments/linting.mdx create mode 100644 src/content/examples/experiments/slash-commands.mdx create mode 100644 src/content/examples/experiments/trailing-node.mdx create mode 100644 src/content/examples/index.mdx create mode 100644 src/content/examples/sidebar.ts create mode 100644 src/content/guides/accessibility.mdx create mode 100644 src/content/guides/authentication.mdx create mode 100644 src/content/guides/index.mdx create mode 100644 src/content/guides/naming-documents.mdx create mode 100644 src/content/guides/offline-support.mdx create mode 100644 src/content/guides/output-json-html.mdx create mode 100644 src/content/guides/pro-extensions.mdx create mode 100644 src/content/guides/sidebar.ts create mode 100644 src/content/guides/typescript.mdx create mode 100644 src/content/guides/upgrade-tiptap-v1.mdx create mode 100644 src/content/index.mdx create mode 100644 src/content/resources/changelog.mdx create mode 100644 src/content/resources/contributing.mdx create mode 100644 src/content/resources/pro-license.mdx create mode 100644 src/content/resources/sidebar.ts create mode 100644 src/content/sidebar.ts create mode 100644 src/content/templates/index.mdx create mode 100644 src/hooks/useCommands.ts create mode 100644 src/hooks/usePageTrack.ts create mode 100644 src/hooks/useToC.ts create mode 100644 src/mdx-components.tsx create mode 100644 src/providers/AppState.tsx create mode 100644 src/server/createCanonicalPath.ts create mode 100644 src/server/createMetadata.ts create mode 100644 src/server/getAllContent.ts create mode 100644 src/server/getAllContentPaths.ts create mode 100644 src/server/getAllMetadata.ts create mode 100644 src/server/getExtensions.ts create mode 100644 src/server/index.ts create mode 100644 src/types.ts create mode 100644 src/utils/constants.ts create mode 100644 src/utils/generateBreadcrumbs.ts create mode 100644 src/utils/iconKit.ts create mode 100644 src/utils/index.ts create mode 100644 src/utils/sandpackConfiguration.ts create mode 100644 src/utils/search.ts create mode 100644 tailwind.config.ts create mode 100644 tsconfig.json diff --git a/.changeset/README.md b/.changeset/README.md new file mode 100644 index 0000000..e5b6d8d --- /dev/null +++ b/.changeset/README.md @@ -0,0 +1,8 @@ +# Changesets + +Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works +with multi-package repos, or single-package repos to help you version and publish your code. You can +find the full documentation for it [in our repository](https://github.com/changesets/changesets) + +We have a quick list of common questions to get you started engaging with this project in +[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) diff --git a/.changeset/cold-guests-remain.md b/.changeset/cold-guests-remain.md new file mode 100644 index 0000000..82bb2b9 --- /dev/null +++ b/.changeset/cold-guests-remain.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Updated dedicated-cloud and self-hosted icons diff --git a/.changeset/cold-spies-heal.md b/.changeset/cold-spies-heal.md new file mode 100644 index 0000000..9d3d602 --- /dev/null +++ b/.changeset/cold-spies-heal.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Increased max-width for h3 and smaller to look better in combination with balanced text styles diff --git a/.changeset/config.json b/.changeset/config.json new file mode 100644 index 0000000..8639ae5 --- /dev/null +++ b/.changeset/config.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://unpkg.com/@changesets/config@3.0.1/schema.json", + "changelog": "@changesets/cli/changelog", + "commit": false, + "fixed": [], + "linked": [], + "access": "restricted", + "baseBranch": "main", + "updateInternalDependencies": "patch", + "ignore": [] +} diff --git a/.changeset/curly-teachers-film.md b/.changeset/curly-teachers-film.md new file mode 100644 index 0000000..25f58f5 --- /dev/null +++ b/.changeset/curly-teachers-film.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Increase margin for section children diff --git a/.changeset/curvy-toys-refuse.md b/.changeset/curvy-toys-refuse.md new file mode 100644 index 0000000..291a5ea --- /dev/null +++ b/.changeset/curvy-toys-refuse.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Use dvh height calculations for mobile sidebars to ensure mobile UI elements won't cause the sidebar to be cutoff at the bottom of the screen diff --git a/.changeset/eleven-owls-refuse.md b/.changeset/eleven-owls-refuse.md new file mode 100644 index 0000000..27be987 --- /dev/null +++ b/.changeset/eleven-owls-refuse.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Add link styles & hover state inside table cells diff --git a/.changeset/friendly-walls-explode.md b/.changeset/friendly-walls-explode.md new file mode 100644 index 0000000..24ab57f --- /dev/null +++ b/.changeset/friendly-walls-explode.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Added options to hide all and free filters for extension grids diff --git a/.changeset/gentle-news-mix.md b/.changeset/gentle-news-mix.md new file mode 100644 index 0000000..f10c781 --- /dev/null +++ b/.changeset/gentle-news-mix.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Fix for the mobile navigation dropdown showing an invalid active item when the pathname is empty diff --git a/.changeset/grumpy-rules-change.md b/.changeset/grumpy-rules-change.md new file mode 100644 index 0000000..fa03d90 --- /dev/null +++ b/.changeset/grumpy-rules-change.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Added images to the Schema objects diff --git a/.changeset/nice-doors-eat.md b/.changeset/nice-doors-eat.md new file mode 100644 index 0000000..4714d5e --- /dev/null +++ b/.changeset/nice-doors-eat.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Fixed the favicon path to load with the full page domain diff --git a/.changeset/pre.json b/.changeset/pre.json new file mode 100644 index 0000000..474b9cf --- /dev/null +++ b/.changeset/pre.json @@ -0,0 +1,25 @@ +{ + "mode": "pre", + "tag": "beta", + "initialVersions": { + "tiptap-docs": "1.0.0-beta.0" + }, + "changesets": [ + "cold-guests-remain", + "cold-spies-heal", + "curly-teachers-film", + "curvy-toys-refuse", + "eleven-owls-refuse", + "gentle-news-mix", + "grumpy-rules-change", + "nice-doors-eat", + "silly-boats-smell", + "slow-feet-hammer", + "sour-boxes-invite", + "sweet-keys-switch", + "tidy-hotels-learn", + "weak-moose-peel", + "wild-crabs-lick", + "witty-rocks-sneeze" + ] +} diff --git a/.changeset/silly-boats-smell.md b/.changeset/silly-boats-smell.md new file mode 100644 index 0000000..0ccc239 --- /dev/null +++ b/.changeset/silly-boats-smell.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Added new icon set for home page diff --git a/.changeset/slow-feet-hammer.md b/.changeset/slow-feet-hammer.md new file mode 100644 index 0000000..ff429d3 --- /dev/null +++ b/.changeset/slow-feet-hammer.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Fixed issues with basepath URLs in footer links diff --git a/.changeset/sour-boxes-invite.md b/.changeset/sour-boxes-invite.md new file mode 100644 index 0000000..35a4e72 --- /dev/null +++ b/.changeset/sour-boxes-invite.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Fixed page tracking via adding an initial mount check diff --git a/.changeset/sweet-keys-switch.md b/.changeset/sweet-keys-switch.md new file mode 100644 index 0000000..21b029d --- /dev/null +++ b/.changeset/sweet-keys-switch.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': minor +--- + +Added changesets for versioning & changelog generation diff --git a/.changeset/tidy-hotels-learn.md b/.changeset/tidy-hotels-learn.md new file mode 100644 index 0000000..f9571f9 --- /dev/null +++ b/.changeset/tidy-hotels-learn.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Added Hocuspocus links to footer diff --git a/.changeset/weak-moose-peel.md b/.changeset/weak-moose-peel.md new file mode 100644 index 0000000..bfb847d --- /dev/null +++ b/.changeset/weak-moose-peel.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Adjust code in anchor styles removing the bottom border & adding a highlight style for the code diff --git a/.changeset/wild-crabs-lick.md b/.changeset/wild-crabs-lick.md new file mode 100644 index 0000000..7a3e593 --- /dev/null +++ b/.changeset/wild-crabs-lick.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Added missing extension pages diff --git a/.changeset/witty-rocks-sneeze.md b/.changeset/witty-rocks-sneeze.md new file mode 100644 index 0000000..b02b7d9 --- /dev/null +++ b/.changeset/witty-rocks-sneeze.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': patch +--- + +Decrease font size in mdx table cells diff --git a/.changeset/yellow-planes-return.md b/.changeset/yellow-planes-return.md new file mode 100644 index 0000000..43b64f3 --- /dev/null +++ b/.changeset/yellow-planes-return.md @@ -0,0 +1,5 @@ +--- +'tiptap-docs': major +--- + +**We're happy to announce that we finally released our new Tiptap documentation!** - Welcome to the official documentation for all Tiptap products! Here, you'll find comprehensive guides, detailed examples, and in-depth documentation covering everything you need to know about working with Tiptap products. \ No newline at end of file diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..df069e7 --- /dev/null +++ b/.env.example @@ -0,0 +1,16 @@ +NEXT_PUBLIC_REPO="ueberdosis/tiptap-docs-v2" +NEXT_PUBLIC_REPO_BASE="/src/app/" +NEXT_PUBLIC_DOCSEARCH_API_KEY="" +NEXT_PUBLIC_DOCSEARCH_HOST="" +NEXT_PUBLIC_DOCSEARCH_INDEX="" +NEXT_PUBLIC_DOCSEARCH_PORT="" +NEXT_PUBLIC_DOCSEARCH_PROTOCOL="" +NEXT_PUBLIC_COOKIEBOT_ID="" +NEXT_PUBLIC_DEMO_URL="https://embed.tiptap.dev/preview" +NEXT_PUBLIC_DEMO_URL_PRO="https://embed-pro.tiptap.dev/preview" +NEXT_PUBLIC_BASE_PATH="" +NEXT_PUBLIC_DOMAIN="" +NEXT_PUBLIC_GTM_ID="" + +NEXT_DOMAIN="" +BASE_PATH="" \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json new file mode 100644 index 0000000..5873f44 --- /dev/null +++ b/.eslintrc.json @@ -0,0 +1,11 @@ +{ + "extends": ["next/core-web-vitals", "plugin:prettier/recommended", "plugin:mdx/recommended"], + "rules": { + "no-tabs": "error", + "comma-dangle": ["error", "always-multiline"], + "eol-last": ["error", "always"], + "no-unused-vars": "warn", + "prefer-template": "error", + "import/order": "error" + } +} diff --git a/.github/workflows/docsearch.yml b/.github/workflows/docsearch.yml new file mode 100644 index 0000000..7d99643 --- /dev/null +++ b/.github/workflows/docsearch.yml @@ -0,0 +1,29 @@ +# Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. +# Documentation: https://docs.github.com/en/actions + +name: docsearch + +on: + deployment_status: + workflow_dispatch: + schedule: + - cron: '5 0 * * *' + +jobs: + + docsearch: + if: github.event.deployment_status.state == 'success' + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3.5.3 + + - name: Run DocSearch Scraper + shell: bash + run: | + docker run \ + -e TYPESENSE_API_KEY=${{ secrets.TYPESENSE_API_KEY }} \ + -e TYPESENSE_HOST="${{ secrets.TYPESENSE_HOST }}" \ + -e TYPESENSE_PORT="${{ secrets.TYPESENSE_PORT }}" \ + -e TYPESENSE_PROTOCOL="${{ secrets.TYPESENSE_PROTOCOL }}" \ + -e CONFIG="$(cat docsearch.config.json | jq -r tostring)" \ + typesense/docsearch-scraper diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8170ca7 --- /dev/null +++ b/.gitignore @@ -0,0 +1,40 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. +*.env +.env + +public/sitemap.xml + +# dependencies +/node_modules +/.pnp +.pnp.js +.yarn/install-state.gz + +# testing +/coverage + +# next.js +/.next/ +/out/ + +# production +/build + +# misc +.DS_Store +*.pem + +# debug +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# local env files +.env*.local + +# vercel +.vercel + +# typescript +*.tsbuildinfo +next-env.d.ts diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..b58b603 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,5 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..5094d00 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/tiptap-docs-v2.iml b/.idea/tiptap-docs-v2.iml new file mode 100644 index 0000000..24643cc --- /dev/null +++ b/.idea/tiptap-docs-v2.iml @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..c152c01 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "tailwindCSS.rootFontSize": 16, + "editor.defaultFormatter": "dbaeumer.vscode-eslint", + "[mdx]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + } +} diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1e37e56 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,32 @@ +# tiptap-docs + +## 1.0.0-beta.3 + +### Patch Changes + +- 0a65fa9: Updated dedicated-cloud and self-hosted icons +- a82b249: Increased max-width for h3 and smaller to look better in combination with balanced text styles +- 6f08ede: Increase margin for section children +- a58865c: Add link styles & hover state inside table cells +- f8b1bb8: Adjust code in anchor styles removing the bottom border & adding a highlight style for the code +- 8d4e575: Decrease font size in mdx table cells + +## 1.0.0-beta.2 + +### Patch Changes + +- Use dvh height calculations for mobile sidebars to ensure mobile UI elements won't cause the sidebar to be cutoff at the bottom of the screen +- Fix for the mobile navigation dropdown showing an invalid active item when the pathname is empty +- Added images to the Schema objects +- Fixed the favicon path to load with the full page domain +- Added new icon set for home page +- Fixed issues with basepath URLs in footer links +- Fixed page tracking via adding an initial mount check +- Added Hocuspocus links to footer +- Added missing extension pages + +## 1.0.0-beta.1 + +### Minor Changes + +- a15824e: Added changesets for versioning & changelog generation diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..0552f62 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Contribution Guidelines + +Thank you for your interest in contributing to the Tiptap documentation. We welcome contributions from everyone and appreciate your help in making our documentation even better. + +## How to Contribute + +To contribute, please follow these steps: + +1. **Fork the Repository**: Start by forking the repository and cloning it to your local machine. +2. **Create a New Branch**: Create a new branch for your changes to keep your work organized and separate from the main branch. +3. **Make Your Changes**: Implement your changes or additions to the documentation. +4. **Test Your Changes**: Ensure your changes work correctly and do not introduce any issues. +5. **Create a Changeset**: Run `npx changeset` to create a new changeset. Select the appropriate change type (patch, minor, or major) and write a meaningful message describing your changes. +6. **Commit Your Changes**: Commit your changes with a clear and descriptive commit message. +7. **Push to Your Fork**: Push your changes to your fork on GitHub. +8. **Create a Pull Request**: Open a pull request to the `main` branch of the original repository. Provide a detailed description of your changes in the pull request. +9. **Review and Merge**: Wait for a maintainer to review your changes. Once approved, your changes will be merged. + +## Creating Versions + +We use [changesets](https://github.com/changesets/changesets) for versioning. To create a new version, run `npx changeset version` in your terminal. This command will process all changesets (if the branch is not on a pre-release), create a new version, and update the `CHANGELOG.md` file accordingly. + +## License + +By contributing, you agree that your contributions will be licensed under the same license as the project. For more details, please refer to the [LICENSE.md](LICENSE) file. + +Thank you for helping us improve Tiptap's documentation! \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..05a458b --- /dev/null +++ b/Dockerfile @@ -0,0 +1,60 @@ +FROM node:20-alpine AS base + +# 1. Install dependencies only when needed +FROM base AS deps +# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed. +RUN apk add --no-cache libc6-compat + +WORKDIR /app + +# Install dependencies based on the preferred package manager +COPY package.json yarn.lock* package-lock.json* pnpm-lock.yaml* ./ +RUN \ + if [ -f yarn.lock ]; then yarn --frozen-lockfile; \ + elif [ -f package-lock.json ]; then npm ci; \ + elif [ -f pnpm-lock.yaml ]; then corepack enable pnpm && pnpm i; \ + else echo "Lockfile not found." && exit 1; \ + fi + + +# 2. Rebuild the source code only when needed +FROM base AS builder +WORKDIR /app + +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +RUN npm run build + +# 2.5 ;) Dev runner +FROM base AS dev_runner +WORKDIR /app + +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +# 3. Production image, copy all the files and run next +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV=production + +RUN addgroup -g 1001 -S nodejs +RUN adduser -S nextjs -u 1001 + +COPY --from=builder /app/public ./public + +# Automatically leverage output traces to reduce image size +# https://nextjs.org/docs/advanced-features/output-file-tracing +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static + + +USER nextjs + +EXPOSE 3000 + +ENV PORT 3000 +ENV HOSTNAME 0.0.0.0 + +CMD ["node", "server.js"] \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..dd160b0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +Copyright 2024 Tiptap GmbH, Berlin, Germany + +Tiptap Documentation Software License + +"You" means (a) a legal entity accessing the Software, if the use of the Software will be on behalf of the legal entity; or (b) a natural person accessing the Software for its own use of the Software. + +"Development Use" means the use of the Software on a single computer to display the Documentation and to further develop, test and demonstrate modifications of the Documentation. + +"Documentation" means the documentation for the Tiptap editor, describing the functionality and use of the Tiptap editor. The Documentation is made available under a separate license and can currently be accessed under the URL https://tiptap.dev/docs/. + +"Software" means the proprietary software (including its source code) of Tiptap that is used to display and modify the Documentation. The Software is solely available under this license and can currently be accessed under the URL https://github.com/ueberdosis/tiptap-docs. + +Permission under copyright law is hereby granted, free of charge, to You to copy and modify the Software solely for the purpose of Development Use. The rights granted to you are subject to the following conditions: + +- The copyright notice and this License shall be included in all copies or substantial portions of the Software, +- You may not distribute the Software and/or make the Software available in any way (including remote or cloud access) to third parties, +- You may not use the Software to obtain commercial advantage or monetary compensation. + +All rights not expressly granted in this License are reserved. If You want to use the Software for any purpose not expressly permitted under this License, You must obtain the required rights under a separate written agreement with Tiptap. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/LICENSE-DOCS b/LICENSE-DOCS new file mode 100644 index 0000000..cc50a6e --- /dev/null +++ b/LICENSE-DOCS @@ -0,0 +1,11 @@ +MIT License + +Note: This license applies only to the src/content files (mdx) in the docs directory. + +Copyright (c) 2024, Tiptap GmbH + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..8a15ce2 --- /dev/null +++ b/README.md @@ -0,0 +1,23 @@ +# Tiptap Documentation + +Welcome to the official documentation for all Tiptap products! Here, you'll find comprehensive guides, detailed examples, and in-depth documentation covering everything you need to know about our offerings. + +## Available Documentation + +Our documentation includes resources for all our major products: +- **Editor**: Learn how to integrate, customize, and extend the Tiptap editor. +- **Collaboration**: Find out how to enable real-time collaboration features in your projects. +- **Document AI**: Discover how to leverage AI for document processing and automation. +- **Comments**: Implement and manage a robust commenting system. + +Explore the full documentation at [tiptap.dev](https://tiptap.dev/docs). + +## Contributing + +We greatly appreciate and encourage contributions from the community. If you're interested in contributing to our documentation, please make sure to read and follow our [contributing guidelines](CONTRIBUTING.md). Your efforts help us improve and keep our documentation up to date, ensuring that everyone has access to the best resources possible. + +Thank you for being a part of the Tiptap community! + +## License + +This project is licensed under the [Tiptap Documentation Software License](LICENSE) license. This applies to all files except those in the `src/content` directory, which contains the documentation content. The documentation content is licensed under the [MIT](LICENSE-DOCS) license. \ No newline at end of file diff --git a/custom.d.ts b/custom.d.ts new file mode 100644 index 0000000..4d848cf --- /dev/null +++ b/custom.d.ts @@ -0,0 +1,10 @@ +declare module "*.svg?url" { + const content: { + src: string; + height: number; + width: number; + blurWidth: number; + blurHeight: number; + }; + export default content; +} diff --git a/docsearch.config.json b/docsearch.config.json new file mode 100644 index 0000000..9991395 --- /dev/null +++ b/docsearch.config.json @@ -0,0 +1,41 @@ +{ + "index_name": "tiptap_v2", + "start_urls": [ + "https://tiptap.dev/docs" + ], + "sitemap_urls": [ + "https://tiptap.dev/docs/sitemap.xml" + ], + "sitemap_alternate_links": true, + "stop_urls": [], + "selectors": { + "default": { + "lvl0": { + "selector": "a[data-breadcrumb=\"0\"]", + "global": true, + "default_value": "All docs" + }, + "lvl1": "h1", + "lvl2": "h2", + "lvl3": "h3", + "lvl4": "h4", + "lvl5": "h5", + "lvl6": "h6", + "text": "p, li, pre, td" + } + }, + "strip_chars": " .,;:#", + "custom_settings": { + "separatorsToIndex": "_", + "attributesForFaceting": [ + "type", + "lang" + ], + "attributesToRetrieve": [ + "hierarchy", + "text", + "anchor", + "url" + ] + } +} diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..7665915 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,57 @@ +import createMdx from "@next/mdx"; +import remarkFrontmatter from "remark-frontmatter"; +import remarkMdxFrontmatter from "remark-mdx-frontmatter"; +import rehypeHighlight from "rehype-highlight"; +import remarkGfm from "remark-gfm"; + +/** @type {import('next').NextConfig} */ +const nextConfig = { + webpack(config) { + // Grab the existing rule that handles SVG imports + const fileLoaderRule = config.module.rules.find((rule) => + rule.test?.test?.(".svg"), + ); + + config.module.rules.push( + // Reapply the existing rule, but only for svg imports ending in ?url + { + ...fileLoaderRule, + test: /\.svg$/i, + resourceQuery: /url/, // *.svg?url + }, + // Convert all other *.svg imports to React components + { + test: /\.svg$/i, + issuer: fileLoaderRule.issuer, + resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, // exclude if *.svg?url + use: ["@svgr/webpack"], + }, + ); + + // Modify the file loader rule to ignore *.svg, since we have it handled now. + fileLoaderRule.exclude = /\.svg$/i; + + return config; + }, + pageExtensions: ["js", "jsx", "mdx", "ts", "tsx"], + images: { unoptimized: true }, + basePath: process.env.BASE_PATH ?? "", + async redirects() { + return [ + { + source: '/content-ai/capabilities/text-generation', + destination: '/content-ai/capabilities/text-generation/built-in-commands', + permanent: false, + }, + ] + }, +}; + +const withMDX = createMdx({ + options: { + remarkPlugins: [remarkFrontmatter, remarkMdxFrontmatter, remarkGfm], + rehypePlugins: [rehypeHighlight], + }, +}); + +export default withMDX(nextConfig); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..7a7f887 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,15608 @@ +{ + "name": "tiptap-docs", + "version": "1.0.0-beta.1", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "tiptap-docs", + "version": "1.0.0-beta.1", + "dependencies": { + "@codesandbox/sandpack-react": "^2.13.5", + "@codesandbox/sandpack-themes": "^2.0.21", + "@mantine/hooks": "^7.6.2", + "@mdx-js/loader": "^3.0.1", + "@mdx-js/react": "^3.0.1", + "@next/mdx": "^14.1.3", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-slot": "^1.0.2", + "@tiptap/extension-focus": "^2.4.0", + "@types/mdx": "^2.0.11", + "clsx": "^2.1.0", + "cmdk": "^1.0.0", + "front-matter": "^4.0.2", + "iframe-resizer-react": "1.0.13", + "lucide-react": "^0.358.0", + "next": "14.1.3", + "react": "^18", + "react-dom": "^18", + "react-instantsearch": "^7.7.0", + "rehype-highlight": "^7.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "remark-mdx-frontmatter": "^4.0.0", + "short-uuid": "^4.2.2", + "slugify": "^1.6.6", + "sonner": "^1.4.3", + "tw-merge": "^0.0.1-alpha.3", + "typesense-instantsearch-adapter": "^2.8.0", + "yarn": "^1.22.22" + }, + "devDependencies": { + "@changesets/cli": "^2.27.5", + "@svgr/webpack": "^8.1.0", + "@tailwindcss/typography": "^0.5.10", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "dotenv": "^16.4.5", + "eslint": "^8", + "eslint-config-next": "14.1.3", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-mdx": "^3.1.5", + "eslint-plugin-prettier": "^5.1.3", + "postcss": "^8", + "prettier": "3.2.5", + "tailwindcss": "^3.4.3", + "tailwindcss-animate": "^1.0.7", + "ts-node": "^10.9.2", + "typescript": "^5" + } + }, + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", + "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@algolia/cache-browser-local-storage": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-browser-local-storage/-/cache-browser-local-storage-4.22.1.tgz", + "integrity": "sha512-Sw6IAmOCvvP6QNgY9j+Hv09mvkvEIDKjYW8ow0UDDAxSXy664RBNQk3i/0nt7gvceOJ6jGmOTimaZoY1THmU7g==", + "peer": true, + "dependencies": { + "@algolia/cache-common": "4.22.1" + } + }, + "node_modules/@algolia/cache-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-common/-/cache-common-4.22.1.tgz", + "integrity": "sha512-TJMBKqZNKYB9TptRRjSUtevJeQVXRmg6rk9qgFKWvOy8jhCPdyNZV1nB3SKGufzvTVbomAukFR8guu/8NRKBTA==", + "peer": true + }, + "node_modules/@algolia/cache-in-memory": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/cache-in-memory/-/cache-in-memory-4.22.1.tgz", + "integrity": "sha512-ve+6Ac2LhwpufuWavM/aHjLoNz/Z/sYSgNIXsinGofWOysPilQZPUetqLj8vbvi+DHZZaYSEP9H5SRVXnpsNNw==", + "peer": true, + "dependencies": { + "@algolia/cache-common": "4.22.1" + } + }, + "node_modules/@algolia/client-account": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-account/-/client-account-4.22.1.tgz", + "integrity": "sha512-k8m+oegM2zlns/TwZyi4YgCtyToackkOpE+xCaKCYfBfDtdGOaVZCM5YvGPtK+HGaJMIN/DoTL8asbM3NzHonw==", + "peer": true, + "dependencies": { + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/transporter": "4.22.1" + } + }, + "node_modules/@algolia/client-analytics": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-analytics/-/client-analytics-4.22.1.tgz", + "integrity": "sha512-1ssi9pyxyQNN4a7Ji9R50nSdISIumMFDwKNuwZipB6TkauJ8J7ha/uO60sPJFqQyqvvI+px7RSNRQT3Zrvzieg==", + "peer": true, + "dependencies": { + "@algolia/client-common": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" + } + }, + "node_modules/@algolia/client-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-common/-/client-common-4.22.1.tgz", + "integrity": "sha512-IvaL5v9mZtm4k4QHbBGDmU3wa/mKokmqNBqPj0K7lcR8ZDKzUorhcGp/u8PkPC/e0zoHSTvRh7TRkGX3Lm7iOQ==", + "peer": true, + "dependencies": { + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" + } + }, + "node_modules/@algolia/client-personalization": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-personalization/-/client-personalization-4.22.1.tgz", + "integrity": "sha512-sl+/klQJ93+4yaqZ7ezOttMQ/nczly/3GmgZXJ1xmoewP5jmdP/X/nV5U7EHHH3hCUEHeN7X1nsIhGPVt9E1cQ==", + "peer": true, + "dependencies": { + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" + } + }, + "node_modules/@algolia/client-search": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.22.1.tgz", + "integrity": "sha512-yb05NA4tNaOgx3+rOxAmFztgMTtGBi97X7PC3jyNeGiwkAjOZc2QrdZBYyIdcDLoI09N0gjtpClcackoTN0gPA==", + "peer": true, + "dependencies": { + "@algolia/client-common": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/transporter": "4.22.1" + } + }, + "node_modules/@algolia/events": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@algolia/events/-/events-4.0.1.tgz", + "integrity": "sha512-FQzvOCgoFXAbf5Y6mYozw2aj5KCJoA3m4heImceldzPSMbdyS4atVjJzXKMsfX3wnZTFYwkkt8/z8UesLHlSBQ==" + }, + "node_modules/@algolia/logger-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-common/-/logger-common-4.22.1.tgz", + "integrity": "sha512-OnTFymd2odHSO39r4DSWRFETkBufnY2iGUZNrMXpIhF5cmFE8pGoINNPzwg02QLBlGSaLqdKy0bM8S0GyqPLBg==", + "peer": true + }, + "node_modules/@algolia/logger-console": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/logger-console/-/logger-console-4.22.1.tgz", + "integrity": "sha512-O99rcqpVPKN1RlpgD6H3khUWylU24OXlzkavUAMy6QZd1776QAcauE3oP8CmD43nbaTjBexZj2nGsBH9Tc0FVA==", + "peer": true, + "dependencies": { + "@algolia/logger-common": "4.22.1" + } + }, + "node_modules/@algolia/requester-browser-xhr": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-browser-xhr/-/requester-browser-xhr-4.22.1.tgz", + "integrity": "sha512-dtQGYIg6MteqT1Uay3J/0NDqD+UciHy3QgRbk7bNddOJu+p3hzjTRYESqEnoX/DpEkaNYdRHUKNylsqMpgwaEw==", + "peer": true, + "dependencies": { + "@algolia/requester-common": "4.22.1" + } + }, + "node_modules/@algolia/requester-common": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-common/-/requester-common-4.22.1.tgz", + "integrity": "sha512-dgvhSAtg2MJnR+BxrIFqlLtkLlVVhas9HgYKMk2Uxiy5m6/8HZBL40JVAMb2LovoPFs9I/EWIoFVjOrFwzn5Qg==", + "peer": true + }, + "node_modules/@algolia/requester-node-http": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/requester-node-http/-/requester-node-http-4.22.1.tgz", + "integrity": "sha512-JfmZ3MVFQkAU+zug8H3s8rZ6h0ahHZL/SpMaSasTCGYR5EEJsCc8SI5UZ6raPN2tjxa5bxS13BRpGSBUens7EA==", + "peer": true, + "dependencies": { + "@algolia/requester-common": "4.22.1" + } + }, + "node_modules/@algolia/transporter": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/@algolia/transporter/-/transporter-4.22.1.tgz", + "integrity": "sha512-kzWgc2c9IdxMa3YqA6TN0NW5VrKYYW/BELIn7vnLyn+U/RFdZ4lxxt9/8yq3DKV5snvoDzzO4ClyejZRdV3lMQ==", + "peer": true, + "dependencies": { + "@algolia/cache-common": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/requester-common": "4.22.1" + } + }, + "node_modules/@alloc/quick-lru": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/@alloc/quick-lru/-/quick-lru-5.2.0.tgz", + "integrity": "sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", + "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.24.7.tgz", + "integrity": "sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.24.7", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.7.tgz", + "integrity": "sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.24.7.tgz", + "integrity": "sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helpers": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7", + "convert-source-map": "^2.0.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.3", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@babel/core/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.24.7.tgz", + "integrity": "sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.24.7.tgz", + "integrity": "sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.24.7.tgz", + "integrity": "sha512-xZeCVVdwb4MsDBkkyZ64tReWYrLRHlMN72vP7Bdm3OUOuyFZExhsHUUnuWnm2/XOlAJzR0LfPpB56WXZn0X/lA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.7.tgz", + "integrity": "sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "browserslist": "^4.22.2", + "lru-cache": "^5.1.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-compilation-targets/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.24.7.tgz", + "integrity": "sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.24.7.tgz", + "integrity": "sha512-03TCmXy2FtXJEZfbXDTSqq1fRJArk7lX9DOFC/47VthYcxyIOx+eXQmdo6DOQvrbpIix+KfXwvuXdFDZHxt+rA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "regexpu-core": "^5.3.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-define-polyfill-provider": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz", + "integrity": "sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz", + "integrity": "sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz", + "integrity": "sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.24.7.tgz", + "integrity": "sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz", + "integrity": "sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.24.7.tgz", + "integrity": "sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.24.7.tgz", + "integrity": "sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.24.7.tgz", + "integrity": "sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.24.7.tgz", + "integrity": "sha512-9pKLcTlZ92hNZMQfGCHImUpDOlAgkkpqalWEeftW5FBya75k8Li2ilerxkM/uBEj01iBZXcCIB/bwvDYgWyibA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-wrap-function": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.24.7.tgz", + "integrity": "sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-member-expression-to-functions": "^7.24.7", + "@babel/helper-optimise-call-expression": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz", + "integrity": "sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.24.7.tgz", + "integrity": "sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz", + "integrity": "sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.24.7.tgz", + "integrity": "sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.24.7.tgz", + "integrity": "sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.24.7.tgz", + "integrity": "sha512-N9JIYk3TD+1vq/wn77YnJOqMtfWhNewNE+DJV4puD2X7Ew9J4JvrzrFDfTfyv5EgEXVy9/Wt8QiOErzEmv5Ifw==", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.24.7", + "@babel/template": "^7.24.7", + "@babel/traverse": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.24.7.tgz", + "integrity": "sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.24.7.tgz", + "integrity": "sha512-TiT1ss81W80eQsN+722OaeQMY/G4yTb4G9JrqeiDADs3N8lbPMGldWi9x8tyqCW5NLx1Jh2AvkE6r6QvEltMMQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.24.7.tgz", + "integrity": "sha512-unaQgZ/iRu/By6tsjMZzpeBZjChYfLYry6HrEXPoz3KmfF0sVBQ1l8zKMQ4xRGLWVsjuvB8nQfjNP/DcfEOCsg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.24.7.tgz", + "integrity": "sha512-+izXIbke1T33mY4MSNnrqhPXDz01WYhEf3yF5NbnUtkiNnm+XBZJl3kNfoK6NKmYlz/D07+l2GWVK/QfDkNCuQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.13.0" + } + }, + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.24.7.tgz", + "integrity": "sha512-utA4HuR6F4Vvcr+o4DnjL8fCOlgRFGbeeBEGNg3ZTrLFw6VWG5XmUrvcQ0FjIYMU2ST4XcR2Wsp7t9qOAPnxMg==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.24.7.tgz", + "integrity": "sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.24.7.tgz", + "integrity": "sha512-hbX+lKKeUMGihnK8nvKqmXBInriT3GVjzXKFriV3YC6APGxMbP8RZNFwy91+hocLXq90Mta+HshoB31802bb8A==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.24.7.tgz", + "integrity": "sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.24.7.tgz", + "integrity": "sha512-c/+fVeJBB0FeKsFvwytYiUD+LBvhHjGSI0g446PRGdSVGZLRNArBUno2PETbAly3tpiNAQR5XaZ+JslxkotsbA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.24.7.tgz", + "integrity": "sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.24.7.tgz", + "integrity": "sha512-o+iF77e3u7ZS4AoAuJvapz9Fm001PuD2V3Lp6OSE4FYQke+cSewYtnek+THqGRWyQloRCyvWL1OkyfNEl9vr/g==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7", + "@babel/plugin-syntax-async-generators": "^7.8.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.24.7.tgz", + "integrity": "sha512-SQY01PcJfmQ+4Ash7NE+rpbLFbmqA2GPIgqzxfFTL4t1FKRq4zTms/7htKpoCUI9OcFYgzqfmCdH53s6/jn5fA==", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-remap-async-to-generator": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.24.7.tgz", + "integrity": "sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.24.7.tgz", + "integrity": "sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.24.7.tgz", + "integrity": "sha512-vKbfawVYayKcSeSR5YYzzyXvsDFWU2mD8U5TFeXtbCPLFUqe7GyCgvO6XDHzje862ODrOwy6WCPmKeWHbCFJ4w==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.24.7.tgz", + "integrity": "sha512-HMXK3WbBPpZQufbMG4B46A90PkuuhN9vBCb5T8+VAHqvAqvcLi+2cKoukcpmUYkszLhScU3l1iudhrks3DggRQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-class-static-block": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.12.0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.24.7.tgz", + "integrity": "sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.24.7.tgz", + "integrity": "sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/template": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.24.7.tgz", + "integrity": "sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.24.7.tgz", + "integrity": "sha512-ZOA3W+1RRTSWvyqcMJDLqbchh7U4NRGqwRfFSVbOLS/ePIP4vHB5e8T8eXcuqyN1QkgKyj5wuW0lcS85v4CrSw==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.24.7.tgz", + "integrity": "sha512-JdYfXyCRihAe46jUIliuL2/s0x0wObgwwiGxw/UbgJBr20gQBThrokO4nYKgWkD7uBaqM7+9x5TU7NkExZJyzw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.24.7.tgz", + "integrity": "sha512-sc3X26PhZQDb3JhORmakcbvkeInvxz+A8oda99lj7J60QRuPZvNAk9wQlTBS1ZynelDrDmTU4pw1tyc5d5ZMUg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.24.7.tgz", + "integrity": "sha512-Rqe/vSc9OYgDajNIK35u7ot+KeCoetqQYFXM4Epf7M7ez3lWlOjrDjrwMei6caCVhfdw+mIKD4cgdGNy5JQotQ==", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.24.7.tgz", + "integrity": "sha512-v0K9uNYsPL3oXZ/7F9NNIbAj2jv1whUEtyA6aujhekLs56R++JDQuzRcP2/z4WX5Vg/c5lE9uWZA0/iUoFhLTA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.24.7.tgz", + "integrity": "sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.24.7.tgz", + "integrity": "sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.24.7.tgz", + "integrity": "sha512-2yFnBGDvRuxAaE/f0vfBKvtnvvqU8tGpMHqMNpTN2oWMKIR3NqFkjaAgGwawhqK/pIN2T3XdjGPdaG0vDhOBGw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-json-strings": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.24.7.tgz", + "integrity": "sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.24.7.tgz", + "integrity": "sha512-4D2tpwlQ1odXmTEIFWy9ELJcZHqrStlzK/dAOWYyxX3zT0iXQB6banjgeOJQXzEc4S0E0a5A+hahxPaEFYftsw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.24.7.tgz", + "integrity": "sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.24.7.tgz", + "integrity": "sha512-9+pB1qxV3vs/8Hdmz/CulFB8w2tuu6EB94JZFsjdqxQokwGa9Unap7Bo2gGBGIvPmDIVvQrom7r5m/TCDMURhg==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.24.7.tgz", + "integrity": "sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-simple-access": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.24.7.tgz", + "integrity": "sha512-GYQE0tW7YoaN13qFh3O1NCY4MPkUiAH3fiF7UcV/I3ajmDKEdG3l+UOcbAm4zUE3gnvUU+Eni7XrVKo9eO9auw==", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.24.7.tgz", + "integrity": "sha512-3aytQvqJ/h9z4g8AsKPLvD4Zqi2qT+L3j7XoFFu1XBlZWEl2/1kWnhmAbxpLgPrHSY0M6UA02jyTiwUVtiKR6A==", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.24.7.tgz", + "integrity": "sha512-/jr7h/EWeJtk1U/uz2jlsCioHkZk1JJZVcc8oQsJ1dUlaJD83f4/6Zeh2aHt9BIFokHIsSeDfhUmju0+1GPd6g==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.24.7.tgz", + "integrity": "sha512-RNKwfRIXg4Ls/8mMTza5oPF5RkOW8Wy/WgMAp1/F1yZ8mMbtwXW+HDoJiOsagWrAhI5f57Vncrmr9XeT4CVapA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.24.7.tgz", + "integrity": "sha512-Ts7xQVk1OEocqzm8rHMXHlxvsfZ0cEF2yomUqpKENHWMF4zKk175Y4q8H5knJes6PgYad50uuRmt3UJuhBw8pQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.24.7.tgz", + "integrity": "sha512-e6q1TiVUzvH9KRvicuxdBTUj4AdKSRwzIyFFnfnezpCfP2/7Qmbb8qbU2j7GODbl4JMkblitCQjKYUaX/qkkwA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.24.7.tgz", + "integrity": "sha512-4QrHAr0aXQCEFni2q4DqKLD31n2DL+RxcwnNjDFkSG0eNQ/xCavnRkfCUjsyqGC2OviNJvZOF/mQqZBw7i2C5Q==", + "dev": true, + "dependencies": { + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.24.7.tgz", + "integrity": "sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-replace-supers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.24.7.tgz", + "integrity": "sha512-uLEndKqP5BfBbC/5jTwPxLh9kqPWWgzN/f8w6UwAIirAEqiIVJWWY312X72Eub09g5KF9+Zn7+hT7sDxmhRuKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.24.7.tgz", + "integrity": "sha512-tK+0N9yd4j+x/4hxF3F0e0fu/VdcxU18y5SevtyM/PCFlQvXbR0Zmlo2eBrKtVipGNFzpq56o8WsIIKcJFUCRQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.24.7.tgz", + "integrity": "sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.24.7.tgz", + "integrity": "sha512-COTCOkG2hn4JKGEKBADkA8WNb35TGkkRbI5iT845dB+NyqgO8Hn+ajPbSnIQznneJTa3d30scb6iz/DhH8GsJQ==", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.24.7.tgz", + "integrity": "sha512-9z76mxwnwFxMyxZWEgdgECQglF2Q7cFLm0kMf8pGwt+GSJsY0cONKj/UuO4bOH0w/uAel3ekS4ra5CEAyJRmDA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.24.7.tgz", + "integrity": "sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-constant-elements": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.24.7.tgz", + "integrity": "sha512-7LidzZfUXyfZ8/buRW6qIIHBY8wAZ1OrY9c/wTr8YhZ6vMPo+Uc/CVFLYY1spZrEQlD4w5u8wjqk5NQ3OVqQKA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.24.7.tgz", + "integrity": "sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.24.7.tgz", + "integrity": "sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-module-imports": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.24.7.tgz", + "integrity": "sha512-QG9EnzoGn+Qar7rxuW+ZOsbWOt56FvvI93xInqsZDC5fsekx1AlIO4KIJ5M+D0p0SqSH156EpmZyXq630B8OlQ==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-pure-annotations": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.24.7.tgz", + "integrity": "sha512-PLgBVk3fzbmEjBJ/u8kFzOqS9tUeDjiaWud/rRym/yjCo/M9cASPlnrd2ZmmZpQT40fOOrvR8jh+n8jikrOhNA==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.24.7.tgz", + "integrity": "sha512-lq3fvXPdimDrlg6LWBoqj+r/DEWgONuwjuOuQCSYgRroXDH/IdM1C0IZf59fL5cHLpjEH/O6opIRBbqv7ELnuA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "regenerator-transform": "^0.15.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-reserved-words": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.24.7.tgz", + "integrity": "sha512-0DUq0pHcPKbjFZCfTss/pGkYMfy3vFWydkUBd9r0GHpIyfs2eCDENvqadMycRS9wZCXR41wucAfJHJmwA0UmoQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.24.7.tgz", + "integrity": "sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.24.7.tgz", + "integrity": "sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-skip-transparent-expression-wrappers": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.24.7.tgz", + "integrity": "sha512-kHPSIJc9v24zEml5geKg9Mjx5ULpfncj0wRpYtxbvKyTtHCYDkVE3aHQ03FrpEo4gEe2vrJJS1Y9CJTaThA52g==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.24.7.tgz", + "integrity": "sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.24.7.tgz", + "integrity": "sha512-VtR8hDy7YLB7+Pet9IarXjg/zgCMSF+1mNS/EQEiEaUPoFXCVsHG64SIxcaaI2zJgRiv+YmgaQESUfWAdbjzgg==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.24.7.tgz", + "integrity": "sha512-iLD3UNkgx2n/HrjBesVbYX6j0yqn/sJktvbtKKgcaLIQ4bTTQ8obAypc1VpyHPD2y4Phh9zHOaAt8e/L14wCpw==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.24.7", + "@babel/helper-create-class-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/plugin-syntax-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-escapes": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.24.7.tgz", + "integrity": "sha512-U3ap1gm5+4edc2Q/P+9VrBNhGkfnf+8ZqppY71Bo/pzZmXhhLdqgaUl6cuB07O1+AQJtCLfaOmswiNbSQ9ivhw==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.24.7.tgz", + "integrity": "sha512-uH2O4OV5M9FZYQrwc7NdVmMxQJOCCzFeYudlZSzUAHRFeOujQefa92E74TQDVskNHCzOXoigEuoyzHDhaEaK5w==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.24.7.tgz", + "integrity": "sha512-hlQ96MBZSAXUq7ltkjtu3FJCCSMx/j629ns3hA3pXnBXjanNP0LHi+JpPeA81zaWgVK1VGH95Xuy7u0RyQ8kMg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.24.7.tgz", + "integrity": "sha512-2G8aAvF4wy1w/AGZkemprdGMRg5o6zPNhbHVImRz3lss55TYCBd6xStN19rt8XJHq20sqV0JbyWjOWwQRwV/wg==", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.24.7.tgz", + "integrity": "sha512-1YZNsc+y6cTvWlDHidMBsQZrZfEFjRIo/BZCT906PMdzOyXtSLTgqGdrpcuTDCXyd11Am5uQULtDIcCfnTc8fQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.24.7", + "@babel/helper-compilation-targets": "^7.24.7", + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.24.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.24.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.24.7", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.24.7", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-import-assertions": "^7.24.7", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.24.7", + "@babel/plugin-transform-async-generator-functions": "^7.24.7", + "@babel/plugin-transform-async-to-generator": "^7.24.7", + "@babel/plugin-transform-block-scoped-functions": "^7.24.7", + "@babel/plugin-transform-block-scoping": "^7.24.7", + "@babel/plugin-transform-class-properties": "^7.24.7", + "@babel/plugin-transform-class-static-block": "^7.24.7", + "@babel/plugin-transform-classes": "^7.24.7", + "@babel/plugin-transform-computed-properties": "^7.24.7", + "@babel/plugin-transform-destructuring": "^7.24.7", + "@babel/plugin-transform-dotall-regex": "^7.24.7", + "@babel/plugin-transform-duplicate-keys": "^7.24.7", + "@babel/plugin-transform-dynamic-import": "^7.24.7", + "@babel/plugin-transform-exponentiation-operator": "^7.24.7", + "@babel/plugin-transform-export-namespace-from": "^7.24.7", + "@babel/plugin-transform-for-of": "^7.24.7", + "@babel/plugin-transform-function-name": "^7.24.7", + "@babel/plugin-transform-json-strings": "^7.24.7", + "@babel/plugin-transform-literals": "^7.24.7", + "@babel/plugin-transform-logical-assignment-operators": "^7.24.7", + "@babel/plugin-transform-member-expression-literals": "^7.24.7", + "@babel/plugin-transform-modules-amd": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-modules-systemjs": "^7.24.7", + "@babel/plugin-transform-modules-umd": "^7.24.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.24.7", + "@babel/plugin-transform-new-target": "^7.24.7", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7", + "@babel/plugin-transform-numeric-separator": "^7.24.7", + "@babel/plugin-transform-object-rest-spread": "^7.24.7", + "@babel/plugin-transform-object-super": "^7.24.7", + "@babel/plugin-transform-optional-catch-binding": "^7.24.7", + "@babel/plugin-transform-optional-chaining": "^7.24.7", + "@babel/plugin-transform-parameters": "^7.24.7", + "@babel/plugin-transform-private-methods": "^7.24.7", + "@babel/plugin-transform-private-property-in-object": "^7.24.7", + "@babel/plugin-transform-property-literals": "^7.24.7", + "@babel/plugin-transform-regenerator": "^7.24.7", + "@babel/plugin-transform-reserved-words": "^7.24.7", + "@babel/plugin-transform-shorthand-properties": "^7.24.7", + "@babel/plugin-transform-spread": "^7.24.7", + "@babel/plugin-transform-sticky-regex": "^7.24.7", + "@babel/plugin-transform-template-literals": "^7.24.7", + "@babel/plugin-transform-typeof-symbol": "^7.24.7", + "@babel/plugin-transform-unicode-escapes": "^7.24.7", + "@babel/plugin-transform-unicode-property-regex": "^7.24.7", + "@babel/plugin-transform-unicode-regex": "^7.24.7", + "@babel/plugin-transform-unicode-sets-regex": "^7.24.7", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.4", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.31.0", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/@babel/preset-react": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.24.7.tgz", + "integrity": "sha512-AAH4lEkpmzFWrGVlHaxJB7RLH21uPQ9+He+eFLWHmF9IuFQVugz8eAsamaW0DXRrTfco5zj1wWtpdcXJUOfsag==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-transform-react-display-name": "^7.24.7", + "@babel/plugin-transform-react-jsx": "^7.24.7", + "@babel/plugin-transform-react-jsx-development": "^7.24.7", + "@babel/plugin-transform-react-pure-annotations": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-typescript": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.24.7.tgz", + "integrity": "sha512-SyXRe3OdWwIwalxDg5UtJnJQO+YPcTfwiIY2B0Xlddh9o7jpWLvv8X1RthIeDOxQ+O1ML5BLPCONToObyVQVuQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.24.7", + "@babel/helper-validator-option": "^7.24.7", + "@babel/plugin-syntax-jsx": "^7.24.7", + "@babel/plugin-transform-modules-commonjs": "^7.24.7", + "@babel/plugin-transform-typescript": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/regjsgen": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@babel/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA==", + "dev": true + }, + "node_modules/@babel/runtime": { + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.0.tgz", + "integrity": "sha512-Chk32uHMg6TnQdvw2e9IlqPpFX/6NLuK0Ys2PqLb7/gL5uFn9mXvK715FGLlOLQrcO4qIkNHkvPGktzzXexsFw==", + "dependencies": { + "regenerator-runtime": "^0.14.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.24.7.tgz", + "integrity": "sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.24.7.tgz", + "integrity": "sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.24.7", + "@babel/generator": "^7.24.7", + "@babel/helper-environment-visitor": "^7.24.7", + "@babel/helper-function-name": "^7.24.7", + "@babel/helper-hoist-variables": "^7.24.7", + "@babel/helper-split-export-declaration": "^7.24.7", + "@babel/parser": "^7.24.7", + "@babel/types": "^7.24.7", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/types": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.7.tgz", + "integrity": "sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.24.7", + "@babel/helper-validator-identifier": "^7.24.7", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@changesets/apply-release-plan": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.0.3.tgz", + "integrity": "sha512-klL6LCdmfbEe9oyfLxnidIf/stFXmrbFO/3gT5LU5pcyoZytzJe4gWpTBx3BPmyNPl16dZ1xrkcW7b98e3tYkA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/config": "^3.0.1", + "@changesets/get-version-range-type": "^0.4.0", + "@changesets/git": "^3.0.0", + "@changesets/should-skip-package": "^0.1.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "detect-indent": "^6.0.0", + "fs-extra": "^7.0.1", + "lodash.startcase": "^4.4.0", + "outdent": "^0.5.0", + "prettier": "^2.7.1", + "resolve-from": "^5.0.0", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@changesets/apply-release-plan/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@changesets/assemble-release-plan": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/@changesets/assemble-release-plan/-/assemble-release-plan-6.0.2.tgz", + "integrity": "sha512-n9/Tdq+ze+iUtjmq0mZO3pEhJTKkku9hUxtUadW30jlN7kONqJG3O6ALeXrmc6gsi/nvoCuKjqEJ68Hk8RbMTQ==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.0", + "@changesets/should-skip-package": "^0.1.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/changelog-git": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/changelog-git/-/changelog-git-0.2.0.tgz", + "integrity": "sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==", + "dev": true, + "dependencies": { + "@changesets/types": "^6.0.0" + } + }, + "node_modules/@changesets/cli": { + "version": "2.27.5", + "resolved": "https://registry.npmjs.org/@changesets/cli/-/cli-2.27.5.tgz", + "integrity": "sha512-UVppOvzCjjylBenFcwcZNG5IaZ8jsIaEVraV/pbXgukYNb0Oqa0d8UWb0LkYzA1Bf1HmUrOfccFcRLheRuA7pA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/apply-release-plan": "^7.0.3", + "@changesets/assemble-release-plan": "^6.0.2", + "@changesets/changelog-git": "^0.2.0", + "@changesets/config": "^3.0.1", + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.0", + "@changesets/get-release-plan": "^4.0.2", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/should-skip-package": "^0.1.0", + "@changesets/types": "^6.0.0", + "@changesets/write": "^0.3.1", + "@manypkg/get-packages": "^1.1.3", + "@types/semver": "^7.5.0", + "ansi-colors": "^4.1.3", + "chalk": "^2.1.0", + "ci-info": "^3.7.0", + "enquirer": "^2.3.0", + "external-editor": "^3.1.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "meow": "^6.0.0", + "outdent": "^0.5.0", + "p-limit": "^2.2.0", + "preferred-pm": "^3.0.0", + "resolve-from": "^5.0.0", + "semver": "^7.5.3", + "spawndamnit": "^2.0.0", + "term-size": "^2.1.0", + "tty-table": "^4.1.5" + }, + "bin": { + "changeset": "bin.js" + } + }, + "node_modules/@changesets/cli/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/ci-info": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", + "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/@changesets/cli/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/cli/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@changesets/cli/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/cli/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/cli/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@changesets/cli/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@changesets/cli/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/config": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@changesets/config/-/config-3.0.1.tgz", + "integrity": "sha512-nCr8pOemUjvGJ8aUu8TYVjqnUL+++bFOQHBVmtNbLvKzIDkN/uiP/Z4RKmr7NNaiujIURHySDEGFPftR4GbTUA==", + "dev": true, + "dependencies": { + "@changesets/errors": "^0.2.0", + "@changesets/get-dependents-graph": "^2.1.0", + "@changesets/logger": "^0.1.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1", + "micromatch": "^4.0.2" + } + }, + "node_modules/@changesets/errors": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@changesets/errors/-/errors-0.2.0.tgz", + "integrity": "sha512-6BLOQUscTpZeGljvyQXlWOItQyU71kCdGz7Pi8H8zdw6BI0g3m43iL4xKUVPWtG+qrrL9DTjpdn8eYuCQSRpow==", + "dev": true, + "dependencies": { + "extendable-error": "^0.1.5" + } + }, + "node_modules/@changesets/get-dependents-graph": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@changesets/get-dependents-graph/-/get-dependents-graph-2.1.0.tgz", + "integrity": "sha512-QOt6pQq9RVXKGHPVvyKimJDYJumx7p4DO5MO9AhRJYgAPgv0emhNqAqqysSVKHBm4sxKlGN4S1zXOIb5yCFuhQ==", + "dev": true, + "dependencies": { + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "semver": "^7.5.3" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@changesets/get-dependents-graph/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-dependents-graph/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/get-release-plan": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@changesets/get-release-plan/-/get-release-plan-4.0.2.tgz", + "integrity": "sha512-rOalz7nMuMV2vyeP7KBeAhqEB7FM2GFPO5RQSoOoUKKH9L6wW3QyPA2K+/rG9kBrWl2HckPVES73/AuwPvbH3w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/assemble-release-plan": "^6.0.2", + "@changesets/config": "^3.0.1", + "@changesets/pre": "^2.0.0", + "@changesets/read": "^0.6.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3" + } + }, + "node_modules/@changesets/get-version-range-type": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/get-version-range-type/-/get-version-range-type-0.4.0.tgz", + "integrity": "sha512-hwawtob9DryoGTpixy1D3ZXbGgJu1Rhr+ySH2PvTLHvkZuQ7sRT4oQwMh0hbqZH1weAooedEjRsbrWcGLCeyVQ==", + "dev": true + }, + "node_modules/@changesets/git": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@changesets/git/-/git-3.0.0.tgz", + "integrity": "sha512-vvhnZDHe2eiBNRFHEgMiGd2CT+164dfYyrJDhwwxTVD/OW0FUD6G7+4DIx1dNwkwjHyzisxGAU96q0sVNBns0w==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "is-subdir": "^1.1.1", + "micromatch": "^4.0.2", + "spawndamnit": "^2.0.0" + } + }, + "node_modules/@changesets/logger": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@changesets/logger/-/logger-0.1.0.tgz", + "integrity": "sha512-pBrJm4CQm9VqFVwWnSqKEfsS2ESnwqwH+xR7jETxIErZcfd1u2zBSqrHbRHR7xjhSgep9x2PSKFKY//FAshA3g==", + "dev": true, + "dependencies": { + "chalk": "^2.1.0" + } + }, + "node_modules/@changesets/logger/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/logger/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@changesets/logger/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/logger/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/logger/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/parse": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/@changesets/parse/-/parse-0.4.0.tgz", + "integrity": "sha512-TS/9KG2CdGXS27S+QxbZXgr8uPsP4yNJYb4BC2/NeFUj80Rni3TeD2qwWmabymxmrLo7JEsytXH1FbpKTbvivw==", + "dev": true, + "dependencies": { + "@changesets/types": "^6.0.0", + "js-yaml": "^3.13.1" + } + }, + "node_modules/@changesets/parse/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/@changesets/parse/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@changesets/pre": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@changesets/pre/-/pre-2.0.0.tgz", + "integrity": "sha512-HLTNYX/A4jZxc+Sq8D1AMBsv+1qD6rmmJtjsCJa/9MSRybdxh0mjbTvE6JYZQ/ZiQ0mMlDOlGPXTm9KLTU3jyw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/errors": "^0.2.0", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3", + "fs-extra": "^7.0.1" + } + }, + "node_modules/@changesets/read": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@changesets/read/-/read-0.6.0.tgz", + "integrity": "sha512-ZypqX8+/im1Fm98K4YcZtmLKgjs1kDQ5zHpc2U1qdtNBmZZfo/IBiG162RoP0CUF05tvp2y4IspH11PLnPxuuw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/git": "^3.0.0", + "@changesets/logger": "^0.1.0", + "@changesets/parse": "^0.4.0", + "@changesets/types": "^6.0.0", + "chalk": "^2.1.0", + "fs-extra": "^7.0.1", + "p-filter": "^2.1.0" + } + }, + "node_modules/@changesets/read/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@changesets/read/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@changesets/read/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@changesets/read/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/read/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@changesets/should-skip-package": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/@changesets/should-skip-package/-/should-skip-package-0.1.0.tgz", + "integrity": "sha512-FxG6Mhjw7yFStlSM7Z0Gmg3RiyQ98d/9VpQAZ3Fzr59dCOM9G6ZdYbjiSAt0XtFr9JR5U2tBaJWPjrkGGc618g==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/types": "^6.0.0", + "@manypkg/get-packages": "^1.1.3" + } + }, + "node_modules/@changesets/types": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-6.0.0.tgz", + "integrity": "sha512-b1UkfNulgKoWfqyHtzKS5fOZYSJO+77adgL7DLRDr+/7jhChN+QcHnbjiQVOz/U+Ts3PGNySq7diAItzDgugfQ==", + "dev": true + }, + "node_modules/@changesets/write": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@changesets/write/-/write-0.3.1.tgz", + "integrity": "sha512-SyGtMXzH3qFqlHKcvFY2eX+6b0NGiFcNav8AFsYwy5l8hejOeoeTDemu5Yjmke2V5jpzY+pBvM0vCCQ3gdZpfw==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.20.1", + "@changesets/types": "^6.0.0", + "fs-extra": "^7.0.1", + "human-id": "^1.0.2", + "prettier": "^2.7.1" + } + }, + "node_modules/@changesets/write/node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/@codemirror/autocomplete": { + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/@codemirror/autocomplete/-/autocomplete-6.15.0.tgz", + "integrity": "sha512-G2Zm0mXznxz97JhaaOdoEG2cVupn4JjPaS4AcNvZzhOsnnG9YVN68VzfoUw6dYTsIxT6a/cmoFEN47KAWhXaOg==", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0" + }, + "peerDependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@codemirror/commands": { + "version": "6.3.3", + "resolved": "https://registry.npmjs.org/@codemirror/commands/-/commands-6.3.3.tgz", + "integrity": "sha512-dO4hcF0fGT9tu1Pj1D2PvGvxjeGkbC6RGcZw6Qs74TH+Ed1gw98jmUgd2axWvIZEqTeTuFrg1lEB1KV6cK9h1A==", + "dependencies": { + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.4.0", + "@codemirror/view": "^6.0.0", + "@lezer/common": "^1.1.0" + } + }, + "node_modules/@codemirror/lang-css": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/@codemirror/lang-css/-/lang-css-6.2.1.tgz", + "integrity": "sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@lezer/common": "^1.0.2", + "@lezer/css": "^1.0.0" + } + }, + "node_modules/@codemirror/lang-html": { + "version": "6.4.8", + "resolved": "https://registry.npmjs.org/@codemirror/lang-html/-/lang-html-6.4.8.tgz", + "integrity": "sha512-tE2YK7wDlb9ZpAH6mpTPiYm6rhfdQKVDa5r9IwIFlwwgvVaKsCfuKKZoJGWsmMZIf3FQAuJ5CHMPLymOtg1hXw==", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/lang-css": "^6.0.0", + "@codemirror/lang-javascript": "^6.0.0", + "@codemirror/language": "^6.4.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/css": "^1.1.0", + "@lezer/html": "^1.3.0" + } + }, + "node_modules/@codemirror/lang-javascript": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz", + "integrity": "sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==", + "dependencies": { + "@codemirror/autocomplete": "^6.0.0", + "@codemirror/language": "^6.6.0", + "@codemirror/lint": "^6.0.0", + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.17.0", + "@lezer/common": "^1.0.0", + "@lezer/javascript": "^1.0.0" + } + }, + "node_modules/@codemirror/language": { + "version": "6.10.1", + "resolved": "https://registry.npmjs.org/@codemirror/language/-/language-6.10.1.tgz", + "integrity": "sha512-5GrXzrhq6k+gL5fjkAwt90nYDmjlzTIJV8THnxNFtNKWotMIlzzN+CpqxqwXOECnUdOndmSeWntVrVcv5axWRQ==", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.23.0", + "@lezer/common": "^1.1.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0", + "style-mod": "^4.0.0" + } + }, + "node_modules/@codemirror/lint": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/@codemirror/lint/-/lint-6.5.0.tgz", + "integrity": "sha512-+5YyicIaaAZKU8K43IQi8TBy6mF6giGeWAH7N96Z5LC30Wm5JMjqxOYIE9mxwMG1NbhT2mA3l9hA4uuKUM3E5g==", + "dependencies": { + "@codemirror/state": "^6.0.0", + "@codemirror/view": "^6.0.0", + "crelt": "^1.0.5" + } + }, + "node_modules/@codemirror/state": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/@codemirror/state/-/state-6.4.1.tgz", + "integrity": "sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==" + }, + "node_modules/@codemirror/view": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/@codemirror/view/-/view-6.26.0.tgz", + "integrity": "sha512-nSSmzONpqsNzshPOxiKhK203R6BvABepugAe34QfQDbNDslyjkqBuKgrK5ZBvqNXpfxz5iLrlGTmEfhbQyH46A==", + "dependencies": { + "@codemirror/state": "^6.4.0", + "style-mod": "^4.1.0", + "w3c-keyname": "^2.2.4" + } + }, + "node_modules/@codesandbox/nodebox": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/@codesandbox/nodebox/-/nodebox-0.1.8.tgz", + "integrity": "sha512-2VRS6JDSk+M+pg56GA6CryyUSGPjBEe8Pnae0QL3jJF1mJZJVMDKr93gJRtBbLkfZN6LD/DwMtf+2L0bpWrjqg==", + "dependencies": { + "outvariant": "^1.4.0", + "strict-event-emitter": "^0.4.3" + } + }, + "node_modules/@codesandbox/sandpack-client": { + "version": "2.13.2", + "resolved": "https://registry.npmjs.org/@codesandbox/sandpack-client/-/sandpack-client-2.13.2.tgz", + "integrity": "sha512-uAuxQOF7p8y4m7H0ojedDcWRf62xVK7UIYIJoX5LkhcV0SW1BTXcRkVNuR0/MSCSv+Og1dBeV8+Xpye9PX0quA==", + "dependencies": { + "@codesandbox/nodebox": "0.1.8", + "buffer": "^6.0.3", + "dequal": "^2.0.2", + "outvariant": "1.4.0", + "static-browser-server": "1.0.3" + } + }, + "node_modules/@codesandbox/sandpack-react": { + "version": "2.13.5", + "resolved": "https://registry.npmjs.org/@codesandbox/sandpack-react/-/sandpack-react-2.13.5.tgz", + "integrity": "sha512-MWzh2P/Asck0JSCKY3y7WecdUBBEqB0NFi4p+ohoZMTYqHWTaYfd7nbPlNmGIE1xcGppSZEqPVDjOpAfeQ0zFw==", + "dependencies": { + "@codemirror/autocomplete": "^6.4.0", + "@codemirror/commands": "^6.1.3", + "@codemirror/lang-css": "^6.0.1", + "@codemirror/lang-html": "^6.4.0", + "@codemirror/lang-javascript": "^6.1.2", + "@codemirror/language": "^6.3.2", + "@codemirror/state": "^6.2.0", + "@codemirror/view": "^6.7.1", + "@codesandbox/sandpack-client": "^2.13.2", + "@lezer/highlight": "^1.1.3", + "@react-hook/intersection-observer": "^3.1.1", + "@stitches/core": "^1.2.6", + "anser": "^2.1.1", + "clean-set": "^1.1.2", + "dequal": "^2.0.2", + "escape-carriage": "^1.3.1", + "lz-string": "^1.4.4", + "react-devtools-inline": "4.4.0", + "react-is": "^17.0.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17 || ^18", + "react-dom": "^16.8.0 || ^17 || ^18" + } + }, + "node_modules/@codesandbox/sandpack-react/node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/@codesandbox/sandpack-themes": { + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/@codesandbox/sandpack-themes/-/sandpack-themes-2.0.21.tgz", + "integrity": "sha512-CMH/MO/dh6foPYb/3eSn2Cu/J3+1+/81Fsaj7VggICkCrmRk0qG5dmgjGAearPTnRkOGORIPHuRqwNXgw0E6YQ==" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", + "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.10.0", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", + "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "dev": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.6.0", + "globals": "^13.19.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@floating-ui/core": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", + "integrity": "sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==", + "dependencies": { + "@floating-ui/utils": "^0.2.1" + } + }, + "node_modules/@floating-ui/dom": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/@floating-ui/dom/-/dom-1.6.3.tgz", + "integrity": "sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==", + "dependencies": { + "@floating-ui/core": "^1.0.0", + "@floating-ui/utils": "^0.2.0" + } + }, + "node_modules/@floating-ui/react-dom": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/@floating-ui/react-dom/-/react-dom-2.0.8.tgz", + "integrity": "sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==", + "dependencies": { + "@floating-ui/dom": "^1.6.1" + }, + "peerDependencies": { + "react": ">=16.8.0", + "react-dom": ">=16.8.0" + } + }, + "node_modules/@floating-ui/utils": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@floating-ui/utils/-/utils-0.2.1.tgz", + "integrity": "sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==" + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.14", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", + "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^2.0.2", + "debug": "^4.3.1", + "minimatch": "^3.0.5" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", + "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@lezer/common": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@lezer/common/-/common-1.2.1.tgz", + "integrity": "sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==" + }, + "node_modules/@lezer/css": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/@lezer/css/-/css-1.1.8.tgz", + "integrity": "sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/highlight": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@lezer/highlight/-/highlight-1.2.0.tgz", + "integrity": "sha512-WrS5Mw51sGrpqjlh3d4/fOwpEV2Hd3YOkp9DBt4k8XZQcoTHZFB7sx030A6OcahF4J1nDQAa3jXlTVVYH50IFA==", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@lezer/html": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/@lezer/html/-/html-1.3.9.tgz", + "integrity": "sha512-MXxeCMPyrcemSLGaTQEZx0dBUH0i+RPl8RN5GwMAzo53nTsd/Unc/t5ZxACeQoyPUM5/GkPLRUs2WliOImzkRA==", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.0.0", + "@lezer/lr": "^1.0.0" + } + }, + "node_modules/@lezer/javascript": { + "version": "1.4.13", + "resolved": "https://registry.npmjs.org/@lezer/javascript/-/javascript-1.4.13.tgz", + "integrity": "sha512-5IBr8LIO3xJdJH1e9aj/ZNLE4LSbdsx25wFmGRAZsj2zSmwAYjx26JyU/BYOCpRQlu1jcv1z3vy4NB9+UkfRow==", + "dependencies": { + "@lezer/common": "^1.2.0", + "@lezer/highlight": "^1.1.3", + "@lezer/lr": "^1.3.0" + } + }, + "node_modules/@lezer/lr": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@lezer/lr/-/lr-1.4.0.tgz", + "integrity": "sha512-Wst46p51km8gH0ZUmeNrtpRYmdlRHUpN1DQd3GFAyKANi8WVz8c2jHYTf1CVScFaCjQw1iO3ZZdqGDxQPRErTg==", + "dependencies": { + "@lezer/common": "^1.0.0" + } + }, + "node_modules/@mantine/hooks": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@mantine/hooks/-/hooks-7.6.2.tgz", + "integrity": "sha512-ZrOgrZHoIGCDKrr2/9njDgK0al+jjusYQFlmR0YyEFyRtgY6eNSI4zuYLcAPx1haHmUm5RsLBrqY6Iy/TLdGXA==", + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/@manypkg/find-root": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", + "integrity": "sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.5.5", + "@types/node": "^12.7.1", + "find-up": "^4.1.0", + "fs-extra": "^8.1.0" + } + }, + "node_modules/@manypkg/find-root/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==", + "dev": true + }, + "node_modules/@manypkg/find-root/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/find-root/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@manypkg/find-root/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@manypkg/get-packages": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@manypkg/get-packages/-/get-packages-1.1.3.tgz", + "integrity": "sha512-fo+QhuU3qE/2TQMQmbVMqaQ6EWbMhi4ABWP+O4AM1NqPBuy0OrApV5LO6BrrgnhtAHS2NH6RrVk9OL181tTi8A==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.5.5", + "@changesets/types": "^4.0.1", + "@manypkg/find-root": "^1.1.0", + "fs-extra": "^8.1.0", + "globby": "^11.0.0", + "read-yaml-file": "^1.1.0" + } + }, + "node_modules/@manypkg/get-packages/node_modules/@changesets/types": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@changesets/types/-/types-4.1.0.tgz", + "integrity": "sha512-LDQvVDv5Kb50ny2s25Fhm3d9QSZimsoUGBsUioj6MC3qbMUCuC8GPIvk/M6IvXx3lYhAs0lwWUQLb+VIEUCECw==", + "dev": true + }, + "node_modules/@manypkg/get-packages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@mdx-js/loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/loader/-/loader-3.0.1.tgz", + "integrity": "sha512-YbYUt7YyEOdFxhyuCWmLKf5vKhID/hJAojEUnheJk4D8iYVLFQw+BAoBWru/dHGch1omtmZOPstsmKPyBF68Tw==", + "dependencies": { + "@mdx-js/mdx": "^3.0.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "webpack": ">=5" + } + }, + "node_modules/@mdx-js/mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.0.1.tgz", + "integrity": "sha512-eIQ4QTrOWyL3LWEe/bu6Taqzq2HQvHcyTMaOrI95P2/LmJE7AsfPfgJGuFLPVqBUE1BC1rik3VIhU+s9u72arA==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdx": "^2.0.0", + "collapse-white-space": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-to-js": "^2.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-estree": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "periscopic": "^3.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.0.0", + "source-map": "^0.7.0", + "unified": "^11.0.0", + "unist-util-position-from-estree": "^2.0.0", + "unist-util-stringify-position": "^4.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/react": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@mdx-js/react/-/react-3.0.1.tgz", + "integrity": "sha512-9ZrPIU4MGf6et1m1ov3zKf+q9+deetI51zprKB1D/z3NOb+rUxxtEl3mCjW5wTGh6VhRdwPueh1oRzi6ezkA8A==", + "dependencies": { + "@types/mdx": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "@types/react": ">=16", + "react": ">=16" + } + }, + "node_modules/@next/env": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-14.1.3.tgz", + "integrity": "sha512-VhgXTvrgeBRxNPjyfBsDIMvgsKDxjlpw4IAUsHCX8Gjl1vtHUYRT3+xfQ/wwvLPDd/6kqfLqk9Pt4+7gysuCKQ==" + }, + "node_modules/@next/eslint-plugin-next": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-14.1.3.tgz", + "integrity": "sha512-VCnZI2cy77Yaj3L7Uhs3+44ikMM1VD/fBMwvTBb3hIaTIuqa+DmG4dhUDq+MASu3yx97KhgsVJbsas0XuiKyww==", + "dev": true, + "dependencies": { + "glob": "10.3.10" + } + }, + "node_modules/@next/mdx": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/mdx/-/mdx-14.1.3.tgz", + "integrity": "sha512-KrfpZ1Iz9SCIW8Qu3uWCIkVUGgIjiPRlxKksr8IgKKlMUEV9D88JNkS1MUfgSdbVgKLED3mPnLoO0gzoQz1yDw==", + "dependencies": { + "source-map": "^0.7.0" + }, + "peerDependencies": { + "@mdx-js/loader": ">=0.15.0", + "@mdx-js/react": ">=0.15.0" + }, + "peerDependenciesMeta": { + "@mdx-js/loader": { + "optional": true + }, + "@mdx-js/react": { + "optional": true + } + } + }, + "node_modules/@next/swc-darwin-arm64": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.1.3.tgz", + "integrity": "sha512-LALu0yIBPRiG9ANrD5ncB3pjpO0Gli9ZLhxdOu6ZUNf3x1r3ea1rd9Q+4xxUkGrUXLqKVK9/lDkpYIJaCJ6AHQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-darwin-x64": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.1.3.tgz", + "integrity": "sha512-E/9WQeXxkqw2dfcn5UcjApFgUq73jqNKaE5bysDm58hEUdUGedVrnRhblhJM7HbCZNhtVl0j+6TXsK0PuzXTCg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-gnu": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.1.3.tgz", + "integrity": "sha512-USArX9B+3rZSXYLFvgy0NVWQgqh6LHWDmMt38O4lmiJNQcwazeI6xRvSsliDLKt+78KChVacNiwvOMbl6g6BBw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-arm64-musl": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.1.3.tgz", + "integrity": "sha512-esk1RkRBLSIEp1qaQXv1+s6ZdYzuVCnDAZySpa62iFTMGTisCyNQmqyCTL9P+cLJ4N9FKCI3ojtSfsyPHJDQNw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-gnu": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.1.3.tgz", + "integrity": "sha512-8uOgRlYEYiKo0L8YGeS+3TudHVDWDjPVDUcST+z+dUzgBbTEwSSIaSgF/vkcC1T/iwl4QX9iuUyUdQEl0Kxalg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-linux-x64-musl": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.1.3.tgz", + "integrity": "sha512-DX2zqz05ziElLoxskgHasaJBREC5Y9TJcbR2LYqu4r7naff25B4iXkfXWfcp69uD75/0URmmoSgT8JclJtrBoQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-arm64-msvc": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.1.3.tgz", + "integrity": "sha512-HjssFsCdsD4GHstXSQxsi2l70F/5FsRTRQp8xNgmQs15SxUfUJRvSI9qKny/jLkY3gLgiCR3+6A7wzzK0DBlfA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-ia32-msvc": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.1.3.tgz", + "integrity": "sha512-DRuxD5axfDM1/Ue4VahwSxl1O5rn61hX8/sF0HY8y0iCbpqdxw3rB3QasdHn/LJ6Wb2y5DoWzXcz3L1Cr+Thrw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@next/swc-win32-x64-msvc": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.1.3.tgz", + "integrity": "sha512-uC2DaDoWH7h1P/aJ4Fok3Xiw6P0Lo4ez7NbowW2VGNXw/Xv6tOuLUcxhBYZxsSUJtpeknCi8/fvnSpyCFp4Rcg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@npmcli/config": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@npmcli/config/-/config-8.2.0.tgz", + "integrity": "sha512-YoEYZFg0hRSRP/Chmq+J4FvULFvji6SORUYWQc10FiJ+ReAnViXcDCENg6kM6dID04bAoKNUygrby798+gYBbQ==", + "dev": true, + "dependencies": { + "@npmcli/map-workspaces": "^3.0.2", + "ci-info": "^4.0.0", + "ini": "^4.1.0", + "nopt": "^7.0.0", + "proc-log": "^3.0.0", + "read-package-json-fast": "^3.0.2", + "semver": "^7.3.5", + "walk-up-path": "^3.0.1" + }, + "engines": { + "node": "^16.14.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/map-workspaces": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz", + "integrity": "sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg==", + "dev": true, + "dependencies": { + "@npmcli/name-from-folder": "^2.0.0", + "glob": "^10.2.2", + "minimatch": "^9.0.0", + "read-package-json-fast": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@npmcli/map-workspaces/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@npmcli/map-workspaces/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@npmcli/name-from-folder": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz", + "integrity": "sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@open-draft/deferred-promise": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==" + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, + "node_modules/@pkgr/core": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", + "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/@radix-ui/primitive": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.0.1.tgz", + "integrity": "sha512-yQ8oGX2GVsEYMWGxcovu1uGWPCxV5BFfeeYxqPmuAzUyLT9qmaMXSAhXpb0WrspIeqYzdJpkh2vHModJPgRIaw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@radix-ui/react-arrow": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.0.3.tgz", + "integrity": "sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-collection": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.0.3.tgz", + "integrity": "sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-compose-refs": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.0.1.tgz", + "integrity": "sha512-fDSBgd44FKHa1FRMU59qBMPFcl2PZE+2nmqunj+BWFyYYjnhIDWL2ItDs3rrbJDQOtzt5nIebLCQc4QRfz6LJw==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-context": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.0.1.tgz", + "integrity": "sha512-ebbrdFoYTcuZ0v4wG5tedGnp9tzcV8awzsxYph7gXUyvnNLuTIcCk1q17JEbnVhXAKG9oX3KtchwiMIAYp9NLg==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dialog": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.0.5.tgz", + "integrity": "sha512-GjWJX/AUpB703eEBanuBnIWdIXg6NvJFCXcNlSZk4xdszCdhrJgBoUd1cGk67vFO+WdA2pfI/plOpqz/5GUP6Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-controllable-state": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-direction": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-direction/-/react-direction-1.0.1.tgz", + "integrity": "sha512-RXcvnXgyvYvBEOhCBuddKecVkoMiI10Jcm5cTI7abJRAHYfFxeu+FBQs/DvdxSYucxR5mna0dNsL6QFlds5TMA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dismissable-layer": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.0.5.tgz", + "integrity": "sha512-aJeDjQhywg9LBu2t/At58hCvr7pEm0o2Ke1x33B+MhjNmmZ17sy4KImo0KPLgsnc/zN7GPdce8Cnn0SWvwZO7g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-escape-keydown": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-dropdown-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dropdown-menu/-/react-dropdown-menu-2.0.6.tgz", + "integrity": "sha512-i6TuFOoWmLWq+M/eCLGd/bQ2HfAX1RJgvrBQ6AQLmzfvsLdefxbWu8G9zczcPFfcSPehz9GcpF6K9QYreFV8hA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-menu": "2.0.6", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-guards": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-guards/-/react-focus-guards-1.0.1.tgz", + "integrity": "sha512-Rect2dWbQ8waGzhMavsIbmSVCgYxkXLxxR3ZvCX79JOglzdEy4JXMb98lq4hPxUbLr77nP0UOGf4rcMU+s1pUA==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-focus-scope": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.0.4.tgz", + "integrity": "sha512-sL04Mgvf+FmyvZeYfNu1EPAaaxD+aw7cYeIB9L9Fvq8+urhltTRaEo5ysKOpHuKPclsZcSUMKlN05x4u+CINpA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-id": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-id/-/react-id-1.0.1.tgz", + "integrity": "sha512-tI7sT/kqYp8p96yGWY1OAnLHrqDgzHefRBKQ2YAkBS5ja7QLcZ9Z/uY7bEjPUatf8RomoXM8/1sMj1IJaE5UzQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-menu": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-menu/-/react-menu-2.0.6.tgz", + "integrity": "sha512-BVkFLS+bUC8HcImkRKPSiVumA1VPOOEC5WBMiT+QAVsPzW1FJzI9KnqgGxVDPBcql5xXrHkD3JOVoXWEXD8SYA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-dismissable-layer": "1.0.5", + "@radix-ui/react-focus-guards": "1.0.1", + "@radix-ui/react-focus-scope": "1.0.4", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-popper": "1.1.3", + "@radix-ui/react-portal": "1.0.4", + "@radix-ui/react-presence": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-roving-focus": "1.0.4", + "@radix-ui/react-slot": "1.0.2", + "@radix-ui/react-use-callback-ref": "1.0.1", + "aria-hidden": "^1.1.1", + "react-remove-scroll": "2.5.5" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-popper": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.1.3.tgz", + "integrity": "sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@floating-ui/react-dom": "^2.0.0", + "@radix-ui/react-arrow": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1", + "@radix-ui/react-use-rect": "1.0.1", + "@radix-ui/react-use-size": "1.0.1", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-portal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.0.4.tgz", + "integrity": "sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-presence": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.0.1.tgz", + "integrity": "sha512-UXLW4UAbIY5ZjcvzjfRFo5gxva8QirC9hF7wRE4U5gz+TP0DbRk+//qyuAQ1McDxBt1xNMBTaciFGvEmJvAZCg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-primitive": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-1.0.3.tgz", + "integrity": "sha512-yi58uVyoAcK/Nq1inRY56ZSjKypBNKTa/1mcL8qdl6oJeEaDbOldlzrGn7P6Q3Id5d+SYNGc5AJgc4vGhjs5+g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-slot": "1.0.2" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-roving-focus": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.0.4.tgz", + "integrity": "sha512-2mUg5Mgcu001VkGy+FfzZyzbmuUWzgWkj3rvv4yu+mLw03+mTzbxZHvfcGyFp2b8EkQeMkpRQ5FiA2Vr2O6TeQ==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/primitive": "1.0.1", + "@radix-ui/react-collection": "1.0.3", + "@radix-ui/react-compose-refs": "1.0.1", + "@radix-ui/react-context": "1.0.1", + "@radix-ui/react-direction": "1.0.1", + "@radix-ui/react-id": "1.0.1", + "@radix-ui/react-primitive": "1.0.3", + "@radix-ui/react-use-callback-ref": "1.0.1", + "@radix-ui/react-use-controllable-state": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "@types/react-dom": "*", + "react": "^16.8 || ^17.0 || ^18.0", + "react-dom": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "@types/react-dom": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-slot": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.0.2.tgz", + "integrity": "sha512-YeTpuq4deV+6DusvVUW4ivBgnkHwECUu0BiN43L5UCDFgdhsRUWAghhTF5MbvNTPzmiFOx90asDSUjWuCNapwg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-compose-refs": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-callback-ref": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-callback-ref/-/react-use-callback-ref-1.0.1.tgz", + "integrity": "sha512-D94LjX4Sp0xJFVaoQOd3OO9k7tpBYNOXdVhkltUbGv2Qb9OXdrg/CpsjlZv7ia14Sylv398LswWBVVu5nqKzAQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-controllable-state": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-controllable-state/-/react-use-controllable-state-1.0.1.tgz", + "integrity": "sha512-Svl5GY5FQeN758fWKrjM6Qb7asvXeiZltlT4U2gVfl8Gx5UAv2sMR0LWo8yhsIZh2oQ0eFdZ59aoOOMV7b47VA==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-escape-keydown": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-escape-keydown/-/react-use-escape-keydown-1.0.3.tgz", + "integrity": "sha512-vyL82j40hcFicA+M4Ex7hVkB9vHgSse1ZWomAqV2Je3RleKGO5iM8KMOEtfoSB0PnIelMd2lATjTGMYqN5ylTg==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-callback-ref": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-layout-effect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-layout-effect/-/react-use-layout-effect-1.0.1.tgz", + "integrity": "sha512-v/5RegiJWYdoCvMnITBkNNx6bCj20fiaJnWtRkU18yITptraXjffz5Qbn05uOiQnOvi+dbkznkoaMltz1GnszQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-rect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-rect/-/react-use-rect-1.0.1.tgz", + "integrity": "sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/rect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/react-use-size": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-use-size/-/react-use-size-1.0.1.tgz", + "integrity": "sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==", + "dependencies": { + "@babel/runtime": "^7.13.10", + "@radix-ui/react-use-layout-effect": "1.0.1" + }, + "peerDependencies": { + "@types/react": "*", + "react": "^16.8 || ^17.0 || ^18.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/@radix-ui/rect": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/rect/-/rect-1.0.1.tgz", + "integrity": "sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==", + "dependencies": { + "@babel/runtime": "^7.13.10" + } + }, + "node_modules/@react-hook/intersection-observer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@react-hook/intersection-observer/-/intersection-observer-3.1.1.tgz", + "integrity": "sha512-OTDx8/wFaRvzFtKl1dEUEXSOqK2zVJHporiTTdC2xO++0e9FEx9wIrPis5q3lqtXeZH9zYGLbk+aB75qNFbbuw==", + "dependencies": { + "@react-hook/passive-layout-effect": "^1.2.0", + "intersection-observer": "^0.10.0" + }, + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/@react-hook/passive-layout-effect": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@react-hook/passive-layout-effect/-/passive-layout-effect-1.2.1.tgz", + "integrity": "sha512-IwEphTD75liO8g+6taS+4oqz+nnroocNfWVHWz7j+N+ZO2vYrc6PV1q7GQhuahL0IOR7JccFTsFKQ/mb6iZWAg==", + "peerDependencies": { + "react": ">=16.8" + } + }, + "node_modules/@remirror/core-constants": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-2.0.2.tgz", + "integrity": "sha512-dyHY+sMF0ihPus3O27ODd4+agdHMEmuRdyiZJ2CCWjPV5UFmn17ZbElvk6WOGVE4rdCJKZQCrPV2BcikOMLUGQ==", + "peer": true + }, + "node_modules/@rushstack/eslint-patch": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.7.2.tgz", + "integrity": "sha512-RbhOOTCNoCrbfkRyoXODZp75MlpiHMgbE5MEBZAnnnLyQNgrigEj4p0lzsMDyc1zVsJDLrivB58tgg3emX0eEA==", + "dev": true + }, + "node_modules/@stitches/core": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@stitches/core/-/core-1.2.8.tgz", + "integrity": "sha512-Gfkvwk9o9kE9r9XNBmJRfV8zONvXThnm1tcuojL04Uy5uRyqg93DC83lDebl0rocZCfKSjUv+fWYtMQmEDJldg==" + }, + "node_modules/@svgr/babel-plugin-add-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-attribute": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-attribute/-/babel-plugin-remove-jsx-attribute-8.0.0.tgz", + "integrity": "sha512-BcCkm/STipKvbCl6b7QFrMh/vx00vIP63k2eM66MfHJzPr6O2U0jYEViXkHJWqXqQYjdeA9cuCl5KWmlwjDvbA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-remove-jsx-empty-expression": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-remove-jsx-empty-expression/-/babel-plugin-remove-jsx-empty-expression-8.0.0.tgz", + "integrity": "sha512-5BcGCBfBxB5+XSDSWnhTThfI9jcO5f0Ai2V24gZpG+wXF14BzwxxdDb4g6trdOux0rhibGs385BeFMSmxtS3uA==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-replace-jsx-attribute-value": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-replace-jsx-attribute-value/-/babel-plugin-replace-jsx-attribute-value-8.0.0.tgz", + "integrity": "sha512-KVQ+PtIjb1BuYT3ht8M5KbzWBhdAjjUPdlMtpuw/VjT8coTrItWX6Qafl9+ji831JaJcu6PJNKCV0bp01lBNzQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-dynamic-title": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-dynamic-title/-/babel-plugin-svg-dynamic-title-8.0.0.tgz", + "integrity": "sha512-omNiKqwjNmOQJ2v6ge4SErBbkooV2aAWwaPFs2vUY7p7GhVkzRkJ00kILXQvRhA6miHnNpXv7MRnnSjdRjK8og==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-svg-em-dimensions": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-svg-em-dimensions/-/babel-plugin-svg-em-dimensions-8.0.0.tgz", + "integrity": "sha512-mURHYnu6Iw3UBTbhGwE/vsngtCIbHE43xCRK7kCw4t01xyGqb2Pd+WXekRRoFOBIY29ZoOhUCTEweDMdrjfi9g==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-react-native-svg": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-react-native-svg/-/babel-plugin-transform-react-native-svg-8.1.0.tgz", + "integrity": "sha512-Tx8T58CHo+7nwJ+EhUwx3LfdNSG9R2OKfaIXXs5soiy5HtgoAEkDay9LIimLOcG8dJQH1wPZp/cnAv6S9CrR1Q==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-plugin-transform-svg-component": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-transform-svg-component/-/babel-plugin-transform-svg-component-8.0.0.tgz", + "integrity": "sha512-DFx8xa3cZXTdb/k3kfPeaixecQLgKh5NVBMwD0AQxOzcZawK4oo1Jh9LbrcACUivsCA7TLG8eeWgrDXjTMhRmw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/babel-preset": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-8.1.0.tgz", + "integrity": "sha512-7EYDbHE7MxHpv4sxvnVPngw5fuR6pw79SkcrILHJ/iMpuKySNCl5W1qcwPEpU+LgyRXOaAFgH0KhwD18wwg6ug==", + "dev": true, + "dependencies": { + "@svgr/babel-plugin-add-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-attribute": "8.0.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "8.0.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "8.0.0", + "@svgr/babel-plugin-svg-dynamic-title": "8.0.0", + "@svgr/babel-plugin-svg-em-dimensions": "8.0.0", + "@svgr/babel-plugin-transform-react-native-svg": "8.1.0", + "@svgr/babel-plugin-transform-svg-component": "8.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@svgr/core": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz", + "integrity": "sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "camelcase": "^6.2.0", + "cosmiconfig": "^8.1.3", + "snake-case": "^3.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/hast-util-to-babel-ast": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-8.0.0.tgz", + "integrity": "sha512-EbDKwO9GpfWP4jN9sGdYwPBU0kdomaPIL2Eu4YwmgP+sJeXT+L7bMwJUBnhzfH8Q2qMBqZ4fJwpCyYsAN3mt2Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.3", + "entities": "^4.4.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@svgr/plugin-jsx": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-8.1.0.tgz", + "integrity": "sha512-0xiIyBsLlr8quN+WyuxooNW9RJ0Dpr8uOnH/xrCVO8GLUcwHISwj1AG0k+LFzteTkAA0GbX0kj9q6Dk70PTiPA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@svgr/babel-preset": "8.1.0", + "@svgr/hast-util-to-babel-ast": "8.0.0", + "svg-parser": "^2.0.4" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/plugin-svgo": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-8.1.0.tgz", + "integrity": "sha512-Ywtl837OGO9pTLIN/onoWLmDQ4zFUycI1g76vuKGEz6evR/ZTJlJuz3G/fIkb6OVBJ2g0o6CGJzaEjfmEo3AHA==", + "dev": true, + "dependencies": { + "cosmiconfig": "^8.1.3", + "deepmerge": "^4.3.1", + "svgo": "^3.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + }, + "peerDependencies": { + "@svgr/core": "*" + } + }, + "node_modules/@svgr/webpack": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-8.1.0.tgz", + "integrity": "sha512-LnhVjMWyMQV9ZmeEy26maJk+8HTIbd59cH4F2MJ439k9DqejRisfFNGAPvRYlKETuh9LrImlS8aKsBgKjMA8WA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.21.3", + "@babel/plugin-transform-react-constant-elements": "^7.21.3", + "@babel/preset-env": "^7.20.2", + "@babel/preset-react": "^7.18.6", + "@babel/preset-typescript": "^7.21.0", + "@svgr/core": "8.1.0", + "@svgr/plugin-jsx": "8.1.0", + "@svgr/plugin-svgo": "8.1.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/gregberge" + } + }, + "node_modules/@swc/helpers": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.2.tgz", + "integrity": "sha512-E4KcWTpoLHqwPHLxidpOqQbcrZVgi0rsmmZXUle1jXmJfuIf/UWpczUJ7MZZ5tlxytgJXyp0w4PGkkeLiuIdZw==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@tailwindcss/typography": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/@tailwindcss/typography/-/typography-0.5.10.tgz", + "integrity": "sha512-Pe8BuPJQJd3FfRnm6H0ulKIGoMEQS+Vq01R6M5aCrFB/ccR/shT+0kXLjouGC1gFLm9hopTFN+DMP0pfwRWzPw==", + "dev": true, + "dependencies": { + "lodash.castarray": "^4.4.0", + "lodash.isplainobject": "^4.0.6", + "lodash.merge": "^4.6.2", + "postcss-selector-parser": "6.0.10" + }, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/@tailwindcss/typography/node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@tiptap/core": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-2.4.0.tgz", + "integrity": "sha512-YJSahk8pkxpCs8SflCZfTnJpE7IPyUWIylfgXM2DefjRQa5DZ+c6sNY0s/zbxKYFQ6AuHVX40r9pCfcqHChGxQ==", + "peer": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/pm": "^2.0.0" + } + }, + "node_modules/@tiptap/extension-focus": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-focus/-/extension-focus-2.4.0.tgz", + "integrity": "sha512-41P51OImJzvp0zPUudsDPOGIIQkFUK9Yew8MVdtA3EIWkHOl8BZN/X3E/fX9sxzY6WPGgZD0UBRk7f9EA9X5JQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^2.0.0", + "@tiptap/pm": "^2.0.0" + } + }, + "node_modules/@tiptap/pm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-2.4.0.tgz", + "integrity": "sha512-B1HMEqGS4MzIVXnpgRZDLm30mxDWj51LkBT/if1XD+hj5gm8B9Q0c84bhvODX6KIs+c6z+zsY9VkVu8w9Yfgxg==", + "peer": true, + "dependencies": { + "prosemirror-changeset": "^2.2.1", + "prosemirror-collab": "^1.3.1", + "prosemirror-commands": "^1.5.2", + "prosemirror-dropcursor": "^1.8.1", + "prosemirror-gapcursor": "^1.3.2", + "prosemirror-history": "^1.3.2", + "prosemirror-inputrules": "^1.3.0", + "prosemirror-keymap": "^1.2.2", + "prosemirror-markdown": "^1.12.0", + "prosemirror-menu": "^1.2.4", + "prosemirror-model": "^1.19.4", + "prosemirror-schema-basic": "^1.2.2", + "prosemirror-schema-list": "^1.3.0", + "prosemirror-state": "^1.4.3", + "prosemirror-tables": "^1.3.5", + "prosemirror-trailing-node": "^2.0.7", + "prosemirror-transform": "^1.8.0", + "prosemirror-view": "^1.32.7" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, + "node_modules/@trysound/sax": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", + "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", + "dev": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", + "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/acorn": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/@types/acorn/-/acorn-4.0.6.tgz", + "integrity": "sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/concat-stream": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/concat-stream/-/concat-stream-2.0.3.tgz", + "integrity": "sha512-3qe4oQAPNwVNwK4C9c8u+VJqv9kez+2MR4qJpoPFfXtgxxif1QbFusvXzK0/Wra2VX07smostI2VMmJNSpZjuQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.12", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz", + "integrity": "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==", + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/dom-speech-recognition": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@types/dom-speech-recognition/-/dom-speech-recognition-0.0.1.tgz", + "integrity": "sha512-udCxb8DvjcDKfk1WTBzDsxFbLgYxmQGKrE/ricoMqHRNjSlSUCcamVTA5lIQqzY10mY5qCY0QDwBfFEwhfoDPw==" + }, + "node_modules/@types/eslint": { + "version": "8.56.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.5.tgz", + "integrity": "sha512-u5/YPJHo1tvkSF2CE0USEkxon82Z5DBy2xR+qfyYNszpX9qcs4sT6uq2kBbj4BXY1+DBGDPnrhMZV3pKWGNukw==", + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/estree-jsx": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree-jsx/-/estree-jsx-1.0.5.tgz", + "integrity": "sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/google.maps": { + "version": "3.55.5", + "resolved": "https://registry.npmjs.org/@types/google.maps/-/google.maps-3.55.5.tgz", + "integrity": "sha512-U1QwCo1GeeLm0YI/GoHvfd1VfwgnoUSBcKCMXXFAM+2izSSuqqwZUJ9XNO6NxZxmYKjBNI+NF5eGF6uUSb1aSg==" + }, + "node_modules/@types/hast": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz", + "integrity": "sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/hogan.js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/hogan.js/-/hogan.js-3.0.5.tgz", + "integrity": "sha512-/uRaY3HGPWyLqOyhgvW9Aa43BNnLZrNeQxl2p8wqId4UHMfPKolSB+U7BlZyO1ng7MkLnyEAItsBzCG0SDhqrA==" + }, + "node_modules/@types/is-empty": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/@types/is-empty/-/is-empty-1.2.3.tgz", + "integrity": "sha512-4J1l5d79hoIvsrKh5VUKVRA1aIdsOb10Hu5j3J2VfP/msDnfTdGPmNp2E1Wg+vs97Bktzo+MZePFFXSGoykYJw==", + "dev": true + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "peer": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, + "node_modules/@types/mdast": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.3.tgz", + "integrity": "sha512-LsjtqsyF+d2/yFOYaN22dHZI1Cpwkrj+g06G8+qtUKlhovPW89YhqSnfKtMbkgmEtYpH2gydRNULd6y8mciAFg==", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@types/mdx": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.11.tgz", + "integrity": "sha512-HM5bwOaIQJIQbAYfax35HCKxx7a3KrK3nBtIqJgSOitivTD1y3oW9P3rxY9RkXYPUk7y/AjAohfHKmFpGE79zw==" + }, + "node_modules/@types/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==", + "dev": true + }, + "node_modules/@types/ms": { + "version": "0.7.34", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz", + "integrity": "sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==" + }, + "node_modules/@types/node": { + "version": "20.11.28", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.28.tgz", + "integrity": "sha512-M/GPWVS2wLkSkNHVeLkrF2fD5Lx5UC4PxA0uZcKc6QqbIQUJyW1jVjueJYi1z8n0I5PxYrtpnPnWglE+y9A0KA==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz", + "integrity": "sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==", + "dev": true + }, + "node_modules/@types/prop-types": { + "version": "15.7.11", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.11.tgz", + "integrity": "sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng==" + }, + "node_modules/@types/qs": { + "version": "6.9.14", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.14.tgz", + "integrity": "sha512-5khscbd3SwWMhFqylJBLQ0zIu7c1K6Vz0uBIt915BI3zV0q1nfjRQD3RqSBcPaO6PHEF4ov/t9y89fSiyThlPA==" + }, + "node_modules/@types/react": { + "version": "18.2.66", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.2.66.tgz", + "integrity": "sha512-OYTmMI4UigXeFMF/j4uv0lBBEbongSgptPrHBxqME44h9+yNov+oL6Z3ocJKo0WyXR84sQUNeyIp9MRfckvZpg==", + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.2.22", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.2.22.tgz", + "integrity": "sha512-fHkBXPeNtfvri6gdsMYyW+dW7RXFo6Ad09nLFK0VQWR7yGLai/Cyvyj696gbwYvBnhGtevUG9cET0pmUbMtoPQ==", + "devOptional": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.8.tgz", + "integrity": "sha512-WZLiwShhwLRmeV6zH+GkbOFT6Z6VklCItrDioxUnv+u4Ll+8vKeFySoFyK/0ctcRpOmwAicELfmys1sDc/Rw+A==" + }, + "node_modules/@types/semver": { + "version": "7.5.8", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", + "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", + "dev": true + }, + "node_modules/@types/supports-color": { + "version": "8.1.3", + "resolved": "https://registry.npmjs.org/@types/supports-color/-/supports-color-8.1.3.tgz", + "integrity": "sha512-Hy6UMpxhE3j1tLpl27exp1XqHD7n8chAiNPzWfz16LPZoMMoSc4dzLl6w9qijkEb/r5O1ozdu1CWGA2L83ZeZg==", + "dev": true + }, + "node_modules/@types/unist": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.2.tgz", + "integrity": "sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==" + }, + "node_modules/@typescript-eslint/parser": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", + "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "6.21.0", + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/typescript-estree": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", + "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", + "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "dev": true, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", + "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "@typescript-eslint/visitor-keys": "6.21.0", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "minimatch": "9.0.3", + "semver": "^7.5.4", + "ts-api-utils": "^1.0.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "6.21.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", + "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "6.21.0", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^16.0.0 || >=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==" + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", + "integrity": "sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==", + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.6.tgz", + "integrity": "sha512-ejAj9hfRJ2XMsNHk/v6Fu2dGS+i4UaXBXGemOfQ/JfQ6mdQg/WXtwleQRLLS4OvfDhv8rYnVwH27YJLMyYsxhw==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz", + "integrity": "sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz", + "integrity": "sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.6.tgz", + "integrity": "sha512-vUIhZ8LZoIWHBohiEObxVm6hwP034jwmc9kuq5GdHZH0wiLVLIPcMCdpJzG4C11cHoQ25TFIQj9kaVADVX7N3g==", + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.6", + "@webassemblyjs/helper-api-error": "1.11.6", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz", + "integrity": "sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA==", + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz", + "integrity": "sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/wasm-gen": "1.12.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.6.tgz", + "integrity": "sha512-LM4p2csPNvbij6U1f19v6WR56QZ8JcHg3QIJTlSwzFcmx6WSORicYj6I63f9yU1kEUtrpG+kjkiIAkevHpDXrg==", + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.6.tgz", + "integrity": "sha512-m7a0FhE67DQXgouf1tbN5XQcdWoNgaAuoULHIfGFIEVKA6tu/edls6XnIlkmS6FrXAquJRPni3ZZKjw6FSPjPQ==", + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.6", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz", + "integrity": "sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA==", + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz", + "integrity": "sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/helper-wasm-section": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-opt": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1", + "@webassemblyjs/wast-printer": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz", + "integrity": "sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz", + "integrity": "sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-buffer": "1.12.1", + "@webassemblyjs/wasm-gen": "1.12.1", + "@webassemblyjs/wasm-parser": "1.12.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz", + "integrity": "sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@webassemblyjs/helper-api-error": "1.11.6", + "@webassemblyjs/helper-wasm-bytecode": "1.11.6", + "@webassemblyjs/ieee754": "1.11.6", + "@webassemblyjs/leb128": "1.11.6", + "@webassemblyjs/utf8": "1.11.6" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz", + "integrity": "sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA==", + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.12.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "peer": true + }, + "node_modules/abbrev": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", + "integrity": "sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz", + "integrity": "sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==", + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz", + "integrity": "sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/algoliasearch": { + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.22.1.tgz", + "integrity": "sha512-jwydKFQJKIx9kIZ8Jm44SdpigFwRGPESaxZBaHSV0XWN2yBJAOT4mT7ppvlrpA4UGzz92pqFnVKr/kaZXrcreg==", + "peer": true, + "dependencies": { + "@algolia/cache-browser-local-storage": "4.22.1", + "@algolia/cache-common": "4.22.1", + "@algolia/cache-in-memory": "4.22.1", + "@algolia/client-account": "4.22.1", + "@algolia/client-analytics": "4.22.1", + "@algolia/client-common": "4.22.1", + "@algolia/client-personalization": "4.22.1", + "@algolia/client-search": "4.22.1", + "@algolia/logger-common": "4.22.1", + "@algolia/logger-console": "4.22.1", + "@algolia/requester-browser-xhr": "4.22.1", + "@algolia/requester-common": "4.22.1", + "@algolia/requester-node-http": "4.22.1", + "@algolia/transporter": "4.22.1" + } + }, + "node_modules/algoliasearch-helper": { + "version": "3.16.3", + "resolved": "https://registry.npmjs.org/algoliasearch-helper/-/algoliasearch-helper-3.16.3.tgz", + "integrity": "sha512-1OuJT6sONAa9PxcOmWo5WCAT3jQSpCR9/m5Azujja7nhUQwAUDvaaAYrcmUySsrvHh74usZHbE3jFfGnWtZj8w==", + "dependencies": { + "@algolia/events": "^4.0.1" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/anser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/anser/-/anser-2.1.1.tgz", + "integrity": "sha512-nqLm4HxOTpeLOxcmB3QWmV5TcDFhW9y/fyQ+hivtDFcK4OQ+pQ5fzPnXHM1Mfcm0VkLtvVi1TCPr++Qy0Q/3EQ==" + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/any-base": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/any-base/-/any-base-1.1.0.tgz", + "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz", + "integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/arg/-/arg-5.0.2.tgz", + "integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/aria-hidden": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/aria-hidden/-/aria-hidden-1.2.3.tgz", + "integrity": "sha512-xcLxITLe2HYa1cnYnwCjkOO1PqUHQpozB8x9AR0OgWN2woOBi5kSDVxKfd0b7sb1hw5qFeJhXm9H1nu3xSfLeQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/aria-query": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", + "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-includes": { + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", + "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.filter": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz", + "integrity": "sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-array-method-boxes-properly": "^1.0.0", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlast": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.4.tgz", + "integrity": "sha512-BMtLxpV+8BD+6ZPFIWmnUBpQoy+A+ujcg4rhp2iwCRJYA7PEh2MS4NL3lz8EiDlLrJPp2hg9qWihr5pd//jcGw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.findlastindex": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz", + "integrity": "sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.toreversed": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/array.prototype.toreversed/-/array.prototype.toreversed-1.1.2.tgz", + "integrity": "sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.3.tgz", + "integrity": "sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.1.0", + "es-shim-unscopables": "^1.0.2" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ast-types-flow": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.8.tgz", + "integrity": "sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==", + "dev": true + }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/autoprefixer": { + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "engines": { + "node": "^10 || ^12 || >=14" + }, + "peerDependencies": { + "postcss": "^8.1.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axe-core": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/axe-core/-/axe-core-4.7.0.tgz", + "integrity": "sha512-M0JtH+hlOL5pLQwHOLNYZaXuhqmvS8oExsqB1SBYgA4Dk7u/xx+YdGHXaK5pyUfed5mYXdlYiphWq3G8cRi5JQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axobject-query": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-3.2.1.tgz", + "integrity": "sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==", + "dev": true, + "dependencies": { + "dequal": "^2.0.3" + } + }, + "node_modules/babel-plugin-polyfill-corejs2": { + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-corejs2/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/babel-plugin-polyfill-corejs3": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.4.tgz", + "integrity": "sha512-25J6I8NGfa5YkCDogHRID3fVCadIR8/pGl1/spvCkzb6lVn6SR3ojpx9nOn9iEBcUsjY24AmdKm5khcfKdylcg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.1", + "core-js-compat": "^3.36.1" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/babel-plugin-polyfill-regenerator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", + "dev": true, + "dependencies": { + "@babel/helper-define-polyfill-provider": "^0.6.2" + }, + "peerDependencies": { + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/bail": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/better-path-resolve": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/better-path-resolve/-/better-path-resolve-1.0.0.tgz", + "integrity": "sha512-pbnl5XzGBdrFU/wT4jqmJVPn2B6UHPBOhzMQkY/SPUPB6QtUXtmBHBIwCbXJol93mOpGMnQyP/+BB19q04xj7g==", + "dev": true, + "dependencies": { + "is-windows": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/binary-extensions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", + "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/breakword": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/breakword/-/breakword-1.0.6.tgz", + "integrity": "sha512-yjxDAYyK/pBvws9H4xKYpLDpYKEH6CzrBPAuXq3x18I+c/2MkVtT3qAr7Oloi6Dss9qNhPVueAAVU1CSeNDIXw==", + "dev": true, + "dependencies": { + "wcwidth": "^1.0.1" + } + }, + "node_modules/browserslist": { + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/busboy": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", + "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", + "dependencies": { + "streamsearch": "^1.1.0" + }, + "engines": { + "node": ">=10.16.0" + } + }, + "node_modules/call-bind": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-css": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz", + "integrity": "sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/camelcase-keys/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001599", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001599.tgz", + "integrity": "sha512-LRAQHZ4yT1+f9LemSMeqdMpMxZcc4RMWdj4tiFe3G8tNkWK+E58g+/tzotb5cU6TbcVJLr4fySiAW7XmxQvZQA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ] + }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/character-entities": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.2.tgz", + "integrity": "sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-html4": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-entities-legacy": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/character-reference-invalid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz", + "integrity": "sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", + "dev": true, + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-4.0.0.tgz", + "integrity": "sha512-TdHqgGf9odd8SXNuxtUBVx8Nv+qZOejE6qyqiy5NtbYYQOeFa6zmHkxlPzmaLxWWHsU6nJmB7AETdVPi+2NBUg==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/sibiraj-s" + } + ], + "engines": { + "node": ">=8" + } + }, + "node_modules/clean-set": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/clean-set/-/clean-set-1.1.2.tgz", + "integrity": "sha512-cA8uCj0qSoG9e0kevyOWXwPaELRPVg5Pxp6WskLMwerx257Zfnh8Nl0JBH59d7wQzij2CK7qEfJQK3RjuKKIug==" + }, + "node_modules/client-only": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", + "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/cliui/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/cliui/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui/node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clsx": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.0.tgz", + "integrity": "sha512-m3iNNWpd9rl3jvvcBnu70ylMdrXt8Vlq4HYadnU5fwcOtvkSQWPmj7amUcDT2qYI7risszBjI5AUIUox9D16pg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/cmdk": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/cmdk/-/cmdk-1.0.0.tgz", + "integrity": "sha512-gDzVf0a09TvoJ5jnuPvygTB77+XdOSwEmJ88L6XPFPlv7T3RxbP9jgenfylrAMD0+Le1aO0nVjQUzl2g+vjz5Q==", + "dependencies": { + "@radix-ui/react-dialog": "1.0.5", + "@radix-ui/react-primitive": "1.0.3" + }, + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/collapse-white-space": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/collapse-white-space/-/collapse-white-space-2.1.0.tgz", + "integrity": "sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/comma-separated-tokens": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz", + "integrity": "sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-2.0.0.tgz", + "integrity": "sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==", + "dev": true, + "engines": [ + "node >= 6.0" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.0.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/convert-source-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true + }, + "node_modules/core-js-compat": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.37.1.tgz", + "integrity": "sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==", + "dev": true, + "dependencies": { + "browserslist": "^4.23.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "8.3.6", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz", + "integrity": "sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==", + "dev": true, + "dependencies": { + "import-fresh": "^3.3.0", + "js-yaml": "^4.1.0", + "parse-json": "^5.2.0", + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/d-fischer" + }, + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/cosmiconfig/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/crelt": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", + "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==" + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/css-select": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", + "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^6.1.0", + "domhandler": "^5.0.2", + "domutils": "^3.0.1", + "nth-check": "^2.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/css-tree": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz", + "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.30", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0" + } + }, + "node_modules/css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", + "dev": true, + "engines": { + "node": ">= 6" + }, + "funding": { + "url": "https://github.com/sponsors/fb55" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csso": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/csso/-/csso-5.0.5.tgz", + "integrity": "sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==", + "dev": true, + "dependencies": { + "css-tree": "~2.2.0" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.2.1.tgz", + "integrity": "sha512-OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==", + "dev": true, + "dependencies": { + "mdn-data": "2.0.28", + "source-map-js": "^1.0.1" + }, + "engines": { + "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0", + "npm": ">=7.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.28", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.28.tgz", + "integrity": "sha512-aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/csv": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/csv/-/csv-5.5.3.tgz", + "integrity": "sha512-QTaY0XjjhTQOdguARF0lGKm5/mEq9PD9/VhZZegHDIBq2tQwgNpHc3dneD4mGo2iJs+fTKv5Bp0fZ+BRuY3Z0g==", + "dev": true, + "dependencies": { + "csv-generate": "^3.4.3", + "csv-parse": "^4.16.3", + "csv-stringify": "^5.6.5", + "stream-transform": "^2.1.3" + }, + "engines": { + "node": ">= 0.1.90" + } + }, + "node_modules/csv-generate": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-3.4.3.tgz", + "integrity": "sha512-w/T+rqR0vwvHqWs/1ZyMDWtHHSJaN06klRqJXBEpDJaM/+dZkso0OKh1VcuuYvK3XM53KysVNq8Ko/epCK8wOw==", + "dev": true + }, + "node_modules/csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "dev": true + }, + "node_modules/csv-stringify": { + "version": "5.6.5", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-5.6.5.tgz", + "integrity": "sha512-PjiQ659aQ+fUTQqSrd1XEDnOr52jh30RBurfzkscaE2tPaFsDH5wOAHJiw8XAHphRknCwMUE9KRayc4K/NbO8A==", + "dev": true + }, + "node_modules/d": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz", + "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==", + "dependencies": { + "es5-ext": "^0.10.64", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", + "dev": true + }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz", + "integrity": "sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decode-named-character-reference": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz", + "integrity": "sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defaults": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", + "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/define-data-property": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-node-es": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/detect-node-es/-/detect-node-es-1.1.0.tgz", + "integrity": "sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==" + }, + "node_modules/devlop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/devlop/-/devlop-1.1.0.tgz", + "integrity": "sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/didyoumean": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/didyoumean/-/didyoumean-1.2.2.tgz", + "integrity": "sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==", + "dev": true + }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dlv": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", + "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", + "dev": true + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-serializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", + "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.2", + "entities": "^4.2.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", + "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", + "dev": true, + "dependencies": { + "domelementtype": "^2.3.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", + "dev": true, + "dependencies": { + "dom-serializer": "^2.0.0", + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dev": true, + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.4.5", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.5.tgz", + "integrity": "sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://dotenvx.com" + } + }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.708", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.708.tgz", + "integrity": "sha512-iWgEEvREL4GTXXHKohhh33+6Y8XkPI5eHihDmm8zUk5Zo7HICEW+wI/j5kJ2tbuNUCXJ/sNXa03ajW635DiJXA==" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.2.tgz", + "integrity": "sha512-60s3Xv2T2p1ICykc7c+DNDPLDMm9t4QxCOUU0K9JxiLjM3C1zB9YVdN7tjxrFd4+AkZ8CdX1ovUga4P2+1e+/w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-array-method-boxes-properly": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz", + "integrity": "sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==", + "dev": true + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.0.18.tgz", + "integrity": "sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.2", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.4.1.tgz", + "integrity": "sha512-cXLGjP0c4T3flZJKQSuziYoq7MlT+rnvfZjfp7h+I7K9BNX54kP9nyWvdbwjQ4u1iWbOL4u96fgeZLToQlZC7w==", + "peer": true + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es5-ext": { + "version": "0.10.64", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz", + "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==", + "hasInstallScript": true, + "dependencies": { + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.3", + "esniff": "^2.0.1", + "next-tick": "^1.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g==", + "dependencies": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "node_modules/es6-symbol": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz", + "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==", + "dependencies": { + "d": "^1.0.2", + "ext": "^1.7.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-carriage": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/escape-carriage/-/escape-carriage-1.3.1.tgz", + "integrity": "sha512-GwBr6yViW3ttx1kb7/Oh+gKQ1/TrhYwxKqVmg5gS+BK+Qe2KrOa/Vh7w3HPBvgGf0LfcDGoY9I6NHKoA5Hozhw==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", + "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.6.1", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.57.0", + "@humanwhocodes/config-array": "^0.11.14", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.2.2", + "eslint-visitor-keys": "^3.4.3", + "espree": "^9.6.1", + "esquery": "^1.4.2", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.19.0", + "graphemer": "^1.4.0", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "strip-ansi": "^6.0.1", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-next": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-14.1.3.tgz", + "integrity": "sha512-sUCpWlGuHpEhI0pIT0UtdSLJk5Z8E2DYinPTwsBiWaSYQomchdl0i60pjynY48+oXvtyWMQ7oE+G3m49yrfacg==", + "dev": true, + "dependencies": { + "@next/eslint-plugin-next": "14.1.3", + "@rushstack/eslint-patch": "^1.3.3", + "@typescript-eslint/parser": "^5.4.2 || ^6.0.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-import-resolver-typescript": "^3.5.2", + "eslint-plugin-import": "^2.28.1", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react-hooks": "^4.5.0 || 5.0.0-canary-7118f5dd7-20230705" + }, + "peerDependencies": { + "eslint": "^7.23.0 || ^8.0.0", + "typescript": ">=3.3.1" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-config-prettier": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", + "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "is-core-module": "^2.13.0", + "resolve": "^1.22.4" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-typescript": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz", + "integrity": "sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "enhanced-resolve": "^5.12.0", + "eslint-module-utils": "^2.7.4", + "fast-glob": "^3.3.1", + "get-tsconfig": "^4.5.0", + "is-core-module": "^2.11.0", + "is-glob": "^4.0.3" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts/projects/eslint-import-resolver-ts" + }, + "peerDependencies": { + "eslint": "*", + "eslint-plugin-import": "*" + } + }, + "node_modules/eslint-mdx": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/eslint-mdx/-/eslint-mdx-3.1.5.tgz", + "integrity": "sha512-ynztX0k7CQ3iDL7fDEIeg3g0O/d6QPv7IBI9fdYLhXp5fAp0fi8X22xF/D3+Pk0f90R27uwqa1clHpay6t0l8Q==", + "dev": true, + "dependencies": { + "acorn": "^8.11.3", + "acorn-jsx": "^5.3.2", + "espree": "^9.6.1", + "estree-util-visit": "^2.0.0", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "synckit": "^0.9.0", + "tslib": "^2.6.2", + "unified": "^11.0.4", + "unified-engine": "^11.2.0", + "unist-util-visit": "^5.0.0", + "uvu": "^0.5.6", + "vfile": "^6.0.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "eslint": ">=8.0.0" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.1.tgz", + "integrity": "sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.29.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", + "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlastindex": "^1.2.3", + "array.prototype.flat": "^1.3.2", + "array.prototype.flatmap": "^1.3.2", + "debug": "^3.2.7", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.9", + "eslint-module-utils": "^2.8.0", + "hasown": "^2.0.0", + "is-core-module": "^2.13.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.fromentries": "^2.0.7", + "object.groupby": "^1.0.1", + "object.values": "^1.1.7", + "semver": "^6.3.1", + "tsconfig-paths": "^3.15.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-plugin-jsx-a11y": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.8.0.tgz", + "integrity": "sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.23.2", + "aria-query": "^5.3.0", + "array-includes": "^3.1.7", + "array.prototype.flatmap": "^1.3.2", + "ast-types-flow": "^0.0.8", + "axe-core": "=4.7.0", + "axobject-query": "^3.2.1", + "damerau-levenshtein": "^1.0.8", + "emoji-regex": "^9.2.2", + "es-iterator-helpers": "^1.0.15", + "hasown": "^2.0.0", + "jsx-ast-utils": "^3.3.5", + "language-tags": "^1.0.9", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7" + }, + "engines": { + "node": ">=4.0" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-markdown": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-markdown/-/eslint-plugin-markdown-3.0.1.tgz", + "integrity": "sha512-8rqoc148DWdGdmYF6WSQFT3uQ6PO7zXYgeBpHAOAakX/zpq+NvFYbDA/H7PYzHajwtmaOzAwfxyl++x0g1/N9A==", + "dev": true, + "dependencies": { + "mdast-util-from-markdown": "^0.8.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/@types/mdast": { + "version": "3.0.15", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.15.tgz", + "integrity": "sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==", + "dev": true, + "dependencies": { + "@types/unist": "^2" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==", + "dev": true + }, + "node_modules/eslint-plugin-markdown/node_modules/character-entities": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-1.2.4.tgz", + "integrity": "sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/character-entities-legacy": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", + "integrity": "sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/character-reference-invalid": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz", + "integrity": "sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/is-alphabetical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", + "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/is-alphanumerical": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", + "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", + "dev": true, + "dependencies": { + "is-alphabetical": "^1.0.0", + "is-decimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/is-decimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", + "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/is-hexadecimal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz", + "integrity": "sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/mdast-util-from-markdown": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-0.8.5.tgz", + "integrity": "sha512-2hkTXtYYnr+NubD/g6KGBS/0mFmBcifAsI0yIWRiRo0PjVs6SSOSOdtzbp6kSGnShDN6G5aWZpKQ2lWRy27mWQ==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-string": "^2.0.0", + "micromark": "~2.11.0", + "parse-entities": "^2.0.0", + "unist-util-stringify-position": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/mdast-util-to-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz", + "integrity": "sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w==", + "dev": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/micromark": { + "version": "2.11.4", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-2.11.4.tgz", + "integrity": "sha512-+WoovN/ppKolQOFIAajxi7Lu9kInbPxFuTBVEavFcL8eAfVstoc5MocPmqBeAdBOJV00uaVjegzH4+MA0DN/uA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "debug": "^4.0.0", + "parse-entities": "^2.0.0" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/parse-entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz", + "integrity": "sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==", + "dev": true, + "dependencies": { + "character-entities": "^1.0.0", + "character-entities-legacy": "^1.0.0", + "character-reference-invalid": "^1.0.0", + "is-alphanumerical": "^1.0.0", + "is-decimal": "^1.0.0", + "is-hexadecimal": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/eslint-plugin-markdown/node_modules/unist-util-stringify-position": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz", + "integrity": "sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g==", + "dev": true, + "dependencies": { + "@types/unist": "^2.0.2" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/eslint-plugin-mdx": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/eslint-plugin-mdx/-/eslint-plugin-mdx-3.1.5.tgz", + "integrity": "sha512-lUE7tP7IrIRHU3gTtASDe5u4YM2SvQveYVJfuo82yn3MLh/B/v05FNySURCK4aIxIYF1QYo3IRemQG/lyQzpAg==", + "dev": true, + "dependencies": { + "eslint-mdx": "^3.1.5", + "eslint-plugin-markdown": "^3.0.1", + "remark-mdx": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "tslib": "^2.6.2", + "unified": "^11.0.4", + "vfile": "^6.0.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + }, + "peerDependencies": { + "eslint": ">=8.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", + "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0", + "synckit": "^0.8.6" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint-plugin-prettier" + }, + "peerDependencies": { + "@types/eslint": ">=8.0.0", + "eslint": ">=8.0.0", + "eslint-config-prettier": "*", + "prettier": ">=3.0.0" + }, + "peerDependenciesMeta": { + "@types/eslint": { + "optional": true + }, + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-prettier/node_modules/synckit": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", + "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.34.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.34.1.tgz", + "integrity": "sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.7", + "array.prototype.findlast": "^1.2.4", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.toreversed": "^1.1.2", + "array.prototype.tosorted": "^1.1.3", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.0.17", + "estraverse": "^5.3.0", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.7", + "object.fromentries": "^2.0.7", + "object.hasown": "^1.1.3", + "object.values": "^1.1.7", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.10" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8" + } + }, + "node_modules/eslint-plugin-react-hooks": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-4.6.0.tgz", + "integrity": "sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==", + "dev": true, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/eslint-plugin-react/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/@eslint/js": { + "version": "8.57.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", + "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/esniff": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz", + "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==", + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.62", + "event-emitter": "^0.3.5", + "type": "^2.7.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-util-attach-comments": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-attach-comments/-/estree-util-attach-comments-3.0.0.tgz", + "integrity": "sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==", + "dependencies": { + "@types/estree": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-build-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/estree-util-build-jsx/-/estree-util-build-jsx-3.0.1.tgz", + "integrity": "sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-walker": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-is-identifier-name": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-3.0.0.tgz", + "integrity": "sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-to-js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-to-js/-/estree-util-to-js-2.0.0.tgz", + "integrity": "sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "astring": "^1.8.0", + "source-map": "^0.7.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-value-to-estree": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/estree-util-value-to-estree/-/estree-util-value-to-estree-3.1.1.tgz", + "integrity": "sha512-5mvUrF2suuv5f5cGDnDphIy4/gW86z82kl5qG6mM9z04SEQI4FB5Apmaw/TGEf3l55nLtMs5s51dmhUzvAHQCA==", + "dependencies": { + "@types/estree": "^1.0.0", + "is-plain-obj": "^4.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/estree-util-visit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/estree-util-visit/-/estree-util-visit-2.0.0.tgz", + "integrity": "sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz", + "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==", + "dependencies": { + "type": "^2.7.2" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + }, + "node_modules/extendable-error": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/extendable-error/-/extendable-error-0.1.7.tgz", + "integrity": "sha512-UOiS2in6/Q0FK0R0q6UY9vYpQ21mr/Qn1KOnte7vsACuNJf514WvCCUHSRCPcgjPT2bAhNIJdlE6bVap1GKmeg==", + "dev": true + }, + "node_modules/external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "dependencies": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-diff": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", + "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastq": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/fault": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", + "dependencies": { + "format": "^0.2.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-yarn-workspace-root2": { + "version": "1.2.16", + "resolved": "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz", + "integrity": "sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA==", + "dev": true, + "dependencies": { + "micromatch": "^4.0.2", + "pkg-dir": "^4.2.0" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/format": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/format/-/format-0.2.2.tgz", + "integrity": "sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/fraction.js": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", + "dev": true, + "engines": { + "node": "*" + }, + "funding": { + "type": "patreon", + "url": "https://github.com/sponsors/rawify" + } + }, + "node_modules/front-matter": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/front-matter/-/front-matter-4.0.2.tgz", + "integrity": "sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==", + "dependencies": { + "js-yaml": "^3.13.1" + } + }, + "node_modules/front-matter/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/front-matter/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-nonce": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-nonce/-/get-nonce-1.0.1.tgz", + "integrity": "sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-tsconfig": { + "version": "4.7.3", + "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.3.tgz", + "integrity": "sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==", + "dev": true, + "dependencies": { + "resolve-pkg-maps": "^1.0.0" + }, + "funding": { + "url": "https://github.com/privatenumber/get-tsconfig?sponsor=1" + } + }, + "node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "peer": true + }, + "node_modules/glob/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/glob/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/hast-util-is-element": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-3.0.0.tgz", + "integrity": "sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.0.tgz", + "integrity": "sha512-lfX5g6hqVh9kjS/B9E2gSkvHH4SZNiQFiqWS0x9fENzEl+8W12RqdRxX6d/Cwxi30tPQs3bIO+aolQJNp1bIyw==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-attach-comments": "^3.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^0.4.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.0.tgz", + "integrity": "sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "hast-util-whitespace": "^3.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/inline-style-parser": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.2.tgz", + "integrity": "sha512-EcKzdTHVe8wFVOGEYXiW9WmJXPjqi1T+234YpJr98RiFYKHV3cdy1+3mkTE+KHTHxFFLH51SfaGOoUdW+v7ViQ==" + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/style-to-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.5.tgz", + "integrity": "sha512-rDRwHtoDD3UMMrmZ6BzOW0naTjMsVZLIjsGleSKS/0Oz+cgCfAPRspaqJuE8rDzpKha/nEvnM0IF4seEAZUTKQ==", + "dependencies": { + "inline-style-parser": "0.2.2" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.0.tgz", + "integrity": "sha512-EWiE1FSArNBPUo1cKWtzqgnuRQwEeQbQtnFJRYV1hb1BWDgrAlBU0ExptvZMM/KSA82cDpm2sFGf3Dmc5Mza3w==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "hast-util-is-element": "^3.0.0", + "unist-util-find-after": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hast-util-whitespace/-/hast-util-whitespace-3.0.0.tgz", + "integrity": "sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/highlight.js": { + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", + "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/hogan.js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", + "dependencies": { + "mkdirp": "0.3.0", + "nopt": "1.0.10" + }, + "bin": { + "hulk": "bin/hulk" + } + }, + "node_modules/hogan.js/node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/hogan.js/node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/htm": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/htm/-/htm-3.1.1.tgz", + "integrity": "sha512-983Vyg8NwUE7JkZ6NmOqpCZ+sh1bKv2iYTlUkzlWmA5JD2acKoxd4KVxbMmxX/85mtfdnDmTFoNKcg5DGAvxNQ==" + }, + "node_modules/human-id": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-1.0.2.tgz", + "integrity": "sha512-UNopramDEhHJD+VR+ehk8rOslwSfByxPIZyJRfV739NDhN5LF1fa1MqnzKm2lGTQRjNrjK19Q5fhkgIfjlVUKw==", + "dev": true + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/iframe-resizer": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/iframe-resizer/-/iframe-resizer-4.4.2.tgz", + "integrity": "sha512-2SupFCq9V9osWac4q+PodF0E9QdWY5A9VdCpKrrE7HlDrcIsaTp7D6k14mkGXWoWMS9jCavYusik25wTc0YB2Q==", + "hasInstallScript": true, + "engines": { + "node": ">=0.8.0" + }, + "funding": { + "type": "individual", + "url": "https://iframe-resizer.com//pricing" + } + }, + "node_modules/iframe-resizer-react": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/iframe-resizer-react/-/iframe-resizer-react-1.0.13.tgz", + "integrity": "sha512-sd/R9+gluYzSWyilB4at+FukXbYP7LCpm5rLKrKwkP6oZsHFr6RPMxEmz2VwAOwZZygbuu8lGhmwJ909US1abg==", + "dependencies": { + "iframe-resizer": "^4.3.11", + "warning": "^4.0.3" + }, + "engines": { + "node": ">=16", + "npm": ">=5" + }, + "funding": { + "type": "individual", + "url": "https://iframe-resizer.com/licenses/" + }, + "peerDependencies": { + "prop-types": "^15.7.2", + "react": "^16.13.1 || ^18.0.0", + "react-dom": "^16.13.1 || ^18.0.0" + } + }, + "node_modules/ignore": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-meta-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.0.0.tgz", + "integrity": "sha512-okYUR7ZQPH+efeuMJGlq4f8ubUgO50kByRPyt/Cy1Io4PSRsPjxME+YlVaCOx+NIToW7hCsZNFJyTPFFKepRSA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/ini/-/ini-4.1.2.tgz", + "integrity": "sha512-AMB1mvwR1pyBFY/nSevUX6y8nJWS63/SzUKD3JyQn97s4xgIdgQPT75IRouIiBAN4yLQBUShNYVW0+UG25daCw==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/inline-style-parser": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", + "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" + }, + "node_modules/instantsearch-ui-components": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/instantsearch-ui-components/-/instantsearch-ui-components-0.4.0.tgz", + "integrity": "sha512-Isa9Ankm89e9PUXsUto6TxYzcQpXKlWZMsKLXc//dO4i9q5JS8s0Es+c+U65jRLK2j1DiVlNx/Z6HshRIZwA8w==", + "dependencies": { + "@babel/runtime": "^7.1.2" + } + }, + "node_modules/instantsearch.js": { + "version": "4.66.0", + "resolved": "https://registry.npmjs.org/instantsearch.js/-/instantsearch.js-4.66.0.tgz", + "integrity": "sha512-85HVTVBfO0QUBPfbCx2wPE9wEsnWQqWl8IHEOni4567IhH//CwbWv8PwHhT7rBrxSCHsxrgnMTe5dFMz7yc+/A==", + "dependencies": { + "@algolia/events": "^4.0.1", + "@types/dom-speech-recognition": "^0.0.1", + "@types/google.maps": "^3.45.3", + "@types/hogan.js": "^3.0.0", + "@types/qs": "^6.5.3", + "algoliasearch-helper": "3.16.3", + "hogan.js": "^3.0.2", + "htm": "^3.0.0", + "instantsearch-ui-components": "0.4.0", + "preact": "^10.10.0", + "qs": "^6.5.1 < 6.10", + "search-insights": "^2.13.0" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 6" + } + }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/intersection-observer": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/intersection-observer/-/intersection-observer-0.10.0.tgz", + "integrity": "sha512-fn4bQ0Xq8FTej09YC/jqKZwtijpvARlRp6wxL5WTA6yPe2YWSJ5RJh7Nm79rK2qB0wr6iDQzH60XGq5V/7u8YQ==" + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-alphabetical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz", + "integrity": "sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-alphanumerical": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz", + "integrity": "sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-decimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", + "integrity": "sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-empty": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-empty/-/is-empty-1.2.0.tgz", + "integrity": "sha512-F2FnH/otLNJv0J6wc73A5Xo7oHLNnqplYqZhUu01tD54DIPvxIRSTSLkrUB/M0nHO4vo1O9PDfN4KoTxCzLh/w==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hexadecimal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz", + "integrity": "sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", + "integrity": "sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-reference": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-3.0.2.tgz", + "integrity": "sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-subdir": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", + "integrity": "sha512-2AT6j+gXe/1ueqbW6fLZJiIw3F8iXGJtt0yDrZaBhAZEG1raiTxKWU+IPqMCzQAXOUCKdA4UDMgacKH25XG2Cw==", + "dev": true, + "dependencies": { + "better-path-resolve": "1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/iterator.prototype": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.2.tgz", + "integrity": "sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + } + }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/jiti": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", + "dev": true, + "bin": { + "jiti": "bin/jiti.js" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", + "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/language-subtag-registry": { + "version": "0.3.22", + "resolved": "https://registry.npmjs.org/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz", + "integrity": "sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==", + "dev": true + }, + "node_modules/language-tags": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/language-tags/-/language-tags-1.0.9.tgz", + "integrity": "sha512-MbjN408fEndfiQXbFQ1vnd+1NoLDsnQW41410oQBXiyXDMYH5z505juWa4KUE1LqxRC7DgOgZDbKLxHIwm27hA==", + "dev": true, + "dependencies": { + "language-subtag-registry": "^0.3.20" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lilconfig": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/linkify-it": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", + "peer": true, + "dependencies": { + "uc.micro": "^2.0.0" + } + }, + "node_modules/load-plugin": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/load-plugin/-/load-plugin-6.0.2.tgz", + "integrity": "sha512-3KRkTvCOsyNrx4zvBl/+ZMqPdVyp26TIf6xkmfEGuGwCfNQ/HzhktwbJCxd1KJpzPbK42t/WVOL3cX+TDaMRuQ==", + "dev": true, + "dependencies": { + "@npmcli/config": "^8.0.0", + "import-meta-resolve": "^4.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/load-yaml-file": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz", + "integrity": "sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.13.0", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/load-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/load-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/load-yaml-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash.castarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.castarray/-/lodash.castarray-4.4.0.tgz", + "integrity": "sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==", + "dev": true + }, + "node_modules/lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.startcase": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz", + "integrity": "sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==", + "dev": true + }, + "node_modules/loglevel": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.1.tgz", + "integrity": "sha512-hP3I3kCrDIMuRwAwHltphhDM1r8i55H33GgqjXbrisuJhF4kRhW1dNuxsRklp4bXl8DSdLaNLuiL4A/LWRfxvg==", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, + "node_modules/longest-streak": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", + "integrity": "sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dev": true, + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/lowlight": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lowlight/-/lowlight-3.1.0.tgz", + "integrity": "sha512-CEbNVoSikAxwDMDPjXlqlFYiZLkDJHwyGu/MfOsJnF3d7f3tds5J3z8s/l9TMXhzfsJCCJEAsD78842mwmg0PQ==", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.0.0", + "highlight.js": "~11.9.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/lru-cache": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", + "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/lucide-react": { + "version": "0.358.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.358.0.tgz", + "integrity": "sha512-rBSptRjZTMBm24zsFhR6pK/NgbT18JegZGKcH4+1H3+UigMSRpeoWLtR/fAwMYwYnlJOZB+y8WpeHne9D6X6Kg==", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lz-string": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", + "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/markdown-extensions/-/markdown-extensions-2.0.0.tgz", + "integrity": "sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-it": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", + "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "peer": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.1.0" + }, + "bin": { + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-table": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.3.tgz", + "integrity": "sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.1.tgz", + "integrity": "sha512-SG21kZHGC3XRTSUhtofZkBzZTJNM5ecCi0SK2IMKmSXR8vO3peL+kb1O0z7Zl83jKtutG4k5Wv/W7V3/YHvzPA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "escape-string-regexp": "^5.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-from-markdown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.0.tgz", + "integrity": "sha512-n7MTOr/z+8NAX/wmhhDji8O3bRvPTV/U0oTCaZJkjhPSKTPhS3xufVhKGF8s1pJ7Ox4QgoIU7KHseh09S+9rTA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark": "^4.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-decode-string": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-frontmatter/-/mdast-util-frontmatter-2.0.1.tgz", + "integrity": "sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "escape-string-regexp": "^5.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-frontmatter/node_modules/escape-string-regexp": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", + "integrity": "sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.0.0.tgz", + "integrity": "sha512-dgQEX5Amaq+DuUqf26jJqSK9qgixgd6rYDHAv4aTBuA92cTknZlKpPfa86Z/s8Dj8xsAQpFfBmPUHWJBWqS4Bw==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-gfm-autolink-literal": "^2.0.0", + "mdast-util-gfm-footnote": "^2.0.0", + "mdast-util-gfm-strikethrough": "^2.0.0", + "mdast-util-gfm-table": "^2.0.0", + "mdast-util-gfm-task-list-item": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-FyzMsduZZHSc3i0Px3PQcBT4WJY/X/RCtEJKuybiC6sjPqLv7h1yqAkmILZtuxMSsUyaLUWNp71+vQH2zqp5cg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "ccount": "^2.0.0", + "devlop": "^1.0.0", + "mdast-util-find-and-replace": "^3.0.0", + "micromark-util-character": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-5jOT2boTSVkMnQ7LTrd6n/18kqwjmuYqo7JUPe+tRCY6O7dAuTFMtTPauYYrMPpox9hlN0uOx/FL8XvEfG9/mQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-2.0.0.tgz", + "integrity": "sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "markdown-table": "^3.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-2.0.0.tgz", + "integrity": "sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx/-/mdast-util-mdx-3.0.0.tgz", + "integrity": "sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==", + "dependencies": { + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-mdx-expression": "^2.0.0", + "mdast-util-mdx-jsx": "^3.0.0", + "mdast-util-mdxjs-esm": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.0.tgz", + "integrity": "sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.1.2.tgz", + "integrity": "sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "devlop": "^1.1.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0", + "parse-entities": "^4.0.0", + "stringify-entities": "^4.0.0", + "unist-util-remove-position": "^5.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-2.0.1.tgz", + "integrity": "sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "devlop": "^1.0.0", + "mdast-util-from-markdown": "^2.0.0", + "mdast-util-to-markdown": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-phrasing/-/mdast-util-phrasing-4.1.0.tgz", + "integrity": "sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.1.0.tgz", + "integrity": "sha512-/e2l/6+OdGp/FB+ctrJ9Avz71AN/GRH3oi/3KAx/kMnoUsD6q0woXlDT8lLEeViVKE7oZxE7RXzvO3T8kF2/sA==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "@ungap/structured-clone": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "trim-lines": "^3.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.0.tgz", + "integrity": "sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "longest-streak": "^3.0.0", + "mdast-util-phrasing": "^4.0.0", + "mdast-util-to-string": "^4.0.0", + "micromark-util-decode-string": "^2.0.0", + "unist-util-visit": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-string/-/mdast-util-to-string-4.0.0.tgz", + "integrity": "sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdn-data": { + "version": "2.0.30", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", + "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", + "dev": true + }, + "node_modules/mdurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "peer": true + }, + "node_modules/meow": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/meow/-/meow-6.1.1.tgz", + "integrity": "sha512-3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "^4.0.2", + "normalize-package-data": "^2.5.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.13.1", + "yargs-parser": "^18.1.3" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", + "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromark": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.0.tgz", + "integrity": "sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.0.tgz", + "integrity": "sha512-jThOz/pVmAYUtkroV3D5c1osFXAMv9e0ypGDOIZuCeAe91/sD6BoE2Sjzt30yuXtwOYUmySOhMas/PVyh02itA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-destination": "^2.0.0", + "micromark-factory-label": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-factory-title": "^2.0.0", + "micromark-factory-whitespace": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-html-tag-name": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-subtokenize": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-frontmatter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-frontmatter/-/micromark-extension-frontmatter-2.0.0.tgz", + "integrity": "sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==", + "dependencies": { + "fault": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-3.0.0.tgz", + "integrity": "sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==", + "dependencies": { + "micromark-extension-gfm-autolink-literal": "^2.0.0", + "micromark-extension-gfm-footnote": "^2.0.0", + "micromark-extension-gfm-strikethrough": "^2.0.0", + "micromark-extension-gfm-table": "^2.0.0", + "micromark-extension-gfm-tagfilter": "^2.0.0", + "micromark-extension-gfm-task-list-item": "^2.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-autolink-literal": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.0.0.tgz", + "integrity": "sha512-rTHfnpt/Q7dEAK1Y5ii0W8bhfJlVJFnJMHIPisfPK3gpVNuOP0VnRl96+YJ3RYWV/P4gFeQoGKNlT3RhuvpqAg==", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.0.0.tgz", + "integrity": "sha512-6Rzu0CYRKDv3BfLAUnZsSlzx3ak6HAoI85KTiijuKIz5UxZxbUI+pD6oHgw+6UtQuiRwnGRhzMmPRv4smcz0fg==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-normalize-identifier": "^2.0.0", + "micromark-util-sanitize-uri": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-strikethrough": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.0.0.tgz", + "integrity": "sha512-c3BR1ClMp5fxxmwP6AoOY2fXO9U8uFMKs4ADD66ahLTNcwzSCyRVU4k7LPV5Nxo/VJiR4TdzxRQY2v3qIUceCw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-classify-character": "^2.0.0", + "micromark-util-resolve-all": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-table": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.0.0.tgz", + "integrity": "sha512-PoHlhypg1ItIucOaHmKE8fbin3vTLpDOUg8KAr8gRCF1MOZI9Nquq2i/44wFvviM4WuxJzc3demT8Y3dkfvYrw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-tagfilter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-2.0.0.tgz", + "integrity": "sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-task-list-item": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.0.1.tgz", + "integrity": "sha512-cY5PzGcnULaN5O7T+cOzfMoHjBW7j+T9D2sucA5d/KbsBTPcYdebm9zUd9zzdgJGCwahV+/W78Z3nbulBYVbTw==", + "dependencies": { + "devlop": "^1.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-expression": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-3.0.0.tgz", + "integrity": "sha512-sI0nwhUDz97xyzqJAbHQhp5TfaxEvZZZ2JDqUo+7NvyIYG6BZ5CPPqj2ogUoPJlmXHBnyZUzISg9+oUmU6tUjQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-extension-mdx-jsx": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.0.tgz", + "integrity": "sha512-uvhhss8OGuzR4/N17L1JwvmJIpPhAd8oByMawEKx6NVdBCbesjH4t+vjEp3ZXft9DwvlKSD07fCeI44/N0Vf2w==", + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "micromark-factory-mdx-expression": "^2.0.0", + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-md": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-md/-/micromark-extension-mdx-md-2.0.0.tgz", + "integrity": "sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==", + "dependencies": { + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs/-/micromark-extension-mdxjs-3.0.0.tgz", + "integrity": "sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==", + "dependencies": { + "acorn": "^8.0.0", + "acorn-jsx": "^5.0.0", + "micromark-extension-mdx-expression": "^3.0.0", + "micromark-extension-mdx-jsx": "^3.0.0", + "micromark-extension-mdx-md": "^2.0.0", + "micromark-extension-mdxjs-esm": "^3.0.0", + "micromark-util-combine-extensions": "^2.0.0", + "micromark-util-types": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-3.0.0.tgz", + "integrity": "sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-core-commonmark": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.0.tgz", + "integrity": "sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-label": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.0.tgz", + "integrity": "sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.1.tgz", + "integrity": "sha512-F0ccWIUHRLRrYp5TC9ZYXmZo+p2AM13ggbsW4T0b5CRKP8KHVRB8t4pwtBgTxtjRmwrK0Irwm7vs2JOZabHZfg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-events-to-acorn": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.0.tgz", + "integrity": "sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.0.tgz", + "integrity": "sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-whitespace": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.0.tgz", + "integrity": "sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-factory-space": "^2.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-character": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.0.tgz", + "integrity": "sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.0.tgz", + "integrity": "sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.0.tgz", + "integrity": "sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-combine-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.0.tgz", + "integrity": "sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.1.tgz", + "integrity": "sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.0.tgz", + "integrity": "sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^2.0.0", + "micromark-util-decode-numeric-character-reference": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.0.tgz", + "integrity": "sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-events-to-acorn": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-2.0.2.tgz", + "integrity": "sha512-Fk+xmBrOv9QZnEDguL9OI9/NQQp6Hz4FuQ4YmCb/5V7+9eAh1s6AYSvL20kHkD67YIg7EpE54TiSlcsf3vyZgA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "@types/acorn": "^4.0.0", + "@types/estree": "^1.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.0.tgz", + "integrity": "sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.0.tgz", + "integrity": "sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.0.tgz", + "integrity": "sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.0.tgz", + "integrity": "sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-encode": "^2.0.0", + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-subtokenize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.0.0.tgz", + "integrity": "sha512-vc93L1t+gpR3p8jxeVdaYlbV2jTYteDje19rNSS/H5dlhxUYll5Fy6vJ2cDwP8RnsXi818yGty1ayP55y3W6fg==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "devlop": "^1.0.0", + "micromark-util-chunked": "^2.0.0", + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-symbol": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.0.tgz", + "integrity": "sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromark-util-types": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.0.tgz", + "integrity": "sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==", + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ] + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/minimist-options/node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/mixme": { + "version": "0.5.10", + "resolved": "https://registry.npmjs.org/mixme/-/mixme-0.5.10.tgz", + "integrity": "sha512-5H76ANWinB1H3twpJ6JY8uvAtpmFvHNArpilJAjXRKXSDDLPIMoZArw5SH0q9z+lLs8IrMw7Q2VWpWimFKFT1Q==", + "dev": true, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "engines": { + "node": "*" + } + }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", + "integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "peer": true + }, + "node_modules/next": { + "version": "14.1.3", + "resolved": "https://registry.npmjs.org/next/-/next-14.1.3.tgz", + "integrity": "sha512-oexgMV2MapI0UIWiXKkixF8J8ORxpy64OuJ/J9oVUmIthXOUCcuVEZX+dtpgq7wIfIqtBwQsKEDXejcjTsan9g==", + "dependencies": { + "@next/env": "14.1.3", + "@swc/helpers": "0.5.2", + "busboy": "1.6.0", + "caniuse-lite": "^1.0.30001579", + "graceful-fs": "^4.2.11", + "postcss": "8.4.31", + "styled-jsx": "5.1.1" + }, + "bin": { + "next": "dist/bin/next" + }, + "engines": { + "node": ">=18.17.0" + }, + "optionalDependencies": { + "@next/swc-darwin-arm64": "14.1.3", + "@next/swc-darwin-x64": "14.1.3", + "@next/swc-linux-arm64-gnu": "14.1.3", + "@next/swc-linux-arm64-musl": "14.1.3", + "@next/swc-linux-x64-gnu": "14.1.3", + "@next/swc-linux-x64-musl": "14.1.3", + "@next/swc-win32-arm64-msvc": "14.1.3", + "@next/swc-win32-ia32-msvc": "14.1.3", + "@next/swc-win32-x64-msvc": "14.1.3" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "@opentelemetry/api": { + "optional": true + }, + "sass": { + "optional": true + } + } + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/next/node_modules/postcss": { + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-releases": { + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" + }, + "node_modules/nopt": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz", + "integrity": "sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA==", + "dev": true, + "dependencies": { + "abbrev": "^2.0.0" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-normalize-package-bin": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", + "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz", + "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-inspect": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", + "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", + "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.groupby": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.2.tgz", + "integrity": "sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==", + "dev": true, + "dependencies": { + "array.prototype.filter": "^1.0.3", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.0.0" + } + }, + "node_modules/object.hasown": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/object.hasown/-/object.hasown-1.1.3.tgz", + "integrity": "sha512-fFI4VcYpRHvSLXxP7yiZOMAd331cPfd2p7PFDVbgUsYOfCT3tICVqXWngbjr4m49OvsBwUBQ6O2uQoJvy3RexA==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", + "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", + "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "dev": true, + "dependencies": { + "@aashutoshrathi/word-wrap": "^1.2.3", + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/orderedmap": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/orderedmap/-/orderedmap-2.1.1.tgz", + "integrity": "sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==", + "peer": true + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/outdent": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/outdent/-/outdent-0.5.0.tgz", + "integrity": "sha512-/jHxFIzoMXdqPzTaCpFzAAWhpkSjZPF4Vsn6jAfNpmbH/ymsmd7Qc6VE9BGn0L6YMj6uwpQLxCECpus4ukKS9Q==", + "dev": true + }, + "node_modules/outvariant": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.0.tgz", + "integrity": "sha512-AlWY719RF02ujitly7Kk/0QlV+pXGFDHrHf9O2OKqyqgBieaPOIeuSkL8sRK6j2WK+/ZAURq2kZsY0d8JapUiw==" + }, + "node_modules/p-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz", + "integrity": "sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==", + "dev": true, + "dependencies": { + "p-map": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-entities": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.1.tgz", + "integrity": "sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==", + "dependencies": { + "@types/unist": "^2.0.0", + "character-entities": "^2.0.0", + "character-entities-legacy": "^3.0.0", + "character-reference-invalid": "^2.0.0", + "decode-named-character-reference": "^1.0.0", + "is-alphanumerical": "^2.0.0", + "is-decimal": "^2.0.0", + "is-hexadecimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.10.tgz", + "integrity": "sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==" + }, + "node_modules/parse-json": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-7.1.1.tgz", + "integrity": "sha512-SgOTCX/EZXtZxBE5eJ97P4yGM5n37BwRU+YMsH4vNzFqJV/oWFXXCmwFlgWUM4PrakybVOueJJ6pwHqSVhTFDw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.21.4", + "error-ex": "^1.3.2", + "json-parse-even-better-errors": "^3.0.0", + "lines-and-columns": "^2.0.3", + "type-fest": "^3.8.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-json/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/parse-json/node_modules/lines-and-columns": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-2.0.4.tgz", + "integrity": "sha512-wM1+Z03eypVAVUCE7QdSqpVIvelbOakn1M0bPDoA4SGWPx3sNDVUiMo3L6To6WWGClB7VyXnhQ4Sn7gxiJbE6A==", + "dev": true, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/parse-json/node_modules/type-fest": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", + "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", + "dev": true, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/periscopic": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/periscopic/-/periscopic-3.1.0.tgz", + "integrity": "sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^3.0.0", + "is-reference": "^3.0.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pirates": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", + "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/postcss": { + "version": "8.4.36", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.36.tgz", + "integrity": "sha512-/n7eumA6ZjFHAsbX30yhHup/IMkOmlmvtEi7P+6RMYf+bGJSUHc3geH4a0NSZxAz/RJfiS9tooCTs9LAVYUZKw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.1.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-import": { + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-15.1.0.tgz", + "integrity": "sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==", + "dev": true, + "dependencies": { + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "postcss": "^8.0.0" + } + }, + "node_modules/postcss-js": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-js/-/postcss-js-4.0.1.tgz", + "integrity": "sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==", + "dev": true, + "dependencies": { + "camelcase-css": "^2.0.1" + }, + "engines": { + "node": "^12 || ^14 || >= 16" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.4.21" + } + }, + "node_modules/postcss-load-config": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "postcss": ">=8.0.9", + "ts-node": ">=9.0.0" + }, + "peerDependenciesMeta": { + "postcss": { + "optional": true + }, + "ts-node": { + "optional": true + } + } + }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, + "node_modules/postcss-nested": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz", + "integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==", + "dev": true, + "dependencies": { + "postcss-selector-parser": "^6.0.11" + }, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.2.14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.16", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.16.tgz", + "integrity": "sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/preact": { + "version": "10.20.0", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.20.0.tgz", + "integrity": "sha512-wU7iZw2BjsaKDal3pDRDy/HpPB6cuFOnVUCcw9aIPKG98+ZrXx3F+szkos8BVME5bquyKDKvRlOJFG8kMkcAbg==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/preferred-pm": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.3.tgz", + "integrity": "sha512-MkXsENfftWSRpzCzImcp4FRsCc3y1opwB73CfCNWyzMqArju2CrlMHlqB7VexKiPEOjGMbttv1r9fSCn5S610w==", + "dev": true, + "dependencies": { + "find-up": "^5.0.0", + "find-yarn-workspace-root2": "1.2.16", + "path-exists": "^4.0.0", + "which-pm": "2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", + "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "dev": true, + "bin": { + "prettier": "bin/prettier.cjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/proc-log": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", + "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/property-information": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.4.1.tgz", + "integrity": "sha512-OHYtXfu5aI2sS2LWFSN5rgJjrQ4pCy8i1jubJLe2QvMF8JJ++HXTUIVWFLfXJoaOfvYYjk2SN8J2wFUWIGXT4w==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/prosemirror-changeset": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.2.1.tgz", + "integrity": "sha512-J7msc6wbxB4ekDFj+n9gTW/jav/p53kdlivvuppHsrZXCaQdVgRghoZbSS3kwrRyAstRVQ4/+u5k7YfLgkkQvQ==", + "peer": true, + "dependencies": { + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-collab": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", + "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", + "peer": true, + "dependencies": { + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-commands": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.5.2.tgz", + "integrity": "sha512-hgLcPaakxH8tu6YvVAaILV2tXYsW3rAdDR8WNkeKGcgeMVQg3/TMhPdVoh7iAmfgVjZGtcOSjKiQaoeKjzd2mQ==", + "peer": true, + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-dropcursor": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", + "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", + "peer": true, + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0", + "prosemirror-view": "^1.1.0" + } + }, + "node_modules/prosemirror-gapcursor": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", + "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", + "peer": true, + "dependencies": { + "prosemirror-keymap": "^1.0.0", + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-view": "^1.0.0" + } + }, + "node_modules/prosemirror-history": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.0.tgz", + "integrity": "sha512-UUiGzDVcqo1lovOPdi9YxxUps3oBFWAIYkXLu3Ot+JPv1qzVogRbcizxK3LhHmtaUxclohgiOVesRw5QSlMnbQ==", + "peer": true, + "dependencies": { + "prosemirror-state": "^1.2.2", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.31.0", + "rope-sequence": "^1.3.0" + } + }, + "node_modules/prosemirror-inputrules": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", + "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", + "peer": true, + "dependencies": { + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.0.0" + } + }, + "node_modules/prosemirror-keymap": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", + "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", + "peer": true, + "dependencies": { + "prosemirror-state": "^1.0.0", + "w3c-keyname": "^2.2.0" + } + }, + "node_modules/prosemirror-markdown": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.0.tgz", + "integrity": "sha512-UziddX3ZYSYibgx8042hfGKmukq5Aljp2qoBiJRejD/8MH70siQNz5RB1TrdTPheqLMy4aCe4GYNF10/3lQS5g==", + "peer": true, + "dependencies": { + "markdown-it": "^14.0.0", + "prosemirror-model": "^1.20.0" + } + }, + "node_modules/prosemirror-menu": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", + "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", + "peer": true, + "dependencies": { + "crelt": "^1.0.0", + "prosemirror-commands": "^1.0.0", + "prosemirror-history": "^1.0.0", + "prosemirror-state": "^1.0.0" + } + }, + "node_modules/prosemirror-model": { + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.21.0.tgz", + "integrity": "sha512-zLpS1mVCZLA7VTp82P+BfMiYVPcX1/z0Mf3gsjKZtzMWubwn2pN7CceMV0DycjlgE5JeXPR7UF4hJPbBV98oWA==", + "peer": true, + "dependencies": { + "orderedmap": "^2.0.0" + } + }, + "node_modules/prosemirror-schema-basic": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.2.tgz", + "integrity": "sha512-/dT4JFEGyO7QnNTe9UaKUhjDXbTNkiWTq/N4VpKaF79bBjSExVV2NXmJpcM7z/gD7mbqNjxbmWW5nf1iNSSGnw==", + "peer": true, + "dependencies": { + "prosemirror-model": "^1.19.0" + } + }, + "node_modules/prosemirror-schema-list": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.3.0.tgz", + "integrity": "sha512-Hz/7gM4skaaYfRPNgr421CU4GSwotmEwBVvJh5ltGiffUJwm7C8GfN/Bc6DR1EKEp5pDKhODmdXXyi9uIsZl5A==", + "peer": true, + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.7.3" + } + }, + "node_modules/prosemirror-state": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", + "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "peer": true, + "dependencies": { + "prosemirror-model": "^1.0.0", + "prosemirror-transform": "^1.0.0", + "prosemirror-view": "^1.27.0" + } + }, + "node_modules/prosemirror-tables": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.3.7.tgz", + "integrity": "sha512-oEwX1wrziuxMtwFvdDWSFHVUWrFJWt929kVVfHvtTi8yvw+5ppxjXZkMG/fuTdFo+3DXyIPSKfid+Be1npKXDA==", + "peer": true, + "dependencies": { + "prosemirror-keymap": "^1.1.2", + "prosemirror-model": "^1.8.1", + "prosemirror-state": "^1.3.1", + "prosemirror-transform": "^1.2.1", + "prosemirror-view": "^1.13.3" + } + }, + "node_modules/prosemirror-trailing-node": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-2.0.8.tgz", + "integrity": "sha512-ujRYhSuhQb1Jsarh1IHqb2KoSnRiD7wAMDGucP35DN7j5af6X7B18PfdPIrbwsPTqIAj0fyOvxbuPsWhNvylmA==", + "peer": true, + "dependencies": { + "@remirror/core-constants": "^2.0.2", + "escape-string-regexp": "^4.0.0" + }, + "peerDependencies": { + "prosemirror-model": "^1.19.0", + "prosemirror-state": "^1.4.2", + "prosemirror-view": "^1.31.2" + } + }, + "node_modules/prosemirror-transform": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.9.0.tgz", + "integrity": "sha512-5UXkr1LIRx3jmpXXNKDhv8OyAOeLTGuXNwdVfg8x27uASna/wQkr9p6fD3eupGOi4PLJfbezxTyi/7fSJypXHg==", + "peer": true, + "dependencies": { + "prosemirror-model": "^1.21.0" + } + }, + "node_modules/prosemirror-view": { + "version": "1.33.6", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.33.6.tgz", + "integrity": "sha512-zRLUNgLIQfd8IfGprsXxWTjdA8xEAFJe8cDNrOptj6Mop9sj+BMeVbJvceyAYCm5G2dOdT2prctH7K9dfnpIMw==", + "peer": true, + "dependencies": { + "prosemirror-model": "^1.20.0", + "prosemirror-state": "^1.0.0", + "prosemirror-transform": "^1.1.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw==", + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-devtools-inline": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/react-devtools-inline/-/react-devtools-inline-4.4.0.tgz", + "integrity": "sha512-ES0GolSrKO8wsKbsEkVeiR/ZAaHQTY4zDh1UW8DImVmm8oaGLl3ijJDvSGe+qDRKPZdPRnDtWWnSvvrgxXdThQ==", + "dependencies": { + "es6-symbol": "^3" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-instantsearch": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-instantsearch/-/react-instantsearch-7.7.0.tgz", + "integrity": "sha512-WDHPkmCiXxaWlgeuxcT6PKxs/xr27DO40dZZGh3Psai6/1M/BT8y4M0vLJ46gZoiQID6SfbVFKpUd2yRZznO4w==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "instantsearch-ui-components": "0.4.0", + "instantsearch.js": "4.66.0", + "react-instantsearch-core": "7.7.0" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 5", + "react": ">= 16.8.0 < 19", + "react-dom": ">= 16.8.0 < 19" + } + }, + "node_modules/react-instantsearch-core": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/react-instantsearch-core/-/react-instantsearch-core-7.7.0.tgz", + "integrity": "sha512-omUwh5JoYBOn/aa7iNtyD7t3FkJqcyscWdKaJ6VStsdAt1biDZQPpYkTG5xyZiSQ2mht99GqMm1OY1VM+zDumg==", + "dependencies": { + "@babel/runtime": "^7.1.2", + "algoliasearch-helper": "3.16.3", + "instantsearch.js": "4.66.0", + "use-sync-external-store": "^1.0.0" + }, + "peerDependencies": { + "algoliasearch": ">= 3.1 < 5", + "react": ">= 16.8.0 < 19" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/react-remove-scroll": { + "version": "2.5.5", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.5.5.tgz", + "integrity": "sha512-ImKhrzJJsyXJfBZ4bzu8Bwpka14c/fQt0k+cyFp/PBhTfyDnU5hjOtM4AG/0AMyy8oKzOTR0lDgJIM7pYXI0kw==", + "dependencies": { + "react-remove-scroll-bar": "^2.3.3", + "react-style-singleton": "^2.2.1", + "tslib": "^2.1.0", + "use-callback-ref": "^1.3.0", + "use-sidecar": "^1.1.2" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-remove-scroll-bar": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", + "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "dependencies": { + "react-style-singleton": "^2.2.1", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/react-style-singleton": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", + "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "dependencies": { + "get-nonce": "^1.0.0", + "invariant": "^2.2.4", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", + "dev": true, + "dependencies": { + "pify": "^2.3.0" + } + }, + "node_modules/read-package-json-fast": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", + "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", + "dev": true, + "dependencies": { + "json-parse-even-better-errors": "^3.0.0", + "npm-normalize-package-bin": "^3.0.0" + }, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-package-json-fast/node_modules/json-parse-even-better-errors": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz", + "integrity": "sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg==", + "dev": true, + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-yaml-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-yaml-file/-/read-yaml-file-1.1.0.tgz", + "integrity": "sha512-VIMnQi/Z4HT2Fxuwg5KrY174U1VdUIASQVWXXyqtNRtxSr9IYkn1rsI6Tb6HsrHCmB7gVpNwX6JxPTHcH6IoTA==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.5", + "js-yaml": "^3.6.1", + "pify": "^4.0.1", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/read-yaml-file/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/read-yaml-file/node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/read-yaml-file/node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz", + "integrity": "sha512-X007RyZLsCJVVrjgEFVpLUTZwyOZk3oiL75ZcuYjlIWd6rNJtOjkBwQc5AsRrpbKVkxN6sklw/k/9m2jJYOf8Q==", + "dev": true, + "dependencies": { + "regenerate": "^1.4.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==" + }, + "node_modules/regenerator-transform": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpu-core": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", + "integrity": "sha512-RAM5FlZz+Lhmo7db9L298p2vHP5ZywrVXmVXpmAD9GuL5MPH6t9ROw1iA/wfHkQ76Qe7AaPF0nGuim96/IrQMQ==", + "dev": true, + "dependencies": { + "@babel/regjsgen": "^0.8.0", + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.1.0", + "regjsparser": "^0.9.1", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsparser": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", + "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/rehype-highlight": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-highlight/-/rehype-highlight-7.0.0.tgz", + "integrity": "sha512-QtobgRgYoQaK6p1eSr2SD1i61f7bjF2kZHAQHxeCHAuJf7ZUDMvQ7owDq9YTkmar5m5TSUol+2D3bp3KfJf/oA==", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-text": "^4.0.0", + "lowlight": "^3.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-frontmatter": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-5.0.0.tgz", + "integrity": "sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-frontmatter": "^2.0.0", + "micromark-extension-frontmatter": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.0.tgz", + "integrity": "sha512-U92vJgBPkbw4Zfu/IiW2oTZLSL3Zpv+uI7My2eq8JxKgqraFdU8YUGicEJCEgSbeaG+QDFqIcwwfMTOEelPxuA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-gfm": "^3.0.0", + "micromark-extension-gfm": "^3.0.0", + "remark-parse": "^11.0.0", + "remark-stringify": "^11.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.0.1.tgz", + "integrity": "sha512-3Pz3yPQ5Rht2pM5R+0J2MrGoBSrzf+tJG94N+t/ilfdh8YLyyKYtidAYwTveB20BoHAcwIopOUqhcmh2F7hGYA==", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx-frontmatter": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/remark-mdx-frontmatter/-/remark-mdx-frontmatter-4.0.0.tgz", + "integrity": "sha512-PZzAiDGOEfv1Ua7exQ8S5kKxkD8CDaSb4nM+1Mprs6u8dyvQifakh+kCj6NovfGXW+bTvrhjaR3srzjS2qJHKg==", + "dependencies": { + "@types/mdast": "^4.0.0", + "estree-util-is-identifier-name": "^3.0.0", + "estree-util-value-to-estree": "^3.0.0", + "toml": "^3.0.0", + "unified": "^11.0.0", + "yaml": "^2.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/remcohaszing" + } + }, + "node_modules/remark-parse": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-11.0.0.tgz", + "integrity": "sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-from-markdown": "^2.0.0", + "micromark-util-types": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.0.tgz", + "integrity": "sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/mdast": "^4.0.0", + "mdast-util-to-hast": "^13.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-11.0.0.tgz", + "integrity": "sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==", + "dependencies": { + "@types/mdast": "^4.0.0", + "mdast-util-to-markdown": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-pkg-maps": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", + "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", + "dev": true, + "funding": { + "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rope-sequence": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", + "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", + "peer": true + }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/schema-utils": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/search-insights": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.13.0.tgz", + "integrity": "sha512-Orrsjf9trHHxFRuo9/rzm0KIWmgzE8RMlZMzuhZOJ01Rnz3D0YBAe+V6473t6/H6c7irs6Lt48brULAiRWb3Vw==" + }, + "node_modules/semver": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true + }, + "node_modules/set-function-length": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/short-uuid": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/short-uuid/-/short-uuid-4.2.2.tgz", + "integrity": "sha512-IE7hDSGV2U/VZoCsjctKX6l5t5ak2jE0+aeGJi3KtvjIUNuZVmHVYUjNBhmo369FIWGDtaieRaO8A83Lvwfpqw==", + "dependencies": { + "any-base": "^1.1.0", + "uuid": "^8.3.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/side-channel": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slugify": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/smartwrap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/smartwrap/-/smartwrap-2.0.2.tgz", + "integrity": "sha512-vCsKNQxb7PnCNd2wY1WClWifAc2lwqsG8OaswpJkVJsvMGcnEntdTCDajZCkk93Ay1U3t/9puJmb525Rg5MZBA==", + "dev": true, + "dependencies": { + "array.prototype.flat": "^1.2.3", + "breakword": "^1.0.5", + "grapheme-splitter": "^1.0.4", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1", + "yargs": "^15.1.0" + }, + "bin": { + "smartwrap": "src/terminal-adapter.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/smartwrap/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/smartwrap/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/smartwrap/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/smartwrap/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/smartwrap/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true + }, + "node_modules/smartwrap/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dev": true, + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/sonner": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/sonner/-/sonner-1.4.3.tgz", + "integrity": "sha512-SArYlHbkjqRuLiR0iGY2ZSr09oOrxw081ZZkQPfXrs8aZQLIBOLOdzTYxGJB5yIZ7qL56UEPmrX1YqbODwG0Lw==", + "peerDependencies": { + "react": "^18.0.0", + "react-dom": "^18.0.0" + } + }, + "node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/source-map-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.1.0.tgz", + "integrity": "sha512-9vC2SfsJzlej6MAaMPLu8HiBSHGdRAJ9hVFYN1ibZoNkeanmDmLUcIrj6G9DGL7XMJ54AKg/G75akXl1/izTOw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/space-separated-tokens": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz", + "integrity": "sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/spawndamnit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/spawndamnit/-/spawndamnit-2.0.0.tgz", + "integrity": "sha512-j4JKEcncSjFlqIwU5L/rp2N5SIPsdxaRsIv678+TZxZ0SRDJTm8JrxJMjE/XuiEZNEir3S8l0Fa3Ke339WI4qA==", + "dev": true, + "dependencies": { + "cross-spawn": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "node_modules/spawndamnit/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/spawndamnit/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/spawndamnit/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/spawndamnit/node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/spawndamnit/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/spawndamnit/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.18", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.18.tgz", + "integrity": "sha512-xxRs31BqRYHwiMzudOrpSiHtZ8i/GeionCBDSilhYRj+9gIcI8wCZTlXZKu9vZIVqViP3dcp9qE5G6AlIaD+TQ==", + "dev": true + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" + }, + "node_modules/static-browser-server": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/static-browser-server/-/static-browser-server-1.0.3.tgz", + "integrity": "sha512-ZUyfgGDdFRbZGGJQ1YhiM930Yczz5VlbJObrQLlk24+qNHVQx4OlLcYswEUo3bIyNAbQUIUR9Yr5/Hqjzqb4zA==", + "dependencies": { + "@open-draft/deferred-promise": "^2.1.0", + "dotenv": "^16.0.3", + "mime-db": "^1.52.0", + "outvariant": "^1.3.0" + } + }, + "node_modules/stream-transform": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-2.1.3.tgz", + "integrity": "sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==", + "dev": true, + "dependencies": { + "mixme": "^0.5.1" + } + }, + "node_modules/streamsearch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", + "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/strict-event-emitter": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.4.6.tgz", + "integrity": "sha512-12KWeb+wixJohmnwNFerbyiBrAlq5qJLwIt38etRtKtmmHyDSoGlIqFE9wx+4IwG0aDjI7GV8tc8ZccjWZZtTg==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/string.prototype.matchall": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz", + "integrity": "sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "regexp.prototype.flags": "^1.5.0", + "set-function-name": "^2.0.0", + "side-channel": "^1.0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-entities": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.3.tgz", + "integrity": "sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g==", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-mod": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/style-mod/-/style-mod-4.1.2.tgz", + "integrity": "sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==" + }, + "node_modules/style-to-object": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-0.4.4.tgz", + "integrity": "sha512-HYNoHZa2GorYNyqiCaBgsxvcJIn7OHq6inEga+E6Ke3m5JkoqpQbnFssk4jwe+K7AhGa2fcha4wSOf1Kn01dMg==", + "dependencies": { + "inline-style-parser": "0.1.1" + } + }, + "node_modules/styled-jsx": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz", + "integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==", + "dependencies": { + "client-only": "0.0.1" + }, + "engines": { + "node": ">= 12.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + } + }, + "node_modules/sucrase": { + "version": "3.35.0", + "resolved": "https://registry.npmjs.org/sucrase/-/sucrase-3.35.0.tgz", + "integrity": "sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.2", + "commander": "^4.0.0", + "glob": "^10.3.10", + "lines-and-columns": "^1.1.6", + "mz": "^2.7.0", + "pirates": "^4.0.1", + "ts-interface-checker": "^0.1.9" + }, + "bin": { + "sucrase": "bin/sucrase", + "sucrase-node": "bin/sucrase-node" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-parser": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/svg-parser/-/svg-parser-2.0.4.tgz", + "integrity": "sha512-e4hG1hRwoOdRb37cIMSgzNsxyzKfayW6VOflrwvR+/bzrkyxY/31WkbgnQpgtrNp1SdpJvpUAGTa/ZoiPNDuRQ==", + "dev": true + }, + "node_modules/svgo": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-3.3.2.tgz", + "integrity": "sha512-OoohrmuUlBs8B8o6MB2Aevn+pRIH9zDALSR+6hhqVfa6fRwG/Qw9VUMSMW9VNg2CFc/MTIfabtdOVl9ODIJjpw==", + "dev": true, + "dependencies": { + "@trysound/sax": "0.2.0", + "commander": "^7.2.0", + "css-select": "^5.1.0", + "css-tree": "^2.3.1", + "css-what": "^6.1.0", + "csso": "^5.0.5", + "picocolors": "^1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/svgo" + } + }, + "node_modules/svgo/node_modules/commander": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", + "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, + "engines": { + "node": ">= 10" + } + }, + "node_modules/synckit": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.9.0.tgz", + "integrity": "sha512-7RnqIMq572L8PeEzKeBINYEJDDxpcH8JEgLwUqBd3TkofhFRbkq4QLR0u+36avGAhCRbk2nnmjcW9SE531hPDg==", + "dev": true, + "dependencies": { + "@pkgr/core": "^0.1.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, + "node_modules/tailwindcss": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.3.tgz", + "integrity": "sha512-U7sxQk/n397Bmx4JHbJx/iSOOv5G+II3f1kpLpY2QeUv5DcPdcTsYLlusZfq1NthHS1c1cZoyFmmkex1rzke0A==", + "dev": true, + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "arg": "^5.0.2", + "chokidar": "^3.5.3", + "didyoumean": "^1.2.2", + "dlv": "^1.1.3", + "fast-glob": "^3.3.0", + "glob-parent": "^6.0.2", + "is-glob": "^4.0.3", + "jiti": "^1.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.23", + "postcss-import": "^15.1.0", + "postcss-js": "^4.0.1", + "postcss-load-config": "^4.0.1", + "postcss-nested": "^6.0.1", + "postcss-selector-parser": "^6.0.11", + "resolve": "^1.22.2", + "sucrase": "^3.32.0" + }, + "bin": { + "tailwind": "lib/cli.js", + "tailwindcss": "lib/cli.js" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/tailwindcss-animate": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/tailwindcss-animate/-/tailwindcss-animate-1.0.7.tgz", + "integrity": "sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==", + "dev": true, + "peerDependencies": { + "tailwindcss": ">=3.0.0 || insiders" + } + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/term-size": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", + "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/terser": { + "version": "5.29.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.29.2.tgz", + "integrity": "sha512-ZiGkhUBIM+7LwkNjXYJq8svgkd+QK3UUr0wJqY4MieaezBSAIPgbSPZyIx0idM6XWK5CMzSWa8MJIzmRcB8Caw==", + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.20", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "peer": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz", + "integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz", + "integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/trim-lines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", + "integrity": "sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/trough": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz", + "integrity": "sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/ts-api-utils": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.3.0.tgz", + "integrity": "sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, + "node_modules/ts-interface-checker": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz", + "integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==", + "dev": true + }, + "node_modules/ts-node": { + "version": "10.9.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", + "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.15.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", + "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tty-table": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/tty-table/-/tty-table-4.2.3.tgz", + "integrity": "sha512-Fs15mu0vGzCrj8fmJNP7Ynxt5J7praPXqFN0leZeZBXJwkMxv9cb2D454k1ltrtUSJbZ4yH4e0CynsHLxmUfFA==", + "dev": true, + "dependencies": { + "chalk": "^4.1.2", + "csv": "^5.5.3", + "kleur": "^4.1.5", + "smartwrap": "^2.0.2", + "strip-ansi": "^6.0.1", + "wcwidth": "^1.0.1", + "yargs": "^17.7.1" + }, + "bin": { + "tty-table": "adapters/terminal-adapter.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/tw-merge": { + "version": "0.0.1-alpha.3", + "resolved": "https://registry.npmjs.org/tw-merge/-/tw-merge-0.0.1-alpha.3.tgz", + "integrity": "sha512-HvuKdaUWjJKFlUa/DKDGnicPXill0bUZnzoK/BoTWn0OkKLfIrMMn97VXW6fFdArA40FeBkitWjr7SJRuaDvCg==" + }, + "node_modules/type": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typesense": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/typesense/-/typesense-1.8.2.tgz", + "integrity": "sha512-aBpePjA99Qvo+OP2pJwMpvga4Jrm1Y2oV5NsrWXBxlqUDNEUCPZBIksPv2Hq0jxQxHhLLyJVbjXjByXsvpCDVA==", + "dependencies": { + "axios": "^1.6.0", + "loglevel": "^1.8.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@babel/runtime": "^7.23.2" + } + }, + "node_modules/typesense-instantsearch-adapter": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/typesense-instantsearch-adapter/-/typesense-instantsearch-adapter-2.8.0.tgz", + "integrity": "sha512-2q4QVpHoUV0ncf1XOqIC0dufOTkFRxQ0mHzg//H3WK02ZYqdNNPCAacZODhQlltl1cNJdTI8Y4uuGVd6fJuGzw==", + "hasInstallScript": true, + "dependencies": { + "typesense": "^1.7.2" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@babel/runtime": "^7.17.2" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "peer": true + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.1.0.tgz", + "integrity": "sha512-qxkjQt6qjg/mYscYMC0XKRn3Rh0wFPlfxB0xkt9CfyTvpX1Ra0+rAmdX2QyAobptSEvuy4RtpPRui6XkV+8wjA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", + "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unified": { + "version": "11.0.4", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.4.tgz", + "integrity": "sha512-apMPnyLjAX+ty4OrNap7yumyVAMlKx5IWU2wlzzUdYJO9A8f1p9m/gywF/GM2ZDFcjQPrx59Mc90KwmxsoklxQ==", + "dependencies": { + "@types/unist": "^3.0.0", + "bail": "^2.0.0", + "devlop": "^1.0.0", + "extend": "^3.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified-engine": { + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/unified-engine/-/unified-engine-11.2.0.tgz", + "integrity": "sha512-H9wEDpBSM0cpEUuuYAOIiPzLCVN0pjASZZ6FFNzgzYS/HHzl9tArk/ereOMGtcF8m8vgjzw+HrU3YN7oenT7Ww==", + "dev": true, + "dependencies": { + "@types/concat-stream": "^2.0.0", + "@types/debug": "^4.0.0", + "@types/is-empty": "^1.0.0", + "@types/node": "^20.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "concat-stream": "^2.0.0", + "debug": "^4.0.0", + "glob": "^10.0.0", + "ignore": "^5.0.0", + "is-empty": "^1.0.0", + "is-plain-obj": "^4.0.0", + "load-plugin": "^6.0.0", + "parse-json": "^7.0.0", + "trough": "^2.0.0", + "unist-util-inspect": "^8.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0", + "vfile-reporter": "^8.0.0", + "vfile-statistics": "^3.0.0", + "yaml": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-find-after/-/unist-util-find-after-5.0.0.tgz", + "integrity": "sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-inspect": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-8.0.0.tgz", + "integrity": "sha512-/3Wn/wU6/H6UEo4FoYUeo8KUePN8ERiZpQYFWYoihOsr1DoDuv80PeB0hobVZyYSvALa2e556bG1A1/AbwU4yg==", + "dev": true, + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-6.0.0.tgz", + "integrity": "sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position/-/unist-util-position-5.0.0.tgz", + "integrity": "sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unist-util-position-from-estree/-/unist-util-position-from-estree-2.0.0.tgz", + "integrity": "sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-5.0.0.tgz", + "integrity": "sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-stringify-position": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-4.0.0.tgz", + "integrity": "sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-5.0.0.tgz", + "integrity": "sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0", + "unist-util-visit-parents": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-parents": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-6.0.1.tgz", + "integrity": "sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "update-browserslist-db": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/use-callback-ref": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.1.tgz", + "integrity": "sha512-Lg4Vx1XZQauB42Hw3kK7JM6yjVjgFmFC5/Ab797s79aARomD2nEErc4mCgM8EZrARLmmbWpi5DGCadmK50DcAQ==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sidecar": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", + "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "dependencies": { + "detect-node-es": "^1.1.0", + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + } + } + }, + "node_modules/use-sync-external-store": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz", + "integrity": "sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/uvu": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.6.tgz", + "integrity": "sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA==", + "dev": true, + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.1.tgz", + "integrity": "sha512-1bYqc7pt6NIADBJ98UiG0Bn/CHIVOoZ/IyEkqIruLg0mE1BKzkOXY2D6CSqQIcKqgadppE5lrxgWXJmXd7zZJw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-4.0.2.tgz", + "integrity": "sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-8.1.0.tgz", + "integrity": "sha512-NfHyHdkCcy0BsXiLA3nId29TY7W7hgpc8nd8Soe3imATx5N4/+mkLYdMR+Y6Zvu6BXMMi0FZsD4FLCm1dN85Pg==", + "dev": true, + "dependencies": { + "@types/supports-color": "^8.0.0", + "string-width": "^6.0.0", + "supports-color": "^9.0.0", + "unist-util-stringify-position": "^4.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0", + "vfile-sort": "^4.0.0", + "vfile-statistics": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-reporter/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/emoji-regex": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz", + "integrity": "sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw==", + "dev": true + }, + "node_modules/vfile-reporter/node_modules/string-width": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-6.1.0.tgz", + "integrity": "sha512-k01swCJAgQmuADB0YIc+7TuatfNvTBVOoaUWJjTB9R4VJzR5vNWzf5t42ESVZFPS8xTySF7CAdV4t/aaIm3UnQ==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^10.2.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/vfile-reporter/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/vfile-reporter/node_modules/supports-color": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz", + "integrity": "sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/vfile-sort": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/vfile-sort/-/vfile-sort-4.0.0.tgz", + "integrity": "sha512-lffPI1JrbHDTToJwcq0rl6rBmkjQmMuXkAxsZPRS9DXbaJQvc642eCg6EGxcX2i1L+esbuhq+2l9tBll5v8AeQ==", + "dev": true, + "dependencies": { + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-statistics": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vfile-statistics/-/vfile-statistics-3.0.0.tgz", + "integrity": "sha512-/qlwqwWBWFOmpXujL/20P+Iuydil0rZZNglR+VNm6J0gpLHwuVM5s7g2TfVoswbXjZ4HuIhLMySEyIw5i7/D8w==", + "dev": true, + "dependencies": { + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/w3c-keyname": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", + "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==" + }, + "node_modules/walk-up-path": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", + "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==", + "dev": true + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz", + "integrity": "sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg==", + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webpack": { + "version": "5.90.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz", + "integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==", + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.11.5", + "@webassemblyjs/wasm-edit": "^1.11.5", + "@webassemblyjs/wasm-parser": "^1.11.5", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.9.0", + "browserslist": "^4.21.10", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.15.0", + "es-module-lexer": "^1.2.1", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.2.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.3.tgz", + "integrity": "sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.5", + "has-tostringtag": "^1.0.0", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.1", + "which-typed-array": "^1.1.9" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true + }, + "node_modules/which-pm": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz", + "integrity": "sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w==", + "dev": true, + "dependencies": { + "load-yaml-file": "^0.2.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8.15" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.1.tgz", + "integrity": "sha512-pIXzoImaqmfOrL7teGUBt/T7ZDnyeGBWyXQBvOVhLkWLN37GXv8NMLK406UY6dS51JfcQHsmcW5cJ441bHg6Lg==", + "bin": { + "yaml": "bin.mjs" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yargs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/yargs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs/node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yarn": { + "version": "1.22.22", + "resolved": "https://registry.npmjs.org/yarn/-/yarn-1.22.22.tgz", + "integrity": "sha512-prL3kGtyG7o9Z9Sv8IPfBNrWTDmXB4Qbes8A9rEzt6wkJV8mUvoirjU0Mp3GGAU06Y0XQyA3/2/RQFVuK7MTfg==", + "hasInstallScript": true, + "bin": { + "yarn": "bin/yarn.js", + "yarnpkg": "bin/yarn.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zwitch": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/zwitch/-/zwitch-2.0.4.tgz", + "integrity": "sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..5b12a77 --- /dev/null +++ b/package.json @@ -0,0 +1,73 @@ +{ + "name": "tiptap-docs", + "version": "1.0.0-beta.3", + "private": true, + "scripts": { + "dev": "next dev", + "build": "npm run build:next", + "build:next": "next build", + "start": "next start", + "lint": "next lint", + "lint:fix": "next lint --fix" + }, + "dependencies": { + "@codesandbox/sandpack-react": "^2.13.5", + "@codesandbox/sandpack-themes": "^2.0.21", + "@mantine/hooks": "^7.6.2", + "@mdx-js/loader": "^3.0.1", + "@mdx-js/react": "^3.0.1", + "@next/mdx": "^14.1.3", + "@radix-ui/react-dialog": "^1.0.5", + "@radix-ui/react-dropdown-menu": "^2.0.6", + "@radix-ui/react-slot": "^1.0.2", + "@tiptap/extension-focus": "^2.4.0", + "@types/mdx": "^2.0.11", + "clsx": "^2.1.0", + "cmdk": "^1.0.0", + "front-matter": "^4.0.2", + "iframe-resizer-react": "1.0.13", + "lucide-react": "^0.358.0", + "next": "14.1.3", + "react": "^18", + "react-dom": "^18", + "react-instantsearch": "^7.7.0", + "rehype-highlight": "^7.0.0", + "remark-frontmatter": "^5.0.0", + "remark-gfm": "^4.0.0", + "remark-mdx-frontmatter": "^4.0.0", + "short-uuid": "^4.2.2", + "slugify": "^1.6.6", + "sonner": "^1.4.3", + "tw-merge": "^0.0.1-alpha.3", + "typesense-instantsearch-adapter": "^2.8.0", + "yarn": "^1.22.22" + }, + "devDependencies": { + "@changesets/cli": "^2.27.5", + "@svgr/webpack": "^8.1.0", + "@tailwindcss/typography": "^0.5.10", + "@types/node": "^20", + "@types/react": "^18", + "@types/react-dom": "^18", + "autoprefixer": "^10.0.1", + "dotenv": "^16.4.5", + "eslint": "^8", + "eslint-config-next": "14.1.3", + "eslint-config-prettier": "^9.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-mdx": "^3.1.5", + "eslint-plugin-prettier": "^5.1.3", + "postcss": "^8", + "prettier": "3.2.5", + "tailwindcss": "^3.4.3", + "tailwindcss-animate": "^1.0.7", + "ts-node": "^10.9.2", + "typescript": "^5" + }, + "prettier": { + "semi": false, + "singleQuote": true, + "trailingComma": "all", + "printWidth": 100 + } +} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..cbfea5e --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,7 @@ +module.exports = { + plugins: { + "tailwindcss/nesting": {}, + tailwindcss: {}, + autoprefixer: {}, + }, +}; diff --git a/public/assets/fonts/Inter-Bold.ttf b/public/assets/fonts/Inter-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fe23eeb9c93a377d0f4ab003f1f77b555d19b1d1 GIT binary patch literal 316584 zcmd?S2b2}X+Nk|jb=-S~ArBdbAUWqGNX|K^sK78Vb-kFkH>S)7w-E1b!XO7Rb9E>daJstx_7rI5y^&Oi?nFk zta+7cRkn-h`gr7R(Xm69;g8&sThxSHqADi0=+domn^Hr%i1a)z(rsLaE|sbl-#x6c zi29gZdUxsCsOt~ke^`&>1spd`8=5-e*Eu&$5ta9xNWc93Q%8?5r4gPB+wVW*_VjZ} zb-ow9uDs~dcMRy4+PD0psnZDWO?b@#cof>7uLsA}M@kGBI%Zt0AB!Cp$=Xz;)czsE z(^4ZdAL%Mmi#$ucGcWTDZ^5S_G><2g$m60J?u_f}e%#%bJA)Yz9>d!H;M53#IC$B=2 z&Tjc-cELe^iX)LTfsbW>^3!J6xjo{L_yu(ir#^2#`i5!6x@(mQb5UPWw& zrj>LTa{OM*wvNh9i(@U0g|8O-xaf==vMeJ^-?>Y>F7mjfWMstJ7hSDall4-f|%XW1G6!pV^;ber|t` z`KA38<~Q~am>CY*)U zUJ0)RW)tsb%wAqE%!%F<%zM0hFz@y5#k|j(jXB4ggE`Nehq=H*4&EY=t^^?t+Wckg#mzU?!1`~*J%cNQNh`MLaDn8|)JW*$Eeq51s$xKn&uCq`DlxOK2lh$NRG42dH;K%?TFo%*te4Ak2SkG4fNpo9}%hh#g`-hZa+zvr)O-aK@JB(CUd`9Cl?yBSTpf02Svev_cv`tAd znpzB{#zyA12CW)MI#WU@Nz)>u4Wk1&jz)H|`i~FlYP**DPKbmq)&loKjEfvAYvtp2Yf5JP^ z_iY*5M)OR)niFDbmLgqnrQ^Dd78^}4bv7|#W4Ir&j3$^~iq+oqaZGPa+%AlG(?3`0 zcqL~uCelb7%b`56x^rY&8_Kl`H8iALRkJ^q8`dTjiN|23Jy6$ejQFEYE7xv@#N{!xeu_PbzSnDmCz{EH%l$ zGSa(}Q%Yt|SEuYuueO7FSH-+iW;pj=$)yQxAHhsy^e>z*t5T97*0V-auEbA~j>H|# z8K@unVRWz&5;ZeXY%HWm>CD~>dm`4F0mSP=8`Fq6l>P{%Q;Cv|HXDhT5lOgT6*ns& zzpga-{|=Ww^6O@lhGf6)<4L{jdkY6zb0dTQft|0a9{kldFDTeOTHQN|04c!3(-<@Ar_q zqhn-3w3yr;Z6H&kedTWdHJRYAmU;h>b~yE1pRvz1HhRa3V3r|LA!dii|6q?Gd{jK1 zasM-FP_Mt^8|iDpBmJO+Y)r@@8xwoP(nM>?`e;sB8aXX%5+kxQVXG`lI4DmgoR>8T z*=2b`Em8ywO^E__5xYsZj_a7Z&}9r^C@?^tZ}x>a_2Ky9?LJ| zNyn9y_Ls6FmQTjLP7CS#UnAqYtJ8TA>FXXvmcPMTbaV&yNwA^pl`_0G($^~|L~q85v(hZjlkuUo*aq z&dK;7T0Y~)Xxog_kyaVs2KmgFrhmvUo;IPX%<@u@e@JuL5lLe{|Cke`?SVf19q8fJ;l9f_pF>@-|2HvZ{2Bk2jGwPQ&m{Dd8vhLM zW9jsloRhl#Gt%0_{+C>od?rrxNhucCi83%@k6fRaE`<`FMCS24qK&0bv|Prs!Etw4 z=>2;<;`Wg~{}~x${_8{OYC=8)e;_g7gP z*v4%bD?{AzGQ`V?J&`=j@!t`)<5wB!)rytreJNx8e1BbjVrv;0lI4JmjQ$pnHyW@5h(4{wY6 zQJBMVHO`wUxbeIE8uqMMoFK2o9B%`YHjeSnxXbxHu(vr?q=Esz)^SYyZS420Wlwpn zdt=;A&uAMQ8^0KlcwN3F{(aV}j0x6US?kP{O7;^OdF*>+bG#mn>|&-(V(R+{EPyt_ zwZhPh%T~vX`=NM{jx>RPM|sGkiMcZ#A^a39GS>%DAKAuOiERjv1GyX7d-{kPp2v;UziQ{L757t4sg#8|sbUS^EHAe#f* zxUVqMyBGbQDI+6AWR^Wq*2c)VAG@lPC{^tea<5%dmR$*xCb%2h6Ej}Io*MUGh&>y> zh4u>a2q2G4H)&Q#GkZnGPV9T){wD4m{1&ay74V9M8iO@|!F*!sGvnjST9B1nFDLa_%xMcN@wI_q?p|-1u?m zf0fPsoi$#ntan+v1lJW@qj3#&%pWA*dg*eQ>*dvve1ttH6C;UIJ>q5@^e<%WjyxcZ z66$6gjGoGPGrBzEc=WZ5W6{PLZ$$@YycL=Cuj82f4Bo5KGcqFMtg-#7a*J1%bK4N; zmoc9^GEEYGluib(k<9V9-uB*uWz@%KKfu)WGRL$(GKuTP9n3e4St|@uPQWN*%Y|rE z`X~z`p4Hzb~0(&giH^W%-{v`b~ z!@@XM+qq=$|Md9ybADb;IcCj}eb$VO{U(n_#bk^)Loz z!UT6cW2Cbz^sCDz#>dJlWK4Fu$bIPS2DhyA;u>fzJRY}=`@ck_xjgT0LWel7L|ey+y`{}zEx#?H9e>n&9ytEIWYc|&e;pGU{gGj}8$$9)?p&XXOahr3GJ zdt2c=dnKb}ZDcZWz=R*qr0t;?jdVnnT=Nv3ba=8~2|?-2J$*Bjgbsf_of( zyJQeI7uUK!OAAAEyv&Ri;5b=^M2b=N&C=8DN&L$Ar7~{o$@|>Fo#fvp4a_)k-$qwi ziv`!CZKSl9Ca*YUWT00}9%YPAW{h=aK1}y+k@PGVSmQL14gM+Vo-mbhHduBC^H2lH z@Htc$ZYqt z%rOM>$E|XYmq(sSE#gssk9f3u8BFsg$y9HW+JyZPZ1nCR zk4bVAR>CQG5>|tWw;g*8%!cD|&>JKptvPbUD=tTj9oZ#E+{!XIv9}DyJs9_7b8KvT z61UDLNjvPaF{Ba4hU<-;(4BMkAL9HWY&O@wg_!Sl*sZ0wT~IZ(-cY5C+bNCw4U>3U z1+U0m+ZF4B{wqn;<-bX&QfCo%4~pO8iNGU*6y z2ybuYkQMaD3U8yVh-z7J^|9W?^~IMm$Lc1JSbKZC8$$0twkEp0O-XQ0(74{c#+r;|--i7}-4f=o5X^?T*or*qn zmZ8oqa*JD2zA$+0WIB6BUm1+s%f^_vAS2N45&qLM$xDK3Ws;L5i=CV0E2o?6)VB1r z=gA;Ns zOADL3i25rj7`PY8Ad{!IG7i{XaBK2@UIv*m?8(GmD?^}#RhHw@(m;PM#q3$Qdq_d9 z9}2TKSk}1hT9WQ0%T3JJ>BR5Dvobe1zI3zq$}szL>1wA-bNeXApGyxbN!CL-H~>ZM z)9fo6zC(Zi|5Vqx($T6!+bS~t`bcMchO|M(Y4#v#!xKym>|R{A4w4R*zI?6yZ^pHU z%L4(USYPdt#ZdbHMq2iuyGG|q*T_2TCDNJkpXQd7R_t{&;F_sxLMcg0s4kr&W8}L; zSH4SHE#D;!lllpta1C}4(xra%g4B1$>0~Fbv~$L(2kfG%taCz68{D$;8S~2)r@bt8 zYpUwl&%-XOhHSR$%0Bqo#BqDbGj?HB*SeOwy5@NU`JHD5FEod3&>o(WA{Wvn?}htd zm6W)+M3OG>oZ^LvFkebu+$cpZj*+C_)1}PCQiRXLzgG}nF6ESR7oU_8=U*Yta7jA< zE&fCG13ZWaY7-C3G-18aQY3LK^Iv=}wAK;6lkh{a`H^`gh$}qZX#Nrl%f>84WpTm; zSPDUrG8fYp6~Pg;Fqk?H*!sL+N|OH3ew-}$@N_u zc_48L=h)t|ow@4nB;s)YX>DYgtctdfS?mdJ^lxHq*hMazdogAm>S6K)~u5U z$PTWdhj88XwHLpK;4hQnSre#JxWC>*=27m<=*_a9HCj>D7O!WyhxJAUxh3HSSsq-Q zvc3)1y7qP^okACmNcM|I?WVdaPaj{9{FmkgYjm?NH}^?Qn@xG_@f&|LF9mx5qcdKY z{1@{v?=`26bKRFoq@bh(XO2OJ$aw`_8@-D&KH+sZ)1-Ch&pWLdg>mlq7>y^(a&ls6Rd3V z0%Lvv*GcWFC>!YXX^1-Wp_Sqp|pnM;mYW0^Xm|NGIwCyi~^iPV1=dCt=PWD2s`>70^U z=*fJip_JCO(cM(NZk(4puA`NYm6 zkC}Zp|#`k+w$j%7@M{DIqz} zpXU7hBl&ah+LV1^xL*@JXv^BCoBYmtU?St>ZqsLGO-{d$vm47|`-IHbTV-Y>yZpv} z^Fnm?Q>$#oo7Mv|M;(zNaXMq80~fzFWFIe0qGuQ<+~*C}mcl*y4zV$We{erNsUO!k z9i)jFPn;7sMjG)9gh!fk>{&LHK~`d>xxV45AB@d<%pX1F z8OFsL%6tjEnZxly*7z$7)OR#t8=0>rv+q9>cd(bh{=r(e0(<-s8AW~9qmx^?emsV5 zd|-44)&`VRUN8;@$^FhC^)O>;mX#or?4t4=^%@hi&^ZkVaxnF@=pAjoM~qKQpf5dzfsrUp7EHg&EBKgS21(AnJ;&9y!sKk^^KFN9Oq`0%)BwhZYpM9alAcVp0vlwI>LW- zdMGyxGx-H+Nl$(|IVZhoHC1H;+Q?a}z4C(f3+wtwD$kpws-fur(~R>~!MI9P1>G7d zkNXpA|Ci-WeHZJXZF0y0F~8XeNpVF_%71MnqWW<{3_$j_|Wte!9yX2D9> z2gl$nKiEowl0ZDWJD{uVfQY>SHo$AF2cF*bM#Orq_8 z@tr{3638ooyb|`q3An&&G(S+^EYvFta?A3lND|{PsRodiGnpja1rNj1{GP7})PfE$ z31~-F(r2Z;S&>avWRnfqWJ5OD8UV7%HVmf264(j{fc9p)ERwx2)P(ks4ijKLtcQI- zyd1P8M=H>tIheC^JOMAl`|yKEPShqR^Gr_UowFNI=bY3zCw0zAopT=Hr+Kt5S1Y(p zBsYDLn|3DmfKf0Lmcw>H&dJC*j|S$Jyk&th@_9hp^U?Nvv^`&cmb0vfPN`V-3n8;!qlw@bt^*MiZq5EFbZbCx*XNl23o+X}y zE%27eHOWvBnnQO$&#qYx+uxF zoKoM5ly-o=EsdU*z8xNdHSj#V4j+n?$qJ>QAzTl`;T~8D&%xX9l}K6IT$a8oi`>d0 zw{pm>Tm@(b{oq!Z29Jr9r)}j)SDthgMu=2Ib`_Cb#cDu46_H&5(WI15|@*FrZK3Y1fsaw>0ux8NlFE>fis)PQ!-5AK48;c0jg4#Q6( zRTF?btJ3DGHv+P)`hZBa+)x3o1@fqN3k(IytAF;01UOz7>8d1_huR zw1L5Jhe*BRuo1|+9(mU%@A~9jzYcVQfp9nM6uCA5S^)ie?UN!6azI&V3_V~J%mnnV z0eaWqAfR^*(YuD|UBjx-8v4L^m;-BJ7aWB%!uA>zgSyZe2Ek-l2peI)NTX7KjyDc-ouK?|9O#7NdfH+N%L6do~4)*Z#aQe9^ebkhGZc0BlrJtKV z4SPkJIY3`Fs|56Mvl{_9H+uk(Lo;-t+57Ol@F)}%0p|MVjKSv2_08u4bA9uDaExEJ zmw`rrd|Oa{%eFwjx1`@&Qm2-i;Z67gE{U|t1?8bB5U&;SS`n`mvTKFxS}%j=0Xek( zTBMDFJV1Th&|htO!EG>Gq%CRNlC~}7w%r3Ci?pM??PyCo+R|=|NPF^ZPk*$hKRRfb z2#>%s@G5)-86q7iqa$T>q>PS~(UCGb60aliIuftrC-AFCrz~&{TnpV`C`^GxunFFP z&*7p-=bTUun!rtfTstGzE+a*{=7tK;3~m8r)U5;jAkuv+3-q zcnyw=-0-l-jjiCYNRQ{>ZJf|fpO5MBlL!G zaF*K;Rbe6=fG^=P?+;*(?E4b$HCP15wBH+mO#59FNk^vX$RQn>rr!jVl}=gxivwe7 zKu!2YWZ+oXD>A4CkoRC@Js4RJM%IIGg$LkCcoE)*lOjV3LoIj^Rs-|IkRyPshWd~K zoL`61hM@ys5+L`X^yx4M3IXK}YX|+{F4ztS;grbmYCye*cY(q1n#c&^k0AaC;*TKy z2qBssf}Nbvrx+Yv4EDV9*DS!#R;L*`OpefbM`y z#>|41KznbcKDVMvx26GY97`L=(#Ekhp*^I-bfE09ls$Hz$ZfR$Hu`m3CwLFO6}jC4 z^y+rnbo&&M@r<+alSS@8mUqyOJNCjS@T%QWgTJpwaC?kNS|iOhHyj)>fgEbc`X_fq$nrC|`P1=@aJZYT#$0G+>Y zG~5SIz;5_RNa8u&oWnfWCU5BMg8^umGs*1Jv_@QzEm*h|I16zw%S^1Skr1 zpab-WiSP(K1FynY@SDg(^z9rUkl!4}_uSjzO_6!cMIO!xY48es2tSF;r_J-pdp>#3 z?*s$kZeU!@rydj`j|>IUEI?ihYCteKZSP1J^<~ApN7$02w^G z1>S;_@Vm&u+)x3U0rFdj{1zg=g~)Fqby#>=WKk|C4}>iuY|$a0e-_(N5UN94=nJdh zWq2Pbat=7920pm5#|B1c=A_~m84(! zw#cd)K>Ssl7gwDT9;Ja2KwDO4h^(RPHPxUU^oP4)8SDmhZ4EMATLcBS{!@`>DCe2^A{z=r7g#LvY;i~h+PjhZ zZA70p-VfAq6FR+VDlivrt^nk-nf$kmg5x4v2Lbck)-xi{k@h*#KKHc9wqYXA+b|O@ zi)_CRHi^7&BYY{cgTCKE-|u(=UV!)DTagznC;-)<4bbKnrvUL@+zp?LyktRfXaZ?) z2h4>{@CK02%fxw^I4>U*9`%4{MPBI&Lqv9E1!TI5zT4eLWKS*V0LXvOL_jz8Ad5Z7 zat|`w+Y8nMbMjvLdhc10eMwLf8bEiTz5Axa5+L7w^!L7VBCjR``uu8V7y+|j9qa<+ z_bPE-BhG6}f&PB&XOY(#!><>GI?xFi!>`{Bj{@y@{dM>Z&Wr3vKlhh`Mu2ShkA&|< z-dF(i$(tO%c`q!3=SAM4t#8q;136(V(9Z{!1Lw{I$m+m1B5xzFxAQ|)Xbs5d?eQ=N z)&g~ZoA$j;{_jMAdc9j39v3;-5_-cpcn}yb2Y12|_>q_Q_>cm%;RYbydkbJ29D#Ep zhw?&gxB-yaA@VsyK8IctdA|-E5&3|6eL!D+fV@9=N#rmxJWN{;)7B%nkFvMmS>zby z9J>vW$+2HVKBW&nr9Pit6ghqaF!ny9zMs*zCyE03e4Yfu;jqXTU4V2a$@k>PB446| zUovLD>I!d*oMOD4LJz-2&%T}u=S04tecvWPGm-Cx!3mM?uZ5K&r>ns2B0pgNFh%6Y zLa{NbhaM+#D4i8co;I+%gh7M1MNM3 zC;Oe0ec@U7kiF%_>`_yXOYiV(2{Qei@ZWcEKdn9(`%O3or-Aetv^}FRRD=f59(uws zpdT{m=Zwbz*=Ot&B{P6`JN}Neaq9bD+LS6M(l2C6Pzc*P^oK1>WP6wIeKtUqofI;T9MQ zcfkYj7(4^7z`LTdyHFQsLw4Tkl$~~D$3I7QAg>&E!t;QO{UGsj{@%iO6FZh$;dBHe&`P5nTIm+&?kB6 zqkPCRKmAo86?j8XLE2F8ZBd1gV^>HVbrx zZKBGR2FfXSOjP-sfU?SeBdS6kpnob*euYz_D&~W+K>CUoL{*vqFN>;N5nce~Q)QN@ zs>G{GK2=FqmAeobE2w8p&*b~_3NNB^aaYRPFt!kgv+98 zkWY{j5 zovz;+ZiZnn3DA}LD_|>-raoz|9Rt&WIyRt=4QN*b+SPz|H5d=`;03rSs$qR-54~X& zOat2IXq8j;78fa4!^rPtnQSA4qX2_)3 zL|6(h1Nk-229*GrHAlY9nI~H00Ccj&v+#zfmbASkek~gUaa#T$sug|Q>Mo#etvx6K zHG#fvP2F2>1nS%-FVLZ=t6h&wR;Po-QDj4;&guo z7-!wz1Nx!+Z=$X*0_1o7V3-EWULl&q7^wkZFiyM*ajpTFVb3j==ngVsYsXVlW z<#0&U&7(x!(o0lN^6p9h^~wskd))}gyVvKU*auR*(cRQ{;k>9mRe(Ix3P2Y)E~+ni z^hK8as=_SzSX4T)NJkdw_rgvOOWP+zaG0_N1uW8o(z&{l}pT<2J({Ku>R{+}qOt zy}JDuQRC5*JMsZ_x??a<&Yg7tIo!qgylWCHfZc#hCS(WP6De~d`a0=$QFq@dYBKGb zTneTE`Z$I0KIO2eslDJfQPY?grsW6pdfHq-e$!rn_e4#<78q00-w}0BUf3#X#%N%y z-`fOk0*>#!51xRZMa@M2XO4&aVF_#i#>PzYm`S~6{wV4`fo#CMecyF(15oCD)bD;| zcRzK%pZ>Z36*wpAfr>!*1Jr5OBvG@wiF%O!e~`KC!TRudb}2NfR{xry9F+YT8>^kVM8t`0m$Zw zPerZh3O|W@@?kh5YUNFUPOZEHC~qZsuA)CzbpiZW(Y95{arIC@hU}H7HOOlXdb+k6 z%op_(AK)w5WCEfVQn;Y^)>ybq~QBcmKO;}zyVPk`T+TEcnhe<2GT#904?Dz_*K-#v4HMvM87swf_q^r&@Y?LirS2xZKi#j z>BG&$*?daW7W8Hdb>4#BZ9!&RCWzXa16~vL9RAO}Dr(zapwG6Q6!rY|z?j@l|8K7d z*TED(cH7DO1^Vg*WcLEHdx1XM(Fkzwp#3`-13TUZ>i=SHpbjrp2HNs6{qyoNI0)2t zC;he)9ob2KJ6i)X-#HT&!dlo4#NBxUE{J+13T2@&bOz-0%4Ap$#N8Evj_{(W-Swai zq>9>;ABMw3SPJOV9%R1C-#3W+W+IT!o80EMZJapTlb4PfJ_dw7xlIS*8n>7c0YI! zJ{0v%SNK`fyW@en9i)x#p`VBPih92nyd&y^Dlic42K4R&Wc$GxQHRlw!=H#c;sg47 zg!o79fgSLJs1J+7a3I}>^y!E6>4(3GI*P6ytqauSD0MtaosWJi>LdE;Bjo+jOjrTv z>c_P0<2OWoauXoWPkxGVtc0jz=-07l;1zfezK0A^pOXKlwE0tHbsU)Od!; zKBwvP(~ki4I{m7sAL;{T|EOUxybj-q`Y9{WKK4V@Pt@ZlWc1THQD^WwLw(LH1>*fo z-~W6&AfsQ9LPWyh%7H9 zK?|UrzbC^qQJ0b7D6*d{tpRCHeQ z%3A}PK{x0pI$vR+{rPEo0gekC7G1Cx@RsjFw7*C-=mWotP9g6UWLlIwiVg&1Tom~i z-3cGU&!USZ!gVkPHj6IqLS85f_2H!G5(!WM$h*XyFb|#)&9gT88v5g!kAS>NTCh-b zDf*(+8quW-0cDqN6DJKDofjTeQ!Oo|(X@Hnu5xxr>X>1YB;SeEq!DYN`L<9_Y_j_PIa-w7Drt1#FvOf`8jH$WFci%$tKw)m*ggX9?2{DB)=4pf>KBd zOA%5R{SR`<`9G3Nj=#x;I|)I3iu_xx`sZybmYOG(9P4v zR<5F}Vpi3KF{|k)W_5KIvxYi>SyLUrtfjVN)>bPq>!>+tW2;nF6ELf&L4Ah|?63Ov z9X5QZ>X|+&HBDW|oBfBVx`A0eFe?tbb?7Kndibcm!&J%$4pjcp)I{YPJ#bjMN*X=7 zausD`R+S5w)#OLa>hk62TljJq4X zt%QA5-tKH%H{;TQ>n2?0?fgo5n214a_Ih#N7?__=z*nf&_T=VkiD%1Fh}{gYpB{G31e^};XEz)XJ+Ihk=~ zMwJ;;M39P@wp5bJQcbGk)`9Qf4ujfkZ1r)gt#$0$Cu+Y|V`hzEHM&-vRprYn?^M~w z|JW+stJJKNtCCysor>!#PKLhF6pB?`U*R$wfekPndO(iyJIgOA|6uvL<-RLdKi`FX zQ}YeV*D}xg#QKTRgd6_&A3gmS|2v{<|M1^CS~&7fWW7Jc+vm;j(!Hi`ZRbm;x}9vD zwr;lST6y(l{e@m>oz`=7b)7?9Q1f}8wo#whw;gVla?UT#ug+QLH|Lyl-nrmhbS^o+ zJC~gdS6t<4*K%#wab4GQeK+Dp-2^w$&Eh7xS$Tthb~lHc)6M1Pc9Y#aZeBN^o8K+q z7Iq7|g~-1gUsPzQo9oWHFJDiXspsicdbfT|H>z$cW^DK9Ye9g7M zx6Jh4%W3&Rew3f&jQlLW$ggr%ev@-@UM|Q*xg@{yoOp&}ge$EqWh+Oy%3~a8{`blU zl>CvLV)R~JFQPL|jLP)Wl$S-H(4W)eC-s;5D}73Tt-sOV>hJXT`m|{&vL`QnL?01b zAJv~R3a-x4j5Qm1m+{JZ>3;~}%9oI2r=(}zQxT@ooQrIykW;~{#FOqOMoy=MSJF%U zQ;Y&mIj@2@Ac&FGDe4vXdR`U7yx;b}DW`wlYHKv@cCVIUAcK@Z1|jvvatA}+HBk2~ar`5~qZKYa$$StM=ma&nqp`_A((xoC&gb~n_ z$8dY=DLfQ8Q_qz&bib|)Mf;oZc7`;*5VFF)#=b^21z+vhY&YS}5C`nL?dklEY@xkK zJ`cXjangRteu-av9kdV1<>1R38TLv0Btk!Bf31}LgZ+cD9N+Pk?G$zjD~Inm@b6;ia6z+ z3Qk3*663p)SJ|uL4fFm+GZmHFC5(&U>XF zkp=RoER;pESRRul{2K1@|K_aqPsjK_*IK7QX3NTjZ9{U|V)I&{wb5V(EESB8GQs$$ z5R8wCLI2ha`nL|Vb5?0$=4WZje2~mEEoar( zXffXkGUpr=)?Fr+N<7K@`4ekxl)N5{VHYVjvPT6 z;fn#v#3GIfVU7345W-j^hWV?e()OR7?f!JW`}fXx<}7H=fw?&Q{nZ)q>hSRF7}|y0 zLa{St=J_&|!V+rvy0hPT!+Fzr%Q@h@?Y!f>>l}36a}M$UzVm@|*g4{S=p5z$Bj;o1 z6X%%osdL=<%sJtF?tH=bb-r}Ia!xs4JKs3pI^P9;#^>v}`|rZPcTPJ$I6pd}ea1QC z{OtS`n#i*4KRv6T_``X<`@eN&&wrI(rl3Q`f-!Xs8dS!C5Js9n4uN$w^_v-*Q!q5|Wjf;2+B??@V!~I@6r##LfDb z*CGX-JDfY6i4J=TndO<>{_48rN?gvplvjq|OqF-a^PQI|l#p=M*rF1<7{ha~MBxjMc*m=xZLJvG{`hdJw zI8Qn&omKA3?oRg=cbB`{-Q(_c_qngSueq9A%{W z1R7{0l8OXkvi7ZKxkl||@*)o-O>>pdFrj`zN`f2xE_%?v*>CAr_4B*OkjZ*?p*z*( z4ZUuAx4v7NalGHz=B#xVIy3C@c7EHne&icq`>oB^Vr#NBjO&o=tddq#|Dr$EyYxyu zLpSDHH=8=APN@BAgIb^_s6MKts;cs{*7;5j%685?Q<)Pjx1-z9JeR^%{}nesO^*WWhSX(E`CyC@^VfkveU*_ z5keO~K?!nNf$t6YzLRKN{9wi8!wkPYaTdpoDa+U*wSruh^Trv)YE%Wb@C64`o8I_w z_6Tedqxp&+HTjHkMkO}qnAT;wg?BZW8g)-3AJaOgd)zG&e3K|K8~(J89;+X?g|oED zt%Oq|!JIE>UEC#{!AxG!gk$)d*2P>RZSYqK`|zc8_L;yX(%R(1H_|>%*gy!a3v7{A zCKr28!UBA$RbY#>4Dv8D39UQ>9E!bV{F=o>62-O>`99q_)i>}r->4#m=KE3BaqGBh z8~8Sf`yLZlAB+84`&G>#tZ_VSmpJG(|JHiNzB0KqiifObox+#@ta*4E|LfxZ53-hd z(7KZ~k@0O9_Z`o*Xgb<&{2Ijl(#bnL_Af65Ax8I2J-If~ZOy;LG}CCl@#o8AtQM>D zi(`|I(R<^|J|r0JjA^{_i*nQ_@G-h>vF`eUFMaSOL6ZWEu4{dO5u((IxS!E;B_;7W z5ce@UuJvl(7pMRieQx@8_n==#B32|)G*Z-xMoL9WSqYIckup|d zq(Y>El_gR+Qq@Z0`*F3c?2)>Wx>n9e{YZT)m-&jEl{<1*?zX&Uvx{l>W}~WiyabE)OjorT zL16xZI@@)LyWDQAQ*ecTB?+6Q6U}e7aVd3yG|U-tXK<`-TYZC%O;|_%hs1oX)9Mgo z+w2L{WzR5{awk4ViC2>U#&N%O`0XQBj$nt3*~fjzeLSAWTJ<2IYbncIjcZm?|FimP zG&L>I%f5kL_6zj#wm>7t1sZv0ppg>;jhqo^DtJaSi<=14A$%QCYh_Z z=4@IU*plVx2z+)-|iawd-W)LhQI4R?n-y1PV*l09@2fix!zoz?k)5d z>i*th?=d~VTj4#a2YH*l&3cIWTBaWAec*kdhj~Z5BYL>^k@t}vVZM{8M|v4vh92Xy z<*0A;3EXBEN^|yCQnE zzsz5z*Z5EPtMpp4H=>{6i>uzC=&k+-{s;Ow|3m*Hz0Lo` z|3tswANN1kJ0dBO6umQ2EK*Xx5-A-it@p8`Qck}bsTirGUyoFaRMT&m-4*?2q+X<+ zek*cqp_v$PCV2oz{Z@n(MV@9QpC%^FB^@62`gbEUL6Fu7kE_`DwY7;`rH*zR+g zF7B-2XUQ@4U-vWC)^W|aKxT1WJ)SGUbmA(v#V|T;$>>mGcY?{6=QM`!}P>z z!aD`)D4R1^RoamhXohBXtR85H;A?b66W%)RQzh<`m%XjneI0W>&0YaV%2^Z-P2mn0 zJ9$A`#Z^+JAhn`A6KmF$`eZLDe$tYpl%$j_uVopLWkkYGzF;Z|k0;DexIbZX!nlNC z34IfKBy>z@&RVZ(Lg|FU3AqxY2@*Zas_#VfNc2E-Pjq{9Lv&?yadb{}Msz}SOmtAR zceH!7ZM1Q;cC=!&L^OXiThxtQikxBm9*Z1`?2qh>Y>ljoERQUR%!*8njE{_nq(^R! zbdI!)G~nC0Wtm@+BZ(31pYu=qU$Argj=#^};cxU;`%CIB>o8B&O8(%hF!5sadH{H9_8|4k~dU{>G*4}kqP4-rc zd3n7g&vq}kKe}JKAG-%x!@uNicGtR(yYt=q`RejGzR29yD@p za7XDo_M?ulf3=6z-Ujvr7NZq2oC(etXApY{-JQ1VJJe>6wFEo4*&NrtWS?O#`xxJu z-f!=;x7zFM<@N%5mOa%TZ;!Ck?VIh+c1yc~UEMCrx2}`zL|e1^IBk8wx3k}|_E|fu zjod|AV$HK=T9d4?))1=?E9drH8`rg}T4k+bR(>mo6}7a!pwDn$W9}DK<(^V8onPnDN!r)i-HA^13d}BnnHreg zFfFdFd&ccfaofZ+{wA)mO>ASw;-j0vF}o3QI~Jeag!pkRey4c+Uh(+7;_-V0HL=)_ zh{b1LB1qRO9=}UGewTRsF7fzX;_Xqs0lIcp#bcJb+v|?$Eyh2x)*2paM3)338 z#r%xqLRXm9NH6pY(;5keeqmZ8#h9OwW9SOg8d-*ZVOk^4n4gho=nB&ssfK=GS|i!e zFHCEs8}l>r4P9YcBjeC7OdHDC?2pFM8dof>amCUaS1he@#nKvAtXyQ9nKqQO@e9+2 zayEWp+EC8K%1mo?)YQ-Tg=vkRhJImMqpLB$P|jvAElg`PHVh5Z8m$fe!nC2BsZ(a! zP|n6LOdHDC_=RahIn#>Fv__L-WrT7zp<%h9oM~;my~Y)*vvI}J8dt1bWA&c-inZzyNu7q&N)Gd0Of8_L=Eg=s@M8^2guY8)@uxMJlRSFFy)6-#Se zu{s-9m^PF%t<6ju%GvmZX+t?1zc6hmXXKNaHk7mR3)9lhKwpesn3g)k{X#h-+srzL zayEWp+EC8;WTp+}Z2ZFZhH^H3VcJm6*(}r?3eqq{B&XgKYYg{oo8&@o? zamCteT(Pvq6>Bf`%uE}~+4zNNLpdA2Fl{JjT9%nMl(X>*(}r?3eqq{B&d4G&Z765s z7p4v6Z2ZEsp`4LkX4+8B#xG18%GvmZX+t?aDt~wyLqJttzS#+%3tbT%Nu;!>;NvIm9Y&r)&+@c?)F@cL64|(i8cFf<@+#H+Q#_VqH+TiSHatd8t zGF@S)$uAaaatvKzsL3_vXYvhQu~1URLyapIYFuGxm^1lihMN8|xtO^jma}n%X_0CW zN?1J9xMHEk6^4d6lQJ_j%-Qr(EN9~i)0+M&XDzoDSW~U>Ryt4JbhcVr4Xo;1yQgrc zLF?1(u)m}Cv46FZy8=siqHLxftB2?tbbGGRD|1h*pw6Lvby@wQzEB^lH`N}sS*=sW z$hS53(8{w0NV06M|9|B9sE@h&e@$=Z%74DTUyswn*e~nBPFr*K)_9VXYkeLW=MLKu zb%1=fbDz!V(*0^Gnlwb+th%a}Qd?hQEpdwb8i!a(?9^NJI@S>j^ejD=x_X%fF`|)aoN~ivvxntOXGRmqHl}rhm=h05{d;O!lA9Wx1O18>+S;_M% z^V##5&dS}CZtgBGcAqw-Qxmg>Ssd7%f;yQI5cBW#f0%mSHhZ^HA3Y)o*5U5Q`%OnlKR@kg)32fY$MgFy=I5rbMV7b-P87zxE!+g>F(E`ze(L&L} z(IU~J(PGTj{LM2;Oe|)Y8^g+L7V0>bZp_xr5Y1l8T$ny95zZ2eS~Hn|UH8s>e|qO3=3Do- z|M$2zdj9E+3z%8l(EUHl{XX}fexE?z<@`U`{Yt*O98BD-rP$T`l=AlOx7l5u_KR4l zi&l>|phTvY_VTriXKO@jMr%cDN9$l^vK}*ZI+rSSQs>v_;0sEL5N5^oA}OWduO;8{ z*Yg*wz1E45@6SR%_5~8>MS8Wa_(ORWt2>3H`6nroNy4;cfX+zWBSRQ@@e&{_}tN>hGUV z{cgIyd{u?_pMKGAz4|)t%c^zoTa4>!>5_DZ@u_GG6Xkbrj=%fe zf2I1}f3728{MjS?T-5pEdvov$K9NG_le-hSo8}pQOI&+6SL9r*_a#<=cXY68pgXbb z`R~8++>fKUvM!y+wP{FPa00(93^+hsYfAJTcUn`ram5Zg>{Hf2nzyS>!hZJL+JjhR z%;3%8E#xibt%?pen$gB&?^N$X??LYo?Y zkqcqmzjL*6=W3n1*SW&p$Uxng&sJ)5g@HD~8)j?NXmguTZKs9nw4xtgVO zHFM``rp^^RN$ranJ6GL1S2J|3*yU>Pb?aQQgVLT+hwUnLSDn@&I1ee()&VV%cVy?5 z_D%?HaJaLtacv;Kb-u!K;s2fNk0zed>W4AALhb6H&eibF)yU2j7HRh0u+G(iovQ;n zSNnIa*so$=?Ay6wZ>>GsyK}Wy=W1x@YR}Hq9-XV*J6F4Pu7-53cI{lTkHW%0%do4R zI#)Y(t_F9m26e7>=v-~zxnhs5`Lb>2iXAfc3_CZw+NyK4W#?*(&ei6ftIaxBn|7`? z>0E8xx!S06wPELKgU;3ZovZaaSL=4J=)){lYj>{L%WKcp>|CwUxmvw*wOZ$@-MMOY zuDa}M`Tw^)htt@#&JA=i`a_*Vw-lQ;rvbS%(?d?Jc{46vTc!Jo-Sh7AcaLUxZHCLH ze|P#pR`D(}mertalH}7EiatDr(;36V|5>Pd0Vy z%iG88cpmJv8quPx4_{Y5rQW-~aQGAJy%&XByLH=5S+Di|Tl@o=xjDic&J4xUSahD_ z>@KKz{zOI+6NncU1i?>Sj}Css9Zsy5Mpuw^eNqv;$j_zGGJrT*K2tgDY@H1XsEDuEw1l zT#7q7xEyzEa3yZ#*F{{94=%=?Ogrh~iAK_mHdLOUi#sMb2X{npzPuBhjXNB>k2{#f zxu$j*7OrP8b~z54*28LJnAP0BHk94GgV zqq#mbn1VYoID;qK1V?f`DmV*wOfU&|L~si3QF6KgAyYP_;5go#Avh7Y8~T)=WWn*c zNpKRsjtox2ofJ&Q9UB~rJ1#g1_u$}U+(Uw6a1RQOz#UHi@Q1Rg%@mBmpFzRF{5l~x z1b1>U4tI1w+Z+uG#^O#w)AOUlu@1&(v}jA)RQU*K6Zv`%+{pp0BHz*a5f@rRzLWO! z!+fZ?rF@j}`?#X<_hzwudy)vUJLF6|N@)E4wGt zmgN#W86PZ;J0@5RcSNux?qn>m%GA|xOW99{)`Xi=K79cX09g&J-Oa4=+5=1U|z1b3g+i} zOwbK?L@+1rgkUb7_Xy_WdUBB9j>fuHN_keUM+OU%Q(p%&a6L8NU0v~rm5a3Ssf5#mb)Nv;< zn8k1ZH{9Xq>(YiL{I?0@5a`BM$_-xQx^+`)VQa__x{I}B?`{PbVP9p}G_ zJAB&u=0D@UdYb2x{U>mT`A@nxpK@=ydhb8P^;rL5c}^?!ry5pCp)YlOyf1CUDF0U6 zG5*!KBm7HoNBfr%PU1_;GSa^mcP#eE5+i9%4)$-sJ;c8TcWR2IEt%rqh&vG*PvZCI zHpjov#r<4@kN#0ykM)nm z9p@j7doXr<5*ulu59ewE=TiJHq!WAV1Ndr+e-Q3?e^1MLQJHa1@JK5g}ceKA3?nwTE7;@hM^fb|C)Br%i~z^he-+;qSxq z!~LPS<9ulg4)*uPJ;ay#|EHeB-^%6M7W^{7-x7DSzcubKe;eFM{^q#j{vaXi@MMC& zHttw|P29u%b>$s@E!?T4)pEWLxur1xTE|TaL33=HRNfAJHe;UCq4Y>xSs60dhXL+ zBs2IiPe%HY%U`LHV}0r$IZGWSXMLBmt}c4i&iE}X(IscQ;~wHsJL7+Ozv8~`{fzsX z_ao2$l-J(Zk}KZl{4&A&3U{*iCGJ@73*2$uXSl-|rLWD-`c<*&oTf+h-r%?K-Y2*d zy;pEYc~Ymxcv7cFcv6oic(3D5_Fl#v?Y)FM)_V~bnG#*Xdz$MB-ZS#+A9V@uA3Pi3 zJ>hdoEzTj{)wl+5dJvcJsuuT`|}sgfju)4lL@>%!8;UpvNsNQ zq&Eh4m^T)8oHri#5bqG&s!UxaL0Jtm!!KWww%(cZ?6hkKjCqwsq( z$HP4=wArIL%3B|n^4OPscLJjUC~@d$5A$A8<0drK4Ic&~8z-r#zK*TkLR<+zi* zWpRgjCGI3|IoxsHGPs>K(p!YP3ErZ(lf8xAFMrVSy?Mo7nOWqmdE8rb;STfW!=2>K ziTlSAqXne=XL4_LcW=&!JI?Fj-lXSZ=AZmyPH`0by!Ni`#_rT@+1=2h+AwMm23m z9ws+O6YoEyw00qHOkgcm{E~V-n!n^KzFdGi4vG4kJ{yftVssqtgxc}A!;m@o<^HvN{JDO#A$cj!x@iA%yz;(n7o%fk=ivJZPrO`(*FBh)Th zwDjM!XW~;zxJR(|CwV;`?kL&WKpxa_N3fD2@e!S2GMcdDwaE5J+GI)147lSs+s2RI zBCe9lQWp*(){?Rr$vx^jXN$S|&N$lDcg_~mT%N=62xLTad0zNnLhk8!1p5W#UZjcC z6T_8i|J5A%K0jG4pT1hz#ZxJq`G?RI`1lP5dDsvY_;fr_%CHC@9TeA z;bgxX{mfw;Om$a$7w*0By|_=rPvAZiKZE;P{4d?PYIoNkb8mu!c7U_vP*Ba#ugcO>l1PVP#GXL4^sJd+2K2XTK)e#HGH zVJ#%}Q`XngBxS~xodtxO&ct8p_SkJu;;xdeiaQ`(9e2%?m7sL}bbs7oDQ6|7x23n? z-jNbY`ndb63s0vnaQ#900Xas^U~T(i+$-3L7O@lUs#?ZQv>R(NmiM zrp$10@=9<~a87U<`vHz-zuLH96noc(vJSL8XZmc+X(nCR7WEApSQjlE%p1(X-hgh{ z2L0y$fNjt}k(2BEbNne-*bMcz#k!{LuZn$5&bd-*Wu&VsV#o8E*x1PL-hKKz);5=6 zZF3qnJx8-5Iu47Q{k@^yAZ*XpMDADi$hq1&|Gzp%;}BbOI=g;u{XACKzKrNm>t9Fn za!SH^^{+Uqq!(5Sb$;a+Y#`+HgtO&$EFxOGIi`LnF7HuN+dB5^Uqo~B?DL3Tx&B#1 ze_a1Gq7~uf4*4bE3=jFO&RGilifzSeTzAPkSX!|Aobzhlk9uH>FlT+a`X^W)1e^u- zaWoq|d;OzmR(_d{-6Q{wX5q;!^$(+&c``Gn_Iwb{#MMlkv?1RI>@9gOnvo~nIZNc- zs5@6PaIVNZ5$&P#*LQyS?z_Og^4*)hdn@5Ipe5u@>?I1UHa4imoJ~SZu%O7X<5-{j z#Uw`9R5Y>dSdSf0^Kya-F~iQHfwjlFys?PH5X+0@u>V+xH+r(~g_vTEu`D(rYx86t z&ORZ=SZFMRoyb~zv!KKrn~kNh99fe$=H|o_Qh*)DQdpC$!IQZ-RfLpaTd^b-CTNQF zwI}*ufG!2*|EQ=W551# zM6XkSDPoT)C-J-(`S6|f7b5C${dpQqpEGEFXaDKjj(tw0`Hg4K)_>)_J2} z|BU-o{U_Wf>p$W?QU3w=@%s0;kJZ1!{YU*@&Y|S& z92IPz{>DZpI_tl(h+^l~GM#g)c41Ffb#|3sTZ|S|+E6*o&U2?`O;?kX<$AJiy(%a6 z9nHvUY41no36^oEL9OA=!&{5?@P*pi?o6ol+?i182kl_B+UD*|s4ZzzcdhN{PEp$_ z7|HDG&Tbd{F3u`oH?a$=?e2EL50#YG4&bbc!)n7=={~kLs(yU^_}UoOx=*W(byiu2 zIUAyh>@z>McC53|I?nBsKZD(93)Rk%v$ksIaoX16wF@|LYbpMI`!?~mwTtBJt=c7= zzBRaZ8RsDGT)W(*lcfIEsNDnoi5i39KoX!fJCF?2DK48eWq# zSqf|{dwIRRKG?ubRY~%Vca^ zk3tfT@uqmkVmp02{n&}#N#4ocDcCfe=AG`H;hl-a>e=2o-nsO1=VSMCA-1s>W5;?a zJ>TWnnqG-cbu|{V*J9mzJu5jk(kI^R-QwMf9qsMdyx!^E<=ySwpe&R`n>mo_ac_KFJm?PDn0J&Shl|5z3IJ$b;CRK z!S8wRdmmu$`fu+ePR00yQ!zgCKF2!gORQkO#v1rrEFr$fUg<|p!2B88*k7>`{++7e z`Mw|cpgjtKL@p8E`M(H)1FvZ%;(Sl zf7PC>f=1CFtKETqm)}BvSPeVjHP~;s7TU%-STwJPE%F9f4{zje>~DgF?`GIJZ-IsK zR@fA8gHE!YzrDW$yA%gwx4aXU#=H2t`a`e=-W`kRJ<(eB!v1(4b~5gVjqm~3Ne{zL z~cGf3i zX>u}l&8M`Jt=tNm;IYtf>v zNBh1J%jla~)w>mq?RGTqJJH+jMsvHD-Iw>HYdwfn_rs#YVMYCz|G58z|D^vEw%*TR zqx~GM&-4BZ{)@CfFVp(Giskm}SX{s1zv;jApHF`DKgY`ZORTfM=G>%j{qOwm(d>T2 z_WNi57ynoEyx-~Kyuc5FAPnk3#Hox)kg`8?I`qKlu@mne%oy}QE1Wr)C73msEtnl0 zaZdJ-&K=AX^h9HvFPJ}AAXqS12>o%9V9{W)VDVrHw8^EgGhZfHHdqebvdPZV0t@zD zLGPds+GaoYqOK6E7_5Zuxe6BP{W*1KAev}P+Ec9E*T7DFEn3xe*tfb~uzs)sHt-vv zt#0z4Pxj+nh8=^Qu$SM3c6bPV&hG4d-4jiBuVC+BA6n)8(0dPHKkTqzcyJJw^&`=Q zM+XN7hp)Eo?=(; zGr_aLbHP7@=Yto57lW6AmxEV=SA*Ar*Et{S4Ne()D|kD2haJH01@8wR1Rn>kb-_Tb#3nZsGaS=nzqdpJipC#Q4G9nKT>4Cf8!V;AxQ;ez2p z;liAOu_&i^E*>ty-sGh?!)qB%Qd%x-gv~Gy3wA8`3VVlr!oFd@aQSeBaK&&X_A### zt{V0a2XNkJSJ(>M;cDz|UL#yHT#FN$)(O`Q*9+GVH(<~6M&ZWcCgG;xX5r@H7U7oR zR_uh{CfqjMF5EucAsiGA4tET9Vt@25;jZD3aJO*xaF1}$aA>#}yQcRE_YL<8_YV&U z4-AKe!^4BvOFc3i6^;%M4i5>(gk!^T;dpjf9~vGOP7DtZCxu6Zlfxs!qu6(SOgJSx zHaspoK0F~jF+3?encdi@%88`m8JtLZR(N)JPIxYRw9gMO2rp#){^IbG@Y3+I@N#x; zUm0E%UL9T&UK?H)ULW2N-pGFLo5NeeTf^JJ+rvA;J2}ntZdU#84etx@4<8603?B*~ z4j&00W$*W6;p5>G;gjK0;nU$WoOk*hJHnq2UkG0eUkYCiUkP93e682nC;mqGX82b4 zcKA;CZunmKe)xf$gc^PnejI)hej0wpiKt(MU$UqC>+qZK+wi;a`|yYGM{Es#W~ceD z;cwyZ^;+Gl`}Lq6*6a1C9&>tXTF>g!)w|WFH+#Jva?&NEi&+_K%cVqt^x z`EpL^E3xhCUGKwg_kQ)|?KF;+IWK5c^rQjxfq$}&UyGgb>u^rfdiC|O2iy?-X=5zw zH${WmyuL+!%lcOJt?S!3OZ)AywIB3{6ZwX)w|@8f9`!xzL+g9h_pa~5sc8GLH5ntk}3v{4_6E;e3IJgiS-cmAaM5%tOSBkM;wJH#pVV;L77FQ+bx zH6qp;r*cN!e?0TAehKG~T~@zb&L68^Rlk~D|JP#Uaee)U`i=FQ>Nj)7-K}!Ar`W@D zuFu`|d+PVr@2lU>2>}n*AF4lGf8;-&dpYf?m;aM9FF&<&EWdOoSAO&V@d?-SxU)Ow z`x|@uCH{8jK*{L2x7$C^?{9Vi42-(i1<+Gh)6>y2oH_Aa^v~$|=mk!E zdMSE2dL??5lPF&29K|=HH>0pW=h)!|31G7JVFj5`7wd7JbgC6<lN(@t*O}c&~WxcpuL6*e~8cJ|I3Y9u^Oe4~j>`BeBF9%{f_z#AD*I@wj+=JRv@m z^FJnXg8ZcThiSbGC$?+-ishkyZx}4@D=V`^~#OKE6 zai-P<@rCh4@x}2a@ul%)@#XOq@s*q_a&>%7d~JMPd_5;V-5B4*nL@Y3x5l@{x5szH zcQR{wcYF`CruT6I*8}l`oL~QN{7C$0{EzrCP9}LGelmV4ewvxoXXEGOBx}wqd69FX zUXEYkoT%60*W-W1Z*YpqTk+fRJIt=W7r!5W!2IgJIossp_!CZ%`YisOnbt4kui~#c z@#I^XZ;gM5e~f=(&h-~&Tz`vyPdFwh@sog=*E(lSG4qB`YVZB&#OeC$zLUyJ|H~2wfvt zGg&KHoAbKYWtNwdtdb3rjbx@b*_0ElHcz(TM60bhOLUuLTV{K=Pj=vpm%+)7oN%=> z=UeTX43RUwIr(MJWN5NivUjpivM*;{?VlXLtnjd8I47Kq;MA*8$>`)@&b=DLsaNBY z@yUeb(B!aWB362nI6G!?a%6H;a&&S`G9@`SIW9S#6J<_JPD)NrPDxHpPD@Tt&PdMW zoSCzeb2usMJkH6wAh|HPD7l!^XD&@HOD<2YNUlt-O0MSYtZO-w=KACY&d<7u)3a_# zZcT1WZf8FFPG+O;PVQkg`o83TnT_WBnun7|l1Gz&$oX2y6P&O06sOuelRTR|CnvIT z(iSJOancs2lyfTE>zv8<24`)(mAsw2!wER=CGRI6Bp)XKPCiOL#^Uf(&c*pW`6Br; z`6~H3`6l@``7ZgM({g@HeoB63#{1Xgx8(Pftwb{KorY;WjnY_Vztb$8j`{ED(;3q4 z>5OR)X2EApXGv$}yq($8Inp`Pxzf4QdD5QgyqpI&f4V@rV7gGcaJopkXu23DeJvs9 ze5FfsCLAYyVg1-lb58pz(_U$BIU9~Mzn163uN67(Yh{^JPx~{cJ}~V{TWLF8jnjSB zV0L}2bnSGVblr44=GZsj%%6?YjnhriP1DWN&C@NgsoaW_fVN4uO}9(8Pj^TMrGwKQ z)15dUXqR-?bV#~ex_i1ux@S5x-HTI$_DT0m_e=Lr4@eJWu70?jFvf{=qd1T5U{0eO zBWJs(<2hmI(Dbl$VtP0yjUACrPLE8F;@qKQ(kbb&>2aJpc0zh$dQy5arxBgX`D3T2 zXQXGQXQgMS=cMOyM$!4{1?h$9Md`)qCF!NY3bMWxAganZD*OE1zDKYvnY#MbV;);n=b2? zO`pw>b>~#39@$LU%-Jm2tl4bY?AaXIoSfA(cQ#MfGn+S?FPlGGAX_k7h!dO^$rjBP z%NEa;$d=5O%9hTS;asQXvPRa-@~p_ptXI}M>%(bJ{j%k=6|xnxm9mwyRkBsH{+t0d zFzd=%Svy-TTRmGNTQggWlcCnh*3H(-*3UM`Hq184HqJKTyr|8x&9g1CEwin%t+Q>i zZL{sN?Xw-SLD}GJ$84u;=WLg3*K7!9OYNTRk?olc&GyRn&i2Xn&GzHOsRObDvtilr z?4WE!HZmKPjpiJxL$Wd1*lb)jKAVsonjMx+?C9*6Y)W=4XI34b zosgZFos^xNosylJotB->NmgfOXJuz+=Va$*=Vj+-7i1T5zSYIqCE2C?b&|`oE3zxI ztFo)H0=_o8F1tRvA-gfVDZ4qlCA*cgux`)p$nMPU%I?nY$?nbW%kJldtOv7)vWK%r zvPZLjWRGQ!XHRf$)>GNj*)!R**>l-Hv*)uHvKKi`>*ef~?A7eG?Dgzl*&ErL*;|~k z^-lI~_FndW_CfYx_V4VY>|;*e`jo$&@_F_}_GR`}e8A8ljYip29#|R|#tq}@_uTG# zIc~Q53%6Pgeco*7`_0b1`qv!TrSEsOlw0~JbHwM_f z`rmH2^fcQI4X52`>+b{X`vLa-0QY?(FU+3-&L6T{(_eN~tnq92weS1d_kHcVz7~F8 z3%{?0-`B$LTZQj_CtVs&W1yz9*|PF!>+fZkm2+wNqWMq0TmCfkyS!96X!g~7Dx2z0 z(NDS2`Mr;%ztI?|+_dkTnxBoP<|C}}Z`t#_(0DdA{~JZyr5kzF_%${Cd}rlp<P|K+?(Bf11)3kUrEgzfuU9)NBs`=H( ztNhBf{95`Q@lm;I>37^~dA6FC4<;`yl@sK(dT!|&X!1MI%1P^Ivt{L)mliLT1Ik^~ zS5$Ij;kKJ5PZoZ=Y4T+8Xg5usG+&x+%a^jL{*_iw%ZAB8mxkM@!q<94`dqy8W>Lw9 z$wSNXv7gD4hTCZB`;BI<^`Mzsd9^HEZIeg+oo2!P4m*Ef_dD$33A^uL7cT6|19s_$ zUH-#XKT0bvEjQw!@ys<|R2$28ea^k}AJ+13>V2a$xi7Vy;$G#d)bkAMpDrG7m0$W^v+}2~a##PU zNBVwV)pL`_metQ@zbYR!UWK&}g|+|f!qQz>x~q0q+nHv&aN)z2?!wYtSh~CH`!4&w z%kr(u^4IEl*^w{jAM)hJ4o2+cf#rc7o?7zuI1KZ}O}4mwOi< z*u@8S@qsOTEqCrM{HBFp)tlVHS9zwpw(wQ1xwr6Dp1HU1wfwlZ@UtspZ^g zR{e;TYfHnyzbYK}9ryN~={vc;Pd2*ukav}fmdQn{wDwo~NrF}RF0}s8Uuk?wYtI^` z%6+3t+sS6tKU%-jEVceO+ZHeF=b9~TN8##um2M5MY581Q|5K{Gp+~rKAy{oUOKWG# zs$TS|>Wlef?L?#0@@Z7G4V8byOzUN%OZ{zhX}jGpy`fp67$gTaztv$#qc~Jk!5BGkvrT)X#9&39;KWM+J9@T7Vd|@X?uuDH| z`D*pK)#c*FbNgQP(PpcoCuuwjZ4VnorFU8Rw6$GqwzXVfC*QF8+cr6BYdIq)8lSf5 zH>LG^W!2AFIHlGL%G2^s(@Xbea@fn#)l18@w0^&7{Y=r{$z8K;`QGTIa@a6`n)*G> zjn%_mD)+hRqq(+EIzQCGKxyeJLSE2P%zatzi|E7M|X!ce) z$t!(G@0+dOR<6A*eZ8&RdTabj?cb40SAUuUaTvEgf3#8-?X(qnFl;X8)?bXnkv_9MSAsJE-zRJT$&d4VQaMzlKY*ZsGQ^ z_*%VcTK#KwS^J>Z6pG#m~kyEv;8{51JpP zjZX?KXWrNRZVphnYIIpUX6;&2(@S?&gSJ#0R?%O}x2W{z{#K7Q z+-AF1b??IE-pK*=OViPAx%hFf`Q2{0_Zbgce5-oU$I{V9<)zt2{cH8JeADq1a;@^5 zn;zO6VDVGECm(42YNNN+>z4I18Xn_cjbCek)sq3*9<((77+;t?n|{{N_Kxq|bJ*fl z)wBMZzLw?-?ROQf)w?dO7rE*Sd~flwcr~hawZG;^Zu!zQf0|maNw>>C)F+EyyUItC zqfWTykM%dD>5rxLJ7v{RRqbj^-*2{6Zc43Z=r2y5VfP$%as#{cP<*ajV3!`)$rJ4S zgI&B}7hl-bFWBWf?BoM>`3Jl7!J4jy>LJ`)_}cDpZ{e%n!EoHdSN(%~3t#Ie_ZGhD z58PY$+D~zB;hX-@sM<-buZ?EkDnA`F{;$~NLG@gQRrX$`KUsawt$l2?tUa*zn>yY? z{WW>F`I44BFKk?1R`X8QZZ}m=Mjh4uDX-cYYbSEmWAWGI+~#Fk9sljQ`onlshEyT-UOBrIyYkQJ<~84zP3&bn=2;WaX&y9^7mB zlq#=?jkfcp=?7(}-|6bM-QGLwyZ^E~Z#RfPA?`A*QFX>PXl&UavZYEuBiBX(A<;l` z>*SkNW!A`(87`8Hfvl0xK?q|O6P~sSo&Da>&Xhr>W@4$0F_Cwbv5{-MVEf)CKXNO) zyz11g^KNP*Mfg?-8Xx?(%+lxFJO5xO3^YzEjHON9HF{g2YU6+qSmtZvf&cDzzPHM4 zgP+`#gGQyCwcPJ~ubpbs235_@ccwg4{@P?=Zj~sngkL8cC}e9~RQaS+wDQnS3n6y# zqEXQB%1Vi>Dw#HJl%q9PHb}^Il7K;$<{Pt~PA&?oRHZ4A&1y2Ow^e$beBe7PAL}ez znr{roEZ@!Fyi)2arO5_eP3s(T^EdCU`Ig&zxeXed+GrA}JDAO9RhBfjHlaq!jV~wWCXVc`XX^l|R2Ai~MPQDnO zInHgcn`@)r$gQ5_T2HvQe5>TD8pNyr&6fHPyL_UaIDcWwUsWCm&VE-VfqQEQY%-{& z$~e#MdsTi=qFs7n_dSz+8lOTNW%_zmp4&E=(6;hy+vIy&%ay^SDm!f}hqfuVrIl~q zN9$i{gOsvrH*L^Wnv&VDK}M;I0+ff9tI93;p!Kn|`qHT6&j$T@B}bLgpmK!#T6t9M zi-nh)Qk$D{n(H8e_pM#422oWzV@f@vM=f9NJc*adn| zo z^@EiXq3tK(oBV1$ru#MdwaMv*$yvh&W6i3+)5SFA&Nbe-EwVJKMH`z8YpC+h;MeN0 zwR25tH<~7I&8pq1CY5Y5s##4!*&w@VgX`RstGrT@^n2oO`P;|ptI8$MUHH^X`(5h` z_az0 zt0t$cpDC^WmYOfj8ESnkD`naS&86utrRfEww)+f%HU15qj9|{%l=@2lvi2v}K`@ge z)^BTl=H9g*#JiGDOHZZe+2U=(7L^NITq9iy3LEUU zO@51NQPuR&w$=mIa$G!Nm9Mr7Y?lD(5@COs!0c1yl&ed zysi2x?`!$BtNN&edd7~b2NyQzEvkBC=`XE)EiHe`&SbS~4;fpUUR&w6HfSkz@{F-# zrLVYr=Y6furRf!=^~a^@@uf{#l+~h`$!BSLcWLEc>Y^u;K3d+T4H8RREGjE~-zJGm z>+egOEG|v|Ep1V`G(DiSN#xS>fwIa6E9cS{YfCHdQWsm9^Vjk(%_yO?cDFR6goep= zqiu3j<$qOPW~|WGNea|sS1z#1Yugsp+cw$J)Q3 zwk^uGZQRzj#o4xv-`ciF+qQ9B+a@X7Hrdv;_M~l-Zf$KhP=ihX()NXW%U@gUY}+Dy z+XmNdTa0h(WCDw@t{liuYfp5r&K!`9muwtbRExH@*wHqZBiE8!27BkwWm$q%PxvhF)vu%^uZJR`F zo1WdaNz1lPYPU@fE^Jb#u*vko7WE1nmln2I)V4*3w&`hYTYPAnzSg!yh_>l%ZJYmS zoBr0e$?&%JC$!I&e`ciA*8YX(CQqh+x6Np&ZIi2Q?I#&7SblUCiA?UaUuJ$o^S!kB zhEnB(xj=hv{a|VRR#`2gnx0siURT;Uywu6bMydJ+{#ZL~%XeSQybTmm3~#_tBprWo2)Nwd{b8QB&J`LrgxOKI8oZ-Q)%;G zrL~u(PRcRO;^cxkS<{28e{7hMNW=1_QB6u}d&IPkD-YP|lT1pwba3zV2H3SPJa_F4 z_bwdntM~1_YEo14k@uWD@}83~?p?djy?w9o=e~OG+6nHR{sFsmz*YP#UfQ4HU-iDq zrOjXP-1JkMthY&ZYH6E?TsnvK`#|_xN zX@5Y)cH>`GD}`AbQF-l@hsm)m3gkAq4{QHo`O0@%?q+0$jg|iE=?WW%}H@yZ-d($<|O`mCh=`-ywWy8H@NmdbQRO_tP zlr&8BHxXt1&$7f+ypD*gD#3D;iK?m;+?$B1ihyQfqOL<4%uHRlB;7<;t9st6e}7Bm z)EMJg(MgzuH0@0}%}qYdF9bNvFXglz4Wi>3fmNhp`-ImReFstb*!DOpR zR$z}TZm|?()l8dJ?oAvk_0Og?3avgw&YCsrt~zTqo#w+bN2kXy zCD!JyS`MhHNwqv-HcTujX*1L?HK}3UZq=;jRdwsrQW+_xmK}*|O)W@5oc5+y=Z4p& zDPkfp%`f@X3L{aO=9jKM)7-SDy&2H#{K87{w6(O4Mn@}|88_Ix8Kvaf9oP!Q^mZ0- zO!%jk8itath~a+G0ZmkR?E`FKi->B)Gs8{pwGG1%%e~&)NHvQ_HFKmr2Qx_SdCPhf zxGMUpy6Q-?>fy{BGbiedqh^1<`UAItB`TtGE6es}qR6}^)q*rgYC`3t-F!PZ3UNRNA!XEXEX-r}Jn zEbguRtCdJy`QW*W2WA87=ND{K{-YN3=Y*e9)O2?kyj5#+Z92 z2e9RXuGnyI;a4;5IwA2zScYLEqoghR~mWKR$MHfsdvs_CaASMZDoM_>bc6L ztsL;&#fyH_%wL-i^_b& zX66brD=o~ds4%mN!e#~wo3SiRBQ9(vvM_bBuo=U`W-trW$O{{(6{gn|Hc~075sdbv zeKEey>wsewwhWES-*3|#%mhgKJDK6n%>&_EU#&-%ov~7 zHP+24G;6J!s^Iay{jRl{dyA#^4t#H^&|ZN~-27LiTw*;{-687kW;%`k)E`L1)EiPV z^@ik3y&+BRM!%ot2U0ifTT@3ngg=d1M`EVFhT<^whGe-Lr=j$*0ZJd8Q)kN5)p%I* zvX{2J+-qL+vaxlu1!i_GtucfC#0dTGmvW}}kOt9ou@_+B=4A7BHc0Tz#5TH{$l z)*iN(&Q-EeK_#NMjy+LL?Ox}`FtJey?PJPxZP194@$i-?VcHQbv zp<`d{HLH6~Utv99)AGaS1b9!=X*H93d*AZG=Jawil!Q%|Oml16+=#7}5kIYYO>NQh zruGQ1*5F>c)|C%XgMLg8tOvFCYz>1Ya*cb}Q!z(qsQo}1XJRPr) z3e{(tW;SXTQ0zXm+%U6I+lIn(%T=8T;@)yq$3@(0m*1@X*O^nETdwJ}3HMH#U<+Tz zLzIe>BG|$=3o6r>cy8hAj6e4lzK(;qxA4t^%JeCoTllIsac|+<2)1dK8dkelsdnKo z%j3SoBFDuC3q%(`M&qvZF@M$HO}csC)iS1A^u5x?tJWi7p`p*4Ha^32!0A6t(|1bk zIGNaUtvoAc7QX2Zxmk9UW?4|!%5`Zof@QT$z*ds1T=BC4TZrp+i@ zEoP!n-z#l8t<-TH&o%zJg_qm5-n?3QvlY;$Sq_zEfl*YJ7-n%<+RQ@J^vtrdRI*8f z(#HEu?d_O`a^+09m|j@#3G#H7Ag+6sPI<&(COtk@2mVLPX^4&HaK{VKJ# z)l_w_)igCS*G7){WG()pv%u{d85XoPTT4^tN}Cudb#kLon)+9odRdyfS=ufpYb4Ry zHM^~|VwOzBD6baIv|8|7!_94>C9kT9sjInG7iK3-e6-PJ)=smpunF##k2HQjjg4xu$i;M7S;=`4h%b7b`x&(o%yHJj^wBF7q;qIsikJXVVxPptLZLn z*k`+Oh@Vw+&2KsZO;2uC`?*!CLX{Qrv)9an_u6yM9d;Nzc&DNJ?>l6dUH7-q3E!Fs z*&<6(?ToQmz(N%t;%a%V$|-TMrl&EW`{0B29kRzBLk91^!;n4jcZSaWkipd;sH|*y zsv2%ze_Pqc z6t?!2o6T+6u?@52+D7`OwOn~MQ=xhyEl8CuDq{M6opgOB*@oW}A`Q+G11nBBmm%meWMU)~IvU+o(b+qPeZb z6_pK!#M3O5C$uhY608Y zo1zjPTi9t<2A8I^R=W`LYQaklbX#Vai%`1os0%L9JXfKu4ES!Q`G{irjvF`yW7GR zj%`puCRg3PepgiOr^T~rLewuR@@H5R$ad0x$s+3ujcGR(I6 z(bPs5|1~|iExtlcXr zLp(FgF08#Steq}wI8m6PKvC(}RsUdyl!dhug_Uz*VSyTp=R-UEh zQ)w%~r5V7NW_Vs!yN685cuxnpo*RQ~? zU4UKw!>+tx*RH{?Uc*jlf?c}`yY?G)^%ZvQ4s7A8-rMXl!@Vvu-0QN9C|x>X%I_Aw z8T55&e)HVI*Zk(*!q@hcdkbHcP3|px?bn$5vh-KWnANhRDnI;g>DTs-drQ9=(s$V| z=q@v;@3LLcU1nI{WxLC}%)q`&m1+F3^lN*;+?(aU8N_v&L0p#^#C540@t&ne<%N4o zkCki7PP1v*DK;%Lyl$zSq3i1RE&IM@-?!}hw$=lhTP^>#>NDJHdAGIS;aNB=+h<K zMl4*FGY(O3`GkI{zuPW+?lpa;PjfhhrqfP6<6hHgyQR6;_*lQrz3E%F4BWJ3;6A38 zcWHU{@2zs#zmMJb)8!}ZSzUOr%U9Ti2fKWQU3jp|SJ;IIyY#~@ov>?%V3)tJ%NN+C z7dE}YPKU{D!$4_<$z?TJuHmAOxNsPBx$m(nbN-4j zW?Dz}pVIV=Qsox0RR3)9o9Ue{_vc9DZ;J63t2USimg|MN<1gWGAMlssi8E^|j!I72#*_B8q5hcu_^Y0WYSg?*T6kmZ;V0 zE5J)C>Q}-`De5P{ODpOl;bj!{4d7)J{Ee4dZ8=4K9azH1@l*b~d;xlKJrmp;^y7Lq zczH$r5Lm(n^>Ofuiu%#;N{ae%@XCt%G4LviI{wyHRn!N<{SERLZw46TnfxYL14u~- zHU=%jc5vG;30}=`6ui3OTv)yrJP6iQcquIT4m?Tk+6r$DSn>jRQawrSn_m3-X9Hbr0^!g5?A1z3U8wDE`&E#coLt@6y787<_hmAcngL1JiMjC`xM?v zQI|Xx`2cl^%QlL-1=B9L_KuLy(>Pz2*)DKijU01s0Hm%zgn!L{%~ir^-A zgd%tX9;v8HxKe*WU1UVc9@IsC4_5HEl4`Yc6p_>gkws9Kx^bJs@FQ9%3d>y!+>-XRr6p_frjf!9*EO`g&(jMNdsLS(P6p@sP_zUXq z!V*_dza2KzkK+0cMYJ(|ry`O#i@zY+1io8Q?+f1p?gMpjzafMlFa+>}h6H}duoC>R zVJ-L(Aac4rcpN+l{sEpc$ahaG;>qwc3U6unS@2KlehYqH!Cwom@t0;D_wYL=f-R@fLZH4c_?V?O;BOT{3V){vBtG9O>LuQ^A=M0 z;^)E&X&3qH(hmOFFy$(cHqKj2;hzOBuBbf$FQM=+hnG}Hy_No3;9mzXt&n=`Eu-+S zhnH1Io#roHJMh;}YhFVk^_#zp?ciSm=ZaX;RVe)X;L;%F-%H^?1ot*b+4fQR66d~( zWKFoALCRryh5stNf5~{}s5uLCR!+!k2bx zph5DZOW{+Wr2TS`ylE?Z>Xx^fLGo#JML^Mbk_LgKbuESe6TG%T-d#r#NItA9 z5zGj$ZxFvWPy{{T4Gjmt8z} z1fyUH8^j{d5*`Rfz!HW)o{PUAI27K^a0R@(B9OG~VYm|BQxQm7h8nJd_fiCsmc0#E z!}}-#Nz1;5YvBD9!4!CZ!=td24G1J|2O3_2hbe;F;o*jt;e!mH!ICx*JPS*{2tEgr z7a({J9&PvnK3EZm3`^Mq{VF$>Z>0 z3a8&sOzR05FJ4hl}@*0Sa=}G>A_!3z1 z6vPtFv5K1bEo}`5zk-if)a1Jp6v5B%i3-(N-UG3ezr^D<;z$y=$< zAUGC&-f$f(c@2W&;1>;24lgN!*A@PF_+N@zclZs3 zpTch{YBR!bDg18m+X|WI@ZM4QJ>hp1H7Vcs6uy+ZloO~)d_GY4lEx1W;{U%DzU1Xc zhPC036~WB#Cx&(4PZhx|@MntnDEM#keFf`yF6@dr;q^L%letI>ay!1+|&rz(Cpgp+e>%{JLQ;78*A`L7F4uLx#^XHbYP<4Zh1FdIy{x-kcNE@KHnus$sD2GSSF7)%gs0Fy^9 zpKgN1Ul5!Gi(f$65*f=0f|KDn6w+t-b1DK!<6H`9zx}xt!Dx6MfSe}J!{oa_<{kX` z4Clb}E0PysWXNGNctNlb-%{uNg%u(%{vwLtDR@yuP13ZOLGp5Oh0Fu_OBnWnmsE(} z=Sz8mfVBBbD?|tMmr(?g)@2o<5Bkd~0!ep6A-bX8R0NU-xkB0lzfc5sz@>pU!|!E4 zPW|4BU>MxTAn*4D{Ybm`v%I1vaalo8lX$LZSPfoDA>$r@Wrg&6GS?;uc7j(`1W&{L z!2tY!4IZedwcsv=_W&&SAo&;ER@4rHB|O2-V0DEXbFRU);4ZMHA`t)9QUnqX?TZ_; z9s#eT2*fXuZ{WQNucruZg{7PXQWlbC5KA4A@&NG*u#|y-^!OVqlKtRK3=*eJfyk8n zzPTb1KetdM7rp`>YBMJRr5XSfsI-Y^;7L6L|Y4N}BY;K7RU zMtDa>{1Pl>BRCyMp6&up0lONmf`=%=J>cCG@$vBP2FVBcO(1^mX?PJHsz@Y#dx5>d zS70B*m+-!ZUtq~Q!H-~nMSKQ)fFcl?Jx~#!35)E4M8X`dNJhdUDk+M5fk@SQQQzUc4 z6BU8P@o+^TX_}-61()GsMNkTl`*6iES}Z;(16Wg{2_B##6;0Er(+o`f$} zBsasCC<2k4OAS&ElBXb91ilbX~8g zzXD6yfJD+EbrK|t!8a*liLb;D)Zc(_QPd^hZUwjTT;%6=Mf?kVhoZhae5WG*3BF5_ zh`ijbNJOUYQ6##DKcPsZyri5!vOFx|fmq@zaRTwT@H2||8(888lB4106p7T8 ze=1VR!{-&r%e$BKiHkB9T1)K#@qkeyB(!zyGaB zq)a{npW=`B@tGp2!=EdX&EYS=@4UlzK}`{jfIUS-y$F0oG#2J1K{Or?711ade+9`f zI8sCh!?7Zo04IuQG@L3T@;}HF(V_5kiU`@3IdnlZ4xV0-Yy!`qNH&JME25F`jEb1N zlX)~jbO=0?BK{So>;>_6@GOe>XLwdc{5?FIB3S{RT@l|0&jIEnjn~0*DPm+cm|GDY z2G65Nj)8kBk{jT86$x!aumD&Pe^!DQQbd#Cg~1}k`6zf%MRX**m?AnHUR)7PgqKhx zo5D*f;&))`l^}i+M&<_FQEUk))+iB-F8>R3!Jq zy%aI^MEYhyOuY&ED3UATzKY}uxSt}Cu$EWEZ^M$;Ah{Y|QIT8%OCEt#;=i&Yc>rET zksJuGsz}7|{)+fscz_}ic^;@p)`PngNes6XiEvwy{0Oh6NTmE%2Yi?O1h21%pMf_3 z+YvV(-d>U11Mi@S-+(0__v4)&@c!Tc{Mi+jcmtW&7X4e0iY!Q6K`QleBpA)L$c5A; zP?xe3nFg}HBI`qfXct)O4~Qfjkws8j5T2;09}XL8QfI|4P`d^`LQ#{lJ5u583?HqK zIRKd(b$Az+@&n80`PH)n&jE>-~{jrI8jlPG@Yc7akh->1T`u5Qw*=crz&bM z!KW!?Ehji#A+{L7846h&3C>h_A|q!RUWdKfQAZ)=`DZ-6mNk0gO!cra} zl=8V&5iSNxyK^JY`@=VZo4MW)z6IRM_3rR(ibV4Nc14KX$T(1tNIu-DNJM7tQiLK? zcN><5?*aGX=NR}t@F3TR!Vf7zDU*i{#7Xqd;8EU@GWmxh+zWn85sG|0Zde9>LJ>}e zpHzfWZciyvN$=B&_*M8BMIvdHHc0aR2k^Wi6uEdokw{uz1juqKc`oGvVksZ-3nY@q zuPI{cPav`ak{Mx<4-kvYicElHZTL+^d@(HL4HA)^FBHid@Ry3@aQG{Qj3I-s6`~sj z-za2VBKQ`Nj&v#bM@4NT_$P(81pKoiT@L<55lWnY1;6ucgM6<659cu0H!KVXidf2q zmmKDW>k64W4qWPLB3K@n5tVRwW0N1h65 z5>NRaNIJrq6t&ghnHBN<@GJ^RTR5wthU|s286>R|CxN7O4u#hTo>L)fjNx1c$%DBK zlGb??vUVEwRMc*VC0~HIH#{F$5E*y?UI<8DN`5S&h$%-|gLja;SRU*?a(E412doF)0qX<8_s75+DrDRlQa1#NT)BJBeoWq1QVS|Mw^;V}x)VZ$j3 zX{W-cY0x z|2GW_!Xh_Z+Z9~MbZVotMFEU-%}(5;P(~YKJW($8T*DGDm-aZMeaee8~l;N z+aDJB0LkvKgpFLJ^6h5|r&~*0fz!pm;2Mao9g2Ja(al3iClI|m{8}M;diaeZ9s_@? zh{f;k!1shDY5YMEOI`UacE5!GPb_U8!KeFY3MvpdOuT zz{wWf@579Fm;$Q-&K0zp;FL{=P zcwGg0{^LPK6W9cBuL3ilBiB+Iy3!XRy z_9}S10zGH&)Kg#-CqaRplX&VYusPrj6zDmG=K=)=KlfayK+h694Hei1@QW1ad4nfW zfm7XItUzbqo<<6s+TjufEerfo1x{^pnF5`QdoEX?cUV1FDA3uor?CR3y1Y_B+Y6qg zz^PuZQqXe1n<#LqV9~omYA& z4}ebxC%XWhU3$nCz+VEV^nl0!r+yCbAozm{VmNqT1-=~oAq6@w^z>8UZ-YOqKxc=Z z{tEQYnTOg2pmRje00nvn%`;Ge&J;a^6!f4_WdT32h?T&oo{-mod7z6^ibOX^q!E1 z+5^z&zNrlWjp~DZ3vj62$e#du$J0YT1UQ4h$!`F54*1Io+8N+86j)90nF?A}@L3A1 z7C4m^&@^yrV}R8Lr*;K29h}B@fSn6Y?F48B_&f!69{6htnh8#A53uvWsl5S>#xZJ3 zfYkw~_5=7I;8ZUFs|)_70{;_ykpe9+Jk)*w&j(+kz`WpZDbPD*o}~)R2fj>!p8#L3 zz#asDTY=u6@T^c^eZf~M(EAjgRSN7O@OKn6s{hprjQZcZ3iO_ZXN>}T82mj2df&pc zR)O^ge_w&#zwoS6U{r<=6tqXd*DEk8!v+OyDELMNwjKOK1$rLtq5cN29pKc*0D4C5 zp?(GM_Tbc)06}%NS%KdH{;7hXy2?`E9l$?Rpyzd-EeiZj@U03W3VfRa?+8w10z@=8 zl>^|Nz;`N$81P*RyfgUc3L+LfTY+~0->pE;06kwQ@O1Dm6+}Gv9tGYNe6IpM8}#HT z@NVF_3iO=Nlc&J%0^g@V&kQ~L6*#r+0R?)N;yI|mshz)4pyw){LkgVQ{A&ez#^U)# zfv*AoRzU>8zf<7k3*Rfyvlq`{1-=&i2L&+${D=a*+w1vJfu7HJjw*1fkDnCid4=a^ z1x|JIi-Mps98=&_ProYA^9;{#3Y_ZfcLjRB;W-Yt7(?KzUItj$!=T>0HgF~s(csm9 zbD+Nkyf#o5`bWWi0NRAkAiZbx<3Uof?rMd&0G2j^hxZVhSEbt`i>Jsow;92N9gFgr0{@5z;AOIV5w&W$e zfil3SybFOP&?kW}1(rcZy?d7fE0DGU_(}zacJh)ffL#Ut4georr@*s-EwD*-wpGD- z8XRMWcPI2zPrHEKu(=QXO9hAO6FyCFrhxBNaHwu_fIOsq2At9W&Qx&nA@~BFk9x^( zzJg5g4*}?_oH+U^fm6QU13w_`3*bkApAnzx^%(FgDe(Kje^=lSfFD;7WaAG7 zL1j6iAjrm_3J&>dzJh}>!G~M*oq;_#%I~YDV59APXDQg%fuF5lv;nWKV6+CW0i1*V zep~RG3J&u1)l#rO1FsF7i#TXU-+2nggW%^Y*zj9l9l(P)eZaj6HvHU&!ukBr&jXKA zFm4BrRxmn%$0*ojGgiSE3Ld9mz}J283U)I1MG7X`-IoYljC=0{jy~YK6nXUpzYMqn za)0o~3KrVZcO{Sn{dn-J6ztL9O%x2WakYX$aj#LZ9|os71?;WhR1UyG+xw_~0Si9j zYpP)F1ixOvxC6YIf{C%wcY}gKwwo&$Wba0x1V3F0M7u%pJBi-&TIubr}Mq4K<9tHISPgYK39Rx{Cx8i3=8}<1??_ys&|0S z6n(EN(0QS60q_R$(!m!hIB$W!sX*t8zC{WK178fFKJ-7qDIQ=@y)6Znp{|H8SD^Ds z-`fgwe(77GK7f>8;a{0}gyfbRyrKwf0~OJEQB0@W49 zM}kAPk0>~>?MJ!&sC%;;IO?5Xq8dzmo;N*eFDF~A50}YTb{J`H(!9<(;F-8y= zeA<7Nf`NMW-=<)80Y@JsIH*5=YXy^d2L-bo_?-$S-AhLWlXRUFOp4oC!E6ssb^#N8 z*iZEW*w2GgeF1h5yqkhO9sDi@dkT1W1$#31-3s;#;5`)Vso?i0*yxM?o(lGJ;P)!n z)4+Qv*ptBTQ?OqG@2y}z4Sv6Z{VaGN1^XHB2NdiV!7nv zsU7+$*a_edE7<5y{{9N~Jn%;p>>A($6l}V`feJRY(I5r8Ciq|l`%~~C0DQz*4W6lB z&H<;o0L&HObkBhKIyl`YU{X1$P63nb(|rOa`S}z8?PD$ip9`RjCi%lc;7!PXf-hDu zPk=8`FkSGs6wE)sDR1Os{tQla1ekR1TNF&Pw@txB|Ml+y_M#7J;QN6Ckm0WWuN2I0 z!M{;3zr(9;h(|Eif}{Ttj1A!Ee*}8(C+bWEV;%Te3dZ~3XDb-E=cw}(jP>9i1>-&N z1`5Up;4Ksk)JqinmtdeCqu`%WcSFv^mO&_(hrv-6g82h@Z3Xjt@K^=&NANfx9&vsJ zM_vT;7X<_>VQH9_jp=CRc7 zq=!EdOynI4A0n7r!Ph95pMj&U3FdZiv=c$=+v~h#80hG`D61IJT62Z zCO986))0P6Fp?OX{gQ%%dwdn)1PAvxx1oZAy2fovn0eqDa0V35f>#C_K>iy10^nwx z)%d_~QJ~*g=RbUQev{???Dd#oF zXt$jC0Pe#;d*qx0G}b)sIMF9Oz?aKhuYLta3&T0c^>9G51A`C)4|~b1SbeC6fD@tMZFNLcfsL{1e;{| zEWvibEdbp58XR>;u(pGrpd&6_ys{jeIJHj5X8rf9eZEFe1x%l)Jgt@@T)9vSHU^L z_>UJ!Fyl?|MBpZr=X&s763kc*exC$0mNEWYnglcFfwz)i<{Nl5H6LXeg@Rga6dTH0 z@b|SJG*@`UjUrW~i7uk6ct|`VhKcdwaq+Uq)nC+I`MxuJ@xCs;2Ymy5!+hg>6MfTs@A~%m z4*8DwxnKBAzvHj&ujP;S$N3xh8~PjhukzpKPxZI<5B87sKjVMiKhOWB|1JMYf0loX zf17`=|A7B1|2I)ulo@qq)Y(zzMR}qcM74-YkGeZrL>tkyqvN9+L}x^giJlPsX-srX z&zMhRzKNX?J1=%|?6TN*V&9A15c^T=r?CfPe~81p8P_DPYuw#&!T9R&wc^{wcaI+% z|3m!o24;im4eDGl6nwAb8k+soQ#|)Ig4}N z$vKd7Ft<)_{oE^Zug>k9+x@U{?EU-;^IaD$%zP}!Z{{CpM+AONBU+#pT8ebhP4p9k z#3;1FL@`qw(Srr8a3fkF6|K+?tyEJx1?3&nhv6~88!6?xR8EA!H&6FtIt#Dt?(>br?EXi4&b1>(pTu*L;+{U@r z`!ic{#@y$ReR60tV~0inj{zfriw-qB6#wn8ZwE4VAR+hs16SqVec-a(aR-ufXYMSA_WtJkG2%iqn@0Zqs~J0pS&2Re9s)31 zsn4OUhdw^g?Z8XWP5r7l>GD<`7<6FZ-VXZ*A2|C^p99bwYKqW02WlL+4LoW8?)`iA z?>`U&jebDew+6?qZvpf7&D=M2U(0=$?7Lv!xBI@?w;j5V_67Fcx34GipOE){UaP#u zxk-C5_l7^Y&fdPc=j80q*_ZQb&ZwN>Ialmmv3J?t@q0(^otcYKfA{{~AMO77^WobE z?EYkD)Ljj`ewzMrT%PY4--=m$FH)1eK#@-j(J9Zq|j^lAgoR_3Cmz=S% z(vOVuQChOd)KRnMHVd;EeXMo_tE1HeJYY?+&vtsNkV-KaUNP=VV4M$qNPntN0f0?m7!HeMe0k+RnU56f2yDkt8@&7S3xQ1QzcMkZGp6{ z${r=5=ASYyHtsiW(GQy)jYOljah1`;c-@$63^rOCLyX&us>Yc{HREifx>3WZY1A@m z8|NCsj1k5}W0LWtahY*F)7W+FCf0^^VdK~n>}B==cX(A^n@95oJel|BkMf~>0)L*r z!av{}`KNq4|K7OTNHeZA<{NX(9{e}$TCKU(O6#sYrj6GoYp-hWYaeM_wIkZE!V*`B z>%E{u&M#Vj#LyeXE7PmJq~6r-sz)tqEpqW_@(XxyqFF;a~+W=~_GvBG%Vm}9gu z-Z1Ys-Zq{y4j2c`?qZCw+8AR#Z0t8y8c&#Q%vNSwqcJm>iFr|Hg4yh9b_+{qU0FAF z7u&=>Vjr{h)&zb5zkxUBH}a#p@;cWd{t9$Ig9k9I%nsr6x*+7s+4Z6ceb zJ;|QdGTBV+B{o-^&OXszW1F=_>{D$q%hKLrpJ{WfN!nUoNn6j))IPCq=I3g=`FYwG z{Cw?8>v=7k`?PKRLM@*+)LecM{%G>$+Hu}OoXKwz)%eZgEdH>#k`EKN@eGl|hl^DH zxah&35clwjq9=b++{>qm!Tbd=#ClB(;;)Iv__*N(dx-t0JrsX`sk4@DJ;$T8P1Xzi zT4A!P8e?0urTi9gHh)t*#TSW5e6e_%FA>> z2UssHz_x13*fwoBPZ8(vR8f7ye42RF-fr(;v$UYSQ@h>X zWq;0p7N4@}S|xU$_8?CawRlTWo3|3@^48)!o-I~spKE`JN3>OTw!ND*WG%HDxu4Gz zcZ)3h3;RoU17C-~QZi8M!OzfEi)P|_K3?3&bHv+PZEKsgLu+b3q}`;o(c0Rz?OFD# z`i*)E{bv0p?Hz4`eW8`9zh&*xUeKP?p4S%Wy{)IU9ojB!r`sGZP$x2B29 ztrzY4?ZKjj{j#`8+#zlkw}_jqS=K9}yM3O0qg~fNUknue#aL&Lb3nWz=828g67iYX zW&7+XJJD`zUuwDLY&%D9Zarn^Y9DA@tf``@eX)Is)ZD+57A` zZJPF?k!3eAwiwy=3_ISMZR|C2je*7>>x6Nib=-c!o?u^QUtwigTdb|tr)DqnA-lC* z&z@^HaQ53>?IdfB^^5hhJ<)#L*=tv~GwkkWA2VP+X!bYnGw-&?*(2=>jBUnlBgekn zUT<%-H`yQB8|(x2LHjHFkZsuQ%|Ye>bGSLu9AZCW4mC%akD3|gW9C3}gx%I|V-B|V zo5QR>tz*_7*01(e)>?a!z1aH19Bn^oFR|aWuePr-Czwx|6V1oXvE~@Nowd)}Y<*>p zGsjywW~SZEeA3=xzi(w*pWCn7^X*J4&wj(6<9ubWv-{guTJPC|>{Q#bZ?J#2YuRh8 zy>?IgUVgO`?R@RTII&KgF^*R@?=kz~pm8i4!WOd6d7jvhU*Pyz3z3b}#=-m;djr2R z+{J6LCcGZMMtsTd7JK+$v6s){xgv*e6S+8{&*uB|dio7|8@-P{PLJ2G)0^to>&^65 zdTaeYy|>*$A8Oxi-=hx`7w8%KaQ!iTv_3{3t4|eg>C>>=ct9U7F4QOJ)17#0x4m5a zCVm&k^%v}6PCX~Vsc+4*7h0q2YSuIMt=6mdO#3E#td^#2e>2k{Y!n1{)N6z-;c#v zhBjP#*1kwTBm&wR?LF;7Jy*}urr5VQmxy)x4(lbmkM*&hV~w`Yv6eaCS<9X8t+$+S ztfkJk*0Xk+HParhTjDZ3TL0dfY&W+Sh$Jg$KVZFV2do)(KdhNWPm^n*Ir-?83y4)b&L_jO%g$7|>xu-EjD+3Wfz zdR_f1-K&3XjkC|S=G$*sZ#X&DLMNAR(YNW9^>6g5`Y!!U{d2vVHe2`U-&(`0@9lxs zO6N!2(AQdH^bKsDzM0L}KedKiKk#^cllB9F|N+gjxu zwN^Mk=u!H2Jjrgxud|fLu#@CmWi56N ziF|zp->PqQnmAV*n~aZ*PmHa`c4L?Eh4H0v!Zb|VbXX0%#okoAo?WjsW6iW1Sell~ zZrAQ$?X?c<4((3XLF>rw)H<==T3>d*_7Ll%^M}Gpv~iFX`k}5wJcs;`;6Do_VBveUhdIyxL3>NG1|{OR{Mp= zX~+1*LgS5u;Fk!UUn&gVMx4*viaNZVsLO8`9{z~9h7SA{e@wLIqeUA&MzrNm ziTn5@(VIUl?&p(5AO4JZfWIh)^66q2e@SHUpcu}Vi|6>;;(5M8Oyw)Z3w)KB#@CD4 ze1mwEZxZwQN8)w*Gk-+Z~_4zyEMZQ{0=kJP__!<%9?}?ZBS}}vaFJ|&D z#Jl`Uv4-yv@A182tuxpe;ymgMb%r?^`o+$0y`?ik@8pcs2RNg|rOspeWM{PgsxwBv zR!?RP*ahrDb`iVE8S9L5#yb<7$MqiiJ$g_5Ui@xxBu-A=W-Hh_=LzRY=P7-lK1d(z zJnc+&rZ~^(&*)S1XPv3~2z{jfoc=sN#J}d>@NfAL=LKh)^P;|3U&8O_4~Xx@K5@)> z$$8nn*1pbYW3)Ef8tt5Y_GiYuMla(*`!S=B@qiJqM;Y^s*NoeZ4)%k_P~%ZM*?ijU zWOg?C8V?!$jQ++W#sKSpG2WP9k2V?^SK1HTTdnV`gVs*t4l}{H#z;0UH?A-)b!Hmx z8h08Uomuu6=M`tR^Qtq)nd{7RUNatc<~y%D3!FEch0dGKB6G5_&-l#v(Ku@SWPEQN zHg=eG%(|w>tZkla{A~PYYUUZv65|ge-*8Q4a#NV5Y1tlw8^Sn4KVg`kKZEHU0P7CU)nJM#|nPP2pA-n`v@-VWN+?J4$T`vrTd{gnNjJ#{ra#bOxzWCD8L%scX!`DtnvL_``*W{ zk!d(f#J-5qH)RfXM;cN$LVWs=O`^m(LO7nm8>|{~p)1yKhvHXu2d~XLAm_$q)GCCt>eY-jmv%Yr6H4*2tP^&D1Wn zUbPl$msxLFtF)%p`_{+W&GudPU0NG^pgj<)|=J?yR`OLXMdq}u=m(|v^yQI zIq^=s)){M@1g#6!F&Ap-Siv;Xx;j@ljkWHW-;%T*nAMtS_h2j=to6ib z_NaC*#TE8r#m8a?KAu0zGqCRt@`>0DZRb)eI|B_X;^n=(Lv;H?(^Z-(mmKQXIzWw3j%h_tqc9N@ln|3Tejb&+9Q*kuK3M$NFxC zo`Ut=dwNT(jo#O9*FVrV>g}=i*`{~Is_t{W6V`Nl^mMH1_UT=*mO7|+)4#=O#9cT) z*Yutk19iQ(afVSvzu)X`cGm-D53`5;?wv{mdEWZ2e)&w*2}a z>w2rBJ{fDN;raq=q%~51(;9=d)FNw~HBMh_O|YKSmylm#4L8}Etgo=1v!2&il6PVy zH`ki0ueM&Z=IifTZ&(ZU_pHU%V*P#VZEKaj4nF$6z7eb2kMs|*v)iU;S>Ibf=$~N^ z@~6JdKG!~1-;Vv3U*CaUaDN9U+f*{GV3 zlF){+qBN>KY3NrBMfD|P{{Nbj)d1ciUy2bWL>GqSxczb8-~_h>^{k?i*|U~@*AN+s zc9=tHBPso6p{PcM7SS&V#YyOpkPge+=$8dbE)Vs#^1>59ac1sq<;jt<()`o(){5ul zIY_@R@K2Y&4*1QJ4-2}t5@Rac%wk;c^iUW>P3rcf`&v(_15y$}7=e}O;lWR%{9^_Dw)5B=q&C5moZZXuW`c z5K0p8x04jlYzj3>k2)!)QF>5+H+nl%h2jbtP{c2kl_rw*3&mHd;^X4sV`Wo+28H?` zKUtiUTlnWfRjE`7RWAO~;c|w{?4RU+4mC2}KMQo8eCKnie--4l{*9oUcO33&~~Gk3T<3r`oQEQ3bn@N)d83si_&EsS~mmRWGU`V%Lj`l2pm%rI$t} zAyslzbBxam;?N)C7DU||mX)SrG^!QFueZEj*6GoxUf8R#LfTo%?IScQw0j9nWU7Bo zRwYrTDqfQQw1x?-8?nnQkfSDJhsg@*SSe48&=iIyY)ROKR41kNM%06adLwAZ8j_VJ zl437gEEGH2BATd0*y9#xqE<((LwPnuWr6O9`T{gB>QE?DSySWN5dJFCb}}U zb#&!ulcuRotDV_2XzI9CIFp z7Na$aY2soKQ^k*@F^ysxhx9Sm#B?K>en}7+rz}~m!(*Do+>E^Bn!JFf#k7N_BUy{- zL)MCfM#hYg)jGU>v-+@B8ja~!R3B>Pm`Si7(c%U2pqLEok!LASh{dX)SR9O9#WaOJ zqxAK)`ZjXZ5@?i@G-i6t<0LD6%yT4D?jeoR{}-q#l`3K6U672snDuv-nd&EIRm@t@ zc`*wM>P zv4@bVDE*>@revIxXkzu)N_h7#Dz;7`trlCeP>$4}O0I`lYI*Ffk~R#{*v_%tVeQh` zB&kW36#icrQ^o(+Xl!TNS)){~B&D)-j%{Bk2V(m}4$)qP^2FH5kSE3tkyOcwj*yzM zCG-eQ*ponGZvlq(kOqS~g--p-1Bz$(ZvXH;&&7I$i3oiEjpZVf<3io8!}9L9bUy#%u>o$M|lbJ?R{^z)lW@ zDj6aDD1Q8RkOswPfaa4;Wuaa*Da+jJ)s%9b2u;I!mxk=bkB)!5uxyj!pMxD$wpsC1 zT3I&avMOX5y0ySYc^BK_vkUDME!#ngFUxi`{x`(0XxWmeOt6tGDMn!Rv`CH8s@0SR zaazeZinb@2#^Hn>Bq5YW;HFaQUauFf15)l^ZwTbbQ?i2d9C>;(vEF1EYpSF{NoPws zpJ>4hvPjB>o}V3TCzE`lzj>5#`Z*m@igRMTvkr7@rCp$#NzXG#uh%~V)Vfa6ODV11nDhp< zH8(a$OG(O1f?h>8xBi?~P9E)**6k@``1kB5tyQm#dMeILnsD#g_MNzFj~&meBr zAsIi_gG_%f2J}yECMKTi~IA`%@WW&9=z@-lgMNs?A4ji^bo(U4># zQQq%vlJz}O{#DAyWgO~F-0(>~`4ZPVlPpG%EXc38=uR5`xXkf6Nf!~-yUX}JWZKK6 z+?ZsO#v*REm9imaOUknT&19)*N*Y79l+jJfqe*X!C0U;YgB(V(OPm`En`O zrBGwGr0+_)h?&qVlA#W1#1E35AZjL3j;8c0<5`joSrRLiWGj_YSx2RORLU~GrQ&av z@i&v+SSsbEB#V{O{#?=s)uW{^iAza?H)@D}Lt~McB;yZ|^f9S>SnAb>pi;OS5Q5#Ac{)N;$AVcr_b170iOtR5EpDgqy z%Y3jbc^`_&2g_76Z*sh6O!Og1Wt;MhKgU3GzoIg2;-4#^87fPd_9xy36c0%K6Vm4O z(oP0h&=1KR6J=<&)Mrb}thWUek_z9eJ5By+!C z%IRi4(%vsaTT7bmN{tQ5$N#w*p&!ZkvIY5YsaZ=Jqo0&7AsKI^QyJu(qKzawT7Rh@ zO)?)&q1r%c$0uV}mGlf5Cp|wCagLMB58}U4a!rmi{9q->qK_<<^e(YjTIeb@gCy-E zHNB+#h@{fT#3NFFrPN$0^SY8W`s<|8gOaY0bT)YY>G~dW_elF=wnd)~b@0av^Di5C`0y@AZD0crGW@ZK!fnr zVid{RDyfm9qV}WItRebGN22&W4=DbZBxY?}_8svdY3RQZ5hWSF+90}`G}a`FX}u{m zvfo+LX~uM}mYNB8r<7YyNqHN^H_wyuCP~*x3p1pQH6CJ)k+Sp<^Qe@kN&Re@%Lh`k zlDCrf_+7(jnK_jgu%P;PfX?se2GbyJN&loTrA_GxT(&QNob(0;exfqYEz&}ojCqUHL`gY{^n3)#T>8J>LWa_x zwBRB|%Ad>ob)s}qJr9NJmDwMh$yj{(crE1l=WxJNW+tp0l zRr1@eN4uJl-|n^B)lAJv&FR*!Q~OB$Ddov2qfBPr(MmqjizR&j6P-B znyFJm-!=!^cv?4X-LQ>EeMxG6ut&=6L+{>oZ%V;;SC5Td=d@c}%*MgqSyJg?A zu4nU}&F@-J);D!dY2TL3N`99{k#0`ok|8adb*WTLTeaZ2YD@V|J5llrKZRD&lA)2B zRxRk8UPtk=dO*9H_l+2o316%n_JP*D=zHgCDn*y>sw}6XFEvAq=OSaJ*GZc}-bL4iU2c64nD&&TM-T9$Vd=r^mn?b2QG5S_pD&EBawA)gz$q;30< zTpoV=t?HY0qWzrKx3-_teopGrqF>Ub&FHz2c#-b~;j6S6NR63+KvaD@cEfkcxP_Ca zx0;_iqWkF75u<~*A5H1mtzWl(DZ6@gqtO$sKjN+ht=6aPYFCr$4CC^yRxR4qRJBTT z5WM7Q>#=m5x~}5il|OkC~62Abw!kV0DQC= zELBBF)%J5z*4}ZfLz9-6@6vY3`F?HciPXcbXSX_@RVS6TJd%1Mtx{^Gl*cEGPp$Dt z{*VFPs;1RWi%VIXc4?|7wVwPoN^No%T4{K-)_JY-S~df%(P4CI^VH_V+sFA5GH?4Drl<6t6TGeSYqg9=hS!v(=-QSdXZPumCE6r-F zI+5S@z33`sVQL@HrL7u8-bd(;XdVuaWYnYE)!aETcZlrUSb5Q`+qnbHDXAkS+1>il zoJXrcnisqEqq|L6)vX`NZ9FvYP&-pv}vKjhmXK28w-7%ZU)yC~dZ$H|yU~CQX zb~V+E1n=62aSA@tss*h3S~j9S-Le_ea<J3ab2HsTNRd%gThS{ws8YC}5YJ!cW~ytV?!vIFB)6rz z!OeC9ZqQv>Jggwb?$Y#b4y>h>7V=khZn~lgs^y^rCVn3Ptp} zA+L%HsnD*6;ZyW%hPmHHXnzXH?k_S-(vYrH-b}^|kG>j zm0TZ2&sSXCeTe#UcwBa0Crh$-7n%%@JMKai(_O)t91VhnkqU)yN%J#9-ju(vFu0h& zWiKtJJpIdbX+qIJspis|3N1D8uPO82!)QDbwV9E>E5e5|+}Y?^M=)w)u0Hukj=*Up zs7xe3p7$oo=Nl+pFn{h&=ZLwAJ}NG6yX{;EkDH^ zg|cN9l(aUZvwsHP-AcUp2f3@-tIcYM!rb%%Nu~^GVIz$thOd-VtfcA1!^79*AJIxL zDJ*4#t({UzFBwDit#B=ujPYO5gh!Wuy+rB%dX5npy0g`2s#Na%5kXRfPp^R=Vm0ID z6b~!w+WlUIxGUVkxvs3Zk@}LW7k5QuILc6Jk3yV`qVZ08m0mLR@AXqRt?1lTN`A+2 zFAIQgN`{rKDO_We9i@UH1#9FoQ>j@MBUS}J?jfwg0u@YDEP5!t8a=|Rc8V4X3nwYq z8K{vptS*;SIQo_=cF9O?c7d*XDPd)KtcsdmGQ~fmap`GtiBH8_wuFg)Nl~)JBQmCE zsQ-hHd$44t?rSA=k(wf7Tt;NbKQEVmJy4=7|5{1uET`nz19Uw~>-8ndSuRCrJ>t?^ zNPqc5RzfEzSeN2TecaK|2O+0}|Dbe{v~Z{wF$ZJp;`hQqW>$iwc!JY%VlTRYFrzwW~^fb-L zr{O3{Do@`J7Ekn7uQ8@xqS9iOv{8(?-v#(RASuc!a`+*1vT%x)v@=1S>9kqrIpCPHd%Nkco%d@OiJoaJ(3akY~cU0^QC8RDFcUz+F z&^O$tU3$O1@FVxgY2kCo!hqt!5o-OyRX{{&*ek;KlD{S*LIp*)1J)%^V2?M|?GTx? zprk?4h4$)^;bECdSy~&ETGFg=x{6AwJx{f3KAF|OlJ+m9*+iv4y+)2wc&$>6S?=a= z84Kj|!Wxpeue6q@kZ_xaM}hLMp-POB0kT=-lSxgye!x*g{weg%#x) zMKAw5SMCR)vV=#B()>9Tt76=Jj^gA0S!IROm3$VRpXF|ryP5&v77oWJsbrc^I6aa4 zzw>c-|6eKV$woc*tKxUzepN6#Wzx)#ryFbB??X=_ipLFIhy5+2Azplb3x$Pyd`NS8 zD->nrbY{8y#BfO>CHX`xBT^HV|9XDm`6O(uyi!?d^D|K2!P2dur0J!Hl&!7US+=y} zE8E)tG$g$scR7CjPfPMIXI_>+{MBNd++JBTeR*;#$2zh+W(wk{)A8~oa2pnl<<8IF z7uMuQJRQaff5`fpaE#NHPF|zsweHeyeTsch-i%_Za$n+!&N__9NRM-qOqR?pRc(tW zTxrlGD?=x1@BE-ln?^As%aK10*YZgZ|08T$0U{&6Rl%rbIpC>eTkjof7%A-`7R2*nP+&qKOXJ@GhIpK$3nd=>n- zS*J>%ydpoVtd$%_-XkcxG;^{sR^?OFiW-|~^ez6Wh%XkkS=`deuk+I>yyUrPKF;5Z z-%Y5Tr<32wOLOv2chAYg%L#YfoxYB^Q8BF52j6x98# zwD$|jk+75~_$9?(`h?%jEt=fjTlD(BclGzx-9LYCCp)kF=W{Q24yC;RR-UxQMy+s? zjIele39Ewi;xX{+fi%+nuV(tPdPebb7G75?lqxK^`zxH}lnElwdQKVne-)uNYk?Nd z_+MpTcE0X!WrtND@I8@s}E*hpc~z6EFPTVitg=7ILAOBqx#{f5UPg=r?%(g`06WL*-_I zi@!x}#^DSF7AQW_rc0W^G~-@3+316Pi6&f@jvN+3LT>sPSfkK1gr-Sd213^`%`#b% zW#PY!Ym_@I!ir^T)htV^MpC}dvhscSD}LkI9Bl*6ZAf<&bXUo=cOvbbNLwA2sl=39 z8tx#OLfst8!m|O5&1C_EW-<+>uVLPbznq~VPKN#~>5SWCzL`wWouE7nHkrCY814e~ zA;S#Zg)tH37kq}B#%C7fDG-bFnZ_KHK*;+YimO_51)CY76Y63jo?!@Mu$yfR0Ukwf zqL@L%+9>au!h#43B21-Qq2;i2(G9grRsuz?GQwB5_YAssSV=|>BuOhcFBURvqFW6m zOJ;iLPH~TkxW`0jDE45KbqMe%YD1^;;yyD_-gILDT0_@fMBb#OI-ZNxCp(4r3r&#e z`t@$6{upfB3-pn8rn7WPr7g!j;QpD8yUoz6xLZ;4+16|LZKlp&a1&9JiKxj$x0i+5t198%EUl|4W1z#)B1|siP zX(MZ_u=S0|lF)s~(iow-kS!XjkI1;PrnC=GZ-%Vx!RQY|fJXuHBO|iSky~4|LtCk3 zI-Vht=fWcbMr|rD{5C_+VCni8+)Z^i-MkupX~2zoAzhZil=Yx| zsv6xba_o&9doz>&=5CkwMZS5PJFn1xLm>fqk3~XI_B6c}TKYa<3`%(!O0WPWH4Dlf zl=qC^M;Z?TG&-1KuN%~BJ)v4^HE3hktPFaT-3x$_@C<4X+~q@ za~u5G(&j0zDro;?ct(IqV7!M?So#Om@>yiiU>zv8+oqzKo?iLJvtVyx)+&7rkGbZDi@(FKZ-S+XlX! z1;kj4VIzSF=yNu;FlsRf9}l1wsePs!X{>g^NR}vL1Wq2q*yrvu4!SwUSMJlsA@_UZ zYg~WBVvTRz1IBmQ;n}9wJ!nR``^;!}x*6mCV8-G)jzyXA?jf@tP9vRyb}RKhFis!A zIDG`MXv}yMSOhEvmI4uDh*1kOmc!Pw9JT?{hZvXMk}+s(%+PY>XoA*`s5O^7w0n7wuVf|YfI18ZNM~s_c{^(|4rq8hE0~;`|ki|?`%!I{ESj>dQ zOjyi>#Y|YtgvCr)l&cn4%!I{ESj>dQOjyi>Ma)OQd|*RC8G~}|^8&`WX+ZHc(96)x z0A>QSFr!rl&H`!xF>VkRX*Cjr#ULyOsf_tY_*CEpU>fiuFdcXa2m&tyGk}@Eto$Q- zW#BBJ1`v~f#QZV;2+f(+d|(6S&Kj8cGW6ca?|z^U@Bk119t8RV4*~svhk^dUBftP) zATS6(kJGWv)v2TK4t46Fyl(&t(e^b_uK|=d0RIfYn*#8r0Q@rm{|vxC1MtrPyeR;0 z3c#BJp*>&*_Rf_# zWMQpB>lK9Z4ZtVB<^qefE}M^a%Ob2_76Weq%b2pb9&%2>svh$cjpBm#!bgCkz#npc z5B%j^)GF|w&Lv&ePPud8AE3{z2Qbd^jlhS%Cg3CBW8f2Dvm3;C$>^j*j|Q4z%u564 zbgdV-Iu{6H9ZTbOvW@Y^o(y1=v0p$RK3A@UaN4Hbjq?&4aDY(&PH+THDa115uo-d| z@ENefeM0O6@OSmFVojDOCbzjhtd<|bI7Roq5B+KJwu%7rVFeq^mw`Rr(DvEN3ph`lZJ7SC+6p1J)D6RE$#U; zY0q!Z!Y=td?qE$^2{;3&3}BzeKVY@tbG6}fwfRQiLtqo|5%4ka39y;frg2~V!D{Q# z*cH>xIN~(Seu~w$Cj(P~7jWWP(R&K~<$F3ma@A9~;tBPKg7uLx554U*0DZ?;0jva8 z0q?MYc_quh>OKRj`wXn^Gt8@jYk+HkWZ*iWDUgPp^!XwOtB0l-nKR%|W6;7a-K|C| zpffNA7!SXC9Kh+PF&Wp-0M7zbftP_9z%1ZZU=D!&lKHy3)m#9)0jvW)0M_G;m^zXE zC+q)oeQ+>JrcSwnrTSu>zc><=zxUpNJ?M?VO>!?9V0BB(-7Vcm3u{#EFnblN$zaKv z%s&>n`z)(Q3wKGLQgRI-*Y#+}^#%LdPRMmV+HXDDZ@pZ%zYIPDm<7BF%*p@8z$ay{5ay{B|J=$_T+HyVGa{Wnj9*LZ@k#lxI&H?0{jhwTQb2f6Gg8R)z&e_O0 z8#!kq=Rc8i5IF}6a?V7~*~mE?IcFp1Y~-AcoU;pa_M!J@qW5Q__h+K_XQKCKp7yvC zF$$b={Gk#AQGy^!5JU-rC_%6SB`AHAi1g`Gjew_Hg3`y{ij=@F&nBM7YGEqy0x%7D z5tt6V1Ox%B3iu3QCNPU-6+63-=Lh(oSXug6Kn);=_4@}1O zGXTxM&w^tuf!>>h-kXHpn}pt*R4^}RpvNYm$0ni2CZWeBp~ohn$0o7Z$Z@~Sb;l=I zZ_wJ~Qy{ed*aCSgunpJ_(E5BQP}+KAFxDeO09uy}!(GwZWH>MaD7Hqial*r5<=ik{ zo>XA>Qm`@&ovh%=Ax;nj8fMv2&T8n?O|4vup4muG)*{bsFe~G%A|TIi-UG)O4$dtC zSThH3ZV|w_MF8g(0i1pWW}5y2Lub}`tW|BwcHOBo%6Fx&iR=43-%0U&GoGQDc5hI77hCy^^nq9H&nNg zts9iPwBoHxen~A{boUl0^h30EiQQ;4maRL%jy$U&I+epv*IXP(7Dkw`KL50Q@%Gb3*+-)Ptz+t6o%METr>?(E16bPea|Oq3+XA z_i3fneTCLjsQWZ_aj~%_Jz{K0Kjqj`bY%SNWB4kJjB1q=C>S9FSZC0i9Vc7qglF*L zcTwIEGID$`Yvq_;uyQQER?DDgsKsXa$dzMgt#+~zQ_b|DQ`k!i*0<>eYqqjZV^4Q| zqRvYG$|^Iw&XaG7Ma-`yXRXlP1WvgE4b48`Fmb?Tf`)n`6{zr$YG2Oq*m@F{!-Uncq!OYU!C$pPkkD?>W44$Z`tn-dF6#+G$l zSFkJ_GeD0zwenN#F+J+g}F1mULnk#g}JjZcNXT(!rU2B2&-WY5XI%r zqC~!i*RQV z?#!&&lY%jYl@{Dtm^%xbS)vB~-^|RHhFJruqvuiXEXiJj&_tqiCsqf}i0RI0(POZ*T~Tp#Owte2#ugIw1KwJ4%$Np=m^=+2|7a; z(Ngp*_gZcf5n?&aY{Lpz3Hfjb#9$SyhBdGj4^OW{Io!kfpZ8NMvtBYCYC?0s?j=SP zAx0D-M#S?J5ix)`cbI1wm4g%S${{cmj)M>!55wRD7!D&~B#eR_7!48n1~Vn{I%cz( zPnXQlOJ?XLGxU-fddUpEWQJa{u2AY3`a5AA+y$)0k*pk$_W-l>l39Am`Xb4EhP)p( z!Y0@Z55R-S7xN;j0dVbdFY7wCkHWM14?U_u!q)4UL4pDoeBcM>Qv~xVg83A|e2QQ` zMO1}qP#w}C16ZFaYCEyx!U~a@&2+WT-i(oO_2vK0}&AAzF z0p{SGrLYW^!>w=|5KD8orh_awtSxX@pX#ta)rr9>SPg5SY-a8sw62d}(N)Zr9ECM4 zj;F1n@=8X65h+^FW3KNaNR7?vb=p57nLokL@CzJ-U*R`61jSGSaYzu$7hr)64oFbo zf)D%#LM9dK+_OMGi$=JQKHx= zQEZebwn@}KG~xNrg_{zSu~8;tqfEv|nH<=g@B;f-Q!@@N&$}cbL4gZC@B_0}X!#gg zK8BW$q2*&}`50P0hL(?^1PUDQ(d@`F)W}EqI^rO*@sk7!&c*fH~&z>)4|DVsA$B2V!{aJ|q zEJS}6qCX4KpM~hpLiA@L`m+%IS&05DM1K~dKMT>Hh3L;h^k*UZvk?7Ri2f`@e-@%Y z3(=p2=+8p*XCeBt5dB$*{wzd)7NS23(VvCr&qDNPA^Nir{aJ|qEJS}6qCX4KpM~hp zLiA@L`m+%IS&05DM1K~dKMT>Hh3L;h^k*UZvk?7Ri2f`@e-{2D`V&j#$g2g;6vy-J z1H<417!D&~B#eR_7!6}!EG&Y>a3e(FCb$`HfhDjMmcjDGZmT~GfPpXw2Ez~-3dcbR zxVFW$Ev{{GZHsGLT-)N>7T318w#BtAu5FzNhupTzRPTJ`#ES)gDB8L^hF-go#K8%c_C5%;pHc)7Q()B=k z)yO(5)OBhCc=3(uBACMpp36b6(dM@lv&rci?W|?;`##P6+zS zI%XT!G1It?nZ|X@8LU&QVJ+MRcf)#C1N}&>@F(~geu0DVEBpqBpcqOZ4hdG<;tSGO zBJ`CAeI-I)iO^Rf^pyyGB|=|`&{rb#l?Z($LSKo{S0eP42z@0&Uy0CHBJ`CAeI-I) ziO^Rf^pyyGB|=|`&{rb#l?Z($LSKo{S0eP42z@0&Uy0CHBJ`CAeI-I)iO^Rf^c6j8 zx{g`XbN0H9Gk9`m zV56Raje3T2JuHM9U=b{a8zBle!Od_BEPo?XUt?LO$F9F<1qwVGU>- z^~koxKQkg+G21i;>AM`R03;OYN{tNv(`KM}3dyMQEJoBQBPwquf&v$Oz*`-Rs8L4L zC?jf=5jDz)8f8R{GNMKqQKO8gQASi&$pbU-jHppY)F>lrlo2(`h#F-?jWVJ}8BwE* zs8L4LC?jf=5jDz)8f8R{GNMKqQJK4jme2}<&>Gr6TWAOEp#yY;Z0H1?p$l|{ZqOZi zKuK8~Q+B=m-6=wYWcv`?I(|i~F;_MwXoVLw&Ga>B%MJnXA5wv>l0rR}INx+jM2iJ^P;qI>qDd-h^G zRm69aaUBnv$-`#yu$eq@*?-|qa=4Qm?j#4xGm7OI#qx||c}B53qt3*i3;m!!41j@<1F28*e%5(!G;6)X zSi~_b;uscj4o^3Sr<=pm&A}p$VG+l~g8yGz#Efn9-w6FTLjR4>eCO2GoF>Pz!299jFWS zpguH!hR_HaLlfYQWwd-QT0R#opNp2yMa$=+<#W;UxoG)Zw0tgFJ{K*YiNrbabYBmw*i410Z3dJi3=lfVI(e$ z#D$SKR>=cVWF#((#D$T#FcKF=;=)K=7>NrbabYAbjKqbJxG)kIM&iOqTo{Q9BXMCQ zE{w#5k+?7t7e?a3NL(0+3nOu1Brc4^g^{>05*J3|!bn^gi3=lfVI(e$#D$T#FcKF= z;=)!SzR^m9N>CZ9@a6#al#N|v|7Y(g(6VN&;LF$suRz6`f;)4|6gB0L{6ySpt;DZ$4gB0L{6ySpt;DZ$4gB0L{6u8;Y2|7a;z;bXm z0i(W4G(1}DI97y%<;6y(5Y7(+iiA1+{f8cc@^!Gnw7VweG!z)YA0v*A*>4E_dl;BvSE zuB1*^VY@`A*VX(#pSp2Ras}HfAs_C57_5TTum;w`ov;q>0^Sjq>){@_7w&@s*Z}v# zM%V#>K zuo~9FU2r#$Gp1CEi;&_Xq__wvE<%cnkm4ewxCkjOLW+x!;v%HD2q`W?ii?oqBBZzo zDK0{ai;&_Xq__wvE<%cnkm4ewxCkjOLW+x!;v%HD2q`W?ii?oqBBZzoDK0{ai;&_X zq__wvE<%cnkm4ewxCkjOLW+x!;v%HD2q`W?ii?oqBBZzoDK0{ai;&_Xq__xAx&TkQ z08hHWeHwPa&P0J(?Q4shgl)bN;drr3^b@PZ3u2LYk)Ov{QSgo^6nl7o`DyX7_=G*5 z@$-@uu&!Xe`fc`DYluD0KFJpLczc3v+q}hO2kgoAJiD?z-(F$2v-9mY?ZNij_Cfm! z`;cAC|8XbHjyaW`fp&p2#0lB^ong+!_NUGz&P*rWneD81YB={g8=axf!_F>exbuSZ zo^z)2cW0l&TS-zlGo&M>bD4Cd&zU0wvXXO!tRky85m{X}aITikJYQbpJRz@@ zTb#G#lk!zrRlXtj$foiGep<_q8PyrQ?y;N0IRUWHqsG733s;%nFzN(RGA_u8#)kzLjT~rqtQr%QHdA#bWddgwy zSaqyCLG@96r}3ss;*ag z@&dI|t(I4)wQ8fBr#7nxWK=z-o|HGMZEBmmO}(q$m3itT^^v??9Z(143iY}AQm#}# zy7gqtZRj?UJKdIUOZl7|bc6DFw~gCHzTh6?4wP@YC%7lbz3wPCNA7b^c2AZcxu?6Q z%l+=%?tSuO_epoV{M>!p{Xl->e&>EKe|8VL2jxMZ>+{K9eRF+t zTn2OC8ki5)!gY`f3t%Cvg4M7F*20~z4p{vl?gmyIvED5#Sfww>?;yzUz`M0!!TYo1 zLkkPup%tv|6=b*(tnL*L0l6LoS%=8g5=Ik+(L-TDz6Ze?Ho+P;u@#;KR{IK8ABm@6 zJ3I|L;8}PMo(Il_ESL?K0?*C*8}RI`%i&763Lz0hPVcR&nQ!D?6oYvE2nHkc&}+dLne=VQMByWvH633y&M z&&z%dUI(6;{U*Ex@4&mT2i}AC;REsA$$b;;bY(#+n)l@+5Q~9fG^=I_!_=p zCiG&M0i56A{0`@IilKy+;tohq;D<_poJeFuA|n#{khP&M)Q5(EOh}%&3P5G30wdu` zR^ZSkF4u6m2bX(rxd)f)xd+M4!gKJ^o<7>ow;i5_9q=sBUj9>oXX~fk{j|BCHutXt z+T2fj2eceD{!7!)tM7vX*Z}v#M%VeE(ONHe};{dqItZ3q2|$V zDE#|tpZ}{iPm{lF9yG;YHqZYl?+VRh*32>6^RLuA|6W?>47{o%d0U5wn*U$bKJEX~ zK7VPSzhXPYQgm#m>`lWXy%T@>^Sk9jnYc{GoCG>>^Sk9jmttbw&~C#(a;Q|8e;LGCT)(LCnSJUl&* z=(b06+atQ|5#9EPZhJ(xJ)+wl(QS|Dwnuc^Bf9Mo-S(JA^O#5Tm`C%NNAs9R^N2Bd z#F#u{Odj)S9`k6P;4OaU(LCnSJe^sdc{GoCG@W6>^S&sqT2!>y3&=`oi?oXKNe&0}88vj@Ro7y@(Hw}ih-VHqq3KF{2m$K0A{-YUO? zzcE+^t6>eSg*yRx!T$R1YBG;`Igfcck9j$dc{z`HIgfcck9j$dc{z`HIgfcck9j$d zc{z`HIgfcck9j%Ieh=P<58&^x7xux2@Dc2Xj{%usUe2?T8|LLa=H)#5OZW=DhHpyq zoL$V{8NfA|oAa2PV=ajB7Cq+YJm%*-=I1=-=RD@;Jm%*-=I1=-=RD@;Jm%*-=I1=- z=RD@;Jm%*-=I1=-=S*%n>@QDMhAJ=;o+Mi=ZOa^;#~hu<9G%A;oyQ!V#~hu<9G%A; zoyQ!V#~hu<9G%A;oyQ!V#~hu<9G%A;oyQ!V#~hu<9G%A;oyQ!V#~hu<9G#ZI0qC89 zFbD?25Eu%_K?qKSac~lx4CCPxU5u_6peEFU+E54TLOrMt4WJ=3g2vDUG9e3^LNjO%EubZ|f*`bpHqaK@L3`)`9U&V! zL1*X!U7;IvhaS)qj)7iqEcAvx&=>lF{u#hk2Erg13`1Zj90wsd5yrtua59XCQ{YrM z4NiwMU;>;8ylI119>gmT;*|&S%7b|2LA>%HUU?9&Jcw5w#48Wtl?U<4gLvgZyz(Gk zIsPGB1Q){$xCCaxESL?K!euZAu7UY*EnEk@SB6&}#Fh)Inm&kk9>hBj;++Ta&VzX8LA>)I-gyx3JcxH5#5)h-od@yG zgLvmbyz?O5c@XbBh<6^uI}hTW2l38>c;`X9^B~@N5br#QcOJw$58|B%t)|cnnnMd{ z39TRqt)UIHg?7*$IzUIrhEC8Kx*3~c<<^j(a?>vZi9>hBj;++RAo-f{c5br#QmJi~M2kn6{2nNFt zSOQC787v2V>}`+-`EUosU=^%}HLw=$1Z1TAdrEjlXyhOsbr6p_h({g7qYmOx2l1$b zc+^2W>L4C<5RW>DM;*kY4&qS<@u-7%)ImJzARcuPk2;7)9YiAs?GNE2*bg5A&l!(8 zX!ES`sDpUaK|Jap9(53pI*3OdbSCo6G8glA2J903@v4J()j_=KAoH(5G;$D+I*3Od z#G?-4Q3quuKxXi$gLu?IJnA4Gbr6p_h({g7qYmOx2l1$bXyPE=bP#Vki1rPtr1lNs zQ3vs;gLu?IJnA4Gbr6p_h({g7qYmOx2l1$bc+^2W>L4C<5RW>DM;*kY4&qS<@u-7% z)ImJzARcuPk2;7)9mJ#7@^CzF8`B@}oq_j}j$6N|gL4QSzfi$&V5xKT4GRC{gmGM9Gg5B|l1({3ucK zqeRJ%5+y%Ml>8`B@}oq_j}j$6N|gL4QSzfi$&V5xKT4GRC{gmGM9Gg5B|l1({3ucK zqeRJ%5+y%Ml>8`B@}oq_j}j$6N|gL4QSzfiEe|e&i(v*_0yE(X_(!u--pOay!Ci1S ztcQExUbqhmU<2F_8(|Y{h6mt5cnBVbN8nL-40!+D;{A7v_unnvf48>6lTZZP;3?P+ zPs0x0yxs}VBr@%~MC2i^Z0!v^iEQ956E8GUO zCGRvw`9>rvI>FRKjx@}OwuJ544162#ugI zG=WUWf~L?6nnMd{39TRqt)UIHg?7*$IzUIrhEC8KxAN8zmr9NCyV?}Rxyy@$s)g#MSdrn91%A8 zoopM(?_`tT$yVTk56JIilLNyh2Zl`!44WJnHaReCB*rGclU*Is0m-q+?_?u6Hu;@w zq=$FWBR0}wBRzHlKzeL)JlW)UvXLS?lQnHw&=kl?WAh!Cb_-|;tsn@kp$)W!cF-O= zKu6#k+U-uz8M;7M=my=P2lRwvpcfnqy`c~E1@Zve$3X~=hhcC642Kag5=H?za%{fg z+8zUA;Y1h*C&9@u9!`N%;WRiM&VUIJhO=NIOoGY4yZQDxKn_CtJeUGg;e5CNrU5zd z>K93O9{`yl{nPzfqS6{rf;pgN>O2Gjtww^IvhLmj9K z^`Jg9fQHZr8bcF6E*#{-K`tER!a*(^&!CG>#mK>}l2W!be z<2hJM4%U)`wdCxIzwGQ`q@s>|6Qd`opQL`0`bp|1sh^~NlKM&NC#j#LevL;n6 zq<)h6N$Mx5pQL`0`bp$gBDWH`mB_8^2mN6X42B_qEX(5{1joZLI01&k2p9>YAO}Xn z7&sp;fN3xtE(8xQf{S4WAa4?RlgOJy-X!uSkvECFN#so;ZxVTv$e5fD*FqlL4l5xa z?tmDqg4M7F*20~z4(@`xVLjXf_riTp02||SMzoh1(N1SX+s}yhx~e03GOE4JsJ5R`?RC{qNJXw?)tI~#*^F!_ zm|R#Mxv)HPVa3RW6(bi`><^jJuIDp1fX=-*#Pp$29QTKfIPAR^k8A*WWCO?}8$ce}0P@HNkViIv zJhB1gkqsb^Yyf#=1IQyAKpxou^2i2|M>c>wvH|3g4Iqzf0C{8s$Ris-9@zl$$Oe!{ zHh?^`0pyVlAdhSSd1M2~BO5>-*#Pp$29QTKfIPAR^k8A*WWCO?}8$h1V6^&>z2serubjBb2;sORU|`FVB$p1VCq*omiw0}>Rt-~&GdAPp)(WvBvGp&C?& zbjW}jP!noFZKwlvp&rzS2G9^1L1SnFnUDodp&2xX7SIw}K@eI)8)ysdpgnYej*tzV zpfhxVuFws-Ll5W)$3QPQ7J5S;=nMUzKMWvlH4p~DU>E{J;W*Gg$0zdfH}k~_FdRm} zNEih$pNP&M%_QL_*cgAh@(5K*%bQL_+Hvk+0U5K*%bQL_+H zvqy=Vg@~GktOn2!8bM=d0-2BnO`%!*L#sJ|TR=-_1wm*HZJ=%94WectqGlnYW+9?x zA);m>qGlnYW+9?xA);m>qGlnYW+9?xA);m>qGlnYW+9?xA);m>t1t9}{)v2I7x~04 z@`+vK6T8SKc9Bo)BA?hrKCz2@Vi)>{7oMLw~Md}0^*#4hrQ zUE~wH$R~D@PwXO}*hN0Ei+o}i`NS^riCyFqyT~VYkx%R*pV&n{v5S0S7x~04@`+vK z6T8SKc9Bo)BA?hrKCz2@YYI$-^Wg%R2Gij}@Zci27-qmFFcW5RZ?ge;CK?zb8W^&W zX`+E4;u`tZmHfR5B5*a#g?WI?6A=s%5eyL#3=t6w5fKa#5e!+#y>$aDg2iwnMByg5 z8E%0kuoRZTa<~<46TPiGxE)r&O2~&hAO@>oHLQWPaA)EGF_Z(uP!147IY12M05OyU z#83_pLpeYUC7 zUVz>3BD|FN(RvwPfmh)*cpctI?BUIoJ>)6dL!Pod)6dW9@}~@F9EzpTcMGC441%Szp69@GX1?-@^~^Bm4wE!!M#2k=l?w00zP!7z{&z z=Ru@4M5H!Eq&7sPHbkU0M5H!Eq&7sPHbkU0M5H!Eq&7sPHe{~_bQF==5UV#sL})`q zXhTG3LquppL})`qXhTG3LquppL})`qXhTG3LquppL})`qXhTG3LquppL})`qXhTG3 zL&S|jL})`qXhTG3L-v077|=6BXhTG3LquppL})`qXhTG3LquppL})`qXG271L*!(8 zn&@nZ=xm5sO1{IniKA>GN*f|d8zN8Jk3?!iQi1|sBA;k&h`eokh_U1owGGM2qBoJ- zkWA+?NNlZipyuh$wD|I7~iqm@Tq7$Dy0#!y;2sH)0C; z#1!(0DdZF74H4xH5#W5J#A!r~L&P7psL|FGH3r67J=KXYEtxn{R@f;TBjTdaI@EUk*f#6;WfA$2O5;MdVl!ZB|5& z)hfzX!&)G6uZY~MyV$-PHgc~|iV)H3kXv9)aW}yIu#w31CU~0d9k3Ig;s0Imb|RnH zNIuc-5Yg@s(e4n@?vTs#bH5Y4-Gd@T#5?3$kjN+M9U|%-@~vn4UeTLxW$EqP!1n!# zJ-&_bc;ZLj7TC@)Ps0w_$^K_JZWrax@;|amggiuqJVY#I3wiZ^B%ZQ`XnBZed5CCv zh}g;&Vk=w7vG*g9^AM5q5V`h#BzhhqdLAO@-j9D-dw*GbSaC;h?QQwX+GEs5bN*%R zVQKwk?fqr#{blX_W$pcC?fsvy_Jl32hUG$tRpJ@3j7Z66;t4BYj}af(C-M^{v*$^6 zYm?ivjUBenvOAgFo?Xc8`KvwFqtA%$}{**ksCdh&LrIU7vg&W+^l%y2fznq=>MP&Ss0oh{_)97Oicp>nA6 zcX@%l!r3dYCZFf`GFLw2{45`lg|fNaLMG3k+(#zQ6XYjk^2{NR=Qrff6lCliZ!&hC zrtnC}oSC6&$g@-(a&=B3CubirWa@037m|&0p!C#WvT_F$=(1HTjTwgDjm})O+eZ`IP!V zeJHo9kJTq~7r8pWkk6~H)K_x1$=LZK89N)xAKffBOa9_EbDPP7CVS_vZfo*({-*PG zD&^+5IjWk@*r}@PT%9Ui=jv3ob*@g;KKm&)LD`=gcNQ=VPj~$R@^khx`8oTW{G5YK ze$K%rKj#pWpL3{R=jRNW{G4RxBtPeHlb>^h$_x z(ZK3X)XuW{TQh~UW)aP@tShW5*uIhom1Qj?=2X+Vm8g?t-9{{_inYUfMl`f`Suctv z)=SpwqK5T`^^vG-eQJHi?=P({`TZ3UlzP@dyN>YLby+pz*!AotY-ieig>CmEwqn@> zh^AQfP1-fBO| z@kOk~$*{NC+t~Y*{S@2V?d|N{X+O*F=ZM5u_N(@*qLKX?5g3ci!f*4bcZjT5_5u3< z+n*3YvFvYIujAO?+dojxA6c8@kbAh8GnBCQ#&LX3FJU{!vfjpV1~>!R9>lsEhkV4x z@%sd4BEKg&7m0M|V&X6sxryhBG-sZ(M);kz&RP*b-`&OUyPfr-vCdY^?@i8wqLK5E z^9<#?SXZaegD1O{V>x@AJ)#eK@jW4(4~XViT0e?@=*L5%p;Jsu$I@C- z)Idurwq5CpPSPiRLP|f89Sgk~5S3+`OrxX{@f}N6Cc;w%9a^33bfP>}WCk%F3w>IX z?OMcmELlg^;XHMT^;oi=tjA~T6YsHPL!v#F*1424lg&g!^lEcH)k3xqwrol4$C9mN zf3^p(9>aZI5s6lwBt`M79_W`9C7B5U*0l<$x`M3&qs zcTxT<>tG!DihPBVSLLgm^ELT8N4~+j7)QP(-w{6fF6&|(`M!LgW61R^G8iHD@!1bq zC*#QdtdwyWF+LXQ@&K!49CAQ^#(BPwUvTv=<(GVle9+YGYvNrs8Be|uwjNQKMI;Bb zuozLQ@S9A~qP41~s)-(|I#I7Nj4>HP=Z3B!x{w>XHhb$6?P{$Ws0JLMGHo<>o`NM;+r)X&#o6;)k3vUbW=B|8`xf?7O@>A z%2r)1QA;^;nOerRmaFA#-%6ydy2?{|Y_BB3R$Z-9tJz+o)^N;PwU+HWiLzB!cd5JC zzDM0lWbi&!Alj-8Y6HjIukL3icca=!%Wqbj*?vGhz%h@h$2g`?J;C-?wUst}lIWbp z*!isJubxw^6;;ox-J-dAQN1VzsF&1BY`?5tru-H43Ngu7)vMw-^_pU}t$Itn#oj$? z5AjIGS}}^T_5)&ue^-AOW7S@@SDdK!seP2}SNp~BI$yRJtv*qoh(YRW^|ctL$6(>= zF__<(ZYJ@)rfyS_qeo&fQ0LC3oH1C`*JCihR}n|FTr#nXs_sVOht=Ju-JNVdL)@@B z27Y6IJx6EG#`L^P5pwNS!rX^wr}rCFILy$p-nd*(P5$d&!qAs`xhe zHn2_BY*AT{$D#(~G2@hPr*9|a&k#GT;@johMftPD4lO-43rCO5!uDtSvqTnSa|e;; z@5rhxM~~3_CWE#J=nc1l+GSFm>_aY@U6hyMqq}ez-KR3T_hxk0Z!GxC z7@xryKbp5H#_%HixqBx!HGnj#`#|-Rc965)XP#+`zLeYisewk>-n7-RBCF?G0E89<6 z+u45FVrJgh1Z|8>(AL-ljj##6#8%LDKyzaUSjG!EQStP49`*iJXS(eV9Pb=Y$uMUa+uFjYW-N@_#=^+Z-+q9tFw2?6F|(c7Y+veJ%9$_2 z@(38q!!edeRbzQnHI_$fV|lbTmPZiFgC4?nCOjglI*&S!QlH1LMXDNGq`k34s$z@0 zBM z>m;MpF3}cAl~RkOI`&7>@~~xXtPMNG+Bn|W8N=}Hnu?Cb+GvBd(UN1dg;CvD7#YUG z7;7wy5!(L~eq&qIG`7Vb?TPWmo=7+LL{%(_M?`J;D3(Ohh6u{7a;rESOM($X7P0C! zAh*eFqN#j}mAAIsj&0Et+hQkspTWWiU|~GV_H(Sm4anzNiEGIhSc@BwyIGCfQohJ~ zTuZ*hirj#F8C%3Mwn)nqTO^1r@&7ZTU9a??@~^zI$R1+wWnQWE;DrGIq&_ zY=4ABVjGLZ!i)Wcl27HQ*j1llm-yx9@^e0=trNeoOR5^Xq@l4(YGIcM(M(xbCv}Z= zQrlQ38OAy})>tP4jdgOSu}(S~>!c5Ua2;`~s;lZU((_#j*d^LV8E9;jj>bmmV{DW& zjEyqR*eKnNjndQDDBX>X($m-|-HnaXQ~S_ZIeeo9zxhTBervl#8M~y0_MsV}wMA0H z*djxWEz;ZAB3+FwGQ`*-y^Sq0*w`YyjV;nk`_@<|e8&a9wMA0HSR`GIMbgh$B>jy= z($82V{f$LZ$5Tp#C+v@RL}&et9O4vXe@rm;$53N`Of>e#Bx8RJRUfJk#bjatAB(e$71G35 zA)|>0d@fE`U#Krc6CD*0Cm&{!5EUS+ytYMhbW}i`MpU4+=$m4fG%ePr`+vqC+!mA1j1)*k-EkfscUQz>AS&qgUHZv0#V7>B^jl5NrgpH z$=D)Q^f!12<$KKcnCNKil1A7ij8?uKSSPKFbyC+@CzXtK(g^G1S@u4MjnY`h5`;}G z;Va?yeeJ`?GgeD2W3|-M5e3mwM-=$2?G?+|D^-oXV!rW1)Jm~es+QU-+EO{jSR`$X zMbZX~<^3h znzEXeMAD|DMX(fn*bLP~4Iu`kXQf-er&(a=&xMCm60t>G`1|YMjCTC~#r#fg3!Bwx z!uPYEUz}N-m1XIlW>!{umR%#BjsMKJ7|$+AR4>^lLx&#qi-W>#SNv-n6EXSGv?=DJ zbue!Z`*@9}ExUE?-lcQxS~cCQlzx^vV+uN}C4qxfigIN0gT@Dlb1rJkKKbvg0etCtK4~%C9UxeyZi?gk^We%K zeO`k-?9ME6H~QA}y}7MAckkAsOS&pITn&f%4-&urA;YjI!%5C@ri{D+Jc64>8DLaqmNDvVEM7-rGeGoacq2# z(H%}%O#+KczSn0?1WkF_(Z0aa_~l5dOw>-6n{JgZ8vd?Zb*qt8%W`T}wSBF+ckj{d zhP4~#QaX(rkqUX>bkYP!vucCec@b!)ZKO02QnrE_xJj82%gjI z!ege;aCawbRop)`!DCRon0uCN=|Myc zK+_v_U#jrkhl`(z|K{{7o_GYsACNyCO!NO-TyZO9m-jCzlb}HCmQ)EkOwQ8&qsmV~ z9-Y$uJU*pAw+bvEb}K}=1eP3eZTy=9VE_E}$rL>}?erIJa**Dl}RO6%0*wYB(^ zm+OJ1;=D$T_}q(ne_$Lf&^q;ViMz|o5C2^G13m1#rPm{>KPV}#h-LYZ^SgeKd;rOT zJ8d%~fH4PV=n=d8rvL1d%_ZA(rKo(ee4)F@h}!0Oz0`95L>Aj=(e2BfNBu&!;&{%9!5U9o7axj6 zFiD62{a92XQAS(Qjoy>h)OG9B%Iem#d-EtI9FHfXc9+h5?H zuiHN|?jNY+M-Tjbl@o~HZOM+_S@#`Hm1)GqC9`y+AxOs?0h`HthH+i48`JcTWcg&i z*HSlnvRvB&$?~aImy~jC<0Q*HVpT^ven#2x`nu)kZ{?cn(mTy{bW@_zw;7e*x=f+} z=_9p$PCrW(KgAcP9_^!z7pM7uI_UN|n$|+Z=F=*VCPi#)R%3^;GoxEqo2Sdz-lBU3 zk2_Olq*u3PR@3G!?fKS2Rff%2eoFpVbFcYg#Ysq5_4o-H*M4aA+F@l__y1ZP&xwD( zIsW1oOYGgI0#@5M_E>F_61LcqNLaj0d~>!XsI>#8+xmgVG@w6Wh~`gH4e-^Kfttg&hoS-$!6%hI5doyO|iAFSMkf@`y-}^2$Ix$&J647KiW-4ug2qw!Hx=Ax0otRpV zPJA<|KT5pRa(A}vl$IABR=&Xfmg_r-Wu^ z=c%a8jMCcNubUy|uI9LBrJP^;XUX$i<-TbAv&|)!>Sil1pJ|P*IDe)0%F6v`D#rh^ z`${Q4O+AtDU`PdgM4be7V>;5uCM*T zzStgLvuX-VN2~FYJukZ+CNN|f0sDL_=oyDvyFe4 zEdO3?HU6PFf2GXw<9`qxjen?(k@}{i>f`Yb^>g4pOnuSio8!f9eWS~bao)_b%0)9P zU0qYsaKF93IHN*HD@^hVlMd-#O|{aJ(mf#M1a8`IE1U;01urNL>E2_V&Ek%;t9^mvcoE z)6E|K3p`c2=Pt8nd16l4Rs1cJdu;kOSIOV3ud;+Yas5k7y}mG?h$W_)Pn2qb@_SB- zg*J4} zoENnH)=;OfNi8+?_=`rhSrLEh%{Sw(ubfgeuZlI4!@iGS z@k+va%NqQvb)8jx@!5}-+?uo){cWg;Bid0HjBe}b>f>)y%sY5TT_<~4UY`B>KUS|m zcmE55x%Vd^~m+y<-T*UM|suA^q$c;brh7tH&5)w0(w8dLJMbAJ5odX>(N zf6_2j>>eq(EwvS=ZI7f|Lk~Ur`4tOFrLnJ(#tunobdI)4{=UUs8~sDI(jr+h@*k;M zV7L)Tyz)N^`>|?ie-h zo10QTK?NiUc(3e>@)N!7v<;PFqo$!{XKHna8{PjfcZGI**XkN>W zIVMbqx~)+@6lJCRul?nN_1xlgYg2qw@y+ha@4x?bQtFLzg3TqXOv}^|O|%EVz($-w z4{U@P=%X!CPN!bAHr5*!{j?x^LbW=_*XuW9*l&9)8gNpt-0QqSercUz`5KQpVOZ*Q z^bN!_0<{_SOB>YhxLcDqT=KC0t(0=xy(FGFFi&nzv^H|5b~x}5V@8d_TZv?*V{MwhR~r=AcPr_W=*XUcD` zqXX8ue15XrG4&7JX3D8g;GX1p?4UV5|6P5aEtFqx%(PWDtxSDlH|z4!E{2hoY?m`j z#s{*JpXc3p6Okovn`wvlOgpeYwH=7qO3cuT_9z*DSbMPF#YAL(X}hpLwO#c7fo6Yc z`>;Q?ee`~F{Xl6uu|Kt)^!{ti=S$nGWc*?6#eTKI>@RIM_NTU+-v5-@pKQO)#EnyW zIC1JC_8OPgrW4X*jbPi8;-iu-G7dQ=pmQVBw7NGVzFP2GrA){kHaW}ZPCn9HtY5rZ zHvL-m7taW3bpBT9GxW+1YT@(yo%^)(YLCg8WAvOU_r>FXC(BDB@nFdw=ede**prOnHOIT>#CsWQfT!<_PAQ)pe_xj;##3Ho28iVGQ{%JE@i+-`e%ffHafkR? z*T_9TQD{DKC!d&MRCw|e)8ZGIa%9MvV}_Ju`Ske5=1c=ip0ekc*VJ`qJ*TA+>9vy~ zmE_T0;(K$J-`8hGvOaNooRgJO|2gtnb9^4vK=yE9X?oUHe1xKkcQZfZoFA+3#|l#YT(lu-cmTI5$o&r3Fi6 zf+KgDBYBcC!}O~i7P==@uQ*?omJ=qb=tpe&j9%HniuRQLgM;x<@_6z~>hf~EqFyO2 z=P6NMu23tnE=PB1i@>rvXc35wl@^U?t+Op;CS1S4LdGXs(bB-Q41$RgljT*1 zu9jEDZ;Ov|Z@13YBaHr??4~>{^U*ZzXMV7ZGJkt-i^irkA zyT15Ax|o<;vPV~-{47y7TyeA!#pKz~NsKjup1i6y#FOQd6F;Yv>!4AxoHS=C@dmmR9tsj;`)^1wIh){etIIFEH8OVsg!!ovWKPAQ#%;R<2_8C^1C%%K3Prz zT3w#_Qa5=&C+HIj)UsfOYP9rFv zSw<22NAA-D4d-!Zm6qS4pBM3tGs-^Uzr}Qo&v>;%?^#?L37Ldhl^h&Cb0)Hf&hbd; zz4^x{&&5Jc{fTH|Wcj(SF5QEOvuAmN;U;-~U(9rb&v*gGbdY!Tz)QV+J4?$yGUd0G zmD5f~cn+rhj`-Z%Pm))*r8!Ujt@^qQrtUMQgM4P~H#LeSa>{CCTF})ko~#L1tdQsP z5)aZvEHQxOYB$qG^dcr>Gd07W>XBup*t>Ug$X&B3zVqeB;;(JAto!YL7Y@(4u$N!_ zcEQg0d-?OMDld$l(PzlD6S)8OCGN;?7I5+ z-~XQ+Lw%TjqH;2D(+;Ff<`DWr`wetKiR6EEHBx9*m)MZ&n3?jZ!vVQ&_jY= zhnkGS)6ULxzxWlUm^@s)qB}NuvGmiO9DlpCg*^SS^77fbTb3Q~$Hz$??>op_V5Yoe z+hNBqbVIs45!2<`A~46dA__}6*O?Z-AbFj5z0}V!9kR6ae1)my?gDoMpR@J+zuSu2 zadhBsKrO4(XL5EGpQZhoX{zm43Gu}typrS%Y9lH2L}f-2qEzHxLzR=IJ)8{F9Sg$=OEBD*}QHd30 z=Qq!o^ZeQWrBbHNRy^nd>E>4W-6h>ODSmzN{AxI3mphkWmT(V&-!Kz?JE;80v-&3K z0Dh@abG}tRVM4hUnWV8Z**c?4WPI8zDl4CD-%wUNj@Jq#dHf9VOId3icAj&DF(QpK zGRd@3@_3T3mY#pxVdr1y%SfJ|8MTz_(rM2uZN0+Oa(97`SUBDM(UKzHEwo0uo;UkL zIM_;QpbxE0r`@)7Qp-6l2ne4TaW|#5S87<;e@1HCm3rp7#j7WmUzvp&<(_%B)N81( ztXa$A-#ye~Y_rBAgHz^Ovr;cIX8VE3X_c&jKK~gL{o@b2NK$!}KGv~D9VJC|v$ZkZ znQ6_5kE&LDZG1uUc_u$v{#5nT>tST`@K$H!DlMOGot^TO^ixe9KTUj>QqH(jT0VvJ zDrTCEn7|`?1T^J(c^v0Ky~|cubkFctE{Ttbe;5BIKC-yj+H9p;)vO0f z;>Tb8`O1}_U!D9dg_+8(ST^ws)7zWgvD)P2#ov7Ao%ox1c~%>iq?ili*XawlHA^Y} zhDQd))rpB#TLzV*GAi%&X=DwVgH?j6ZCJ4YNc(w=O~it@=;eoDF4 zZOP-AB}ggPy(U>c&FY*|u6swae0r%dl{`N$0F;)WZ4a}nm)ED_{4@0V^)oDay1X}Z z{qz2SNVaOpYEQ*lDp$wRdem{41(dp7y^g2OhpUN@g0}aVt5#(EpwIc0pnqq z7Sqe2ljSUvCLmYVVwL_@UcSxuqCL2*+>9#8miKsNt^D|u^Q8N5c*~C0{$T0(pKu93 zl$V#+)4!GTw<|AadcO4dGhL#eM<_qdU70K|*`}Xh+3_r29-DGJ)9I!68}a>QJSTm> zjrFv7vfTHrUCAt~zFg}?J#AiE{+;M+rp-^Z0gH_8+n=jV& zF{89@AEwQXr0HeN74>?_jQWGkb4%?3spY9X<|XX`TFK*6@8cz7RV2&Lw-zOz1J_3x zlpkMlU9^?C?w~(hSGS+5?+-)sL)zgc9faZk`R2%TDhEp1OGDquG#Z7pOK||4w^m75h(bCEBu2f57x23B;(bDeU zf7|1Z`E#WxZ-{?t)xF{9G~!@dZzP^5ax_riQ!G(m*ZlvZ?K{AtJf8n=-}mml!wv|< z8W02%OH>4n1;sAd0I`dTfQo`3_6AWgDvH>z63x1Bm2nE_Z|C`RO^lu&f zFs!%EkM?=Ew2>Q%STC%z{uD{0J>Cbymw%Y6Bb8ELn?K<_|M&w}Yl~^U?MX#1mOPt# zD?RXUrwLrP!TuvNY27>!T<}FlGI5r2 zX!oeq?y6UP^{3Sev-GewOQc@Mk^EOoH`<=YF?B&ObNpnH~ZO^JgW|~ z51%jKo!d}at#X|CPh1xnNqmsmb9P=>28kqE9xYj7XNWNOFmMtZ5Q6X$7UL*34=h3i zWttTC?qWl8*aBXlMh(DQJ$jM+@Crju{fMP}yq|UBLm!M)-*~;~E9W0xyVRQSUV{vKe8_;*d|6;Ctl5V8zA15&< zdT|ni*8#G9kh>U7E_>jEsD!+3+=vKZRqMY>(utXdDwbtylqlY&hUIG^@RF~0*cTJl zOS!Z2)#c5R7J~$0!LMQgRMdIX(Ow9@rWuVsYQEIF`uL!C`fHEs z`JA=iH1hJ~K9*pWnFr4cYdt3silmd_q-6lE4z0J;K4g5N&9{_)ycRoQ^h z^q3x#+aRd9${ee%LcgBqx0Y>z)4>J0MI^BovBYWM?0a6HU9ieUzMJp8Z~2jZfkhs< z9*Z1fHgjKIQu%|m%DeCn!)4gne$-Cmv=oRgZTa3>WyQ;@vg)Nl!@(68V0Q #OJ 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ȇ@(g~$ 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 literal 0 HcmV?d00001 diff --git a/public/assets/fonts/Inter-SemiBold.ttf b/public/assets/fonts/Inter-SemiBold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ecc7041e23ed1a61574efe48e8bc42441a401d6e GIT binary patch literal 316220 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໐MeOJF$_=rRQC3g+_fc?OOqU^+t z)s^K{Q4**3C+!$g07Skt2KbK@xIgz`k$1YChNI#(LqBz}5uq6QcKvZ=;fz03{l87zJw5+VyTN zTr!Nn$XQ5Ey3HGPaiXVm6E{?CH)wvf_a4!@7Nlf5zuiCDJN?-`r{vi?3DG&P+sJMj ze36?Mb*}lo?M`qn-&YXKF}Bx=8ne&>5v+xFAB~vkcPYW>ZD!3mHOcEb&ZO)pNRpucWk0#iNhHn}+i!#OhhY3~TMlhm$`s+9BdM7ALl)4M;p_r6Uv zceVgr#wtjz-4AW=Tk6?MB(jq>TeXB;*~p}U+smgW-roje`GLfZoC<3TPtcGho*)RB zZkZobuVwc{&FZ**Z=Mqm=t;N7<%`o{*q6ra!i+`Oy(6=}C(&u@#EaErI)>#+fVZKA zYG&R*(}m<>o3?*ay^ygey!(tkPHdbyDL!r1f&opUA&F_uBYIDXKmknTmOSnw zm_qg@N2=V+`%IGo%~+^#;}S)i@wT`{k|E^)UIF_!L8&W+?^KgwV$*MWEOG4~i`st+ XAoM?!_kXr6`1*JMkL(JtH1>Z0nZfLI literal 0 HcmV?d00001 diff --git a/public/assets/images/tiptap-logo.png b/public/assets/images/tiptap-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1ea0908eaed3ca41837259ab6491164415b8ec75 GIT binary patch literal 7930 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 F{|77=Tw?$L literal 0 HcmV?d00001 diff --git a/public/favicon.png b/public/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..4ca504e94d1d14447bff097c490b71640d24d90c GIT binary patch literal 528 zcmV+r0`L8aP)kdg0000WV@Og>004R> z004l5008;`004mK004C`008P>0026e000+ooVrmw00002VoOIv0RM-N%)bBt0i8)i zK~zY`os~^X0#Ou(pQ|R}qRg_01ffM}i->~gb5r0V2wT=qsD4dBZG_sk3|dzRQ6{(v zQfX13QWR#b`{1<5@#~H?xA$yjF86)Txo2k10MadcQWR4aWmmcYamj_T+0wZvB@uFH zs&Gt-9IrqRQKnfTfQ=%^Vk=mU~Tl47K;>2+-m%-lO0at`k4kJuj2kcOAoVCEV4wyA6d`@rT788^l+C$9f02&re zR0VucLJVw*5FK?unJMlKGY@k`AJrx%jqPwp5-h+xL&ks*3-u!maLX-U26i_i_!^t& zW8Am~8UX;;JUcY?GgiN`=0T$E6tIg#Z64HK# zvTLHE$LJUuz|sjB+wVd#$!xj8>=opn-}`HB#v7%yNQ$1r}C$gQEv2H zj~tOAPX!1NVVYG2?TQ*jT$29xzcC|j@Jp{8$cwT0MfN3tU%}5qHJL|PCXjC!Bd`e> SF=Z|Q0000 JSX.Element + frontmatter?: PageFrontmatter + } + + return await createMetadata({ + title: pageMdx.frontmatter?.meta?.title ?? pageMdx.frontmatter?.title ?? '', + description: pageMdx.frontmatter?.meta?.description ?? pageMdx.frontmatter?.description ?? '', + category: pageMdx.frontmatter?.meta?.category, + ogTitle: pageMdx.frontmatter?.title ?? '', + canonicalPath, + }) +} + +export default async function MarkdownPage({ params }: Props) { + const directPath = `${params.markdownPath.join('/')}.mdx` + const indexPath = `${params.markdownPath.join('/')}/index.mdx` + + let sidebar: SidebarConfig | null = null + let steppedSegments = [] + + ;['', ...params.markdownPath].forEach((segment) => { + steppedSegments.push(segment) + + const filePath = path.join(process.cwd(), 'src/content', ...steppedSegments, 'sidebar.ts') + + const fileExists = fs.existsSync(filePath) + + if (fileExists) { + const isIndex = steppedSegments[steppedSegments.length - 1] === '' + const importPath = isIndex + ? 'sidebar' + : `${steppedSegments.filter((s) => s !== '').join('/')}/sidebar` + sidebar = require(`@/content/${importPath}`).sidebarConfig as SidebarConfig + } + }) + + const hasDirectMdx = fs.existsSync(path.join(process.cwd(), 'src/content', directPath)) + const hasIndexMdx = fs.existsSync(path.join(process.cwd(), 'src/content', indexPath)) + + if (!hasDirectMdx && !hasIndexMdx) { + // Return a 404 page if the markdown file doesn't exist + // give Next error page + notFound() + } + + const pageMdx = (await import(`@/content/${hasDirectMdx ? directPath : indexPath}`)) as { + default: () => JSX.Element + frontmatter?: PageFrontmatter + } + + const techArticleSchema = { + '@context': 'https://schema.org', + '@type': 'TechArticle', + headline: pageMdx.frontmatter?.meta?.title ?? pageMdx.frontmatter?.title ?? '', + description: pageMdx.frontmatter?.meta?.description ?? pageMdx.frontmatter?.description ?? '', + url: `${FULL_DOMAIN}${(hasDirectMdx ? directPath : indexPath).replace('.mdx', '').replace('index', '')}`, + datePublished: new Date(Date.now()).toISOString(), + dateModified: new Date(Date.now()).toISOString(), + publisher: { + '@type': 'Organization', + name: 'Tiptap', + url: 'https://tiptap.dev', + logo: { + '@type': 'ImageObject', + url: `${FULL_DOMAIN}assets/images/tiptap-logo.png`, + }, + }, + } + + return ( + <> + + + {sidebar ? : null} + + {pageMdx.frontmatter ? ( + + {sidebar ? : null} + {pageMdx.frontmatter?.title ? ( + {pageMdx.frontmatter.title} + ) : null} + {pageMdx.frontmatter?.tags ? ( + + ) : null} + {pageMdx.frontmatter.description ? ( + + ) : null} + + ) : null} +

{pageMdx.default()}
+ + {!pageMdx.frontmatter?.sidebars?.hideSecondary ? : null} + + + + ) +} diff --git a/src/app/[...markdownPath]/sidebars.ts b/src/app/[...markdownPath]/sidebars.ts new file mode 100644 index 0000000..41a5581 --- /dev/null +++ b/src/app/[...markdownPath]/sidebars.ts @@ -0,0 +1,13 @@ +import { sidebarConfig as collaborationSidebar } from '@/content/collaboration/sidebar' +import { sidebarConfig as commentsSidebar } from '@/content/comments/sidebar' +import { sidebarConfig as contentAiSidebar } from '@/content/content-ai/sidebar' +import { sidebarConfig as editorSidebar } from '@/content/editor/sidebar' +import { sidebarConfig as baseSidebar } from '@/content/sidebar' + +export const sidebars = { + default: baseSidebar, + editor: editorSidebar, + collaboration: collaborationSidebar, + 'content-ai': contentAiSidebar, + comments: commentsSidebar, +} diff --git a/src/app/api/og/route.tsx b/src/app/api/og/route.tsx new file mode 100644 index 0000000..fda4fee --- /dev/null +++ b/src/app/api/og/route.tsx @@ -0,0 +1,72 @@ +import { NextRequest } from 'next/server' +import { ImageResponse } from 'next/og' +import { TiptapLogoWithText } from '@/components/TiptapLogoWithText' +import { FULL_DOMAIN } from '@/utils/constants' + +export async function GET(req: NextRequest) { + const title = req.nextUrl.searchParams.get('title') ?? null + const category = req.nextUrl.searchParams.get('category') ?? null + + const fontBoldURL = new URL(`${FULL_DOMAIN}/assets/fonts/Inter-Bold.ttf`) + const fontBold = await fetch(fontBoldURL) + const fontBoldData = await fontBold.arrayBuffer() + + const fontSemiBoldURL = new URL(`${FULL_DOMAIN}/assets/fonts/Inter-SemiBold.ttf`) + const fontSemiBold = await fetch(fontSemiBoldURL) + const fontSemiBoldData = await fontSemiBold.arrayBuffer() + + return new ImageResponse( + ( +
+
+ +
+
+ {category ? ( +
{category}
+ ) : null} +
+ {title ?? 'Tiptap'} +
+
+
+ ), + { + width: 1200, + height: 630, + fonts: [ + { + data: fontBoldData, + name: 'Inter', + style: 'normal', + weight: 700, + }, + { + data: fontSemiBoldData, + name: 'Inter', + style: 'normal', + weight: 600, + }, + ], + }, + ) +} diff --git a/src/app/globals.css b/src/app/globals.css new file mode 100644 index 0000000..4274d26 --- /dev/null +++ b/src/app/globals.css @@ -0,0 +1,349 @@ +@tailwind base; +@tailwind components; +@tailwind utilities; + +:root { + @apply antialiased scroll-pt-32 xl:scroll-pt-20 scroll-smooth; +} + +::-webkit-scrollbar { + @apply w-1 h-1; +} + +::-webkit-scrollbar-track { + @apply bg-transparent rounded; +} + +*:hover::-webkit-scrollbar-thumb, +*:focus::-webkit-scrollbar-thumb { + @apply bg-opacity-10; + + &:hover { + @apply bg-opacity-20; + } + + &:active { + @apply bg-opacity-30; + } +} + +::-webkit-scrollbar-thumb { + @apply bg-black bg-opacity-0 rounded; +} + +body::-webkit-scrollbar { + @apply w-2 h-2 rounded-sm; +} + +body::-webkit-scrollbar-thumb { + @apply bg-opacity-10; + + &:hover { + @apply bg-opacity-30; + } + + &:active { + @apply bg-opacity-40; + } +} + +.markdown { + a { + @apply underline; + } + + a:has(code) { + @apply no-underline; + } +} + +.mdx-content { + > h1, + > h2, + > h3, + > h4, + > h5, + > h6, + > p, + > ul, + > li, + > ol, + > blockquote, + > pre, + > div:has(.hljs) + > div:has(.content-block) { + @apply max-w-[42rem]; + } + + code { + @apply bg-purple-50 text-purple-800 rounded-[6px] px-[0.4em] text-[0.9em] leading-[160%] box-decoration-clone; + } + + a:has(code):hover code { + @apply bg-purple-100; + } + + pre code { + @apply p-[inherit] text-sm bg-inherit text-inherit rounded-none my-8 max-h-[36rem]; + } + + table { + @apply w-full table-auto border-collapse; + + tr { + @apply bg-neutral-500 bg-opacity-0 transition-colors hover:bg-opacity-5; + } + + th, + td { + @apply text-left py-2.5 align-baseline; + + &:not(:first-child) { + @apply pl-5; + } + + &:not(:last-child) { + @apply pr-5; + } + } + + th { + @apply font-semibold leading-[125%] text-base border-b border-black; + } + + td { + @apply border-b border-grayAlpha-200 text-sm leading-[140%]; + } + } + + + > h1, + > blockquote h1 { + @apply text-[2.25rem] lg:text-[3.125rem] font-bold leading-none text-balance max-w-[18ch]; + + &:not(:last-child) { + @apply mb-4; + } + + &:not(:first-child) { + @apply mt-16; + } + } + + > h2, + > blockquote h2 { + @apply text-[1.875rem] font-bold leading-[120%] text-balance max-w-[32ch]; + + &:not(:last-child) { + @apply mb-6; + } + + &:not(:first-child) { + @apply mt-[4.5rem]; + } + } + + > h3, + > blockquote h3 { + @apply text-[1.375rem] font-bold leading-[120%] text-balance max-w-[40ch]; + + &:not(:last-child) { + @apply mb-5; + } + + &:not(:first-child) { + @apply mt-[3.5rem]; + } + } + + > h4, + > blockquote h4 { + @apply text-[1.125rem] font-bold leading-[120%] text-balance max-w-[40ch]; + + &:not(:last-child) { + @apply mb-5; + } + + &:not(:first-child) { + @apply mt-10; + } + } + + > h5, + > blockquote h5 { + @apply text-base font-bold leading-[120%] text-balance max-w-[40ch]; + + &:not(:last-child) { + @apply mb-5; + } + + &:not(:first-child) { + @apply mt-8; + } + } + + > h6, + > blockquote h6 { + @apply text-balance max-w-[40ch]; + } + + > p, + > blockquote p { + @apply text-lg; + + &.p-small { + @apply text-base; + } + + &:not(:last-child) { + @apply mb-5; + } + + &:not(:first-child) { + @apply mt-5; + } + } + + > p, + > ul, + > ol, + > blockquote, + > table td, + > div > table td { + a { + @apply border-b border-b-current hover:text-purple-500; + } + + a:has(code) { + @apply border-b-0; + } + } + + > ul, + > ul ul, + > ol ul { + list-style: none; + + > li { + position: relative; + + &:before { + @apply absolute left-[-1rem] top-[0.75rem] w-1.5 h-1.5 bg-purple-500 rounded-full; + content: ''; + } + } + } + + > ul { + @apply list-none pl-5 my-8; + + ul, ol { + @apply pl-5; + } + + li { + @apply text-lg; + + &:not(:last-child) { + @apply mb-1.5; + } + + &:not(:first-child) { + @apply mt-1.5; + } + } + } + + > ol, + > ol ol, + > ul ol { + counter-reset: list-counter; + + > li { + @apply pl-3; + position: relative; + counter-increment: list-counter; + + &:before { + @apply absolute left-[-1rem] top-[0.25rem] w-5 h-5 text-white bg-purple-500 rounded-full text-sm leading-none font-bold flex items-center justify-center; + content: counter(list-counter); + } + } + } + + > ol { + @apply list-none pl-5 my-8; + + ul, ol { + @apply pl-5; + } + + li { + @apply text-lg; + + &:not(:last-child) { + @apply mb-1.5; + } + + &:not(:first-child) { + @apply mt-1.5; + } + } + } + + kbd { + @apply inline-block font-mono border border-gray-300 rounded px-1.5 py-1 text-[0.8125rem] leading-[120%] text-grayAlpha-800; + } +} + +.hljs { + @apply text-code-text; + + .hljs-string { + @apply text-code-green; + } + + .hljs-attr { + @apply text-code-red; + } + + .hljs-name { + @apply text-code-red; + } + + .hljs-keyword { + @apply text-code-cyan; + } + + .hljs-title { + @apply text-code-text; + } + + .hljs-variable { + @apply text-code-blue; + } + + .hljs-comment { + @apply text-code-text text-opacity-40; + } + + .hljs-title.function_ { + @apply text-code-red; + } + + .hljs-selector-tag { + @apply text-code-red; + } + + .hljs-selector-class { + @apply text-code-orange; + } + + .hljs-attribute { + @apply text-code-cyan; + } + + .hljs-number { + @apply text-code-cyan; + } +} \ No newline at end of file diff --git a/src/app/layout.tsx b/src/app/layout.tsx new file mode 100644 index 0000000..c578c94 --- /dev/null +++ b/src/app/layout.tsx @@ -0,0 +1,107 @@ +import { Inter } from 'next/font/google' +import './globals.css' +import Script from 'next/script' +import { cn } from '@/utils' +import { Providers } from '@/components/Providers' +import { createMetadata } from '@/server/createMetadata' +import { Search } from '@/components/Search' +import { createCanonicalPath } from '@/server/createCanonicalPath' +import { FULL_DOMAIN, GTM_ID } from '@/utils/constants' + +const inter = Inter({ subsets: ['latin'] }) + +export async function getMetadata() { + return createMetadata({ + title: 'Tiptap Suite Documentation', + description: 'Documentation for Tiptap and all Tiptap products', + ogTitle: 'Tiptap Suite Documentation', + canonicalPath: createCanonicalPath([]), + }) +} + +const GTM_SCRIPT = `(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': +new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], +j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= +'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); +})(window,document,'script','dataLayer','${GTM_ID}');` + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode +}>) { + const organizationSchema = { + '@context': 'https://schema.org', + '@type': 'Organization', + url: 'https://tiptap.dev', + sameAs: [ + 'https://www.linkedin.com/company/tiptapdev/', + 'https://github.com/ueberdosis/tiptap', + 'https://discord.com/invite/WtJ49jGshW', + 'https://www.pinterest.co.uk/brand/', + 'https://twitter.com/tiptap_editor', + ], + image: `${FULL_DOMAIN}assets/images/example-image.jpg`, + logo: `${FULL_DOMAIN}assets/images/tiptap-logo.png`, + foundingDate: '2023', + name: 'Tiptap', + alternateName: 'Tiptap Editor', + legalName: 'Tiptap GmbH', + description: + 'A suite of open source content editing and real-time collaboration tools for developers building apps like Notion or Google Docs.', + address: { + '@type': 'PostalAddress', + streetAddress: 'Kurfürstenstraße 56', + addressLocality: 'Berlin', + addressCountry: 'DE', + addressRegion: 'Berlin', + postalCode: '10785', + }, + vatID: 'DE358781150', + email: 'humans@tiptap.dev', + telephone: '+49-30-85730603', + } + + return ( + + + + + + {GTM_ID ? ( + + ) : null} + + {children} + + + + {process.env.NEXT_PUBLIC_COOKIEBOT_ID ? ( + + ) : null} + {GTM_ID ? ( + + ) : null} + + + ) +} diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx new file mode 100644 index 0000000..9d5b356 --- /dev/null +++ b/src/app/not-found.tsx @@ -0,0 +1,38 @@ +import Link from 'next/link' +import { ArrowRightIcon } from 'lucide-react' +import type { Metadata } from 'next' +import { Layout } from '@/components/layouts/Layout' +import { Button } from '@/components/ui/Button' + +export const metadata: Metadata = { + title: 'Not found | Tiptap Documentation', +} + +export default async function NotFoundPage() { + return ( + <> + + + +
+
404
+

Phew, you found it.

+

+ You came here, looking for something, and all you get is our 404 page. The page you + are looking for is no longer here. Maybe it was never here in the first place. In any + case, we are sorry you were sent on this wild 🪿 goose chase. +

+
+ +
+
+
+
+ + ) +} diff --git a/src/app/page.tsx b/src/app/page.tsx new file mode 100644 index 0000000..4b6d22a --- /dev/null +++ b/src/app/page.tsx @@ -0,0 +1,82 @@ +import { Layout } from '@/components/layouts/Layout' +import { createMetadata } from '@/server/createMetadata' +import { PageFrontmatter } from '@/types' +import { PageHeader } from '@/components/PageHeader' +import { sidebarConfig } from '@/content/sidebar' +import { createCanonicalPath } from '@/server/createCanonicalPath' +import { FULL_DOMAIN } from '@/utils/constants' + +export async function generateMetadata() { + const pageMdx = (await import(`@/content/index.mdx`)) as { + default: () => JSX.Element + frontmatter?: PageFrontmatter + } + + const canonicalPath = createCanonicalPath([]) + + return await createMetadata({ + title: pageMdx.frontmatter?.meta?.title ?? pageMdx.frontmatter?.title ?? '', + description: pageMdx.frontmatter?.meta?.description ?? pageMdx.frontmatter?.description ?? '', + ogTitle: pageMdx.frontmatter?.title ?? '', + canonicalPath, + }) +} + +export default async function HomePage() { + const pageMdx = (await import(`@/content/index.mdx`)) as { + default: () => JSX.Element + frontmatter?: PageFrontmatter + } + + const techArticleSchema = { + '@context': 'https://schema.org', + '@type': 'TechArticle', + headline: pageMdx.frontmatter?.meta?.title ?? pageMdx.frontmatter?.title ?? '', + description: pageMdx.frontmatter?.meta?.description ?? pageMdx.frontmatter?.description ?? '', + url: FULL_DOMAIN, + datePublished: new Date(Date.now()).toISOString(), + dateModified: new Date(Date.now()).toISOString(), + publisher: { + '@type': 'Organization', + name: 'Tiptap', + url: 'https://tiptap.dev', + logo: { + '@type': 'ImageObject', + url: `${FULL_DOMAIN}assets/images/tiptap-logo.png`, + }, + }, + } + + return ( + <> + + + + + {pageMdx.frontmatter ? ( + + {} + {pageMdx.frontmatter.title} + {pageMdx.frontmatter?.tags ? ( + + ) : null} + {pageMdx.frontmatter.description ? ( + + ) : null} + + ) : null} +
{pageMdx.default()}
+
+ +
+ + + ) +} diff --git a/src/app/sitemap.ts b/src/app/sitemap.ts new file mode 100644 index 0000000..ac1fcb3 --- /dev/null +++ b/src/app/sitemap.ts @@ -0,0 +1,25 @@ +import { MetadataRoute } from 'next' +import { getAllContentPaths } from '@/server/getAllContentPaths' +import { FULL_DOMAIN } from '@/utils/constants' + +export default async function sitemap(): Promise { + const paths = await getAllContentPaths({ withoutIndex: true }) + + const pathEntries = paths.map((path) => ({ + url: `${FULL_DOMAIN}${path}`, + lastModified: new Date(), + changeFrequency: 'monthly', + priority: 0.7, + })) as MetadataRoute.Sitemap + + return [ + // HOME ROUTE + { + url: `${FULL_DOMAIN}`, + lastModified: new Date(), + changeFrequency: 'monthly', + priority: 1, + }, + ...pathEntries, + ] +} diff --git a/src/assets/alpine.png b/src/assets/alpine.png new file mode 100644 index 0000000000000000000000000000000000000000..5aec55e0a9b87bc8d45801027d9530913402250f GIT binary patch literal 812 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 iqLueZ|63W>}(!H(H&39eD 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 CD?6zG literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/figure.jpg b/src/assets/card-covers/examples/figure.jpg new file mode 100644 index 0000000000000000000000000000000000000000..31fb7a3b4a3005acf0b6962636217b6bdcfa08de GIT binary patch literal 22394 zcmb5VbyOU|vp>27C%Ch?dvHi_cPD7j#TWPB!F6$WcL@%`-2*HdNFaEC;O=j8zrTC# zeSiGkIj`r;OifqKr>o}lRCm?%yso_d24E}7D#!xh-~a$P*amprf?H9Lk}^@(RFhRu zmiZ533;-(#oB)7>qr0o7oFtW=z5x~T@BiHKk7s7?=KSyce$`q6$${f&iqf^|2z|CGgq_!f8x|8)%@ z1we#HKtO;;gdGqO5s{G5QIKH;>+M@qbQ~;PTpTPM96UlYB0PK`0S*o^H8GH!oRX3f zkBEkjhJucaf|BAN2psHIWF%xv6ckJfd>nj=|KH`c4}gOLNA(5(4@U!dg98VT1NS-v zGXU@g9u8Li+t`1X2#5eAWE2=z6C3ab4*m^HcX$*;6eKiw0NfiK06Z==7XqS$1|E$W z61PiGA-?1sG6Ah-Vnbs;Asq<1Nkq?M?iyTF%)rYhC2hg4_0i2eB&p==oKaf`hDizs z)8PNrBHSBz00I&sGK~2F2k_<%0M;H70wMzZf9V8k5gvh>3s)l%Q9{$q1&@{|s9_FY zQmYUN`C}54hF1#Yx_S1x3P6X4gP8@70}ul|qu|5|iZ2^z0Zc>4N5Om3eRSgv724!o zty9VE^|Fa8Qe?(}1@%OhDPR}siH)q$u+J#E;JA2-lLP?mlPbsqn;OWn}W3Vr07 zGnTmSSEsHJ^2l!U(DjmSg3Jzg;x1)tIXTsz1?t*hD4jdOnBG2X;=DpxF`062#HDao*#BjOGN1a-8 zIA^ICL$(z;*CH;-qr#LYsJt9ZWGRgnj(Qt$Qke9+`B0$NXb%G=lQrR(cbEko9zzie zP2>9-S|W=AD~cDMela@#>RLdeDaLh$j=GhVXftI=^E9O=Lk79FkIlr0*n zUS5;z7tzv!+)yX=&uN#R90-azj2B916vM`HTcQn2N$JBi&Uwex0a_{7rDs35ScRPSsV-T4r7d;}NmJ-Q;(Cvo@00jrP;NG1nJ*791lZKbD9CRFT(6 zgV2^`L-lwQd>m~fYdnw~;=8qM;8>mD6&=0`haRPjmBdaR@mv=Z;rE$Qd6e3~YpVt| zA0KH7m*CQ=SAIl0PgsV=_AwwZUsrxbbd(QT$`B;jXrU(t0Vu!@z1&RkxwPUKC_i5& z_~5Bf<9C%bl5^syoR%^z6-X>`4&-OyHQ$in2~jMJ1??`X87Sgbna-7Q)$NtdB3DZC z;;Plki#4Vh0|`oHS2Zw0Jt~`-c6dtsZDaQ40xjuyhYoF{7^Qj@v&D&dHx&8A1T_hv z{Je{11xWIh&2V4(SL4gBYA&$dAr&bHFsnxW5#^)m@M7aqk>vVj;Z`XXck37>YMpb# z%<+Jz6%dARVwTF-bW2?1ti>+f?l>2930^hkMa2#ngkSpc_>jRPf~*jixKzeXy&+w% zrEk1hIqsP?Al_MrBO{z{msN =o8E@*g}wa>9cjd}C25yByB55cIDaZBuHvfvuX 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 z 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 BCvE@$ literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/forced-content-structure.jpg b/src/assets/card-covers/examples/forced-content-structure.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1f574bc9672f45dde977823025a948f3dd9e9f07 GIT binary patch literal 21503 zcmb5VbyQqW@Gm&HyF-uw!CeCchr!+5-JRg>gF|q4CwOpo9VAE~KyVN4JNf?Jp11qQ z+jF+(%$=Is)m_y!b3R>NRrmep`)>fIEKmjrfPw-5pdc^6`wrAk8F6tVWmP4hjJ)Lk zbc_KY4VDc6aBy^YRh1H>(ALqVK=}PXBmVW7n7KLs`}{vN$h>#U|7HgOz|8*#p8v1g zNahx9W)Ox;$eY>~A{?SDE`-Ll`X8F^A8qA%2KhvUygvZk0IC2ffY`tFL%u_rQxO30 z`4#|xN&MgUOfvz1wr~J|aP5EJqb>jdFv0+U*4h7k?|<9G*~Hc4zv*BhS7=L10N`&q z0Dz_g0N~640LXg(^+7KG2i+(jT^}HNIYC}l0DFK1fC3-`a0HkESRfP!fDOP7;CWvM zhy&nYU}0fl;2;+`I5>C&R73T?H!otD-K!AfwjE99q_>qv9l$4yD z9EX6Cnv#tA0~tBlze%7VLlNK+&=C>Q$#Ai7$^L)0_dWm?A`}HQ00xQ@0F4C&g9Y_I z1X%z88U_l|{_n*?z5<|N;o%SvA-%Gg0B9)a|8$2(gh7CV{8^!~05EXaAK76kMOAQ2 z=HWS9f(vo+sKiuF&5|1X@u|67-9n4MhZJoiAaaUJBwv1_;ZeWhhRj6*1(E#!k^}`2 z1q-nUq>~*B01XWV1rMoxKcBlBEGQ(@xJbm7hX->0tVk8Zbrd z6sPnac~3n{qPs2Ta=#5WKXR1zLE4o2f=$H`jZwy4l_?_auTuv8Mh~S8Tjqv)Wae=g zGm`lY%+%V>??4ZO5wLoUY@~Qbg12YkzTN_h-R74H%u3T4JC%rHJ(yhc_+*bNW6nPC zWDCmoA~iO7wLwZ!(nTbbc#jDRp%53c&on1x#>CJ z74zoXs$zW-+oyFfP0xTIH^~yB$z%W^yD8}!p=CyE;Be{G;SpH+W}!K;jk@n^81UPv zD3;J?o``%yYI4TkFj?77nYdCjNd@p>j)5M;!5PqIkE)B7ZW((p0nL*P z($iT~6OhglSPmLb!OA3z{ znzhQ9mGl#sAY1ZvF%gVYSw@|U{>tD0Fb4b6ExsH{>q-9vYeWPQQI^fY!ywoSWiK@C zW4ePXQjgTEp+^1Tw4*C%nc~xcQhjq!TtXW7h5Tr?NIx~%T?(=)7Hp-?t3zP3Mi@(_ zH=I-vAJr4RYD^_H*NB;+LTGH`m*S)=YzdDv1MuQB6rUDBH1#Yg+;N&&XkEt=PReIE z%21n)vFr;GbyhxEq1r>>7HL`)wQc3IgXP9}1U8MNjwf}^uOFotZ!U1*f|ZGicoxEf z9O4~(5bMi}n|a$4rUtXp&DW?i#&5H}p*9b}ETnK4dz4F4DQ__5_*Sko&+ScV!ou(` z32B2O#g+8~k)_iNy2?O=j9L`@5fi#!j!7Z~5cr$j{JvD604h`pv)pW+D`<>!Y0cz| zh?zphPK(5bvRZH)_m;p+QnRwEP4ravi*`YD6Pco0I#~`WuwOWe^ynYt7f}mP2h<-g z#Izas@lwi~#9cbnVG6Riu&QSrcT<=stHx;@fmwTO+lL^ zaF_2prKyZfAII9$u$a^xo5dg5q0?t~9nBz5U08noP3l1QH(a#hr&qC6Yu}oJFE`~< zgQ>1wmDF`rYsL758#!~u=d6fuBFtP)#a`sXY74cjkX8LSGnM6NmLr^Wo&`IuDI11Z z%k_t>=9}v(sM?86^L+YJVN3&)$64SSgMmp-IBquUIWpNdLw8O=+e{r1CQ56*kS-8D z?SXpzgeLEk>KxtN2PV4p$_sh9Z&)6yLc|J|mS|IY88LjcM8@PyPURyVP>uf{3(klae>U5yd^vFJQI`xwf~IUb#7%Tl`8yI}YfnN0f}%LW zm9>EigCPOq-G#!J^#enRVq!XiyCmuL*|CMVWX+G%j0^q@se_E?QVOzyTOKqUl-0Oh zeQpa#E;P}v>T~U&{LR%DdD2uVYrKj~$ApfEmw;(dp_KL4qHB#&Lz$taDx9@4G=(*$ zSny~%bNy8h(UmHKukX>ZHe0FVpIp?AIsM zmY5yc&BJs#(=*2Rh17_&hC4<3Xa#dOSx?RJzw0@;kMa!5_vG4FNcZ9zE2epZGC?m@ znTdLzc;9fxVXe^d5)W`l1s3!zT8)ndw_oVau289G8BVFXKdp+VEc)9dd)gvyNb{`- zcx6;EXwDn2KPopdazUluUx;x0p{*#Frk-j*TFf2B)+hTQ*tPAsA63{MH=KjUpwF6! z4`vzMRgei2Fw1g0Bq&9W@RgrfaG#>OSLQK}b@#{(NK3yU8PMxei`vm3sX-m`3n%QK z92;q#nwV>9ZE6wGal}{o#+ozyb<5XTD$#JuQSC_5jc_1u*P=H`aU;&`Nc|Nxr@jz0 z{HF=+OGPfYAfILF!2cw&yRF?j+5~58&7WbNXb^9CuZ~h!i^}FYW~(qI?S}oZi$#ZR zZ6?*T?w4KWiWUheS3T`T9SV(6^WXeMq12HPXRt%amGEEQQiSsHi6`O&iSOPKz+CRN zj9}NC1I3W8!8nrwJVVZ3>zCPC0lFHfcIcO@k`EcdN!|2@s0r@?)&dNzp>`I0S{{QZ zjWr%|@oShB6}&y&;mfhmp*^ZPpzuUAdkvS~8yL0Im8Vx$>z^3Ho3nIGOBj!8gmjU0 zH}1%b9;lxJSA1PBJmeE0``mq&oI_GCXh(8SL|=_W$c9^E?H!_{QUo+EPYVY*CBACK zvFC6o-9}%JZKn2vOtul9f%zLw|1&jof-ZOvUpy`H2SdM^u>|-OoHTBAaj?{eo zy6TJ3$VxyWD>M1|Y}h#m*9zX%pzVT?&$WT=o2etC4O8H|X~lOy#AX`3&ELO0ak##K z0c<7qHBc~e36WviuK#lcmDrWu+jKWw?QVvQsuDr#;NU;4%cm!vI91M=63dwq;%_v6 zR{Z7OT^qg3>FdS$==H}*w($%e2mAAw$urN&k*bg1MnW+h*#sLFt*mLHJercvRfJ$@ zovL?D-|U;-lg2wh+BrP2%RF>tAW$|NZ28BZs8z|HM>9GaqW+vmKE z42rCdm5DBkyKnIDNUqj>jI?aL(T7^`G8sKumF#Gf+v}f(Yx83 zt%WFGxlrl6e_XZC_Ad#=@Z+b@X5v@Xuq$zbCH=I9|9Yz5QjGh?b^{jzWrbU3A>!weU+)4&c4|MZU*{o4KX*ew{x)QIe6~6nk|_uSAl=$T&Ux zXOz%|;i4BuOR;mSmyn9A=?W3{_GC{pREV_0$l@X~68Ys+Gv2*>rQg0WZ$LBRp33*u z@`-4%+BwnStrkHw_W0w?UGJ6Owd^f}>j^}Q$4ZAWx84C55!*{Rk=qLkH&m(tzRMU^ zB7{zHC%N?k0;DY&ZyLuT9RosDoy_(NHm9uAj7TA|1)P?&n^;)tHPa8GH%F!PO&<{~ z-*9E8Jf>4ge=IV(#7-gKSomP zc%XJJRdR_x+<>ZdU5Nbn^7#u;#vBBY@qY!fE~h7=u|BAli}B)eQuGYAFs$>kQMv(h zkB0}w#L2^1rimlhorbk&zgFu{yPIPw4%lGubsq`3ml;^1V&;1$6)P{pnMf}>)e`S( zQLbj3$hG!aQj36PlL^PY6Btss(Ex-IiGG#Q?|_g|p(3srLvuPeBC}_H+qo; ze54Urmu=-2v0J+aM9Rv{oNp)-6HR1KHf>_uLXnw>V9s*vy1WwqHQ=r7Cz%o%C80 z4sq8T9Rt*=6}^47K{~eRhrZKwj=lH7n$QyILZEw(;Z5FT;N*?BtPEU=kpfX%JrLbbx=;}e-N>m6WyK|*n{My2%M7%kjVZ%6>=Wn4U()s{oHq1QqkNepc^L3ux0 z5=(FnPz^Bvbp7?}^K{F5(=SI9-|P!y1ngQgTAfY2xIE>B_6AsZRMLH%)HuQv%%hXmx~81)2A$=F z&Z(lWDZ>wd9D*tV#+4#F?c zqjHYb(LD`JlHHheL^;IY?*GnMK}gt6ZQ)hSp_z>V7%jX5OEH9T<|7mBuB`t(`33TDQLI5A^tUAgdR`iK6E*t=J{rIbqR04{gc7VOdnmrtM6_TTGx& zzXE*I$dSOwHVWrzw3u4Yt#U;}g{=uOzAKiZSUorH?z*6PLc3BQ+?Y{q zY5v2_X}Rntoy{NWkBPj3$CJ?2b=@|qh&c;NX_$K<5}_>$Ss?u1I51p(RddPx-^U&n z;HxPdI*P@lqr*?6r^R6i<5LF)*+YfgOQ6bixlOYww`{ZFP-Qmh&Kj_|N+^?hu9#4I~HH*tA@|9fq|urFrt;TCh{SIXY>>mD@+L>ZHi;X<~Uul zGSrwJa4jpZzwbOWLM{azo6MX>rpCh(l{lio%W)hqm$%q7f|%#TP^y(W-}0d#Q0?`^ zuzgvh zo1HAEI&?40Yw-msu$4~^4`l7lw=M@`fwrA!EMJLYI%6LgjH)iXj#1M zcz3o55{AAV8c^VZg)~=upP7-2)$medbEerem|ws^%;#x{8(gabi>XgzjzyAL*kt`{ z8lIBjJjFSrGL_s*C&o~Du5xC&O}dJeB6%0a2Hrv92)FoSajk9|r4BXP6!??EeT(H* zHxbaG;48ScANTzC_r@(3^=Svx%GsO3ALN?;#}R7Q&9@9?s$xbike z+Pp!ZMs{nz8qNg1F{iBaK7)K@Uozb+66mw!=bw`AP0{S?3}VsT7sB)OtKxz#mTQUU znyMx}R%XHtPh^03PsqulsNZ@$9euYl-T}z*#QXAPa`I@EI<7%PUpp0VP}Qx={GR7k ze%lJEy#u`C>AmA=SEraS!Ww;^TW&Ehp(Ig#t!HoRZXfDRXRw`3Mt|pf)%K!!2a;{d zceg!V7-e;L>^NQJ{oEyZh>g3ro2;(PfEojQ1ppp33r{uq{S)6(A9#BDiHe6_b6qm2qVP~kmN{WN5F2f&@>VGKF1=z`;U7RCfBjS+<;uo-V_ z%U(FB0&-6V-vOzI?*MVFr#4@^E18#^rzu}P)~Hzm3ezcs%o=f`LFL2^WvoR;tQ)+8 zXPsgG%N$|!8i&#m(^3CorCK){*{QR=7VkBGT-QNcrKvx~9iPuJF~fID0usXB0V8yE zzTy$h_`Rf$Bu1sqe+W4OXuCzp2=`Z-)q2r}hu;CcbJpiT!3c}XH*ozu$wDoA7t^{a z>lCnqM5)x}qf!)wIf7%0q>lTct<#{3OW?(gtw4S6|$;RwiH!#FT|H~S58=IBrKi2@xK z(XuplR0^XG4&Oa+lkQCgBH1N(na`fCFVt-chtIMS)IT^J>2r5w23yQME)|+NrTPDw zTHFfX-g)*Tjz1GD9FS*pNko9~gIr!dU(%o2JFWq>vYyJIRQD@`Z)Sz9y*?r- zU6k=&nd`ZYelPl)2IeFH->8#2%` zMCy2u8=EJQi|hMjGSoYu7T;Lirfnf9B*OBONEs7=lMp^FPlgkrAcmbUc)C}+)VQ$! zcL)hPnTn=%`Wn5IvFVq}P!?xe-t@&dT?}>;_7-*-C~d^N=2W!`8cL8kA-^Oej5u`? z^$Pnghe24Zzm#P`eq6*38hTm5Q~gOZ~08x;}MRmpc;1XZ`Iy}`*PGcHY|)Xr(_6v$%zC-{JbnCdb5-`uDxbx60r(Ao5)%^ zDlwa=gZw-M{M`99BG`K(T|~6y(HI^Rx)n^h*xkXVw$LJZH`oj-+g$dV3F-K0He00{ zrxlm*ksfE)6$WV{7|4E=j$wLNJZk5UD;p(VMH|D7&Rm|Pm70SGKoq_*?#<|?Pen*` z=L~t*>r>2ev2#v%68S$V|KLsFJCZf2OXys|{nGkH|1KF(LtGxEBZoC#Q$eYVj~^3lxTU4{PW| zBijKhJDTm27*4}Gjt0#`HZDZbs2B$CfHcduI|-_~rTfbzcypS}Z7cU^?-E+_p+ zBikLWG|xATxg<1U8wFvJUp4hPCVdA_WTtdVGPzF5R3NgLNQJe36Pu>lL z<=p?O>jCuB3zC-|jc}CgvmoYQ;kzfJ=9EHj101segvx#_#g%3ZogHY_P(c4cyRBy> ztEa(hBB$hXrGg(edlv3&pN{T}Co{WUQL6Q{yTBVyZ5^?sEL~6-b4lxE&#ZZo zV}*Nr2bdHmv<2_jtNW)b_CCg*XtL=`6F#$;fUj@^`A_84C~t?m*z1g^`skYhU(AX- z-S73t{XwR$QH;-98pdshwU+Jo=L%z?$&B35sN%;JEBC2jCpv=>o0vxDA1E$G&!KHT zDOd6v1c8b3!#ODUYUCE{1^-lo4f+IUs)cy~J5 z|I;m69|e!2JUn{qieNd;S2(sz?T!!Omk@)`ie=4i9+v<(w4hbG18v?cFjwZG)e)t4 zykZ+2CN^Gez~Nc)wk*NQ#eOefoH}6M->%sh3e(cB3al(~vXJz@c=s=btsYW_^}0vG zMeXWF7xv^i9 zQjrzy0>SUsBGPc2fOYrm7rElfyZP5^zZ28=o$y%y6fM$>ZzNG)=Na2r)l;DBCkloa zPGgvlgr}W|%C)3~U|SGHq9t9J1+mleH%tI+c15vfdQOu75(L~b#}{+&i)P#iIS<60 zc!H%kUTsrD7Jhh^n$BIp`=H-gn~$n3CnK2w#<}D!B#vbJ#YL(6mNR&;xk?#{Xg+m< zu_m$6i`#ruh?#8rKmuB6XMTZF?JXOqS&$vEDLs!Y6D6Kgh6Wu&O;McKX36&sXjC}EWU6y06 zpgRd?FeZZYHg)*l%3p13+krD4R3@9H{Z1KZVne;J43$oVc#|&io)hRJG)Yr|q#SNFJ3rGpSpP9e9fx?(ycq zYBk79(*4{6$PN5RlM1Z^JB=pO{=A1xwx3dp+$d!x z!e5Gn{pmWC{N(a|A^;j@H8W}S@E~4U?vc>CB;Z-{n>ms6<4rxv8mi<2BV8-5WxKoE zquD#)%zG=qlm=;s`u2~JY?&aweB+uSP{4Vj{Np0ptdBq@ULm^2D|1=9`G^b9=}h=9 zYbl@0hT&S`=l1wK;wR;A5qmqmTZgo+Xy41=oq2Gu)PrC$bwxHtmWFc7Z~=|G-0uK1 ze+D6eX!iW(la(ZoCv~F;i=ECF!gJ;g${O`>}A)6R$wUUnCW!Ze!_Yj7)O9i8PVY8LzHCkxBQM_8 z@6kCJ0u3?Gd%p^uP`7`Y*d^?2BYx0_-?{`ZRYOw1Q(<5I&+wtYZ;BLJ!(qB>`0ahe~AX!$o4^@Aau>+>+nf< zE+>UVeiSo_SK0C|(j?lB$R}24(6hC+WP`Exs}z}AP>`t(D5<3S z^|X?97LhmWBIZFPyxHQ<`nY}GOF4g}7)E-$I0lN;t(j8X72w+CrnR(TpUZKH$$Q?^ebZfw#szF1&>){cx6X0vxh#;DWcBY{9-jsfBhU z%%Vh=<|kVm1BR$o6hYEy4IV+(gO~+arMSb^k0$z2b)H`n(wH_{tB_0BuB#acK^&oN zx+LMs*Lrhr`s-SUGNhkAySKT(S5Yc1erHKV#Yy|}yu{|J&68g$`$HQFjd5;Rlg`{A zWN%Di)^IUm40ljQNZr8|`Yqvbp|0I?-t}d_8n26v^4Jl_c{GhaB$B?@Y^`>kxil2P zC>OfJilM8p$5#WJu#?$FYNsx;Cabx_e~yxuVxzBwl|Ks1vR|p*?#T>i>R!Go%4JNE zLmO#{lg*RzG}5N)pE5K-5}*_Fw*fwmrk~h%>zw;=)j7CMA}y+9n*4ckL(Je_<66ch zmx1H^);JMK^QZ{ z^?U(>Ph{_6K>-+H-(UFQd`mmx8?jCdKXsX5>lHt(JlP!?5IS4s@Dwr_o{q{{!3`oM zH0_~1om!n}+>;U0J~apT?(o*S1^VsS&fjGSZy3p%nYE`7T|q*aMzRYF#~sfNxtzw{ z25od3Oi9nc+cH!FM60nJ7Ghe+G^P+m7cZ zQoeq+jS9W63-YMVW~X42J_1K{7<)g>+d2c6E>);6`sn!)J*iTp!)|UaYHzwv>J}wS z*Y_qH9!SC4AoKhtG0<$(+NBNylEkf zf1T*jc73VL;cZ^Ir^BeSfBwKXwl6gE^^oiEW1f0TNpg+@B|Bn-z6Wd2i?zE247qnf^ibFt(cmTr` zDwH-`ae3PQv5lqzp`EapjqE&`p&u5Sz~Q#a9qMmzw*+i8-HPqCPKE8bYRTC`X@hnU z|Cwy-s{GJ=XvT<9Epu>T)g-0FJPai;sf8InrR(-gG7A_Ya3VHr?cNsUzFadg(3)DB z=(T?)>CjRzTzD!2XbkeKXI$HbL}a`49md~o>m`k(Dg92S?&{wGqwV<*!kY|hM%R!C zoMbVW&vi^d9V`a_O2_HQTf`*KzB18K!^Qg<7I$v`!vSz(!8jOp{_})!W?3WMM{p@2 zUy+{w%~~=VdsJd46vQb*vZ7~i%O#{{3N3}*hwJtKFx-O5wVa7Kc{1fu1XGFI;6_+P zf!?$yi9G-JXrct@;q-Ye{ZBPX!qhL|(iiz6Tyd`g=fjxa7wksG)cR#k1Fe{onfVL` z2Osf&^Y?a9wQxM4$ZL2S&AtO<$DL1Mq{%e288{4CktZ_ ztJfzzEOFXy2*J_1>Z3{O^R5%W8YYslYf?j1sY$U>(+-=jg!QDbCU>tuw!PeVz`vL{ z^Z`Vf?LIz{Y0^OU+9p))DSr2g{RGJI6PE`A63fGao9cyIaasr+up#E^fS}U=#Z1{e$UI$ z#GWAyf_?0fyuKOk)fb+f-=zQfYuNt*p(DRne?y}Ss0Ux&(GPfA=>Psb$xcy##dXWlF;h@gtk@LPdoJeGl;ZLV|D?I&! zrU|o*463J%!1VtB6a(VpL*PYDs`^%-;haCM?=p=kGCULH2iY7nol%)EPVY3fvLHq)n_r_^+ zThlXTO3?mB_PeJrZyvi(V(Lk&p#+1?3vcgWvSOGQNn!0xd&v?j*hIGKWMJrRzT2jE z{)PGb`UkF|H_zMJn4zg=r8GinrGVS1Tb+(AO@|a{V?yHzp;3ynhuZq(g1&}6rCWox z7vOE}2{h75ds&1Xs34JFLFTy0t*2(4Hb*djKvVs)^XvgszZ_?*EkNy`z!@0xf*=7)ChR|2H=w=B=fj$Q1ZmSuw^O zy)uz>e0|+hGfk#yOepaVFw4I-TJB~c2-$vMAs=Y8*VD-$e_4)Vq+{VBwVlhA!MUzf z5|XJ(&3>B}=SU0zmfKPT;HWS7HT0=VhFEROwXlb5RP1p%Qz=h4Z;F<(FuGrCG{0v~ z1>l*qCQ+!aR`{jo1)W>hevedkhjEitH3)iL^t@G7?C>N#)CQroTH+p}NqRCN@!!Yj zurFiS#z=g2<*}-C_!2d%>A0Tl-c(=<5lTCrsvzs<-JiN zmrsm1ok39vQPgHSDk5cU0j=#GinuTreHImz=r}pQPJFgkH5!>e2;#I^C$5Ul%@f(! zWT|G7-Sr}O?2%U1WQ%vSU{zG9D(2E@gyh}GYF|r$X{ba)M2L^+q7iB&m6GwRy2jkFc6uU} zcFibD5bEf?X5Odp0~9CipPG7MRTfdXFUNC#iBR>HM|*ok*So^j!boAZwl*{d}Kk;nmi!UK+u?wosvJ1>u~wQHs@ab=?HS5kcH>w3(dtbF8)f{zGhp_HA{udLtI#rbgh>qjBq4 zs!mw$n+IPYjEY|=6bZ|X*-aEA4u2vsvk0HKagi~f+tvXmM(k{$|1BITgP z8l@a$Z4L^XO*2aafMzet=uzca`xL~iZHY#l@9Ng=2ogUNXPz9%67mpNpg4ocE+Gz5 zHZm%E=*mR)V7#e9*AT@P4HzLDX_{(&bJ=K*vgbq^#|$M|ly2%+_uD%ziN zVizy)5NuPM_V)d?t#yC@R52xwm>RuZU#?~IV`?>Onzfu+^S3j$&|GH>cqr5TNJ=!z z(lX5qG_+b=G_}V-gOYPzf9v#_r$Gsap$eNOZ+6mMv)siu@SRsQMfg!{(xv{XVtVSS zVLt!dk9;tAP|oX$e7T_Cxj@koAMqyy&h$=cEL`##ZBTHyy*@N9HA!j59Hf`?3LFn4 zv$di`WMT}Cleo3jV*l1QjT?-32dH%0%}G+g|GY25oT!73F;l!Hvi*k?i{Z{)yl4Xy zO@r(B$>zcDfN49~oT|C?QH4XiMf~th{&{FQ%n@3jKRG$MjTLrenpm_loXXk35~rS} zeQ59*W^7u*ILh{m{7YjEqBbZCUyi>eZ}a4tnUT!ZsZ$SONv2tARTw4D&@bD7vyiISX&l1`A(5q0j zk@UVgh&!4TjXR|ZSwh|kh&;wA#v+O;c(JXiXNGgInTa_6w}}z0K|uBVxu0;zqs(AG z*vTXyq-24X6Y|brK+f6Un%yigep?QcM_kj3WoE#(m4((7Pejy{ zrpwp4MzX6DjTmbH@Hr1-1Q1pXnzWQ(J>gqR#S?M49-(=*iEiJ{x z^prkgPIvnIDtvV84w10s`CB~e5K37l|I5u^QW4+;IGx;249A|5$?u3zzV*J>KnCN5hMjt%x znerRnPXsQHl0vB02htr7A|=Q8!{Qnd`gE2GpOoZgfV(pD;R))O`5}mWP zImpX!cGK*$MufhWe|fWy6H3y)n!&!uaXAIRy~<$~^KK`7;khY~b3<)EUiqA%_RMorXLPQw zNce!m{^6v48RTp)0gZu>-L^xQP%EY@NM891eih8a7qMaHe5H5xuTV1zk~j6X5L)W_ zuR?Mv4hP2q96tH&F7`xTo&-1Q15*kl$X+oiReUQ@toPg94rC(w4rrcD2i}zBc%fLq zUiswpkoagZw3E@UgyvrpEJqo8m)Shi-U%*0O?oqZT6!IfQOse&fMgHKZgg4IexSc0sI#9kk8ACky_DTl zwVlCZA|XU4`j`jG?tOzAE_eq(iZN9@AnBI=SYQtMEJU7E(cDw+d|R&4)=z`6w+`XG z)_hs6(M$V2GFIw~2S>9b{rnB>4geXx$T~z!?D+@nDd#|8EPoraSn=a~;5(pk2{jPW z{B5aX zDh`;0`hDrtQnK;>H1UKRg(-nQ0z(;lsVc4PJ493Qt5hI0E~@r(T)T^uMw_EbI)kRt|Y8tNQ%skd`9n@{-4FGSO72ib&d zTVfldbyaIOkI>RI{k<^sYH@8xz}Ev3Q9s7ir`8r^%*HSVRolSkzbo#Z4WB!m9)FyM2+@DESWGv9jPCg0iexj<# z8jqUmr^ZB2vnZblFS2kaWmt?7OprBKD6HCuG>WR$;)ep;!ctPa170gAdCTO15$C1R zMVjI3DlJT;@VyL8moer;){oUiG)7oAI3=2%bbZ+0rMl~G`l|ZXxp4TJ*Mgau`^^8K zT<|nti;Y? zqRi|4^>j)b-Xym)1wwm)nLG7H#dZiBp|eo)&p{O@qFZ zwXBGvE8;Z=oVvwEhqIO;=G3TMn!1b;t8g2W4D!#V`ZjRcnvUI-D+*1{a)0kY6*zqz zejy#|r_>n>^<-2SeJHFj=4%XLzyg0j&gB%*q@c5tOL*)-)LSYJvwO~o9 z(Yq@d9?j9LYCoh2vDi>eBukrftBAkh&0>EkvR!1GI&Ms-H7HB&mq>FEX2}Mp{r&in znsm*pLfT~7^ssrB1E15Ok z0fVupdo9RWDYs{Svg9wh?57d7T{qT*bRTmk*#n2)?PZ!q-(}d}0U1C1ZNDK51-?2# zhNkN(unN1|S!ue|(7Tbh$`OWc^Oj=oewN|*99M8QHX@V;!8I(3q`^aB1CJ;0nK5As zU^jg0ml2l7$XJ5q)=W<3xB-TqxpC`zcW<&1W;R6bfP?JOS~w|C#T z!6yoYLJYMC5m84FREFRw?SFWxH_{LdxY8-Vv!^=JWS?UCFg_euw&u^6`<#L&N);Xf zNm66EKP}~u;IQbO{`G}y9S7+NQpaAR3b~|RPRKMEc)dnw%};7QF9T7qS1Jb(d~?&h zL^YWg`F&%v0s#){zDE5RCA9MUmE}Ta{Dj4S+OCidtUwCpr{^Gr=%!{FKxYgb!GEyJ{JP)={jmlH)!?f z*PWI_(WABYYC?1>H%K;P?0ZF?2V?sZJ$YEqi6TF(!kv$RY7-vKbAkEpV)jX~DI zT5+Qkf?fqcHUM}ABvw!FsMeEqz{8DC@aNnTWybNln&8uWY^Y2~u&)mEUyg%%wVMJdgEEu&POyShKSW!^ zFh!o9R9C>J#Wj9X6*0KvLV_ZK!m~g%4-$*MEF(vypmNhe9E1%jjW8!ctFkUngFJ0B z7mT~;%sp9f#5D$tV7LAl2DK0_(MPhd2quIxrLW0V?i;dJTvRSI-=iwK0qlcKBq-vV zs2${^oBam18La^nJO^E>Sx8!}=~gAfY__g@Q$BXMoxvK=9D`oD)wi&)%;%rADHB)y zXkf?5&IF>8+;S#87Lt6{nWw(-DH*m{&y8tn;7>O7zZCISERW-_-lFmQ(bY9qTBixp z+DcRFxRR?7OX~7)Kv5s4b_7Rr;zpP_ZmU%B>~`}%L$}T^6Irq69^o(wT^~Ihe zo&EY)5ETx3bMMh=^vJkABJU{{YupEKi~84Pd#+{yJKXWyBY<&e!TqQE^8Idh>>oy& zn>gT{y)ypRv@>Fb=_-Gf@4J|?Q#fL5w%9C9@|W>#RKfZ-*d7UF$I}cIO-V!F4>^sX zv6`t69GwW7vZvSG;2_iJy-F*@&|WWP_#IoS)8nE#ug)=9b(4D>FR~gc`rx2y?anja zy30J7=}VYVMn?6ekVyGvlb$DQj!!y*Jl|+rzPU^?#VO;W?$wqeewYi zfdDkThA_WETbPBw5j5z--lufY>xywyrytdh!vzlFL`m5*Rm|(I!dD3ACG~MMYf%U; zl+ou_u2!;tlG$#+*}rrxHBd5*cqiyR|0cOHjxTU+mbQMB4K3X4C?n>^w{UKRf)oc; zaU|p2F2FiTx1!X*r7TWcw~DsI^=Ojw)yZU-xDKGFn%8MiZE|u|i*){Js}xXK3tI4T zud@mBh5}41jJlAhO@EL3YY}Fr^D~j+`7z5=hzs?>FC&>?QQ&!phzwC)!gO>Fp0 zbple|T{f&{q~ai8nJ@7{qVgE!+GiX7F;GPgU5kC)(=NYJ_ro%jY1`nzAow zl_IZ6VmPd1>Owp-UW0#B_TxnaJk-xc^AS;YH5oN%0eBJ-0DhNhoOExt_d6=hfM!w;Q?7kFbW2S3VrA2$

hNF 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 TTEH>B)JZB%xlh8K2+#l7R+(3h literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/generic-figure.jpg b/src/assets/card-covers/examples/generic-figure.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ceb56f97749fe30e7ecbe0e81c7e8c35f10c227 GIT binary patch literal 24321 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


@EUfwt?rpQ`|QQV6fxF)6FA8p^e~D7FBsO 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 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/iframe.jpg b/src/assets/card-covers/examples/iframe.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16a7d84fd4fb10d93432aaf16750dedadb31d809 GIT binary patch literal 21887 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
s)W*P%psSzUgfw!=85z1@ z7Tsmqx>DWSx9c3y zO2T`|OyUynTrXKE+Lu71JG)G4gp9lQp-P@a_5rEne0Z=Lgqf|KG`g!OKF_%8XAr}v zo^Vq!T?L;*q~N5wfTIL@A4N&QfMjdUGXIye4Zg#@*2Y!esd342rn4ILRjjq^x$gC; zyUG@)4W~oCr#_HBaFmKe{3jstSfm;AJ^45GO-F{0UUMnm&N8|_6!e#`8gCvH#rz2s z6Z(6)HY&ekS3M#e5;MuSe7#VWuMvbcU87w>!d>FQM$m~(%#<`|2y_nM z9UW7f&_586^0lvv7eRW9-b4ZAXtNNo*ietNwF3eR(P*QItosX5VTUo^;l>*jmzAMw0d#SlCM7x&1;@p=J&+#T3BXaTpZD zrIO4@M)?5)l}RWNee^(U3Tx4$QbV~hM-sNXE+HNdG`wBlG^WE7#6s2z5T!|)GY`h% z!U1LSqJ&`vfq}`wUnsej6VM{fIGx4F4KjI=D{tBWLl@;Aa1%-u!YwPX4b=4+oCM*) zn%Q*L^a=F2+W1um6V+&DT*l0i0B$Fb@%Tn{M?!$aOd6CqNJ)MsJzo+By~bub4|57& zBR3^c!h)BjE^mQH?Ut_@4_UjylZnv6+sn1o2#jSv#;D(DZOW{)rL$`N;6qEib{DKh zAutK=6X-Tm{Yh0kyLjDK`R9?H-j;Oc3P5E@r34%F%*S9OB z#Ggmr0kzXBVjYdfYvsaz7?Jgq5A9OAjfVQXo5zlzmYvR9_0?sCWF{4D_P{~783pZ@ zerv{P3NXjh>CRcAly-`AL;#O-1PbT`q$0pOP%qT7uW)iotzss z%f(6!)DGi8#Dxa5g98+QD>DY9T>T}Kpm@V>PRfj^xXJ|4jA$7S_<
OqkV%`5CI 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 CV+TV3 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/interactive-views.jpg b/src/assets/card-covers/examples/interactive-views.jpg new file mode 100644 index 0000000000000000000000000000000000000000..0cd276697aab04a69beb70445bd4c2d03cc798e4 GIT binary patch literal 23714 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 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/long-text.jpg b/src/assets/card-covers/examples/long-text.jpg new file mode 100644 index 0000000000000000000000000000000000000000..968bc9f1f664fce15e760a3524337a50dc5d2fe8 GIT binary patch literal 21944 zcmb5Vb#xsuvnSYQW@cuHIc8>NX6Be3Gcz;9%*-4+W{8;?V#f@LnPG0ew{PC;AG7DI z`rPhnl~h&Ix&2dhsrqB};}?J`D=8xhfPn!380Y{#_P|zU#Ker0Rh1-V*$ig{Q9pR|9B>5u1^21|Ca)id%yfoIshy%{a@Pre^tYoTezBm z8eD>YlrA9UAY(B>G^W*m(X{_))BmFR|IwaqPHvz!%KvB=byYDCZ4RPot^N<%^#7pE zoLv63j|H{icd&Q=r|Vz&XECCMqlOyj3JdxX0IuhZSHCSOBDe4B!Zu0n8wZ4PXIS0j`e?Kn#F_fP{pEfC8PM zprD{(5Mg0J1qA^C4iOCn9UTn?4GjaE5C;Pj9}5i)mkbx5h=_!Q1OtbhlAM^5keGz{ zpAaxmR~Tp*WLQ{aVoWql;{V^}qYprX1tSFqAi&50a5OLoG_a2$&;S5%2ry9j@4U4}R}B>a2Lp$I28V)yLWF?>KrC=H00Nzi6%q=XTto%Kgv~jqa1IljLewm& zAIr43aUO<}L)A4nq^N0NcMpe(ol`8inVL&Y-Q2~k*Fx2oMizR1usPVAd#d>jr?`Nhm zj1`_LF`P)#q;bLLZXS`J6=Hf&CDO6#;$PfK~j|ai0Gag2RRV?=%=}?s9 zoMs|Av0Yz?o>v4Z_X{Szsk7;0=Zv&ywLpkc%kB}CWtNHrnpBGH%JM9TXi~{gnIIQg zTSF5#IQ&R5MslsvRJODfxFwOX$rh|pVBxLm`hGY^&ZkOF-IJf#P_q1CFa z>t%14*Wz}+s3u0y$eftdNU`D$f=E%jUmhYWAr?RLXD;^m+ZaWaG!x5ilCu2M>a#C4F z-Z+WZCfI5@8?3nut-fLGf{{m;B!fG7#QwJ!2eZ$F)VEcL}N19T)P_+W< zH|orIY#%iw-A&DEa66^&nLH8v*?Mv;OCSs<*A5$Pf`gbS671sJqAfHjT*5$lF-DFQ zEdE`Yj;bW13b6(fEGH>h5_{o=d?aCK<(Z7AhCDvUAl|7RSEzt2T4J*AY5z;5#crXl zx=kADv6SvqkrY`@@s7Nqea4@X@XVYkR?2<%6P*^a5GI#mwTn_R`(iN#O+3Inda4i+ z8adUEv(#*e^Z;LlZoJuAWYjlIJF0>PF+NRFs$w3EO;7{7kO%P;ZdMs;MAWvJu9C!E zAC+PV&Q^qYJQ=wKjJ#St4qLb%gHuWtNK#&8ov(SW0I%|#F0tVJ>XKCeKS5TW zD;;M`L~aZ4%|d0Kh-tCc%J&z*W!NSvnwD1;F3i*d#?DYW`1$S_zyy^2@D+E`%O z6!I0)(5r_t1<}vmd}2P4uai8LmI_5OvBXc6P80IN0(9)uFuE<_oJa#5qeZzs3dn>K z#=`8mYP*rMZk$k~mnBge3*$DkP`3Lp%BylxxnfSgjgPqEzi6d_8Dqh7uq!hDIEBlk zp_^TzjgKL1;-gJ$q^=d;=yZ1(M7tPItr?eoIpyrbG?6Dg%bC(VhU8}}(u2E`UqmcG z6jgsZ6V;~Y#Y#zc6?5)Xhe*tJW38TX{GGx`UiFjOA&3g}U(7Aq9p^8LGz0?=yF02C zm?a2j-p>r0RZzoW3Z@vZnn-UA%43QXSMD%9NMI5CSy{&~&buyf03X6y@Kl%%E5NNtxQwaCth%1eTHIt|+GAuQLhgY-O zt{59cdVncw0~QK_zkqcc0^Mv{TrfgjRA+35CaZ-go?w8U#iMDjPM8^;l!K4%f}zai zU&W}7Ii;W1V-4N46jEb#BoX475^;d#KqLA4K;Dp^@7@r3e9s+YgM6C5`f>G;cN5hrQW z0y$}SpgtMAMpu7YC2hv#R1<-ld9t1S8>tzF^#o-}>Wj4rwU?F%(FyZ7VP5f$dP+k< z+)zlIbGuh`QKD%DdNJHy29CNLzi)gAa(-;`ET73_U5nhY2&{w+QWNlu$1iQv zy5b-H7E9O2dD`k^F?lT<_aFWMEVDQD2Hy#wwlT_I3G$o8=B$o))Zhi?f9~Poxy{I$ zLJc_QbivQ$G45WLYI#i)2?if=d;p*6F-G|LnVNEcVVlB)egMsCr@9e8VHSra6NWmN zv1zc0yfxOj#KdkOR#>sJ+ei302{$I-hEa=4g2fbPN!rGn1Y7NPA9-)@9*&;*RWlEVt6`33a+d7rYp_pe`zHptk=v^BSc z_IG>z8kl+{q-#gq9WY>ua$x@fJU#?iW(K%1qYuYik60OPuLM{&r%x@rsh;)smQ?7!zr`CBNVuq0;z@2xv)HQS&WU_0+6_ta_7nqW^VV_?QT+io0u z5c_rf0r-q&`~-=_eVgmxN0odES$P0;sqkUfo1JKS4eOc;%_Pn4oEdLocqw*rVt+FG z0BSw&Z39XSkw1W^1d#mIis%2`*oy{sf<7=1**)Xh^080 z4&>xta^6)E9c*a{`)VBWTFH{eQlYTseAg&;r6VUdpWSpCMW!XLnj=ed!eE?YT2ya< zi3=GTJi<`j&^1zMtT=&GZAd3$%8}?2*PuGbvo?qfIljA)az)Vnj9}(^fLX@moWxAX zdnAlY8NO(vAy$y|9y=joBt@SwO%0)SCLFIpfMDrckxIV>iA(gNvBX0Ehsv}OxXn(O zRHomBHsdMi5Z$ylBgq*?Z+Z;gnp_gVx_eqE%y8Rid#u}p1mvbggo)0Ex4uzLQ=7Cp zoS%KiO8DtvY&INn()&y3)h^aif9=uJ&Yfi#oP=}|^CixPi@?lkjmiFg8nP`2gE>&b z;R`a;<8`~tjTV!8R7SJTnui_q_Kf9L;hc(7(1V(J)mgrZuugEWRK-%Tbn={lneLv) zW0NQ%zH`nqK9xN^E(gYedaTaU9)%hQv!?9En15F`7=gjd!WZ+^-v^)N!QE7r5~_NT zLfp^43(TOs=Uq+J>!T07V;%h&*4+8#cai|dRAj+}M&08gPir=@K+pb}q>^OiZcmPo zIShApkT|JS&XEEcE}yp)YM<~sJob{eg3CPRvGeZuv1CzLmgu({(F%0S42N%-XzcSH zUxRO$_t)hQ)oJe&QO=4`x04gNmGzLPJ*Vc{9KME+Mm}EFf49mLyMX(AHXc_a{r zO+Fwqp9-f&M7zH``9hDY>_Q4AL1}Gc5h>_r9h6`t8%~dihJPf*nmWs9MGjU0OEX?V z>yjCas6rR0Kx+K3mP#5MEcB7B*|5bU%CVkhmhP^2dx_mkxy zRak-2i=1nD=Gk*=TOHGcoHH(G8xW2c%!_ZiVY$7!{~^qz)3 zw0}IE4VXhm(e+S3%yk_v$SlmNe(nw9qYl=8wo*oHW}y{{?F*)D#REYKv@mfiO4f2g zF8$4kyaX-{6Fr7%S)Lo%4LJrJcllZ=tj7RWENMj@K<=ej+(Va%Mfq%0_hXo1mYR_s z&xJxwvn}r|SW=;|dIVn*1@(>{LwrT$V*RtjKvW3tk~7})q$3{=cg~Po#h1;|y)tdT z#WH=SuxX5yS_w;rsod7()-AE3k}(%kHxBwoMV@ec3-RV(jRoXB!RwExQ|eo_n;JB zU)`M24BXsCq7|l%DUqe@YXE-LZ!!M(&q^raTsa3D&_=^YMn77KNonU@S+P=nYh7{M z*-;J|2a)8pmIJ%P75GaBMtxy769eRCwI)NIdo-m6^OM`LQn{4q7ol)8^0!rO(}>Jv zou6e$Ty}8?U!MB;HaC`y5RP z>RNw0M%aDZ@cN$h0a(yHmGy*#3QbTpu`xOIy}1Qmx}Fpi zkDOy~GaAdoMju+M;|gi`zuyfHReS)6ZQ&*vj3h_!f9=U8HzsYVyQirv9Hv@?2cU8B z-%KP)PDl5GE5=AYVF#%b`1}EzwJgkXm0TyM>sC0!r zt$-F5uHop?k%)b;G()uSag;@evz>Au`?xe-P~~4uZB+KsWY}c$Ib;LZ3KKEqKzUb< zO75VjQaExm1?$vg&T-H)h_q0ONAAKdr;K=XQKZR`$$O$a5Y9NqfZWnbniSb5V4d+7 z^xy`&V=4nP^xBSxaWaL-D6Ir=Z%V`Y^t7IwkJxnN}h& z?O){~Co3NgZ06v;cLqS{l=E<58Z`?UA&s zNIBTsmA~9yw-SyVxoi)?2*5V2+k1oWDigIR*MHG4YB?SbF^!X#@XIcq!-@ZcCG2v{ zR;nMC*IZb}MP{RohroUy{GgIQB$yJQ^;?%L7$I~h7_@$IIS_Od3`rQwJECf^gd88S z$_?OS@vOC+U={7-F|%+bnocUJ$g<({E>)^hB?~W3v8nI)XgWNrgqqI7r_K7r=KqBvDy_of#DTQh}e|eBksJqCpWkb8LL#D*` zj_A*J8O6wE__o%0;%D|;#ch|#lEuWrQED;(SR7vP&a$c`XWjhOui_sl{yePEvbpWs zA6G$4;=q1CxsvQhj(Kt%S$kz1+xP|UZgPQ1zXcAly9YA+&uHzflgidU#MmzyN(Z(4 z!i?9YiYsU~;Xz*a=&J{&SRm<`8 z2KjJ0E;Wf5w5nMhsQha~H{kLE=+V^{aEY^<+8X%$em|H=jF^9je>zon7poe7;dJy+ zAmG8BCz4eyx-g--4K89a_Ow)J_9fMuH>(~i=;seT8@{r~HMy^aUQTCq&PNzVd`n~O z0y6dGs1kUAVEFjw^JhJVOpaSY*S~}pRK!c-7*5`(v!bO+&!dlh%q~4&1D|YjDHU`Z zp+zF+e^luRL%G~ku%-oNa(=S+2YKCzB#d}+;_%)5)Rvs}mDkU`@PQNN0%=0>@Bd*k z=}(Rr*!J^=oYhx>Q^vCJDd2bgTF5TF$nW2|M!QaP+_UW;|4~Z;386&+JE7#Rv|tp{ zyALyNMNd}drM1*3pEc8>0yoTFE4T5F!60bS_05i8U}jA2+haJPP(qrYtPHONpg zqpa@W^FoaezhlvfyJCpArxqc`0u)bQ)x5zYx zc>`g%thUV@8TN8fny|OAXR11^h}w!elC4Y~c3%;8Ddxs4TV$h2yT(qXCl%e18mb(@ z_Ntx@$b+(PJ|BImuEnZuTPywZD1Pd+S5;>W{?bXA1orG*AsS0NG|e;7qP$6#g6Hoz zC#MQAh)Z-PK@3qG5}Q+w;^1M$taMRXE4C*EeLDHHEEW@JNWAX#)JZ9sbEbP{9uv6E zUA*>ua-&Y4fcCDYf8B+`tsmOl%KPHY81b~OAps~ z0+Z(Ejy6mMqrR0VKRBw^N#&^k1kK4*QqXPV~@FMibwVK5Qk zzENj}Z-bFP<=Kxo56&*~gYZ)Z0ESDb#$dFyAmBux+XtC*?98wXeE;V*Q=FuNgR+N4h;q)+&sjkK~W_$H{Td$7bE* z>_zOco%!q6CIl8-B!-qm6jjJa$i(JIrJggXIsDxnZP9OvnUqLY3 z#Q2_EPYF&5Vwy#M9-)1*I!@WuwcOpB;;~N=vIhAPt-BY~=DsOH2PD4@Pz;KXUlQ?> zhI|epgh`OL*nAf2-Iht8Pq3( zU+jm-JKi(pqe?mYmoPT2DgP-!tg@$`&fe>Q(ttSa-HWLYAoY#n)z;5PV(x*o;H#AP z1>eB%ZcCuy9N{lXQmdUbpS~za+&YDwrt=q~Mmvk9iWC;!d;_;>SFGQsG;sSa!6o#F zV33n@NHDpOl4|)X;)uC4ZSK?b$TEv(T0CbQbi81h4@)6=I;!Tg{m|B_(*{2CLyd6? z+JtkQBDUNb_cNSoB^tSpNO39@Cht$>`P08-Lw zNeU@KFilfT1UfS|un1bIE}fj3z8}&?flXJ?%zm8$Ii>0-zpZmijDuO;&FHG!*sjpv zkNA@oU)Q&z!;l_^pn&u_9izf)7$dThZMW>`n3|Egam!vJPeguzAGE}{D&-^X zB(v~Qz~3}3g%S8sEK|DmS;sjS$_A5dg8(AN;#PG3dMg>!#wAgigKc5|&^2Y`=T8ecuo>>w09xg^(AvInad#80-WXrj~|B8Dj3Wf;imt=~wWP zy(BQ&5azoZFG`?AC=l;wWF>Dm1mzm^*ELr?MGAS7jkWM&QdGo>yRl&4X6=sj_2ohx zzwIJZ9URVkg_*DTf6@H1D^zS0M)23+z<R74!I7aAk*jjZTr39&)LHgD;rqSybR#qH5yO04f0+P zqh6>cwhZw7uoXmI;*?cxNmo-DLGO)fs9xpl^FRE%C4Pt|T~8*gl@DZojqx?1I7sY) z3D1XLI?vfW>m8%r35$X}@u-504Dq zMI@g}Fe0s_An|y$W(1wTB)lGhz*OFla>tIf&0+;atK3RDy6@~``auvt^BhUC?83-C z?MxG0x)NA54=RPBUlBi};@HoC#H+ud<>z`nL6L}pbE4rdKt|wxW3SV=DIWT^$MV|z zX+LFG?Fjo38hH(bjjGQSLcD*ku}CD^p+c=R%Qa^4pJw+IF3GvNKY$daFg}YthvRRu zoD)UY(y6pXQVr^I=2o&70XqdMw^;P@7@>Z5#=`6#*KjlM)cP*g`vSTJ8B|z zEySU&K2`gQI`H!994rD9(@pxo;9>d@FmuBGo>Z*~KV(P5w=5Re`=@M}#3ti5&Vb}p z=|*b6!c1R*LO2+45m_YBtw57rI!Exi$tg2uG|fq;6ov=Yy;_Z&gUGg#mDiO>K{cEP zw%ojh*gKo;FP-# zfSBwptL`vnOoM(WT;`)jaRxg7m zEbB?IZMWx2MfT(WO-J(49{x)lbmjv~hVU5O)-*43ai#L1W8f!Y(7NmV&9*#ilaOVdttP4d>QU%dR&pJpQdZZbu- z;Y~<8>y~NiJyJk;WS!_RQ+MD*w3V!2!`*Y&`UN?A%!Qho91+o-a+@TK7@|?jMN<6{ zq%zCUE!83H9(o}U-87OmA63z;z;kXkA+D_Z+(&D;^8KEvT%Z)p{imYKj&lk1=~kgM zpP-qd$K#6N&JX)@0;OOsSFc4m!mq;lCUsVO)I*r(%2G-=uMFCIi`=yv^^r5K5j7i) zZ5Q{9ux89hN|vS&G6T<|m^$s{NP!>xuZRxNEP2(+>8%tDt^ycN?Ym2+b^M4+@`3S;#e zcKw31(R5LwzkY9gfl7b|Es(ko4Mq(kd+iBYIoiM9_oh5Tzx9Fn`;sc=BH@}OtJUZi zO3D5~ns*@CPK552UVAz52_Mc)@%_R;z-H2xhY3fcK~rDXy*qrl_UGyS+iUC6Ac4`u zL-^JDs}KrF*hI7`82$@GF|~j^tHME7ozH#!*W)>A^ae#xAh~%_oe62vqXLfBbxbRH zAe_79UUzEkFWnS=k#`gk{UZo01 z{{Wc2ln+;Ae?eLq2~NYj&z$0Zwb+WjB7EA*(G(n zaDNWCUY=2^Kk}>3R5?Q?+#;sNTD=O8{e4xfNW6tAy~gn(`M8qWZN$=>(z0;!0Zd5P z#lmj{+_{C2T!HSCZ=c^i*Pnt;U$?g)W!40Yq(Lqw+2FUFOahYjp@6urptTxCVJqW$ z=b-3m3;&#?3}mKUe+$o!-62fPCSRwiM<6O!MCvd)2-uixs8 zNM2h@R=Gkq?(KXOq8OZ{bEVQ;kM1Vvcz)Ke9AY|uLjDu=4#j$3e^mr>A%DI@Wn9-^ z)vM@{uQn5rM~g<@9<54i_Bs#G+of(nrhO6Ml(G!JP}gmA^^WS|_^Cw3>566^FHbI{E+{s*B%b-mM?y zYwV(m%}B9Xkb~>onxGu`FX{=3A>Z0BU50CgDv}37U>EaaH~g-)E?ohZl;+zKYgp1FOLcp zjdZ+4CPLFEvShe5j~lmqW-vkQ%(^b!c0qH5`1UNyr}n9!Wmrq%`2*P1&p;032s+U1 zH$qRs%Uq51@<`wnv5v%hDC*E+L-fGX%9Rgv_Ijw@3y&5OKAomKV&Ev(K`+L9sai#i z9Cl%cb}!vyTtoh1*jgk(Dw}}V%t2B`VR**`N0z-3iJUX1E;>keJCf&CMvC6IOCh3L zYF6+o%nVn@Y=hJCcWW8dP3JtHs=`8~$v%W)qZrEs4C=94)fVlqy^_u^&KG9N9h4sc zw`S392cbpiEmp#wYmAEnWzG|+WcNVp4>DskNH4`!orPPK$6navCoxeA$MmQy)>5Kx zkzjH$QIavN9OascgeDMmtysCtzj@>Af@S+DX14iqJ*El_wYWAT?Mq1f7!FUzJCs*<_*&&~*3FbEMlWkM6=b8gx*m}uoPJDQ3l!V0 zH9lstxQfdM2jI_@b{>+$*j|41KImz7+^DzTT;3T>Fs7)l>PfS-!pN%sti3U|aj@$r zolRupC5M&kJxe$$9zjlhOaD-xabt8*npZ?3n;!}ci(N~^_6(htnIs~!)87pRMTt9909 zlc1o`ewd27Rm-K$Qil47G1}GO0Ze3*!t7)$>18*LZdEdI?XM%12NGnU@_3&u3)VpVtutu$vezRTHmJ6SoumZ8d{Z9Xe&}Bu z+T*L8&}s3%c<&LfODh8}WUKArSF1~}@`5-V;$t*djuRIa97d8HwODBS)!=a?PP&Zr$f% z_3@anvt1*x>{cWQ#zoGJ`$`eY#@hBCqjaVjwZ5+R88=J=vXL6VIzlGhJWJZ3>A2k3 z)jPR9HO?ON)5P@J;fM~L=yrc0xlwtYp~ksR{QyMXZEtZR+eNZA%$}(qHR8#)zyth_ zb_N5&?C*Hrt=68Ph+Qs2EM7hU13}Q>1g#tL?-Gs!rVJDJh-Q+W^dE=`UTNQ*9n*On zygWeKl<)Y&vhMvwq%ye$DTxm1SMAK^)X#nZ*)89(C+y5YJITwKG1g=pvf1 zA5p%)yb-+8#SHnRQu~-cef@G-=R2d5t0~?7>>He*;685?=2VkwH%chd1;etz0g|t! z`FHyp^5*1suGw}S@gyjD@5nkH;|VO67`b14e}i#Yv#PbhWO$c&sN90qiy173EVSE5 zn_$_q9yCs8{pcYF%t2IL z6X`4{YB$Yk?UFc-BV7q?%2^r$4qJ2#H=l)s_&i%?9Sa2m>0@KbYqMR$;dRfkKvh^I zW&%SYZc$ohBWv!h^IUb5>QU9q72#@0!Kz-8)1_PuC2*YDcoz9~8Sx$biPh8L|)Ui=*=-Qtq4bu78{(Bm*k99Uq?y8SAaMcVbh^98%w>H4t@T%A;RV-E!(z4VjP84n^>&91u)<7#HhR$z z$k70LhoG!)Uw=@%HAN=}iv3zEOu>TiAbnE5i&+q^4r`wc(eiLNshANs-_U6ty;pos8_&S)|rb{5%K2dUHg$ zy<wCx4yT>O4i{Wsy71kc=$)h;r2e%-jQ4g@zD_ez`8B{7`e4nH zLy+9p?rTFyW-x6-usIx&E%EBqU@zj2i~K@Aj8T$K?m-6pAq$l~JJL#;RPSld z&+>c?-`~YP0@$b3KocQ=)PAX)N4f<80jq!TlVag0(!2n9m*$i^cSeT~4kl zg^9IHqect9un@5v)@Hf%q#w$~0P>k#!@a*tXJL&aCbk4t`+oUKQx*P%b{{*r%RMlbmLZWN;ssE>^ zl|j|;(!g)XC};r+T`~6w*X*miMmYw#l!#zTw?=J^z^)?+-`Z9y4_x8oBQjYjuGRj9 zQt0a@kDet@tF}j-2*Vrlj!GWNC%~ZR<$I#&h4(2x*P|Bo4QPE|XfSBDd}oM5WnsxA zy~FxVG|^qKyLSBnZ1>{#{`B#fu5B@B3|<$%sa#>c+aco0W>Zi~7>3K2Ru&mtj^fG8 z3Yky;m&uHIrlm+b48nZsACBU&2X+?0yA;!wo&TJ=HkJ_E?utK@wlc(prQEEfB;Ctj zBHI-%5Q`>%!stk(UG4H>`}y z!h$%=gk=WyCm0_wk`(zN*E;{_2X3x~^NjZJnHJrcnB9XInIUg2Nk2ivuVq)VTdw67 z!q#I}+%pEWAvw4{XJVuk@%n=6rreQuDTajM2v}`+b*Nb4$?^b0;NQ1-BY|f2mBBAz z>^}CR_FL_3=43j312U)oVDhQAr!fFB>9y$9u3jcYDV^ycS18($g41q@uPh+k(*Nf> zRsgrB@WesN&hgH!j>_Q6YM|sOTK)Vd&?ZQLuidqR;G7`m?5!?yN)K3d`;cA%$!Gvc-&VbMDEgt}65J;h|fSkm?1s)I+2&pkDAI(?++m_3m`xSy#oKBcqBPd`>lGbOPtc2BL4hQFB0;dHAm#HVX5ZC-KLnc#<6$gA|a~(o7EEMS@#57A@3J3DA36mR6dHZPx%zkFV2ifIe0cAY#}?7PR0 zI&P6=s_8k_S6DOE1WT*ZpVp8f2b)wuOqX;uB#NctQL=3rQ|uWANQvL#Sa|wR#H}fG z8Ph{pNaJ-*)*F3sAi_OZQN5nueKh;BW`ymC`jM58?2TK%;@K8*tN*tP$x>hAbN_@) zH`DHIiXN-eWP&CQWg;T5FPS=n1|KEkSj)STZ+U?@Fp;lP%Z}FxAw8cGsmNmLt)|nj zjTa4T&0roo((|HXNzE3m+Vlb7?1-1RV~Cn_u*g6{r0Lk)6k2ELN65C4qnOQC;DZ%I6}|>Ml!7{)BG6OSo%iWd%^`p@u?9=EZMrUASj!n=4k}zOgA>{BK6?VcoZD7q}T^q z8ir7ERO>i`r@nnQTs$jV>!5n_kxYgArT;@jpWY2!-a>CQrvRF2T`8EQ<5seVeL2yW zpOp1-%bj=cQH7^<4;|)HTXHt5l18;8oH70IV5)@O^fX)!WSboAtTxxu2eLFJ*zA zYLFcjIZwR-46<^}=18&K9+l92&gaGMutWy(P)Wh28ZIy=-o=I%}q;kvPvML)d{SERhEDg}i%fBmHf=riY*8JbU1$3I#dmb*&V515;be z&u5{(AizYa-pzTakNDgJ&T$Mjc6TPf2vMF3&(K64lyoMU7nqV^d$~FegCc*th$t++ zg8cNkm+FGXa%iRDdUx>wlt}b+3Bh&~X~(%zGW$HK-(D4AwWx*-jw5!WkwXJ|g0v=} zac_#%7JA$S;vQdqm{=`gHUicthPUAC^%<;?lM?#o$SFEKF(96C)*UND600~_53|l$ zt#1u+wnii#MpC5@&eenOsMX@YK?ci9)gmhZhTC&@-GNRyCoddX`TUPNFjLvZ7C0(a zSd}&iSZ)8%iuvJgtH($=HcxLj{OY&Ex^}0bYCJ-BBHo1CfCv9;Gl2Fr#_YhN+n2w; zb%pLGvTj)?xO3{Ot6sA6Av`=Nh>^6wn?96lN*~D$t!rypG<1|$(NJ(8jwGeqSb}8D z2C!lX(2kp^t@Ng`=>RPJXGHy!zH4i#Ii$beH#CRM3R9lX2>Ovn!`s9mFn>=xT^Nv@ z%z!piEIYK81?Iw0w9mFn64}_0bT|9@s$JT(m&1j%q3vcq7ghrD{g`7jjTgeF`{)DU zx7j9RhjSZDbXiS{!K44la3+JW# z!qK+ec)Me6*(G9PxGksyz=>#)F_Mj~O)PjL7RU)?Va3BJ#iYyPmOiNkxSM8GU?~uP z;%iWFC1mPTIRKE*ix1IiBJ>BBled{=h|`4J3G#axPV@zm+KxA+{sp07J);Passt#Z zeOVN9MIyZjGl z(_2?if?Fku^JM`$KD=()EA6XMFvbC~M(+lLC~;%CtVTbMY_pGPX;Fnm2ImRy5+PV4 zbjay^_hESW8rP;trz?sX2IgRkStfqVYb7gw!Sd+sIk?TsW8Ko+U zb5mTiJ%(Utf=RszW+x;fz1`5J5`p11a<3GLbG-@fE_Z0ik$zX{f6{Iv`5b|ChY&|( z7gi047E_^hl&<8W<8Q{oys;HqS1r>TeY41l&+rF3RnW)X8s&2*PXk>ka42CV2Y7b+ zdMA-vpNICHW?l!1aqi5ngrAV;C|U5q3d(4MMce#qZD?5$)0NaX4uXHf(7m}IN>8#4 z?Yk7Q2n%@6Uj$EuvD3)%IU(kyg@$tgjYy2{Xr)en_8EE~y0a+yXP&~p>ov|ycfV~2 zWq9UcuHE{!8xKCBPVCf^yN)NU~35YpKZiv znFvTXQ>WFGh3$AdrvjaP9k<p@B~&{UkLC{L#xsOyn!*T{r{zBN=ctHN`m>(V6kEI>nr ze3}xTB+Z3V&Eg-S)2769qpm@=UR2H(7P(u3W`VI~q%}U|$+cZfgv7fpB>MfyKznvX ztd>KLv5}_L^pQmg`8?1+;C{W$7`=%DfBAE8z@O!D8uo-22Lqx1LV--dwLcrcX1_y; zXLLs>+KR3U|Jrr7H>=*fSE}87_wT~85GPzy3b?zaZ<(R_ay?YAXgQu7gGWi2lk3Er zb>icBjkN@c?K1kq^gr!|>87KQb!<7xENA;qb`e6K56kGl-LOPTV=yRsv=d<$#w)_Z zc@VEVL*#*WI{wj8GVRJlJSp7^+qoRG7^A27dbCycCQB(i$H0;>O!K zVGooFOOou^2dMU~V48MP64!1ZWK4(Zq}=e0s8h}Du7@n_0}PL&T=xmK85lzjmC+K> z&2W@}1TfV1ss{Cxq;6RAJ@@Rqfhf zs8|W^Yd3aH)xEPUJ)_7cB07(4db=j@wSH~8cz2FXZOjmV8s*eua{9=Ish)xnjFdTz zDfTXuVSykWMC(Yf7?W(SDCsdojC?i(ND&5fuR3TBfo$7l4l^?%x%bLD?yKw7Kr!tG zx@^W785QYP;}Ib91DCF_Qr(i5FdnYYeJ||GaT*oWFdE1->m)BRS&ur;Y#U2%w>u`& zi{!-p70qydX|HoEd6!Mk`jZd zDjF;q$Yc*nZ#;NqvKoleflx>Q=hmY{h|j%qv5Z{Mh0L95+X(=Sk5NM5ab(#aDl`k2 z`rRuT46z_Av=P!OEP^neYL?px#2YcDTGg;%A(z#iX2w#OgG4!}qSfLG6_CNtF4adf z%CHYfteDGiW=h2Aomk}nlcs`%a<_Usj4={A)L7`DAzVYA1Q{};KV=Xm zFoBt%Ss?Zly{Bv0b~{G))wJ2OZFOso6c1^tigI*`XuYoey_;jZv|Kn=(lfF00&6S5 z)-ERx>`T2kTlAassylXhm{qw zzAs@xn;J-kA!SFMMhl7%$e;=&iPKEArVJP|F&dhrX7~hp^GQBceFzzfq$H_OaTnBj zs?JB5a~kJVX2Mnia>&yXawk62C4##F%%|Bk06HB7QX!u;xtbPjPoqP$Ycw zuR7j0Wg#~aaAoXn^s9alx=W@jezGFES0JwnXhH(k?f{sy&SEK7V(YE6 z&}eC_2%BYLs9o)gn7VZx>!B2mU8n(g^GWqkUzQf`TxnLGl-u)Z&I16_MbU2Ybu-xe zD`?-aqzPmf)LUG{$(?eg3qjbcpul_QR_d%mqhdWwYg7P&*E9Y%m0RFwjtiT!VRg@B zP|ega9^pXSqj!K*Z1P5@8+>cAk0=4=brGdm0aOc%G17Fa^tl)QpIJ&PnBh&)u?E0) zStqB6el-T_-NxLFmPpk2jq$HS(J~pEH0d4aF1fhUL@D%7ZuOJTm+wBdT7-FyTN|f# zxF~jf{;9^C#)Q)jKdO!GDfw@Jx+E10Jqk| z(Z`ru?hVb);p~{g$2W-MUu_uS?a;Q1KF7`ctNd%HW-v|{%e-k#wo2O|k4x~bDeAQg z{Ew}NqmMDloISY}*B-^5c!!Gq&a~CxZOe%b-IEHu^LUPQ_Sb1P$%V*w?_D?4rP2n2 zt#VIWs$7{R*2B@mnDf4B?h;5%j}RK47036ft-_o?;u+X{HRwEBhx^s)Y|O_I9K^*Q z&IQN9E#hOK#TCarp{rlzmudNn(ZiV@U(G%q3^8u(J;#l3{{VWOXN5R)*em%rocagH zx!*snUbUODo(fyZwG*soO}AqhxYL9rWv;c!lW6NYS$3b8{Tw-u9B_{gEQ^~5H*Xr} z?NcvshYYZrd$SB`JbQ=x)$7~B*zsm^hV4wZiP9Bx)Xj5CY3o-eX?CBO{S-Nm8s7%+ z*+pjEa5I+i?q~gKJ3JS|R~(k2)tFGy%+J0m7 zQ2VIQTj1^*N5s3oO%IK8_N%CHe-0(qOPda#ZFBak*S5t-LeRddWt)S;C{7vF#MdGnO=(@GU_}-!TdVSgl^n1uhZN=-l_9Dhggg|w_mrp`&I3bS+J?Z28T*v z$mBV?8p2y!U(?UD{K{By{ngZXA2Yagq5l9@>8bJVe$`v>e+}w4WCNk`?tay1m9T?y zabosRf-8K4qng0MHCtKToH* z`&I579IB%c>U-2t4a#yl8p-XAq0`T`FEYIbKf1b)2ImKG<}9~f5zu_1;r{hqo(7Aj|&$Rr*&||9IT}O!A8^eStUD@eR{Cl6Z zR@@oGV1-@TnfrU6wO;4^I0yV{!4j&&Ayl@;(CO#eeq_8j{_5&HCE)HEmJ7SJh(0~f z+NbQiA;Y^p;(sUG46y;(t^@2OiuNo8Yr~}UssyV}hNHz<{G5D$zvenf@(BBv~0q{{R|@1_Ib5F1gno+Y<v+T1M@Jt~o#8ED&9A6wm5aLY*0(!_XRfd{{OW@HA#%j>2?<+0O+i7Oq1 z(OX}mB$x)4q-IZAXog4`k=B`$3eF7p6)lLpfekQOm#uWIKo zjhT`7Bp59gZj7$)_ioqb{S3ywORKWL|1I|&}oIG3rsqpQcG&HZ2 zvZ50B$e37+KN{6G`3grAsKh1#>)MrcJ1M%y)#pzr3y`D41KBmsq$w{sjRb35F)aux zB7H97NToV5gDIawI#*L=W0~L|MPpp+m@o{a48+NuYk0DdqOhXzIJ=EJsasfkU|DAL zeynNMy6)V#5tNx#^t`K)JT<;CjA{3Dt)Ts-qn%MmA+jgYrC?kL%$m<%OW{q%$ieOM zvh~)hY(Uo(BVuzhA|kpI;!+WPQ58@eGdP>SY^$FfBPkP#Gwodtju`lfE$gJYm*Khi`YVOntKr+RIy!BysF_C+Ca3q;|_>SmaZ2~x{3u6oxFLT6c* z2e$7nu^CbeUqmI|4`>wk+5?wHxrjVV;f*}2hawSnu3=DA;bqg#n99foBbn4v5PcbJ z9@(cO0d4`3+K$!9G*I`x==^DW zHO3DB;aAjpsDcx8n+Fgbbp3VBBrxuk#zOLe=&rRfVpUkoPqv03AS529X_oD~vWr=k zm>#O;k||O_+i)=f$>ptDNFwGak1A3E!wlv$5k#vDRfc1ydcs9;B+WDiy6xet1JY;^ zsKgj#dQsslNLA0Mohu09uA zlbq2jx?ECj;nzGf6fEJ?4KV0C)uShN5G9N!*3?zN4TQEstWYq3C1cx7T-j9&#)g_D zmK2|>5w3K_64-qZeY6Z$9L_IwHq#YZ1^}u?QWCl*XPQG$V1 z7d+=WW^8JxEVx92(vI4uQX~(34U;HU+7x+JD!v&5mYOnU$vMtvS}N#L~ z=^O+WAlgFPJiV(I62qKZRN|XU5U@EXNbf^(;eDyGz6E&1Vssf-LTz#ujtk3y z%FM+D+nLHP4{X;%+0O#=G18J)ctjsbeGkUEBJ89hzh+>aWr>(|amnDEY&z*9zCTiya9@(u6 zKp{*(JMylXP@f6#Vr(SNBLv54YK%l$w%CtD5fqnF%ZMx>(>h+$R0Z?8x-XvWJLojj@~WuZ%I;JcPYb*QZGjoX-Ii>IoXS?!Z; z)0p~M>)N793=NU#z15jG`$@s>leJxRGNUVOVPt6sq-k6^5FIvbpAe}MMuWW? zVqg_ah0>SkHakWL)PEMAX6?b9p@c4-Vz{y(7~?rFEOil2L1fq*-%0K7NEkpT79cdr zCY(fu`k^8hU3}|~Xa+N@z9_>w=QP_k%R$f@t(xnjBh2EOD;)NUHOx4D5r9xC=vMokb@GM6O|Vr%AblE^gkHa?KPNxyn>54w>mqRbhm&kHWd)6;FC# zU`A`7d9GO@kFZ=7!eG^eY$e!0??rjt)mIEpN!FI4*@9mWluT9+Ls;b=t0n@Yj0=NgJyfrv=NPqK?J7UnF^mX%0`?1Bu&U4=9u z3Q5X3RK!KMwoK_q7{Frk-9%|ljN2u$0L^FHOhyD8d6A_6lp)54N-`vz9*CgLj8-iG z4Cu%rWas+nafQ89+hhxXh4<4&Z`=^a1Ow}Z?RE|Ji%P*cJc) literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/markdown-shortcuts.jpg b/src/assets/card-covers/examples/markdown-shortcuts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..869d738cc79bca880723c6ae03f92907b767f92d GIT binary patch literal 21618 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 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/mentions.jpg b/src/assets/card-covers/examples/mentions.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a3f4cd40ed166d322c40827243135189a951648 GIT binary patch literal 21710 zcmb5VbyOTd^C-GF!JWl5IE2Mn2=49>+}$m~LU3E0#e%!LTX1*x1cDPJkl^w*-*@l( z-GA;o=k=VOsqL<=s_8jXT{f?)uRj1d3NrFC05~`R01kElUU%VEHAGGTz{%OuT|-uaTJM8CHOi0w&iFTGX5r!b@A`jfFuFI(|EL213+(?Fod2)x zHF#vCRr0SqRv`7g}$4>tcVEc_4t=;`VS!%_POyK8Ak!eC1n%w+R_ zz~=u4Y~kwu4<7=<5q5I)`p4^E`zJAmm9w@c?1~Eekpnyc8UR^<#J~H8{f9M|0suhZ zF93j$@IQU#82~_Q7ytlV|DQhkJOBVY6aZ+M`JcZ3SrbumEttAT9tW00iKB-2g}e zkPr|N5fPAJCnO{!WE2ck6j;MXM}LEXi;ahei;atmPee|PPe4kDiwmRyl2TAmQBmO& z)6&yY(vwqCQT`(W2b+q5jDm%VibY9)OF;SmyS?@Ta8co?;Q!`vdVz5z)8)}xStn}<)z%H1nCBrK_*c!yY0OQz_OSK4~u zH;gVB988S=lPioa0ss*i1qn9DgA0I%2f!nvA|WFDFR@@;5fG8^Xw)?l@rgj1Zutds z1a#u{^T^z0K@yUew6E&`3>Yp93l|^?ct*vIBhRzRX8yt{9#>c_GyDV3vL%HjZj)~^ zxvW+uaaEK29l)AN4rGBWa8R>Vk0dGreAL@B}Pby9>zDh+NOF#_d)D#A< zGkM^y*%6QE^b4C>30ubWK|X(qY4Ef-Xg#Ny?Y=ms0t?selJWqh1lPsCR@0&C+|toI z>fScxdCLnJA64FJPo#Pg97ts3c)oG{$`9vc!L%Ia%*Upgt8b*HURDl_!o^Kl3IjIS zkvA+S^%aFoXevotq;oq4*nbs!W1vT(=@itf@~K3c-hw-8W*B0q2^ShP4b8*U7DS#X z&DPtYPNWS}$kT;Lin4G6(s4?sOL__0X;HwYd%DIcDQ2Mnf%2BSL@B>xQh=>Y>5Y0B z@C$>;xIRS1jhxzHI>SmHSTE(H!2?+Q5-v3zQOrf{dQh7E_Kh~D?E;2Pd3h7ui5es{ z`A`S@S8-Z+n4NlwmSiINi4&S2#y%CP`ESc_4N0Wt9z27|i7Qa$JPZ;CC~0m0GrAQi zseRoj0=?Ecpx5+Rc0ylASOQDE7%!{B2_SHqP>IWnxRW?uHhMz}V2~XzSY)Kh76+pZ zb8z8nlPJqQLtVv^^@iNbNn`EBDNmBHnjvx(3v|*6oKjQj^Yu}Ln3CibGY$38-y*kn$m2!SbGXudjNPDWG$$+GW{|EJr+G@nfM7zF!7i3Itchs`eK& zj-d&dr0M0cp?#UcEzzP!aCEa7mG<=&lJtvwQW7Y)RxXf-P?40oPAG{9mvb|qfIWkG zG5gy_!UX?hk_$xlez5_U4&dhP*`vpA$>UX)rpy&0+3%sKtt!f9OS=9vJ>-jfX9I;Z zB}C)lR$=>Qg*b_ya%7hxDV^|vB1KLwS*O5hv!mTC@^)WA$BO>*daNrFP!kn=$gNyq z8sV*_XeKh28I%GSsgV2LRuM^7qQQOI)|nsei#xtdFz=_cO?RtM?GN-*b@Z*d3YtxZ zg0d-d=)KfxJ)3_EE6m!=&*dX25SKvitF*!uRqYOXB)hAN(&*tFdcP6QGxax`5ULBe z)ylX@v6>ujR>|aZWs3A$FccL%dJ@29cz$5 z>4#Ej?ok7zR=kYRY`BEl1sxO|l&!N8PYQw6gABBy7c6 zL6RIVrK&t4Tpn_9V;M#KiwfNxR?;VCTLN1wA_BX~za?)cBHNF0CQBN*k$2e#eWZD; zJaB%V@D#ZL=12YMz>MiwpPOmDvUa1lZQdi%Ma6RMxQWF7j;2PXPsAO!LkjQUSMV^j zO(SU)EV4y7Gjv45&8xbqltqG127cx#F|Fz&3$=q9_sAA2=gY(q>aZr}_%6uxIjJ(_ zhS|vO1kEP zwCRRQIAwlDrl9enDVfl$VG@z`y1~;dwFou@q8lr%yknBZ)h2s&VH=gtTGAnJ;AtE8 z2ol`XFNbC99Z5?dLDc&M3U+Xz2&4;ye?pK;`eZ_Y(b4TeRnp9cAiVcY3YPntrg?jV zT96;J$qAW3jW;@VYMQ+6KG%7qr#e{mx!DeI{(D-JeA*hcRbB<=qat|R6_5%9WNDM- zkYWqmC~g#%0vm9WvZUT1Ee2_0VuGE3S z#Avwfg3T&c#;yr*(qUg~GI))-_Pj)nj?c9!0+_zPob(g35e2kM)e*Nn+plz46AYd= zN)Z$u8O~s|&WjxkiFIrJ5M5C0M1)xjMdxZ11F9M~Az;D#M0*A+DFU*_7S-SOZ4GP; z6RR*qlSNK`=p8Tazk_qEJ9^)=m@e5OP;xHrqgH0qG+E8aCLwBtV2;`$?B!TGH7 zZRZeQY_WQK@1Sg(I)uCv!$C=@8Xar{)!i@PwEOCIz?WhuOIgZFx9xkF5Z%1 zKB0O3u%JRK6_4t_2W}cGa!!m#Z3(`)IySt>{^+;i7h#)A+PE{sYQ<`o^L6S4U#IS3rI@ zlW-3s`kp=bZE_bE*M3gQAbRLeL3hGQp`YGgw7qAra-}vk&&SJLs<*ZpVt#`V5PUVd zFl1leC1BP1xEivluz{~Cn;gRh=)$8o9fY1SsEX>?~ z=>Bg36FLeZt5A|Jn%I2G^b)Y;5X!MIu!3N7S>A>558FFmf7CWr6yu}>4eHnk zsZ7t#+nP*xGM9@%`!Kh$JQ3VD*C+-y-w>bC+j%bB}1k6U@cd{wW2Sr-Khm$S9# z&mS^YjyC3t*?Qig@Ab)=0wv^k!RmE1S|P0CZQn)C2W^ciO_o}V3A^t*6q3BVc_=pi zN!`PbzBeUnXBj47>E~6@G9;T=^S=5O(BTIEs1&vm)Xg$t%daH2K@)MZAsQyX|GSNf z0ZoXhS1PMKTAY*ny#s{*=FpJ-OfM++x%E%wQ~nk@jrSNzuICGsKXv$re@3&)sv|o~ zK+1-r#pqqvX=r!B78in3=I82e=G+vaEGUXo(6i=)*0upz(3N>xb`f>tp^7FhN_3k^ zieC=gz2$UaN1(#Haph^T7oX>^4;sQP{0Mt}6(0$&Cim>3C&C5)*5I5`9t@3h0Gk~!WOP=6FV6pY9kpDUsv#6m&8x8Jt(;)(E0@`%FGX1ae5hhX8ue} z6?A2~BqWtZ$5sIk5L_X?N_HQ)v$=6OmJ(8IFH+ffPJYn2bNq}l7NYeF-h%F|5^)9S zo$RjS=W?TZtb4EA9+cSf3b1@h`Aqg7QZ{yZzKdDcHQp0Ft=7x^TiFd8{BP|v0+J2- za2K`q--s_l(Zx|2St1ON?4QEegJV#HE2wA)5ku54b|cZLQ3;i)7iSa_;iWBbV%^JB z)HPH7&X*WD07ItpLVi_J!;6nsC|giEAL1qP=vSAAh)Akbx@V{mE|%?qVDnyoktYBbK?gltf%ETW0}_2m)*?b!w<9KHC)gq*fhDKuFiX zA-=|jz6qIy`Z#K_8JmQGK#Y52iQ*C7Y$qZukVvRhbFaLQT2oYow{asI0t^J zB;C3R&1C7gb52y6QR%YVXFymQT@Oh#+E!6w`eb-)J;r&;?FP-x5ByKQyrXG2VlvQv z_(rNP#`A4XAuDoGZ8G=)E2YwLQ!HwT#H*4RodzQyrK8E7%Bcrxm~CC{#yj^#9Q>w8 zc=xybA(ZQs(=_zXj+7VEREGdE+&)+H)}1{g&a=}InN|v;p_~Si7I{_9tu_l6X@@eN zp1ZC0b5cfKaWD*vj?HHnN+4q8fj+aLVV!?75hoaRNT4fG2IRgjI@pimbRVw;_919$ zS{F)y1mv9QxS{$3hNE)D`3aRV5o@w8%z&M{Df!G`ota2Eg2h2+N+}II3}(ZJDUb@M z{I17&d81k{aU^p3><}fNS!716dr`1fVp$3Ns%fs5a&XAb7h>+|cp_kkJX`N!;-L}> zmPaXzj6D!FD(mP#KzuyNR4EcgA=)y2>UbWu>4(zeXpO8%6#-Pia-(p9+0r-`aVpk{ z!4c*`VM@_fjgdPDKjlfH1QT`MAP&(XVGkmD5Qq)h$m_^2*jb8pSQklgRpwlthS0$&~-D&d`-%oOYIMGHYI#-aOa z>4F-=Vx+Xd0c0Uf3DS zdD$%2`%*|iMs^l_jglNMh)?31&@9dK`A{J!2yqxy2nBwCWcNl$mQ>=8Z@ zAx1lHd8L7>S05e2?9xw6I+Ra78BqleWjAMJEjv)|V)056Z!~$7^?qx2UBiki< zp9x9~*~6ysXR@WOS%==PXxj(4T{e17K3@CmBf?}Ro~7rH=;BWX|q^GELJgT4Bk^lyV#7!^(3zG@vYKhrFKOBm({>uy_$|GaM&KwxjwD8yQBt6SZ{%a%LtEePp_^ zCuETm6uGa&1_E*)Du|JK6zVW%W_y;`sSReE$8EsjD@eQnP9jW4d7dx>Ny&qn2}S{K zK!${BaMnzJW|i>{y~UkI9S>=eC&4J)5R{&fWG4}}C6bR#C&oxF_9g1hdlc`U=IT?6 zT^AuCzY#=hWa(KivNc1m%~p?`NNsXd8<5F5P29j!wZ6#th9483wQKFNZKkRi=-}M$gVvCRFUX=jV9&LZ&!N z(_+H72a@fw;pxcww=tCO8wo!WA89Xf;j@De=PRB|W!T6F?9Ex%DnzA>h1#^?CKAS> z?nFM*;pwYk#io{QGf;#rna`JZUte`kTg+6$Pbu5 zNlKKG@nsd1b;2t`FpGeV_$eBY@Hj7fttiU`UT!5Q|Mt??&rJOwJA~B z=n@B8D;3c&%-Q?KQ!UP~(uKS$({@L6eu7&yhjmp80!4pzc{{u8IC#lVp=&d*0OPAwg774Zo7dO*x*hZCr8N>o z36gIww!Y@Ps|xgz#q>bNe_Mi_QY9dU(PhM_kIcfQDH32?cFv2H?EORggUFWcv}%|> z>Sg3gHB+68UTf&1wOwkBK4Q2rrGzr87~`iY58O`?o zwW`SGHKT9993paadS2BzV|UMR(%!^8c*3P2I2q9Vmclye%&hPeo2*xasFP7MyVEND zP84^szwC^`N;huPN7Ext=0_Ha+wQb?P|HA_9_Zp9XO6!I_9CbF?E)Jd)-03~)bZfE z+;PnFG?0IdjpSBovA)amLGHf5w^hRzLdHT+Yptm1+^tld5sfMfZ;M~PyTgy^r|kvy zX7R&64#&FJ=YR1d?9&%-9ga19xygL5Z+NME_qfM1GCQS9BlPbK{2qNq*_$i_#RHhC zZ$kVDcGkOuADjM^zbB6E_IV_Y@03Z`;Y0#)CWm?)8h`$Hb3?TsxK>+C@_l0wAhS|? zvhprW`KZe2bY^ui;GrQXanjazZrxjhGxjs@;WyC>H^y)x82RZ$HYz+u&gqd^mOtzJYP`q)uO#Bi=s^fj zTnzH2X$obZi+$vqSHS+rWAnt0PImtGUBq=cg;4XK^6vkj!^cZDfs!m}YCP=+-H>Op zJ#INxy{EoA*!hWL_6_FkQ;)0}EbsnE-zB`)jDcjC*z+RBPldD4JLXy1S*0N&yaF=W z#L6aA!{md*&EJZZumM0oWN4f`H%dY@NFZpaR-o84zwbvd87`%|j$Z0Kv#gl8aCrz8 zCnIrc3Pc|p*9=q)l84hn&GAgpOlP2twFC-Evm!{+C(=K%ATTQ6$Uz+|2CM+q{zrOE zxQvp9J*$xS+3Tf$L}ML_M6KNYOat4e%7$f8epj2Yy!Z?2ZW4GQ=`mtMb+PbMJ!Rw) zs7Zq|*>F4uPVC3C;_7<-S7XRH~|qjmL|!m)N0Zk;+_|ws?XUj(J;~;Z*+m`5w1Jh4mv-! zU^IGwiCi+O@Dm(O1|9MUB=B>XCyI2rUBx%Ofi3DK~u7y>Db2J4TJh#q5Os?cJPe~+Yb2gu6E{~K);a;^opkDIa zdkYG}pZ2QYAhGI_{3$>9p(umrv_$DgziQTEX5MTsf@qxlRb>mDjCmvObdbdxYY^CH zsS*`XBWZZTg^8)_S|9Uvful*6v%4-dLIagWM$KWrwd7%=`hslP5!Z~c4iZA%ez@GQ z_5JJY=FfGr_AK;cBXrr_F=hrx!29m8j*L`qc?O$fU_dkS{ucGfm|L7|m)XtA6vcCQ zWdDY7R%i2{N})sFa=_V#Kj$m+G2_;4Pph^MF<)c6@&~SbPKURf6x%-9SH>qE%yd6-MCD!A=a zm#gwM-ZMk9VJCN4@X;=&jbFJ*1rIz*sw&QmR=7$e@d`sFT_G?Hc%4I z(?r9R_pY-Kzk>dhx}N9vdn=3TZ8z=zIzJlL+)E~Z9Qj+D<(BHXb+(Co#Xhic_J4Ot@^k2)P#xuw=aCjJo@iTe_bT?*KsxH+Q z*?;Y>nj=TW^Xx+2I+;(ldJ`IgEzXAfq3eVik92*J|%@Ki*%sLPOkcgJl zA&BsvZIK5KF$5$G+4coa*l>unsc9!;R+$wEV_3!Vw3>)JvM(1*_Nf6)Anm7C z5fOBvn3X6Zl6%yvP?A9~2WB+`k>v|a2voGH2zc<6FpfjS=~y)ClgtgOLFDz+2Vk#a z+=5|8)QMvEP7|u+4gC{jj90*h{&8|T2m(w549aO&|~(yO|%98q%YVWh!BnP2b>) z94I&TO~cx^-C1d&fZe)V&vj^&$>P2wCYvR*;_LV3OUcSX$@Bi z%!ln0mCm^JS);RF<*o+12%PorUIEb+1~N#ln-;NkA^A~7=0SR7`V_E){D+ejJDeMSg3*f96dfJSt-h-N z$}=cg2V+;0JhJfn7V(HXVQD4fSoV>kE|)<=*VZcQ+u5mcV!6P-NjF?0duM>26CY|^ zY|uGQ8*VlRVg#P)j98`2)CzcqegBmGWEo6;(My46dJAeHw3}vNfxN>VjYZKfbtRMl zF55pAI9WV|=oDA)6o9Ci%~-SElo4jG(sA-$<=Jq_I}T?!NSmFr7M9ou5LP4xJA@LN zy5om`bqX6YABf>#E}99TM>U(M7E>?>g(L$uG$`7au|YEA@F@-8~1y z;jhIBUrB!84l}6iI@D`;$giUL9f^Na_sf2RT4RLZ3~-nDY6=Ys$bS$ucyG@oo-d?w zzV#^mOZUe0Y$}L0&t~cW?w3+r?z)%F(KVvzN`fK!(7$#YD84w$y0S7h%w_-IK-~~R!&Zc z;QqGyROvp=6O+%;ruNgW2ye>(n;AQ>8B}aw#stK8&z(^=0g4&CZ&Z(TrkHgi65`?9 zk8QkLs@dDJ=KR&3WAxK^`OjOlw~Gl>^u?_xc}Mp!^^;@=$W4wI^s6kQ8!x_spYikNQ6h^<+2ly%t;dm2mebqMQxSQs5f_2%@OSw&@{!4v(sW@LZ1S9SDhrm@ zf>T1cGs!~M;?6q}a>PCoXI8BT2!)@%T(o@bBTs_|y9ZYLg=f^c>EN44yA$TA& zBp%eaedn`|vzas~0%a$Qo{}v$|1v1`{uS4H699E;O90l}K9{o06XReM*r?A}qhrwc zYYSStS(cAoTjzg~DWKE0r8m^L$Q3Tf=!Gu?jV|p~iBGq0AV^l5vC#=ES7TLRASmbn zQ1#whM>dT0)0KEa2n5maFL ze@5NS_4+`a)j&XogpGw^6)_!yvtO&P(XbPe9O43LGg;)SQV)Ol`L6Jt^BBd*34mB z;lDgqzj+cBlEjXsQ~ix6%d2!Ei0OX{=GauL;fW#J5**}TBS6WIBM)T;ZR@y@Z6=EG zPSLaB-GG_2XmWy-DWfvMn&}0wGKL<$Z+l{hU2ADM*d${)d+ammv@!jF`;7hhsmlZWH$#Ngo$<6601I%+_3V5E^z{oyf^m&PaF7gg3U`Sx}?%&DHuvcA7aq zVvO&EpS#N{IP*D{FmYfoWMn9=WeHd_k^KFMW1$oUlecOq8`S*`!%9StPw{yUf6G5< z@f9!uJU#M5zf-$kaWR@$$Ao%gc5igbs%dkG9wd0k-1c47#xP!{UDKSoZ9nR*1;=cC z9~UXQ>#W71Vp@O-wZvOA=Z2i6wFKcU->mTkHJoj&?_ke$x949C%F>wB#wJbtERKjm z)%5L{J%jW_)s}xmov=`RcznMP%6wC?{%{t{@((zjzZWoAd&Dwxh)Nd}3M8LlM?MlK6RqN1mWwS$jNMhqJqDAPQGdP^_MWgWM zZ!LRalTu^GAvC$#;M?)SwczEYS82se$p*~1d&Kuaa$8JTqMbaxZF)MIe#MOESD zKGid9PyGJ8^=V7tHu0IgV7@dWaI<@QKW$*s5Bx$QhU3R7`Ww5mP&6Ve7{B3@_$xpF z7A{yZX4MFJW-Tyz=+?N!9@sg5U-d#crj63j7#{dMaDEiObD1=9rOEx``q=TCC8b+) zj$)?5_~6d}{YY!z=`m41*0|NogY0?5!sT;l$US4}{m6OcAdA{bT*P^R##8L&onO2w zRm4-?jY8nAsF&uw7%IS9@%wfBmTtsi@yX}#|6t9UoxfkWmtc~kh!0sgeAiJZ3Q_Lw z%^90?|3|JLM$S3x|0U;11tCXx9u3^=If=iQ5{A2fTar63>Sc_p5uwTR&f_F^&p8C! z?R?^H03dZE61Z#PC6x=2*Bn@*dQ98W4Oz@z?0&Q9TY68H2V0r3C-aQvU!kvn!Jd=S zt0;i%o_FA>Xh$t_xnwyQyX~*)6~A~y+il_9(3^?+S<&S{FX^YkD5_oWfX^O}6_?-? zaAMwLyw)p#&R>M`=Xc%TaV+9baSKm}x7s$ph$CiYNa zyFI`Kl91DnSO};T9*TC9iIN~qJjTErZH0iP&w=HVWe@28IHSNGhp5SCtZ(RB>1W~d zUt65dr}pj*)>p!>N zz5Bl6r@YEO)AMe?iTLJIS0H#7FV4R>CH=bg>r2x!Ye@bgH;MIwAh@(8*S@s9=FxCP# zlg<$_01x*Kmr2PW@MxB{aooxFcAR3twpnJJN(*`^IQ!!ea&`8ab~}0G^g%fzKtXyn zVq<9f!ZZYrNPIll4gPyeocVeJpW#Wh(q&@ff z+Y9U4fjmrVA8pfG+fm4*ql|EeY&Lb16vo4xA!`OQ7_D-;L`mzW9_w@rAMWa_?>0BgjTNurpp%=#q6ICkSU4bA(JBYW0gT^R zh7|&H_esCa!~4#NApL`xWZ^&DQt?MMU~%89d!M>Cr0Q#J zUkKXTQfwRX6};@=hH(T>)j!OibC)eADGbZ~ygBvS{!Wp&Ez~pArCamitHb?d5hvvp zlFvtr>a{afQ@)xJVnv|^%XO@!`k2^IQT4N_zT-$rneMVCPMy(MSft458}ez_&Ewaf zZcd7IPW$y8AR3Bq0-RF@TN%eD^##{$t|7fcsWnSX6R_;$D*)rTFH=!FmjQc+?m%@6 zJCiRrdBh`r?-iio|Nbys_`#!!h+o&4{k(Du(%jY(WPP*zZqxb4!EE8M>iGl<3-=};dh}lkCv&Pk5L;pF=@(ue;~W7)K*cAf>E_g zQ+5LToSTJn@>`2eXS<)bt%@THYRwjZ@$CymG;|XEYMXGYGWbcoXO!M3o04q&{?2!E z`W?XW{=9p`1j}XIVXd`+7sgu7gfx|IIUU>lU~nPz+cf{Prc|h2c2A>(Uo`fqvIHE!jc>^YuU9#N2}+0`ZQG z$JaJ6a>K#@o7|6P*6o?yy;a4}dX|DuFnW@|J?Zi9%@SS#e9vdjT}K?RfCbV2tO>eC z_n#LIdX9G!RF5{>OSwaRX;GbK1JnHf?qm9YD0(|>cKfjF%lO6hscXrbdjfRNYWu=> zI@fCY&I88$W#$@JzxI;E#3|O@64CZ}T)N%S{Ti`sY2HSvxnSSR-M%;jn6>y8U<6&$ z=Y;C!htEp|neaV3Jk+8nmRVhu|8e{1V%0OG=&pQo@k_A&H}4J2mA(%`c|prKh4?6@ zGPArl!j1aIl)T{1tXD0Z4XdP6MwlRix={?gN`QH)l1IpVK_aDpnO+n4Q{!}dcU9`I zo26OP7myJWwTj2h3U{;hN8|;n{3r8T==0sDT3CQGT9V0#wumHhITZtyHYR~lVIN&m zq=`9`4oqCWdJ73nzl_?6(5}=v9rt6$e?6a%f4)s%Jl0*3^^9JCfsTWIW2sAbR-GC3zQ@rUViNJgC z?Y=-j0)Fh*jK21yQq^jam7wlCZ3|S|2tzx{4xT%D(sd6o7-(g;u4nApavh6g)uvDa zj9Qtl#_CHL>UR9}cMq(iTPV1Vy7J~|BD3v zwuS&rpFKzY!y^75hBRru6=Sg;b}R>-qzyZj)d!7Vz!|rC4u;=Uu^KpO2$eh6u`D4K zJ8!KSJc>8lu7H+;+DQ+H8*7Izk!xeXuhEEuZlv=iM=c-xVNrtIc4UeL3&AXyZSK%y zfM-d8Buga9WlW2?#*wh^Hq0*NpxCCJp(o;07RzM5{T7$S2HY6F$2m2_(Uej%EZscP zwr9vSl5JE_92toM)c}{X$RL3;GFd-PAhk#pOwylTluz7|#_TYm&UqEEhkel6#U_CT zqBaq^lF1LM2;KVIRB5<*nW>8e~_}(Y>JMj;-(3-!YyHWe~_|rQ)wG)CpXLh5tjYSVF zYkdYD?+8m-6EVb-mmzr^ShstB>^W@Oj}J56?%spT5TqgGAeqtmhB{KW2MkJ1L#S9n4< z3hTHvxMCfP>2~FwTZekHrkTfUwOUvhtXC7u$Q!SpmLqTbFD~EYVVo z(#7E&SHA7&McG#itaMSZnfY3;-MgNzWVO{2hz4o6gOwHW4HQX)Bd9bD325gx$LX&y z`-yjmgPI(0d$*w$fzJJdd~5i%bFIbF`}MGrDg3&Tuu%DNrA3Ax>R<}i#Os4&OcaL+ zSW#FB#dC)u;L)V%*6CQo$I%&OEW&K9*_{nXU*akrT>PU=xio!txOp5Fzw97LzDlQ4 zEriuWTe3_dS(UbkG6CDM1vmVtRMJ-1qCr|=kk=K zu8Wx>>E$XB>sP=;$gylE7N|A4_L)MWO$iv}?%>5V;98TO9Ftn0G~xK)`3JqCLtjj+&myYk}6*L(uH_MLk>pH)=Lh z37zDdECDI34@>o?X3fPLD>G2i0V)x#Wmd_x5TwC}>u5r2G}Aq=e2sbvugWjnQRK0_ z$rWf)N)9q;qudf4;uyjv9aSyij5F0-xP{}BReWEL6+3rPhv~ApE(nqn_rS9shc^&x zP3fi`jw3zwk-X1q*!T~pb55oOszDB)`bPu?M0@Pg&WXIWKVQq)#)sJuXQSip3ZK-g zgiE-lW_Gr%uSxA{FCO#SOXWKxAkJV%ET^Wi(*RdUb4is{l}=8ErA;)RP_4Im0vHln zjr(Z1Nqy9Rw)7=xB6E1~GST%A)rZ!SOIn%Ke`g%`=6XQG{R%#SSRKu0VyT{W-3tZIioLbvS0-q zsu6@L^?XDbSe5ZtNt)Gq1xD1pj+vflq^@kUh@9qZXHFe8ciT)(T_*f}-ZwO5i)hUQ zPM;H~(CuU!!SqQ25zCq5tw0WhVu7tTW243!UEx{VJ(upa<})D!leOvy2}Fn(?nJgl zdwXl-!PC-&6-tHn>#+H5Xv$+6La77y=Vn1Wa-)ftmw}4-ROPX51cH0Mz~y(< zq|QzUXQ?wNX`~M;jxO1&K>Vf|^`LH6>9|?vAFDEJTb1^HC8AdJjXpKl4ED09&dPf? z6S2u}sH!wYNf|c%W;%6*7-M8Eh($eN^S3s80|h7TUHOYiFP=BqL&>zT0%g{oSn#H; zAHOj;X}LO`vmcp0WuiPdoT`w;_zCJbB@tX-5HEKYes(T%_g+hnFK~PzSo;2$#jF`f znf{4f)>!+EjYszPWL~<%xSj2bkt-9TT)B)V`{9G_V$P>DqtA%}4oBh7TWqj8Q-MI8 zkzXaHwjb5>$h49tI$?^uv3>etEIjdAaqanpQbb-9#w-4S;@9MxH4ov(p}#c`7hChl zep0!AsOFc8{9(?2s9P3$EMRN*VP)>= zv3Xdl7%31k@9y6J) zcK%&;07W-UM@r6&7d~%TT~^-TdYVr-1U(zTGFgE_TlbtNgZDda`~!H^jZ&X8eP>H{ zxAXc|_o!e`DuDLlY@Xm1ARMyL0b3&zQRgITCy^)2V@;o@+mCxw74ccdGZ!%l$YY`x z_{-HFvHoDdt#ST+kOuv(ZEE#2Yzfl?OO=!2*#1q&KQx?Cwm3KbymK@YMHb@6m3$>U zT-s%#f9mbvapuRj*{QM^JYUAy*2g9nr~SvlZBI7Rqf&>>G}~UF!+;DA3zPlZ&9yxS zFeX?9#}ho;)^CA9<)r2jf-%Z7V)a%v%2#)P)joq{0}ICrNn?zYC8}RcSb=9>r=1>h zxFgZ0MVeKbP|#v(zEYNlq;(vVKcCLg>Mi~$7STa}$ksv(Z30$r6`h7m1OckbXR6a5 z;$U(bvh^#$l|mhe(g%M`!%CX7*V~Qynp4NZQC|Vs4xea=RGU0&TpTD=ZM>sCIFoSK z0&5_J_y6Lw^l{-thWD{{=~JVmGAUUSZXx*NnbT;!le*MrNREl=E42!2gTv|yIwn(h zbIjy}%StlgZ>YbxSF($Evg5NR?CTVXANgp~I$`Sk5PX!@Zy&|dSEIp2c?I0$MJ{K6 zNXaTv8KU%wm4;L5+({l`U&1ga;}%XC;d0)_Cu9{g*2@5(Nx~mamC&jPCB?a8*qQL= zH<48UJq#-*EDw&}-WjNEReAtRk`M(eiivhS_x^xCXZhOBsPT^T6wb#eFc{w zpmXGT94kwD-o`rdM9nDZwcM=l67@@|XzD6iaQ8RW4Ps|$)bIpPedQNPIW1Xhdwb_A zlk#TMut(gG#S>4-N;mFz#5w##-5OtmTMX)L=De#JAPb`-+s#+!{ixH^h7DWWx5(ub z(=I*BtLfrMSZZBLe7)_|sV)juj*B#ULDPLu@%TxD+eqnDB9F|`S6Zc~FmHhr@S}In zcBv1A8CGSZ&_jYCcqsc;)h}A^swjyBQ%en2E#%P^&y?AW0RmTHs?0)hjx{e*l*TOwbq>t zr3eBOA{h(ptf8KL^n)bx<;or#G0lH4sRTB@eqwgXAM_ztJeA_-xD<>{g$+yjAXP$6N%-bhLJ4{U(-t2lFsPK>N9_flg*jp|AvnV^9xA}Epu#+#h%CLv` zrojoK*ne8K%n((B?0#2InW&Zu{Woc{z+c~){YZ}L?aJR6SPCn~7YBRHVg|o8eQWO-{<|4a92veFV|?B{{9W5D>4N)iWY&&n zf_AP&5i-(}_os(%|L~kb%U`;Cpa+dyh~tC#gVf&wp%|a66|1QIZJ3VA8wmZouhe2{ zhQK{t^k-P)AHI~o{yF=l#4CX3i_dLT?(i39ic?rz^JOl;;cP2J(3CS|+%^(PJ5E!> z*M`dd`W7u%cJOJSdxc@mJWwwOR)oM`D8rrxfT?Ryr+@~~7i42kd%{nOuG#M8-MsPb zK93RVB&{OD8akO01@{bN0tOx_)TCAW7y^)YPbkC#}+?EEo^ly9-2`QK2LdP6rP{LT zi!6prYXjxn=q(i#zLzE=EJ(ovoEGzG5t*QZ4iyZ!6O$j0=GGveqN>fCxWlmp4h?IT z_Sc?^5EA>I%scunIaxj#WWmx=mRK`R)FfF{!_9O5@paqzT;$-bQA=b3uoX~rsZ()? zQx>pf`QkF{3=10;gQ=~+bEq_t6ifuAA92|q%Og5bQ5TmbIQw8Z-6-S`g$(8$yIYMb zYH40_jLSViWiH%&h(4+rz&&4`6S=9GXBbW|+JRAv6GVbvOu(EWAh%x)5NMcHN2S9U zBZX-~N;6kz699)ybD3Egu`+Fdd)z#oTflW!xG~zOw<3tdtYaGb7ZH*DTtJUDVb!k$ zag37Gdye*yB=rzV`?tj)ox?T9|70#dp^Ak)%_iipl!JP85_{tTsr!w(k)6gIi;qf5 zf?UI%h&fkulcOcP{BW@w0-iN9M*miSA&--+zSj+sQ(+a?G#z-JLC0S*{a810)X<{U zGd!4&Uk3qVk8CjAs^aE%sVTjn+~T9YdeyiQSEsWQhqXo_Fub7;%+t|a+#(^ zE+kj4^sA~)Xyg`A3MD=#ERDY4t8fhT`j3T3#6rt;`w?evn6_fpmdiDNan>kdaPoc$ zrR`3QBo>L)09kUp^>*J@a++sfp^f%f$HiZ(NgJc#psQ5B@CzUHY(S<~CIx1LQ`><1 z0cAJ?bA;^(lMDfDds8lH!os78Sed!iWM@va+}H&l)`B4kqi?PH9F>v&MP+RZOPPzEzPehV!SuwFG6lKbbIifq!7vyrEWp( z+)#IUps&@?j=nV^dXx!q2ebEOq6hleIM;G<3ynfZ;&OWlDKC+gYdxGN1#<;w65;hY zqJvxudKFUg&%$Q7qN{zw1=LG; zxUk~50-n;ZRwR29sMC%0)Z#Pwr5Ji@tV%O1`-$Nj!0ImpH2IlLpOo0>F@?)Gz|F&^ zbaMEz0LbJY-Wlrr1nDN%d5=U=bpdtzH6xEq4G>94HqVT|^gvDX4E3yZ5L}(O@Ih3} z8~Kdo2z+uDk2o#KVIUAiQazajaY(rcL7iKvm8IbTa2Z+jhG4ASU4EuoMu|tjz*0cb zESqaN1w8F(tBIU>x~~NwLB7)}>JMjbLFTfGVEXN=);;Mk=s~It;RvN2pwz7Xpf)d`)uopiS(FOq#66TvTLl7Iq!Pf;6 zVu&OsV70Qjy8cJ|WmI!6WAoU^S?MV5d;%%>%MLZBw{J)>ZO^g_Ja`;+!t>I4W9h1N z-!%sd2{p+IbH4(>D`Ghu(2!=S*s*36Q_~z1JzW*eTUa^r-d+n?7BVohKcLzAfQE5s zIVlu%8k}i%JsQ17k$={|r&NAOI@gZw37yoaN*#pHI!f42EmWXi2MT|Z*b!MPj~2^D zQnNE396i;chv&H}!Of486s|E{0I>I~;_l1ouvh|l%uPWgnhYv(c8JVKjiiwknz-32 zc$|>JY(3T)PC-q4;rWd)Q;_L1Q~Irr7odIu2Ud3Tqf8UWV>)=(^pj100Q4^~GVHti zG)IFg1>&+sI)piKnN@nSdWV+I@Ne;Edn_6p;*=cw+Mo0OWih_4BRd$ zWz+8PhM*aC3YucluT_+~KNWpEzbxO@Y>JI$U~kE{Z;`2$#(dW&Z>+=M5+R*&{c4u@ z{{$Hl=Iw+qmckE|%?tR6Ehm;*(J&q67P$cGV@kV^a^W|fF)M4HysAuO zDan?{;-U`Dz#!s38l@}TTm-{q1Fm&XaNHq+!;ceAw2cmiH-Si5Rn*N@uyCABg-)g> zlEAJRWm13R`?2nxgKMs4aHn?AB6c) z+6$Qa{EtfKkXG=N5Efntm=UE!kVX^5Rb~6O#ve8Ch}LMCSyu}uvpp&@85E}s5Hl2F zT6rkeuMkj-h8sM(RURU6E)aQ5MT}j*W=h2Aoe-1(i)J(tO9U&|eLp~fU$JTYBg1{_hDQq-F$$E}rnx)-MrCA(==|E+z7ArB%YKvkD zO7+flp=N5!!v&OPc^a}vA&zrI1VIgv@};WD(rDNQGX_=S>y&9mq=mv4iMh=wL1C^! zi3~v*fvBRGtriG?4n%xumeHg}v;nZOk&3Lzmeh5oLOV5GFat*j&{rF^Bz)4=m&JbK zTTgBve#+Oj?+ue=wp#u4w;BR-KEbVXtR16x?Wwn2w$`j$pOe~cN#@7wuFM4CC5x6Q4>F!CipjQ|_989S(w-2+uXSnig$OhKFg#bxpzG zUxgFkzyxs}Pf8of{M{I5GyCi62$B_X6-EnJF_!X*&vga`k%wGOtkbQMT|~@G3Qh7m z&NTMtSB==nO~hOodz-B)-*hgL>5AX9h^;K=XShJOg5dorq@A4Hyq3cEb2-fNt3~e_ z8Cu>GH%<_A=QJ$nY+yx(Jm*~K$Wd`sxPY9rq{$3X1e2w7Eu*0b3tPAXV$(T@rCp1z zw$nkOrm!Mym4=~rwk~4j%yq7WGBWKz3&)C2vXQjdw{yF@cmf`IMxM&ker-9xU>Zoe zE#5AsdLMOO4X(kA?PF!{m2KM6Wa2r{F2`iN8&JJ*9I39V#40u;%*M4q2rY9z&hn>n zmhsX?f0Nqo@b@{lJV!bf*{p>sE#@^cX^eP44>PEZD#!|;Tv?7&r3Wc*9Yt;wn>Db; z*|j9{#ZXwW-N>~hc#b1av`mI(%{fO}3$AW7kqUe#r&^nwx0F#^im|iUbtuW7)iQFe zNwaKh1jeJKbIw!V#?@Pg9h%Q{18nelwlkl)n`dUT zh$&nk`IA>=?S>-b$voiYOlBCAF_JZ|InI08wHD(;>{}lncW)R-;>1R@Ltxp3vd?Fa z{Uhr`vlu4}<<>N&+a+y~M~m#P8RB9u@_fyzw*_xv*wW&bvzVMi5%s68>)A`8x|mhx zib>PoR86vBavgfso9a^O13}KX=Z%TP`I}X41Ln<$@Y}bDFFZtjwAS5w2Y6=BcD#lr zKW#f^W;lrACMfoBEDPn!;`cNv#-?&Xnk#~0?~Z(4Qj z*SlB(n>G+N7~9sJZwq6^naUfbGTtXhRnt>7$vnK#de)n4RD>-H?50_`JFyVleEw z>GX~3TSzR}RN@0er7+}j99)e;S-i&^=EhKtCe1xTDRQWvsKw(9X^r0 zYo@J)8N3t|JIBq8qaDT-+}o{`G1+q({Uc}bt2>u=q@dY&`F$gL z*3*N9RAM~OT8bgKPDevhdECc%`LVhs=KjSs6(G0L?@L z0c;W%TwGHi8EG0CSdQ!vAoc4^%z)Tup&92U4W=O=EMm`Im7Kyh zW=Q2)KxvSYN1bJ3z*LFpW1TNyRNI4bIR5n#GJ?4P(lys*K_W&w;yJt-eE9ESx zguXH+79$U>RW|zuMk!Hoo=_JdM|cOiYdVmmyyi3!t#rh6AgGD) zbs9w}(UciX`5Dr+HdZ*E0r0GAon{OJDFZPwXIi{i$Wd5Pc${5Eo>Z-@J+LgZcz&#D z&b8gSa3d))tK#ykiQTR7jAKvP%B=_W9U0XWf*T@yG^`7O8IxJ(;`FBDWMKCAS$XSK zwjgVY5wSU$5fNPp?HLHZsEVi#8Jtbmrd6LDBPkP#GwE6#95L?_TiZ#&C|G36@v17J z&^Fj3DU2sMI?Yo})-dz#qPmwY-D_8l1C}m+%_&W7l#F~J^VXMVX+#b8FL1GJUU3x_ zi(o`vF*(k(M+#jMm_XM#s6vtou3uD7i_(>pMH_8xz`Mioqq4+YmE!nPd!|V&AdX#W zz=ym_+rj!XH5sjgnyrrT<70;woa=qGTNYOF;tx1Rniw_Bv>Y)YOJ&8RR*MB%;)USz z*0^y|jY`0s&a9#ZaGpM8>`ZCx(^G-$r z+yf=G9V?P(Vd}Gzj8mb~m@y~>EFNZcpu3O(o>*!lN@a%PAqE+)Nub#Kc8OtaP9pjp zG^ugRyt88Sh^Y4qsK#MVhNY%KX~QhGP-eMif`(yU@AQVW;cao1A`iF2>r2_LFn9+F zzN6Vh5SygfIDqG;@2+Vehjgwo7laQA>r)mbRgA>@=wcEALFQ(eZri&kwV7#w?5=4c zl_VXv0}vb@TGgb2E@FuCr64RY&SOCoO0dOPW;u1JNNt3frhwO7yS0FMO#&4dgA9)< zJSB+=x$_gHLP&cn4jBw!`zj+96B$+87#J2@T|~u15(yc7l_rL=3t}^9BV4JsR9ZdJ zTusk7r2s;ST#mWxMPz{GvG-tkO$3bF1Q5iRZ-pC#wm_V5?xR+^7+~RJpvcmor~s@V zZ8AdLhTw-Yks6wcPFQ}gI;X_Aa){Ed*(LZFi0Ph`=vUY>)uQ(euxj511;S+KG)nH5 z6q~qp&kV&2ICTR|Iu5kxle-8K#uMvmD&PjfTOrOU7(f!S@20M7s)l1jMGDIbPt}Om zI%0`zJ`jEM3|Ab^FNHSK6zlg^0%iHZ9u(KdO@GY%lxopPZ?3$$SGaF5QzJi1fw z39Q%}C6ROsiMJO=j{D42isi{b}|uh(I0_$dFQQXDRHfmG(Q@B%WR?X2rCqVL_;nv zndw)L@G=y^fnpkT&MIBEcIDHEVvk^_t;SuKC4f24on>T9)y@Jv^Hd!Gg)so{!n$Qb zd#AyPu#-596CEk4F%fFpVmypQQe8_fAh3f>=zU6{PhOi zyBu{8P(quVV!fDZJTAF=nYoQbRjNss|7) z5(d6?6fkf}iRWDMLm`$TTH`l{GL32~OaLLhy3mWQjIn7wVwrB`$F^;t%=~Ii2WTmc z6u2=^P8GyBc~rz*a0Sy$>cJ)y9xvZgaTzidZ~~DLMxzM=F`k-51|>M8OC1_?s~z4T zPKQy_mW^z(!y=1-b(yHsjN)vMIHJ6sko%^LJC)6$TT>Lt z2-^gJ4oxH3PbSi^Yk9_^mY`x1F%#~h%mulNGv%c+5xXFRF_%G22ttx_j#V)cZS9jf zQN}PBytgqLQKD^<*#Ks<@1`RH4m`-xfJzYKL!}uKP7esIO^jA801W8JB4p?L>2Za< zl-pzrfQ9(cMBnfb#{>iItAem}H7*iZ$kL*P21EQQi3Yd?0%UWm1ONy*okvQn;276R OB$X#TC)rMfXaCu1l3(Ni literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/menus.jpg b/src/assets/card-covers/examples/menus.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aba8c3939c644b11fae8e2c0401638b95e12f9fa GIT binary patch literal 22707 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 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/slash-commands.jpg b/src/assets/card-covers/examples/slash-commands.jpg new file mode 100644 index 0000000000000000000000000000000000000000..545778a802ad5348509677b639cac73712fcdadf GIT binary patch literal 21616 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 CkB003 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/syntax-highlighting.jpg b/src/assets/card-covers/examples/syntax-highlighting.jpg new file mode 100644 index 0000000000000000000000000000000000000000..991e98a55e400569a40ff598a4e2642b951c057b GIT binary patch literal 21443 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 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/tables.jpg b/src/assets/card-covers/examples/tables.jpg new file mode 100644 index 0000000000000000000000000000000000000000..06d1462ea1203f8cab9cc255b25d35772fd03621 GIT binary patch literal 22054 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 literal 0 HcmV?d00001 diff --git a/src/assets/card-covers/examples/trailing-node.jpg b/src/assets/card-covers/examples/trailing-node.jpg new file mode 100644 index 0000000000000000000000000000000000000000..42d62e9ac90a7d39dd71863c0907bef948601d90 GIT binary patch literal 21763 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 BKAr#o literal 0 HcmV?d00001 diff --git a/src/assets/cdn.png b/src/assets/cdn.png new file mode 100644 index 0000000000000000000000000000000000000000..33f20eba6d46d49d8b016cf34b3f279a8a48cc7e GIT binary patch literal 582 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 literal 0 HcmV?d00001 diff --git a/src/assets/comments.png b/src/assets/comments.png new file mode 100644 index 0000000000000000000000000000000000000000..f375f2c1c7bc6e68da9f1beae48f455b6ed83ced GIT binary patch literal 2759 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 literal 0 HcmV?d00001 diff --git a/src/assets/content-templates.png b/src/assets/content-templates.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6e13964afaf4abc0d29826eb3b238c0b4ab03a GIT binary patch literal 198141 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�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

XYYsMJ>j`uvaws55m;r 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

BQNS^pD*buz+KM>;5GQ_lh05 z2jKq@=+Jx`39*D6aF{)2IhZkn@?!!?n|u2rgeS%;n3=3$jKB+fATwBDFXOrSIdPz1 zM-T@-LjpfXjYIidCLmH&q;{rNYj1NK3#6j#YtC;R3#3+Nd%}(N4Y7Y)x^x9w8=GQR z_@h7lCaGcf2_ST3kI%ubMg2+usX8_;F$Cx4mqd-pz@ty<)W-ga;b(|#WXBoy=$F$@ z==V;KrZia^&x_(i+JtV z{yJKfcwMWA2KKxXBA?2tHjDyDq~SwS*>zJZc&~FIBWjJtrb!65}o%&4D@#HMU#AM0Y(rME4^i6%1%pEDmyc zfAK%TfA(Mem-rw3kN;!)An+T1>u<{aPdfenAALg@Lg$5iop#UPf8!mjKHLx+#2=@3 zvSUY_?Vvat+v9FyuVg&{?&397C;nzJiRt(HSSsaII&Uu8sYucf8e25Ri3%v2< zvPg|DozZV2gt1$+($^S>_($W#VS3`KrN8s}!fapIBA}EbK-cZH2+Wb_B$ezTv0^7J zV)bb8o}R8@vQ|R1L?A0P=jF1)NtwPgQz+$I7Lq|&kS_};WCs*>Mra<_#m?*&sf*_p z=EVtRcV|ab(3dY=lAzG69%j(={cnCByXyxyJZKVlA|S;loKW6;OdbO&Gk*hO!zQF| z6)J~q6AuWO9XDFSGI6kOwm}>lqk0gV#&&A#P;;<CM_k<%_QV;onJ14pwh;WN+8Q5g-~yLU%I?eOt*SFT>it=qS8k=n6E;CFBD zK!7A43s^tkc!nhjKXXi~Qx2KK8`0gZZ2_$e95sQ z`6bLRE@F{X;A|J#?>>v`H!kC6e*JIZTmS4Ip-=Dk3t#vGy2Ki8&^zll>zJReqQ1X} z`Q>HoKfI6aegmETLrh$}hQi!DF_Wa4=lTUXbMg!W@O;tC7!ISt>~bfE3aP0NsPDOb zU3y=uY?C=NEn})z2qXkgj==x))Ht!U4bY2(s?7*P>&Cr$gtgiQj5m1;!e94zan3zxEl^1ox}YtS04~PgG?kKhMlM`#-ADH)Vwa zGiDY#^VzJJg)w6sr=h?wnFfXIlVA_CRFLU(no2SYgm8G8|Lyq@rW|2jPMab zdKlT`4CMUC>B;0WBL7Dq3kGku!L12oZH8O{AnIgcsORO8)ZFWdyEayDaGjjwCIrI&e)$N!7)y8n%$e6$`vZ1vrDN9>h4jRmdSZGUOJDdRR=@Q}*napBW27!_5x86+;C8fkLS+_+ zVcftoH?E;^cuc_eU2%Y^Tz>%*i_b`KaCSn0wf8p1{Fyef&1t})d#Y6d&RveMLG5ai zI{(2wvz|)``1rg6dz@FPokbMULW5P!1dhRHL+g)wmOV;}0oc>@$xLSghLMqZ#9g}U zr`rdPO2h7dobV=op3Z(yFn&gs%np7W456PyW$b}Mm;9sgeq70T2-=-f5TA>T6ku?6 zC&o4bmSGGMATT<<5ZUA4G(bNrMSB;YiS*mxDwu4URTU5BRckp>K+})3u0pv zn@2EoD;-}}S${?*o$)=riOl;uRFw^a+@-+o9z)<?KELrkm34=U=Oa3%TK$KOJ-FAoSP5`tOinGfefv|~u2lZQZQcbVm-}^hi zf#3P<-@z^c&&ldI`fYli>Ni#_V~>F0ahCueF;hLABXGOSmWk+5o+q6Kre~&1P;i

c&lr5xM;<>XcK`(yh#ww`qINSL=kMGO$1 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 literal 0 HcmV?d00001 diff --git a/src/assets/editor.png b/src/assets/editor.png new file mode 100644 index 0000000000000000000000000000000000000000..02389f81d2d90da1bf08aca31932124e2b192dc2 GIT binary patch literal 4121 zcmV+!5a#cRP)K~#7F-C9j= z99MR|_f>zeTO>`{$pC{a)RRA8WtUw{uacGJtg;(1K>!OuVsYWXla1*tA^}c9C0TF~ zAfXKeNOo3MGb^`NlV!AG(12$}aiR|wBcz4dZ?-ePHWtnVIn|aoAbyrna)p_TB zoO_ERzrjQ0C6A9js@`b2;jO0M+^7l}HA^Cx4`WXrO27H=?jH>%@{-0&1-Jco&34nX zcgwD6-5064Cegu}7```{0J-&#f6)I>Ucz`O;I_7GZ7^?kZ6I&O0RR9@y##<=02&Zf z0vWmOi40ftes86>vGpU}mrEQ$E_rO<2C#!Tu1#(Fa#_H=ectgAQ5 zsv2)SvNgHHajD?8-?7nr4q#%}BW$8JwJO3KEzPEYIReb;T9B)+;)GrTH@7G=iPyiH z&;IxJFQ+59q;YBBwr|>~EaTWzuA8cnsfNsuF=xx9W$*N}vu4s@%ZYuX(qw#D051jH z4uJJ~HpbOPjk@Wn1+mZpO!%449u8!%Gc%b+0PL6p3}CRpIfK5+u&1Me7UQj7+DKk- zyfC=!8#Zc68^?$(z8hEqd*;4Yi19lCS@t#K%&fJu$sqANF<#WLNOSn$|GXH$7Xr8a zhc>ck<5?}&rX`~LP-N)}4s;Me@Sxp3h#RU9G<~jz&x3RvAT0p}VZu|FbG;L&DH;9fApp5@Sj%OxECwM-EnYG`i2pHm~Dl_DV zX#)xim4Mmns`N2eiXf{+AzdCaCmx@b1amz`E7FX2765o*a0G_?kFl`aIw&°>Qb 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 \ No newline at end of file diff --git a/src/assets/gradient-bg.svg b/src/assets/gradient-bg.svg new file mode 100644 index 0000000..e0da2d9 --- /dev/null +++ b/src/assets/gradient-bg.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/TableOfContent.svg b/src/assets/icons/TableOfContent.svg new file mode 100644 index 0000000..2d49d3c --- /dev/null +++ b/src/assets/icons/TableOfContent.svg @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/audit-logs.svg b/src/assets/icons/audit-logs.svg new file mode 100644 index 0000000..eab17a6 --- /dev/null +++ b/src/assets/icons/audit-logs.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/cloud.svg b/src/assets/icons/cloud.svg new file mode 100644 index 0000000..01db657 --- /dev/null +++ b/src/assets/icons/cloud.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/dedicated-cloud.svg b/src/assets/icons/dedicated-cloud.svg new file mode 100644 index 0000000..9ed9558 --- /dev/null +++ b/src/assets/icons/dedicated-cloud.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/icons/discord.svg b/src/assets/icons/discord.svg new file mode 100644 index 0000000..1f3d171 --- /dev/null +++ b/src/assets/icons/discord.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/document-management.svg b/src/assets/icons/document-management.svg new file mode 100644 index 0000000..89808ab --- /dev/null +++ b/src/assets/icons/document-management.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/github.svg b/src/assets/icons/github.svg new file mode 100644 index 0000000..0a86779 --- /dev/null +++ b/src/assets/icons/github.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/self-hosted.svg b/src/assets/icons/self-hosted.svg new file mode 100644 index 0000000..45fcd6a --- /dev/null +++ b/src/assets/icons/self-hosted.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/webhook.svg b/src/assets/icons/webhook.svg new file mode 100644 index 0000000..3dbc8ba --- /dev/null +++ b/src/assets/icons/webhook.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/icons/x.svg b/src/assets/icons/x.svg new file mode 100644 index 0000000..766cebd --- /dev/null +++ b/src/assets/icons/x.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/javascript.png b/src/assets/javascript.png new file mode 100644 index 0000000000000000000000000000000000000000..d8f63b8c3de87b7df3b058ece138dc3d721ba0d7 GIT binary patch literal 18387 zcmd_SbySpH+dhnq(jW~YB_$!11jAT1Jcsn-AZ?NN_RH{%y09&|NOqS z-tYVWS>L_9o#o7R?b+AfXB_8o9(#fm{H!F4gyjAX3F(_J64DKL>)RF*k`oIO(#{toB;H?0 zNcgr%^@{x9gXad)5~AQ0{C6$V;0<10I7-Tjz1V#G5)%WBT1n3y2}yiPQuLFG>+Jr5 zOQp_4@;~^JV4D3xVUh#-=f_l3n8Mfum}zLw=fcAFQ><(FrUlppPB)6U*aVgb3N^>} zx8vOe_Q&^qpLDKK`F?y$9^){`qqm?@CztGS0nhOLW6iSd&#Ss5Kd1LTLE&<|4(@Rw zD2dCPf{BFm_2;CCQM#&`cc|^TjD$q~ z6zLo0W2BGBkC5Jiw=ji~kdVodkbJ=?{~aIycg^JSk0$o!PjRjx5&u#c-QpvTbTs>xR^pZv-GhImEupjjbX8#%SqFAi+s-%8?=V+t??Pt|0~ z(A4=cJcl~*vSIB0TKXU|x?^lpDz4a7eRknOZisH%KAhItK*G9Z%==NPW1tq$HW*1aP0 zu8jRYuyK;Odi?9J#<{SD(AA!S~-N%P$!5{Wo|EG&_xP5#uKYYf|c z@1?%e%%(nz-7|F3G5<8->R|DS(!Z0_SZOZ}g`>Ly0?^A>6x&!kOcOpMe{Uvc7Yk2$ ze}9%&{EE!k6Ot{5%$$TD(sebu2ysJKr{6{?I{2H>0SyRw5ss%l*XTHSdFRq+da*lk zcIc=c^toq3PRhlJ4~~x8MxMcBj!I@Zkc1u2Nyl&Jn47kk8R(0-Rq#k9$T;s6nYHJ{ z5T&c%5JE?O5JF4JzhOB86LKwd-40f#H+S329}He_oT}e)uWuT&*gbM4rG2;3dGvR( zFfY=LjS{ERmuOcuiyH=Z_um~o1;v6nqC041PWzPa5`Pdv51TKj5NShRj8MK0D(68A z+if1b-1M6o!x8th{zck!T))+=?@U$LO-}ywTS4+Ef1P8;LM3I3m&L)b9ZlkC6}l0^ zO9Bh!Srhz=-BRR=L&2DXsVLqOLFxydq)=iVWf9~@h!oRC+2JEEaw?Z0gzjiTOCUGai@UoO%uSIz4$W)3E;hco zGid2CF;ebxDXo7EJBUps4jU+Wpi1qm@kH3dNE00_nF`~H&TFY!@w~2;TeSwXA6^r0 zEbK=!Z*dSicwpcQRdAOXXc}}Qh3uLklYgU+KMU;cVav)<%bv9CHZE`0|M>@_J1wdj z{Sbf1>2Nv@F&|v-cWSWw(;zDb^D**8cgnynhmC2fCy&#Pj%4P>;4`lutIvy!5m=l3 zmwXp*=mlNX7fL_jG1meB@q;%zwMpZq!yymca{5g6u~6qDU-I}uL_fneB~22ukb;nl z`1o3(zFS}EOQfgN-&*)=VdK)31)K)Eb7|^oA3vE8z@;MiIuEpWi3pNV*&mZV^Fnn5h zp`;n+MDp&3K!s#-l-K$|f7awEnOB+Jj;}3aNo2Xmqueuc_!ZrzP4m?KXhP_!8Mw4o zU(Behc?IHK18ut?0XFuEw9ti&_IBWMuI7L#u#{vL1&w8GZDw@oUZksFm$ey^q5UgM z5ecUCDH3hYVacuVbnjW*(~F%Eaf^n_SlWWyPTHV#-#-N;~gr*zUuJ`8`Y_sqByEnEbt7MLw

u4mp~Z3*vXHY&6>5P0p_l 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 CfD>^5 literal 0 HcmV?d00001 diff --git a/src/assets/next.png b/src/assets/next.png new file mode 100644 index 0000000000000000000000000000000000000000..57385c386e5f0bd9f8ce4128e0a638ab0ab81d17 GIT binary patch literal 1486 zcmV;<1u^=GP)K~#7F?VU|} z+cpq}zqZ~t-E}!fP)`u{1W8X|^#pZKAoT>v4eXx4>9Q-PCrFpwN!@jq<^&4Iz=#kd z*(8Xcku~r0z>+13B!Ca|1CSD6XyOGb^EC`jR2PJyhu1I+5BXvk4?-~OVC?w?hT&O4 znX9lYqaHV1*>z0c`y!>9NLT?S{)RW+Zkh%`41VJe0I%)}mc^w=-_A+?sxYUD3 zl^_^ttlX}nrXZL(sc263s!kBhJ@UJb+JfMY6qDah_#B}>cS3qp3L_Vi3x478XK~3r)De{($qlb9smK7v=nmdC=f_ ziPc{f#Ed9{OVQ?L9U5Z@W{LjXBo&=o*D0vaGKOs7ECu2DWgUdRPMmQ_tQ5ZfteN9; zTg=NkG+GD_nuiu4j3;83%BN7xLI8b5Utv0gd9Fj7Al5iNH7%>ZCGNLSA&A&ckpy=jBD;7N#)A;x7VaLF4|0rB z3A~yowyR|!mPoS*7N(*fkdE9If?2{@i7&1a%h4%gT}KT;5XPmLV+rRkQeAgiLJ%Pm zSTAyYldWdg!HrCC>oLD#K7R-M;f8HcmnL{@Pi%7sH!CZ=^N-*1pPZxgDc4cjLacFm zYI-g$(xsxY7D7`01rDt=yR&f0UAAleG5EcGkeRbno^l-}1wnXxYC6UK#UHnrN30;Y zjb9DUX$kkMJv7*s{OjBn2koD`QyQH1ue$<;A(UB%2yY;slZwU)A_*l%=?cePM=3!_ z1G6Xyc}ekIR#gR23LcrKT!(Ri5ZtKAc{jOnW;8hNI*bd3Erhua;{eW!&2<=i2riyz zU>F|G+0At*;~UiDA2>_VbmdPNhKJ*c28Q7wI8m7EF!pdfVOfU)wEVKKtj9Mni~wGf zH`ih8A=t0jRi$Ryc?`bv?z^shkMh6&WhjQPVzINDrB$S1g%;y)P0(2{l@ oW9uKybr=T_3}b*<3B#ztXU2JHvj+t literal 0 HcmV?d00001 diff --git a/src/assets/noise-dark.png b/src/assets/noise-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..62774e6760dfafd7110ea4604043704666b0fc99 GIT binary patch literal 60984 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 N002ovPDHLkV1izw=Sctn literal 0 HcmV?d00001 diff --git a/src/assets/noise-light.png b/src/assets/noise-light.png new file mode 100644 index 0000000000000000000000000000000000000000..de7bc34d4de93db0b703b28cec63f787a5418516 GIT binary patch literal 68435 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 literal 0 HcmV?d00001 diff --git a/src/assets/nuxt.png b/src/assets/nuxt.png new file mode 100644 index 0000000000000000000000000000000000000000..54d5d6db7ae92bf8ea1559b9c2da4c59536bfabf GIT binary patch literal 1211 zcmV;s1VsCZP)~9U0fl%cj0y47O!$=dqZj>a=n#zw82lU! zMCF|pTrK8|zv|@lJ>r7+lq3;2c1QXhc9rU?6^bM%U$hxL`1Ak97gl>SIRL zH>byV;Z|Q8tP9AXlz4Oe;K#^^4q#P4X&fT144?wc?M4+^70}Q)ba>(2RkhpS20iiP zK?7KeF==3C>?71;B4W+9ajY4C@Wm?K_G-o!EsTjRs^aFTY|iY#%t192yb4S}zDN(S;cymgy}eMbrIDp9 z%*Qko6ag#ryT~#cah$(9&Fa%Ikf~# zV~Y*r0Jsje_Rf_n$qX-Na^dbZ4W+VxCC2on;eYsh<-&bz@c}|Klp4Gm2`H*>x0QakElLbtjRX|^t`!&5_PgZ=rPvq` zUJC_mrQdDTICPj9O0Iyd^t*KirPvq@UULO(rQdZJ`X^_VF&MmR1#Ge3MgQ!!76pB> zqraWKL8-d>j(1x&4js9DvQogT-`xj%;zkCg*yIdel>)Z(`K|}+jArn**;5_%6s>8bHIf9e+JHk{r*PdDDpFFq2G;h(3*EZpZBu_Pd$CKrGX_j1-Qp^GHbuk(vb0;XSL ziJ*I&!RzQ@SFIca#R30Nx+dV!lczi=S9YRHU`Ys_LF|~{v%|&zXwMS~ zzKdbP6Y!bqyaJ4ehUAm>e2;G;&bY1*E}%RXK5PO`at+(T6%YhL5ClOG1VIo4K@dcD Z`3InVs$%c%I0^s&002ovPDHLkV1oAj7qb8W literal 0 HcmV?d00001 diff --git a/src/assets/php.png b/src/assets/php.png new file mode 100644 index 0000000000000000000000000000000000000000..68372e568fdace4d7a6af825dae1cce8ef56cbb7 GIT binary patch literal 1057 zcmV++1m63JP)jpm_?PfYlAPY2eBlwE;cR~kE zVLKN3*8|h%3TvbE5nu^KTh=T{|4r;DCmpM{XhyOd)qZEbR_IP1(K%w9LB}J}k75C2 z`%(@)nn3p%sB*80v5MF-UoYrMEP$TaX3*n^UXws_G$SR2yoIgyvVslPw(SzuAQjEk zXLw?hp_z%|`6Vgt8fi@G0d&wW4TcliUKDnk7i)8W=+WIzi6i>Fu9za8ZQ9(7%*iv> z6&tCr)nxiL>H8&OyKG?_!$Bz8>oYJ#0`WwjRetZAKpbg1MFR0c+f!Y^>Yb*-w&V(Y zv|PoG6}ArwA0GT@)yFnQ7=Sf-#yr-c>j@;_g#LABtgzJ#)C~GlL7x*y;0JUQ;($Z9 zeW^SXZdy3&a{^((pG9ov=yn3}kgvafPl)Pef>bX}D}R5$-v@4qZ}@W$?Rx@gQ)V&S z@IPEt{{D#9ck+-YOum=zv4${$yTlS3X-{l5nO@4?E@GeheKruvv_)cPbK>V;Cy=hP zMr1};%b2F6sHMDP`%2n9(PwC8LiBA;AYI7z@;T!!QiPFbu;m48t%C!!QiP bI2peH41wcs0PBeR00000NkvXXu0mjfbAa8i literal 0 HcmV?d00001 diff --git a/src/assets/react.png b/src/assets/react.png new file mode 100644 index 0000000000000000000000000000000000000000..e140feee0425be4362896c2299e9360e72874532 GIT binary patch literal 3535 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 JPDHLkV1j7KxrP7$ literal 0 HcmV?d00001 diff --git a/src/assets/solid.png b/src/assets/solid.png new file mode 100644 index 0000000000000000000000000000000000000000..fbe75db171830aa1a65e9947ef0708a54aabe360 GIT binary patch literal 5736 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 aH~l{()ksJr|9b`i0000k8HzCf-g$pUR!d`lot za=D6q-G?E_Q}B%<3Z4tjDWeH=`IPmTXvFKt>A-8)<6~bA^fPv&PJ;u%X&gmh5_u9N zgt*K2DXYXuVlF;cW&j`j{~MUd5&Z#-s(>+mA87gAH}aF0B{d18NOOyz!Mu?P|4y5$ zqB&pda|*z3fo*bJk_Y!z7fqg7-85kNl17~nhC1;6Uh@n692i4Ckpnh$J(Y!6-4Xk_ zBn6nyduUb{uA>X^<`x>jQp!t(i$GOU@UiEX5JyMXJN0Iftlq@oncj@QHw}RaG~ZK! z!zXNYA1MKrn8#>_r34hKXufQyD6(jgxDS-}B8I6%Sc-(EC2!cz73#}kf28PxWAT?v zrbOt+*WLi%eH*TbpeSsS_d77OHZ{XNZS5RVAska5DA=VGny}aA%Wr}oxeW7zPT>k1 zH;E*#|He|IP5MK&MwuNo@Cisl!w6i^8(>uJ?YG`(hKqsPnJtd_eBqniV1folV4-VK zLYR;PuGAzykaXyr0AK_n`O=8~A^=-YO;C)m8Xfh4p*uE*%BM5|q7?xoJ-Map;_H2W zrZw;_R}CZea}}lf(neQy)yU8wf##<|zye335w;{Bq+%FvQf=(!$)O?vU-Q^<$dckP zK?fpvU``)Zk`Gam7ZWN=+Fp>;FB`5s=L-^;SzbpiHCgf!XhP3z0{FawcD!Ra21LOP zqY3)SrT73zQV95a&K;!8iF`K>zlVsKY7tFGZJI&y>OAjESE_yhhVFTDQjEX? zum(^9x1Ot%Z1SD85!YKcZsokw&YSlmLJg-MzZV%~QEju76}h%#NT4-vAAR9)R$fr0 zHSG>VExgFrP!d1{Y9vI=pRLqZ*Y^s!Q6hQqaien8fu6U7K3qWcdPN}MrjjWp7r;=_ z0}+SqMqt4bETsVrB}mE=z=Epzgc=xnWNQJl!fv2+1G}PRY1IdUIy3-jC<$N!;VIJM zI2Vc9jXR(-u!bHJ0wk+=hW%b#(r?w`l5iZmeA604ELa*`8iNQl68xg)eP808C%7zw zL_}XCOZDPGZb^R~N)j20RbaL#X?2QXQm>Y3M((~nOn4Zr6*h1ZTv8@riS%ntK1wce72_ku_}4ho)20-W(*9S5r{B>4K#hvMFo~39I7>Akt%sLV4~e%9XUZTh=30F z`DzJeO`a3TdNIhlzxOJRM#2(%guvR`0T6QZMCK3cPjSF1ZH@RsT8peH9#dQJ9Z%kY zPFu9ho00>*=&zBR0KvkG7$77#Ne|*|^yCHg(LhJR}N-^|cCG`XQ0C?szv# zHx7`zsPp`zxON1R2ObACo2asY#-3Njl?}c5@$hYO_lxx z&=Lu$$r8(F^j_sAPvGeb`yMik*a2hB`6iUUX+`$!16BbOC~!2_?E|{W*T)FmE;TjD z@?$^5#Vfh2wj$8w} zhHhk0Z@h>jF#e(IzA)IP6%P?bpdiDZ3F*k7-lQU$K*1LG030kxgpfqw5*%2hjGNF9 z7$7zAAPa$l0j6}8;y*XC5x7K#r-UA&t%97}-wlQA1TMj;&KuhZQT(GnA(p9HsMxxb z#4XVqfvZq5C2y1jx!qMmj#W}?BHPAY6!3qzQJ*NZKH&-f5Bv*C>{9F+F#N~>0000< KMNUMnLSTYT2EF9~ literal 0 HcmV?d00001 diff --git a/src/assets/vue.png b/src/assets/vue.png new file mode 100644 index 0000000000000000000000000000000000000000..5d04003ddef1473926c738e1525ed8731fef6454 GIT binary patch literal 1632 zcmV-m2A}zfP)c1@QE^40tRnqSZ$u|+B? z(p82XNR<+P0IC;d3CaScO0j*Ja}%e|_-p2zJ9nniJW>?L8PCU=Gxxmr^|?S!PEJlv zPEI5s7PjGp%wdunGS7zoX^(mCW;N0B_NGQP5pDC>t!KC=%7+&n`fx}eo zi|UiDAAJazuFa1(RBHzeikDx9QedN@A9yG>*Py_Q0G-6u^H3!ZERwL4#e$(7pec@2z%LGkJvP-6vf(MqlQ zb8B^zI{x+V9t2sq3nsW#8!!#=u9{{n@1-%)XA_YT+IP zjC_0n94LbdBdxoL$<*~btK94xnRyE$JUxH>vi-uJTk`1_n4G#eYJONKEK)Iuy1Cg_ zgOz=hdF=CqDIA;I*H(UQ|9xWg*SfGEDJXPjnFXcXP|fe7Zrt=VyZDsYC!4TH$<|A zv{iz#ruo5 z*18g_uMV$nt&>2lfXV((&(M7K91Qjv&%H~#{^p63rNTj?nG-7G$eQC~!Idp$JeJ57y7rK4>E2`r zpFY07qP1EDlY`&>#*5$o0Sn!#DyZ>b0B2QRk}Xs`xER?oyF4&}L({{^8lVm)M%FMN zA*H;BlKHMAc!%@d<)L+8XaJ3@(O3WzdW=SA-UbIM8WPzefn-aR?II0Osm_y`$CJ1% z!A_QgLfIa5MfG-H80eMGl~U?c3d8Q032)1HX`b!=y=CwuFhNG19dE zBS3{i=C&A{KGp;x*43nI{}0EOO&{kovD3lW{~}pa7F}dNY})j(jtd47Swn~i`5w5E zEn!#z%$lsB%#+EMpl~p+Tm>Bzi;%wyYDf76!IE3jgs4f2i3s{?&wps;|{ZC(oMlC35%9b$J0_du% zA&Kq+30AFr(=A1vbya|D1eTf#UC zpw#}4iVd4S4o-?lC)LO6JHazHi9|?VwuEu_2p=I`)Hrb8(CmfdT$~3`+SSkxQ#fiX zKf^K314u|0HTK@AyTZ{)Dgl(*|6y#~^l?ZffP}QG;U&En0lFf!07@4%w&}MB&=t;Q zOc>cb*}ZHDlUfG0k=Xx(76G~<^#F1gHM*Sd4kGmc8gwDvJUPN5Kv!fUfN^Dwv?1wdwT_7Pd0W`8k4WB2wu<7HFx{L`kNY;6+@82ig6En>PFJoO%O ea&mHVGRgnq7ig7h^j<6g0000 + +export const Wrapper = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const cardGridClass = cn('no-markdown grid grid-cols-1 gap-5 sm:grid-cols-2', className) + const Component = asChild ? Slot : 'div' + + return ( + + {children} + + ) + }, +) + +Wrapper.displayName = 'CardGrid.Wrapper' + +export type CardGridItemProps = { + asChild?: boolean +} & React.ButtonHTMLAttributes + +export const Item = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const cardGridItemClass = cn( + 'flex flex-col items-stretch justify-start appearance-none text-left', + className, + ) + + return ( + + {children} + + ) + }, +) + +Item.displayName = 'CardGrid.Item' + +export type CardGridItemImage = { + asNextImage?: boolean +} & Omit & { + src: any + } + +export const ItemImage = forwardRef( + ({ asNextImage, className, ...rest }, ref) => { + const cardGridImageClass = cn('w-full object-cover rounded-lg aspect-[318/165] mb-4', className) + const Component = asNextImage ? Image : 'img' + + return + }, +) + +ItemImage.displayName = 'CardGrid.ItemImage' + +export type CardGridItemTitleProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const ItemTitle = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const cardGridTitleClass = cn('leading-[140%] font-bold', className) + const Component = asChild ? Slot : 'h3' + + return ( + + {children} + + ) + }, +) + +ItemTitle.displayName = 'CardGrid.ItemTitle' + +export type CardGridItemParagraphProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const ItemParagraph = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const cardGridParagraphClass = cn('leading-[140%] mt-2', className) + const Component = asChild ? Slot : 'div' + + return ( + + {children} + + ) + }, +) + +ItemParagraph.displayName = 'CardGrid.ItemParagraph' + +export type CardGridItemFooterProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const ItemFooter = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const cardGridFooterClass = cn( + 'flex items-center justify-between gap-2 w-full pt-4 mt-auto self-end', + className, + ) + const Component = asChild ? Slot : 'footer' + + return ( + +
{children}
+
+ +
+
+ ) + }, +) + +ItemFooter.displayName = 'CardGrid.ItemFooter' + +export type CardGridSubtitleProps = { + asChild?: boolean + size?: 'sm' | 'md' +} & React.HTMLAttributes + +export const Subtitle = forwardRef( + ({ asChild, children, className, size = 'md', ...rest }, ref) => { + const cardGridItemCountClass = cn( + 'font-black leading-[120%] text-grayAlpha-600 mb-3', + size === 'md' ? 'text-[1.375rem]' : '', + size === 'sm' ? 'text-[0.875rem]' : '', + className, + ) + const Component = asChild ? Slot : 'span' + + return ( + +
{children}
+
+ ) + }, +) + +Subtitle.displayName = 'CardGrid.Subtitle' + +export type CardGridItemImageIconProps = {} & React.HTMLAttributes + +export const ItemImageIcon = forwardRef( + ({ className, ...rest }, ref) => { + const imageClassName = cn('h-10 w-auto', className) + + return ( +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + +
+ ) + }, +) + +ItemImageIcon.displayName = 'CardGrid.ItemImageIcon' diff --git a/src/components/CodeDemo.tsx b/src/components/CodeDemo.tsx new file mode 100644 index 0000000..4faf924 --- /dev/null +++ b/src/components/CodeDemo.tsx @@ -0,0 +1,17 @@ +'use client' + +import IframeResizer from 'iframe-resizer-react' +import { DEMO_URL, PRO_DEMO_URL } from '@/utils/constants' + +export type CodeDemoProps = { + path: string + isPro?: boolean +} + +export const CodeDemo = ({ path, isPro }: CodeDemoProps) => { + return ( +
+ +
+ ) +} diff --git a/src/components/CodeExample.tsx b/src/components/CodeExample.tsx new file mode 100644 index 0000000..190348d --- /dev/null +++ b/src/components/CodeExample.tsx @@ -0,0 +1,48 @@ +'use client' + +import { + SandpackProvider, + SandpackCodeEditor, + SandpackPreview, + SandpackProps, +} from '@codesandbox/sandpack-react' +import { + defaultFiles, + sandpackTheme, + dependencies, + proDependencies, +} from '@/utils/sandpackConfiguration' + +export type CodeExampleProps = { + withPro?: boolean +} & SandpackProps + +const getDependencies = (withPro?: boolean) => { + return withPro + ? { + ...dependencies, + ...proDependencies, + } + : dependencies +} + +export const CodeExample = ({ files, withPro = false, ...rest }: CodeExampleProps) => { + return ( + +
+ + +
+
+ ) +} diff --git a/src/components/Codeblock.tsx b/src/components/Codeblock.tsx new file mode 100644 index 0000000..a73e72e --- /dev/null +++ b/src/components/Codeblock.tsx @@ -0,0 +1,48 @@ +'use client' + +import { useClipboard } from '@mantine/hooks' +import { CopyIcon } from 'lucide-react' +import { forwardRef, useCallback, useRef } from 'react' +import { toast } from 'sonner' +import { cn } from '@/utils' + +export type CodeblockProps = { + disableCopy?: boolean +} & React.HTMLAttributes + +export const Codeblock = forwardRef( + ({ children, className, disableCopy, ...rest }, ref) => { + const contentRef = useRef(null) + const wrapperClassName = cn( + 'bg-black text-white my-5 p-4 rounded-lg text-sm flex items-start gap-2', + className, + ) + + const clipboard = useClipboard({ timeout: 500 }) + + const onCopy = useCallback(() => { + if (contentRef.current) { + clipboard.copy(contentRef.current.textContent) + toast('Copied to clipboard', { duration: 1200 }) + } + }, [clipboard]) + + return ( +
+
+ {children} +
+ {disableCopy ? null : ( + + )} +
+ ) + }, +) + +Codeblock.displayName = 'Codeblock' diff --git a/src/components/CtaBox.tsx b/src/components/CtaBox.tsx new file mode 100644 index 0000000..55fd18b --- /dev/null +++ b/src/components/CtaBox.tsx @@ -0,0 +1,150 @@ +import { Slot } from '@radix-ui/react-slot' +import { forwardRef } from 'react' +import { CheckIcon } from 'lucide-react' +import { NoisePattern } from './NoisePattern' +import { cn } from '@/utils' + +import gradientBgDark from '@/assets/gradient-bg.svg?url' +import gradientBgLight from '@/assets/gradient-bg-light.svg?url' + +export type WrapperProps = { + asChild?: boolean + variant?: 'dark' | 'light' +} & React.HTMLAttributes + +export const Wrapper = forwardRef( + ({ asChild, variant = 'dark', children, className, ...rest }, ref) => { + const boxClass = cn( + 'no-markdown relative text-white rounded-xl bg-gray-950 overflow-hidden shadow-cardLight', + 'transition-shadow hover:shadow-cardHover', + variant === 'dark' ? 'bg-gray-950 text-white' : 'bg-white text-black', + className, + ) + const patternClass = cn( + 'absolute bottom-0 right-0 rotate-45 z-0', + variant === 'dark' ? 'translate-x-[40%] translate-y-[52%] rotate-45' : '', + variant === 'light' ? 'translate-x-[40%] translate-y-[43%] rotate-12' : '', + ) + const imageClass = cn('bg-cover', variant === 'dark' ? 'size-[48rem]' : 'size-[38rem]') + + const Component = asChild ? Slot : 'section' + + return ( + +
{children}
+ +
+ + + ) + }, +) + +Wrapper.displayName = 'CtaBox.Wrapper' + +export type TitleProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Title = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const titleClass = cn('text-[1.75rem] leading-[110%] font-serif', className) + const Component = asChild ? Slot : 'h2' + + return ( + + {children} + + ) + }, +) + +Title.displayName = 'CtaBox.Title' + +export type DescriptionProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Description = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const descriptionClass = cn('mt-2.5 text-[1.125rem] leading-[160%]', className) + const Component = asChild ? Slot : 'p' + + return ( + + {children} + + ) + }, +) + +Description.displayName = 'CtaBox.Description' + +export type ListProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const List = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const listClass = cn('mt-5 space-y-1', className) + const Component = asChild ? Slot : 'ul' + + return ( + + {children} + + ) + }, +) + +List.displayName = 'CtaBox.List' + +export type ListItemProps = { + asChild?: boolean + title?: string +} & React.HTMLAttributes + +export const ListItem = forwardRef( + ({ asChild, children, className, title, ...rest }, ref) => { + const listItemClass = cn('flex items-center gap-2', className) + const Component = asChild ? Slot : 'li' + + return ( + + + + + + {title ? {title} : null} + {children} + + + ) + }, +) + +ListItem.displayName = 'CtaBox.ListItem' + +export type ActionsProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Actions = forwardRef( + ({ asChild, children, className, ...rest }, ref) => { + const actionsClass = cn('mt-4 flex items-center gap-1', className) + const Component = asChild ? Slot : 'div' + + return ( + + {children} + + ) + }, +) + +Actions.displayName = 'CtaBox.Actions' diff --git a/src/components/DocsHeader.tsx b/src/components/DocsHeader.tsx new file mode 100644 index 0000000..5d18784 --- /dev/null +++ b/src/components/DocsHeader.tsx @@ -0,0 +1,33 @@ +'use client' + +import { usePathname } from 'next/navigation' +import { PageHeader } from './PageHeader' +import { PageMeta, SidebarConfig } from '@/types' + +type DocsHeaderProps = { + allMeta: Record + sidebarConfig: SidebarConfig +} + +export const DocsHeader = ({ allMeta, sidebarConfig }: DocsHeaderProps) => { + const pathname = usePathname() + const meta = allMeta[pathname] + + if (!meta) { + return null + } + + return ( + + + {meta.pageTitle} + {meta.pageDescription ? ( + + ) : null} + + ) +} diff --git a/src/components/ExtensionGrid.tsx b/src/components/ExtensionGrid.tsx new file mode 100644 index 0000000..62df55e --- /dev/null +++ b/src/components/ExtensionGrid.tsx @@ -0,0 +1,252 @@ +'use client' + +import { SearchIcon } from 'lucide-react' +import { useCallback, useMemo, useState } from 'react' +import { CloseIcon } from '@codesandbox/sandpack-react' +import Link from 'next/link' +import { Tag } from './ui/Tag' +import { Card } from './ui/Card' +import { Button } from './ui/Button' +import { ExtensionMetaWithUrl } from '@/types' +import { getIcon } from '@/utils/iconKit' + +const SEARCH_FILTER = { + ALL: 'all', + FREE: 'free', + PRO: 'pro', + CLOUD: 'cloud', + EXPERIMENT: 'experiment', +} as const + +type SearchFilter = (typeof SEARCH_FILTER)[keyof typeof SEARCH_FILTER] + +function useSearch() { + const [query, setQuery] = useState('') + const [filter, setFilter] = useState(SEARCH_FILTER.ALL) + + const handleInput = useCallback((e: React.ChangeEvent) => { + setQuery(e.target.value) + }, []) + + const clear = useCallback(() => { + setQuery('') + }, []) + + const showAll = useCallback(() => { + setFilter(SEARCH_FILTER.ALL) + }, []) + + const showFree = useCallback(() => { + setFilter(SEARCH_FILTER.FREE) + }, []) + + const showPro = useCallback(() => { + setFilter(SEARCH_FILTER.PRO) + }, []) + + const showCloud = useCallback(() => { + setFilter(SEARCH_FILTER.CLOUD) + }, []) + + const showExperiment = useCallback(() => { + setFilter(SEARCH_FILTER.EXPERIMENT) + }, []) + + return { + query, + handleInput, + clear, + filter, + showAll, + showFree, + showPro, + showCloud, + showExperiment, + } +} + +function useFilteredExtensions( + query: string, + extensions?: ExtensionMetaWithUrl[], + filter?: SearchFilter, +) { + if (!extensions) return [] + + return extensions.filter((ext) => { + if (filter === SEARCH_FILTER.FREE && ext.isPro) return false + if (filter === SEARCH_FILTER.PRO && !ext.isPro) return false + if (filter === SEARCH_FILTER.CLOUD && !ext.isCloud) return false + if (filter === SEARCH_FILTER.EXPERIMENT && !ext.isExperiment) return false + + return ( + ext.name.toLowerCase().includes(query.toLowerCase()) || + ext.description.toLowerCase().includes(query.toLowerCase()) + ) + }) +} + +function ExtensionCard({ ext }: { ext: ExtensionMetaWithUrl }) { + const Icon = getIcon(ext.icon) + return ( + + +
+ {!!Icon ? : null} +
+ {ext.isNew ? New : null} +
+
+
{ext.name}
+
{ext.description}
+
+ {ext.isCloud ? Cloud : null} + {ext.isPro ? Pro : null} + {ext.isExperiment ? Experiment : null} +
+ +
+ ) +} + +function ExtensionGroup({ + extensions, + title, +}: { + extensions: ExtensionMetaWithUrl[] + title: string +}) { + return ( +
+
{title}
+
+ {extensions.map((ext) => ( + + ))} +
+
+ ) +} + +function FilterButton({ + onClick, + children, + isActive, +}: { + onClick: () => void + children: React.ReactNode + isActive?: boolean +}) { + return ( + + ) +} + +function useAllExtensions( + nodeExtensions: ExtensionMetaWithUrl[] | undefined, + markExtensions: ExtensionMetaWithUrl[] | undefined, + functionalityExtensions: ExtensionMetaWithUrl[] | undefined, +) { + return [...(nodeExtensions || []), ...(markExtensions || []), ...(functionalityExtensions || [])] +} + +export type ExtensionGridProps = { + nodeExtensions?: ExtensionMetaWithUrl[] + markExtensions?: ExtensionMetaWithUrl[] + functionalityExtensions?: ExtensionMetaWithUrl[] + hideAll?: boolean + hideFree?: boolean +} + +export const ExtensionGrid = ({ + functionalityExtensions, + markExtensions, + nodeExtensions, + hideAll, + hideFree, +}: ExtensionGridProps) => { + const { clear, handleInput, query, filter, showAll, showFree, showPro, showCloud } = useSearch() + const allExtensions = useAllExtensions(nodeExtensions, markExtensions, functionalityExtensions) + const filteredNodeExtensions = useFilteredExtensions(query, nodeExtensions, filter) + const filteredMarkExtensions = useFilteredExtensions(query, markExtensions, filter) + const filteredFunctionalityExtensions = useFilteredExtensions( + query, + functionalityExtensions, + filter, + ) + + const hasFreeExtensions = useMemo(() => allExtensions.some((ext) => !ext.isPro), [allExtensions]) + const hasProExtensions = useMemo(() => allExtensions.some((ext) => ext.isPro), [allExtensions]) + const hasCloudExtensions = useMemo( + () => allExtensions.some((ext) => ext.isCloud), + [allExtensions], + ) + + const noExtensions = + (!nodeExtensions && !markExtensions && !functionalityExtensions) || + (filteredNodeExtensions.length === 0 && + filteredMarkExtensions.length === 0 && + filteredFunctionalityExtensions.length === 0) + + return ( +
+
+ +
+ {!hideAll ? ( + + All + + ) : null} + {hasFreeExtensions && !hideFree ? ( + + Free + + ) : null} + {hasProExtensions ? ( + + Pro + + ) : null} + {hasCloudExtensions ? ( + + Cloud + + ) : null} +
+
+
+ {noExtensions ? ( +
+ No extensions found for{' '} + {query ? "{query}" : 'your filters.'} +
+ ) : null} + {nodeExtensions && filteredNodeExtensions.length > 0 ? ( + + ) : null} + {markExtensions && filteredMarkExtensions.length > 0 ? ( + + ) : null} + {functionalityExtensions && filteredFunctionalityExtensions.length > 0 ? ( + + ) : null} +
+
+ ) +} diff --git a/src/components/Extensions.tsx b/src/components/Extensions.tsx new file mode 100644 index 0000000..2e0e536 --- /dev/null +++ b/src/components/Extensions.tsx @@ -0,0 +1,35 @@ +import { ExtensionGrid } from './ExtensionGrid' +import { getExtensions } from '@/server/getExtensions' +import { ExtensionType } from '@/types' + +export const Extensions = async ({ + path = '/', + hideAll, + hideFree, +}: { + path?: string + hideAll?: boolean + hideFree?: boolean +}) => { + const extensions = await getExtensions(path) + + const extensionsArray = Object.values(extensions) + + const nodeExtensions = extensionsArray.filter((ext) => ext.type === ExtensionType.Node) + const markExtensions = extensionsArray.filter((ext) => ext.type === ExtensionType.Mark) + const functionalityExtensions = extensionsArray.filter( + (ext) => ext.type === ExtensionType.Functionality, + ) + + return ( +
+ +
+ ) +} diff --git a/src/components/FilterGrid.tsx b/src/components/FilterGrid.tsx new file mode 100644 index 0000000..7e85b7e --- /dev/null +++ b/src/components/FilterGrid.tsx @@ -0,0 +1,75 @@ +'use client' + +import { createContext, useContext, useState } from 'react' +import { Button } from './ui/Button' + +export type FilterGridContextValue = { + currentFilter: string | null + // eslint-disable-next-line no-unused-vars + setCurrentFilter: (filter: string | null) => void +} + +export const FilterGridContext = createContext({ + currentFilter: null, + setCurrentFilter: () => {}, +}) + +export const useFilterGrid = () => useContext(FilterGridContext) + +export type FilterGridWrapperProps = { + filters: string[] + initialFilter?: string + children: React.ReactNode +} + +export const Wrapper = ({ filters, initialFilter, children }: FilterGridWrapperProps) => { + const [currentFilter, setCurrentFilter] = useState( + initialFilter || null, + ) + + return ( + +
+
+ + {filters.map((filter) => ( + + ))} +
+
{children}
+
+
+ ) +} + +export type ItemProps = { + filter: string | string[] + children: React.ReactNode +} + +export const Item = ({ filter, children }: ItemProps) => { + const { currentFilter } = useFilterGrid() + + const hasFilter = !currentFilter !== null + const isFilter = + currentFilter === null || currentFilter === filter || filter.includes(currentFilter) + + if (!hasFilter || !isFilter) { + return null + } + + return children +} diff --git a/src/components/Grid.tsx b/src/components/Grid.tsx new file mode 100644 index 0000000..79c81db --- /dev/null +++ b/src/components/Grid.tsx @@ -0,0 +1,117 @@ +import { Slot } from '@radix-ui/react-slot' +import React, { forwardRef } from 'react' +import { cn } from '@/utils' + +export type GridWrapperProps = { + asChild?: boolean +} & React.HTMLProps + +export const Wrapper = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const Component = asChild ? Slot : 'div' + const wrapperClass = cn('no-markdown grid gap-8', className) + + return ( + + {children} + + ) + }, +) + +Wrapper.displayName = 'Grid.Wrapper' + +export type GridItemProps = { + asChild?: boolean +} & React.HTMLProps + +export const Item = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const Component = asChild ? Slot : 'div' + const itemClass = cn('group', className) + + return ( + + {children} + + ) + }, +) + +Item.displayName = 'Grid.Item' + +export type GridItemHeaderProps = { + asChild?: boolean +} & React.HTMLProps + +export const ItemHeader = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const Component = asChild ? Slot : 'header' + const itemHeaderClass = cn('mb-4', className) + + return ( + + {children} + + ) + }, +) + +ItemHeader.displayName = 'Grid.ItemHeader' + +export type GridItemContentProps = { + asChild?: boolean +} & React.HTMLProps + +export const ItemContent = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const Component = asChild ? Slot : 'div' + const itemContentClass = cn('', className) + + return ( + + {children} + + ) + }, +) + +ItemContent.displayName = 'Grid.ItemContent' + +export type GridItemTitleProps = { + asChild?: boolean +} & React.HTMLProps + +export const ItemTitle = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const Component = asChild ? Slot : 'h3' + const itemTitleClass = cn('text-base font-bold mb-2 leading-[140%]', className) + + return ( + + {children} + + ) + }, +) + +ItemTitle.displayName = 'Grid.ItemTitle' + +export type GridItemParagraph = { + asChild?: boolean +} & React.HTMLProps + +export const ItemParagraph = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const Component = asChild ? Slot : 'p' + const itemParagraphClass = cn('text-base leading-[140%]', className) + + return ( + + {children} + + ) + }, +) + +ItemParagraph.displayName = 'Grid.ItemParagraph' diff --git a/src/components/ImageCard.tsx b/src/components/ImageCard.tsx new file mode 100644 index 0000000..5cb6044 --- /dev/null +++ b/src/components/ImageCard.tsx @@ -0,0 +1,86 @@ +import { Slot } from '@radix-ui/react-slot' +import { forwardRef } from 'react' +import { Card as CoreCard } from './ui/Card' +import { cn } from '@/utils' + +export type CardProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Card = forwardRef( + ({ asChild, className, children, ...props }, ref) => { + const cardClass = cn('no-markdown grid sm:grid-cols-2 gap-8', className) + + return ( + + {children} + + ) + }, +) + +Card.displayName = 'ImageCard.Card' + +export type CardImageProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Image = forwardRef( + ({ asChild, className, ...props }, ref) => { + const Component = asChild ? Slot : 'img' + const imageClass = cn('rounded-lg shadow-cardLight', className) + + return + }, +) + +Image.displayName = 'ImageCard.Image' + +export type ContentProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Content = forwardRef( + ({ asChild, className, ...props }, ref) => { + const Component = asChild ? Slot : 'div' + const contentClass = cn('flex flex-col justify-center', className) + + return + }, +) + +Content.displayName = 'ImageCard.Content' + +export type CardTitleProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Title = forwardRef( + ({ asChild, className, ...props }, ref) => { + const Component = asChild ? Slot : 'p' + const titleClass = cn('text-base font-bold leading-[140%]', className) + + return + }, +) + +Title.displayName = 'ImageCard.Title' + +export type CardParagraphProps = { + asChild?: boolean +} & React.HTMLAttributes + +export const Paragraph = forwardRef( + ({ asChild, className, ...props }, ref) => { + const Component = asChild ? Slot : 'p' + const paragraphClass = cn( + 'text-base leading-[140%]', + '[&:not(:first-child)]:mt-2 [&:not(:last-child)]:mb-6', + className, + ) + + return + }, +) + +Paragraph.displayName = 'ImageCard.Paragraph' diff --git a/src/components/MobileNavigationButton.tsx b/src/components/MobileNavigationButton.tsx new file mode 100644 index 0000000..1d18dad --- /dev/null +++ b/src/components/MobileNavigationButton.tsx @@ -0,0 +1,43 @@ +'use client' + +import { useMemo } from 'react' +import { usePathname } from 'next/navigation' +import { ChevronDownIcon } from 'lucide-react' +import { Button } from './ui/Button' +import { useAppState } from '@/providers/AppState' +import { SidebarConfig, SidebarGroup, SidebarLink } from '@/types' + +export const MobileNavigationButton = ({ config }: { config?: SidebarConfig }) => { + const { setMobileNavigationOpen } = useAppState() + const pathName = usePathname() + + const currentItem = useMemo(() => { + const flattenItems = (items: Array): SidebarLink[] => { + return items.flatMap((item) => { + if (item.type === 'group') { + return flattenItems(item.children as SidebarLink[]) + } + + if (item.children) { + return [item, ...flattenItems(item.children as SidebarLink[])] + } + return [item] + }) + } + + const items = flattenItems(config?.items ?? []) + return items.find((item) => item.href === pathName) + }, [config, pathName]) + + return ( + + ) +} diff --git a/src/components/MobileNavigationDropdown.tsx b/src/components/MobileNavigationDropdown.tsx new file mode 100644 index 0000000..7a9a6c5 --- /dev/null +++ b/src/components/MobileNavigationDropdown.tsx @@ -0,0 +1,100 @@ +'use client' + +import * as DropdownMenu from '@radix-ui/react-dropdown-menu' +import { ChevronDownIcon } from 'lucide-react' +import { usePathname } from 'next/navigation' +import { useMemo } from 'react' +import { NavLink } from './NavLink' +import { NavLinkButton } from './ui/NavLinkButton' +import { cn } from '@/utils' + +const options = [ + { + label: 'Features', + items: [ + { label: 'Editor', href: '/editor/getting-started/overview' }, + { + label: 'Collaboration', + href: '/collaboration/getting-started/overview', + }, + { label: 'Content AI', href: '/content-ai/getting-started/overview' }, + { label: 'Comments', href: '/comments/getting-started/overview' }, + ], + }, + { + label: 'Others', + items: [ + { label: 'Guides', href: '/guides' }, + { label: 'Examples', href: '/examples' }, + { + label: 'Templates', + href: 'https://templates.tiptap.dev', + target: '_blank', + }, + { label: 'Website', href: 'https://tiptap.dev', target: '_blank' }, + ], + }, +] + +export const MobileNavigationDropdown = () => { + const pathname = usePathname() + + const activeItem = useMemo(() => { + const flatOptions = options.flatMap((group) => group.items) + + return flatOptions.find((option) => { + if (option.href === '/') { + return pathname === '/' + } else { + const firstPart = option.href.split('/')[1] + if (firstPart === '') { + return false + } + + return pathname.startsWith(`/${firstPart}`) + } + }) + }, [pathname]) + + const buttonClass = cn('text-base outline-none', !!activeItem ? 'font-semibold' : 'font-normal') + + return ( + + + + {activeItem?.label || 'All docs'} + + + + + + {options.map((group, i) => ( +
+
+ {group.label} +
+ {group.items.map((option) => ( + + + {option.label} + + + ))} +
+ ))} +
+ + Sign up + +
+
+
+
+ ) +} diff --git a/src/components/MobileSidebarNavigation.tsx b/src/components/MobileSidebarNavigation.tsx new file mode 100644 index 0000000..3dc6e8c --- /dev/null +++ b/src/components/MobileSidebarNavigation.tsx @@ -0,0 +1,42 @@ +'use client' + +import * as Dialog from '@radix-ui/react-dialog' +import React, { useCallback } from 'react' +import { DocsSidebar } from './SidebarRenderer' +import { useAppState } from '@/providers/AppState' +import { cn } from '@/utils' +import { SidebarConfig } from '@/types' + +export const MobileSidebarNavigation = ({ config }: { config: SidebarConfig }) => { + const { mobileNavigationOpen, setMobileNavigationOpen } = useAppState() + + const handleOnClick = useCallback(() => { + setMobileNavigationOpen(false) + }, [setMobileNavigationOpen]) + + const overlayClassName = cn('fixed inset-0 bg-transparent z-[100] block') + + const contentClassName = cn( + 'fixed top-[7rem] left-3 max-h-[90vh] h-[calc(100dvh-8rem)] w-[calc(100vw-1.5rem)] md:max-w-[20rem] z-[101]', + 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-8', + 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-8', + 'data-[state=open]:duration-300 data-[state=closed]:duration-300', + ) + + return ( + + + + +
+
+
+ +
+
+
+
+
+
+ ) +} diff --git a/src/components/MobileTableOfContent.tsx b/src/components/MobileTableOfContent.tsx new file mode 100644 index 0000000..99c83f1 --- /dev/null +++ b/src/components/MobileTableOfContent.tsx @@ -0,0 +1,45 @@ +'use client' + +import * as Dialog from '@radix-ui/react-dialog' +import { useCallback } from 'react' +import { TableOfContent } from './TableOfContent' +import { useAppState } from '@/providers/AppState' +import { cn } from '@/utils' +import { useToC } from '@/hooks/useToC' + +export const MobileTableOfContent = () => { + const { headlines, activeId } = useToC() + const { mobileTocOpen, setMobileTocOpen } = useAppState() + + const handleOnClick = useCallback(() => { + setMobileTocOpen(false) + }, [setMobileTocOpen]) + + if (!headlines.length) return null + + const overlayClassName = cn('fixed inset-0 bg-transparent z-[100] block') + + const contentClassName = cn( + 'fixed top-[7rem] lg:top-[4.5rem] max-h-[calc(100dvh-8rem)] lg:max-h-[calc(100%-4.5rem)] right-3 w-full max-w-[20rem] z-[101]', + 'data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:slide-in-from-top-8', + 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-8', + 'data-[state=open]:duration-300 data-[state=closed]:duration-300', + ) + + return ( + + + + +
+
+
+ +
+
+
+
+
+
+ ) +} diff --git a/src/components/NavLink.tsx b/src/components/NavLink.tsx new file mode 100644 index 0000000..22956c0 --- /dev/null +++ b/src/components/NavLink.tsx @@ -0,0 +1,45 @@ +'use client' + +import { ExternalLinkIcon } from 'lucide-react' +import { usePathname } from 'next/navigation' +import { HTMLAttributeAnchorTarget, forwardRef } from 'react' +import Link from 'next/link' +import { NavLinkButton } from '@/components/ui/NavLinkButton' + +export type NavLinkProps = { + href: string + children: React.ReactNode + className?: string + target?: HTMLAttributeAnchorTarget + isDirectActive?: boolean + hideIcon?: boolean + variant?: 'default' | 'invert' +} + +export const NavLink = forwardRef( + ({ children, className, href, hideIcon, variant = 'default', target, isDirectActive }, ref) => { + const pathname = usePathname() + const isExternal = href.startsWith('http') + + const isActive = pathname === href + const isActiveParent = href !== '/' && pathname.startsWith(`${href}`) + + return ( + + + {children} + {isExternal && !hideIcon ? ( + + ) : null} + + + ) + }, +) + +NavLink.displayName = 'NavLink' diff --git a/src/components/NoisePattern.tsx b/src/components/NoisePattern.tsx new file mode 100644 index 0000000..984d53c --- /dev/null +++ b/src/components/NoisePattern.tsx @@ -0,0 +1,28 @@ +import { cn } from '@/utils' +import noiseLight from '@/assets/noise-light.png' +import noiseDark from '@/assets/noise-dark.png' + +export type NoisePatternProps = { + children: React.ReactNode + className?: string + variant?: 'light' | 'dark' +} + +export const NoisePattern = ({ className, children, variant = 'light' }: NoisePatternProps) => { + const noiseClassName = cn( + 'absolute inset-0 w-full h-full bg-repeat bg-[length:480px_480px]', + variant === 'light' ? 'mix-blend-soft-light bg-blend-soft-light' : 'opacity-40', + ) + + return ( +
+ {children} +
+
+ ) +} diff --git a/src/components/PageHeader.client.tsx b/src/components/PageHeader.client.tsx new file mode 100644 index 0000000..9036f77 --- /dev/null +++ b/src/components/PageHeader.client.tsx @@ -0,0 +1,73 @@ +'use client' + +import { usePathname } from 'next/navigation' +import { forwardRef } from 'react' +import { Slot } from '@radix-ui/react-slot' +import Link from 'next/link' +import { SidebarConfig } from '@/types' +import { cn } from '@/utils' +import { generateBreadcrumbs } from '@/utils/generateBreadcrumbs' + +export type PageHeaderBreadcrumbsProps = { + asChild?: boolean + config: SidebarConfig +} & React.HTMLAttributes + +export const PageHeaderBreadcrumbs = forwardRef( + ({ asChild, config, className, ...props }, ref) => { + 'use client' + + const Component = asChild ? Slot : 'div' + const pathname = usePathname() + + const crumbs = generateBreadcrumbs(config, pathname) + + const wrapperClass = cn('flex items-center gap-2 mb-3', className) + + const breadcrumbClass = cn( + 'text-sm leading-[110%] text-grayAlpha-500 font-semibold select-none', + ) + + const clickableBreadcrumbClass = cn(breadcrumbClass, 'text-purple-500 hover:underline') + + const schemaLdJson = { + '@context': 'https://schema.org', + '@type': 'BreadcrumbList', + itemListElement: crumbs.map((crumb, i) => ({ + '@type': 'ListItem', + position: i + 1, + item: { + '@id': crumb.href, + name: crumb.text, + }, + })), + } + + return ( + <> + + {crumbs.map((crumb, i) => ( +
+ {crumb.href ? ( + + {crumb.text} + + ) : ( + {crumb.text} + )} + {i < crumbs.length - 1 ? ( + / + ) : null} +
+ ))} +
+ + + ) + }, +) + +PageHeaderBreadcrumbs.displayName = 'PageHeader.Breadcrumb' diff --git a/src/components/PageHeader.tsx b/src/components/PageHeader.tsx new file mode 100644 index 0000000..5823b35 --- /dev/null +++ b/src/components/PageHeader.tsx @@ -0,0 +1,136 @@ +import { Slot } from '@radix-ui/react-slot' +import { forwardRef } from 'react' +import Link from 'next/link' +import { PageHeaderBreadcrumbs } from './PageHeader.client' +import { Tag } from './ui/Tag' +import { cn } from '@/utils' +import { ImagePageTag, PageTag } from '@/types' + +export type PageHeaderWrapperProps = { + asChild?: boolean +} & React.HTMLAttributes + +const PageHeaderWrapper = forwardRef( + ({ asChild, children, className, ...props }, ref) => { + const Component = asChild ? Slot : 'header' + + const wrapperClass = cn('mb-12 max-w-[42rem]', className) + + return ( + + {children} + + ) + }, +) + +PageHeaderWrapper.displayName = 'PageHeader.Wrapper' + +export type PageHeaderTitleProps = { + asChild?: boolean +} & React.HTMLAttributes + +const PageHeaderTitle = forwardRef( + ({ asChild, children, className, ...props }, ref) => { + const Component = asChild ? Slot : 'h1' + + const titleClass = cn( + 'text-[3.125rem] font-bold text-black leading-none text-balance max-w-[18ch]', + className, + ) + + return ( + + {children} + + ) + }, +) + +PageHeaderTitle.displayName = 'PageHeader.Title' + +export type PageHeaderDescriptionProps = { + asChild?: boolean +} & React.HTMLAttributes + +const PageHeaderDescription = forwardRef( + ({ asChild, children, className, ...props }, ref) => { + const Component = asChild ? Slot : 'p' + + const descriptionClass = cn('text-[1.25rem] leading-[140%] text-black mt-8', className) + + return ( + + {children} + + ) + }, +) + +PageHeaderDescription.displayName = 'PageHeader.Description' + +const isImageTag = (tag: PageTag): tag is ImagePageTag => { + return tag.type === 'image' +} + +export type PageHeaderTagsProps = { + tags: PageTag[] +} + +export const PageHeaderTags = ({ tags }: PageHeaderTagsProps) => { + return ( +
+ {tags.map((tag, index) => ( + + ))} +
+ ) +} + +export const PageHeaderTag = ({ tag }: { tag: PageTag }) => { + if (isImageTag(tag)) { + return ( + + {/* eslint-disable-next-line @next/next/no-img-element */} + {tag.label} + + ) + } + + if (tag.type === 'pro') { + return Pro Extension + } + + if (tag.type === 'ai') { + return Content AI + } + + if (tag.type === 'collaboration') { + return Collaboration + } + + if (tag.type === 'documents') { + return Documents + } + + if (tag.type === 'editor') { + return Editor + } + + if (tag.type === 'new') { + return New + } + + if (tag.type === 'experiment') { + return Experiment + } +} + +export const PageHeader = { + Wrapper: PageHeaderWrapper, + Title: PageHeaderTitle, + Description: PageHeaderDescription, + Breadcrumbs: PageHeaderBreadcrumbs, + Tags: PageHeaderTags, + Tag: PageHeaderTag, +} diff --git a/src/components/ProductCard.tsx b/src/components/ProductCard.tsx new file mode 100644 index 0000000..07640b8 --- /dev/null +++ b/src/components/ProductCard.tsx @@ -0,0 +1,68 @@ +import { ArrowRightIcon } from 'lucide-react' +import { HTMLProps } from 'react' +import Link from 'next/link' +import { Button } from './ui/Button' +import { Card } from './ui/Card' +import { cn } from '@/utils' + +export type ProductCardProps = { + icon: string + title: string + description: string + tags: string[] + documentationUrl: string + secondaryUrl?: string + asChild?: boolean +} & HTMLProps + +export const ProductCard = ({ + className, + description, + documentationUrl, + icon, + tags, + title, + secondaryUrl, + ...rest +}: ProductCardProps) => { + const wrapperClassName = cn('no-markdown', className) + + return ( + +
+ {/* eslint-disable-next-line @next/next/no-img-element */} + {title} +
+ {tags.map((tag) => ( + + {tag} + + ))} +
+
+
+

{title}

+

{description}

+
+
+ + {secondaryUrl ? ( + + ) : null} +
+
+ ) +} diff --git a/src/components/ProductDropdown.tsx b/src/components/ProductDropdown.tsx new file mode 100644 index 0000000..de55ffd --- /dev/null +++ b/src/components/ProductDropdown.tsx @@ -0,0 +1,82 @@ +'use client' + +import * as DropdownMenu from '@radix-ui/react-dropdown-menu' +import { ChevronDownIcon } from 'lucide-react' +import { usePathname } from 'next/navigation' +import { useMemo } from 'react' +import { NavLink } from './NavLink' +import { NavLinkButton } from './ui/NavLinkButton' +import { cn } from '@/utils' + +const options = [ + { label: 'Editor', href: '/editor/getting-started/overview' }, + { label: 'Collaboration', href: '/collaboration/getting-started/overview' }, + { label: 'Content AI', href: '/content-ai/getting-started/overview' }, + { label: 'Comments', href: '/comments/getting-started/overview' }, +] + +export const ProductDropdown = () => { + const pathname = usePathname() + + const activeItem = useMemo(() => { + return options.find((option) => { + if (option.href === '/') { + return pathname === '/' + } else { + const firstPart = option.href.split('/')[1] + return pathname.startsWith(`/${firstPart}`) + } + }) + }, [pathname]) + + const buttonClass = cn('text-base outline-none', !!activeItem ? 'font-semibold' : 'font-normal') + + return ( + + + + {activeItem?.label || 'All docs'} + + + + + +
+
+ Documentations +
+ {options.map((option) => ( + + {option.label} + + ))} +
+
+
+ Others +
+ Guides + Examples + + Templates + + + Website + +
+
+ + Sign up + +
+
+
+
+ ) +} diff --git a/src/components/Providers.tsx b/src/components/Providers.tsx new file mode 100644 index 0000000..af06b51 --- /dev/null +++ b/src/components/Providers.tsx @@ -0,0 +1,16 @@ +'use client' + +import { Toaster } from 'sonner' +import { AppStateProvider } from '@/providers/AppState' +import { usePageTrack } from '@/hooks/usePageTrack' + +export const Providers = ({ children }: { children: React.ReactNode }) => { + usePageTrack() + + return ( + <> + + {children} + + ) +} diff --git a/src/components/Search.tsx b/src/components/Search.tsx new file mode 100644 index 0000000..2474780 --- /dev/null +++ b/src/components/Search.tsx @@ -0,0 +1,151 @@ +'use client' + +import * as Dialog from '@radix-ui/react-dialog' +import { useCallback, useMemo } from 'react' +import { InstantSearch, SearchBox, useHits, useInstantSearch } from 'react-instantsearch' +import { useHotkeys } from '@mantine/hooks' +import Link from 'next/link' +import { typesenseAdapter } from '@/utils/search' +import { useCommands } from '@/hooks/useCommands' +import { cn } from '@/utils' +import { SearchHit } from '@/types' +import { useAppState } from '@/providers/AppState' + +const SearchResult = ({ hit, active }: { hit: SearchHit; active?: boolean }) => { + const { result, parents } = useMemo(() => { + const hierarchy = Object.entries(hit.hierarchy).filter((h) => !!h[1]) + const result = hierarchy.at(-1) + const parents = hierarchy.slice(0, -1) + + return { + result, + parents, + hierarchy, + } + }, [hit]) + + if (!result) { + return null + } + + const linkClassName = cn( + 'p-2.5 bg-white border border-grayAlpha-200 shadow-cardLight block rounded-lg', + active ? 'bg-neutral-100' : 'hover:bg-neutral-50', + ) + + return ( + + + {result[1]} + {parents ? ( + + {parents.map(([key, value], i) => ( + <> + + {value} + + {i < parents.length - 1 ? ( + / + ) : null} + + ))} + + ) : null} + + + ) +} + +const SearchWrapper = ({ children }: { children: React.ReactNode }) => { + return ( + + {children} + + ) +} + +const SearchContent = () => { + const hits = useHits() + const search = useInstantSearch() + const query = search.indexRenderState.searchBox?.query || '' + + const { currentIndex, onKeyDown } = useCommands(query.length === 0 ? [] : hits.hits) + + const handleSubmit = useCallback( + (e: React.FormEvent) => { + e.preventDefault() + + if (currentIndex !== null) { + const hit = hits.hits[currentIndex] + if (typeof window === 'undefined') { + return + } + + window.location.href = hit.url as string + } + }, + [currentIndex, hits.hits], + ) + + return ( + <> + + {query && hits.hits.length > 0 + ? hits.hits.map((hit, i) => ( + + )) + : null} + {query && hits.hits.length === 0 ? ( +
+ + No results found for {query} + +
+ ) : null} + + ) +} + +export const Search = () => { + const { searchOpen, setSearchOpen } = useAppState() + useHotkeys([['mod+k', () => setSearchOpen(!searchOpen)]]) + + return ( + + + + +
+ + {searchOpen ? ( + + + + ) : null} + +
+
+
+ ) +} diff --git a/src/components/SearchButton.tsx b/src/components/SearchButton.tsx new file mode 100644 index 0000000..110d1d9 --- /dev/null +++ b/src/components/SearchButton.tsx @@ -0,0 +1,25 @@ +'use client' + +import { SearchIcon } from 'lucide-react' +import { Button } from './ui/Button' +import { useAppState } from '@/providers/AppState' + +export const SearchButton = () => { + const { setSearchOpen } = useAppState() + + return ( + + ) +} diff --git a/src/components/SidebarRenderer.tsx b/src/components/SidebarRenderer.tsx new file mode 100644 index 0000000..34823e2 --- /dev/null +++ b/src/components/SidebarRenderer.tsx @@ -0,0 +1,131 @@ +'use client' + +import { ChevronDownIcon, ChevronRightIcon } from 'lucide-react' +import { usePathname } from 'next/navigation' +import { useCallback, useEffect, useState } from 'react' +import Link from 'next/link' +import { Tag } from './ui/Tag' +import { SidebarConfig, SidebarGroup, SidebarLink } from '@/types' +import { Sidebar } from '@/components/ui/Sidebar' +import { cn } from '@/utils' + +export const DocsSidebar = ({ + config, + onItemClick, +}: { + config: SidebarConfig + onItemClick?: () => void +}) => { + return ( + + {config.items.map((item, i) => + item.type === 'link' ? ( + + ) : ( + + ), + )} + + ) +} + +export const LinkItem = ({ + link, + onClick, +}: { + link: Omit + onClick?: () => void +}) => { + const pathname = usePathname() + const isActive = pathname === link.href + const isActiveParent = pathname.startsWith(link.href) + + const [isOpen, setIsOpen] = useState(isActive || isActiveParent) + + const toggleOpen = useCallback((e: React.MouseEvent) => { + e.preventDefault() + e.stopPropagation() + setIsOpen((prev) => !prev) + }, []) + + useEffect(() => { + if ((isActive || isActiveParent) && link.href !== '') { + setIsOpen(true) + } + }, [isActive, isActiveParent, link.href]) + + const toggleButtonClassName = cn( + 'p-0.5 rounded', + !isOpen ? 'hover:bg-grayAlpha-100' : 'bg-grayAlpha-100', + ) + + return ( +
+ + + {link.title} + {link.tags ? ( + + {link.tags.map((tag) => ( + + {tag} + + ))} + + ) : null} + {link.children ? ( + + ) : null} + + + {link.children ? ( +
+ {link.children.map((child, i) => ( + + ))} +
+ ) : null} +
+ ) +} + +export const GroupItem = ({ group, onClick }: { group: SidebarGroup; onClick?: () => void }) => { + return ( + + + {group.title} + {group.tags ? ( + + {group.tags.map((tag) => ( + + {tag} + + ))} + + ) : null} + + {group.children.map((link, i) => ( + + ))} + + ) +} diff --git a/src/components/SidebarTableOfContent.tsx b/src/components/SidebarTableOfContent.tsx new file mode 100644 index 0000000..bf4fff0 --- /dev/null +++ b/src/components/SidebarTableOfContent.tsx @@ -0,0 +1,12 @@ +'use client' + +import { TableOfContent } from './TableOfContent' +import { useToC } from '@/hooks/useToC' + +export const SidebarTableOfContent = () => { + const { activeId, headlines } = useToC() + + if (!headlines.length) return null + + return +} diff --git a/src/components/TableOfContent.tsx b/src/components/TableOfContent.tsx new file mode 100644 index 0000000..d432d0c --- /dev/null +++ b/src/components/TableOfContent.tsx @@ -0,0 +1,57 @@ +import { ReactNode } from 'react' +import { cn } from '@/utils' + +function TocItem({ + id, + children, + isActive, + onClick, +}: { + id: string + children: ReactNode + isActive?: boolean + onClick?: () => void +}) { + const itemClass = cn( + 'block text-sm leading-[130%] px-2.5 py-2 rounded-lg bg-transparent transition-colors', + !isActive ? 'hover:bg-grayAlpha-50' : '', + isActive ? 'text-purple-500' : '', + ) + + return ( +
+ {children} + + ) +} + +export const TableOfContent = ({ + onClick, + headlines, + activeId, +}: { + onClick?: () => void + headlines: HTMLHeadingElement[] + activeId: string | null +}) => { + if (!headlines.length) return null + + return ( +
+
On this page
+ + Introduction + + {headlines.map((headline) => ( + + {headline.textContent ? headline.textContent.replace(' #', '') : ''} + + ))} +
+ ) +} diff --git a/src/components/TiptapLogo.tsx b/src/components/TiptapLogo.tsx new file mode 100644 index 0000000..016a8a2 --- /dev/null +++ b/src/components/TiptapLogo.tsx @@ -0,0 +1,39 @@ +export type TiptapLogoProps = { + className?: string + style?: React.CSSProperties +} + +export const TiptapLogo = ({ className, style }: TiptapLogoProps) => { + return ( + + + + + + + + ) +} diff --git a/src/components/TiptapLogoWithText.tsx b/src/components/TiptapLogoWithText.tsx new file mode 100644 index 0000000..d0732b9 --- /dev/null +++ b/src/components/TiptapLogoWithText.tsx @@ -0,0 +1,43 @@ +export type TiptapLogoWithTextProps = { + className?: string + style?: React.CSSProperties +} + +export const TiptapLogoWithText = ({ className, style }: TiptapLogoWithTextProps) => { + return ( + + + + + + + + + ) +} diff --git a/src/components/ToCButton.tsx b/src/components/ToCButton.tsx new file mode 100644 index 0000000..10f3134 --- /dev/null +++ b/src/components/ToCButton.tsx @@ -0,0 +1,19 @@ +'use client' + +import { Button } from './ui/Button' +import TableOfContentIcon from '@/assets/icons/TableOfContent.svg' +import { useToC } from '@/hooks/useToC' +import { useAppState } from '@/providers/AppState' + +export const ToCButton = () => { + const { headlines } = useToC() + const { setMobileTocOpen } = useAppState() + + if (!headlines.length) return null + + return ( + + ) +} diff --git a/src/components/layouts/Layout.tsx b/src/components/layouts/Layout.tsx new file mode 100644 index 0000000..a27c0c7 --- /dev/null +++ b/src/components/layouts/Layout.tsx @@ -0,0 +1,239 @@ +import { forwardRef } from 'react' +import Link from 'next/link' +import { PageEditStatus } from '../ui/PageEditStatus' +import { TiptapLogo } from '../TiptapLogo' +import { ProductDropdown } from '../ProductDropdown' +import { NavLink } from '../NavLink' +import { SearchButton } from '../SearchButton' +import { ToCButton } from '../ToCButton' +import { MobileTableOfContent } from '../MobileTableOfContent' +import { MobileSidebarNavigation } from '../MobileSidebarNavigation' +import { MobileNavigationButton } from '../MobileNavigationButton' +import { DocsSidebar } from '../SidebarRenderer' +import { MobileNavigationDropdown } from '../MobileNavigationDropdown' +import { SidebarTableOfContent } from '../SidebarTableOfContent' +import { cn } from '@/utils' +import { getAllMetadata } from '@/server/getAllMetadata' +import { SidebarConfig } from '@/types' + +const PageEditFooter = async () => { + const allMeta = await getAllMetadata() + + return ( + <> + + + ) +} + +export const LayoutHeader = forwardRef( + ({ config, ...rest }, ref) => { + return ( +
+
+
+ + + + Tiptap Docs + + + / + +
+
+
+ +
+
+ + +
+
+ +
+
+ + Sign up + +
+
+
+
+
+
+ +
+
+ + +
+
+
+
+ ) + }, +) + +LayoutHeader.displayName = 'LayoutHeader' + +export type LayoutWrapperProps = {} & React.HTMLAttributes + +const LayoutWrapper = forwardRef( + ({ children, className, ...rest }, ref) => { + return ( +
+ {children} +
+ ) + }, +) + +LayoutWrapper.displayName = 'LayoutWrapper' + +export type LayoutSidebarProps = { + config: SidebarConfig +} & React.HTMLAttributes + +const LayoutSidebar = forwardRef( + ({ config, children, className, ...rest }, ref) => { + return ( + <> + +
+ + {children} +
+ + ) + }, +) + +LayoutSidebar.displayName = 'LayoutSidebar' + +export type LayoutSecondarySidebarProps = {} & React.HTMLAttributes + +const LayoutSecondarySidebar = forwardRef( + ({ className, ...rest }, ref) => { + return ( + <> + +
+ +
+ + ) + }, +) + +LayoutSecondarySidebar.displayName = 'LayoutSecondarySidebar' + +export type LayoutContentProps = {} & React.HTMLAttributes + +export const LayoutContent = forwardRef( + ({ children, className, ...rest }, ref) => { + return ( +
+
{children}
+ +
+
+
+ +
+
+
+
+
+ + Hocuspocus + + + Legal notice + + + Privacy Policy + + + Terms of Service + + + Contributing + + + Changelog + +
+
Copyright © 2024 Tiptap
+
+
+
+ ) + }, +) + +LayoutContent.displayName = 'LayoutContent' + +export const Layout = { + Header: LayoutHeader, + Wrapper: LayoutWrapper, + Sidebar: LayoutSidebar, + SecondarySidebar: LayoutSecondarySidebar, + Content: LayoutContent, +} diff --git a/src/components/ui/Button.tsx b/src/components/ui/Button.tsx new file mode 100644 index 0000000..4910141 --- /dev/null +++ b/src/components/ui/Button.tsx @@ -0,0 +1,57 @@ +import { Slot } from '@radix-ui/react-slot' +import { ButtonHTMLAttributes, forwardRef } from 'react' +import { cn } from '@/utils' + +export type ButtonProps = { + asChild?: boolean + size?: 'medium' | 'small' + variant?: 'primary' | 'secondary' | 'tertiary' + isActive?: boolean +} & ButtonHTMLAttributes + +export const Button = forwardRef( + ( + { asChild, children, className, isActive, size = 'medium', variant = 'primary', ...rest }, + ref, + ) => { + const Component = asChild ? Slot : 'button' + + const buttonClassName = cn( + 'flex items-center font-semibold leading-[110%] rounded-lg transition-colors duration-100', + + !rest.disabled + ? cn( + variant === 'primary' && !isActive + ? 'bg-grayAlpha-800 text-white hover:bg-grayAlpha-900 group-hover:bg-grayAlpha-900 active:bg-grayAlpha-900' + : '', + variant === 'primary' && isActive ? 'bg-grayAlpha-900' : '', + variant === 'secondary' && !isActive + ? 'bg-grayAlpha-100 text-black hover:bg-grayAlpha-200 group-hover:bg-grayAlpha-200 active:bg-grayAlpha-100' + : '', + variant === 'secondary' && isActive ? 'bg-grayAlpha-100' : '', + variant === 'tertiary' && !isActive + ? 'bg-transparent text-black hover:bg-grayAlpha-200 group-hover:bg-grayAlpha-200 active:bg-grayAlpha-100' + : '', + variant === 'tertiary' && isActive ? 'bg-grayAlpha-100' : '', + ) + : cn( + variant === 'primary' ? 'bg-transparent text-grayAlpha-400' : '', + variant === 'secondary' ? 'bg-grayAlpha-50 text-grayAlpha-400' : '', + variant === 'tertiary' ? 'bg-transparent text-grayAlpha-400' : '', + ), + + size === 'medium' ? 'p-3 text-sm gap-1.5' : '', + size === 'small' ? 'p-2 text-xs gap-1' : '', + + className, + ) + + return ( + + {children} + + ) + }, +) + +Button.displayName = 'Button' diff --git a/src/components/ui/Callout.tsx b/src/components/ui/Callout.tsx new file mode 100644 index 0000000..8f0c2d0 --- /dev/null +++ b/src/components/ui/Callout.tsx @@ -0,0 +1,75 @@ +import { forwardRef } from 'react' +import { InfoIcon, MessageCircleIcon, OctagonAlertIcon } from 'lucide-react' +import { cn } from '@/utils' + +export type CalloutProps = { + title: string + variant: 'default' | 'info' | 'hint' | 'warning' + size: 'sm' | 'md' + hasCalloutBefore?: boolean + hasCalloutAfter?: boolean +} & React.HTMLAttributes + +export const Callout = forwardRef( + ( + { + title, + hasCalloutAfter, + hasCalloutBefore, + variant = 'default', + size = 'sm', + className, + children, + ...rest + }, + ref, + ) => { + const wrapperClass = cn( + 'c-callout content-block flex flex-col md:flex-row gap-3 items-start border rounded-[10px] p-4', + hasCalloutAfter ? 'mb-2' : 'mb-8', + hasCalloutBefore ? 'mt-2' : 'mt-8', + variant === 'default' ? 'bg-grayAlpha-100 border-grayAlpha-200 text-grayAlpha-900' : '', + variant === 'info' ? 'bg-purpleAlpha-50 border-purpleAlpha-500 text-grayAlpha-900' : '', + variant === 'hint' ? 'bg-yellow-50 border-yellow-500' : '', + variant === 'warning' ? 'bg-red-50 border-red-400' : '', + className, + ) + + const iconClass = cn( + 'w-4 h-4', + variant === 'default' ? 'text-grayAlpha-900' : '', + variant === 'info' ? 'text-purpleAlpha-500' : '', + variant === 'hint' ? 'text-yellow-600' : '', + variant === 'warning' ? 'text-red-600' : '', + ) + + const titleClass = cn( + 'leading-none font-semibold mb-2', + size === 'sm' ? 'text-base' : '', + size === 'md' ? 'text-base' : '', + ) + + const contentClass = cn( + 'markdown', + size === 'sm' ? 'text-base' : '', + size === 'md' ? 'text-base' : '', + ) + + return ( +
+
+ {variant === 'default' ? : null} + {variant === 'info' ? : null} + {variant === 'hint' ? : null} + {variant === 'warning' ? : null} +
+
+

{title}

+
{children}
+
+
+ ) + }, +) + +Callout.displayName = 'Callout' diff --git a/src/components/ui/Card.tsx b/src/components/ui/Card.tsx new file mode 100644 index 0000000..5f3c581 --- /dev/null +++ b/src/components/ui/Card.tsx @@ -0,0 +1,28 @@ +import { forwardRef } from 'react' +import { Slot } from '@radix-ui/react-slot' +import { cn } from '@/utils' + +export type CardProps = { + asChild?: boolean + children: React.ReactNode + isClickable?: boolean +} & React.HTMLAttributes + +export const Card = forwardRef( + ({ asChild, children, className, isClickable, ...rest }, ref) => { + const cardClass = cn( + 'p-5 bg-white shadow-cardLight rounded-xl', + isClickable ? 'transition-shadow hover:shadow-cardHover' : '', + className, + ) + const Tag = asChild ? Slot : 'div' + + return ( + + {children} + + ) + }, +) + +Card.displayName = 'Card' diff --git a/src/components/ui/NavLinkButton.tsx b/src/components/ui/NavLinkButton.tsx new file mode 100644 index 0000000..0c4c829 --- /dev/null +++ b/src/components/ui/NavLinkButton.tsx @@ -0,0 +1,36 @@ +import { Slot } from '@radix-ui/react-slot' +import { forwardRef } from 'react' +import { cn } from '@/utils' + +export type NavLinkButtonProps = { + isActive?: boolean + asChild?: boolean + variant?: 'default' | 'invert' +} & React.ButtonHTMLAttributes + +export const NavLinkButton = forwardRef( + ({ children, isActive, asChild, variant = 'default', ...props }, ref) => { + const linkClass = cn( + 'px-2.5 flex items-center gap-1 py-1.5 rounded-[0.625rem] transition-colors duration-100', + variant === 'default' && !isActive + ? 'bg-transparent text-gray-900 hover:bg-grayAlpha-200' + : '', + variant === 'default' && isActive + ? 'bg-transparent font-bold text-gray-900 hover:bg-grayAlpha-200' + : '', + variant === 'invert' && !isActive ? 'bg-black text-white hover:bg-neutral-800' : '', + variant === 'invert' && isActive ? 'bg-black font-bold text-white hover:bg-neutral-800' : '', + props.className, + ) + + const Component = asChild ? Slot : 'button' + + return ( + + {children} + + ) + }, +) + +NavLinkButton.displayName = 'NavLinkButton' diff --git a/src/components/ui/PageEditStatus.tsx b/src/components/ui/PageEditStatus.tsx new file mode 100644 index 0000000..937ed4f --- /dev/null +++ b/src/components/ui/PageEditStatus.tsx @@ -0,0 +1,37 @@ +'use client' + +import { usePathname } from 'next/navigation' +import Link from 'next/link' +import { Button } from './Button' +import { PageMeta } from '@/types' +import { getRepoBase } from '@/utils' + +export const PageEditStatus = ({ + allMeta, +}: { + allMeta: Record +}) => { + const pathname = usePathname() + const meta = + pathname !== '/' + ? allMeta[`${pathname}.mdx`] || allMeta[`${pathname}/index.mdx`] + : allMeta['/index.mdx'] + + if (!meta?.path) { + return null + } + + return ( + <> + + + ) +} diff --git a/src/components/ui/Section.tsx b/src/components/ui/Section.tsx new file mode 100644 index 0000000..5f4c33a --- /dev/null +++ b/src/components/ui/Section.tsx @@ -0,0 +1,40 @@ +import slugify from 'slugify' +import { ArrowRightIcon } from 'lucide-react' +import { Button } from './Button' + +export type SectionProps = { + title: string + description?: string + children: React.ReactNode + moreLink?: { label: string; url: string } +} + +export const Section = ({ children, title, description, moreLink }: SectionProps) => { + const titleSlug = slugify(title, { lower: true }) + + return ( +
+
+
+

+ {title} +

+ {description ? ( +

{description}

+ ) : null} +
+ {moreLink ? ( + + ) : null} +
+
{children}
+
+ ) +} diff --git a/src/components/ui/Sidebar.tsx b/src/components/ui/Sidebar.tsx new file mode 100644 index 0000000..ef4bf1c --- /dev/null +++ b/src/components/ui/Sidebar.tsx @@ -0,0 +1,97 @@ +import { Slot } from '@radix-ui/react-slot' +import { ButtonHTMLAttributes, forwardRef } from 'react' +import { Tag } from './Tag' +import { cn } from '@/utils' + +export type SidebarTrack = {} & React.HTMLAttributes + +export const SidebarTrack = forwardRef( + ({ children, className, ...rest }, ref) => { + return ( +
+ {children} +
+ ) + }, +) + +SidebarTrack.displayName = 'SidebarTrack' + +export type SidebarGroupProps = {} & React.HTMLAttributes + +const SidebarGroup = forwardRef( + ({ children, className, ...rest }, ref) => { + return ( +
+ {children} +
+ ) + }, +) + +SidebarGroup.displayName = 'SidebarGroup' + +export type SidebarGroupTitleProps = { + label?: string +} & React.HTMLAttributes + +const SidebarGroupTitle = forwardRef( + ({ children, className, label, ...rest }, ref) => { + return ( +
+ {children} + {label ? ( + + {label} + + ) : null} +
+ ) + }, +) + +SidebarGroupTitle.displayName = 'SidebarGroupTitle' + +export type SidebarButtonProps = { + asChild?: boolean + isActive?: boolean + label?: string +} & ButtonHTMLAttributes + +const SidebarButton = forwardRef( + ({ asChild, children, className, isActive, ...rest }, ref) => { + const Component = asChild ? Slot : 'button' + + return ( + + {children} + + ) + }, +) + +SidebarButton.displayName = 'SidebarButton' + +export const Sidebar = { + Track: SidebarTrack, + Group: SidebarGroup, + GroupTitle: SidebarGroupTitle, + Button: SidebarButton, +} diff --git a/src/components/ui/Tag.tsx b/src/components/ui/Tag.tsx new file mode 100644 index 0000000..cc0bef7 --- /dev/null +++ b/src/components/ui/Tag.tsx @@ -0,0 +1,37 @@ +import { Slot } from '@radix-ui/react-slot' +import { forwardRef } from 'react' +import { cn } from '@/utils' + +export type TagProps = { + asChild?: boolean + size?: 'small' | 'medium' + variant?: 'neutral' | 'invert' | 'success' | 'info' | 'hint' | 'warning' | 'gray' +} & React.HTMLAttributes + +export const Tag = forwardRef( + ({ asChild, children, className, size = 'medium', variant = 'neutral', ...rest }, ref) => { + const tagClass = cn( + 'text-xs font-semibold leading-[120%] px-1.5 py-0.5 border rounded', + variant === 'neutral' ? 'text-grayAlpha-800 bg-white border-grayAlpha-200' : '', + variant === 'gray' ? 'bg-grayAlpha-100 border-grayAlpha-100 text-grayAlpha-600' : '', + variant === 'invert' ? 'text-whiteAlpha-900 bg-grayAlpha-800 border-grayAlpha-800' : '', + variant === 'success' ? 'text-green-900 bg-green-100 border-[#0BDA81]' : '', + variant === 'info' ? 'text-purpleAlpha-800 bg-purpleAlpha-50 border-purpleAlpha-500' : '', + variant === 'hint' ? 'text-yellow-900 bg-yellow-100 border-yellow-500' : '', + variant === 'warning' ? 'text-red-900 bg-red-100 border-red-500' : '', + variant === 'gray' ? 'text-grayAlpha-600 bg-grayAlpha-100 border-grayAlpha-100' : '', + size === 'medium' ? 'text-xs px-1.5 py-0.5' : '', + size === 'small' ? 'text-[0.625rem] px-1 py-0.5 font-semibold' : '', + className, + ) + const Component = asChild ? Slot : 'span' + + return ( + + {children} + + ) + }, +) + +Tag.displayName = 'Tag' diff --git a/src/content/collaboration/core-concepts/awareness.mdx b/src/content/collaboration/core-concepts/awareness.mdx new file mode 100644 index 0000000..c0db7ae --- /dev/null +++ b/src/content/collaboration/core-concepts/awareness.mdx @@ -0,0 +1,76 @@ +--- +title: Awareness in Collaboration +meta: + title: Awareness | Tiptap Collaboration Docs + description: Integrate real-time user activity tracking with Collaboration. Add user presence and cursor positions to your editor. + category: Collaboration +--- + +Awareness in Tiptap Collaboration, powered by Yjs, is helping you share real-time info on users' activities within a collaborative space. This can include details like user presence, cursor positions, and custom user states. + +At its core, awareness utilizes its own Conflict-Free Replicated Data Type (CRDT) to ensure that this shared meta-information remains consistent and immediate across all users, without maintaining a historical record of these states. + +You can read more about Awareness in the [Yjs documentation on awareness](https://docs.yjs.dev/getting-started/adding-awareness). + +## Necessary provider events + +Awareness updates trigger specific [provider events](/collaboration/provider/events) to develop interactive features based on user actions and presence: + +- `awarenessUpdate`: This event signals that a user is active. It triggers without actual state changes, serving as a 'heartbeat' to inform others the user is in the document. +- `awarenessChange`: This event alerts you to any additions, updates, or deletions in the awareness state, reflecting both your local changes and those from remote users. + +These events serve as hooks for integrating custom Awareness features. + +## Integrate awareness + +With your [collaborative environment](/collaboration/getting-started/install) set up, you're all set to integrate Awareness, which is natively supported by the Collaboration Provider. + +To kick things off, update the Awareness state with any relevant information. As an example we'll use a user's name, cursor color, and mouse position as examples. + +### Set the awareness field + +Let's assign a name, color, and mouse position to the user. This is just an example; feel free to use any data relevant to your application. + +```typescript +// Set the awareness field for the current user +provider.setAwarenessField('user', { + // Share any information you like + name: 'Kevin James', + color: '#ffcc00', +}) +``` + +### Listen for changes + +Set up an event listener to track changes in the Awareness states across all connected users: + +```typescript +// Listen for updates to the states of all users +provider.on('awarenessChange', ({ states }) => { + console.log(states) +}) +``` + +You can now view these updates in your browser's console as you move on to the next step. + +### Track mouse movement + +Next, we'll add an event listener to our app to track mouse movements and update the awareness' information accordingly. + +```typescript +document.addEventListener('mousemove', (event) => { + // Share any information you like + provider.setAwarenessField('user', { + name: 'Kevin James', + color: '#ffcc00', + mouseX: event.clientX, + mouseY: event.clientY, + }) +}) +``` + +Check your browser's console to see the stream of events as users move their mice. + +## Add cursors and carets + +With basic Awareness in place, consider adding the [Collaboration Cursor](/editor/extensions/functionality/collaboration-cursor) extension to your editor. This extension adds cursor positions, text selections, and personalized details (such as names and colors) of all participating users to your editor. diff --git a/src/content/collaboration/core-concepts/webhooks.mdx b/src/content/collaboration/core-concepts/webhooks.mdx new file mode 100644 index 0000000..28973dd --- /dev/null +++ b/src/content/collaboration/core-concepts/webhooks.mdx @@ -0,0 +1,58 @@ +--- +title: Webhooks in Collaboration +meta: + title: Webhooks | Tiptap Collaboration Docs + description: Set up and understand webhook payloads, and manage settings to integrate advanced features. Learn more in the docs! + category: Collaboration +--- + +import { Callout } from '@/components/ui/Callout' + +You can define a URL and we will call it every time a document has changed. This is useful for getting the JSON representation of the Yjs document in your own application. + +We call your webhook URL when the document is saved to our database. This operation is debounced by 2-10 seconds. So your application won't be flooded by us. Right now we're only exporting the fragment `default` of the Yjs document. + +## Configure Webhooks + +To configure webhooks for document and comments notifications: + +1. Navigate to the [Collaboration settings](https://cloud.tiptap.dev/apps/settings) in your account. +2. Find the webhooks section and add your desired endpoint URL. + +After adding your URL, the webhook is immediately live. You'll start receiving notifications for the specified events without any delay. + + + If you want to add webhook support for the comments feature and your collaboration app was created + before March 2024, please upgrade your webhook as described [below](#enable-the-comments-webhook). + + +## Example payload + +All requests to your webhook URL will contain a header called `X-Hocuspocus-Signature-256` that signs the entire message with your secret. You can find it in the [settings](https://collab.tiptap.dev/apps/settings) of your Tiptap Collab app. + +```json +{ + "appName": '', // name of your app + "name": '', // name of the document (URI encoded if necessary) + "time": // current time as ISOString (new Date()).toISOString()) + "tiptapJson": {}, // JSON output from Tiptap (see https://tiptap.dev/guide/output#option-1-json): TiptapTransformer.fromYdoc() + "ydocState"?: {}, // optionally contains the entire yDoc as base64. Contact us to enable this property! + "clientsCount": 100,// number of currently connected clients + "type": '', // the payload type (if the document was changed, this is DOCUMENT) ; only available if you are on webhooks v2 + "trigger": '' // what triggered the event (usually "document.saved") ; only available if you are on webhooks v2 +} +``` + +## Enable the Comments webhook + +The webhook that supports comments is automatically enabled for all users that have created their account after March, 2024. + +If your account was created before March, 2024 and you're using an older version of the webhook system, you'll need to manually enable the new comments webhooks. Here's how: + +1. In case you’ve already implemented a previous Collaboration webhook, make sure to check the `type` and `trigger` fields when processing incoming webhooks. +2. Navigate to the [Collaboration settings](https://cloud.tiptap.dev/apps/settings) in your account. +3. Locate the Webhook section and click on the "Update" button. + +This upgrade is necessary to accommodate the introduction of multiple new events being routed to the same webhook endpoint, distinguished by a new `type` and `trigger` field. + +If you do not wish to use the comments webhook, no upgrade is necessary. diff --git a/src/content/collaboration/documents/content-injection.mdx b/src/content/collaboration/documents/content-injection.mdx new file mode 100644 index 0000000..cc62f09 --- /dev/null +++ b/src/content/collaboration/documents/content-injection.mdx @@ -0,0 +1,192 @@ +--- +title: Inject content REST API +meta: + title: Inject content API | Tiptap Collaboration Docs + description: Manage your Collaboration documents with JSON updates using the Inject Content AP. Learn more in our docs! + category: Collaboration +--- + +import { Callout } from '@/components/ui/Callout' + +To inject content into documents server-side, use the PATCH endpoint described in this document. This feature supports version history, tracking changes made by users as well as content added through this endpoint. + +The update document endpoint also allows JSON updates to modify documents on your Collaboration server, both On-Premises and Cloud. + +- Add `json`, `binary`, `base64` content to any document server side +- Inject content into specific nodes using the uniqueId extension +- Allow users to collaborate while content is injected +- Track user and injected content changes, fully compliant with version history + +### Use cases + +The content injection REST API enables a couple of handy but sophisticated use cases. + +- Live translation of document content. +- Programmatically tagging or manipulating the content of your documents server-side +- Server-side components, like executing an SQL query and displaying results. +- Version history integration and conflict-free merging of concurrent edits. + + + + This feature requires a valid Business or Enterprise subscription and a running [Tiptap Cloud instance](https://collab.tiptap.dev/). + + + +## Update a document + +To update an existing document on the Collaboration server, you can use the `PATCH` method with the following API endpoint: + +```bash +PATCH /api/documents/:identifier?format=:format +``` + +This endpoint accepts a Yjs update message and applies it to the specified document. The `format` query parameter specifies the format of the update and can be one of the following: + +- `json`: Updates the document using JSON format (with some caveats, see below). +- `binary`: Directly using Yjs's `Y.encodeStateAsUpdate` method. +- `base64`: The binary state encoded as a Base64 string. + +Upon successful update, the server will return HTTP status `204`. If the document does not exist, it will return `404`, and if the payload is invalid or the update cannot be applied, it will return `422`. + +Example `curl` command to update a document: + +```bash +curl --location --request PATCH 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/DOCUMENT_NAME' \\ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' \\ +--data '@yjsUpdate.binary.txt' +``` + +## Update via JSON + +When updating via JSON, the server computes the difference between the current document state and the provided JSON, then internally calculates the required Yjs update to reach the target state. + +To ensure precise updates, especially for node-specific changes, it is recommended to use the `nodeAttributeName` and `nodeAttributeValue` parameters. These can be generated by Tiptap's [UniqueID Extension](/editor/extensions/functionality/uniqueid) or a custom implementation. + +- `nodeAttributeName`: Configured as `attributeName` in the UniqueID extension. +- `nodeAttributeValue`: The unique value generated for the node to be updated. + +From version 3.3.0 onwards, you can use `?mode=append` to append nodes to the document's JSON representation without altering existing content. + +Omitting these parameters may result in overwriting any updates made between fetching the document and issuing the update call. + +Here is an example of how to update a document using JSON: + +```typescript +// Define the document name, secret, and application ID +const docName = '' // URI-encoded if necessary +const secret = '' +const appId = ''; + +// Construct the base URL +const url = `https://${appId}.collab.tiptap.dev` + +// Fetch the current document's JSON representation +const docJson = await axios.get(`${url}/api/documents/${docName}?format=json`, { + headers: { + Authorization: secret + }, +}) + +// Extract the document's JSON content +const tiptapJson = docJson.data +const nodes = tiptapJson.content + +// Find and log specific nodes using their unique identifiers +const query = nodes.find(n => n.attrs?.identifier === 'fe5c0789-85d9-4877-a2c3-bccf5d874866').content[0].text +const resultTable = nodes.find(n => n.attrs?.identifier === '246368b6-0746-4ca1-a16f-8d964aff4041') + +console.log(`Query: ${query}`) +console.log(JSON.stringify(resultTable.content)) + +// Append new content to the result table node +resultTable.content.push({ + // New table row content here + { + "type": "tableRow", + "content": [ + { + "type": "tableCell", + "attrs": { + "colspan": 1, + "rowspan": 1 + }, + "content": [ + { + "type": "paragraph", + "attrs": { + "textAlign": "left" + }, + "content": [ + { + "type": "text", + "text": "Jan" + } + ] + } + ] + }, + { + "type": "tableCell", + "attrs": { + "colspan": 1, + "rowspan": 1 + }, + "content": [ + { + "type": "paragraph", + "attrs": { + "textAlign": "left" + }, + "content": [ + { + "type": "text", + "text": "Thurau" + } + ] + } + ] + }, + { + "type": "tableCell", + "attrs": { + "colspan": 1, + "rowspan": 1 + }, + "content": [ + { + "type": "paragraph", + "attrs": { + "textAlign": "left" + }, + "content": [ + { + "type": "text", + "text": "jan@janthurau.de" + } + ] + } + ] + } + ] + } +}) + +// Send the updated JSON back to the server to apply the changes +await axios.patch(`${url}/api/documents/${docName}?format=json`, tiptapJson, { + headers: { + Authorization: secret + } +}) +``` + +## Create a document + +To seed a new document on the Tiptap Collab server, use the `POST` method with the following endpoint: + +```bash +POST /api/documents/:identifier?format=:format +``` + +The server will return HTTP status `204` for successful creation, `409` if the document already exists (you must delete it first to overwrite), and `422` if the action failed. + +The `format` parameter accepts the same values as the update endpoint (`binary`, `base64`, or `json`). diff --git a/src/content/collaboration/documents/history.mdx b/src/content/collaboration/documents/history.mdx new file mode 100644 index 0000000..25fd805 --- /dev/null +++ b/src/content/collaboration/documents/history.mdx @@ -0,0 +1,347 @@ +--- +title: Integrate document history +meta: + title: History extension | Tiptap Editor Docs + description: Editor History for manual and automatic versioning of your documents. Learn how to set up and use it here in the Docs! + category: Collaboration +extension: + name: History + description: 'Document version history for manual and automatic versioning of your documents.' + type: extension + icon: FileStack + isPro: true + isNew: true + isCloud: true +--- + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +This extension introduces a document version history feature. With it, you have the flexibility to manually or automatically generate document versions. + +Not only can you restore previous iterations, but you can also derive new versions from older ones. + + + The content of this editor is shared with other users. + + + + +## Install + + + Gain access to this pro extension by registering for a free [Tiptap + account](https://cloud.tiptap.dev/register) and following our [access + guide](/guides/pro-extensions) to Tiptap’s private repository. + + +```bash + +npm install @tiptap-pro/extension-collaboration-history @hocuspocus/transformer + +``` + +**Note**: +The `@hocuspocus/transformer` package is required for transforming Y.js binary to Tiptap JSON content. The package also requires a Y.js installation which is required for collaboration. If you don't have it installed, run `npm install yjs` in your project. +This should automatically happen if you are using NPM (as it automatically resolves peer dependencies). + +## Settings + +| Setting | Type | Default | +| -------- | ---------------------- | ---------- | +| provider | `TiptapCollabProvider` | `null` | +| onUpdate | `function` | `() => {}` | + +## Storage + +| Key | Type | Description | +| ----------------- | ---------------------- | ------------------------------------------------------------------------------- | +| currentVersion | `number` | The current version. | +| lastSaved | `Date` | The last saved timestamp | +| latestVersion | `number` | The latest version. | +| provider | `TiptapCollabProvider` | The Collaboration provider instance | +| status | `string` | The status of the provider - can be `connecting`, `connected` or `disconnected` | +| synced | `boolean` | Is the version history synced with the server | +| versioningEnabled | `boolean` | Is versioning enabled | +| versions | `array` | The array of versions that are stored in the history. | + +## Commands + +| Command | Description | +| ---------------- | --------------------------------------------------------------------------------- | +| saveVersion | Creates a new version with a given title | +| toggleVersioning | Toggles auto versioning for this document | +| revertToVersion | Revert to a specific version, can create a new revert version with optional title | + +## Examples + +### Basic Setup + +```js +const provider = new TiptapCollabProvider({ + // ... +}) + +const editor = new Editor({ + // ... + extensions: [ + // ... + CollabHistory.configure({ + provider, + }), + ], +}) +``` + +### Store version updates + +In this example we retrieve the data of a version update and save it into a variable + +```js +let currentVersion = 0 +let latestVersion = 0 +let autoversioningEnabled = false +let versions = [] + +const provider = new TiptapCollabProvider({ + // ... +}) + +const editor = new Editor({ + // ... + extensions: [ + // ... + CollabHistory.configure({ + provider, + onUpdate(payload) { + currentVersion = payload.currentVersion + latestVersion = payload.latestVersion + versions = payload.versions + autoversioningEnabled = payload.autoVersioning + }, + }), + ], +}) +``` + +### Access version data directly from storage + +```js +const provider = new TiptapCollabProvider({ + // ... +}) + +const editor = new Editor({ + // ... + extensions: [ + // ... + CollabHistory.configure({ + provider, + }), + ], +}) + +const latestVersion = editor.storage.collabHistory.latestVersion +const currentVersion = editor.storage.collabHistory.currentVersion +const versions = editor.storage.collabHistory.versions +const autoversioningEnabled = editor.storage.collabHistory.versioningEnabled +``` + +### Create a new version manually + +```js +editor.commands.saveVersion('My new custom version') +``` + +### Toggle autoversioning on document + +```js +editor.commands.toggleVersioning() +``` + +### Revert with version id + +```js +editor.commands.revertToVersion(4) +``` + +### Revert with version id with custom name + +In this example, the editor command helps you go back to version 4. When you use this command, it not only takes you back to how things were in version 4, but it also saves this old version as a new version, called 'Revert to version'. This way, you continue working from the point of version 4, but it's now saved as the latest version. + +```js +editor.commands.revertToVersion(4, 'Revert to version') +``` + +### Revert, name and backup + +In this example, when you decide to revert to version 4 of your document, the editor automatically creates two new versions. The first new version captures and saves your document’s state just before the revert, serving as a backup. The second new version restores the document to the state of version 4, allowing you to continue from this older, preferred point as if it’s your new starting point. + +```js +editor.commands.revertToVersion(4, 'Revert to version', 'Unversioned changes before revert') +``` + +### Implementing version previews for your editor + +The examples discussed above will directly modify the document and do not provide local-only previews of a version. Therefore, it is necessary to create your own frontend solution for this requirement. You can leverage the stateless messaging system of the `TiptapCloudProvider` to request a specific version from the server. + +Start by attaching a listener to the provider: + +```js + +// Import the getPreviewContentFromVersionPayload helper function (refer to details below) +import { watchContent } from '@tiptap-pro/extension-collaboration-history' + +// Configure the provider +const provider = new TiptapCollabProvider({ ... }) + +// use the watchContent util function to watch for content changes on the provider +const unbindWatchContent = watchPreviewContent(provider, content => { + // set your editors content + editor.commands.setContent(content) +}) +``` + +If you want to unbind the watcher, you can call the returned `unbindWatchContent` function like this: + +```js +const unbindWatchContent = watchPreviewContent(provider, (content) => { + // set your editors content + editor.commands.setContent(content) +}) + +// unwatch +unbindWatchContent() +``` + +Following this setup, you can trigger `version.preview` requests like so: + +```js +// Define a function that sends a version.preview request to the provider +const requestVersion = (version) => { + provider.sendStateless( + JSON.stringify({ + action: 'version.preview', + // Include your version number here + version, + }), + ) +} + +// Trigger the request +requestVersion(1) + +// This function can then be linked to button clicks or other UI elements to trigger the request +``` + +## Revert to a version + +Upon reverting a version, a new version is generated at the top of the version history. This new version will house the content of the reverted version and will stand as the latest version from which all users will proceed. If there were any unversioned changes before the revert action, an additional version will be created prior to the new one. This additional version will preserve the unaltered changes, thereby ensuring no data is lost. + +## Utility Functions + +### getPreviewContentFromVersionPayload + +This function will turn the payload received from the Collaboration provider into Tiptap JSON content. + +| Argument | Description | +| -------- | ---------------------------------------------------- | +| payload | The Hocuspocus payload for the version preview event | +| field | The field you want to parse. Default: `default` | + +```js +const myContent = getPreviewContentFromVersionPayload(payload, 'default') +``` + +### watchPreviewContent + +This function will setup a watcher on your Provider that watches the necessary events to react to version content changes. It also returns a new function that can be used to unwatch those events. + +| Argument | Description | +| -------- | ----------------------------------------------------------------------------- | +| provider | The Collaboration provider | +| callback | The callback function that is called, the argument is the Tiptap JSON content | +| field | The watched field - defaults to `default` | + +```js +const unwatchContent = watchPreviewContent(provider, editor.commands.setContent, 'default') + +// unwatch the version preview content +unwatchContent() +``` + +## Possible provider payloads + +Here is a list of payloads that can be sent or received from the provider: + +### Outgoing + +#### `document.revert` + +Request a document revert to a given version with optional title settings. + +```js +provider.sendStateless( + JSON.stringify({ + action: 'document.revert', + version: 1, + currentVersionName: 'Before reverting to version 1', + newVersionName: 'Revert to version 1', + }), +) +``` + +#### `version.create` + +Creates a new version with an optional title. + +```js +this.options.provider.sendStateless( + JSON.stringify({ action: 'version.create', name: 'My custom version' }), +) +``` + +### Incoming + +#### `saved` + +This stateless message can be used to retrieve the last saved timestamp. + +```js +provider.on('stateless', (data) => { + const payload = JSON.parse(data.payload) + + if (payload.action === 'saved') { + const lastSaved = new Date() + } +}) +``` + +#### `version.created` + +This stateless message includes information about newely created versions. + +```js +provider.on('stateless', (data) => { + const payload = JSON.parse(data.payload) + + if (payload.action === 'version.created') { + const latestVersion = payload.version + const currentVersion = payload.version + } +}) +``` + +#### `document.reverted` + +This stateless message includes information about a document revert. + +```js +provider.on('stateless', (data) => { + const payload = JSON.parse(data.payload) + + if (payload.action === 'document.reverted') { + const currentVersion = payload.version + } +}) +``` diff --git a/src/content/collaboration/documents/index.mdx b/src/content/collaboration/documents/index.mdx new file mode 100644 index 0000000..bfad1e8 --- /dev/null +++ b/src/content/collaboration/documents/index.mdx @@ -0,0 +1,75 @@ +--- +title: Manage Documents with Tiptap +meta: + title: Documents | Tiptap Collaboration + description: Use Tiptap Collaboration to store, manage, and track documents. Integrate with our REST API and webhooks for real-time updates. + category: Collaboration +--- + +import { ArrowRightIcon } from 'lucide-react' +import Link from 'next/link' +import * as CtaBox from '@/components/CtaBox' +import { Button } from '@/components/ui/Button' +import { Callout } from '@/components/ui/Callout' + +Collaboration Documents form the backbone of Tiptap Collaboration, storing everything from content and comments to versions and metadata using the Yjs format. + +Typically, users manage these documents using the REST API or track changes with the Collaboration Webhook, which sends detailed updates. Tiptap converts the documents into HTML or JSON for you, so you don't have to deal directly with the Yjs format. + +- Host your documents: Choose between cloud, dedicated cloud or on-premises deployment. +- Document REST API: Create, update, and delete documents programmatically. +- Webhooks: Automate responses to real-time document and comment events. +- Document History: Track changes in documents through automatic or manual snapshots. +- Content Injection: Modify document content server-side with the REST API, even during active collaboration sessions. + + + Enterprise on-premises solution + + Integrate Collaboration and all other Tiptap features into your infrastructure. + + + + Deploy our docker images in your own stack + + + Scale confidently to millions of users + + + Custom development and integration support in Chat + + + + + + + +## Integrate documents + +Integrating documents into your editor and application with Tiptap is straightforward. By adding the Tiptap Collaboration provider to your setup, documents are automatically stored and managed within the Tiptap Collaboration framework. + +The following integration immediately enables you to use all document features, like storing collaborative documents, managing version histories, using the REST API and injecting content. + + + You can easily migrate your documents from our Cloud to the an on premises server at a later point + in time. + + +1. **Integrate the Tiptap Editor:** Follow the [installation guide](/collaboration/getting-started/install) to setup an editor. +2. **Create a Tiptap Account:** Set up your [Collaboration app](https://cloud.tiptap.dev/) to store you documents. +3. **Integrate the Tiptap Collaboration Provider:** [Connect](/collaboration/getting-started/install#integrate-yjs-and-the-collaboration-extension) the Tiptap Editor with collaboration features to enable document management. +4. **Create and Manage Documents:** Start creating your first documents. + +And now, you are all set to use the document features 🙌🏻 + +## Retrieve and manage documents + +Use the [REST API](/collaboration/documents/rest-api) to fetch documents in `JSON` or `HTML` format for easy integration with your system. For immediate updates on changes, configure [webhooks](/collaboration/core-concepts/webhooks) to receive real-time notifications. + +**Track changes in documents:** The [document history](/collaboration/documents/history) extension in Tiptap Collaboration automatically captures and stores snapshots of documents at designated intervals. It also allows for manual versioning, enabling users to track detailed changes and document evolution over time. + +**Inject content:** Update the content of active documents with an [Patch Document endpoint](/collaboration/documents/content-injection), which allows server-side modifications even during active user collaboration. diff --git a/src/content/collaboration/documents/rest-api.mdx b/src/content/collaboration/documents/rest-api.mdx new file mode 100644 index 0000000..e66cec1 --- /dev/null +++ b/src/content/collaboration/documents/rest-api.mdx @@ -0,0 +1,228 @@ +--- +title: Document management API +meta: + title: REST API | Tiptap Collaboration Docs + description: Manage your Tiptap documents programmatically with the Collaboration Management API. Find out more in the documentation. + category: Collaboration +--- + +import { Callout } from '@/components/ui/Callout' + +The Collaboration Management API provides a suite of RESTful endpoints for managing documents. This API can be used for document creation, listing, retrieval, updates, and deletion, along with the ability to duplicate documents. + + + You can also experiment with the REST API by heading over to our [Postman + Collection](https://www.postman.com/docking-module-explorer-14290287/workspace/tiptap-collaboration-public/collection/33042171-cc186a66-df41-4df8-9c6e-e91b20deffe5?action=share&creator=32651125). + + +## Access the API + +The REST API is exposed directly from your Collaboration app, available at your custom URL: + +```bash +https://YOUR_APP_ID.collab.tiptap.cloud/ +``` + +Authentication is done using an API secret which you can find in +the [settings](https://cloud.tiptap.dev/apps/settings) of your Collaboration app. The secret must be sent as +an `Authorization` header. + +If your document identifier contains a slash (`/`), just make sure to encode it as `%2F`, e.g. +using `encodeURIComponent`. + +## Review all API endpoints + +Access the Collaboration Management API to manage your documents efficiently. You can create, list, retrieve, update, delete, and duplicate documents through our RESTful endpoints. For a comprehensive view of all endpoints across Tiptap products, review our [Postman Collection](https://www.postman.com/docking-module-explorer-14290287/workspace/tiptap-collaboration-public/collection/33042171-cc186a66-df41-4df8-9c6e-e91b20deffe5?action=share&creator=32651125) which includes detailed examples and configurations. + +| Operation | Method | Endpoint | Description | +| ------------------ | ---------- | ------------------------------------------ | ------------------------------------------------------------------------------ | +| Create Document | POST | /api/documents/:identifier | Create a document using a Yjs update message. | +| List Documents | GET | /api/documents | Retrieve a list of all documents with pagination options. | +| Get Document | GET | /api/documents/:identifier | Export a document in 'json' or 'yjs' format. | +| Update Document | PATCH | /api/documents/:identifier | Apply a Yjs update message to an existing document. | +| Delete Document | DELETE | /api/documents/:identifier | Delete a document from the server. | +| Duplicate Document | POST + GET | /api/documents/:identifier (GET then POST) | Duplicate a document by retrieving and then creating it with a new identifier. | + +Take a look at the [metrics and statistics endpoints](/collaboration/operations/metrics) as well! + +## Create a document + +```bash +POST /api/documents/:identifier +``` + +This call takes a binary Yjs update message (an existing Yjs document on your side must be encoded +using `Y.encodeStateAsUpdate`) and creates a document. This can be used to seed documents before a +user connects to the Tiptap Collab server. + +This endpoint will return the HTTP status `204` if the document was created successfully, or `409` +if the document already exists. If you want to overwrite it, you must delete it first. + +```bash +curl --location 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/DOCUMENT_NAME' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' \ +--data '@yjsUpdate.binary.txt' +``` + +## List documents + +```bash +GET /api/documents?take=100&skip=0 +``` + +This call returns a list of all documents present on the servers storage. We're returning the first +100 by default, pass `take` or `skip` parameters to adjust this. + +```bash +curl --location 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' +``` + +## Get a document + +```bash +GET /api/documents/:identifier?format=:format&fragment=:fragment +``` + +This call exports the given document with all fragments in JSON format. We export either the current +in-memory version or the version read from the database. If the document is currently open on your +server, we will return the in-memory version. + +`format` supports either `yjs` or `json`. Default: `json` + +If you choose the `yjs` format, you'll get the binary Yjs update message created +with `Y.encodeStateAsUpdate`. + +`fragment` can be an array (`fragment=a&fragment=b`) of or a single fragment that you want to +export. By default we'll export all fragments. Note that this is only taken into account when using +the `json` format, otherwise you'll always get the whole Yjs document. + +```bash +curl --location 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/DOCUMENT_NAME' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' +``` + + + When using axios, you need to specify `responseType: arraybuffer` in the options of the request. + + +```typescript +import * as Y from 'yjs' + +const ydoc = new Y.Doc() + +const axiosResult = await axios.get( + 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/somedoc?format=yjs', + { + headers: { + Authorization: 'YOUR_SECRET_FROM_SETTINGS_AREA', + }, + responseType: 'arraybuffer', + }, +) + +Y.applyUpdate(ydoc, axiosResult.data) +``` + +When using `node-fetch`, you need to use .arrayBuffer() and create a Buffer from it: + +```typescript +import * as Y from 'yjs' + +const ydoc = new Y.Doc() + +const fetchResult = await fetch( + 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/somedoc?format=yjs', + { + headers: { + Authorization: 'YOUR_SECRET_FROM_SETTINGS_AREA', + }, + }, +) + +Y.applyUpdate(ydoc, Buffer.from(await docUpdateAsBinaryResponse.arrayBuffer())) +``` + +## Update a document + +```bash +PATCH /api/documents/:identifier +``` + +This call accepts a Yjs update message and will apply it on the existing document on the server. +This endpoint will return the HTTP status `204` if the document was updated successfully, `404` is +the document does not exist, or `422` if the payload is invalid or the update cannot be applied. + +```bash +curl --location --request PATCH 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/DOCUMENT_NAME' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' \ +--data '@yjsUpdate.binary.txt' +``` + +The API endpoint is also capable of JSON document updates. It also supports document history, allowing you to track changes without replacing the entire document, and enables node-specific updates. + +For more detailed information on manipulating documents using JSON instead of Yjs, refer to our [Content injection](/collaboration/documents/content-injection) page. + +## Delete a document + +```bash +DELETE /api/documents/:identifier +``` + +This endpoint deletes a document from the server after closing any open connection to the document. + +It returns either HTTP status `204` if the document was deleted successfully or `404` if the +document was not found. + +If the endpoint returned `204`, but the document still exists, make sure that there is no user +re-creating the document from the provider. +We are closing all connections before deleting a document, but your error handling might re-create +the provider, and thus create the document again. + +```bash +curl --location --request DELETE 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/DOCUMENT_NAME' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' +``` + +## Duplicate a document + +In order to copy a document, you can just use the GET endpoint and then create it again with the +POST endpoint, here's an example in typescript: + +```typescript +const docUpdateAsBinaryResponse = await axios.get( + 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/somedoc?format=yjs', + { + headers: { + Authorization: 'YOUR_SECRET_FROM_SETTINGS_AREA', + }, + responseType: 'arraybuffer', + }, +) + +await axios.post( + 'https://YOUR_APP_ID.collab.tiptap.cloud/api/documents/somedoc-duplicated', + docUpdateAsBinaryResponse.data, + { + headers: { + Authorization: 'YOUR_SECRET_FROM_SETTINGS_AREA', + }, + }, +) +``` + +## Rate limits + +To maintain system integrity and prevent abuse, our infrastructure—including the management API and websocket connections through the TiptapCollabProvider—is subject to rate limits. These are designed to protect from misconfigured clients and ensure service reliability. + +### Default Rate Limits (per source IP): + +```json +{ + "requests": 100, + "within_seconds": 5, + "burst_capacity": 200 +} +``` + +If you encounter these limits under normal operations, please contact us for assistance. diff --git a/src/content/collaboration/getting-started/authenticate.mdx b/src/content/collaboration/getting-started/authenticate.mdx new file mode 100644 index 0000000..b65a907 --- /dev/null +++ b/src/content/collaboration/getting-started/authenticate.mdx @@ -0,0 +1,170 @@ +--- +title: Authenticate and authorize in Collaboration +meta: + title: Auth Guide | Tiptap Collaboration Docs + description: Secure and manage access in your collaborative editor with JWTs, covering setup, testing, and production integration. + category: Collaboration +--- + +import { Callout } from '@/components/ui/Callout' + +After setting up a collaborative editor in the installation guide, it's crucial to address authentication for longer-term use. The temporary JWT provided in your [Tiptap account](https://cloud.tiptap.dev/apps/settings) is only suitable for brief testing sessions. + + + If you need assistance with setting up server-side JWT authentication, you can find guidance at the [bottom of the page](#integrate-jwt-server-side). + + +## Set up authorization + +Setting up the right access controls is important for keeping your documents secure and workflows smooth in Tiptap Collaboration. + +This part of the guide walks you through how to use JSON Web Tokens (JWTs) to fine-tune who gets to see and edit what. Whether you need to give someone full access, restrict them to certain documents, or block access entirely, we've got you covered with minimalistic examples. + + + If you exclude the `allowedDocumentNames` property from your JWT setup, users can access all + documents in your system! + + +### Allow full access to every document + +Omitting the `allowedDocumentNames` property from the JWT payload grants the user access to all documents. This is useful for users who need unrestricted access. + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const data = {} + +const jwt = jsonwebtoken.sign(data, 'your_secret') +``` + +### Limit access to specific documents + +To restrict a user's access to specific documents, include those document names in the `allowedDocumentNames` array within the JWT payload. This ensures the user can only access the listed documents. + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const data = { + allowedDocumentNames: ['user-specific-document-1', 'user-specific-document-2'], +} + +const jwt = jsonwebtoken.sign(data, 'your_secret') +``` + +### Block access to all documents + +To prohibit a user from accessing any documents, provide an empty array for `allowedDocumentNames` in the JWT payload. This effectively blocks access to all documents. + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const data = { + allowedDocumentNames: [], +} + +const jwt = jsonwebtoken.sign(data, 'your_secret') +``` + +## Set Read-Only access + +The `readonlyDocumentNames` property in your JWT setup plays a crucial role when you need to allow users to view documents without the ability to edit them. This feature is particularly useful in scenarios where you want to share information with team members for review or reference purposes but need to maintain the integrity of the original document. + +By specifying document names in the `readonlyDocumentNames` array, you grant users read-only access to those documents. Users can open and read the documents, but any attempts to modify the content will be restricted. This ensures that sensitive or critical information remains unchanged while still being accessible for necessary personnel. + +In this example, we grant read-only access to two documents, `annual-report-2024` and `policy-document-v3`. Users with this JWT can view these documents but cannot make any edits. + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const data = { + readonlyDocumentNames: ['annual-report-2024', 'policy-document-v3'], +} + +const jwt = jsonwebtoken.sign(data, 'your_secret') +``` + +Incorporating the `readonlyDocumentNames` property into your JWT strategy improves document security by ensuring that only authorized edits are made, preserving the integrity of your critical documents. + +## Authorize with Wildcards + +Wildcards in JWTs offer a dynamic way to manage document access, allowing for broader permissions within specific criteria without listing each document individually. This method is particularly useful in scenarios where documents are grouped by certain attributes, such as projects, teams, or roles. + +### Manage project-specific documents + +For teams working on multiple projects, it's essential to ensure that members have access only to the documents relevant to their current projects. By using project identifiers with wildcards, you can streamline access management. + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const data = { + allowedDocumentNames: ['project-alpha/*', 'project-beta/*'], +} + +const jwt = jsonwebtoken.sign(data, 'your_secret') +``` + +In this example, users will have access to all documents under 'project-alpha' and 'project-beta', making it easier to manage permissions as new documents are added to these projects. + +### Facilitate role-based access control + +Role-based access control (RBAC) is a common requirement in many systems, where access needs to be granted based on the user's role within the organization. Wildcards allow for easy mapping of roles to document access patterns. + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const data = { + allowedDocumentNames: ['editors/*', 'contributors/*'], +} + +const jwt = jsonwebtoken.sign(data, 'your_secret') +``` + +Here, users assigned as 'editors' or 'contributors' can access documents prefixed with their respective roles. This setup simplifies the process of updating access rights as roles change or new roles are added. + + + Implementing Role-based access control requires you to set up and manage role assignments within your own system. The provided code snippet simply demonstrates how to align these roles with Collaboration authentication. + + +## Integrate JWT server side + +JWT, or JSON Web Token, is a compact, URL-safe means of representing claims to be transferred between two parties. The information in a JWT is digitally signed using a cryptographic algorithm to ensure that the claims cannot be altered after the token is issued. This digital signature makes the JWT a reliable vehicle for secure information exchange in web applications, providing a method to authenticate and exchange information. + +### Create a static JWT for testing + +For testing purposes, you might not want to set up a complete backend system to generate JWTs. In such cases, using online tools like http://jwtbuilder.jamiekurtz.com/ can be a quick workaround. These tools allow you to create a JWT by inputting the necessary payload and signing it with a secret key. + +When using these tools, ensure that the "Key" field is replaced with the secret key from your [Collaboration settings](https://collab.tiptap.dev/apps/settings) page. You don’t need to change any other information. + +Remember, this approach is only recommended for testing due to security risks associated with exposing your secret key. + +### Generate JWTs server side + +For production-level applications, generating JWTs on the server side is a necessity to maintain security. Exposing your secret key in client-side code would compromise the security of your application. Here’s an example using NodeJS for creating JWTs server-side: + +```bash +npm install jsonwebtoken +``` + +```typescript +import jsonwebtoken from 'jsonwebtoken' + +const payload = { + // The payload contains claims like the user ID, which can be used to identify the user and their permissions. + userId: 'user123', +} + +// The 'sign' method creates the JWT, with the payload and your secret key as inputs. +const jwt = jsonwebtoken.sign(payload, 'your_secret_key_here') +// The resulting JWT is used for authentication in API requests, ensuring secure access. +// Important: Never expose your secret key in client-side code! +``` + +This JWT should be incorporated into API requests within the `token` field of your authentication provider, safeguarding user sessions and data access. + +To fully integrate JWT into your application, consider setting up a dedicated server or API endpoint, such as `GET /getCollabToken`. This endpoint would dynamically generate JWTs based on a secret stored securely on the server and user-specific information, like document access permissions. + +This setup not only increases security but also provides a scalable solution for managing user sessions and permissions in your collaborative application. + +Ensure the secret key is stored as an environment variable on the server, or define it directly in the server code. Avoid sending it from the client side. + +A full server / API example is available [here](https://github.com/ueberdosis/tiptap-collab-replit/tree/main/src). \ No newline at end of file diff --git a/src/content/collaboration/getting-started/install.mdx b/src/content/collaboration/getting-started/install.mdx new file mode 100644 index 0000000..dcfe097 --- /dev/null +++ b/src/content/collaboration/getting-started/install.mdx @@ -0,0 +1,240 @@ +--- +title: Install Collaboration +meta: + title: Install Collaboration | Tiptap Collaboration Docs + description: Set up collaborative editing in your Tiptap Editor by following this installation guide. Learn more in our docs! + category: Collaboration +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +This guide will get you started with collaborative editing in the Tiptap Editor. If you're already using Tiptap Editor, feel free to skip ahead to the "Adding Collaboration" section. + +### Install Tiptap Editor + +If Tiptap Editor isn't installed yet, run the following command in your CLI for React to install the basic editor and necessary extensions for this example: + +```bash +npm install @tiptap/extension-document @tiptap/extension-paragraph @tiptap/extension-text @tiptap/react +``` + +Once installed, you can get your Tiptap Editor up and running with this basic setup. Just add the following code snippets to your project: + + + +## Add Collaboration + +To introduce team collaboration features into your Tiptap Editor, integrate the Yjs library and Editor Collaboration extension into your frontend. This setup uses Y.Doc, a shared document model, rather than just handling plain text. +Afterwards we will connect Y.Doc to the TiptapCollabProvider to synchronize user interactions. + +### Integrate Yjs and the Collaboration Extension + +Add the Editor Collaboration extension and Yjs library to your frontend: + +```bash +npm install @tiptap/extension-collaboration yjs +``` + +Then, update your index.jsx to include these new imports: + +```tsx +import './styles.scss' + +import Document from '@tiptap/extension-document' +import Paragraph from '@tiptap/extension-paragraph' +import Text from '@tiptap/extension-text' +import { EditorContent, useEditor } from '@tiptap/react' +import React from 'react' + +import Collaboration from '@tiptap/extension-collaboration' +import * as Y from 'yjs' + +const doc = new Y.Doc() // Initialize Y.Doc for shared editing + +export default () => { + const editor = useEditor({ + extensions: [ + Document, + Paragraph, + Text, + Collaboration.configure({ + document: doc, // Configure Y.Doc for collaboration + }), + ], + content: ` +

+ This is a radically reduced version of Tiptap. It has support for a document, with paragraphs and text. That’s it. It’s probably too much for real minimalists though. +

+

+ The paragraph extension is not really required, but you need at least one node. Sure, that node can be something different. +

+ `, + }) + + return +} +``` + +Your editor is now almost prepared for collaborative editing! + +### Connect to the Collaboration Server + +For collaborative functionality, install the `@hocuspocus/provider` package: + +```bash +npm install @hocuspocus/provider +``` + +Next, configure the Hocuspocus provider in your index.jsx file with your server details: + +- **name**: Serves as the document identifier for synchronization. +- **appID**: Found in your [Cloud account](https://cloud.tiptap.dev/apps) after you started your app. For on-premises setups replace `appID` with `baseUrl`. +- **token**: Use the JWT from your [Cloud interface](https://cloud.tiptap.dev/apps/settings) for testing, but generate your own JWT for production. + + + When integrating the Editor in a non-collaborative setting, using the method shown here to set + content is perfectly acceptable. However, if you transition to a collaborative environment, you + will need to modify how you add initial content as shown after the next headline. + + +Incorporate the following code to complete the setup: + +```tsx +import './styles.scss' + +import Document from '@tiptap/extension-document' +import Paragraph from '@tiptap/extension-paragraph' +import Text from '@tiptap/extension-text' +import { EditorContent, useEditor } from '@tiptap/react' +import React from 'react' + +import Collaboration from '@tiptap/extension-collaboration' +import * as Y from 'yjs' + +// Importing the provider and useEffect +import { useEffect } from 'react' +import { TiptapCollabProvider } from '@hocuspocus/provider' + +const doc = new Y.Doc() + +export default () => { + const editor = useEditor({ + extensions: [ + Document, + Paragraph, + Text, + Collaboration.configure({ + document: doc, + }), + ], + content: ` +

+ This is a radically reduced version of Tiptap. It has support for a document, with paragraphs and text. That’s it. It’s probably too much for real minimalists though. +

+

+ The paragraph extension is not really required, but you need at least one node. Sure, that node can be something different. +

+ `, + }) + + // Connect to your Collaboration server + useEffect(() => { + const provider = new TiptapCollabProvider({ + name: encodeURIComponent('document.name'), // Unique document identifier for syncing. This is your document name. + appId: '7j9y6m10', // Your Cloud Dashboard AppID or `baseURL` for on-premises + token: 'notoken', // Your JWT token + document: doc, + }) + }) + + return +} +``` + +After following these steps, you should be able to open two different browsers and connect to the same document simultaneously through separate WebSocket connections. + +For a clear test of the collaboration features, using two different browsers is recommended to guarantee unique websocket connections. + +### Initialize Content Properly + +Upon implementing collaboration in your Tiptap Editor, you might notice that the initial content is repeatedly added each time the editor loads. To prevent this, use the `.setContent()` method to set the initial content only once. + +```tsx +import './styles.scss' + +import Document from '@tiptap/extension-document' +import Paragraph from '@tiptap/extension-paragraph' +import Text from '@tiptap/extension-text' +import { EditorContent, useEditor } from '@tiptap/react' +import React from 'react' + +import * as Y from 'yjs' +import Collaboration from '@tiptap/extension-collaboration' +import { useEffect } from 'react' + +import { TiptapCollabProvider } from '@hocuspocus/provider' + +const doc = new Y.Doc() + +export default () => { + const editor = useEditor({ + extensions: [ + Document, + Paragraph, + Text, + Collaboration.configure({ + document: doc, + }), + ], + // Remove the automatic content addition on editor initialization. + }) + + useEffect(() => { + const provider = new TiptapCollabProvider({ + name: encodeURIComponent('document.name'), // Unique document identifier for syncing. This is your document name. + appId: '7j9y6m10', // Your Cloud Dashboard AppID or `baseURL` for on-premises + token: 'notoken', // Your JWT token + document: doc, + + // The onSynced callback ensures initial content is set only once using editor.setContent(), preventing repetitive content loading on editor syncs. + onSynced() { + if (!doc.getMap('config').get('initialContentLoaded') && editor) { + doc.getMap('config').set('initialContentLoaded', true) + + editor.commands.setContent(` +

This is a radically reduced version of Tiptap. It has support for a document, with paragraphs and text. That’s it. It’s probably too much for real minimalists though.

+

The paragraph extension is not really required, but you need at least one node. Sure, that node can be something different.

+ `) + } + }, + }) + }) + + return +} +``` + +This ensures the initial content is set only once. To test with new initial content, create a new document by changing the `name` parameter (e.g., from `document.name` to `document.name2`). + +## Disable Default Undo/Redo + +If you're integrating collaboration into an editor **other than the one provided in this demo**, you may need to disable the default history function of your Editor. This is necessary to avoid conflicts with the collaborative history management: You wouldn't want to revert someone else's changes. + +This action is only required if your project includes the Tiptap [StarterKit](/editor/extensions/functionality/starterkit) or [Undo/Redo](/editor/extensions/functionality/undo-redo) extension. + +```ts +const editor = useEditor({ + extensions: [ + StarterKit.configure({ + history: false, // Disables default history to use Collaboration's history management + }), + ], +}) +``` + +Following this guide will set up a basic, yet functional collaborative Tiptap Editor, synchronized through either the Collaboration Cloud or an on-premises backend. + +## Authenticate your users + +Learn how to secure your collaborative Tiptap editor with JSON Web Tokens (JWTs). The next guide provides step-by-step instructions on creating and managing JWTs for both testing and production, ensuring controlled access with detailed examples. Read more about [authentication](/collaboration/getting-started/authenticate). diff --git a/src/content/collaboration/getting-started/overview.mdx b/src/content/collaboration/getting-started/overview.mdx new file mode 100644 index 0000000..acf6a3b --- /dev/null +++ b/src/content/collaboration/getting-started/overview.mdx @@ -0,0 +1,112 @@ +--- +title: Make your editor collaborative +meta: + title: Collaboration | Tiptap Collaboration Docs + description: Make your editor collaborative with Tiptap Collaboration on your premises or in our cloud. Learn more in our docs! + category: Collaboration +--- + +import { ArrowRightIcon } from 'lucide-react' +import Link from 'next/link' +import * as CtaBox from '@/components/CtaBox' +import { Button } from '@/components/ui/Button' + +Tiptap Collaboration turns standard text editors into collaborative platforms, enabling simultaneous editing similar to Google Docs or Notion. Built on our open source Hocuspocus WebSocket backend, it facilitates real-time and asynchronous updates through WebSocket technology, with Y.js ensuring consistent synchronization of changes. + +Built for performance and scalability, Tiptap Collaboration is tested by hundreds of thousands of users every day. Enhancing the robust Hocuspocus foundation, Tiptap Collaboration introduces more performance, scalability, and security. + +It integrates functionalities such as commenting, document version history, and secure authentication, suitable for both cloud services and on your premises installations. + + + Collaboration features + + Fasten your seatbelts! Make your rich text editor collaborative with Tiptap Collaboration. + + + Real-time and offline change merging without conflicts + Compatible with various editors + Handle multiple documents over one WebSocket connection + Integrates with webhooks for change notifications + Scales efficiently with Redis for high user volumes + Built with TypeScript for type safety and scalability. + + + + + + +## Store your documents + +If you're using our on-premises solutions, you can choose where to store your documents in your own infrastructure. However, for users of our Collaboration Cloud service, we've partnered with Hetzner, renowned for their dependable cloud infrastructure, to guarantee stable and efficient performance, especially during periods of heavy traffic and collaborative activities. + +Your document storage location depends on your subscription plan: + +- **Entry Plan:** Your documents are stored in GDPR-compliant data centers in Europe, ensuring your data's privacy and security. +- **Business Plan:** You have the option to store your documents in data centers on the US East or West Coast, or in Europe, according to your preference. +- **Enterprise Plan:** Choose dedicated cloud storage in your preferred location, or opt for on-premises storage to manage your documents yourself. + +Regardless of your plan, you have the flexibility to create your own backups of all documents and associated information using our document management API. + + + Enterprise on-premises solution + + Integrate Collaboration and all other Tiptap features into your infrastructure. + + + + Deploy our docker images in your own stack + + + Scale confidently to millions of users + + + Custom development and integration support in Chat + + + + + + + +## About Y.js + +Y.js is a library that enables real-time, conflict-free merging of changes made by multiple users. It stands out for its high performance among Conflict-Free Replicated Data Types (CRDTs), offering significant efficiency advantages over similar technologies. + +As a CRDT, Y.js ensures that the sequence of changes does not impact the final state of the document, similar to how Git operates with commits. This guarantees that all copies of the data remain consistent across different environments. + +The technology supports the development of highly responsive real-time applications, enabling collaborative features in existing software, managing synchronization states, and catering to offline-first scenarios with easy data integration upon reconnection. + +### Y.js Document Compatibility + +Y.js uses a special Y.doc binary format to work efficiently, but you don't need to worry about changing how you create documents in Tiptap Editor. You can keep using common formats like JSON or HTML, and the Collaboration server will take care of converting them for use with Y.js. + +Thanks to Y.js's binary format, it handles data quickly and keeps everything in sync. If you need the binary format, you can get the Y.doc through the document management API. However, you have the option to retrieve your documents in the more familiar JSON or HTML formats. While direct markup output isn't provided, you can achieve it by converting from HTML, offering versatility in how you handle document formats. + +## Migrate from Hocuspocus or Collaboration Cloud + +Migrating your application from Hocuspocus to either an on-premises solution or the Tiptap Collaboration Cloud involves a simple switch from the `HocuspocusProvider` to the `TiptapCollabProvider`, or the other way around. + +This doesn't require any other updates to your setup, and the way you interact with the API won't change as well. The `TiptapCollabProvider` acts as a go-between, managing how your application connects to the server and handles login details. + +This migration approach is also applicable when migrating from the Tiptap Collaboration Cloud to an on-premises configuration. + +## Schema management + +Tiptap enforces strict schema adherence, discarding any elements not defined in the active schema. This can cause issues when clients using different schema versions concurrently edit a document. + +For instance, imagine adding a task list feature in an update. Users on the previous schema won't see these task lists, and any added by a user on the new schema will disappear from their view due to schema discrepancies. This occurs because Tiptap synchronizes changes across clients, removing unrecognized elements based on the older schema. + +To mitigate these issues, consider the following strategies: + +1. Require clients to update their application to match the new schema upon deployment. +2. Monitor schema versions and restrict editing access for clients using outdated versions. diff --git a/src/content/collaboration/operations/configure.mdx b/src/content/collaboration/operations/configure.mdx new file mode 100644 index 0000000..c80cfaa --- /dev/null +++ b/src/content/collaboration/operations/configure.mdx @@ -0,0 +1,95 @@ +--- +title: Runtime configuration +meta: + title: Configure runtime | Tiptap Collaboration Docs + description: Dynamically adjust collaboration settings in your app with straightforward API calls. Adjust secrets, webhook URLs, and more. + category: Collaboration +--- + +import { Callout } from '@/components/ui/Callout' + +Configure runtime settings in Tiptap Collaboration to manage your collaboration environment directly with a REST API. + +Use these settings to modify secrets, webhook URLs, and more, particularly when needing to adapt to changes in your project requirements or security protocols without restarting your application. + + + If you integrated a Collaboration cloud application you can manage all of these settings in your + [cloud account](https://cloud.tiptap.dev/apps/settings). + + +## Collaboration Settings Overview + +Several `key` settings can be adjusted dynamically: + +- `secret`: The secret key for JWT tokens, auto-generated upon first launch. +- `api_secret`: The secret for API calls, used in the Authorization header and auto-generated at first boot. +- `webhook_url`: Optional webhook URL for receiving callbacks. +- `authentication_disabled`: Toggle for enabling/disabling authentication (1 for disabled, 0 for enabled, with the default being 0). +- `name`: Optional instance name. +- `webhook_version`: The webhook version +- `default_auto_versioning`: Turn auto versioning on or off by default (1 for enabled, 0 for off). +- `default_auto_versioning_interval`: Default versioning interval (default is 30 seconds) + +## Managing Settings via API + +The collaboration platform offers a straightforward API for managing these settings: + +### Creating or Overwriting Settings + +To add or update settings, utilize the following API call: + +```bash +curl --location --request PUT 'https://YOUR_APP_ID.collab.tiptap.cloud/api/admin/settings/:key' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' +``` + +_Replace `:key` with the setting key you wish to update._ + +### Listing Current Settings + +Retrieve a list of all current settings with this API request: + +```bash +curl --location 'https://YOUR_APP_ID.collab.tiptap.cloud/api/admin/settings' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' +``` + +### Retrieving a Specific Setting + +To fetch the value of a particular setting, use: + +```bash +curl --location 'https://YOUR_APP_ID.collab.tiptap.cloud/api/admin/settings/:key' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' + +``` + +### Updating a Specific Setting + +Similar to creating settings, updating is done via: + +```bash +curl --location --request PUT 'https://YOUR_APP_ID.collab.tiptap.cloud/api/admin/settings/:key' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' + +``` + +### Deleting a Setting + +To remove a setting, the following API call is used: + +```bash +curl --location --request DELETE 'https://YOUR_APP_ID.collab.tiptap.cloud/api/admin/settings/:key' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' + +``` + +## Server Performance Metrics + +Gain insights into server performance and document statistics through the `/api/statistics` endpoint, providing data on total documents, peak concurrent connections, total connections over the last 30 days, and lifetime connection counts. +Review the [metrics](/collaboration/operations/metrics) page for additional information. + +```bash +curl --location 'https://YOUR_APP_ID.collab.tiptap.cloud/api/statistics' \ +--header 'Authorization: YOUR_SECRET_FROM_SETTINGS_AREA' +``` diff --git a/src/content/collaboration/operations/metrics.mdx b/src/content/collaboration/operations/metrics.mdx new file mode 100644 index 0000000..a5b2157 --- /dev/null +++ b/src/content/collaboration/operations/metrics.mdx @@ -0,0 +1,113 @@ +--- +title: Server metrics and statistics +meta: + title: Metrics | Tiptap Collaboration Docs + description: Access server and document statistics for your Tiptap Collaboration application. Learn more in our documentation! + category: API +--- + +import { Callout } from '@/components/ui/Callout' + +The Tiptap Collaboration API provides several endpoints to access real-time statistics and health information for both the server and individual documents. + +These endpoints should help to troubleshoot issues, monitor server performance, or build analytics dashboards that provide insights into user interactions and system status. + +By integrating these statistics into your monitoring systems, you can proactively manage the health of your collaboration environment. + + + You can also experiment with the REST API by heading over to our [Postman + Collection](https://www.postman.com/docking-module-explorer-14290287/workspace/tiptap-collaboration-public/collection/33042171-cc186a66-df41-4df8-9c6e-e91b20deffe5?action=share&creator=32651125). + + +## Access the API + +The REST API is exposed directly from your Collaboration app, available at your custom URL: + +```bash +https://YOUR_APP_ID.collab.tiptap.cloud/ +``` + +Authentication is done using an API secret which you can find in +the [settings](https://cloud.tiptap.dev/apps/settings) of your Collaboration app. The secret must be sent as +an `Authorization` header. + +If your document identifier contains a slash (`/`), just make sure to encode it as `%2F`, e.g. +using `encodeURIComponent`. + +## Server statistics endpoint + +This endpoint provides basic statistics about the Tiptap Collaboration server, offering insights into overall activity and usage. + +```bash +GET /api/statistics +``` + +### Example Response + + + The total number of connections of the last 30 days and the lifetime connection count are + presented as strings due to their representation as BIGINT internally. + + +```json +{ + "totalDocuments": 4, + "totalConnections30d": "3", + "maxConcurrentConnections30d": 3, + "lifetimeConnections": "144", + "currentConnectionsCount": 3, + "currentLoadedDocumentsCount": 1, + "openDocuments": ["testdocument"], + "connectionsPerDocument": { + "testdocument": 3 + }, + "version": "3.9.2" +} +``` + +## Document statistics endpoint + +Retrieve statistics for a specific document by its identifier. This endpoint is useful for monitoring the real-time engagement of users with a document. + +```bash +GET /api/documents/:identifier/statistics +``` + +### Example Response + +```json +{ + "currentConnections": 2, + "connectedIps": ["127.0.0.1", "10.100.1.23"] +} +``` + +## Server Health Endpoint + +Use this endpoint for liveness and readiness checks, or to manually verify the health of the server. It checks connectivity to essential components like the database and Redis. + +```bash +GET /health +``` + +### Example Responses + +When there is an issue with Redis: + +```json +HTTP 500: + +"DB":ok +"REDIS":fail + +``` + +### When Redis is not active: + +```json +HTTP 200: + +"DB":ok +"REDIS":inactive + +``` diff --git a/src/content/collaboration/provider/events.mdx b/src/content/collaboration/provider/events.mdx new file mode 100644 index 0000000..7b22491 --- /dev/null +++ b/src/content/collaboration/provider/events.mdx @@ -0,0 +1,115 @@ +--- +title: State and change events +meta: + title: Provider events | Tiptap Collaboration Docs + description: Use event listeners with Tiptap Collaboration providers to manage real-time states and changes effectively. More in the docs! + category: Collaboration +--- + +Events in Collaboration providers allow you to respond to various states and changes, such as successful connections or authentication updates. You can attach event listeners during the provider's initialization or add them later based on your application's needs. + +## Use provider events + +| Event | Description | +| -------------------- | ------------------------------------------------------------- | +| open | Triggered when the WebSocket connection is established. | +| connect | Occurs when the provider successfully connects to the server. | +| authenticated | Indicates successful client authentication. | +| authenticationFailed | Fires when client authentication fails. | +| status | Reflects changes in connection status. | +| message | Captures incoming messages. | +| outgoingMessage | Signals when a message is about to be sent. | +| synced | Marks the initial successful sync of the Y.js document. | +| close | Triggered when the WebSocket connection closes. | +| disconnect | Occurs upon provider disconnection. | +| destroy | Signifies the impending destruction of the provider. | +| awarenessUpdate | Tracks updates in user awareness information. | +| awarenessChange | Indicates changes in the awareness state. | +| stateless | When the stateless message was received. | + +## Configure event listeners + +To ensure immediate event tracking, you can pass event listeners directly to the provider's constructor. This method guarantees that listeners are active from the start. + +```ts +const provider = new TiptapCollabProvider({ + appId: '', // Use for cloud setups, replace with baseUrl in case of on-prem + name: encodeURIComponent('example-document'), // Document identifier + token: '', // Your authentication JWT token + document: ydoc, + onOpen() { + console.log('WebSocket connection opened.') + }, + onConnect() { + console.log('Connected to the server.') + }, + // See below for all event listeners... +}) +``` + +### Bind events dynamically + +For scenarios where you need to add or remove listeners post-initialization, the provider allows for dynamic binding and unbinding of event handlers + +**Binding Event Listeners** + +```ts +const provider = new TiptapCollabProvider({ + // … +}) + +provider.on('synced', () => { + console.log('Document synced.') +}) +``` + +**Unbinding Event Listeners** + +```typescript +const onMessage = () => { + console.log('New message received.') +} + +// Binding +provider.on('message', onMessage) + +// Unbinding +provider.off('message', onMessage) +``` + +## Provider event examples + +### Display connection status + +Utilize `onConnect` and `onDisconnect` to provide users with real-time connection status feedback, enhancing the user experience. + +```tsx +provider.on('connect', () => { + showStatus('Connected') +}) + +provider.on('disconnect', () => { + showStatus('Disconnected') +}) +``` + +### Sync document status + +The `synced` event can be used to alert users when the document is fully synced initially, ensuring they start working with the latest version. + +```tsx +provider.on('synced', () => { + alert('Document initialized') +}) +``` + +### Handle authentication issues + +Use `authenticationFailed` to catch authentication errors and prompt users to reauthenticate, maintaining secure access. + +```tsx +provider.on('authenticationFailed', ({ reason }) => { + console.error('Authentication failed:', reason) + requestUserReauthentication() +}) +``` diff --git a/src/content/collaboration/provider/integration.mdx b/src/content/collaboration/provider/integration.mdx new file mode 100644 index 0000000..a9009c9 --- /dev/null +++ b/src/content/collaboration/provider/integration.mdx @@ -0,0 +1,82 @@ +--- +title: Integrate the Collaboration provider +meta: + title: Provider | Tiptap Collaboration Docs + description: Set up and configure the Collaboration provider to manage real-time document synchronization across users. + category: Collaboration +--- + +import { Callout } from '@/components/ui/Callout' + +Together with the Collaboration backend, Providers act as the backbone for real-time collaborative editing. They establish and manage the communication channels between different users, ensuring that updates and changes to documents are synchronized across all participants. + +Providers help handle the complexities of real-time data exchange, including conflict resolution, network reliability, and user presence awareness. + +The TiptapCollabProvider provider adds advanced features tailored for collaborative environments, including WebSocket message authentication, debug modes, and flexible connection strategies. + +## Set up the provider + +First you need to install the provider package in your project with + +```bash +npm install @hocuspocus/provider +``` + +For a basic setup, you need to connect to the Collaboration backend. This involves specifying the document's name, your app's ID (for cloud setups), or the base URL (for on-premises solutions), along with your JWT. + +Depending on your framework, register a callback to the Collaboration backend, such as `useEffect()` in React or `onMounted()` in Vue. + +```ts +const doc = new Y.Doc() + +useEffect(() => { + const provider = new TiptapCollabProvider({ + name: note.id, // Document identifier + appId: 'YOUR_APP_ID', // replace with YOUR_APP_ID from Cloud dashboard + token: 'YOUR_JWT', // Authentication token + document: doc, + }) +}, []) +``` + + + If you are hosting your collaboration environment on-premises, replace the `appId` parameter with + `baseUrl` in your provider configuration to connect to your server. + + +## Configure the collaboration provider + +Tiptap Collaboration's provider offers a couple of settings for custom configurations. Review the tables for all parameters, practical use cases, and key concepts like "awareness". + +| Setting | Description | Default Value | +| ------------------ | ---------------------------------------------------------------------------------------------- | --------------- | +| appId | App ID for Collaboration Cloud setups. | '' | +| baseUrl | URL for connecting to on-premises servers, used as an alternative to appId for on-prem setups. | '' | +| name | The name of the document. | '' | +| document | The Y.js document instance; defaults to creating a new one. | new Y.Doc() | +| token | Authentication token for secure connections. Works with strings, functions and Promises. | '' | +| awareness | Manages user presence information, by default attached to the passed Y.js document. | new Awareness() | +| connect | Whether to connect to the server after initialization. | true | +| preserveConnection | Whether to preserve the websocket connection after closing the provider. | true | +| broadcast | Enables syncing across browser tabs. | true | +| forceSyncInterval | Interval for forced server sync (in ms). | false | +| quiet | Suppresses warning outputs. | false | +| WebSocketPolyfill | WebSocket implementation for Node.js environments. For example ws. | WebSocket | + +### Optimize reconnection timings + +The provider’s reconnection settings are preset for optimal performance in production settings. If you need to tweak these settings for specific scenarios you can do so with our delay configurations. + +Adjust initial delays, apply exponential backoff, or set maximum wait times to fine-tune your application's reconnection behavior, balancing responsiveness with server efficiency. + +| Setting | Description | Default Value | +| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- | +| delay | Base delay between reconnection attempts, in milliseconds. | 1000 | +| factor | Multiplier for delay, increasing it exponentially after each attempt. | 2 | +| initialDelay | Time before the first reconnection attempt, in milliseconds. Ideally immediate. | 0 | +| maxAttempts | Maximum number of reconnection attempts. 0 means unlimited. | 0 | +| jitter | When jitter is enabled, it adds variability to the reconnection delay by selecting a random value within the range of minDelay and the delay calculated for the current attempt. | true | +| minDelay | Minimum delay when jitter is enabled, ensuring a random delay isn't too short. This property has no effect if jitter is disabled. | 1000 | +| maxDelay | The maxDelay setting caps the delay during reconnection attempts. When using the exponential backoff (factor), you can specify 0 for maxDelay to remove this upper limit, allowing the delay to increase indefinitely. | 30000 | +| timeout | Sets a limit, in milliseconds, for how long to wait for a reconnection attempt before giving up. If this timeout is reached, subsequent attempts are halted. | 0 | +| messageReconnectTimeout | Defines the duration in milliseconds to await a server message before terminating the connection. If no message is received within this period, the connection is automatically closed. | 30000 | diff --git a/src/content/collaboration/sidebar.ts b/src/content/collaboration/sidebar.ts new file mode 100644 index 0000000..1916034 --- /dev/null +++ b/src/content/collaboration/sidebar.ts @@ -0,0 +1,96 @@ +import { SidebarConfig } from '@/types' + +export const sidebarConfig: SidebarConfig = { + id: 'collaboration', + rootHref: '/collaboration/getting-started/overview', + title: 'Collaboration', + items: [ + { + type: 'group', + href: '/collaboration/getting-started', + title: 'Getting started', + children: [ + { + title: 'Overview', + href: '/collaboration/getting-started/overview', + }, + { + title: 'Install', + href: '/collaboration/getting-started/install', + }, + { + title: 'Authenticate', + href: '/collaboration/getting-started/authenticate', + }, + ], + }, + { + type: 'group', + href: '/collaboration/provider', + title: 'Provider', + children: [ + { + title: 'Integration', + href: '/collaboration/provider/integration', + }, + { + title: 'Events', + href: '/collaboration/provider/events', + }, + ], + }, + { + type: 'group', + href: '/collaboration/core-concepts', + title: 'Features', + children: [ + { + title: 'Awareness', + href: '/collaboration/core-concepts/awareness', + }, + { + title: 'Webhooks', + href: '/collaboration/core-concepts/webhooks', + }, + ], + }, + { + type: 'group', + href: '/collaboration/documents', + title: 'Documents', + children: [ + { + title: 'Overview', + href: '/collaboration/documents', + }, + { + title: 'REST API', + href: '/collaboration/documents/rest-api', + }, + { + title: 'History', + href: '/collaboration/documents/history', + }, + { + title: 'Inject content', + href: '/collaboration/documents/content-injection', + }, + ], + }, + { + type: 'group', + href: '/collaboration/operations', + title: 'Ops', + children: [ + { + title: 'Configure runtime', + href: '/collaboration/operations/configure', + }, + { + title: 'Metrics', + href: '/collaboration/operations/metrics', + }, + ], + }, + ], +} diff --git a/src/content/comments/core-concepts/configure.mdx b/src/content/comments/core-concepts/configure.mdx new file mode 100644 index 0000000..2ee76dd --- /dev/null +++ b/src/content/comments/core-concepts/configure.mdx @@ -0,0 +1,57 @@ +--- +title: Configure comments +meta: + title: Configure | Tiptap Comments Docs + description: Configure TiptapCollabProvider and customize thread classes in your Tiptap editor. More in the documentation! + category: Comments +--- + +Comments are embedded within documents in the Collaboration Cloud. To enable comments, integrate the TiptapCollabProvider and configure your setup to support comment functionality. + +## provider + +The TiptapCollabProvider instance + +Default: `null` + +```js +const tiptapCollabProvider = new TiptapCollabProvider({ + // your provider options +}) + +Comments.configure({ + provider: tiptapCollabProvider, +}) +``` + +## classes + +The classes used for the threads. + +Default: + +```js +{ + thread: 'tiptap-thread', + threadInline: 'tiptap-thread--inline', + threadBlock: 'tiptap-thread--block', + threadHovered: 'tiptap-thread--hovered', + threadSelected: 'tiptap-thread--selected', + threadResolved: 'tiptap-thread--resolved', + threadUnresolved: 'tiptap-thread--unresolved', +} +``` + +```js +Comments.configure({ + classes: { + thread: 'my-thread', + threadInline: 'my-thread-inline', + threadBlock: 'my-thread-block', + threadHovered: 'my-thread-hovered', + threadSelected: 'my-thread-selected', + threadResolved: 'my-thread-resolved', + threadUnresolved: 'my-thread-unresolved', + }, +}) +``` diff --git a/src/content/comments/core-concepts/manage-threads.mdx b/src/content/comments/core-concepts/manage-threads.mdx new file mode 100644 index 0000000..65cc488 --- /dev/null +++ b/src/content/comments/core-concepts/manage-threads.mdx @@ -0,0 +1,236 @@ +--- +title: Manage threads in your editor +meta: + title: Manage threads | Tiptap Comments Docs + description: Manage discussions in Tiptap Editor using threads and comments with editor commands. More in our docs! + category: Comments +--- + +import { Callout } from '@/components/ui/Callout' + +You can use the following guide to integrate comments directly into your editor. For a full list of all Comments editor commands see the [Editor Commands](/comments/integrate/editor-commands) documentation page. + +You can also interact with comments from outside your editor via our [Comments REST API](/comments/integrate/rest-api). + +## Learn about threads + +Tiptap's Comments feature organizes discussions into threads for clear, context-relevant collaboration, distinguishing between threads and individual comments. + +Threads are overarching containers for discussions related to specific document parts, while comments are individual contributions within those threads. + +## Create a new thread + +Let's assume you have a button to create a new thread. You can use the `setThread` command to create a new thread at the current selection. + +```js +const createThread = () => { + editor + .chain() + .setThread({ + content: 'This is a new thread', // the content of the threads first inital comment + }) + .run() +} +``` + +This will create a new thread at the current selection and add a comment with the given content. By default comments and threads don't have a user or any other meta data assigned. Lets say you want to add the author to the thread **and** the comment. You can do this by passing through the `data` and `commentData` property to the `setThread` command. + +```js +const createThread = () => { + const user = { + id: '123', // the user id of the author + name: 'John Doe', // the name of the author + avatarUrl: 'https://example.com/avatar.jpg', // the avatar of the author + } + + editor + .chain() + .setThread({ + content: 'This is a new thread', // the content of the threads first inital comment + data: { + user, + }, + commentData: { + user, + }, + }) + .run() +} +``` + +Now the thread and comment will have a user assigned to it. + +## Receive and render threads + +To receive the list of threads on your current document, you can simply call `provider.getThreads()`. This will return an array of threads on the document connected to your provider. + +This is a static array which won't update on its own. If you want to keep the list of threads up to date, you can listen to changes via the `provider.watchThreads` and `provider.unwatchThreads` functions. + +```js +// lets save threads in a variable +let threads = [] + +// this function is called whenever the threads change +const getThreads = () => { + threads = provider.getThreads() +} + +// initial call to get the threads +getThreads() + +// watch for changes +provider.watchThreads(getThreads) +``` + +to unwatch the threads you can call `provider.unwatchThreads(getThreads)`. + +```js +provider.unwatchThreads(getThreads) +``` + +Lets say you want to write a react hook to get the threads and keep them up to date, you could write a hook like this. + +```jsx +const useThreads = (provider) => { + const [threads, setThreads] = useState([]) + + useEffect(() => { + if (!provider) { + return () => null + } + + const getThreads = () => { + setThreads(provider.getThreads()) + } + + getThreads() + + provider.watchThreads(getThreads) + + return () => { + provider.unwatchThreads(getThreads) + } + }, [provider]) + + return threads +} +``` + +Now those threads will be reactive and can be used to render the threads in your UI. + +## Update a thread + +To update a thread you can use the `updateThread` command. This command will update the thread with the given id and update the content of the thread. + +```js +editor.commands.updateThread({ + id: '123', + { + data: { + seen: true, + } + } +}) +``` + +This will update the thread with the id `123` and set the `seen` property to `true`. + +## Delete a thread + +To delete a thread you can use the `removeThread` command. This command will delete the thread with the given id. + + + By default, threads removed won't be deleted from the yjs document. To do this, you can pass + through the `deleteThread` option to the `removeThread` command. + + +```js +editor.commands.removeThread({ + id: '123', + deleteThread: true, +}) +``` + +## Create, update and delete comments + +Comments can be added, edited, and removed within threads but cannot be marked as resolved, as they are considered parts of the thread discussions. + +To create a comment on a thread you can use the `createComment` command. This command will create a new comment on the thread with the given id. + +```js +editor.commands.createComment({ + threadId: '123', + content: 'This is a new comment', // this could also be tiptap JSON or any other type of content + data: { + user, // pass through any meta data you want - in this case the user + }, +}) +``` + +This will create a new comment on the thread with the id `123` and set the content to `This is a new comment`. You can also pass through any meta data you want to the comment. + +To update a comment you can use the `updateComment` command. This command will update the comment with the given id and update the content of the comment. + +```js +editor.commands.updateComment({ + threadId: '123', // the thread ID + id: '456', // the comment ID + content: 'Now this is the new content', // the new content of the comment + data: { + edited: true, // set the edited property to true + }, +}) +``` + +This will update the comment with the id `456` on the thread with the id `123` and set the content to `Now this is the new content`. You can also pass through any meta data you want to the comment. + +Finally you can delete a comment by using the `deleteComment` command. This command will delete the comment with the given id. + +```js +editor.commands.deleteComment({ + threadId: '123', + id: '456', +}) +``` + +## Resolve and unresolve threads + +To resolve a thread you can use the `resolveThread` command. This command will resolve the thread with the given id. + +```js +editor.commands.resolveThread({ + id: '123', +}) +``` + +This will resolve the thread with the id `123`. To unresolve a thread you can use the `unresolveThread` command. This command will unresolve the thread with the given id. + +If you want to resolve a thread and add information on which user resolved the thread, you can set the threads data to include the user who resolved the thread. Just make sure to clear the data when unresolving the thread. + +```js +editor.commands.unresolveThread({ + id: '123', +}) +``` + +## Select a thread + +To select a thread you can use the `selectThread` command. This command will select the thread with the given id. + +```js +editor.commands.selectThread({ + id: '123', +}) +``` + +This will move the cursor to the thread with the id `123`. + +To deselect a thread you can use the `unselectThread` command. This command will deselect the thread with the given id. + +```js +editor.commands.unselectThread({ + id: '123', +}) +``` + +You can also select or unselect threads without an id. In that case, the editor will select or unselect the thread at the current selection. diff --git a/src/content/comments/core-concepts/style-threads.mdx b/src/content/comments/core-concepts/style-threads.mdx new file mode 100644 index 0000000..a0e9695 --- /dev/null +++ b/src/content/comments/core-concepts/style-threads.mdx @@ -0,0 +1,67 @@ +--- +title: Style comments in your editor +meta: + title: Style threads | Tiptap Comments Docs + description: Style and manage thread visibility in your Tiptap editor using CSS decoration classes for inline and block threads. + category: Comments +--- + +To style threads in your Tiptap editor, we use decoration classes that are wrapped around the threads. Since threads can also include block nodes, we have two different types of decorations. One for inline threads that are wrapped around the text and one for block threads that are wrapped around the block node. + +By default the following css classes are used for the threads: + +```css +.tiptap-thread {} // the thread class for any type of thread +.tiptap-thread--inline {} // the thread class for inline threads +.tiptap-thread--block {} // the thread class for block threads +.tiptap-thread--hovered {} // the thread class for hovered threads +.tiptap-thread--selected {} // the thread class for selected threads +.tiptap-thread--resolved {} // the thread class for resolved threads +.tiptap-thread--unresolved {} // the thread class for unresolved threads +``` + +Those classes can also be overwritten by passing through the classes to the `ThreadsKit` extension. + +```js +const editor = new Editor({ + ... + extensions: [ + ..., + ThreadsKit.configure({ + classes: { + thread: 'my-thread', + threadInline: 'my-thread-inline', + threadBlock: 'my-thread-block', + threadHovered: 'my-thread-hovered', + threadSelected: 'my-thread-selected', + threadResolved: 'my-thread-resolved', + threadUnresolved: 'my-thread-unresolved', + }, + }), + ] +}) +``` + +## Handling hover events + +Lets say you have a sidebar with a list of threads and you want to highlight the thread currently hovered in your sidebar inside the editor, you can simply dispatch a transaction to the editor with the meta `threadMouseOver` or `threadMouseOut` to give the editor the information which thread is currently hovered. + +```jsx +const onHoverThread = (threadId) => { + const { tr } = editor.state + + tr.setMeta('threadMouseOver', threadId) + editor.view.dispatch(tr) +} + +const onUnhoverThread = (threadId) => { + const { tr } = editor.state + + tr.setMeta('threadMouseOut', threadID) + editor.view.dispatch(tr) +} + +;
onHoverThread('123')} onMouseLeave={() => onUnhoverThread('123')}> + Thread 123 +
+``` diff --git a/src/content/comments/getting-started/install.mdx b/src/content/comments/getting-started/install.mdx new file mode 100644 index 0000000..1f9e968 --- /dev/null +++ b/src/content/comments/getting-started/install.mdx @@ -0,0 +1,64 @@ +--- +title: Install the Comments extension +meta: + title: Install comments | Tiptap Comments Docs + description: Install the comments extension in Tiptap to add threaded discussions to your editor and app. Learn more in the docs! + category: Comments +--- + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + + + This extension requires a valid Entry, Business or Enterprise subscription and a running [Tiptap + Cloud instance](https://cloud.tiptap.dev/). To install the extension you need [access to our + private registry](/guides/pro-extensions), set this up first. + + +```bash +npm install @tiptap-pro/extension-comments +``` + +## Integrating the Comments extension + +After installing the `comments` extension via npm or any other package manager, you can use it in your editor by registering the extension in the `extensions` property of your editor instance. + +Since the Comments extension consists of multiple parts including multiple nodes and plugins, you will need to use the `CommentsKit` extension to add all the required parts to your editor. + +```js +import { ThreadsKit } from '@tiptap-pro/extension-comments' + +const editor = new Editor({ + ... + extensions: [ + ..., + CommentsKit, + ] +}) +``` + +This will add all required extensions to your editor. Since Threads are a **cloud** or **on premises** feature you will need to also pass through a `TiptapCollabProvider` instance to your comments extension. + +```js +const collabProvider = new TiptapCollabProvider({ + // your provider options +}) + +const editor = new Editor({ + ... + extensions: [ + ..., + CommentsKit.configure({ + provider: collabProvider, + }), + ] +}) +``` + +Your editor is now ready to support threads. + +
+ +See a full example of how to use the Comments extension in the following example: + + diff --git a/src/content/comments/getting-started/overview.mdx b/src/content/comments/getting-started/overview.mdx new file mode 100644 index 0000000..873146e --- /dev/null +++ b/src/content/comments/getting-started/overview.mdx @@ -0,0 +1,35 @@ +--- +title: Integrate Comments into your app +meta: + title: Comments | Tiptap Comments Docs + description: Use the comments extension in Tiptap to add and manage comments in your Editor or via the REST API or Webhooks. More in the docs! + category: Comments +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +The `comments` extension allows users to create threads and comments in your editor. Threads can be used to discuss specific parts of the document, or to add comments to specific parts of the document. + +Comments can be accessed and manipulated through the Comments REST API or received via Webhooks, enabling the creation of notification systems and the addition of comments from outside the Editor. + + + This extension requires a valid Entry, Business or Enterprise subscription and a running [Tiptap + Cloud instance](https://cloud.tiptap.dev/). To install the extension you need [access to our + private registry](/guides/pro-extensions), set this up first. + + + +For simpler examples, begin with the [Install](/comments/getting-started/install) section. + +## Comments features + +- Inline, Documents and Sidebar comments
+- Commenting on text, nodes, custom nodes and across a selection of nodes
+- Rich text support within comments (bold, emojis, etc.)
+- Resolving, editing and deletion of comments
+- Offline commenting support
+- Overlapping comments
+- Mentioning of users within comments
+- A webhook that allows you to integrate your own notification service in case someone is mentioned
+- A comments API that allows to programmatically interact with the comments
diff --git a/src/content/comments/integrate/editor-commands.mdx b/src/content/comments/integrate/editor-commands.mdx new file mode 100644 index 0000000..82e5d25 --- /dev/null +++ b/src/content/comments/integrate/editor-commands.mdx @@ -0,0 +1,139 @@ +--- +title: Comments editor commands +meta: + title: Editor commands | Tiptap Comments Docs + description: Use editor commands to integrate comments and threads into your Tiptap Editor. Learn more in the docs. + category: Comments +--- + +The Comments Editor API focuses on the client-side interactions for managing comments within the editor environment, enabling direct manipulation and customization of comment threads. + +In contrast, the Comments [REST API](/comments/integrate/rest-api) is designed for server-side operations, allowing for management outside of your editor. + +## All editor commands for comments + +| Command | Description | +| --------------- | ----------------------------------------------------------------------- | +| setThread | Creates a new thread with optional user and content data. | +| removeThread | Deletes a specified thread, with an option to remove from Yjs document. | +| updateThread | Updates specific thread properties like 'seen' status. | +| selectThread | Focuses the editor on a specified thread. | +| unselectThread | Removes focus from a selected thread. | +| resolveThread | Marks a thread as resolved. | +| unresolveThread | Reverts a thread from resolved status. | +| createComment | Adds a new comment to a thread with details like content and user data. | +| updateComment | Modifies an existing comment's content and metadata. | +| removeComment | Removes a specified comment from a thread. | + +## Interact with threads + +### setThread( content, data, commentData ) + +Creates a new thread at your current selection. + +```js +editor.commands.setThread({ + content: 'This is a new thread', + data: { authorId: '123' }, + commentData: { authorId: '123' }, +}) +``` + +### removeThread( id, deleteThread ) + +Deletes a thread with the given id. If now id is given, the thread at the current selection will be deleted. If `deleteThread` is set to `true`, the thread will also be deleted from the yjs document. + +```js +editor.commands.removeThread({ + id: '123', + deleteThread: true, +}) +``` + +### updateThread( id, data ) + +Updates a thread with the given id. + +```js +editor.commands.updateThread({ + id: '123', + data: { seen: true }, +}) +``` + +### selectThread( id, selectAround ) + +Selects a thread with the given id. If `selectAround` is set to `true`, the editor will create a selection range spanning the whole thread. + +```js +editor.commands.selectThread({ + id: '123', + selectAround: true, +}) +``` + +### unselectThread() + +Unselects the currently selected thread. + +```js +editor.commands.unselectThread() +``` + +### resolveThread( id ) + +Resolves a thread with the given id. + +```js +editor.commands.resolveThread({ + id: '123', +}) +``` + +### unresolveThread( id ) + +Unresolves a thread with the given id. + +```js +editor.commands.unresolveThread({ + id: '123', +}) +``` + +## Handle comments + +### createComment( threadId, content, data ) + +Creates a new comment on the thread with the given id. + +```js +editor.commands.createComment({ + threadId: '123', + content: 'This is a new comment', + data: { authorId: '123' }, +}) +``` + +### updateComment( threadId, id, content, data ) + +Updates a comment with the given id on the thread with the given id. + +```js +editor.commands.updateComment({ + threadId: '123', + id: '456', + content: 'Now this is the new content', + data: { edited: true }, +}) +``` + +### removeComment( threadId, id ) + +Deletes a comment with the given id on the thread with the given id. + +```js +editor.commands.removeComment({ + threadId: '123', + id: '456', +}) +``` diff --git a/src/content/comments/integrate/rest-api.mdx b/src/content/comments/integrate/rest-api.mdx new file mode 100644 index 0000000..4e4a7cd --- /dev/null +++ b/src/content/comments/integrate/rest-api.mdx @@ -0,0 +1,140 @@ +--- +title: Comments REST API +meta: + title: REST API | Tiptap Comments Docs + description: Use the Tiptap Comments REST API to manage threads and comments from outside the editor. More in the docs! + category: Comments +--- + +The Comments REST API allows users to manage comment threads and individual comments from outside the Tiptap Editor. This includes creating, updating, deleting, and retrieving threads and comments. + +Use the [Comments Postman Collection](https://www.postman.com/docking-module-explorer-14290287/workspace/tiptap-collaboration-public/folder/33042171-01d1c110-e913-4d99-b47a-fc95aad877c9?ctx=documentation) for hands-on experimentation with these capabilities. + +## Access the API + +The REST API is exposed directly from your Collaboration app, available at your custom URL: + +```bash +https://YOUR_APP_ID.collab.tiptap.cloud/ +``` + +Authentication is done using an API secret which you can find in +the [settings](https://cloud.tiptap.dev/apps/settings) of your Collaboration app. The secret must be sent as +an `Authorization` header. + +If your document identifier contains a slash (`/`), just make sure to encode it as `%2F`, e.g. +using `encodeURIComponent`. + +## Thread REST API endpoints + +### Get threads + +**Endpoint:** `GET /api/documents/:identifier/threads` + +**Description:** Retrieves all comment threads associated with a specific document. Use this endpoint to list all threads and view their details. + +```bash +curl --location 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads' \ +--header 'Authorization: {{Authorization}}' +``` + +### Get thread + +**Endpoint:** `GET /api/documents/:identifier/threads/:threadIdentifier` + +**Description:** Fetches details of a specific thread using its unique identifier within a document. This is useful for retrieving specific discussion threads. + +```bash +curl --location 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads/{thread_id}' \ +--header 'Authorization: {{Authorization}}' +``` + +### Create thread + +**Endpoint:** `POST /api/documents/:identifier/threads` + +**Description:** Creates a new thread within a document. You can specify the initial content and additional data like user metadata. + +```bash +curl --location 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: {{Authorization}}' \ +--data '{ + "content": "moin", + "data": { "key": "ttt"} +}' +``` + +### Update thread + +**Endpoint:** `PATCH /api/documents/:identifier/threads/:threadIdentifier` + +**Description:** Modifies attributes of an existing thread, such as marking it as resolved or updating its metadata. + +```bash +curl --location --request PATCH 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads/{thread_id}' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: {{Authorization}}' \ +--data '{ + "resolvedAt": null +}' +``` + +### Delete thread + +**Endpoint:** `DELETE /api/documents/:identifier/threads/:threadIdentifier` + +**Description:** Removes a specific thread from a document, effectively deleting all nested comments. + +```bash +curl --location --request DELETE 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads/{thread_id}' \ +--header 'Authorization: {{Authorization}}' +``` + +## Comment REST API endpoints + +### Create comment + +**Endpoint:** `POST /api/documents/:identifier/threads/:threadIdentifier/comments` + +**Description:** Adds a new comment to an existing thread. Specify the content and any associated data. + +```bash +curl --location 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads/{thread_id}/comments' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: {{Authorization}}' \ +--data '{ + "content": "test", + "data": { "key": "ttt"} +}' +``` + +### Update comment + +**Endpoint:** `PATCH /api/documents/:identifier/threads/:threadIdentifier/comments/:commentIdentifier` + +**Description:** Updates the content or metadata of an existing comment within a thread. + +```bash +curl --location --request PATCH 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads/{thread_id}/comments/{comment_id}' \ +--header 'Content-Type: application/json' \ +--header 'Authorization: {{Authorization}}' \ +--data '{ + "content": "UPDATED!" +}' +``` + +### Delete comment + +**Endpoint:** `DELETE /api/documents/:identifier/threads/:threadIdentifier/comments/:commentIdentifier` + +**Description:** Removes a specific comment from a thread. Use this to manage individual comments. + +```bash +curl --location --request DELETE 'https://your_app_id.collab.tiptap.cloud/api/documents/{document_id}/threads/{thread_id}/comments/{comment_id}' \ +--header 'Authorization: {{Authorization}}' +``` + +## Review Postman Collection + +Use the [Comments Postman Collection](https://www.postman.com/docking-module-explorer-14290287/workspace/tiptap-collaboration-public/folder/33042171-01d1c110-e913-4d99-b47a-fc95aad877c9?ctx=documentation) for hands-on experimentation. diff --git a/src/content/comments/integrate/webhook.mdx b/src/content/comments/integrate/webhook.mdx new file mode 100644 index 0000000..d7bd397 --- /dev/null +++ b/src/content/comments/integrate/webhook.mdx @@ -0,0 +1,240 @@ +--- +title: Comments webhook +meta: + title: Webhook | Tiptap Comments Docs + description: Enable and manage webhooks for Comments in Tiptap to receive notifications on thread and comment activities. More in the docs! + category: Comments +--- + +Enable, configure, and use webhooks for your Comments integration. Common use cases for Comments webhooks include: + +- Sending notifications when a thread is created, resolved, updated, or deleted. +- Notifying users when comments are added, updated, or deleted. +- In conjunction with the [mention extension](/editor/extensions/nodes/mention), sending emails or notifications to users when they are mentioned in comments. + +## Enable comment events + +If you signed up for your account after March 1st 2024, Comment webhooks are enabled by default. There's no additional action required on your part to start receiving Comment webhook events. + +If your account was created before March 1st and you're using an older version of the webhook system, you'll need to manually enable the new webhooks. Here's how: + +1. In case you’ve already implemented a previous Collaboration webhook, make sure to check the “type” and “trigger” fields when processing incoming webhooks. ([Documentation](/collaboration/core-concepts/webhooks)) +2. Navigate to the [Collaboration settings](https://cloud.tiptap.dev/apps/settings) in your account. +3. Locate the Webhook section and click on the "Upgrade" button. + +This upgrade is necessary to accommodate the introduction of multiple new events being routed to the same webhook endpoint, distinguished by a new `type` and `trigger` field. + +## Configure Webhooks + +To configure webhooks for Comments notifications: + +1. Navigate to the [Collaboration settings](https://cloud.tiptap.dev/apps/settings) in your account. +2. Find the webhooks section and add your desired endpoint URL. + +After adding your URL, the webhook is immediately live. You'll start receiving notifications for the specified events without any delay. + +## Webhook Events + +Comments webhooks trigger notifications for a variety of events related to threads and comments within the Comments extension. These events are triggered immediately upon the respective action occurring in the Comments. + +- `comment.added` +- `comment.updated` +- `comment.deleted` +- `thread.created` +- `thread.resolved` +- `thread.updated` +- `thread.deleted` + +## Example Payloads + +Below are example payloads for different types of webhook events: + +### Thread Created / Comment Created + +```json +{ + "trigger": "comment.added", + "thread": { + "id": "128ba3a9-c684-4956-8c9f-fe5dc147c7e5", + "createdAt": "2024-03-02T22:17:51.304Z", + "comments": [ + { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:17:51.307Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar" + } + ], + "updatedAt": "2024-03-02T22:17:51.305Z" + }, + "comment": { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:17:51.307Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar" + }, + "appName": "", + "type": "THREAD" +} +``` + +### Comment Updated + +```json +{ + "trigger": "comment.updated", + "thread": [ + { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:18:04.246Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar (bearbeitet)" + } + ], + "comment": { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:18:04.246Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar (bearbeitet)" + }, + "appName": "", + "type": "THREAD" +} +``` + +### Comment Deleted + +```json +{ + "trigger": "comment.deleted", + "thread": { + "id": "128ba3a9-c684-4956-8c9f-fe5dc147c7e5", + "createdAt": "2024-03-02T22:17:51.304Z", + "comments": [ + { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:18:04.246Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar (bearbeitet)" + } + ], + "updatedAt": "2024-03-02T22:17:51.305Z" + }, + "comment": { + "id": "1841e650-2202-42b6-a868-907fee42ccf7", + "createdAt": "2024-03-02T22:18:20.974Z", + "updatedAt": "2024-03-02T22:18:20.975Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Zweites Kommentar, selber Thread" + }, + "appName": "", + "type": "THREAD" +} +``` + +### Thread Deleted + +```json +{ + "trigger": "thread.deleted", + "thread": { + "id": "128ba3a9-c684-4956-8c9f-fe5dc147c7e5", + "createdAt": "2024-03-02T22:17:51.304Z", + "comments": [ + { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:18:04.246Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar (bearbeitet)" + } + ], + "updatedAt": "2024-03-02T22:18:52.050Z", + "resolvedAt": null + }, + "appName": "", + "type": "THREAD" +} +``` + +### Thread Resolved + +```json +{ + "trigger": "thread.resolved", + "thread": { + "id": "128ba3a9-c684-4956-8c9f-fe5dc147c7e5", + "createdAt": "2024-03-02T22:17:51.304Z", + "comments": [ + { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:18:04.246Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar (bearbeitet)" + } + ], + "updatedAt": "2024-03-02T22:18:48.531Z", + "resolvedAt": "2024-03-02T22:18:48.531Z" + }, + "appName": "", + "type": "THREAD" +} +``` + +### Thread Updated (i.e., Unresolved) + +```json +{ + "trigger": "thread.updated", + "thread": { + "id": "128ba3a9-c684-4956-8c9f-fe5dc147c7e5", + "createdAt": "2024-03-02T22:17:51.304Z", + "comments": [ + { + "id": "0259e4cb-43ad-4eb2-a7e9-a7a7d5207a76", + "createdAt": "2024-03-02T22:17:51.307Z", + "updatedAt": "2024-03-02T22:18:04.246Z", + "data": { + "userName": "Cyndi Lauper", + "userAvatar": "https://api.dicebear.com/7.x/lorelei/svg?seed=Cyndi Lauper" + }, + "content": "Threaderstellungskommentar (bearbeitet)" + } + ], + "updatedAt": "2024-03-02T22:18:52.050Z", + "resolvedAt": null + }, + "appName": "", + "type": "THREAD" +} +``` diff --git a/src/content/comments/sidebar.ts b/src/content/comments/sidebar.ts new file mode 100644 index 0000000..1881100 --- /dev/null +++ b/src/content/comments/sidebar.ts @@ -0,0 +1,62 @@ +import { SidebarConfig } from '@/types' + +export const sidebarConfig: SidebarConfig = { + id: 'comments', + rootHref: '/comments/getting-started/overview', + title: 'Comments', + items: [ + { + type: 'group', + href: '/comments/getting-started', + title: 'Getting started', + children: [ + { + title: 'Overview', + href: '/comments/getting-started/overview', + }, + { + title: 'Install', + href: '/comments/getting-started/install', + }, + ], + }, + { + type: 'group', + href: '/comments/core-concepts', + title: 'Core concepts', + children: [ + { + title: 'Manage threads', + href: '/comments/core-concepts/manage-threads', + }, + { + title: 'Style threads', + href: '/comments/core-concepts/style-threads', + }, + { + title: 'Configure', + href: '/comments/core-concepts/configure', + }, + ], + }, + { + type: 'group', + href: '/comments/integrate', + title: 'Integrate', + children: [ + { + title: 'Editor commands', + href: '/comments/integrate/editor-commands', + }, + { + title: 'REST API', + href: '/comments/integrate/rest-api', + }, + { + title: 'Webhook', + href: '/comments/integrate/webhook', + }, + ], + }, + ], +} diff --git a/src/content/content-ai/capabilities/image-generation.mdx b/src/content/content-ai/capabilities/image-generation.mdx new file mode 100644 index 0000000..0a9f6ed --- /dev/null +++ b/src/content/content-ai/capabilities/image-generation.mdx @@ -0,0 +1,31 @@ +--- +title: Image generation editor command +meta: + title: Generate image | Tiptap Content AI Docs + description: Integrate the aiImagePrompt into your editor to generate images with AI with a custom prompt and style. More in the docs! + category: Content AI +--- + +The `aiImagePrompt` command in Tiptap Content AI enables you to generate images directly within the editor. You can use different OpenAI models and customize the style of the generated images. + +To see how this command is used, check out the [notion-like template](https://templates.tiptap.dev/). + +## Integrate aiImagePrompt + +Generates an image based on your prompt and the desired style. + +Make sure to load the image extension (`'@tiptap/extension-image'`) in your editor instance. + +```js +editor.chain().focus().aiImagePrompt(options: ImageOptions).run() +``` + +## Image command options + +With these settings you can control how the image is generated: + +| Setting | Type | Default | Definition | +| --------- | ----------------------------------------------------------------------------------------------- | ---------------- | ------------------------ | +| modelName | `dall-e-2`, `dall-e-3`, `null` | `dall-e-3` | The model used at OpenAI | +| style | `photorealistic`, `digital_art`, `comic_book`, `neon_punk`, `isometric`, `line_art`, `3d_model` | `photorealistic` | Define the image style | +| size | `256x256`, `512x512`, `1024x1024` | `null` | diff --git a/src/content/content-ai/capabilities/text-generation/autocompletion.mdx b/src/content/content-ai/capabilities/text-generation/autocompletion.mdx new file mode 100644 index 0000000..29d2a18 --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/autocompletion.mdx @@ -0,0 +1,51 @@ +--- +title: 'Autocompletion in Content AI' +meta: + title: Autocompletion | Tiptap Content AI + description: Set up your Content AI extension to autocomplete and stream text when a user hits tab in your editor. More in the docs! + category: Content AI +--- + +import { CodeDemo } from '@/components/CodeDemo' + +When you enable autocompletion, the system uses a segment of the text you've already written to generate suggestions. + +To trigger autocompletion, simply press the `Tab` key while writing. Press `Tab` again to accept the suggested completion. + +If you want to see it in action, hit the `Tab` key after any line of text in this demo. + + +## Configure autocompletion + +When you're integrating the Content AI extension you can specify that you want to enable autocompletion, +how the autocompletion feature should behave and what context it should consider. + +| Setting | Type | Default | Definition | +| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `autocompletion` | `boolean` | `false` | Enables the autocompletion feature. When writing text, just hit **Tab** to trigger the autocompletion and another **Tab** to accept the completion. We’re using a portion of your already written text to build a prompt for OpenAI. | +| `autocompletionOptions` | `object` | `{ trigger: 'Tab', inputLength: 4000, modelName: 'gpt-3.5-turbo' }` | Defines the trigger and length of text used to generate autocompletion suggestion. You can also choose the OpenAI model to run the autocompletion task. | + + +To see all other Content AI extension configuration option, head over to the [install](/content-ai/getting-started/install#configure-the-extension) page. + + +## Enable autocompletion + +```js +import { useEditor } from '@tiptap/react' +import StarterKit from '@tiptap/starter-kit' +import Ai from '@tiptap-pro/extension-ai' + +const editor = useEditor({ + extensions: [ + StarterKit, + Ai.configure({ + appId: 'APP_ID_HERE', + token: 'TOKEN_HERE', + autocompletion: true, + // … other options (see above) + }), + // … more extensions + ], +}) +``` \ No newline at end of file diff --git a/src/content/content-ai/capabilities/text-generation/built-in-commands.mdx b/src/content/content-ai/capabilities/text-generation/built-in-commands.mdx new file mode 100644 index 0000000..91ed69b --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/built-in-commands.mdx @@ -0,0 +1,109 @@ +--- +title: Content AI editor commands +meta: + title: AI editor commands | Tiptap Content AI + description: Integrate AI into your Tiptap Editor to access preconfigured commands for text manipulation and image generation. + category: Content AI +--- + +The Content AI for Tiptap Editor includes a set of preconfigured commands that you can integrate into your rich text editor. These commands allow you to adjust text tone, complete text, generate images, and more, enhancing your editor's functionality. + +To see how these commands are used, check out the examples on the [overview](/content-ai/getting-started/overview) page. + +| Command | Description | +| ---------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| [`aiAdjustTone(tone: Tone, options: TextOptions)`](#aiadjusttone) | Adjusts the tone of voice of the selected text to the specified [TONE](#aitone). | +| [`aiBloggify(options: TextOptions)`](#most-text-commands) | Rewrite the text into a blog format | +| [`aiComplete(options: TextOptions)`](#most-text-commands) | Completes the selected text | +| [`aiDeEmojify(options: TextOptions)`](#most-text-commands) | Removes emojis from the selected text | +| [`aiEmojify(options: TextOptions)`](#most-text-commands) | Adds emojis ✨ to your text | +| [`aiExtend(options: TextOptions)`](#most-text-commands) | Extends your text | +| [`aiFixSpellingAndGrammar(options: TextOptions)`](#most-text-commands) | Fixes spelling & grammar | +| [`aiKeypoints(options: TextOptions)`](#most-text-commands) | Summarizes your text to a list of key points | +| [`aiRephrase(options: TextOptions)`](#most-text-commands) | Rephrases the selected text | +| [`aiRestructure(options: TextOptions)`](#most-text-commands) | Restructures the selected text to use rich text formatting | +| [`aiShorten(options: TextOptions)`](#most-text-commands) | Shortens the selected text | +| [`aiSimplify(options: TextOptions)`](#most-text-commands) | Rephrases your text in simplified words | +| [`aiSummarize(options: TextOptions)`](#most-text-commands) | Summarizes your text | +| [`aiTextPrompt(options: TextOptions)`](#most-text-commands) | Runs your custom prompt | +| [`aiTldr(options: TextOptions)`](#most-text-commands) | Creates a "Too Long; Didn't Read" version text | +| [`aiTranslate(language: Language, options: TextOptions)`](#aitranslate) | Translates the selected text into the specified language | +| **Utility** | +| [`aiAccept(options: AcceptOptions)`](/content-ai/capabilities/manage-responses#aiaccept) | [Accept the generated response](/content-ai/capabilities/manage-responses), and insert it into the editor | +| [`aiReject(options: RejectOptions)`](/content-ai/capabilities/manage-responses#aireject) | [Reject the generated Response](/content-ai/capabilities/manage-responses), resetting ai.storage state | +| [`aiRegenerate(options: RegenerateOptions)`](/content-ai/capabilities/manage-responses#airegenerate) | [Regenerate a response](/content-ai/capabilities/manage-responses) using the same parameters | + +### Most text commands + +Most of the text commands accept the same options and their usage is similar. The following example demonstrates how to use the `aiComplete` command: + +```js +editor.chain().focus().aiBloggify(options: TextOptions) +``` + +### aiAdjustTone + +```js +// Tone: 'default' | 'academic' | 'business' | 'casual' | 'childfriendly' | 'confident' | 'conversational' | 'creative' | 'emotional' | 'excited' | 'formal' | 'friendly' | 'funny' | 'humorous' | 'informative' | 'inspirational' | 'memeify' | 'narrative' | 'objective' | 'persuasive' | 'poetic' | string +editor.chain().focus().aiAdjustTone(tone: Tone, options: TextOptions).run() +``` + +### aiTranslate + +Translates the selected text content into the given output language. + +It accepts two letter ISO 639-1 language codes. + +```js +// Language: 'en' | 'de' | 'nl' | ... +editor.chain().focus().aiTranslate(language: Language, options: TextOptions).run() +``` + +## Text command options + +On every command which supports `TextOptions`, you’re able to specify the following options: + +| Setting | Type | Default | Definition | +| ---------------- | ---------------------------------------------------------------------- | --------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | +| `modelName` | see [Supported text models](#supported-text-models) | `gpt-3.5-turbo` | The model used at OpenAI | +| `language` | `string` (e.g. `en`, `de`) | `null` | Although we do our best to prompt OpenAI for a response in the language of the input, sometimes it’s better to define it yourself. | +| `tone` | `string` | `null` | A [voice of tone](#ai-adjust-tone) the response should be transformed to | +| `textLength` | `number` | `undefined` | The number of `textLengthUnit`s the AI should respond with (e.g. the `3` in "3 paragraphs") | +| `textLengthUnit` | `'paragraphs' \| 'words' \| 'characters'` | `undefined` | The unit of `textLength`s the AI should respond with (e.g. the `paragraphs` in "3 paragraphs") | +| `stream` | `boolean` | `false` | Should the command stream characters to the editor? It’s like the **typewriter** behavior in ChatGPT. **This requires the newest extension version!** | +| `collapseToEnd` | `boolean` | `true` | Whether the cursor should be set to the end after the operation or the insertion should get selected. | +| `format` | `'rich-text' \| 'plain-text'` | `plain-text` | Determines the [format](/content-ai/capabilities/text-generation/format) of how the model should respond | +| `context` | `Array<{ type: 'text', text: string} \| { type: 'url', url: string }>` | `[]` | [Context](/content-ai/capabilities/text-generation/provide-context) to provide the model for generating a Response. | +| `text` | `string` | `undefined` | An optional message to have the model respond to | +| `insert` | `boolean` | `true` | Allows disabling inserting content directly into the editor | + +_Unfortunately the combination of **tone** and **language** sometimes leads to responses which are not in the desired language._ + +### Supported text models + +We currently support the following OpenAI chat models: + +- `gpt-4o` +- `gpt-4o-2024-05-13` +- `gpt-4` +- `gpt-4-turbo-preview` +- `gpt-4-0125-preview` +- `gpt-4-1106-preview` +- `gpt-4-0613` +- `gpt-4-32k` +- `gpt-4-32k-0613` +- `gpt-3.5-turbo-0125` +- `gpt-3.5-turbo` +- `gpt-3.5-turbo-1106` +- `gpt-3.5-turbo-16k` + +## Choose the right Model + +When configuring the Tiptap AI extension, consider the specific needs of your application: + +- **For Cost-Effective Operations:** Opt for GPT-3 or DALL-E 2 if the primary concern is budget and the tasks do not demand the most advanced capabilities. +- **For Advanced Requirements:** Choose GPT-4o or DALL-E 3 when your application requires the highest level of language understanding or image generation quality, and budget is less of a constraint. + +The Tiptap AI extension's flexible configuration allows you to tailor the AI integration to match your specific requirements and budgetary considerations. + +_Note: The pricing details are not provided here due to variability and the need for up-to-date information. It's recommended to refer to the official OpenAI pricing page for the latest figures._ diff --git a/src/content/content-ai/capabilities/text-generation/custom-commands.mdx b/src/content/content-ai/capabilities/text-generation/custom-commands.mdx new file mode 100644 index 0000000..9f428a8 --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/custom-commands.mdx @@ -0,0 +1,61 @@ +--- +title: Register a custom command and prompt +meta: + title: Custom command | Tiptap Content AI + description: Extend the AI extension to create a custom editor command and prompt for your Tiptap editor. Learn more in the docs! + category: Content AI +--- + +To register your own AI commands, simply extend the AI extension, add your command in `addCommands()` (don't forget to inherit the predefined commands in `this.parent?.()`), and execute `aiTextPrompt()` to run your individual prompt. + +Please note that this example uses your prompt on the client-side, which means that users could read it. If you're looking to use a custom Language Model (LLM) or a prompt on your backend, please refer to the [example provided here](/content-ai/custom-llms/integrate). + +```js +import { Ai, getHTMLContentBetween } from '@tiptap-pro/extension-ai' + +// … other imports + +// Declare typings if TypeScript is used: +// +// declare module '@tiptap/core' { +// interface Commands { +// ai: { +// aiCustomTextCommand: () => ReturnType, +// } +// } +// } + +const AiExtended = Ai.extend({ + addCommands() { + return { + ...this.parent?.(), + + aiCustomTextCommand: + () => + ({ editor, state }) => { + const { from, to } = state.selection + const selectedText = getHTMLContentBetween(editor, from, to) + + return editor.commands.aiTextPrompt({ + text: `Translate the following text to French and add some emojis: ${selectedText}`, + }) + }, + } + }, +}) + +// … this is where you initialize your Tiptap editor instance and register the extended extension + +const editor = useEditor({ + extensions: [ + StarterKit, + AiExtended.configure({ + /* … */ + }), + ], + content: '', +}) + +// … use this to run your new command: +// editor.chain().focus().aiCustomTextCommand().run() +``` diff --git a/src/content/content-ai/capabilities/text-generation/format.mdx b/src/content/content-ai/capabilities/text-generation/format.mdx new file mode 100644 index 0000000..c4abffc --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/format.mdx @@ -0,0 +1,25 @@ +--- +title: Formatted AI responses +meta: + title: Format | Tiptap Content AI Docs + description: Enable AI to automatically format generated content in your Tiptap editor with rich text, lists, and more. Learn how in our docs! + category: Content AI +--- + +import { CodeDemo } from '@/components/CodeDemo' + + + +With the `format: 'rich-text'` option, you can generate AI responses that apply formatting to the content. This is especially useful when you want to generate content that includes rich text formatting like bold, italic, links, and more. + +```ts +// Steams the response as rich text into the editor +editor + .chain() + .aiTextPrompt({ + text: 'Write a list of popular programming languages', + stream: true, + format: 'rich-text', + }) + .run() +``` diff --git a/src/content/content-ai/capabilities/text-generation/index.mdx b/src/content/content-ai/capabilities/text-generation/index.mdx new file mode 100644 index 0000000..ce95c96 --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/index.mdx @@ -0,0 +1,8 @@ +--- +title: Integrate Content AI text commands +meta: + title: Text commands | Tiptap Content AI Docs + description: Pick from preconfigured Content AI text commands and learn how to extend them with context and custom prompts. More in the docs! + category: Editor +--- + diff --git a/src/content/content-ai/capabilities/text-generation/manage-responses.mdx b/src/content/content-ai/capabilities/text-generation/manage-responses.mdx new file mode 100644 index 0000000..b359cba --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/manage-responses.mdx @@ -0,0 +1,157 @@ +--- +title: Store and regenerate responses +meta: + title: Manage responses | Tiptap Content AI + description: Use the Content AI storage to save, regenerate and insert AI responses into your Tiptap editor. More in our docs! + category: Content AI +--- + +import { CodeDemo } from '@/components/CodeDemo' + +The AI extension stores the current state in it’s extension storage under `editor.storage.ai`. This storage is used to keep track of the current state of the AI response, as well as any past responses. + + + +| key | type | definition | +| ------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| state | `'loading' \| 'error' \| 'idle'` | While the AI is generating a response, the state is set to `loading`. After the response is generated, the state is set to `idle`. When there is an error, the state is set to `error` | +| response | `string \| undefined` | The most recent message generated by the AI. When `idle`, if this is a string, it is the previous generated message, if `undefined`, no message has been generated. When `loading`, this will be a string of what the AI has generated so far (if streaming the response). When `error`, this is `undefined` | +| error | `Error \| undefined` | The error generated, only ever set in the error state | +| generatedWith | `{ action: TextAction; options: TextOptions; range: undefined \| Range; } \| undefined` | The options that describe what the last generated response was generated with range is only ever set if inserting the content into the editor | +| pastResponses | `string[]` | Stores previously generated responses (on success), most recent first. Cleared when the response is accepted/rejected. | + +You can use this storage to read out the current state of AI responses like: + +```ts +if (editor.storage.ai.response.state === 'error') { + // The error that occurred + editor.storage.ai.response.error +} + +if (editor.storage.ai.response.state === 'loading') { + // The message that is currently being processed + editor.storage.ai.response.message +} + +if (editor.storage.ai.response.state === 'idle') { + if (editor.storage.ai.response.message) { + // The successful response + editor.storage.ai.response.message + } else { + // No response has been requested yet + } +} +``` + +## Using AI Storage + +Want to leverage the Tiptap Content AI's ability to generate results but, not have the results available outside of the editor? You can use `insert: false` on any AI [TextOption](/content-ai/capabilities/text-generation/built-in-commands#text-command-options) and it will store the result into the extension. + +```ts +const chatMessage = 'Hello, how are you?' + +editor + .chain() + .aiTextPrompt({ + text: chatMessage, + stream: true, + insert: false, + html: true, + }) + .run() +``` + +From there, you can use the `aiAccept`, `aiReject`, and `aiRegenerate` commands + +### aiAccept + +This command is meant to be ran when the user has accepted the AI response, it will insert the response into the editor by default and it’s behavior changes depending on the provided options. + +| key | type | definition | +| -------- | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| insertAt | `number \| { from: number, to: number }` | When a `number`, accept the response and insert it into the start of the editor. When `{ from: number, to: number }`, accept the response and replace the content from position from to position to with the AI response | +| append | `boolean` | If `true`, instead of replacing the current selection, append to it | + +The default behavior with no provided options is to, accept the response and insert it into the editor, replacing the current selection + +```ts +// Accept the response and insert it into the editor +editor.chain().aiAccept().run() + +// Accept the response and insert it into the editor at the start +editor.chain().aiAccept({ insertAt: 0 }).run() + +// Accept the response and insert it into the editor at the end +editor.chain().aiAccept({ insertAt: editor.state.doc.content.size }).run() + +// Accept the response and append it to the current selection +editor.chain().aiAccept({ append: true }).run() +``` + +### aiRegenerate + +This command is meant to be ran when the user wants the to retry the AI response, it will use all the same options as the previous AI text operation and add to the `editor.storage.ai.pastResponses` array + +| key | type | definition | +| -------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| insert | `boolean` | Whether to insert the regenerated response into the editor | +| insertAt | `number \| { from: number, to: number }` | If not specified,the regenerated response will be inserted where the previous response was. When a `number`, regenerate the response and insert it into the start of the editor. When `{ from: number, to: number }`, regenerate the response and replace the content from position from to position to with the AI response | + +The default behavior with no provided options is to, regenerate the response and insert it into the editor, replacing the current selection + +```ts +// Regenerate the response and insert it into the editor +editor.chain().aiRegenerate().run() + +// Regenerate the response and insert it into the editor at the start +editor.chain().aiRegenerate({ insertAt: 0 }).run() + +// Regenerate the response and insert it into the editor at the end +editor.chain().aiRegenerate({ insertAt: editor.state.doc.content.size }).run() + +// Regenerate the response and append it to the current selection +editor.chain().aiRegenerate({ append: true }).run() +``` + +### aiReject + +This command is meant to be ran when the user has rejected the AI response, it will reset the extension’s state to the initial idle state and clear all `editor.storage.ai.pastResponses` + +| key | type | definition | +| ---- | ------------------ | --------------------------------------------------------------------------------------------------- | +| type | 'reset' \| 'pause' | Whether to reset the AI to the idle state. Or just pause the current response. Default is `'reset'` | + +```ts +editor.chain().aiReject().run() + +// Will not clear out editor.storage.ai, useful for keeping current response in the editor storage +editor.chain().aiReject({ type: 'pause' }).run() +``` + +## Advanced Example + +One use-case of extension storage could be to render a preview of the AI generated content. + +To render a preview of what a chat would look like in your editor, we can use your editor’s schema to generate the html that would be generated. With this HTML you can display a preview of that content in an element + +```tsx +// Display the response as HTML +import { tryParseToTiptapHTML } from '@tiptap-pro/extension-ai' + +// try to parse the current message as HTML, and null if it could not be parsed +tryToParseToHTML(editor.storage.ai.response.message, editor) + +// try to parse a previous response as HTML, and null if it could not be parsed +tryToParseToHTML(editor.storage.ai.pastResponses[0], editor) + +// For example in React +function PreviewComponent({ editor }) { + const htmlResponse = tryToParseToHTML(editor.storage.ai.response.message, editor) + /* This is safe since we've parsed the content with prose-mirror first */ + return
+} +``` + +See our demo below for a full example of how a chat preview could work. + + diff --git a/src/content/content-ai/capabilities/text-generation/provide-context.mdx b/src/content/content-ai/capabilities/text-generation/provide-context.mdx new file mode 100644 index 0000000..030244d --- /dev/null +++ b/src/content/content-ai/capabilities/text-generation/provide-context.mdx @@ -0,0 +1,39 @@ +--- +title: Provide more context to your prompts +meta: + title: Context | Tiptap Content AI + description: Add more context to your prompts and editor commands to fine-tune your AI's response. Learn more in our docs. + category: Content AI +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +With the `context` option, you can provide additional information to the AI model to help it generate more relevant content. This can be useful when you want to generate content that is more aligned with the context of the conversation. + + + +## Context option + +Context can be provided in two formats, `text` and `url`. The `text` format is used to provide additional text context to the AI model, while the `url` format is used to provide a URL context. + + + The url provided must be a valid URL that is accessible by Tiptap Content AI. This is useful when + you want to provide additional context to the AI model that is referencing a third-party source. + + +```ts +// Steams the response as rich text into the editor +editor + .chain() + .aiTextPrompt({ + text: 'What does Alice do for a living?', + stream: true, + format: 'rich-text', + context: [ + { type: 'text', text: 'John & Alice are a software engineers.' }, + { type: 'url', url: 'https://company.example.com/team' }, + ], + }) + .run() +``` diff --git a/src/content/content-ai/custom-llms/integrate.mdx b/src/content/content-ai/custom-llms/integrate.mdx new file mode 100644 index 0000000..6a6dbf8 --- /dev/null +++ b/src/content/content-ai/custom-llms/integrate.mdx @@ -0,0 +1,215 @@ +--- +title: Integrate a custom LLM +meta: + title: Custom LLM | Tiptap Content AI + description: Implement custom LLMs with the advanced AI extension and override resolver functions in your editor. Learn more in the docs! + category: Content AI +--- + +import { Callout } from '@/components/ui/Callout' + +If you want to use a your own backend which provides access to a custom LLM, you can override the resolver functions defined below on the extension configuration. + +Make sure you’re returning the correct type of response and that you handle errors correctly. + + + +We strongly advise you not to call OpenAI directly in your frontend, as this could lead to API token leakage! You should use a proxy on your backend to keep your API tokens secret. + + + +## Install the advanced extension + +In order to use customized resolver functions, you need to install the advanced version of our Tiptap AI extension. + + + + This extension requires a valid subscription in an eligible plan and [access to our private registry](/guides/pro-extensions), set this up first. + + **You need to be a business customer, to use the advanced extension.** + + + +```bash +npm install @tiptap-pro/extension-ai-advanced +``` + +### Use both custom LLM and Tiptap AI Cloud + +If you want to rely on our cloud in some cases, make sure that you [setup your team as described here](/content-ai/getting-started/install#set-up-tiptap-ai-for-your-team). + +## Resolver Functions + +You can define custom resolver functions on the extension options. Be aware that they expect the following return types. + +| Type | Method name | Return Type | +| ---------- | ---------------------- | ------------------ | +| completion | `aiCompletionResolver` | `Promise` | +| streaming | `aiStreamResolver` | `Promise \| null` | +| image | `aiImageResolver` | `Promise` | + +## Examples + +### Override a specific command resolution in completion mode + +In this example we want to call our custom backend when the `rephrase` action/command is called. +Everything else should be handled by the default backend in the Tiptap Cloud. + +```js +// ... +import Ai from '@tiptap-pro/extension-ai-advanced' +// ... + +Ai.configure({ + appId: 'APP_ID_HERE', + token: 'TOKEN_HERE', + // ... + // Define the resolver function for completions (attention: streaming and image have to be defined separately!) + aiCompletionResolver: async ({ + action, + text, + textOptions, + extensionOptions, + defaultResolver, + }) => { + // Check against action, text, whatever you like + // Decide to use custom endpoint + if (action === 'rephrase') { + const response = await fetch('https://dummyjson.com/quotes/random') + const json = await response?.json() + + if (!response.ok) { + throw new Error(`${response.status} ${json?.message}`) + } + + return json?.quote + } + + // Everything else is routed to the Tiptap AI service + return defaultResolver({ + action, + text, + textOptions, + extensionOptions, + }) + }, +}) +``` + +### Register a new AI command and call a custom backend action + +In this example, we register a new editor command named `aiCustomTextCommand`, use the Tiptap `runAiTextCommand` function to let Tiptap do the rest, and add a custom command resolution to call a custom backend (in completion mode). + +```js +// … +import { Ai, runAiTextCommand } from '@tiptap-pro/extension-ai-advanced' +// … + +// Declare typings if TypeScript is used: +// +// declare module '@tiptap/core' { +// interface Commands { +// ai: { +// aiCustomTextCommand: () => ReturnType, +// } +// } +// } + +const AiExtended = Ai.extend({ + addCommands() { + return { + ...this.parent?.(), + + aiCustomTextCommand: + (options = {}) => + (props) => { + // Do whatever you want; e.g. get the selected text and pass it to the specific command resolution + return runAiTextCommand(props, 'customCommand', options) + }, + } + }, +}) + +// … this is where you initialize your Tiptap editor instance and register the extended extension + +const editor = useEditor({ + extensions: [ + /* … add other extension */ + AiExtended.configure({ + /* … add configuration here (appId, token etc.) */ + aiCompletionResolver: async ({ + action, + text, + textOptions, + extensionOptions, + defaultResolver, + }) => { + if (action === 'customCommand') { + const response = await fetch('https://dummyjson.com/quotes/random') + const json = await response?.json() + + if (!response.ok) { + throw new Error(`${response.status} ${json?.message}`) + } + + return json?.quote + } + + return defaultResolver({ + action, + text, + textOptions, + extensionOptions, + }) + }, + }), + ], + content: '', +}) + +// … use this to run your new command: +// editor.chain().focus().aiCustomTextCommand().run() +``` + +### Use your custom backend in streaming mode + +We’re entirely relying on a custom backend in this example. + +Make sure that the function `aiStreamResolver` returns a `ReadableStream`. + +And remember: If you want to use both streaming and the traditional completion mode, you’ll need to define a `aiCompletionResolver`, too! + +```js +// ... +import Ai from '@tiptap-pro/extension-ai-advanced' +// ... + +Ai.configure({ + appId: 'APP_ID_HERE', + token: 'TOKEN_HERE', + // ... + // Define the resolver function for streams + aiStreamResolver: async ({ action, text, textOptions }) => { + const fetchOptions = { + method: 'POST', + headers: { + accept: 'application/json', + 'content-type': 'application/json', + }, + body: JSON.stringify({ + ...textOptions, + text, + }), + } + + const response = await fetch(``, fetchOptions) + const json = await response?.json() + + if (!response.ok) { + throw new Error(`${json?.error} ${json?.message}`) + } + + return response?.body + }, +}) +``` diff --git a/src/content/content-ai/getting-started/configure.mdx b/src/content/content-ai/getting-started/configure.mdx new file mode 100644 index 0000000..e3ca77b --- /dev/null +++ b/src/content/content-ai/getting-started/configure.mdx @@ -0,0 +1,21 @@ +--- +title: Configure Content AI +meta: + title: Configure AI | Tiptap Content AI + description: Configure Tiptap Content AI in your editor and learn more about all the options possible with AI. + category: Content AI +--- + +The Content AI extension for Tiptap accepts different settings to configure the global behavior of the extension and the commands. + +| Setting | Type | Default | Definition | +| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `appId` | `string` | `''` | Your Application ID which can be obtained by [visiting the AI settings in Tiptap Cloud](https://collab.tiptap.dev/ai-settings) | +| `token` | `string` | `''` | In order to authenticate against our AI backend service, you’ll need to generate a JWT (with HS256) using your JWT secret, which you also [obtain in your team’s AI settings page](https://cloud.tiptap.dev/ai-settings) | +| `autocompletion` | `boolean` | `false` | Enables the autocompletion feature. When writing text, just hit **Tab** to trigger the autocompletion and another **Tab** to accept the completion. We’re using a portion of your already written text to build a prompt for OpenAI. | +| `autocompletionOptions` | `object` | `{ trigger: 'Tab', inputLength: 4000, modelName: 'gpt-3.5-turbo' }` | Defines the trigger and length of text used to generate autocompletion suggestion. You can also choose the OpenAI model to run the autocompletion task. | +| `onLoading` | `(context: { editor: Editor, action: TextAction \| 'image', isStreaming: boolean }) => void` | `undefined` | Callback for when the AI has begun generating a response. | +| `onSuccess` | `(context: { editor: Editor, action: TextAction \| 'image', isStreaming: boolean, response: string }) => void` | `undefined` | Callback for when the AI has successfully finished generating a response. | +| `onChunk` | `(context: { editor: Editor, action: TextAction \| 'image', isStreaming: boolean, response: string, chunk: string }) => void` | `undefined` | Callback for when a chunk of the response is generated. chunk being the new string partial response being the generated response so far (including the chunk) | +| `onError` | `(error: Error, context: { editor: Editor, action: TextAction \| 'image', isStreaming: boolean}) => void` | `undefined` | Callback for when an error occurs while generating a response. | +| `showDecorations` | `boolean` | `true` | If `false`, will not attempt to decorate AI suggestions in streaming mode. This reduces your ability to style suggestions but can fix issues with undo history | diff --git a/src/content/content-ai/getting-started/install.mdx b/src/content/content-ai/getting-started/install.mdx new file mode 100644 index 0000000..7bcc6a1 --- /dev/null +++ b/src/content/content-ai/getting-started/install.mdx @@ -0,0 +1,62 @@ +--- +title: Install Content AI +meta: + title: Install AI | Tiptap Content AI + description: Set up Tiptap Content AI in your editor, including configuring OpenAI keys and JWT authentication. More in the docs! + category: Content AI +--- + +import { Callout } from '@/components/ui/Callout' + +Please follow the next steps closely in order to prevent any missing settings before you start using Tiptap AI. + +Unless you’re an business customer who wants to use [custom resolver functions](/content-ai/custom-llms/integrate), you’ll need to set up your OpenAI keys in your [Tiptap account](https://cloud.tiptap.dev/ai-settings). + +## Set up Tiptap AI for your team + +This extension relies on using our Content AI backend service. You'll need a valid Entry, Business or Enterprise subscription. [Just head over to our pricing page to learn more.](https://tiptap.dev/pricing) + +1. You’ll need to provide an [OpenAI API token](https://platform.openai.com/docs/quickstart/account-setup) yourself, which we’re using in order to send requests to the OpenAI API. Your token is stored well encrypted and is only used on a per-request basis. [Add the OpenAI API Key to your team](https://cloud.tiptap.dev/ai-settings) +2. Generate a JWT (HS256 algorithm) with our provided secret to authenticate the extension against our service. [Get your JWT secret.](https://cloud.tiptap.dev/ai-settings) +3. Set up the extension as described below. + +## Install the extension + + + +This extension requires a valid Entry, Business or Enterprise subscription. To install the extension you need access to our [private registry](/guides/pro-extensions), set this up first. + + + +Once done, you can install the extension from our private registry: + +```bash +npm install @tiptap-pro/extension-ai +``` + +## Initialize the extension + +The integration into your editor instance is done like every other Tiptap extension. This is an example on how it could look like: + +```js +import { useEditor } from '@tiptap/react' +import StarterKit from '@tiptap/starter-kit' +import Ai from '@tiptap-pro/extension-ai' + +const editor = useEditor({ + extensions: [ + StarterKit, + Ai.configure({ + // Your Tiptap Content AI app id + appId: 'APP_ID_HERE', + // This needs to be your generated JWT and MUST NOT be the OpenAI API key! + token: 'TOKEN_HERE', + autocompletion: true, + // … other options (see below) + }), + // … more extensions + ], +}) +``` + +At this point you’re good to go to use OpenAI in your Tiptap editor. Have a look at the [configuration options](/content-ai/getting-started/configure) to customize your experience. diff --git a/src/content/content-ai/getting-started/overview.mdx b/src/content/content-ai/getting-started/overview.mdx new file mode 100644 index 0000000..6651215 --- /dev/null +++ b/src/content/content-ai/getting-started/overview.mdx @@ -0,0 +1,35 @@ +--- +title: Integrate AI into your editor +meta: + title: Content AI | Tiptap Content AI + description: Integrate AI features into your editor like smart autocompletion, image generation and more. Read about it in our docs. + category: Content AI +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Integrate the Content AI into your Tiptap Editor with just a couple of lines of code. This extension equips you with a set of AI-enhanced features including pre-built commands, prompt customization, image generation, and smart autocompletion. + +Add your own custom commands on top and even integrate your own proprietary LLM to create a unique user experience. + + + +## Content AI features + +- [Pre-configured default commands](/content-ai/capabilities/text-generation) +- [Autocompletion for efficient editing](/content-ai/capabilities/text-generation/autocompletion) +- Real-time streaming for commands +- Compatibility with various OpenAI models (e.g., gpt-3.5-turbo, gpt-4, gpt-4o, dall-e-3) +- [Create your own prompts and commands](/content-ai/capabilities/text-generation/custom-commands) +- [Custom LLM integration for business accounts](/content-ai/custom-llms/integrate) + +## How it works + +Integrate [OpenAI](/content-ai/getting-started/install) or your own [Custom LLM](/content-ai/custom-llms/integrate) with your Tiptap Editor. The extension covers both, the client and server-side implementations. Here’s the user experience: + +1. Highlight text in the editor and apply an AI command. +2. Your selection, the chosen action, and any options are sent to our cloud service. +3. We generate a prompt and engage OpenAI on your behalf. +4. The AI's response is then directly inserted or streamed into your editor. + +By default, this utilizes our backend service, but there are options for advanced scenarios including custom backends and LLMs. diff --git a/src/content/content-ai/resources/privacy.mdx b/src/content/content-ai/resources/privacy.mdx new file mode 100644 index 0000000..f7a1a7f --- /dev/null +++ b/src/content/content-ai/resources/privacy.mdx @@ -0,0 +1,63 @@ +--- +title: Content AI privacy +meta: + title: Privacy | Tiptap Content AI + description: Explore how Tiptap Content AI prioritizes your privacy with robust cloud integration and on-premise options. More in the docs! + category: Content AI +--- + +At Tiptap we value your privacy. So when using Tiptap Content AI that topic may raise some questions which we like to address in detail below. + +## Cloud integration + +The Tiptap Content AI Cloud Version **acts as a proxy** between your client (the Tiptap Editor) and OpenAI. This is done to protect your OpenAI secret from the client, as it is an anti-pattern to share secrets publicly and user-facing. + +When using our cloud service, you’ll need to enter your OpenAI secret in your AI settings page. This key is then encrypted and stored in our database. We use this key to perform requests against the OpenAI API on your behalf. + +### Data Flow + +The general flow of data looks like this: + +1. Your client (the Editor) performs an AI command like `translate` +2. The AI extension sends a request to our backend service +3. The backend performs a lookup of your given App ID and ensures that the provided token (the generated JWT) is valid and continuous the request or aborts with an error code +4. After the authorization process the backend builds a prompt based on the desired command and uses your OpenAI API key to send the request to the OpenAI API +5. Once the request is processed, the response is send back to the client + +### What we record + +During the process described above, we record the following data on a regular basis to ensure that our services works correctly and reliable: + +- HTTP logs including timestamps, a correlation ID, the referrer, user agent and IP including the relevant request headers and portion of the request body in order to ensure that the service is operational and prevent any abuse +- Performed operation mapped to your team including the timestamp, the correlation ID, the command (e.g. “translate”) and a timestamp in order to track the usage of your plan limits + +To be able to help you in case there’s something off, we implemented a mechanism called “enhanced logging”. + +**Only when asked to do so (e.g. for debugging) and with your permission** we may enable enhanced logging. To be clear: This is NOT the default. However, this leads to the following additional fields recorded: + +- Input text and options, the built prompt of our backend and the response of OpenAI + +Those data points help us to trace errors on each side and help you sort out any issues you may experience. After debugging is complete, we immediately disable the enhanced logging. + +### Encryption + +As mentioned above, we’re storing the following values encrypted in our database: + +- Your OpenAI API Key +- Your JWT Secret + +Those secrets are only decrypted when needed to authorize or fulfill a request. + +All traffic between the client, the backend and OpenAI is encrypted using the latest SSL standards. + +## On your premises + +The on-premise version works technically the same as the cloud version. It acts as a proxy between the client and OpenAI, too. + +Some things are different for obvious reasons: + +- The OpenAI API key is stored in your desired location and is never sent to us +- We do **not** get any usage information on the performed requests +- The logs are sent to stdout and you’re able to use them as you’d need and like + +Therefore, the on-prem version gives you full control over the gathered data and metrics. diff --git a/src/content/content-ai/sidebar.ts b/src/content/content-ai/sidebar.ts new file mode 100644 index 0000000..43011f6 --- /dev/null +++ b/src/content/content-ai/sidebar.ts @@ -0,0 +1,91 @@ +import { SidebarConfig } from '@/types' + +export const sidebarConfig: SidebarConfig = { + id: 'content-ai', + rootHref: '/content-ai/getting-started/overview', + title: 'Content AI', + items: [ + { + type: 'group', + href: '/content-ai/getting-started', + title: 'Getting started', + children: [ + { + title: 'Overview', + href: '/content-ai/getting-started/overview', + }, + { + title: 'Install', + href: '/content-ai/getting-started/install', + }, + { + title: 'Configure', + href: '/content-ai/getting-started/configure', + }, + ], + }, + { + type: 'group', + href: '/content-ai/capabilities', + title: 'Capabilities', + children: [ + { + title: 'Text generation', + href: '/content-ai/capabilities/text-generation', + children: [ + { + title: 'Built-in commands', + href: '/content-ai/capabilities/text-generation/built-in-commands', + }, + { + title: 'Autocompletion', + href: '/content-ai/capabilities/text-generation/autocompletion', + }, + { + title: 'Provide context', + href: '/content-ai/capabilities/text-generation/provide-context', + }, + { + title: 'Formatted responses', + href: '/content-ai/capabilities/text-generation/format', + }, + { + title: 'Manage responses', + href: '/content-ai/capabilities/text-generation/manage-responses', + }, + { + title: 'Custom commands', + href: '/content-ai/capabilities/text-generation/custom-commands', + }, + ], + }, + { + title: 'Image generation', + href: '/content-ai/capabilities/image-generation', + }, + ], + }, + { + type: 'group', + href: '/content-ai/custom-llms', + title: 'Custom LLMs', + children: [ + { + title: 'Integrate your LLM', + href: '/content-ai/custom-llms/integrate', + }, + ], + }, + { + type: 'group', + href: '/content-ai/resources', + title: 'Resources', + children: [ + { + title: 'Privacy', + href: '/content-ai/resources/privacy', + }, + ], + }, + ], +} diff --git a/src/content/editor/api/commands/content/clear-content.mdx b/src/content/editor/api/commands/content/clear-content.mdx new file mode 100644 index 0000000..0940e90 --- /dev/null +++ b/src/content/editor/api/commands/content/clear-content.mdx @@ -0,0 +1,29 @@ +--- +title: clearContent command +meta: + title: clearContent command | Tiptap Editor Docs + description: Delete all content in the editor with the clearContent command in your Tiptap Editor. Learn more in the docs. + category: Editor +--- + +The `clearContent` command deletes the current document. + +Keep in mind that the editor will enforce the configured schema, and the document won’t be `null`. The default [`Document`](/editor/extensions/nodes/document) expects to have at least one block node, which is the paragraph by default. In other words: Even after running that command the document will have at least one (empty) paragraph. + +See also: [setContent](/editor/api/commands/content/set-content), [insertContent](/editor/api/commands/content/insert-content) + +## Parameters + +`emitUpdate: boolean (false)` + +By default, it doesn’t trigger the update event. Passing `true` doesn’t prevent triggering the update event. + +## Use the clearContent command + +```js +// Remove all content from the document +editor.commands.clearContent() + +// Remove all content, and trigger the `update` event +editor.commands.clearContent(true) +``` diff --git a/src/content/editor/api/commands/content/cut.mdx b/src/content/editor/api/commands/content/cut.mdx new file mode 100644 index 0000000..8083926 --- /dev/null +++ b/src/content/editor/api/commands/content/cut.mdx @@ -0,0 +1,22 @@ +--- +title: cut command +meta: + title: cut command | Tiptap Editor Docs + description: Use the cut command in Tiptap to cut out content from a range and place it at a given position. Learn more in our docs! +--- + +This command cuts out content and places it into the given position. + +See also: [focus](/editor/api/commands/selection/focus) + +## Use the cut command + +```js +const from = editor.state.selection.from +const to = editor.state.selection.to + +const endPos = editor.state.doc.nodeSize - 2 + +// Cut out content from range and put it at the end of the document +editor.commands.cut({ from, to }, endPos) +``` diff --git a/src/content/editor/api/commands/content/index.mdx b/src/content/editor/api/commands/content/index.mdx new file mode 100644 index 0000000..e5f749f --- /dev/null +++ b/src/content/editor/api/commands/content/index.mdx @@ -0,0 +1,25 @@ +--- +title: Content Editor commands +meta: + title: Content commands | Tiptap Editor Docs + description: Learn about the clearContent, insertContent, insertContentAt, and setContent commands to efficiently manage content in Tiptap. + category: Editor +--- + +Use these commands to dynamically insert, replace, or remove content in your editor. Initialize new documents, update existing ones, or manage user selections, these commands provide you with tools to handle content manipulation. + +## Use Cases + +- **Initializing New Documents:** Start fresh with the [`setContent`](/editor/api/commands/content/set-content) command to initialize a clean document or predefined template. +- **Updating Existing Content:** Use the [`insertContent`](/editor/api/commands/content/insert-content) or [`insertContentAt](/editor/api/commands/content/insert-content-at) commands to add new content or update specific sections based on user interactions. +- **Clearing Content:** Remove all content with the [`clearContent`](/editor/api/commands/content/clear-content) command while maintaining a valid document structure. +- **Managing User Selections:** Insert or replace content at specific positions or ranges using [`insertContentAt`](/editor/api/commands/content/insert-content-at) according to user selections. + +## List of content commands + +| Command | Description | +| ----------------- | ------------------------------------------------------------------- | +| `clearContent` | Deletes the current document while adhering to the editor’s schema. | +| `insertContent` | Adds content to the document using plain text, HTML, or JSON. | +| `insertContentAt` | Inserts content at a specific position or range in the document. | +| `setContent` | Replaces the entire document with a new one using JSON or HTML. | diff --git a/src/content/editor/api/commands/content/insert-content-at.mdx b/src/content/editor/api/commands/content/insert-content-at.mdx new file mode 100644 index 0000000..4a5c102 --- /dev/null +++ b/src/content/editor/api/commands/content/insert-content-at.mdx @@ -0,0 +1,81 @@ +--- +title: insertContentAt command +meta: + title: insertContentAt command | Tiptap Editor Docs + description: Add content to a specific position or range using plain text, HTML, or JSON with the insertContentAt command. More in the docs! + category: Editor +--- + +The `insertContentAt` will insert an HTML string or a node at a given position or range. If a range is given, the new content will replace the content in the given range with the new content. + +## Parameters + +`position: number | Range` + +The position or range the content will be inserted in. + +`value: Content` + +The content to be inserted. Can be plain text, an HTML string or JSON node(s). + +`options: Record` + +- updateSelection: controls if the selection should be moved to the newly inserted content. +- parseOptions: Passed content is parsed by ProseMirror. To hook into the parsing, you can pass `parseOptions` which are then handled by [ProseMirror](https://prosemirror.net/docs/ref/#model.ParseOptions). + +## Use the insertContentAt command + +```js +// Plain text +editor.commands.insertContent(12, 'Example Text') + +// Plain text, replacing a range +editor.commands.insertContent({ from: 12, to: 16 }, 'Example Text') + +// HTML +editor.commands.insertContent(12, '

Example Text

') + +// HTML with trim white space +editor.commands.insertContentAt(12, '

Hello world

', { + updateSelection: true, + parseOptions: { + preserveWhitespace: 'full', + }, +}) + +// JSON/Nodes +editor.commands.insertContentAt(12, { + type: 'heading', + attrs: { + level: 1, + }, + content: [ + { + type: 'text', + text: 'Example Text', + }, + ], +}) + +// Multiple nodes at once +editor.commands.insertContent(12, [ + { + type: 'paragraph', + content: [ + { + type: 'text', + text: 'First paragraph', + }, + ], + }, + { + type: 'paragraph', + content: [ + { + type: 'text', + text: 'Second paragraph', + }, + ], + }, +]) +``` diff --git a/src/content/editor/api/commands/content/insert-content.mdx b/src/content/editor/api/commands/content/insert-content.mdx new file mode 100644 index 0000000..9d9226d --- /dev/null +++ b/src/content/editor/api/commands/content/insert-content.mdx @@ -0,0 +1,70 @@ +--- +title: insertContent command +meta: + title: insertContent command | Tiptap Editor Docs + description: Use the insertContent command in Tiptap to add content to the document using plain text, HTML, or JSON. Learn more in our docs! + category: editor +--- + +The `insertContent` command adds the passed value to the document. + +See also: [setContent](/editor/api/commands/content/set-content), [clearContent](/editor/api/commands/content/clear-content) + +## Parameters + +`value: Content` + +The command is pretty flexible and takes plain text, HTML or even JSON as a value. + +## Use the insertContent command + +```js +// Plain text +editor.commands.insertContent('Example Text') + +// HTML +editor.commands.insertContent('

Example Text

') + +// HTML with trim white space +editor.commands.insertContent('

Example Text

', { + parseOptions: { + preserveWhitespace: false, + }, +}) + +// JSON/Nodes +editor.commands.insertContent({ + type: 'heading', + attrs: { + level: 1, + }, + content: [ + { + type: 'text', + text: 'Example Text', + }, + ], +}) + +// Multiple nodes at once +editor.commands.insertContent([ + { + type: 'paragraph', + content: [ + { + type: 'text', + text: 'First paragraph', + }, + ], + }, + { + type: 'paragraph', + content: [ + { + type: 'text', + text: 'Second paragraph', + }, + ], + }, +]) +``` diff --git a/src/content/editor/api/commands/content/set-content.mdx b/src/content/editor/api/commands/content/set-content.mdx new file mode 100644 index 0000000..e9276b8 --- /dev/null +++ b/src/content/editor/api/commands/content/set-content.mdx @@ -0,0 +1,51 @@ +--- +title: setContent command +meta: + title: setContent command | Tiptap Editor Docs + description: Replace the document with a new one using JSON or HTML with the setContent command. Learn more in our docs! + category: Editor +--- + +The `setContent` command replaces the document with a new one. You can pass JSON or HTML, both work fine. It’s basically the same as setting the `content` on initialization. + +See also: [insertContent](/editor/api/commands/content/insert-content), [clearContent](/editor/api/commands/content/clear-content) + +## Parameters + +`content: string` + +Pass a string (JSON or HTML) as [content](/guides/output-json-html). The editor will only render what’s allowed according to the [schema](/editor/core-concepts/schema). + +`emitUpdate?: Boolean (false)` + +By default, it doesn’t trigger the update event. Passing `true` doesn’t prevent triggering the update event. + +`parseOptions?: Record` + +Options to configure the parsing can be passed during initialization and/or with setContent. Read more about parseOptions in the [ProseMirror documentation](https://prosemirror.net/docs/ref/#model.ParseOptions). + +## Use the setContent command + +```js +// Plain text +editor.commands.setContent('Example Text') + +// HTML +editor.commands.setContent('

Example Text

') + +// JSON +editor.commands.setContent({ + type: 'doc', + content: [ + { + type: 'paragraph', + content: [ + { + type: 'text', + text: 'Example Text', + }, + ], + }, + ], +}) +``` diff --git a/src/content/editor/api/commands/for-each.mdx b/src/content/editor/api/commands/for-each.mdx new file mode 100644 index 0000000..d7d59d7 --- /dev/null +++ b/src/content/editor/api/commands/for-each.mdx @@ -0,0 +1,29 @@ +--- +title: forEach command +meta: + title: forEach command | Tiptap Editor Docs + description: Use the forEach command in Tiptap to loop through an array of items and insert content into the editor. Learn more in our docs! + category: Editor +--- + +Loop through an array of items. + +## Parameters + +`items: any[]` + +An array of items. + +`fn: (item: any, props: CommandProps & { index: number }) => boolean` + +A function to do anything with your item. + +## Use the forEach command + +```js +const items = ['foo', 'bar', 'baz'] + +editor.commands.forEach(items, (item, { commands }) => { + return commands.insertContent(item) +}) +``` diff --git a/src/content/editor/api/commands/index.mdx b/src/content/editor/api/commands/index.mdx new file mode 100644 index 0000000..a3a0cbd --- /dev/null +++ b/src/content/editor/api/commands/index.mdx @@ -0,0 +1,269 @@ +--- +title: Editor commands +meta: + title: Commands | Tiptap Editor Docs + description: Learn about command execution and chaining in Tiptap. Discover how to extend functionalities in the Editor command docs. + category: Editor +--- + +import { Callout } from '@/components/ui/Callout' + +The editor provides a ton of commands to programmatically add or change content or alter the selection. If you want to build your own editor you definitely want to learn more about them. + +## Execute a command + +All available commands are accessible through an editor instance. Let’s say you want to make text bold when a user clicks on a button. That’s how that would look like: + +```js +editor.commands.setBold() +``` + +While that’s perfectly fine and does make the selected bold, you’d likely want to chain multiple commands in one run. Let’s have a look at how that works. + +### Chain commands + +Most commands can be combined to one call. That’s shorter than separate function calls in most cases. Here is an example to make the selected text bold: + +```js +editor.chain().focus().toggleBold().run() +``` + +The `.chain()` is required to start a new chain and the `.run()` is needed to actually execute all the commands in between. + +In the example above two different commands are executed at once. When a user clicks on a button outside of the content, the editor isn’t in focus anymore. That’s why you probably want to add a `.focus()` call to most of your commands. It brings back the focus to the editor, so the user can continue to type. + +All chained commands are kind of queued up. They are combined to one single transaction. That means, the content is only updated once, also the `update` event is only triggered once. + + + By default Prosemirror **does not support chaining** which means that you need to update the + positions between chained commands via [**Transaction + mapping**](https://prosemirror.net/docs/ref/#transform.Mapping). + + +For example you want to chain a **delete** and **insert** command in one chain, you need to keep track of the position inside your chain commands. Here is an example: + +```js +// here we add two custom commands to the editor to demonstrate transaction mapping between two transaction steps +addCommands() { + return { + delete: () => ({ tr }) => { + const { $from, $to } = tr.selection + + // here we use tr.mapping.map to map the position between transaction steps + const from = tr.mapping.map($from.pos) + const to = tr.mapping.map($to.pos) + + tr.delete(from, to) + + return true + }, + insert: (content: string) => ({ tr }) => { + const { $from } = tr.selection + + // here we use tr.mapping.map to map the position between transaction steps + const pos = tr.mapping.map($from.pos) + + tr.insertText(content, pos) + + return true + }, + } +} +``` + +Now you can do the following without `insert` inserting the content into the wrong position: + +```js +editor.chain().delete().insert('foo').run() +``` + +#### Chain inside custom commands + +When chaining a command, the transaction is held back. If you want to chain commands inside your custom commands, you’ll need to use said transaction and add to it. Here is how you would do that: + +```js +addCommands() { + return { + customCommand: attributes => ({ chain }) => { + // Doesn’t work: + // return editor.chain() … + + // Does work: + return chain() + .insertContent('foo!') + .insertContent('bar!') + .run() + }, + } +} +``` + +### Inline commands + +In some cases, it’s helpful to put some more logic in a command. That’s why you can execute commands in commands. I know, that sounds crazy, but let’s look at an example: + +```js +editor + .chain() + .focus() + .command(({ tr }) => { + // manipulate the transaction + tr.insertText('hey, that’s cool!') + + return true + }) + .run() +``` + +### Dry run commands + +Sometimes, you don’t want to actually run the commands, but only know if it would be possible to run commands, for example to show or hide buttons in a menu. That’s what we added `.can()` for. Everything coming after this method will be executed, without applying the changes to the document: + +```js +editor.can().toggleBold() +``` + +And you can use it together with `.chain()`, too. Here is an example which checks if it’s possible to apply all the commands: + +```js +editor.can().chain().toggleBold().toggleItalic().run() +``` + +Both calls would return `true` if it’s possible to apply the commands, and `false` in case it’s not. + +In order to make that work with your custom commands, don’t forget to return `true` or `false`. + +For some of your own commands, you probably want to work with the raw [transaction](/editor/core-concepts/introduction). To make them work with `.can()` you should check if the transaction should be dispatched. Here is how you can create a simple `.insertText()` command: + +```js +export default (value) => + ({ tr, dispatch }) => { + if (dispatch) { + tr.insertText(value) + } + + return true + } +``` + +If you’re just wrapping another Tiptap command, you don’t need to check that, we’ll do it for you. + +```js +addCommands() { + return { + bold: () => ({ commands }) => { + return commands.toggleMark('bold') + }, + } +} +``` + +If you’re just wrapping a plain ProseMirror command, you’ll need to pass `dispatch` anyway. Then there’s also no need to check it: + +```js +import { exitCode } from '@tiptap/pm/commands' + +export default () => + ({ state, dispatch }) => { + return exitCode(state, dispatch) + } +``` + +### Try commands + +If you want to run a list of commands, but want only the first successful command to be applied, you can do this with the `.first()` method. This method runs one command after the other and stops at the first which returns `true`. + +For example, the backspace key tries to undo an input rule first. If that was successful, it stops there. If no input rule has been applied and thus can’t be reverted, it runs the next command and deletes the selection, if there is one. Here is the simplified example: + +```js +editor.first(({ commands }) => [ + () => commands.undoInputRule(), + () => commands.deleteSelection(), + // … +]) +``` + +Inside of commands you can do the same thing: + +```js +export default () => + ({ commands }) => { + return commands.first([ + () => commands.undoInputRule(), + () => commands.deleteSelection(), + // … + ]) + } +``` + +## List of commands + +Have a look at all of the core commands listed below. They should give you a good first impression of what’s possible. + +### Content + +| Command | Description | +| ------------------- | -------------------------------------------------------- | +| `clearContent()` | Clear the whole document. | +| `insertContent()` | Insert a node or an HTML string at the current position. | +| `insertContentAt()` | Insert a node or an HTML string at a specific position. | +| `setContent()` | Replace the whole document with new content. | + +### Nodes & Marks + +| Command | Description | +| ----------------------- | --------------------------------------------------------- | +| `clearNodes()` | Normalize nodes to a simple paragraph. | +| `createParagraphNear()` | Create a paragraph nearby. | +| `deleteNode()` | Delete a node. | +| `extendMarkRange()` | Extends the text selection to the current mark. | +| `exitCode()` | Exit from a code block. | +| `joinBackward()` | Join two nodes backward. | +| `joinForward()` | Join two nodes forward. | +| `lift()` | Removes an existing wrap. | +| `liftEmptyBlock()` | Lift block if empty. | +| `newlineInCode()` | Add a newline character in code. | +| `resetAttributes()` | Resets some node or mark attributes to the default value. | +| `setMark()` | Add a mark with new attributes. | +| `setNode()` | Replace a given range with a node. | +| `splitBlock()` | Forks a new node from an existing node. | +| `toggleMark()` | Toggle a mark on and off. | +| `toggleNode()` | Toggle a node with another node. | +| `toggleWrap()` | Wraps nodes in another node, or removes an existing wrap. | +| `undoInputRule()` | Undo an input rule. | +| `unsetAllMarks()` | Remove all marks in the current selection. | +| `unsetMark()` | Remove a mark in the current selection. | +| `updateAttributes()` | Update attributes of a node or mark. | + +### Lists + +| Command | Description | +| ----------------- | ------------------------------------------- | +| `liftListItem()` | Lift the list item into a wrapping list. | +| `sinkListItem()` | Sink the list item down into an inner list. | +| `splitListItem()` | Splits one list item into two list items. | +| `toggleList()` | Toggle between different list types. | +| `wrapInList()` | Wrap a node in a list. | + +### Selection + +| Command | Description | +| ---------------------- | --------------------------------------- | +| `blur()` | Removes focus from the editor. | +| `deleteRange()` | Delete a given range. | +| `deleteSelection()` | Delete the selection, if there is one. | +| `enter()` | Trigger enter. | +| `focus()` | Focus the editor at the given position. | +| `keyboardShortcut()` | Trigger a keyboard shortcut. | +| `scrollIntoView()` | Scroll the selection into view. | +| `selectAll()` | Select the whole document. | +| `selectNodeBackward()` | Select a node backward. | +| `selectNodeForward()` | Select a node forward. | +| `selectParentNode()` | Select the parent node. | +| `setNodeSelection()` | Creates a NodeSelection. | +| `setTextSelection()` | Creates a TextSelection. | + +## Write your own commands + +All extensions can add additional commands (and most do), check out the specific [documentation for the provided nodes](/editor/extensions/nodes), [marks](/editor/extensions/marks), and [functionality](/editor/extensions/functionality) to learn more about those. And of course, you can [add your custom extensions](/editor/extensions/custom-extensions) with custom commands as well. +But how do you write those commands? There’s a little bit to learn about that. diff --git a/src/content/editor/api/commands/lists/index.mdx b/src/content/editor/api/commands/lists/index.mdx new file mode 100644 index 0000000..3bf5c02 --- /dev/null +++ b/src/content/editor/api/commands/lists/index.mdx @@ -0,0 +1,30 @@ +--- +title: List commands +meta: + title: List commands | Tiptap Editor Docs + description: Manage lists in Tiptap with Editor commands like liftListItem, sinkListItem, splitListItem, toggleList, and wrapInList. + category: Editor +--- + +Lists are a crucial part of structuring content in your Tiptap editor. Tiptap provides commands to manipulate list structures easily. Here’s an overview of the essential commands that help you create, update, and manage your lists. + +## Use Cases + +- **Creating and Toggling Lists:** Create or switch between list types using [`toggleList`](/editor/api/commands/lists/toggle-list). +- **Nesting and Unnesting List Items:** Lift or sink list items using commands like [`liftListItem`](/editor/api/commands/lists/lift-list-item) and [`sinkListItem`](/editor/api/commands/lists/sink-list-item). +- **Splitting and Wrapping List Items:** Split or wrap list items efficiently with [`splitListItem`](/editor/api/commands/lists/split-list-item) and [`wrapInList`](/editor/api/commands/lists/wrap-in-list). +- **Improving List Keyboard Behavior:** Use the [`List Keymap`](/editor/extensions/functionality/listkeymap) extension to refine list behavior with additional keymap handlers. + +## List Keymap Extension + +You might also want to include the [`List Keymap`](/editor/extensions/functionality/listkeymap) extension, which adds extra keymap handlers to change the default backspace and delete behavior for lists. It modifies the default behavior so that pressing backspace at the start of a list item lifts the content into the list item above. + +## Here’s a list of… list commands + +| Command | Description | +| --------------- | ------------------------------------------------------------------------------------------- | +| `liftListItem` | Attempts to lift the list item around the current selection up into a wrapping parent list. | +| `sinkListItem` | Sinks the list item around the current selection down into a wrapping child list. | +| `splitListItem` | Splits one list item into two separate list items. | +| `toggleList` | Toggles between different types of lists. | +| `wrapInList` | Wraps a node in the current selection in a list. | diff --git a/src/content/editor/api/commands/lists/lift-list-item.mdx b/src/content/editor/api/commands/lists/lift-list-item.mdx new file mode 100644 index 0000000..66de176 --- /dev/null +++ b/src/content/editor/api/commands/lists/lift-list-item.mdx @@ -0,0 +1,15 @@ +--- +title: liftListItem command +meta: + title: liftListItem command | Tiptap Editor Docs + description: Use the liftListItem command in Tiptap to lift the list item into a wrapping parent list. Learn more in our docs! + category: Editor +--- + +The `liftListItem` will try to lift the list item around the current selection up into a wrapping parent list. + +## Using the liftListItem command + +```js +editor.commands.liftListItem() +``` diff --git a/src/content/editor/api/commands/lists/sink-list-item.mdx b/src/content/editor/api/commands/lists/sink-list-item.mdx new file mode 100644 index 0000000..2520acb --- /dev/null +++ b/src/content/editor/api/commands/lists/sink-list-item.mdx @@ -0,0 +1,15 @@ +--- +title: sinkListItem command +meta: + title: sinkListItem command | Tiptap Editor Docs + description: Use the sinkListItem command in Tiptap to sink the list item into a wrapping child list. Learn more in our docs! + category: Editor +--- + +The `sinkListItem` will try to sink the list item around the current selection down into a wrapping child list. + +## Use the sinkListItem command + +```js +editor.commands.sinkListItem() +``` diff --git a/src/content/editor/api/commands/lists/split-list-item.mdx b/src/content/editor/api/commands/lists/split-list-item.mdx new file mode 100644 index 0000000..3fd0e8b --- /dev/null +++ b/src/content/editor/api/commands/lists/split-list-item.mdx @@ -0,0 +1,21 @@ +--- +title: splitListItem command +meta: + title: splitListItem command | Tiptap Editor Docs + description: Use the splitListItem command in Tiptap to split one list item into two separate list items. Learn more in our docs! + category: Editor +--- + +`splitListItem` splits one list item into two separate list items. If this is a nested list, the wrapping list item should be split. + +## Parameters + +`typeOrName: string | NodeType` + +The type of node that should be split into two separate list items. + +## Use the splitListItem command + +```js +editor.commands.splitListItem('bullet_list') +``` diff --git a/src/content/editor/api/commands/lists/toggle-list.mdx b/src/content/editor/api/commands/lists/toggle-list.mdx new file mode 100644 index 0000000..f44abde --- /dev/null +++ b/src/content/editor/api/commands/lists/toggle-list.mdx @@ -0,0 +1,37 @@ +--- +title: toggleList command +meta: + title: toggleList command | Tiptap Editor Docs + description: Use the toggleList command in Tiptap to toggle between different types of lists. Learn more in our docs! + category: Editor +--- + +`toggleList` will toggle between different types of lists. + +## Parameters + +`listTypeOrName: string | NodeType` + +The type of node that should be used for the wrapping list + +`itemTypeOrName: string | NodeType` + +The type of node that should be used for the list items + +`keepMarks?: boolean` + +If marks should be kept as list items or not + +`attributes?: Record` + +The attributes that should be applied to the list. **This is optional.** + +## Use the toggleList command + +```js +// toggle a bullet list with list items +editor.commands.toggleList('bullet_list', 'list_item') + +// toggle a numbered list with list items +editor.commands.toggleList('ordered_list', 'list_item') +``` diff --git a/src/content/editor/api/commands/lists/wrap-in-list.mdx b/src/content/editor/api/commands/lists/wrap-in-list.mdx new file mode 100644 index 0000000..5f11c6a --- /dev/null +++ b/src/content/editor/api/commands/lists/wrap-in-list.mdx @@ -0,0 +1,26 @@ +--- +title: wrapInList command +meta: + title: wrapInList command | Tiptap Editor Docs + description: Use the wrapInList command in Tiptap to wrap a node in the current selection in a list. Learn more in our docs! + category: Editor +--- + +`wrapInList` will wrap a node in the current selection in a list. + +## Parameters + +`typeOrName: string | NodeType` + +The type of node that should be wrapped in a list. + +`attributes?: Record` + +The attributes that should be applied to the list. **This is optional.** + +## Use the wrapInList command + +```js +// wrap a paragraph in a bullet list +editor.commands.wrapInList('paragraph') +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/clear-nodes.mdx b/src/content/editor/api/commands/nodes-and-marks/clear-nodes.mdx new file mode 100644 index 0000000..574a81c --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/clear-nodes.mdx @@ -0,0 +1,17 @@ +--- +title: clearNodes command +meta: + title: clearNodes command | Tiptap Editor Docs + description: Use the clearNodes command in Tiptap to normalize all nodes in the document to the default paragraph node. More in our docs! + category: Editor +--- + +The `clearNodes` command normalizes nodes to the default node, which is the paragraph by default. It’ll even normalize all kind of lists. For advanced use cases it can come in handy, before applying a new node type. + +If you wonder how you can define the default node: It depends on what’s in the `content` attribute of your [`Document`](/editor/extensions/nodes/document), by default that’s `block+` (at least one block node) and the [`Paragraph`](/editor/extensions/nodes/paragraph) node has the highest priority, so it’s loaded first and is therefore the default node. + +## Use the clearNodes command + +```js +editor.commands.clearNodes() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/create-paragraph-near.mdx b/src/content/editor/api/commands/nodes-and-marks/create-paragraph-near.mdx new file mode 100644 index 0000000..fd6071e --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/create-paragraph-near.mdx @@ -0,0 +1,15 @@ +--- +title: createParagraphNear command +meta: + title: createParagraphNear command | Tiptap Editor Docs + description: Use the createParagraphNear command in Tiptap to add paragraphs adjacent to the current block node selection. More in our docs! + category: Editor +--- + +If a block node is currently selected, the `createParagraphNear` command creates an empty paragraph after the currently selected block node. If the selected block node is the first child of its parent, the new paragraph will be inserted before the current selection. + +## Use the createParagraphNear command + +```js +editor.commands.createParagraphNear() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/delete-node.mdx b/src/content/editor/api/commands/nodes-and-marks/delete-node.mdx new file mode 100644 index 0000000..e84e687 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/delete-node.mdx @@ -0,0 +1,25 @@ +--- +title: deleteNode command +meta: + title: deleteNode command | Tiptap Editor Docs + description: Use the deleteNode command in Tiptap to selectively remove nodes from your document. Learn more in the docs. + category: Editor +--- + +The `deleteNode` command deletes a node inside the current selection. It requires a `typeOrName` argument, which can be a string or a `NodeType` to find the node that needs to be deleted. After deleting the node, the view will automatically scroll to the cursors position. + +## Parameters + +`typeOrName: string | NodeType` + +## Use the deleteNode command + +```js +// deletes a paragraph node +editor.commands.deleteNode('paragraph') + +// or + +// deletes a custom node +editor.commands.deleteNode(MyCustomNode) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/exit-code.mdx b/src/content/editor/api/commands/nodes-and-marks/exit-code.mdx new file mode 100644 index 0000000..2c4a2c2 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/exit-code.mdx @@ -0,0 +1,15 @@ +--- +title: exitCode command +meta: + title: exitCode command | Tiptap Editor Docs + description: Use the exitCode command in Tiptap to exit code blocks and continue editing in a new default block. More in our docs! + category: Editor +--- + +The `exitCode` command will create a default block after the current selection if the selection is a `code` element and move the cursor to the new block. + +## Use the exitCode command + +```js +editor.commands.exitCode() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/extend-mark-range.mdx b/src/content/editor/api/commands/nodes-and-marks/extend-mark-range.mdx new file mode 100644 index 0000000..b6e104f --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/extend-mark-range.mdx @@ -0,0 +1,38 @@ +--- +title: extendMarkRange command +meta: + title: extendMarkRange command | Tiptap Editor Docs + description: Use the extendMarkRange command in Tiptap to expand the current selection to include the specified mark. Learn more in our docs! + category: Editor +--- + +The `extendMarkRange` command expands the current selection to encompass the current mark. If the current selection doesn’t have the specified mark, nothing changes. + +## Parameters + +`typeOrName: string | MarkType` + +Name or type of the mark. + +`attributes?: Record` + +Optionally, you can specify attributes that the extended mark must contain. + +## Use the extendMarkRange command + +```js +// Expand selection to link marks +editor.commands.extendMarkRange('link') + +// Expand selection to link marks with specific attributes +editor.commands.extendMarkRange('link', { href: 'https://google.com' }) + +// Expand selection to link mark and update attributes +editor + .chain() + .extendMarkRange('link') + .updateAttributes('link', { + href: 'https://duckduckgo.com', + }) + .run() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/index.mdx b/src/content/editor/api/commands/nodes-and-marks/index.mdx new file mode 100644 index 0000000..9d5629b --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/index.mdx @@ -0,0 +1,44 @@ +--- +title: Nodes and marks commands +meta: + title: Nodes and Marks commands | Tiptap Editor Docs + description: Easy-to-use commands for managing nodes and marks. Learn to manipulate paragraphs, headings, and inline styles in our docs. + category: Editor +--- + +Tiptap provides commands to manipulate nodes and marks easily. + +Nodes and marks are the building blocks of your Tiptap editor. Nodes represent content elements like paragraphs, headings, or images, while marks provide inline formatting, such as bold, italic, or links. + +## Use Cases + +- **Creating New Nodes:** Use [`createParagraphNear`](/editor/api/commands/nodes-and-marks/create-paragraph-near) or [`splitBlock`](/editor/api/commands/nodes-and-marks/split-block) to add new nodes near the selection. +- **Managing Node Structures:** Update, replace, or lift nodes using commands like [`setNode`](/editor/api/commands/nodes-and-marks/set-node), [`lift`](/editor/api/commands/nodes-and-marks/lift), or [`toggleNode`](/editor/api/commands/nodes-and-marks/toggle-node). +- **Mark Manipulation:** Toggle, set, or unset marks using commands like [`toggleMark`](/editor/api/commands/nodes-and-marks/toggle-mark), [`setMark`](/editor/api/commands/nodes-and-marks/set-mark), or [`unsetMark`](/editor/api/commands/nodes-and-marks/unset-mark). +- **Content Cleanup:** Remove unwanted marks or nodes using [`clearNodes`](/editor/api/commands/nodes-and-marks/clear-nodes), [`unsetAllMarks`](/editor/api/commands/nodes-and-marks/unset-all-marks), or [`resetAttributes`](/editor/api/commands/nodes-and-marks/reset-attributes). + +## List of nodes and marks commands + +| Command | Description | +| --------------------- | -------------------------------------------------------------------------- | +| `clearNodes` | Clears all nodes while adhering to the editor's schema. | +| `createParagraphNear` | Creates a new paragraph node near the current selection. | +| `deleteNode` | Deletes the selected node. | +| `extendMarkRange` | Expands the current selection to encompass the specified mark. | +| `exitCode` | Exits the current code block and continues editing in a new default block. | +| `joinBackward` | Joins two nodes backwards from the current selection. | +| `joinForward` | Joins two nodes forwards from the current selection. | +| `lift` | Lifts a node up into its parent node. | +| `liftEmptyBlock` | Lifts the currently selected empty textblock. | +| `newlineInCode` | Inserts a new line in the current code block. | +| `resetAttributes` | Resets specified attributes of a node to its default values. | +| `setMark` | Adds a new mark at the current selection. | +| `setNode` | Replaces a given range with a specified node. | +| `splitBlock` | Splits the current node into two nodes at the current selection. | +| `toggleMark` | Toggles a specific mark on and off at the current selection. | +| `toggleNode` | Toggles a node with another node. | +| `toggleWrap` | Wraps the current node with a new node or removes a wrapping node. | +| `undoInputRule` | Undoes the most recent input rule that was triggered. | +| `unsetAllMarks` | Removes all marks from the current selection. | +| `unsetMark` | Removes a specific mark from the current selection. | +| `updateAttributes` | Sets attributes of a node or mark to new values. | diff --git a/src/content/editor/api/commands/nodes-and-marks/join-backward.mdx b/src/content/editor/api/commands/nodes-and-marks/join-backward.mdx new file mode 100644 index 0000000..a1ae60d --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/join-backward.mdx @@ -0,0 +1,15 @@ +--- +title: joinBackward command +meta: + title: joinBackward command | Tiptap Editor Docs + description: Join two nodes backwards from the current selection in your Tiptap Editor with the joinBackward command. Learn more in our docs! + category: Editor +--- + +The `joinBackward` command joins two nodes backwards from the current selection. If the selection is empty and at the start of a textblock, `joinBackward` will try to reduce the distance between that block and the block before it. [See also](https://prosemirror.net/docs/ref/#commands.joinBackward) + +## Use the joinBackward command + +```js +editor.commands.joinBackward() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/join-down.mdx b/src/content/editor/api/commands/nodes-and-marks/join-down.mdx new file mode 100644 index 0000000..2dd01f3 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/join-down.mdx @@ -0,0 +1,15 @@ +--- +title: joinDown command +meta: + title: joinDown command | Tiptap Editor Docs + description: Use the joinDown command in Tiptap to join the selected block with the sibling below it. Learn more in our docs! + category: Editor +--- + +The `joinDown` command joins the selected block, or if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling below it. [See also](https://prosemirror.net/docs/ref/#commands.joinDown) + +## Use the joinDown command + +```js +editor.commands.joinDown() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/join-forward.mdx b/src/content/editor/api/commands/nodes-and-marks/join-forward.mdx new file mode 100644 index 0000000..4933bee --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/join-forward.mdx @@ -0,0 +1,15 @@ +--- +title: joinForward command +meta: + title: joinForward command | Tiptap Editor Docs + description: Join two nodes forwards from the current selection in the Tiptap Editor with the joinForward command. Learn more in our docs! + category: Editor +--- + +The `joinForward` command joins two nodes forwards from the current selection. If the selection is empty and at the end of a textblock, `joinForward` will try to reduce the distance between that block and the block after it. [See also](https://prosemirror.net/docs/ref/#commands.joinForward) + +## Use the joinForward command + +```js +editor.commands.joinForward() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/join-textblock-backward.mdx b/src/content/editor/api/commands/nodes-and-marks/join-textblock-backward.mdx new file mode 100644 index 0000000..1efb151 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/join-textblock-backward.mdx @@ -0,0 +1,14 @@ +--- +title: joinTextblockBackward command +meta: + title: joinTextblockBackward command | Tiptap Editor Docs + description: Use the joinTextblockBackward command in Tiptap to join the current textblock to the one before it. Learn more in our docs! +--- + +A more limited form of joinBackward that only tries to join the current textblock to the one before it, if the cursor is at the start of a textblock. [See also](https://prosemirror.net/docs/ref/#commands.joinTextblockBackward) + +## Using the joinTextblockBackward command + +```js +editor.commands.joinTextblockBackward() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/join-textblock-forward.mdx b/src/content/editor/api/commands/nodes-and-marks/join-textblock-forward.mdx new file mode 100644 index 0000000..202268b --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/join-textblock-forward.mdx @@ -0,0 +1,14 @@ +--- +title: joinTextblockForward command +meta: + title: joinTextblockForward command | Tiptap Editor Docs + description: Use the joinTextblockForward command in Tiptap to join the current textblock to the one after it. Learn more in our docs! +--- + +A more limited form of joinForward that only tries to join the current textblock to the one after it, if the cursor is at the end of a textblock. [See also](https://prosemirror.net/docs/ref/#commands.joinTextblockForward) + +## Using the joinTextblockForward command + +```js +editor.commands.joinTextblockForward() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/join-up.mdx b/src/content/editor/api/commands/nodes-and-marks/join-up.mdx new file mode 100644 index 0000000..91ecd3c --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/join-up.mdx @@ -0,0 +1,15 @@ +--- +title: joinUp command +meta: + title: joinUp command | Tiptap Editor Docs + description: Use the joinUp command in Tiptap to join the selected block with the sibling above it. Learn more in our docs! + category: Editor +--- + +The `joinUp` command joins the selected block, or if there is a text selection, the closest ancestor block of the selection that can be joined, with the sibling above it. [See also](https://prosemirror.net/docs/ref/#commands.joinUp) + +## Use the joinUp command + +```js +editor.commands.joinUp() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/lift-empty-block.mdx b/src/content/editor/api/commands/nodes-and-marks/lift-empty-block.mdx new file mode 100644 index 0000000..dde5675 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/lift-empty-block.mdx @@ -0,0 +1,15 @@ +--- +title: liftEmptyBlock command +meta: + title: liftEmptyBlock command | Tiptap Editor Docs + description: Lift the currently selected empty textblock in your Tiptap Editor with the liftEmptyBlock command. Learn more in our docs! + category: Editor +--- + +If the currently selected block is an empty textblock, lift it if possible. **Lifting** means, that the block will be moved to the parent of the block it is currently in. + +## Using the liftEmptyBlock command + +```js +editor.commands.liftEmptyBlock() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/lift.mdx b/src/content/editor/api/commands/nodes-and-marks/lift.mdx new file mode 100644 index 0000000..b689360 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/lift.mdx @@ -0,0 +1,29 @@ +--- +title: lift command +meta: + title: lift command | Tiptap Editor Docs + description: Lift a node up into its parent node in your Tiptap Editor with the lift command. Learn more in our docs! + category: Editor +--- + +The `lift` command lifts a given node up into it’s parent node. **Lifting** means, that the block will be moved to the parent of the block it is currently in. + +## Parameters + +`typeOrName: String | NodeType` + +The node that should be lifted. If the node is not found in the current selection, ignore the command. + +`attributes: Record` + +The attributes the node should have to be lifted. This is **optional**. + +## Use the lift command + +```js +// lift any headline +editor.commands.lift('headline') + +// lift only h2 +editor.commands.lift('headline', { level: 2 }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/newline-in-code.mdx b/src/content/editor/api/commands/nodes-and-marks/newline-in-code.mdx new file mode 100644 index 0000000..1fca6f9 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/newline-in-code.mdx @@ -0,0 +1,15 @@ +--- +title: newlineInCode command +meta: + title: newlineInCode command | Tiptap Editor Docs + description: Use the newlineInCode command in Tiptap to insert a new line in the current code block. Learn more in our docs! + category: Editor +--- + +`newlineInCode` inserts a new line in the current code block. If a selection is set, the selection will be replaced with a newline character. + +## Use the newlineInCode command + +```js +editor.commands.newlineInCode() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/reset-attributes.mdx b/src/content/editor/api/commands/nodes-and-marks/reset-attributes.mdx new file mode 100644 index 0000000..b2a75c2 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/reset-attributes.mdx @@ -0,0 +1,26 @@ +--- +title: resetAttributes command +meta: + title: resetAttributes command | Tiptap Editor Docs + description: Use the resetAttributes command in Tiptap to reset a node's attributes to their default values. Learn more in our docs! + category: Editor +--- + +`resetAttributes` resets some of the nodes attributes back to it's default attributes. + +## Parameters + +`typeOrName: string | Node` + +The node that should be resetted. Can be a string or a Node. + +`attributes: string | string[]` + +A string or an array of strings that defines which attributes should be reset. + +## Use the resetAttributes command + +```js +// reset the style and class attributes on the currently selected paragraph nodes +editor.commands.resetAttributes('paragraph', ['style', 'class']) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/set-mark.mdx b/src/content/editor/api/commands/nodes-and-marks/set-mark.mdx new file mode 100644 index 0000000..2ceab34 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/set-mark.mdx @@ -0,0 +1,25 @@ +--- +title: setMark command +meta: + title: setMark command | Tiptap Editor Docs + description: Use the setMark command in Tiptap to add a new mark at the current selection. Learn more in our docs! + category: Editor +--- + +The `setMark` command will add a new mark at the current selection. + +## Parameters + +`typeOrName: string | MarkType` + +The type of a mark to add. Can be a string or a MarkType. + +`attributes: Record` + +The attributes that should be applied to the mark. **This is optional.** + +## Use the setMark command + +```js +editor.commands.setMark('bold', { class: 'bold-tag' }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/set-node.mdx b/src/content/editor/api/commands/nodes-and-marks/set-node.mdx new file mode 100644 index 0000000..98f0ff7 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/set-node.mdx @@ -0,0 +1,25 @@ +--- +title: setNode command +meta: + title: setNode command | Tiptap Editor Docs + description: Use the setNode command in Tiptap to replace a given range with a specified text block node. Learn more in our docs! + category: Editor +--- + +The `setNode` command will replace a given range with a given node. The range depends on the current selection. **Important**: Currently `setNode` only supports text block nodes. + +## Parameters + +`typeOrName: string | NodeType` + +The type of the node that will replace the range. Can be a string or a NodeType. + +`attributes?: Record` + +The attributes that should be applied to the node. **This is optional.** + +## Use the setNode command + +```js +editor.commands.setNode('paragraph', { id: 'paragraph-01' }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/split-block.mdx b/src/content/editor/api/commands/nodes-and-marks/split-block.mdx new file mode 100644 index 0000000..5cfdfe6 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/split-block.mdx @@ -0,0 +1,25 @@ +--- +title: splitBlock command +meta: + title: splitBlock Command | Tiptap Editor Docs + description: Use the splitBlock command in Tiptap to split the current node into two at the current NodeSelection. Learn more in our docs! + category: Editor +--- + +`splitBlock` will split the current node into two nodes at the current [NodeSelection](https://prosemirror.net/docs/ref/#state.NodeSelection). If the current selection is not splittable, the command will be ignored. + +## Parameters + +`options: Record` + +- `keepMarks: boolean` - Defines if the marks should be kept or removed. Defaults to `true`. + +## Use the splitBlock command + +```js +// split the current node and keep marks +editor.commands.splitBlock() + +// split the current node and don't keep marks +editor.commands.splitBlock({ keepMarks: false }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/toggle-mark.mdx b/src/content/editor/api/commands/nodes-and-marks/toggle-mark.mdx new file mode 100644 index 0000000..48400c9 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/toggle-mark.mdx @@ -0,0 +1,36 @@ +--- +title: toggleMark command +meta: + title: toggleMark command | Tiptap Editor Docs + description: Use the toggleMark command in Tiptap to toggle a specific mark on and off at the current selection. Learn more in our docs! + category: Editor +--- + +The `toggleMark` command toggles a specific mark on and off at the current selection. + +## Parameters + +`typeOrName: string | MarkType` + +The type of mark that should be toggled. + +`attributes?: Record` + +The attributes that should be applied to the mark. **This is optional.** + +`options?: Record` + +- `extendEmptyMarkRange: boolean` - Removes the mark even across the current selection. Defaults to `false` + +## Use the toggleMark command + +```js +// toggles a bold mark +editor.commands.toggleMark('bold') + +// toggles bold mark with a color attribute +editor.commands.toggleMark('bold', { color: 'red' }) + +// toggles a bold mark with a color attribute and removes the mark across the current selection +editor.commands.toggleMark('bold', { color: 'red' }, { extendEmptyMarkRange: true }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/toggle-node.mdx b/src/content/editor/api/commands/nodes-and-marks/toggle-node.mdx new file mode 100644 index 0000000..1f3a942 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/toggle-node.mdx @@ -0,0 +1,33 @@ +--- +title: toggleNode command +meta: + title: toggleNode command | Tiptap Editor Docs + description: Use the toggleNode command in your Tiptap Editor to toggle one node with another. Learn more in our docs! + category: Editor +--- + +`toggleNode` will toggle a node with another node. + +## Parameters + +`typeOrName: string | NodeType` + +The type of node that should be toggled. + +`toggleTypeOrName: string | NodeType` + +The type of node that should be used for the toggling. + +`attributes?: Record` + +The attributes that should be applied to the node. **This is optional.** + +## Use the toggleNode command + +```js +// toggle a paragraph with a heading node +editor.commands.toggleNode('paragraph', 'heading', { level: 1 }) + +// toggle a paragraph with a image node +editor.commands.toggleNode('paragraph', 'image', { src: 'https://example.com/image.png' }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/toggle-wrap.mdx b/src/content/editor/api/commands/nodes-and-marks/toggle-wrap.mdx new file mode 100644 index 0000000..a4cfeba --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/toggle-wrap.mdx @@ -0,0 +1,26 @@ +--- +title: toggleWrap command +meta: + title: toggleWrap command | Tiptap Editor Docs + description: Use the toggleWrap command in Tiptap to wrap the current node with a new node or remove a wrapping node. Learn more in our docs! + category: Editor +--- + +`toggleWrap` wraps the current node with a new node or removes a wrapping node. + +## Parameters + +`typeOrName: string | NodeType` + +The type of node that should be used for the wrapping node. + +`attributes?: Record` + +The attributes that should be applied to the node. **This is optional.** + +## Use the toggleWrap command + +```js +// toggle wrap the current selection with a heading node +editor.commands.toggleWrap('heading', { level: 1 }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/undo-input-rule.mdx b/src/content/editor/api/commands/nodes-and-marks/undo-input-rule.mdx new file mode 100644 index 0000000..504a31c --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/undo-input-rule.mdx @@ -0,0 +1,15 @@ +--- +title: undoInputRule command +meta: + title: undoInputRule command | Tiptap Editor Docs + description: Use the undoInputRule command in Tiptap to undo the most recent input rule that was triggered. Learn more in our docs! + category: Editor +--- + +`undoInputRule` will undo the most recent input rule that was triggered. + +## Use the undoInputRule command + +```js +editor.commands.undoInputRule() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/unset-all-marks.mdx b/src/content/editor/api/commands/nodes-and-marks/unset-all-marks.mdx new file mode 100644 index 0000000..19f36ef --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/unset-all-marks.mdx @@ -0,0 +1,15 @@ +--- +title: unsetAllMarks command +meta: + title: unsetAllMarks command | Tiptap Editor Docs + description: Use the unsetAllMarks command in Tiptap to remove all marks from the current selection. Learn more in our docs! + category: Editor +--- + +`unsetAllMarks` will remove all marks from the current selection. + +## Using the unsetAllMarks command + +```js +editor.commands.unsetAllMarks() +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/unset-mark.mdx b/src/content/editor/api/commands/nodes-and-marks/unset-mark.mdx new file mode 100644 index 0000000..9db7836 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/unset-mark.mdx @@ -0,0 +1,29 @@ +--- +title: unsetMark command +meta: + title: unsetMark command | Tiptap Editor Docs + description: Use the unsetMark command in Tiptap to remove a specific mark from the current or across a selection. Learn more in our docs! + category: Editor +--- + +`unsetMark` will remove the mark from the current selection. Can also remove all marks across the current selection. + +## Parameters + +`typeOrName: string | MarkType` + +The type of mark that should be removed. + +`options?: Record` + +- `extendEmptyMarkRange?: boolean` - Removes the mark even across the current selection. Defaults to `false` + +## Use the unsetMark command + +```js +// removes a bold mark +editor.commands.unsetMark('bold') + +// removes a bold mark across the current selection +editor.commands.unsetMark('bold', { extendEmptyMarkRange: true }) +``` diff --git a/src/content/editor/api/commands/nodes-and-marks/update-attributes.mdx b/src/content/editor/api/commands/nodes-and-marks/update-attributes.mdx new file mode 100644 index 0000000..0467669 --- /dev/null +++ b/src/content/editor/api/commands/nodes-and-marks/update-attributes.mdx @@ -0,0 +1,31 @@ +--- +title: updateAttributes command +meta: + title: updateAttributes command | Tiptap Editor Docs + description: Use the updateAttributes command in Tiptap to set new attribute values for a node or mark. Learn more in our docs! + category: Editor +--- + +The `updateAttributes` command sets attributes of a node or mark to new values. Not passed attributes won’t be touched. + +See also: [extendMarkRange](/editor/api/commands/nodes-and-marks/extend-mark-range) + +## Parameters + +`typeOrName: string | NodeType | MarkType` + +Pass the type you want to update, for example `'heading'`. + +`attributes: Record` + +This expects an object with the attributes that need to be updated. It doesn’t need to have all attributes. + +## Use the updateAttributes command + +```js +// Update node attributes +editor.commands.updateAttributes('heading', { level: 1 }) + +// Update mark attributes +editor.commands.updateAttributes('highlight', { color: 'pink' }) +``` diff --git a/src/content/editor/api/commands/select-textblock-end.mdx b/src/content/editor/api/commands/select-textblock-end.mdx new file mode 100644 index 0000000..33afef2 --- /dev/null +++ b/src/content/editor/api/commands/select-textblock-end.mdx @@ -0,0 +1,15 @@ +--- +title: selectTextblockEnd command +meta: + title: selectTextblockEnd command | Tiptap Editor Docs + description: Use the selectTextblockEnd command in Tiptap to move the cursor to the end of the current textblock. Learn more in our docs! + category: Editor +--- + +The `selectTextblockEnd` will move the cursor to the end of the current textblock if the block is a valid textblock. + +## Use the selectTextblockEnd command + +```js +editor.commands.selectTextblockEnd() +``` diff --git a/src/content/editor/api/commands/select-textblock-start.mdx b/src/content/editor/api/commands/select-textblock-start.mdx new file mode 100644 index 0000000..dd7b902 --- /dev/null +++ b/src/content/editor/api/commands/select-textblock-start.mdx @@ -0,0 +1,15 @@ +--- +title: selectTextblockStart command +meta: + title: selectTextblockStart command | Tiptap Editor Docs + description: Use the selectTextblockStart command in Tiptap to move the cursor to the start of the current textblock. Learn more in our docs! + category: Editor +--- + +The `selectTextblockStart` will move the cursor to the start of the current textblock if the block is a valid textblock. + +## Use the selectTextblockStart command + +```js +editor.commands.selectTextblockStart() +``` diff --git a/src/content/editor/api/commands/selection/blur.mdx b/src/content/editor/api/commands/selection/blur.mdx new file mode 100644 index 0000000..015e122 --- /dev/null +++ b/src/content/editor/api/commands/selection/blur.mdx @@ -0,0 +1,17 @@ +--- +title: blur command +meta: + title: blur command | Tiptap Editor Docs + description: Use the blur command in Tiptap to remove focus from your Tiptap editor. Learn more about it in the docs. +--- + +Understand the functionality of the blur command in Tiptap, which removes focus from the editor. + +See also: [focus](/editor/api/commands/selection/focus) + +## Use the blur command + +```js +// Remove the focus from the editor +editor.commands.blur() +``` diff --git a/src/content/editor/api/commands/selection/delete-range.mdx b/src/content/editor/api/commands/selection/delete-range.mdx new file mode 100644 index 0000000..8a62b2a --- /dev/null +++ b/src/content/editor/api/commands/selection/delete-range.mdx @@ -0,0 +1,19 @@ +--- +title: deleteRange commands +meta: + title: deleteRange command | Tiptap Editor Docs + description: Use the deleteRange command in Tiptap to remove content within a specific range in your document. Learn more in our docs! + category: Editor +--- + +The `deleteRange` command deletes everything in a given range. It requires a `range` attribute of type `Range`. + +## Parameters + +`range: Range` + +## Use the deleteRange command + +```js +editor.commands.deleteRange({ from: 0, to: 12 }) +``` diff --git a/src/content/editor/api/commands/selection/delete-selection.mdx b/src/content/editor/api/commands/selection/delete-selection.mdx new file mode 100644 index 0000000..ed9bd83 --- /dev/null +++ b/src/content/editor/api/commands/selection/delete-selection.mdx @@ -0,0 +1,16 @@ +--- +title: deleteSelection command +description: The deleteSelection command in Tiptap targets and removes any nodes or content that are currently selected within the editor. +meta: + title: deleteSelection command | Tiptap Editor Docs + description: The deleteSelection command in Tiptap removes any nodes or content that are currently selected. More in the docs. + category: Editor +--- + +The `deleteSelection` command deletes the currently selected nodes. If no selection exists, nothing will be deleted. + +## Use the deleteSelection command + +```js +editor.commands.deleteSelection() +``` diff --git a/src/content/editor/api/commands/selection/enter.mdx b/src/content/editor/api/commands/selection/enter.mdx new file mode 100644 index 0000000..a1b29de --- /dev/null +++ b/src/content/editor/api/commands/selection/enter.mdx @@ -0,0 +1,15 @@ +--- +title: enter command +meta: + title: enter command | Tiptap Editor Docs + description: Use the enter command in Tiptap to trigger an enter key action for automated text entry and formatting. More in the docs. + category: Editor +--- + +The `enter` command triggers an enter programmatically. + +## Use the enter command + +```js +editor.commands.enter() +``` diff --git a/src/content/editor/api/commands/selection/focus.mdx b/src/content/editor/api/commands/selection/focus.mdx new file mode 100644 index 0000000..336dfdb --- /dev/null +++ b/src/content/editor/api/commands/selection/focus.mdx @@ -0,0 +1,42 @@ +--- +title: focus command +meta: + title: focus command | Tiptap Editor Docs + description: Use the focus command in Tiptap to set the focus back to the editor at a specific position. Learn more in our docs! + category: Editor +--- + +This command sets the focus back to the editor. + +When a user clicks on a button outside the editor, the browser sets the focus to that button. In most scenarios you want to focus the editor then again. That’s why you’ll see that in basically every demo here. + +See also: [setTextSelection](/editor/api/commands/selection/set-text-selection), [blur](/editor/api/commands/selection/blur) + +## Parameters + +`position: 'start' | 'end' | 'all' | number | boolean | null (false)` + +By default, it’s restoring the cursor position (and text selection). Pass a position to move the cursor to. + +`options: { scrollIntoView: boolean }` + +Defines whether to scroll to the cursor when focusing. Defaults to `true`. + +## Use the focus command + +```js +// Set the focus to the editor +editor.commands.focus() + +// Set the cursor to the first position +editor.commands.focus('start') + +// Set the cursor to the last position +editor.commands.focus('end') + +// Selects the whole document +editor.commands.focus('all') + +// Set the cursor to position 10 +editor.commands.focus(10) +``` diff --git a/src/content/editor/api/commands/selection/index.mdx b/src/content/editor/api/commands/selection/index.mdx new file mode 100644 index 0000000..a32d28f --- /dev/null +++ b/src/content/editor/api/commands/selection/index.mdx @@ -0,0 +1,33 @@ +--- +title: Selection commands +meta: + title: Selection commands | Tiptap Editor Docs + description: Manage selections in your Tiptap Editor with editor commands like blur, focus, deleteSelection, etc. More in our docs! + category: Editor +--- + +The Tiptap editor provides editor commands for managing selection and focus within your documents. Here’s an overview of the essential selection commands that help you manage cursor movement, selections, and focus behavior. + +## Use Cases + +- **Managing Focus and Blur:** Control focus behavior using [`focus`](/editor/api/commands/selection/focus) and [`blur`](/editor/api/commands/selection/blur). +- **Deleting and Selecting Content:** Use commands like [`deleteSelection`](/editor/api/commands/selection/delete-selection) and [`selectAll`](/editor/api/commands/selection/select-all) to efficiently manage content. +- **Navigating the Document:** Scroll to a specific position or node using [`scrollIntoView`](/editor/api/commands/selection/scroll-into-view) and select specific nodes with [`selectNodeBackward`](/editor/api/commands/selection/select-node-backward), [`selectNodeForward`](/editor/api/commands/selection/select-node-forward), or [`selectParentNode`](/editor/api/commands/selection/select-parent-node). + +## List of selection commands + +| Command | Description | +| -------------------- | ------------------------------------------------------------------------------------------- | +| `blur` | Removes focus from the editor. | +| `deleteRange` | Deletes everything in a range. | +| `deleteSelection` | Deletes the current selection or cursor position. | +| `enter` | Simulates an Enter key press, creating a new line. | +| `focus` | Sets focus back to the editor and moves the cursor to a specified position. | +| `keyboardShortcut` | Triggers a ShortcutEvent with a given name. | +| `scrollIntoView` | Scrolls the view to the current selection or cursor position. | +| `selectAll` | Selects the entire document. | +| `selectNodeBackward` | Selects the node before the current textblock if the cursor is at the start of a textblock. | +| `selectNodeForward` | Selects the node after the current textblock if the cursor is at the end of a textblock. | +| `selectParentNode` | Moves the selection to the parent node of the currently selected node. | +| `setNodeSelection` | Creates a new NodeSelection at a given position. | +| `setTextSelection` | Controls the text selection by setting it to a specified range or position. | diff --git a/src/content/editor/api/commands/selection/keyboard-shortcut.mdx b/src/content/editor/api/commands/selection/keyboard-shortcut.mdx new file mode 100644 index 0000000..41ff759 --- /dev/null +++ b/src/content/editor/api/commands/selection/keyboard-shortcut.mdx @@ -0,0 +1,21 @@ +--- +title: keyboardShortcut command +meta: + title: keyboardShortcut command | Tiptap Editor Docs + description: Use the keyboardShortcut command in Tiptap to trigger a ShortcutEvent with a given name. Learn more in our docs! + category: Editor +--- + +The `keyboardShortcut` command will try to trigger a ShortcutEvent with a given name. + +## Parameters + +`name: String` + +The name of the shortcut to trigger. + +## Use the keyboardShortcut command + +```js +editor.commands.keyboardShortcut('undo') +``` diff --git a/src/content/editor/api/commands/selection/scroll-into-view.mdx b/src/content/editor/api/commands/selection/scroll-into-view.mdx new file mode 100644 index 0000000..e483753 --- /dev/null +++ b/src/content/editor/api/commands/selection/scroll-into-view.mdx @@ -0,0 +1,15 @@ +--- +title: scrollIntoView command +meta: + title: scrollIntoView command | Tiptap Editor Docs + description: Use the scrollIntoView command in Tiptap to scroll the view to the current selection or cursor position. Learn more in our docs! + category: Editor +--- + +`scrollIntoView` scrolls the view to the current selection or cursor position. + +## Use the scrollIntoView command + +```js +editor.commands.scrollIntoView() +``` diff --git a/src/content/editor/api/commands/selection/select-all.mdx b/src/content/editor/api/commands/selection/select-all.mdx new file mode 100644 index 0000000..7239c3d --- /dev/null +++ b/src/content/editor/api/commands/selection/select-all.mdx @@ -0,0 +1,16 @@ +--- +title: selectAll command +meta: + title: selectAll command | Tiptap Editor Docs + description: Use the selectAll command in your Tiptap Editor to select the whole document at once. Learn more in our docs! + category: Editor +--- + +Selects the whole document at once. + +## Use the selectAll command + +```js +// Select the whole document +editor.commands.selectAll() +``` diff --git a/src/content/editor/api/commands/selection/select-node-backward.mdx b/src/content/editor/api/commands/selection/select-node-backward.mdx new file mode 100644 index 0000000..79110e7 --- /dev/null +++ b/src/content/editor/api/commands/selection/select-node-backward.mdx @@ -0,0 +1,15 @@ +--- +title: selectNodeBackward command +meta: + title: selectNodeBackward command | Tiptap Editor Docs + description: Use the selectNodeBackward command in Tiptap to select the node before the current textblock. Learn more in our docs! + category: Editor +--- + +If the selection is empty and at the start of a textblock, `selectNodeBackward` will select the node before the current textblock if possible. + +## Use the selectNodeBackward command + +```js +editor.commands.selectNodeBackward() +``` diff --git a/src/content/editor/api/commands/selection/select-node-forward.mdx b/src/content/editor/api/commands/selection/select-node-forward.mdx new file mode 100644 index 0000000..8b5eea1 --- /dev/null +++ b/src/content/editor/api/commands/selection/select-node-forward.mdx @@ -0,0 +1,15 @@ +--- +title: selectNodeForward command +meta: + title: selectNodeForward command | Tiptap Editor Docs + description: Use the selectNodeForward command in Tiptap to select the node after the current textblock. Learn more in our docs! + category: Editor +--- + +If the selection is empty and at the end of a textblock, `selectNodeForward` will select the node after the current textblock if possible. + +## Use the selectNodeForward command + +```js +editor.commands.selectNodeForward() +``` diff --git a/src/content/editor/api/commands/selection/select-parent-node.mdx b/src/content/editor/api/commands/selection/select-parent-node.mdx new file mode 100644 index 0000000..fa86f51 --- /dev/null +++ b/src/content/editor/api/commands/selection/select-parent-node.mdx @@ -0,0 +1,15 @@ +--- +title: selectParentNode command +meta: + title: selectParentNode command | Tiptap Editor Docs + description: Use the selectParentNode command in Tiptap to move the selection to the parent node. Learn more in our docs! + category: Editor +--- + +`selectParentNode` will try to get the parent node of the currently selected node and move the selection to that node. + +## Use the selectParentNode command + +```js +editor.commands.selectParentNode() +``` diff --git a/src/content/editor/api/commands/selection/set-node-selection.mdx b/src/content/editor/api/commands/selection/set-node-selection.mdx new file mode 100644 index 0000000..0d1551c --- /dev/null +++ b/src/content/editor/api/commands/selection/set-node-selection.mdx @@ -0,0 +1,20 @@ +--- +title: setNodeSelection command +meta: + title: setNodeSelection command | Tiptap Editor Docs + description: Use the setNodeSelection command in Tiptap to create a new NodeSelection at a given position. Learn more in our docs! +--- + +`setNodeSelection` creates a new NodeSelection at a given position. A node selection is a selection that points to a single node. [See more](https://prosemirror.net/docs/ref/#state.NodeSelection) + +## Parameters + +`position: number` + +The position the NodeSelection will be created at. + +## Use the setNodeSelection command + +```js +editor.commands.setNodeSelection(10) +``` diff --git a/src/content/editor/api/commands/selection/set-text-selection.mdx b/src/content/editor/api/commands/selection/set-text-selection.mdx new file mode 100644 index 0000000..ac8e359 --- /dev/null +++ b/src/content/editor/api/commands/selection/set-text-selection.mdx @@ -0,0 +1,27 @@ +--- +title: setTextSelection command +meta: + title: setTextSelection command | Tiptap Editor Docs + description: Use the setTextSelection command to control and set text selection to a specified range or position. Learn more in our docs! + category: Editor +--- + +If you think of selection in the context of an editor, you’ll probably think of a text selection. With `setTextSelection` you can control that text selection and set it to a specified range or position. + +See also: [focus](/editor/api/commands/selection/focus), [setNodeSelection](/editor/api/commands/selection/set-node-selection), [deleteSelection](/editor/api/commands/selection/delete-selection), [selectAll](/editor/api/commands/selection/select-all) + +## Parameters + +`position: number | Range` + +Pass a number, or a Range, for example `{ from: 5, to: 10 }`. + +## Use the setTextSelection command + +```js +// Set the cursor to the specified position +editor.commands.setTextSelection(10) + +// Set the text selection to the specified range +editor.commands.setTextSelection({ from: 5, to: 10 }) +``` diff --git a/src/content/editor/api/commands/set-meta.mdx b/src/content/editor/api/commands/set-meta.mdx new file mode 100644 index 0000000..2f2b950 --- /dev/null +++ b/src/content/editor/api/commands/set-meta.mdx @@ -0,0 +1,30 @@ +--- +title: setMeta command +meta: + title: setMeta command | Tiptap Editor Docs + description: Use the setMeta command in Tiptap to store a metadata property in the current transaction. Learn more in our docs! + category: Editor +--- + +Store a metadata property in the current transaction. + +## Parameters + +`key: string` + +The name of your metadata. You can get its value at any time with [getMeta](https://prosemirror.net/docs/ref/#state.Transaction.getMeta). + +`value: any` + +Store any value within your metadata. + +## Use the setMeta command + +```js +// Prevent the update event from being triggered +editor.commands.setMeta('preventUpdate', true) + +// Store any value in the current transaction. +// You can get this value at any time with tr.getMeta('foo'). +editor.commands.setMeta('foo', 'bar') +``` diff --git a/src/content/editor/api/editor.mdx b/src/content/editor/api/editor.mdx new file mode 100644 index 0000000..22a079f --- /dev/null +++ b/src/content/editor/api/editor.mdx @@ -0,0 +1,424 @@ +--- +title: Editor Instance API +meta: + title: Editor Class | Tiptap Editor Docs + description: Learn how to use methods, getters and settings with the Editor class. Discover all you need to know in our detailed guide. + category: Editor +--- + +The editor instance is a central building block of Tiptap. It does most of the heavy lifting of creating a working [ProseMirror](https://ProseMirror.net/) editor such as creating the [`EditorView`](https://ProseMirror.net/docs/ref/#view.EditorView), setting the initial [`EditorState`](https://ProseMirror.net/docs/ref/#state.Editor_State) and so on. + +## Settings + +The `Editor` class accepts a bunch of settings. Here is a list of all available settings: + +### element + +The `element` specifies the HTML element the editor will be binded to. The following code will integrate Tiptap with an element with the `.element` class: + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + element: document.querySelector('.element'), + extensions: [StarterKit], +}) +``` + +You can even initiate your editor before mounting it to an element. This is useful when your DOM is not yet available. Just leave out the `element`, we’ll create one for you. Append it to your container at a later date: + +```js +yourContainerElement.append(editor.options.element) +``` + +### extensions + +It’s required to pass a list of extensions to the `extensions` property, even if you only want to allow paragraphs. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' +import Document from '@tiptap/extension-document' +import Paragraph from '@tiptap/extension-paragraph' +import Text from '@tiptap/extension-text' +import Highlight from '@tiptap/extension-highlight' + +new Editor({ + // Use the default extensions + extensions: [StarterKit], + + // … or use specific extensions + extensions: [Document, Paragraph, Text], + + // … or both + extensions: [StarterKit, Highlight], +}) +``` + +### content + +With the `content` property you can provide the initial content for the editor. This can be HTML or JSON. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + content: `

Example Text

`, + extensions: [StarterKit], +}) +``` + +### editable + +The `editable` property determines if users can write into the editor. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + content: `

Example Text

`, + extensions: [StarterKit], + editable: false, +}) +``` + +### autofocus + +With `autofocus` you can force the cursor to jump in the editor on initialization. + +| Value | Description | +| -------- | ------------------------------------------------------ | +| `start` | Sets the focus to the beginning of the document. | +| `end` | Sets the focus to the end of the document. | +| `all` | Selects the whole document. | +| `Number` | Sets the focus to a specific position in the document. | +| `true` | Enables autofocus. | +| `false` | Disables autofocus. | +| `null` | Disables autofocus. | + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + extensions: [StarterKit], + autofocus: false, +}) +``` + +### enableInputRules + +By default, Tiptap enables all [input rules](/editor/extensions/custom-extensions/extend-existing#input-rules). With `enableInputRules` you can control that. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + content: `

Example Text

`, + extensions: [StarterKit], + enableInputRules: false, +}) +``` + +Alternatively you can allow only specific input rules. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' +import Link from '@tiptap/extension-link' + +new Editor({ + content: `

Example Text

`, + extensions: [StarterKit, Link], + // pass an array of extensions or extension names + // to allow only specific input rules + enableInputRules: [Link, 'horizontalRule'], +}) +``` + +### enablePasteRules + +By default, Tiptap enables all [paste rules](/editor/extensions/custom-extensions/extend-existing#paste-rules). With `enablePasteRules` you can control that. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + content: `

Example Text

`, + extensions: [StarterKit], + enablePasteRules: false, +}) +``` + +Alternatively you can allow only specific paste rules. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' +import Link from '@tiptap/extension-link' + +new Editor({ + content: `

Example Text

`, + extensions: [StarterKit, Link], + // pass an array of extensions or extension names + // to allow only specific paste rules + enablePasteRules: [Link, 'horizontalRule'], +}) +``` + +### injectCSS + +By default, Tiptap injects [a little bit of CSS](https://github.com/ueberdosis/tiptap/tree/main/packages/core/src/style.ts). With `injectCSS` you can disable that. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + extensions: [StarterKit], + injectCSS: false, +}) +``` + +### injectNonce + +When you use a [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) with `nonce`, you can specify a `nonce` to be added to dynamically created elements. Here is an example: + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +new Editor({ + extensions: [StarterKit], + injectCSS: true, + injectNonce: 'your-nonce-here', +}) +``` + +### editorProps + +For advanced use cases, you can pass `editorProps` which will be handled by [ProseMirror](https://prosemirror.net/docs/ref/#view.EditorProps). You can use it to override various editor events or change editor DOM element attributes, for example to add some Tailwind classes. Here is an example: + +```js +new Editor({ + // Learn more: https://prosemirror.net/docs/ref/#view.EditorProps + editorProps: { + attributes: { + class: 'prose prose-sm sm:prose lg:prose-lg xl:prose-2xl mx-auto focus:outline-none', + }, + transformPastedText(text) { + return text.toUpperCase() + }, + }, +}) +``` + +You can use that to hook into event handlers and pass - for example - a custom paste handler, too. + +### parseOptions + +Passed content is parsed by ProseMirror. To hook into the parsing, you can pass `parseOptions` which are then handled by [ProseMirror](https://prosemirror.net/docs/ref/#model.ParseOptions). + +```js +new Editor({ + // Learn more: https://prosemirror.net/docs/ref/#model.ParseOptions + parseOptions: { + preserveWhitespace: 'full', + }, +}) +``` + +## Methods + +The editor instance will provide a bunch of public methods. Methods are regular functions and can return anything. They’ll help you to work with the editor. + +Don’t confuse methods with [commands](/editor/api/commands). Commands are used to change the state of editor (content, selection, and so on) and only return `true` or `false`. + +### can() + +Check if a command or a command chain can be executed – without actually executing it. Can be very helpful to enable/disable or show/hide buttons. + +```js +// Returns `true` if the undo command can be executed +editor.can().undo() +``` + +### chain() + +Create a command chain to call multiple commands at once. + +```js +// Execute two commands at once +editor.chain().toggleBold().focus().run() +``` + +### destroy() + +Stops the editor instance and unbinds all events. + +```js +// Hasta la vista, baby! +editor.destroy() +``` + +### getHTML() + +Returns the current editor document as HTML + +```js +editor.getHTML() +``` + +### getJSON() + +Returns the current editor document as JSON. + +```js +editor.getJSON() +``` + +### getText() + +Returns the current editor document as plain text. + +| Parameter | Type | Description | +| --------- | ------------------------------------------------------------------------ | ------------------------------ | +| options | blockSeparator?: string, textSerializers?: Record;string, TextSerializer | Options for the serialization. | + +```js +// Give me plain text! +editor.getText() +// Add two line breaks between nodes +editor.getText({ blockSeparator: '\n\n' }) +``` + +### getAttributes() + +Get attributes of the currently selected node or mark. + +| Parameter | Type | Description | +| ---------- | ------------------------------ | ------------------------ | +| typeOrName | string \| NodeType \| MarkType | Name of the node or mark | + +```js +editor.getAttributes('link').href +``` + +### isActive() + +Returns if the currently selected node or mark is active. + +| Parameter | Type | Description | +| ---------- | ------------------------- | ------------------------------ | +| name | string \| null | Name of the node or mark | +| attributes | Record<string, any> | Attributes of the node or mark | + +```js +// Check if it’s a heading +editor.isActive('heading') +// Check if it’s a heading with a specific attribute value +editor.isActive('heading', { level: 2 }) +// Check if it has a specific attribute value, doesn’t care what node/mark it is +editor.isActive({ textAlign: 'justify' }) +``` + +### registerPlugin() + +Register a ProseMirror plugin. + +| Parameter | Type | Description | +| -------------- | ---------------------------------------------------- | --------------------------------------------------------- | +| plugin | `Plugin` | A ProseMirror plugin | +| handlePlugins? | `(newPlugin: Plugin, plugins: Plugin[]) => Plugin[]` | Control how to merge the plugin into the existing plugins | + +### setOptions() + +Update editor options. + +| Parameter | Type | Description | +| --------- | ------------------------ | ----------------- | +| options | `Partial` | A list of options | + +```js +// Add a class to an existing editor instance +editor.setOptions({ + editorProps: { + attributes: { + class: 'my-custom-class', + }, + }, +}) +``` + +### setEditable() + +Update editable state of the editor. + +| Parameter | Type | Description | +| ---------- | --------- | --------------------------------------------------------------- | +| editable | `boolean` | `true` when the user should be able to write into the editor. | +| emitUpdate | `boolean` | Defaults to `true`. Determines whether `onUpdate` is triggered. | + +```js +// Make the editor read-only +editor.setEditable(false) +``` + +### unregisterPlugin() + +Unregister a ProseMirror plugin. + +| Parameter | Type | Description | +| --------------- | --------------------- | ---------------- | +| nameOrPluginKey | `string \| PluginKey` | The plugins name | + +### $node() + +See the [NodePos class](/editor/api/node-positions). + +## Properties + +### isEditable + +Returns whether the editor is editable or read-only. + +```js +editor.isEditable +``` + +### isEmpty + +Check if there is content. + +```js +editor.isEmpty +``` + +### isFocused + +Check if the editor is focused. + +```js +editor.isFocused +``` + +### isDestroyed + +Check if the editor is destroyed. + +```js +editor.isDestroyed +``` + +### isCapturingTransaction + +Check if the editor is capturing a transaction. + +```js +editor.isCapturingTransaction +``` diff --git a/src/content/editor/api/events.mdx b/src/content/editor/api/events.mdx new file mode 100644 index 0000000..0d4381b --- /dev/null +++ b/src/content/editor/api/events.mdx @@ -0,0 +1,161 @@ +--- +title: Events in Tiptap +meta: + title: Events in Tiptap | Tiptap Editor Docs + description: Use and handle various events in Tiptap, including creation, updates, focus, blur, and destruction. More in the docs! + category: Editor +--- + +The editor fires a few different events that you can hook into. Let’s have a look at all the available events first. + +## List of available events + +| Event Name | Description | +| ----------------- | ------------------------------------------------------------------------------------------------------------- | +| `beforeCreate` | Triggered before the editor view is created. | +| `create` | Occurs when the editor is fully initialized and ready. | +| `update` | Fired when there is a change in the content. | +| `selectionUpdate` | Happens when the selection changes within the editor. | +| `transaction` | Invoked when the editor state changes due to any operation. | +| `focus` | Triggered when the editor gains focus. | +| `blur` | Fired when the editor loses focus. | +| `destroy` | Occurs when the editor instance is being destroyed. | +| `contentError` | The content does not match the schema. [Read more here](/editor/core-concepts/schema#invalid-schema-handling) | + +## Register event listeners + +There are three ways to register event listeners. + +### Option 1: Configuration + +You can define your event listeners on a new editor instance right-away: + +```js +const editor = new Editor({ + onBeforeCreate({ editor }) { + // Before the view is created. + }, + onCreate({ editor }) { + // The editor is ready. + }, + onUpdate({ editor }) { + // The content has changed. + }, + onSelectionUpdate({ editor }) { + // The selection has changed. + }, + onTransaction({ editor, transaction }) { + // The editor state has changed. + }, + onFocus({ editor, event }) { + // The editor is focused. + }, + onBlur({ editor, event }) { + // The editor isn’t focused anymore. + }, + onDestroy() { + // The editor is being destroyed. + }, + onContentError({ editor, error, disableCollaboration }) { + // The editor content does not match the schema. + }, +}) +``` + +### Option 2: Binding + +Or you can register your event listeners on a running editor instance: + +#### Bind event listeners + +```js +editor.on('beforeCreate', ({ editor }) => { + // Before the view is created. +}) + +editor.on('create', ({ editor }) => { + // The editor is ready. +}) + +editor.on('update', ({ editor }) => { + // The content has changed. +}) + +editor.on('selectionUpdate', ({ editor }) => { + // The selection has changed. +}) + +editor.on('transaction', ({ editor, transaction }) => { + // The editor state has changed. +}) + +editor.on('focus', ({ editor, event }) => { + // The editor is focused. +}) + +editor.on('blur', ({ editor, event }) => { + // The editor isn’t focused anymore. +}) + +editor.on('destroy', () => { + // The editor is being destroyed. +}) + +editor.on('contentError', ({ editor, error, disableCollaboration }) => { + // The editor content does not match the schema. +}) +``` + +#### Unbind event listeners + +If you need to unbind those event listeners at some point, you should register your event listeners with `.on()` and unbind them with `.off()` then. + +```js +const onUpdate = () => { + // The content has changed. +} + +// Bind … +editor.on('update', onUpdate) + +// … and unbind. +editor.off('update', onUpdate) +``` + +### Option 3: Extensions + +Moving your event listeners to custom extensions (or nodes, or marks) is also possible. Here’s how that would look like: + +```js +import { Extension } from '@tiptap/core' + +const CustomExtension = Extension.create({ + onBeforeCreate({ editor }) { + // Before the view is created. + }, + onCreate({ editor }) { + // The editor is ready. + }, + onUpdate({ editor }) { + // The content has changed. + }, + onSelectionUpdate({ editor }) { + // The selection has changed. + }, + onTransaction({ editor, transaction }) { + // The editor state has changed. + }, + onFocus({ editor, event }) { + // The editor is focused. + }, + onBlur({ editor, event }) { + // The editor isn’t focused anymore. + }, + onDestroy() { + // The editor is being destroyed. + }, + onContentError({ editor, error, disableCollaboration }) { + // The editor content does not match the schema. + }, +}) +``` diff --git a/src/content/editor/api/node-positions.mdx b/src/content/editor/api/node-positions.mdx new file mode 100644 index 0000000..024918a --- /dev/null +++ b/src/content/editor/api/node-positions.mdx @@ -0,0 +1,314 @@ +--- +title: Node Positions +meta: + title: Node Positions | Tiptap Editor Docs + description: Learn about Node Positions in Tiptap for document navigation and manipulation. Learn more in the docs! + category: Editor +--- + +Node Positions ( `NodePos`) are a concept introduced with Tiptap 2.2.0. They are used to describe a specific position of a node, it's children, it's parent and easy ways to navigate between them. They are heavily inspired by the DOM and are based on Prosemirror's [ResolvedPos](https://prosemirror.net/docs/ref/#model.ResolvedPos) implementation. + +## Use Node Positions + +The easiest way to create a new **Node Position** is to use the helper functions added to the Editor instance. This way you always use the correct editor instance and have direct access to the API. + +```js +// set up your editor somewhere up here + +// The NodePosition for the outermost document node +const $doc = editor.$doc + +// This will get all nodes with the type 'heading' currently found in the document +const $headings = editor.$nodes('heading') + +// You can also combine this to filter by attributes +const $h1 = editor.$nodes('heading', { level: 1 }) + +// You can also pick nodes directly: +const $firstHeading = editor.$node('heading', { level: 1 }) + +// If you don't know the type but the position you want to work with, you can create a new NodePos via the $pos method +const $myCustomPos = editor.$pos(30) +``` + +You can also create your own NodePos instances: + +```js +// You need to have an editor instance +// and a position you want to map to +const myNodePos = new NodePos(100, editor) +``` + +## What can I do with a NodePos? + +NodePos can be used to traverse the document similar to the document DOM of your browser. You can access the parent node, child nodes and the sibling nodes. Here are an example of what you can do with a `codeBlock` node: + +```js +// get the first codeBlock from your document +const $codeBlock = editor.$node('codeBlock') + +// get the previous NodePos of your codeBlock node +const $previousItem = $codeBlock.before + +// easily update the content +$previousItem.content = '

Updated content

' +``` + +If you are familiar with the DOM the following example should look familiar to you: + +```js +// get a bullet list from your doc +const $bulletList = editor.$node('bulletList') + +// get all listItems from your bulletList +const $listItems = $bulletList.querySelectorAll('listItem') + +// get the last listItem +const $lastListItem = $listItems[0] + +// insert a new listItem after the last one +editor.commands.insertContentAt($lastListItem.after, '
  • New item
  • ') +``` + +## API + +### NodePos + +The NodePos class is the main class you will work with. It is used to describe a specific position of a node, it's children, it's parent and easy ways to navigate between them. They are heavily inspired by the DOM and are based on Prosemirror's [ResolvedPos](https://prosemirror.net/docs/ref/#model.ResolvedPos) implementation. + +#### Methods + +##### constructor + +**Arguments** + +- `pos` – The position you want to map to +- `editor` – The editor instance you want to use + +**Returns** `NodePos` + +```js +const myNodePos = new NodePos(100, editor) +``` + +##### closest + +The closest NodePos instance of your NodePosition going up the depth. If there is no matching NodePos, it will return `null`. + +**Returns** `NodePos | null` + +```js +const closest = myNodePos.closest('bulletList') +``` + +##### querySelector + +The first matching NodePos instance of your NodePosition going down the depth. If there is no matching NodePos, it will return `null`. + +You can also filter by attributes via the second attribute. + +**Returns** `NodePos | null` + +```js +const firstHeading = myNodePos.querySelector('heading') +const firstH1 = myNodePos.querySelector('heading', { level: 1 }) +``` + +##### querySelectorAll + +All matching NodePos instances of your NodePosition going down the depth. If there is no matching NodePos, it will return an empty array. + +You can also filter by attributes via the second attribute. + +**Returns** `Array` + +```js +const headings = myNodePos.querySelectorAll('heading') +const h1s = myNodePos.querySelectorAll('heading', { level: 1 }) +``` + +##### setAttribute + +Set attributes on the current NodePos. + +**Returns** `NodePos` + +```js +myNodePos.setAttribute({ level: 1 }) +``` + +#### Properties + +##### node + +The Prosemirror Node at the current Node Position. + +**Returns** `Node` + +```js +const node = myNodePos.node +node.type.name // 'paragraph' +``` + +##### element + +The DOM element at the current Node Position. + +**Returns** `Element` + +```js +const element = myNodePos.element +element.tagName // 'P' +``` + +##### content + +The content of your NodePosition. This can be set to a new value to update the content of the node. + +**Returns** `string` + +```js +const content = myNodePos.content +myNodePos.content = '

    Updated content

    ' +``` + +##### attributes + +The attributes of your NodePosition. + +**Returns** `Object` + +```js +const attributes = myNodePos.attributes +attributes.level // 1 +``` + +##### textContent + +The text content of your NodePosition. + +**Returns** `string` + +```js +const textContent = myNodePos.textContent +``` + +##### depth + +The depth of your NodePosition. + +**Returns** `number` + +```js +const depth = myNodePos.depth +``` + +##### pos + +The position of your NodePosition. + +**Returns** `number` + +```js +const pos = myNodePos.pos +``` + +##### size + +The size of your NodePosition. + +**Returns** `number` + +```js +const size = myNodePos.size +``` + +##### from + +The from position of your NodePosition. + +**Returns** `number` + +```js +const from = myNodePos.from +``` + +##### to + +The to position of your NodePosition. + +**Returns** `number` + +```js +const to = myNodePos.to +``` + +##### range + +The range of your NodePosition. + +**Returns** `number` + +```js +const range = myNodePos.range +``` + +##### parent + +The parent NodePos of your NodePosition. + +**Returns** `NodePos` + +```js +const parent = myNodePos.parent +``` + +##### before + +The NodePos before your NodePosition. If there is no NodePos before, it will return `null`. + +**Returns** `NodePos | null` + +```js +const before = myNodePos.before +``` + +##### after + +The NodePos after your NodePosition. If there is no NodePos after, it will return `null`. + +**Returns** `NodePos | null` + +```js +const after = myNodePos.after +``` + +##### children + +The child NodePos instances of your NodePosition. + +**Returns** `Array` + +```js +const children = myNodePos.children +``` + +##### firstChild + +The first child NodePos instance of your NodePosition. If there is no child, it will return `null`. + +**Returns** `NodePos | null` + +```js +const firstChild = myNodePos.firstChild +``` + +##### lastChild + +The last child NodePos instance of your NodePosition. If there is no child, it will return `null`. + +**Returns** `NodePos | null` + +```js +const lastChild = myNodePos.lastChild +``` diff --git a/src/content/editor/api/utilities/html.mdx b/src/content/editor/api/utilities/html.mdx new file mode 100644 index 0000000..79a7cb9 --- /dev/null +++ b/src/content/editor/api/utilities/html.mdx @@ -0,0 +1,123 @@ +--- +title: HTML Utility +meta: + title: HTML utility | Tiptap Editor Docs + description: Use the HTML Utility in Tiptap to render JSON as HTML and convert HTML to JSON without an editor instance. More in the docs! + category: Editor +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/html.svg?label=version + url: https://www.npmjs.com/package/@tiptap/html + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/html.svg?label=version + url: https://npmcharts.com/compare/@tiptap/html + label: Downloads +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +The HTML Utility helps render JSON content as HTML and generate JSON from HTML without an editor instance, suitable for server-side operations. All it needs is JSON or a HTML string, and a list of extensions. + +## Generating HTML from JSON + +Given a JSON object, representing a prosemirror document, the `generateHTML` function will return a `string` object representing the JSON content. The function takes two arguments: the JSON object and a list of extensions. + +```js +/* IN BROWSER ONLY - See below for server-side compatible package */ +import { generateHTML } from '@tiptap/core' + +// Generate JSON from HTML +generateHTML( + { + type: 'doc', + content: [{ type: 'paragraph', content: [{ type: 'text', text: 'On the browser only' }] }], + }, + [ + Document, + Paragraph, + Text, + Bold, + // other extensions … + ], +) +// `

    On the browser only

    ` + +/* ON SERVER OR BROWSER - See above for browser only compatible package (ships less JS) */ +import { generateHTML } from '@tiptap/html' + +// Generate JSON from HTML +generateHTML( + { + type: 'doc', + content: [ + { type: 'paragraph', content: [{ type: 'text', text: 'On the server, or the browser' }] }, + ], + }, + [ + Document, + Paragraph, + Text, + Bold, + // other extensions … + ], +) +// `

    On the server, or the browser

    ` +``` + + + There are two exports available: `generateHTML` from `@tiptap/core` and from `@tiptap/html`. The + former is only for use within the browser, the latter can be used on either the server or the + browser. Make sure to use the correct one for your use case. On the server, a virtual DOM is used + to generate the HTML. So using `@tiptap/core` can ship less code if you don't need the + server-side functionality. + + + + +## Generating JSON from HTML + +Given an HTML string, the `generateJSON` function will return a JSON object representing the HTML content as a prosemirror document. The function takes two arguments: the HTML string and a list of extensions. + +```js +/* IN BROWSER ONLY - See below for server-side compatible package */ +import { generateJSON } from '@tiptap/core' + +// Generate JSON from HTML +generateJSON(`

    On the browser only

    `, [ + Document, + Paragraph, + Text, + Bold, + // other extensions … +]) +// { type: 'doc', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'On the browser only' }] }] } + +/* ON SERVER OR BROWSER - See above for browser only compatible package (ships less JS) */ +import { generateJSON } from '@tiptap/html' + +// Generate JSON from HTML +generateJSON(`

    On the server, or the browser

    `, [ + Document, + Paragraph, + Text, + Bold, + // other extensions … +]) +// { type: 'doc', content: [{ type: 'paragraph', content: [{ type: 'text', text: 'On the server, or the browser' }] }] } +``` + + + There are two exports available: `generateJSON` from `@tiptap/core` and from `@tiptap/html`. The + former is only for use within the browser, the latter can be used on either the server or the + browser. Make sure to use the correct one for your use case. On the server, a virtual DOM is used + to generate the HTML. So using `@tiptap/core` can ship less code if you don't need the + server-side functionality. + + + + +## Source code + +[packages/html/](https://github.com/ueberdosis/tiptap/blob/main/packages/html/) diff --git a/src/content/editor/api/utilities/index.mdx b/src/content/editor/api/utilities/index.mdx new file mode 100644 index 0000000..352999a --- /dev/null +++ b/src/content/editor/api/utilities/index.mdx @@ -0,0 +1,17 @@ +--- +title: Tiptap Utilities +meta: + title: Utilities | Tiptap Editor Docs + description: Tiptap Utilities complement the Editor API, providing tools to help you with your editor and content. Learn more in the docs! + category: Editor +--- + +Tiptap Utilities are complementing the Editor API, providing tools that improve and extend your interactions with the editor and content. + +## All utilities + +| Utility Name | Description | +| -------------------------------------------------------- | --------------------------------------------------------- | +| [`HTML Utility`](/editor/api/utilities/html) | Handles JSON and HTML transformations server-side. | +| [`Suggestion Utility`](/editor/api/utilities/suggestion) | Adds customizable autocomplete suggestions to the editor. | +| [`Tiptap for PHP`](/editor/api/utilities/tiptap-for-php) | Integrates Tiptap functionalities into PHP projects. | diff --git a/src/content/editor/api/utilities/suggestion.mdx b/src/content/editor/api/utilities/suggestion.mdx new file mode 100644 index 0000000..3525bbb --- /dev/null +++ b/src/content/editor/api/utilities/suggestion.mdx @@ -0,0 +1,93 @@ +--- +title: Suggestion utility +meta: + title: Suggestion utility | Tiptap Editor Docs + description: Customize autocomplete suggestions using nodes like Mention and Emoji. Explore settings and configurations in our docs. + category: Editor +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/suggestion.svg?label=version + url: https://www.npmjs.com/package/@tiptap/suggestion + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/suggestion.svg?label=version + url: https://npmcharts.com/compare/@tiptap/suggestion + label: Downloads +--- + +This utility helps with all kinds of suggestions in the editor. Have a look at the [`Mention`](/editor/extensions/nodes/mention) or [`Emoji`](/editor/extensions/nodes/emoji) node to see it in action. + +## Settings + +### char + +The character that triggers the autocomplete popup. + +Default: `'@'` + +### pluginKey + +A ProseMirror PluginKey. + +Default: `SuggestionPluginKey` + +### allowSpaces + +Allows or disallows spaces in suggested items. + +Default: `false` + +### allowedPrefixes + +The prefix characters that are allowed to trigger a suggestion. Set to `null` to allow any prefix character. + +Default: `[' ']` + +### startOfLine + +Trigger the autocomplete popup at the start of a line only. + +Default: `false` + +### decorationTag + +The HTML tag that should be rendered for the suggestion. + +Default: `'span'` + +### decorationClass + +A CSS class that should be added to the suggestion. + +Default: `'suggestion'` + +### command + +Executed when a suggestion is selected. + +Default: `() => {}'` + +### items + +Pass an array of filtered suggestions, can be async. + +Default: `({ editor, query }) => []` + +### render + +A render function for the autocomplete popup. + +Default: `() => ({})` + +### findSuggestionMatch + +Optional param to replace the built-in regex matching of editor content that triggers a suggestion. +See [the +source](https://github.com/ueberdosis/tiptap/blob/main/packages/suggestion/src/findSuggestionMatch.ts#L18) +for more detail. + +Default: `findSuggestionMatch(config: Trigger): SuggestionMatch` + +## Source code + +[packages/suggestion/](https://github.com/ueberdosis/tiptap/blob/main/packages/suggestion/) diff --git a/src/content/editor/api/utilities/tiptap-for-php.mdx b/src/content/editor/api/utilities/tiptap-for-php.mdx new file mode 100644 index 0000000..598f5aa --- /dev/null +++ b/src/content/editor/api/utilities/tiptap-for-php.mdx @@ -0,0 +1,43 @@ +--- +title: Tiptap for PHP utility +meta: + title: PHP utility | Tiptap Editor Docs + description: Use the Tiptap PHP package to convert Tiptap JSON to HTML, sanitize content, or modify it. More in the docs! + category: Editor +tags: + - type: image + src: https://img.shields.io/packagist/v/ueberdosis/tiptap-php.svg + url: https://packagist.org/packages/ueberdosis/tiptap-php + label: Version + - type: image + src: https://img.shields.io/packagist/dt/ueberdosis/tiptap-php.svg + url: https://packagist.org/packages/ueberdosis/tiptap-php + label: Downloads +--- + +A PHP package to work with [Tiptap](https://tiptap.dev/) content. You can transform Tiptap-compatible JSON to HTML, and the other way around, sanitize your content, or just modify it. + +## Install + +You can install the package via composer: + +```bash +composer require ueberdosis/tiptap-php +``` + +## Using the Tiptap PHP utility + +The PHP package mimics large parts of the JavaScript package. If you know your way around Tiptap, the PHP syntax will feel familiar to you. Here is an easy example: + +```php +(new Tiptap\Editor) + ->setContent('

    Example Text

    ') + ->getDocument(); + +// Returns: +// ['type' => 'doc', 'content' => …] +``` + +## Documentation + +There’s a lot more the PHP package can do. Check out the [repository on GitHub](https://github.com/ueberdosis/tiptap-php). diff --git a/src/content/editor/core-concepts/extensions.mdx b/src/content/editor/core-concepts/extensions.mdx new file mode 100644 index 0000000..68f5daa --- /dev/null +++ b/src/content/editor/core-concepts/extensions.mdx @@ -0,0 +1,54 @@ +--- +title: Extensions in Tiptap +meta: + title: Extensions | Tiptap Editor Docs + description: Learn how to create, customize, and integrate extensions into Tiptap to improve your text editor's functionality. +--- + +Extensions enhance Tiptap by adding new capabilities or modifying the editor's behavior. Whether it is adding new types of content, customizing the editor's appearance, or extending its functionality, extensions are the building blocks of Tiptap. + +To add new types of content into your editor you can use [nodes](/editor/api/nodes) and [marks](/editor/extensions/marks) which can render content in the editor. + +The optional `@tiptap/starter-kit` includes the most commonly used extensions, simplifying setup. Read more about [`StarterKit`](/editor/getting-started/configure#default-extensions). + +Expand your editor's functionality with extensions created by the Tiptap community. Discover a variety of custom features and tools in the [Awesome Tiptap Repository](https://github.com/ueberdosis/awesome-tiptap#community-extensions). For collaboration and support, engage with other developers in the [Discussion Thread](https://github.com/ueberdosis/tiptap/discussions/2973) on community-built extensions. + +## What are extensions? + +Although Tiptap tries to hide most of the complexity of ProseMirror, it’s built on top of its APIs and we recommend you to read through the [ProseMirror Guide](https://ProseMirror.net/docs/guide/) for advanced usage. You’ll have a better understanding of how everything works under the hood and get more familiar with many terms and jargon used by Tiptap. + +Existing [nodes](/editor/extensions/nodes), [marks](/editor/extensions/marks) and [functionality](/editor/extensions/functionality) can give you a good impression on how to approach your own extensions. To make it easier to switch between the documentation and the source code, we linked to the file on GitHub from every single extension documentation page. + +We recommend to start with customizing existing extensions first, and create your own extensions with the gained knowledge later. That’s why all the examples below extend existing extensions, but all examples will work on newly created extensions as well. + +## Create a new extension + +You’re free to create your own extensions for Tiptap. Here is the boilerplate code that’s needed to create and register your own extension: + +```js +import { Extension } from '@tiptap/core' + +const CustomExtension = Extension.create({ + // Your code here +}) + +const editor = new Editor({ + extensions: [ + // Register your custom extension with the editor. + CustomExtension, + // … and don’t forget all other extensions. + Document, + Paragraph, + Text, + // … + ], +}) +``` + +You can easily bootstrap a new extension via our CLI. + +```bash +npm init tiptap-extension +``` + +Learn more about custom extensions in our [guide](/editor/extensions/custom-extensions). diff --git a/src/content/editor/core-concepts/introduction.mdx b/src/content/editor/core-concepts/introduction.mdx new file mode 100644 index 0000000..913949e --- /dev/null +++ b/src/content/editor/core-concepts/introduction.mdx @@ -0,0 +1,36 @@ +--- +title: Tiptap Concepts +description: Explore the foundational elements of Tiptap's API, designed for intricate rich text editing based on ProseMirror's architecture. +meta: + title: Tiptap Concepts | Tiptap Editor Docs + description: Learn how to integrate Tiptap's document schema, transaction-based state management, and editor extensions in our docs. + category: Editor +--- + +## Structure + +ProseMirror works with a strict [Schema](/editor/core-concepts/schema), which defines the allowed structure of a document. A document is a tree of headings, paragraphs and others elements, so called nodes. Marks can be attached to a node, e. g. to emphasize part of it. [Commands](/editor/api/commands) change that document programmatically. + +## Content + +The document is stored in a state. All changes are applied as transactions to the state. The state has details about the current content, cursor position and selection. You can hook into a few different [events](/editor/api/events), for example to alter transactions before they get applied. + +## Extensions + +Extensions add [nodes](/editor/extensions/nodes), [marks](/editor/extensions/marks) and/or [functionalities](/editor/extensions/functionality) to the editor. A lot of those extensions bound their commands to common [keyboard shortcuts](/editor/core-concepts/keyboard-shortcuts). + +## Vocabulary + +ProseMirror has its own vocabulary and you’ll stumble upon all those words now and then. Here is a short overview of the most common words we use in the documentation. + +| Word | Description | +| ----------- | ------------------------------------------------------------------------ | +| Schema | Configures the structure your content can have. | +| Document | The actual content in your editor. | +| State | Everything to describe the current content and selection of your editor. | +| Transaction | A change to the state (updated selection, content, …) | +| Extension | Registers new functionality. | +| Node | A type of content, for example a heading or a paragraph. | +| Mark | Can be applied to nodes, for example for inline formatting. | +| Command | Execute an action inside the editor, that somehow changes the state. | +| Decoration | Styling on top of the document, for example to highlight mistakes. | diff --git a/src/content/editor/core-concepts/keyboard-shortcuts.mdx b/src/content/editor/core-concepts/keyboard-shortcuts.mdx new file mode 100644 index 0000000..5c7868d --- /dev/null +++ b/src/content/editor/core-concepts/keyboard-shortcuts.mdx @@ -0,0 +1,104 @@ +--- +title: Keyboard shortcuts in Tiptap +meta: + title: Keyboard shortcuts | Tiptap Editor Docs + description: Discover the predefined keyboard shortcuts for Tiptap and learn how to customize these shortcuts to fit your editing needs. + category: Editor +--- + +Tiptap comes with sensible keyboard shortcut defaults. Depending on what you want to use it for, you’ll probably want to change those keyboard shortcuts to your liking. Let’s have a look at what we defined for you, and show you how to change it then! + +## Predefined keyboard shortcuts + +Most of the core extensions register their own keyboard shortcuts. Depending on what set of extension you use, not all of the below listed keyboard shortcuts work for your editor. + +### Essentials + +| Command | Windows/Linux | macOS | +| ------------------------ | ------------------------------------------------------------------------------ | -------------------------------------------------------------------------- | +| Copy | Control + C | Cmd + C | +| Cut | Control + X | Cmd + X | +| Paste | Control + V | Cmd + V | +| Paste without formatting | Control + Shift + V | Cmd + Shift + V | +| Undo | Control + Z | Cmd + Z | +| Redo | Control + Shift + Z | Cmd + Shift + Z | +| Add a line break | Shift + Enter
    Control + Enter | Shift + Enter
    Cmd + Enter | + +### Text Formatting + +| Command | Windows/Linux | macOS | +| ------------- | ---------------------------------------------------- | ------------------------------------------------ | +| Bold | Control + B | Cmd + B | +| Italicize | Control + I | Cmd + I | +| Underline | Control + U | Cmd + U | +| Strikethrough | Control + Shift + S | Cmd + Shift + S | +| Highlight | Control + Shift + H | Cmd + Shift + H | +| Code | Control + E | Cmd + E | + +### Paragraph Formatting + +| Command | Windows/Linux | macOS | +| ----------------------- | ---------------------------------------------------- | ------------------------------------------------ | +| Apply normal text style | Control + Alt + 0 | Cmd + Alt + 0 | +| Apply heading style 1 | Control + Alt + 1 | Cmd + Alt + 1 | +| Apply heading style 2 | Control + Alt + 2 | Cmd + Alt + 2 | +| Apply heading style 3 | Control + Alt + 3 | Cmd + Alt + 3 | +| Apply heading style 4 | Control + Alt + 4 | Cmd + Alt + 4 | +| Apply heading style 5 | Control + Alt + 5 | Cmd + Alt + 5 | +| Apply heading style 6 | Control + Alt + 6 | Cmd + Alt + 6 | +| Ordered list | Control + Shift + 7 | Cmd + Shift + 7 | +| Bullet list | Control + Shift + 8 | Cmd + Shift + 8 | +| Task list | Control + Shift + 9 | Cmd + Shift + 9 | +| Blockquote | Control + Shift + B | Cmd + Shift + B | +| Left align | Control + Shift + L | Cmd + Shift + L | +| Center align | Control + Shift + E | Cmd + Shift + E | +| Right align | Control + Shift + R | Cmd + Shift + R | +| Justify | Control + Shift + J | Cmd + Shift + J | +| Code block | Control + Alt + C | Cmd + Alt + C | +| Subscript | Control + , | Cmd + , | +| Superscript | Control + . | Cmd + . | + +### Text Selection + +| Command | Windows/Linux | macOS | +| --------------------------------------- | --------------------------------- | ------------------------------- | +| Select all | Control + A | Cmd + A | +| Extend selection one character to left | Shift + | Shift + | +| Extend selection one character to right | Shift + | Shift + | +| Extend selection one line up | Shift + | Shift + | +| Extend selection one line down | Shift + | Shift + | + +## Overwrite keyboard shortcuts + +Keyboard shortcuts may be strings like `'Shift-Control-Enter'`. Keys are based on the strings that can appear in `event.key`, concatenated with a `-`. There is a little tool called [keycode.info](https://keycode.info/), which shows the `event.key` interactively. + +Use lowercase letters to refer to letter keys (or uppercase letters if you want shift to be held). You may use `Space` as an alias for the . + +Modifiers can be given in any order. `Shift`, `Alt`, `Control` and `Cmd` are recognized. For characters that are created by holding shift, the `Shift` prefix is implied, and should not be added explicitly. + +You can use `Mod` as a shorthand for `Cmd` on Mac and `Control` on other platforms. + +Here is an example how you can overwrite the keyboard shortcuts for an existing extension: + +```js +// 1. Import the extension +import BulletList from '@tiptap/extension-bullet-list' + +// 2. Overwrite the keyboard shortcuts +const CustomBulletList = BulletList.extend({ + addKeyboardShortcuts() { + return { + // ↓ your new keyboard shortcut + 'Mod-l': () => this.editor.commands.toggleBulletList(), + } + }, +}) + +// 3. Add the custom extension to your editor +new Editor({ + extensions: [ + CustomBulletList(), + // … + ], +}) +``` diff --git a/src/content/editor/core-concepts/nodes-and-marks.mdx b/src/content/editor/core-concepts/nodes-and-marks.mdx new file mode 100644 index 0000000..3aab017 --- /dev/null +++ b/src/content/editor/core-concepts/nodes-and-marks.mdx @@ -0,0 +1,17 @@ +--- +title: Nodes and Marks +sidebars: + hideSecondary: true +meta: + title: Nodes and Marks | Tiptap Editor Docs + description: Discover the different types of nodes in Tiptap, like paragraphs, headings, code blocks, and more. Learn more in our docs! + category: Editor +--- + +If you think of the document as a tree, then nodes are just a type of content in that tree. Examples of nodes are paragraphs, headings, or code blocks. But nodes don’t have to be blocks. They can also be rendered inline with the text, for example for @mentions. Think of them as unique pieces of content that can be styled and manipulated in different ways. + +Marks can be applied to specific parts of a node. That’s the case for **bold**, _italic_ or ~~striked~~ text. [Links](#) are marks, too. Think of them as a way to style or annotate text. + +## Differences + +Nodes and marks are similar in some ways, but they have different use cases. Nodes are the building blocks of your document. They define the structure and hierarchy of your content. Marks, on the other hand, are used to style or annotate text. They can be applied to any part of a node, but they don’t change the structure of the document. diff --git a/src/content/editor/core-concepts/prosemirror.mdx b/src/content/editor/core-concepts/prosemirror.mdx new file mode 100644 index 0000000..71e4e96 --- /dev/null +++ b/src/content/editor/core-concepts/prosemirror.mdx @@ -0,0 +1,51 @@ +--- +title: ProseMirror +meta: + title: ProseMirror | Tiptap Editor Docs + description: Access the ProseMirror API and functionality with the Tiptap PM package while developing your editor. Learn more in the docs! + category: Editor +--- + +Tiptap is built on top of ProseMirror, which has a pretty powerful API. To access it, we provide the package `@tiptap/pm`. This package provides all important ProseMirror packages like `prosemirror-state`, `prosemirror-view` or `prosemirror-model`. + +Using the package for custom development makes sure that you always have the same version of ProseMirror which is used by Tiptap as well. This way, we can make sure that Tiptap and all extensions are compatible with each other and prevent version clashes. + +Another plus is that you don't need to install all ProseMirror packages manually, especially if you are not using npm or any other package manager that supports automatic peer dependency resolution. + +## Install + +```bash +npm i @tiptap/pm +``` + +After that you can access all internal ProseMirror packages like this: + +```js +// this example loads the EditorState class from the ProseMirror state package +import { EditorState } from '@tiptap/pm/state' +``` + +## Integrate packages + +The following packages are available: + +- `@tiptap/pm/changeset` +- `@tiptap/pm/collab` +- `@tiptap/pm/commands` +- `@tiptap/pm/dropcursor` +- `@tiptap/pm/gapcursor` +- `@tiptap/pm/history` +- `@tiptap/pm/inputrules` +- `@tiptap/pm/keymap` +- `@tiptap/pm/markdown` +- `@tiptap/pm/menu` +- `@tiptap/pm/model` +- `@tiptap/pm/schema-basic` +- `@tiptap/pm/schema-list` +- `@tiptap/pm/state` +- `@tiptap/pm/tables` +- `@tiptap/pm/trailing-node` +- `@tiptap/pm/transform` +- `@tiptap/pm/view` + +You can find out more about those libraries in the [ProseMirror documentation](https://prosemirror.net/docs/ref). diff --git a/src/content/editor/core-concepts/schema.mdx b/src/content/editor/core-concepts/schema.mdx new file mode 100644 index 0000000..1cf3805 --- /dev/null +++ b/src/content/editor/core-concepts/schema.mdx @@ -0,0 +1,460 @@ +--- +title: Tiptap Schemas +meta: + title: Schema | Tiptap Editor Docs + description: Learn how content is structured in Tiptap’s schema and control your nodes, marks and more in your documents. More in the docs! + category: Editor +--- + +import { Callout } from '@/components/ui/Callout' + +Unlike many other editors, Tiptap is based on a [schema](https://prosemirror.net/docs/guide/#schema) that defines how your content is structured. That enables you to define the kind of nodes that may occur in the document, its attributes and the way they can be nested. + +This schema is _very_ strict. You can’t use any HTML element or attribute that is not defined in your schema. + +Let me give you one example: If you paste something like `This is important` into Tiptap, but don’t have any extension that handles `strong` tags, you’ll only see `This is important` – without the strong tags. + +If you want to know when this happens, you can listen to the [`contentError`](/editor/api/events#contenterror) event after enabling the `enableContentCheck` option. + +## How a schema looks like + +When you’ll work with the provided extensions only, you don’t have to care that much about the schema. If you’re building your own extensions, it’s probably helpful to understand how the schema works. Let’s look at the most simple schema for a typical ProseMirror editor: + +```js +// the underlying ProseMirror schema +{ + nodes: { + doc: { + content: 'block+', + }, + paragraph: { + content: 'inline*', + group: 'block', + parseDOM: [{ tag: 'p' }], + toDOM: () => ['p', 0], + }, + text: { + group: 'inline', + }, + }, +} +``` + +We register three nodes here. `doc`, `paragraph` and `text`. `doc` is the root node which allows one or more block nodes as children (`content: 'block+'`). Since `paragraph` is in the group of block nodes (`group: 'block'`) our document can only contain paragraphs. Our paragraphs allow zero or more inline nodes as children (`content: 'inline*'`) so there can only be `text` in it. `parseDOM` defines how a node can be parsed from pasted HTML. `toDOM` defines how it will be rendered in the DOM. + +In Tiptap every node, mark and extension is living in its own file. This allows us to split the logic. Under the hood the whole schema will be merged together: + +```js +// the Tiptap schema API +import { Node } from '@tiptap/core' + +const Document = Node.create({ + name: 'doc', + topNode: true, + content: 'block+', +}) + +const Paragraph = Node.create({ + name: 'paragraph', + group: 'block', + content: 'inline*', + parseHTML() { + return [{ tag: 'p' }] + }, + renderHTML({ HTMLAttributes }) { + return ['p', HTMLAttributes, 0] + }, +}) + +const Text = Node.create({ + name: 'text', + group: 'inline', +}) +``` + +## Nodes and marks + +### Differences + +Nodes are like blocks of content, for example paragraphs, headings, code blocks, blockquotes and many more. + +Marks can be applied to specific parts of a node. That’s the case for **bold**, _italic_ or ~~striked~~ text. [Links](#) are marks, too. + +### The node schema + +#### Content + +The content attribute defines exactly what kind of content the node can have. ProseMirror is really strict with that. That means, content which doesn’t fit the schema is thrown away. It expects a name or group as a string. Here are a few examples: + +```js +Node.create({ + // must have one or more blocks + content: 'block+', + + // must have zero or more blocks + content: 'block*', + + // allows all kinds of 'inline' content (text or hard breaks) + content: 'inline*', + + // must not have anything else than 'text' + content: 'text*', + + // can have one or more paragraphs, or lists (if lists are used) + content: '(paragraph|list?)+', + + // must have exact one heading at the top, and one or more blocks below + content: 'heading block+', +}) +``` + +#### Marks + +You can define which marks are allowed inside of a node with the `marks` setting of the schema. Add a one or more names or groups of marks, allow all or disallow all marks like this: + +```js +Node.create({ + // allows only the 'bold' mark + marks: 'bold', + + // allows only the 'bold' and 'italic' marks + marks: 'bold italic', + + // allows all marks + marks: '_', + + // disallows all marks + marks: '', +}) +``` + +#### Group + +Add this node to a group of extensions, which can be referred to in the [content](#content) attribute of the schema. + +```js +Node.create({ + // add to 'block' group + group: 'block', + + // add to 'inline' group + group: 'inline', + + // add to 'block' and 'list' group + group: 'block list', +}) +``` + +#### Inline + +Nodes can be rendered inline, too. When setting `inline: true` nodes are rendered in line with the text. That’s the case for mentions. The result is more like a mark, but with the functionality of a node. One difference is the resulting JSON document. Multiple marks are applied at once, inline nodes would result in a nested structure. + +```js +Node.create({ + // renders nodes in line with the text, for example + inline: true, +}) +``` + +For some cases where you want features that aren’t available in marks, for example a node view, try if an inline node would work: + +```js +Node.create({ + name: 'customInlineNode', + group: 'inline', + inline: true, + content: 'text*', +}) +``` + +#### Atom + +Nodes with `atom: true` aren’t directly editable and should be treated as a single unit. It’s not so likely to use that in a editor context, but this is how it would look like: + +```js +Node.create({ + atom: true, +}) +``` + +One example is the [`Mention`](/editor/extensions/nodes/mention) extension, which somehow looks like text, but behaves more like a single unit. As this doesn’t have editable text content, it’s empty when you copy such node. Good news though, you can control that. Here is the example from the [`Mention`](/editor/extensions/nodes/mention) extension: + +```js +// Used to convert an atom node to plain text +renderText({ node }) { + return `@${node.attrs.id}` +}, +``` + +#### Selectable + +Besides the already visible text selection, there is an invisible node selection. If you want to make your nodes selectable, you can configure it like this: + +```js +Node.create({ + selectable: true, +}) +``` + +#### Draggable + +All nodes can be configured to be draggable (by default they aren’t) with this setting: + +```js +Node.create({ + draggable: true, +}) +``` + +#### Code + +Users expect code to behave very differently. For all kind of nodes containing code, you can set `code: true` to take this into account. + +```js +Node.create({ + code: true, +}) +``` + +#### Whitespace + +Controls way whitespace in this a node is parsed. + +```js +Node.create({ + whitespace: 'pre', +}) +``` + +#### Defining + +Nodes get dropped when their entire content is replaced (for example, when pasting new content) by default. If a node should be kept for such replace operations, configure them as `defining`. + +Typically, that applies to [`Blockquote`](/editor/extensions/nodes/blockquote), [`CodeBlock`](/editor/extensions/nodes/code-block), [`Heading`](/editor/extensions/nodes/heading), and [`ListItem`](/editor/extensions/nodes/list-item). + +```js +Node.create({ + defining: true, +}) +``` + +#### Isolating + +For nodes that should fence the cursor for regular editing operations like backspacing, for example a TableCell, set `isolating: true`. + +```js +Node.create({ + isolating: true, +}) +``` + +#### Allow gap cursor + +The [`Gapcursor`](/editor/extensions/functionality/gapcursor) extension registers a new schema attribute to control if gap cursors are allowed everywhere in that node. + +```js +Node.create({ + allowGapCursor: false, +}) +``` + +#### Table roles + +The [`Table`](/editor/extensions/nodes/table) extension registers a new schema attribute to configure which role an Node has. Allowed values are `table`, `row`, `cell`, and `header_cell`. + +```js +Node.create({ + tableRole: 'cell', +}) +``` + +### The mark schema + +#### Inclusive + +If you don’t want the mark to be active when the cursor is at its end, set inclusive to `false`. For example, that’s how it’s configured for [`Link`](/editor/extensions/marks/link) marks: + +```js +Mark.create({ + inclusive: false, +}) +``` + +#### Excludes + +By default all marks can be applied at the same time. With the excludes attribute you can define which marks must not coexist with the mark. For example, the inline code mark excludes any other mark (bold, italic, and all others). + +```js +Mark.create({ + // must not coexist with the bold mark + excludes: 'bold' + // exclude any other mark + excludes: '_', +}) +``` + +#### Exitable + +By default a mark will "trap" the cursor, meaning the cursor can't get out of the mark except by moving the cursor left to right into text without a mark. +If this is set to true, the mark will be exitable when the mark is at the end of a node. This is handy for example using code marks. + +```js +Mark.create({ + // make this mark exitable - default is false + exitable: true, +}) +``` + +#### Group + +Add this mark to a group of extensions, which can be referred to in the content attribute of the schema. + +```js +Mark.create({ + // add this mark to the 'basic' group + group: 'basic', + // add this mark to the 'basic' and the 'foobar' group + group: 'basic foobar', +}) +``` + +#### Code + +Users expect code to behave very differently. For all kind of marks containing code, you can set `code: true` to take this into account. + +```js +Mark.create({ + code: true, +}) +``` + +#### Spanning + +By default marks can span multiple nodes when rendered as HTML. Set `spanning: false` to indicate that a mark must not span multiple nodes. + +```js +Mark.create({ + spanning: false, +}) +``` + +## Get the underlying ProseMirror schema + +There are a few use cases where you need to work with the underlying schema. You’ll need that if you’re using the Tiptap collaborative text editing features or if you want to manually render your content as HTML. + +### Option 1: With an Editor + +If you need this on the client side and need an editor instance anyway, it’s available through the editor: + +```js +import { Editor } from '@tiptap/core' +import Document from '@tiptap/extension-document' +import Paragraph from '@tiptap/extension-paragraph' +import Text from '@tiptap/extension-text' + +const editor = new Editor({ + extensions: [ + Document, + Paragraph, + Text, + // add more extensions here + ]) +}) + +const schema = editor.schema +``` + +### Option 2: Without an Editor + +If you just want to have the schema _without_ initializing an actual editor, you can use the `getSchema` helper function. It needs an array of available extensions and conveniently generates a ProseMirror schema for you: + +```js +import { getSchema } from '@tiptap/core' +import Document from '@tiptap/extension-document' +import Paragraph from '@tiptap/extension-paragraph' +import Text from '@tiptap/extension-text' + +const schema = getSchema([ + Document, + Paragraph, + Text, + // add more extensions here +]) +``` + +## Invalid Schema Handling + +To track and respond to content errors, Tiptap supports checking that the content provided matches the schema derived from the registered extensions. +To use this, set the `enableContentCheck` option to `true`, which activates checking the content and emitting `contentError` events. +These events can be listened to with the `onContentError` callback. +By default, this flag is set to `false` to maintain compatibility with previous versions. + + + The content checking that Tiptap runs is 100% accurate on JSON content types. But, if you provide + your content as HTML, we have done our best to try to alert on missing nodes but marks can be + missed in certain situations, therefore, falling back to the default behavior of stripping that + unrecognized content by default. + + +### contentError event + +The `contentError` event is emitted when the initial `content` provided during editor setup is incompatible with the schema. + +As part of the error context, you are provided with a `disableCollaboration` function. Invoking this function reinitializes the editor without the collaboration extension, ensuring that any removed content is not synchronized with other users. + +This event can be handled either directly as an option through `onContentError` like: + +```jsx +new Editor({ + enableContentCheck: true, + content: invalidContent, + onContentError({ editor, error, disableCollaboration }) { + // your handler here + }, + ...options, +}) +``` + +Or, by attaching a listener to the `contentError` event on the editor instance. + +```jsx +const editor = new Editor({ + enableContentCheck: true, + content: invalidContent, + ...options, +}) + +editor.on('contentError', ({ editor, error, disableCollaboration }) => { + // your handler here +}) +``` + +For more implementation examples, refer to the [events] section. + +### Recommended Handling + +How you handle schema errors will be specific to your application and requirements but, here are our suggestions: + +#### Without collaborative editing + +Depending on your use case, the default behavior of stripping unknown content keeps your content in a known valid state for future editing. + +#### With collaborative editing + +Depending on your use case, you may want to set the `enableContentCheck` flag and listen to `contentError` events. When this event is received, you may want to respond similarly to this example: + +```tsx +onContentError({ editor, error, disableCollaboration }) { + // Removes the collaboration extension. + disableCollaboration() + + // Since the content is invalid, we don't want to emit an update + // Preventing synchronization with other editors or to a server + const emitUpdate = false + + // Disable the editor to prevent further user input + editor.setEditable(false, emitUpdate) + + // Maybe show a notification to the user that they need to refresh the app +} +``` diff --git a/src/content/editor/extensions/custom-extensions/create-new.mdx b/src/content/editor/extensions/custom-extensions/create-new.mdx new file mode 100644 index 0000000..57a934b --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/create-new.mdx @@ -0,0 +1,66 @@ +--- +title: Create a new extension +meta: + title: Create extensions | Tiptap Editor Docs + description: Create a new extension for your Tiptap editor and create a unique editor experience from scratch. Learn more in the docs! + category: Editor +--- + +You can build your own extensions from scratch and you know what? It’s the same syntax as for extending existing extension described above. + +### Create a node + +If you think of the document as a tree, then [nodes](/editor/extensions/nodes) are just a type of content in that tree. Good examples to learn from are [`Paragraph`](/editor/extensions/nodes/paragraph), [`Heading`](/editor/extensions/nodes/heading), or [`CodeBlock`](/editor/extensions/nodes/code-block). + +```js +import { Node } from '@tiptap/core' + +const CustomNode = Node.create({ + name: 'customNode', + + // Your code goes here. +}) +``` + +Nodes don’t have to be blocks. They can also be rendered inline with the text, for example for [@mentions](/editor/extensions/nodes/mention). + +### Create a mark + +One or multiple marks can be applied to [nodes](/editor/extensions/nodes), for example to add inline formatting. Good examples to learn from are [`Bold`](/editor/extensions/marks/bold), [`Italic`](/editor/extensions/marks/italic) and [`Highlight`](/editor/extensions/marks/highlight). + +```js +import { Mark } from '@tiptap/core' + +const CustomMark = Mark.create({ + name: 'customMark', + + // Your code goes here. +}) +``` + +### Create an extension + +Extensions add new capabilities to Tiptap and you’ll read the word extension here very often, even for nodes and marks. But there are literal extensions. Those can’t add to the schema (like marks and nodes do), but can add functionality or change the behaviour of the editor. + +A good example to learn from is probably [`TextAlign`](/editor/extensions/functionality/textalign). + +```js +import { Extension } from '@tiptap/core' + +const CustomExtension = Extension.create({ + name: 'customExtension', + + // Your code goes here. +}) +``` + +## Publish standalone extensions + +If you want to create and publish your own extensions for Tiptap, you can use our CLI tool to bootstrap your project. +Simply run `npm init tiptap-extension` and follow the instructions. The CLI will create a new folder with a pre-configured project for you including a build script running on Rollup. + +If you want to test your extension locally, you can run `npm link` in the project folder and then `npm link YOUR_EXTENSION` in your project (for example a Vite app). + +## Share + +When everything is working fine, don’t forget to [share it with the community](https://github.com/ueberdosis/tiptap/issues/819) or in our [awesome-tiptap](https://github.com/ueberdosis/awesome-tiptap) repository. diff --git a/src/content/editor/extensions/custom-extensions/extend-existing.mdx b/src/content/editor/extensions/custom-extensions/extend-existing.mdx new file mode 100644 index 0000000..3f037a1 --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/extend-existing.mdx @@ -0,0 +1,626 @@ +--- +title: Add to an existing extension +meta: + title: Extend extensions | Tiptap Editor Docs + description: Extend an already existing extension in Tiptap to add new features and functionalities to your editor. More in the docs! + category: Editor +--- + +import { Callout } from '@/components/ui/Callout' + +Every extension has an `extend()` method, which takes an object with everything you want to change or add to it. + +Let’s say, you’d like to change the keyboard shortcut for the bullet list. You should start with looking at the source code of the extension, in that case [the `BulletList` node](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-bullet-list/src/bullet-list.ts). For the bespoken example to overwrite the keyboard shortcut, your code could look like this: + +```js +// 1. Import the extension +import BulletList from '@tiptap/extension-bullet-list' + +// 2. Overwrite the keyboard shortcuts +const CustomBulletList = BulletList.extend({ + addKeyboardShortcuts() { + return { + 'Mod-l': () => this.editor.commands.toggleBulletList(), + } + }, +}) + +// 3. Add the custom extension to your editor +new Editor({ + extensions: [ + CustomBulletList(), + // … + ], +}) +``` + +The same applies to every aspect of an existing extension, except to the name. Let’s look at all the things that you can change through the extend method. We focus on one aspect in every example, but you can combine all those examples and change multiple aspects in one `extend()` call too. + +### Name + +The extension name is used in a whole lot of places and changing it isn’t too easy. If you want to change the name of an existing extension, you can copy the whole extension and change the name in all occurrences. + +The extension name is also part of the JSON. If you [store your content as JSON](/guides/output-json-html#option-1-json), you need to change the name there too. + +### Priority + +The priority defines the order in which extensions are registered. The default priority is `100`, that’s what most extension have. Extensions with a higher priority will be loaded earlier. + +```js +import Link from '@tiptap/extension-link' + +const CustomLink = Link.extend({ + priority: 1000, +}) +``` + +The order in which extensions are loaded influences two things: + +1. #### Plugin order + +ProseMirror plugins of extensions with a higher priority will run first. + +2. #### Schema order + +The [`Link`](/editor/extensions/marks/link) mark for example has a higher priority, which means it will be rendered as `Example` instead of `Example`. + +### Settings + +All settings can be configured through the extension anyway, but if you want to change the default settings, for example to provide a library on top of Tiptap for other developers, you can do it like this: + +```js +import Heading from '@tiptap/extension-heading' + +const CustomHeading = Heading.extend({ + addOptions() { + return { + ...this.parent?.(), + levels: [1, 2, 3], + } + }, +}) +``` + +### Storage + +At some point you probably want to save some data within your extension instance. This data is mutable. You can access it within the extension under `this.storage`. + +```js +import { Extension } from '@tiptap/core' + +const CustomExtension = Extension.create({ + name: 'customExtension', + + addStorage() { + return { + awesomeness: 100, + } + }, + + onUpdate() { + this.storage.awesomeness += 1 + }, +}) +``` + +Outside the extension you have access via `editor.storage`. Make sure that each extension has a unique name. + +```js +const editor = new Editor({ + extensions: [CustomExtension], +}) + +const awesomeness = editor.storage.customExtension.awesomeness +``` + +### Schema + +Tiptap works with a strict schema, which configures how the content can be structured, nested, how it behaves and many more things. You [can change all aspects of the schema](/editor/core-concepts/schema) for existing extensions. Let’s walk through a few common use cases. + +The default `Blockquote` extension can wrap other nodes, like headings. If you want to allow nothing but paragraphs in your blockquotes, set the `content` attribute accordingly: + +```js +// Blockquotes must only include paragraphs +import Blockquote from '@tiptap/extension-blockquote' + +const CustomBlockquote = Blockquote.extend({ + content: 'paragraph*', +}) +``` + +The schema even allows to make your nodes draggable, that’s what the `draggable` option is for. It defaults to `false`, but you can override that. + +```js +// Draggable paragraphs +import Paragraph from '@tiptap/extension-paragraph' + +const CustomParagraph = Paragraph.extend({ + draggable: true, +}) +``` + +That’s just two tiny examples, but [the underlying ProseMirror schema](https://prosemirror.net/docs/ref/#model.SchemaSpec) is really powerful. + +### Attributes + +You can use attributes to store additional information in the content. Let’s say you want to extend the default `Paragraph` node to have different colors: + +```js +const CustomParagraph = Paragraph.extend({ + addAttributes() { + // Return an object with attribute configuration + return { + color: { + default: 'pink', + }, + }, + }, +}) + +// Result: +//

    Example Text

    +``` + +That is already enough to tell Tiptap about the new attribute, and set `'pink'` as the default value. All attributes will be rendered as a HTML attribute by default, and parsed from the content when initiated. + +Let’s stick with the color example and assume you want to add an inline style to actually color the text. With the `renderHTML` function you can return HTML attributes which will be rendered in the output. + +This examples adds a style HTML attribute based on the value of `color`: + +```js +const CustomParagraph = Paragraph.extend({ + addAttributes() { + return { + color: { + default: null, + // Take the attribute values + renderHTML: (attributes) => { + // … and return an object with HTML attributes. + return { + style: `color: ${attributes.color}`, + } + }, + }, + } + }, +}) + +// Result: +//

    Example Text

    +``` + +You can also control how the attribute is parsed from the HTML. Maybe you want to store the color in an attribute called `data-color` (and not just `color`), here’s how you would do that: + +```js +const CustomParagraph = Paragraph.extend({ + addAttributes() { + return { + color: { + default: null, + // Customize the HTML parsing (for example, to load the initial content) + parseHTML: (element) => element.getAttribute('data-color'), + // … and customize the HTML rendering. + renderHTML: (attributes) => { + return { + 'data-color': attributes.color, + style: `color: ${attributes.color}`, + } + }, + }, + } + }, +}) + +// Result: +//

    Example Text

    +``` + +You can completely disable the rendering of attributes with `rendered: false`. + +#### Extend existing attributes + +If you want to add an attribute to an extension and keep existing attributes, you can access them through `this.parent()`. + +In some cases, it is undefined, so make sure to check for that case, or use optional chaining `this.parent?.()` + +```js +const CustomTableCell = TableCell.extend({ + addAttributes() { + return { + ...this.parent?.(), + myCustomAttribute: { + // … + }, + } + }, +}) +``` + +### Global attributes + +Attributes can be applied to multiple extensions at once. That’s useful for text alignment, line height, color, font family, and other styling related attributes. + +Take a closer look at [the full source code](https://github.com/ueberdosis/tiptap/tree/main/packages/extension-text-align) of the [`TextAlign`](/editor/extensions/functionality/textalign) extension to see a more complex example. But here is how it works in a nutshell: + +```js +import { Extension } from '@tiptap/core' + +const TextAlign = Extension.create({ + addGlobalAttributes() { + return [ + { + // Extend the following extensions + types: ['heading', 'paragraph'], + // … with those attributes + attributes: { + textAlign: { + default: 'left', + renderHTML: (attributes) => ({ + style: `text-align: ${attributes.textAlign}`, + }), + parseHTML: (element) => element.style.textAlign || 'left', + }, + }, + }, + ] + }, +}) +``` + +### Render HTML + +With the `renderHTML` function you can control how an extension is rendered to HTML. We pass an attributes object to it, with all local attributes, global attributes, and configured CSS classes. Here is an example from the `Bold` extension: + +```js +renderHTML({ HTMLAttributes }) { + return ['strong', HTMLAttributes, 0] +}, +``` + +The first value in the array should be the name of HTML tag. If the second element is an object, it’s interpreted as a set of attributes. Any elements after that are rendered as children. + +The number zero (representing a hole) is used to indicate where the content should be inserted. Let’s look at the rendering of the `CodeBlock` extension with two nested tags: + +```js +renderHTML({ HTMLAttributes }) { + return ['pre', ['code', HTMLAttributes, 0]] +}, +``` + +If you want to add some specific attributes there, import the `mergeAttributes` helper from `@tiptap/core`: + +```js +import { mergeAttributes } from '@tiptap/core' + +// ... + +renderHTML({ HTMLAttributes }) { + return ['a', mergeAttributes(HTMLAttributes, { rel: this.options.rel }), 0] +}, +``` + +### Parse HTML + +The `parseHTML()` function tries to load the editor document from HTML. The function gets the HTML DOM element passed as a parameter, and is expected to return an object with attributes and their values. Here is a simplified example from the [`Bold`](/editor/extensions/marks/bold) mark: + +```js +parseHTML() { + return [ + { + tag: 'strong', + }, + ] +}, +``` + +This defines a rule to convert all `` tags to `Bold` marks. But you can get more advanced with this, here is the full example from the extension: + +```js +parseHTML() { + return [ + // + { + tag: 'strong', + }, + // + { + tag: 'b', + getAttrs: node => node.style.fontWeight !== 'normal' && null, + }, + // and + { + style: 'font-weight', + getAttrs: value => /^(bold(er)?|[5-9]\d{2,})$/.test(value as string) && null, + }, + ] +}, +``` + +This checks for `` and `` tags, and any HTML tag with an inline style setting the `font-weight` to bold. + +As you can see, you can optionally pass a `getAttrs` callback, to add more complex checks, for example for specific HTML attributes. The callback gets passed the HTML DOM node, except when checking for the `style` attribute, then it’s the value. + +You are wondering what’s that `&& null` doing? [ProseMirror expects `null` or `undefined` if the check is successful.](https://prosemirror.net/docs/ref/version/0.18.0.html#model.ParseRule.getAttrs) + +[Pass `priority` to a rule](https://prosemirror.net/docs/ref/version/0.18.0.html#model.ParseRule.priority) to resolve conflicts with other extensions, for example if you build a custom extension which looks for paragraphs with a class attribute, but you already use the default paragraph extension. + +#### Using getAttrs + +The `getAttrs` function you’ve probably noticed in the example has two purposes: + +1. Check the HTML attributes to decide whether a rule matches (and a mark or node is created from that HTML). When the function returns `false`, it’s not matching. +2. Get the DOM Element and use the HTML attributes to set your mark or node attributes accordingly: + +```js +parseHTML() { + return [ + { + tag: 'span', + getAttrs: element => { + // Check if the element has an attribute + element.hasAttribute('style') + // Get an inline style + element.style.color + // Get a specific attribute + element.getAttribute('data-color') + }, + }, + ] +}, +``` + +You can return an object with the attribute as the key and the parsed value to set your mark or node attribute. We would recommend to use the `parseHTML` inside `addAttributes()`, though. That will keep your code cleaner. + +```js +addAttributes() { + return { + color: { + // Set the color attribute according to the value of the `data-color` attribute + parseHTML: element => element.getAttribute('data-color'), + } + } +}, +``` + +Read more about `getAttrs` and all other `ParseRule` properties in the [ProseMirror reference](https://prosemirror.net/docs/ref/#model.ParseRule). + +### Commands + +```js +import Paragraph from '@tiptap/extension-paragraph' + +const CustomParagraph = Paragraph.extend({ + addCommands() { + return { + paragraph: + () => + ({ commands }) => { + return commands.setNode('paragraph') + }, + } + }, +}) +``` + + + To access other commands inside `addCommands` use the `commands` parameter that’s passed to it. + + +### Keyboard shortcuts + +Most core extensions come with sensible keyboard shortcut defaults. Depending on what you want to build, you’ll likely want to change them though. With the `addKeyboardShortcuts()` method you can overwrite the predefined shortcut map: + +```js +// Change the bullet list keyboard shortcut +import BulletList from '@tiptap/extension-bullet-list' + +const CustomBulletList = BulletList.extend({ + addKeyboardShortcuts() { + return { + 'Mod-l': () => this.editor.commands.toggleBulletList(), + } + }, +}) +``` + +### Input rules + +With input rules you can define regular expressions to listen for user inputs. They are used for markdown shortcuts, or for example to convert text like `(c)` to a `©` (and many more) with the [`Typography`](/editor/extensions/functionality/typography) extension. Use the `markInputRule` helper function for marks, and the `nodeInputRule` for nodes. + +By default text between two tildes on both sides is transformed to ~~striked text~~. If you want to think one tilde on each side is enough, you can overwrite the input rule like this: + +```js +// Use the ~single tilde~ markdown shortcut +import Strike from '@tiptap/extension-strike' +import { markInputRule } from '@tiptap/core' + +// Default: +// const inputRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))$/ + +// New: +const inputRegex = /(?:^|\s)((?:~)((?:[^~]+))(?:~))$/ + +const CustomStrike = Strike.extend({ + addInputRules() { + return [ + markInputRule({ + find: inputRegex, + type: this.type, + }), + ] + }, +}) +``` + +### Paste rules + +Paste rules work like input rules (see above) do. But instead of listening to what the user types, they are applied to pasted content. + +There is one tiny difference in the regular expression. Input rules typically end with a `$` dollar sign (which means “asserts position at the end of a line”), paste rules typically look through all the content and don’t have said `$` dollar sign. + +Taking the example from above and applying it to the paste rule would look like the following example. + +```js +// Check pasted content for the ~single tilde~ markdown syntax +import Strike from '@tiptap/extension-strike' +import { markPasteRule } from '@tiptap/core' + +// Default: +// const pasteRegex = /(?:^|\s)((?:~~)((?:[^~]+))(?:~~))/g + +// New: +const pasteRegex = /(?:^|\s)((?:~)((?:[^~]+))(?:~))/g + +const CustomStrike = Strike.extend({ + addPasteRules() { + return [ + markPasteRule({ + find: pasteRegex, + type: this.type, + }), + ] + }, +}) +``` + +### Events + +You can even move your [event listeners](/editor/api/events) to a separate extension. Here is an example with listeners for all events: + +```js +import { Extension } from '@tiptap/core' + +const CustomExtension = Extension.create({ + onCreate() { + // The editor is ready. + }, + onUpdate() { + // The content has changed. + }, + onSelectionUpdate({ editor }) { + // The selection has changed. + }, + onTransaction({ transaction }) { + // The editor state has changed. + }, + onFocus({ event }) { + // The editor is focused. + }, + onBlur({ event }) { + // The editor isn’t focused anymore. + }, + onDestroy() { + // The editor is being destroyed. + }, +}) +``` + +### What’s available in this? + +Those extensions aren’t classes, but you still have a few important things available in `this` everywhere in the extension. + +```js +// Name of the extension, for example 'bulletList' +this.name + +// Editor instance +this.editor + +// ProseMirror type +this.type + +// Object with all settings +this.options + +// Everything that’s in the extended extension +this.parent +``` + +### ProseMirror Plugins (Advanced) + +After all, Tiptap is built on ProseMirror and ProseMirror has a pretty powerful plugin API, too. To access that directly, use `addProseMirrorPlugins()`. + +#### Existing plugins + +You can wrap existing ProseMirror plugins in Tiptap extensions like shown in the example below. + +```js +import { history } from '@tiptap/pm/history' + +const History = Extension.create({ + addProseMirrorPlugins() { + return [ + history(), + // … + ] + }, +}) +``` + +#### Access the ProseMirror API + +To hook into events, for example a click, double click or when content is pasted, you can pass [event handlers](https://prosemirror.net/docs/ref/#view.EditorProps) to `editorProps` on the [editor](/editor/api/events). + +Or you can add them to a Tiptap extension like shown in the below example. + +```js +import { Extension } from '@tiptap/core' +import { Plugin, PluginKey } from '@tiptap/pm/state' + +export const EventHandler = Extension.create({ + name: 'eventHandler', + + addProseMirrorPlugins() { + return [ + new Plugin({ + key: new PluginKey('eventHandler'), + props: { + handleClick(view, pos, event) { + /* … */ + }, + handleDoubleClick(view, pos, event) { + /* … */ + }, + handlePaste(view, event, slice) { + /* … */ + }, + // … and many, many more. + // Here is the full list: https://prosemirror.net/docs/ref/#view.EditorProps + }, + }), + ] + }, +}) +``` + +### Node views (Advanced) + +For advanced use cases, where you need to execute JavaScript inside your nodes, for example to render a sophisticated interface around an image, you need to learn about node views. + +They are really powerful, but also complex. In a nutshell, you need to return a parent DOM element, and a DOM element where the content should be rendered in. Look at the following, simplified example: + +```js +import Image from '@tiptap/extension-image' + +const CustomImage = Image.extend({ + addNodeView() { + return () => { + const container = document.createElement('div') + + container.addEventListener('click', (event) => { + alert('clicked on the container') + }) + + const content = document.createElement('div') + container.append(content) + + return { + dom: container, + contentDOM: content, + } + } + }, +}) +``` + +There is a whole lot to learn about node views, so head over to the [dedicated section in our guide about node views](/editor/extensions/custom-extensions/node-views) for more information. If you are looking for a real-world example, look at the source code of the [`TaskItem`](/editor/extensions/nodes/task-item) node. This is using a node view to render the checkboxes. diff --git a/src/content/editor/extensions/custom-extensions/index.mdx b/src/content/editor/extensions/custom-extensions/index.mdx new file mode 100644 index 0000000..bd65fde --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/index.mdx @@ -0,0 +1,67 @@ +--- +title: How to develop a custom extension +meta: + title: Custom extension | Tiptap Editor Docs + description: Customize and create extensions in Tiptap to extend your editor with new features and functionalities. More in the docs! + category: Editor +--- + +import Link from 'next/link' +import * as CardGrid from '@/components/CardGrid' +import { Tag } from '@/components/ui/Tag' +import { Section } from '@/components/ui/Section' + +One of the strengths of Tiptap is its extendability. You don’t depend on the provided extensions, it is intended to extend the editor to your liking. + +With custom extensions you can add new content types and new functionalities, on top of what already exists or from scratch. Let’s start with a few common examples of how you can extend existing nodes, marks and extensions. + +You’ll learn how you start from scratch in the [Create new](/editor/extensions/custom-extensions/create-new) page, but you’ll need the same knowledge for extending existing and creating new extensions. + +### Customize and create extensions + + + + + Extend extensions +
    + Customize and add to an existing extension +
    + + Extensions + + +
    + + + Create extension +
    + Create a new extensions from scratch +
    + + Extensions + + +
    + + + Create nodes +
    + Create custom and interactive nodes +
    + + Nodes + + +
    + + + Node examples +
    + Learn from custom node view examples +
    + + Nodes + + +
    +
    diff --git a/src/content/editor/extensions/custom-extensions/node-views/examples.mdx b/src/content/editor/extensions/custom-extensions/node-views/examples.mdx new file mode 100644 index 0000000..5906dcd --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/node-views/examples.mdx @@ -0,0 +1,27 @@ +--- +title: Node view examples +meta: + title: Node view examples | Tiptap Editor Docs + description: Review customizable node view examples and create drag handles, dynamic tables of contents, and interactive drawing tools. More in the docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Node views enable you to fully customize your nodes. We are collecting a few different examples here. Feel free to copy them and start building on them. + +Keep in mind that those are just examples to get you started, not officially supported extensions. We don’t have tests for them, and don’t plan to maintain them with the same attention as we do with official extensions. + +## Drag handles + +Drag handles aren’t that easy to add. We are still on the lookout what’s the best way to add them. Official support will come at some point, but there’s no timeline yet. + + + +## Drawing in the editor + +The drawing example shows a SVG that enables you to draw inside the editor. + + + +It’s not working very well with the Collaboration extension. It’s sending all data on every change, which can get pretty huge with Y.js. If you plan to use those two in combination, you need to improve it or your WebSocket backend will melt. diff --git a/src/content/editor/extensions/custom-extensions/node-views/index.mdx b/src/content/editor/extensions/custom-extensions/node-views/index.mdx new file mode 100644 index 0000000..727b57c --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/node-views/index.mdx @@ -0,0 +1,115 @@ +--- +title: Create a custom node view +meta: + description: Customize and create nodes in your Tiptap editor for editable and non-editable content with interactive node views. More in the docs! + title: Node views | Tiptap Editor Docs + category: Editor +--- + +import { Callout } from '@/components/ui/Callout' + +Node views are the best thing since sliced bread, at least if you are a fan of customization (and bread). With node views you can add interactive nodes to your editor. That can literally be everything. If you can write it in JavaScript, you can use it in your editor. + +Node views are amazing to improve the in-editor experience, but can also be used in a read-only instance of Tiptap. They are unrelated to the HTML output by design, so you have full control about the in-editor experience _and_ the output. + +## Different types of node views + +Depending on what you would like to build, node views work a little bit different and can have their verify specific capabilities, but also pitfalls. The main question is: How should your custom node look like? + +### Editable text + +Yes, node views can have editable text, just like a regular node. That’s simple. The cursor will exactly behave like you would expect it from a regular node. Existing commands work very well with those nodes. + +```html +
    +

    text

    + text +

    text

    +
    +``` + +That’s how the [`TaskItem`](/editor/extensions/nodes/task-item) node works. + +### Non-editable text + +Nodes can also have text, which is not editable. The cursor can’t jump into those, but you don’t want that anyway. + +Tiptap adds a `contenteditable="false"` to those by default. + +```html +
    +

    text

    + text +

    text

    +
    +``` + +That’s how you could render mentions, which shouldn’t be editable. Users can add or delete them, but not delete single characters. + +Statamic uses those for their Bard editor, which renders complex modules inside Tiptap, which can have their own text inputs. + +### Mixed content + +You can even mix non-editable and editable text. That’s great to build complex things, and still use marks like bold and italic inside the editable content. + +**BUT**, if there are other elements with non-editable text in your node view, the cursor can jump there. You can improve that with manually adding `contenteditable="false"` to the specific parts of your node view. + +```html +
    +

    text

    + +
    non-editable text
    +
    editable text
    +
    +

    text

    +
    +``` + +## Markup + +But what happens if you [access the editor content](/guides/output-json-html)? If you’re working with HTML, you’ll need to tell Tiptap how your node should be serialized. + +The editor **does not** export the rendered JavaScript node, and for a lot of use cases you wouldn’t want that anyway. + +Let’s say you have a node view which lets users add a video player and configure the appearance (autoplay, controls, …). You want the interface to do that in the editor, not in the output of the editor. The output of the editor should probably only have the video player. + +I know, I know, it’s not that easy. Just keep in mind, that you‘re in full control of the rendering inside the editor and of the output. + + + That doesn’t apply to JSON. In JSON, everything is stored as an object. There is no need to + configure the “translation” to and from JSON. + + +### Render HTML + +Okay, you’ve set up your node with an interactive node view and now you want to control the output. Even if your node view is pretty complex, the rendered HTML can be simple: + +```js +renderHTML({ HTMLAttributes }) { + return ['my-custom-node', mergeAttributes(HTMLAttributes)] +}, + +// Output: +``` + +Make sure it’s something distinguishable, so it’s easier to restore the content from the HTML. If you just need something generic markup like a `
    ` consider to add a `data-type="my-custom-node"`. + +### Parse HTML + +The same applies to restoring the content. You can configure what markup you expect, that can be something completely unrelated to the node view markup. It just needs to contain all the information you want to restore. + +Attributes are automagically restored, if you registered them through [`addAttributes`](/editor/extensions/custom-extensions/extend-existing#attributes). + +```js +// Input: + +parseHTML() { + return [{ + tag: 'my-custom-node', + }] +}, +``` + +### Render JavaScript/Vue/React + +But what if you want to render your actual JavaScript/Vue/React code? Consider using Tiptap to render your output. Just set the editor to `editable: false` and no one will notice you’re using an editor to render the content. :-) diff --git a/src/content/editor/extensions/custom-extensions/node-views/javascript.mdx b/src/content/editor/extensions/custom-extensions/node-views/javascript.mdx new file mode 100644 index 0000000..1fe0dd2 --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/node-views/javascript.mdx @@ -0,0 +1,128 @@ +--- +title: Node views with JavaScript +meta: + title: JavaScript node views | Tiptap Editor Docs + description: Use Vanilla JavaScript to build custom node views in Tiptap. Direct manipulation of node properties and interactive content. + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Using frameworks like Vue or React can feel too complex, if you’re used to work without those two. Good news: You can use Vanilla JavaScript in your node views. There is just a little bit you need to know, but let’s go through this one by one. + +## Render a node view with JavaScript + +Here is what you need to do to render a node view inside your editor: + +1. [Create a node extension](/editor/extensions/custom-extensions/create-new) +2. Register a new node view with `addNodeView()` +3. Write your render function +4. [Configure Tiptap to use your new node extension](/editor/getting-started/configure) + +This is how your node extension could look like: + +```js +import { Node } from '@tiptap/core' + +export default Node.create({ + // configuration … + + addNodeView() { + return ({ editor, node, getPos, HTMLAttributes, decorations, extension }) => { + const dom = document.createElement('div') + + dom.innerHTML = 'Hello, I’m a node view!' + + return { + dom, + } + } + }, +}) +``` + +Got it? Let’s see it in action. Feel free to copy the below example to get started. + + + +That node view even interacts with the editor. Time to see how that is wired up. + +## Access node attributes + +The editor passes a few helpful things to your render function. One of them is the `node` prop. This one enables you to access node attributes in your node view. Let’s say you have [added an attribute](/editor/extensions/custom-extensions/extend-existing#attributes) named `count` to your node extension. You could access the attribute like this: + +```js +addNodeView() { + return ({ node }) => { + console.log(node.attrs.count) + + // … + } +} +``` + +## Update node attributes + +You can even update node attributes from your node view, with the help of the `getPos` prop passed to your render function. Dispatch a new transaction with an object of the updated attributes: + +```js +addNodeView() { + return ({ editor, node, getPos }) => { + const { view } = editor + + // Create a button … + const button = document.createElement('button') + button.innerHTML = `This button has been clicked ${node.attrs.count} times.` + + // … and when it’s clicked … + button.addEventListener('click', () => { + if (typeof getPos === 'function') { + // … dispatch a transaction, for the current position in the document … + view.dispatch(view.state.tr.setNodeMarkup(getPos(), undefined, { + count: node.attrs.count + 1, + })) + + // … and set the focus back to the editor. + editor.commands.focus() + } + }) + + // … + } +} +``` + +Does seem a little bit too complex? Consider using [React](/editor/extensions/custom-extensions/node-views/react) or [Vue](/editor/extensions/custom-extensions/node-views/vue), if you have one of those in your project anyway. It get’s a little bit easier with those two. + +## Adding a content editable + +To add editable content to your node view, you need to pass a `contentDOM`, a container element for the content. Here is a simplified version of a node view with non-editable and editable text content: + +```js +// Create a container for the node view +const dom = document.createElement('div') + +// Give other elements containing text `contentEditable = false` +const label = document.createElement('span') +label.innerHTML = 'Node view' +label.contentEditable = false + +// Create a container for the content +const content = document.createElement('div') + +// Append all elements to the node view container +dom.append(label, content) + +return { + // Pass the node view container … + dom, + // … and the content container: + contentDOM: content, +} +``` + +Got it? You’re free to do anything you like, as long as you return a container for the node view and another one for the content. Here is the above example in action: + + + +Keep in mind that this content is rendered by Tiptap. That means you need to tell what kind of content is allowed, for example with `content: 'inline*'` in your node extension (that’s what we use in the above example). diff --git a/src/content/editor/extensions/custom-extensions/node-views/react.mdx b/src/content/editor/extensions/custom-extensions/node-views/react.mdx new file mode 100644 index 0000000..efd0729 --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/node-views/react.mdx @@ -0,0 +1,150 @@ +--- +title: Node views with React +meta: + title: React node views | Tiptap Editor Docs + description: Use React to build custom node views in Tiptap. Direct manipulation of node properties and interactive content. + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Using Vanilla JavaScript can feel complex if you are used to work in React. Good news: You can use regular React components in your node views, too. There is just a little bit you need to know, but let’s go through this one by one. + +## Render a React component + +Here is what you need to do to render React components inside your editor: + +1. [Create a node extension](/editor/extensions/custom-extensions) +2. Create a React component +3. Pass that component to the provided `ReactNodeViewRenderer` +4. Register it with `addNodeView()` +5. [Configure Tiptap to use your new node extension](/editor/getting-started/configure) + +This is how your node extension could look like: + +```js +import { Node } from '@tiptap/core' +import { ReactNodeViewRenderer } from '@tiptap/react' +import Component from './Component.jsx' + +export default Node.create({ + // configuration … + + addNodeView() { + return ReactNodeViewRenderer(Component) + }, +}) +``` + +There is a little bit of magic required to make this work. But don’t worry, we provide a wrapper component you can use to get started easily. Don’t forget to add it to your custom React component, like shown below: + +```html + React Component +``` + +Got it? Let’s see it in action. Feel free to copy the below example to get started. + + + +That component doesn’t interact with the editor, though. Time to wire it up. + +## Access node attributes + +The `ReactNodeViewRenderer` which you use in your node extension, passes a few very helpful props to your custom React component. One of them is the `node` prop. Let’s say you have [added an attribute](/editor/extensions/custom-extensions/extend-existing#attributes) named `count` to your node extension (like we did in the above example) you could access it like this: + +```js +props.node.attrs.count +``` + +## Update node attributes + +You can even update node attributes from your node, with the help of the `updateAttributes` prop passed to your component. Pass an object with updated attributes to the `updateAttributes` prop: + +```js +export default (props) => { + const increase = () => { + props.updateAttributes({ + count: props.node.attrs.count + 1, + }) + } + + // … +} +``` + +And yes, all of that is reactive, too. A pretty seamless communication, isn’t it? + +## Adding a content editable + +There is another component called `NodeViewContent` which helps you adding editable content to your node view. Here is an example: + +```jsx +import React from 'react' +import { NodeViewWrapper, NodeViewContent } from '@tiptap/react' + +export default () => { + return ( + + + React Component + + + + + ) +} +``` + +You don’t need to add those `className` attributes, feel free to remove them or pass other class names. Try it out in the following example: + + + +Keep in mind that this content is rendered by Tiptap. That means you need to tell what kind of content is allowed, for example with `content: 'inline*'` in your node extension (that’s what we use in the above example). + +The `NodeViewWrapper` and `NodeViewContent` components render a `
    ` HTML tag (`` for inline nodes), but you can change that. For example `` should render a paragraph. One limitation though: That tag must not change during runtime. + +## Changing the default content tag for a node view + +By default a node view rendered by `ReactNodeViewRenderer` will always have a wrapping `div` inside. If you want to change the type of this node, you can the `contentDOMElementTag` to the `ReactNodeViewRenderer` options: + +```js +// this will turn the div into a header tag +return ReactNodeViewRenderer(Component, { contentDOMElementTag: 'header' }) +``` + +## Changing the wrapping DOM element + +To change the wrapping DOM elements tag, you can use the `contentDOMElementTag` option on the `ReactNodeViewRenderer` function to change the default tag name. + +```js +import { Node } from '@tiptap/core' +import { ReactNodeViewRenderer } from '@tiptap/react' +import Component from './Component.jsx' + +export default Node.create({ + // configuration … + + addNodeView() { + return ReactNodeViewRenderer(Component, { contentDOMElementTag: 'main' }) + }, +}) +``` + +## All available props + +Here is the full list of what props you can expect: + +| Prop | Description | +| ------------------ | --------------------------------------------------------------- | +| editor | The editor instance | +| node | The current node | +| decorations | An array of decorations | +| selected | `true` when there is a `NodeSelection` at the current node view | +| extension | Access to the node extension, for example to get options | +| getPos() | Get the document position of the current node | +| updateAttributes() | Update attributes of the current node | +| deleteNode() | Delete the current node | + +## Dragging + +To make your node views draggable, set `draggable: true` in the extension and add `data-drag-handle` to the DOM element that should function as the drag handle. diff --git a/src/content/editor/extensions/custom-extensions/node-views/vue.mdx b/src/content/editor/extensions/custom-extensions/node-views/vue.mdx new file mode 100644 index 0000000..fa3de04 --- /dev/null +++ b/src/content/editor/extensions/custom-extensions/node-views/vue.mdx @@ -0,0 +1,244 @@ +--- +title: Node views with Vue +meta: + title: Vue node views | Tiptap Editor Docs + description: Use Vue to build custom node views in Tiptap. Direct manipulation of node properties and interactive content. + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Using Vanilla JavaScript can feel complex if you are used to work in Vue. Good news: You can use regular Vue components in your node views, too. There is just a little bit you need to know, but let’s go through this one by one. + +## Render a Vue component + +Here is what you need to do to render Vue components inside your editor: + +1. [Create a node extension](/editor/extensions/custom-extensions) +2. Create a Vue component +3. Pass that component to the provided `VueNodeViewRenderer` +4. Register it with `addNodeView()` +5. [Configure Tiptap to use your new node extension](/editor/getting-started/configure) + +This is how your node extension could look like: + +```js +import { Node } from '@tiptap/core' +import { VueNodeViewRenderer } from '@tiptap/vue-2' +import Component from './Component.vue' + +export default Node.create({ + // configuration … + + addNodeView() { + return VueNodeViewRenderer(Component) + }, +}) +``` + +There is a little bit of magic required to make this work. But don’t worry, we provide a wrapper component you can use to get started easily. Don’t forget to add it to your custom Vue component, like shown below: + +```html + +``` + +Got it? Let’s see it in action. Feel free to copy the below example to get started. + + + +That component doesn’t interact with the editor, though. Time to wire it up. + +## Access node attributes + +The `VueNodeViewRenderer` which you use in your node extension, passes a few very helpful props to your custom Vue component. One of them is the `node` prop. Add this snippet to your Vue component to directly access the node: + +```js +props: { + node: { + type: Object, + required: true, + }, +}, +``` + +That enables you to access node attributes in your Vue component. Let’s say you have [added an attribute](/editor/extensions/custom-extensions/extend-existing#attributes) named `count` to your node extension (like we did in the above example) you could access it like this: + +```js +this.node.attrs.count +``` + +## Update node attributes + +You can even update node attributes from your node, with the help of the `updateAttributes` prop passed to your component. Just add this snippet to your component: + +```js +props: { + updateAttributes: { + type: Function, + required: true, + }, +}, +``` + +Pass an object with updated attributes to the function: + +```js +this.updateAttributes({ + count: this.node.attrs.count + 1, +}) +``` + +And yes, all of that is reactive, too. A pretty seamless communication, isn’t it? + +## Adding a content editable + +There is another component called `NodeViewContent` which helps you adding editable content to your node view. Here is an example: + +```html + + + +``` + +You don’t need to add those `class` attributes, feel free to remove them or pass other class names. Try it out in the following example: + + + +Keep in mind that this content is rendered by Tiptap. That means you need to tell what kind of content is allowed, for example with `content: 'inline*'` in your node extension (that’s what we use in the above example). + +The `NodeViewWrapper` and `NodeViewContent` components render a `
    ` HTML tag (`` for inline nodes), but you can change that. For example `` should render a paragraph. One limitation though: That tag must not change during runtime. + +## All available props + +For advanced use cases, we pass a few more props to the component. + +### editor + +The editor instance. + +### node + +Access the current node. + +### decorations + +An array of decorations. + +### selected + +`true` when there is a `NodeSelection` at the current node view. + +### extension + +Access to the node extension, for example to get options. + +### getPos() + +Get the document position of the current node. + +### updateAttributes() + +Update attributes of the current node. + +### deleteNode() + +Delete the current node. + +Here is the full list of what props you can expect: + +```html + + + +``` + +If you just want to have all (and TypeScript support) you can import all props: + +```js +// Vue 3 +import { defineComponent } from 'src/content/editor/extensions/custom-extensions/node-views/vue.mdx' +import { nodeViewProps } from '@tiptap/vue-3' +export default defineComponent({ + props: nodeViewProps, +}) + +// Vue 2 +import Vue from 'src/content/editor/extensions/custom-extensions/node-views/vue.mdx' +import { nodeViewProps } from '@tiptap/vue-2' +export default Vue.extend({ + props: nodeViewProps, +}) +``` + +## Dragging + +To make your node views draggable, set `draggable: true` in the extension and add `data-drag-handle` to the DOM element that should function as the drag handle. + + diff --git a/src/content/editor/extensions/functionality/bubble-menu.mdx b/src/content/editor/extensions/functionality/bubble-menu.mdx new file mode 100644 index 0000000..b6f2ad3 --- /dev/null +++ b/src/content/editor/extensions/functionality/bubble-menu.mdx @@ -0,0 +1,158 @@ +--- +title: BubbleMenu extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-bubble-menu.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-bubble-menu + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-bubble-menu.svg + url: https://npmcharts.com/compare/@tiptap/extension-bubble-menu?minimal=true + label: Downloads +meta: + title: BubbleMenu extension | Tiptap Editor Docs + description: Add a menu toolbar that pops up above your Tiptap editor’s text content. Learn more in our Documentation! + category: Editor +extension: + name: Bubble Menu + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-bubble-menu + description: Add a toolbar that pops up above the text. Great to apply inline formatting. + type: extension + icon: MessageCircle +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension will make a contextual menu appear near a selection of text. Use it to let users apply [marks](/editor/extensions/marks) to their text selection. + +As always, the markup and styling is totally up to you. + + + +## Install + +```bash +npm install @tiptap/extension-bubble-menu +``` + +## Settings + +### element + +The DOM element that contains your menu. + +Type: `HTMLElement` + +Default: `null` + +### updateDelay + +The `BubbleMenu` debounces the `update` method to allow the bubble menu to not be updated on every selection update. This can be controlled in milliseconds. +The BubbleMenuPlugin will come with a default delay of 250ms. This can be deactivated, by setting the delay to `0` which deactivates the debounce. + +Type: `Number` + +Default: `undefined` + +### tippyOptions + +Under the hood, the `BubbleMenu` uses [tippy.js](https://atomiks.github.io/tippyjs/v6/all-props/). You can directly pass options to it. + +Type: `Object` + +Default: `{}` + +### pluginKey + +The key for the underlying ProseMirror plugin. Make sure to use different keys if you add more than one instance. + +Type: `string | PluginKey` + +Default: `'bubbleMenu'` + +### shouldShow + +A callback to control whether the menu should be shown or not. + +Type: `(props) => boolean` + +## Source code + +[packages/extension-bubble-menu/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-bubble-menu/) + +## Use the extension + +### JavaScript + +```js +import { Editor } from '@tiptap/core' +import BubbleMenu from '@tiptap/extension-bubble-menu' + +new Editor({ + extensions: [ + BubbleMenu.configure({ + element: document.querySelector('.menu'), + }), + ], +}) +``` + +### Other frameworks + +Check out the demo at the [top of this page](#) to see how to integrate the bubble menu extension with React or Vue. + +### Custom logic + +Customize the logic for showing the menu with the `shouldShow` option. For components, `shouldShow` can be passed as a prop. + +```js +BubbleMenu.configure({ + shouldShow: ({ editor, view, state, oldState, from, to }) => { + // only show the bubble menu for images and links + return editor.isActive('image') || editor.isActive('link') + }, +}) +``` + +### Multiple menus + +Use multiple menus by setting an unique `pluginKey`. + +```js +import { Editor } from '@tiptap/core' +import BubbleMenu from '@tiptap/extension-bubble-menu' + +new Editor({ + extensions: [ + BubbleMenu.configure({ + pluginKey: 'bubbleMenuOne', + element: document.querySelector('.menu-one'), + }), + BubbleMenu.configure({ + pluginKey: 'bubbleMenuTwo', + element: document.querySelector('.menu-two'), + }), + ], +}) +``` + +Alternatively you can pass a ProseMirror `PluginKey`. + +```js +import { Editor } from '@tiptap/core' +import BubbleMenu from '@tiptap/extension-bubble-menu' +import { PluginKey } from '@tiptap/pm/state' + +new Editor({ + extensions: [ + BubbleMenu.configure({ + pluginKey: new PluginKey('bubbleMenuOne'), + element: document.querySelector('.menu-one'), + }), + BubbleMenu.configure({ + pluginKey: new PluginKey('bubbleMenuTwo'), + element: document.querySelector('.menu-two'), + }), + ], +}) +``` diff --git a/src/content/editor/extensions/functionality/character-count.mdx b/src/content/editor/extensions/functionality/character-count.mdx new file mode 100644 index 0000000..c393ae9 --- /dev/null +++ b/src/content/editor/extensions/functionality/character-count.mdx @@ -0,0 +1,91 @@ +--- +title: CharacterCount extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-character-count.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-character-count + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-character-count.svg + url: https://npmcharts.com/compare/@tiptap/extension-character-count?minimal=true + label: Downloads +meta: + title: CharacterCount extension | Tiptap Editor Docs + description: Count and limit the number of characters in your editor with the Character Count extension. Learn more in our docs! + category: Editor +extension: + name: Character Count + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-character-count + description: Limit the number of characters in your editor, or at least count them. + type: extension + icon: Calculator +--- + +import { CodeDemo } from '@/components/CodeDemo' + +The `CharacterCount` extension limits the number of allowed characters to a specific length and is able to return the number of characters and words. That’s it, that’s all. + + + +## Install + +```bash +npm install @tiptap/extension-character-count +``` + +## Settings + +### limit + +The maximum number of characters that should be allowed. + +Default: `null` + +```js +CharacterCount.configure({ + limit: 240, +}) +``` + +### mode + +The mode by which the size is calculated. + +Default: `'textSize'` + +```js +CharacterCount.configure({ + mode: 'nodeSize', +}) +``` + +## Storage + +### characters() + +Get the number of characters for the current document. + +```js +editor.storage.characterCount.characters() + +// Get the size of a specific node. +editor.storage.characterCount.characters({ node: someCustomNode }) + +// Overwrite the default `mode`. +editor.storage.characterCount.characters({ mode: 'nodeSize' }) +``` + +### words() + +Get the number of words for the current document. + +```js +editor.storage.characterCount.words() + +// Get the number of words for a specific node. +editor.storage.characterCount.words({ node: someCustomNode }) +``` + +## Source code + +[packages/extension-character-count/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-character-count/) diff --git a/src/content/editor/extensions/functionality/collaboration-cursor.mdx b/src/content/editor/extensions/functionality/collaboration-cursor.mdx new file mode 100644 index 0000000..f021556 --- /dev/null +++ b/src/content/editor/extensions/functionality/collaboration-cursor.mdx @@ -0,0 +1,110 @@ +--- +title: CollaborationCursor extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-collaboration-cursor.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-collaboration-cursor + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-collaboration-cursor.svg + url: https://npmcharts.com/compare/@tiptap/extension-collaboration-cursor?minimal=true + label: Downloads +meta: + title: CollaborationCursor extension | Tiptap Editor Docs + description: Use the Collaboration Cursor extension in Tiptap to show other user’s cursors and their names while they type. More in the docs! + category: Editor +extension: + name: Collaboration Cursor + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-collaboration-cursor + description: 'See other user’s cursors and their name while they type.' + type: extension + icon: MousePointer2 +--- + +import { ArrowRightIcon } from 'lucide-react' +import Link from 'next/link' +import * as CtaBox from '@/components/CtaBox' +import { Button } from '@/components/ui/Button' +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +This extension adds information about all connected users (like their name and a specified color), their current cursor position and their text selection (if there’s one). + +It requires a collaborative Editor, so make sure to check out the [Tiptap Collaboration Docs](/collaboration/getting-started/overview) for a fully hosted or on-premises collaboration server solution. + + + The content of this editor is shared with other users. + + + + + +Open this page in multiple browser windows to test it. + +## Install + +```bash +npm install @tiptap/extension-collaboration-cursor +``` + +This extension requires the [`Collaboration`](/collaboration/getting-started/overview) extension. + +## Settings + +### provider + +A Y.js network provider, for example a [Tiptap Collaboration](/collaboration/getting-started/overview) instance. + +Default: `null` + +### user + +Attributes of the current user, assumes to have a name and a color, but can be used with any attribute. The values are synced with all other connected clients. + +Default: `{ user: null, color: null }` + +### render + +A render function for the cursor, look at [the extension source code](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-collaboration-cursor/) for an example. + +### selectionRender + +A render function for the selection, look at [the extension source code](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-collaboration-cursor/) for an example. + +## Commands + +### updateUser() + +Pass an object with updated attributes of the current user. It expects a `name` and a `color`, but you can add additional fields, too. + +```js +editor.commands.updateUser({ + name: 'John Doe', + color: '#000000', + avatar: 'https://unavatar.io/github/ueberdosis', +}) +``` + +## Source code + +[packages/extension-collaboration-cursor/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-collaboration-cursor/) + + + Collaboration + + Fasten your seatbelts! Make your rich text editor collaborative with Tiptap Collaboration. + + + Real-time everything + Offline-first & conflict free + Managed and hosted by us or on your premises + + + + + diff --git a/src/content/editor/extensions/functionality/collaboration.mdx b/src/content/editor/extensions/functionality/collaboration.mdx new file mode 100644 index 0000000..b45fe85 --- /dev/null +++ b/src/content/editor/extensions/functionality/collaboration.mdx @@ -0,0 +1,136 @@ +--- +title: Collaboration extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-collaboration.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-collaboration + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-collaboration.svg + url: https://npmcharts.com/compare/@tiptap/extension-collaboration?minimal=true + label: Downloads +meta: + category: Editor + title: Collaboration extension | Tiptap Editor Docs + description: Learn how to set up and use collaborative editing with the Collaboration extension in Tiptap. +extension: + name: Collaboration + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-collaboration + description: Collaborative text editing can be fricking complex, but it doesn’t have to be that way. + type: extension + icon: Radio +--- + +import { ArrowRightIcon } from 'lucide-react' +import Link from 'next/link' +import * as CtaBox from '@/components/CtaBox' +import { Button } from '@/components/ui/Button' +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +This small guide quickly shows how to integrate basic collaboration functionality into your editor. For a proper collaboration integration, review the documentation of [Tiptap Collaboration](/collaboration/getting-started/overview), which is a cloud and on-premises collaboration server solution. + + + +## Install + + For more detailed information on how to integrate, install, and configure the Collaboration extension with the Tiptap Collaboration product, please visit our [feature page](/collaboration/getting-started/overview). + + +```bash +npm install @tiptap/extension-collaboration yjs y-websocket y-prosemirror +``` + +## Settings + +### document + +An initialized Y.js document. + +Default: `null` + +```js +Collaboration.configure({ + document: new Y.Doc(), +}) +``` + +### field + +Name of a Y.js fragment, can be changed to sync multiple fields with one Y.js document. + +Default: `'default'` + +```js +Collaboration.configure({ + document: new Y.Doc(), + field: 'title', +}) +``` + +### fragment + +A raw Y.js fragment, can be used instead of `document` and `field`. + +Default: `null` + +```js +Collaboration.configure({ + fragment: new Y.Doc().getXmlFragment('body'), +}) +``` + +## Commands + +The `Collaboration` extension comes with its own history extension. Make sure to disable the default extension, if you’re working with the `StarterKit`. + +### undo() + +Undo the last change. + +```js +editor.commands.undo() +``` + +### redo() + +Redo the last change. + +```js +editor.commands.redo() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| undo() | Control + Z | Cmd + Z | +| redo() | Shift + Control + Z or Control + Y | Shift + Cmd + Z or Cmd + Y | + +## Source code + +[packages/extension-collaboration/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-collaboration/) + +## You Did It! + +Your editor is now collaborative! Invite your friends and start typing together 🙌🏻 If you want to continue building out your collaborative editing features, make sure to check out the [Tiptap Collaboration Docs](/collaboration/getting-started/overview) for a fully hosted on on-premises collaboration server solution. + + + Collaboration + + Fasten your seatbelts! Make your rich text editor collaborative with Tiptap Collaboration. + + + Real-time everything + Offline-first & conflict free + Managed and hosted by us or on your premises + + + + + diff --git a/src/content/editor/extensions/functionality/color.mdx b/src/content/editor/extensions/functionality/color.mdx new file mode 100644 index 0000000..d985b68 --- /dev/null +++ b/src/content/editor/extensions/functionality/color.mdx @@ -0,0 +1,72 @@ +--- +title: Color extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-color.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-color + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-color.svg + url: https://npmcharts.com/compare/@tiptap/extension-color?minimal=true + label: Downloads +meta: + title: Color extension | Tiptap Editor Docs + description: Add text color support to your Tiptap editor with the Color extension. Learn more in our documentation. + category: Editor +extension: + name: Color + link: + description: Add text color support to your editor (comes with unlimited colors). + type: extension + icon: Palette +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension enables you to set the font color in the editor. It uses the [`TextStyle`](/editor/extensions/marks/text-style) mark, which renders a `` tag (and only that). The font color is applied as inline style then, for example ``. + + + +## Install + +```bash +npm install @tiptap/extension-text-style @tiptap/extension-color +``` + +This extension requires the [`TextStyle`](/editor/extensions/marks/text-style) mark. + +## Settings + +### types + +A list of marks to which the color attribute should be applied to. + +Default: `['textStyle']` + +```js +Color.configure({ + types: ['textStyle'], +}) +``` + +## Commands + +### setColor() + +Applies the given font color as inline style. + +```js +editor.commands.setColor('#ff0000') +``` + +### unsetColor() + +Removes any font color. + +```js +editor.commands.unsetColor() +``` + +## Source code + +[packages/extension-color/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-color/) diff --git a/src/content/editor/extensions/functionality/comments.mdx b/src/content/editor/extensions/functionality/comments.mdx new file mode 100644 index 0000000..a7da545 --- /dev/null +++ b/src/content/editor/extensions/functionality/comments.mdx @@ -0,0 +1,27 @@ +--- +title: Integrate Comments into your editor +tags: + - type: pro + - type: new +meta: + category: Editor +extension: + name: Comments + description: Enable discussions in your collaborative documents - the way you want them. + type: extension + icon: MessageCircleMore + isPro: true + isNew: true + isCloud: true +--- +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +Integrate and manage comments within your editor using the Tiptap Comments extension. Create threads and comments in your editor or via REST API. + + + For more detailed information on how to integrate, install, and configure the Tiptap Comments extension, please visit our [feature page](/comments/getting-started/overview). + + + + diff --git a/src/content/editor/extensions/functionality/content-ai.mdx b/src/content/editor/extensions/functionality/content-ai.mdx new file mode 100644 index 0000000..ebbe969 --- /dev/null +++ b/src/content/editor/extensions/functionality/content-ai.mdx @@ -0,0 +1,29 @@ +--- +title: Integrate AI into your editor +tags: + - type: pro + - type: new +meta: + category: Editor +extension: + name: Content AI + description: Enhance your editor with AI-powered content generation and assistance features. + type: extension + icon: Pencil + isPro: true + isNew: true + isCloud: true +--- + + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +Integrate AI-powered editor commands and content generation using the Content AI extension. This extension add advanced AI text and image generation tools directly within your editor interface. + + + For more detailed information on how to integrate, install, and configure the Content AI extension, please visit our [feature page](/content-ai/getting-started/overview). + + + + diff --git a/src/content/editor/extensions/functionality/dropcursor.mdx b/src/content/editor/extensions/functionality/dropcursor.mdx new file mode 100644 index 0000000..397dc76 --- /dev/null +++ b/src/content/editor/extensions/functionality/dropcursor.mdx @@ -0,0 +1,76 @@ +--- +title: Dropcursor extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-dropcursor.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-dropcursor + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-dropcursor.svg + url: https://npmcharts.com/compare/@tiptap/extension-dropcursor?minimal=true + label: Downloads +meta: + title: Dropcursor extension | Tiptap Editor Docs + description: Add a cursor when dragging items inside the editor with the Dropcursor extension. Learn how to use it here in the Docs! + category: Editor +extension: + name: Dropcursor + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-dropcursor + description: Adds a cursor when something is dragged inside the editor. + type: extension + icon: FoldVertical +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension loads the [ProseMirror Dropcursor plugin](https://github.com/ProseMirror/prosemirror-dropcursor) by Marijn Haverbeke, which shows a cursor at the drop position when something is dragged into the editor. + +Note that Tiptap is headless, but the dropcursor needs CSS for its appearance. There are settings for the color and width, and you’re free to add a custom CSS class. + + + +## Install + +```bash +npm install @tiptap/extension-dropcursor +``` + +## Settings + +### color + +Color of the dropcursor. + +Default: `'currentColor'` + +```js +Dropcursor.configure({ + color: '#ff0000', +}) +``` + +### width + +Width of the dropcursor. + +Default: `1` + +```js +Dropcursor.configure({ + width: 2, +}) +``` + +### class + +One or multiple CSS classes that should be applied to the dropcursor. + +```js +Dropcursor.configure({ + class: 'my-custom-class', +}) +``` + +## Source code + +[packages/extension-dropcursor/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-dropcursor/) diff --git a/src/content/editor/extensions/functionality/filehandler.mdx b/src/content/editor/extensions/functionality/filehandler.mdx new file mode 100644 index 0000000..1a402d7 --- /dev/null +++ b/src/content/editor/extensions/functionality/filehandler.mdx @@ -0,0 +1,90 @@ +--- +title: FileHandler extension +tags: + - type: pro +meta: + category: Editor + title: FileHandler extension | Tiptap Editor Docs + description: Handle file drops and pastes in your Tiptap editor with the FileHandler extension. Learn how to set it up here in the Docs! +extension: + name: File Handler + description: You ever wanted to drag and drop or paste files into your editor? Well we too - so here is an extension for that. + type: extension + icon: File + isPro: true +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +You ever wanted to drag and drop or paste files into your editor? Well we too - so here is an extension for that. + +The `FileHandler` extension allows you to easily handle file drops and pastes in the editor. You can define custom handlers for both events & manage allowed file types. + + + This extension is only responsible for handling files in your editor. It doesn’t display them, + for that you can integrate the [image + extension](/editor/extensions/nodes/image) + + + + +## Install + + + Integrate this pro extension by registering for a free [Tiptap + account](https://cloud.tiptap.dev/register) and following our [access + guide](/guides/pro-extensions) to Tiptap’s private repository. + + +```bash +npm install @tiptap-pro/extension-file-handler +``` + +## Settings + +### onPaste + +The callback function that will be called when a file is pasted into the editor. You will have access to the editor instance & the files pasted. + +Default: `undefined` + +```js +FileHandler.configure({ + onPaste: (editor, files, htmlContent) => { + // do something with the files + // and insert the file into the editor + // in some cases (for example copy / pasted gifs from other apps) you should probably not use the file directly + // as the file parser will only have a single gif frame as png + // in this case, you can extract the url from the htmlContent and use it instead, let other inputRules handle insertion + // or do anything else with the htmlContent pasted into here + }, +}) +``` + +### onDrop + +The callback function that will be called when a file is dropped into the editor. You will have access to the editor instance, the files dropped and the position the file was dropped at. + +Default: `undefined` + +```js +FileHandler.configure({ + onDrop: (editor, files, pos) => { + // do something with the files + // and insert the file into the editor + }, +}) +``` + +### allowedMimeTypes + +This option controls which file types are allowed to be dropped or pasted into the editor. You can define a list of mime types or a list of file extensions. If no mime types or file extensions are defined, all files will be allowed. + +Default: `undefined` + +```js +FileHandler.configure({ + allowedMimeTypes: ['image/jpeg', 'image/png', 'image/gif'], +}) +``` diff --git a/src/content/editor/extensions/functionality/floatingmenu.mdx b/src/content/editor/extensions/functionality/floatingmenu.mdx new file mode 100644 index 0000000..657687e --- /dev/null +++ b/src/content/editor/extensions/functionality/floatingmenu.mdx @@ -0,0 +1,145 @@ +--- +title: FloatingMenu extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-floating-menu.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-floating-menu + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-floating-menu.svg + url: https://npmcharts.com/compare/@tiptap/extension-floating-menu?minimal=true + label: Downloads +meta: + title: FloatingMenu extension | Tiptap Editor Docs + description: Use the Floating Menu extension in Tiptap to add a menu that appears on empty lines. Learn more in the docs. + category: Editor +extension: + name: Floating Menu + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-floating-menu + description: Make a toolbar appear automagically on empty lines. + type: extension + icon: Cloud +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Use the Floating Menu extension in Tiptap to make a menu appear on an empty line. + + + +## Install the extension + +```bash +npm install @tiptap/extension-floating-menu +``` + +## Settings + +### element + +The DOM element that contains your menu. + +Type: `HTMLElement` + +Default: `null` + +### tippyOptions + +Under the hood, the `FloatingMenu` uses [tippy.js](https://atomiks.github.io/tippyjs/v6/all-props/). You can directly pass options to it. + +Type: `Object` + +Default: `{}` + +### pluginKey + +The key for the underlying ProseMirror plugin. Make sure to use different keys if you add more than one instance. + +Type: `string | PluginKey` + +Default: `'floatingMenu'` + +### shouldShow + +A callback to control whether the menu should be shown or not. + +Type: `(props) => boolean` + +## Source code + +[packages/extension-floating-menu/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-floating-menu/) + +## Use in Vanilla JavaScript + +```js +import { Editor } from '@tiptap/core' +import FloatingMenu from '@tiptap/extension-floating-menu' + +new Editor({ + extensions: [ + FloatingMenu.configure({ + element: document.querySelector('.menu'), + }), + ], +}) +``` + +### Other frameworks + +Check out the demo at the [top of this page](#) to see how to integrate the bubble menu extension with React or Vue. + +### Custom logic + +Customize the logic for showing the menu with the `shouldShow` option. For components, `shouldShow` can be passed as a prop. + +```js +FloatingMenu.configure({ + shouldShow: ({ editor, view, state, oldState }) => { + // show the floating within any paragraph + return editor.isActive('paragraph') + }, +}) +``` + +### Multiple menus + +Use multiple menus by setting an unique `pluginKey`. + +```js +import { Editor } from '@tiptap/core' +import FloatingMenu from '@tiptap/extension-floating-menu' + +new Editor({ + extensions: [ + FloatingMenu.configure({ + pluginKey: 'floatingMenuOne', + element: document.querySelector('.menu-one'), + }), + FloatingMenu.configure({ + pluginKey: 'floatingMenuTwo', + element: document.querySelector('.menu-two'), + }), + ], +}) +``` + +Alternatively you can pass a ProseMirror `PluginKey`. + +```js +import { Editor } from '@tiptap/core' +import FloatingMenu from '@tiptap/extension-floating-menu' +import { PluginKey } from '@tiptap/pm/state' + +new Editor({ + extensions: [ + FloatingMenu.configure({ + pluginKey: new PluginKey('floatingMenuOne'), + element: document.querySelector('.menu-one'), + }), + FloatingMenu.configure({ + pluginKey: new PluginKey('floatingMenuOne'), + element: document.querySelector('.menu-two'), + }), + ], +}) +``` diff --git a/src/content/editor/extensions/functionality/focus.mdx b/src/content/editor/extensions/functionality/focus.mdx new file mode 100644 index 0000000..ea2b8a0 --- /dev/null +++ b/src/content/editor/extensions/functionality/focus.mdx @@ -0,0 +1,66 @@ +--- +title: Focus extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-focus.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-focus + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-focus.svg + url: https://npmcharts.com/compare/@tiptap/extension-focus?minimal=true + label: Downloads +meta: + title: Focus extension | Tiptap Editor Docs + description: Use the Focus extension in Tiptap to track and highlight the cursor's position. Learn more in our docs! + category: Editor +extension: + name: Focus + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-focus + description: Keep track of where the cursor is, and let the user know you know it. + type: extension + icon: Focus +--- + +import { CodeDemo } from '@/components/CodeDemo' + +The Focus extension adds a CSS class to focused nodes. By default it adds `.has-focus`, but you can change that. + +Note that it’s only a class, the styling is totally up to you. The usage example below has some CSS for that class. + + + +## Install + +```bash +npm install @tiptap/extension-focus +``` + +## Settings + +### className + +The class that is applied to the focused element. + +Default: `'has-focus'` + +```js +Focus.configure({ + className: 'focus', +}) +``` + +### mode + +Apply the class to `'all'`, the `'shallowest'` or the `'deepest'` node. + +Default: `'all'` + +```js +Focus.configure({ + mode: 'deepest', +}) +``` + +## Source code + +[packages/extension-focus/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-focus/) diff --git a/src/content/editor/extensions/functionality/fontfamily.mdx b/src/content/editor/extensions/functionality/fontfamily.mdx new file mode 100644 index 0000000..d07b9f7 --- /dev/null +++ b/src/content/editor/extensions/functionality/fontfamily.mdx @@ -0,0 +1,72 @@ +--- +title: FontFamily extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-font-family.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-font-family + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-font-family.svg + url: https://npmcharts.com/compare/@tiptap/extension-font-family?minimal=true + label: Downloads +meta: + title: FontFamily extension | Tiptap Editor Docs + description: Set custom font families using the Font Family extension in your Tiptap Editor. Learn more in our documentation. + category: Editor +extension: + name: Font Family + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-font-family + description: Doesn’t have support for Comic Sans, but for all other fonts. + type: extension + icon: Type +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension enables you to set the font family in the editor. It uses the [`TextStyle`](/editor/extensions/marks/text-style) mark, which renders a `` tag. The font family is applied as inline style, for example ``. + + + +## Install + +```bash +npm install @tiptap/extension-text-style @tiptap/extension-font-family +``` + +This extension requires the [`TextStyle`](/editor/extensions/marks/text-style) mark. + +## Settings + +### types + +A list of marks to which the font family attribute should be applied to. + +Default: `['textStyle']` + +```js +FontFamily.configure({ + types: ['textStyle'], +}) +``` + +## Commands + +### setFontFamily() + +Applies the given font family as inline style. + +```js +editor.commands.setFontFamily('Inter') +``` + +### unsetFontFamily() + +Removes any font family. + +```js +editor.commands.unsetFontFamily() +``` + +## Source code + +[packages/extension-font-family/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-font-family/) diff --git a/src/content/editor/extensions/functionality/gapcursor.mdx b/src/content/editor/extensions/functionality/gapcursor.mdx new file mode 100644 index 0000000..cdb5c29 --- /dev/null +++ b/src/content/editor/extensions/functionality/gapcursor.mdx @@ -0,0 +1,40 @@ +--- +title: Gapcursor extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-gapcursor.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-gapcursor + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-gapcursor.svg + url: https://npmcharts.com/compare/@tiptap/extension-gapcursor?minimal=true + label: Downloads +meta: + title: Gapcursor extension | Tiptap Editor Docs + description: Prevent your cursor from getting stuck with the Gapcursor extension in Tiptap. Learn more in our documentation. + category: Editor +extension: + name: Gapcursor + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-gapcursor + description: The gapcursor makes sure the cursor doesn’t get stuck … in a gap. + type: extension + icon: TextCursor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension loads the [ProseMirror Gapcursor plugin](https://github.com/ProseMirror/prosemirror-gapcursor) by Marijn Haverbeke, which adds a gap for the cursor in places that don’t allow regular selection. For example, after a table at the end of a document. + +Note that Tiptap is headless, but the gapcursor needs CSS for its appearance. The [default CSS](https://github.com/ueberdosis/tiptap/tree/main/packages/core/src/style.ts) is loaded through the Editor class. + + + +## Install + +```bash +npm install @tiptap/extension-gapcursor +``` + +## Source code + +[packages/extension-gapcursor/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-gapcursor/) diff --git a/src/content/editor/extensions/functionality/history.mdx b/src/content/editor/extensions/functionality/history.mdx new file mode 100644 index 0000000..9667ace --- /dev/null +++ b/src/content/editor/extensions/functionality/history.mdx @@ -0,0 +1,25 @@ +--- +title: Integrate Document History into your editor +tags: + - type: pro + - type: new +extension: + name: History + description: Document version history for manual and automatic versioning of your documents. + type: extension + icon: FileStack + isPro: true + isNew: true + isCloud: true +--- + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +Integrate and manage document revisions using the History extension. This extension enables tracking of all changes, allowing users to view previous document versions and revert changes as needed. + + + For more detailed information on how to integrate, install, and configure the History extension, please visit our [feature page](/collaboration/documents/history). + + + diff --git a/src/content/editor/extensions/functionality/index.mdx b/src/content/editor/extensions/functionality/index.mdx new file mode 100644 index 0000000..fae6eec --- /dev/null +++ b/src/content/editor/extensions/functionality/index.mdx @@ -0,0 +1,15 @@ +--- +title: Functionality extensions +meta: + title: Functionality extensions | Tiptap Editor Docs + meta: Overview of Tiptap Editor functionality extensions, including tools for collaboration, text editing, and more. + category: Editor +sidebars: + hideSecondary: true +--- + +import { Extensions } from '@/components/Extensions' + +Extensions do not always render content, but can also provide additional functionality to the editor. This includes tools for collaboration, text editing, and more. + + diff --git a/src/content/editor/extensions/functionality/invisiblecharacters.mdx b/src/content/editor/extensions/functionality/invisiblecharacters.mdx new file mode 100644 index 0000000..24f8d82 --- /dev/null +++ b/src/content/editor/extensions/functionality/invisiblecharacters.mdx @@ -0,0 +1,185 @@ +--- +tags: + - type: pro +title: InvisibleCharacters extensions +meta: + title: InvisibleCharacters extension | Tiptap Editor Docs + description: Allow your users to see invisible characters like spaces, hard breaks, and paragraphs. More in the docs! + category: Editor +extension: + name: Invisible Characters + description: 'Allow your users to see invisible characters like spaces, hard breaks, and paragraphs.' + type: extension + icon: Asterisk + isPro: true +--- + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +This extension adds decorators to show non-printable characters and help you increase accessibility. + + + +## Install + + + Integrate this pro extension by registering for a free [Tiptap + account](https://cloud.tiptap.dev/register) and following our [access + guide](/guides/pro-extensions) to Tiptap’s private repository. + + +```bash +npm install @tiptap-pro/extension-invisible-characters +``` + +## Settings + +### visible + +Define default visibility. + +Default: `true` + +```js +InvisibleCharacters.configure({ + visible: false, +}) +``` + +### builders + +An array of invisible characters – by default it contains: spaces, hard breaks and paragraphs. + +Default: `[new SpaceCharacter(), new HardBreakNode(), new ParagraphNode()]` + +```js +import InvisibleCharacters, { SpaceCharacter } from '@tiptap-pro/extension-invisible-characters' + +// [...] + +InvisibleCharacters.configure({ + builders: [new SpaceCharacter(), new YourCustomInvisibleCharacter()], +}) +``` + +### injectCSS + +By default, the extension injects some CSS. With `injectCSS` you can disable that. + +Default: `true` + +```js +InvisibleCharacters.configure({ + injectCSS: false, +}) +``` + +### injectNonce + +When you use a [Content-Security-Policy](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy) with `nonce`, you can specify a `nonce` to be added to dynamically created elements. Here is an example: + +Default: `undefined` + +```js +InvisibleCharacters.configure({ + injectCSS: false, + injectNonce: 'your-nonce-here', +}) +``` + +## Storage + +### visibility() + +Find out whether the visibility of invisible characters is active or not. + +```js +editor.storage.invisibleCharacters.visibility() +``` + +## Commands + +### showInvisibleCharacters() + +Show invisible characters. You can also pass `false` to use the same command to hide them. + +```js +editor.commands.showInvisibleCharacters() +``` + +### hideInvisibleCharacters() + +Hide invisible characters. + +```js +editor.commands.hideInvisibleCharacters() +``` + +### toggleInvisibleCharacters() + +Toggle visibility of invisible characters. + +```js +editor.commands.toggleInvisibleCharacters() +``` + +## Custom invisible characters + +To create a custom invisible characters, you can extend the classes provided by the package. + +### InvisibleCharacter + +```js +import InvisibleCharacters, { InvisibleCharacter } from '@tiptap-pro/extension-invisible-characters' + +class MyInvisibleCharacter extends InvisibleCharacter { + constructor() { + super({ + type: 'my-invisible-character', + predicate: (value) => value === '+', + }) + } +} + +// … use it like this +new Editor({ + extensions: [InvisibleCharacters.configure({ builders: [new MyInvisibleCharacter()] })], +}) +``` + +To select the decoration within CSS, we can use the following selector: + +```css +.Tiptap-invisible-character.Tiptap-invisible-character--my-invisible-character { + // … +} +``` + +### InvisibleNode + +```js +import InvisibleCharacters, { InvisibleNode } from '@tiptap-pro/extension-invisible-characters' + +class MyInvisibleNode extends InvisibleNode { + constructor() { + super({ + type: 'my-invisible-node', + predicate: (node) => node.type === node.type.schema.nodes.listItem, + }) + } +} + +// … use it like this +new Editor({ + extensions: [InvisibleCharacters.configure({ builders: [new MyInvisibleNode()] })], +}) +``` + +To select the decoration within CSS, we can use the following selector: + +```css +.Tiptap-invisible-character.Tiptap-invisible-character--my-invisible-node { + // … +} +``` diff --git a/src/content/editor/extensions/functionality/listkeymap.mdx b/src/content/editor/extensions/functionality/listkeymap.mdx new file mode 100644 index 0000000..351e070 --- /dev/null +++ b/src/content/editor/extensions/functionality/listkeymap.mdx @@ -0,0 +1,70 @@ +--- +title: List Keymap extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-list-keymap.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-list-keymap + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-list-keymap.svg + url: https://npmcharts.com/compare/@tiptap/extension-list-keymap?minimal=true + label: Downloads +extension: + name: List Keymap + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-list-keymap + description: Lists can behave tricky so we made this small extension to make it easier to work with lists. + type: extension + icon: Keyboard +meta: + title: List Keymap extension | Tiptap Editor Docs + description: Add extra keymap handlers to change the default backspace and delete behavior for lists. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +The List Keymap extension modifies the default ProseMirror and Tiptap behavior. Without this extension, pressing backspace at the start of a list item keeps the list item content on the same line. With the List Keymap, the content is lifted into the list item above. + + + +## Install + +```bash +npm install @tiptap/extension-list-keymap +``` + +## Settings + +### listTypes + +A array of list items and their parent wrapper node types. + +Default: + +```js +;[ + { + itemName: 'listItem', + wrapperNames: ['bulletList', 'orderedList'], + }, + { + itemName: 'taskItem', + wrapperNames: ['taskList'], + }, +] +``` + +```js +ListKeymap.configure({ + listTypes: [ + { + itemName: 'taskItem', + wrapperNames: ['customTaskList'], + }, + ], +}) +``` + +## Source code + +[packages/extension-list-keymap/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-list-keymap/) diff --git a/src/content/editor/extensions/functionality/mathematics.mdx b/src/content/editor/extensions/functionality/mathematics.mdx new file mode 100644 index 0000000..847f4e5 --- /dev/null +++ b/src/content/editor/extensions/functionality/mathematics.mdx @@ -0,0 +1,84 @@ +--- +title: Mathematics extension +tags: + - type: pro +meta: + title: Mathematics extension | Tiptap Editor Docs + description: This extension allows your users to write and visualize mathematical formulas via LaTeX. Learn how to set it up in the docs! + category: Editor +extension: + name: Mathematics + description: This extension allows your users to write and visualize mathematical formulas via LaTeX. + type: extension + icon: SquareDivide + isPro: true +--- + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +This extension allows you to write and visualize even complex mathematical formulas or equations in your editor. Please note that the current version is still in a very basic stage. + + + +## Install + + + Integrate this pro extension by registering for a free [Tiptap + account](https://cloud.tiptap.dev/register) and following our [access + guide](/guides/pro-extensions) to Tiptap’s private repository. + + +```bash +npm install @tiptap-pro/extension-mathematics katex +``` + +### Additional Setup + +You are free to style the rendering element and the editor input. + +**Import of KaTeX styling (needed).** + +```js +import 'katex/dist/katex.min.css' +``` + +**The following classes allow you to select and style the math-decorations. For an example, see demonstration code at the end of this page.** + +```css +/* Decoration containing the actual text */ +.Tiptap-mathematics-editor { + // … +} + +/* Container of the KaTeX rendering */ +.Tiptap-mathematics-render { + // … +} +``` + +## Settings + +### regex + +Tiptap needs to know when the text is mathematical. Therefor a regular expression pattern allows us to define this shorthand. E.g. using the TeX shorthand `$ … $` (see default below). Matches become decorated – they are not stored as own nodes or marks! + +Default: `/\$([^\$]*)\$/gi` + +### katexOptions + +For the math typesetting the extension uses the third party library [KaTeX](https://katex.org). To adjust its behaviour, you can pass KaTeX options to it. Find all of them [here](https://katex.org/docs/options.html). + +Default: `undefined` + +```js +import Mathematics from '@tiptap-pro/extension-mathematics' + +// [...] + +Mathematics.configure({ + katexOptions: { + maxSize: 300, + }, +}) +``` diff --git a/src/content/editor/extensions/functionality/placeholder.mdx b/src/content/editor/extensions/functionality/placeholder.mdx new file mode 100644 index 0000000..57182a1 --- /dev/null +++ b/src/content/editor/extensions/functionality/placeholder.mdx @@ -0,0 +1,166 @@ +--- +title: Placeholder extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-placeholder.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-placeholder + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-placeholder.svg + url: https://npmcharts.com/compare/@tiptap/extension-placeholder?minimal=true + label: Downloads +meta: + title: Placeholder extension | Tiptap Editor Docs + description: Configure a helpful placeholder to fill the emptiness in your Tiptap editor. Learn how to set up and use it here in the Docs! + category: Editor +extension: + name: Placeholder + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-placeholder + description: Configure a helpful placeholder to fill the emptiness. + type: extension + icon: Ghost +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension provides placeholder support. Give your users an idea what they should write with a tiny hint. There is a handful of things to customize, if you feel like it. + + + +## Install + +```bash +npm install @tiptap/extension-placeholder +``` + +### Additional Setup + +Placeholders are displayed with the help of CSS. + +**Display a Placeholder only for the first line in an empty editor.** + +``` +.tiptap p.is-editor-empty:first-child::before { + color: #adb5bd; + content: attr(data-placeholder); + float: left; + height: 0; + pointer-events: none; +} +``` + +**Display Placeholders on every new line.** + +``` +.tiptap p.is-empty::before { + color: #adb5bd; + content: attr(data-placeholder); + float: left; + height: 0; + pointer-events: none; +} +``` + +## Settings + +### emptyEditorClass + +The added CSS class if the editor is empty. + +Default: `'is-editor-empty'` + +```js +Placeholder.configure({ + emptyEditorClass: 'is-editor-empty', +}) +``` + +### emptyNodeClass + +The added CSS class if the node is empty. + +Default: `'is-empty'` + +```js +Placeholder.configure({ + emptyNodeClass: 'my-custom-is-empty-class', +}) +``` + +### placeholder + +The placeholder text added as `data-placeholder` attribute. + +Default: `'Write something …'` + +```js +Placeholder.configure({ + placeholder: 'My Custom Placeholder', +}) +``` + +You can even use a function to add placeholder depending on the node: + +```js +Placeholder.configure({ + placeholder: ({ node }) => { + if (node.type.name === 'heading') { + return 'What’s the title?' + } + + return 'Can you add some further context?' + }, +}) +``` + +### considerAnyAsEmpty + +Consider any node that is not a leaf or atom as empty for the editor empty check. + +Default: `false` + +```js +Placeholder.configure({ + considerAnyAsEmpty: true, +}) +``` + +### showOnlyWhenEditable + +Show decorations only when editor is editable. + +Default: `true` + +```js +Placeholder.configure({ + showOnlyWhenEditable: false, +}) +``` + +### showOnlyCurrent + +Show decorations only in currently selected node. + +Default: `true` + +```js +Placeholder.configure({ + showOnlyCurrent: false, +}) +``` + +### includeChildren + +Show decorations also for nested nodes. + +Default: `false` + +```js +Placeholder.configure({ + includeChildren: true, +}) +``` + +## Source code + +[packages/extension-placeholder/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-placeholder/) diff --git a/src/content/editor/extensions/functionality/starterkit.mdx b/src/content/editor/extensions/functionality/starterkit.mdx new file mode 100644 index 0000000..18dc88e --- /dev/null +++ b/src/content/editor/extensions/functionality/starterkit.mdx @@ -0,0 +1,99 @@ +--- +title: StarterKit extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/starter-kit.svg?label=version + url: https://www.npmjs.com/package/@tiptap/starter-kit + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/starter-kit.svg + url: https://npmcharts.com/compare/@tiptap/starter-kit?minimal=true + label: Downloads +meta: + title: StarterKit extension | Tiptap Editor Docs + description: All the popular extensions in a single extension with StarterKit. Perfect for getting started with Tiptap. More in the docs! + category: Editor +extension: + name: StarterKit + link: https://github.com/ueberdosis/tiptap/tree/main/packages/starter-kit + description: All the popular extensions in a single extension. Doesn’t get much better than this. + type: extension + icon: Package +--- + +The `StarterKit` is a collection of the most popular Tiptap extensions. If you’re just getting started, this extension is for you. + +## Install + +```bash +npm install @tiptap/starter-kit +``` + +## Included extensions + +### Nodes + +- [`Blockquote`](/editor/extensions/nodes/blockquote) +- [`BulletList`](/editor/extensions/nodes/bullet-list) +- [`CodeBlock`](/editor/extensions/nodes/code-block) +- [`Document`](/editor/extensions/nodes/document) +- [`HardBreak`](/editor/extensions/nodes/hard-break) +- [`Heading`](/editor/extensions/nodes/heading) +- [`HorizontalRule`](/editor/extensions/nodes/horizontal-rule) +- [`ListItem`](/editor/extensions/nodes/list-item) +- [`OrderedList`](/editor/extensions/nodes/ordered-list) +- [`Paragraph`](/editor/extensions/nodes/paragraph) +- [`Text`](/editor/extensions/nodes/text) + +### Marks + +- [`Bold`](/editor/extensions/marks/bold) +- [`Code`](/editor/extensions/marks/code) +- [`Italic`](/editor/extensions/marks/italic) +- [`Strike`](/editor/extensions/marks/strike) + +### Extensions + +- [`Dropcursor`](/editor/extensions/functionality/dropcursor) +- [`Gapcursor`](/editor/extensions/functionality/gapcursor) +- [`History`](/collaboration/documents/history) + +## Source code + +[packages/starter-kit/](https://github.com/ueberdosis/tiptap/blob/main/packages/starter-kit/) + +## Using the StarterKit extension + +Pass `StarterKit` to the editor to load all included extension at once. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +const editor = new Editor({ + content: '

    Example Text

    ', + extensions: [StarterKit], +}) +``` + +You can configure the included extensions, or even disable a few of them, like shown below. + +```js +import { Editor } from '@tiptap/core' +import StarterKit from '@tiptap/starter-kit' + +const editor = new Editor({ + content: '

    Example Text

    ', + extensions: [ + StarterKit.configure({ + // Disable an included extension + history: false, + + // Configure an included extension + heading: { + levels: [1, 2], + }, + }), + ], +}) +``` diff --git a/src/content/editor/extensions/functionality/table-of-contents.mdx b/src/content/editor/extensions/functionality/table-of-contents.mdx new file mode 100644 index 0000000..51ca5d2 --- /dev/null +++ b/src/content/editor/extensions/functionality/table-of-contents.mdx @@ -0,0 +1,226 @@ +--- +title: Table of Contents extension +tags: + - type: pro +meta: + title: Contents extension | Tiptap Editor Docs + description: Integrate a list of anchors to your document and collect all headlines in a nice TOC (Table of Contents). Learn more in the docs! + category: Editor +extension: + name: Table of contents + description: Add a table of contents of all your anchors or headlines. + type: extension + icon: List +--- +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +The `TableOfContents` extension lets you get a list of anchors from your document and passes on important information about each anchor (for example the depth, the content and a unique ID for each heading but also the active state and scroll states for each anchor). This can be used to render the table of content on your own. + + + +## Install + + Integrate this pro extension by registering for a free [Tiptap + account](https://cloud.tiptap.dev/register) and following our [access + guide](/guides/pro-extensions) to Tiptap’s private repository. + + +Once done, you can install the extension from our private registry: + +```bash +npm install @tiptap-pro/extension-table-of-contents +``` + +## Settings + +### anchorTypes +The types of the nodes you want to use for your Table of Content. By default this is `["heading"]` but in case you create your own custom Heading extension OR extend the existing one and use a different name, you can pass that name here. + +Default: `["heading"]` + +```js +TableOfContents.configure({ + anchorTypes: ['heading', 'customAnchorType'], +}) +``` + +### getIndex +This option can be used to customize how the item indexes are calculated. By default this is using an internal function but it can be overwritten to do some custom logic. + +```js +TableOfContents.configure({ + getIndex: (anchor, previousAnchors, level) => { + // do some custom logic, but for this example we will just return 1 + return 1 + } +}) +``` + +We expose two ready to use functions - one to generate linear indexes which continue to count from 1 to n and one to generate hierarchical indexes that will count from 1 to n for each level. + +```js +import { getLinearIndexes, getHierarchicalIndexes } from '@tiptap-pro/extension-table-of-contents' + +// generate linear indexes +TableOfContents.configure({ + getIndex: getLinearIndexes, +}) + +// generate hierarchical indexes +TableOfContents.configure({ + getIndex: getHierarchicalIndexes, +}) +``` + +### getLevel +This option can be used to customize how item levels are generated. By default the normal level generation is used that checks for heading element level attributes. If you want to customize this because for example you want to include custom anchors in your heading generation, you can use this to do so. + +```js +TableOfContents.configure({ + getLevel: (anchor, previousAnchors) => { + // do some custom logic, but for this example we will just return 1 + return 1 + } +}) +``` + +### getId +A builder function that returns a unique ID for each heading. Inside the argument you get access to the headings text content (for example you want to generate IDs based on the text content of the heading). + +By default this is a function that uses the [uuid](https://www.npmjs.com/package/uuid) package to generate a unique ID. + +Default: `() => uuid()` + +```js +// here we use an imaginary "slugify" function +// you should probably also add a unique identifier to the slug +TableOfContents.configure({ + getId: (content) => slugify(content) +}) +``` + +### scrollParent +The scroll parent you want to attach to. This is used to determine which heading currently is active or was already scrolled over. By default this is the window but you can pass any HTML element here. + +Default: `window` + +```js +// For example the editors DOM element itself is the scrolling element +TableOfContents.configure({ + scrollParent: editor.view.dom +}) +``` + +### onUpdate +The most important option that you must set to use this extension. This is a callback function that gets called whenever the Table of Content updates. You get access to an array of heading data (see below) which you can use to render your own Table of Content. + +To render the table of content you can render it by any means you want. You can use a framework like Vue, React or Svelte or you can use a simple templating engine like Handlebars or Pug. You can also use a simple `document.createElement` to render the table of content. + +You can pass a second argument to get the information whether this is the initial creation step for the ToC data. + +Default: `undefined` + +```js +// with vanilla JS +const tocElement = document.createElement('div') +document.body.appendChild(tocElement) + +TableOfContents.configure({ + onUpdate: (anchors, isCreate) => { + tocElement.innerHTML = '' + + if (isCreate) { + console.log('This is the inital creation step for the ToC data') + } + + anchors.forEach((anchor) => { + const anchorElement = document.createElement('div') + + anchorElement.innerHTML = anchor.content + anchorElement.dataset.id = anchor.id + anchorElement.dataset.depth = anchor.depth + anchorElement.dataset.active = anchor.active + anchorElement.dataset.scrolled = anchor.scrolled + + tocElement.appendChild(anchorElement) + }) + } +}) +``` + +```js +// with react +const [anchors, setAnchors] = useState([]) + +// inside the useEditor hook you could then do something like that: +TableOfContents.configure({ + onUpdate: (anchors) => { + setAnchors(anchors) + } +}) +``` + +```js +// with vue +const anchors = ref([]) + +TableOfContents.configure({ + onUpdate: (anchors) => { + anchors.value = anchors + } +}) +``` + +## Storage + +### content +The heading content of the current document + +```js +editor.storage.tableOfContents.content +``` + +### anchors +An array of HTML nodes + +```js +editor.storage.tableOfContents.anchors +``` + +### scrollHandler +The scrollHandler used by the scroll function. Should not be changed or edited but +could be used to manually bind this function somewhere else + +```js +editor.storage.tableOfContents.scrollHandler() +``` + +### scrollPosition +The current scrollPosition inside the scrollParent. + +```js +editor.storage.tableOfContents.scrollPosition +``` + +## The anchors array + +The array returned by the storage or the `onUpdate` function includes objects structured like this: + +```js +{ + dom: HTMLElement // the HTML element for this anchor + editor: Editor // the editor + id: string // the node id + isActive: boolean // whether this anchor is currently active + isScrolledOver: boolean // whether this anchor was already scrolled over + itemIndex: number // the index of the item on it's current level + level: number // the current level of the item - this could be different from the actual anchor level and is used to render the hierarchy from high to low headlines + node: Node // the ProseMirror node for this anchor + originalLevel: number // the actual level + pos: number // the position of the anchor node + textContent: string // the text content of the anchor +} +``` + +This should give you enough flexibility to render your own table of content. \ No newline at end of file diff --git a/src/content/editor/extensions/functionality/textalign.mdx b/src/content/editor/extensions/functionality/textalign.mdx new file mode 100644 index 0000000..11f9c4d --- /dev/null +++ b/src/content/editor/extensions/functionality/textalign.mdx @@ -0,0 +1,110 @@ +--- +title: TextAlign extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-text-align.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-text-align + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-text-align.svg + url: https://npmcharts.com/compare/@tiptap/extension-text-align?minimal=true + label: Downloads +meta: + title: TextAlign extension | Tiptap Editor Docs + description: Left, right, center, whatever! Align the text however you like with the Text Align extension. More in the docs! + category: Editor +extension: + name: Text Align + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-text-align + description: Left, right, center, whatever! Align the text however you like. + type: extension + icon: AlignCenter +--- + +import { Callout } from '@/components/ui/Callout' + +import { CodeDemo } from '@/components/CodeDemo' + +This extension adds a text align attribute to a specified list of nodes. The attribute is used to align the text. + + + `text-align: justify` doesn’t work together with `white-space: pre-wrap` in Firefox, [that’s a + known issue](https://bugzilla.mozilla.org/show_bug.cgi?id=1253840). + + + + +## Install + +```bash +npm install @tiptap/extension-text-align +``` + +## Settings + +### types + +A list of nodes where the text align attribute should be applied to. Usually something like `['heading', 'paragraph']`. + +Default: `[]` + +```js +TextAlign.configure({ + types: ['heading', 'paragraph'], +}) +``` + +### alignments + +A list of available options for the text align attribute. + +Default: `['left', 'center', 'right', 'justify']` + +```js +TextAlign.configure({ + alignments: ['left', 'right'], +}) +``` + +### defaultAlignment + +The default text align. + +Default: `'left'` + +```js +TextAlign.configure({ + defaultAlignment: 'right', +}) +``` + +## Commands + +### setTextAlign() + +Set the text align to the specified value. + +```js +editor.commands.setTextAlign('right') +``` + +### unsetTextAlign() + +Remove the text align value. + +```js +editor.commands.unsetTextAlign() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| --------------------- | ------------------------------------------------- | ------------------------------------------------ | +| setTextAlign(left) | Ctrl + Shift + L | Cmd + Shift + L | +| setTextAlign(center) | Ctrl + Shift + E | Cmd + Shift + E | +| setTextAlign(right) | Ctrl + Shift + R | Cmd + Shift + R | +| setTextAlign(justify) | Ctrl + Shift + J | Cmd + Shift + J | + +## Source code + +[packages/extension-text-align/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-text-align/) diff --git a/src/content/editor/extensions/functionality/typography.mdx b/src/content/editor/extensions/functionality/typography.mdx new file mode 100644 index 0000000..ba30980 --- /dev/null +++ b/src/content/editor/extensions/functionality/typography.mdx @@ -0,0 +1,109 @@ +--- +title: Typography extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-typography.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-typography + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-typography.svg + url: https://npmcharts.com/compare/@tiptap/extension-typography?minimal=true + label: Downloads +meta: + title: Typography Extension | Tiptap Editor Docs + description: Replace common text patterns with typographic characters with the typography extension in your editor. More in the docs! + category: Editor +extension: + name: Typography + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-typography + description: The typography smart ass for your editor, replaces everything that’s wrong. + type: extension + icon: Type +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension tries to help with common text patterns with the correct typographic character. Under the hood all rules are input rules. + + + +## Install + +```bash +npm install @tiptap/extension-typography +``` + +## Rules + +| Name | Description | +| ------------------- | ---------------------------------------------------------------- | +| emDash | Converts double dashes `--` to an emdash `—`. | +| ellipsis | Converts three dots `...` to an ellipsis character `…` | +| openDoubleQuote | `“`Smart” opening double quotes. | +| closeDoubleQuote | “Smart`”` closing double quotes. | +| openSingleQuote | `‘`Smart’ opening single quotes. | +| closeSingleQuote | ‘Smart`’` closing single quotes. | +| leftArrow | Converts `<-` to an arrow `←` . | +| rightArrow | Converts `->` to an arrow `→`. | +| copyright | Converts `(c)` to a copyright sign `©`. | +| registeredTrademark | Converts `(r)` to registered trademark sign `®`. | +| trademark | Converts `(tm)` to registered trademark sign `™`. | +| servicemark | Converts `(sm)` to registered trademark sign `℠`. | +| oneHalf | Converts `1/2` to one half `½`. | +| oneQuarter | Converts `1/4` to one quarter `¼`. | +| threeQuarters | Converts `3/4` to three quarters `¾`. | +| plusMinus | Converts `+/-` to plus/minus sign `±`. | +| notEqual | Converts `!=` to a not equal sign `≠`. | +| laquo | Converts `<<` to left-pointing double angle quotation mark `«`. | +| raquo | Converts `>>` to right-pointing double angle quotation mark `»`. | +| multiplication | Converts `2*3` or `2x3` to a multiplcation sign `2×3`. | +| superscriptTwo | Converts `^2` a superscript two `²`. | +| superscriptThree | Converts `^3` a superscript three `³`. | + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| --------------- | -------------------- | ----------------- | +| undoInputRule() | Backspace | Delete | + +## Source code + +[packages/extension-typography/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-typography/) + +### Disabling rules + +You can configure the included rules, or even disable a few of them, like shown below. + +```js +import { Editor } from '@tiptap/core' +import Typography from '@tiptap/extension-typography' + +const editor = new Editor({ + extensions: [ + // Disable some included rules + Typography.configure({ + oneHalf: false, + oneQuarter: false, + threeQuarters: false, + }), + ], +}) +``` + +### Overriding rules + +You can override the output of a rule by passing a string to the option you want to override. + +```js +import { Editor } from '@tiptap/core' +import Typography from '@tiptap/extension-typography' + +const editor = new Editor({ + extensions: [ + // Disable some included rules + Typography.configure({ + oneHalf: '1 / 2', // this will insert "1 / 2" instead of the default "½" + }), + ], +}) +``` diff --git a/src/content/editor/extensions/functionality/undo-redo.mdx b/src/content/editor/extensions/functionality/undo-redo.mdx new file mode 100644 index 0000000..968f3c0 --- /dev/null +++ b/src/content/editor/extensions/functionality/undo-redo.mdx @@ -0,0 +1,90 @@ +--- +title: Undo/Redo extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-history.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-history + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-history.svg + url: https://npmcharts.com/compare/@tiptap/extension-history?minimal=true + label: Downloads +meta: + title: Undo/Redo extension | Tiptap Editor Docs + description: Undo and redo changes in your Tiptap Editor with ease, allowing you to revert or reapply edits in your editor. More in the docs. + category: Editor +extension: + name: Undo/Redo + description: Undo and redo changes in your Tiptap Editor with ease, allowing you to revert or reapply edits in your editor. + type: extension + icon: Undo2 +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This extension provides undo and redo support. All changes to the document will be tracked and can be removed with `undo`. Undone changes can be applied with `redo` again. + +You should only integrate this extension if you don't plan to make your editor collaborative. The Collaboration extension has its own undo/redo support because people generally don't want to revert changes made by others. + + + +## Install + +```bash +npm install @tiptap/extension-history +``` + +## Settings + +### depth + +The amount of history events that are collected before the oldest events are discarded. + +Default: `100` + +```js +History.configure({ + depth: 10, +}) +``` + +### newGroupDelay + +The delay between changes after which a new group should be started (in milliseconds). When changes aren’t adjacent, a new group is always started. + +Default: `500` + +```js +History.configure({ + newGroupDelay: 1000, +}) +``` + +## Commands + +### undo() + +Undo the last change. + +```js +editor.commands.undo() +``` + +### redo() + +Redo the last change. + +```js +editor.commands.redo() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | +| undo() | Control + Z or Control + я | Cmd + Z + or Cmd + я | +| redo() | Shift + Control + Z or Control + Y or Shift + Control + я | Shift + Cmd + Z or Cmd + Y or Shift + Cmd + я | + +## Source code + +[packages/extension-history/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-history/) diff --git a/src/content/editor/extensions/functionality/uniqueid.mdx b/src/content/editor/extensions/functionality/uniqueid.mdx new file mode 100644 index 0000000..8de940d --- /dev/null +++ b/src/content/editor/extensions/functionality/uniqueid.mdx @@ -0,0 +1,83 @@ +--- +title: UniqueID extension +tags: + - type: pro +meta: + title: UniqueID extension | Tiptap Editor Docs + description: Add a unique ID to every single node and keep track of them with the UniqueID extension. More in the docs! + category: Editor +extension: + name: UniqueID + description: Add an unique ID to every single node and keep track of them. + type: extension + icon: Hash + isPro: true +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +The `UniqueID` extension adds unique IDs to all nodes. The extension keeps track of your nodes, even if you split them, merge them, undo/redo changes, crop content, paste content … It just works. +Also, you can configure which node types get an unique ID, and which not, and you can customize how those IDs are generated. + + + +## Install + + + Integrate this pro extension by registering for a free [Tiptap + account](https://cloud.tiptap.dev/register) and following our [access + guide](/guides/pro-extensions) to Tiptap’s private repository. + +Once done, you can install the extension from our private registry: + +```bash +npm install @tiptap-pro/extension-unique-id +``` + +## Settings + +### attributeName + +Name of the attribute that is attached to the HTML tag (will be prefixed with `data-`). + +Default: `'id'` + +```js +UniqueID.configure({ + attributeName: 'uid', +}) +``` + +### types + +All types that should get a unique ID, for example `['heading', 'paragraph']` + +Default: `[]` + +```js +UniqueID.configure({ + types: ['heading', 'paragraph'], +}) +``` + +### generateID + +A function that generates and returns a unique ID. + +Default: `() => uuidv4()` + +### filterTransaction + +Ignore some mutations, for example applied from other users through the collaboration plugin. + +Default: `null` + +```js +import { isChangeOrigin } from '@tiptap/collaboration' + +// Adds support for collaborative editing +UniqueID.configure({ + filterTransaction: (transaction) => !isChangeOrigin(transaction), +}) +``` diff --git a/src/content/editor/extensions/marks/bold.mdx b/src/content/editor/extensions/marks/bold.mdx new file mode 100644 index 0000000..98537fa --- /dev/null +++ b/src/content/editor/extensions/marks/bold.mdx @@ -0,0 +1,91 @@ +--- +title: Bold extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-bold.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-bold + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-bold.svg + url: https://npmcharts.com/compare/@tiptap/extension-bold?minimal=true + label: Downloads +extension: + name: Bold + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-bold + description: 'Make your text bold and let it stand out.' + type: mark + icon: Bold +meta: + title: Bold extension | Tiptap Editor Docs + description: Use the Bold extension in Tiptap to make your text bold and let it stand out. Learn more in our docs! + category: Editor +--- + +import { Callout } from '@/components/ui/Callout' +import { CodeDemo } from '@/components/CodeDemo' + +Use this extension to render text in **bold**. If you pass ``, `` tags, or text with inline `style` attributes setting the `font-weight` CSS rule in the editor’s initial content, they all will be rendered accordingly. + +Type `**two asterisks**` or `__two underlines__` and it will magically transform to **bold** text while you type. + + + + + The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text marked bold, regardless of the method will be normalized to `` HTML tags. + + +## Install + +```bash +npm install @tiptap/extension-bold +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Bold.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setBold() + +Mark text as bold. + +```js +editor.commands.setBold() +``` + +### toggleBold() + +Toggle the bold mark. + +```js +editor.commands.toggleBold() +``` + +### unsetBold() + +Remove the bold mark. + +```js +editor.commands.unsetBold() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ------------ | --------------------------------- | ----------------------------- | +| toggleBold() | Control + B | Cmd + B | + +## Source code + +[packages/extension-bold/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-bold/) diff --git a/src/content/editor/extensions/marks/code.mdx b/src/content/editor/extensions/marks/code.mdx new file mode 100644 index 0000000..db7ae7d --- /dev/null +++ b/src/content/editor/extensions/marks/code.mdx @@ -0,0 +1,86 @@ +--- +title: Code extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-code.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-code + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-code.svg + url: https://npmcharts.com/compare/@tiptap/extension-code?minimal=true + label: Downloads +extension: + name: Code + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-code + description: 'Developers love to add some inline code to their texts.' + type: mark + icon: Code +meta: + title: Code extension | Tiptap Editor Docs + description: Use the Code extension in your Tiptap Editor to add inline code to your texts. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +The Code extensions enables you to use the `` HTML tag in the editor. If you paste in text with `` tags it will rendered accordingly. + +Type something with \`back-ticks around\` and it will magically transform to `inline code` while you type. + + + +## Install + +```bash +npm install @tiptap/extension-code +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Code.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setCode() + +Mark text as inline code. + +```js +editor.commands.setCode() +``` + +### toggleCode() + +Toggle inline code mark. + +```js +editor.commands.toggleCode() +``` + +### unsetCode() + +Remove inline code mark. + +```js +editor.commands.unsetCode() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ------------ | --------------------------------- | ----------------------------- | +| toggleCode() | Control + E | Cmd + E | + +## Source code + +[packages/extension-code/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-code/) diff --git a/src/content/editor/extensions/marks/highlight.mdx b/src/content/editor/extensions/marks/highlight.mdx new file mode 100644 index 0000000..a346f85 --- /dev/null +++ b/src/content/editor/extensions/marks/highlight.mdx @@ -0,0 +1,100 @@ +--- +title: Highlight extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-highlight.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-highlight + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-highlight.svg + url: https://npmcharts.com/compare/@tiptap/extension-highlight?minimal=true + label: Downloads +extension: + name: Highlight + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-highlight + description: Make it look nerdier with some colorful text highlights. + type: mark + icon: PenLine +meta: + title: Highlight extension | Tiptap Editor Docs + description: Use the Highlight extension in your Tiptap Editor to add colorful text highlights. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +Use this extension to render highlighted text with ``. You can use only default `` HTML tag, which has a yellow background color by default, or apply different colors. + +Type `==two equal signs==` and it will magically transform to highlighted text while you type. + + + +## Install + +```bash +npm install @tiptap/extension-highlight +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Highlight.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +### multicolor + +Add support for multiple colors. + +Default: `false` + +```js +Highlight.configure({ + multicolor: true, +}) +``` + +## Commands + +### setHighlight() + +Mark text as highlighted. + +```js +editor.commands.setHighlight() +editor.commands.setHighlight({ color: '#ffcc00' }) +``` + +### toggleHighlight() + +Toggle a text highlight. + +```js +editor.commands.toggleHighlight() +editor.commands.toggleHighlight({ color: '#ffcc00' }) +``` + +### unsetHighlight() + +Removes the highlight. + +```js +editor.commands.unsetHighlight() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ----------------- | ---------------------------------------------------- | ------------------------------------------------ | +| toggleHighlight() | Control + Shift + H | Cmd + Shift + H | + +## Source code + +[packages/extension-highlight/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-highlight/) diff --git a/src/content/editor/extensions/marks/index.mdx b/src/content/editor/extensions/marks/index.mdx new file mode 100644 index 0000000..7c8fa75 --- /dev/null +++ b/src/content/editor/extensions/marks/index.mdx @@ -0,0 +1,15 @@ +--- +title: Mark extensions +sidebars: + hideSecondary: true +meta: + title: Mark extensions | Tiptap Editor Docs + description: Learn about all the mark extensions you can use in your Tiptap Editor like bold, code, link and more. Learn more in the docs! + category: Editor +--- + +import { Extensions } from '@/components/Extensions' + +Learn about mark extensions like `Bold`, `Code`, `Link`, and more to improve your users’ text editor experience in Tiptap. + + diff --git a/src/content/editor/extensions/marks/italic.mdx b/src/content/editor/extensions/marks/italic.mdx new file mode 100644 index 0000000..5557e3d --- /dev/null +++ b/src/content/editor/extensions/marks/italic.mdx @@ -0,0 +1,91 @@ +--- +title: Italic extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-italic.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-italic + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-italic.svg + url: https://npmcharts.com/compare/@tiptap/extension-italic?minimal=true + label: Downloads +extension: + name: Italic + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-italic + icon: Italic + description: Helps to emphasize your text, doesn’t bring you closer to Italy though. + type: mark +meta: + title: Italic extension | Tiptap Editor Docs + description: Use the Italic extension in your Tiptap Editor to emphasize your text with italics. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +Use this extension to render text in _italic_. If you pass ``, `` tags, or text with inline `style` attributes setting `font-style: italic` in the editor’s initial content, they all will be rendered accordingly. + +Type `*one asterisk*` or `_one underline_` and it will magically transform to _italic_ text while you type. + + + + + The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text marked italic, regardless of the method will be normalized to `` HTML tags. + + +## Install + +```bash +npm install @tiptap/extension-italic +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Italic.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setItalic() + +Mark the text italic. + +```js +editor.commands.setItalic() +``` + +### toggleItalic() + +Toggle the italic mark. + +```js +editor.commands.toggleItalic() +``` + +### unsetItalic() + +Remove the italic mark. + +```js +editor.commands.unsetItalic() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| -------------- | --------------------------------- | ----------------------------- | +| toggleItalic() | Control + I | Cmd + I | + +## Source code + +[packages/extension-italic/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-italic/) diff --git a/src/content/editor/extensions/marks/link.mdx b/src/content/editor/extensions/marks/link.mdx new file mode 100644 index 0000000..1ee145c --- /dev/null +++ b/src/content/editor/extensions/marks/link.mdx @@ -0,0 +1,205 @@ +--- +title: Link extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-link.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-link + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-link.svg + url: https://npmcharts.com/compare/@tiptap/extension-link?minimal=true + label: Downloads +extension: + name: Link + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-link + description: 'Link it, link it good, link it real good (and don’t forget the href).' + type: mark + icon: Link +meta: + title: Link extension | Tiptap Editor Docs + description: Learn how to use the Link extension in Tiptap to add support for tags. Discover more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +The Link extension adds support for `` tags to the editor. The extension is headless too, there is no actual UI to add, modify or delete links. The usage example below uses the native JavaScript prompt to show you how that could work. + +In a real world application, you would probably add a more sophisticated user interface. + +Pasted URLs will be transformed to links automatically. + + + +## Install + +```bash +npm install @tiptap/extension-link +``` + +## Settings + +### protocols + +Additional custom protocols you would like to be recognized as links. + +Default: `[]` + +```js +Link.configure({ + protocols: ['ftp', 'mailto'], +}) +``` + +By default, [linkify](https://linkify.js.org/docs/) adds `//` to the end of a protocol however this behavior can be changed by passing `optionalSlashes` option + +```js +Link.configure({ + protocols: [ + { + scheme: 'tel', + optionalSlashes: true, + }, + ], +}) +``` + +### autolink + +If enabled, it adds links as you type. + +Default: `true` + +```js +Link.configure({ + autolink: false, +}) +``` + +### openOnClick + +If enabled, links will be opened on click. + +Default: `true` + +```js +Link.configure({ + openOnClick: false, +}) +``` + +### linkOnPaste + +Adds a link to the current selection if the pasted content only contains an url. + +Default: `true` + +```js +Link.configure({ + linkOnPaste: false, +}) +``` + +### default protocol +The default protocol used by `linkOnPaste` and `autolink` when no protocol is defined. + +By default, the href generated for example.com is http://example.com and this option allows that protocol to be customized. + +Default: `http` + +```js +Link.configure({ + defaultProtocol: 'https', +}) +``` + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Link.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +#### Removing and overriding existing html attributes + +You can add `rel: null` to HTMLAttributes to remove the default `rel="noopener noreferrer nofollow"`. You can also override the default by using `rel: "your-value"`. + +This can also be used to change the `target` from the default value of `_blank`. + +```js +Link.configure({ + HTMLAttributes: { + // Change rel to different value + // Allow search engines to follow links(remove nofollow) + rel: 'noopener noreferrer', + // Remove target entirely so links open in current tab + target: null, + }, +}) +``` + +### validate + +A function that validates every autolinked link. If it exists, it will be called with the link href as argument. If it returns `false`, the link will be removed. + +Can be used to set rules for example excluding or including certain domains, tlds, etc. + +```js +// only autolink urls with a protocol +Link.configure({ + validate: (href) => /^https?:\/\//.test(href), +}) +``` + +## Commands + +### setLink() + +Links the selected text. + +```js +editor.commands.setLink({ href: 'https://example.com' }) +editor.commands.setLink({ href: 'https://example.com', target: '_blank' }) +``` + +### toggleLink() + +Adds or removes a link from the selected text. + +```js +editor.commands.toggleLink({ href: 'https://example.com' }) +editor.commands.toggleLink({ href: 'https://example.com', target: '_blank' }) +``` + +### unsetLink() + +Removes a link. + +```js +editor.commands.unsetLink() +``` + +## Keyboard shortcuts + + + This extension doesn’t bind a specific keyboard shortcut. You would probably open your custom UI + on `Mod-k` though. + + +## Get the current value + +Did you know that you can use [`getAttributes`](/editor/api/editor#getattributes) to find out which attributes, for example which href, is currently set? Don’t confuse it with a [command](/editor/api/commands) (which changes the state), it’s just a method. Here is how that could look like: + +```js +this.editor.getAttributes('link').href +``` + +## Source code + +[packages/extension-link/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-link/) diff --git a/src/content/editor/extensions/marks/strike.mdx b/src/content/editor/extensions/marks/strike.mdx new file mode 100644 index 0000000..88d1e69 --- /dev/null +++ b/src/content/editor/extensions/marks/strike.mdx @@ -0,0 +1,91 @@ +--- +title: Strike extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-strike.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-strike + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-strike.svg + url: https://npmcharts.com/compare/@tiptap/extension-strike?minimal=true + label: Downloads +extension: + name: Strike + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-strike + description: Cut through the words you wrote if you’re too afraid to delete it. + type: mark + icon: Strikethrough +meta: + title: Strike extension | Tiptap Editor Docs + description: Learn how to use the Strike extension in Tiptap to cut through the words you wrote if you're too afraid to delete it. + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +Use this extension to render ~~striked text~~. If you pass ``, ``, `` tags, or text with inline `style` attributes setting `text-decoration: line-through` in the editor’s initial content, they all will be rendered accordingly. + +Type ~~ text between tildes ~~ and it will be magically ~~striked through~~ while you type. + + + The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text striked through, regardless of the method will be normalized to `` HTML tags. + + + + +## Install + +```bash +npm install @tiptap/extension-strike +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Strike.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setStrike() + +Mark text as striked. + +```js +editor.commands.setStrike() +``` + +### toggleStrike() + +Toggle strike mark. + +```js +editor.commands.toggleStrike() +``` + +### unsetStrike() + +Remove strike mark. + +```js +editor.commands.unsetStrike() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| -------------- | ---------------------------------------------------- | ------------------------------------------------ | +| toggleStrike() | Control + Shift + S | Cmd + Shift + S | + +## Source code + +[packages/extension-strike/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-strike/) diff --git a/src/content/editor/extensions/marks/subscript.mdx b/src/content/editor/extensions/marks/subscript.mdx new file mode 100644 index 0000000..30fb0db --- /dev/null +++ b/src/content/editor/extensions/marks/subscript.mdx @@ -0,0 +1,89 @@ +--- +title: Subscript extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-subscript.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-subscript + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-subscript.svg + url: https://npmcharts.com/compare/@tiptap/extension-subscript?minimal=true + label: Downloads +extension: + name: Subscript + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-subscript + description: Write slightly below the normal line to show you’re unique. + type: mark + icon: Subscript +meta: + title: Subscript extension | Tiptap Editor Docs + description: Learn how to use the Subscript extension in Tiptap to write slightly below the normal line and show your unique style. + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +Use this extension to render text in subscript. If you pass `` or text with `vertical-align: sub` as inline style in the editor’s initial content, both will be rendered accordingly. + + + The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text in subscript, regardless of the method will be normalized to `` HTML tags. + + + + +## Install + +```bash +npm install @tiptap/extension-subscript +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Subscript.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setSubscript() + +Mark text as subscript. + +```js +editor.commands.setSubscript() +``` + +### toggleSubscript() + +Toggle subscript mark. + +```js +editor.commands.toggleSubscript() +``` + +### unsetSubscript() + +Remove subscript mark. + +```js +editor.commands.unsetSubscript() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ----------------- | --------------------------------- | ----------------------------- | +| toggleSubscript() | Control + , | Cmd + , | + +## Source code + +[packages/extension-subscript/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-subscript/) diff --git a/src/content/editor/extensions/marks/superscript.mdx b/src/content/editor/extensions/marks/superscript.mdx new file mode 100644 index 0000000..06c35e8 --- /dev/null +++ b/src/content/editor/extensions/marks/superscript.mdx @@ -0,0 +1,89 @@ +--- +title: Superscript extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-superscript.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-superscript + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-superscript.svg + url: https://npmcharts.com/compare/@tiptap/extension-superscript?minimal=true + label: Downloads +extension: + name: Superscript + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-superscript + description: Write slightly above the normal line to show you’re just next level. + type: mark + icon: Superscript +meta: + title: Superscript extension | Tiptap Editor Docs + description: Use the Superscript extension in Tiptap to write text above the normal line. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +Use this extension to render text in superscript. If you pass `` or text with `vertical-align: super` as inline style in the editor’s initial content, both will be rendered accordingly. + + + The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text in superscript, regardless of the method will be normalized to `` HTML tags. + + + + +## Install + +```bash +npm install @tiptap/extension-superscript +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Superscript.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setSuperscript() + +Mark text as superscript. + +```js +editor.commands.setSuperscript() +``` + +### toggleSuperscript() + +Toggle superscript mark. + +```js +editor.commands.toggleSuperscript() +``` + +### unsetSuperscript() + +Remove superscript mark. + +```js +editor.commands.unsetSuperscript() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ------------------- | --------------------------------- | ----------------------------- | +| toggleSuperscript() | Control + . | Cmd + . | + +## Source code + +[packages/extension-superscript/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-superscript/) diff --git a/src/content/editor/extensions/marks/text-style.mdx b/src/content/editor/extensions/marks/text-style.mdx new file mode 100644 index 0000000..6874627 --- /dev/null +++ b/src/content/editor/extensions/marks/text-style.mdx @@ -0,0 +1,48 @@ +--- +title: TextStyle extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-text-style.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-text-style + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-text-style.svg + url: https://npmcharts.com/compare/@tiptap/extension-text-style?minimal=true + label: Downloads +extension: + name: Text Style + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-text-style + description: 'Useless extension, just adds tags (required by other extensions though).' + type: mark + icon: Paintbrush +meta: + title: TextStyle extension | Tiptap Editor Docs + description: Use the Text Style extension in Tiptap to add tags with custom styles. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +This mark renders a `` HTML tag and enables you to add a list of styling related attributes, for example font-family, font-size, or color. The extension doesn’t add any styling attribute by default, but other extensions use it as the foundation, for example [`FontFamily`](/editor/extensions/functionality/fontfamily) or [`Color`](/editor/extensions/functionality/color). + + + +## Install + +```bash +npm install @tiptap/extension-text-style +``` + +## Commands + +### removeEmptyTextStyle() + +Remove `` tags without an inline style. + +```js +editor.command.removeEmptyTextStyle() +``` + +## Source code + +[packages/extension-text-style/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-text-style/) diff --git a/src/content/editor/extensions/marks/underline.mdx b/src/content/editor/extensions/marks/underline.mdx new file mode 100644 index 0000000..91373d8 --- /dev/null +++ b/src/content/editor/extensions/marks/underline.mdx @@ -0,0 +1,91 @@ +--- +title: Underline extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-underline.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-underline + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-underline.svg + url: https://npmcharts.com/compare/@tiptap/extension-underline?minimal=true + label: Downloads +meta: + title: Underline extension | Tiptap Editor Docs + description: Add a line below your text to make it look more … underlined with the Tiptap’s … Underline extension. More in the docs! + category: Editor +extension: + name: Underline + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-underline + description: Add a line below your text to make it look more … underlined. + type: mark + icon: Underline +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +Use this extension to render text underlined. If you pass `` tags, or text with inline `style` attributes setting `text-decoration: underline` in the editor’s initial content, they all will be rendered accordingly. + +Be aware that underlined text in the internet usually indicates that it’s a clickable link. Don’t confuse your users with underlined text. + + + The extension will generate the corresponding `` HTML tags when reading contents of the `Editor` instance. All text marked underlined, regardless of the method will be normalized to `` HTML tags. + + + + +## Install + +```bash +npm install @tiptap/extension-underline +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Underline.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setUnderline() + +Marks a text as underlined. + +```js +editor.commands.setUnderline() +``` + +### toggleUnderline() + +Toggles an underline mark. + +```js +editor.commands.toggleUnderline() +``` + +### unsetUnderline() + +Removes an underline mark. + +```js +editor.commands.unsetUnderline() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ----------------- | --------------------------------- | ----------------------------- | +| toggleUnderline() | Control + U | Cmd + U | + +## Source code + +[packages/extension-underline/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-underline/) diff --git a/src/content/editor/extensions/nodes/blockquote.mdx b/src/content/editor/extensions/nodes/blockquote.mdx new file mode 100644 index 0000000..1f44c76 --- /dev/null +++ b/src/content/editor/extensions/nodes/blockquote.mdx @@ -0,0 +1,86 @@ +--- +title: Blockquote extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-blockquote.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-blockquote + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-blockquote.svg + url: https://npmcharts.com/compare/@tiptap/extension-blockquote?minimal=true + label: Downloads +extension: + name: Blockquote + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-blockquote + description: Quoting other people will make you look clever. + type: node + icon: TextQuote +meta: + title: Blockquote extension | Tiptap Editor Docs + description: Use the Blockquote extension in Tiptap to enable the quote HTML tag in the editor. Learn more in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' + +The Blockquote extension enables you to use the `
    ` HTML tag in the editor. This is great to … show quotes in the editor, you know? + +Type at the beginning of a new line and it will magically transform to a blockquote. + + + +## Install + +```bash +npm install @tiptap/extension-blockquote +``` + +## Settings + +### HTMLAttributes + +Custom HTML attributes that should be added to the rendered HTML tag. + +```js +Blockquote.configure({ + HTMLAttributes: { + class: 'my-custom-class', + }, +}) +``` + +## Commands + +### setBlockquote() + +Wrap content in a blockquote. + +```js +editor.commands.setBlockquote() +``` + +### toggleBlockquote() + +Wrap or unwrap a blockquote. + +```js +editor.commands.toggleBlockquote() +``` + +### unsetBlockquote() + +Unwrap a blockquote. + +```js +editor.commands.unsetBlockquote() +``` + +## Keyboard shortcuts + +| Command | Windows/Linux | macOS | +| ----------------- | ---------------------------------------------------- | ------------------------------------------------ | +| Toggle Blockquote | Control + Shift + B | Cmd + Shift + B | + +## Source code + +[packages/extension-blockquote/](https://github.com/ueberdosis/tiptap/blob/main/packages/extension-blockquote/) diff --git a/src/content/editor/extensions/nodes/bullet-list.mdx b/src/content/editor/extensions/nodes/bullet-list.mdx new file mode 100644 index 0000000..06b292c --- /dev/null +++ b/src/content/editor/extensions/nodes/bullet-list.mdx @@ -0,0 +1,112 @@ +--- +title: BulletList extension +tags: + - type: image + src: https://img.shields.io/npm/v/@tiptap/extension-bullet-list.svg?label=version + url: https://www.npmjs.com/package/@tiptap/extension-bullet-list + label: Version + - type: image + src: https://img.shields.io/npm/dm/@tiptap/extension-bullet-list.svg + url: https://npmcharts.com/compare/@tiptap/extension-bullet-list?minimal=true + label: Downloads +extension: + name: BulletList + link: https://github.com/ueberdosis/tiptap/tree/main/packages/extension-bullet-list + description: Everything looks more serious with a few bullet points. + type: node + icon: List +meta: + title: BulletList extension | Tiptap Editor Docs + description: Use the Bullet list extension to enable bullet lists in your Tiptap Editor. Learn more about lists in our docs! + category: Editor +--- + +import { CodeDemo } from '@/components/CodeDemo' +import { Callout } from '@/components/ui/Callout' + +This extension enables you to use bullet lists in the editor. They are rendered as `