From a264916d4fe47b248eb31d8362b58ae8114e95e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20D=C3=A9ramond?= Date: Wed, 26 Feb 2025 21:41:01 +0100 Subject: [PATCH] docs: migration to Astro Co-authored-by: HiDeoo <494699+HiDeoo@users.noreply.github.com> --- .github/workflows/browserstack.yml | 8 +- .github/workflows/bundlewatch.yml | 8 +- .../workflows/calibreapp-image-actions.yml | 13 +- .github/workflows/codeql.yml | 24 +- .github/workflows/cspell.yml | 8 +- .github/workflows/css.yml | 8 +- .github/workflows/docs.yml | 8 +- .github/workflows/js.yml | 8 +- .github/workflows/lint.yml | 8 +- .github/workflows/release-notes.yml | 6 +- .gitignore | 9 + .prettierignore | 13 + build/generate-sri.mjs | 4 +- config.yml | 52 + hugo.yml | 102 - package-lock.json | 9731 ++++++++++++++++- package.json | 31 +- site-new/.prettierrc.json | 8 + site-new/astro.config.ts | 25 + site-new/postcss.config.cjs | 3 + site-new/src/assets/application.js | 29 + .../src/assets/examples/album-rtl/index.astro | 211 + .../src/assets/examples/album/index.astro | 210 + .../src/assets/examples/badges/badges.css | 3 + .../src/assets/examples/badges/index.astro | 147 + .../src/assets/examples/blog-rtl/index.astro | 203 + site-new/src/assets/examples/blog/blog.css | 69 + .../src/assets/examples/blog/blog.rtl.css | 69 + site-new/src/assets/examples/blog/index.astro | 255 + .../examples/breadcrumbs/breadcrumbs.css | 50 + .../assets/examples/breadcrumbs/index.astro | 85 + .../src/assets/examples/buttons/index.astro | 86 + .../assets/examples/carousel-rtl/index.astro | 166 + .../src/assets/examples/carousel/carousel.css | 82 + .../assets/examples/carousel/carousel.rtl.css | 74 + .../src/assets/examples/carousel/index.astro | 165 + .../examples/cheatsheet-rtl/index.astro | 1594 +++ .../assets/examples/cheatsheet/cheatsheet.css | 164 + .../assets/examples/cheatsheet/cheatsheet.js | 73 + .../examples/cheatsheet/cheatsheet.rtl.css | 157 + .../assets/examples/cheatsheet/index.astro | 1557 +++ .../assets/examples/checkout-rtl/index.astro | 231 + .../src/assets/examples/checkout/checkout.css | 3 + .../src/assets/examples/checkout/checkout.js | 19 + .../src/assets/examples/checkout/index.astro | 231 + site-new/src/assets/examples/cover/cover.css | 50 + .../src/assets/examples/cover/index.astro | 31 + .../examples/dashboard-rtl/dashboard.js | 51 + .../assets/examples/dashboard-rtl/index.astro | 250 + .../assets/examples/dashboard/dashboard.css | 92 + .../assets/examples/dashboard/dashboard.js | 51 + .../examples/dashboard/dashboard.rtl.css | 88 + .../src/assets/examples/dashboard/index.astro | 249 + .../assets/examples/dropdowns/dropdowns.css | 71 + .../src/assets/examples/dropdowns/index.astro | 459 + .../src/assets/examples/features/features.css | 26 + .../src/assets/examples/features/index.astro | 337 + .../examples/features/unsplash-photo-1.jpg | Bin 0 -> 10451 bytes .../examples/features/unsplash-photo-2.jpg | Bin 0 -> 113018 bytes .../examples/features/unsplash-photo-3.jpg | Bin 0 -> 40607 bytes .../src/assets/examples/footers/index.astro | 184 + site-new/src/assets/examples/grid/grid.css | 13 + site-new/src/assets/examples/grid/index.astro | 185 + .../src/assets/examples/headers/headers.css | 15 + .../src/assets/examples/headers/index.astro | 294 + .../assets/examples/heroes/bootstrap-docs.png | Bin 0 -> 371399 bytes .../examples/heroes/bootstrap-themes.png | Bin 0 -> 278159 bytes .../src/assets/examples/heroes/heroes.css | 3 + .../src/assets/examples/heroes/index.astro | 124 + .../src/assets/examples/jumbotron/index.astro | 43 + .../assets/examples/jumbotrons/index.astro | 79 + .../assets/examples/jumbotrons/jumbotrons.css | 1 + .../assets/examples/list-groups/index.astro | 222 + .../examples/list-groups/list-groups.css | 63 + .../src/assets/examples/masonry/index.astro | 106 + .../src/assets/examples/modals/index.astro | 147 + .../src/assets/examples/modals/modals.css | 8 + .../assets/examples/navbar-bottom/index.astro | 42 + .../assets/examples/navbar-fixed/index.astro | 40 + .../examples/navbar-fixed/navbar-fixed.css | 5 + .../assets/examples/navbar-static/index.astro | 40 + .../examples/navbar-static/navbar-static.css | 4 + .../examples/navbars-offcanvas/index.astro | 147 + .../navbars-offcanvas/navbars-offcanvas.css | 7 + .../src/assets/examples/navbars/index.astro | 450 + .../src/assets/examples/navbars/navbars.css | 7 + .../examples/offcanvas-navbar/index.astro | 140 + .../offcanvas-navbar/offcanvas-navbar.css | 52 + .../offcanvas-navbar/offcanvas-navbar.js | 7 + .../src/assets/examples/pricing/index.astro | 186 + .../src/assets/examples/pricing/pricing.css | 11 + .../src/assets/examples/product/index.astro | 146 + .../src/assets/examples/product/product.css | 69 + .../src/assets/examples/sidebars/index.astro | 352 + .../src/assets/examples/sidebars/sidebars.css | 63 + .../src/assets/examples/sidebars/sidebars.js | 8 + .../src/assets/examples/sign-in/index.astro | 31 + .../src/assets/examples/sign-in/sign-in.css | 33 + .../examples/starter-template/index.astro | 108 + .../examples/sticky-footer-navbar/index.astro | 52 + .../sticky-footer-navbar.css | 7 + .../assets/examples/sticky-footer/index.astro | 23 + .../examples/sticky-footer/sticky-footer.css | 9 + site-new/src/assets/search.js | 45 + .../src/assets}/snippets.js | 0 site-new/src/components/Ads.astro | 9 + site-new/src/components/DocsSidebar.astro | 84 + site-new/src/components/Scripts.astro | 26 + site-new/src/components/StackBlitz.astro | 71 + site-new/src/components/TableOfContents.astro | 28 + site-new/src/components/footer/Footer.astro | 79 + site-new/src/components/head/Analytics.astro | 15 + site-new/src/components/head/Favicons.astro | 11 + site-new/src/components/head/Head.astro | 53 + site-new/src/components/head/Scss.astro | 6 + site-new/src/components/head/Social.astro | 34 + site-new/src/components/head/Stylesheet.astro | 15 + site-new/src/components/header/Header.astro | 20 + site-new/src/components/header/LinkItem.astro | 25 + .../src/components/header/Navigation.astro | 180 + site-new/src/components/header/Skippy.astro | 22 + site-new/src/components/header/Versions.astro | 92 + .../src/components/home/CSSVariables.astro | 71 + .../components/home/ComponentUtilities.astro | 158 + site-new/src/components/home/Customize.astro | 69 + site-new/src/components/home/GetStarted.astro | 115 + site-new/src/components/home/Icons.astro | 38 + site-new/src/components/home/MastHead.astro | 57 + site-new/src/components/home/Plugins.astro | 90 + site-new/src/components/home/Themes.astro | 39 + .../icons/BootstrapWhiteFillIcon.astro | 18 + .../components/icons/CircleSquareIcon.astro | 23 + .../components/icons/DropletFillIcon.astro | 24 + .../src/components/icons/GitHubIcon.astro | 24 + .../src/components/icons/HamburgerIcon.astro | 22 + .../components/icons/OpenCollectiveIcon.astro | 26 + site-new/src/components/icons/Symbols.astro | 142 + .../src/components/icons/TwitterIcon.astro | 23 + .../src/components/shortcodes/AddedIn.astro | 16 + .../src/components/shortcodes/BsTable.astro | 16 + .../src/components/shortcodes/Callout.astro | 44 + .../CalloutDeprecatedDarkVariants.astro | 19 + site-new/src/components/shortcodes/Code.astro | 156 + .../components/shortcodes/DeprecatedIn.astro | 17 + .../src/components/shortcodes/Example.astro | 105 + .../src/components/shortcodes/GuideFooter.mdx | 3 + .../shortcodes/JsDataAttributes.mdx | 0 .../src/components/shortcodes/JsDismiss.astro | 26 + .../src/components/shortcodes/JsDocs.astro | 65 + .../components/shortcodes/Placeholder.astro | 27 + .../src/components/shortcodes/ScssDocs.astro | 65 + .../src/components/shortcodes/Table.astro | 31 + .../src/components/shortcodes/TableContent.md | 27 + .../content/callouts/danger-async-methods.md | 1 + .../callouts/info-mediaqueries-breakpoints.md | 1 + .../src/content/callouts/info-npm-starter.md | 1 + .../callouts/info-prefersreducedmotion.md | 1 + .../src/content/callouts/info-sanitizer.md | 1 + .../warning-color-assistive-technologies.md | 1 + .../warning-data-bs-title-vs-title.md | 1 + .../content/callouts/warning-input-support.md | 1 + site-new/src/content/config.ts | 40 + site-new/src/content/docs/about/brand.mdx | 41 + site-new/src/content/docs/about/license.mdx | 32 + site-new/src/content/docs/about/overview.mdx | 27 + site-new/src/content/docs/about/team.mdx | 23 + .../src/content/docs/about/translations.mdx | 20 + .../src/content/docs/components/accordion.mdx | 155 + .../src/content/docs/components/alerts.mdx | 220 + .../src/content/docs/components/badge.mdx | 83 + .../content/docs/components/breadcrumb.mdx | 98 + .../content/docs/components/button-group.mdx | 224 + .../src/content/docs/components/buttons.mdx | 213 + site-new/src/content/docs/components/card.mdx | 669 ++ .../src/content/docs/components/carousel.mdx | 420 + .../content/docs/components/close-button.mdx | 46 + .../src/content/docs/components/collapse.mdx | 184 + .../src/content/docs/components/dropdowns.mdx | 1085 ++ .../content/docs/components/list-group.mdx | 460 + .../src/content/docs/components/modal.mdx | 859 ++ .../src/content/docs/components/navbar.mdx | 762 ++ .../src/content/docs/components/navs-tabs.mdx | 662 ++ .../src/content/docs/components/offcanvas.mdx | 329 + .../content/docs/components/pagination.mdx | 159 + .../content/docs/components/placeholders.mdx | 134 + .../src/content/docs/components/popovers.mdx | 258 + .../src/content/docs/components/progress.mdx | 176 + .../src/content/docs/components/scrollspy.mdx | 423 + .../src/content/docs/components/spinners.mdx | 175 + .../src/content/docs/components/toasts.mdx | 363 + .../src/content/docs/components/tooltips.mdx | 276 + site-new/src/content/docs/content/figures.mdx | 27 + site-new/src/content/docs/content/images.mdx | 51 + site-new/src/content/docs/content/reboot.mdx | 443 + site-new/src/content/docs/content/tables.mdx | 819 ++ .../src/content/docs/content/typography.mdx | 260 + .../content/docs/customize/color-modes.mdx | 200 + site-new/src/content/docs/customize/color.mdx | 511 + .../src/content/docs/customize/components.mdx | 75 + .../content/docs/customize/css-variables.mdx | 70 + .../src/content/docs/customize/optimize.mdx | 90 + .../src/content/docs/customize/options.mdx | 30 + .../src/content/docs/customize/overview.mdx | 51 + site-new/src/content/docs/customize/sass.mdx | 310 + site-new/src/content/docs/extend/approach.mdx | 84 + site-new/src/content/docs/extend/icons.mdx | 42 + .../src/content/docs/forms/checks-radios.mdx | 277 + .../content/docs/forms/floating-labels.mdx | 156 + .../src/content/docs/forms/form-control.mdx | 166 + .../src/content/docs/forms/input-group.mdx | 295 + site-new/src/content/docs/forms/layout.mdx | 307 + site-new/src/content/docs/forms/overview.mdx | 110 + site-new/src/content/docs/forms/range.mdx | 39 + site-new/src/content/docs/forms/select.mdx | 69 + .../src/content/docs/forms/validation.mdx | 380 + .../docs/getting-started/accessibility.mdx | 60 + .../docs/getting-started/best-practices.mdx | 18 + .../docs/getting-started/browsers-devices.mdx | 73 + .../content/docs/getting-started/contents.mdx | 111 + .../docs/getting-started/contribute.mdx | 62 + .../content/docs/getting-started/download.mdx | 115 + .../docs/getting-started/introduction.mdx | 158 + .../docs/getting-started/javascript.mdx | 305 + .../content/docs/getting-started/parcel.mdx | 34 +- .../src/content/docs/getting-started/rfs.mdx | 84 + .../src/content/docs/getting-started/rtl.mdx | 176 + .../src/content/docs/getting-started/vite.mdx | 47 +- .../content/docs/getting-started/webpack.mdx | 38 +- .../src/content/docs/helpers/clearfix.mdx | 32 + .../content/docs/helpers/color-background.mdx | 42 + .../content/docs/helpers/colored-links.mdx | 33 + .../src/content/docs/helpers/focus-ring.mdx | 56 + .../src/content/docs/helpers/icon-link.mdx | 74 + .../src/content/docs/helpers/position.mdx | 61 + site-new/src/content/docs/helpers/ratio.mdx | 71 + site-new/src/content/docs/helpers/stacks.mdx | 71 + .../content/docs/helpers/stretched-link.mdx | 64 + .../content/docs/helpers/text-truncation.mdx | 19 + .../content/docs/helpers/vertical-rule.mdx | 37 + .../content/docs/helpers/visually-hidden.mdx | 25 + .../src/content/docs/layout/breakpoints.mdx | 170 + site-new/src/content/docs/layout/columns.mdx | 312 + .../src/content/docs/layout/containers.mdx | 89 + site-new/src/content/docs/layout/css-grid.mdx | 235 + site-new/src/content/docs/layout/grid.mdx | 498 + site-new/src/content/docs/layout/gutters.mdx | 151 + .../src/content/docs/layout/utilities.mdx | 23 + site-new/src/content/docs/layout/z-index.mdx | 14 + .../src/content/docs/migration.mdx | 134 +- site-new/src/content/docs/utilities/api.mdx | 621 ++ .../src/content/docs/utilities/background.mdx | 138 + .../src/content/docs/utilities/borders.mdx | 172 + .../src/content/docs/utilities/colors.mdx | 131 + .../src/content/docs/utilities/display.mdx | 42 +- site-new/src/content/docs/utilities/flex.mdx | 652 ++ site-new/src/content/docs/utilities/float.mdx | 46 + .../content/docs/utilities/interactions.mdx | 36 + site-new/src/content/docs/utilities/link.mdx | 83 + .../src/content/docs/utilities/object-fit.mdx | 55 + .../src/content/docs/utilities/opacity.mdx | 29 + .../src/content/docs/utilities/overflow.mdx | 97 + .../src/content/docs/utilities/position.mdx | 118 + .../src/content/docs/utilities/shadows.mdx | 26 + .../src/content/docs/utilities/sizing.mdx | 52 + .../src/content/docs/utilities/spacing.mdx | 146 + site-new/src/content/docs/utilities/text.mdx | 136 + .../content/docs/utilities/vertical-align.mdx | 42 + .../src/content/docs/utilities/visibility.mdx | 35 + .../src/content/docs/utilities/z-index.mdx | 46 + site-new/src/env.d.ts | 10 + site-new/src/layouts/BaseLayout.astro | 78 + site-new/src/layouts/DocsLayout.astro | 124 + site-new/src/layouts/ExamplesLayout.astro | 210 + site-new/src/layouts/RedirectLayout.astro | 23 + site-new/src/layouts/SingleLayout.astro | 37 + site-new/src/libs/astro.ts | 195 + site-new/src/libs/bootstrap.ts | 50 + site-new/src/libs/config.ts | 81 + site-new/src/libs/content.ts | 12 + site-new/src/libs/data.ts | 147 + site-new/src/libs/examples.ts | 74 + site-new/src/libs/icon.ts | 5 + site-new/src/libs/image.ts | 13 + site-new/src/libs/layout.ts | 7 + site-new/src/libs/path.ts | 71 + site-new/src/libs/placeholder.ts | 254 + site-new/src/libs/prism.ts | 36 + site-new/src/libs/rehype.ts | 34 + site-new/src/libs/remark.ts | 161 + site-new/src/libs/toc.ts | 42 + site-new/src/libs/utils.ts | 36 + site-new/src/libs/validation.ts | 26 + site-new/src/pages/404.astro | 17 + site-new/src/pages/[...alias].astro | 56 + .../src/pages/docs/[version]/[...slug].astro | 25 + .../docs/[version]/examples/[...asset].ts | 32 + .../[version]/examples/[...example].astro | 40 + .../pages/docs/[version]/examples/index.astro | 152 + site-new/src/pages/docs/[version]/index.astro | 15 + site-new/src/pages/docs/index.astro | 6 + site-new/src/pages/docs/versions.astro | 50 + site-new/src/pages/examples.astro | 6 + site-new/src/pages/index.astro | 24 + site-new/src/pages/robots.txt.ts | 20 + site-new/src/scss/_ads.scss | 38 + site-new/src/scss/_anchor.scss | 21 + site-new/src/scss/_brand.scss | 60 + site-new/src/scss/_buttons.scss | 52 + site-new/src/scss/_callouts.scss | 40 + site-new/src/scss/_clipboard-js.scss | 44 + site-new/src/scss/_colors.scss | 156 + site-new/src/scss/_component-examples.scss | 407 + .../src}/scss/_content.scss | 0 site-new/src/scss/_footer.scss | 16 + site-new/src/scss/_layout.scss | 57 + .../src}/scss/_masthead.scss | 0 site-new/src/scss/_navbar.scss | 129 + site-new/src/scss/_placeholder-img.scss | 15 + .../src}/scss/_scrolling.scss | 0 site-new/src/scss/_search.scss | 172 + site-new/src/scss/_sidebar.scss | 64 + site-new/src/scss/_skippy.scss | 7 + site-new/src/scss/_syntax.scss | 98 + site-new/src/scss/_toc.scss | 93 + site-new/src/scss/_variables.scss | 35 + site-new/src/scss/docs.scss | 59 + site-new/src/types/auto-import.d.ts | 21 + site-new/src/types/window.d.ts | 25 + site-new/static/CNAME | 1 + site-new/static/docs/[version]/assets/CNAME | 1 + .../[version]/assets/apple-touch-icon.png | Bin 0 -> 7650 bytes .../assets/brand/bootstrap-logo-black.svg | 1 + .../assets/brand/bootstrap-logo-shadow.png | Bin 0 -> 48625 bytes .../assets/brand/bootstrap-logo-white.svg | 1 + .../[version]/assets/brand/bootstrap-logo.svg | 1 + .../assets/brand/bootstrap-social.png | Bin 0 -> 724582 bytes .../static/docs/[version]/assets/favicon.ico | Bin 0 -> 15086 bytes .../[version]/assets/img/bootstrap-icons.png | Bin 0 -> 40798 bytes .../assets/img/bootstrap-icons@2x.png | Bin 0 -> 125442 bytes .../assets/img/bootstrap-themes-collage.png | Bin 0 -> 74829 bytes .../img/bootstrap-themes-collage@2x.png | Bin 0 -> 244640 bytes .../[version]/assets/img/bootstrap-themes.png | Bin 0 -> 88695 bytes .../assets/img/bootstrap-themes@2x.png | Bin 0 -> 278159 bytes .../assets/img/examples/album-rtl.png | Bin 0 -> 6392 bytes .../assets/img/examples/album-rtl@2x.png | Bin 0 -> 15450 bytes .../[version]/assets/img/examples/album.png | Bin 0 -> 10760 bytes .../assets/img/examples/album@2x.png | Bin 0 -> 25026 bytes .../[version]}/assets/img/examples/badges.png | Bin .../assets/img/examples/badges@2x.png | Bin .../assets/img/examples/blog-rtl.png | Bin 0 -> 12545 bytes .../assets/img/examples/blog-rtl@2x.png | Bin 0 -> 31035 bytes .../[version]/assets/img/examples/blog.png | Bin 0 -> 15245 bytes .../[version]/assets/img/examples/blog@2x.png | Bin 0 -> 36944 bytes .../assets/img/examples/breadcrumbs.png | Bin 0 -> 2382 bytes .../assets/img/examples/breadcrumbs@2x.png | Bin .../assets/img/examples/buttons.png | Bin .../assets/img/examples/buttons@2x.png | Bin .../assets/img/examples/carousel-rtl.png | Bin 0 -> 10344 bytes .../assets/img/examples/carousel-rtl@2x.png | Bin 0 -> 24535 bytes .../assets/img/examples/carousel.png | Bin 0 -> 13314 bytes .../assets/img/examples/carousel@2x.png | Bin 0 -> 31465 bytes .../assets/img/examples/cheatsheet-rtl.png | Bin 0 -> 6089 bytes .../assets/img/examples/cheatsheet-rtl@2x.png | Bin 0 -> 13863 bytes .../assets/img/examples/cheatsheet.png | Bin 0 -> 8132 bytes .../assets/img/examples/cheatsheet@2x.png | Bin 0 -> 19324 bytes .../assets/img/examples/checkout-rtl.png | Bin 0 -> 8848 bytes .../assets/img/examples/checkout-rtl@2x.png | Bin 0 -> 21965 bytes .../assets/img/examples/checkout.png | Bin 0 -> 7639 bytes .../assets/img/examples/checkout@2x.png | Bin 0 -> 19105 bytes .../[version]/assets/img/examples/cover.png | Bin 0 -> 7240 bytes .../assets/img/examples/cover@2x.png | Bin 0 -> 17927 bytes .../assets/img/examples/dashboard-rtl.png | Bin 0 -> 8261 bytes .../assets/img/examples/dashboard-rtl@2x.png | Bin 0 -> 19399 bytes .../assets/img/examples/dashboard.png | Bin 0 -> 11914 bytes .../assets/img/examples/dashboard@2x.png | Bin 0 -> 26556 bytes .../assets/img/examples/dropdowns.png | Bin 0 -> 6146 bytes .../assets/img/examples/dropdowns@2x.png | Bin 0 -> 15203 bytes .../assets/img/examples/features.png | Bin 0 -> 6067 bytes .../assets/img/examples/features@2x.png | Bin 0 -> 15002 bytes .../[version]/assets/img/examples/footers.png | Bin 0 -> 4324 bytes .../assets/img/examples/footers@2x.png | Bin 0 -> 10238 bytes .../[version]}/assets/img/examples/grid.png | Bin .../assets/img/examples/grid@2x.png | Bin .../[version]/assets/img/examples/headers.png | Bin 0 -> 5197 bytes .../assets/img/examples/headers@2x.png | Bin 0 -> 12639 bytes .../[version]/assets/img/examples/heroes.png | Bin 0 -> 9017 bytes .../assets/img/examples/heroes@2x.png | Bin 0 -> 23433 bytes .../assets/img/examples/jumbotron.png | Bin 0 -> 9155 bytes .../assets/img/examples/jumbotron@2x.png | Bin 0 -> 23316 bytes .../assets/img/examples/jumbotrons.png | Bin .../assets/img/examples/jumbotrons@2x.png | Bin .../assets/img/examples/list-groups.png | Bin 0 -> 7134 bytes .../assets/img/examples/list-groups@2x.png | Bin 0 -> 17804 bytes .../[version]/assets/img/examples/masonry.png | Bin 0 -> 15253 bytes .../assets/img/examples/masonry@2x.png | Bin 0 -> 37733 bytes .../[version]/assets/img/examples/modals.png | Bin 0 -> 4814 bytes .../assets/img/examples/modals@2x.png | Bin 0 -> 11689 bytes .../assets/img/examples/navbar-bottom.png | Bin 0 -> 4873 bytes .../assets/img/examples/navbar-bottom@2x.png | Bin 0 -> 11666 bytes .../assets/img/examples/navbar-fixed.png | Bin 0 -> 5911 bytes .../assets/img/examples/navbar-fixed@2x.png | Bin 0 -> 14103 bytes .../assets/img/examples/navbar-static.png | Bin 0 -> 6624 bytes .../assets/img/examples/navbar-static@2x.png | Bin 0 -> 15155 bytes .../assets/img/examples/navbars-offcanvas.png | Bin 0 -> 6864 bytes .../img/examples/navbars-offcanvas@2x.png | Bin 0 -> 17070 bytes .../[version]/assets/img/examples/navbars.png | Bin 0 -> 13124 bytes .../assets/img/examples/navbars@2x.png | Bin 0 -> 31168 bytes .../assets/img/examples/offcanvas-navbar.png | Bin 0 -> 9691 bytes .../img/examples/offcanvas-navbar@2x.png | Bin 0 -> 23975 bytes .../[version]/assets/img/examples/pricing.png | Bin 0 -> 11621 bytes .../assets/img/examples/pricing@2x.png | Bin 0 -> 29088 bytes .../[version]/assets/img/examples/product.png | Bin 0 -> 12906 bytes .../assets/img/examples/product@2x.png | Bin 0 -> 27953 bytes .../assets/img/examples/sidebars.png | Bin 0 -> 12287 bytes .../assets/img/examples/sidebars@2x.png | Bin 0 -> 33499 bytes .../[version]/assets/img/examples/sign-in.png | Bin 0 -> 2199 bytes .../assets/img/examples/sign-in@2x.png | Bin 0 -> 4568 bytes .../assets/img/examples/starter-template.png | Bin 0 -> 7753 bytes .../img/examples/starter-template@2x.png | Bin 0 -> 20134 bytes .../img/examples/sticky-footer-navbar.png | Bin 0 -> 6979 bytes .../img/examples/sticky-footer-navbar@2x.png | Bin 0 -> 15836 bytes .../assets/img/examples/sticky-footer.png | Bin 0 -> 4280 bytes .../assets/img/examples/sticky-footer@2x.png | Bin 0 -> 9665 bytes .../img/favicons/android-chrome-192x192.png | Bin 0 -> 8364 bytes .../img/favicons/android-chrome-512x512.png | Bin 0 -> 23832 bytes .../assets/img/favicons/apple-touch-icon.png | Bin 0 -> 7650 bytes .../assets/img/favicons/favicon-16x16.png | Bin 0 -> 525 bytes .../assets/img/favicons/favicon-32x32.png | Bin 0 -> 1159 bytes .../[version]/assets/img/favicons/favicon.ico | Bin 0 -> 15086 bytes .../assets/img/favicons/manifest.json | 20 + .../assets/img/favicons/safari-pinned-tab.svg | 1 + .../assets/img/guides/bootstrap-parcel.png | Bin 0 -> 161826 bytes .../assets/img/guides/bootstrap-parcel@2x.png | Bin 0 -> 564766 bytes .../assets/img/guides/bootstrap-vite.png | Bin 0 -> 169189 bytes .../assets/img/guides/bootstrap-vite@2x.png | Bin 0 -> 558538 bytes .../assets/img/guides/bootstrap-webpack.png | Bin 0 -> 169872 bytes .../img/guides/bootstrap-webpack@2x.png | Bin 0 -> 572482 bytes .../guides/parcel-dev-server-bootstrap.png | Bin 0 -> 15565 bytes .../assets/img/guides/parcel-dev-server.png | Bin 0 -> 13933 bytes .../img/guides/vite-dev-server-bootstrap.png | Bin 0 -> 14001 bytes .../assets/img/guides/vite-dev-server.png | Bin 0 -> 13584 bytes .../guides/webpack-dev-server-bootstrap.png | Bin 0 -> 14702 bytes .../assets/img/guides/webpack-dev-server.png | Bin 0 -> 14197 bytes .../docs/[version]/assets/img/parcel.png | Bin 0 -> 6042 bytes .../static/docs/[version]/assets/img/vite.svg | 1 + .../docs/[version]/assets/img/webpack.svg | 1 + .../docs/[version]}/assets/js/color-modes.js | 0 .../[version]/assets/js/validate-forms.js | 19 + site-new/static/docs/[version]/assets/sw.js | 27 + site-new/static/sw.js | 27 + site-new/tsconfig.json | 13 + site/data/examples.yml | 1 - 452 files changed, 46889 insertions(+), 347 deletions(-) create mode 100644 .prettierignore create mode 100644 config.yml delete mode 100644 hugo.yml create mode 100644 site-new/.prettierrc.json create mode 100644 site-new/astro.config.ts create mode 100644 site-new/postcss.config.cjs create mode 100644 site-new/src/assets/application.js create mode 100644 site-new/src/assets/examples/album-rtl/index.astro create mode 100644 site-new/src/assets/examples/album/index.astro create mode 100644 site-new/src/assets/examples/badges/badges.css create mode 100644 site-new/src/assets/examples/badges/index.astro create mode 100644 site-new/src/assets/examples/blog-rtl/index.astro create mode 100644 site-new/src/assets/examples/blog/blog.css create mode 100644 site-new/src/assets/examples/blog/blog.rtl.css create mode 100644 site-new/src/assets/examples/blog/index.astro create mode 100644 site-new/src/assets/examples/breadcrumbs/breadcrumbs.css create mode 100644 site-new/src/assets/examples/breadcrumbs/index.astro create mode 100644 site-new/src/assets/examples/buttons/index.astro create mode 100644 site-new/src/assets/examples/carousel-rtl/index.astro create mode 100644 site-new/src/assets/examples/carousel/carousel.css create mode 100644 site-new/src/assets/examples/carousel/carousel.rtl.css create mode 100644 site-new/src/assets/examples/carousel/index.astro create mode 100644 site-new/src/assets/examples/cheatsheet-rtl/index.astro create mode 100644 site-new/src/assets/examples/cheatsheet/cheatsheet.css create mode 100644 site-new/src/assets/examples/cheatsheet/cheatsheet.js create mode 100644 site-new/src/assets/examples/cheatsheet/cheatsheet.rtl.css create mode 100644 site-new/src/assets/examples/cheatsheet/index.astro create mode 100644 site-new/src/assets/examples/checkout-rtl/index.astro create mode 100644 site-new/src/assets/examples/checkout/checkout.css create mode 100644 site-new/src/assets/examples/checkout/checkout.js create mode 100644 site-new/src/assets/examples/checkout/index.astro create mode 100644 site-new/src/assets/examples/cover/cover.css create mode 100644 site-new/src/assets/examples/cover/index.astro create mode 100644 site-new/src/assets/examples/dashboard-rtl/dashboard.js create mode 100644 site-new/src/assets/examples/dashboard-rtl/index.astro create mode 100644 site-new/src/assets/examples/dashboard/dashboard.css create mode 100644 site-new/src/assets/examples/dashboard/dashboard.js create mode 100644 site-new/src/assets/examples/dashboard/dashboard.rtl.css create mode 100644 site-new/src/assets/examples/dashboard/index.astro create mode 100644 site-new/src/assets/examples/dropdowns/dropdowns.css create mode 100644 site-new/src/assets/examples/dropdowns/index.astro create mode 100644 site-new/src/assets/examples/features/features.css create mode 100644 site-new/src/assets/examples/features/index.astro create mode 100644 site-new/src/assets/examples/features/unsplash-photo-1.jpg create mode 100644 site-new/src/assets/examples/features/unsplash-photo-2.jpg create mode 100644 site-new/src/assets/examples/features/unsplash-photo-3.jpg create mode 100644 site-new/src/assets/examples/footers/index.astro create mode 100644 site-new/src/assets/examples/grid/grid.css create mode 100644 site-new/src/assets/examples/grid/index.astro create mode 100644 site-new/src/assets/examples/headers/headers.css create mode 100644 site-new/src/assets/examples/headers/index.astro create mode 100644 site-new/src/assets/examples/heroes/bootstrap-docs.png create mode 100644 site-new/src/assets/examples/heroes/bootstrap-themes.png create mode 100644 site-new/src/assets/examples/heroes/heroes.css create mode 100644 site-new/src/assets/examples/heroes/index.astro create mode 100644 site-new/src/assets/examples/jumbotron/index.astro create mode 100644 site-new/src/assets/examples/jumbotrons/index.astro create mode 100644 site-new/src/assets/examples/jumbotrons/jumbotrons.css create mode 100644 site-new/src/assets/examples/list-groups/index.astro create mode 100644 site-new/src/assets/examples/list-groups/list-groups.css create mode 100644 site-new/src/assets/examples/masonry/index.astro create mode 100644 site-new/src/assets/examples/modals/index.astro create mode 100644 site-new/src/assets/examples/modals/modals.css create mode 100644 site-new/src/assets/examples/navbar-bottom/index.astro create mode 100644 site-new/src/assets/examples/navbar-fixed/index.astro create mode 100644 site-new/src/assets/examples/navbar-fixed/navbar-fixed.css create mode 100644 site-new/src/assets/examples/navbar-static/index.astro create mode 100644 site-new/src/assets/examples/navbar-static/navbar-static.css create mode 100644 site-new/src/assets/examples/navbars-offcanvas/index.astro create mode 100644 site-new/src/assets/examples/navbars-offcanvas/navbars-offcanvas.css create mode 100644 site-new/src/assets/examples/navbars/index.astro create mode 100644 site-new/src/assets/examples/navbars/navbars.css create mode 100644 site-new/src/assets/examples/offcanvas-navbar/index.astro create mode 100644 site-new/src/assets/examples/offcanvas-navbar/offcanvas-navbar.css create mode 100644 site-new/src/assets/examples/offcanvas-navbar/offcanvas-navbar.js create mode 100644 site-new/src/assets/examples/pricing/index.astro create mode 100644 site-new/src/assets/examples/pricing/pricing.css create mode 100644 site-new/src/assets/examples/product/index.astro create mode 100644 site-new/src/assets/examples/product/product.css create mode 100644 site-new/src/assets/examples/sidebars/index.astro create mode 100644 site-new/src/assets/examples/sidebars/sidebars.css create mode 100644 site-new/src/assets/examples/sidebars/sidebars.js create mode 100644 site-new/src/assets/examples/sign-in/index.astro create mode 100644 site-new/src/assets/examples/sign-in/sign-in.css create mode 100644 site-new/src/assets/examples/starter-template/index.astro create mode 100644 site-new/src/assets/examples/sticky-footer-navbar/index.astro create mode 100644 site-new/src/assets/examples/sticky-footer-navbar/sticky-footer-navbar.css create mode 100644 site-new/src/assets/examples/sticky-footer/index.astro create mode 100644 site-new/src/assets/examples/sticky-footer/sticky-footer.css create mode 100644 site-new/src/assets/search.js rename {site/assets/js/partials => site-new/src/assets}/snippets.js (100%) create mode 100644 site-new/src/components/Ads.astro create mode 100644 site-new/src/components/DocsSidebar.astro create mode 100644 site-new/src/components/Scripts.astro create mode 100644 site-new/src/components/StackBlitz.astro create mode 100644 site-new/src/components/TableOfContents.astro create mode 100644 site-new/src/components/footer/Footer.astro create mode 100644 site-new/src/components/head/Analytics.astro create mode 100644 site-new/src/components/head/Favicons.astro create mode 100644 site-new/src/components/head/Head.astro create mode 100644 site-new/src/components/head/Scss.astro create mode 100644 site-new/src/components/head/Social.astro create mode 100644 site-new/src/components/head/Stylesheet.astro create mode 100644 site-new/src/components/header/Header.astro create mode 100644 site-new/src/components/header/LinkItem.astro create mode 100644 site-new/src/components/header/Navigation.astro create mode 100644 site-new/src/components/header/Skippy.astro create mode 100644 site-new/src/components/header/Versions.astro create mode 100644 site-new/src/components/home/CSSVariables.astro create mode 100644 site-new/src/components/home/ComponentUtilities.astro create mode 100644 site-new/src/components/home/Customize.astro create mode 100644 site-new/src/components/home/GetStarted.astro create mode 100644 site-new/src/components/home/Icons.astro create mode 100644 site-new/src/components/home/MastHead.astro create mode 100644 site-new/src/components/home/Plugins.astro create mode 100644 site-new/src/components/home/Themes.astro create mode 100644 site-new/src/components/icons/BootstrapWhiteFillIcon.astro create mode 100644 site-new/src/components/icons/CircleSquareIcon.astro create mode 100644 site-new/src/components/icons/DropletFillIcon.astro create mode 100644 site-new/src/components/icons/GitHubIcon.astro create mode 100644 site-new/src/components/icons/HamburgerIcon.astro create mode 100644 site-new/src/components/icons/OpenCollectiveIcon.astro create mode 100644 site-new/src/components/icons/Symbols.astro create mode 100644 site-new/src/components/icons/TwitterIcon.astro create mode 100644 site-new/src/components/shortcodes/AddedIn.astro create mode 100644 site-new/src/components/shortcodes/BsTable.astro create mode 100644 site-new/src/components/shortcodes/Callout.astro create mode 100644 site-new/src/components/shortcodes/CalloutDeprecatedDarkVariants.astro create mode 100644 site-new/src/components/shortcodes/Code.astro create mode 100644 site-new/src/components/shortcodes/DeprecatedIn.astro create mode 100644 site-new/src/components/shortcodes/Example.astro create mode 100644 site-new/src/components/shortcodes/GuideFooter.mdx rename site/layouts/partials/js-data-attributes.md => site-new/src/components/shortcodes/JsDataAttributes.mdx (100%) create mode 100644 site-new/src/components/shortcodes/JsDismiss.astro create mode 100644 site-new/src/components/shortcodes/JsDocs.astro create mode 100644 site-new/src/components/shortcodes/Placeholder.astro create mode 100644 site-new/src/components/shortcodes/ScssDocs.astro create mode 100644 site-new/src/components/shortcodes/Table.astro create mode 100644 site-new/src/components/shortcodes/TableContent.md create mode 100644 site-new/src/content/callouts/danger-async-methods.md create mode 100644 site-new/src/content/callouts/info-mediaqueries-breakpoints.md create mode 100644 site-new/src/content/callouts/info-npm-starter.md create mode 100644 site-new/src/content/callouts/info-prefersreducedmotion.md create mode 100644 site-new/src/content/callouts/info-sanitizer.md create mode 100644 site-new/src/content/callouts/warning-color-assistive-technologies.md create mode 100644 site-new/src/content/callouts/warning-data-bs-title-vs-title.md create mode 100644 site-new/src/content/callouts/warning-input-support.md create mode 100644 site-new/src/content/config.ts create mode 100644 site-new/src/content/docs/about/brand.mdx create mode 100644 site-new/src/content/docs/about/license.mdx create mode 100644 site-new/src/content/docs/about/overview.mdx create mode 100644 site-new/src/content/docs/about/team.mdx create mode 100644 site-new/src/content/docs/about/translations.mdx create mode 100644 site-new/src/content/docs/components/accordion.mdx create mode 100644 site-new/src/content/docs/components/alerts.mdx create mode 100644 site-new/src/content/docs/components/badge.mdx create mode 100644 site-new/src/content/docs/components/breadcrumb.mdx create mode 100644 site-new/src/content/docs/components/button-group.mdx create mode 100644 site-new/src/content/docs/components/buttons.mdx create mode 100644 site-new/src/content/docs/components/card.mdx create mode 100644 site-new/src/content/docs/components/carousel.mdx create mode 100644 site-new/src/content/docs/components/close-button.mdx create mode 100644 site-new/src/content/docs/components/collapse.mdx create mode 100644 site-new/src/content/docs/components/dropdowns.mdx create mode 100644 site-new/src/content/docs/components/list-group.mdx create mode 100644 site-new/src/content/docs/components/modal.mdx create mode 100644 site-new/src/content/docs/components/navbar.mdx create mode 100644 site-new/src/content/docs/components/navs-tabs.mdx create mode 100644 site-new/src/content/docs/components/offcanvas.mdx create mode 100644 site-new/src/content/docs/components/pagination.mdx create mode 100644 site-new/src/content/docs/components/placeholders.mdx create mode 100644 site-new/src/content/docs/components/popovers.mdx create mode 100644 site-new/src/content/docs/components/progress.mdx create mode 100644 site-new/src/content/docs/components/scrollspy.mdx create mode 100644 site-new/src/content/docs/components/spinners.mdx create mode 100644 site-new/src/content/docs/components/toasts.mdx create mode 100644 site-new/src/content/docs/components/tooltips.mdx create mode 100644 site-new/src/content/docs/content/figures.mdx create mode 100644 site-new/src/content/docs/content/images.mdx create mode 100644 site-new/src/content/docs/content/reboot.mdx create mode 100644 site-new/src/content/docs/content/tables.mdx create mode 100644 site-new/src/content/docs/content/typography.mdx create mode 100644 site-new/src/content/docs/customize/color-modes.mdx create mode 100644 site-new/src/content/docs/customize/color.mdx create mode 100644 site-new/src/content/docs/customize/components.mdx create mode 100644 site-new/src/content/docs/customize/css-variables.mdx create mode 100644 site-new/src/content/docs/customize/optimize.mdx create mode 100644 site-new/src/content/docs/customize/options.mdx create mode 100644 site-new/src/content/docs/customize/overview.mdx create mode 100644 site-new/src/content/docs/customize/sass.mdx create mode 100644 site-new/src/content/docs/extend/approach.mdx create mode 100644 site-new/src/content/docs/extend/icons.mdx create mode 100644 site-new/src/content/docs/forms/checks-radios.mdx create mode 100644 site-new/src/content/docs/forms/floating-labels.mdx create mode 100644 site-new/src/content/docs/forms/form-control.mdx create mode 100644 site-new/src/content/docs/forms/input-group.mdx create mode 100644 site-new/src/content/docs/forms/layout.mdx create mode 100644 site-new/src/content/docs/forms/overview.mdx create mode 100644 site-new/src/content/docs/forms/range.mdx create mode 100644 site-new/src/content/docs/forms/select.mdx create mode 100644 site-new/src/content/docs/forms/validation.mdx create mode 100644 site-new/src/content/docs/getting-started/accessibility.mdx create mode 100644 site-new/src/content/docs/getting-started/best-practices.mdx create mode 100644 site-new/src/content/docs/getting-started/browsers-devices.mdx create mode 100644 site-new/src/content/docs/getting-started/contents.mdx create mode 100644 site-new/src/content/docs/getting-started/contribute.mdx create mode 100644 site-new/src/content/docs/getting-started/download.mdx create mode 100644 site-new/src/content/docs/getting-started/introduction.mdx create mode 100644 site-new/src/content/docs/getting-started/javascript.mdx rename site/content/docs/5.3/getting-started/parcel.md => site-new/src/content/docs/getting-started/parcel.mdx (78%) create mode 100644 site-new/src/content/docs/getting-started/rfs.mdx create mode 100644 site-new/src/content/docs/getting-started/rtl.mdx rename site/content/docs/5.3/getting-started/vite.md => site-new/src/content/docs/getting-started/vite.mdx (75%) rename site/content/docs/5.3/getting-started/webpack.md => site-new/src/content/docs/getting-started/webpack.mdx (88%) create mode 100644 site-new/src/content/docs/helpers/clearfix.mdx create mode 100644 site-new/src/content/docs/helpers/color-background.mdx create mode 100644 site-new/src/content/docs/helpers/colored-links.mdx create mode 100644 site-new/src/content/docs/helpers/focus-ring.mdx create mode 100644 site-new/src/content/docs/helpers/icon-link.mdx create mode 100644 site-new/src/content/docs/helpers/position.mdx create mode 100644 site-new/src/content/docs/helpers/ratio.mdx create mode 100644 site-new/src/content/docs/helpers/stacks.mdx create mode 100644 site-new/src/content/docs/helpers/stretched-link.mdx create mode 100644 site-new/src/content/docs/helpers/text-truncation.mdx create mode 100644 site-new/src/content/docs/helpers/vertical-rule.mdx create mode 100644 site-new/src/content/docs/helpers/visually-hidden.mdx create mode 100644 site-new/src/content/docs/layout/breakpoints.mdx create mode 100644 site-new/src/content/docs/layout/columns.mdx create mode 100644 site-new/src/content/docs/layout/containers.mdx create mode 100644 site-new/src/content/docs/layout/css-grid.mdx create mode 100644 site-new/src/content/docs/layout/grid.mdx create mode 100644 site-new/src/content/docs/layout/gutters.mdx create mode 100644 site-new/src/content/docs/layout/utilities.mdx create mode 100644 site-new/src/content/docs/layout/z-index.mdx rename site/content/docs/5.3/migration.md => site-new/src/content/docs/migration.mdx (81%) create mode 100644 site-new/src/content/docs/utilities/api.mdx create mode 100644 site-new/src/content/docs/utilities/background.mdx create mode 100644 site-new/src/content/docs/utilities/borders.mdx create mode 100644 site-new/src/content/docs/utilities/colors.mdx rename site/content/docs/5.3/utilities/display.md => site-new/src/content/docs/utilities/display.mdx (71%) create mode 100644 site-new/src/content/docs/utilities/flex.mdx create mode 100644 site-new/src/content/docs/utilities/float.mdx create mode 100644 site-new/src/content/docs/utilities/interactions.mdx create mode 100644 site-new/src/content/docs/utilities/link.mdx create mode 100644 site-new/src/content/docs/utilities/object-fit.mdx create mode 100644 site-new/src/content/docs/utilities/opacity.mdx create mode 100644 site-new/src/content/docs/utilities/overflow.mdx create mode 100644 site-new/src/content/docs/utilities/position.mdx create mode 100644 site-new/src/content/docs/utilities/shadows.mdx create mode 100644 site-new/src/content/docs/utilities/sizing.mdx create mode 100644 site-new/src/content/docs/utilities/spacing.mdx create mode 100644 site-new/src/content/docs/utilities/text.mdx create mode 100644 site-new/src/content/docs/utilities/vertical-align.mdx create mode 100644 site-new/src/content/docs/utilities/visibility.mdx create mode 100644 site-new/src/content/docs/utilities/z-index.mdx create mode 100644 site-new/src/env.d.ts create mode 100644 site-new/src/layouts/BaseLayout.astro create mode 100644 site-new/src/layouts/DocsLayout.astro create mode 100644 site-new/src/layouts/ExamplesLayout.astro create mode 100644 site-new/src/layouts/RedirectLayout.astro create mode 100644 site-new/src/layouts/SingleLayout.astro create mode 100644 site-new/src/libs/astro.ts create mode 100644 site-new/src/libs/bootstrap.ts create mode 100644 site-new/src/libs/config.ts create mode 100644 site-new/src/libs/content.ts create mode 100644 site-new/src/libs/data.ts create mode 100644 site-new/src/libs/examples.ts create mode 100644 site-new/src/libs/icon.ts create mode 100644 site-new/src/libs/image.ts create mode 100644 site-new/src/libs/layout.ts create mode 100644 site-new/src/libs/path.ts create mode 100644 site-new/src/libs/placeholder.ts create mode 100644 site-new/src/libs/prism.ts create mode 100644 site-new/src/libs/rehype.ts create mode 100644 site-new/src/libs/remark.ts create mode 100644 site-new/src/libs/toc.ts create mode 100644 site-new/src/libs/utils.ts create mode 100644 site-new/src/libs/validation.ts create mode 100644 site-new/src/pages/404.astro create mode 100644 site-new/src/pages/[...alias].astro create mode 100644 site-new/src/pages/docs/[version]/[...slug].astro create mode 100644 site-new/src/pages/docs/[version]/examples/[...asset].ts create mode 100644 site-new/src/pages/docs/[version]/examples/[...example].astro create mode 100644 site-new/src/pages/docs/[version]/examples/index.astro create mode 100644 site-new/src/pages/docs/[version]/index.astro create mode 100644 site-new/src/pages/docs/index.astro create mode 100644 site-new/src/pages/docs/versions.astro create mode 100644 site-new/src/pages/examples.astro create mode 100644 site-new/src/pages/index.astro create mode 100644 site-new/src/pages/robots.txt.ts create mode 100644 site-new/src/scss/_ads.scss create mode 100644 site-new/src/scss/_anchor.scss create mode 100644 site-new/src/scss/_brand.scss create mode 100644 site-new/src/scss/_buttons.scss create mode 100644 site-new/src/scss/_callouts.scss create mode 100644 site-new/src/scss/_clipboard-js.scss create mode 100644 site-new/src/scss/_colors.scss create mode 100644 site-new/src/scss/_component-examples.scss rename {site/assets => site-new/src}/scss/_content.scss (100%) create mode 100644 site-new/src/scss/_footer.scss create mode 100644 site-new/src/scss/_layout.scss rename {site/assets => site-new/src}/scss/_masthead.scss (100%) create mode 100644 site-new/src/scss/_navbar.scss create mode 100644 site-new/src/scss/_placeholder-img.scss rename {site/assets => site-new/src}/scss/_scrolling.scss (100%) create mode 100644 site-new/src/scss/_search.scss create mode 100644 site-new/src/scss/_sidebar.scss create mode 100644 site-new/src/scss/_skippy.scss create mode 100644 site-new/src/scss/_syntax.scss create mode 100644 site-new/src/scss/_toc.scss create mode 100644 site-new/src/scss/_variables.scss create mode 100644 site-new/src/scss/docs.scss create mode 100644 site-new/src/types/auto-import.d.ts create mode 100644 site-new/src/types/window.d.ts create mode 100644 site-new/static/CNAME create mode 100644 site-new/static/docs/[version]/assets/CNAME create mode 100644 site-new/static/docs/[version]/assets/apple-touch-icon.png create mode 100644 site-new/static/docs/[version]/assets/brand/bootstrap-logo-black.svg create mode 100644 site-new/static/docs/[version]/assets/brand/bootstrap-logo-shadow.png create mode 100644 site-new/static/docs/[version]/assets/brand/bootstrap-logo-white.svg create mode 100644 site-new/static/docs/[version]/assets/brand/bootstrap-logo.svg create mode 100644 site-new/static/docs/[version]/assets/brand/bootstrap-social.png create mode 100644 site-new/static/docs/[version]/assets/favicon.ico create mode 100644 site-new/static/docs/[version]/assets/img/bootstrap-icons.png create mode 100644 site-new/static/docs/[version]/assets/img/bootstrap-icons@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/bootstrap-themes-collage.png create mode 100644 site-new/static/docs/[version]/assets/img/bootstrap-themes-collage@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/bootstrap-themes.png create mode 100644 site-new/static/docs/[version]/assets/img/bootstrap-themes@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/album-rtl.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/album-rtl@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/album.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/album@2x.png rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/badges.png (100%) rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/badges@2x.png (100%) create mode 100644 site-new/static/docs/[version]/assets/img/examples/blog-rtl.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/blog-rtl@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/blog.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/blog@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/breadcrumbs.png rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/breadcrumbs@2x.png (100%) rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/buttons.png (100%) rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/buttons@2x.png (100%) create mode 100644 site-new/static/docs/[version]/assets/img/examples/carousel-rtl.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/carousel-rtl@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/carousel.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/carousel@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/cheatsheet-rtl.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/cheatsheet-rtl@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/cheatsheet.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/cheatsheet@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/checkout-rtl.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/checkout-rtl@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/checkout.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/checkout@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/cover.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/cover@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/dashboard-rtl.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/dashboard-rtl@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/dashboard.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/dashboard@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/dropdowns.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/dropdowns@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/features.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/features@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/footers.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/footers@2x.png rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/grid.png (100%) rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/grid@2x.png (100%) create mode 100644 site-new/static/docs/[version]/assets/img/examples/headers.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/headers@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/heroes.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/heroes@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/jumbotron.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/jumbotron@2x.png rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/jumbotrons.png (100%) rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/img/examples/jumbotrons@2x.png (100%) create mode 100644 site-new/static/docs/[version]/assets/img/examples/list-groups.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/list-groups@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/masonry.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/masonry@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/modals.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/modals@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbar-bottom.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbar-bottom@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbar-fixed.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbar-fixed@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbar-static.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbar-static@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbars-offcanvas.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbars-offcanvas@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbars.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/navbars@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/offcanvas-navbar.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/offcanvas-navbar@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/pricing.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/pricing@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/product.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/product@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sidebars.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sidebars@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sign-in.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sign-in@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/starter-template.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/starter-template@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sticky-footer-navbar.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sticky-footer-navbar@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sticky-footer.png create mode 100644 site-new/static/docs/[version]/assets/img/examples/sticky-footer@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/favicons/android-chrome-192x192.png create mode 100644 site-new/static/docs/[version]/assets/img/favicons/android-chrome-512x512.png create mode 100644 site-new/static/docs/[version]/assets/img/favicons/apple-touch-icon.png create mode 100644 site-new/static/docs/[version]/assets/img/favicons/favicon-16x16.png create mode 100644 site-new/static/docs/[version]/assets/img/favicons/favicon-32x32.png create mode 100644 site-new/static/docs/[version]/assets/img/favicons/favicon.ico create mode 100644 site-new/static/docs/[version]/assets/img/favicons/manifest.json create mode 100644 site-new/static/docs/[version]/assets/img/favicons/safari-pinned-tab.svg create mode 100644 site-new/static/docs/[version]/assets/img/guides/bootstrap-parcel.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/bootstrap-parcel@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/bootstrap-vite.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/bootstrap-vite@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/bootstrap-webpack.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/bootstrap-webpack@2x.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/parcel-dev-server-bootstrap.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/parcel-dev-server.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/vite-dev-server-bootstrap.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/vite-dev-server.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/webpack-dev-server-bootstrap.png create mode 100644 site-new/static/docs/[version]/assets/img/guides/webpack-dev-server.png create mode 100644 site-new/static/docs/[version]/assets/img/parcel.png create mode 100644 site-new/static/docs/[version]/assets/img/vite.svg create mode 100644 site-new/static/docs/[version]/assets/img/webpack.svg rename {site/static/docs/5.3 => site-new/static/docs/[version]}/assets/js/color-modes.js (100%) create mode 100644 site-new/static/docs/[version]/assets/js/validate-forms.js create mode 100644 site-new/static/docs/[version]/assets/sw.js create mode 100644 site-new/static/sw.js create mode 100644 site-new/tsconfig.json diff --git a/.github/workflows/browserstack.yml b/.github/workflows/browserstack.yml index a53c233cc6..f59d372eea 100644 --- a/.github/workflows/browserstack.yml +++ b/.github/workflows/browserstack.yml @@ -1,10 +1,10 @@ name: BrowserStack on: - push: - branches: - - "**" - - "!dependabot/**" + #push: + # branches: + # - "**" + # - "!dependabot/**" workflow_dispatch: env: diff --git a/.github/workflows/bundlewatch.yml b/.github/workflows/bundlewatch.yml index 99ba060634..a850ccf364 100644 --- a/.github/workflows/bundlewatch.yml +++ b/.github/workflows/bundlewatch.yml @@ -1,10 +1,10 @@ name: Bundlewatch on: - push: - branches: - - main - pull_request: + #push: + # branches: + # - main + #pull_request: workflow_dispatch: env: diff --git a/.github/workflows/calibreapp-image-actions.yml b/.github/workflows/calibreapp-image-actions.yml index 08987b3aae..a32a13e5ca 100644 --- a/.github/workflows/calibreapp-image-actions.yml +++ b/.github/workflows/calibreapp-image-actions.yml @@ -1,12 +1,13 @@ name: Compress Images on: - pull_request: - paths: - - '**.jpg' - - '**.jpeg' - - '**.png' - - '**.webp' + #pull_request: + # paths: + # - '**.jpg' + # - '**.jpeg' + # - '**.png' + # - '**.webp' + workflow_dispatch: permissions: contents: read diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index dd7f6e7ef8..51db6ae807 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -1,18 +1,18 @@ name: "CodeQL" on: - push: - branches: - - main - - v4-dev - - "!dependabot/**" - pull_request: - branches: - - main - - v4-dev - - "!dependabot/**" - schedule: - - cron: "0 2 * * 4" + #push: + # branches: + # - main + # - v4-dev + # - "!dependabot/**" + #pull_request: + # branches: + # - main + # - v4-dev + # - "!dependabot/**" + #schedule: + # - cron: "0 2 * * 4" workflow_dispatch: jobs: diff --git a/.github/workflows/cspell.yml b/.github/workflows/cspell.yml index 0b942ed259..3fb1e1d76e 100644 --- a/.github/workflows/cspell.yml +++ b/.github/workflows/cspell.yml @@ -1,10 +1,10 @@ name: cspell on: - push: - branches: - - main - pull_request: + #push: + # branches: + # - main + #pull_request: workflow_dispatch: env: diff --git a/.github/workflows/css.yml b/.github/workflows/css.yml index 52e93e2b23..0764075a92 100644 --- a/.github/workflows/css.yml +++ b/.github/workflows/css.yml @@ -1,10 +1,10 @@ name: CSS on: - push: - branches: - - main - pull_request: + #push: + # branches: + # - main + #pull_request: workflow_dispatch: env: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 0822205637..a4af91ee0d 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -1,10 +1,10 @@ name: Docs on: - push: - branches: - - main - pull_request: + #push: + # branches: + # - main + #pull_request: workflow_dispatch: env: diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml index 1b672aa309..d98f7e2b26 100644 --- a/.github/workflows/js.yml +++ b/.github/workflows/js.yml @@ -1,10 +1,10 @@ name: JS Tests on: - push: - branches: - - main - pull_request: + #push: + # branches: + # - main + #pull_request: workflow_dispatch: env: diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 213f9ec659..59672a7ade 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,10 +1,10 @@ name: Lint on: - push: - branches: - - main - pull_request: + #push: + # branches: + # - main + #pull_request: workflow_dispatch: env: diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml index 813956af20..90e3926105 100644 --- a/.github/workflows/release-notes.yml +++ b/.github/workflows/release-notes.yml @@ -1,9 +1,9 @@ name: Release notes on: - push: - branches: - - main + #push: + # branches: + # - main workflow_dispatch: permissions: diff --git a/.gitignore b/.gitignore index 0c9b6f5565..a52934d7d5 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,12 @@ Thumbs.db /dist-sass/ /js/coverage/ /node_modules/ + +# TODO(Astro migration): Rename or remove later +/site-new/dist +# TODO(Astro migration): This could be avoided by modifying the other node_modules ignore rule. +/site-new/node_modules +# TODO(Astro migration): Rename later +/site-new/.astro +# TODO(Astro migration): Rename later +/site-new/public diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..cadc347142 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,13 @@ +# Prettier is only used for the website + +# TODO(Astro migration) rename later +site-new/.astro +site-new/dist +site-new/public +site-new/src/assets +site-new/src/scss +site-new/src/pages/**/*.md +site-new/src/pages/**/*.mdx +site-new/src/content/**/*.mdx +site-new/src/layouts/RedirectLayout.astro +site-new/static \ No newline at end of file diff --git a/build/generate-sri.mjs b/build/generate-sri.mjs index 9e579527e3..5622843f34 100644 --- a/build/generate-sri.mjs +++ b/build/generate-sri.mjs @@ -19,11 +19,11 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url)) sh.config.fatal = true -const configFile = path.join(__dirname, '../hugo.yml') +const configFile = path.join(__dirname, '../config.yml') // Array of objects which holds the files to generate SRI hashes for. // `file` is the path from the root folder -// `configPropertyName` is the hugo.yml variable's name of the file +// `configPropertyName` is the config.yml variable's name of the file const files = [ { file: 'dist/css/bootstrap.min.css', diff --git a/config.yml b/config.yml new file mode 100644 index 0000000000..9c3cc995e7 --- /dev/null +++ b/config.yml @@ -0,0 +1,52 @@ +title: "Bootstrap" +baseURL: "https://getbootstrap.com" + +# TODO(Astro migration) Fix path +docsDir: "site-new" + +# TODO(Astro migration) Check if still relevant, update Astro config and prolly remove this value from here +publishDir: "_site" + +subtitle: "The most popular HTML, CSS, and JS library in the world." +description: "Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins." +authors: "Mark Otto, Jacob Thornton, and Bootstrap contributors" + +current_version: "5.3.3" +current_ruby_version: "5.3.3" +docs_version: "5.3" +rfs_version: "v10.0.0" +github_org: "https://github.com/twbs" +repo: "https://github.com/twbs/bootstrap" +twitter: "getbootstrap" +opencollective: "https://opencollective.com/bootstrap" +blog: "https://blog.getbootstrap.com/" +themes: "https://themes.getbootstrap.com/" +icons: "https://icons.getbootstrap.com/" +swag: "https://cottonbureau.com/people/bootstrap" + +download: + source: "https://github.com/twbs/bootstrap/archive/v5.3.3.zip" + dist: "https://github.com/twbs/bootstrap/releases/download/v5.3.3/bootstrap-5.3.3-dist.zip" + dist_examples: "https://github.com/twbs/bootstrap/releases/download/v5.3.3/bootstrap-5.3.3-examples.zip" + +cdn: + # See https://www.srihash.org for info on how to generate the hashes + css: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" + css_hash: "sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" + css_rtl: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.rtl.min.css" + css_rtl_hash: "sha384-dpuaG1suU0eT09tx5plTaGMLBsfDLzUCCUXOY2j/LSvXYuG6Bqs43ALlhIqAJVRb" + js: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" + js_hash: "sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" + js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" + js_bundle_hash: "sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" + popper: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" + popper_hash: "sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" + popper_esm: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/esm/popper.min.js" + +anchors: + min: 2 + max: 5 + +toc: + min: 2 + max: 6 diff --git a/hugo.yml b/hugo.yml deleted file mode 100644 index 1ff261b042..0000000000 --- a/hugo.yml +++ /dev/null @@ -1,102 +0,0 @@ -languageCode: "en" -title: "Bootstrap" -baseURL: "https://getbootstrap.com" - -security: - enableInlineShortcodes: true - funcs: - getenv: - - ^HUGO_ - - NETLIFY - -markup: - goldmark: - renderer: - unsafe: true - highlight: - noClasses: false - tableOfContents: - startLevel: 2 - endLevel: 6 - -build: - noJSConfigInAssets: true - -buildDrafts: true -buildFuture: true - -enableRobotsTXT: true -metaDataFormat: "yaml" -disableKinds: ["404", "taxonomy", "term", "RSS"] - -publishDir: "_site" - -module: - mounts: - - source: dist - target: static/docs/5.3/dist - - source: site/assets - target: assets - - source: site/content - target: content - - source: site/data - target: data - - source: site/layouts - target: layouts - - source: site/static - target: static - - source: node_modules/@docsearch/css - target: assets/scss/@docsearch/css - - source: site/static/docs/5.3/assets/img/favicons/apple-touch-icon.png - target: static/apple-touch-icon.png - - source: site/static/docs/5.3/assets/img/favicons/favicon.ico - target: static/favicon.ico - -params: - subtitle: "The most popular HTML, CSS, and JS library in the world." - description: "Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid system and components, and bring projects to life with powerful JavaScript plugins." - authors: "Mark Otto, Jacob Thornton, and Bootstrap contributors" - - current_version: "5.3.3" - current_ruby_version: "5.3.3" - docs_version: "5.3" - rfs_version: "v10.0.0" - github_org: "https://github.com/twbs" - repo: "https://github.com/twbs/bootstrap" - twitter: "getbootstrap" - opencollective: "https://opencollective.com/bootstrap" - blog: "https://blog.getbootstrap.com/" - themes: "https://themes.getbootstrap.com/" - icons: "https://icons.getbootstrap.com/" - swag: "https://cottonbureau.com/people/bootstrap" - - analytics: - fathom_site: "ITUSEYJG" - - algolia: - appId: "AK7KMZKZHQ" - apiKey: "3151f502c7b9e9dafd5e6372b691a24e" - indexName: "bootstrap" - - download: - source: "https://github.com/twbs/bootstrap/archive/v5.3.3.zip" - dist: "https://github.com/twbs/bootstrap/releases/download/v5.3.3/bootstrap-5.3.3-dist.zip" - dist_examples: "https://github.com/twbs/bootstrap/releases/download/v5.3.3/bootstrap-5.3.3-examples.zip" - - cdn: - # See https://www.srihash.org for info on how to generate the hashes - css: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" - css_hash: "sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" - css_rtl: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.rtl.min.css" - css_rtl_hash: "sha384-dpuaG1suU0eT09tx5plTaGMLBsfDLzUCCUXOY2j/LSvXYuG6Bqs43ALlhIqAJVRb" - js: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.min.js" - js_hash: "sha384-0pUGZvbkm6XF6gxjEnlmuGrJXVbNuzT9qBBavbLwCsOGabYfZo0T0to5eqruptLy" - js_bundle: "https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" - js_bundle_hash: "sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" - popper: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" - popper_hash: "sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" - popper_esm: "https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/esm/popper.min.js" - - anchors: - min: 2 - max: 5 diff --git a/package-lock.json b/package-lock.json index 6de41c29e5..05d702ab00 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,10 @@ ], "license": "MIT", "devDependencies": { + "@astrojs/markdown-remark": "^6.2.0", + "@astrojs/mdx": "^4.1.0", + "@astrojs/prism": "^3.2.0", + "@astrojs/sitemap": "^3.2.1", "@babel/cli": "^7.26.4", "@babel/core": "^7.26.9", "@babel/preset-env": "^7.26.9", @@ -29,6 +33,13 @@ "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-replace": "^6.0.2", "@stackblitz/sdk": "^1.11.0", + "@types/bootstrap": "^5.2.6", + "@types/google.analytics": "^0.0.42", + "@types/js-yaml": "^4.0.5", + "@types/mime": "^3.0.1", + "@types/prismjs": "^1.26.0", + "astro": "^5.4.0", + "astro-auto-import": "^0.4.4", "autoprefixer": "^10.4.20", "bundlewatch": "^0.4.0", "clean-css-cli": "^5.6.3", @@ -41,12 +52,16 @@ "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-unicorn": "^55.0.0", "find-unused-sass-variables": "^6.0.0", + "github-slugger": "^2.0.0", "globby": "^14.0.2", "hammer-simulator": "0.0.1", + "htmlparser2": "^8.0.1", "hugo-bin": "^0.141.1", + "image-size": "^1.0.2", "ip": "^2.0.1", "jasmine": "^5.5.0", "jquery": "^3.7.1", + "js-yaml": "^4.1.0", "karma": "^6.4.4", "karma-browserstack-launcher": "1.4.0", "karma-chrome-launcher": "^3.2.0", @@ -57,10 +72,14 @@ "karma-jasmine-html-reporter": "^2.1.0", "karma-rollup-preprocessor": "7.0.7", "lockfile-lint": "^4.14.0", + "mime": "^3.0.0", "nodemon": "^3.1.9", "npm-run-all2": "^7.0.2", "postcss": "^8.5.2", "postcss-cli": "^11.0.0", + "prettier": "^2.8.4", + "prettier-plugin-astro": "^0.8.0", + "rehype-autolink-headings": "^6.1.1", "rollup": "^4.34.8", "rollup-plugin-istanbul": "^5.0.0", "rtlcss": "^4.3.0", @@ -70,7 +89,9 @@ "stylelint": "^16.14.1", "stylelint-config-twbs-bootstrap": "^15.1.0", "terser": "^5.39.0", - "vnu-jar": "24.10.17" + "unist-util-visit": "^4.1.2", + "vnu-jar": "24.10.17", + "zod": "^3.20.6" }, "peerDependencies": { "@popperjs/core": "^2.11.8" @@ -339,6 +360,389 @@ "node": ">=6.0.0" } }, + "node_modules/@astrojs/compiler": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-1.8.2.tgz", + "integrity": "sha512-o/ObKgtMzl8SlpIdzaxFnt7SATKPxu4oIP/1NL+HDJRzxfJcAkOTAb/ZKMRyULbz4q+1t2/DAebs2Z1QairkZw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@astrojs/internal-helpers": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@astrojs/internal-helpers/-/internal-helpers-0.6.0.tgz", + "integrity": "sha512-XgHIJDQaGlFnTr0sDp1PiJrtqsWzbHP2qkTU+JpQ8SnBewKP2IKOe/wqCkl0CyfyRXRu3TSWu4t/cpYMVfuBNA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@astrojs/markdown-remark": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/@astrojs/markdown-remark/-/markdown-remark-6.2.0.tgz", + "integrity": "sha512-LUDjgd9p1yG0qTFSocaj3GOLmZs8Hsw/pNtvqzvNY58Acebxvb/46vDO/e/wxYgsKgIfWS+p+ZI5SfOjoVrbCg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/internal-helpers": "0.6.0", + "@astrojs/prism": "3.2.0", + "github-slugger": "^2.0.0", + "hast-util-from-html": "^2.0.3", + "hast-util-to-text": "^4.0.2", + "import-meta-resolve": "^4.1.0", + "js-yaml": "^4.1.0", + "mdast-util-definitions": "^6.0.0", + "rehype-raw": "^7.0.0", + "rehype-stringify": "^10.0.1", + "remark-gfm": "^4.0.0", + "remark-parse": "^11.0.0", + "remark-rehype": "^11.1.1", + "remark-smartypants": "^3.0.2", + "shiki": "^1.29.2", + "smol-toml": "^1.3.1", + "unified": "^11.0.5", + "unist-util-remove-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "unist-util-visit-parents": "^6.0.1", + "vfile": "^6.0.3" + } + }, + "node_modules/@astrojs/markdown-remark/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@astrojs/markdown-remark/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@astrojs/markdown-remark/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/@astrojs/markdown-remark/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/markdown-remark/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/markdown-remark/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==", + "dev": true, + "license": "MIT", + "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/@astrojs/markdown-remark/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/markdown-remark/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/markdown-remark/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/mdx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-4.1.0.tgz", + "integrity": "sha512-M7BaYhVTT7Q/iS2EoEaUngQnN+D2jPCWmNS1TIY31bDyz3MOf+dZmuqODJOEUdBBAASkQE+MhzyPds/N2o6csw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/markdown-remark": "6.2.0", + "@mdx-js/mdx": "^3.1.0", + "acorn": "^8.14.0", + "es-module-lexer": "^1.6.0", + "estree-util-visit": "^2.0.0", + "hast-util-to-html": "^9.0.4", + "kleur": "^4.1.5", + "rehype-raw": "^7.0.0", + "remark-gfm": "^4.0.0", + "remark-smartypants": "^3.0.2", + "source-map": "^0.7.4", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.3" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + }, + "peerDependencies": { + "astro": "^5.0.0" + } + }, + "node_modules/@astrojs/mdx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@astrojs/mdx/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@astrojs/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/mdx/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==", + "dev": true, + "license": "MIT", + "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/@astrojs/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/mdx/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@astrojs/prism": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@astrojs/prism/-/prism-3.2.0.tgz", + "integrity": "sha512-GilTHKGCW6HMq7y3BUv9Ac7GMe/MO9gi9GW62GzKtth0SwukCu/qp2wLiGpEujhY+VVhaG9v7kv/5vFzvf4NYw==", + "dev": true, + "license": "MIT", + "dependencies": { + "prismjs": "^1.29.0" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@astrojs/sitemap": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@astrojs/sitemap/-/sitemap-3.2.1.tgz", + "integrity": "sha512-uxMfO8f7pALq0ADL6Lk68UV6dNYjJ2xGUzyjjVj60JLBs5a6smtlkBYv3tQ0DzoqwS7c9n4FUx5lgv0yPo/fgA==", + "dev": true, + "license": "MIT", + "dependencies": { + "sitemap": "^8.0.0", + "stream-replace-string": "^2.0.0", + "zod": "^3.23.8" + } + }, + "node_modules/@astrojs/telemetry": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@astrojs/telemetry/-/telemetry-3.2.0.tgz", + "integrity": "sha512-wxhSKRfKugLwLlr4OFfcqovk+LIFtKwLyGPqMsv+9/ibqqnW3Gv7tBhtKEb0gAyUAC4G9BTVQeQahqnQAhd6IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ci-info": "^4.1.0", + "debug": "^4.3.7", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "is-docker": "^3.0.0", + "is-wsl": "^3.1.0", + "which-pm-runs": "^1.1.0" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0" + } + }, + "node_modules/@astrojs/telemetry/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@astrojs/telemetry/node_modules/is-wsl": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", + "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-inside-container": "^1.0.0" + }, + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/@babel/cli": { "version": "7.26.4", "resolved": "https://registry.npmjs.org/@babel/cli/-/cli-7.26.4.tgz", @@ -2028,6 +2432,442 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/@emnapi/runtime": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", + "integrity": "sha512-kEBmG8KyqtxJZv+ygbEim+KCGtIq1fC22Ms3S4ziXmYKm8uyoLX0MHONVKwp+9opg390VaKRNt4a7A9NwmpNhw==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz", + "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz", + "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz", + "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz", + "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz", + "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz", + "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz", + "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz", + "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz", + "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz", + "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz", + "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz", + "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz", + "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz", + "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz", + "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz", + "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz", + "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz", + "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz", + "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz", + "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz", + "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz", + "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz", + "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz", + "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz", + "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", @@ -2158,6 +2998,386 @@ "dev": true, "license": "BSD-3-Clause" }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.5.tgz", + "integrity": "sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.5.tgz", + "integrity": "sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.4.tgz", + "integrity": "sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.4.tgz", + "integrity": "sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "darwin" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.5.tgz", + "integrity": "sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.4.tgz", + "integrity": "sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.4.tgz", + "integrity": "sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.4.tgz", + "integrity": "sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.4.tgz", + "integrity": "sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.4.tgz", + "integrity": "sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "LGPL-3.0-or-later", + "optional": true, + "os": [ + "linux" + ], + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.5.tgz", + "integrity": "sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.5" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.5.tgz", + "integrity": "sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.5.tgz", + "integrity": "sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.4" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.5.tgz", + "integrity": "sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.5.tgz", + "integrity": "sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.5.tgz", + "integrity": "sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.4" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.5.tgz", + "integrity": "sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==", + "cpu": [ + "wasm32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", + "optional": true, + "dependencies": { + "@emnapi/runtime": "^1.2.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.5.tgz", + "integrity": "sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.5.tgz", + "integrity": "sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "Apache-2.0 AND LGPL-3.0-or-later", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", @@ -2381,6 +3601,202 @@ "ieee754": "^1.2.1" } }, + "node_modules/@mdx-js/mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@mdx-js/mdx/-/mdx-3.1.0.tgz", + "integrity": "sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==", + "dev": true, + "license": "MIT", + "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-is-identifier-name": "^3.0.0", + "estree-util-scope": "^1.0.0", + "estree-walker": "^3.0.0", + "hast-util-to-jsx-runtime": "^2.0.0", + "markdown-extensions": "^2.0.0", + "recma-build-jsx": "^1.0.0", + "recma-jsx": "^1.0.0", + "recma-stringify": "^1.0.0", + "rehype-recma": "^1.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/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@mdx-js/mdx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/@mdx-js/mdx/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/@mdx-js/mdx/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@mdx-js/mdx/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@mdx-js/mdx/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/@mdx-js/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/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==", + "dev": true, + "license": "MIT", + "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/@mdx-js/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/@mdx-js/mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", @@ -2427,6 +3843,13 @@ "node": ">= 8" } }, + "node_modules/@oslojs/encoding": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@oslojs/encoding/-/encoding-1.1.0.tgz", + "integrity": "sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", @@ -2438,6 +3861,19 @@ "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, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/unts" + } + }, "node_modules/@popperjs/core": { "version": "2.11.8", "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.8.tgz", @@ -2548,9 +3984,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "dev": true, "license": "MIT", "dependencies": { @@ -2850,6 +4286,102 @@ "dev": true, "license": "MIT" }, + "node_modules/@shikijs/core": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.29.2.tgz", + "integrity": "sha512-vju0lY9r27jJfOY4Z7+Rt/nIOjzJpZ3y+nYpqtUZInVoXQ/TJZcfGnNOGnKjFdVZb8qexiCuSlZRKcGfhhTTZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/engine-javascript": "1.29.2", + "@shikijs/engine-oniguruma": "1.29.2", + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4", + "hast-util-to-html": "^9.0.4" + } + }, + "node_modules/@shikijs/core/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@shikijs/engine-javascript": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-javascript/-/engine-javascript-1.29.2.tgz", + "integrity": "sha512-iNEZv4IrLYPv64Q6k7EPpOCE/nuvGiKl7zxdq0WFuRPF5PAE9PRo2JGq/d8crLusM59BRemJ4eOqrFrC4wiQ+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1", + "oniguruma-to-es": "^2.2.0" + } + }, + "node_modules/@shikijs/engine-oniguruma": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-1.29.2.tgz", + "integrity": "sha512-7iiOx3SG8+g1MnlzZVDYiaeHe7Ez2Kf2HrJzdmGwkRisT7r4rak0e655AcM/tF9JG/kg5fMNYlLLKglbN7gBqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1" + } + }, + "node_modules/@shikijs/langs": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-1.29.2.tgz", + "integrity": "sha512-FIBA7N3LZ+223U7cJDUYd5shmciFQlYkFXlkKVaHsCPgfVLiO+e12FmQE6Tf9vuyEsFe3dIl8qGWKXgEHL9wmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.29.2" + } + }, + "node_modules/@shikijs/themes": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-1.29.2.tgz", + "integrity": "sha512-i9TNZlsq4uoyqSbluIcZkmPL9Bfi3djVxRnofUHwvx/h6SRW3cwgBC5SML7vsDcWyukY0eCzVN980rqP6qNl9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/types": "1.29.2" + } + }, + "node_modules/@shikijs/types": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-1.29.2.tgz", + "integrity": "sha512-VJjK0eIijTZf0QSTODEXCqinjBn0joAHQ+aPSBzrv4O2d/QSbsMw+ZeSRx03kV34Hy7NzUvV/7NqfYGRLrASmw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" + } + }, + "node_modules/@shikijs/types/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/@shikijs/vscode-textmate": { + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/@shikijs/vscode-textmate/-/vscode-textmate-10.0.2.tgz", + "integrity": "sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==", + "dev": true, + "license": "MIT" + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -2994,6 +4526,79 @@ "dev": true, "license": "MIT" }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/babel__core": { + "version": "7.20.5", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.8", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", + "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.20.6", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", + "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "dev": true, + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@babel/types": "^7.20.7" + } + }, + "node_modules/@types/bootstrap": { + "version": "5.2.10", + "resolved": "https://registry.npmjs.org/@types/bootstrap/-/bootstrap-5.2.10.tgz", + "integrity": "sha512-F2X+cd6551tep0MvVZ6nM8v7XgGN/twpdNDjqS1TUM7YFNEtQYWk+dKAnH+T1gr6QgCoGMPl487xw/9hXooa2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@popperjs/core": "^2.9.2" + } + }, "node_modules/@types/cookie": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", @@ -3011,6 +4616,16 @@ "@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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -3018,6 +4633,33 @@ "dev": true, "license": "MIT" }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "*" + } + }, + "node_modules/@types/google.analytics": { + "version": "0.0.42", + "resolved": "https://registry.npmjs.org/@types/google.analytics/-/google.analytics-0.0.42.tgz", + "integrity": "sha512-w0ZFj3SHznQXSq99kFCuO8tkN6w4T14znjrF2alLCSDnHOXEnpzneyNwxLvekcsDBInr8b5mXmzYh03GArqEyw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/hast": { + "version": "2.3.10", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.10.tgz", + "integrity": "sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2" + } + }, "node_modules/@types/http-cache-semantics": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", @@ -3025,6 +4667,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", @@ -3042,6 +4691,37 @@ "@types/unist": "^2" } }, + "node_modules/@types/mdx": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/@types/mdx/-/mdx-2.0.13.tgz", + "integrity": "sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/mime": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.4.tgz", + "integrity": "sha512-iJt33IQnVRkqeqC7PzBHPTC6fDlRNRW8vjrgqtScAhrmMwe8c4Eo7+fUGTa+XdWrpEgpyKWMYmi2dIwMAYRzPw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/ms": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-2.1.0.tgz", + "integrity": "sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/nlcst": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/nlcst/-/nlcst-2.0.3.tgz", + "integrity": "sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/node": { "version": "22.10.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.1.tgz", @@ -3059,6 +4739,13 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/prismjs": { + "version": "1.26.5", + "resolved": "https://registry.npmjs.org/@types/prismjs/-/prismjs-1.26.5.tgz", + "integrity": "sha512-AUZTa7hQ2KY5L7AmtSiqxlhWxb4ina0yd8hNbl4TWuqnv/pFP0nDMb3YrfSBf4hJVGLh2YEIBfKaBW/9UEl6IQ==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/resolve": { "version": "1.20.2", "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz", @@ -3066,6 +4753,16 @@ "dev": true, "license": "MIT" }, + "node_modules/@types/sax": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/sax/-/sax-1.2.7.tgz", + "integrity": "sha512-rO73L89PJxeYM3s3pPPjiPgVVcymqU490g0YO5n5By0k2Erzj6tay/4lr1CHAAU4JyOWd1rpQ8bCf6cZfHU96A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/unist": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", @@ -3397,6 +5094,16 @@ "node": ">= 14.0.0" } }, + "node_modules/ansi-align": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz", + "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.1.0" + } + }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -3471,6 +5178,13 @@ ], "license": "MIT" }, + "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, + "license": "MIT" + }, "node_modules/argparse": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", @@ -3478,6 +5192,16 @@ "dev": true, "license": "Python-2.0" }, + "node_modules/aria-query": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.2.tgz", + "integrity": "sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, "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", @@ -3516,6 +5240,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/array-iterate": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/array-iterate/-/array-iterate-2.0.1.tgz", + "integrity": "sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -3618,6 +5353,312 @@ "node": ">=8" } }, + "node_modules/astring": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.9.0.tgz", + "integrity": "sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==", + "dev": true, + "license": "MIT", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/astro": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/astro/-/astro-5.4.0.tgz", + "integrity": "sha512-7A//zrCtJUGfJcQAt6PDhMu4a6pogvnK54HLXnYlPnKSWQZu/tKIYWfyvocVnTuEYIPExIN3CpjNAFFLoweJVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^2.10.3", + "@astrojs/internal-helpers": "0.6.0", + "@astrojs/markdown-remark": "6.2.0", + "@astrojs/telemetry": "3.2.0", + "@oslojs/encoding": "^1.1.0", + "@rollup/pluginutils": "^5.1.4", + "@types/cookie": "^0.6.0", + "acorn": "^8.14.0", + "aria-query": "^5.3.2", + "axobject-query": "^4.1.0", + "boxen": "8.0.1", + "ci-info": "^4.1.0", + "clsx": "^2.1.1", + "common-ancestor-path": "^1.0.1", + "cookie": "^0.7.2", + "cssesc": "^3.0.0", + "debug": "^4.4.0", + "deterministic-object-hash": "^2.0.2", + "devalue": "^5.1.1", + "diff": "^5.2.0", + "dlv": "^1.1.3", + "dset": "^3.1.4", + "es-module-lexer": "^1.6.0", + "esbuild": "^0.25.0", + "estree-walker": "^3.0.3", + "flattie": "^1.1.1", + "github-slugger": "^2.0.0", + "html-escaper": "3.0.3", + "http-cache-semantics": "^4.1.1", + "js-yaml": "^4.1.0", + "kleur": "^4.1.5", + "magic-string": "^0.30.17", + "magicast": "^0.3.5", + "mrmime": "^2.0.0", + "neotraverse": "^0.6.18", + "p-limit": "^6.2.0", + "p-queue": "^8.1.0", + "picomatch": "^4.0.2", + "preferred-pm": "^4.1.1", + "prompts": "^2.4.2", + "rehype": "^13.0.2", + "semver": "^7.7.1", + "shiki": "^1.29.2", + "tinyexec": "^0.3.2", + "tinyglobby": "^0.2.12", + "tsconfck": "^3.1.4", + "ultrahtml": "^1.5.3", + "unist-util-visit": "^5.0.0", + "unstorage": "^1.14.4", + "vfile": "^6.0.3", + "vite": "^6.2.0", + "vitefu": "^1.0.5", + "which-pm": "^3.0.1", + "xxhash-wasm": "^1.1.0", + "yargs-parser": "^21.1.1", + "yocto-spinner": "^0.2.0", + "zod": "^3.24.1", + "zod-to-json-schema": "^3.24.1", + "zod-to-ts": "^1.2.0" + }, + "bin": { + "astro": "astro.js" + }, + "engines": { + "node": "^18.17.1 || ^20.3.0 || >=22.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/astrodotbuild" + }, + "optionalDependencies": { + "sharp": "^0.33.3" + } + }, + "node_modules/astro-auto-import": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/astro-auto-import/-/astro-auto-import-0.4.4.tgz", + "integrity": "sha512-tiYe1hp+VusdiyaD3INgZgbvXEPamDFiURnQR5Niz+E9fWa6IHYjJ99TwGlHh/evfaXE/U/86jp9MRKWTuJU1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^18.0.0", + "acorn": "^8.8.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "astro": "^2.0.0 || ^3.0.0-beta || ^4.0.0-beta || ^5.0.0-beta" + } + }, + "node_modules/astro-auto-import/node_modules/@types/node": { + "version": "18.19.76", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.76.tgz", + "integrity": "sha512-yvR7Q9LdPz2vGpmpJX5LolrgRdWvB67MJKDPSgIIzpFbaf9a1j/f5DnLp5VDyHGMR0QZHlTr1afsD87QCXFHKw==", + "dev": true, + "license": "MIT", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/astro-auto-import/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==", + "dev": true, + "license": "MIT" + }, + "node_modules/astro/node_modules/@astrojs/compiler": { + "version": "2.10.4", + "resolved": "https://registry.npmjs.org/@astrojs/compiler/-/compiler-2.10.4.tgz", + "integrity": "sha512-86B3QGagP99MvSNwuJGiYSBHnh8nLvm2Q1IFI15wIUJJsPeQTO3eb2uwBmrqRsXykeR/mBzH8XCgz5AAt1BJrQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/astro/node_modules/@types/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==", + "dev": true, + "license": "MIT" + }, + "node_modules/astro/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/astro/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "node_modules/astro/node_modules/html-escaper": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-3.0.3.tgz", + "integrity": "sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/astro/node_modules/p-limit": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-6.2.0.tgz", + "integrity": "sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.1.1" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/astro/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/astro/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/astro/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/astro/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==", + "dev": true, + "license": "MIT", + "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/astro/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/astro/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/astro/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/astro/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, + "license": "ISC", + "engines": { + "node": ">=12" + } + }, + "node_modules/astro/node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", @@ -3691,6 +5732,16 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/axobject-query": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", + "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/b4a": { "version": "1.6.7", "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.7.tgz", @@ -3740,6 +5791,17 @@ "@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==", + "dev": true, + "license": "MIT", + "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", @@ -3755,6 +5817,13 @@ "license": "Apache-2.0", "optional": true }, + "node_modules/base-64": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base-64/-/base-64-1.0.0.tgz", + "integrity": "sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==", + "dev": true, + "license": "MIT" + }, "node_modules/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -3920,6 +5989,140 @@ "dev": true, "license": "MIT" }, + "node_modules/boxen": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-8.0.1.tgz", + "integrity": "sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-align": "^3.0.1", + "camelcase": "^8.0.0", + "chalk": "^5.3.0", + "cli-boxes": "^3.0.0", + "string-width": "^7.2.0", + "type-fest": "^4.21.0", + "widest-line": "^5.0.0", + "wrap-ansi": "^9.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/boxen/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, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/boxen/node_modules/chalk": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/boxen/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/boxen/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/boxen/node_modules/type-fest": { + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.35.0.tgz", + "integrity": "sha512-2/AwEFQDFEy30iOLjrvHDIH7e4HEWH+f1Yl1bI5XMqzuoCUqwYCdxachgsgv0og/JdVZUhbfjcJAoHj5L1753A==", + "dev": true, + "license": "(MIT OR CC0-1.0)", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/boxen/node_modules/wrap-ansi": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz", + "integrity": "sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -4210,6 +6413,19 @@ "node": ">=6" } }, + "node_modules/camelcase": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", + "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/caniuse-lite": { "version": "1.0.30001700", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001700.tgz", @@ -4231,6 +6447,17 @@ ], "license": "CC-BY-4.0" }, + "node_modules/ccount": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/chainsaw": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", @@ -4272,6 +6499,17 @@ "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/character-entities-legacy": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz", @@ -4407,6 +6645,19 @@ "node": ">=0.8.0" } }, + "node_modules/cli-boxes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", + "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/clipboard": { "version": "2.0.11", "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", @@ -4431,6 +6682,42 @@ "wrap-ansi": "^7.0.0" } }, + "node_modules/clsx": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz", + "integrity": "sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", @@ -4451,6 +6738,18 @@ "dev": true, "license": "MIT" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, "node_modules/colord": { "version": "2.9.3", "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", @@ -4471,6 +6770,17 @@ "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/commander": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz", @@ -4481,6 +6791,13 @@ "node": ">= 6" } }, + "node_modules/common-ancestor-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz", + "integrity": "sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==", + "dev": true, + "license": "ISC" + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -4575,6 +6892,13 @@ "node": ">= 0.6" } }, + "node_modules/cookie-es": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/cookie-es/-/cookie-es-1.2.2.tgz", + "integrity": "sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==", + "dev": true, + "license": "MIT" + }, "node_modules/core-js-compat": { "version": "3.40.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.40.0.tgz", @@ -4671,6 +6995,16 @@ "node": ">= 8" } }, + "node_modules/crossws": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/crossws/-/crossws-0.3.4.tgz", + "integrity": "sha512-uj0O1ETYX1Bh6uSgktfPvwDiPYGQ3aI4qVsaC/LWpkIzGj1nUYm5FK3K+t11oOlpN01lGbprFCH4wBlKdJjVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "uncrypto": "^0.1.3" + } + }, "node_modules/css-functions-list": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.2.3.tgz", @@ -4804,6 +7138,31 @@ } } }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/decode-named-character-reference/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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/decompress-response": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", @@ -4909,6 +7268,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/defu": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/defu/-/defu-6.1.4.tgz", + "integrity": "sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==", + "dev": true, + "license": "MIT" + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -4946,6 +7312,23 @@ "node": ">= 0.6.0" } }, + "node_modules/dequal": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz", + "integrity": "sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/destr": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/destr/-/destr-2.0.3.tgz", + "integrity": "sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -4957,6 +7340,51 @@ "npm": "1.2.8000 || >= 1.4.16" } }, + "node_modules/detect-libc": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", + "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", + "dev": true, + "license": "Apache-2.0", + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/deterministic-object-hash": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deterministic-object-hash/-/deterministic-object-hash-2.0.2.tgz", + "integrity": "sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "base-64": "^1.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/devalue": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.1.1.tgz", + "integrity": "sha512-maua5KUiapvEwiEAe+XnlZ3Rh0GD+qI1J/nb9vrJc3muPXvcF/8gXYTWF76+5DAqHyDUtOIImEuo0YKE9mshVw==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "dequal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -4964,6 +7392,16 @@ "dev": true, "license": "MIT" }, + "node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/diff-sequences": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", @@ -4997,6 +7435,13 @@ "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, + "license": "MIT" + }, "node_modules/doctrine": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", @@ -5082,6 +7527,16 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/dset": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.4.tgz", + "integrity": "sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/dunder-proto": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.0.tgz", @@ -5142,6 +7597,13 @@ "dev": true, "license": "MIT" }, + "node_modules/emoji-regex-xs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex-xs/-/emoji-regex-xs-1.0.0.tgz", + "integrity": "sha512-LRlerrMYoIDrT6jgpeZ2YYl/L8EulRTt5hQcYjy5AInh7HWXKimpqx68aknBFpGL2+/IcogTcaydJEgaTmOpDg==", + "dev": true, + "license": "MIT" + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -5329,6 +7791,13 @@ "node": ">= 0.4" } }, + "node_modules/es-module-lexer": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.6.0.tgz", + "integrity": "sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==", + "dev": true, + "license": "MIT" + }, "node_modules/es-object-atoms": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", @@ -5402,6 +7871,117 @@ "es6-promise": "^4.0.3" } }, + "node_modules/esast-util-from-estree": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/esast-util-from-estree/-/esast-util-from-estree-2.0.0.tgz", + "integrity": "sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "devlop": "^1.0.0", + "estree-util-visit": "^2.0.0", + "unist-util-position-from-estree": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/esast-util-from-js/-/esast-util-from-js-2.0.1.tgz", + "integrity": "sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "acorn": "^8.0.0", + "esast-util-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/esast-util-from-js/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esast-util-from-js/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/esbuild": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", + "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.25.0", + "@esbuild/android-arm": "0.25.0", + "@esbuild/android-arm64": "0.25.0", + "@esbuild/android-x64": "0.25.0", + "@esbuild/darwin-arm64": "0.25.0", + "@esbuild/darwin-x64": "0.25.0", + "@esbuild/freebsd-arm64": "0.25.0", + "@esbuild/freebsd-x64": "0.25.0", + "@esbuild/linux-arm": "0.25.0", + "@esbuild/linux-arm64": "0.25.0", + "@esbuild/linux-ia32": "0.25.0", + "@esbuild/linux-loong64": "0.25.0", + "@esbuild/linux-mips64el": "0.25.0", + "@esbuild/linux-ppc64": "0.25.0", + "@esbuild/linux-riscv64": "0.25.0", + "@esbuild/linux-s390x": "0.25.0", + "@esbuild/linux-x64": "0.25.0", + "@esbuild/netbsd-arm64": "0.25.0", + "@esbuild/netbsd-x64": "0.25.0", + "@esbuild/openbsd-arm64": "0.25.0", + "@esbuild/openbsd-x64": "0.25.0", + "@esbuild/sunos-x64": "0.25.0", + "@esbuild/win32-arm64": "0.25.0", + "@esbuild/win32-ia32": "0.25.0", + "@esbuild/win32-x64": "0.25.0" + } + }, "node_modules/escalade": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", @@ -5571,6 +8151,26 @@ "node": ">=16.0.0" } }, + "node_modules/eslint-plugin-html/node_modules/htmlparser2": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", + "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "license": "MIT", + "dependencies": { + "domelementtype": "^2.3.0", + "domhandler": "^5.0.3", + "domutils": "^3.1.0", + "entities": "^4.5.0" + } + }, "node_modules/eslint-plugin-import": { "version": "2.31.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", @@ -5844,6 +8444,121 @@ "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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-build-jsx/node_modules/estree-walker": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz", + "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-scope": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/estree-util-scope/-/estree-util-scope-1.0.0.tgz", + "integrity": "sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.0.0" + }, + "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==", + "dev": true, + "license": "MIT", + "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-to-js/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 8" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree-jsx": "^1.0.0", + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/estree-util-visit/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, "node_modules/estree-walker": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", @@ -5998,9 +8713,9 @@ } }, "node_modules/fdir": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz", - "integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==", + "version": "6.4.3", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz", + "integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6260,6 +8975,17 @@ "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, + "license": "Apache-2.0", + "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", @@ -6282,6 +9008,16 @@ "dev": true, "license": "ISC" }, + "node_modules/flattie": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flattie/-/flattie-1.1.1.tgz", + "integrity": "sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/follow-redirects": { "version": "1.15.9", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", @@ -6516,6 +9252,19 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.3.0.tgz", + "integrity": "sha512-vpeMIQKxczTD/0s2CdEWHcb0eeJe6TFjxb+J5xgX7hScxqrGuyjmv4c1D4A/gelKfyox0gJJwIHF+fLjeaM8kQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.5.tgz", @@ -6583,6 +9332,13 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/github-slugger": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-2.0.0.tgz", + "integrity": "sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==", + "dev": true, + "license": "ISC" + }, "node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", @@ -6806,6 +9562,24 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/h3": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/h3/-/h3-1.15.1.tgz", + "integrity": "sha512-+ORaOBttdUm1E2Uu/obAyCguiI7MbBvsLTndc3gyK3zU+SYLoZXlyCP9Xgy0gikkGufFLTZXCXD6+4BsufnmHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cookie-es": "^1.2.2", + "crossws": "^0.3.3", + "defu": "^6.1.4", + "destr": "^2.0.3", + "iron-webcrypto": "^1.2.1", + "node-mock-http": "^1.0.0", + "radix3": "^1.1.2", + "ufo": "^1.5.4", + "uncrypto": "^0.1.3" + } + }, "node_modules/hammer-simulator": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/hammer-simulator/-/hammer-simulator-0.0.1.tgz", @@ -6904,6 +9678,659 @@ "node": ">= 0.4" } }, + "node_modules/hast-util-from-html": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-html/-/hast-util-from-html-2.0.3.tgz", + "integrity": "sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "devlop": "^1.1.0", + "hast-util-from-parse5": "^8.0.0", + "parse5": "^7.0.0", + "vfile": "^6.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-from-html/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-from-html/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-html/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-8.0.3.tgz", + "integrity": "sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "devlop": "^1.0.0", + "hastscript": "^9.0.0", + "property-information": "^7.0.0", + "vfile": "^6.0.0", + "vfile-location": "^5.0.0", + "web-namespaces": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-from-parse5/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-from-parse5/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-from-parse5/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-has-property": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hast-util-has-property/-/hast-util-has-property-2.0.1.tgz", + "integrity": "sha512-X2+RwZIMTMKpXUzlotatPzWj8bspCymtXH3cfG3iQKV+wPF53Vgaqxi/eLqGck0wKq1kS9nvoB1wchbCPEL8sg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-heading-rank": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/hast-util-heading-rank/-/hast-util-heading-rank-2.1.1.tgz", + "integrity": "sha512-iAuRp+ESgJoRFJbSyaqsfvJDY6zzmFoEnL1gtz1+U8gKtGGj1p0CVlysuUAUjq95qlZESHINLThwJzNGmgGZxA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-is-element": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz", + "integrity": "sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/hast-util-parse-selector/-/hast-util-parse-selector-4.0.0.tgz", + "integrity": "sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-parse-selector/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-raw": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-9.1.0.tgz", + "integrity": "sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "@ungap/structured-clone": "^1.0.0", + "hast-util-from-parse5": "^8.0.0", + "hast-util-to-parse5": "^8.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "parse5": "^7.0.0", + "unist-util-position": "^5.0.0", + "unist-util-visit": "^5.0.0", + "vfile": "^6.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-raw/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/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==", + "dev": true, + "license": "MIT", + "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/hast-util-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/hast-util-to-estree/-/hast-util-to-estree-3.1.2.tgz", + "integrity": "sha512-94SDoKOfop5gP8RHyw4vV1aj+oChuD42g08BONGAaWFbbO6iaWUqxk7SWfGybgcVzhK16KifZr3zD2dqQgx3jQ==", + "dev": true, + "license": "MIT", + "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": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "style-to-object": "^1.0.0", + "unist-util-position": "^5.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-estree/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-html": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-9.0.5.tgz", + "integrity": "sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "@types/unist": "^3.0.0", + "ccount": "^2.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-whitespace": "^3.0.0", + "html-void-elements": "^3.0.0", + "mdast-util-to-hast": "^13.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0", + "stringify-entities": "^4.0.0", + "zwitch": "^2.0.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-html/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-html/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-to-jsx-runtime": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/hast-util-to-jsx-runtime/-/hast-util-to-jsx-runtime-2.3.5.tgz", + "integrity": "sha512-gHD+HoFxOMmmXLuq9f2dZDMQHVcplCVpMfBNRpJsF03yyLZvJGzsFORe8orVuYDX9k2w0VH0uF8oryFd1whqKQ==", + "dev": true, + "license": "MIT", + "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": "^7.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/@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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-jsx-runtime/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-to-jsx-runtime/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-jsx-runtime/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/hast-util-to-parse5/-/hast-util-to-parse5-8.0.0.tgz", + "integrity": "sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "devlop": "^1.0.0", + "property-information": "^6.0.0", + "space-separated-tokens": "^2.0.0", + "web-namespaces": "^2.0.0", + "zwitch": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-to-parse5/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-parse5/node_modules/property-information": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.5.0.tgz", + "integrity": "sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/hast-util-to-text": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/hast-util-to-text/-/hast-util-to-text-4.0.2.tgz", + "integrity": "sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==", + "dev": true, + "license": "MIT", + "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-to-text/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hast-util-to-text/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/hast-util-to-text/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hast-util-whitespace/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/hastscript": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.1.tgz", + "integrity": "sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "comma-separated-tokens": "^2.0.0", + "hast-util-parse-selector": "^4.0.0", + "property-information": "^7.0.0", + "space-separated-tokens": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/hastscript/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/hookified": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/hookified/-/hookified-1.6.0.tgz", @@ -6937,10 +10364,21 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/html-void-elements": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-3.0.0.tgz", + "integrity": "sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/htmlparser2": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-9.1.0.tgz", - "integrity": "sha512-5zfg6mHUoaer/97TxnGpxmbR7zJtPwIYFMZ/H5ucTlPZhKvtum05yiPK3Mgai3a0DyVxv7qYqoweaEd2nrYQzQ==", + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz", + "integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==", "dev": true, "funding": [ "https://github.com/fb55/htmlparser2?sponsor=1", @@ -6953,8 +10391,8 @@ "dependencies": { "domelementtype": "^2.3.0", "domhandler": "^5.0.3", - "domutils": "^3.1.0", - "entities": "^4.5.0" + "domutils": "^3.0.1", + "entities": "^4.4.0" } }, "node_modules/http-cache-semantics": { @@ -7129,6 +10567,22 @@ "dev": true, "license": "ISC" }, + "node_modules/image-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-1.2.0.tgz", + "integrity": "sha512-4S8fwbO6w3GeCVN6OPtA9I5IGKkcDMPcKndtUlpJuCwu7JLjtj7JZpwqLuyY2nrmQT3AWsCJLSKPsc2mPBSl3w==", + "dev": true, + "license": "MIT", + "dependencies": { + "queue": "6.0.2" + }, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=16.x" + } + }, "node_modules/immutable": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.7.tgz", @@ -7153,6 +10607,17 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-meta-resolve": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-4.1.0.tgz", + "integrity": "sha512-I6fiaX09Xivtk+THaMfAwnA3MVA5Big1WHF1Dfx9hFuvNIWpXnorlkzhcQf6ehrqQiiZECRt1poOAkPmer3ruw==", + "dev": true, + "license": "MIT", + "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", @@ -7199,6 +10664,13 @@ "dev": true, "license": "ISC" }, + "node_modules/inline-style-parser": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.4.tgz", + "integrity": "sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==", + "dev": true, + "license": "MIT" + }, "node_modules/inspect-with-kind": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/inspect-with-kind/-/inspect-with-kind-1.0.5.tgz", @@ -7241,6 +10713,16 @@ "dev": true, "license": "MIT" }, + "node_modules/iron-webcrypto": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/iron-webcrypto/-/iron-webcrypto-1.2.1.tgz", + "integrity": "sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/brc-dd" + } + }, "node_modules/is-alphabetical": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", @@ -7353,6 +10835,30 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-buffer": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", + "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", + "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" + } + ], + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/is-builtin-module": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz", @@ -7533,6 +11039,41 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-inside-container": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", + "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-docker": "^3.0.0" + }, + "bin": { + "is-inside-container": "cli.js" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-inside-container/node_modules/is-docker": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", + "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", + "dev": true, + "license": "MIT", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-map": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", @@ -8373,6 +11914,19 @@ "rollup": ">= 1.0.0" } }, + "node_modules/karma/node_modules/mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true, + "license": "MIT", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -8393,6 +11947,16 @@ "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, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/known-css-properties": { "version": "0.35.0", "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.35.0.tgz", @@ -8454,6 +12018,56 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/load-yaml-file/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, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -8594,6 +12208,17 @@ "node": ">=8.0" } }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/lowercase-keys": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-3.0.0.tgz", @@ -8618,15 +12243,27 @@ } }, "node_modules/magic-string": { - "version": "0.30.14", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz", - "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" } }, + "node_modules/magicast": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz", + "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.25.4", + "@babel/types": "^7.25.4", + "source-map-js": "^1.2.0" + } + }, "node_modules/make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -8651,6 +12288,30 @@ "semver": "bin/semver" } }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/markdown-table": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.4.tgz", + "integrity": "sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/mathml-tag-names": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", @@ -8662,6 +12323,160 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/mdast-util-definitions": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-definitions/-/mdast-util-definitions-6.0.0.tgz", + "integrity": "sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-definitions/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-definitions/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-definitions/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==", + "dev": true, + "license": "MIT", + "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/mdast-util-definitions/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-find-and-replace/-/mdast-util-find-and-replace-3.0.2.tgz", + "integrity": "sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==", + "dev": true, + "license": "MIT", + "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/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-find-and-replace/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mdast-util-find-and-replace/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-find-and-replace/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "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", @@ -8680,6 +12495,1582 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-gfm": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-3.1.0.tgz", + "integrity": "sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==", + "dev": true, + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-2.0.1.tgz", + "integrity": "sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==", + "dev": true, + "license": "MIT", + "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-autolink-literal/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-footnote": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==", + "dev": true, + "license": "MIT", + "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-footnote/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-gfm-footnote/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-gfm-footnote/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-footnote/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-gfm-footnote/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "dev": true, + "license": "MIT", + "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-strikethrough/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-gfm-strikethrough/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-strikethrough/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-gfm-strikethrough/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "dev": true, + "license": "MIT", + "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-table/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-gfm-table/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-gfm-table/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-table/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-gfm-table/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "dev": true, + "license": "MIT", + "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-gfm-task-list-item/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-gfm-task-list-item/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm-task-list-item/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-gfm-task-list-item/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-gfm/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-gfm/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-gfm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-gfm/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-gfm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "dev": true, + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-2.0.1.tgz", + "integrity": "sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==", + "dev": true, + "license": "MIT", + "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-expression/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-mdx-expression/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-mdx-expression/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-expression/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-mdx-expression/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-3.2.0.tgz", + "integrity": "sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==", + "dev": true, + "license": "MIT", + "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-stringify-position": "^4.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-alphabetical": "^2.0.0", + "is-decimal": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-mdx-jsx/node_modules/parse-entities": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-4.0.2.tgz", + "integrity": "sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^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/mdast-util-mdx-jsx/node_modules/parse-entities/node_modules/@types/unist": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-2.0.11.tgz", + "integrity": "sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-mdx/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdx/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-mdx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "dev": true, + "license": "MIT", + "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-mdxjs-esm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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-mdxjs-esm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-mdxjs-esm/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/mdast-util-mdxjs-esm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-phrasing/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-phrasing/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-phrasing/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast": { + "version": "13.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-13.2.0.tgz", + "integrity": "sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==", + "dev": true, + "license": "MIT", + "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-hast/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-hast/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-hast/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-to-hast/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/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==", + "dev": true, + "license": "MIT", + "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/mdast-util-to-hast/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-hast/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-2.1.2.tgz", + "integrity": "sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==", + "dev": true, + "license": "MIT", + "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-classify-character": "^2.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-markdown/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/mdast-util-to-markdown/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/mdast-util-to-markdown/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/mdast-util-to-markdown/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==", + "dev": true, + "license": "MIT", + "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/mdast-util-to-markdown/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "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", @@ -8768,6 +14159,868 @@ "parse-entities": "^2.0.0" } }, + "node_modules/micromark-core-commonmark": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-2.0.3.tgz", + "integrity": "sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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-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==", + "dev": true, + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-2.1.0.tgz", + "integrity": "sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==", + "dev": true, + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-2.1.0.tgz", + "integrity": "sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==", + "dev": true, + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-2.1.0.tgz", + "integrity": "sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==", + "dev": true, + "license": "MIT", + "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.1.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-2.1.1.tgz", + "integrity": "sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-2.1.0.tgz", + "integrity": "sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-3.0.1.tgz", + "integrity": "sha512-vNuFb9czP8QCtAQcEJn0UJQJZA8Dk6DXKBqx+bg/w0WGuSxDxNr7hErW89tHUY31dUW4NqEOWwmEUNhjTFmHkg==", + "dev": true, + "license": "MIT", + "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-events-to-acorn": "^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-jsx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromark-extension-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdx-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "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-extension-mdxjs-esm/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromark-extension-mdxjs-esm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-mdxjs-esm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-destination": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-destination/-/micromark-factory-destination-2.0.1.tgz", + "integrity": "sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-2.0.1.tgz", + "integrity": "sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.2", + "resolved": "https://registry.npmjs.org/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-2.0.2.tgz", + "integrity": "sha512-5E5I2pFzJyg2CtemqAbcyCktpHXuJbABnsb32wX2U8IQKhhVFBqkcZR5LRm1WVoFqa4kTueZK4abep7wdo9nrw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "devlop": "^1.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", + "unist-util-position-from-estree": "^2.0.0", + "vfile-message": "^4.0.0" + } + }, + "node_modules/micromark-factory-mdx-expression/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromark-factory-mdx-expression/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-mdx-expression/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-factory-space": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-space/-/micromark-factory-space-2.0.1.tgz", + "integrity": "sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-character": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-factory-title": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-2.0.1.tgz", + "integrity": "sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-factory-whitespace/-/micromark-factory-whitespace-2.0.1.tgz", + "integrity": "sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-util-character/-/micromark-util-character-2.1.1.tgz", + "integrity": "sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-chunked": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-chunked/-/micromark-util-chunked-2.0.1.tgz", + "integrity": "sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-classify-character": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-classify-character/-/micromark-util-classify-character-2.0.1.tgz", + "integrity": "sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-util-combine-extensions/-/micromark-util-combine-extensions-2.0.1.tgz", + "integrity": "sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-chunked": "^2.0.0", + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-numeric-character-reference": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-2.0.2.tgz", + "integrity": "sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-decode-string": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-2.0.1.tgz", + "integrity": "sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-2.0.1.tgz", + "integrity": "sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "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==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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-events-to-acorn/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/micromark-util-events-to-acorn/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-util-events-to-acorn/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-util-html-tag-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-html-tag-name/-/micromark-util-html-tag-name-2.0.1.tgz", + "integrity": "sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-normalize-identifier": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-2.0.1.tgz", + "integrity": "sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-symbol": "^2.0.0" + } + }, + "node_modules/micromark-util-resolve-all": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-resolve-all/-/micromark-util-resolve-all-2.0.1.tgz", + "integrity": "sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "dependencies": { + "micromark-util-types": "^2.0.0" + } + }, + "node_modules/micromark-util-sanitize-uri": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-2.0.1.tgz", + "integrity": "sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1.0", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-2.1.0.tgz", + "integrity": "sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-2.0.1.tgz", + "integrity": "sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, + "node_modules/micromark-util-types": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-2.0.2.tgz", + "integrity": "sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT" + }, "node_modules/micromatch": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", @@ -8796,16 +15049,16 @@ } }, "node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", "dev": true, "license": "MIT", "bin": { "mime": "cli.js" }, "engines": { - "node": ">=4.0.0" + "node": ">=10.0.0" } }, "node_modules/mime-db": { @@ -8920,6 +15173,16 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mrmime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-2.0.1.tgz", + "integrity": "sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -8963,6 +15226,44 @@ "node": ">= 0.6" } }, + "node_modules/neotraverse": { + "version": "0.6.18", + "resolved": "https://registry.npmjs.org/neotraverse/-/neotraverse-0.6.18.tgz", + "integrity": "sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, + "node_modules/nlcst-to-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/nlcst-to-string/-/nlcst-to-string-4.0.0.tgz", + "integrity": "sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/node-fetch-native": { + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/node-fetch-native/-/node-fetch-native-1.6.6.tgz", + "integrity": "sha512-8Mc2HhqPdlIfedsuZoc3yioPuzp6b+L5jRCRY1QzuWZh2EGJVQrGppC6V6cF0bLdbW0+O2YpqCA25aF/1lvipQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-mock-http": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-mock-http/-/node-mock-http-1.0.0.tgz", + "integrity": "sha512-0uGYQ1WQL1M5kKvGRXWQ3uZCHtLTO8hln3oBjIusM75WoesZ909uQJs/Hb946i2SS+Gsrhkaa6iAO17jRIv6DQ==", + "dev": true, + "license": "MIT" + }, "node_modules/node-releases": { "version": "2.0.19", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", @@ -9318,6 +15619,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/ofetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", + "integrity": "sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==", + "dev": true, + "license": "MIT", + "dependencies": { + "destr": "^2.0.3", + "node-fetch-native": "^1.6.4", + "ufo": "^1.5.4" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -9357,6 +15670,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/oniguruma-to-es": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/oniguruma-to-es/-/oniguruma-to-es-2.3.0.tgz", + "integrity": "sha512-bwALDxriqfKGfUufKGGepCzu9x7nJQuoRoAFp4AnwehhC2crqrDIAP/uN2qdlsAvSMpeRC3+Yzhqc7hLmle5+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex-xs": "^1.0.0", + "regex": "^5.1.1", + "regex-recursion": "^5.1.1" + } + }, "node_modules/optionator": { "version": "0.9.4", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", @@ -9417,6 +15742,43 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/p-queue": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/p-queue/-/p-queue-8.1.0.tgz", + "integrity": "sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "eventemitter3": "^5.0.1", + "p-timeout": "^6.1.2" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-queue/node_modules/eventemitter3": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", + "dev": true, + "license": "MIT" + }, + "node_modules/p-timeout": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-6.1.4.tgz", + "integrity": "sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/p-try": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", @@ -9502,6 +15864,89 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/parse-latin": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/parse-latin/-/parse-latin-7.0.0.tgz", + "integrity": "sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "@types/unist": "^3.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-modify-children": "^4.0.0", + "unist-util-visit-children": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/parse-latin/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/parse-latin/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/parse-latin/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/parse-latin/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/parse5": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", + "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "entities": "^4.5.0" + }, + "funding": { + "url": "https://github.com/inikulin/parse5?sponsor=1" + } + }, "node_modules/parseurl": { "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", @@ -9650,6 +16095,75 @@ "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "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, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/pluralize": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", @@ -9671,9 +16185,9 @@ } }, "node_modules/postcss": { - "version": "8.5.2", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.2.tgz", - "integrity": "sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==", + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", + "integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==", "dev": true, "funding": [ { @@ -9963,6 +16477,21 @@ "url": "https://opencollective.com/preact" } }, + "node_modules/preferred-pm": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/preferred-pm/-/preferred-pm-4.1.1.tgz", + "integrity": "sha512-rU+ZAv1Ur9jAUZtGPebQVQPzdGhNzaEiQ7VL9+cjsAWPHFYOccNXPNiev1CCDSOg/2j7UujM7ojNhpkuILEVNQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up-simple": "^1.0.0", + "find-yarn-workspace-root2": "1.2.16", + "which-pm": "^3.0.1" + }, + "engines": { + "node": ">=18.12" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -9973,6 +16502,39 @@ "node": ">= 0.8.0" } }, + "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, + "license": "MIT", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-plugin-astro": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/prettier-plugin-astro/-/prettier-plugin-astro-0.8.1.tgz", + "integrity": "sha512-lJ/mG/Lz/ccSwNtwqpFS126mtMVzFVyYv0ddTF9wqwrEG4seECjKDAyw/oGv915rAcJi8jr89990nqfpmG+qdg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@astrojs/compiler": "^1.0.1", + "prettier": "^2.8.3", + "sass-formatter": "^0.7.5", + "synckit": "^0.8.4" + }, + "engines": { + "node": "^14.15.0 || >=16.0.0", + "pnpm": ">=7.14.0" + } + }, "node_modules/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -10011,6 +16573,16 @@ "node": ">= 0.8" } }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -10018,6 +16590,41 @@ "dev": true, "license": "MIT" }, + "node_modules/prompts": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", + "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/prompts/node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6" + } + }, + "node_modules/property-information": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-7.0.0.tgz", + "integrity": "sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/proxy-from-env": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", @@ -10077,6 +16684,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/queue": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/queue/-/queue-6.0.2.tgz", + "integrity": "sha512-iHZWu+q3IdFZFX36ro/lKBkSvfkztY5Y7HMiPlOUjhupPcG2JMfst2KKEpu5XndviX/3UhFbRngUPNKtgvtZiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "inherits": "~2.0.3" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -10118,6 +16735,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/radix3": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", + "integrity": "sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==", + "dev": true, + "license": "MIT" + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -10363,6 +16987,377 @@ "node": ">= 0.10" } }, + "node_modules/recma-build-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-build-jsx/-/recma-build-jsx-1.0.0.tgz", + "integrity": "sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-build-jsx": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-build-jsx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/recma-build-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-build-jsx/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-build-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-jsx/-/recma-jsx-1.0.0.tgz", + "integrity": "sha512-5vwkv65qWwYxg+Atz95acp8DMu1JDSqdGkA2Of1j6rCreyFUE/gp15fC8MnGEuG1W68UKjM6x6+YTWIh7hZM/Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "acorn-jsx": "^5.0.0", + "estree-util-to-js": "^2.0.0", + "recma-parse": "^1.0.0", + "recma-stringify": "^1.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/recma-jsx/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/recma-jsx/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/recma-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-jsx/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-parse/-/recma-parse-1.0.0.tgz", + "integrity": "sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "esast-util-from-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/recma-parse/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/recma-parse/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/recma-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/recma-stringify/-/recma-stringify-1.0.0.tgz", + "integrity": "sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "estree-util-to-js": "^2.0.0", + "unified": "^11.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/recma-stringify/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/recma-stringify/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/recma-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/recma-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/reflect.getprototypeof": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.8.tgz", @@ -10423,6 +17418,34 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regex": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/regex/-/regex-5.1.1.tgz", + "integrity": "sha512-dN5I359AVGPnwzJm2jN1k0W9LPZ+ePvoOeVMMfqIMFz53sSwXkxaJoxr50ptnsC771lK95BnTrVSZxq0b9yCGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-recursion": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/regex-recursion/-/regex-recursion-5.1.1.tgz", + "integrity": "sha512-ae7SBCbzVNrIjgSbh7wMznPcQel1DNlDtzensnFxpiNpXt1U2ju/bHugH422r+4LAVS1FpW1YCwilmnNsjum9w==", + "dev": true, + "license": "MIT", + "dependencies": { + "regex": "^5.1.1", + "regex-utilities": "^2.3.0" + } + }, + "node_modules/regex-utilities": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/regex-utilities/-/regex-utilities-2.3.0.tgz", + "integrity": "sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==", + "dev": true, + "license": "MIT" + }, "node_modules/regexp-tree": { "version": "0.1.27", "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz", @@ -10512,6 +17535,1151 @@ "jsesc": "bin/jsesc" } }, + "node_modules/rehype": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/rehype/-/rehype-13.0.2.tgz", + "integrity": "sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "rehype-parse": "^9.0.0", + "rehype-stringify": "^10.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-autolink-headings": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rehype-autolink-headings/-/rehype-autolink-headings-6.1.1.tgz", + "integrity": "sha512-NMYzZIsHM3sA14nC5rAFuUPIOfg+DFmf9EY1YMhaNlB7+3kK/ZlE6kqPfuxr1tsJ1XWkTrMtMoyHosU70d35mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^2.0.0", + "extend": "^3.0.0", + "hast-util-has-property": "^2.0.0", + "hast-util-heading-rank": "^2.0.0", + "hast-util-is-element": "^2.0.0", + "unified": "^10.0.0", + "unist-util-visit": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/rehype-parse/-/rehype-parse-9.0.1.tgz", + "integrity": "sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-from-html": "^2.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype-parse/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/rehype-parse/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rehype-parse/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/rehype-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-7.0.0.tgz", + "integrity": "sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-raw": "^9.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype-raw/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/rehype-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-raw/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rehype-recma/-/rehype-recma-1.0.0.tgz", + "integrity": "sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.0", + "@types/hast": "^3.0.0", + "hast-util-to-estree": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-recma/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype-stringify": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-10.0.1.tgz", + "integrity": "sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/hast": "^3.0.0", + "hast-util-to-html": "^9.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype-stringify/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/rehype-stringify/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rehype-stringify/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/rehype-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/rehype/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/rehype/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/rehype/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/rehype/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/rehype/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-4.0.1.tgz", + "integrity": "sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==", + "dev": true, + "license": "MIT", + "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-gfm/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-gfm/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/remark-gfm/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-gfm/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/remark-gfm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-gfm/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-mdx": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/remark-mdx/-/remark-mdx-3.1.0.tgz", + "integrity": "sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "mdast-util-mdx": "^3.0.0", + "micromark-extension-mdxjs": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "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==", + "dev": true, + "license": "MIT", + "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-parse/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-parse/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/remark-parse/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-parse/node_modules/mdast-util-from-markdown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-2.0.2.tgz", + "integrity": "sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==", + "dev": true, + "license": "MIT", + "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/remark-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/mdast": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/micromark": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-4.0.2.tgz", + "integrity": "sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "license": "MIT", + "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/remark-parse/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/remark-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-parse/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-11.1.1.tgz", + "integrity": "sha512-g/osARvjkBXb6Wo0XvAeXQohVta8i84ACbenPpoSsxTOQH/Ae0/RGP4WZgnMH5pMLpsj4FG7OHmcIcXxpza8eQ==", + "dev": true, + "license": "MIT", + "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-rehype/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-rehype/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-rehype/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/remark-rehype/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-rehype/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/remark-rehype/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-rehype/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/remark-smartypants/-/remark-smartypants-3.0.2.tgz", + "integrity": "sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==", + "dev": true, + "license": "MIT", + "dependencies": { + "retext": "^9.0.0", + "retext-smartypants": "^6.0.0", + "unified": "^11.0.4", + "unist-util-visit": "^5.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/remark-smartypants/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/remark-smartypants/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-smartypants/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/remark-smartypants/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants/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==", + "dev": true, + "license": "MIT", + "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/remark-smartypants/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-smartypants/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.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==", + "dev": true, + "license": "MIT", + "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/remark-stringify/node_modules/@types/mdast": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz", + "integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, + "node_modules/remark-stringify/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/remark-stringify/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/remark-stringify/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/remark-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/remark-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.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", @@ -10590,6 +18758,375 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/retext": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/retext/-/retext-9.0.0.tgz", + "integrity": "sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "retext-latin": "^4.0.0", + "retext-stringify": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-latin/-/retext-latin-4.0.0.tgz", + "integrity": "sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "parse-latin": "^7.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/retext-latin/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retext-latin/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/retext-latin/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-latin/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/retext-smartypants/-/retext-smartypants-6.2.0.tgz", + "integrity": "sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/retext-smartypants/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-smartypants/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==", + "dev": true, + "license": "MIT", + "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/retext-smartypants/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/retext-stringify/-/retext-stringify-4.0.0.tgz", + "integrity": "sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/nlcst": "^2.0.0", + "nlcst-to-string": "^4.0.0", + "unified": "^11.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/retext-stringify/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retext-stringify/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/retext-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext-stringify/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/retext/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/retext/node_modules/unified": { + "version": "11.0.5", + "resolved": "https://registry.npmjs.org/unified/-/unified-11.0.5.tgz", + "integrity": "sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==", + "dev": true, + "license": "MIT", + "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/retext/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/retext/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/reusify": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", @@ -10726,6 +19263,13 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/s.color": { + "version": "0.0.15", + "resolved": "https://registry.npmjs.org/s.color/-/s.color-0.0.15.tgz", + "integrity": "sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==", + "dev": true, + "license": "MIT" + }, "node_modules/safe-array-concat": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", @@ -10809,6 +19353,16 @@ "node": ">=14.0.0" } }, + "node_modules/sass-formatter": { + "version": "0.7.9", + "resolved": "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.7.9.tgz", + "integrity": "sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "suf-log": "^2.5.3" + } + }, "node_modules/sass-true": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/sass-true/-/sass-true-8.1.0.tgz", @@ -10836,6 +19390,13 @@ } } }, + "node_modules/sax": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.4.1.tgz", + "integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==", + "dev": true, + "license": "ISC" + }, "node_modules/search-insights": { "version": "2.17.3", "resolved": "https://registry.npmjs.org/search-insights/-/search-insights-2.17.3.tgz", @@ -10965,6 +19526,61 @@ "dev": true, "license": "ISC" }, + "node_modules/sharp": { + "version": "0.33.5", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.5.tgz", + "integrity": "sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==", + "dev": true, + "hasInstallScript": true, + "license": "Apache-2.0", + "optional": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.3", + "semver": "^7.6.3" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.5", + "@img/sharp-darwin-x64": "0.33.5", + "@img/sharp-libvips-darwin-arm64": "1.0.4", + "@img/sharp-libvips-darwin-x64": "1.0.4", + "@img/sharp-libvips-linux-arm": "1.0.5", + "@img/sharp-libvips-linux-arm64": "1.0.4", + "@img/sharp-libvips-linux-s390x": "1.0.4", + "@img/sharp-libvips-linux-x64": "1.0.4", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.4", + "@img/sharp-libvips-linuxmusl-x64": "1.0.4", + "@img/sharp-linux-arm": "0.33.5", + "@img/sharp-linux-arm64": "0.33.5", + "@img/sharp-linux-s390x": "0.33.5", + "@img/sharp-linux-x64": "0.33.5", + "@img/sharp-linuxmusl-arm64": "0.33.5", + "@img/sharp-linuxmusl-x64": "0.33.5", + "@img/sharp-wasm32": "0.33.5", + "@img/sharp-win32-ia32": "0.33.5", + "@img/sharp-win32-x64": "0.33.5" + } + }, + "node_modules/sharp/node_modules/semver": { + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", + "dev": true, + "license": "ISC", + "optional": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -11019,6 +19635,33 @@ "node": ">=4" } }, + "node_modules/shiki": { + "version": "1.29.2", + "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.29.2.tgz", + "integrity": "sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@shikijs/core": "1.29.2", + "@shikijs/engine-javascript": "1.29.2", + "@shikijs/engine-oniguruma": "1.29.2", + "@shikijs/langs": "1.29.2", + "@shikijs/themes": "1.29.2", + "@shikijs/types": "1.29.2", + "@shikijs/vscode-textmate": "^10.0.1", + "@types/hast": "^3.0.4" + } + }, + "node_modules/shiki/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/side-channel": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", @@ -11045,6 +19688,25 @@ "dev": true, "license": "ISC" }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true, + "license": "MIT", + "optional": true + }, "node_modules/simple-update-notifier": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-2.0.0.tgz", @@ -11071,6 +19733,40 @@ "node": ">=10" } }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "dev": true, + "license": "MIT" + }, + "node_modules/sitemap": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-8.0.0.tgz", + "integrity": "sha512-+AbdxhM9kJsHtruUF39bwS/B0Fytw6Fr1o4ZAIAEqA6cke2xcoO2GleBw9Zw7nRzILVEgz7zBM5GiTJjie1G9A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/node": "^17.0.5", + "@types/sax": "^1.2.1", + "arg": "^5.0.0", + "sax": "^1.2.4" + }, + "bin": { + "sitemap": "dist/cli.js" + }, + "engines": { + "node": ">=14.0.0", + "npm": ">=6.0.0" + } + }, + "node_modules/sitemap/node_modules/@types/node": { + "version": "17.0.45", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz", + "integrity": "sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==", + "dev": true, + "license": "MIT" + }, "node_modules/slash": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", @@ -11099,6 +19795,19 @@ "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, + "node_modules/smol-toml": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.3.1.tgz", + "integrity": "sha512-tEYNll18pPKHroYSmLLrksq233j021G0giwW7P3D24jC54pQ5W5BXMsQ/Mvw1OJCmEYDgY+lrzT+3nNUtoNfXQ==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">= 18" + }, + "funding": { + "url": "https://github.com/sponsors/cyyynthia" + } + }, "node_modules/socket.io": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.1.tgz", @@ -11254,6 +19963,17 @@ "source-map": "^0.6.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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", @@ -11307,6 +20027,13 @@ "node": ">= 0.6" } }, + "node_modules/stream-replace-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/stream-replace-string/-/stream-replace-string-2.0.0.tgz", + "integrity": "sha512-TlnjJ1C0QrmxRNrON00JvaFFlNh5TTG00APw23j74ET7gkQpTASi6/L2fuiav8pzK715HXtUeClpBTw2NPSn6w==", + "dev": true, + "license": "MIT" + }, "node_modules/streamroller": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.5.tgz", @@ -11472,6 +20199,32 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/stringify-entities": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", + "integrity": "sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==", + "dev": true, + "license": "MIT", + "dependencies": { + "character-entities-html4": "^2.0.0", + "character-entities-legacy": "^3.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/stringify-entities/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==", + "dev": true, + "license": "MIT", + "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", @@ -11584,6 +20337,16 @@ "dev": true, "license": "ISC" }, + "node_modules/style-to-object": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/style-to-object/-/style-to-object-1.0.8.tgz", + "integrity": "sha512-xT47I/Eo0rwJmaXC4oilDGDWLohVhR6o/xAQcPQN8q6QBuZVL8qMYL85kLmST5cPjAorwvqIA4qXTRQoYHaL6g==", + "dev": true, + "license": "MIT", + "dependencies": { + "inline-style-parser": "0.2.4" + } + }, "node_modules/stylelint": { "version": "16.14.1", "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.14.1.tgz", @@ -11911,6 +20674,16 @@ "node": ">=8" } }, + "node_modules/suf-log": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/suf-log/-/suf-log-2.5.3.tgz", + "integrity": "sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==", + "dev": true, + "license": "MIT", + "dependencies": { + "s.color": "0.0.15" + } + }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -11960,6 +20733,23 @@ "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", "dev": true }, + "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, + "license": "MIT", + "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/table": { "version": "6.9.0", "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz", @@ -12077,6 +20867,30 @@ "dev": true, "license": "MIT" }, + "node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, + "node_modules/tinyglobby": { + "version": "0.2.12", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz", + "integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.4.3", + "picomatch": "^4.0.2" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, "node_modules/tmp": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.3.tgz", @@ -12148,6 +20962,49 @@ "node": "*" } }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/tsconfck": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/tsconfck/-/tsconfck-3.1.5.tgz", + "integrity": "sha512-CLDfGgUp7XPswWnezWwsCRxNmgQjhYq3VXHM0/XIRxhVrKw0M1if9agzryh1QS3nxjCROvV+xWxoJO1YctzzWg==", + "dev": true, + "license": "MIT", + "bin": { + "tsconfck": "bin/tsconfck.js" + }, + "engines": { + "node": "^18 || >=20" + }, + "peerDependencies": { + "typescript": "^5.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -12306,6 +21163,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/typescript": { + "version": "5.7.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, "node_modules/ua-parser-js": { "version": "0.7.39", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.39.tgz", @@ -12333,6 +21205,13 @@ "node": "*" } }, + "node_modules/ufo": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", + "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", + "dev": true, + "license": "MIT" + }, "node_modules/uint8array-extras": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/uint8array-extras/-/uint8array-extras-1.4.0.tgz", @@ -12346,6 +21225,13 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ultrahtml": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/ultrahtml/-/ultrahtml-1.5.3.tgz", + "integrity": "sha512-GykOvZwgDWZlTQMtp5jrD4BVL+gNn2NVlVafjcFUJ7taY20tqYdwdoWBFy6GBJsNTZe1GkGPkSl5knQAjtgceg==", + "dev": true, + "license": "MIT" + }, "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", @@ -12373,6 +21259,13 @@ "through": "^2.3.8" } }, + "node_modules/uncrypto": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/uncrypto/-/uncrypto-0.1.3.tgz", + "integrity": "sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==", + "dev": true, + "license": "MIT" + }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -12444,6 +21337,220 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/unified": { + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.2.tgz", + "integrity": "sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "bail": "^2.0.0", + "extend": "^3.0.0", + "is-buffer": "^2.0.0", + "is-plain-obj": "^4.0.0", + "trough": "^2.0.0", + "vfile": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unified/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==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-find-after/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-find-after/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-is": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/unist-util-is/-/unist-util-is-5.2.1.tgz", + "integrity": "sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/unist-util-modify-children/-/unist-util-modify-children-4.0.0.tgz", + "integrity": "sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "array-iterate": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-modify-children/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-position-from-estree/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-visit": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-remove-position/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-remove-position/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==", + "dev": true, + "license": "MIT", + "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-remove-position/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-is": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "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", @@ -12458,6 +21565,58 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/unist-util-visit": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.2.tgz", + "integrity": "sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0", + "unist-util-visit-parents": "^5.1.1" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-children/-/unist-util-visit-children-3.0.0.tgz", + "integrity": "sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/unist-util-visit-children/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/unist-util-visit-parents": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz", + "integrity": "sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-is": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", @@ -12478,6 +21637,136 @@ "node": ">= 0.8" } }, + "node_modules/unstorage": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.15.0.tgz", + "integrity": "sha512-m40eHdGY/gA6xAPqo8eaxqXgBuzQTlAKfmB1iF7oCKXE1HfwHwzDJBywK+qQGn52dta+bPlZluPF7++yR3p/bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "anymatch": "^3.1.3", + "chokidar": "^4.0.3", + "destr": "^2.0.3", + "h3": "^1.15.0", + "lru-cache": "^10.4.3", + "node-fetch-native": "^1.6.6", + "ofetch": "^1.4.1", + "ufo": "^1.5.4" + }, + "peerDependencies": { + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", + "@azure/identity": "^4.6.0", + "@azure/keyvault-secrets": "^4.9.0", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3", + "@deno/kv": ">=0.9.0", + "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", + "@planetscale/database": "^1.19.0", + "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.1", + "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", + "idb-keyval": "^6.2.1", + "ioredis": "^5.4.2", + "uploadthing": "^7.4.4" + }, + "peerDependenciesMeta": { + "@azure/app-configuration": { + "optional": true + }, + "@azure/cosmos": { + "optional": true + }, + "@azure/data-tables": { + "optional": true + }, + "@azure/identity": { + "optional": true + }, + "@azure/keyvault-secrets": { + "optional": true + }, + "@azure/storage-blob": { + "optional": true + }, + "@capacitor/preferences": { + "optional": true + }, + "@deno/kv": { + "optional": true + }, + "@netlify/blobs": { + "optional": true + }, + "@planetscale/database": { + "optional": true + }, + "@upstash/redis": { + "optional": true + }, + "@vercel/blob": { + "optional": true + }, + "@vercel/kv": { + "optional": true + }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, + "idb-keyval": { + "optional": true + }, + "ioredis": { + "optional": true + }, + "uploadthing": { + "optional": true + } + } + }, + "node_modules/unstorage/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/unstorage/node_modules/lru-cache": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", + "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/unstorage/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/unzipper": { "version": "0.9.15", "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.9.15.tgz", @@ -12585,6 +21874,223 @@ "node": ">= 0.8" } }, + "node_modules/vfile": { + "version": "5.3.7", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.7.tgz", + "integrity": "sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "is-buffer": "^2.0.0", + "unist-util-stringify-position": "^3.0.0", + "vfile-message": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/vfile-location/-/vfile-location-5.0.3.tgz", + "integrity": "sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile": "^6.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location/node_modules/@types/unist": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@types/unist/-/unist-3.0.3.tgz", + "integrity": "sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==", + "dev": true, + "license": "MIT" + }, + "node_modules/vfile-location/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location/node_modules/vfile": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-6.0.3.tgz", + "integrity": "sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "vfile-message": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-location/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==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^3.0.0", + "unist-util-stringify-position": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.4.tgz", + "integrity": "sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0", + "unist-util-stringify-position": "^3.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile-message/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vfile/node_modules/unist-util-stringify-position": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz", + "integrity": "sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/unist": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/vite": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.0.tgz", + "integrity": "sha512-7dPxoo+WsT/64rDcwoOjk76XHj+TqNTIvHKcuMQ1k4/SeHDaQt5GFAeLYzrimZrMpn/O6DtdI03WUjdxuPM0oQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "esbuild": "^0.25.0", + "postcss": "^8.5.3", + "rollup": "^4.30.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || ^20.0.0 || >=22.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || ^20.0.0 || >=22.0.0", + "jiti": ">=1.21.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "sass-embedded": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vitefu": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/vitefu/-/vitefu-1.0.6.tgz", + "integrity": "sha512-+Rex1GlappUyNN6UfwbVZne/9cYC4+R2XDk9xkNXBKMw6HQagdX9PgZ8V2v1WUSK1wfBLp7qbI1+XSNIlB1xmA==", + "dev": true, + "license": "MIT", + "workspaces": [ + "tests/deps/*", + "tests/projects/*" + ], + "peerDependencies": { + "vite": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vnu-jar": { "version": "24.10.17", "resolved": "https://registry.npmjs.org/vnu-jar/-/vnu-jar-24.10.17.tgz", @@ -12605,6 +22111,17 @@ "node": ">=0.10.0" } }, + "node_modules/web-namespaces": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -12688,6 +22205,29 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-pm": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/which-pm/-/which-pm-3.0.1.tgz", + "integrity": "sha512-v2JrMq0waAI4ju1xU5x3blsxBBMgdgZve580iYMN5frDaLGjbA24fok7wKCsya8KLVO19Ju4XDc5+zTZCJkQfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "load-yaml-file": "^0.2.0" + }, + "engines": { + "node": ">=18.12" + } + }, + "node_modules/which-pm-runs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz", + "integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/which-typed-array": { "version": "1.1.16", "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", @@ -12708,6 +22248,76 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/widest-line": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-5.0.0.tgz", + "integrity": "sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==", + "dev": true, + "license": "MIT", + "dependencies": { + "string-width": "^7.0.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/widest-line/node_modules/emoji-regex": { + "version": "10.4.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.4.0.tgz", + "integrity": "sha512-EC+0oUMY1Rqm4O6LLrgjtYDvcVYTy7chDnM4Q7030tP4Kwj3u/pR6gP9ygnp2CJMK5Gq+9Q2oqmrFJAz01DXjw==", + "dev": true, + "license": "MIT" + }, + "node_modules/widest-line/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" + }, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/widest-line/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, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, "node_modules/word-wrap": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", @@ -12811,6 +22421,13 @@ } } }, + "node_modules/xxhash-wasm": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/xxhash-wasm/-/xxhash-wasm-1.1.0.tgz", + "integrity": "sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==", + "dev": true, + "license": "MIT" + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -12896,6 +22513,76 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/yocto-spinner": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/yocto-spinner/-/yocto-spinner-0.2.1.tgz", + "integrity": "sha512-lHHxjh0bXaLgdJy3cNnVb/F9myx3CkhrvSOEVTkaUgNMXnYFa2xYPVhtGnqhh3jErY2gParBOHallCbc7NrlZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yoctocolors": "^2.1.1" + }, + "engines": { + "node": ">=18.19" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yoctocolors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yoctocolors/-/yoctocolors-2.1.1.tgz", + "integrity": "sha512-GQHQqAopRhwU8Kt1DDM8NjibDXHC8eoh1erhGAJPEyveY9qqVeXvVikNKrDz69sHowPMorbPUrH/mx8c50eiBQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zod": { + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + }, + "node_modules/zod-to-json-schema": { + "version": "3.24.3", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.3.tgz", + "integrity": "sha512-HIAfWdYIt1sssHfYZFCXp4rU1w2r8hVVXYIlmoa0r0gABLs5di3RCqPU5DDROogVz1pAdYBaz7HK5n9pSUNs3A==", + "dev": true, + "license": "ISC", + "peerDependencies": { + "zod": "^3.24.1" + } + }, + "node_modules/zod-to-ts": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/zod-to-ts/-/zod-to-ts-1.2.0.tgz", + "integrity": "sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==", + "dev": true, + "peerDependencies": { + "typescript": "^4.9.4 || ^5.0.2", + "zod": "^3" + } + }, + "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==", + "dev": true, + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } } } } diff --git a/package.json b/package.json index baedfe18fd..f3369c2801 100644 --- a/package.json +++ b/package.json @@ -90,19 +90,27 @@ "release-zip-examples": "node build/zip-examples.mjs", "dist": "npm-run-all --aggregate-output --parallel css js", "test": "npm-run-all lint dist js-test docs-build docs-lint", - "netlify": "cross-env-shell HUGO_BASEURL=$DEPLOY_PRIME_URL npm-run-all dist release-sri docs-build", + "netlify": "npm-run-all dist release-sri astro-build", "watch": "npm-run-all --parallel watch-*", "watch-css-main": "nodemon --watch scss/ --ext scss --exec \"npm-run-all css-lint css-compile css-prefix\"", "watch-css-dist": "nodemon --watch dist/css/ --ext css --ignore \"dist/css/*.rtl.*\" --exec \"npm run css-rtl\"", "watch-css-docs": "nodemon --watch site/assets/scss/ --ext scss --exec \"npm run css-lint\"", "watch-css-test": "nodemon --watch scss/ --ext scss,js --exec \"npm run css-test\"", "watch-js-main": "nodemon --watch js/src/ --ext js --exec \"npm-run-all js-lint js-compile\"", - "watch-js-docs": "nodemon --watch site/assets/js/ --ext js --exec \"npm run js-lint\"" + "watch-js-docs": "nodemon --watch site/assets/js/ --ext js --exec \"npm run js-lint\"", + "astro-dev": "astro dev --root site-new", + "astro-build": "astro build --root site-new && rm -rf _site && cp -r site-new/dist _site", + "astro-preview": "astro preview --root site-new", + "astro-lint": "prettier --config site-new/.prettierrc.json -c --cache site-new && astro check --root site-new && tsc -p site-new --noEmit" }, "peerDependencies": { "@popperjs/core": "^2.11.8" }, "devDependencies": { + "@astrojs/markdown-remark": "^6.2.0", + "@astrojs/mdx": "^4.1.0", + "@astrojs/prism": "^3.2.0", + "@astrojs/sitemap": "^3.2.1", "@babel/cli": "^7.26.4", "@babel/core": "^7.26.9", "@babel/preset-env": "^7.26.9", @@ -113,6 +121,13 @@ "@rollup/plugin-node-resolve": "^16.0.0", "@rollup/plugin-replace": "^6.0.2", "@stackblitz/sdk": "^1.11.0", + "@types/bootstrap": "^5.2.6", + "@types/google.analytics": "^0.0.42", + "@types/js-yaml": "^4.0.5", + "@types/mime": "^3.0.1", + "@types/prismjs": "^1.26.0", + "astro": "^5.4.0", + "astro-auto-import": "^0.4.4", "autoprefixer": "^10.4.20", "bundlewatch": "^0.4.0", "clean-css-cli": "^5.6.3", @@ -125,12 +140,16 @@ "eslint-plugin-markdown": "^5.1.0", "eslint-plugin-unicorn": "^55.0.0", "find-unused-sass-variables": "^6.0.0", + "github-slugger": "^2.0.0", "globby": "^14.0.2", "hammer-simulator": "0.0.1", + "htmlparser2": "^8.0.1", "hugo-bin": "^0.141.1", + "image-size": "^1.0.2", "ip": "^2.0.1", "jasmine": "^5.5.0", "jquery": "^3.7.1", + "js-yaml": "^4.1.0", "karma": "^6.4.4", "karma-browserstack-launcher": "1.4.0", "karma-chrome-launcher": "^3.2.0", @@ -141,10 +160,14 @@ "karma-jasmine-html-reporter": "^2.1.0", "karma-rollup-preprocessor": "7.0.7", "lockfile-lint": "^4.14.0", + "mime": "^3.0.0", "nodemon": "^3.1.9", "npm-run-all2": "^7.0.2", "postcss": "^8.5.2", "postcss-cli": "^11.0.0", + "prettier": "^2.8.4", + "prettier-plugin-astro": "^0.8.0", + "rehype-autolink-headings": "^6.1.1", "rollup": "^4.34.8", "rollup-plugin-istanbul": "^5.0.0", "rtlcss": "^4.3.0", @@ -154,7 +177,9 @@ "stylelint": "^16.14.1", "stylelint-config-twbs-bootstrap": "^15.1.0", "terser": "^5.39.0", - "vnu-jar": "24.10.17" + "unist-util-visit": "^4.1.2", + "vnu-jar": "24.10.17", + "zod": "^3.20.6" }, "files": [ "dist/{css,js}/*.{css,js,map}", diff --git a/site-new/.prettierrc.json b/site-new/.prettierrc.json new file mode 100644 index 0000000000..8a10c880d9 --- /dev/null +++ b/site-new/.prettierrc.json @@ -0,0 +1,8 @@ +{ + "$schema": "http://json.schemastore.org/prettierrc", + "arrowParens": "always", + "printWidth": 120, + "semi": false, + "singleQuote": true, + "trailingComma": "es5" +} diff --git a/site-new/astro.config.ts b/site-new/astro.config.ts new file mode 100644 index 0000000000..7f69648de3 --- /dev/null +++ b/site-new/astro.config.ts @@ -0,0 +1,25 @@ +import { defineConfig } from 'astro/config' + +import { bootstrap } from './src/libs/astro' +import { getConfig } from './src/libs/config' + +const isDev = process.env.NODE_ENV === 'development' + +const site = isDev + ? // In development mode, use the local dev server. + 'http://localhost:3000' + : process.env.DEPLOY_PRIME_URL !== undefined + ? // If deploying on Netlify, use the `DEPLOY_PRIME_URL` environment variable. + process.env.DEPLOY_PRIME_URL + : // Otherwise, use the `baseURL` value defined in the `config.yml` file. + getConfig().baseURL + +// https://astro.build/config +export default defineConfig({ + integrations: [bootstrap()], + markdown: { + smartypants: false, + syntaxHighlight: 'prism', + }, + site, +}) diff --git a/site-new/postcss.config.cjs b/site-new/postcss.config.cjs new file mode 100644 index 0000000000..5eb20c761c --- /dev/null +++ b/site-new/postcss.config.cjs @@ -0,0 +1,3 @@ +module.exports = { + plugins: [require('autoprefixer')], +} diff --git a/site-new/src/assets/application.js b/site-new/src/assets/application.js new file mode 100644 index 0000000000..6bb71f0c27 --- /dev/null +++ b/site-new/src/assets/application.js @@ -0,0 +1,29 @@ +// NOTICE!! DO NOT USE ANY OF THIS JAVASCRIPT +// IT'S ALL JUST JUNK FOR OUR DOCS! +// ++++++++++++++++++++++++++++++++++++++++++ + +/*! + * JavaScript for Bootstrap's docs (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors + * Licensed under the Creative Commons Attribution 3.0 Unported License. + * For details, see https://creativecommons.org/licenses/by/3.0/. + */ + +(() => { + 'use strict' + + // Scroll the active sidebar link into view + const sidenav = document.querySelector('.bd-sidebar') + if (sidenav) { + const sidenavHeight = sidenav.clientHeight + const sidenavActiveLink = document.querySelector('.bd-links-nav .active') + const sidenavActiveLinkTop = sidenavActiveLink.offsetTop + const sidenavActiveLinkHeight = sidenavActiveLink.clientHeight + const viewportTop = sidenavActiveLinkTop + const viewportBottom = viewportTop - sidenavHeight + sidenavActiveLinkHeight + + if (sidenav.scrollTop > viewportTop || sidenav.scrollTop < viewportBottom) { + sidenav.scrollTop = viewportTop - (sidenavHeight / 2) + (sidenavActiveLinkHeight / 2) + } + } +})() diff --git a/site-new/src/assets/examples/album-rtl/index.astro b/site-new/src/assets/examples/album-rtl/index.astro new file mode 100644 index 0000000000..d02e9f4044 --- /dev/null +++ b/site-new/src/assets/examples/album-rtl/index.astro @@ -0,0 +1,211 @@ +--- +import { getVersionedDocsPath } from '@libs/path' +import Placeholder from '@shortcodes/Placeholder.astro' + +export const title = 'مثال الألبوم' +export const direction = 'rtl' +--- + +
+ + +
+ +
+ +
+
+
+

مثال الألبوم

+

وصف قصير حول الألبوم أدناه (محتوياته ، ومنشؤه ، وما إلى ذلك). اجعله قصير ولطيف، ولكن ليست قصير جدًا حتى لا يتخطى الناس هذا الألبوم تمامًا.

+

+ الدعوة الرئيسية للعمل + عمل ثانوي +

+
+
+
+ +
+
+ +
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+ +
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+ +
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+ +
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

+
+
+ + +
+ 9 دقائق +
+
+
+
+
+
+
+ +
+ + diff --git a/site-new/src/assets/examples/album/index.astro b/site-new/src/assets/examples/album/index.astro new file mode 100644 index 0000000000..d9bffa8818 --- /dev/null +++ b/site-new/src/assets/examples/album/index.astro @@ -0,0 +1,210 @@ +--- +import { getVersionedDocsPath } from '@libs/path' + +export const title = 'Album example' +import Placeholder from "@shortcodes/Placeholder.astro" +--- + +
+ + +
+ +
+ +
+
+
+

Album example

+

Something short and leading about the collection below—its contents, the creator, etc. Make it short and sweet, but not too short so folks don’t simply skip over it entirely.

+

+ Main call to action + Secondary action +

+
+
+
+ +
+
+ +
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+ +
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+ +
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+ +
+

This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

+
+
+ + +
+ 9 mins +
+
+
+
+
+
+
+ +
+ + diff --git a/site-new/src/assets/examples/badges/badges.css b/site-new/src/assets/examples/badges/badges.css new file mode 100644 index 0000000000..b6ce0f5b82 --- /dev/null +++ b/site-new/src/assets/examples/badges/badges.css @@ -0,0 +1,3 @@ +.badge > a { + color: inherit; +} diff --git a/site-new/src/assets/examples/badges/index.astro b/site-new/src/assets/examples/badges/index.astro new file mode 100644 index 0000000000..fb1a4ebfb4 --- /dev/null +++ b/site-new/src/assets/examples/badges/index.astro @@ -0,0 +1,147 @@ +--- +export const title = 'Badges' +export const extra_css = ['badges.css'] +--- + + + + + + + +
+ Primary + Secondary + Success + Danger + Warning + Info + Light + Dark +
+ +
+ +
+ Primary + Secondary + Success + Danger + Warning + Info + Light + Dark +
+ +
+ +
+ Primary + Secondary + Success + Danger + Warning + Info + Light + Dark +
+ +
+ +
+ + Primary + + + Secondary + + + Success + + + Danger + + + Warning + + + Info + + + Light + + + Dark + +
+ +
+ +
+ + Primary + + + + Primary + + + + Primary + + +
+ +
+ +
+ + + Primary + + + + + + Secondary + + + + + + Success + + + + + + Danger + + + + + + Warning + + + + + + Info + + + + + + Light + + + + + + Dark + + + +
+ diff --git a/site-new/src/assets/examples/blog-rtl/index.astro b/site-new/src/assets/examples/blog-rtl/index.astro new file mode 100644 index 0000000000..a4fc878865 --- /dev/null +++ b/site-new/src/assets/examples/blog-rtl/index.astro @@ -0,0 +1,203 @@ +--- +export const title = 'قالب المدونة' +export const direction = 'rtl' +export const extra_css = ['https://fonts.googleapis.com/css?family=Amiri:wght@400;700&display=swap', '../blog/blog.rtl.css'] +import Placeholder from "@shortcodes/Placeholder.astro" +--- + +
+
+ +
+ + +
+ +
+
+
+

عنوان تدوينة مميزة أطول

+

عدة أسطر نصية متعددة تعبر عن التدوية، وذلك لإعلام القراء الجدد بسرعة وكفاءة حول أكثر الأشياء إثارة للاهتمام في محتويات هذه التدوينة.

+

أكمل القراءة...

+
+
+ +
+
+
+
+ العالم +

مشاركة مميزة

+
نوفمبر 12
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي.

+ أكمل القراءة +
+
+ +
+
+
+
+
+
+ التصميم +

عنوان الوظيفة

+
نوفمبر 11
+

هذه بطاقة أوسع مع نص داعم أدناه كمقدمة طبيعية لمحتوى إضافي.

+ أكمل القراءة +
+
+ +
+
+
+
+ +
+
+

+ من Firehose +

+ +
+

مثال على تدوينة

+ + +

تعرض مشاركة المدونة هذه بضعة أنواع مختلفة من المحتوى الذي يتم دعمه وتصميمه باستخدام Bootstrap. النصوص الأساسية، الصور، والأكواد مدعومة بشكل كامل.

+
+

يشكِّل تأمين الغذاء في المستقبل قضية تؤرِّق حكومات العالَم والعلماء على حدٍّ سواء. فخلال القرن العشرين ازداد عدد سكان الأرض أربعة أضعاف، وتشير التقديرات إلى أن العدد سوف يصل إلى عشرة مليارات إنسان بحلول عام 2050م. وسوف تمثل هذه الزيادة الهائلة تحدياً كبيراً وضغطاً متصاعداً على قدرة الإنتاج الزراعي. الأمر الذي كان ولا بد من أن يدفع إلى تطوير تقنيات مبتكرة في تصنيع الغذاء غير الزراعة، منها تقنية مستقبلية تقوم على تصنيع الغذاء من الهواء.

+
+

تشغل الزراعة مساحات كبيرة من اليابسة، وتستهلك كميات هائلة من المياه، كما أن إنتاج الغذاء بواسطة الزراعة يسهم بنسبة عالية من انبعاثات غازات الاحتباس الحراري العالمية

+
+

تشغل الزراعة مساحات كبيرة من اليابسة، وتستهلك كميات هائلة من المياه. كما أن إنتاج الغذاء بواسطة الزراعة يسهم بنسبة عالية من انبعاثات غازات الاحتباس الحراري العالمية، وللمقارنة فإن هذه النسبة من الانبعاثات هي أكبر مما ينتجه قطاع النقل بكل ما فيه من سيارات وشاحنات وطائرات وقطارات.

+

عنوان

+

تحصل النباتات على غذائها بواسطة عملية تسمى البناء الضوئي، حيث تقوم النباتات بتحويل ضوء الشمس والماء وثاني أكسيد الكربون الموجود في الغلاف الجوي إلى غذاء وتطلق الأكسجين كمنتج ثانوي لهذا التفاعل الكيميائي. وتحدث هذه العملية في "البلاستيدات الخضراء". فالنباتات تستفيد من طاقة ضوء الشمس في تقسيم الماء إلى هيدروجين وأكسجين، وتحدث تفاعلات كيميائية أخرى ينتج عنها سكر الجلكوز الذي تستخدمه كمصدر للغذاء وينطلق الأكسجين من النباتات إلى الغلاف الجوي. وهذا يعني أن النباتات تحوِّل ثاني أكسيد الكربون إلى غذاء من خلال تفاعلات كيميائية معقَّدة. ويُعد البناء الضوئي من أهم التفاعلات الكيميائية على كوكب الأرض، فقد ساعد في الماضي على تطوُّر كوكبنا وظهور الحياة عليه. فالنباتات تستخدم ثاني أكسيد الكربون لصنع غذائها، وتطلق الأكسجين لتساعد الكائنات الأخرى على التنفس!

+

عنوان فرعي

+

ألهمت هذه العملية علماء وكالة الفضاء الأمريكية (ناسا) خلال الستينيات من القرن الماضي، لبحث فكرة إطعام روَّاد الفضاء في مهمات الفضاء الطويلة مثل السفر إلى المريخ. وكانت واحدة من الأفكار الواعدة تصنيع الغذاء عن طريق ثاني أكسيد الكربون الذي ينتجه روَّاد الفضاء، لكن ليس بواسطة النباتات بل عن طريق ميكروبات صغيرة وحيدة الخلية قادرة على حصد ثاني أكسيد الكربون لإنتاج كميات وفيرة من البروتين المغذي على شكل مسحوق عديم النكهة، كما يمكن استخدام المادة في صنع الأطعمة المألوفة لدينا.

+
Example code block
+

وخلافاً لما هو الحال في عالم النبات، فإن هذه الميكروبات لا تستخدم الضوء كما يحدث في عملية البناء الضوئي التي تستخدمها النباتات للحصول على الغذاء، أي لأنها قادرة على النمو في الظلام. تسمى هذه البكتريا "هيدروجينوتروف" (Hydrogenotrophs)، وهي تستخدم الهيدروجين كوقود لإنتاج الغذاء من ثاني أكسيد الكربون. فعندما يُنتج روَّاد الفضاء ثاني أكسيد الكربون، تلتقطه الميكروبات، ويتحوَّل مع مدخلات أخرى إلى غذاء غني بالكربون. وبهذه الطريقة سوف نحصل على دورة كربون مغلقة الحلقة.

+

عنوان فرعي

+

بعد مرور أكثر من نصف قرن على أبحاث ناسا، تعمل حالياً عدة شركات في قطاع البيولوجيا التركيبية من ضمنها إير بروتين (Air Protein) وسولار فودز (Solar Foods) على تطوير جيل جديد من المنتجات الغذائية المستدامة، من دون وجود بصمة كربونية. ولن تقتصر هذه المنتجات الغذائية على روَّاد الفضاء فحسب، بل سوف تمتد لتشمل جميع سكان الأرض، وسوف تُنتَج في فترة زمنية قصيرة، بدلاً من الشهور، ومن دون الاعتماد على الأراضي الزراعية. وهذا يعني الحصول على منتجات غذائية بشكل سريع جداً. كما سيصبح من الممكن تصنيع الغذاء بطريقة عمودية من خلال هذه الميكروبات، بدلاً من الطريقة الأفقية التقليدية الشبيهة بتقنية الزراعة العمودية الحديثة. وهذا يعني توفير منتجات غذائية أكبر من المساحة نفسها.

+

يتكوَّن الغذاء البشري من ثلاثة أنواع رئيسة، هي:

+
    +
  • البروتينات
  • +
  • الكربوهيدرات
  • +
  • الدهون
  • +
+

وتتكوَّن البروتينات من الأحماض الأمينية، وهي مجموعة من المركبات العضوية يبلغ عددها في جسم الإنسان عشرين حمضاً أمينياً، من بينها تسعة أساسية يحصل عليها الجسم من الغذاء. وتتكوَّن الأحماض الأمينية بشكل أساس من:

+
    +
  1. الكربون
  2. +
  3. الهيدروجين
  4. +
  5. الأكسجين
  6. +
  7. النيتروجين
  8. +
+

ومن الملاحظ أن النيتروجين يشكِّل نسبة %78 من الهواء، كما أن الهيدروجين نحصل عليه من خلال التحليل الكهربائي للماء، ومن الممكن نظرياً سحب الكربون من الهواء لتشكيل هذه الأحماض، ذلك أن الكربون هو العمود الفقري للأحماض الأمينية، كما أن الحياة على كوكب الأرض قائمة على الكربون لقدرته على تكوين سلاسل كربونية طويلة، وهذا ما تفعله الميكروبات بتصنيع أحماض أمينية من ثاني أكسيد الكربون من خلال مجموعة من التفاعلات الكيميائية المعقَّدة. وإضافة إلى صنع وجبات غنية بالبروتين، فهذه الميكروبات تنتج منتجات أخرى مثل الزيوت التي لها عديد من الاستخدامات.

+
+ +
+

تدوينة أخرى

+ + +

في الوقت الحالي، تدرس عدَّة شركات هذه الميكروبات بشكل أعمق، وتستزرعها من أجل الحصول على الغذاء. ففي عام 2019م، أعلن باحثون في شركة (Air Protein) الأمريكية نجاحهم في تحويل ثاني أكسيد الكربون الموجود في الهواء إلى لحوم صناعية مصنوعة من البروتين، التي لا تتطلَّب أي أرض زراعية، بل هي معتمدة بشكل أساسي على الهواء.

+
+

تم تصنيع اللحوم بأنواع عديدة

+
+

إذ استخدم هؤلاء الباحثون الهواء والطاقة المتجدِّدة كمدخلات في عملية مشابهة للتخمير، لإنتاج بروتين يحتوي على الأحماض الأمينية التسعة الأساسية وغني بالفيتامينات والمعادن، كما أنه خالٍ من الهرمونات والمضادات الحيوية والمبيدات الحشرية ومبيدات الأعشاب.

+

وتم تصنيع اللحوم بأنواع عديدة بما فيها الدواجن والأبقار والمأكولات البحرية، من دون حصول انبعاثات كربونية، على عكس تربية الأبقار التي تسهم في انبعاث غاز الميثان أحد غازات الاحتباس الحراري.

+
+ +
+

ميزة جديدة

+ + +

كما أن الشركة الفنلندية (Solar Foods) طوَّرت تقنية لإنتاج البروتين من الهواء، حيث تبدأ العملية بتقسيم الماء إلى مكوناته الهيدروجين والأكسجين عن طريق الكهرباء. فالهيدروجين يوفِّر الطاقة للبكتريا لتحويل ثاني أكسيد الكربون والنيتروجين الموجودين في الهواء إلى مادة عضوية غنية بالبروتين بشكل أكفأ من نمو النباتات باستخدام البناء الضوئي. وهذا البروتين يشبه دقيق القمح وقد أطلق عليه اسم "سولين" (Solein).

+

وتقوم الشركة حالياً بجمع البيانات حول المنتج الغذائي لتقديمه إلى الاتحاد الأوروبي بهدف الحصول على ترخيص غذائي، كما أنها تخطط لبدء الإنتاج التجاري في العام المقبل 2021م. وقد أوضحت الشركة أنها مهتمة بإنتاج أطعمة صديقة للبيئة من خلال استخدام المواد الأساسية: الكهرباء وثاني أكسيد الكربون، وهذه الأطعمة سوف تجنبنا الأثر السلبي البيئي للزراعة التقليدية الذي يشمل كل شيء من استخدام الأرض والمياه إلى الانبعاثات الناتجة من تسميد المحاصيل أو تربية الحيوانات.

+

وعلى هذا، فإن البروتينات المشتقة من الميكروبات سوف:

+
    +
  • توفر حلاً ممكناً في ظل زيادة الطلب العالمي المستقبلي على الغذاء
  • +
  • تتوسع مصانع الغذاء في المستقبل لتكون أكفأ وأكثر استدامة
  • +
  • تصبح قادرة على توفير الغذاء لروَّاد الفضاء في سفرهم إلى المريخ وجميع سكان كوكب الأرض في عام 2050م
  • +
+

فتخيّل أن الميكروبات ستكون مصانع المستقبل، وأن غذاء المستقبل سيكون مصنوعاً من الهواء! وأن عام 2050م سيكون مختلفاً تماماً عن عالمنا اليوم. فهو عالم من دون زراعة ولا تربية حيوانات من أجل الغذاء! قد يبدو ذلك خيالياً لكنه ليس مستحيلاً!

+
+ + + +
+ +
+
+
+

حول

+

أقبلت، فأقبلت معك الحياة بجميع صنوفها وألوانها: فالنبات ينبت، والأشجار تورق وتزهر، والهرة تموء، والقمري يسجع، والغنم يثغو، والبقر يخور، وكل أليف يدعو أليفه. كل شيء يشعر بالحياة وينسي هموم الحياة، ولا يذكر إلا سعادة الحياة، فإن كان الزمان جسدا فأنت روحه، وإن كان عمرا فأنت شبابه.

+
+ + + +
+

في مكان آخر

+
    +
  1. GitHub
  2. +
  3. Twitter
  4. +
  5. Facebook
  6. +
+
+
+
+
+ +
+ + diff --git a/site-new/src/assets/examples/blog/blog.css b/site-new/src/assets/examples/blog/blog.css new file mode 100644 index 0000000000..cc5fc7473a --- /dev/null +++ b/site-new/src/assets/examples/blog/blog.css @@ -0,0 +1,69 @@ +/* stylelint-disable selector-list-comma-newline-after */ + +.blog-header { + border-bottom: 1px solid #e5e5e5; +} + +.blog-header-logo { + font-family: "Playfair Display", Georgia, "Times New Roman", serif/*rtl:Amiri, Georgia, "Times New Roman", serif*/; + font-size: 2.25rem; +} + +.blog-header-logo:hover { + text-decoration: none; +} + +h1, h2, h3, h4, h5, h6 { + font-family: "Playfair Display", Georgia, "Times New Roman", serif/*rtl:Amiri, Georgia, "Times New Roman", serif*/; +} + +.display-4 { + font-size: 2.5rem; +} +@media (min-width: 768px) { + .display-4 { + font-size: 3rem; + } +} + +.flex-auto { + flex: 0 0 auto; +} + +.h-250 { height: 250px; } +@media (min-width: 768px) { + .h-md-250 { height: 250px; } +} + +/* Pagination */ +.blog-pagination { + margin-bottom: 4rem; +} + +/* + * Blog posts + */ +.blog-post { + margin-bottom: 4rem; +} +.blog-post-title { + font-size: 2.5rem; +} +.blog-post-meta { + margin-bottom: 1.25rem; + color: #727272; +} + +/* + * Footer + */ +.blog-footer { + padding: 2.5rem 0; + color: #727272; + text-align: center; + background-color: #f9f9f9; + border-top: .05rem solid #e5e5e5; +} +.blog-footer p:last-child { + margin-bottom: 0; +} diff --git a/site-new/src/assets/examples/blog/blog.rtl.css b/site-new/src/assets/examples/blog/blog.rtl.css new file mode 100644 index 0000000000..fc03c35a31 --- /dev/null +++ b/site-new/src/assets/examples/blog/blog.rtl.css @@ -0,0 +1,69 @@ +/* stylelint-disable selector-list-comma-newline-after */ + +.blog-header { + border-bottom: 1px solid #e5e5e5; +} + +.blog-header-logo { + font-family: Amiri, Georgia, "Times New Roman", serif; + font-size: 2.25rem; +} + +.blog-header-logo:hover { + text-decoration: none; +} + +h1, h2, h3, h4, h5, h6 { + font-family: Amiri, Georgia, "Times New Roman", serif; +} + +.display-4 { + font-size: 2.5rem; +} +@media (min-width: 768px) { + .display-4 { + font-size: 3rem; + } +} + +.flex-auto { + flex: 0 0 auto; +} + +.h-250 { height: 250px; } +@media (min-width: 768px) { + .h-md-250 { height: 250px; } +} + +/* Pagination */ +.blog-pagination { + margin-bottom: 4rem; +} + +/* + * Blog posts + */ +.blog-post { + margin-bottom: 4rem; +} +.blog-post-title { + font-size: 2.5rem; +} +.blog-post-meta { + margin-bottom: 1.25rem; + color: #727272; +} + +/* + * Footer + */ +.blog-footer { + padding: 2.5rem 0; + color: #727272; + text-align: center; + background-color: #f9f9f9; + border-top: .05rem solid #e5e5e5; +} +.blog-footer p:last-child { + margin-bottom: 0; +} diff --git a/site-new/src/assets/examples/blog/index.astro b/site-new/src/assets/examples/blog/index.astro new file mode 100644 index 0000000000..88e159d1f0 --- /dev/null +++ b/site-new/src/assets/examples/blog/index.astro @@ -0,0 +1,255 @@ +--- +export const title = 'Blog Template' +export const extra_css = ['https://fonts.googleapis.com/css?family=Playfair+Display:700,900&display=swap', 'blog.css'] +import Placeholder from "@shortcodes/Placeholder.astro" +--- + +
+
+
+
+ Subscribe +
+
+ +
+ +
+
+ + +
+ +
+
+
+

Title of a longer featured blog post

+

Multiple lines of text that form the lede, informing new readers quickly and efficiently about what’s most interesting in this post’s contents.

+

Continue reading...

+
+
+ +
+
+
+
+ World +

Featured post

+
Nov 12
+

This is a wider card with supporting text below as a natural lead-in to additional content.

+ Continue reading +
+
+ +
+
+
+
+
+
+ Design +

Post title

+
Nov 11
+

This is a wider card with supporting text below as a natural lead-in to additional content.

+ Continue reading +
+
+ +
+
+
+
+ +
+
+

+ From the Firehose +

+ +
+

Sample blog post

+ + +

This blog post shows a few different types of content that’s supported and styled with Bootstrap. Basic typography, lists, tables, images, code, and more are all supported as expected.

+
+

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+

Blockquotes

+

This is an example blockquote in action:

+
+

Quoted text goes here.

+
+

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+

Example lists

+

This is some additional paragraph placeholder content. It's a slightly shorter version of the other highly repetitive body text used throughout. This is an example unordered list:

+
    +
  • First list item
  • +
  • Second list item with a longer description
  • +
  • Third list item to close it out
  • +
+

And this is an ordered list:

+
    +
  1. First list item
  2. +
  3. Second list item with a longer description
  4. +
  5. Third list item to close it out
  6. +
+

And this is a definition list:

+
+
HyperText Markup Language (HTML)
+
The language used to describe and define the content of a Web page
+
Cascading Style Sheets (CSS)
+
Used to describe the appearance of Web content
+
JavaScript (JS)
+
The programming language used to build advanced Web sites and applications
+
+

Inline HTML elements

+

HTML defines a long list of available inline tags, a complete list of which can be found on the Mozilla Developer Network.

+
    +
  • To bold text, use <strong>.
  • +
  • To italicize text, use <em>.
  • +
  • Abbreviations, like HTML should use <abbr>, with an optional title attribute for the full phrase.
  • +
  • Citations, like — Mark Otto, should use <cite>.
  • +
  • Deleted text should use <del> and inserted text should use <ins>.
  • +
  • Superscript text uses <sup> and subscript text uses <sub>.
  • +
+

Most of these elements are styled by browsers with few modifications on our part.

+

Heading

+

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+

Sub-heading

+

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+
Example code block
+

This is some additional paragraph placeholder content. It's a slightly shorter version of the other highly repetitive body text used throughout.

+
+ +
+

Another blog post

+ + +

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+
+

Longer quote goes here, maybe with some emphasized text in the middle of it.

+
+

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+

Example table

+

And don't forget about tables in these posts:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameUpvotesDownvotes
Alice1011
Bob43
Charlie79
Totals2123
+ +

This is some additional paragraph placeholder content. It's a slightly shorter version of the other highly repetitive body text used throughout.

+
+ +
+

New feature

+ + +

This is some additional paragraph placeholder content. It has been written to fill the available space and show how a longer snippet of text affects the surrounding content. We'll repeat it often to keep the demonstration flowing, so be on the lookout for this exact same string of text.

+
    +
  • First list item
  • +
  • Second list item with a longer description
  • +
  • Third list item to close it out
  • +
+

This is some additional paragraph placeholder content. It's a slightly shorter version of the other highly repetitive body text used throughout.

+
+ + + +
+ +
+
+
+

About

+

Customize this section to tell your visitors a little bit about your publication, writers, content, or something else entirely. Totally up to you.

+
+ + + +
+

Elsewhere

+
    +
  1. GitHub
  2. +
  3. Twitter
  4. +
  5. Facebook
  6. +
+
+
+
+
+ +
+ + diff --git a/site-new/src/assets/examples/breadcrumbs/breadcrumbs.css b/site-new/src/assets/examples/breadcrumbs/breadcrumbs.css new file mode 100644 index 0000000000..a6be558618 --- /dev/null +++ b/site-new/src/assets/examples/breadcrumbs/breadcrumbs.css @@ -0,0 +1,50 @@ +.breadcrumb-chevron { + --bs-breadcrumb-divider: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%236c757d'%3E%3Cpath fill-rule='evenodd' d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E"); + gap: .5rem; +} +.breadcrumb-chevron .breadcrumb-item { + display: flex; + gap: inherit; + align-items: center; + padding-left: 0; + line-height: 1; +} +.breadcrumb-chevron .breadcrumb-item::before { + gap: inherit; + float: none; + width: 1rem; + height: 1rem; +} + +.breadcrumb-custom .breadcrumb-item { + position: relative; + flex-grow: 1; + padding: .75rem 3rem; +} +.breadcrumb-custom .breadcrumb-item::before { + display: none; +} +.breadcrumb-custom .breadcrumb-item::after { + position: absolute; + top: 50%; + right: -25px; + z-index: 1; + display: inline-block; + width: 50px; + height: 50px; + margin-top: -25px; + content: ""; + background-color: var(--bs-tertiary-bg); + border-top-right-radius: .5rem; + box-shadow: 1px -1px var(--bs-border-color); + transform: scale(.707) rotate(45deg); +} +.breadcrumb-custom .breadcrumb-item:first-child { + padding-left: 1.5rem; +} +.breadcrumb-custom .breadcrumb-item:last-child { + padding-right: 1.5rem; +} +.breadcrumb-custom .breadcrumb-item:last-child::after { + display: none; +} diff --git a/site-new/src/assets/examples/breadcrumbs/index.astro b/site-new/src/assets/examples/breadcrumbs/index.astro new file mode 100644 index 0000000000..6cd8a7faa8 --- /dev/null +++ b/site-new/src/assets/examples/breadcrumbs/index.astro @@ -0,0 +1,85 @@ +--- +export const title = 'Breadcrumbs' +export const extra_css = ['breadcrumbs.css'] +--- + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
+ +
diff --git a/site-new/src/assets/examples/buttons/index.astro b/site-new/src/assets/examples/buttons/index.astro new file mode 100644 index 0000000000..892771a8e8 --- /dev/null +++ b/site-new/src/assets/examples/buttons/index.astro @@ -0,0 +1,86 @@ +--- +export const title = 'Buttons' +--- + + + + + + + + + + + +
+ + + + + + + + + +
+ +
+ +
+
+ + +
+
+ +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ +
+ + +
+ +
+ + +
+ +
diff --git a/site-new/src/assets/examples/carousel-rtl/index.astro b/site-new/src/assets/examples/carousel-rtl/index.astro new file mode 100644 index 0000000000..982d325e98 --- /dev/null +++ b/site-new/src/assets/examples/carousel-rtl/index.astro @@ -0,0 +1,166 @@ +--- +export const title = 'قالب شرائح العرض' +export const direction = 'rtl' +export const extra_css = ['../carousel/carousel.rtl.css'] +import Placeholder from "@shortcodes/Placeholder.astro" +--- + +
+ +
+ +
+ + + + + + + +
+ + +
+
+ +

عنوان

+

تذكر دائماً أن الحاسوب لا يمتلك ذكاءً، ولكنه يكتسب الذكاء الاصطناعي من خلال ثلاثة عناصر وظيفية رئيسة، هي: القدرة على التحليل، والقدرة على التأليف، والاستدلال المنطقي.

+

عرض التفاصيل

+
+
+ +

عنوان آخر

+

إذا أردنا استخدام الحاسوب الذكي في معالجة اللغة العربية فإننا نجد أنفسنا أمام تحدٍّ كبير، خاصة وأن لغتنا تمتاز بتماسك منظوماتها وتداخلها، ومع ذلك فإن الذكاء الاصطناعي يمكّننا من الحصول على أربعة أنواع من المعالجة، هي: المعالجة الصوتية، والمعالجة الصرفية، والمعالجة النحوية، والمعالجة الدلالية.

+

عرض التفاصيل

+
+
+ +

عنوان ثالث لتأكيد المعلومة

+

بفضل بحوث الذكاء الاصطناعي وتقنياته استطعنا الانتقال من مرحلة التعامل مع الفيزيائي إلى مرحلة التعامل مع المنطقي، وقد انعكس هذا الانتقال بصورة إيجابية على الكيفية التي تتعامل بها الشعوب مع لغاتها الحيَّة، وهذا يعني أنه يجب أن ينعكس بصورة إيجابية على كيفية تعاملنا مع لغتنا العربية.

+

عرض التفاصيل

+
+
+ + + + +
+ +
+
+

العنوان الأول المميز. سيذهل عقلك.

+

وجه الإنسان هو جزء معقَّد ومتميِّز للغاية من جسمه. وفي الواقع، إنه أحد أكثر أنظمة الإشارات المتاحة تعقيداً لدينا؛ فهو يتضمَّن أكثر من 40 عضلة مستقلة هيكلياً ووظيفياً، بحيث يمكن تشغيل كل منها بشكل مستقل عن البعض الآخر؛ وتشكِّل أحد أقوى مؤشرات العواطف.

+
+
+ +
+
+ +
+ +
+
+

أوه نعم، هذا جيد. شاهد بنفسك.

+

عندما نضحك أو نبكي، فإننا نعرض عواطفنا، مما يسمح للآخرين بإلقاء نظرة خاطفة على أذهاننا أثناء "قراءة" وجوهنا بناءً على التغييرات في مكوّنات الوجه الرئيسة، مثل: العينين والحاجبين والجفنين والأنف والشفتين.

+
+
+ +
+
+ +
+ +
+
+

وأخيرًا، هذا. كش ملك.

+

إن جميع العضلات في أجسامنا مدعمة بالأعصاب المتصلة من كافة أنحاء الجسم بالنخاع الشوكي والدماغ. وهذا الاتصال العصبي هو ثنائي الاتجاه، أي إن العصب يتسبَّب في تقلصات العضلات بناءً على إشارات الدماغ، ويقوم في الوقت نفسه بإرسال معلومات عن حالة العضلات إلى الدماغ

+
+
+ +
+
+ +
+ + + +
+ + + + +
diff --git a/site-new/src/assets/examples/carousel/carousel.css b/site-new/src/assets/examples/carousel/carousel.css new file mode 100644 index 0000000000..be0af524a6 --- /dev/null +++ b/site-new/src/assets/examples/carousel/carousel.css @@ -0,0 +1,82 @@ +/* GLOBAL STYLES +-------------------------------------------------- */ +/* Padding below the footer and lighter body text */ + +body { + padding-top: 3rem; + padding-bottom: 3rem; + color: rgb(var(--bs-tertiary-color-rgb)); +} + + +/* CUSTOMIZE THE CAROUSEL +-------------------------------------------------- */ + +/* Carousel base class */ +.carousel { + margin-bottom: 4rem; +} +/* Since positioning the image, we need to help out the caption */ +.carousel-caption { + bottom: 3rem; + z-index: 10; +} + +/* Declare heights because of positioning of img element */ +.carousel-item { + height: 32rem; +} + + +/* MARKETING CONTENT +-------------------------------------------------- */ + +/* Center align the text within the three columns below the carousel */ +.marketing .col-lg-4 { + margin-bottom: 1.5rem; + text-align: center; +} +/* rtl:begin:ignore */ +.marketing .col-lg-4 p { + margin-right: .75rem; + margin-left: .75rem; +} +/* rtl:end:ignore */ + + +/* Featurettes +------------------------- */ + +.featurette-divider { + margin: 5rem 0; /* Space out the Bootstrap
more */ +} + +/* Thin out the marketing headings */ +/* rtl:begin:remove */ +.featurette-heading { + letter-spacing: -.05rem; +} + +/* rtl:end:remove */ + +/* RESPONSIVE CSS +-------------------------------------------------- */ + +@media (min-width: 40em) { + /* Bump up size of carousel content */ + .carousel-caption p { + margin-bottom: 1.25rem; + font-size: 1.25rem; + line-height: 1.4; + } + + .featurette-heading { + font-size: 50px; + } +} + +@media (min-width: 62em) { + .featurette-heading { + margin-top: 7rem; + } +} diff --git a/site-new/src/assets/examples/carousel/carousel.rtl.css b/site-new/src/assets/examples/carousel/carousel.rtl.css new file mode 100644 index 0000000000..9ff275d4ea --- /dev/null +++ b/site-new/src/assets/examples/carousel/carousel.rtl.css @@ -0,0 +1,74 @@ +/* GLOBAL STYLES +-------------------------------------------------- */ +/* Padding below the footer and lighter body text */ + +body { + padding-top: 3rem; + padding-bottom: 3rem; + color: rgb(var(--bs-tertiary-color-rgb)); +} + + +/* CUSTOMIZE THE CAROUSEL +-------------------------------------------------- */ + +/* Carousel base class */ +.carousel { + margin-bottom: 4rem; +} +/* Since positioning the image, we need to help out the caption */ +.carousel-caption { + bottom: 3rem; + z-index: 10; +} + +/* Declare heights because of positioning of img element */ +.carousel-item { + height: 32rem; +} + + +/* MARKETING CONTENT +-------------------------------------------------- */ + +/* Center align the text within the three columns below the carousel */ +.marketing .col-lg-4 { + margin-bottom: 1.5rem; + text-align: center; +} +.marketing .col-lg-4 p { + margin-right: .75rem; + margin-left: .75rem; +} + + +/* Featurettes +------------------------- */ + +.featurette-divider { + margin: 5rem 0; /* Space out the Bootstrap
more */ +} + +/* Thin out the marketing headings */ + +/* RESPONSIVE CSS +-------------------------------------------------- */ + +@media (min-width: 40em) { + /* Bump up size of carousel content */ + .carousel-caption p { + margin-bottom: 1.25rem; + font-size: 1.25rem; + line-height: 1.4; + } + + .featurette-heading { + font-size: 50px; + } +} + +@media (min-width: 62em) { + .featurette-heading { + margin-top: 7rem; + } +} diff --git a/site-new/src/assets/examples/carousel/index.astro b/site-new/src/assets/examples/carousel/index.astro new file mode 100644 index 0000000000..bf85075fe2 --- /dev/null +++ b/site-new/src/assets/examples/carousel/index.astro @@ -0,0 +1,165 @@ +--- +export const title = 'Carousel Template' +export const extra_css = ['carousel.css'] +import Placeholder from "@shortcodes/Placeholder.astro" +--- + +
+ +
+ +
+ + + + + + + +
+ + +
+
+ +

Heading

+

Some representative placeholder content for the three columns of text below the carousel. This is the first column.

+

View details »

+
+
+ +

Heading

+

Another exciting bit of representative placeholder content. This time, we've moved on to the second column.

+

View details »

+
+
+ +

Heading

+

And lastly this, the third column of representative placeholder content.

+

View details »

+
+
+ + + + +
+ +
+
+

First featurette heading. It’ll blow your mind.

+

Some great placeholder content for the first featurette here. Imagine some exciting prose here.

+
+
+ +
+
+ +
+ +
+
+

Oh yeah, it’s that good. See for yourself.

+

Another featurette? Of course. More placeholder content here to give you an idea of how this layout would work with some actual real-world content in place.

+
+
+ +
+
+ +
+ +
+
+

And lastly, this one. Checkmate.

+

And yes, this is the last block of representative placeholder content. Again, not really intended to be actually read, simply here to give you a better view of what this would look like with some actual content. Your content.

+
+
+ +
+
+ +
+ + + +
+ + + + +
diff --git a/site-new/src/assets/examples/cheatsheet-rtl/index.astro b/site-new/src/assets/examples/cheatsheet-rtl/index.astro new file mode 100644 index 0000000000..7c3f3c2815 --- /dev/null +++ b/site-new/src/assets/examples/cheatsheet-rtl/index.astro @@ -0,0 +1,1594 @@ +--- +import { getData } from '@libs/data' +import { getVersionedDocsPath } from '@libs/path' +import Example from '@shortcodes/Example.astro' + +export const title = 'ورقة الغش' +export const extra_css = ['../cheatsheet/cheatsheet.rtl.css'] +export const extra_js = [{src: '../cheatsheet/cheatsheet.js'}] +export const body_class = 'bg-body-tertiary' +export const direction = 'rtl' +import Placeholder from "@shortcodes/Placeholder.astro" +--- + +
+
+

+ Bootstrap + ورقة الغش +

+ جدول بيانات LTR +
+
+ + +
+
+

المحتوى

+ +
+
+

النصوص

+ دليل الإستخدام +
+
+ العرض 1

+

العرض 2

+

العرض 3

+

العرض 4

+

العرض 5

+

العرض 6

+ `} /> + + عنوان 1

+

عنوان 2

+

عنوان 3

+

عنوان 4

+

عنوان 5

+

عنوان 6

+ `} /> + + + هذه قطعة إملائية متميزة، فهي مصممة لتكون بارزة من بين القطع الإملائية الأخرى. +

+ `} /> + + يمكنك استخدام تصنيف mark لتحديد نص.

+

من المفترض أن يتم التعامل مع هذا السطر كنص محذوف.

+

من المفترض أن يتم التعامل مع هذا السطر على أنه لم يعد دقيقًا.

+

من المفترض أن يتم التعامل مع هذا السطر كإضافة إلى المستند.

+

سيتم عرض النص في هذا السطر كما وتحته خط.

+

من المفترض أن يتم التعامل مع هذا السطر على أنه يحوي تفاصيل صغيرة.

+

هذا السطر يحوي نص عريض.

+

هذا السطر يحوي نص مائل.

+ `} /> + + + `} /> + + +

إقتباس مبهر، موضوع في عنصر blockquote

+
شخص مشهور في عنوان المصدر
+ + `} /> + + +
  • هذه قائمة عناصر.
  • +
  • بالرغم من أنها مصممة كي لا تظهر كذلك.
  • +
  • إلا أنها مجهزة كـ قائمة خلف الكواليس
  • +
  • هذا التصميم ينطبق فقد على القائمة الرئيسية
  • +
  • القوائم الفرعية +
      +
    • لا تتأثر بهذا التصميم
    • +
    • فهي تظهر عليها علامات الترقيم
    • +
    • وتحتوي على مساحة فارغة بجوارها
    • +
    +
  • +
  • قد يكون هذا التصميم مفيدًا في بعض الأحيان.
  • + + `} /> + + +
  • هذا عنصر في قائمة.
  • +
  • وهذا أيضًا.
  • +
  • لكنهم يظهرون متجاورين.
  • + + `} /> +
    +
    + +
    +
    +

    الجداول

    + دليل الإستخدام +
    + +
    + + + + # + الاسم الاول + الكنية + الاسم المستعار + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + + + `} /> + + + + + # + الاسم الاول + الكنية + الاسم المستعار + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + + + `} /> + + + + + Class + عنوان + عنوان + + + + + Default + خلية + خلية + `, + ...getData('theme-colors').map((themeColor) => ` + ${themeColor.title} + خلية + خلية + `), + ` + + `]} /> + + + + + # + الاسم الاول + الكنية + الاسم المستعار + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + + + `} /> +
    +
    + +
    +
    +

    النماذج

    + +
    +
    +

    نظرة عامة

    + دليل الإستخدام +
    + +
    + +
    + + +
    لن نقوم بمشاركة بريدك الإلكتروني مع أي شخص آخر.
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + أزرار الاختيار الأحادي +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + + + `} /> +
    +
    +
    +
    +

    الحقول المعطلة

    + دليل الإستخدام +
    + +
    + +
    +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    +
    + أزرار اختيار أحادي معطلين +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    + + `} /> +
    +
    +
    +
    +

    الأحجام

    + دليل الإستخدام +
    + +
    + + +
    +
    + +
    +
    + +
    + `} /> + + + +
    +
    + +
    +
    + +
    + `} /> + + +
    +
    +

    مجموعة الإدخال

    + دليل الإستخدام +
    + +
    + + أنا اسمي + +
    +
    + + وغيرها +
    + +
    + + https://example.com/users/ +
    +
    + .00 + + $ +
    +
    + مع textarea + +
    + `} /> + +
    +
    +
    +

    الحقول ذوي العناوين العائمة

    + دليل الإستخدام +
    + +
    + +
    + + +
    +
    + + +
    + + `} /> +
    +
    +
    +
    +

    التحقق

    + دليل الإستخدام +
    + +
    + +
    + + +
    + يبدو صحيحًا! +
    +
    +
    + + +
    + يبدو صحيحًا! +
    +
    +
    + +
    + + @ +
    + يرجى اختيار اسم مستخدم. +
    +
    +
    +
    + + +
    + يرجى إدخال مدينة صحيحة. +
    +
    +
    + + +
    + يرجى اختيار ولاية صحيحة. +
    +
    +
    + + +
    + يرجى إدخال رمز بريدي صحيح. +
    +
    +
    +
    + + +
    + تجب الموافقة قبل إرسال النموذج. +
    +
    +
    +
    + +
    + + `} /> +
    +
    + +
    +

    العناصر

    + +
    +
    +

    المطوية

    + دليل الإستخدام +
    + +
    + +
    +

    + +

    +
    +
    + هذا هو محتوى عنصر المطوية الأول. سيكون المحتوى مخفيًا بشكل إفتراضي حتى يقوم Bootstrap بإضافة الكلاسات اللازمة لكل عنصر في المطوية. هذه الكلاسات تتحكم بالمظهر العام ووتتحكم أيضا بإظهار وإخفاء أقسام المطوية عبر حركات CSS الإنتقالية. يمكنك تعديل أي من هذه عبر كلاسات CSS خاصة بك، او عبر تغيير القيم الإفتراضية المقدمة من Bootstrap. من الجدير بالذكر أنه يمكن وضع أي كود HTML هنا، ولكن الحركة الإنتقالية قد تحد من الoverflow. +
    +
    +
    +
    +

    + +

    +
    +
    + هذا هو محتوى عنصر المطوية الثاني. سيكون المحتوى مخفيًا بشكل إفتراضي حتى يقوم Bootstrap بإضافة الكلاسات اللازمة لكل عنصر في المطوية. هذه الكلاسات تتحكم بالمظهر العام ووتتحكم أيضا بإظهار وإخفاء أقسام المطوية عبر حركات CSS الإنتقالية. يمكنك تعديل أي من هذه عبر كلاسات CSS خاصة بك، او عبر تغيير القيم الإفتراضية المقدمة من Bootstrap. من الجدير بالذكر أنه يمكن وضع أي كود HTML هنا، ولكن الحركة الإنتقالية قد تحد من الoverflow. +
    +
    +
    +
    +

    + +

    +
    +
    + هذا هو محتوى عنصر المطوية الثالث. سيكون المحتوى مخفيًا بشكل إفتراضي حتى يقوم Bootstrap بإضافة الكلاسات اللازمة لكل عنصر في المطوية. هذه الكلاسات تتحكم بالمظهر العام ووتتحكم أيضا بإظهار وإخفاء أقسام المطوية عبر حركات CSS الإنتقالية. يمكنك تعديل أي من هذه عبر كلاسات CSS خاصة بك، او عبر تغيير القيم الإفتراضية المقدمة من Bootstrap. من الجدير بالذكر أنه يمكن وضع أي كود HTML هنا، ولكن الحركة الإنتقالية قد تحد من الoverflow. +
    +
    +
    +
    + `} /> + +
    +
    +
    +

    الإنذارات

    + دليل الإستخدام +
    + +
    + ` + + `)} /> + + +

    أحسنت!

    +

    لقد نجحت في قراءة رسالة التنبيه المهمة هذه. سيتم تشغيل نص المثال هذا لفترة أطول قليلاً حتى تتمكن من رؤية كيفية عمل التباعد داخل التنبيه مع هذا النوع من المحتوى.

    +
    +

    كلما احتجت إلى ذلك ، تأكد من استخدام أدوات الهامش للحفاظ على الأشياء لطيفة ومرتبة.

    +
    + `} /> + +
    +
    +
    +

    الشارة

    + دليل الإستخدام +
    + +
    + مثال على عنوان جديد

    +

    مثال على عنوان جديد

    +

    مثال على عنوان جديد

    +

    مثال على عنوان جديد

    +

    مثال على عنوان جديد

    +

    مثال على عنوان جديد

    +

    مثال على عنوان جديد

    +

    مثال على عنوان جديد

    + `} /> + + ` + ${themeColor.title} + `)} /> +
    +
    + +
    +
    +

    الأزرار

    + دليل الإستخدام +
    + +
    + ` + + `), + ``]} /> + + ` + + `)} /> + + زر صغير + + + `} /> +
    +
    + +
    +
    +

    البطاقة

    + دليل الإستخدام +
    + +
    + +
    +
    + +
    +
    عنوان البطاقة
    +

    بعض الأمثلة السريعة للنصوص للبناء على عنوان البطاقة وتشكيل الجزء الأكبر من محتوى البطاقة.

    + اذهب لمكان ما +
    +
    +
    +
    +
    +
    + متميز +
    +
    +
    عنوان البطاقة
    +

    بعض الأمثلة السريعة للنصوص للبناء على عنوان البطاقة وتشكيل الجزء الأكبر من محتوى البطاقة.

    + اذهب لمكان ما +
    + +
    +
    +
    +
    +
    +
    عنوان البطاقة
    +

    بعض الأمثلة السريعة للنصوص للبناء على عنوان البطاقة وتشكيل الجزء الأكبر من محتوى البطاقة.

    +
    +
      +
    • عنصر
    • +
    • عنصر آخر
    • +
    • عنصر ثالث
    • +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    عنوان البطاقة
    +

    هذه بطاقة أعرض مع نص داعم تحتها كمقدمة طبيعية لمحتوى إضافي. هذا المحتوى أطول قليلاً.

    +

    آخر تحديث منذ 3 دقائق

    +
    +
    +
    +
    +
    +
    + `} /> + +
    + + +
    +
    +

    مجموعة العناصر

    + دليل الإستخدام +
    + +
    + +
  • عنصر معطل
  • +
  • عنصر ثاني
  • +
  • عنصر ثالث
  • +
  • عنصر رابع
  • +
  • وعنصر خامس أيضًا
  • + + `} /> + + +
  • عنصر
  • +
  • عنصر ثاني
  • +
  • عنصر ثالث
  • +
  • عنصر رابع
  • +
  • وعنصر خامس أيضًا
  • + + `} /> + + + عنصر مجموعة قائمة default بسيط`, + ...getData('theme-colors').map((themeColor) => ` + عنصر مجموعة قائمة ${themeColor.name} بسيط + `), + `
    + `]} /> + +
    + + + + +
    +
    +

    الصناديق المنبثقة

    + دليل الإستخدام +
    + +
    + + انقر لعرض/إخفاء الصندوق المنبثق + + `} /> + + + انبثاق إلى الأعلى + + + + + `} /> +
    +
    +
    +
    +

    شريط التقدم

    + دليل الإستخدام +
    + +
    + +
    0%
    +
    +
    +
    25%
    +
    +
    +
    50%
    +
    +
    +
    75%
    +
    +
    +
    100%
    +
    + `} /> + + +
    +
    +
    +
    +
    +
    + + `} /> + +
    +
    +
    +

    المخطوطة

    + دليل الإستخدام +
    + +
    +
    + +
    +

    @fat

    +

    محتوى لتوضيح كيف تعمل المخطوطة. ببساطة، المخطوطة عبارة عن منشور طويل يحتوي على عدة أقسام، ولديه شريط تنقل يسهل الوصول إلى هذه الأقسام الفرعية.

    +

    @mdo

    +

    بصرف النظر عن تحسيننا جدوى المكيّفات أو عدم تحسينها، فإن الطلب على الطاقة سيزداد. وطبقاً لما جاء في مقالة معهد ماساشوستس للتكنولوجيا، السالف ذكره، ثمَّة أمر يجب عدم إغفاله، وهو كيف أن هذا الطلب سيضغط على نظم توفير الطاقة الحالية. إذ لا بد من إعادة تأهيل كل شبكات الكهرباء، وتوسيعها لتلبية طلب الطاقة في زمن الذروة، خلال موجات الحرارة المتزايدة. فحين يكون الحر شديداً يجنح الناس إلى البقاء في الداخل، وإلى زيادة تشغيل المكيّفات، سعياً إلى جو لطيف وهم يستخدمون أدوات وأجهزة مختلفة أخرى.

    +

    واحد

    +

    وكل هذه الأمور المتزامنة من تشغيل الأجهزة، يزيد الضغط على شبكات الطاقة، كما أسلفنا. لكن مجرد زيادة سعة الشبكة ليس كافياً. إذ لا بد من تطوير الشبكات الذكية التي تستخدم الجسّاسات، ونظم المراقبة، والبرامج الإلكترونية، لتحديد متى يكون الشاغلون في المبنى، ومتى يكون ثمَّة حاجة إلى الطاقة، ومتى تكون الحرارة منخفضة، وبذلك يخرج الناس، فلا يستخدمون كثيراً من الكهرباء.

    +

    اثنان

    +

    مع الأسف، كل هذه الحلول المبتكرة مكلِّفة، وهذا ما يجعلها عديمة الجدوى في نظر بعض الشركات الخاصة والمواطن المتقشّف. إن بعض الأفراد الواعين بيئياً يبذلون قصارى جهدهم في تقليص استهلاكهم من الطاقة، ويعون جيداً أهمية أجهزة التكييف المجدية والأرفق بالبيئة. ولكن جهات كثيرة لن تتحرّك لمجرد حافز سلامة المناخ ووقف هدر الطاقة، ما دامت لا تحركها حوافز قانونية. وعلى الحكومات أن تُقدِم عند الاهتمام بالتغيّر المناخي، على وضع التشريعات المناسبة. فبالنظم والحوافز والدعم، يمكن دفع الشركات إلى اعتماد الحلول الأجدى في مكاتبها.

    +

    ثلاثة

    +

    وكما يتبيّن لنا، من عدد الحلول الملطِّفة للمشكلة، ومن تنوّعها، وهي الحلول التي أسلفنا الحديث عنها، فإن التكنولوجيا التي نحتاج إليها من أجل معالجة هذه التحديات، هي في مدى قدرتنا، لكنها ربما تتطلّب بعض التحسين، ودعماً استثمارياً أكبر!

    +

    ولا مانع من إضافة محتوى آخر ليس تحت أي قسم معين.

    +
    +
    +
    +
    +
    +
    +

    الدوائر المتحركة

    + دليل الإستخدام +
    + +
    + ` +
    + جار التحميل... +
    + `)} /> + + ` +
    + جار التحميل... +
    + `)} /> +
    +
    +
    +
    +

    الإشعارات

    + دليل الإستخدام +
    + +
    + +
    + + Bootstrap + قبل 11 دقيقة + +
    +
    + مرحبًا بالعالم! هذه رسالة إشعار. +
    +
    + `} /> + +
    +
    +
    +

    التلميحات

    + دليل الإستخدام +
    + +
    + تلميح يظهر في الأعلى + + + + + `} /> +
    +
    +
    + + + + + + diff --git a/site-new/src/assets/examples/cheatsheet/cheatsheet.css b/site-new/src/assets/examples/cheatsheet/cheatsheet.css new file mode 100644 index 0000000000..e2f99b8592 --- /dev/null +++ b/site-new/src/assets/examples/cheatsheet/cheatsheet.css @@ -0,0 +1,164 @@ +body { + scroll-behavior: smooth; +} + +/** + * Bootstrap "Journal code" icon + * @link https://icons.getbootstrap.com/icons/journal-code/ + */ +.bd-heading a::before { + display: inline-block; + width: 1em; + height: 1em; + margin-right: .25rem; + content: ""; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%25230d6efd' viewBox='0 0 16 16'%3E%3Cpath d='M4 1h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2h1a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1H2a2 2 0 0 1 2-2z'/%3E%3Cpath d='M2 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H2zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H2zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H2z'/%3E%3Cpath fill-rule='evenodd' d='M8.646 5.646a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1 0 .708l-2 2a.5.5 0 0 1-.708-.708L10.293 8 8.646 6.354a.5.5 0 0 1 0-.708zm-1.292 0a.5.5 0 0 0-.708 0l-2 2a.5.5 0 0 0 0 .708l2 2a.5.5 0 0 0 .708-.708L5.707 8l1.647-1.646a.5.5 0 0 0 0-.708z'/%3E%3C/svg%3E"); + background-size: 1em; +} + +/* stylelint-disable-next-line selector-max-universal */ +.bd-heading + div > * + * { + margin-top: 3rem; +} + +/* Table of contents */ +.bd-aside a { + padding: .1875rem .5rem; + margin-top: .125rem; + margin-left: .3125rem; + color: rgba(0, 0, 0, .65); +} + +.bd-aside a:hover, +.bd-aside a:focus { + color: rgba(0, 0, 0, .85); + background-color: rgba(121, 82, 179, .1); +} + +.bd-aside .active { + font-weight: 600; + color: rgba(0, 0, 0, .85); +} + +.bd-aside .btn { + padding: .25rem .5rem; + font-weight: 600; + color: rgba(0, 0, 0, .65); +} + +.bd-aside .btn:hover, +.bd-aside .btn:focus { + color: rgba(0, 0, 0, .85); + background-color: rgba(121, 82, 179, .1); +} + +.bd-aside .btn:focus { + box-shadow: 0 0 0 1px rgba(121, 82, 179, .7); +} + +.bd-aside .btn::before { + width: 1.25em; + line-height: 0; + content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); + transition: transform .35s ease; + + /* rtl:raw: + transform: rotate(180deg) translateX(-2px); + */ + transform-origin: .5em 50%; +} + +.bd-aside .btn[aria-expanded="true"]::before { + transform: rotate(90deg)/* rtl:ignore */; +} + + +/* Examples */ +.scrollspy-example { + height: 200px; +} + +[id="modal"] .bd-example .btn, +[id="buttons"] .bd-example .btn, +[id="tooltips"] .bd-example .btn, +[id="popovers"] .bd-example .btn, +[id="dropdowns"] .bd-example .btn-group, +[id="dropdowns"] .bd-example .dropdown, +[id="dropdowns"] .bd-example .dropup, +[id="dropdowns"] .bd-example .dropend, +[id="dropdowns"] .bd-example .dropstart { + margin: 0 1rem 1rem 0; +} + +/* Layout */ +@media (min-width: 1200px) { + body { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 4fr 1fr; + gap: 1rem; + } + + .bd-header { + position: fixed; + top: 0; + /* rtl:begin:ignore */ + right: 0; + left: 0; + /* rtl:end:ignore */ + z-index: 1030; + grid-column: 1 / span 3; + } + + .bd-aside, + .bd-cheatsheet { + padding-top: 4rem; + } + + /** + * 1. Too bad only Firefox supports subgrids ATM + */ + .bd-cheatsheet, + .bd-cheatsheet section, + .bd-cheatsheet article { + display: inherit; /* 1 */ + grid-template-rows: auto; + grid-template-columns: 1fr 4fr; + grid-column: 1 / span 2; + gap: inherit; /* 1 */ + } + + .bd-aside { + grid-area: 1 / 3; + scroll-margin-top: 4rem; + } + + .bd-cheatsheet section, + .bd-cheatsheet section > h2 { + top: 2rem; + scroll-margin-top: 2rem; + } + + .bd-cheatsheet section > h2::before { + position: absolute; + /* rtl:begin:ignore */ + top: 0; + right: 0; + bottom: -2rem; + left: 0; + /* rtl:end:ignore */ + z-index: -1; + content: ""; + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 1) calc(100% - 3rem), rgba(255, 255, 255, .01)); + } + + .bd-cheatsheet article, + .bd-cheatsheet .bd-heading { + top: 8rem; + scroll-margin-top: 8rem; + } + + .bd-cheatsheet .bd-heading { + z-index: 1; + } +} diff --git a/site-new/src/assets/examples/cheatsheet/cheatsheet.js b/site-new/src/assets/examples/cheatsheet/cheatsheet.js new file mode 100644 index 0000000000..e25a89e75d --- /dev/null +++ b/site-new/src/assets/examples/cheatsheet/cheatsheet.js @@ -0,0 +1,73 @@ +/* global bootstrap: false */ + +(() => { + 'use strict' + + // Tooltip and popover demos + document.querySelectorAll('.tooltip-demo') + .forEach(tooltip => { + new bootstrap.Tooltip(tooltip, { + selector: '[data-bs-toggle="tooltip"]' + }) + }) + + document.querySelectorAll('[data-bs-toggle="popover"]') + .forEach(popover => { + new bootstrap.Popover(popover) + }) + + document.querySelectorAll('.toast') + .forEach(toastNode => { + const toast = new bootstrap.Toast(toastNode, { + autohide: false + }) + + toast.show() + }) + + // Disable empty links and submit buttons + document.querySelectorAll('[href="#"], [type="submit"]') + .forEach(link => { + link.addEventListener('click', event => { + event.preventDefault() + }) + }) + + function setActiveItem() { + const { hash } = window.location + + if (hash === '') { + return + } + + const link = document.querySelector(`.bd-aside a[href="${hash}"]`) + + if (!link) { + return + } + + const active = document.querySelector('.bd-aside .active') + const parent = link.parentNode.parentNode.previousElementSibling + + link.classList.add('active') + + if (parent.classList.contains('collapsed')) { + parent.click() + } + + if (!active) { + return + } + + const expanded = active.parentNode.parentNode.previousElementSibling + + active.classList.remove('active') + + if (expanded && parent !== expanded) { + expanded.click() + } + } + + setActiveItem() + window.addEventListener('hashchange', setActiveItem) +})() diff --git a/site-new/src/assets/examples/cheatsheet/cheatsheet.rtl.css b/site-new/src/assets/examples/cheatsheet/cheatsheet.rtl.css new file mode 100644 index 0000000000..e04d848717 --- /dev/null +++ b/site-new/src/assets/examples/cheatsheet/cheatsheet.rtl.css @@ -0,0 +1,157 @@ +body { + scroll-behavior: smooth; +} + +/** + * Bootstrap "Journal code" icon + * @link https://icons.getbootstrap.com/icons/journal-code/ + */ +.bd-heading a::before { + display: inline-block; + width: 1em; + height: 1em; + margin-left: .25rem; + content: ""; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%25230d6efd' viewBox='0 0 16 16'%3E%3Cpath d='M4 1h8a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2h1a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1H4a1 1 0 0 0-1 1H2a2 2 0 0 1 2-2z'/%3E%3Cpath d='M2 5v-.5a.5.5 0 0 1 1 0V5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H2zm0 3v-.5a.5.5 0 0 1 1 0V8h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H2zm0 3v-.5a.5.5 0 0 1 1 0v.5h.5a.5.5 0 0 1 0 1h-2a.5.5 0 0 1 0-1H2z'/%3E%3Cpath fill-rule='evenodd' d='M8.646 5.646a.5.5 0 0 1 .708 0l2 2a.5.5 0 0 1 0 .708l-2 2a.5.5 0 0 1-.708-.708L10.293 8 8.646 6.354a.5.5 0 0 1 0-.708zm-1.292 0a.5.5 0 0 0-.708 0l-2 2a.5.5 0 0 0 0 .708l2 2a.5.5 0 0 0 .708-.708L5.707 8l1.647-1.646a.5.5 0 0 0 0-.708z'/%3E%3C/svg%3E"); + background-size: 1em; +} + +/* stylelint-disable-next-line selector-max-universal */ +.bd-heading + div > * + * { + margin-top: 3rem; +} + +/* Table of contents */ +.bd-aside a { + padding: .1875rem .5rem; + margin-top: .125rem; + margin-right: .3125rem; + color: rgba(0, 0, 0, .65); +} + +.bd-aside a:hover, +.bd-aside a:focus { + color: rgba(0, 0, 0, .85); + background-color: rgba(121, 82, 179, .1); +} + +.bd-aside .active { + font-weight: 600; + color: rgba(0, 0, 0, .85); +} + +.bd-aside .btn { + padding: .25rem .5rem; + font-weight: 600; + color: rgba(0, 0, 0, .65); +} + +.bd-aside .btn:hover, +.bd-aside .btn:focus { + color: rgba(0, 0, 0, .85); + background-color: rgba(121, 82, 179, .1); +} + +.bd-aside .btn:focus { + box-shadow: 0 0 0 1px rgba(121, 82, 179, .7); +} + +.bd-aside .btn::before { + width: 1.25em; + line-height: 0; + content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%280,0,0,.5%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e"); + transition: transform .35s ease; + transform: rotate(180deg) translateX(-2px); + transform-origin: .5em 50%; +} + +.bd-aside .btn[aria-expanded="true"]::before { + transform: rotate(90deg); +} + + +/* Examples */ +.scrollspy-example { + height: 200px; +} + +[id="modal"] .bd-example .btn, +[id="buttons"] .bd-example .btn, +[id="tooltips"] .bd-example .btn, +[id="popovers"] .bd-example .btn, +[id="dropdowns"] .bd-example .btn-group, +[id="dropdowns"] .bd-example .dropdown, +[id="dropdowns"] .bd-example .dropup, +[id="dropdowns"] .bd-example .dropend, +[id="dropdowns"] .bd-example .dropstart { + margin: 0 0 1rem 1rem; +} + +/* Layout */ +@media (min-width: 1200px) { + body { + display: grid; + grid-template-rows: auto; + grid-template-columns: 1fr 4fr 1fr; + gap: 1rem; + } + + .bd-header { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; + grid-column: 1 / span 3; + } + + .bd-aside, + .bd-cheatsheet { + padding-top: 4rem; + } + + /** + * 1. Too bad only Firefox supports subgrids ATM + */ + .bd-cheatsheet, + .bd-cheatsheet section, + .bd-cheatsheet article { + display: inherit; /* 1 */ + grid-template-rows: auto; + grid-template-columns: 1fr 4fr; + grid-column: 1 / span 2; + gap: inherit; /* 1 */ + } + + .bd-aside { + grid-area: 1 / 3; + scroll-margin-top: 4rem; + } + + .bd-cheatsheet section, + .bd-cheatsheet section > h2 { + top: 2rem; + scroll-margin-top: 2rem; + } + + .bd-cheatsheet section > h2::before { + position: absolute; + top: 0; + right: 0; + bottom: -2rem; + left: 0; + z-index: -1; + content: ""; + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 1) calc(100% - 3rem), rgba(255, 255, 255, .01)); + } + + .bd-cheatsheet article, + .bd-cheatsheet .bd-heading { + top: 8rem; + scroll-margin-top: 8rem; + } + + .bd-cheatsheet .bd-heading { + z-index: 1; + } +} diff --git a/site-new/src/assets/examples/cheatsheet/index.astro b/site-new/src/assets/examples/cheatsheet/index.astro new file mode 100644 index 0000000000..e51ad7a34f --- /dev/null +++ b/site-new/src/assets/examples/cheatsheet/index.astro @@ -0,0 +1,1557 @@ +--- +import { getData } from '@libs/data' +import { getVersionedDocsPath } from '@libs/path' +import Example from '@shortcodes/Example.astro' +import Placeholder from '@shortcodes/Placeholder.astro' + +export const title = 'Cheatsheet' +export const extra_css = ['cheatsheet.css'] +export const extra_js = [{ src: 'cheatsheet.js' }] +export const body_class = 'bg-body-tertiary' +--- + +
    +
    +

    + Bootstrap + Cheatsheet +

    + RTL cheatsheet +
    +
    + +
    +
    +

    Contents

    + +
    +
    +

    Typography

    + Documentation +
    + +
    + Display 1

    +

    Display 2

    +

    Display 3

    +

    Display 4

    +

    Display 5

    +

    Display 6

    `} /> + + Heading 1

    +

    Heading 2

    +

    Heading 3

    +

    Heading 4

    +

    Heading 5

    +

    Heading 6

    `} /> + + + This is a lead paragraph. It stands out from regular paragraphs. +

    `} /> + + You can use the mark tag to highlight text.

    +

    This line of text is meant to be treated as deleted text.

    +

    This line of text is meant to be treated as no longer accurate.

    +

    This line of text is meant to be treated as an addition to the document.

    +

    This line of text will render as underlined.

    +

    This line of text is meant to be treated as fine print.

    +

    This line rendered as bold text.

    +

    This line rendered as italicized text.

    `} /> + + `} /> + + +

    A well-known quote, contained in a blockquote element.

    +
    Someone famous in Source Title
    + `} /> + + +
  • This is a list.
  • +
  • It appears completely unstyled.
  • +
  • Structurally, it's still a list.
  • +
  • However, this style only applies to immediate child elements.
  • +
  • Nested lists: +
      +
    • are unaffected by this style
    • +
    • will still show a bullet
    • +
    • and have appropriate left margin
    • +
    +
  • +
  • This may still come in handy in some situations.
  • + `} /> + + +
  • This is a list item.
  • +
  • And another one.
  • +
  • But they're displayed inline.
  • + `} /> +
    +
    + +
    +
    +

    Tables

    + Documentation +
    +
    + + + + # + First + Last + Handle + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + + `} /> + + + + + # + First + Last + Handle + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + + `} /> + + + + + Class + Heading + Heading + + + + + Default + Cell + Cell + `, + ...getData('theme-colors').map((themeColor) => ` + ${themeColor.title} + Cell + Cell + `), + ` + `]} /> + + + + + # + First + Last + Handle + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + + `} /> +
    +
    + +
    +
    +

    Figures

    + Documentation +
    + +
    + + +
    A caption for the above image.
    + `} /> +
    +
    +
    + +
    +

    Forms

    + +
    +
    +

    Overview

    + Documentation +
    + +
    + +
    + + +
    We'll never share your email with anyone else.
    +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + Radios buttons +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + + `} /> +
    +
    +
    +
    +

    Disabled forms

    + Documentation +
    + +
    + +
    +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    +
    + Disabled radios buttons +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + + +
    +
    + + +
    + +
    + `} /> +
    +
    +
    +
    +

    Sizing

    + Documentation +
    + +
    + + +
    +
    + +
    +
    + +
    `} /> + + + +
    +
    + +
    +
    + +
    + `} /> + + +
    +
    +

    Input group

    + Documentation +
    + +
    + + @ + +
    +
    + + @example.com +
    + +
    + https://example.com/users/ + +
    +
    + $ + + .00 +
    +
    + With textarea + +
    + `} /> + +
    +
    +
    +

    Floating labels

    + Documentation +
    + +
    + +
    + + +
    +
    + + +
    + + `} /> +
    +
    +
    +
    +

    Validation

    + Documentation +
    + +
    + +
    + + +
    + Looks good! +
    +
    +
    + + +
    + Looks good! +
    +
    +
    + +
    + @ + +
    + Please choose a username. +
    +
    +
    +
    + + +
    + Please provide a valid city. +
    +
    +
    + + +
    + Please select a valid state. +
    +
    +
    + + +
    + Please provide a valid zip. +
    +
    +
    +
    + + +
    + You must agree before submitting. +
    +
    +
    +
    + +
    + + `} /> +
    +
    + + +
    +

    Components

    + +
    +
    +

    Accordion

    + Documentation +
    + +
    + +
    +

    + +

    +
    +
    + This is the first item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    +

    + +

    +
    +
    + This is the second item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    +

    + +

    +
    +
    + This is the third item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    + `} /> + +
    +
    +
    +

    Alerts

    + Documentation +
    + +
    + ` + + `)} /> + + +

    Well done!

    +

    Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.

    +
    +

    Whenever you need to, be sure to use margin utilities to keep things nice and tidy.

    +
    + `} /> + +
    +
    +
    +

    Badge

    + Documentation +
    + +
    + Example heading New

    +

    Example heading New

    +

    Example heading New

    +

    Example heading New

    +

    Example heading New

    +

    Example heading New

    +

    Example heading New

    +

    Example heading New

    + `} /> + + ` + ${themeColor.title} + `)} /> +
    +
    + +
    +
    +

    Buttons

    + Documentation +
    +
    + ` + + `), + ``]} /> + + ` + + `)} /> + + Small button + + + `} /> +
    +
    +
    +
    +

    Button group

    + Documentation +
    + +
    + +
    + + + + +
    +
    + + + +
    +
    + +
    +
    + `} /> + +
    +
    +
    +

    Card

    + Documentation +
    + +
    + +
    +
    + +
    +
    Card title
    +

    Some quick example text to build on the card title and make up the bulk of the card's content.

    + Go somewhere +
    +
    +
    +
    +
    +
    + Featured +
    +
    +
    Card title
    +

    Some quick example text to build on the card title and make up the bulk of the card's content.

    + Go somewhere +
    + +
    +
    +
    +
    +
    +
    Card title
    +

    Some quick example text to build on the card title and make up the bulk of the card's content.

    +
    +
      +
    • An item
    • +
    • A second item
    • +
    • A third item
    • +
    + +
    +
    +
    +
    +
    +
    + +
    +
    +
    +
    Card title
    +

    This is a wider card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.

    +

    Last updated 3 mins ago

    +
    +
    +
    +
    +
    +
    + `} /> + +
    + + + + + + + +
    +
    +

    Popovers

    + Documentation +
    + +
    + Click to toggle popover + `} /> + + + Popover on top + + + + + `} /> +
    +
    +
    +
    +

    Progress

    + Documentation +
    + +
    + +
    0%
    +
    +
    +
    25%
    +
    +
    +
    50%
    +
    +
    +
    75%
    +
    +
    +
    100%
    +
    + `} /> + + +
    +
    +
    +
    +
    +
    + + `} /> + +
    +
    +
    +

    Scrollspy

    + Documentation +
    + +
    +
    + +
    +

    First heading

    +

    This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.

    +

    Second heading

    +

    This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.

    +

    Third heading

    +

    This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.

    +

    Fourth heading

    +

    This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.

    +

    Fifth heading

    +

    This is some placeholder content for the scrollspy page. Note that as you scroll down the page, the appropriate navigation link is highlighted. It's repeated throughout the component example. We keep adding some more example copy here to emphasize the scrolling and highlighting.

    +
    +
    +
    +
    +
    +
    +

    Spinners

    + Documentation +
    + +
    + ` +
    + Loading... +
    + `)} /> + + ` +
    + Loading... +
    + `)} /> +
    +
    +
    +
    +

    Toasts

    + Documentation +
    + +
    + +
    + + Bootstrap + 11 mins ago + +
    +
    + Hello, world! This is a toast message. +
    +
    + `} /> + +
    +
    +
    +

    Tooltips

    + Documentation +
    + +
    + Tooltip on top + + + + + `} /> +
    +
    +
    + + + + + + + diff --git a/site-new/src/assets/examples/checkout-rtl/index.astro b/site-new/src/assets/examples/checkout-rtl/index.astro new file mode 100644 index 0000000000..6e82f23d90 --- /dev/null +++ b/site-new/src/assets/examples/checkout-rtl/index.astro @@ -0,0 +1,231 @@ +--- +import { getVersionedDocsPath } from '@libs/path' + +export const title = 'مثال إتمام الشراء' +export const direction = 'rtl' +export const extra_css = ['../checkout/checkout.css'] +export const extra_js = [{ src: '../checkout/checkout.js' }] +export const body_class = 'bg-body-tertiary' +--- + +
    +
    +
    + +

    نموذج إتمام الشراء

    +

    فيما يلي مثال على نموذج تم إنشاؤه بالكامل باستخدام عناصر تحكم النموذج في Bootstrap. لكل مجموعة نماذج مطلوبة حالة تحقق يمكن تشغيلها بمحاولة إرسال النموذج دون استكماله.

    +
    + +
    +
    +

    + عربة التسوق + 3 +

    +
      +
    • +
      +
      اسم المنتج
      + وصف مختصر +
      + $12 +
    • +
    • +
      +
      المنتج الثاني
      + وصف مختصر +
      + $8 +
    • +
    • +
      +
      البند الثالث
      + وصف مختصر +
      + $5 +
    • +
    • +
      +
      رمز ترويجي
      + EXAMPLECODE +
      + -$5 +
    • +
    • + مجموع (USD) + $20 +
    • +
    + +
    +
    + + +
    +
    +
    +
    +

    عنوان الفوترة

    +
    +
    +
    + + +
    + يرجى إدخال اسم أول صحيح. +
    +
    + +
    + + +
    + يرجى إدخال اسم عائلة صحيح. +
    +
    + +
    + +
    + @ + +
    + اسم المستخدم الخاص بك مطلوب. +
    +
    +
    + +
    + + +
    + يرجى إدخال عنوان بريد إلكتروني صحيح لتصلكم تحديثات الشحن. +
    +
    + +
    + + +
    + يرجى إدخال عنوان الشحن الخاص بك. +
    +
    + +
    + + +
    + +
    + + +
    + يرجى اختيار بلد صحيح. +
    +
    + +
    + + +
    + يرجى اختيار اسم منطقة صحيح. +
    +
    + +
    + + +
    + الرمز البريدي مطلوب. +
    +
    +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + +

    طريقة الدفع

    + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    +
    + + + الاسم الكامل كما هو معروض على البطاقة +
    + الاسم على البطاقة مطلوب +
    +
    + +
    + + +
    + رقم بطاقة الائتمان مطلوب +
    +
    + +
    + + +
    + تاريخ انتهاء الصلاحية مطلوب +
    +
    + +
    + + +
    + رمز الحماية مطلوب +
    +
    +
    + +
    + + +
    +
    +
    +
    + +
    diff --git a/site-new/src/assets/examples/checkout/checkout.css b/site-new/src/assets/examples/checkout/checkout.css new file mode 100644 index 0000000000..e5ea31c405 --- /dev/null +++ b/site-new/src/assets/examples/checkout/checkout.css @@ -0,0 +1,3 @@ +.container { + max-width: 960px; +} diff --git a/site-new/src/assets/examples/checkout/checkout.js b/site-new/src/assets/examples/checkout/checkout.js new file mode 100644 index 0000000000..30ea0aa6b1 --- /dev/null +++ b/site-new/src/assets/examples/checkout/checkout.js @@ -0,0 +1,19 @@ +// Example starter JavaScript for disabling form submissions if there are invalid fields +(() => { + 'use strict' + + // Fetch all the forms we want to apply custom Bootstrap validation styles to + const forms = document.querySelectorAll('.needs-validation') + + // Loop over them and prevent submission + Array.from(forms).forEach(form => { + form.addEventListener('submit', event => { + if (!form.checkValidity()) { + event.preventDefault() + event.stopPropagation() + } + + form.classList.add('was-validated') + }, false) + }) +})() diff --git a/site-new/src/assets/examples/checkout/index.astro b/site-new/src/assets/examples/checkout/index.astro new file mode 100644 index 0000000000..5c45ac50df --- /dev/null +++ b/site-new/src/assets/examples/checkout/index.astro @@ -0,0 +1,231 @@ +--- +import { getVersionedDocsPath } from '@libs/path' + +export const title = 'Checkout example' +export const extra_css = ['checkout.css'] +export const extra_js = [{ src: 'checkout.js' }] +export const body_class = 'bg-body-tertiary' +--- + +
    +
    +
    + +

    Checkout form

    +

    Below is an example form built entirely with Bootstrap’s form controls. Each required form group has a validation state that can be triggered by attempting to submit the form without completing it.

    +
    + +
    +
    +

    + Your cart + 3 +

    +
      +
    • +
      +
      Product name
      + Brief description +
      + $12 +
    • +
    • +
      +
      Second product
      + Brief description +
      + $8 +
    • +
    • +
      +
      Third item
      + Brief description +
      + $5 +
    • +
    • +
      +
      Promo code
      + EXAMPLECODE +
      + −$5 +
    • +
    • + Total (USD) + $20 +
    • +
    + +
    +
    + + +
    +
    +
    +
    +

    Billing address

    +
    +
    +
    + + +
    + Valid first name is required. +
    +
    + +
    + + +
    + Valid last name is required. +
    +
    + +
    + +
    + @ + +
    + Your username is required. +
    +
    +
    + +
    + + +
    + Please enter a valid email address for shipping updates. +
    +
    + +
    + + +
    + Please enter your shipping address. +
    +
    + +
    + + +
    + +
    + + +
    + Please select a valid country. +
    +
    + +
    + + +
    + Please provide a valid state. +
    +
    + +
    + + +
    + Zip code required. +
    +
    +
    + +
    + +
    + + +
    + +
    + + +
    + +
    + +

    Payment

    + +
    +
    + + +
    +
    + + +
    +
    + + +
    +
    + +
    +
    + + + Full name as displayed on card +
    + Name on card is required +
    +
    + +
    + + +
    + Credit card number is required +
    +
    + +
    + + +
    + Expiration date required +
    +
    + +
    + + +
    + Security code required +
    +
    +
    + +
    + + +
    +
    +
    +
    + + +
    diff --git a/site-new/src/assets/examples/cover/cover.css b/site-new/src/assets/examples/cover/cover.css new file mode 100644 index 0000000000..2e7aef8f88 --- /dev/null +++ b/site-new/src/assets/examples/cover/cover.css @@ -0,0 +1,50 @@ +/* + * Globals + */ + + +/* Custom default button */ +.btn-light, +.btn-light:hover, +.btn-light:focus { + color: #333; + text-shadow: none; /* Prevent inheritance from `body` */ +} + + +/* + * Base structure + */ + +body { + text-shadow: 0 .05rem .1rem rgba(0, 0, 0, .5); + box-shadow: inset 0 0 5rem rgba(0, 0, 0, .5); +} + +.cover-container { + max-width: 42em; +} + + +/* + * Header + */ + +.nav-masthead .nav-link { + color: rgba(255, 255, 255, .5); + border-bottom: .25rem solid transparent; +} + +.nav-masthead .nav-link:hover, +.nav-masthead .nav-link:focus { + border-bottom-color: rgba(255, 255, 255, .25); +} + +.nav-masthead .nav-link + .nav-link { + margin-left: 1rem; +} + +.nav-masthead .active { + color: #fff; + border-bottom-color: #fff; +} diff --git a/site-new/src/assets/examples/cover/index.astro b/site-new/src/assets/examples/cover/index.astro new file mode 100644 index 0000000000..8fcb718d69 --- /dev/null +++ b/site-new/src/assets/examples/cover/index.astro @@ -0,0 +1,31 @@ +--- +export const title = 'Cover Template' +export const extra_css = ['cover.css'] +export const html_class = 'h-100' +export const body_class = 'd-flex h-100 text-center text-bg-dark' +--- + +
    +
    +
    +

    Cover

    + +
    +
    + +
    +

    Cover your page.

    +

    Cover is a one-page template for building simple and beautiful home pages. Download, edit the text, and add your own fullscreen background photo to make it your own.

    +

    + Learn more +

    +
    + + +
    diff --git a/site-new/src/assets/examples/dashboard-rtl/dashboard.js b/site-new/src/assets/examples/dashboard-rtl/dashboard.js new file mode 100644 index 0000000000..d278c628bd --- /dev/null +++ b/site-new/src/assets/examples/dashboard-rtl/dashboard.js @@ -0,0 +1,51 @@ +/* globals Chart:false, feather:false */ + +(() => { + 'use strict' + + feather.replace({ 'aria-hidden': 'true' }) + + // Graphs + const ctx = document.getElementById('myChart') + // eslint-disable-next-line no-unused-vars + const myChart = new Chart(ctx, { + type: 'line', + data: { + labels: [ + 'الأحد', + 'الإثنين', + 'الثلاثاء', + 'الأربعاء', + 'الخميس', + 'الجمعة', + 'السبت' + ], + datasets: [{ + data: [ + 15339, + 21345, + 18483, + 24003, + 23489, + 24092, + 12034 + ], + lineTension: 0, + backgroundColor: 'transparent', + borderColor: '#007bff', + borderWidth: 4, + pointBackgroundColor: '#007bff' + }] + }, + options: { + plugins: { + legend: { + display: false + }, + tooltip: { + boxPadding: 3 + } + } + } + }) +})() diff --git a/site-new/src/assets/examples/dashboard-rtl/index.astro b/site-new/src/assets/examples/dashboard-rtl/index.astro new file mode 100644 index 0000000000..86711f73cd --- /dev/null +++ b/site-new/src/assets/examples/dashboard-rtl/index.astro @@ -0,0 +1,250 @@ +--- +export const title = 'قالب لوحة القيادة' +export const direction = 'rtl' +export const extra_css = ['../dashboard/dashboard.css'] +export const extra_js = [ + { src: 'https://cdn.jsdelivr.net/npm/feather-icons@4.28.0/dist/feather.min.js', integrity: 'sha384-uO3SXW5IuS1ZpFPKugNNWqTZRRglnUJK6UAZ/gxOX80nxEkN9NcGZTftn6RzhGWE'}, + { src: 'https://cdn.jsdelivr.net/npm/chart.js@4.2.1/dist/chart.umd.min.js', integrity: 'sha384-gdQErvCNWvHQZj6XZM0dNsAoY4v+j5P1XDpNkcM3HJG1Yx04ecqIHk7+4VBOCHOG'}, + { src: 'dashboard.js'} +] +--- + + + +
    +
    + + +
    +
    +

    لوحة القيادة

    +
    +
    + + +
    + +
    +
    + + + +

    عنوان القسم

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #عنوانعنوانعنوانعنوان
    1,001بياناتعشوائيةتثريالجدول
    1,002تثريمبهةتصميمتنسيق
    1,003عشوائيةغنيةقيمةمفيدة
    1,003معلوماتتثريتوضيحيةعشوائية
    1,004الجدولبياناتتنسيققيمة
    1,005قيمةمبهةالجدولتثري
    1,006قيمةتوضيحيةغنيةعشوائية
    1,007تثريمفيدةمعلوماتمبهة
    1,008بياناتعشوائيةتثريالجدول
    1,009تثريمبهةتصميمتنسيق
    1,010عشوائيةغنيةقيمةمفيدة
    1,011معلوماتتثريتوضيحيةعشوائية
    1,012الجدولتثريتنسيققيمة
    1,013قيمةمبهةالجدولتصميم
    1,014قيمةتوضيحيةغنيةعشوائية
    1,015بياناتمفيدةمعلوماتالجدول
    +
    +
    +
    +
    diff --git a/site-new/src/assets/examples/dashboard/dashboard.css b/site-new/src/assets/examples/dashboard/dashboard.css new file mode 100644 index 0000000000..ad12048e76 --- /dev/null +++ b/site-new/src/assets/examples/dashboard/dashboard.css @@ -0,0 +1,92 @@ +body { + font-size: .875rem; +} + +.feather { + width: 16px; + height: 16px; +} + +/* + * Sidebar + */ + +.sidebar { + position: fixed; + top: 0; + /* rtl:raw: + right: 0; + */ + bottom: 0; + /* rtl:remove */ + left: 0; + z-index: 100; /* Behind the navbar */ + padding: 48px 0 0; /* Height of navbar */ + box-shadow: inset -1px 0 0 rgba(0, 0, 0, .1); +} + +@media (max-width: 767.98px) { + .sidebar { + top: 5rem; + } +} + +.sidebar-sticky { + height: calc(100vh - 48px); + overflow-x: hidden; + overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */ +} + +.sidebar .nav-link { + font-weight: 500; + color: #333; +} + +.sidebar .nav-link .feather { + margin-right: 4px; + color: #727272; +} + +.sidebar .nav-link.active { + color: #2470dc; +} + +.sidebar .nav-link:hover .feather, +.sidebar .nav-link.active .feather { + color: inherit; +} + +.sidebar-heading { + font-size: .75rem; +} + +/* + * Navbar + */ + +.navbar-brand { + padding-top: .75rem; + padding-bottom: .75rem; + background-color: rgba(0, 0, 0, .25); + box-shadow: inset -1px 0 0 rgba(0, 0, 0, .25); +} + +.navbar .navbar-toggler { + top: .25rem; + right: 1rem; +} + +.navbar .form-control { + padding: .75rem 1rem; +} + +.form-control-dark { + color: #fff; + background-color: rgba(255, 255, 255, .1); + border-color: rgba(255, 255, 255, .1); +} + +.form-control-dark:focus { + border-color: transparent; + box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); +} diff --git a/site-new/src/assets/examples/dashboard/dashboard.js b/site-new/src/assets/examples/dashboard/dashboard.js new file mode 100644 index 0000000000..d190d79616 --- /dev/null +++ b/site-new/src/assets/examples/dashboard/dashboard.js @@ -0,0 +1,51 @@ +/* globals Chart:false, feather:false */ + +(() => { + 'use strict' + + feather.replace({ 'aria-hidden': 'true' }) + + // Graphs + const ctx = document.getElementById('myChart') + // eslint-disable-next-line no-unused-vars + const myChart = new Chart(ctx, { + type: 'line', + data: { + labels: [ + 'Sunday', + 'Monday', + 'Tuesday', + 'Wednesday', + 'Thursday', + 'Friday', + 'Saturday' + ], + datasets: [{ + data: [ + 15339, + 21345, + 18483, + 24003, + 23489, + 24092, + 12034 + ], + lineTension: 0, + backgroundColor: 'transparent', + borderColor: '#007bff', + borderWidth: 4, + pointBackgroundColor: '#007bff' + }] + }, + options: { + plugins: { + legend: { + display: false + }, + tooltip: { + boxPadding: 3 + } + } + } + }) +})() diff --git a/site-new/src/assets/examples/dashboard/dashboard.rtl.css b/site-new/src/assets/examples/dashboard/dashboard.rtl.css new file mode 100644 index 0000000000..31ea3cc64e --- /dev/null +++ b/site-new/src/assets/examples/dashboard/dashboard.rtl.css @@ -0,0 +1,88 @@ +body { + font-size: .875rem; +} + +.feather { + width: 16px; + height: 16px; +} + +/* + * Sidebar + */ + +.sidebar { + position: fixed; + top: 0; + right: 0; + bottom: 0; + z-index: 100; /* Behind the navbar */ + padding: 48px 0 0; /* Height of navbar */ + box-shadow: inset 1px 0 0 rgba(0, 0, 0, .1); +} + +@media (max-width: 767.98px) { + .sidebar { + top: 5rem; + } +} + +.sidebar-sticky { + height: calc(100vh - 48px); + overflow-x: hidden; + overflow-y: auto; /* Scrollable contents if viewport is shorter than content. */ +} + +.sidebar .nav-link { + font-weight: 500; + color: #333; +} + +.sidebar .nav-link .feather { + margin-left: 4px; + color: #727272; +} + +.sidebar .nav-link.active { + color: #2470dc; +} + +.sidebar .nav-link:hover .feather, +.sidebar .nav-link.active .feather { + color: inherit; +} + +.sidebar-heading { + font-size: .75rem; +} + +/* + * Navbar + */ + +.navbar-brand { + padding-top: .75rem; + padding-bottom: .75rem; + background-color: rgba(0, 0, 0, .25); + box-shadow: inset 1px 0 0 rgba(0, 0, 0, .25); +} + +.navbar .navbar-toggler { + top: .25rem; + left: 1rem; +} + +.navbar .form-control { + padding: .75rem 1rem; +} + +.form-control-dark { + color: #fff; + background-color: rgba(255, 255, 255, .1); + border-color: rgba(255, 255, 255, .1); +} + +.form-control-dark:focus { + border-color: transparent; + box-shadow: 0 0 0 3px rgba(255, 255, 255, .25); +} diff --git a/site-new/src/assets/examples/dashboard/index.astro b/site-new/src/assets/examples/dashboard/index.astro new file mode 100644 index 0000000000..51ab6dac21 --- /dev/null +++ b/site-new/src/assets/examples/dashboard/index.astro @@ -0,0 +1,249 @@ +--- +export const title = 'Dashboard Template' +export const extra_css = ['dashboard.css'] +export const extra_js = [ + { src: 'https://cdn.jsdelivr.net/npm/feather-icons@4.28.0/dist/feather.min.js', integrity: 'sha384-uO3SXW5IuS1ZpFPKugNNWqTZRRglnUJK6UAZ/gxOX80nxEkN9NcGZTftn6RzhGWE'}, + { src: 'https://cdn.jsdelivr.net/npm/chart.js@4.2.1/dist/chart.umd.min.js', integrity: 'sha384-gdQErvCNWvHQZj6XZM0dNsAoY4v+j5P1XDpNkcM3HJG1Yx04ecqIHk7+4VBOCHOG'}, + { src: 'dashboard.js'} +] +--- + + + +
    +
    + + +
    +
    +

    Dashboard

    +
    +
    + + +
    + +
    +
    + + + +

    Section title

    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    #HeaderHeaderHeaderHeader
    1,001randomdataplaceholdertext
    1,002placeholderirrelevantvisuallayout
    1,003datarichdashboardtabular
    1,003informationplaceholderillustrativedata
    1,004textrandomlayoutdashboard
    1,005dashboardirrelevanttextplaceholder
    1,006dashboardillustrativerichdata
    1,007placeholdertabularinformationirrelevant
    1,008randomdataplaceholdertext
    1,009placeholderirrelevantvisuallayout
    1,010datarichdashboardtabular
    1,011informationplaceholderillustrativedata
    1,012textplaceholderlayoutdashboard
    1,013dashboardirrelevanttextvisual
    1,014dashboardillustrativerichdata
    1,015randomtabularinformationtext
    +
    +
    +
    +
    diff --git a/site-new/src/assets/examples/dropdowns/dropdowns.css b/site-new/src/assets/examples/dropdowns/dropdowns.css new file mode 100644 index 0000000000..f633e2cd83 --- /dev/null +++ b/site-new/src/assets/examples/dropdowns/dropdowns.css @@ -0,0 +1,71 @@ +.dropdown-item-danger { + color: var(--bs-red); +} +.dropdown-item-danger:hover, +.dropdown-item-danger:focus { + color: #fff; + background-color: var(--bs-red); +} +.dropdown-item-danger.active { + background-color: var(--bs-red); +} + +.btn-hover-light { + color: var(--bs-body-color); + background-color: var(--bs-body-bg); +} +.btn-hover-light:hover, +.btn-hover-light:focus { + color: var(--bs-link-hover-color); + background-color: var(--bs-tertiary-bg); +} + +.cal-month, +.cal-days, +.cal-weekdays { + display: grid; + grid-template-columns: repeat(7, 1fr); + align-items: center; +} +.cal-month-name { + grid-column-start: 2; + grid-column-end: 7; + text-align: center; +} +.cal-weekday, +.cal-btn { + display: flex; + flex-shrink: 0; + align-items: center; + justify-content: center; + height: 3rem; + padding: 0; +} +.cal-btn:not([disabled]) { + font-weight: 500; + color: var(--bs-emphasis-color); +} +.cal-btn:hover, +.cal-btn:focus { + background-color: var(--bs-secondary-bg); +} +.cal-btn[disabled] { + border: 0; + opacity: .5; +} + +.w-220px { + width: 220px; +} + +.w-280px { + width: 280px; +} + +.w-340px { + width: 340px; +} + +.opacity-10 { + opacity: .1; +} diff --git a/site-new/src/assets/examples/dropdowns/index.astro b/site-new/src/assets/examples/dropdowns/index.astro new file mode 100644 index 0000000000..dfc405f7f7 --- /dev/null +++ b/site-new/src/assets/examples/dropdowns/index.astro @@ -0,0 +1,459 @@ +--- +export const title = 'Dropdowns' +export const extra_css = ['dropdowns.css'] +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + +
    + +
    + +
    + + + +
    + +
    + +
    + + +
    + +
    + +
    + + + +
    + +
    + +
    + + + +
    diff --git a/site-new/src/assets/examples/features/features.css b/site-new/src/assets/examples/features/features.css new file mode 100644 index 0000000000..debc263647 --- /dev/null +++ b/site-new/src/assets/examples/features/features.css @@ -0,0 +1,26 @@ +.feature-icon { + width: 4rem; + height: 4rem; + border-radius: .75rem; +} + +.icon-square { + width: 3rem; + height: 3rem; + border-radius: .75rem; +} + +.text-shadow-1 { text-shadow: 0 .125rem .25rem rgba(0, 0, 0, .25); } +.text-shadow-2 { text-shadow: 0 .25rem .5rem rgba(0, 0, 0, .25); } +.text-shadow-3 { text-shadow: 0 .5rem 1.5rem rgba(0, 0, 0, .25); } + +.card-cover { + background-repeat: no-repeat; + background-position: center center; + background-size: cover; +} + +.feature-icon-small { + width: 3rem; + height: 3rem; +} diff --git a/site-new/src/assets/examples/features/index.astro b/site-new/src/assets/examples/features/index.astro new file mode 100644 index 0000000000..badaed47aa --- /dev/null +++ b/site-new/src/assets/examples/features/index.astro @@ -0,0 +1,337 @@ +--- +export const title = 'Features' +export const extra_css = ['features.css'] +--- + + + + Bootstrap + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    Features examples

    + + + +
    + +
    +

    Hanging icons

    +
    +
    +
    + +
    +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.

    + + Primary button + +
    +
    +
    +
    + +
    +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.

    + + Primary button + +
    +
    +
    +
    + +
    +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.

    + + Primary button + +
    +
    +
    +
    + +
    + +
    +

    Custom cards

    + +
    +
    +
    +
    +

    Short title, long jacket

    +
      +
    • + Bootstrap +
    • +
    • + + Earth +
    • +
    • + + 3d +
    • +
    +
    +
    +
    + +
    +
    +
    +

    Much longer title that wraps to multiple lines

    +
      +
    • + Bootstrap +
    • +
    • + + Pakistan +
    • +
    • + + 4d +
    • +
    +
    +
    +
    + +
    +
    +
    +

    Another longer title belongs here

    +
      +
    • + Bootstrap +
    • +
    • + + California +
    • +
    • + + 5d +
    • +
    +
    +
    +
    +
    +
    + +
    + +
    +

    Icon grid

    + +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    +
    + +
    + +
    +

    Features with title

    + +
    +
    +

    Left-aligned title explaining these awesome features

    +

    Paragraph of text beneath the heading to explain the heading. We'll add onto it with another sentence and probably just keep going until we run out of words.

    + Primary button +
    + +
    +
    +
    +
    + + + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    + +
    +
    + + + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    + +
    +
    + + + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    + +
    +
    + + + +
    +

    Featured title

    +

    Paragraph of text beneath the heading to explain the heading.

    +
    +
    +
    +
    +
    +
    diff --git a/site-new/src/assets/examples/features/unsplash-photo-1.jpg b/site-new/src/assets/examples/features/unsplash-photo-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed2e36a78d155e0a21ced9d7538d9390c3eed893 GIT binary patch literal 10451 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%0AHQ*n%0kq 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 + + Bootstrap + + + + + + + + + + + + + +

    + +
    + +
    +
    +
    + + + + © {new Date().getFullYear()} Company, Inc +
    + + +
    +
    + +
    + +
    + +
    + +
    + +
    + +
    + +
    + + +
    + +
    diff --git a/site-new/src/assets/examples/grid/grid.css b/site-new/src/assets/examples/grid/grid.css new file mode 100644 index 0000000000..cbc7c311fb --- /dev/null +++ b/site-new/src/assets/examples/grid/grid.css @@ -0,0 +1,13 @@ +.themed-grid-col { + padding-top: .75rem; + padding-bottom: .75rem; + background-color: rgba(112.520718, 44.062154, 249.437846, .15); + border: 1px solid rgba(112.520718, 44.062154, 249.437846, .3); +} + +.themed-container { + padding: .75rem; + margin-bottom: 1.5rem; + background-color: rgba(112.520718, 44.062154, 249.437846, .15); + border: 1px solid rgba(112.520718, 44.062154, 249.437846, .3); +} diff --git a/site-new/src/assets/examples/grid/index.astro b/site-new/src/assets/examples/grid/index.astro new file mode 100644 index 0000000000..2c01d8de9d --- /dev/null +++ b/site-new/src/assets/examples/grid/index.astro @@ -0,0 +1,185 @@ +--- +export const title = 'Grid Template' +export const extra_css = ['grid.css'] +export const body_class = 'py-4' +--- + +
    +
    + +

    Bootstrap grid examples

    +

    Basic grid layouts to get you familiar with building within the Bootstrap grid system.

    +

    In these examples the .themed-grid-col class is added to the columns to add some theming. This is not a class that is available in Bootstrap by default.

    + +

    Five grid tiers

    +

    There are five tiers to the Bootstrap grid system, one for each range of devices we support. Each tier starts at a minimum viewport size and automatically applies to the larger devices unless overridden.

    + +
    +
    .col-4
    +
    .col-4
    +
    .col-4
    +
    + +
    +
    .col-sm-4
    +
    .col-sm-4
    +
    .col-sm-4
    +
    + +
    +
    .col-md-4
    +
    .col-md-4
    +
    .col-md-4
    +
    + +
    +
    .col-lg-4
    +
    .col-lg-4
    +
    .col-lg-4
    +
    + +
    +
    .col-xl-4
    +
    .col-xl-4
    +
    .col-xl-4
    +
    + +
    +
    .col-xxl-4
    +
    .col-xxl-4
    +
    .col-xxl-4
    +
    + +

    Three equal columns

    +

    Get three equal-width columns starting at desktops and scaling to large desktops. On mobile devices, tablets and below, the columns will automatically stack.

    +
    +
    .col-md-4
    +
    .col-md-4
    +
    .col-md-4
    +
    + +

    Three equal columns alternative

    +

    By using the .row-cols-* classes, you can easily create a grid with equal columns.

    +
    +
    .col child of .row-cols-md-3
    +
    .col child of .row-cols-md-3
    +
    .col child of .row-cols-md-3
    +
    + +

    Three unequal columns

    +

    Get three columns starting at desktops and scaling to large desktops of various widths. Remember, grid columns should add up to twelve for a single horizontal block. More than that, and columns start stacking no matter the viewport.

    +
    +
    .col-md-3
    +
    .col-md-6
    +
    .col-md-3
    +
    + +

    Two columns

    +

    Get two columns starting at desktops and scaling to large desktops.

    +
    +
    .col-md-8
    +
    .col-md-4
    +
    + +

    Full width, single column

    +

    + No grid classes are necessary for full-width elements. +

    + +
    + +

    Two columns with two nested columns

    +

    Per the documentation, nesting is easy—just put a row of columns within an existing column. This gives you two columns starting at desktops and scaling to large desktops, with another two (equal widths) within the larger column.

    +

    At mobile device sizes, tablets and down, these columns and their nested columns will stack.

    +
    +
    +
    + .col-md-8 +
    +
    +
    .col-md-6
    +
    .col-md-6
    +
    +
    +
    .col-md-4
    +
    + +
    + +

    Mixed: mobile and desktop

    +

    The Bootstrap v5 grid system has six tiers of classes: xs (extra small, this class infix is not used), sm (small), md (medium), lg (large), xl (x-large), and xxl (xx-large). You can use nearly any combination of these classes to create more dynamic and flexible layouts.

    +

    Each tier of classes scales up, meaning if you plan on setting the same widths for md, lg, xl and xxl, you only need to specify md.

    +
    +
    .col-md-8
    +
    .col-6 .col-md-4
    +
    +
    +
    .col-6 .col-md-4
    +
    .col-6 .col-md-4
    +
    .col-6 .col-md-4
    +
    +
    +
    .col-6
    +
    .col-6
    +
    + +
    + +

    Mixed: mobile, tablet, and desktop

    +
    +
    .col-sm-6 .col-lg-8
    +
    .col-6 .col-lg-4
    +
    +
    +
    .col-6 .col-sm-4
    +
    .col-6 .col-sm-4
    +
    .col-6 .col-sm-4
    +
    + +
    + +

    Gutters

    +

    With .gx-* classes, the horizontal gutters can be adjusted.

    +
    +
    .col with .gx-4 gutters
    +
    .col with .gx-4 gutters
    +
    .col with .gx-4 gutters
    +
    .col with .gx-4 gutters
    +
    .col with .gx-4 gutters
    +
    .col with .gx-4 gutters
    +
    +

    Use the .gy-* classes to control the vertical gutters.

    +
    +
    .col with .gy-4 gutters
    +
    .col with .gy-4 gutters
    +
    .col with .gy-4 gutters
    +
    .col with .gy-4 gutters
    +
    .col with .gy-4 gutters
    +
    .col with .gy-4 gutters
    +
    +

    With .g-* classes, the gutters in both directions can be adjusted.

    +
    +
    .col with .g-3 gutters
    +
    .col with .g-3 gutters
    +
    .col with .g-3 gutters
    +
    .col with .g-3 gutters
    +
    .col with .g-3 gutters
    +
    .col with .g-3 gutters
    +
    +
    + +
    +
    + +

    Containers

    +

    Additional classes added in Bootstrap v4.4 allow containers that are 100% wide until a particular breakpoint. v5 adds a new xxl breakpoint.

    +
    + +
    .container
    +
    .container-sm
    +
    .container-md
    +
    .container-lg
    +
    .container-xl
    +
    .container-xxl
    +
    .container-fluid
    +
    diff --git a/site-new/src/assets/examples/headers/headers.css b/site-new/src/assets/examples/headers/headers.css new file mode 100644 index 0000000000..f887573feb --- /dev/null +++ b/site-new/src/assets/examples/headers/headers.css @@ -0,0 +1,15 @@ +.form-control-dark { + border-color: var(--bs-gray); +} +.form-control-dark:focus { + border-color: #fff; + box-shadow: 0 0 0 .25rem rgba(255, 255, 255, .25); +} + +.text-small { + font-size: 85%; +} + +.dropdown-toggle:not(:focus) { + outline: 0; +} diff --git a/site-new/src/assets/examples/headers/index.astro b/site-new/src/assets/examples/headers/index.astro new file mode 100644 index 0000000000..dac9982bbe --- /dev/null +++ b/site-new/src/assets/examples/headers/index.astro @@ -0,0 +1,294 @@ +--- +export const title = 'Headers' +export const extra_css = ['headers.css'] +--- + + + + Bootstrap + + + + + + + + + + + + + + + + + + + + + +
    +

    Headers examples

    + + + +
    + +
    +
    + +
    +
    + +
    + +
    +
    +
    + + + +
    + + + +
    + + +
    +
    +
    + +
    + +
    +
    +
    + + + + + + + + +
    + + +
    +
    +
    +
    + +
    + +
    +
    +
    + + + + + + + + + +
    +
    +
    + +
    + +
    +
    + + +
    + + + +
    +
    +
    + +
    +
    +
    +









    +
    +
    +









    +
    +
    +
    + +
    + + +
    + +
    + +
    + +
    + +
    +
    + + +
    + + +
    +
    +
    +
    + +
    +
    diff --git a/site-new/src/assets/examples/heroes/bootstrap-docs.png b/site-new/src/assets/examples/heroes/bootstrap-docs.png new file mode 100644 index 0000000000000000000000000000000000000000..471a9eddfe5766d09117d1fc17a7c877b2d81465 GIT binary patch literal 371399 zcmd>l^;=ur5^ivcOR);pB86hbDK4eBLuv5hl;Ez#rN!N)xRoNowYWoZg1b8eNp9M6 zzVC4Vfcw*356`ocwP)s?nKd(O?b#$$Sy37n>j@SB0Kk=bFR6;SfB*nYS48^LiNwbf77@Qtpe*YQ~OG-+XUr@@+$A1fjot&O?^YF$erA5Uik&u$!-rd3B@SN|3 z`v<3+TRXeEN8LSx*U%dtUcTD8mi~d!!s3dyj_#4siN>aO=nWJGgTdjj>uc!m$(g(R z`_r?Fi_5E(m5r;b>x+x4&fK)Ki%W!m+*GTQor)oCvB$r|;p+ikbZW!Qo2#>?h8lO* zmrnP#E)Y`E1N$fYj^dnt6-JG;{FqysKRVdI*j_)|+dbP{Ke@cP+1@^#pE$X{hn<~V zUtQe7VesSQ%Zsy{qr;1}m80v+Tj<3N3=V@{-CkYZ%#55~oFT~WFE4JP=XaME_fW)# z3mEkL=JN9P;{5jVg43=;^6l1;H+ipzIXuU`xB;|0N*}_$2Gy8dcgr6aDG7% zo?sZL06wt>zr2JQWWuDPV2T<#GRj)lR|s8T%kyV7>r)wv{o2DtFZ+_Jza8W`?<5;; zMJR0eh%PuXLOS!0&537i2$r1*w;Tu$-3bpOr#lv>&%B7vyl|mDL{Lw{Yj0Ah8}79m z@wF4-<;^9G*%S7K_{N3w3PiBwi+AIUcNIW->xX+AfPWi6eCyA?>0h5}VfQPT_%3p| zv!Jju81F8G><$-n550wl5!{E7-rEsh+T&h+BY}M*gxy^1men-d;9YFZ-X5*robB9N z;htL)U06AJ?Z+gZwsc(1Y#t}H4)MhA2!GvEjN3Q=4&A7Q^@_mT(annjWm9d%ldN)j zehS8$@g!UE#2B$f>N9=?5@4tC3jaVv%YTNImDT>0oFrngVUDVbY5;QM=+=Mk{eN|h zHzr4ok!n%}pyhkZNQ$YuBJIylyQhj0_>Scj0^YjAd%hV;-1;%ginKOFpx-*HkE?6& z9&9kl#JrRdn9Z}^Wn!5;IPgAt`Ddb_ajC*OT~@E6rh; ze=7|x>*M3Ye|locPxTxwJtBSPc{1%yFqO>06P-62@+4b#N>*9a;@18cAW}orlpsrxb*3Y3e${)cK5;b^J=EF5L zlQ*&ZGq;pb17&>n`h^!ewUD+2g~ErJ-p&rMZAG7nPGc9Nxg*9+qT8PfVzjo#c}dVz zObwM(AVk#dnYA}@SU9v3VFA;dP+(n!*04ZwT&2Jm^8+XMGnJ0dM7X? zgofK}Exc-DgZn=s?cxtUUiQ=Qi4+-j5mXNWS26z*Ad#j1iVe3M#_0=Vhwq_^z##m z3x8cZfPyQ4JuOg~ek4k#fsr!X?glCE^fd6nnwD6^hm)j)48(xZ`^@|V5uRFo!)Xb# z`8r>!6ZPs#>v^K?*{I?odZ%qc)qSQ>VBPyda zzWJnST67p4k?0;pp*7`nZ>CMje+JB)dpE^(W|cyZ?Pdnge1QYIx%F(GC=2hRebU-- zJJGYGg^xcnGoyz&su57Wm%x+i`e$5=7u^;NWN_TUXS0KYuTJF_zN7dL`ZWH~r2nAlP9H`nEy_NYU2rdHd>+Bo|DR6HKH$JPAvQrju zi;I_d^_I~pc-U@eAv;=S)naeOwzI93&az1`7 zqjmDn(gemAX27wg__->U$e<>PC*i76jJEQ==jYSQKtopgmPW;KI z!rpH;@4h_&alj!S5fyBA=~uD%yC;24MQc+=tG8(~fVSsiAwEz?=Db<;l-p7)c4BdJ zB`Otd4933sv7BTK^WM}Uw6dk>TH#s?=9Bct4HG*`cV{dkE=LuFUKhv5Ur(0lP?7Lk zBj8yXd!%H$oi}G^N@1&0?za=qP8%Gy^r>90r+53zKd(+<)b49Xz(tOaUE0D)yc;K2 zWC-PE8rj25HKO*rpE|y(5(uG`&J7Su#^A5aFn=n-u$i!pX=2kkLT|mJs1^lwkPlan z*=}+gadZ`K5{dtV{+bGo4aj=TOHv+oVfMTkE^cQv!SB5lfwXLP;rg9f&4~l+I&B4x zFL`;E zQ4+mHR+=-1>?0mCM+qUY+*}q`)pa*kR^oH!QqI=w!Ye|63r7nl(-@TATpHuQ7d^3u zM<@_$hH$*iutVh_PXVwapG9r7hXG+>vMqmTPnmO9H8V*2h%|-gaZUX|nl;N@?NOk) zf5OEjXao#u=uMS%^~tHAq|DfWccWnldS-v#C{xX7H9FF{9oMX7U*x5JZ|#CBI>?SZ z=d~yHg4D=cIy5}2i&@XgWB3YAZDyj7@JRHllfK}5IRh7`6|6MbZVOG&L(E(~A_7CM z!F^S2WP&#>9#+d zf6nL#FJUIKmOiI)SyF9r7@rtw?&Ng0H-dN7taUcu4bpNc6u5iO^yqFvs%pYw_A-Y8 z$sj|)X9KlOFibKS&fTk1s(hs)(8<ow0tN7F)^?OY ztZ;zkC-56?U0Y!eREAtP-Ykc&#{vmQ1o=G1AH~(2MD(P@&a2R zn{u?tYIraPrT2M|%KXlFIl64Q4?S7SKB*eN78u4)6e{Wc#8uTP+>=zB)$+vPJ|?G# z+l9&ke0Kx}s?ojn{OoymZNf>Jw4y_pdRta8YQrKe7_ATIpd*5s08Q@dYe$eyS}}P(?xPd9oV6la8#YTWmaD9<_TsTXuQkr?%VP^X6STt~tqbEBxBT z-;&=o($4VkTxw#e{Nt0%0rM_3c^Y|%h97JN>fgFbJ6pNh>e-gEF0gjpRc&MO1}{xN9LDYYoA1jr^z8@(+vSr(_7nh65G`?Vt`TLok$ zuFBH_uNLLM-A`Jb=-xV+)}xeqQMFJIM((gX5lZ_LIJkD_-hWd{)*pzywVNQlRsVdY zqpE&>bvMDnFDbLF=+sZN5x|pg-7cE@n_~T%Sqm%pYNec5u^PkrbM3OSMcOA{zA$BS zHRhC@e#ay?hQ}(>b3g4+G7_?wnB$7 z>f9TZY&lP%zHx&+vd*G4bX=oJ`_tO(o{;qp%70Z=r^Fya*p=Q9yRRwU;&zSil{Csg z$r9OqbOxC^8uSv$ZHT{qnp2-k_$gbwGP@X0#0NGN?&mo;>ju4$d<@U+^h}C!OFJqk z9l7->(y6nZpUOyd#s7lwE|gHI?pU5uQV~0n+mhH5<@GKP;Ps$L5YdK~;m8LDPPp)I zF4eN`W%DDP&;8D(dl>ue>>}i%WWXo+Y3R=kMo}4q2%T$>uJnD? zs^F>=2by*7lS~qxwUL%#j^Z%P2bAmhtZ3_0)LVvOM9j;s&;KV^o-IUPSNn(!t-(5< zUBo?YA1V19t!fj$qV(!OlY+3^A=bGBXVWp?ALB5cl>7Ux?HyDuQb=v^#iUn+JTb8| zFpYF;a$;)hGSGgdV+>>wxg_nnkSpr(^3U3xXusS=y;`WRx09dZ`H-F7&>!t?TrHm$ zRtyX`{b|MMk-hZ>>T)b#Z!jl0V}w_xk22#5E|eF(twmCI_339@XA&ZJSBLDn{sJ2& zLh1LVZt;;n{z9z|N$ys&74y+YYp}l$G&?PyPuo-gr}l#XvtadnV3|oyzHqk%ZT3kP z1_6Fo<${mjPwZ6NS1Q-jmu==;`As>oPwMb7S?aA}Yusy-d>wE^z59 zd#K!p78`N*V_Tj16x)w!DJ{Z#QV8?*5}vmTjcyvEE7Oy*3dUkwz1tJX?~oKE~M*@ zTLY`E!ZMx)-&MOB3vazzBdMeL`H@jRsjN`K*~&gH^*dzs`Ohuc+vGJ1aN;Frk0~vY z)42C$lG`|cO7MxCT6wX%ZzjWjRbpbINW&1v8}DA>6K1>A-Fylb0T%e2<(1IHPaIAtc6CO!N~|6{_OkTjCk z&YA=z8-vEf6Un)!KZ5NIT~(Psn2;O&{`E?5)%wHw{gD_O?3SK1n>IQ4JraR*Bi*#V zD?M9Xv&EtVHb=p3!r$sGD5x;Fw)H)}kBD$7nY~us&dJI-NuYwhi8S3cJO1iSMD9I% zWzqCr@WZg3rUHZNly!)xGif)^Ye8Y4H z`p|l`yWi}=7eyCqA-8O?*km9erR=Yq7}FvjC192EzbH5*6&n}r7L2LdvOju14qkTVvbo=*U_ z4<2l*MA<;eyIh(_+F`wcJnUFa6~lv+4YW>QP|I|*1dPDy2Bd2iC^ z_N;f|nKSU!sZOs&xlkJIgbu8Q3*xaZig$5FN6@Bm4Yq6I(nKmhkM_xJ?_~%~ zwFhN|oRPIiEkTeA4XyOWa4Q`g=crL!A!8X&+PKj}>1tlZB=3^4iaE>uNyBoDr2~FK zX?`JaMGUm|Km;sFJI0u57S`I>rHAzvv0~Yeg4{QJ5|=(+X(b77gQxBx{3EFsK&ovw zi~fQldzXs~pvVNM3uNWcZ5;|B3LOP?*`U`AJQsLGmNB%pOX?L^Lh?)SN4M`2vf;Kc z5TmOQUsFy>T*2HApO5VY2R2)mV2G9Pi~a%KHZd!dtStrU8{q;h+r=YLmRT4^A4Bxi z@}{e;*MvU}y25pJpjvhNf+0J`k7t|DI$$eMvKiL3tc(vo2VCe;Q*aIv5L-dA&Yt4* zL4s>(z!%PFn?EY)gWLSAyoX@IN-G*qt(fr_^-x9fV41rRJwIN|G|EVGPepwR^5WVabzHj0) z4)k@TjdVoKU!Ra`fn)G3dqI`=IaQr^8r^=HtKJkxWyy1-B`P14l319_Ot~$a6v@l+ z>D=`iPIrn8z4q4aoJ-zZ#ReE5miX;Y;Oik3U;JGxvWzZ&ZG}y%Zz$HsukI_dS>-rjtFnw(Ct0Gm^EANp16nF-MW^qPRd@$L-`?e2 zT(!bZ2S$#j%Pf9_&bd2H8gyX_Pw3P-Ko_?nhvRJy{DCLzqo<)T8oNAFrWjJ8PH0&dlwV8=frF zO4phFHB-eOAak>`#iWxs;Me*uiSA=tTDWCBOcB|*r{$>Z#Qem#J`bS^Kd4)75y-?Q$M0Qj?% z{Gv6ZnOSa=Gsnmy4G>ZrJX{BRu|ZC4fxcsr?MTsHQF+fEEfHLH z`}SwgT0yM`I{+}Mh|scq?F7F)vOgrdXnG}>s^+6agnQaTe+qY_@fj@CMeyiE&4WKP zoJW(Zv|nI9N7!qf%Pcs2I-blTt;);C^)CAUDcZCI62N@P4dKnq<*V4;4NY}*js?ia z5f8SG3>`};-UGRqZo9Oe_|mHH9GluqEDmma?v_0lQWhWiU)&SN1NMry& zRTjz)XuB&ooKp6BW5}UsRqUcP>CWovr?eP5I>tdYuGylWBUwOSc64+5Cm;}BL0p!& zyqj*bDxcL@opeTqU1?@CZz~nuFsQ~c(DpyCXl82u5gD@?+Z2?THxlULxObx`4TIfw z{$>3mVdUy+l5PINKcW)v=x~a_NwXqvkF_UJ<+0H&D9B|Po2s=X%CRxmuJRX=(0*(Kd;SZJm^E=uWAK zlm{beoZMdm(RPg;&_#Lv-2ltg57NgPy%G!ptZc$kAWEx5N}>2MJDp41Ov>e|>By1) zc;}C@!KaOTWG-Our|Nd0D*`OpbcHly`Y86hpe~Jf)?Inh($Z8lG2n4Gh&0nbPL1pl z89OS}?+$Zuv9hI-3tz-8dwx~BOm@kTC&1sm-S^8fmTT&N-VlVXc>CO|GI%=d zYpQDx2-te;X_YC0i4Gg?+lRegRzC7aBER6_eJ>=bNC0WG?vf<`(s5cfM!pJr?8)%w7xd)3ws=`kk&aJ=1)pAU?5F!gf1E^XBp z!~g)6**-L({=NKtpNCwJ1^`fl5i-_E5vzcxRRB>C5&+Q4f|&Yq@9$I;5b@0(`@d8F zlK-9hANju${*wPI;V=2W68@6^nOfGGoGh1Fo7^uJphbK&a4qKY){sPCw~g+r7Vq*z zXaTie9nk(k4a$>Mc-~VE8U+7=z>!Z^J>Z7%{rRk3bV?}_u#huP6;ZHcFSy@`31D|o zC}wz*XSKTIyO1N4*2#32F=<~TR80slSX4cw75Ot8WWrb}xXS`CxLMcaUndP#Hm?zo z1o(!=0ym<7IvvGLU{(bA+~1qi%Aac*-T{1N{@$!+6R)4F{RRN2(S!SGz}p={319@K ziG9g4`*2`gIKqMX3ZQri&{$xjBSMDeI;lN&y#^k_t2AKrwmBArPX`kg#6gA)e+CbIJ-W$qI>u@tDEu6fe!aP(>PN&(mqixHrT5qR#0$c%MfRC0{<-k)<@1aPX*TymX`nNzlGCr~%g z>5zNP=VT+T@hWhFZqNx445(rh0@TIK`ubPZ3}Yb@d>BXOn;9`DfE*wK!`5z9HTYCy zQCKX1H-s9~j~bIkCFgGC;QfcC*<=w9QNW(F;{VewB>^CA*71dz2Xqi zqm^pVx4_KT#)EPR^y(b%Af6s*%AD=)uDYce29I?pr8~QV!ffeEy(N34WRY547Mhg` z*m$EM9FQ5p$arws9iOK8g^{lH_?@JG8+GufJ2y>_Cn9omDtk~zS;_*7{jC8f-p0T1S*M54V(Sx0#VclVwjvhKFE{!%50B+u{Nxz2Zvi3rT=7@) z?uV94n@VdM3`_sX=Y+WR(!?EYr!~H!#2Qd?oOXRpaP1ODGGqwxQbf#A?i$JuF?zEb z0z#A^iEYg%hATgh-6dO8p&=j+0fo``DFzTM{f}VPL>Vrk#Ni4AVq0y@Z#B57?zxSN zT=M$ogKuZWE_jJ)di#UO=9evB*&wgC0dnM~DemNM&ml(6j16=lpuXmS9w%nuNxnNI z#{p6F=0l4Emd|_7-#Lb#NIprbcma9SR6rc9C-}!C@xEw5_2Q%NNQ!HWCg7Z5^OBj2 zel3)O(1n>zIr>l9hT=Qzthiuw&yL#9%8AoujX2oTq^xa2R8oIjNyGBHto0M?g%Y=7 ziPK(z)sE(yHiMV4FuA>i?WyT#5S2V$dRTQL_J69>&M&DXLJW(BY3VEo^0Kg6g7&1)U~JM*`+Q zX#5kW${HA-DOjGhoq$Mnr+qNC zQ%R4Gof3~X{F|3yL*AfBzXmcuAL{?*c;Lg$GbC!kuO3TySV^NBQzG}pBMlZ`+rRXV zNE<1ICXN)6?0$P^@cCJYH>YzR$YM(zl3pI(PAAKHO5MRujd~W1o{qo!rB~|k*TzTC zA_e>dcr?Okw?35&cd~&MzZcoRUiA4D7e2@3@A|oSsS)E@Cnh@yk>!_fMttm%loS=` z>kyCZt!(m>WzIz8R;m=Gl+O?@Xfo-4vyb&ey_^A~AmlEl)J?)EcZCb`ThItM&lF?r z_b#fTfQYC+KE(yr4rx_M0}B6s|K~8d1GM7V0Z`zNl5hCqEYGeu8%0p6Hu@o?K*1K&0#g%6 zEy~3)PH6KLzD$8A635Hx6aZ(`m`Fx)kA+B7msehX%`*_iA&~| zY5H8aUH4*KP+zBx!T*-VlF4?rERm4%c}5tNk_klGTys7H$)f!*qqtM@Exf-1s(SN?-tVr_55u z0qN>v?FwiAV(sV4p`&AEaIH(;FjKddF&{w9;g)~$MA^#p{0O`cqa|`_$s0c4NTQWk4sR#aN)XBIG|2J3WVN5O zl$LbXhgQ_K4?ZCb)j8I~m%Q{y>fSmD1F+SP- zM3Ix>qN-G~E zC39s&83T+cD9*cf;V`zm#;5-cwWj~lsHC_B7@` z7jS>=GH>Pmbue}U<=etjzAxE0)ds!S({f+~UODA4hRZA#sxO1jwPvdNO|?jhcQtof zE~|>-b@^BFFF*9>0CRvH7q0M$VEi7Z5?}V*)y@OXuevPbET{cv41<@G8x2y*99N(C zAved?qQ{VzI!}s~NH>UNy)rIOW zOJu;bX+ag^(pppWFJWQ;U#~;Zhs%ghu71;FWlVf`qa<=;==|w(lZ@Cu+{d3&B_H7| zDB?L~0pAJ-JWb$gLDq6!a9x;3UR<}*mHSgYS1u{I1mB^Z4IDVUo+!Io+Y<8OgY<9M z2pa1s)`WphZccY^D>VWL@8Y#`souevhVET$`QWDF?2=(!1;xST@pJjC83p2PCU|RU zEBII3$^~rI45xv~j8BtD^6R!sJZ%lx#p7xPmJ5!`$DzR=f>*-! z>Y7JqmZ$eLdr&6hierA>T>KLfvaR*e*)Qyoia|pBk1FvNqY!5wOq(>xxJ6uPhXT|B zl?c3X7Fbj;+V;2rUD!qnYnl`1r|&r4UmUTwY+Ra5PUaF06tvgUxv|6fR)UUbj7iiq zz?Tfulq;rHvw$CE5HSx#l|VS4WP$~KZArfni2Ho$DLE8tDS{_I4CLh>W!SgsB=8#G z&0286beVbL2?^WK-xQ)VP(KO%LNrWbMIvHT^Z4)v^1eUwSHX=Wy3VaVzHSiV_4IXv z))37Gy?jo~F5s=^y${&3uvjlnW7HwLwsK+9b~OKU(qw}P9zM=*Bw{6b#fd)|@Wjmp z9`R1Ttr)1JD6T~HGSW`Vs~F?i(cBOVM8E4gV%tX2jS zMYqDLfS>jE6(W(@7QZfm242l~HZfJbeSK0J)hKDO+1)!W-h$W~wiAv?c1XMZ7TLxQ zeOkYR>>4H`=auhwrbr>XNY{#;t?iPpdp_&cC_{IYc-UJRyUZt8G+*a46vty-I@;{J z;eEPPm&z_Uf2n+`VSu-Iy9e#A{{`!*k1={~pk?H~tA(ebk!(OoG9%!~f+kz5?p~%> z477mZg|4pXGhFt4ik;xm<3I^B4^mr_q0|bt|%5x z+dHkig#I2oR4H~Z&y=7eO5h`rxA@7n`vG}!CQ)X)RX`D2Z*GPU+1pb;rptUf170aGH|WO9=xSgsgjKRsuc z1a0!>Tu7K)l|Fmy`fiti=9v6>eBcW`*kV~RFr(0AQ1p9da$2n&C(2e{Ms2}*35Ywk zO`n3Hfey3dsWkC(k0HBvYzMiBEPnkWfw&>XO1qpjtk>3ZYAyN-)Xpr@Sc6ixqF!9f z7)+op+>#t|cnWeV#YrXGo60sis6)4`8n}2gI9=Qkte*&almq-paHsU5%gR+DtN{05 zX$9>F(qFM4Uic`1m6@2Qp=&3hMd)Rk52vBh&dCuhI!2_Fz5iv79@?3q)y4XX&NhK&(9a9Vj`mD9kM4cT`fP7ohKnJ#8V$;G*7+*iCQ z_xqoY%ripS6uVXhK#B^6#+?(torFrBnZfIe`aX-Nyqvb6-5ti2vz>%5$%w-+K>!$c z$>e0a+dj`Dh5ZN4-lYxS=5u`PcCPgH1Cqwrg7H}0e5+Sbh6$F7lpWF@6^)KMG^+Vy zuYfhyJ*`v_L@*X)eMW!PJo_1RJzI7_CjY0Xim{Ed(2H;SD9vaFXf$YKLfon9-f0)j zIhMFNV>4~#lQ+HbxZNk6lJ$=ajrmvtOfXOK2`H2l0*}g#m!bA#Ku)oP8V+a6ehW5E z{;}~3qaG7P^#B6vVJP6y6GGAGe41{}fbQI z*c(ZWTE;dbT9X?BoC<~ay45Hy0k%Y1!&*w$34vPjU{H(I;-71b)D1!m-NxqSYb zJ6KYpeEkIut@xg~l_R#to0$pU$Y-6eWx$p$RP*tVn5}~Q-?US&8j2Cm=I%_DMndw& zS+-MKB9!oW5q5k7CI6{+ekFKjh@-q10Z#N6Wt;7R+pk~pKDZp`tN{j2Hn{Xs+3k5v zh!ZoH0zZmhvII=afUi?a)ekJcq|SELPIxauKG)%V1Jy7SPqA8|9k%$zKSD!16}+Bg ziAW8qwe!8$Ax-o-je;JLJK`SeG<3bd)Uh8znH#g21e%aTM3m?F-_Ge(7jQcMzPN>z{`{ckABoRYHyTpa7wCv zWp$E_2(3(hly5;L<%{yJ#zZlx%zx@PCKDkVri2**y)6~!)dytvgX^z9DejV6dd%`M ziz|lTtrL)DL4OYaG^J47c--`{ACZ?=m!Isnu5N zWCZW6*0WY`Fl%IsEcn9@KEa~h;2_dGpv;IroxT&Z3z=2iSxk2KJwCmbBG)aAK+F4B zkfF5Dum}j!HO`V*c$Q}(-5Kgw^7nA^g&0Sx?N|7W&Q*Gqcm~p37o9JF-0EFVqR|hU zo!1huuUN^@BV1D)nYG3ZND4=ZX9vCmJ+l>oCfqI_j`nli%%-Aa3HtG8fwPrf?I)@qm?A$DTYDTpTaj=e*DK{6DLPq-lRgIQbU+Z zTwxUWUHj~wHDSt*Ua_Oc_Gs6Am$<-2JS&Z{;XsbIT zM1TySxuaQV17GICRyef#VUXDDA{S2>=*5N-Den@CgZe>89gVnfAoNL+YL?gwW5g;F z>l70^B|DbDNOtPybN_QLv4pE%5Y$wh%`0|%{YGzz_BVNn7soK!?^Zka+QBHNiR$|9 zO-Z9;l16rW9VPidm&T#X<=*l*UQC=*+%Ha7P{(k5vgEm;^b!cGDSK z*(A%Sh4auk@%BY;b1Fy!X8*@XGp?(JyS%JZEGjKZk|w`NYNN)Igb1PNR|h23w)aF5 z)*h;hB@+xZI+W*>)4Y0bQ3g9?Y=3`2^kM)6=(MHbcj$FYg=!?_j}KBPPiN&T2&eX@ zm~7wL!?erBzdcij&aeFkJq)MEu|(>Arh5IcY@J{!uwxpjcz2^Udf+J{Ymux0^r&?L zOp+59^yno7nqP#?C$?Dc#wZtk^Flz)^f^Fro$tWAuNrcwG-p2hkig0{c0f@3cn%g` zFxQKom`>Y4og0o;_D&E6{MamtRS--LI}6rlK=NJqh-4o=99BQ+cr*eV!mfA1ZAr(3 z-+Nc=TvbIP{b{_;9GiEzbe@8b*yb<{^JN;)?ZZ#bj?73zZtTck0(#3dsKMmHsd~Yg z!Vu_V@j9=q;e%uh>EUPrsgz(~mIDA25^vTv5>T0V#(sG5oF`m`5_&bV_a%7>Hq-u^M}w80jUAVZ!qnHhAyI=93HqTXFJ0e zsjx57gDi>*=OG6=Q(gU4lP7=-1!*#s-|iouJ9*u6D2zTM!m;VcqP&THguG!{*Q<}Fl{#pMEDPsNO@yAjey!fe@=!LA9|A=zB|3xOsGb$mC ze*739dL;dCgovDwoH(|pj8uE|KTJmAq8|%RmYuwtzc*&qQ)+^smn%A zi9j|Q{TD;Yvz>JY1#pWYYTU-9u>F8OC75xhQ{l`%XNO7~DeeJwIISxtW=3|lhuWBk zJ|s z#9UpET~MNsVr?I!7;;0_djmf|OX_^1Lg5Et9vzSK>$!sP$pF27z)SDw2Z3JUYmV&e z=U4cB#qtp6Ap$|$a3QLBj3J8CWY^FGox=NZk0f=~#hbV&#sFv!B(VWb6_~;b(d#Tz z$Zq_I|J8L`%ie3!a|HYB&2u$0GPTEj|CcayJ;o=#p1q2_)Y}hO$eOsMR0fAS>HUz3 zu~#3YI9e3$`DiqfAR1uw_F<)v64X7W=aP@D$#xgWi8*?}A%*<-a|^mJ5)r-s&O-z= zVidVk*ZE3wqcSP|{X@Rv}JShOh6#f_IUc1<&H#lvavGih8X3!0-yxUccR^ zphDmLTwn5sF8qOg321{M5m2xz5I>~fq`|thow&;~zme7iI6YXt985}NKQr^~MfLN@ zG~5R)Y?lOL&dO*`?P&6sw^t9$&~mnQLBZFN5!Nua0a!k)woKF^m?<7ve(1vP61M3N zN}-?S`@%g8RQU;ZwDgCub2H)RwnJ+{Bs>H47R`LXfaS|;V1Sjiqi9dQC z9V+ers|<%7J|g!`xvO(QlIeV?tYwy8s>jFxhAjtya&z(nhfGsVpek^5K>)^WFCV6u zFDoNaQdZWJkRtNphejCFq1Z{sD&76;qoxVfUw;sr%+x7>tSo9Ki@KDz{tpnyP=9bT zA*C44i0V4oJ@j~vedk*hvUmbEg?C({?GGej`+CNP(H0|>r)&ncEVuqsL*SqE@$7Xm z#2G^_Q-q3CXlanzPxAFY-;C|q(zz`}cQHXrGADm|IQH1%$Xc43x@%fj=(4D~CU0Bfb0{ zx6DY^rUG!O!@ZVf{SOPQtf`7`_G@}&W#;!vo`jj#$X1i3-;7Yfl~ZTQXJv4>#1TW{ zK<>atur)B!Nk0)4-OLw$Cj=)>?EFNxOcCW{@?U7PJ!3-)l9%7kLF8WQgP>?)Q?3l| zS@|xE=Ga9eQ*^=myCW}=dL7ELDeux3x1bz;LcaE0~ClKbZ2T^lU%n%9B}}Hc{``+CGwZ?K(Z8xPx~nE=`O5MphEvx*^Tg~w73ll5`7O`u z;C5i+bjHLw+y-Z|^ zWiiqWSIhVYx#M28EfBN9Q)@Lx$W$%;4d{q&KT`G)d~dmWGJrR7U%|1)%< z9?|!3Ux*f?5ztb*x(3A%W5L+e9teh?Zt06}x7| zuVrPG)CiqAXohy-<<}NFso!D2Jj9h$cRSPYnfpFDD!9v_2tvf291Feni=rHVH_uzb z_E7z6dtIk@Ebh$ix-}LSk03cWf(V5FLQ$H0vxmqLMr(qb3wU$Ji~C54LX;MMy&hEQ zM5X_Qe98_PBJaYhdZ8}y`2?fsRhmp3_4;k*AzXTmIZwxM%Cn^}R%FD(9r4KXTl&zt z`FZp2!BIUgOx98+t$m^+}Fn@>9nT>r7l?bMznuT)k1mwMKaG4VV>QFbI0_oM#{ z`$}cbPktsyMV(KH8KyNqhU_ZynH0W#aY@m5y;`8}(qOMM2Q8|@|gKP%pl z#nUzqvUi1jzL#`9{bBp)&^#0)kC3uuzQunZ(*vo8J7u%cn*nTovwJU*<9h}hi8$i& zj<>4sMgX_2^~GMTV@>ydr=)Z{UzWfaIUXntyZRD{HK23N`~$y4&u;0zD~LcfW6kT; z`;KY++DJ;>c!EfZvAU35;smqqSjd@PY~}p7#YF$>8RI>Xt@f+PY;T{~khANIr#>rp zvcm9n#y-RkbfwKRKPJoB&$Jx-yH9o4g9N0irfhr4cYy1tBzveBS*s}x{ zC6HCpj?$w|63&{Y1}Jw__y3Y-5g+rN+0w-%2Ra19)G0|TrCVDA13n}r4^Txel@ldd zA+TDxs0wg@3JbHlir)9W#J)lC9{U-x>zq1(5m0zsEQrh~TCtViblrc)>)P>j> zF*Z^^j;GBjG%6$nZJ&!)KYdb}J22G!?(q|ew`I`w`;jfgKiY_z@^oJht-w8N=w6ohyE4Q#)L{{l>KqrHhjKLYXARm^_Fo_cI_9af&v24B@z;X zbV*4JDV@?O4bt5+D%~L6B_R!hG(&etcc=7_15BKG-v4=g-*Y~}k1zMW_O;f!)?PF0 znuQci#`T7CTorGwTm`ME$o=H?NnJn0B1Q6QU7C2puO_4 zk|c-2)Q3v$zwqQQNUC&TVvfBwG|96|~s;yG#e}9@PsuR#n zstpc{;u)*MVtRY1PO+WiRa;%o+KkUr7n%3oM{idNEj4}i)!FmH6Y8eXLYnG*5z$M; z;f!5C1%^`>uOfSccbvF)QaO2UyCZJY1fJ#|ULoMCe zhS`j%#)ygrDFW?3O9PAtY8(1LIWPRiyNu-^M>ABMJc za_~7L%OQUS1WlGuK4eK9$EcjObpd+2CHAVMK=%?pR}urYwL61)OEM`^K$>bx7-IYl!yeDU>2(cf)BUP;&72{z{#&K zCmf#~eU(VXFDrUGJ!k{(`>#r~XbcbITCk0sl$vof&CyE}&VQ`iwTL?SJ{fIR;im>V z>G5@8Ne<)um{fKv4~8%XXY}`##`W z^9tvZ>8b$H2;)u7G;tkJ)8(M*;bns{>!p}R{1xg{dRg;Cg2g!kViGpA#o-02RE+Nr zcQRhrbnad(xb78sjn%$Sqy<8Ym{9*8>i2EHOzjK+gj|opuhSuMcgY`}d`H3M)e|j7 zN=d2ruta7XKN)n$idPEejT8tQ+$PuGc+r2vyS{ehXPC?|B^y<>OTP7&im!*AE}06Z zzPCF3JSf)eM}AtQDcA-_Jy%_EdAfYe4}rR)m~PRr0>~> zHCc420wVl7jXRW*y3r?|veKEqRKEPFC*$+BkZ@o!=*wZ!3-p4n@^y%idu|&#ld3c> z5*INBUFg!m9p}!W1x!3z9FtOyii`;ODZXo<*p~N?4yZ-PGj-Kpd?t7?1tr?Z9p)<2 zRCiV!@_$DY?$eX!q5AJrk)%Ee# zIm+_vWrh!}*q)sN-VGM^{|qpv*d!v%0*n0=FZv@Zirg78l)8cpMp67+R3nG|ytA5B zd*?3UH>=H)h1S?HUo;x|{$KXrmG8eEHo4J{d}hhY#!eg=&&?CH;FyY4GU~}_6si>P z=F`tv(Nid+lg?O171mW%?5KBEef9$D-FF0IQ-vG6KK{{_JC977Y3+ z&dNvW2*26~qL2;{k4DlviD)2$pia!#*VP;39Pb(l?c4>8wdb|#M;#>uHB|ns9kd(3 zWo2rt?2%H(lP_WX)Q!!Yu=b4Rl&OZHU8AI+6}WfbwY^iJ5!v;FC;#*OyV|H^uk%0n zO}TgZg=Wz?RJ3|m5S)x_QNUBVMX_%0T7pK4z>IBRYL$tU7hFFV#rZgV`Jgm(N&Jd! zs6j_mH^hLLBx)%1%GK! zoyt|@pvzL8e$1NGOcG3JX6+vw7Si(IBu)}KJm{A(+f9tr*}I17>w0Dui|82+r1z*M zsu0uvB=gG-_{u7M3Gjix6$=ElfUY4J_A=Y=X&P?U`jaPlke@RMakMwd=58{$h+6qwcC*X3m>*!daM08 zooM&5+050^?%>5fn#VTmxGgxelqP)4i67+fcN$CBfWvd-GG79t7RHua!mP?YTL=Tq<( zQ)`a$!>M13YvrE+wdlV}s}BA$2bA1qG{XN&zf?um?763)dsN=aF5>$$)&)y~SDAn&i?!X3=Ln~hs!+pjm@d*y&n9+UXX z=mm?`0&PB;n(m*QTx$1X?T=7I+)=mVeZmq9YyD6CD-<$ zaL&3NZyjZrQSNrAFkO7&X8-HW@H#R8rK{u9c;$IC{)o$)6DX(xoN8)4+i-9lI7y#7 zr&(_|_cejb>VJrC3^Vv1p3&=I-cc6vcI@2D6=uZNOUK_kU`DJFF;@0e#H?gGE`KzT z%ByR%cpoqpom9?SKWA(=`Jr8vagS6A=lj!e;Ag-cfj&`J7KpQhme@|xsMj5TR z{-PP5X7g8AdWd=?rA6SpCOskt1+hD5BU_gKBqwy63P%7z2-KLp4jTVC?zqrccVJ|# zUA8hO{I5}h&7Ny2R z{d2CnWh#D$4;Kl1v*PDxc|^ON>Sz}hO zL)RBX7&yakB)H_L)smM>3aQF%rR(+l8goH`eaCB^Fw5M z$44Vm>Ii+b_KX?pO`{&9b(k+)Z$b)*Q=WI`Jode=mF4I87<7QcS3+!KR+v1u)e6-D zE3ZTD^B*46)??2^5zLkYu%Nlj24^3MV(XIY5cAge%}b_`f4HC%1R&o#D?Y`uqD@>TjRZ3D|i*otY!k#S?e<(LA`K?8~zN`r8QVS!CLWoq-3i znX>Sqj5j4M+S>=HA>Ld|P6j)FvB=#1qhstrmD4$IcRN-`ICAA5sBI4<%ydqQcEA_- zUeOps_|9>{s>{bqWu0ZK%LO<%%#5^5#s3u&=Jo%C64V%~GBH1NI&VGLG8WI=af0|S z=)7XCA{&s`q?VraatEWI4YFg~i|x`T>7P86TVOZsoA(YhTX^NUH_?WGA@(0yufM1O zvtCT_fF1+~XMg~I$d|5dv7|NCY*QqK+XevKlQWmIvo)D_1C-Kg!e!Q$Q_`~#z zx^hT_8PaAm2dB&5>PZX-bJ7pF(lz-bi;lNGiH$pvbUyfP>1W%b-2|%x4}d_VMZoX* zZJTfWXxQhB<$L@FGVUgTn1wNRsovnbO8F@5-v--iJ}B^A=3NgYEY?F$7Cx9m`5;l8 zR-1b(o+h4mZ^5P;*2W}OKmgbOtS{Aykb_m$FWpQrI3gr0^X!l)w1)gk#8P;IAyhxv z^V1x`%jmlqcJFk9dvgnsXSz5VnO2=^T*n~<4{r;4zC2u+LK0L1J&{Xi6KUJG50K?x z$j|Z#XSCK2zpqC089MaAOvJ>`G!}K!2kukt6Of1h2;TX_pyfZ=$hvft-5;O;FkPDm zU$3-gGz2X5P;*Fn>DT=CSl^cP#+?2?(a0Q`;H8-8R+7A)yTH4#+^Jw76Qie;u-09m z)Kz0!NXB99&lxH{F2Gd5Cb*_1mgG=v=Vb3=8))Jx!{V(d+W_kJNh({m0nYX8W4+u& z{P)&7gdLfAblq+h$ZNl3YTPOeS(uB?-7H=+ez zd2K+fXz%BEs#K2XE6L|#_bh1ZD{Trj800iL28G7W1CWSqgj#gmgR2EBcI188oGj&dWt9~pj^ad75!dqEB>Je351aw~YyR8IZ|fj);AF9t zVg0D=ez!jGO{2CT!uV&0%wNSZsq!Q3dA*$!tsDIV7Uw62#mU-wnz5H%nadYt|WZ+Ai=-*{`$X3voM>%k24qNxf zB-_><_vC?mTzYovJ%|&6Oyv(UgmQZ4Z*?8_L za87?dwg0alR5J1=bR{HCE)FE!({BxH6_x@MFPq8O#Bfj-rr!$_i5|D>%s>SDh+FjS zk=-WqSWM2=j8ddtSd-2*mKEMzwgKc}X`d%=Rdret`=R~N5+2~Mg&o*^Cmr9d9jyAY z{n0`983<>8;Qo}*jI1w`EW!8{>D%vl3;^&D5`T@C%!zukPW*hLVj<>0_B`rvZm;*q zYgUc*-GtwV**db>JFEYu9P~v^4(6!nDPG%XWfBWVq~ux6;}46a2lds795>t%7m!;m z+sCt9ZLAp{>>Rn2Qqi2wgtCHH%O1xT&&6@!wM8KZtGzkX{iJ`0t4nh4AHe?Zdunmc zS%!m<+pEceTP#Q3DFI)P95vP~)yywEzwH7o;`UTteR#Kd$)Z6I0IOZ>$ZPv(2zeId zUJkqs-R(P%k{YF*&#b!SWw_U>w@+5%iu|kjXLVRwB<}@Lq_YmmH0;8apvD&Y7Hn1_ zU?|7bH9Yevqr&-0OTbV{DoBctN9B)Q^ldx6fXigG3Ukx69XSIzr6bwgcG3BI-w(n` z)i&nQF12lGtQg1#u}gEV)SlD*iKllu7H~94vAKDJXN}=vqrFcw^{qs613CPGK=9U3 z+;avpYhGoC1!ThM?)iu)$RO$vbtEZk)J~;Gr3#goMr3f<*S|qd^Aqy~Z52!D?=EIv zzK%F%$&}8yKau_t;8uc|^-I$b=I5VEjKMezUW&W9d?xAs0U7#=e&Jak>iU{ia9-Py zh`w_MT_Ig?=L;&Vkgv?SIooRBoY3n4=MDS~B5WlKBdQyUn&mmGJS&m$ks2u)^`P3GC;$%NvCjZ7$K^f|ao|6?>Pt znB}+4`MU%6(Dnk|!jrnknabT@pm_be3-SzUWQ9|Hru>vCN6R{*(ax+y2ANEj1{3iF}%sy)9EcTN12U+sTVHJ)u$s%8{q zr2|!~Vdwh#7q_W;mTv@}B{)8R7RBT|^#IHBtVLEtcK2X5CtHle3YMUtjjD*`XA24E zSJR7`{@&kZrNz+AWqMP&w{Q&hMS`y?g=6XuG4DKpppKn$XNovTzObHJ+o6mrFuXZr z-bVaRsE1(Faj6T#m4vG1YgR^AVL`yjllq9ymBGHn5TLV^VEfGc^x&QjK)4Tc>kXtrt$$FW( zy&+i!+038Ivv_+^nZP$W$$JVv`Lx&Q?SgejnU){n)#4A=Jp;VUbJd~SuBruV6V|1= zi|_4Uiz4UFKgCS?cv_q4f$4%R0wsegr|<29C11-p1la*o>P&Ax*g`A%V1fg#xL2^@3^(!AW|#Y7xPGK*ExWzH_g64vm3TBJ^*87~ zu1*WE6dF+nOi1HJjlWRvC zMin`KrV1EK5dRToEZH(yi*&F>04STh^wA|3Gq4R86V(IDpd_p zTZetLm#RH%5CHJvUa4cH8@zgvZXf{+@FmE;P4U;0TM1NhNTXD-u!tJcIFjn;BjUum zA<4tL2&1xM^k64mv;#OsJ5xfkj~zfobFrC~J8wXPcs$bUb0!4r6YJJYI~(IN(QR%@rZ_5s!Z*kf+_;kiy7IT*{} z6NHV|bEehpT0QcB6rOiAF|+rx_u;~$Hf7(r&&Va6JDF(*|%K^!S+Cv(sw5K>qm2+tpPIK{peF)wbt-~F}fz6jtHs3I3&TIAd^=HpjXtP0zWS^ z(-mGOIJ>9*<7143P1aNu)-ppu+7JX*T64jQGFbrL*S^8_zE~fK558ohx?;itCfWUi zx~`_&#JQ~KX<4pkGKM(p``?xreLp73l#g~_pB-BfRcGl>y3Tc6eQgvN)E~GtPU=XF zG*?y;t39B6@$BTK3D%+l?nCTzlhKrgcc9k<7^qm@fd;W&3V3rG8VE<77A_GCP9Yft zF}Mk#fzvzyubSw)pEHN1hrhMPj^OvgBgRrMOGAl{Y3lH9v3Oejf!tP6-*V69`|r?8 zQWDOce;m*(N&bm@{>rBv#%r&yo%(C+))U&z0)JKNW7Ey)5>9--^D_TT3lD775!FsEzd#0|ra z5O?yyUoP&3tV>(NlNK&7;eJBkkMmdIj|gvoeh*(xJuh)|OG?*%?U5O4BxIJczpSVN zF#N^JdSTL-tV-mYvhegU*(O7_J?TyBQqolXhEZ%h&kP4QEo=SNf^%|1v7v(Z7;dnJ zSr-D_IGwN}rkU;f$l4#Cw&q9A;17TH@Go3@{@`Mo4`W3_V*cb!vOfyiQvixEt+3+E z%!gH_e;Vudb@Zt?i}!Vb+xt+9%>~)k#WQiOWexvI6$2ovzXE7L(jga}OcP4Zljy5# z`>6#gh9im^3kIIXMXO7nb~DNyK{*h*1s7(xL2=NET`s*HE* zhg@$QlctY>YYSYBrsH>>jze~!&ku>jMzYb|L+sc|2G0``FBcF$IxtgPWb+IQH$Syx zR);VUG#MP2aSKIYmdJm4EYu%WIcq4PlXh|7#o#w`SYv5Rv3}1J~6!tsakKlomzj6ZglYQ&(hyDwf`zYmaQJu zixbhF<5-c}aXhuXAI<(yQ9*%`z5s3Feun`##h@h%W2#7%q~*Pzc^bt*Vqy}*i#JU! z^h;v6zmFdmVlq4MwCNz$IK^o7F1hJC?R(F5tJ>+xGh*>9g=R_f@Ye!voWPRvohsS} z!--aL;`2~*A?K{(}30h+N-we zQRW_XaF+B!5%24;9kd*4Tu9oN4h{Ed;ROroZ4}Yp%xuVBkAKn<{XKrD_$cu8t# z9$3U&L9rLfO-p$zHq43YT#91T%yf-ZTpYyjl<44d;c+}sJb_n4z4N5B(fBH;^`~Ls zmi+-Kq_vPoVH^^^fQjgg#qn6D0koPVqXJ8db^-dA#?$*|DU)Jg!_Wtz7 zy<(#GjP5Nh4j#s=Y}D^Pu;CDX{j8O6Po`6aE_0Y)8Eo(mQB1@c!@7dgWAb$bM8R}D zj695^%?wRE$?zo%6%MuJBFpDP&!x^Y|Gj-Gw$}};S#*2&vO)BQL(3=9^gStIPP-_jEPe50m zl(jufLw(gbxEOa}=n=ZRSv^k|%)oy2MKwUsUy-KD@DIYU$GsElSvV(x#&jLr0j`AQ z^}gEmQw(~Wc_gjU6q-Nsqgl&uPEH(Ryi0bz7pHo2-|-Ijy!b~cDQnUANdv8 zA=~u(@=h&aYkS#V;)Qip-S*DdW9+K$AE70<#fef6s>+Ku%U zULBzoJ29`8zA~wj3eOf%^Rb08Z3=Bg9U}o<>e@h(*mO|?aUHZ%!aT>|qZ`xH$1gq$ zEU=9O=8A4;<7mZ!E%e{sKioH4bS~JWmvZXW1QLkG-50BsS|uA3}RBAZYJ z`-nq6Soyv*I-8$jZ^#k|;d{D~qTiHTyY4q%I2_>4bRprzTa5ci13hb`)u5m;_%q$7 zr}~1&G=#=kwJ!AXLyHQlXS=#eTFCq{_>fvhzyfnG=7K2q* z5?#``v5f-66r<7>+y-%&=%us6v zMv^a=t$`L<)Us6h(y~-ZA{zIZXGHb5ocCJC?w=|o`w@#E~LVYh#3e4jbmD!@AB2EyE3GE)8A;!U&F6Q(ybhO74y#V;bx zI2$R}p&L6@Y9yrF<&ROweGUX98B$MxJew4quKoX~Sk)s2h+o06)+W+hHJ#rQ>gZ11 zCq+Ko#X4;K^K<&Un*kK9QX3iF^2>m`wyog(#ehd)qw;U0@KZhzxpA+V zMm>`WB>%)BKX_0B(h(!`logK69@Ou9irXIw^U)25KtZ%?yK=bmY@A(HKCSBJRM65) z2Q3_ROl&fvN91qxBVW)2`lhINYHy2L;J&!xNlFTXC``g~Pwu}H&ip};0G)sE-XsVy z(vqf@ZatOT3ZbU{tmBJ2ZOhrgnb$5MCk-eK_NPYu@@;OSdEe0v2X>p2+3aTdsxI5-XEYb9c#}#n z8M;BaZ(Su;2wBF9ttoSK4IcH*i{7+4p?Ch6HRp@TC5T?ZzLX71DAM0&!1RNaG2+LDLFyZ&T%YI^i|+W?POQZk*)z`T4~2~;_uu6%AFkh!7#biWFp)v$H%s3T za_!=Nz<}28*X|v@vN1qsi+2n2UC043vZpt<0ywJ_F|kDDT^y83m`FFF#p*z0}N5GcQi5{q8=to(8T=TaW`8hElQ8rw3YCTR1|-llRHHJDp>z%p`4V=&{OGL z-T0N;fiEwu35@iyk~4~xV|lkYm~zbiVnP3KXy&Rs^ff(5CU>f&g0n;;N#o+ z*tmfwEdn+AdcF0}QpE1SM^ z#zzm3y>(#j?|YBc(;9%q17-U45id%qIi*iPDd1D5=}Ioir%; zxn_*^z#cahbIe1Pl^uXveSkax7VGWglzcS2w|Wc0O-FLH;*3A0c_X1V{481c>mTNh z)POgQ;wGL5e1KUt@x}>pYsbWz-f1b-<-b$+4~)C?DpM?beW5jZ4z%?W=klP0-eu)D7aix)|3HDMe0ZDnccVH%v%J3!;i6oRcElK{1W zphq*t{6LNt-%GG%?}x)m9V56IQNX4hsMjxcamsR4v)kJ!W?`i@ND(6qCEeHG_E z(&k|M!3?l3m|}=(v5C(><9y0Bc*BHtLauS7IUCt4VyLS9BhuQ&Vi); mz7o9a+Z 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%0A?Dj(?9~kC2)|JI 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 iVF`)8~d|zIR25k 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 XWPT;%8Elk3gejQKq2HA+l8^fE?CLkd%+owz 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࿞`~dUQz|}; zo>YQNM~Ab6&e-PvETx+m!)4#xZ%X2_F+zGD_){fDEJTiU1rUSBMS3U%^f1qQMw1X9 z*Li@i6~6)??Gt@O9*uiT%TtX$NKr(5Gci{3Z0e^oft9O68nhVn9fGYJlaUpbAU!hE zO;*%BsE2Pglh|!N2kf>TiCq#Ktzy5(0BKB|6yP``B9 zaJ;G7H2Y7gRg8vVtl&c%8#Hmwws^%_Hjx3*}zsyfCmmd{vz2vi5foap% zTJSXfGM3L-LAKyr*{omCc>y95_1Ewiw|nxZ9jE!Ug7{C>w7+s<*Y>4C)pCeA$Z4E5 zx`U0umS3F{czvZ15T0n z$B~z}W&#NooB1>@7v@4w05DHn0(QCq|_;oORA>Iw)Fki`pto z)&;9($eU3gqHGaepaNE!vuW=hL)m_^VaVExB!mj&T(D`ebybLNnEzX8Or|>G*^2X* zqeN8h4FAe?r}e1_4%%6GgWZ2YQUV1@|7r?w%-G|*BT072wGgfsrxI(q^&=)jJ2=N_ zGWc%+-u}JHjUgkrE%Hr#Di?yB`dfv0BX+ooaItz9R-MS_{r-_XJbA*@6@reB+KLtI znc$4WR{C3I}9q)I$5AgBQNv z6`>)~OIqyUEu{r#iJ@G#J8O2LrdH;h4LiK%(1lioe{{yq%DnhiTY8hsw=b($wVb20 zY3?65%GbCNdR+Sy{F;iw5&PHip1J(X`mcwizRGGvPcgTh;aw%z?e3}@37sdpD;(Uy z^bXy$OAyPtAa676IDb$Fm8!*{T&B*#p-79-oslx{i2xQ`Z`%m1NKv%?7#fSgaJ=Wf zG~$L#R%%KMJ*gJjDHtzZ#GNEb?Xa^|{rM#A)0QKnP*1lj85>@8W8YMTkBXdkCMh8m zI&1LTt-U&cqOB5kV04=@(TpiG=cYZepW-9G{}8F3>g&n1eK?g5mBYpl>!%v+ZUh__ z&)1!!|JES=`5>0OHtg*45=m7QPUF8@MCAjRBq@y%&})l{a|q7)FIu2lLgkQEYjiNt=GZ`%N|~$tL@D;W2VRr6AUsL);ss)<3Q-BOOdg^J%X4vCYqU|K*d%mYbCZY+o?1gbqS8gOQh% zf1CY4(+;;UIT@5gexOH_r9(dZ$BAqUQGaE#<8LN=f8T=b;=IXz=Hd!?wo5v@a#`ws zeV7AY#6B#2qW9jBSk3 zP0oV|1a(`y@G5puS>p`9_+;R5`0Y_n-plVcu0KKhS}T;X<|+yyq8T7GqL8C%fFLvJ zO?4^imAM$;oN^N1p5nm(&A=@_`lU^GNZX^ZXI*h-STP4`pPx}zJ_~p@J{lz=`m{f) z^X1;4L?FTz>x2<(QVayVsg@TXqey8hx+8*!sPX7OKGb`dag)bjSc+! z)b61rg4fxW>A2H#(_Od8t-b#Zo#bxHvEJ5(!Rybw6brz^p-g*p!&HqJrS=jJZh(m@ z+3=*zE5vovaT2A^9wiF0S42S@lsb_U>E+SzVf^k1I9V18iz$$$af#Yu_ z4s`L`$?!;{)GAjvHTCbii41hfwLCRaav@j)ynHo*z`EKNF7e0`~U~je&fMcEA`!?0A@>+Gxq9cZR!Ra#1V8X1cqdIK8d1^pLpC5jYB~ z4VRwiMPE3CDlQE-G^UN5lvC4hH*Jqx?b#(jo>YI_x+E=dLUWYmtcjbboav3#1X`} + lang="html" + /> +

    + + Explore customized components + + +

    + +
    +

    Create and extend utilities

    +

    + Use Bootstrap's utility API to modify any of our included utilities or create your own custom utilities for any + project. Import Bootstrap first, then use Sass map functions to modify, add, or remove utilities. +

    + +

    + + Explore the utility API + + +

    +
    + + diff --git a/site-new/src/components/home/Customize.astro b/site-new/src/components/home/Customize.astro new file mode 100644 index 0000000000..0c75ce4f97 --- /dev/null +++ b/site-new/src/components/home/Customize.astro @@ -0,0 +1,69 @@ +--- +import { getVersionedDocsPath } from '@libs/path' +import Code from '@shortcodes/Code.astro' +--- + +
    +
    + +
    +

    Customize everything with Sass

    +

    + Bootstrap utilizes Sass for a modular and customizable architecture. Import only the components you need, enable + global options like gradients and shadows, and write your own CSS with our variables, maps, functions, and mixins. +

    +

    + + Learn more about customizing + + +

    +
    + +
    +
    +

    Include all of Bootstrap’s Sass

    +

    Import one stylesheet and you're off to the races with every feature of our CSS.

    + +

    Learn more about our global Sass options.

    +
    +
    +

    Include what you need

    +

    The easiest way to customize Bootstrap—include only the CSS you need.

    + +

    Learn more about using Bootstrap with Sass.

    +
    +
    diff --git a/site-new/src/components/home/GetStarted.astro b/site-new/src/components/home/GetStarted.astro new file mode 100644 index 0000000000..ea09fcf922 --- /dev/null +++ b/site-new/src/components/home/GetStarted.astro @@ -0,0 +1,115 @@ +--- +import { getConfig } from '@libs/config' +import { getVersionedDocsPath } from '@libs/path' +import Code from '@shortcodes/Code.astro' +--- + +
    +
    + +
    +

    Get started any way you want

    +

    + Jump right into building with Bootstrap—use the CDN, install it via package manager, or download the source code. +

    +

    + + Read installation docs + + +

    +
    + +
    +
    + +

    Install via package manager

    +

    + Install Bootstrap’s source Sass and JavaScript files via npm, RubyGems, Composer, or Meteor. Package managed + installs don’t include documentation or our full build scripts. You can also use any demo from our Examples repo to quickly jumpstart Bootstrap projects. +

    + + +

    + Read our installation docs for more info and additional + package managers. +

    +
    +
    + +

    Include via CDN

    +

    + When you only need to include Bootstrap’s compiled CSS or JS, you can use jsDelivr. See it in action with our simple quick start, or browse the examples to jumpstart your next project. You can also + choose to include Popper and our JS separately. +

    + `} + lang="html" + /> + `} + lang="html" + /> +
    + +
    +

    Read our getting started guides

    +

    Get a jump on including Bootstrap's source files in a new project with our official guides.

    + +
    +
    diff --git a/site-new/src/components/home/Icons.astro b/site-new/src/components/home/Icons.astro new file mode 100644 index 0000000000..4c72294f37 --- /dev/null +++ b/site-new/src/components/home/Icons.astro @@ -0,0 +1,38 @@ +--- +import { getConfig } from '@libs/config' +import { getVersionedDocsPath } from '@libs/path' +import CircleSquareIcon from '@components/icons/CircleSquareIcon.astro' +--- + +
    +
    +
    + +
    +

    Personalize it with Bootstrap Icons

    +

    + Bootstrap Icons is an open source SVG icon library featuring over 1,800 glyphs, with + more added every release. They're designed to work in any project, whether you use Bootstrap itself or not. Use them + as SVGs or icon fonts—both options give you vector scaling and easy customization via CSS. +

    +

    + + Get Bootstrap Icons + + +

    +
    +
    + Bootstrap Icons +
    +
    diff --git a/site-new/src/components/home/MastHead.astro b/site-new/src/components/home/MastHead.astro new file mode 100644 index 0000000000..110bc8dfa2 --- /dev/null +++ b/site-new/src/components/home/MastHead.astro @@ -0,0 +1,57 @@ +--- +import { getConfig } from '@libs/config' +import { getVersionedDocsPath } from '@libs/path' +import Ads from '@components/Ads.astro' +import Code from '@components/shortcodes/Code.astro' +--- + +
    +
    +
    + + New in v5.3 + Color mode support, expanded color palette, and more! + + Bootstrap +

    Build fast, responsive sites with Bootstrap

    +

    + Powerful, extensible, and feature-packed frontend toolkit. Build and customize with Sass, utilize prebuilt grid + system and components, and bring projects to life with powerful JavaScript plugins. +

    + +

    + Currently v{getConfig().current_version} + · + Download + · + v4.6.x docs + · + All releases +

    + +
    +
    +
    diff --git a/site-new/src/components/home/Plugins.astro b/site-new/src/components/home/Plugins.astro new file mode 100644 index 0000000000..b27dc89a63 --- /dev/null +++ b/site-new/src/components/home/Plugins.astro @@ -0,0 +1,90 @@ +--- +import { getVersionedDocsPath } from '@libs/path' +import { getData } from '@libs/data' +import Code from '@shortcodes/Code.astro' + +const plugins = getData('plugins') +--- + +
    +
    +
    + +
    +

    Powerful JavaScript plugins without jQuery

    +

    + Add toggleable hidden elements, modals and offcanvas menus, popovers and tooltips, and so much more—all without + jQuery. Bootstrap's JavaScript is HTML-first, meaning most plugins are added with data attributes in your + HTML. Need more control? Include individual plugins programmatically. +

    +

    + + Learn more about Bootstrap JavaScript + + +

    +
    +
    +
    +

    Data attribute API

    +

    + Why write more JavaScript when you can write HTML? Nearly all of Bootstrap's JavaScript plugins feature a + first-class data API, allowing you to use JavaScript just by adding data attributes. +

    +
    + +
    + + + +
    `} + lang="html" + /> +

    + Learn more about our JavaScript as modules and using the programmatic API. +

    +
    +
    +

    Comprehensive set of plugins

    +

    + Bootstrap features a dozen plugins that you can drop into any project. Drop them in all at once, or choose just + the ones you need. +

    +
    +
    + { + plugins.map((plugin) => { + return ( + + ) + }) + } +
    +
    + +
    diff --git a/site-new/src/components/home/Themes.astro b/site-new/src/components/home/Themes.astro new file mode 100644 index 0000000000..ac019af586 --- /dev/null +++ b/site-new/src/components/home/Themes.astro @@ -0,0 +1,39 @@ +--- +import { getConfig } from '@libs/config' +import { getVersionedDocsPath } from '@libs/path' +import DropletFillIcon from '@components/icons/DropletFillIcon.astro' +--- + +
    +
    +
    + +
    +

    Make it yours with official Bootstrap Themes

    +

    + Take Bootstrap to the next level with premium themes from the official Bootstrap Themes marketplace. Themes are built on Bootstrap as their own extended frameworks, rich with new components and plugins, + documentation, and powerful build tools. +

    +

    + + Browse Bootstrap Themes + + +

    +
    +
    + Bootstrap Themes +
    +
    diff --git a/site-new/src/components/icons/BootstrapWhiteFillIcon.astro b/site-new/src/components/icons/BootstrapWhiteFillIcon.astro new file mode 100644 index 0000000000..ef40e6a425 --- /dev/null +++ b/site-new/src/components/icons/BootstrapWhiteFillIcon.astro @@ -0,0 +1,18 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + Bootstrap + + + diff --git a/site-new/src/components/icons/CircleSquareIcon.astro b/site-new/src/components/icons/CircleSquareIcon.astro new file mode 100644 index 0000000000..506f7a23bb --- /dev/null +++ b/site-new/src/components/icons/CircleSquareIcon.astro @@ -0,0 +1,23 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + + + + diff --git a/site-new/src/components/icons/DropletFillIcon.astro b/site-new/src/components/icons/DropletFillIcon.astro new file mode 100644 index 0000000000..5254ca7dc7 --- /dev/null +++ b/site-new/src/components/icons/DropletFillIcon.astro @@ -0,0 +1,24 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + + + diff --git a/site-new/src/components/icons/GitHubIcon.astro b/site-new/src/components/icons/GitHubIcon.astro new file mode 100644 index 0000000000..faa01434d2 --- /dev/null +++ b/site-new/src/components/icons/GitHubIcon.astro @@ -0,0 +1,24 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + GitHub + + + diff --git a/site-new/src/components/icons/HamburgerIcon.astro b/site-new/src/components/icons/HamburgerIcon.astro new file mode 100644 index 0000000000..ad6ddc8d97 --- /dev/null +++ b/site-new/src/components/icons/HamburgerIcon.astro @@ -0,0 +1,22 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + + + diff --git a/site-new/src/components/icons/OpenCollectiveIcon.astro b/site-new/src/components/icons/OpenCollectiveIcon.astro new file mode 100644 index 0000000000..fc50164110 --- /dev/null +++ b/site-new/src/components/icons/OpenCollectiveIcon.astro @@ -0,0 +1,26 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + Open Collective + + + + diff --git a/site-new/src/components/icons/Symbols.astro b/site-new/src/components/icons/Symbols.astro new file mode 100644 index 0000000000..f44136bfdd --- /dev/null +++ b/site-new/src/components/icons/Symbols.astro @@ -0,0 +1,142 @@ +--- +--- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/site-new/src/components/icons/TwitterIcon.astro b/site-new/src/components/icons/TwitterIcon.astro new file mode 100644 index 0000000000..ba7dd68767 --- /dev/null +++ b/site-new/src/components/icons/TwitterIcon.astro @@ -0,0 +1,23 @@ +--- +import type { SvgIconProps } from '@libs/icon' + +type Props = SvgIconProps + +const { class: className, height, width } = Astro.props +--- + + + Twitter + + + diff --git a/site-new/src/components/shortcodes/AddedIn.astro b/site-new/src/components/shortcodes/AddedIn.astro new file mode 100644 index 0000000000..d9a26ce50e --- /dev/null +++ b/site-new/src/components/shortcodes/AddedIn.astro @@ -0,0 +1,16 @@ +--- +/* + * Outputs badge to identify the first version something was added + */ + +interface Props { + version: string +} + +const { version } = Astro.props +--- + +Added in v{version} diff --git a/site-new/src/components/shortcodes/BsTable.astro b/site-new/src/components/shortcodes/BsTable.astro new file mode 100644 index 0000000000..df80455ff0 --- /dev/null +++ b/site-new/src/components/shortcodes/BsTable.astro @@ -0,0 +1,16 @@ +--- +interface Props { + /** + * The CSS class to apply to the table. + * Note that the prop is not used in this component, but in a rehype plugin applying the classes to the table element + * directly on the HTML AST (HAST) generated by Astro. + * @default "table" + * @see src/libs/rehype.ts + */ + class?: string +} +--- + +
    + +
    diff --git a/site-new/src/components/shortcodes/Callout.astro b/site-new/src/components/shortcodes/Callout.astro new file mode 100644 index 0000000000..11243c8482 --- /dev/null +++ b/site-new/src/components/shortcodes/Callout.astro @@ -0,0 +1,44 @@ +--- +import { getCalloutByName } from '@libs/content' +import type { MarkdownInstance } from 'astro' + +interface Props { + /** + * The name of an existing callout to display located in `src/content/callouts`. + * This will override any content passed in via the default slot. + */ + name?: + | 'danger-async-methods' + | 'info-mediaqueries-breakpoints' + | 'info-npm-starter' + | 'info-prefersreducedmotion' + | 'info-sanitizer' + | 'warning-color-assistive-technologies' + | 'warning-data-bs-title-vs-title' + | 'warning-input-support' + /** + * The type of callout to display. One of `info`, `danger`, or `warning`. + * @default 'info' + */ + type?: 'danger' | 'info' | 'warning' +} + +const { name, type = 'info' } = Astro.props + +let Content: MarkdownInstance<{}>['Content'] | undefined + +if (name) { + const callout = await getCalloutByName(name) + + if (!callout) { + throw new Error(`Could not find callout with name '${name}'.`) + } + + const namedCallout = await callout.render() + Content = namedCallout.Content +} +--- + +
    + {Content ? : } +
    diff --git a/site-new/src/components/shortcodes/CalloutDeprecatedDarkVariants.astro b/site-new/src/components/shortcodes/CalloutDeprecatedDarkVariants.astro new file mode 100644 index 0000000000..4033900d96 --- /dev/null +++ b/site-new/src/components/shortcodes/CalloutDeprecatedDarkVariants.astro @@ -0,0 +1,19 @@ +--- +/* + * Outputs message about dark mode component variants being deprecated in v5.3. + */ + +interface Props { + component: string +} + +const { component } = Astro.props +--- + +
    +

    + Heads up! Dark variants for components were deprecated in v5.3.0 with the introduction of color modes. + Instead of adding .{component}-dark, set data-bs-theme="dark" on the root element, a parent + wrapper, or the component itself. +

    +
    diff --git a/site-new/src/components/shortcodes/Code.astro b/site-new/src/components/shortcodes/Code.astro new file mode 100644 index 0000000000..0a440870c0 --- /dev/null +++ b/site-new/src/components/shortcodes/Code.astro @@ -0,0 +1,156 @@ +--- +import fs from 'node:fs' +import path from 'node:path' +import { Prism } from '@astrojs/prism' + +interface Props { + /** + * The CSS class(es) to be added to the `pre` HTML element when rendering code blocks in Markdown. + * Note that this prop is not used when the component is invoked directly. + */ + class?: string + /** + * The code to highlight. + * If an array is passed, elements will be joined with a new line. + */ + code?: string | string[] + /** + * The CSS class(es) to be added to the `div` wrapper HTML element. + */ + containerClass?: string + /** + * The language to use for highlighting. + * @see https://prismjs.com/#supported-languages + */ + lang?: string + /** + * If the `filePath` prop is defined, this prop can be used to specify a regex containing a match group to extract + * only a part of the file. + */ + fileMatch?: string + /** + * A path to the file containing the code to highlight relative to the root of the repository. + * This takes precedence over the `code` prop. + */ + filePath?: string +} + +const { class: className, code, containerClass, fileMatch, filePath, lang } = Astro.props + +let codeToDisplay = filePath + ? fs.readFileSync(path.join(process.cwd(), filePath), 'utf8') + : Array.isArray(code) + ? code.join('\n') + : code + +if (filePath && fileMatch && codeToDisplay) { + const match = codeToDisplay.match(new RegExp(fileMatch)) + + if (!match || !match[1]) { + throw new Error(`The file at ${filePath} does not contains a match for the regex '${fileMatch}'.`) + } + + codeToDisplay = match[1] +} +--- + + + +
    + { + Astro.slots.has('pre') ? ( + + ) : ( +
    + +
    + ) + } +
    + { + codeToDisplay && lang ? ( + + ) : ( + /* prettier-ignore */
    + ) + } +
    +
    diff --git a/site-new/src/components/shortcodes/DeprecatedIn.astro b/site-new/src/components/shortcodes/DeprecatedIn.astro new file mode 100644 index 0000000000..50ba42b95d --- /dev/null +++ b/site-new/src/components/shortcodes/DeprecatedIn.astro @@ -0,0 +1,17 @@ +--- +/* + * Outputs badge to identify the version something was deprecated + */ + +interface Props { + version: string +} + +const { version } = Astro.props +--- + + + Deprecated in v{version} + diff --git a/site-new/src/components/shortcodes/Example.astro b/site-new/src/components/shortcodes/Example.astro new file mode 100644 index 0000000000..083ee21bb8 --- /dev/null +++ b/site-new/src/components/shortcodes/Example.astro @@ -0,0 +1,105 @@ +--- +import { replacePlaceholdersInHtml } from '@libs/placeholder' +import Code from '@shortcodes/Code.astro' + +interface Props { + /** + * Defines if extra JS snippet should be added to StackBlitz or not. + * @default false + */ + addStackblitzJs?: boolean + /** + * The example code. + * If an array is passed, elements will be joined with a new line. + */ + code: string | string[] + /** + * The CSS class(es) to be added to the preview wrapping `div` element. + */ + class?: string + /** + * The preview wrapping `div` element ID. + */ + id?: string + /** + * Language used to display the code. + * @default 'html' + */ + lang?: string + /** + * Defines if the markup should be visible or not. + * @default true + */ + showMarkup?: boolean + /** + * Defines if the preview should be visible or not. + * @default true + */ + showPreview?: boolean +} + +const { + addStackblitzJs = false, + code, + class: className, + id, + lang = 'html', + showMarkup = true, + showPreview = true, +} = Astro.props + +let markup = Array.isArray(code) ? code.join('\n') : code +markup = replacePlaceholdersInHtml(markup) + +const simplifiedMarkup = markup + .replace( + //g, + '...' + ) + .replace( + //g, + '...' + ) +--- + +{ + showMarkup ? ( + + {showPreview && ( + +
    + +
    +
    + {lang} +
    + + +
    +
    +
    + )} +
    + ) : ( +
    + {showPreview && ( +
    + +
    + )} +
    + ) +} diff --git a/site-new/src/components/shortcodes/GuideFooter.mdx b/site-new/src/components/shortcodes/GuideFooter.mdx new file mode 100644 index 0000000000..426a71f271 --- /dev/null +++ b/site-new/src/components/shortcodes/GuideFooter.mdx @@ -0,0 +1,3 @@ +
    + +_See something wrong or out of date here? Please [open an issue on GitHub]([[config:repo]]/issues/new/choose). Need help troubleshooting? [Search or start a discussion]([[config:repo]]/discussions) on GitHub._ diff --git a/site/layouts/partials/js-data-attributes.md b/site-new/src/components/shortcodes/JsDataAttributes.mdx similarity index 100% rename from site/layouts/partials/js-data-attributes.md rename to site-new/src/components/shortcodes/JsDataAttributes.mdx diff --git a/site-new/src/components/shortcodes/JsDismiss.astro b/site-new/src/components/shortcodes/JsDismiss.astro new file mode 100644 index 0000000000..0bc26e7ae4 --- /dev/null +++ b/site-new/src/components/shortcodes/JsDismiss.astro @@ -0,0 +1,26 @@ +--- +import Code from '@shortcodes/Code.astro' + +interface Props { + name: string +} + +const { name } = Astro.props +--- + +

    + Dismissal can be achieved with the data-bs-dismiss attribute on a button within the {name} as demonstrated + below: +

    + +`} + lang="html" +/> + +

    or on a button outside the {name} using the additional data-bs-target as demonstrated below:

    + +`} + lang="html" +/> diff --git a/site-new/src/components/shortcodes/JsDocs.astro b/site-new/src/components/shortcodes/JsDocs.astro new file mode 100644 index 0000000000..963cb823ff --- /dev/null +++ b/site-new/src/components/shortcodes/JsDocs.astro @@ -0,0 +1,65 @@ +--- +import fs from 'node:fs' +import { getConfig } from '@libs/config' +import Code from '@shortcodes/Code.astro' + +// Prints everything between `// js-docs-start "name"` and `// js-docs-end "name"` +// comments in the docs. + +interface Props { + /** + * Reference name used to find the content to display within the content of the `file` prop. + */ + name: string + /** + * File path that contains the content to display relative to the root of the repository. + */ + file: string +} + +const { name, file } = Astro.props + +if (!name || !file) { + throw new Error( + `Missing required parameter(s) for the '' component, expected both 'name' and 'file' but got 'name: ${name}' and 'file: ${file}'.` + ) +} + +let content: string + +try { + const fileContent = fs.readFileSync(file, 'utf8') + + const matches = fileContent.match( + new RegExp(`\/\/ js-docs-start ${name}\n((?:.|\n)*)\/\/ js-docs-end ${name}`, 'm') + ) + + if (!matches || !matches[1]) { + throw new Error( + `Failed to find the content named '${name}', make sure that '// js-docs-start ${name}' and '// js-docs-end ${name}' are defined.` + ) + } + + content = matches[1].replaceAll(' !default', '') +} catch (error) { + throw new Error(`Failed to find the content to render in the '' component at '${file}'.`, { + cause: error, + }) +} +--- + + +
    + + {file} + +
    + +
    +
    +
    diff --git a/site-new/src/components/shortcodes/Placeholder.astro b/site-new/src/components/shortcodes/Placeholder.astro new file mode 100644 index 0000000000..b19e3b01e7 --- /dev/null +++ b/site-new/src/components/shortcodes/Placeholder.astro @@ -0,0 +1,27 @@ +--- +import { getPlaceholder, type PlaceholderOptions } from '@libs/placeholder' + +type Props = Partial + +const { + options: { background, color, showText, showTitle, text, title }, + props, + type, +} = getPlaceholder(Astro.props) +--- + +{ + type === 'img' ? ( + + ) : ( + + {showTitle && {title}} + + {showText && ( + + {text} + + )} + + ) +} diff --git a/site-new/src/components/shortcodes/ScssDocs.astro b/site-new/src/components/shortcodes/ScssDocs.astro new file mode 100644 index 0000000000..527e71b02a --- /dev/null +++ b/site-new/src/components/shortcodes/ScssDocs.astro @@ -0,0 +1,65 @@ +--- +import fs from 'node:fs' +import { getConfig } from '@libs/config' +import Code from '@shortcodes/Code.astro' + +// Prints everything between `// scss-docs-start "name"` and `// scss-docs-end "name"` +// comments in the docs. + +interface Props { + /** + * Reference name used to find the content to display within the content of the `file` prop. + */ + name: string + /** + * File path that contains the content to display relative to the root of the repository. + */ + file: string +} + +const { name, file } = Astro.props + +if (!name || !file) { + throw new Error( + `Missing required parameter(s) for the '' component, expected both 'name' and 'file' but got 'name: ${name}' and 'file: ${file}'.` + ) +} + +let content: string + +try { + const fileContent = fs.readFileSync(file, 'utf8') + + const matches = fileContent.match( + new RegExp(`\/\/ scss-docs-start ${name}\n((?:.|\n)*)\/\/ scss-docs-end ${name}`, 'm') + ) + + if (!matches || !matches[1]) { + throw new Error( + `Failed to find the content named '${name}', make sure that '// scss-docs-start ${name}' and '// scss-docs-end ${name}' are defined.` + ) + } + + content = matches[1].replaceAll(' !default', '') +} catch (error) { + throw new Error(`Failed to find the content to render in the '' component at '${file}'.`, { + cause: error, + }) +} +--- + + +
    + + {file} + +
    + +
    +
    +
    diff --git a/site-new/src/components/shortcodes/Table.astro b/site-new/src/components/shortcodes/Table.astro new file mode 100644 index 0000000000..cb36144f45 --- /dev/null +++ b/site-new/src/components/shortcodes/Table.astro @@ -0,0 +1,31 @@ +--- +import Code from '@shortcodes/Code.astro' +import * as tableContent from '@shortcodes/TableContent.md' + +interface Props { + /** + * Any class(es) to be added to the `` element (both in the example and code snippet). + */ + class?: string + /** + * Show a simplified version in the example code snippet by replacing the table content inside `
    ` & `
    ` + * with `...`. + * @default true + */ + simplified?: boolean +} + +const { class: className, simplified = true } = Astro.props + +const tableCode = ` + ${simplified ? '...' : tableContent.compiledContent()} +` +--- + +
    + + +
    +
    + + diff --git a/site-new/src/components/shortcodes/TableContent.md b/site-new/src/components/shortcodes/TableContent.md new file mode 100644 index 0000000000..3f824e9d4d --- /dev/null +++ b/site-new/src/components/shortcodes/TableContent.md @@ -0,0 +1,27 @@ + + + # + First + Last + Handle + + + + + 1 + Mark + Otto + @mdo + + + 2 + Jacob + Thornton + @fat + + + 3 + Larry the Bird + @twitter + + diff --git a/site-new/src/content/callouts/danger-async-methods.md b/site-new/src/content/callouts/danger-async-methods.md new file mode 100644 index 0000000000..7b7a654b72 --- /dev/null +++ b/site-new/src/content/callouts/danger-async-methods.md @@ -0,0 +1 @@ +**All API methods are asynchronous and start a transition.** They return to the caller as soon as the transition is started, but before it ends. In addition, a method call on a transitioning component will be ignored. [Learn more in our JavaScript docs.](/docs/[[config:docs_version]]/getting-started/javascript/#asynchronous-functions-and-transitions) diff --git a/site-new/src/content/callouts/info-mediaqueries-breakpoints.md b/site-new/src/content/callouts/info-mediaqueries-breakpoints.md new file mode 100644 index 0000000000..2eea77138b --- /dev/null +++ b/site-new/src/content/callouts/info-mediaqueries-breakpoints.md @@ -0,0 +1 @@ +**Why subtract .02px?** Browsers don't currently support [range context queries](https://www.w3.org/TR/mediaqueries-4/#range-context), so we work around the limitations of [`min-` and `max-` prefixes](https://www.w3.org/TR/mediaqueries-4/#mq-min-max) and viewports with fractional widths (which can occur under certain conditions on high-dpi devices, for instance) by using values with higher precision. diff --git a/site-new/src/content/callouts/info-npm-starter.md b/site-new/src/content/callouts/info-npm-starter.md new file mode 100644 index 0000000000..cc4a50e68f --- /dev/null +++ b/site-new/src/content/callouts/info-npm-starter.md @@ -0,0 +1 @@ +**Get started with Bootstrap via npm with our starter project!** Head to the [Sass & JS example](https://github.com/twbs/examples/tree/main/sass-js) template repository to see how to build and customize Bootstrap in your own npm project. Includes Sass compiler, Autoprefixer, Stylelint, PurgeCSS, and Bootstrap Icons. diff --git a/site-new/src/content/callouts/info-prefersreducedmotion.md b/site-new/src/content/callouts/info-prefersreducedmotion.md new file mode 100644 index 0000000000..49d81ef8ba --- /dev/null +++ b/site-new/src/content/callouts/info-prefersreducedmotion.md @@ -0,0 +1 @@ +The animation effect of this component is dependent on the `prefers-reduced-motion` media query. See the [reduced motion section of our accessibility documentation](/docs/[[config:docs_version]]/getting-started/accessibility/#reduced-motion). diff --git a/site-new/src/content/callouts/info-sanitizer.md b/site-new/src/content/callouts/info-sanitizer.md new file mode 100644 index 0000000000..516975b320 --- /dev/null +++ b/site-new/src/content/callouts/info-sanitizer.md @@ -0,0 +1 @@ +By default, this component uses the built-in content sanitizer, which strips out any HTML elements that are not explicitly allowed. See the [sanitizer section in our JavaScript documentation](/docs/[[config:docs_version]]/getting-started/javascript/#sanitizer) for more details. diff --git a/site-new/src/content/callouts/warning-color-assistive-technologies.md b/site-new/src/content/callouts/warning-color-assistive-technologies.md new file mode 100644 index 0000000000..0e83b1aadc --- /dev/null +++ b/site-new/src/content/callouts/warning-color-assistive-technologies.md @@ -0,0 +1 @@ +**Accessibility tip:** Using color to add meaning only provides a visual indication, which will not be conveyed to users of assistive technologies like screen readers. Please ensure the meaning is obvious from the content itself (e.g., the visible text) or is included through alternative means, such as additional text hidden with the `.visually-hidden` class. diff --git a/site-new/src/content/callouts/warning-data-bs-title-vs-title.md b/site-new/src/content/callouts/warning-data-bs-title-vs-title.md new file mode 100644 index 0000000000..e932f22ad9 --- /dev/null +++ b/site-new/src/content/callouts/warning-data-bs-title-vs-title.md @@ -0,0 +1 @@ +Feel free to use either `title` or `data-bs-title` in your HTML. When `title` is used, Popper will replace it automatically with `data-bs-title` when the element is rendered. diff --git a/site-new/src/content/callouts/warning-input-support.md b/site-new/src/content/callouts/warning-input-support.md new file mode 100644 index 0000000000..f9d9c0abd6 --- /dev/null +++ b/site-new/src/content/callouts/warning-input-support.md @@ -0,0 +1 @@ +Some date inputs types are [not fully supported](https://caniuse.com/input-datetime) by the latest versions of Safari and Firefox. diff --git a/site-new/src/content/config.ts b/site-new/src/content/config.ts new file mode 100644 index 0000000000..8dd161469c --- /dev/null +++ b/site-new/src/content/config.ts @@ -0,0 +1,40 @@ +import { z, defineCollection } from 'astro:content' + +const docsSchema = z.object({ + added: z.string().optional(), + aliases: z.string().or(z.string().array()).optional(), + description: z.string(), + direction: z.literal('rtl').optional(), + extra_js: z + .object({ + async: z.boolean().optional(), + src: z.string(), + }) + .array() + .optional(), + sections: z + .object({ + description: z.string(), + title: z.string(), + }) + .array() + .optional(), + thumbnail: z.string().optional(), + title: z.string(), + toc: z.boolean().optional(), +}) + +const docsCollection = defineCollection({ + schema: docsSchema, +}) + +const calloutsSchema = z.object({}) + +const calloutsCollection = defineCollection({ + schema: calloutsSchema, +}) + +export const collections = { + docs: docsCollection, + callouts: calloutsCollection, +} diff --git a/site-new/src/content/docs/about/brand.mdx b/site-new/src/content/docs/about/brand.mdx new file mode 100644 index 0000000000..bb4e2fb871 --- /dev/null +++ b/site-new/src/content/docs/about/brand.mdx @@ -0,0 +1,41 @@ +--- +title: Brand guidelines +description: Documentation and examples for Bootstrap's logo and brand usage guidelines. +toc: true +--- + +Have a need for Bootstrap's brand resources? Great! We have only a few guidelines we follow, and in turn ask you to follow as well. + +## Logo + +When referencing Bootstrap, use our logo mark. Do not modify our logos in any way. Do not use Bootstrap's branding for your own open or closed source projects. + +
    + Bootstrap +
    + +Our logo mark is also available in black and white. All rules for our primary logo apply to these as well. + +
    +
    + Bootstrap +
    +
    + Bootstrap +
    +
    + +## Name + +Bootstrap should always be referred to as just **Bootstrap**. No capital _s_. + +
    +
    +
    Bootstrap
    + Correct +
    +
    +
    BootStrap
    + Incorrect +
    +
    diff --git a/site-new/src/content/docs/about/license.mdx b/site-new/src/content/docs/about/license.mdx new file mode 100644 index 0000000000..0b35a7b676 --- /dev/null +++ b/site-new/src/content/docs/about/license.mdx @@ -0,0 +1,32 @@ +--- +title: License FAQs +description: Commonly asked questions about Bootstrap's open source license. +--- + +Bootstrap is released under the MIT license and is copyright {new Date().getFullYear()}. Boiled down to smaller chunks, it can be described with the following conditions. + +## It requires you to: + +- Keep the license and copyright notice included in Bootstrap's CSS and JavaScript files when you use them in your works + +## It permits you to: + +- Freely download and use Bootstrap, in whole or in part, for personal, private, company internal, or commercial purposes +- Use Bootstrap in packages or distributions that you create +- Modify the source code +- Grant a sublicense to modify and distribute Bootstrap to third parties not included in the license + +## It forbids you to: + +- Hold the authors and license owners liable for damages as Bootstrap is provided without warranty +- Hold the creators or copyright holders of Bootstrap liable +- Redistribute any piece of Bootstrap without proper attribution +- Use any marks owned by Bootstrap in any way that might state or imply that Bootstrap endorses your distribution +- Use any marks owned by Bootstrap in any way that might state or imply that you created the Bootstrap software in question + +## It does not require you to: + +- Include the source of Bootstrap itself, or of any modifications you may have made to it, in any redistribution you may assemble that includes it +- Submit changes that you make to Bootstrap back to the Bootstrap project (though such feedback is encouraged) + +The full Bootstrap license is located [in the project repository]([[config:repo]]/blob/v[[config:current_version]]/LICENSE) for more information. diff --git a/site-new/src/content/docs/about/overview.mdx b/site-new/src/content/docs/about/overview.mdx new file mode 100644 index 0000000000..b0ceb44235 --- /dev/null +++ b/site-new/src/content/docs/about/overview.mdx @@ -0,0 +1,27 @@ +--- +title: About +description: Learn more about the team maintaining Bootstrap, how and why the project started, and how to get involved. +aliases: + - "/about/" + - "/docs/[[config:docs_version]]/about/" +--- + +## Team + +Bootstrap is maintained by a [small team of developers](https://github.com/orgs/twbs/people) on GitHub. We're actively looking to grow this team and would love to hear from you if you're excited about CSS at scale, writing and maintaining vanilla JavaScript plugins, and improving build tooling processes for frontend code. + +## History + +Originally created by a designer and a developer at Twitter, Bootstrap has become one of the most popular front-end frameworks and open source projects in the world. + +Bootstrap was created at Twitter in mid-2010 by [@mdo](https://twitter.com/mdo) and [@fat](https://twitter.com/fat). Prior to being an open-sourced framework, Bootstrap was known as _Twitter Blueprint_. A few months into development, Twitter held its [first Hack Week](https://blog.twitter.com/engineering/en_us/a/2010/hack-week.html) and the project exploded as developers of all skill levels jumped in without any external guidance. It served as the style guide for internal tools development at the company for over a year before its public release, and continues to do so today. + +Originally [released](https://blog.twitter.com/developer/en_us/a/2011/bootstrap-twitter.html) on , we've since had over [twenty releases]([[config:repo]]/releases), including two major rewrites with v2 and v3. With Bootstrap 2, we added responsive functionality to the entire framework as an optional stylesheet. Building on that with Bootstrap 3, we rewrote the library once more to make it responsive by default with a mobile first approach. + +With Bootstrap 4, we once again rewrote the project to account for two key architectural changes: a migration to Sass and the move to CSS's flexbox. Our intention is to help in a small way to move the web development community forward by pushing for newer CSS properties, fewer dependencies, and new technologies across more modern browsers. + +Our latest release, Bootstrap 5, focuses on improving v4's codebase with as few major breaking changes as possible. We improved existing features and components, removed support for older browsers, dropped jQuery for regular JavaScript, and embraced more future-friendly technologies like CSS custom properties as part of our tooling. + +## Get involved + +Get involved with Bootstrap development by [opening an issue]([[config:repo]]/issues/new/choose) or submitting a pull request. Read our [contributing guidelines]([[config:repo]]/blob/v[[config:current_version]]/.github/CONTRIBUTING.md) for information on how we develop. diff --git a/site-new/src/content/docs/about/team.mdx b/site-new/src/content/docs/about/team.mdx new file mode 100644 index 0000000000..46b03d8774 --- /dev/null +++ b/site-new/src/content/docs/about/team.mdx @@ -0,0 +1,23 @@ +--- +title: Team +description: An overview of the founding team and core contributors to Bootstrap. +--- + +import { getData } from '@libs/data' + +Bootstrap is maintained by the founding team and a small group of invaluable core contributors, with the massive support and involvement of our community. + +
    + {getData('core-team').map((member) => { + return ( + + {`@${member.user}`} + + {member.name} @{member.user} + + + ) + })} +
    + +Get involved with Bootstrap development by [opening an issue]([[config:repo]]/issues/new/choose) or submitting a pull request. Read our [contributing guidelines]([[config:repo]]/blob/v[[config:current_version]]/.github/CONTRIBUTING.md) for information on how we develop. diff --git a/site-new/src/content/docs/about/translations.mdx b/site-new/src/content/docs/about/translations.mdx new file mode 100644 index 0000000000..a7757baf84 --- /dev/null +++ b/site-new/src/content/docs/about/translations.mdx @@ -0,0 +1,20 @@ +--- +title: Translations +description: Links to community-translated Bootstrap documentation sites. +--- + +import { getData } from '@libs/data' + +Community members have translated Bootstrap's documentation into various languages. None are officially supported and they may not always be up-to-date. + + + +**We don't help organize or host translations, we just link to them.** + +Finished a new or better translation? Open a pull request to add it to our list. diff --git a/site-new/src/content/docs/components/accordion.mdx b/site-new/src/content/docs/components/accordion.mdx new file mode 100644 index 0000000000..633d593455 --- /dev/null +++ b/site-new/src/content/docs/components/accordion.mdx @@ -0,0 +1,155 @@ +--- +title: Accordion +description: Build vertically collapsing accordions in combination with our Collapse JavaScript plugin. +aliases: + - "/components/" + - "/docs/[[config:docs_version]]/components/" +toc: true +--- + +## How it works + +The accordion uses [collapse]([[docsref:/components/collapse]]) internally to make it collapsible. To render an accordion that's expanded, add the `.open` class on the `.accordion`. + + + +## Example + +Click the accordions below to expand/collapse the accordion content. + + +
    +

    + +

    +
    +
    + This is the first item's accordion body. It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    +

    + +

    +
    +
    + This is the second item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    +

    + +

    +
    +
    + This is the third item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +`} /> + +### Flush + +Add `.accordion-flush` to remove some borders and rounded corners to render accordions edge-to-edge with their parent container. + + +
    +

    + +

    +
    +
    Placeholder content for this accordion, which is intended to demonstrate the .accordion-flush class. This is the first item's accordion body.
    +
    +
    +
    +

    + +

    +
    +
    Placeholder content for this accordion, which is intended to demonstrate the .accordion-flush class. This is the second item's accordion body. Let's imagine this being filled with some actual content.
    +
    +
    +
    +

    + +

    +
    +
    Placeholder content for this accordion, which is intended to demonstrate the .accordion-flush class. This is the third item's accordion body. Nothing more exciting happening here in terms of content, but just filling up the space to make it look, at least at first glance, a bit more representative of how this would look in a real-world application.
    +
    +
    +`} /> + +### Always open + +Omit the `data-bs-parent` attribute on each `.accordion-collapse` to make accordion items stay open when another item is opened. + + +
    +

    + +

    +
    +
    + This is the first item's accordion body. It is shown by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    +

    + +

    +
    +
    + This is the second item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +
    +

    + +

    +
    +
    + This is the third item's accordion body. It is hidden by default, until the collapse plugin adds the appropriate classes that we use to style each element. These classes control the overall appearance, as well as the showing and hiding via CSS transitions. You can modify any of this with custom CSS or overriding our default variables. It's also worth noting that just about any HTML can go within the .accordion-body, though the transition does limit overflow. +
    +
    +
    +`} /> + +## Accessibility + +Please read the [collapse accessibility section]([[docsref:/components/collapse#accessibility]]) for more information. + +## CSS + +### Variables + + + +As part of Bootstrap's evolving CSS variables approach, accordions now use local CSS variables on `.accordion` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too. + + + +### Sass variables + + diff --git a/site-new/src/content/docs/components/alerts.mdx b/site-new/src/content/docs/components/alerts.mdx new file mode 100644 index 0000000000..988eda371a --- /dev/null +++ b/site-new/src/content/docs/components/alerts.mdx @@ -0,0 +1,220 @@ +--- +title: Alerts +description: Provide contextual feedback messages for typical user actions with the handful of available and flexible alert messages. +toc: true +--- + +import { getData } from '@libs/data' + +## Examples + +Alerts are available for any length of text, as well as an optional close button. For proper styling, use one of the eight **required** contextual classes (e.g., `.alert-success`). For inline dismissal, use the [alerts JavaScript plugin](#dismissing). + + +**Heads up!** As of v5.3.0, the `alert-variant()` Sass mixin is deprecated. Alert variants now have their CSS variables overridden in [the Sass loop](#sass-loop). + + + ``)} /> + + + +### Live example + +Click the button below to show an alert (hidden with inline styles to start), then dismiss (and destroy) it with the built-in close button. + + +`} /> + +We use the following JavaScript to trigger our live alert demo: + + + +### Link color + +Use the `.alert-link` utility class to quickly provide matching colored links within any alert. + + ``)} /> + +### Additional content + +Alerts can also contain additional HTML elements like headings, paragraphs and dividers. + + +

    Well done!

    +

    Aww yeah, you successfully read this important alert message. This example text is going to run a bit longer so that you can see how spacing within an alert works with this kind of content.

    +
    +

    Whenever you need to, be sure to use margin utilities to keep things nice and tidy.

    +`} /> + +### Icons + +Similarly, you can use [flexbox utilities]([[docsref:/utilities/flex]]) and [Bootstrap Icons]([[config:icons]]) to create alerts with icons. Depending on your icons and content, you may want to add more utilities or custom styles. + + + + + +
    + An example alert with an icon +
    +`} /> + +Need more than one icon for your alerts? Consider using more Bootstrap Icons and making a local SVG sprite like so to easily reference the same icons repeatedly. + + + + + + + + + + + + + + + + +`} /> + +### Dismissing + +Using the alert JavaScript plugin, it's possible to dismiss any alert inline. Here's how: + +- Be sure you've loaded the alert plugin, or the compiled Bootstrap JavaScript. +- Add a [close button]([[docsref:/components/close-button]]) and the `.alert-dismissible` class, which adds extra padding to the right of the alert and positions the close button. +- On the close button, add the `data-bs-dismiss="alert"` attribute, which triggers the JavaScript functionality. Be sure to use the ` +`} /> + + +When an alert is dismissed, the element is completely removed from the page structure. If a keyboard user dismisses the alert using the close button, their focus will suddenly be lost and, depending on the browser, reset to the start of the page/document. For this reason, we recommend including additional JavaScript that listens for the `closed.bs.alert` event and programmatically sets `focus()` to the most appropriate location in the page. If you're planning to move focus to a non-interactive element that normally does not receive focus, make sure to add `tabindex="-1"` to the element. + + +## CSS + +### Variables + + + +As part of Bootstrap's evolving CSS variables approach, alerts now use local CSS variables on `.alert` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too. + + + +### Sass variables + + + +### Sass mixin + + + +Used in combination with `$theme-colors` to create contextual modifier classes for our alerts. + + + +### Sass loop + +Loop that generates the modifier classes with the `alert-variant()` mixin. + + + +## JavaScript behavior + +### Initialize + +Initialize elements as alerts + +```js +const alertList = document.querySelectorAll('.alert') +const alerts = [...alertList].map(element => new bootstrap.Alert(element)) +``` + + +For the sole purpose of dismissing an alert, it isn't necessary to initialize the component manually via the JS API. By making use of `data-bs-dismiss="alert"`, the component will be initialized automatically and properly dismissed. + +See the [triggers](#triggers) section for more details. + + +### Triggers + + + +**Note that closing an alert will remove it from the DOM.** + +### Methods + +You can create an alert instance with the alert constructor, for example: + +```js +const bsAlert = new bootstrap.Alert('#myAlert') +``` + +This makes an alert listen for click events on descendant elements which have the `data-bs-dismiss="alert"` attribute. (Not necessary when using the data-api’s auto-initialization.) + + +| Method | Description | +| --- | --- | +| `close` | Closes an alert by removing it from the DOM. If the `.fade` and `.show` classes are present on the element, the alert will fade out before it is removed. | +| `dispose` | Destroys an element's alert. (Removes stored data on the DOM element) | +| `getInstance` | Static method which allows you to get the alert instance associated to a DOM element. For example: `bootstrap.Alert.getInstance(alert)`. | +| `getOrCreateInstance` | Static method which returns an alert instance associated to a DOM element or create a new one in case it wasn't initialized. You can use it like this: `bootstrap.Alert.getOrCreateInstance(element)`. | + + +Basic usage: + +```js +const alert = bootstrap.Alert.getOrCreateInstance('#myAlert') +alert.close() +``` + +### Events + +Bootstrap's alert plugin exposes a few events for hooking into alert functionality. + + +| Event | Description | +| --- | --- | +| `close.bs.alert` | Fires immediately when the `close` instance method is called. | +| `closed.bs.alert` | Fired when the alert has been closed and CSS transitions have completed. | + + +```js +const myAlert = document.getElementById('myAlert') +myAlert.addEventListener('closed.bs.alert', event => { + // do something, for instance, explicitly move focus to the most appropriate element, + // so it doesn't get lost/reset to the start of the page + // document.getElementById('...').focus() +}) +``` diff --git a/site-new/src/content/docs/components/badge.mdx b/site-new/src/content/docs/components/badge.mdx new file mode 100644 index 0000000000..1c254b7b7d --- /dev/null +++ b/site-new/src/content/docs/components/badge.mdx @@ -0,0 +1,83 @@ +--- +title: Badges +description: Documentation and examples for badges, our small count and labeling component. +toc: true +--- + +import { getData } from '@libs/data' + +## Examples + +Badges scale to match the size of the immediate parent element by using relative font sizing and `em` units. As of v5, badges no longer have focus or hover styles for links. + +### Headings + +Example heading New +

    Example heading New

    +

    Example heading New

    +

    Example heading New

    +
    Example heading New
    +
    Example heading New
    `} /> + +### Buttons + +Badges can be used as part of links or buttons to provide a counter. + + + Notifications 4 +`} /> + +Note that depending on how they are used, badges may be confusing for users of screen readers and similar assistive technologies. While the styling of badges provides a visual cue as to their purpose, these users will simply be presented with the content of the badge. Depending on the specific situation, these badges may seem like random additional words or numbers at the end of a sentence, link, or button. + +Unless the context is clear (as with the "Notifications" example, where it is understood that the "4" is the number of notifications), consider including additional context with a visually hidden piece of additional text. + +### Positioned + +Use utilities to modify a `.badge` and position it in the corner of a link or button. + + + Inbox + + 99+ + unread messages + +`} /> + +You can also replace the `.badge` class with a few more utilities without a count for a more generic indicator. + + + Profile + + New alerts + +`} /> + +## Background colors + + + +Set a `background-color` with contrasting foreground `color` with [our `.text-bg-{color}` helpers]([[docsref:helpers/color-background]]). Previously it was required to manually pair your choice of [`.text-{color}`]([[docsref:/utilities/colors]]) and [`.bg-{color}`]([[docsref:/utilities/background]]) utilities for styling, which you still may use if you prefer. + + `${themeColor.title}`)} /> + + + +## Pill badges + +Use the `.rounded-pill` utility class to make badges more rounded with a larger `border-radius`. + + `${themeColor.title}`)} /> + +## CSS + +### Variables + + + +As part of Bootstrap's evolving CSS variables approach, badges now use local CSS variables on `.badge` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too. + + + +### Sass variables + + diff --git a/site-new/src/content/docs/components/breadcrumb.mdx b/site-new/src/content/docs/components/breadcrumb.mdx new file mode 100644 index 0000000000..a00833fa1c --- /dev/null +++ b/site-new/src/content/docs/components/breadcrumb.mdx @@ -0,0 +1,98 @@ +--- +title: Breadcrumb +description: Indicate the current page's location within a navigational hierarchy that automatically adds separators via CSS. +toc: true +--- + +## Example + +Use an ordered or unordered list with linked list items to create a minimally styled breadcrumb. Use our utilities to add additional styles as desired. + + + + + + + +`} /> + +## Dividers + +Dividers are automatically added in CSS through [`::before`](https://developer.mozilla.org/en-US/docs/Web/CSS/::before) and [`content`](https://developer.mozilla.org/en-US/docs/Web/CSS/content). They can be changed by modifying a local CSS custom property `--bs-breadcrumb-divider`, or through the `$breadcrumb-divider` Sass variable — and `$breadcrumb-divider-flipped` for its RTL counterpart, if needed. We default to our Sass variable, which is set as a fallback to the custom property. This way, you get a global divider that you can override without recompiling CSS at any time. + + + +`} /> + +When modifying via Sass, the [quote](https://sass-lang.com/documentation/modules/string#quote) function is required to generate the quotes around a string. For example, using `>` as the divider, you can use this: + +```scss +$breadcrumb-divider: quote(">"); +``` + +It's also possible to use an **embedded SVG icon**. Apply it via our CSS custom property, or use the Sass variable. + + +**Inlined SVG requires properly escaped characters.** Some reserved characters, such as `<`, `>` and `#`, must be URL-encoded or escaped. We do this with the `$breadcrumb-divider` variable using our [`escape-svg()` Sass function]([[docsref:/customize/sass#escape-svg]]). When customizing the CSS variable, you must handle this yourself. Read [Kevin Weber's explanations on CodePen](https://codepen.io/kevinweber/pen/dXWoRw ) for more info. + + + + +`} /> + +```scss +$breadcrumb-divider: url("data:image/svg+xml,"); +``` + +You can also remove the divider setting `--bs-breadcrumb-divider: '';` (empty strings in CSS custom properties counts as a value), or setting the Sass variable to `$breadcrumb-divider: none;`. + + + +`} /> + + +```scss +$breadcrumb-divider: none; +``` + +## Accessibility + +Since breadcrumbs provide a navigation, it's a good idea to add a meaningful label such as `aria-label="breadcrumb"` to describe the type of navigation provided in the ``} /> + +## Directions + + +**Directions are flipped in RTL mode.** As such, `.dropstart` will appear on the right side. + + +### Centered + +Make the dropdown menu centered below the toggle with `.dropdown-center` on the parent element. + + + + +`} /> + +### Dropup + +Trigger dropdown menus above elements by adding `.dropup` to the parent element. + +
    + +
    + + + +
    +
    + +```html + +
    + + +
    + + +
    + + + +
    +``` + +### Dropup centered + +Make the dropup menu centered above the toggle with `.dropup-center` on the parent element. + + + + +`} /> + +### Dropend + +Trigger dropdown menus at the right of the elements by adding `.dropend` to the parent element. + +
    + +
    + + + +
    +
    + +```html + +
    + + +
    + + +
    + + + +
    +``` + +### Dropstart + +Trigger dropdown menus at the left of the elements by adding `.dropstart` to the parent element. + +
    +
    + + +
    +
    + + + +
    +
    + +```html + +
    + + +
    + + +
    + + + +
    +``` + +## Menu items + +You can use `` or ` + +`} /> + +You can also create non-interactive dropdown items with `.dropdown-item-text`. Feel free to style further with custom CSS or text utilities. + + +
  • Dropdown item text
  • +
  • Action
  • +
  • Another action
  • +
  • Something else here
  • +`} /> + +### Active + +Add `.active` to items in the dropdown to **style them as active**. To convey the active state to assistive technologies, use the `aria-current` attribute — using the `page` value for the current page, or `true` for the current item in a set. + + +
  • Regular link
  • +
  • Active link
  • +
  • Another link
  • +`} /> + +### Disabled + +Add `.disabled` to items in the dropdown to **style them as disabled**. + + +
  • Regular link
  • +
  • Disabled link
  • +
  • Another link
  • +`} /> + +## Menu alignment + +By default, a dropdown menu is automatically positioned 100% from the top and along the left side of its parent. You can change this with the directional `.drop*` classes, but you can also control them with additional modifier classes. + +Add `.dropdown-menu-end` to a `.dropdown-menu` to right align the dropdown menu. Directions are mirrored when using Bootstrap in RTL, meaning `.dropdown-menu-end` will appear on the left side. + + +**Heads up!** Dropdowns are positioned thanks to Popper except when they are contained in a navbar. + + + + + +`} /> + +### Responsive alignment + +If you want to use responsive alignment, disable dynamic positioning by adding the `data-bs-display="static"` attribute and use the responsive variation classes. + +To align **right** the dropdown menu with the given breakpoint or larger, add `.dropdown-menu{-sm|-md|-lg|-xl|-xxl}-end`. + + + + +`} /> + +To align **left** the dropdown menu with the given breakpoint or larger, add `.dropdown-menu-end` and `.dropdown-menu{-sm|-md|-lg|-xl|-xxl}-start`. + + + + +`} /> + +Note that you don't need to add a `data-bs-display="static"` attribute to dropdown buttons in navbars, since Popper isn't used in navbars. + +### Alignment options + +Taking most of the options shown above, here's a small kitchen sink demo of various dropdown alignment options in one place. + + + + + + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    + +
    + + +
    `} /> + +## Menu content + +### Headers + +Add a header to label sections of actions in any dropdown menu. + + +
  • +
  • Action
  • +
  • Another action
  • +`} /> + +### Dividers + +Separate groups of related menu items with a divider. + + +
  • Action
  • +
  • Another action
  • +
  • Something else here
  • +
  • +
  • Separated link
  • +`} /> + +### Text + +Place any freeform text within a dropdown menu with text and use [spacing utilities]([[docsref:/utilities/spacing]]). Note that you'll likely need additional sizing styles to constrain the menu width. + + +

    + Some example text that's free-flowing within the dropdown menu. +

    +

    + And this is more example text. +

    +`} /> + +### Forms + +Put a form within a dropdown menu, or make it into a dropdown menu, and use [margin or padding utilities]([[docsref:/utilities/spacing]]) to give it the negative space you require. + + +
    +
    + + +
    +
    + + +
    +
    +
    + + +
    +
    + +
    + + New around here? Sign up + Forgot password? +`} /> + + + + +`} /> + +## Dropdown options + +Use `data-bs-offset` or `data-bs-reference` to change the location of the dropdown. + + + +
    + + + +
    +`} /> + +### Auto close behavior + +By default, the dropdown menu is closed when clicking inside or outside the dropdown menu. You can use the `autoClose` option to change this behavior of the dropdown. + + + + + + +
    + + +
    + +
    + + +
    + +
    + + +
    `} /> + +## CSS + +### Variables + + + +As part of Bootstrap's evolving CSS variables approach, dropdowns now use local CSS variables on `.dropdown-menu` for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too. + + + + +Dropdown items include at least one variable that is not set on `.dropdown`. This allows you to provide a new value while Bootstrap defaults to a fallback value. + +- `--bs-dropdown-item-border-radius` + + +Customization through CSS variables can be seen on the `.dropdown-menu-dark` class where we override specific values without adding duplicate CSS selectors. + + + +### Sass variables + +Variables for all dropdowns: + + + +Variables for the [dark dropdown](#dark-dropdowns): + + + +Variables for the CSS-based carets that indicate a dropdown's interactivity: + + + +### Sass mixins + +Mixins are used to generate the CSS-based carets and can be found in `scss/mixins/_caret.scss`. + + + +## Usage + +Via data attributes or JavaScript, the dropdown plugin toggles hidden content (dropdown menus) by toggling the `.show` class on the parent `.dropdown-menu`. The `data-bs-toggle="dropdown"` attribute is relied on for closing dropdown menus at an application level, so it's a good idea to always use it. + + +On touch-enabled devices, opening a dropdown adds empty `mouseover` handlers to the immediate children of the `` element. This admittedly ugly hack is necessary to work around a [quirk in iOS' event delegation](https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html), which would otherwise prevent a tap anywhere outside of the dropdown from triggering the code that closes the dropdown. Once the dropdown is closed, these additional empty `mouseover` handlers are removed. + + +### Via data attributes + +Add `data-bs-toggle="dropdown"` to a link or button to toggle a dropdown. + +```html + +``` + +### Via JavaScript + + +Dropdowns must have `data-bs-toggle="dropdown"` on their trigger element, regardless of whether you call your dropdown via JavaScript or use the data-api. + + +Call the dropdowns via JavaScript: + +```js +const dropdownElementList = document.querySelectorAll('.dropdown-toggle') +const dropdownList = [...dropdownElementList].map(dropdownToggleEl => new bootstrap.Dropdown(dropdownToggleEl)) +``` + +### Options + + + + +| Name | Type | Default | Description | +| --- | --- | --- | --- | +| `autoClose` | boolean, string | `true` | Configure the auto close behavior of the dropdown:
    • `true` - the dropdown will be closed by clicking outside or inside the dropdown menu.
    • `false` - the dropdown will be closed by clicking the toggle button and manually calling `hide` or `toggle` method. (Also will not be closed by pressing Esc key)
    • `'inside'` - the dropdown will be closed (only) by clicking inside the dropdown menu.
    • `'outside'` - the dropdown will be closed (only) by clicking outside the dropdown menu.
    Note: the dropdown can always be closed with the Esc key. | +| `boundary` | string, element | `'clippingParents'` | Overflow constraint boundary of the dropdown menu (applies only to Popper's preventOverflow modifier). By default it's `clippingParents` and can accept an HTMLElement reference (via JavaScript only). For more information refer to Popper's [detectOverflow docs](https://popper.js.org/docs/v2/utils/detect-overflow/#boundary). | +| `display` | string | `'dynamic'` | By default, we use Popper for dynamic positioning. Disable this with `static`. | +| `offset` | array, string, function | `[0, 2]` | Offset of the dropdown relative to its target. You can pass a string in data attributes with comma separated values like: `data-bs-offset="10,20"`. When a function is used to determine the offset, it is called with an object containing the popper placement, the reference, and popper rects as its first argument. The triggering element DOM node is passed as the second argument. The function must return an array with two numbers: [skidding](https://popper.js.org/docs/v2/modifiers/offset/#skidding-1), [distance](https://popper.js.org/docs/v2/modifiers/offset/#distance-1). For more information refer to Popper's [offset docs](https://popper.js.org/docs/v2/modifiers/offset/#options). | +| `popperConfig` | null, object, function | `null` | To change Bootstrap's default Popper config, see [Popper's configuration](https://popper.js.org/docs/v2/constructors/#options). When a function is used to create the Popper configuration, it's called with an object that contains the Bootstrap's default Popper configuration. It helps you use and merge the default with your own configuration. The function must return a configuration object for Popper. | +| `reference` | string, element, object | `'toggle'` | Reference element of the dropdown menu. Accepts the values of `'toggle'`, `'parent'`, an HTMLElement reference or an object providing `getBoundingClientRect`. For more information refer to Popper's [constructor docs](https://popper.js.org/docs/v2/constructors/#createpopper) and [virtual element docs](https://popper.js.org/docs/v2/virtual-elements/). | +
    + +#### Using function with `popperConfig` + +```js +const dropdown = new bootstrap.Dropdown(element, { + popperConfig(defaultBsPopperConfig) { + // const newPopperConfig = {...} + // use defaultBsPopperConfig if needed... + // return newPopperConfig + } +}) +``` + +### Methods + + +| Method | Description | +| --- | --- | +| `dispose` | Destroys an element's dropdown. (Removes stored data on the DOM element) | +| `getInstance` | Static method which allows you to get the dropdown instance associated to a DOM element, you can use it like this: `bootstrap.Dropdown.getInstance(element)`. | +| `getOrCreateInstance` | Static method which returns a dropdown instance associated to a DOM element or create a new one in case it wasn't initialized. You can use it like this: `bootstrap.Dropdown.getOrCreateInstance(element)`. | +| `hide` | Hides the dropdown menu of a given navbar or tabbed navigation. | +| `show` | Shows the dropdown menu of a given navbar or tabbed navigation. | +| `toggle` | Toggles the dropdown menu of a given navbar or tabbed navigation. | +| `update` | Updates the position of an element's dropdown. | + + +### Events + +All dropdown events are fired at the toggling element and then bubbled up. So you can also add event listeners on the `.dropdown-menu`'s parent element. `hide.bs.dropdown` and `hidden.bs.dropdown` events have a `clickEvent` property (only when the original Event type is `click`) that contains an Event Object for the click event. + + +| Event type | Description | +| --- | --- | +| `hide.bs.dropdown` | Fires immediately when the `hide` instance method has been called. | +| `hidden.bs.dropdown` | Fired when the dropdown has finished being hidden from the user and CSS transitions have completed. | +| `show.bs.dropdown` | Fires immediately when the `show` instance method is called. | +| `shown.bs.dropdown` | Fired when the dropdown has been made visible to the user and CSS transitions have completed. | + + +```js +const myDropdown = document.getElementById('myDropdown') +myDropdown.addEventListener('show.bs.dropdown', event => { + // do something... +}) +``` diff --git a/site-new/src/content/docs/components/list-group.mdx b/site-new/src/content/docs/components/list-group.mdx new file mode 100644 index 0000000000..0bec4f1c3b --- /dev/null +++ b/site-new/src/content/docs/components/list-group.mdx @@ -0,0 +1,460 @@ +--- +title: List group +description: List groups are a flexible and powerful component for displaying a series of content. Modify and extend them to support just about any content within. +toc: true +--- + +import { getData } from '@libs/data' + +## Basic example + +The most basic list group is an unordered list with list items and the proper classes. Build upon it with the options that follow, or with your own CSS as needed. + + +
  • An item
  • +
  • A second item
  • +
  • A third item
  • +
  • A fourth item
  • +
  • And a fifth one
  • +`} /> + +## Active items + +Add `.active` to a `.list-group-item` to indicate the current active selection. + + +
  • An active item
  • +
  • A second item
  • +
  • A third item
  • +
  • A fourth item
  • +
  • And a fifth one
  • +`} /> + +## Disabled items + +Add `.disabled` to a `.list-group-item` to make it _appear_ disabled. Note that some elements with `.disabled` will also require custom JavaScript to fully disable their click events (e.g., links). + + +
  • A disabled item
  • +
  • A second item
  • +
  • A third item
  • +
  • A fourth item
  • +
  • And a fifth one
  • +`} /> + +## Links and buttons + +Use ``s or ` + + + + +`} /> + +## Flush + +Add `.list-group-flush` to remove some borders and rounded corners to render list group items edge-to-edge in a parent container (e.g., cards). + + +
  • An item
  • +
  • A second item
  • +
  • A third item
  • +
  • A fourth item
  • +
  • And a fifth one
  • +`} /> + +## Numbered + +Add the `.list-group-numbered` modifier class (and optionally use an `
      ` element) to opt into numbered list group items. Numbers are generated via CSS (as opposed to a `
        `s default browser styling) for better placement inside list group items and to allow for better customization. + +Numbers are generated by `counter-reset` on the `
          `, and then styled and placed with a `::before` pseudo-element on the `
        1. ` with `counter-increment` and `content`. + + +
        2. A list item
        3. +
        4. A list item
        5. +
        6. A list item
        7. +
        `} /> + +These work great with custom content as well. + + +
      1. +
        +
        Subheading
        + Content for list item +
        + 14 +
      2. +
      3. +
        +
        Subheading
        + Content for list item +
        + 14 +
      4. +
      5. +
        +
        Subheading
        + Content for list item +
        + 14 +
      6. +
      `} /> + +## Horizontal + +Add `.list-group-horizontal` to change the layout of list group items from vertical to horizontal across all breakpoints. Alternatively, choose a responsive variant `.list-group-horizontal-{sm|md|lg|xl|xxl}` to make a list group horizontal starting at that breakpoint's `min-width`. Currently **horizontal list groups cannot be combined with flush list groups.** + +**ProTip:** Want equal-width list group items when horizontal? Add `.flex-fill` to each list group item. + + `
        +
      • An item
      • +
      • A second item
      • +
      • A third item
      • +
      `)} /> + +## Variants + + +**Heads up!** As of v5.3.0, the `list-group-item-variant()` Sass mixin is deprecated. List group item variants now have their CSS variables overridden in [the Sass loop](#sass-loop). + + +Use contextual classes to style list items with a stateful background and color. + + +
    1. A simple default list group item
    2. + `, + ...getData('theme-colors').map((themeColor) => `
    3. A simple ${themeColor.name} list group item
    4. `), + `` +]} /> + +### For links and buttons + +Contextual classes also work with `.list-group-item-action` for `
      ` and ` + + + + + + + + +```html + +``` + + +In the above static example, we use `
      `, to avoid issues with the heading hierarchy in the documentation page. Structurally, however, a modal dialog represents its own separate document/context, so the `.modal-title` should ideally be an `

      `. If necessary, you can use the [font size utilities]([[docsref:/utilities/text#font-size]]) to control the heading's appearance. All the following live examples use this approach. + + +### Live demo + +Toggle a working modal demo by clicking the button below. It will slide down and fade in from the top of the page. + + + +
      + +
      + +```html + + + + + +``` + +### Static backdrop + +When backdrop is set to static, the modal will not close when clicking outside of it. Click the button below to try it. + + + +
      + +
      + +```html + + + + + +``` + +### Scrolling long content + +When modals become too long for the user's viewport or device, they scroll independent of the page itself. Try the demo below to see what we mean. + + + +
      + +
      + +You can also create a scrollable modal that allows scroll the modal body by adding `.modal-dialog-scrollable` to `.modal-dialog`. + + + +
      + +
      + +```html + + +``` + +### Vertically centered + +Add `.modal-dialog-centered` to `.modal-dialog` to vertically center the modal. + + + + + +
      + + +
      + +```html + + + + + +``` + +### Tooltips and popovers + +[Tooltips]([[docsref:/components/tooltips]]) and [popovers]([[docsref:/components/popovers]]) can be placed within modals as needed. When modals are closed, any tooltips and popovers within are also automatically dismissed. + + + +
      + +
      + +```html + +``` + +### Using the grid + +Utilize the Bootstrap grid system within a modal by nesting `.container-fluid` within the `.modal-body`. Then, use the normal grid system classes as you would anywhere else. + + + +
      + +
      + +```html + +``` + +### Varying modal content + +Have a bunch of buttons that all trigger the same modal with slightly different contents? Use `event.relatedTarget` and [HTML `data-bs-*` attributes](https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes) to vary the contents of the modal depending on which button was clicked. + +Below is a live demo followed by example HTML and JavaScript. For more information, [read the modal events docs](#events) for details on `relatedTarget`. + +Open modal for @mdo + + + +`} /> + + + +### Toggle between modals + +Toggle between multiple modals with some clever placement of the `data-bs-target` and `data-bs-toggle` attributes. For example, you could toggle a password reset modal from within an already open sign in modal. **Please note multiple modals cannot be open at the same time**—this method simply toggles between two separate modals. + +

      `} /> + +## Display headings + +Traditional heading elements are designed to work best in the meat of your page content. When you need a heading to stand out, consider using a **display heading**—a larger, slightly more opinionated heading style. + +
      +
      Display 1
      +
      Display 2
      +
      Display 3
      +
      Display 4
      +
      Display 5
      +
      Display 6
      +
      + +```html +

      Display 1

      +

      Display 2

      +

      Display 3

      +

      Display 4

      +

      Display 5

      +

      Display 6

      +``` + +Display headings are configured via the `$display-font-sizes` Sass map and two variables, `$display-font-weight` and `$display-line-height`. + +Display headings are customizable via two variables, `$display-font-family` and `$display-font-style`. + + + +## Lead + +Make a paragraph stand out by adding `.lead`. + + + This is a lead paragraph. It stands out from regular paragraphs. +

      `} /> + +## Inline text elements + +Styling for common inline HTML5 elements. + +You can use the mark tag to highlight text.

      +

      This line of text is meant to be treated as deleted text.

      +

      This line of text is meant to be treated as no longer accurate.

      +

      This line of text is meant to be treated as an addition to the document.

      +

      This line of text will render as underlined.

      +

      This line of text is meant to be treated as fine print.

      +

      This line rendered as bold text.

      +

      This line rendered as italicized text.

      `} /> + +Beware that those tags should be used for semantic purpose: + +- `` represents text which is marked or highlighted for reference or notation purposes. +- `` represents side-comments and small print, like copyright and legal text. +- `` represents element that are no longer relevant or no longer accurate. +- `` represents a span of inline text which should be rendered in a way that indicates that it has a non-textual annotation. + +If you want to style your text, you should use the following classes instead: + +- `.mark` will apply the same styles as ``. +- `.small` will apply the same styles as ``. +- `.text-decoration-underline` will apply the same styles as ``. +- `.text-decoration-line-through` will apply the same styles as ``. + +While not shown above, feel free to use `` and `` in HTML5. `` is meant to highlight words or phrases without conveying additional importance, while `` is mostly for voice, technical terms, etc. + +## Text utilities + +Change text alignment, transform, style, weight, line-height, decoration and color with our [text utilities]([[docsref:/utilities/text]]) and [color utilities]([[docsref:/utilities/colors]]). + +## Abbreviations + +Stylized implementation of HTML's `` element for abbreviations and acronyms to show the expanded version on hover. Abbreviations have a default underline and gain a help cursor to provide additional context on hover and to users of assistive technologies. + +Add `.initialism` to an abbreviation for a slightly smaller font-size. + +attr

      +

      HTML

      `} /> + +## Blockquotes + +For quoting blocks of content from another source within your document. Wrap `
      ` around any HTML as the quote. + + +

      A well-known quote, contained in a blockquote element.

      +
      `} /> + +### Naming a source + +The HTML spec requires that blockquote attribution be placed outside the `
      `. When providing attribution, wrap your `
      ` in a `
      ` and use a `
      ` or a block level element (e.g., `

      `) with the `.blockquote-footer` class. Be sure to wrap the name of the source work in `` as well. + + +

      +

      A well-known quote, contained in a blockquote element.

      +
      + +
      `} /> + +### Alignment + +Use text utilities as needed to change the alignment of your blockquote. + + +
      +

      A well-known quote, contained in a blockquote element.

      +
      + +`} /> + + +
      +

      A well-known quote, contained in a blockquote element.

      +
      + +`} /> + +## Lists + +### Unstyled + +Remove the default `list-style` and left margin on list items (immediate children only). **This only applies to immediate children list items**, meaning you will need to add the class for any nested lists as well. + + +
    5. This is a list.
    6. +
    7. It appears completely unstyled.
    8. +
    9. Structurally, it's still a list.
    10. +
    11. However, this style only applies to immediate child elements.
    12. +
    13. Nested lists: +
        +
      • are unaffected by this style
      • +
      • will still show a bullet
      • +
      • and have appropriate left margin
      • +
      +
    14. +
    15. This may still come in handy in some situations.
    16. +`} /> + +### Inline + +Remove a list's bullets and apply some light `margin` with a combination of two classes, `.list-inline` and `.list-inline-item`. + + +
    17. This is a list item.
    18. +
    19. And another one.
    20. +
    21. But they're displayed inline.
    22. +`} /> + +### Description list alignment + +Align terms and descriptions horizontally by using our grid system's predefined classes (or semantic mixins). For longer terms, you can optionally add a `.text-truncate` class to truncate the text with an ellipsis. + + +
      Description lists
      +
      A description list is perfect for defining terms.
      + +
      Term
      +
      +

      Definition for the term.

      +

      And some more placeholder definition text.

      +
      + +
      Another term
      +
      This definition is short, so no extra paragraphs or anything.
      + +
      Truncated term is truncated
      +
      This can be useful when space is tight. Adds an ellipsis at the end.
      + +
      Nesting
      +
      +
      +
      Nested definition list
      +
      I heard you like definition lists. Let me put a definition list inside your definition list.
      +
      +
      +`} /> + +## Responsive font sizes + +In Bootstrap 5, we've enabled responsive font sizes by default, allowing text to scale more naturally across device and viewport sizes. Have a look at the [RFS page]([[docsref:/getting-started/rfs]]) to find out how this works. + +## CSS + +### Sass variables + +Headings have some dedicated variables for sizing and spacing. + + + +Miscellaneous typography elements covered here and in [Reboot]([[docsref:/content/reboot]]) also have dedicated variables. + + + +### Sass mixins + +There are no dedicated mixins for typography, but Bootstrap does use [Responsive Font Sizing (RFS)]([[docsref:/getting-started/rfs]]). diff --git a/site-new/src/content/docs/customize/color-modes.mdx b/site-new/src/content/docs/customize/color-modes.mdx new file mode 100644 index 0000000000..b55fd9687b --- /dev/null +++ b/site-new/src/content/docs/customize/color-modes.mdx @@ -0,0 +1,200 @@ +--- +title: Color modes +description: Bootstrap now supports color modes, or themes, as of v5.3.0. Explore our default light color mode and the new dark mode, or create your own using our styles as your template. +toc: true +added: "5.3" +--- + +import { getDocsRelativePath } from '@libs/path' + +## Dark mode + +**Bootstrap now supports color modes, starting with dark mode!** With v5.3.0 you can implement your own color mode toggler (see below for an example from Bootstrap's docs) and apply the different color modes as you see fit. We support a light mode (default) and now dark mode. Color modes can be toggled globally on the `` element, or on specific components and elements, thanks to the `data-bs-theme` attribute. + +Alternatively, you can also switch to a media query implementation thanks to our color mode mixin—see [the usage section for details](#building-with-sass). Heads up though—this eliminates your ability to change themes on a per-component basis as shown below. + +## Example + +For example, to change the color mode of a dropdown menu, add `data-bs-theme="light"` or `data-bs-theme="dark"` to the parent `.dropdown`. Now, no matter the global color mode, these dropdowns will display with the specified theme value. + + + + + + +`} /> + +## How it works + +- As shown above, color mode styles are controlled by the `data-bs-theme` attribute. This attribute can be applied to the `` element, or to any other element or Bootstrap component. If applied to the `` element, it will apply to everything. If applied to a component or element, it will be scoped to that specific component or element. + +- For each color mode you wish to support, you'll need to add new overrides for the shared global CSS variables. We do this already in our `_root.scss` stylesheet for dark mode, with light mode being the default values. In writing color mode specific styles, use the mixin: + + ```scss + // Color mode variables in _root.scss + @include color-mode(dark) { + // CSS variable overrides here... + } + ``` + +- We use a custom `_variables-dark.scss` to power those shared global CSS variable overrides for dark mode. This file isn't required for your own custom color modes, but it's required for our dark mode for two reasons. First, it's better to have a single place to reset global colors. Second, some Sass variables had to be overridden for background images embedded in our CSS for accordions, form components, and more. + +## Usage + +### Enable dark mode + +Enable the built in dark color mode across your entire project by adding the `data-bs-theme="dark"` attribute to the `` element. This will apply the dark color mode to all components and elements, other than those with a specific `data-bs-theme` attribute applied. Building on the [quick start template]([[docsref:/getting-started/introduction#quick-start]]): + +```html + + + + + + Bootstrap demo + + + +

      Hello, world!

      + + + +``` + +Bootstrap does not yet ship with a built-in color mode picker, but you can use the one from our own documentation if you like. [Learn more in the JavaScript section.](#javascript) + +### Building with Sass + +Our new dark mode option is available to use for all users of Bootstrap, but it's controlled via data attributes instead of media queries and does not automatically toggle your project's color mode. You can disable our dark mode entirely via Sass by changing `$enable-dark-mode` to `false`. + +We use a custom Sass mixin, `color-mode()`, to help you control _how_ color modes are applied. By default, we use a `data` attribute approach, allowing you to create more user-friendly experiences where your visitors can choose to have an automatic dark mode or control their preference (like in our own docs here). This is also an easy and scalable way to add different themes and more custom color modes beyond light and dark. + +In case you want to use media queries and only make color modes automatic, you can change the mixin's default type via Sass variable. Consider the following snippet and its compiled CSS output. + +```scss +$color-mode-type: data; + +@include color-mode(dark) { + .element { + color: var(--bs-primary-text-emphasis); + background-color: var(--bs-primary-bg-subtle); + } +} +``` + +Outputs to: + +```css +[data-bs-theme=dark] .element { + color: var(--bs-primary-text-emphasis); + background-color: var(--bs-primary-bg-subtle); +} +``` + +And when setting to `media-query`: + +```scss +$color-mode-type: media-query; + +@include color-mode(dark) { + .element { + color: var(--bs-primary-text-emphasis); + background-color: var(--bs-primary-bg-subtle); + } +} +``` + +Outputs to: + +```css +@media (prefers-color-scheme: dark) { + .element { + color: var(--bs-primary-text-emphasis); + background-color: var(--bs-primary-bg-subtle); + } +} +``` + +## Custom color modes + +While the primary use case for color modes is light and dark mode, custom color modes are also possible. Create your own `data-bs-theme` selector with a custom value as the name of your color mode, then modify our Sass and CSS variables as needed. We opted to create a separate `_variables-dark.scss` stylesheet to house Bootstrap's dark mode specific Sass variables, but that's not required for you. + +For example, you can create a "blue theme" with the selector `data-bs-theme="blue"`. In your custom Sass or CSS file, add the new selector and override any global or component CSS variables as needed. If you're using Sass, you can also use Sass's functions within your CSS variable overrides. + + + +
      +
      Example blue theme
      +

      Some paragraph text to show how the blue theme might look with written copy.

      + +
      + + +
      + +```html +
      + ... +
      +``` + +## JavaScript + +To allow visitors or users to toggle color modes, you'll need to create a toggle element to control the `data-bs-theme` attribute on the root element, ``. We've built a toggler in our documentation that initially defers to a user's current system color mode, but provides an option to override that and pick a specific color mode. + +Here's a look at the JavaScript that powers it. Feel free to inspect our own documentation navbar to see how it's implemented using HTML and CSS from our own components. Note that if you decide to use media queries for your color modes, your JavaScript may need to be modified or removed if you prefer an implicit control. + + + +## CSS + +### Variables + +Dozens of root level CSS variables are repeated as overrides for dark mode. These are scoped to the color mode selector, which defaults to `data-bs-theme` but [can be configured](#building-with-sass) to use a `prefers-color-scheme` media query. Use these variables as a guideline for generating your own new color modes. + + + +### Sass variables + +CSS variables for our dark color mode are partially generated from dark mode specific Sass variables in `_variables-dark.scss`. This also includes some custom overrides for changing the colors of embedded SVGs used throughout our components. + + + +### Sass mixin + +Styles for dark mode, and any custom color modes you create, can be scoped appropriately to the `data-bs-theme` attribute selector or media query with the customizable `color-mode()` mixin. See the [Sass usage section](#building-with-sass) for more details. + + diff --git a/site-new/src/content/docs/customize/color.mdx b/site-new/src/content/docs/customize/color.mdx new file mode 100644 index 0000000000..dc945763ad --- /dev/null +++ b/site-new/src/content/docs/customize/color.mdx @@ -0,0 +1,511 @@ +--- +title: Color +description: Bootstrap is supported by an extensive color system that themes our styles and components. This enables more comprehensive customization and extension for any project. +toc: true +--- + +import { getData } from '@libs/data' +import { getSequence } from '@libs/utils' + +## Colors + + + +Bootstrap's color palette has continued to expand and become more nuanced in v5.3.0. We've added new variables for `secondary` and `tertiary` text and background colors, plus `{color}-bg-subtle`, `{color}-border-subtle`, and `{color}-text-emphasis` for our theme colors. These new colors are available through Sass and CSS variables (but not our color maps or utility classes) with the express goal of making it easier to customize across multiple colors modes like light and dark. These new variables are globally set on `:root` and are adapted for our new dark color mode while our original theme colors remain unchanged. + +Colors ending in `-rgb` provide the `red, green, blue` values for use in `rgb()` and `rgba()` color modes. For example, `rgba(var(--bs-secondary-bg-rgb), .5)`. + + +**Heads up!** There's some potential confusion with our new secondary and tertiary colors, and our existing secondary theme color, as well as our light and dark theme colors. Expect this to be ironed out in v6. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      DescriptionSwatchVariables
      + **Body —** Default foreground (color) and background, including components. + +
       
      +
      + `--bs-body-color`
      `--bs-body-color-rgb` +
      +
       
      +
      + `--bs-body-bg`
      `--bs-body-bg-rgb` +
      + **Secondary —** Use the `color` option for lighter text. Use the `bg` option for dividers and to indicate disabled component states. + +
       
      +
      + `--bs-secondary-color`
      `--bs-secondary-color-rgb` +
      +
       
      +
      + `--bs-secondary-bg`
      `--bs-secondary-bg-rgb` +
      + **Tertiary —** Use the `color` option for even lighter text. Use the `bg` option to style backgrounds for hover states, accents, and wells. + +
       
      +
      + `--bs-tertiary-color`
      `--bs-tertiary-color-rgb` +
      +
       
      +
      + `--bs-tertiary-bg`
      `--bs-tertiary-bg-rgb` +
      + **Emphasis —** For higher contrast text. Not applicable for backgrounds. + +
       
      +
      + `--bs-emphasis-color`
      `--bs-emphasis-color-rgb` +
      + **Border —** For component borders, dividers, and rules. Use `--bs-border-color-translucent` to blend with backgrounds with an `rgba()` value. + +
       
      +
      + `--bs-border-color`
      `--bs-border-color-rgb` +
      + **Primary —** Main theme color, used for hyperlinks, focus styles, and component and form active states. + +
       
      +
      + `--bs-primary`
      `--bs-primary-rgb` +
      +
       
      +
      + `--bs-primary-bg-subtle` +
      +
       
      +
      + `--bs-primary-border-subtle` +
      +
      Text
      +
      + `--bs-primary-text-emphasis` +
      + **Success —** Theme color used for positive or successful actions and information. + +
       
      +
      + `--bs-success`
      `--bs-success-rgb` +
      +
       
      +
      + `--bs-success-bg-subtle` +
      +
       
      +
      + `--bs-success-border-subtle` +
      +
      Text
      +
      + `--bs-success-text-emphasis` +
      + **Danger —** Theme color used for errors and dangerous actions. + +
       
      +
      + `--bs-danger`
      `--bs-danger-rgb` +
      +
       
      +
      + `--bs-danger-bg-subtle` +
      +
       
      +
      + `--bs-danger-border-subtle` +
      +
      Text
      +
      + `--bs-danger-text-emphasis` +
      + **Warning —** Theme color used for non-destructive warning messages. + +
       
      +
      + `--bs-warning`
      `--bs-warning-rgb` +
      +
       
      +
      + `--bs-warning-bg-subtle` +
      +
       
      +
      + `--bs-warning-border-subtle` +
      +
      Text
      +
      + `--bs-warning-text-emphasis` +
      + **Info —** Theme color used for neutral and informative content. + +
       
      +
      + `--bs-info`
      `--bs-info-rgb` +
      +
       
      +
      + `--bs-info-bg-subtle` +
      +
       
      +
      + `--bs-info-border-subtle` +
      +
      Text
      +
      + `--bs-info-text-emphasis` +
      + **Light —** Additional theme option for less contrasting colors. + +
       
      +
      + `--bs-light`
      `--bs-light-rgb` +
      +
       
      +
      + `--bs-light-bg-subtle` +
      +
       
      +
      + `--bs-light-border-subtle` +
      +
      Text
      +
      + `--bs-light-text-emphasis` +
      + **Dark —** Additional theme option for higher contrasting colors. + +
       
      +
      + `--bs-dark`
      `--bs-dark-rgb` +
      +
       
      +
      + `--bs-dark-bg-subtle` +
      +
       
      +
      + `--bs-dark-border-subtle` +
      +
      Text
      +
      + `--bs-dark-text-emphasis` +
      + +### Using the new colors + +These new colors are accessible via CSS variables and utility classes—like `--bs-primary-bg-subtle` and `.bg-primary-subtle`—allowing you to compose your own CSS rules with the variables, or to quickly apply styles via classes. The utilities are built with the color's associated CSS variables, and since we customize those CSS variables for dark mode, they are also adaptive to color mode by default. + + + Example element with utilities +`} /> + +### Theme colors + +We use a subset of all colors to create a smaller color palette for generating color schemes, also available as Sass variables and a Sass map in Bootstrap's `scss/_variables.scss` file. + +
      + {getData('theme-colors').map((themeColor) => { + return ( +
      +
      {themeColor.title}
      +
      + ) + })} +
      + +All these colors are available as a Sass map, `$theme-colors`. + + + +Check out [our Sass maps and loops docs]([[docsref:/customize/sass#maps-and-loops]]) for how to modify these colors. + +### All colors + +All Bootstrap colors are available as Sass variables and a Sass map in `scss/_variables.scss` file. To avoid increased file sizes, we don't create text or background color classes for each of these variables. Instead, we choose a subset of these colors for a [theme palette](#theme-colors). + +Be sure to monitor contrast ratios as you customize colors. As shown below, we've added three contrast ratios to each of the main colors—one for the swatch's current colors, one for against white, and one for against black. + +
      + {getData('colors').map((color) => { + if ((color.name !== "white") && (color.name !== "gray") && (color.name !== "gray-dark")) { + return ( +
      +
      + ${color.name} + {color.hex} +
      + + {getSequence(100, 900, 100).map((value) => { + return ( +
      ${color.name}-{value}
      + ) + })} +
      + ) + } + })} + +
      +
      $gray-500#adb5bd
      + {getData('grays').map((gray) => { + return ( +
      $gray-{gray.name}
      + ) + })} +
      + +
      +
      + $black + #000 +
      +
      + $white + #fff +
      +
      +
      + +### Notes on Sass + +Sass cannot programmatically generate variables, so we manually created variables for every tint and shade ourselves. We specify the midpoint value (e.g., `$blue-500`) and use custom color functions to tint (lighten) or shade (darken) our colors via Sass's `mix()` color function. + +Using `mix()` is not the same as `lighten()` and `darken()`—the former blends the specified color with white or black, while the latter only adjusts the lightness value of each color. The result is a much more complete suite of colors, as [shown in this CodePen demo](https://codepen.io/emdeoh/pen/zYOQOPB). + +Our `tint-color()` and `shade-color()` functions use `mix()` alongside our `$theme-color-interval` variable, which specifies a stepped percentage value for each mixed color we produce. See the `scss/_functions.scss` and `scss/_variables.scss` files for the full source code. + +## Color Sass maps + +Bootstrap's source Sass files include three maps to help you quickly and easily loop over a list of colors and their hex values. + +- `$colors` lists all our available base (`500`) colors +- `$theme-colors` lists all semantically named theme colors (shown below) +- `$grays` lists all tints and shades of gray + +Within `scss/_variables.scss`, you'll find Bootstrap's color variables and Sass map. Here's an example of the `$colors` Sass map: + + + +Add, remove, or modify values within the map to update how they're used in many other components. Unfortunately at this time, not _every_ component utilizes this Sass map. Future updates will strive to improve upon this. Until then, plan on making use of the `${color}` variables and this Sass map. + +### Example + +Here's how you can use these in your Sass: + +```scss +.alpha { color: $purple; } +.beta { + color: $yellow-300; + background-color: $indigo-900; +} +``` + +[Color]([[docsref:/utilities/colors]]) and [background]([[docsref:/utilities/background]]) utility classes are also available for setting `color` and `background-color` using the `500` color values. + +## Generating utilities + + + +Bootstrap doesn't include `color` and `background-color` utilities for every color variable, but you can generate these yourself with our [utility API]([[docsref:/utilities/api]]) and our extended Sass maps added in v5.1.0. + +1. To start, make sure you've imported our functions, variables, mixins, and utilities. +2. Use our `map-merge-multiple()` function to quickly merge multiple Sass maps together in a new map. +3. Merge this new combined map to extend any utility with a `{color}-{level}` class name. + +Here's an example that generates text color utilities (e.g., `.text-purple-500`) using the above steps. + +```scss +@import "bootstrap/scss/functions"; +@import "bootstrap/scss/variables"; +@import "bootstrap/scss/variables-dark"; +@import "bootstrap/scss/maps"; +@import "bootstrap/scss/mixins"; +@import "bootstrap/scss/utilities"; + +$all-colors: map-merge-multiple($blues, $indigos, $purples, $pinks, $reds, $oranges, $yellows, $greens, $teals, $cyans); + +$utilities: map-merge( + $utilities, + ( + "color": map-merge( + map-get($utilities, "color"), + ( + values: map-merge( + map-get(map-get($utilities, "color"), "values"), + ( + $all-colors + ), + ), + ), + ), + ) +); + +@import "bootstrap/scss/utilities/api"; +``` + +This will generate new `.text-{color}-{level}` utilities for every color and level. You can do the same for any other utility and property as well. diff --git a/site-new/src/content/docs/customize/components.mdx b/site-new/src/content/docs/customize/components.mdx new file mode 100644 index 0000000000..14208de917 --- /dev/null +++ b/site-new/src/content/docs/customize/components.mdx @@ -0,0 +1,75 @@ +--- +title: Components +description: Learn how and why we build nearly all our components responsively and with base and modifier classes. +toc: true +--- + +## Base classes + +Bootstrap's components are largely built with a base-modifier nomenclature. We group as many shared properties as possible into a base class, like `.btn`, and then group individual styles for each variant into modifier classes, like `.btn-primary` or `.btn-success`. + +To build our modifier classes, we use Sass's `@each` loops to iterate over a Sass map. This is especially helpful for generating variants of a component by our `$theme-colors` and creating responsive variants for each breakpoint. As you customize these Sass maps and recompile, you'll automatically see your changes reflected in these loops. + +Check out [our Sass maps and loops docs]([[docsref:/customize/sass#maps-and-loops]]) for how to customize these loops and extend Bootstrap's base-modifier approach to your own code. + +## Modifiers + +Many of Bootstrap's components are built with a base-modifier class approach. This means the bulk of the styling is contained to a base class (e.g., `.btn`) while style variations are confined to modifier classes (e.g., `.btn-danger`). These modifier classes are built from the `$theme-colors` map to make customizing the number and name of our modifier classes. + +Here are two examples of how we loop over the `$theme-colors` map to generate modifiers to the `.alert` and `.list-group` components. + + + + + +## Responsive + +These Sass loops aren't limited to color maps, either. You can also generate responsive variations of your components. Take for example our responsive alignment of the dropdowns where we mix an `@each` loop for the `$grid-breakpoints` Sass map with a media query include. + + + +Should you modify your `$grid-breakpoints`, your changes will apply to all the loops iterating over that map. + + + +For more information and examples on how to modify our Sass maps and variables, please refer to [the Sass section of the Grid documentation]([[docsref:/layout/grid#sass]]). + +## Creating your own + +We encourage you to adopt these guidelines when building with Bootstrap to create your own components. We've extended this approach ourselves to the custom components in our documentation and examples. Components like our callouts are built just like our provided components with base and modifier classes. + +
      +
      + This is a callout. We built it custom for our docs so our messages to you stand out. It has three variants via modifier classes. +
      +
      + +```html +
      ...
      +``` + +In your CSS, you'd have something like the following where the bulk of the styling is done via `.callout`. Then, the unique styles between each variant is controlled via modifier class. + +```scss +// Base class +.callout {} + +// Modifier classes +.callout-info {} +.callout-warning {} +.callout-danger {} +``` + +For the callouts, that unique styling is just a `border-left-color`. When you combine that base class with one of those modifier classes, you get your complete component family: + + +**This is an info callout.** Example text to show it in action. + + + +**This is a warning callout.** Example text to show it in action. + + + +**This is a danger callout.** Example text to show it in action. + diff --git a/site-new/src/content/docs/customize/css-variables.mdx b/site-new/src/content/docs/customize/css-variables.mdx new file mode 100644 index 0000000000..f331182c3b --- /dev/null +++ b/site-new/src/content/docs/customize/css-variables.mdx @@ -0,0 +1,70 @@ +--- +title: CSS variables +description: Use Bootstrap's CSS custom properties for fast and forward-looking design and development. +toc: true +--- + +Bootstrap includes many [CSS custom properties (variables)](https://developer.mozilla.org/en-US/docs/Web/CSS/Using_CSS_custom_properties) in its compiled CSS for real-time customization without the need to recompile Sass. These provide easy access to commonly used values like our theme colors, breakpoints, and primary font stacks when working in your browser's inspector, a code sandbox, or general prototyping. + +**All our custom properties are prefixed with `bs-`** to avoid conflicts with third party CSS. + +## Root variables + +Here are the variables we include (note that the `:root` is required) that can be accessed anywhere Bootstrap's CSS is loaded. They're located in our `_root.scss` file and included in our compiled dist files. + +### Default + +These CSS variables are available everywhere, regardless of color mode. + + + +### Dark mode + +These variables are scoped to our built-in dark mode. + + + +## Component variables + +Bootstrap 5 is increasingly making use of custom properties as local variables for various components. This way we reduce our compiled CSS, ensure styles aren't inherited in places like nested tables, and allow some basic restyling and extending of Bootstrap components after Sass compilation. + +Have a look at our table documentation for some [insight into how we're using CSS variables]([[docsref:/content/tables#how-do-the-variants-and-accented-tables-work]]). Our [navbars also use CSS variables]([[docsref:/components/navbar#css]]) as of v5.2.0. We're also using CSS variables across our grids—primarily for gutters the [new opt-in CSS grid]([[docsref:/layout/css-grid]])—with more component usage coming in the future. + +Whenever possible, we'll assign CSS variables at the base component level (e.g., `.navbar` for navbar and its sub-components). This reduces guessing on where and how to customize, and allows for easy modifications by our team in future updates. + +## Prefix + +Most CSS variables use a prefix to avoid collisions with your own codebase. This prefix is in addition to the `--` that's required on every CSS variable. + +Customize the prefix via the `$prefix` Sass variable. By default, it's set to `bs-` (note the trailing dash). + +## Examples + +CSS variables offer similar flexibility to Sass's variables, but without the need for compilation before being served to the browser. For example, here we're resetting our page's font and link styles with CSS variables. + +```css +body { + font: 1rem/1.5 var(--bs-font-sans-serif); +} +a { + color: var(--bs-blue); +} +``` + +## Focus variables + + + +Bootstrap provides custom `:focus` styles using a combination of Sass and CSS variables that can be optionally added to specific components and elements. We do not yet globally override all `:focus` styles. + +In our Sass, we set default values that can be customized before compiling. + + + +Those variables are then reassigned to `:root` level CSS variables that can be customized in real-time, including with options for `x` and `y` offsets (which default to their fallback value of `0`). + + + +## Grid breakpoints + +While we include our grid breakpoints as CSS variables (except for `xs`), be aware that **CSS variables do not work in media queries**. This is by design in the CSS spec for variables, but may change in coming years with support for `env()` variables. Check out [this Stack Overflow answer](https://stackoverflow.com/a/47212942) for some helpful links. In the meantime, you can use these variables in other CSS situations, as well as in your JavaScript. diff --git a/site-new/src/content/docs/customize/optimize.mdx b/site-new/src/content/docs/customize/optimize.mdx new file mode 100644 index 0000000000..e358d01fec --- /dev/null +++ b/site-new/src/content/docs/customize/optimize.mdx @@ -0,0 +1,90 @@ +--- +title: Optimize +description: Keep your projects lean, responsive, and maintainable so you can deliver the best experience and focus on more important jobs. +toc: true +--- + +## Lean Sass imports + +When using Sass in your asset pipeline, make sure you optimize Bootstrap by only `@import`ing the components you need. Your largest optimizations will likely come from the `Layout & Components` section of our `bootstrap.scss`. + + + + +If you're not using a component, comment it out or delete it entirely. For example, if you're not using the carousel, remove that import to save some file size in your compiled CSS. Keep in mind there are some dependencies across Sass imports that may make it more difficult to omit a file. + +## Lean JavaScript + +Bootstrap's JavaScript includes every component in our primary dist files (`bootstrap.js` and `bootstrap.min.js`), and even our primary dependency (Popper) with our bundle files (`bootstrap.bundle.js` and `bootstrap.bundle.min.js`). While you're customizing via Sass, be sure to remove related JavaScript. + +For instance, assuming you're using your own JavaScript bundler like Webpack, Parcel, or Vite, you'd only import the JavaScript you plan on using. In the example below, we show how to just include our modal JavaScript: + +{/* TODO(Astro migration): */} +```js +// Import just what we need + +// import 'bootstrap/js/dist/alert'; +// import 'bootstrap/js/dist/button'; +// import 'bootstrap/js/dist/carousel'; +// import 'bootstrap/js/dist/collapse'; +// import 'bootstrap/js/dist/dropdown'; +import 'bootstrap/js/dist/modal'; +// import 'bootstrap/js/dist/offcanvas'; +// import 'bootstrap/js/dist/popover'; +// import 'bootstrap/js/dist/scrollspy'; +// import 'bootstrap/js/dist/tab'; +// import 'bootstrap/js/dist/toast'; +// import 'bootstrap/js/dist/tooltip'; +``` + +This way, you're not including any JavaScript you don't intend to use for components like buttons, carousels, and tooltips. If you're importing dropdowns, tooltips or popovers, be sure to list the Popper dependency in your `package.json` file. + + +**Heads up!** Files in `bootstrap/js/dist` use the **default export**. To use them, do the following: + +{/* TODO(Astro migration): */} +```js +import Modal from 'bootstrap/js/dist/modal' +const modal = new Modal(document.getElementById('myModal')) +``` + + +## Autoprefixer .browserslistrc + +Bootstrap depends on Autoprefixer to automatically add browser prefixes to certain CSS properties. Prefixes are dictated by our `.browserslistrc` file, found in the root of the Bootstrap repo. Customizing this list of browsers and recompiling the Sass will automatically remove some CSS from your compiled CSS, if there are vendor prefixes unique to that browser or version. + +## Unused CSS + +_Help wanted with this section, please consider opening a PR. Thanks!_ + +While we don't have a prebuilt example for using [PurgeCSS](https://github.com/FullHuman/purgecss) with Bootstrap, there are some helpful articles and walkthroughs that the community has written. Here are some options: + +- https://medium.com/dwarves-foundation/remove-unused-css-styles-from-bootstrap-using-purgecss-88395a2c5772 +- https://lukelowrey.com/automatically-removeunused-css-from-bootstrap-or-other-frameworks + +Lastly, this [CSS Tricks article on unused CSS](https://css-tricks.com/how-do-you-remove-unused-css-from-a-site/) shows how to use PurgeCSS and other similar tools. + +## Minify and gzip + +Whenever possible, be sure to compress all the code you serve to your visitors. If you're using Bootstrap dist files, try to stick to the minified versions (indicated by the `.min.css` and `.min.js` extensions). If you're building Bootstrap from the source with your own build system, be sure to implement your own minifiers for HTML, CSS, and JS. + +## Non-blocking files + +While minifying and using compression might seem like enough, making your files non-blocking ones is also a big step in making your site well-optimized and fast enough. + +If you are using a [Lighthouse](https://developer.chrome.com/docs/lighthouse/overview/) plugin in Google Chrome, you may have stumbled over FCP. [The First Contentful Paint](https://web.dev/fcp/) metric measures the time from when the page starts loading to when any part of the page's content is rendered on the screen. + +You can improve FCP by deferring non-critical JavaScript or CSS. What does that mean? Simply, JavaScript or stylesheets that don't need to be present on the first paint of your page should be marked with `async` or `defer` attributes. + +This ensures that the less important resources are loaded later and not blocking the first paint. On the other hand, critical resources can be included as inline scripts or styles. + +If you want to learn more about this, there are already a lot of great articles about it: + +- https://web.dev/render-blocking-resources +- https://web.dev/defer-non-critical-css + +## Always use HTTPS + +Your website should only be available over HTTPS connections in production. HTTPS improves the security, privacy, and availability of all sites, and [there is no such thing as non-sensitive web traffic](https://https.cio.gov/everything/). The steps to configure your website to be served exclusively over HTTPS vary widely depending on your architecture and web hosting provider, and thus are beyond the scope of these docs. + +Sites served over HTTPS should also access all stylesheets, scripts, and other assets over HTTPS connections. Otherwise, you'll be sending users [mixed active content](https://developer.mozilla.org/en-US/docs/Web/Security/Mixed_content), leading to potential vulnerabilities where a site can be compromised by altering a dependency. This can lead to security issues and in-browser warnings displayed to users. Whether you're getting Bootstrap from a CDN or serving it yourself, ensure that you only access it over HTTPS connections. diff --git a/site-new/src/content/docs/customize/options.mdx b/site-new/src/content/docs/customize/options.mdx new file mode 100644 index 0000000000..719de6ec80 --- /dev/null +++ b/site-new/src/content/docs/customize/options.mdx @@ -0,0 +1,30 @@ +--- +title: Options +description: Quickly customize Bootstrap with built-in variables to easily toggle global CSS preferences for controlling style and behavior. +--- + +Customize Bootstrap with our built-in custom variables file and easily toggle global CSS preferences with new `$enable-*` Sass variables. Override a variable's value and recompile with `npm run test` as needed. + +You can find and customize these variables for key global options in Bootstrap's `scss/_variables.scss` file. + + +| Variable | Values | Description | +| ------------------------------ | ---------------------------------- | -------------------------------------------------------------------------------------- | +| `$spacer` | `1rem` (default), or any value > 0 | Specifies the default spacer value to programmatically generate our [spacer utilities]([[docsref:/utilities/spacing]]). | +| `$enable-dark-mode` | `true` (default) or `false` | Enables built-in [dark mode support]([[docsref:/customize/color-modes#dark-mode]]) across the project and its components. | +| `$enable-rounded` | `true` (default) or `false` | Enables predefined `border-radius` styles on various components. | +| `$enable-shadows` | `true` or `false` (default) | Enables predefined decorative `box-shadow` styles on various components. Does not affect `box-shadow`s used for focus states. | +| `$enable-gradients` | `true` or `false` (default) | Enables predefined gradients via `background-image` styles on various components. | +| `$enable-transitions` | `true` (default) or `false` | Enables predefined `transition`s on various components. | +| `$enable-reduced-motion` | `true` (default) or `false` | Enables the [`prefers-reduced-motion` media query]([[docsref:/getting-started/accessibility#reduced-motion]]), which suppresses certain animations/transitions based on the users' browser/operating system preferences. | +| `$enable-grid-classes` | `true` (default) or `false` | Enables the generation of CSS classes for the grid system (e.g. `.row`, `.col-md-1`, etc.). | +| `$enable-container-classes` | `true` (default) or `false` | Enables the generation of CSS classes for layout containers. (New in v5.2.0) | +| `$enable-caret` | `true` (default) or `false` | Enables pseudo element caret on `.dropdown-toggle`. | +| `$enable-button-pointers` | `true` (default) or `false` | Add "hand" cursor to non-disabled button elements. | +| `$enable-rfs` | `true` (default) or `false` | Globally enables [RFS]([[docsref:/getting-started/rfs]]). | +| `$enable-validation-icons` | `true` (default) or `false` | Enables `background-image` icons within textual inputs and some custom forms for validation states. | +| `$enable-negative-margins` | `true` or `false` (default) | Enables the generation of [negative margin utilities]([[docsref:/utilities/spacing#negative-margin]]). | +| `$enable-deprecation-messages` | `true` (default) or `false` | Set to `false` to hide warnings when using any of the deprecated mixins and functions that are planned to be removed in `v6`. | +| `$enable-important-utilities` | `true` (default) or `false` | Enables the `!important` suffix in utility classes. | +| `$enable-smooth-scroll` | `true` (default) or `false` | Applies `scroll-behavior: smooth` globally, except for users asking for reduced motion through [`prefers-reduced-motion` media query]([[docsref:/getting-started/accessibility#reduced-motion]]) | + diff --git a/site-new/src/content/docs/customize/overview.mdx b/site-new/src/content/docs/customize/overview.mdx new file mode 100644 index 0000000000..3be93e8d0a --- /dev/null +++ b/site-new/src/content/docs/customize/overview.mdx @@ -0,0 +1,51 @@ +--- +title: Customize +description: Learn how to theme, customize, and extend Bootstrap with Sass, a boatload of global options, an expansive color system, and more. +toc: false +aliases: "/docs/[[config:docs_version]]/customize/" +sections: + - title: Sass + description: Utilize our source Sass files to take advantage of variables, maps, mixins, and functions. + - title: Options + description: Customize Bootstrap with built-in variables to easily toggle global CSS preferences. + - title: Color + description: Learn about and customize the color systems that support the entire toolkit. + - title: Color modes + description: Explore our default light mode and the new dark mode, or create custom color modes yourself. + - title: Components + description: Learn how we build nearly all our components responsively and with base and modifier classes. + - title: CSS variables + description: Use Bootstrap's CSS custom properties for fast and forward-looking design and development. + - title: Optimize + description: Keep your projects lean, responsive, and maintainable so you can deliver the best experience. +--- + +## Overview + +There are multiple ways to customize Bootstrap. Your best path can depend on your project, the complexity of your build tools, the version of Bootstrap you're using, browser support, and more. + +Our two preferred methods are: + +1. Using Bootstrap [via package manager]([[docsref:/getting-started/download#package-managers]]) so you can use and extend our source files. +2. Using Bootstrap's compiled distribution files or [jsDelivr]([[docsref:/getting-started/download#cdn-via-jsdelivr]]) so you can add onto or override Bootstrap's styles. + +While we cannot go into details here on how to use every package manager, we can give some guidance on [using Bootstrap with your own Sass compiler]([[docsref:/customize/sass]]). + +For those who want to use the distribution files, review the [getting started page]([[docsref:/getting-started/introduction]]) for how to include those files and an example HTML page. From there, consult the docs for the layout, components, and behaviors you'd like to use. + +As you familiarize yourself with Bootstrap, continue exploring this section for more details on how to utilize our global options, making use of and changing our color system, how we build our components, how to use our growing list of CSS custom properties, and how to optimize your code when building with Bootstrap. + +## CSPs and embedded SVGs + +Several Bootstrap components include embedded SVGs in our CSS to style components consistently and easily across browsers and devices. **For organizations with more strict CSP configurations**, we've documented all instances of our embedded SVGs (all of which are applied via `background-image`) so you can more thoroughly review your options. + +- [Accordion]([[docsref:/components/accordion]]) +- [Carousel controls]([[docsref:/components/carousel#with-controls]]) +- [Close button]([[docsref:/components/close-button]]) (used in alerts and modals) +- [Form checkboxes and radio buttons]([[docsref:/forms/checks-radios]]) +- [Form switches]([[docsref:/forms/checks-radios#switches]]) +- [Form validation icons]([[docsref:/forms/validation#server-side]]) +- [Navbar toggle buttons]([[docsref:/components/navbar#responsive-behaviors]]) +- [Select menus]([[docsref:/forms/select]]) + +Based on [community conversation](https://github.com/twbs/bootstrap/issues/25394), some options for addressing this in your own codebase include [replacing the URLs with locally hosted assets]([[docsref:/getting-started/webpack#extracting-svg-files]]), removing the images and using inline images (not possible in all components), and modifying your CSP. Our recommendation is to carefully review your own security policies and decide on the best path forward, if necessary. diff --git a/site-new/src/content/docs/customize/sass.mdx b/site-new/src/content/docs/customize/sass.mdx new file mode 100644 index 0000000000..70f88c8184 --- /dev/null +++ b/site-new/src/content/docs/customize/sass.mdx @@ -0,0 +1,310 @@ +--- +title: Sass +description: Utilize our source Sass files to take advantage of variables, maps, mixins, and functions to help you build faster and customize your project. +toc: true +--- + +Utilize our source Sass files to take advantage of variables, maps, mixins, and more. + +## File structure + +Whenever possible, avoid modifying Bootstrap's core files. For Sass, that means creating your own stylesheet that imports Bootstrap so you can modify and extend it. Assuming you're using a package manager like npm, you'll have a file structure that looks like this: + +```text +your-project/ +├── scss +│ └── custom.scss +└── node_modules/ + └── bootstrap + ├── js + └── scss +``` + +If you've downloaded our source files and aren't using a package manager, you'll want to manually create something similar to that structure, keeping Bootstrap's source files separate from your own. + +```text +your-project/ +├── scss +│ └── custom.scss +└── bootstrap/ + ├── js + └── scss +``` + +## Importing + +In your `custom.scss`, you'll import Bootstrap's source Sass files. You have two options: include all of Bootstrap, or pick the parts you need. We encourage the latter, though be aware there are some requirements and dependencies across our components. You also will need to include some JavaScript for our plugins. + +```scss +// Custom.scss +// Option A: Include all of Bootstrap + +// Include any default variable overrides here (though functions won't be available) + +@import "../node_modules/bootstrap/scss/bootstrap"; + +// Then add additional custom code here +``` + +```scss +// Custom.scss +// Option B: Include parts of Bootstrap + +// 1. Include functions first (so you can manipulate colors, SVGs, calc, etc) +@import "../node_modules/bootstrap/scss/functions"; + +// 2. Include any default variable overrides here + +// 3. Include remainder of required Bootstrap stylesheets (including any separate color mode stylesheets) +@import "../node_modules/bootstrap/scss/variables"; +@import "../node_modules/bootstrap/scss/variables-dark"; + +// 4. Include any default map overrides here + +// 5. Include remainder of required parts +@import "../node_modules/bootstrap/scss/maps"; +@import "../node_modules/bootstrap/scss/mixins"; +@import "../node_modules/bootstrap/scss/root"; + +// 6. Optionally include any other parts as needed +@import "../node_modules/bootstrap/scss/utilities"; +@import "../node_modules/bootstrap/scss/reboot"; +@import "../node_modules/bootstrap/scss/type"; +@import "../node_modules/bootstrap/scss/images"; +@import "../node_modules/bootstrap/scss/containers"; +@import "../node_modules/bootstrap/scss/grid"; +@import "../node_modules/bootstrap/scss/helpers"; + +// 7. Optionally include utilities API last to generate classes based on the Sass map in `_utilities.scss` +@import "../node_modules/bootstrap/scss/utilities/api"; + +// 8. Add additional custom code here +``` + +With that setup in place, you can begin to modify any of the Sass variables and maps in your `custom.scss`. You can also start to add parts of Bootstrap under the `// Optional` section as needed. We suggest using the full import stack from our `bootstrap.scss` file as your starting point. + +## Variable defaults + +Every Sass variable in Bootstrap includes the `!default` flag allowing you to override the variable's default value in your own Sass without modifying Bootstrap's source code. Copy and paste variables as needed, modify their values, and remove the `!default` flag. If a variable has already been assigned, then it won't be re-assigned by the default values in Bootstrap. + +You will find the complete list of Bootstrap's variables in `scss/_variables.scss`. Some variables are set to `null`, these variables don't output the property unless they are overridden in your configuration. + +Variable overrides must come after our functions are imported, but before the rest of the imports. + +Here's an example that changes the `background-color` and `color` for the `` when importing and compiling Bootstrap via npm: + +```scss +// Required +@import "../node_modules/bootstrap/scss/functions"; + +// Default variable overrides +$body-bg: #000; +$body-color: #111; + +// Required +@import "../node_modules/bootstrap/scss/variables"; +@import "../node_modules/bootstrap/scss/variables-dark"; +@import "../node_modules/bootstrap/scss/maps"; +@import "../node_modules/bootstrap/scss/mixins"; +@import "../node_modules/bootstrap/scss/root"; + +// Optional Bootstrap components here +@import "../node_modules/bootstrap/scss/reboot"; +@import "../node_modules/bootstrap/scss/type"; +// etc +``` + +Repeat as necessary for any variable in Bootstrap, including the global options below. + + + +## Maps and loops + +Bootstrap includes a handful of Sass maps, key value pairs that make it easier to generate families of related CSS. We use Sass maps for our colors, grid breakpoints, and more. Just like Sass variables, all Sass maps include the `!default` flag and can be overridden and extended. + +Some of our Sass maps are merged into empty ones by default. This is done to allow easy expansion of a given Sass map, but comes at the cost of making _removing_ items from a map slightly more difficult. + +### Modify map + +All variables in the `$theme-colors` map are defined as standalone variables. To modify an existing color in our `$theme-colors` map, add the following to your custom Sass file: + +```scss +$primary: #0074d9; +$danger: #ff4136; +``` + +Later on, these variables are set in Bootstrap's `$theme-colors` map: + +```scss +$theme-colors: ( + "primary": $primary, + "danger": $danger +); +``` + +### Add to map + +Add new colors to `$theme-colors`, or any other map, by creating a new Sass map with your custom values and merging it with the original map. In this case, we'll create a new `$custom-colors` map and merge it with `$theme-colors`. + +```scss +// Create your own map +$custom-colors: ( + "custom-color": #900 +); + +// Merge the maps +$theme-colors: map-merge($theme-colors, $custom-colors); +``` + +### Remove from map + +To remove colors from `$theme-colors`, or any other map, use `map-remove`. Be aware you must insert `$theme-colors` between our requirements just after its definition in `variables` and before its usage in `maps`: + +```scss +// Required +@import "../node_modules/bootstrap/scss/functions"; +@import "../node_modules/bootstrap/scss/variables"; +@import "../node_modules/bootstrap/scss/variables-dark"; + +$theme-colors: map-remove($theme-colors, "info", "light", "dark"); + +@import "../node_modules/bootstrap/scss/maps"; +@import "../node_modules/bootstrap/scss/mixins"; +@import "../node_modules/bootstrap/scss/root"; + +// Optional +@import "../node_modules/bootstrap/scss/reboot"; +@import "../node_modules/bootstrap/scss/type"; +// etc +``` + +## Required keys + +Bootstrap assumes the presence of some specific keys within Sass maps as we used and extend these ourselves. As you customize the included maps, you may encounter errors where a specific Sass map's key is being used. + +For example, we use the `primary`, `success`, and `danger` keys from `$theme-colors` for links, buttons, and form states. Replacing the values of these keys should present no issues, but removing them may cause Sass compilation issues. In these instances, you'll need to modify the Sass code that makes use of those values. + +## Functions + +### Colors + +Next to the [Sass maps]([[docsref:/customize/color#color-sass-maps]]) we have, theme colors can also be used as standalone variables, like `$primary`. + +```scss +.custom-element { + color: $gray-100; + background-color: $dark; +} +``` + +You can lighten or darken colors with Bootstrap's `tint-color()` and `shade-color()` functions. These functions will mix colors with black or white, unlike Sass' native `lighten()` and `darken()` functions which will change the lightness by a fixed amount, which often doesn't lead to the desired effect. + + + +In practice, you'd call the function and pass in the color and weight parameters. + +```scss +.custom-element { + color: tint-color($primary, 10%); +} + +.custom-element-2 { + color: shade-color($danger, 30%); +} +``` + +### Color contrast + +In order to meet the [Web Content Accessibility Guidelines (WCAG)](https://www.w3.org/TR/WCAG/) contrast requirements, authors **must** provide a minimum [text color contrast of 4.5:1](https://www.w3.org/TR/WCAG/#contrast-minimum) and a minimum [non-text color contrast of 3:1](https://www.w3.org/TR/WCAG/#non-text-contrast), with very few exceptions. + +To help with this, we included the `color-contrast` function in Bootstrap. It uses the [WCAG contrast ratio algorithm](https://www.w3.org/TR/WCAG/#dfn-contrast-ratio) for calculating contrast thresholds based on [relative luminance](https://www.w3.org/TR/WCAG/#dfn-relative-luminance) in an `sRGB` color space to automatically return a light (`#fff`), dark (`#212529`) or black (`#000`) contrast color based on the specified base color. This function is especially useful for mixins or loops where you're generating multiple classes. + +For example, to generate color swatches from our `$theme-colors` map: + +```scss +@each $color, $value in $theme-colors { + .swatch-#{$color} { + color: color-contrast($value); + } +} +``` + +It can also be used for one-off contrast needs: + +```scss +.custom-element { + color: color-contrast(#000); // returns `color: #fff` +} +``` + +You can also specify a base color with our color map functions: + +```scss +.custom-element { + color: color-contrast($dark); // returns `color: #fff` +} +``` + +### Escape SVG + +We use the `escape-svg` function to escape the `<`, `>` and `#` characters for SVG background images. When using the `escape-svg` function, data URIs must be quoted. + +### Add and Subtract functions + +We use the `add` and `subtract` functions to wrap the CSS `calc` function. The primary purpose of these functions is to avoid errors when a "unitless" `0` value is passed into a `calc` expression. Expressions like `calc(10px - 0)` will return an error in all browsers, despite being mathematically correct. + +Example where the calc is valid: + +```scss +$border-radius: .25rem; +$border-width: 1px; + +.element { + // Output calc(.25rem - 1px) is valid + border-radius: calc($border-radius - $border-width); +} + +.element { + // Output the same calc(.25rem - 1px) as above + border-radius: subtract($border-radius, $border-width); +} +``` + +Example where the calc is invalid: + +```scss +$border-radius: .25rem; +$border-width: 0; + +.element { + // Output calc(.25rem - 0) is invalid + border-radius: calc($border-radius - $border-width); +} + +.element { + // Output .25rem + border-radius: subtract($border-radius, $border-width); +} +``` + +## Mixins + +Our `scss/mixins/` directory has a ton of mixins that power parts of Bootstrap and can also be used across your own project. + +### Color schemes + +A shorthand mixin for the `prefers-color-scheme` media query is available with support for `light`, `dark`, and custom color schemes. See [the color modes documentation]([[docsref:/customize/color-modes]]) for information on our color mode mixin. + + + +```scss +.custom-element { + @include color-scheme(dark) { + // Insert dark mode styles here + } + + @include color-scheme(custom-named-scheme) { + // Insert custom color scheme styles here + } +} +``` diff --git a/site-new/src/content/docs/extend/approach.mdx b/site-new/src/content/docs/extend/approach.mdx new file mode 100644 index 0000000000..6e6a86fa97 --- /dev/null +++ b/site-new/src/content/docs/extend/approach.mdx @@ -0,0 +1,84 @@ +--- +title: Approach +description: Learn about the guiding principles, strategies, and techniques used to build and maintain Bootstrap so you can more easily customize and extend it yourself. +aliases: + - "/docs/[[config:docs_version]]/extend/" +--- + +While the getting started pages provide an introductory tour of the project and what it offers, this document focuses on _why_ we do the things we do in Bootstrap. It explains our philosophy to building on the web so that others can learn from us, contribute with us, and help us improve. + +See something that doesn't sound right, or perhaps could be done better? [Open an issue]([[config:repo]]/issues/new/choose)—we'd love to discuss it with you. + +## Summary + +We'll dive into each of these more throughout, but at a high level, here's what guides our approach. + +- Components should be responsive and mobile-first +- Components should be built with a base class and extended via modifier classes +- Component states should obey a common z-index scale +- Whenever possible, prefer an HTML and CSS implementation over JavaScript +- Whenever possible, use utilities over custom styles +- Whenever possible, avoid enforcing strict HTML requirements (children selectors) + +## Responsive + +Bootstrap's responsive styles are built to be responsive, an approach that's often referred to as _mobile-first_. We use this term in our docs and largely agree with it, but at times it can be too broad. While not every component _must_ be entirely responsive in Bootstrap, this responsive approach is about reducing CSS overrides by pushing you to add styles as the viewport becomes larger. + +Across Bootstrap, you'll see this most clearly in our media queries. In most cases, we use `min-width` queries that begin to apply at a specific breakpoint and carry up through the higher breakpoints. For example, a `.d-none` applies from `min-width: 0` to infinity. On the other hand, a `.d-md-none` applies from the medium breakpoint and up. + +At times we'll use `max-width` when a component's inherent complexity requires it. At times, these overrides are functionally and mentally clearer to implement and support than rewriting core functionality from our components. We strive to limit this approach, but will use it from time to time. + +## Classes + +Aside from our Reboot, a cross-browser normalization stylesheet, all our styles aim to use classes as selectors. This means steering clear of type selectors (e.g., `input[type="text"]`) and extraneous parent classes (e.g., `.parent .child`) that make styles too specific to easily override. + +As such, components should be built with a base class that houses common, not-to-be overridden property-value pairs. For example, `.btn` and `.btn-primary`. We use `.btn` for all the common styles like `display`, `padding`, and `border-width`. We then use modifiers like `.btn-primary` to add the color, background-color, border-color, etc. + +Modifier classes should only be used when there are multiple properties or values to be changed across multiple variants. Modifiers are not always necessary, so be sure you're actually saving lines of code and preventing unnecessary overrides when creating them. Good examples of modifiers are our theme color classes and size variants. + +## z-index scales + +There are two `z-index` scales in Bootstrap—elements within a component and overlay components. + +### Component elements + +- Some components in Bootstrap are built with overlapping elements to prevent double borders without modifying the `border` property. For example, button groups, input groups, and pagination. +- These components share a standard `z-index` scale of `0` through `3`. +- `0` is default (initial), `1` is `:hover`, `2` is `:active`/`.active`, and `3` is `:focus`. +- This approach matches our expectations of highest user priority. If an element is focused, it's in view and at the user's attention. Active elements are second highest because they indicate state. Hover is third highest because it indicates user intent, but nearly _anything_ can be hovered. + +### Overlay components + +Bootstrap includes several components that function as an overlay of some kind. This includes, in order of highest `z-index`, dropdowns, fixed and sticky navbars, modals, tooltips, and popovers. These components have their own `z-index` scale that begins at `1000`. This starting number was chosen arbitrarily and serves as a small buffer between our styles and your project's custom styles. + +Each overlay component increases its `z-index` value slightly in such a way that common UI principles allow user focused or hovered elements to remain in view at all times. For example, a modal is document blocking (e.g., you cannot take any other action save for the modal's action), so we put that above our navbars. + +Learn more about this in our [`z-index` layout page]([[docsref:/layout/z-index]]). + +## HTML and CSS over JS + +Whenever possible, we prefer to write HTML and CSS over JavaScript. In general, HTML and CSS are more prolific and accessible to more people of all different experience levels. HTML and CSS are also faster in your browser than JavaScript, and your browser generally provides a great deal of functionality for you. + +This principle is our first-class JavaScript API using `data` attributes. You don't need to write nearly any JavaScript to use our JavaScript plugins; instead, write HTML. Read more about this in [our JavaScript overview page]([[docsref:/getting-started/javascript#data-attributes]]). + +Lastly, our styles build on the fundamental behaviors of common web elements. Whenever possible, we prefer to use what the browser provides. For example, you can put a `.btn` class on nearly any element, but most elements don't provide any semantic value or browser functionality. So instead, we use ` + +`} /> + +## File input + + + + + +
      + + +
      +
      + + +
      +
      + + +
      +
      + + +
      `} /> + +## Color + +Set the `type="color"` and add `.form-control-color` to the ``. We use the modifier class to set fixed `height`s and override some inconsistencies between browsers. + +Color picker +`} /> + +## Datalists + +Datalists allow you to create a group of `