diff --git a/.agents/tasks/dart-sass-site-styles.md b/.agents/tasks/dart-sass-site-styles.md new file mode 100644 index 00000000..22c79733 --- /dev/null +++ b/.agents/tasks/dart-sass-site-styles.md @@ -0,0 +1,59 @@ +--- +slug: dart-sass-site-styles +branch: get-theme-updates-dart-sass +owner: claude +status: in-review +started: 2026-10-30 +--- + +## Goal + +The site builds on the Dart Sass `site-commons` theme, and its own styles use +the Sass module system, so `hugo --minify` prints no Sass warnings and the CSS +stays the same. + +## Context + +- SpineEventEngine/site-commons#38 — move the theme and its sites from LibSass + to Dart Sass. Hugo deprecated LibSass in v0.153.0; Dart Sass 3.0 removes `@import`. +- The theme update brings in site-commons#39 (jQuery served as a file), #40 + (Dart Sass) and #41 (`@use`/`@forward`). `theme-main.scss` forwards the theme + and Bootstrap, so `@use "theme-main" as *;` gives a partial what `@import` did. +- Hugo sets `silenceDependencyDeprecations`, which hides deprecations in every + file except the entry one. The `sass` CLI with `--verbose` shows them all. +- Also folds in the Dependabot bumps of #558 (`source-map-js`) and #560 + (`postcss-selector-parser`, `@fullhuman/postcss-purgecss` 8). Nothing loads + PurgeCSS; the CSS is byte-identical with and without them. + +## Plan + +- [x] `hugo mod get -u github.com/SpineEventEngine/site-commons` in `site/`. +- [x] Cherry-pick the bumps from #558 and #560. +- [x] `main.scss` and its partials: `@import` → `@use`, in the same order. + - Partials that use theme or Bootstrap members: `@use "theme-main" as *;`. + - Partials that use another partial's members `@use` it by a relative path: + `base/colors` (variables), `base/common` (`%expandable-title`) and + `modules/forms` (`$form-error-color`). `main.scss` loads each of them + before its users, so no CSS moves. +- [x] `map-get()` → `map.get()`, `fade-out()` → `color.adjust($alpha: …)`. +- [x] Verify: Sass warnings, and the CSS rule by rule against the previous build. +- [x] Keep Check Links passing. With jQuery no longer inlined (site-commons#39), + Lychee reads whole pages and finds 14 links that were already broken. + - Point the Gitter link of the 1.0 blog post to where Gitter redirects. + - `.lycheeignore` lists the 13 broken in the imported docs, as in + SpineEventEngine/documentation#96. + +## Log + +- 2026-10-30 — theme update: the only Sass warnings left are the 28 `@import`s + in `main.scss`. CSS differences are Dart Sass formatting and precision, folded + `calc()`, the code-tab indicator's `border-radius: 1px`, no `@extend`ed + `.h1`–`.h6`/`.small`/`.mark` selectors (no page uses them), and the medium + Roboto Mono `.eot` now pointing to `fonts/robotomono/` (site-commons#41). +- 2026-10-30 — `@use` move: `hugo --minify` prints no Sass warnings. The `sass` + CLI reports 52 fewer deprecations (382 → 330), all the site's own; the rest + come from Bootstrap. The CSS has the same 12,764 declarations; one + `@extend`ed selector list lists its two selectors in the other order. +- 2026-10-30 — the CSS now starts with the theme's license comment instead of + Bootstrap's. `@use "theme-main"` emits that file's `/*!` header first, and + the theme's PostCSS step keeps only the first comment. To fix in `site-commons`. diff --git a/.github/workflows/check-links.yml b/.github/workflows/check-links.yml index 3f9b1562..fa41d67b 100644 --- a/.github/workflows/check-links.yml +++ b/.github/workflows/check-links.yml @@ -8,6 +8,7 @@ on: - 'docs/**' - 'site/**' - 'lychee.toml' + - '.lycheeignore' - '.github/workflows/check-links.yml' workflow_dispatch: @@ -110,13 +111,13 @@ jobs: if: steps.docs.outputs.present == 'true' run: hugo env | grep 'github.com/sass/dart-sass' - # `actions/setup-node@v4` ships with built-in npm caching that hashes + # `actions/setup-node` ships with built-in npm caching that hashes # the lockfile and restores `~/.npm`. We use that instead of a - # standalone `actions/cache@v4` block so there is only one source of + # standalone `actions/cache` block so there is only one source of # truth for the cache key (no drift between two layers). - name: Setup Node if: steps.docs.outputs.present == 'true' - uses: actions/setup-node@v4 + uses: actions/setup-node@v7 with: node-version: '26' cache: 'npm' @@ -128,7 +129,7 @@ jobs: # invalidates the cache deterministically regardless of site root. - name: Cache Hugo Modules if: steps.docs.outputs.present == 'true' - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: /tmp/hugo_cache key: ${{ runner.os }}-hugomod-${{ hashFiles('docs/**/go.sum', 'site/**/go.sum') }} @@ -152,7 +153,7 @@ jobs: # `max_cache_age` expires. - name: Cache Lychee results if: steps.docs.outputs.present == 'true' - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: .lycheecache key: cache-lychee-${{ runner.os }}-${{ hashFiles('lychee.toml') }} @@ -167,7 +168,7 @@ jobs: - name: Cache Lychee executable if: steps.docs.outputs.present == 'true' id: cache-lychee - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: lychee key: ${{ runner.os }}-${{ env.LYCHEE_VERSION_TAG }}-${{ env.LYCHEE_RELEASE }} @@ -187,7 +188,7 @@ jobs: # string when the file is absent, so this guard runs the download iff # neither the exact key nor any restore-key restored the binary. - name: Download Lychee executable - uses: robinraju/release-downloader@v1.7 + uses: robinraju/release-downloader@v1.13 if: steps.docs.outputs.present == 'true' && hashFiles('lychee/lychee') == '' with: repository: "lycheeverse/lychee" @@ -239,9 +240,32 @@ jobs: exit 1 fi + # Lychee prints broken links to this step's log only; the run page + # shows just "Process completed with exit code 2". `tee` keeps the + # report in the log and saves a copy, which the next step adds to the + # run summary. (`--output` would not do: it moves the report from the + # log to the file.) `pipefail` keeps Lychee's exit code. Without it, + # the step would take `tee`'s 0 and pass despite broken links. - name: Check links if: steps.docs.outputs.present == 'true' run: | + set -o pipefail ./lychee/lychee --config lychee.toml --timeout 60 \ --base-url http://localhost:1313/ \ - '${{ steps.docs.outputs.work_dir }}/public/**/*.html' + '${{ steps.docs.outputs.work_dir }}/public/**/*.html' \ + | tee lychee-report.txt + + # Runs after a failed `Check links` too, which is when the report + # matters most. `hashFiles` skips this step when Lychee never ran. + # `!cancelled()` needs the `${{ }}` wrapper: a bare leading `!` is + # a YAML tag. + - name: Publish link report + if: ${{ !cancelled() && hashFiles('lychee-report.txt') != '' }} + run: | + { + echo '## Link check' + echo + echo '```text' + cat lychee-report.txt + echo '```' + } >> "$GITHUB_STEP_SUMMARY" diff --git a/.lycheeignore b/.lycheeignore new file mode 100644 index 00000000..9c09d7ef --- /dev/null +++ b/.lycheeignore @@ -0,0 +1,23 @@ +# Lychee skips the URLs matching these patterns. It reads this file from the +# directory it runs in, the repository root. `lychee.toml` comes from `config` +# and `./config/pull` overwrites it, so links specific to this site go here. +# +# Remove a pattern once the module update that fixes its link lands here. + +# Broken in the docs of `SpineEventEngine/documentation`, which +# `site/config/_default/hugo.toml` imports as a module. Fixed by +# https://github.com/SpineEventEngine/documentation/pull/96. +^https://stackoverflow\.com/a/31814967/3183076$ + +# Broken in the docs of `SpineEventEngine/validation`, which come in through +# `SpineEventEngine/documentation`, so they can only be fixed there. +# See https://github.com/SpineEventEngine/documentation/issues/97. +^https://github\.com/SpineEventEngine/validation/blob/master/\.agents/running-builds\.md$ +^https://github\.com/SpineEventEngine/validation/blob/master/\.agents/documentation-guidelines\.md$ +^https://github\.com/SpineEventEngine/embed-code-go/blob/master/EMBEDDING\.md$ +^https://github\.com/SpineEventEngine/embed-code-go/tree/master/bin$ +^https://plugins\.gradle\.org/plugin/io\.spine\.validation$ +# Relative links that resolve outside the module's pages. +^http://localhost:[0-9]+/06-developers-guide/$ +^http://localhost:[0-9]+/developer/$ +^http://localhost:[0-9]+/typical_custom_option\.jpg$ diff --git a/config b/config index f5a8d409..0a2a559b 160000 --- a/config +++ b/config @@ -1 +1 @@ -Subproject commit f5a8d4093cd9d54b39a13f4da61c2932cc12a909 +Subproject commit 0a2a559ba37c0103f9135850bb770724370e8235 diff --git a/site/assets/scss/base/_colors.scss b/site/assets/scss/base/_colors.scss index 5f222922..7fad1bda 100755 --- a/site/assets/scss/base/_colors.scss +++ b/site/assets/scss/base/_colors.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + /* Extends colors from `site-commons`. */ $nav-blue-gradient: linear-gradient(152deg, #1378da 0%, #0b64cc 100%); diff --git a/site/assets/scss/base/_common.scss b/site/assets/scss/base/_common.scss index ee4a0406..61a75a07 100755 --- a/site/assets/scss/base/_common.scss +++ b/site/assets/scss/base/_common.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "sass:color"; +@use "theme-main" as *; + .intro-section { padding-top: 40px; padding-bottom: 48px; @@ -24,7 +27,7 @@ // Collapsible caret-icon in the mobile navigation and footer. .mobile-caret-icon { - background: fade-out($white, .97) url('img/icons/caret.svg') no-repeat center/cover; + background: color.adjust($white, $alpha: -.97) url('img/icons/caret.svg') no-repeat center/cover; opacity: 1; cursor: pointer; position: absolute; diff --git a/site/assets/scss/main.scss b/site/assets/scss/main.scss index ec9ba245..d2233f6a 100644 --- a/site/assets/scss/main.scss +++ b/site/assets/scss/main.scss @@ -13,34 +13,34 @@ */ /* Styles from `SpineEventEngine/site-commons`. */ -@import "theme-main"; +@use "theme-main"; -@import "base/colors"; -@import "base/common"; +@use "base/colors"; +@use "base/common"; -@import "modules/navbar"; -@import "modules/nav-search"; -@import "modules/buttons"; -@import "modules/footer"; -@import "modules/hero"; -@import "modules/feature-cards"; -@import "modules/call-to-action"; -@import "modules/go-top-button"; -@import "modules/subscribe-container"; -@import "modules/checkbox"; -@import "modules/redirect-screen"; -@import "modules/loader"; -@import "modules/forms"; -@import "modules/result-panel"; -@import "modules/message-modal"; +@use "modules/navbar"; +@use "modules/nav-search"; +@use "modules/buttons"; +@use "modules/footer"; +@use "modules/hero"; +@use "modules/feature-cards"; +@use "modules/call-to-action"; +@use "modules/go-top-button"; +@use "modules/subscribe-container"; +@use "modules/checkbox"; +@use "modules/redirect-screen"; +@use "modules/loader"; +@use "modules/forms"; +@use "modules/result-panel"; +@use "modules/message-modal"; -@import "pages/landing"; -@import "pages/release-notes/release-notes"; -@import "pages/release-notes/sidenav"; -@import "pages/faq"; -@import "pages/getting-help"; -@import "pages/about"; -@import "pages/licenses"; -@import "pages/privacy"; -@import "pages/checkout"; -@import "pages/blog"; +@use "pages/landing"; +@use "pages/release-notes/release-notes"; +@use "pages/release-notes/sidenav"; +@use "pages/faq"; +@use "pages/getting-help"; +@use "pages/about"; +@use "pages/licenses"; +@use "pages/privacy"; +@use "pages/checkout"; +@use "pages/blog"; diff --git a/site/assets/scss/modules/_buttons.scss b/site/assets/scss/modules/_buttons.scss index 19e55837..4fcc2bd6 100644 --- a/site/assets/scss/modules/_buttons.scss +++ b/site/assets/scss/modules/_buttons.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + $btn-font-size: 14px; $btn-border-radius: $border-radius-m; $btn-primary-color: $main-brand-color; diff --git a/site/assets/scss/modules/_call-to-action.scss b/site/assets/scss/modules/_call-to-action.scss index f2d41b52..4c3af023 100644 --- a/site/assets/scss/modules/_call-to-action.scss +++ b/site/assets/scss/modules/_call-to-action.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "theme-main" as *; + .call-to-action { background-image: $nav-blue-gradient; padding: 80px 0 84px; diff --git a/site/assets/scss/modules/_checkbox.scss b/site/assets/scss/modules/_checkbox.scss index 599498e1..bcefceb9 100644 --- a/site/assets/scss/modules/_checkbox.scss +++ b/site/assets/scss/modules/_checkbox.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + $checkbox-size: 18px; .checkbox-container { diff --git a/site/assets/scss/modules/_feature-cards.scss b/site/assets/scss/modules/_feature-cards.scss index 97a7a5b7..9f042bf2 100644 --- a/site/assets/scss/modules/_feature-cards.scss +++ b/site/assets/scss/modules/_feature-cards.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "theme-main" as *; + $feature-card-shadow: 0 1px 3px 0 rgba($footer-color, .08); .feature-section { diff --git a/site/assets/scss/modules/_footer.scss b/site/assets/scss/modules/_footer.scss index 49628f43..088b3a12 100755 --- a/site/assets/scss/modules/_footer.scss +++ b/site/assets/scss/modules/_footer.scss @@ -12,6 +12,10 @@ * and limitations under the License. */ +@use "sass:color"; +@use "../base/colors" as *; +@use "theme-main" as *; + $footer-header-color: #54595c; $footer-link-color: #b4bcbf; $copyright-bg-color: #1e2021; @@ -58,7 +62,7 @@ footer { } &:focus { - color: fade-out($white, .1); + color: color.adjust($white, $alpha: -.1); } &::after { @@ -145,7 +149,7 @@ footer { .mobile-caret-icon { opacity: 1; background-size: contain; - background-color: fade-out($white, .97); + background-color: color.adjust($white, $alpha: -.97); border-radius: 50%; } } diff --git a/site/assets/scss/modules/_forms.scss b/site/assets/scss/modules/_forms.scss index c83493f4..55e4f602 100644 --- a/site/assets/scss/modules/_forms.scss +++ b/site/assets/scss/modules/_forms.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + $form-error-color: $red; $form-success-color: $green; diff --git a/site/assets/scss/modules/_go-top-button.scss b/site/assets/scss/modules/_go-top-button.scss index 2d995a2c..298fd36a 100644 --- a/site/assets/scss/modules/_go-top-button.scss +++ b/site/assets/scss/modules/_go-top-button.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "sass:map"; +@use "theme-main" as *; + #go-top-button { $top-button-size: 60px; $top-button-icon-size: $icon-size-l; @@ -29,7 +32,7 @@ height: $top-button-size; cursor: pointer; -webkit-transform: translate3d(0, 0, 0); // Prevents jumping on scroll in Chrome. - z-index: map_get($z-index, 'go-top-button'); + z-index: map.get($z-index, 'go-top-button'); &:after { content: ""; diff --git a/site/assets/scss/modules/_hero.scss b/site/assets/scss/modules/_hero.scss index 949bebdc..299904f6 100755 --- a/site/assets/scss/modules/_hero.scss +++ b/site/assets/scss/modules/_hero.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "theme-main" as *; + .nav-hero-container { background-image: $nav-blue-gradient; position: relative; diff --git a/site/assets/scss/modules/_loader.scss b/site/assets/scss/modules/_loader.scss index 01320b8a..48ce9412 100644 --- a/site/assets/scss/modules/_loader.scss +++ b/site/assets/scss/modules/_loader.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .loader-container { .loader { margin: 16px auto 12px; diff --git a/site/assets/scss/modules/_message-modal.scss b/site/assets/scss/modules/_message-modal.scss index 42983a3e..629f89c8 100644 --- a/site/assets/scss/modules/_message-modal.scss +++ b/site/assets/scss/modules/_message-modal.scss @@ -12,10 +12,13 @@ * and limitations under the License. */ +@use "sass:map"; +@use "theme-main" as *; + .message-modal { position: fixed; inset: 0; - z-index: map_get($z-index, 'redirect-screen'); + z-index: map.get($z-index, 'redirect-screen'); display: flex; align-items: center; justify-content: center; diff --git a/site/assets/scss/modules/_nav-search.scss b/site/assets/scss/modules/_nav-search.scss index 44f5b407..50162283 100644 --- a/site/assets/scss/modules/_nav-search.scss +++ b/site/assets/scss/modules/_nav-search.scss @@ -12,8 +12,11 @@ * and limitations under the License. */ +@use "sass:map"; +@use "theme-main" as *; + $docsearch-icon-color: rgba(white, .54); -$docsearch-mobile-breakpoint: map-get($breakpoints, mobile-navbar); +$docsearch-mobile-breakpoint: map.get($breakpoints, mobile-navbar); $docsearch-algolia-mobile: 750px; $docsearch-border-color: #ebedf5; @@ -69,7 +72,7 @@ mark { } .DocSearch-Container { - z-index: map_get($z-index, 'search-mobile') !important; + z-index: map.get($z-index, 'search-mobile') !important; @include breakpoint($docsearch-algolia-mobile) { position: fixed; diff --git a/site/assets/scss/modules/_navbar.scss b/site/assets/scss/modules/_navbar.scss index 515a4b7a..f09cc9a5 100755 --- a/site/assets/scss/modules/_navbar.scss +++ b/site/assets/scss/modules/_navbar.scss @@ -12,6 +12,11 @@ * and limitations under the License. */ +@use "sass:color"; +@use "sass:map"; +@use "../base/colors" as *; +@use "theme-main" as *; + .navigation-opened { @include breakpoint(mobile-navbar) { overflow: hidden; @@ -27,7 +32,7 @@ #header { width: 100%; min-height: $header-height; - z-index: map_get($z-index, 'header'); + z-index: map.get($z-index, 'header'); position: absolute; // Fixes the header on the page. @@ -78,7 +83,7 @@ @include breakpoint(mobile-navbar) { background-color: $footer-color; box-shadow: -1px 0px 8px 0px rgba(black, .25); - z-index: map_get($z-index, 'nav-mobile'); + z-index: map.get($z-index, 'nav-mobile'); display: block; position: fixed; top: 0; @@ -94,7 +99,7 @@ width: 100%; height: 56px; background-color: rgba($footer-color, .95); - z-index: map_get($z-index, 'header'); + z-index: map.get($z-index, 'header'); margin: -48px -24px; } } @@ -181,7 +186,7 @@ &:hover { opacity: 1; background-size: contain; - background-color: fade-out($white, .97); + background-color: color.adjust($white, $alpha: -.97); border-radius: 50%; } } @@ -270,7 +275,7 @@ position: relative; transform: rotate(0deg); transition: .5s ease-in-out; - z-index: map_get($z-index, 'hamburger-menu'); + z-index: map.get($z-index, 'hamburger-menu'); cursor: pointer; } diff --git a/site/assets/scss/modules/_redirect-screen.scss b/site/assets/scss/modules/_redirect-screen.scss index 29550b8f..51407108 100644 --- a/site/assets/scss/modules/_redirect-screen.scss +++ b/site/assets/scss/modules/_redirect-screen.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "sass:map"; +@use "theme-main" as *; + .redirect-screen { // The section will be hidden until the order request button is pressed. display: none; @@ -22,7 +25,7 @@ right: 0; bottom: 0; left: 0; - z-index: map_get($z-index, 'redirect-screen'); + z-index: map.get($z-index, 'redirect-screen'); background-color: rgba(255, 255, 255, .9); animation: fadeIn .23s linear forwards; } diff --git a/site/assets/scss/modules/_result-panel.scss b/site/assets/scss/modules/_result-panel.scss index 9f6facfe..5aaa4e6a 100644 --- a/site/assets/scss/modules/_result-panel.scss +++ b/site/assets/scss/modules/_result-panel.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .error-pages { .main { display: flex; diff --git a/site/assets/scss/modules/_subscribe-container.scss b/site/assets/scss/modules/_subscribe-container.scss index 09f12e08..7ab27e2e 100644 --- a/site/assets/scss/modules/_subscribe-container.scss +++ b/site/assets/scss/modules/_subscribe-container.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "theme-main" as *; + .subscribe-container { $icon-size: 32px; diff --git a/site/assets/scss/pages/_about.scss b/site/assets/scss/pages/_about.scss index 84d08d80..fdf5942f 100755 --- a/site/assets/scss/pages/_about.scss +++ b/site/assets/scss/pages/_about.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "theme-main" as *; + .about { section { h2 { diff --git a/site/assets/scss/pages/_checkout.scss b/site/assets/scss/pages/_checkout.scss index a97fd887..0c96db96 100644 --- a/site/assets/scss/pages/_checkout.scss +++ b/site/assets/scss/pages/_checkout.scss @@ -12,8 +12,10 @@ * and limitations under the License. */ -@import 'libs/country-select/select2'; -@import 'libs/intl-tel-input/intl-tel-input'; +@use "../libs/country-select/select2"; +@use "../libs/intl-tel-input/intl-tel-input"; +@use "../modules/forms" as *; +@use "theme-main" as *; $checkout-panel-width: 790px; diff --git a/site/assets/scss/pages/_faq.scss b/site/assets/scss/pages/_faq.scss index f34688d6..f2571ae4 100644 --- a/site/assets/scss/pages/_faq.scss +++ b/site/assets/scss/pages/_faq.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + $icon-right-offset: 48px; $content-top-offset: 48px; $faq-title-padding: 16px $icon-right-offset; diff --git a/site/assets/scss/pages/_getting-help.scss b/site/assets/scss/pages/_getting-help.scss index 9a23c0e5..5ec6a347 100644 --- a/site/assets/scss/pages/_getting-help.scss +++ b/site/assets/scss/pages/_getting-help.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + :root { --pricing-card-side-padding: 32px; --pricing-card-header-side-padding: 32px; diff --git a/site/assets/scss/pages/_landing.scss b/site/assets/scss/pages/_landing.scss index f6b3ce1c..0ff583a7 100644 --- a/site/assets/scss/pages/_landing.scss +++ b/site/assets/scss/pages/_landing.scss @@ -12,6 +12,9 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "theme-main" as *; + .landing-content-container { padding: 32px 0 56px; position: relative; diff --git a/site/assets/scss/pages/_licenses.scss b/site/assets/scss/pages/_licenses.scss index 3d7ba138..0f1e427e 100644 --- a/site/assets/scss/pages/_licenses.scss +++ b/site/assets/scss/pages/_licenses.scss @@ -12,6 +12,10 @@ * and limitations under the License. */ +@use "../base/colors" as *; +@use "../base/common" as *; +@use "theme-main" as *; + $panel-padding: 16px 56px; $open-panel-padding: 8px 56px 24px; $open-panel-padding-mobile: 0 0 24px; diff --git a/site/assets/scss/pages/_privacy.scss b/site/assets/scss/pages/_privacy.scss index 4c4cd9cc..a058e7fe 100644 --- a/site/assets/scss/pages/_privacy.scss +++ b/site/assets/scss/pages/_privacy.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .privacy { background-color: var(--body-bg-color); diff --git a/site/assets/scss/pages/blog/_blog-container.scss b/site/assets/scss/pages/blog/_blog-container.scss index a30bb5de..6e0aedfe 100644 --- a/site/assets/scss/pages/blog/_blog-container.scss +++ b/site/assets/scss/pages/blog/_blog-container.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .blog-container { $nav-col-width: 220px; $blog-one-column-breakpoint: 1024px; diff --git a/site/assets/scss/pages/blog/_blog.scss b/site/assets/scss/pages/blog/_blog.scss index b4f3bc1d..e294effb 100755 --- a/site/assets/scss/pages/blog/_blog.scss +++ b/site/assets/scss/pages/blog/_blog.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .blog { background-color: var(--body-bg-color); diff --git a/site/assets/scss/pages/blog/_index.scss b/site/assets/scss/pages/blog/_index.scss index 1f988b54..722a93cc 100644 --- a/site/assets/scss/pages/blog/_index.scss +++ b/site/assets/scss/pages/blog/_index.scss @@ -12,8 +12,8 @@ * and limitations under the License. */ -@import "blog-container"; -@import "blog"; -@import "post-navigation"; -@import "post-info"; -@import "post"; +@use "blog-container"; +@use "blog"; +@use "post-navigation"; +@use "post-info"; +@use "post"; diff --git a/site/assets/scss/pages/blog/_post-info.scss b/site/assets/scss/pages/blog/_post-info.scss index 097e7637..3bfff2ac 100644 --- a/site/assets/scss/pages/blog/_post-info.scss +++ b/site/assets/scss/pages/blog/_post-info.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .post-info { margin-bottom: 20px; diff --git a/site/assets/scss/pages/blog/_post-navigation.scss b/site/assets/scss/pages/blog/_post-navigation.scss index 93b514e4..af8f4329 100644 --- a/site/assets/scss/pages/blog/_post-navigation.scss +++ b/site/assets/scss/pages/blog/_post-navigation.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .post-navigation { $nav-item-font-size: 12px; $nav-item-color: $gray-700; diff --git a/site/assets/scss/pages/blog/_post.scss b/site/assets/scss/pages/blog/_post.scss index 888b7407..51f188da 100644 --- a/site/assets/scss/pages/blog/_post.scss +++ b/site/assets/scss/pages/blog/_post.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .post { background-color: var(--body-bg-color); diff --git a/site/assets/scss/pages/release-notes/_release-notes.scss b/site/assets/scss/pages/release-notes/_release-notes.scss index 6fc11785..1883a79d 100644 --- a/site/assets/scss/pages/release-notes/_release-notes.scss +++ b/site/assets/scss/pages/release-notes/_release-notes.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + .release-notes { .article-container { min-height: 350px; diff --git a/site/assets/scss/pages/release-notes/_sidenav.scss b/site/assets/scss/pages/release-notes/_sidenav.scss index fbd6d463..7c4d7c12 100644 --- a/site/assets/scss/pages/release-notes/_sidenav.scss +++ b/site/assets/scss/pages/release-notes/_sidenav.scss @@ -12,6 +12,8 @@ * and limitations under the License. */ +@use "theme-main" as *; + // Extends styles from `scss/docs/modules/_sidenav.scss`. $sidenav-first-level-left-padding: 24px; diff --git a/site/content/blog/spine-event-engine-1-0-is-out/index.md b/site/content/blog/spine-event-engine-1-0-is-out/index.md index 1f55b9d6..9f53e94e 100644 --- a/site/content/blog/spine-event-engine-1-0-is-out/index.md +++ b/site/content/blog/spine-event-engine-1-0-is-out/index.md @@ -49,6 +49,6 @@ integration with web UI. We will announce the updates [@SpineEngine 𝕏][xtwitt [protobuf]: https://developers.google.com/protocol-buffers/ [key-concepts]: docs/introduction/concepts/ [examples]: https://github.com/spine-examples/ -[gitter-room]: https://gitter.im/SpineEventEngine/community +[gitter-room]: https://app.gitter.im/#/room/#SpineEventEngine_community:gitter.im [spine-github]: https://github.com/SpineEventEngine/ [xtwitter]: {{% get-site-data "socials.xtwitter" %}} diff --git a/site/go.mod b/site/go.mod index 8e4a263d..544f69e4 100644 --- a/site/go.mod +++ b/site/go.mod @@ -4,7 +4,7 @@ go 1.27.3 require ( github.com/SpineEventEngine/documentation/docs v0.0.0-20261030164337-3045fa4e0dd6 // indirect - github.com/SpineEventEngine/site-commons v0.0.0-20261030153256-b79100d8a139 // indirect + github.com/SpineEventEngine/site-commons v0.0.0-20261030172811-9216e48eb656 // indirect github.com/SpineEventEngine/validation/docs v0.0.0-20260902132507-6465029c83b9 // indirect github.com/gohugoio/hugo-mod-bootstrap-scss/v5 v5.20300.20800 // indirect github.com/gohugoio/hugo-mod-jslibs-dist/popperjs/v2 v2.21100.20000 // indirect diff --git a/site/go.sum b/site/go.sum index a2b7fd06..a5b9f133 100644 --- a/site/go.sum +++ b/site/go.sum @@ -12,6 +12,8 @@ github.com/SpineEventEngine/site-commons v0.0.0-20261001182820-d2b63aedd0f4 h1:P github.com/SpineEventEngine/site-commons v0.0.0-20261001182820-d2b63aedd0f4/go.mod h1:tkAl4StIREKmz9r5PiJtuDhvwMMkFXKWcaTyxhIikho= github.com/SpineEventEngine/site-commons v0.0.0-20261030153256-b79100d8a139 h1:DOYFVaEw9v3dML+40FysPUaTczyqK5+LqWJZQkK4Hs0= github.com/SpineEventEngine/site-commons v0.0.0-20261030153256-b79100d8a139/go.mod h1:TfFFABXgPop1uc4eBdfWZF0Es06TGmNHfReiOzkZqrk= +github.com/SpineEventEngine/site-commons v0.0.0-20261030172811-9216e48eb656 h1:9H15KSiUrQP3U/uhDfVgSXMwqS7ehUppeqtQzRxR6LE= +github.com/SpineEventEngine/site-commons v0.0.0-20261030172811-9216e48eb656/go.mod h1:TfFFABXgPop1uc4eBdfWZF0Es06TGmNHfReiOzkZqrk= github.com/SpineEventEngine/validation/docs v0.0.0-20260205202311-181ba8844107 h1:2DHRIwwLudP6l3Kh7Nd4KR4uXcsDtIAXE9adW68ivME= github.com/SpineEventEngine/validation/docs v0.0.0-20260205202311-181ba8844107/go.mod h1:STHyjXejVvPmfrxujfDvhofmjg55mMk+fwI3TVL0b4Y= github.com/SpineEventEngine/validation/docs v0.0.0-20260522175555-cf09b4c706ea h1:YEMSlr5KJXkZdK7epMSnN+6HSr2K41n8O3c8OhtF8pM= diff --git a/site/package-lock.json b/site/package-lock.json index bf28e081..eb51e566 100644 --- a/site/package-lock.json +++ b/site/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "@fullhuman/postcss-purgecss": "^7.0.2", + "@fullhuman/postcss-purgecss": "^8.0.0", "autoprefixer": "^10.5.0", "intl-tel-input": "18.2.1", "postcss": "^8.5.14", @@ -19,111 +19,54 @@ } }, "node_modules/@fullhuman/postcss-purgecss": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-7.0.2.tgz", - "integrity": "sha512-U4zAXNaVztbDxO9EdcLp51F3UxxYsb/7DN89rFxFJhfk2Wua2pvw2Kf3HdspbPhW/wpHjSjsxWYoIlbTgRSjbQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@fullhuman/postcss-purgecss/-/postcss-purgecss-8.0.0.tgz", + "integrity": "sha512-fSRaBGf6+DYdfQMxedWfnIW8FSYE1LBpgy16jpK1L2vNb1HgeBRRZ+UX4UokNmW7YEAwPdvwkKdYtlkYpH+Aqg==", "dev": true, + "license": "MIT", "dependencies": { - "purgecss": "^7.0.2" + "purgecss": "^8.0.0" }, "peerDependencies": { "postcss": "^8.0.0" } }, - "node_modules/@isaacs/cliui": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", - "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", - "dev": true, - "dependencies": { - "string-width": "^5.1.2", - "string-width-cjs": "npm:string-width@^4.2.0", - "strip-ansi": "^7.0.1", - "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", - "wrap-ansi": "^8.1.0", - "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-regex": { - "version": "6.2.2", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", - "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/ansi-styles": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", - "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/@isaacs/cliui/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true - }, - "node_modules/@isaacs/cliui/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, + "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 8" } }, - "node_modules/@isaacs/cliui/node_modules/strip-ansi": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", - "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true, - "dependencies": { - "ansi-regex": "^6.0.1" - }, + "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "node": ">= 8" } }, - "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", "dev": true, + "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "node": ">= 8" } }, "node_modules/ansi-regex": { @@ -200,16 +143,6 @@ "postcss": "^8.1.0" } }, - "node_modules/balanced-match": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", - "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "18 || 20 || >=22" - } - }, "node_modules/baseline-browser-mapping": { "version": "2.11.22", "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.11.22.tgz", @@ -235,19 +168,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/brace-expansion": { - "version": "5.0.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.12.tgz", - "integrity": "sha512-YovQ3rzhaLMIrDjNDMkNS01tea93qhEhG5xy8f6+R0l+dw3Ki+5sCoIoI942iuLZTHWogWktgwVDhU09iNEimQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^4.0.2" - }, - "engines": { - "node": "20 || >=22" - } - }, "node_modules/braces": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", @@ -376,24 +296,11 @@ "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", "dev": true, + "license": "MIT", "engines": { "node": ">=18" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/cssesc": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", @@ -415,12 +322,6 @@ "node": ">=4" } }, - "node_modules/eastasianwidth": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", - "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", - "dev": true - }, "node_modules/electron-to-chromium": { "version": "1.5.427", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.427.tgz", @@ -443,32 +344,43 @@ "node": ">=6" } }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", "dev": true, + "license": "MIT", "dependencies": { - "to-regex-range": "^5.0.1" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" }, "engines": { - "node": ">=8" + "node": ">=8.6.0" + } + }, + "node_modules/fastq": { + "version": "1.20.3", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.3.tgz", + "integrity": "sha512-XKv5nnLs6nLF71NgiKJLIZFLkPyIEuOselLG7ujZnGrRfQK8HpvY+WqKhAJUAdLomwVHErVS4LfxFlPq0/FTAw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" } }, - "node_modules/foreground-child": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", - "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "dev": true, "dependencies": { - "cross-spawn": "^7.0.6", - "signal-exit": "^4.0.1" + "to-regex-range": "^5.0.1" }, "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=8" } }, "node_modules/fraction.js": { @@ -521,29 +433,6 @@ "node": "6.* || 8.* || >= 10.*" } }, - "node_modules/glob": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz", - "integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==", - "dev": true, - "dependencies": { - "foreground-child": "^3.3.1", - "jackspeak": "^4.1.1", - "minimatch": "^10.1.1", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^2.0.0" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", @@ -620,27 +509,6 @@ "node": ">=0.12.0" } }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/jackspeak": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz", - "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==", - "dev": true, - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/jsonfile": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.2.0.tgz", @@ -665,38 +533,28 @@ "url": "https://github.com/sponsors/antonk52" } }, - "node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", "dev": true, + "license": "MIT", "engines": { - "node": "20 || >=22" + "node": ">= 8" } }, - "node_modules/minimatch": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.4.tgz", - "integrity": "sha512-oRjTw/97aTBN0RHbYCdtF1MQfvusSIBQM0IZEgzl6426+8jSC0nF1a/GmnVLpfB9yyr6g6FTqWqiZVbxrtaCIg==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "BlueOak-1.0.0", + "license": "MIT", "dependencies": { - "brace-expansion": "^5.0.2" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": "18 || 20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/minipass": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", - "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", - "dev": true, - "engines": { - "node": ">=16 || 14 >=14.17" + "node": ">=8.6" } }, "node_modules/nanoid": { @@ -737,37 +595,6 @@ "node": ">=0.10.0" } }, - "node_modules/package-json-from-dist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", - "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", - "dev": true - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/path-scurry": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.1.tgz", - "integrity": "sha512-oWyT4gICAu+kaA7QWk/jvCHWarMKNs6pXOGWKDTr7cw4IGcUbW+PeTfbaQiLGheFRpjo6O9J0PmyMfQPjH71oA==", - "dev": true, - "dependencies": { - "lru-cache": "^11.0.0", - "minipass": "^7.1.2" - }, - "engines": { - "node": "20 || >=22" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/picocolors": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", @@ -868,20 +695,6 @@ "postcss": "^8.4.32" } }, - "node_modules/postcss-discard-comments/node_modules/postcss-selector-parser": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", - "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/postcss-load-config": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-5.1.0.tgz", @@ -948,9 +761,9 @@ } }, "node_modules/postcss-selector-parser": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.4.tgz", - "integrity": "sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==", + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.6.tgz", + "integrity": "sha512-7qASPzhKF2l2KLboRZux8CCTRMdGiV08vWmyKzPz22qZ7ZjQBOeY7rNzNoCLSUiftJ7HUq0GERHmxw/t0dCdMw==", "dev": true, "license": "MIT", "dependencies": { @@ -977,20 +790,42 @@ } }, "node_modules/purgecss": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-7.0.2.tgz", - "integrity": "sha512-4Ku8KoxNhOWi9X1XJ73XY5fv+I+hhTRedKpGs/2gaBKU8ijUiIKF/uyyIyh7Wo713bELSICF5/NswjcuOqYouQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/purgecss/-/purgecss-8.0.0.tgz", + "integrity": "sha512-QFJyps9y5oHeXnNA3Ql1EaAqWBivNwQn19Pw1lt9RxfB+4e+bIyqCyuombk79D6Fxe+lPXggVfI1WtRGEBwgbQ==", "dev": true, + "license": "MIT", "dependencies": { "commander": "^12.1.0", - "glob": "^11.0.0", + "fast-glob": "^3.3.2", "postcss": "^8.4.47", - "postcss-selector-parser": "^6.1.2" + "postcss-selector-parser": "^7.0.0" }, "bin": { "purgecss": "bin/purgecss.js" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -1021,45 +856,47 @@ "node": ">=0.10.0" } }, - "node_modules/select2": { - "version": "4.1.0-rc.0", - "resolved": "https://registry.npmjs.org/select2/-/select2-4.1.0-rc.0.tgz", - "integrity": "sha512-Hr9TdhyHCZUtwznEH2CBf7967mEM0idtJ5nMtjvk3Up5tPukOLXbHUNmh10oRfeNIhj+3GD3niu+g6sVK+gK0A==", - "dev": true, - "license": "MIT" - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "node_modules/reusify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", + "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, + "license": "MIT", "engines": { - "node": ">=8" + "iojs": ">=1.0.0", + "node": ">=0.10.0" } }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "engines": { - "node": ">=8" + "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", + "dependencies": { + "queue-microtask": "^1.2.2" } }, - "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "node_modules/select2": { + "version": "4.1.0-rc.0", + "resolved": "https://registry.npmjs.org/select2/-/select2-4.1.0-rc.0.tgz", + "integrity": "sha512-Hr9TdhyHCZUtwznEH2CBf7967mEM0idtJ5nMtjvk3Up5tPukOLXbHUNmh10oRfeNIhj+3GD3niu+g6sVK+gK0A==", "dev": true, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "MIT" }, "node_modules/slash": { "version": "5.1.0", @@ -1074,10 +911,11 @@ } }, "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.2.tgz", + "integrity": "sha512-KGj/8Y43x35aZVDtt+J4mK1hoLGHULMYfSkODJNQjNDC3oW1PqPoxMwo0pLUsWM/UEGzON/NxeHywEfNXNP3Vw==", "dev": true, + "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" } @@ -1096,21 +934,6 @@ "node": ">=8" } }, - "node_modules/string-width-cjs": { - "name": "string-width", - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -1123,19 +946,6 @@ "node": ">=8" } }, - "node_modules/strip-ansi-cjs": { - "name": "strip-ansi", - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/thenby": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", @@ -1246,21 +1056,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -1278,24 +1073,6 @@ "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/wrap-ansi-cjs": { - "name": "wrap-ansi", - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", diff --git a/site/package.json b/site/package.json index 36a885e5..4e1f9943 100644 --- a/site/package.json +++ b/site/package.json @@ -9,7 +9,7 @@ "author": "", "license": "ISC", "devDependencies": { - "@fullhuman/postcss-purgecss": "^7.0.2", + "@fullhuman/postcss-purgecss": "^8.0.0", "autoprefixer": "^10.5.0", "intl-tel-input": "18.2.1", "postcss": "^8.5.14",