From 346e0914bc53ab80b9de43f18e17b44053b83700 Mon Sep 17 00:00:00 2001 From: Bartosz-Do Date: Wed, 5 Aug 2026 00:29:33 +0200 Subject: [PATCH 1/7] Copy only runtime files into `dist/libs` instead of whole npm packages (#2781) Co-authored-by: Claude Opus 5 --- .changeset/slim-down-dist-libs.md | 5 ++++ core/.build/copy-libs.ts | 40 +++++++++++++++++++++++++++---- core/libs.json | 12 ++++++++++ 3 files changed, 52 insertions(+), 5 deletions(-) create mode 100644 .changeset/slim-down-dist-libs.md diff --git a/.changeset/slim-down-dist-libs.md b/.changeset/slim-down-dist-libs.md new file mode 100644 index 000000000..472fbd438 --- /dev/null +++ b/.changeset/slim-down-dist-libs.md @@ -0,0 +1,5 @@ +--- +"@tabler/core": patch +--- + +Fixed oversized `dist/libs` by copying only the runtime files each library declares in `libs.json`, plus the assets HugeRTE loads at runtime and every upstream license file. diff --git a/core/.build/copy-libs.ts b/core/.build/copy-libs.ts index 54e716de8..af5ffc090 100644 --- a/core/.build/copy-libs.ts +++ b/core/.build/copy-libs.ts @@ -1,6 +1,7 @@ #!/usr/bin/env node import { existsSync, mkdirSync } from 'node:fs' +import { globSync } from 'glob' import { emptyDirSync, copySync } from 'fs-extra/esm' import libs from '../libs.json' with { type: 'json' } import { fileURLToPath } from 'node:url' @@ -12,6 +13,7 @@ interface LibConfig { npm?: string js?: string[] css?: string[] + extra?: string[] head?: boolean } @@ -24,10 +26,10 @@ const libsData = libs as Libs emptyDirSync(join(__dirname, '..', 'dist/libs')) for (const name in libsData) { - const { npm } = libsData[name] + const { npm, js, css, extra } = libsData[name] if (npm) { - const from = join(__dirname, '..', `node_modules/${npm}`) + const pkgDir = join(__dirname, '..', `node_modules/${npm}`) const to = join(__dirname, '..', `dist/libs/${npm}`) // create dir in dist/libs @@ -35,9 +37,37 @@ for (const name in libsData) { mkdirSync(to, { recursive: true }) } - copySync(from, to, { - dereference: true, - }) + const files = [...(js || []), ...(css || [])] + + for (const pattern of extra || []) { + const matches = globSync(pattern, { cwd: pkgDir, nodir: true, posix: true }) + if (matches.length === 0) { + throw new Error(`copy-libs: ${name} — "${pattern}" matched no files in ${npm}`) + } + files.push(...matches) + } + + if (files) { + for (const file of files) { + copySync(join(pkgDir, file), join(to, file), { + dereference: true, + }) + } + } + + // Ship each upstream license alongside its files — we redistribute the + // built bundles, and MIT/BSD/Apache all require the notice to travel with them. + const licenses = globSync('{license,licence,copying}*', { cwd: pkgDir, nodir: true, nocase: true }) + + if (licenses.length === 0) { + console.warn(`Warning: no license file found for ${npm}`) + } + + for (const file of licenses) { + copySync(join(pkgDir, file), join(to, file), { + dereference: true, + }) + } console.log(`Successfully copied ${npm}`) } diff --git a/core/libs.json b/core/libs.json index 060385180..f11dbd9ad 100644 --- a/core/libs.json +++ b/core/libs.json @@ -98,6 +98,18 @@ "npm": "hugerte", "js": [ "hugerte.min.js" + ], + "extra": [ + "themes/silver/theme.min.js", + "models/dom/model.min.js", + "icons/default/icons.min.js", + "plugins/*/plugin.min.js", + "plugins/help/js/i18n/keynav/*.js", + "plugins/emoticons/js/*.min.js", + "skins/ui/oxide/*.min.css", + "skins/ui/oxide-dark/*.min.css", + "skins/content/default/content.min.css", + "skins/content/dark/content.min.css" ] }, "plyr": { From 6edc2a5495bc1e5d3dd5ba2e3e8a9f23df4cc52b Mon Sep 17 00:00:00 2001 From: Bartosz-Do Date: Wed, 5 Aug 2026 00:30:23 +0200 Subject: [PATCH 2/7] Add docs page for the Mapbox map component (#2787) --- docs/pages/ui/components/map.mdx | 118 +++++++++++++++++++++++++++++++ shared/data/docs.json | 4 ++ 2 files changed, 122 insertions(+) create mode 100644 docs/pages/ui/components/map.mdx diff --git a/docs/pages/ui/components/map.mdx b/docs/pages/ui/components/map.mdx new file mode 100644 index 000000000..1a84a501e --- /dev/null +++ b/docs/pages/ui/components/map.mdx @@ -0,0 +1,118 @@ +--- +title: Map +summary: A map shows places and markers on an interactive world map. Tabler provides the markup and the setup code, and the map itself is rendered by Mapbox GL JS. +description: Show places on an interactive map. +layout: '@layouts/DocsMdxLayout.astro' +--- +import Example from '@components/Example.astro'; +import { Code } from 'astro:components'; + +## Overview + +The map is a small wrapper around [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js/). Tabler gives you the container markup and a short init script. Mapbox draws the tiles, handles zoom, and renders the markers. + +A Mapbox account and an access token are needed, because every map load calls the Mapbox API. If you only need a simple map of countries or regions, use the [vector map](/ui/components/vector-map/) instead. It needs no account and no network calls. + +## Installation + +Add the Mapbox GL JS script and stylesheet to your page. Tabler uses version 1.8.0: + + +`} +/> + +Then create a free account on [mapbox.com](https://www.mapbox.com/) and copy your public access token. It starts with `pk.`. Set it once, before you create a map: + +```js +mapboxgl.accessToken = 'pk.your-token-here' +``` + +Use a public token only. A secret token (`sk.`) must never be sent to the browser. Limit the token to your own domains in the Mapbox dashboard. + +## Usage + +### Markup + +Put the map container inside a `ratio` element, so the map keeps its shape on every screen size. Give the inner element an `id` and the `w-100 h-100` classes. + + +
+
+ +Change the shape with the ratio classes, for example `ratio-21x9` for a wide map or `ratio-1x1` for a square one. + +### Init the map + +Create the map after the DOM is ready. Pass the id of your container, a style, a zoom level, and a center point. + +```js +document.addEventListener('DOMContentLoaded', function () { + mapboxgl.accessToken = 'pk.your-token-here' + + const map = new mapboxgl.Map({ + container: 'map-simple', + style: 'mapbox://styles/mapbox/streets-v11', + zoom: 13, + center: [13.4049, 52.518827], + }) +}) +``` + +`center` takes the longitude first and the latitude second. This is the Mapbox order, and it is the opposite of what most map services show. + +### Map styles + +Set `style` to any Mapbox style URL. These three are used in the Tabler demos: + +| Style | Result | +| --- | --- | +| `mapbox://styles/mapbox/streets-v11` | Default street map. | +| `mapbox://styles/mapbox/light-v10` | Light map, good under charts and markers. | +| `mapbox://styles/mapbox/satellite-v9` | Satellite photos. | + +### Markers + +Add a marker for each place. `setLngLat` takes the same longitude and latitude order as `center`. + +```js +const cities = [ + [-58.666667, -34.58333333], // Buenos Aires + [16.366667, 48.2], // Vienna + [116.383333, 39.91666667], // Beijing +] + +cities.forEach(function (coords) { + new mapboxgl.Marker({ color: 'var(--tblr-primary)' }).setLngLat(coords).addTo(map) +}) +``` + +The `color` option is written to the `fill` attribute of the marker icon. A CSS variable works there, so `var(--tblr-primary)` keeps the markers in your theme color, including after a theme change. + +## Examples + +### Map in a card + +Add a card title above the map. This is the usual layout for a small map next to other content. + + +
Simple map
+
+ +### Full-card map + +Drop the card body to let the map fill the whole card. Add `rounded` to the container, so the map follows the card corners. + + +
+
+ +Live versions of these maps are on the [maps preview page](https://preview.tabler.io/maps.html). + +## Accessibility + +- The map is a picture for most users. Give the same information as text near it, for example the address or a list of places. +- Add an `aria-label` to the map container, so screen reader users know what the map shows. +- Do not put an action only on a marker. Repeat it in a normal link or button below the map. +- Keep a visible fallback when the script fails to load, for example the address in text. diff --git a/shared/data/docs.json b/shared/data/docs.json index 8aea168af..329f2ecbb 100644 --- a/shared/data/docs.json +++ b/shared/data/docs.json @@ -232,6 +232,10 @@ "title": "Inline player", "url": "/ui/components/inline-player/" }, + { + "title": "Map", + "url": "/ui/components/map/" + }, { "title": "Modal", "url": "/ui/components/modal/" From 6a63e4069cf028752313fe8cc183b338252ee6b0 Mon Sep 17 00:00:00 2001 From: Bartosz-Do Date: Wed, 5 Aug 2026 00:39:05 +0200 Subject: [PATCH 3/7] Document Trending indicator and Card stamp (#2785) Co-authored-by: codecalm --- docs/pages/ui/components/card.mdx | 18 ++++++ docs/pages/ui/components/trending.mdx | 82 +++++++++++++++++++++++++++ shared/data/docs.json | 4 ++ 3 files changed, 104 insertions(+) create mode 100644 docs/pages/ui/components/trending.mdx diff --git a/docs/pages/ui/components/card.mdx b/docs/pages/ui/components/card.mdx index bee9f2e47..b20a91852 100644 --- a/docs/pages/ui/components/card.mdx +++ b/docs/pages/ui/components/card.mdx @@ -73,6 +73,24 @@ Add a status color to your card, either at the top or on the side of the card, t

Card with top status

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.

Card with side status

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima neque pariatur perferendis sed suscipit velit vitae voluptatem.

+## Card stamp + +Use a card stamp to put a large, faded icon in the top corner of a card. It is only a decoration, so it never covers the text and it does not react to clicks. + +Add a `.card-stamp` element as a direct child of the card, before the card body. Put the icon in a `.card-stamp-icon` element inside it. + + +

Card with a stamp

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aperiam deleniti fugit incidunt, iste, itaque minima neque pariatur.

+
+ +## Card stamp size and color + +Add the `card-stamp-lg` class to make the stamp bigger. Change the circle color with a `bg-*` class, and the icon color with a `text-*` class. + + +

Large stamp

The large stamp is a good fit for banners and wide cards.

Stamp on a color card

Use a white circle with a colored icon on a card with a background color.

+
+ ## Stacked card Use the `card-stacked` class to stack up multiple cards, if you want to save screen space or create a visually appealing effect. diff --git a/docs/pages/ui/components/trending.mdx b/docs/pages/ui/components/trending.mdx new file mode 100644 index 000000000..229d26947 --- /dev/null +++ b/docs/pages/ui/components/trending.mdx @@ -0,0 +1,82 @@ +--- +title: Trending +summary: A trend indicator shows how a value changed. It joins the number with an arrow and a color, so users can read the direction at a glance. +description: Show value change with a trend indicator. +layout: '@layouts/DocsMdxLayout.astro' +--- +import Example from '@components/Example.astro'; +import Icon from '@ui/Icon.astro'; + +## Overview + +A trend indicator is a small inline element. It shows a number and an arrow next to it. Use it next to a metric, in a stats card, or in a table row. + +There is no dedicated class for it. Build it from utilities: `d-inline-flex` and `align-items-center` to keep the number and the icon in one line, `lh-1` to keep the line short, and a text color that matches the direction. + + +25% + + +## Variants + +### Direction + +Use three states to describe the change. Pick the color and the icon together, so they always tell the same story. + +| Change | Color | Icon | +| --- | --- | --- | +| Up | `text-green` | `arrow-up` | +| No change | `text-muted` | `minus` | +| Down | `text-red` | `arrow-down` | + + +25% 0% -12% + + +### Unit + +The unit is only text after the number. Use a percent sign, a currency, or no unit at all. + + +8% 4.2K -3 + + +### Size + +The indicator takes the font size of its parent. Put it in a heading or use a text size utility to make it bigger or smaller. + + +15% 15% 15% + + +## Examples + +### Next to a value + +Place the indicator after the number. Use `align-items-baseline` on the wrapper, so the number and the indicator sit on the same line. + + +
Today's sales
6,782
7%
+
+ +### In a stats card + +This is the most common place for the indicator. The value stays on the left and the change on the right. + + +
New clients
1,352
-4%
+
+ +### In a table + +Use it in a table cell to compare rows quickly. + + +
Product Sales Change
Basic plan 4,120 12%
Pro plan 2,043 -7%
Team plan 986 0%
+
+ +## Accessibility + +- Keep the sign in the text, for example `-12%`. Users who do not see color still get the direction. +- The icon is hidden from screen readers, so it must not be the only carrier of meaning. +- Add a word like `Change` in the table header or near the value, so it is clear what the number means. diff --git a/shared/data/docs.json b/shared/data/docs.json index 329f2ecbb..689252b68 100644 --- a/shared/data/docs.json +++ b/shared/data/docs.json @@ -324,6 +324,10 @@ "title": "Tracking", "url": "/ui/components/tracking/" }, + { + "title": "Trending", + "url": "/ui/components/trending/" + }, { "title": "Vector Map", "url": "/ui/components/vector-map/" From dbe391dc2324eb6987f0db9a7f05c91a0c0f2674 Mon Sep 17 00:00:00 2001 From: Bartosz-Do Date: Wed, 5 Aug 2026 00:39:44 +0200 Subject: [PATCH 4/7] Fix signature pad clear button accessibility and canvas height drift (#2789) Co-authored-by: Claude Opus 5 --- core/scss/ui/_signature.scss | 5 +++++ shared/ui/Signature.astro | 6 ++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/core/scss/ui/_signature.scss b/core/scss/ui/_signature.scss index 56a0755d5..f62226f7c 100644 --- a/core/scss/ui/_signature.scss +++ b/core/scss/ui/_signature.scss @@ -3,6 +3,7 @@ .signature { --#{$prefix}signature-padding: var(--#{$prefix}spacer-1); --#{$prefix}signature-border-radius: var(--#{$prefix}border-radius); + --#{$prefix}signature-canvas-height: 12.5rem; border: var(--#{$prefix}border-width) solid var(--#{$prefix}border-color); padding: var(--#{$prefix}signature-padding); @include border-radius(var(--#{$prefix}border-radius)); @@ -14,4 +15,8 @@ display: block; cursor: crosshair; width: 100%; + // A fixed height is required: without it the canvas height comes from its own + // width/height attributes, which `resizeCanvas()` rewrites on every resize — + // each run then measures a different `offsetHeight` and the pad drifts. + height: var(--#{$prefix}signature-canvas-height); } diff --git a/shared/ui/Signature.astro b/shared/ui/Signature.astro index e9878f215..2b4801978 100644 --- a/shared/ui/Signature.astro +++ b/shared/ui/Signature.astro @@ -50,8 +50,6 @@ ${clearSnippet} function resizeCanvas() { const ratio = Math.max(window.devicePixelRatio || 1, 1); - console.log(canvas.offsetWidth, canvas.offsetHeight); - canvas.width = canvas.offsetWidth * ratio; canvas.height = canvas.offsetHeight * ratio; canvas.getContext("2d").scale(ratio, ratio); @@ -72,9 +70,9 @@ ${extraSnippet} { clear && (
-
+
+
) } From 7ae422f23a1e85766ae7a21f30ddca4df35ed543 Mon Sep 17 00:00:00 2001 From: Bartosz-Do Date: Wed, 5 Aug 2026 01:58:04 +0200 Subject: [PATCH 5/7] Migrate CSS direction properties to logical properties for improved RTL support (#2773) Co-authored-by: codecalm Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> --- .changeset/migrate-css-logical-properties.md | 7 ++++ core/scss/_props.scss | 11 +++++++ core/scss/_utilities.scss | 30 ++++++++--------- core/scss/_variables.scss | 2 +- core/scss/bootstrap/_button-group.scss | 18 +++++------ core/scss/bootstrap/_card.scss | 23 ++++++------- core/scss/bootstrap/_carousel.scss | 28 ++++++++-------- core/scss/bootstrap/_dropdown.scss | 24 +++++++------- core/scss/bootstrap/_list-group.scss | 8 ++--- core/scss/bootstrap/_modal.scss | 10 +++--- core/scss/bootstrap/_nav.scss | 6 ++-- core/scss/bootstrap/_navbar.scss | 8 ++--- core/scss/bootstrap/_offcanvas.scss | 24 +++++++------- core/scss/bootstrap/_pagination.scss | 2 +- core/scss/bootstrap/_popover.scss | 4 +-- core/scss/bootstrap/_reboot.scss | 8 ++--- core/scss/bootstrap/_toasts.scss | 4 +-- core/scss/bootstrap/_type.scss | 2 +- .../bootstrap/forms/_floating-labels.scss | 4 +-- core/scss/bootstrap/forms/_form-check.scss | 32 +++++++++---------- core/scss/bootstrap/forms/_form-control.scss | 4 +-- core/scss/bootstrap/forms/_form-select.scss | 6 ++-- core/scss/bootstrap/forms/_input-group.scss | 4 +-- core/scss/layout/_navbar.scss | 3 +- core/scss/mixins/bootstrap/_backdrop.scss | 2 +- core/scss/mixins/bootstrap/_caret.scss | 15 +++++---- core/scss/mixins/bootstrap/_container.scss | 8 ++--- core/scss/mixins/bootstrap/_forms.scss | 8 ++--- core/scss/mixins/bootstrap/_grid.scss | 10 +++--- core/scss/mixins/bootstrap/_lists.scss | 2 +- core/scss/mixins/bootstrap/_rfs.scss | 30 ++++++++++++++--- core/scss/tests/_caret.test.scss | 11 ++++--- core/scss/tests/_generate-utility.test.scss | 26 ++++++++------- core/scss/tests/_grid.test.scss | 12 +++---- core/scss/ui/_badges.scss | 3 +- core/scss/ui/_buttons.scss | 6 ++-- core/scss/ui/_cards.scss | 11 ++----- core/scss/ui/_loaders.scss | 3 +- core/scss/ui/_steps.scss | 6 ++-- core/scss/ui/_switch-icon.scss | 12 ++++--- 40 files changed, 241 insertions(+), 196 deletions(-) create mode 100644 .changeset/migrate-css-logical-properties.md diff --git a/.changeset/migrate-css-logical-properties.md b/.changeset/migrate-css-logical-properties.md new file mode 100644 index 000000000..4258c2d4a --- /dev/null +++ b/.changeset/migrate-css-logical-properties.md @@ -0,0 +1,7 @@ +--- +"@tabler/core": patch +--- + +Migrated all physical CSS direction properties to logical properties (`padding-inline`, `margin-inline`, `inset-inline`, `float: inline-start`/`inline-end`, `text-align: start/end`) for improved RTL support and reduced RTL stylesheet generation overhead. + +Directional transforms, which have no logical equivalent, now use a `--tblr-dir` direction multiplier (`1` in LTR, `-1` under `[dir="rtl"]`), e.g. `translateX(calc(var(--tblr-dir) * 4px))`. These declarations are identical in `tabler.css` and `tabler.rtl.css` — the flip happens at runtime via the `dir` attribute, so RTL transforms now also work when using plain `tabler.css` with `dir="rtl"`. diff --git a/core/scss/_props.scss b/core/scss/_props.scss index 8f371c288..5793758aa 100644 --- a/core/scss/_props.scss +++ b/core/scss/_props.scss @@ -3,6 +3,9 @@ :root, :host { + /** Direction multiplier for physical transforms (1 = LTR, -1 = RTL) */ + --#{$prefix}dir: 1; + /** Fonts */ --#{$prefix}font-monospace: #{$font-family-monospace}; --#{$prefix}font-sans-serif: #{$font-family-sans-serif}; @@ -90,3 +93,11 @@ --#{$prefix}backdrop-blur: #{$backdrop-blur}; --#{$prefix}backdrop-filter: blur(var(--#{$prefix}backdrop-blur)); } + +[dir='ltr'] { + --#{$prefix}dir: 1; +} + +[dir='rtl'] { + --#{$prefix}dir: -1; +} diff --git a/core/scss/_utilities.scss b/core/scss/_utilities.scss index 33e3349cf..20b146a3f 100644 --- a/core/scss/_utilities.scss +++ b/core/scss/_utilities.scss @@ -36,8 +36,8 @@ $utilities: map.merge( responsive: true, property: float, values: ( - start: left, - end: right, + start: inline-start, + end: inline-end, none: none, ), ), @@ -112,12 +112,12 @@ $utilities: map.merge( values: $position-values, ), 'start': ( - property: left, + property: inset-inline-start, class: start, values: $position-values, ), 'end': ( - property: right, + property: inset-inline-end, class: end, values: $position-values, ), @@ -125,8 +125,8 @@ $utilities: map.merge( property: transform, class: translate-middle, values: ( - null: translate(-50%, -50%), - x: translateX(-50%), + null: translate(calc(var(--#{$prefix}dir) * -50%), -50%) #{'/*rtl:ignore*/'}, + x: translateX(calc(var(--#{$prefix}dir) * -50%)) #{'/*rtl:ignore*/'}, y: translateY(-50%), ), ), @@ -395,7 +395,7 @@ $utilities: map.merge( ), 'margin-x': ( responsive: true, - property: margin-right margin-left, + property: margin-inline-end margin-inline-start, class: mx, values: map.merge( $spacers, @@ -428,7 +428,7 @@ $utilities: map.merge( ), 'margin-end': ( responsive: true, - property: margin-right, + property: margin-inline-end, class: me, values: map.merge( $spacers, @@ -450,7 +450,7 @@ $utilities: map.merge( ), 'margin-start': ( responsive: true, - property: margin-left, + property: margin-inline-start, class: ms, values: map.merge( $spacers, @@ -468,7 +468,7 @@ $utilities: map.merge( ), 'negative-margin-x': ( responsive: true, - property: margin-right margin-left, + property: margin-inline-end margin-inline-start, class: mx, values: $negative-spacers, ), @@ -486,7 +486,7 @@ $utilities: map.merge( ), 'negative-margin-end': ( responsive: true, - property: margin-right, + property: margin-inline-end, class: me, values: $negative-spacers, ), @@ -498,7 +498,7 @@ $utilities: map.merge( ), 'negative-margin-start': ( responsive: true, - property: margin-left, + property: margin-inline-start, class: ms, values: $negative-spacers, ), @@ -511,7 +511,7 @@ $utilities: map.merge( ), 'padding-x': ( responsive: true, - property: padding-right padding-left, + property: padding-inline-end padding-inline-start, class: px, values: $spacers, ), @@ -529,7 +529,7 @@ $utilities: map.merge( ), 'padding-end': ( responsive: true, - property: padding-right, + property: padding-inline-end, class: pe, values: $spacers, ), @@ -541,7 +541,7 @@ $utilities: map.merge( ), 'padding-start': ( responsive: true, - property: padding-left, + property: padding-inline-start, class: ps, values: $spacers, ), diff --git a/core/scss/_variables.scss b/core/scss/_variables.scss index 17d8c66fa..93b396765 100644 --- a/core/scss/_variables.scss +++ b/core/scss/_variables.scss @@ -1957,7 +1957,7 @@ $form-floating-input-padding-t: 1.625rem !default; $form-floating-input-padding-b: 0.625rem !default; $form-floating-label-height: 1.5em !default; $form-floating-label-opacity: 0.65 !default; -$form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem) !default; +$form-floating-label-transform: scale(0.85) translateY(-0.5rem) translateX(calc(var(--#{$prefix}dir) * 0.15rem)) #{'/*rtl:ignore*/'} !default; $form-floating-label-disabled-color: $gray-600 !default; $form-floating-transition: opacity 0.1s ease-in-out, diff --git a/core/scss/bootstrap/_button-group.scss b/core/scss/bootstrap/_button-group.scss index c1af48dca..b2322f57c 100644 --- a/core/scss/bootstrap/_button-group.scss +++ b/core/scss/bootstrap/_button-group.scss @@ -43,7 +43,7 @@ // Prevent double borders when buttons are next to each other > :not(.btn-check:first-child) + .btn, > .btn-group:not(:first-child) { - margin-left: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list + margin-inline-start: calc(-1 * #{$btn-border-width}); // stylelint-disable-line function-disallowed-list } // Reset rounded corners @@ -80,28 +80,28 @@ // .dropdown-toggle-split { - padding-right: $btn-padding-x * 0.75; - padding-left: $btn-padding-x * 0.75; + padding-inline-end: $btn-padding-x * 0.75; + padding-inline-start: $btn-padding-x * 0.75; &::after, .dropup &::after, .dropend &::after { - margin-left: 0; + margin-inline-start: 0; } .dropstart &::before { - margin-right: 0; + margin-inline-end: 0; } } .btn-sm + .dropdown-toggle-split { - padding-right: $btn-padding-x-sm * 0.75; - padding-left: $btn-padding-x-sm * 0.75; + padding-inline-end: $btn-padding-x-sm * 0.75; + padding-inline-start: $btn-padding-x-sm * 0.75; } .btn-lg + .dropdown-toggle-split { - padding-right: $btn-padding-x-lg * 0.75; - padding-left: $btn-padding-x-lg * 0.75; + padding-inline-end: $btn-padding-x-lg * 0.75; + padding-inline-start: $btn-padding-x-lg * 0.75; } // The clickable button for toggling the menu diff --git a/core/scss/bootstrap/_card.scss b/core/scss/bootstrap/_card.scss index 77c41092f..c16384aa3 100644 --- a/core/scss/bootstrap/_card.scss +++ b/core/scss/bootstrap/_card.scss @@ -41,8 +41,8 @@ @include box-shadow(var(--#{$prefix}card-box-shadow)); > hr { - margin-right: 0; - margin-left: 0; + margin-inline-end: 0; + margin-inline-start: 0; } > .list-group { @@ -97,7 +97,7 @@ } + .card-link { - margin-left: var(--#{$prefix}card-spacer-x); + margin-inline-start: var(--#{$prefix}card-spacer-x); } } @@ -133,9 +133,9 @@ // .card-header-tabs { - margin-right: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + margin-inline-end: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list margin-bottom: calc(-1 * var(--#{$prefix}card-cap-padding-y)); // stylelint-disable-line function-disallowed-list - margin-left: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + margin-inline-start: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list border-bottom: 0; .nav-link.active { @@ -145,17 +145,14 @@ } .card-header-pills { - margin-right: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list - margin-left: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + margin-inline-end: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list + margin-inline-start: calc(-0.5 * var(--#{$prefix}card-cap-padding-x)); // stylelint-disable-line function-disallowed-list } // Card image .card-img-overlay { position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; + inset: 0; padding: var(--#{$prefix}card-img-overlay-padding); @include border-radius(var(--#{$prefix}card-inner-border-radius)); } @@ -197,8 +194,8 @@ margin-bottom: 0; + .card { - margin-left: 0; - border-left: 0; + margin-inline-start: 0; + border-inline-start: 0; } // Handle rounded corners diff --git a/core/scss/bootstrap/_carousel.scss b/core/scss/bootstrap/_carousel.scss index 47a85bd49..bd4b76752 100644 --- a/core/scss/bootstrap/_carousel.scss +++ b/core/scss/bootstrap/_carousel.scss @@ -31,9 +31,9 @@ .carousel-item { position: relative; display: none; - float: left; + float: inline-start; width: 100%; - margin-right: -100%; + margin-inline-end: -100%; backface-visibility: hidden; @include transition($carousel-transition); } @@ -46,12 +46,14 @@ .carousel-item-next:not(.carousel-item-start), .active.carousel-item-end { - transform: translateX(100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * 100%)); } .carousel-item-prev:not(.carousel-item-end), .active.carousel-item-start { - transform: translateX(-100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -100%)); } // @@ -114,11 +116,11 @@ } } .carousel-control-prev { - left: 0; + inset-inline-start: 0; background-image: if(sass($enable-gradients): linear-gradient(90deg, rgba($black, 0.25), rgba($black, 0.001)); else: null); } .carousel-control-next { - right: 0; + inset-inline-end: 0; background-image: if(sass($enable-gradients): linear-gradient(270deg, rgba($black, 0.25), rgba($black, 0.001)); else: null); } @@ -147,17 +149,16 @@ .carousel-indicators { position: absolute; - right: 0; + inset-inline: 0; bottom: 0; - left: 0; z-index: 2; display: flex; justify-content: center; padding: 0; // Use the .carousel-control's width as margin so we don't overlay those - margin-right: $carousel-control-width; + margin-inline-end: $carousel-control-width; margin-bottom: 1rem; - margin-left: $carousel-control-width; + margin-inline-start: $carousel-control-width; [data-bs-target], [data-target] { @@ -166,8 +167,8 @@ width: $carousel-indicator-width; height: $carousel-indicator-height; padding: 0; - margin-right: $carousel-indicator-spacer; - margin-left: $carousel-indicator-spacer; + margin-inline-end: $carousel-indicator-spacer; + margin-inline-start: $carousel-indicator-spacer; text-indent: -999px; cursor: pointer; background-color: var(--#{$prefix}carousel-indicator-active-bg); @@ -191,9 +192,8 @@ .carousel-caption { position: absolute; - right: (100% - $carousel-caption-width) * 0.5; + inset-inline: (100% - $carousel-caption-width) * 0.5; bottom: $carousel-caption-spacer; - left: (100% - $carousel-caption-width) * 0.5; padding-top: $carousel-caption-padding-y; padding-bottom: $carousel-caption-padding-y; color: var(--#{$prefix}carousel-caption-color); diff --git a/core/scss/bootstrap/_dropdown.scss b/core/scss/bootstrap/_dropdown.scss index 0e37c3086..7aa18a4d3 100644 --- a/core/scss/bootstrap/_dropdown.scss +++ b/core/scss/bootstrap/_dropdown.scss @@ -58,7 +58,7 @@ margin: 0; // Override default margin of ul @include font-size(var(--#{$prefix}dropdown-font-size)); color: var(--#{$prefix}dropdown-color); - text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer) + text-align: start; // Ensures proper alignment if parent has it changed (e.g., modal footer) list-style: none; background-color: var(--#{$prefix}dropdown-bg); background-clip: padding-box; @@ -69,7 +69,7 @@ &[data-bs-popper], &[data-tblr-popper] { top: 100%; - left: 0; + inset-inline-start: 0; margin-top: var(--#{$prefix}dropdown-spacer); } @@ -98,8 +98,8 @@ &[data-bs-popper], &[data-tblr-popper] { - right: auto; - left: 0; + inset-inline-end: auto; + inset-inline-start: 0; } } @@ -108,8 +108,8 @@ &[data-bs-popper], &[data-tblr-popper] { - right: 0; - left: auto; + inset-inline-end: 0; + inset-inline-start: auto; } } } @@ -136,10 +136,10 @@ .dropdown-menu[data-bs-popper], .dropdown-menu[data-tblr-popper] { top: 0; - right: auto; - left: 100%; + inset-inline-end: auto; + inset-inline-start: 100%; margin-top: 0; - margin-left: var(--#{$prefix}dropdown-spacer); + margin-inline-start: var(--#{$prefix}dropdown-spacer); } .dropdown-toggle { @@ -154,10 +154,10 @@ .dropdown-menu[data-bs-popper], .dropdown-menu[data-tblr-popper] { top: 0; - right: 100%; - left: auto; + inset-inline-end: 100%; + inset-inline-start: auto; margin-top: 0; - margin-right: var(--#{$prefix}dropdown-spacer); + margin-inline-end: var(--#{$prefix}dropdown-spacer); } .dropdown-toggle { diff --git a/core/scss/bootstrap/_list-group.scss b/core/scss/bootstrap/_list-group.scss index 167f48173..d6d6b7678 100644 --- a/core/scss/bootstrap/_list-group.scss +++ b/core/scss/bootstrap/_list-group.scss @@ -31,7 +31,7 @@ flex-direction: column; // No need to set list-style: none; since .list-group-item is block level - padding-left: 0; // reset padding because ul and ol + padding-inline-start: 0; // reset padding because ul and ol margin-bottom: 0; @include border-radius(var(--#{$prefix}list-group-border-radius)); } @@ -149,11 +149,11 @@ + .list-group-item { border-top-width: var(--#{$prefix}list-group-border-width); - border-left-width: 0; + border-inline-start-width: 0; &.active { - margin-left: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list - border-left-width: var(--#{$prefix}list-group-border-width); + margin-inline-start: calc(-1 * var(--#{$prefix}list-group-border-width)); // stylelint-disable-line function-disallowed-list + border-inline-start-width: var(--#{$prefix}list-group-border-width); } } } diff --git a/core/scss/bootstrap/_modal.scss b/core/scss/bootstrap/_modal.scss index 0478083be..1056603ab 100644 --- a/core/scss/bootstrap/_modal.scss +++ b/core/scss/bootstrap/_modal.scss @@ -36,8 +36,8 @@ // scss-docs-end modal-css-vars position: fixed; + inset-inline-start: 0; top: 0; - left: 0; z-index: var(--#{$prefix}modal-zindex); display: none; width: 100%; @@ -137,9 +137,9 @@ padding: calc(var(--#{$prefix}modal-header-padding-y) * 0.5) calc(var(--#{$prefix}modal-header-padding-x) * 0.5); // Split properties to avoid invalid calc() function if value is 0 margin-top: calc(-0.5 * var(--#{$prefix}modal-header-padding-y)); - margin-right: calc(-0.5 * var(--#{$prefix}modal-header-padding-x)); + margin-inline-end: calc(-0.5 * var(--#{$prefix}modal-header-padding-x)); margin-bottom: calc(-0.5 * var(--#{$prefix}modal-header-padding-y)); - margin-left: auto; + margin-inline-start: auto; } } @@ -189,8 +189,8 @@ // Automatically set modal's width for larger viewports .modal-dialog { max-width: var(--#{$prefix}modal-width); - margin-right: auto; - margin-left: auto; + margin-inline-end: auto; + margin-inline-start: auto; } .modal-sm { diff --git a/core/scss/bootstrap/_nav.scss b/core/scss/bootstrap/_nav.scss index 19ca6ebb2..ddc242688 100644 --- a/core/scss/bootstrap/_nav.scss +++ b/core/scss/bootstrap/_nav.scss @@ -18,7 +18,7 @@ display: flex; flex-wrap: wrap; - padding-left: 0; + padding-inline-start: 0; margin-bottom: 0; list-style: none; } @@ -135,8 +135,8 @@ gap: var(--#{$prefix}nav-underline-gap); .nav-link { - padding-right: 0; - padding-left: 0; + padding-inline-end: 0; + padding-inline-start: 0; border-bottom: var(--#{$prefix}nav-underline-border-width) solid transparent; &:hover, diff --git a/core/scss/bootstrap/_navbar.scss b/core/scss/bootstrap/_navbar.scss index 17c21e0b2..ee7274f52 100644 --- a/core/scss/bootstrap/_navbar.scss +++ b/core/scss/bootstrap/_navbar.scss @@ -68,7 +68,7 @@ .navbar-brand { padding-top: var(--#{$prefix}navbar-brand-padding-y); padding-bottom: var(--#{$prefix}navbar-brand-padding-y); - margin-right: var(--#{$prefix}navbar-brand-margin-end); + margin-inline-end: var(--#{$prefix}navbar-brand-margin-end); @include font-size(var(--#{$prefix}navbar-brand-font-size)); color: var(--#{$prefix}navbar-brand-color); text-decoration: if(sass($link-decoration == none): null; else: none); @@ -98,7 +98,7 @@ display: flex; flex-direction: column; // cannot use `inherit` to get the `.navbar`s value - padding-left: 0; + padding-inline-start: 0; margin-bottom: 0; list-style: none; @@ -208,8 +208,8 @@ } .nav-link { - padding-right: var(--#{$prefix}navbar-nav-link-padding-x); - padding-left: var(--#{$prefix}navbar-nav-link-padding-x); + padding-inline-end: var(--#{$prefix}navbar-nav-link-padding-x); + padding-inline-start: var(--#{$prefix}navbar-nav-link-padding-x); } } diff --git a/core/scss/bootstrap/_offcanvas.scss b/core/scss/bootstrap/_offcanvas.scss index 5ecba15dd..a03d35354 100644 --- a/core/scss/bootstrap/_offcanvas.scss +++ b/core/scss/bootstrap/_offcanvas.scss @@ -52,24 +52,25 @@ &.offcanvas-start { top: 0; - left: 0; + inset-inline-start: 0; width: var(--#{$prefix}offcanvas-width); - border-right: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color); - transform: translateX(-100%); + border-inline-end: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -100%)); } &.offcanvas-end { top: 0; - right: 0; + inset-inline-end: 0; width: var(--#{$prefix}offcanvas-width); - border-left: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color); - transform: translateX(100%); + border-inline-start: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * 100%)); } &.offcanvas-top { top: 0; - right: 0; - left: 0; + inset-inline: 0; height: var(--#{$prefix}offcanvas-height); max-height: 100%; border-bottom: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color); @@ -77,8 +78,7 @@ } &.offcanvas-bottom { - right: 0; - left: 0; + inset-inline: 0; height: var(--#{$prefix}offcanvas-height); max-height: 100%; border-top: var(--#{$prefix}offcanvas-border-width) solid var(--#{$prefix}offcanvas-border-color); @@ -133,9 +133,9 @@ padding: calc(var(--#{$prefix}offcanvas-padding-y) * 0.5) calc(var(--#{$prefix}offcanvas-padding-x) * 0.5); // Split properties to avoid invalid calc() function if value is 0 margin-top: calc(-0.5 * var(--#{$prefix}offcanvas-padding-y)); - margin-right: calc(-0.5 * var(--#{$prefix}offcanvas-padding-x)); + margin-inline-end: calc(-0.5 * var(--#{$prefix}offcanvas-padding-x)); margin-bottom: calc(-0.5 * var(--#{$prefix}offcanvas-padding-y)); - margin-left: auto; + margin-inline-start: auto; } } diff --git a/core/scss/bootstrap/_pagination.scss b/core/scss/bootstrap/_pagination.scss index bb8d7f230..99a8c144d 100644 --- a/core/scss/bootstrap/_pagination.scss +++ b/core/scss/bootstrap/_pagination.scss @@ -74,7 +74,7 @@ .page-item { &:not(:first-child) .page-link { - margin-left: $pagination-margin-start; + margin-inline-start: $pagination-margin-start; } @if $pagination-margin-start == calc(-1 * #{$pagination-border-width}) { diff --git a/core/scss/bootstrap/_popover.scss b/core/scss/bootstrap/_popover.scss index 356baaa28..ff02276a0 100644 --- a/core/scss/bootstrap/_popover.scss +++ b/core/scss/bootstrap/_popover.scss @@ -127,10 +127,10 @@ .popover-header::before { position: absolute; top: 0; - left: 50%; + inset-inline-start: 50%; display: block; width: var(--#{$prefix}popover-arrow-width); - margin-left: calc(-0.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list + margin-inline-start: calc(-0.5 * var(--#{$prefix}popover-arrow-width)); // stylelint-disable-line function-disallowed-list content: ''; border-bottom: var(--#{$prefix}popover-border-width) solid var(--#{$prefix}popover-header-bg); } diff --git a/core/scss/bootstrap/_reboot.scss b/core/scss/bootstrap/_reboot.scss index 9b4678d8d..612a4f9ad 100644 --- a/core/scss/bootstrap/_reboot.scss +++ b/core/scss/bootstrap/_reboot.scss @@ -150,7 +150,7 @@ address { ol, ul { - padding-left: 2rem; + padding-inline-start: 2rem; } ol, @@ -175,7 +175,7 @@ dt { dd { margin-bottom: 0.5rem; - margin-left: 0; // 1 + margin-inline-start: 0; // 1 } // Blockquote @@ -337,7 +337,7 @@ caption { padding-top: $table-cell-padding-y; padding-bottom: $table-cell-padding-y; color: $table-caption-color; - text-align: left; + text-align: start; } // 1. Removes font-weight bold by inheriting @@ -480,7 +480,7 @@ fieldset { // See https://github.com/twbs/bootstrap/issues/29712 legend { - float: left; // 1 + float: inline-start; // 1 width: 100%; padding: 0; margin-bottom: $legend-margin-bottom; diff --git a/core/scss/bootstrap/_toasts.scss b/core/scss/bootstrap/_toasts.scss index 58840adb8..be373f39f 100644 --- a/core/scss/bootstrap/_toasts.scss +++ b/core/scss/bootstrap/_toasts.scss @@ -64,8 +64,8 @@ @include border-top-radius(calc(var(--#{$prefix}toast-border-radius) - var(--#{$prefix}toast-border-width))); .btn-close { - margin-right: calc(-0.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list - margin-left: var(--#{$prefix}toast-padding-x); + margin-inline-end: calc(-0.5 * var(--#{$prefix}toast-padding-x)); // stylelint-disable-line function-disallowed-list + margin-inline-start: var(--#{$prefix}toast-padding-x); } } diff --git a/core/scss/bootstrap/_type.scss b/core/scss/bootstrap/_type.scss index 7ff98a41c..fc807d4bb 100644 --- a/core/scss/bootstrap/_type.scss +++ b/core/scss/bootstrap/_type.scss @@ -45,7 +45,7 @@ display: inline-block; &:not(:last-child) { - margin-right: $list-inline-padding; + margin-inline-end: $list-inline-padding; } } diff --git a/core/scss/bootstrap/forms/_floating-labels.scss b/core/scss/bootstrap/forms/_floating-labels.scss index a5ffe3529..5a077cb80 100644 --- a/core/scss/bootstrap/forms/_floating-labels.scss +++ b/core/scss/bootstrap/forms/_floating-labels.scss @@ -14,7 +14,7 @@ > label { position: absolute; top: 0; - left: 0; + inset-inline-start: 0; z-index: 2; max-width: 100%; height: 100%; // allow textareas @@ -53,7 +53,7 @@ > .form-select { padding-top: $form-floating-input-padding-t; padding-bottom: $form-floating-input-padding-b; - padding-left: $form-floating-padding-x; + padding-inline-start: $form-floating-padding-x; } > .form-control:focus, diff --git a/core/scss/bootstrap/forms/_form-check.scss b/core/scss/bootstrap/forms/_form-check.scss index 10ad78ac7..34b3159e3 100644 --- a/core/scss/bootstrap/forms/_form-check.scss +++ b/core/scss/bootstrap/forms/_form-check.scss @@ -7,24 +7,24 @@ .form-check { display: block; min-height: $form-check-min-height; - padding-left: $form-check-padding-start; + padding-inline-start: $form-check-padding-start; margin-bottom: $form-check-margin-bottom; .form-check-input { - float: left; - margin-left: $form-check-padding-start * -1; + float: inline-start; + margin-inline-start: $form-check-padding-start * -1; } } .form-check-reverse { - padding-right: $form-check-padding-start; - padding-left: 0; - text-align: right; + padding-inline-end: $form-check-padding-start; + padding-inline-start: 0; + text-align: end; .form-check-input { - float: right; - margin-right: $form-check-padding-start * -1; - margin-left: 0; + float: inline-end; + margin-inline-end: $form-check-padding-start * -1; + margin-inline-start: 0; } } @@ -124,13 +124,13 @@ // .form-switch { - padding-left: $form-switch-padding-start; + padding-inline-start: $form-switch-padding-start; .form-check-input { --#{$prefix}form-switch-bg: #{escape-svg($form-switch-bg-image)}; width: $form-switch-width; - margin-left: $form-switch-padding-start * -1; + margin-inline-start: $form-switch-padding-start * -1; background-image: var(--#{$prefix}form-switch-bg); background-position: left center; @include border-radius($form-switch-border-radius, 0); @@ -152,19 +152,19 @@ } &.form-check-reverse { - padding-right: $form-switch-padding-start; - padding-left: 0; + padding-inline-end: $form-switch-padding-start; + padding-inline-start: 0; .form-check-input { - margin-right: $form-switch-padding-start * -1; - margin-left: 0; + margin-inline-end: $form-switch-padding-start * -1; + margin-inline-start: 0; } } } .form-check-inline { display: inline-block; - margin-right: $form-check-inline-margin-end; + margin-inline-end: $form-check-inline-margin-end; } .btn-check { diff --git a/core/scss/bootstrap/forms/_form-control.scss b/core/scss/bootstrap/forms/_form-control.scss index f48692459..dc6484294 100644 --- a/core/scss/bootstrap/forms/_form-control.scss +++ b/core/scss/bootstrap/forms/_form-control.scss @@ -139,8 +139,8 @@ &.form-control-sm, &.form-control-lg { - padding-right: 0; - padding-left: 0; + padding-inline-end: 0; + padding-inline-start: 0; } } diff --git a/core/scss/bootstrap/forms/_form-select.scss b/core/scss/bootstrap/forms/_form-select.scss index 4ad0c9760..a1f374611 100644 --- a/core/scss/bootstrap/forms/_form-select.scss +++ b/core/scss/bootstrap/forms/_form-select.scss @@ -40,7 +40,7 @@ &[multiple], &[size]:not([size='1']) { - padding-right: $form-select-padding-x; + padding-inline-end: $form-select-padding-x; background-image: none; } @@ -60,7 +60,7 @@ .form-select-sm { padding-top: $form-select-padding-y-sm; padding-bottom: $form-select-padding-y-sm; - padding-left: $form-select-padding-x-sm; + padding-inline-start: $form-select-padding-x-sm; @include font-size($form-select-font-size-sm); @include border-radius($form-select-border-radius-sm); } @@ -68,7 +68,7 @@ .form-select-lg { padding-top: $form-select-padding-y-lg; padding-bottom: $form-select-padding-y-lg; - padding-left: $form-select-padding-x-lg; + padding-inline-start: $form-select-padding-x-lg; @include font-size($form-select-font-size-lg); @include border-radius($form-select-border-radius-lg); } diff --git a/core/scss/bootstrap/forms/_input-group.scss b/core/scss/bootstrap/forms/_input-group.scss index 6b9c182be..9b2577c43 100644 --- a/core/scss/bootstrap/forms/_input-group.scss +++ b/core/scss/bootstrap/forms/_input-group.scss @@ -92,7 +92,7 @@ .input-group-lg > .form-select, .input-group-sm > .form-select { - padding-right: $form-select-padding-x + $form-select-indicator-padding; + padding-inline-end: $form-select-padding-x + $form-select-indicator-padding; } // Rounded corners @@ -127,7 +127,7 @@ } > :not(:first-child):not(.dropdown-menu)#{$validation-messages} { - margin-left: calc(-1 * #{$input-border-width}); // stylelint-disable-line function-disallowed-list + margin-inline-start: calc(-1 * #{$input-border-width}); // stylelint-disable-line function-disallowed-list @include border-start-radius(0); } diff --git a/core/scss/layout/_navbar.scss b/core/scss/layout/_navbar.scss index 860a83f66..f374288f3 100644 --- a/core/scss/layout/_navbar.scss +++ b/core/scss/layout/_navbar.scss @@ -122,7 +122,8 @@ Navbar position: absolute; top: 0.5rem; inset-inline-end: 0.5rem; - transform: translate(50%, -50%); + /*rtl:ignore*/ + transform: translate(calc(var(--#{$prefix}dir) * 50%), -50%); } } } diff --git a/core/scss/mixins/bootstrap/_backdrop.scss b/core/scss/mixins/bootstrap/_backdrop.scss index 49412c258..951431f7c 100644 --- a/core/scss/mixins/bootstrap/_backdrop.scss +++ b/core/scss/mixins/bootstrap/_backdrop.scss @@ -5,8 +5,8 @@ // Shared between modals and offcanvases @mixin overlay-backdrop($zindex, $backdrop-bg, $backdrop-opacity) { position: fixed; + inset-inline-start: 0; top: 0; - left: 0; z-index: $zindex; width: 100vw; height: 100vh; diff --git a/core/scss/mixins/bootstrap/_caret.scss b/core/scss/mixins/bootstrap/_caret.scss index 5cb97afd5..f4522d372 100644 --- a/core/scss/mixins/bootstrap/_caret.scss +++ b/core/scss/mixins/bootstrap/_caret.scss @@ -4,29 +4,30 @@ @use 'breakpoints' as *; @mixin caret-down($width: $caret-width) { border-top: $width solid; - border-right: $width solid transparent; + border-inline-end: $width solid transparent; border-bottom: 0; - border-left: $width solid transparent; + border-inline-start: $width solid transparent; } @mixin caret-up($width: $caret-width) { border-top: 0; - border-right: $width solid transparent; + border-inline-end: $width solid transparent; border-bottom: $width solid; - border-left: $width solid transparent; + border-inline-start: $width solid transparent; } @mixin caret-end($width: $caret-width) { border-top: $width solid transparent; - border-right: 0; + border-inline-end: 0; border-bottom: $width solid transparent; - border-left: $width solid; + border-inline-start: $width solid; } @mixin caret-start($width: $caret-width) { border-top: $width solid transparent; - border-right: $width solid; + border-inline-end: $width solid; border-bottom: $width solid transparent; + border-inline-start: 0; } @mixin caret($direction: down, $width: $caret-width, $spacing: $caret-spacing, $vertical-align: $caret-vertical-align) { diff --git a/core/scss/mixins/bootstrap/_container.scss b/core/scss/mixins/bootstrap/_container.scss index 97d3d687c..d017e8787 100644 --- a/core/scss/mixins/bootstrap/_container.scss +++ b/core/scss/mixins/bootstrap/_container.scss @@ -8,8 +8,8 @@ --#{$prefix}gutter-x: #{$gutter}; --#{$prefix}gutter-y: 0; width: 100%; - padding-right: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list - padding-left: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list - margin-right: auto; - margin-left: auto; + padding-inline-end: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list + padding-inline-start: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list + margin-inline-end: auto; + margin-inline-start: auto; } diff --git a/core/scss/mixins/bootstrap/_forms.scss b/core/scss/mixins/bootstrap/_forms.scss index c52e48d8e..83b3dfa57 100644 --- a/core/scss/mixins/bootstrap/_forms.scss +++ b/core/scss/mixins/bootstrap/_forms.scss @@ -58,7 +58,7 @@ border-color: $border-color; @if $enable-validation-icons { - padding-right: $input-height-inner; + padding-inline-end: $input-height-inner; background-image: escape-svg($icon); background-repeat: no-repeat; background-position: right $input-height-inner-quarter center; @@ -80,7 +80,7 @@ textarea.form-control { @include form-validation-state-selector($state) { @if $enable-validation-icons { - padding-right: $input-height-inner; + padding-inline-end: $input-height-inner; background-position: top $input-height-inner-quarter right $input-height-inner-quarter; } } @@ -94,7 +94,7 @@ &:not([multiple]):not([size]), &:not([multiple])[size='1'] { --#{$prefix}form-select-bg-icon: #{escape-svg($icon)}; - padding-right: $form-select-feedback-icon-padding-end; + padding-inline-end: $form-select-feedback-icon-padding-end; background-position: $form-select-bg-position, $form-select-feedback-icon-position; background-size: $form-select-bg-size, $form-select-feedback-icon-size; } @@ -138,7 +138,7 @@ } .form-check-inline .form-check-input { ~ .#{$state}-feedback { - margin-left: 0.5em; + margin-inline-start: 0.5em; } } diff --git a/core/scss/mixins/bootstrap/_grid.scss b/core/scss/mixins/bootstrap/_grid.scss index 97478578d..f0faa9592 100644 --- a/core/scss/mixins/bootstrap/_grid.scss +++ b/core/scss/mixins/bootstrap/_grid.scss @@ -17,8 +17,8 @@ display: flex; flex-wrap: wrap; margin-top: calc(-1 * var(--#{$prefix}gutter-y)); // stylelint-disable-line function-disallowed-list - margin-right: calc(-0.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list - margin-left: calc(-0.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list + margin-inline-end: calc(-0.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list + margin-inline-start: calc(-0.5 * var(--#{$prefix}gutter-x)); // stylelint-disable-line function-disallowed-list } @mixin make-col-ready() { @@ -26,8 +26,8 @@ flex-shrink: 0; width: 100%; max-width: 100%; - padding-right: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list - padding-left: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list + padding-inline-end: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list + padding-inline-start: calc(var(--#{$prefix}gutter-x) * 0.5); // stylelint-disable-line function-disallowed-list margin-top: var(--#{$prefix}gutter-y); } @@ -48,7 +48,7 @@ @mixin make-col-offset($size, $columns: $grid-columns) { $num: divide($size, $columns); - margin-left: if(sass($num == 0): 0; else: math.percentage($num)); + margin-inline-start: if(sass($num == 0): 0; else: math.percentage($num)); } @mixin row-cols($count) { diff --git a/core/scss/mixins/bootstrap/_lists.scss b/core/scss/mixins/bootstrap/_lists.scss index 1e97062ad..5cd082dc9 100644 --- a/core/scss/mixins/bootstrap/_lists.scss +++ b/core/scss/mixins/bootstrap/_lists.scss @@ -6,6 +6,6 @@ // Unstyled keeps list items block level, just removes default browser padding and list-style @mixin list-unstyled { - padding-left: 0; + padding-inline-start: 0; list-style: none; } diff --git a/core/scss/mixins/bootstrap/_rfs.scss b/core/scss/mixins/bootstrap/_rfs.scss index 9ad75a5ae..eaf90417f 100644 --- a/core/scss/mixins/bootstrap/_rfs.scss +++ b/core/scss/mixins/bootstrap/_rfs.scss @@ -314,16 +314,26 @@ $rfs-mq-property-height: if(sass($rfs-mode == max-media-query): max-height; else @include rfs($value, padding-top); } +@mixin padding-inline-end($value) { + @include rfs($value, padding-inline-end); +} + +// Deprecated: use padding-inline-end() instead @mixin padding-right($value) { - @include rfs($value, padding-right); + @include padding-inline-end($value); } @mixin padding-bottom($value) { @include rfs($value, padding-bottom); } +@mixin padding-inline-start($value) { + @include rfs($value, padding-inline-start); +} + +// Deprecated: use padding-inline-start() instead @mixin padding-left($value) { - @include rfs($value, padding-left); + @include padding-inline-start($value); } @mixin margin($value) { @@ -334,14 +344,24 @@ $rfs-mq-property-height: if(sass($rfs-mode == max-media-query): max-height; else @include rfs($value, margin-top); } +@mixin margin-inline-end($value) { + @include rfs($value, margin-inline-end); +} + +// Deprecated: use margin-inline-end() instead @mixin margin-right($value) { - @include rfs($value, margin-right); + @include margin-inline-end($value); } @mixin margin-bottom($value) { @include rfs($value, margin-bottom); } -@mixin margin-left($value) { - @include rfs($value, margin-left); +@mixin margin-inline-start($value) { + @include rfs($value, margin-inline-start); +} + +// Deprecated: use margin-inline-start() instead +@mixin margin-left($value) { + @include margin-inline-start($value); } diff --git a/core/scss/tests/_caret.test.scss b/core/scss/tests/_caret.test.scss index ce7e5c4f0..69322fe87 100644 --- a/core/scss/tests/_caret.test.scss +++ b/core/scss/tests/_caret.test.scss @@ -16,9 +16,9 @@ @include expect() { .t { border-top: 0.3em solid; - border-right: 0.3em solid transparent; + border-inline-end: 0.3em solid transparent; border-bottom: 0; - border-left: 0.3em solid transparent; + border-inline-start: 0.3em solid transparent; } } } @@ -34,9 +34,9 @@ @include expect() { .t { border-top: 0; - border-right: 0.3em solid transparent; + border-inline-end: 0.3em solid transparent; border-bottom: 0.3em solid; - border-left: 0.3em solid transparent; + border-inline-start: 0.3em solid transparent; } } } @@ -52,8 +52,9 @@ @include expect() { .t { border-top: 0.3em solid transparent; - border-right: 0.3em solid; + border-inline-end: 0.3em solid; border-bottom: 0.3em solid transparent; + border-inline-start: 0; } } } diff --git a/core/scss/tests/_generate-utility.test.scss b/core/scss/tests/_generate-utility.test.scss index aa63e94a3..c156420a1 100644 --- a/core/scss/tests/_generate-utility.test.scss +++ b/core/scss/tests/_generate-utility.test.scss @@ -68,7 +68,7 @@ @include output() { @include generate-utility( ( - property: margin-right margin-left, + property: margin-inline-end margin-inline-start, class: mx, values: ( 0: 0, @@ -79,12 +79,12 @@ } @include expect() { .mx-0 { - margin-right: 0 !important; - margin-left: 0 !important; + margin-inline-end: 0 !important; + margin-inline-start: 0 !important; } .mx-auto { - margin-right: auto !important; - margin-left: auto !important; + margin-inline-end: auto !important; + margin-inline-start: auto !important; } } } @@ -181,8 +181,9 @@ property: float, class: float, values: ( - left, - right, + start: inline-start, + end: inline-end, + none: none, ), ), ); @@ -209,11 +210,14 @@ .d-flex { display: flex !important; } - .float-left { - float: left !important; + .float-start { + float: inline-start !important; } - .float-right { - float: right !important; + .float-end { + float: inline-end !important; + } + .float-none { + float: none !important; } // responsive breakpoints: only `d` (responsive: true) is repeated; `float` is not diff --git a/core/scss/tests/_grid.test.scss b/core/scss/tests/_grid.test.scss index 47b730156..7e04f6795 100644 --- a/core/scss/tests/_grid.test.scss +++ b/core/scss/tests/_grid.test.scss @@ -67,7 +67,7 @@ } @include expect() { .t { - margin-left: 25%; + margin-inline-start: 25%; } } } @@ -82,7 +82,7 @@ } @include expect() { .t { - margin-left: 0; + margin-inline-start: 0; } } } @@ -122,8 +122,8 @@ display: flex; flex-wrap: wrap; margin-top: calc(-1 * var(--tblr-gutter-y)); - margin-right: calc(-0.5 * var(--tblr-gutter-x)); - margin-left: calc(-0.5 * var(--tblr-gutter-x)); + margin-inline-end: calc(-0.5 * var(--tblr-gutter-x)); + margin-inline-start: calc(-0.5 * var(--tblr-gutter-x)); } } } @@ -143,8 +143,8 @@ flex-shrink: 0; width: 100%; max-width: 100%; - padding-right: calc(var(--tblr-gutter-x) * 0.5); - padding-left: calc(var(--tblr-gutter-x) * 0.5); + padding-inline-end: calc(var(--tblr-gutter-x) * 0.5); + padding-inline-start: calc(var(--tblr-gutter-x) * 0.5); margin-top: var(--tblr-gutter-y); } } diff --git a/core/scss/ui/_badges.scss b/core/scss/ui/_badges.scss index 59da0e506..70f952d0a 100644 --- a/core/scss/ui/_badges.scss +++ b/core/scss/ui/_badges.scss @@ -83,7 +83,8 @@ position: absolute !important; top: 0 !important; inset-inline-end: 0 !important; - transform: translate(50%, -50%); + /*rtl:ignore*/ + transform: translate(calc(var(--#{$prefix}dir) * 50%), -50%); z-index: 1; } diff --git a/core/scss/ui/_buttons.scss b/core/scss/ui/_buttons.scss index ae0832ff8..53d5cdc3d 100644 --- a/core/scss/ui/_buttons.scss +++ b/core/scss/ui/_buttons.scss @@ -315,7 +315,8 @@ &:hover, &:focus-visible { .icon { - transform: translateX(4px); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * 4px)); } } @@ -332,7 +333,8 @@ &:hover, &:focus-visible { .icon { - transform: translateX(-4px); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -4px)); } } } diff --git a/core/scss/ui/_cards.scss b/core/scss/ui/_cards.scss index 5cb018f0e..cad4c346a 100644 --- a/core/scss/ui/_cards.scss +++ b/core/scss/ui/_cards.scss @@ -457,22 +457,15 @@ Card table td, th { &:first-child { - padding-left: $card-spacer-x; - border-left: 0; - border-top-left-radius: var(--#{$prefix}card-border-radius); - } - - &:last-child { - padding-right: $card-spacer-x; - border-right: 0; - border-top-right-radius: var(--#{$prefix}card-border-radius); padding-inline-start: $card-spacer-x; border-inline-start: 0; + border-start-start-radius: var(--#{$prefix}card-border-radius); } &:last-child { padding-inline-end: $card-spacer-x; border-inline-end: 0; + border-start-end-radius: var(--#{$prefix}card-border-radius); } } } diff --git a/core/scss/ui/_loaders.scss b/core/scss/ui/_loaders.scss index aa0193b48..dbab834bf 100644 --- a/core/scss/ui/_loaders.scss +++ b/core/scss/ui/_loaders.scss @@ -56,7 +56,8 @@ Dimmer @keyframes animated-dots { 0% { - transform: translateX(-100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -100%)); } } diff --git a/core/scss/ui/_steps.scss b/core/scss/ui/_steps.scss index a3f48aae9..69a9d2291 100644 --- a/core/scss/ui/_steps.scss +++ b/core/scss/ui/_steps.scss @@ -83,7 +83,8 @@ align-items: center; justify-content: center; @include border-radius(var(--#{$prefix}border-radius-pill)); - transform: translateX(-50%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -50%)); color: var(--#{$prefix}white); width: var(--#{$prefix}steps-dot-size); height: var(--#{$prefix}steps-dot-size); @@ -157,7 +158,8 @@ &:after { position: absolute; content: ''; - transform: translateX(-50%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -50%)); top: var(--#{$prefix}steps-dot-offset); inset-inline-start: calc(var(--#{$prefix}steps-dot-size) * 0.5); width: var(--#{$prefix}steps-border-width); diff --git a/core/scss/ui/_switch-icon.scss b/core/scss/ui/_switch-icon.scss index bb9291073..d05bc02f6 100644 --- a/core/scss/ui/_switch-icon.scss +++ b/core/scss/ui/_switch-icon.scss @@ -161,12 +161,14 @@ } .switch-icon-b { - transform: translateX(100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * 100%)); } &.active { .switch-icon-a { - transform: translateX(-100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -100%)); } .switch-icon-b { @@ -182,12 +184,14 @@ } .switch-icon-b { - transform: translateX(-100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * -100%)); } &.active { .switch-icon-a { - transform: translateX(100%); + /*rtl:ignore*/ + transform: translateX(calc(var(--#{$prefix}dir) * 100%)); } .switch-icon-b { From 2f34c938b423f6ab00245ec15671dcc0ab3dd4a5 Mon Sep 17 00:00:00 2001 From: Bartek Date: Wed, 5 Aug 2026 10:28:21 +0200 Subject: [PATCH 6/7] Remove deprecated Stylelint configuration and update dependencies for improved linting support --- .stylelintrc | 8 - core/package.json | 6 +- package.json | 3 + pnpm-lock.yaml | 741 +++++++++++++++++++++++++++++++++++++++++++ stylelint.config.mjs | 35 ++ 5 files changed, 783 insertions(+), 10 deletions(-) delete mode 100644 .stylelintrc create mode 100644 stylelint.config.mjs diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index 87eb443df..000000000 --- a/.stylelintrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": [ - "stylelint-config-twbs-bootstrap/scss" - ], - "rules": { - "selector-no-qualifying-type": null - } -} \ No newline at end of file diff --git a/core/package.json b/core/package.json index 5b7cfe286..ea0f6a113 100644 --- a/core/package.json +++ b/core/package.json @@ -11,7 +11,9 @@ "clean": "shx rm -rf dist demo", "css": "tsx ../.build/build-css.ts scss dist/css --rtl --minify --banner", "css-build": "tsx ../.build/build-css.ts scss dist/css", - "css-lint": "pnpm run css-lint-variables", + "css-lint": "pnpm run lint:scss && pnpm run css-lint-variables", + "lint:scss": "stylelint \"scss/**/*.scss\" --config ../stylelint.config.mjs", + "lint:scss:fix": "pnpm run lint:scss --fix", "css-lint-variables": "find-unused-sass-variables scss/", "js": "pnpm run js-build && pnpm run js-build-min", "js-build": "concurrently \"pnpm run js-build-standalone\" \"pnpm run js-build-theme\"", @@ -284,4 +286,4 @@ "directories": { "doc": "docs" } -} \ No newline at end of file +} diff --git a/package.json b/package.json index ef61ccbaa..93f527c8a 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "devDependencies": { "@changesets/changelog-github": "^0.7.0", "@changesets/cli": "^2.31.1", + "@stylistic/stylelint-config": "^5.0.0", "adm-zip": "^0.6.0", "autoprefixer": "^10.5.4", "bundlewatch": "^0.4.2", @@ -52,6 +53,8 @@ "rtlcss": "^4.3.0", "sass": "1.102.0", "shelljs": "^0.10.0", + "stylelint": "^17.14.1", + "stylelint-config-twbs-bootstrap": "^16.1.0", "terser": "^5.49.0", "tsx": "^4.23.1", "turbo": "2.10.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 25836cf8c..8949145b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,6 +21,9 @@ importers: '@changesets/cli': specifier: ^2.31.1 version: 2.31.1(@types/node@26.1.1) + '@stylistic/stylelint-config': + specifier: ^5.0.0 + version: 5.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) adm-zip: specifier: ^0.6.0 version: 0.6.0 @@ -75,6 +78,12 @@ importers: shelljs: specifier: ^0.10.0 version: 0.10.0 + stylelint: + specifier: ^17.14.1 + version: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + stylelint-config-twbs-bootstrap: + specifier: ^16.1.0 + version: 16.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) terser: specifier: ^5.49.0 version: 5.49.0 @@ -618,6 +627,12 @@ packages: cpu: [x64] os: [win32] + '@cacheable/memory@2.2.0': + resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==} + + '@cacheable/utils@2.5.0': + resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} + '@capsizecss/unpack@4.0.1': resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==} engines: {node: '>=18'} @@ -691,6 +706,67 @@ packages: resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} engines: {node: '>= 20.12.0'} + '@csstools/css-calc@3.3.0': + resolution: {integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/css-parser-algorithms@3.0.5': + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.4 + + '@csstools/css-parser-algorithms@4.0.0': + resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.1.7': + resolution: {integrity: sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==} + peerDependencies: + css-tree: ^3.2.1 + peerDependenciesMeta: + css-tree: + optional: true + + '@csstools/css-tokenizer@3.0.4': + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} + + '@csstools/css-tokenizer@4.0.0': + resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} + engines: {node: '>=20.19.0'} + + '@csstools/media-query-list-parser@3.0.1': + resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.1 + '@csstools/css-tokenizer': ^3.0.1 + + '@csstools/media-query-list-parser@5.0.0': + resolution: {integrity: sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==} + engines: {node: '>=20.19.0'} + peerDependencies: + '@csstools/css-parser-algorithms': ^4.0.0 + '@csstools/css-tokenizer': ^4.0.0 + + '@csstools/selector-resolve-nested@4.0.1': + resolution: {integrity: sha512-j3vdQu0XwLME5qOTWxm8cnmvsf423R2YL6DbKklCHZwkDm7UdKNu6RPlw4REIJhSlKBICY3B70/7QZdicLqZgg==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss-selector-parser: ^7.1.1 + + '@csstools/selector-specificity@6.0.0': + resolution: {integrity: sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==} + engines: {node: '>=20.19.0'} + peerDependencies: + postcss-selector-parser: ^7.1.1 + '@emmetio/abbreviation@2.3.3': resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} @@ -1263,6 +1339,15 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} + '@keyv/bigmap@1.3.1': + resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} + engines: {node: '>= 18'} + peerDependencies: + keyv: ^5.6.0 + + '@keyv/serialize@1.1.1': + resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} + '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1708,9 +1793,36 @@ packages: '@sinclair/typebox@0.34.52': resolution: {integrity: sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==} + '@sindresorhus/merge-streams@4.0.0': + resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} + engines: {node: '>=18'} + '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} + '@stylistic/stylelint-config@2.0.0': + resolution: {integrity: sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==} + engines: {node: ^18.12 || >=20.9} + peerDependencies: + stylelint: ^16.8.0 + + '@stylistic/stylelint-config@5.0.0': + resolution: {integrity: sha512-AW6S27wEm4DzB+uOZMvRkONIu0ba50VRbFte7qYJgGP4dacS8kAuj8HZJ+s+8kE4GK3XXBcSKLb75a+NfJlbiQ==} + engines: {node: '>=20.19.0'} + peerDependencies: + stylelint: ^17.6.0 + + '@stylistic/stylelint-plugin@3.1.3': + resolution: {integrity: sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==} + engines: {node: ^18.12 || >=20.9} + peerDependencies: + stylelint: ^16.8.0 + + '@stylistic/stylelint-plugin@5.2.1': + resolution: {integrity: sha512-BMRWJVtO16uADJmKcGi6mreei/QYdOviABXuaCeHEc3T3pxo4wFYYSvnxIoyiPVfDJqX+DxQdnGkuc6KxsRaSw==} + peerDependencies: + stylelint: ^17.6.0 + '@swc/helpers@0.2.14': resolution: {integrity: sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==} @@ -2088,6 +2200,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + astral-regex@2.0.0: + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} + astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -2186,10 +2302,17 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} + cacheable@2.5.0: + resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} + call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + caniuse-lite@1.0.30001806: resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==} @@ -2273,6 +2396,9 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + colord@2.9.3: + resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2338,6 +2464,15 @@ packages: core-js@3.49.0: resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} + cosmiconfig@9.0.2: + resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==} + engines: {node: '>=14'} + peerDependencies: + typescript: '>=4.9.5' + peerDependenciesMeta: + typescript: + optional: true + countup.js@2.10.1: resolution: {integrity: sha512-UHW/BsPDgVZfN919D4iu2HPv+jJxZUuaR3EhT0ScFZaD446GiQtkMTgOnOyJXdA2AewdlyUk9UvERlTHTbVpcw==} @@ -2357,6 +2492,10 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} + css-functions-list@3.3.3: + resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} + engines: {node: '>=12'} + css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} @@ -2372,6 +2511,11 @@ packages: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -2488,6 +2632,9 @@ packages: emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} + emoji-regex@8.0.0: + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2503,6 +2650,10 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} + env-paths@2.2.1: + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} + error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} @@ -2613,6 +2764,10 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} + fastest-levenshtein@1.0.16: + resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} + engines: {node: '>= 4.9.1'} + fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -2625,6 +2780,9 @@ packages: picomatch: optional: true + file-entry-cache@11.1.5: + resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2638,9 +2796,15 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} + flat-cache@6.1.23: + resolution: {integrity: sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==} + flatpickr@4.6.13: resolution: {integrity: sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==} + flatted@3.4.4: + resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} + flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} @@ -2758,10 +2922,25 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me + global-modules@2.0.0: + resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} + engines: {node: '>=6'} + + global-prefix@3.0.0: + resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} + engines: {node: '>=6'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} + globby@16.2.2: + resolution: {integrity: sha512-NLvV9ubZ6NDsJaOpKPy3cQeJpKi9DcWiyCiFUpJPA0YihRqiE6RWaLUmgNNPr8MgPpLZjnBjSmou7uZBRJv9wA==} + engines: {node: '>=20'} + + globjoin@0.1.4: + resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} + good-listener@1.2.2: resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} @@ -2787,6 +2966,10 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + has-flag@5.0.1: + resolution: {integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==} + engines: {node: '>=12'} + has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -2795,6 +2978,10 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} + hashery@1.5.1: + resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} + engines: {node: '>=20'} + hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -2835,6 +3022,12 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + hookified@1.15.1: + resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} + + hookified@2.2.0: + resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} + hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -2844,6 +3037,10 @@ packages: html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} + html-tags@5.1.0: + resolution: {integrity: sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==} + engines: {node: '>=20.10'} + html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -2883,6 +3080,13 @@ packages: immutable@5.1.9: resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + import-meta-resolve@4.2.0: + resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} + inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -2936,6 +3140,10 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-fullwidth-code-point@3.0.0: + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -2947,10 +3155,18 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + is-path-inside@4.0.0: + resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} + engines: {node: '>=12'} + is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} + is-plain-object@5.0.0: + resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} + engines: {node: '>=0.10.0'} + is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -3054,10 +3270,20 @@ packages: resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} hasBin: true + keyv@5.6.0: + resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} + + kind-of@6.0.3: + resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} + engines: {node: '>=0.10.0'} + kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} + known-css-properties@0.37.0: + resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} + lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} @@ -3158,6 +3384,9 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} + lodash.truncate@4.4.2: + resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} + longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3208,6 +3437,9 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} + mathml-tag-names@4.0.0: + resolution: {integrity: sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==} + mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} @@ -3268,6 +3500,10 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + meow@14.1.0: + resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==} + engines: {node: '>=20'} + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3587,6 +3823,10 @@ packages: package-manager-detector@1.7.0: resolution: {integrity: sha512-xg1eHpwYL/D/HEdWw2goFZP6vV0FH7W+PZ5rFkGjdIDLtxq7EkzBUeT3m+lndYCt8wKbmofUu1MUdMCXkCk9ZQ==} + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -3673,12 +3913,37 @@ packages: engines: {node: '>=18.12'} hasBin: true + postcss-media-query-parser@0.2.3: + resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} + + postcss-resolve-nested-selector@0.1.6: + resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} + + postcss-safe-parser@7.0.1: + resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} + engines: {node: '>=18.0'} + peerDependencies: + postcss: ^8.4.31 + postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 + postcss-selector-parser@6.1.4: + resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} + engines: {node: '>=4'} + + postcss-selector-parser@7.1.4: + resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} + engines: {node: '>=4'} + + postcss-sorting@8.0.2: + resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} + peerDependencies: + postcss: ^8.4.20 + postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -3743,6 +4008,10 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} + qified@0.10.1: + resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} + engines: {node: '>=20'} + quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} @@ -3859,6 +4128,10 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -4043,6 +4316,14 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} + slash@5.1.0: + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} + + slice-ansi@4.0.0: + resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} + engines: {node: '>=10'} + smol-toml@1.6.1: resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} @@ -4102,6 +4383,10 @@ packages: string-natural-compare@2.0.3: resolution: {integrity: sha512-4Kcl12rNjc+6EKhY8QyDVuQTAlMWwRiNbsxnVwBUKFr7dYPQuXVrtNU4sEkjF9LHY0AY6uVbB3ktbkIH4LC+BQ==} + string-width@4.2.3: + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} + string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -4137,6 +4422,9 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + style-search@0.1.0: + resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} + style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -4156,6 +4444,65 @@ packages: babel-plugin-macros: optional: true + stylelint-config-recess-order@5.1.1: + resolution: {integrity: sha512-eDAHWVBelzDbMbdMj15pSw0Ycykv5eLeriJdbGCp0zd44yvhgZLI+wyVHegzXp5NrstxTPSxl0fuOVKdMm0XLA==} + peerDependencies: + stylelint: '>=16' + + stylelint-config-recommended-scss@14.1.0: + resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.6.1 + peerDependenciesMeta: + postcss: + optional: true + + stylelint-config-recommended@14.0.1: + resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + + stylelint-config-standard-scss@14.0.0: + resolution: {integrity: sha512-6Pa26D9mHyi4LauJ83ls3ELqCglU6VfCXchovbEqQUiEkezvKdv6VgsIoMy58i00c854wVmOw0k8W5FTpuaVqg==} + engines: {node: '>=18.12.0'} + peerDependencies: + postcss: ^8.3.3 + stylelint: ^16.11.0 + peerDependenciesMeta: + postcss: + optional: true + + stylelint-config-standard@36.0.1: + resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.1.0 + + stylelint-config-twbs-bootstrap@16.1.0: + resolution: {integrity: sha512-jp+/lHxOo5r21g05+qC/nbFueb7OH5Pub5SdWeBj7T0HVGuHDjB4NoNlWklmz1GsqNhAtFms6ZCnJsAgc8XOmQ==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.11.0 + + stylelint-order@6.0.4: + resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} + peerDependencies: + stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 + + stylelint-scss@6.14.0: + resolution: {integrity: sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==} + engines: {node: '>=18.12.0'} + peerDependencies: + stylelint: ^16.8.2 + + stylelint@17.14.1: + resolution: {integrity: sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==} + engines: {node: '>=20.19.0'} + hasBin: true + suf-log@2.5.3: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} @@ -4171,15 +4518,26 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} + supports-hyperlinks@4.5.0: + resolution: {integrity: sha512-ZW2OvfeCXrNTbLakPUzjQG922EeGCOteFSVoek5DKStTh898wf7zgtuFlzQN8HfZCxC3Eh02yJVrRW51hADf+w==} + engines: {node: '>=20'} + supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} + svg-tags@1.0.0: + resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} + svgo@4.0.2: resolution: {integrity: sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==} engines: {node: '>=16'} hasBin: true + table@6.9.0: + resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} + engines: {node: '>=10.0.0'} + term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -4299,6 +4657,10 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} + unicorn-magic@0.4.0: + resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} + engines: {node: '>=20'} + unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -4414,6 +4776,9 @@ packages: url-polyfill@1.1.14: resolution: {integrity: sha512-p4f3TTAG6ADVF3mwbXw7hGw+QJyw5CnNGvYh5fCuQQZIiuKUswqcznyV3pGDP9j0TSmC4UvRKm8kl1QsX1diiQ==} + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -4693,6 +5058,10 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + write-file-atomic@7.0.1: + resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==} + engines: {node: ^20.17.0 || >=22.9.0} + ws@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -5132,6 +5501,18 @@ snapshots: '@bruits/satteri-win32-x64-msvc@0.9.5': optional: true + '@cacheable/memory@2.2.0': + dependencies: + '@cacheable/utils': 2.5.0 + '@keyv/bigmap': 1.3.1(keyv@5.6.0) + hookified: 1.15.1 + keyv: 5.6.0 + + '@cacheable/utils@2.5.0': + dependencies: + hashery: 1.5.1 + keyv: 5.6.0 + '@capsizecss/unpack@4.0.1': dependencies: fontkitten: 1.0.3 @@ -5306,6 +5687,45 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 + '@csstools/css-calc@3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/css-syntax-patches-for-csstree@1.1.7(css-tree@3.2.1)': + optionalDependencies: + css-tree: 3.2.1 + + '@csstools/css-tokenizer@3.0.4': {} + + '@csstools/css-tokenizer@4.0.0': {} + + '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + + '@csstools/media-query-list-parser@5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': + dependencies: + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + + '@csstools/selector-resolve-nested@4.0.1(postcss-selector-parser@7.1.4)': + dependencies: + postcss-selector-parser: 7.1.4 + + '@csstools/selector-specificity@6.0.0(postcss-selector-parser@7.1.4)': + dependencies: + postcss-selector-parser: 7.1.4 + '@emmetio/abbreviation@2.3.3': dependencies: '@emmetio/scanner': 1.0.4 @@ -5693,6 +6113,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@keyv/bigmap@1.3.1(keyv@5.6.0)': + dependencies: + hashery: 1.5.1 + hookified: 1.15.1 + keyv: 5.6.0 + + '@keyv/serialize@1.1.1': {} + '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.29.7 @@ -6025,8 +6453,43 @@ snapshots: '@sinclair/typebox@0.34.52': {} + '@sindresorhus/merge-streams@4.0.0': {} + '@standard-schema/spec@1.1.0': {} + '@stylistic/stylelint-config@2.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': + dependencies: + '@stylistic/stylelint-plugin': 3.1.3(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + + '@stylistic/stylelint-config@5.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': + dependencies: + '@stylistic/stylelint-plugin': 5.2.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + + '@stylistic/stylelint-plugin@3.1.3(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': + dependencies: + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) + '@csstools/css-tokenizer': 3.0.4 + '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) + is-plain-object: 5.0.0 + postcss: 8.5.23 + postcss-selector-parser: 6.1.4 + postcss-value-parser: 4.2.0 + style-search: 0.1.0 + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + + '@stylistic/stylelint-plugin@5.2.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': + dependencies: + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-tokenizer': 4.0.0 + '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + postcss: 8.5.23 + postcss-selector-parser: 7.1.4 + postcss-value-parser: 4.2.0 + style-search: 0.1.0 + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + '@swc/helpers@0.2.14': {} '@swc/helpers@0.5.15': @@ -6370,6 +6833,8 @@ snapshots: assertion-error@2.0.1: {} + astral-regex@2.0.0: {} + astring@1.9.0: {} astro@7.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0): @@ -6635,11 +7100,21 @@ snapshots: bytes@3.1.2: {} + cacheable@2.5.0: + dependencies: + '@cacheable/memory': 2.2.0 + '@cacheable/utils': 2.5.0 + hookified: 1.15.1 + keyv: 5.6.0 + qified: 0.10.1 + call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 + callsites@3.1.0: {} + caniuse-lite@1.0.30001806: {} ccount@2.0.1: {} @@ -6719,6 +7194,8 @@ snapshots: color-name@1.1.4: {} + colord@2.9.3: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -6767,6 +7244,15 @@ snapshots: core-js@3.49.0: {} + cosmiconfig@9.0.2(typescript@7.0.2): + dependencies: + env-paths: 2.2.1 + import-fresh: 3.3.1 + js-yaml: 4.3.0 + parse-json: 5.2.0 + optionalDependencies: + typescript: 7.0.2 + countup.js@2.10.1: {} cross-env@10.1.0: @@ -6792,6 +7278,8 @@ snapshots: dependencies: uncrypto: 0.1.3 + css-functions-list@3.3.3: {} + css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -6812,6 +7300,8 @@ snapshots: css-what@6.2.2: {} + cssesc@3.0.0: {} + csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -6919,6 +7409,8 @@ snapshots: emoji-regex@10.6.0: {} + emoji-regex@8.0.0: {} + end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -6932,6 +7424,8 @@ snapshots: entities@6.0.1: {} + env-paths@2.2.1: {} + error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -7089,6 +7583,8 @@ snapshots: dependencies: fast-string-width: 3.0.2 + fastest-levenshtein@1.0.16: {} + fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -7097,6 +7593,10 @@ snapshots: optionalDependencies: picomatch: 4.0.5 + file-entry-cache@11.1.5: + dependencies: + flat-cache: 6.1.23 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -7115,8 +7615,16 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 + flat-cache@6.1.23: + dependencies: + cacheable: 2.5.0 + flatted: 3.4.4 + hookified: 1.15.1 + flatpickr@4.6.13: {} + flatted@3.4.4: {} + flattie@1.1.1: {} follow-redirects@1.16.0(debug@4.4.3(supports-color@5.5.0)): @@ -7241,6 +7749,16 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 + global-modules@2.0.0: + dependencies: + global-prefix: 3.0.0 + + global-prefix@3.0.0: + dependencies: + ini: 1.3.8 + kind-of: 6.0.3 + which: 1.3.1 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -7250,6 +7768,17 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 + globby@16.2.2: + dependencies: + '@sindresorhus/merge-streams': 4.0.0 + fast-glob: 3.3.3 + ignore: 7.0.6 + is-path-inside: 4.0.0 + slash: 5.1.0 + unicorn-magic: 0.4.0 + + globjoin@0.1.4: {} + good-listener@1.2.2: dependencies: delegate: 3.2.0 @@ -7278,12 +7807,18 @@ snapshots: has-flag@4.0.0: {} + has-flag@5.0.1: {} + has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: has-symbols: 1.1.0 + hashery@1.5.1: + dependencies: + hookified: 1.15.1 + hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -7416,12 +7951,18 @@ snapshots: property-information: 7.2.0 space-separated-tokens: 2.0.2 + hookified@1.15.1: {} + + hookified@2.2.0: {} + hosted-git-info@2.8.9: {} html-escaper@2.0.2: {} html-escaper@3.0.3: {} + html-tags@5.1.0: {} + html-void-elements@3.0.0: {} http-cache-semantics@4.2.0: {} @@ -7448,6 +7989,13 @@ snapshots: immutable@5.1.9: {} + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + import-meta-resolve@4.2.0: {} + inflight@1.0.6: dependencies: once: 1.4.0 @@ -7488,6 +8036,8 @@ snapshots: is-extglob@2.1.1: {} + is-fullwidth-code-point@3.0.0: {} + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -7496,8 +8046,12 @@ snapshots: is-number@7.0.0: {} + is-path-inside@4.0.0: {} + is-plain-obj@4.1.0: {} + is-plain-object@5.0.0: {} + is-stream@1.1.0: {} is-stream@2.0.1: {} @@ -7589,8 +8143,16 @@ snapshots: dependencies: commander: 8.3.0 + keyv@5.6.0: + dependencies: + '@keyv/serialize': 1.1.1 + + kind-of@6.0.3: {} + kleur@4.1.5: {} + known-css-properties@0.37.0: {} + lightningcss-android-arm64@1.32.0: optional: true @@ -7662,6 +8224,8 @@ snapshots: lodash.startcase@4.4.0: {} + lodash.truncate@4.4.2: {} + longest-streak@3.1.0: {} lru-cache@11.5.1: {} @@ -7736,6 +8300,8 @@ snapshots: math-intrinsics@1.1.0: {} + mathml-tag-names@4.0.0: {} + mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.4 @@ -7911,6 +8477,8 @@ snapshots: mdurl@2.0.0: {} + meow@14.1.0: {} + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -8383,6 +8951,10 @@ snapshots: package-manager-detector@1.7.0: {} + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -8464,10 +9036,32 @@ snapshots: pnpm@10.34.4: {} + postcss-media-query-parser@0.2.3: {} + + postcss-resolve-nested-selector@0.1.6: {} + + postcss-safe-parser@7.0.1(postcss@8.5.23): + dependencies: + postcss: 8.5.23 + postcss-scss@4.0.9(postcss@8.5.23): dependencies: postcss: 8.5.23 + postcss-selector-parser@6.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-selector-parser@7.1.4: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss-sorting@8.0.2(postcss@8.5.23): + dependencies: + postcss: 8.5.23 + postcss-value-parser@4.2.0: {} postcss@8.4.31: @@ -8522,6 +9116,10 @@ snapshots: punycode.js@2.3.1: {} + qified@0.10.1: + dependencies: + hookified: 2.2.0 + quansync@0.2.11: {} queue-microtask@1.2.3: {} @@ -8686,6 +9284,8 @@ snapshots: require-from-string@2.0.2: {} + resolve-from@4.0.0: {} + resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -8972,6 +9572,14 @@ snapshots: slash@3.0.0: {} + slash@5.1.0: {} + + slice-ansi@4.0.0: + dependencies: + ansi-styles: 4.3.0 + astral-regex: 2.0.0 + is-fullwidth-code-point: 3.0.0 + smol-toml@1.6.1: {} smol-toml@1.7.1: {} @@ -9022,6 +9630,12 @@ snapshots: string-natural-compare@2.0.3: {} + string-width@4.2.3: + dependencies: + emoji-regex: 8.0.0 + is-fullwidth-code-point: 3.0.0 + strip-ansi: 6.0.1 + string-width@7.2.0: dependencies: emoji-regex: 10.6.0 @@ -9054,6 +9668,8 @@ snapshots: strip-json-comments@3.1.1: {} + style-search@0.1.0: {} + style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -9069,6 +9685,108 @@ snapshots: optionalDependencies: '@babel/core': 7.29.7(supports-color@10.2.2) + stylelint-config-recess-order@5.1.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + stylelint-order: 6.0.4(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + + stylelint-config-recommended-scss@14.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + postcss-scss: 4.0.9(postcss@8.5.23) + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + stylelint-config-recommended: 14.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint-scss: 6.14.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + optionalDependencies: + postcss: 8.5.23 + + stylelint-config-recommended@14.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + + stylelint-config-standard-scss@14.0.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + stylelint-config-recommended-scss: 14.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint-config-standard: 36.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + optionalDependencies: + postcss: 8.5.23 + + stylelint-config-standard@36.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + stylelint-config-recommended: 14.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + + stylelint-config-twbs-bootstrap@16.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + '@stylistic/stylelint-config': 2.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + '@stylistic/stylelint-plugin': 3.1.3(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + stylelint-config-recess-order: 5.1.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint-config-standard: 36.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint-config-standard-scss: 14.0.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + stylelint-scss: 6.14.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) + transitivePeerDependencies: + - postcss + + stylelint-order@6.0.4(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + postcss: 8.5.23 + postcss-sorting: 8.0.2(postcss@8.5.23) + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + + stylelint-scss@6.14.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): + dependencies: + css-tree: 3.2.1 + is-plain-object: 5.0.0 + known-css-properties: 0.37.0 + mdn-data: 2.27.1 + postcss-media-query-parser: 0.2.3 + postcss-resolve-nested-selector: 0.1.6 + postcss-selector-parser: 7.1.4 + postcss-value-parser: 4.2.0 + stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) + + stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2): + dependencies: + '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) + '@csstools/css-syntax-patches-for-csstree': 1.1.7(css-tree@3.2.1) + '@csstools/css-tokenizer': 4.0.0 + '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) + '@csstools/selector-resolve-nested': 4.0.1(postcss-selector-parser@7.1.4) + '@csstools/selector-specificity': 6.0.0(postcss-selector-parser@7.1.4) + colord: 2.9.3 + cosmiconfig: 9.0.2(typescript@7.0.2) + css-functions-list: 3.3.3 + css-tree: 3.2.1 + debug: 4.4.3(supports-color@5.5.0) + fast-glob: 3.3.3 + fastest-levenshtein: 1.0.16 + file-entry-cache: 11.1.5 + global-modules: 2.0.0 + globby: 16.2.2 + globjoin: 0.1.4 + html-tags: 5.1.0 + ignore: 7.0.6 + import-meta-resolve: 4.2.0 + mathml-tag-names: 4.0.0 + meow: 14.1.0 + micromatch: 4.0.8 + normalize-path: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.23 + postcss-safe-parser: 7.0.1(postcss@8.5.23) + postcss-selector-parser: 7.1.4 + postcss-value-parser: 4.2.0 + string-width: 8.2.1 + supports-hyperlinks: 4.5.0 + svg-tags: 1.0.0 + table: 6.9.0 + write-file-atomic: 7.0.1 + transitivePeerDependencies: + - supports-color + - typescript + suf-log@2.5.3: dependencies: s.color: 0.0.15 @@ -9083,8 +9801,15 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-hyperlinks@4.5.0: + dependencies: + has-flag: 5.0.1 + supports-color: 10.2.2 + supports-preserve-symlinks-flag@1.0.0: {} + svg-tags@1.0.0: {} + svgo@4.0.2: dependencies: commander: 11.1.0 @@ -9095,6 +9820,14 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 + table@6.9.0: + dependencies: + ajv: 8.20.0 + lodash.truncate: 4.4.2 + slice-ansi: 4.0.0 + string-width: 4.2.3 + strip-ansi: 6.0.1 + term-size@2.2.1: {} terser@5.49.0: @@ -9208,6 +9941,8 @@ snapshots: undici-types@8.3.0: {} + unicorn-magic@0.4.0: {} + unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -9293,6 +10028,8 @@ snapshots: url-polyfill@1.1.14: {} + util-deprecate@1.0.2: {} + validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -9514,6 +10251,10 @@ snapshots: wrappy@1.0.2: {} + write-file-atomic@7.0.1: + dependencies: + signal-exit: 4.1.0 + ws@8.21.0: {} xxhash-wasm@1.1.0: {} diff --git a/stylelint.config.mjs b/stylelint.config.mjs new file mode 100644 index 000000000..2bd035d8d --- /dev/null +++ b/stylelint.config.mjs @@ -0,0 +1,35 @@ +import stylistic from '@stylistic/stylelint-config' + +const prettierOwned = Object.fromEntries(Object.keys(stylistic.rules).map((rule) => [rule, null])) + +export default { + extends: ['stylelint-config-twbs-bootstrap'], + ignoreFiles: ['**/node_modules/**', '**/dist/**'], + rules: { + ...prettierOwned, + 'scss/dollar-variable-colon-space-after': null, + 'selector-no-qualifying-type': null, + 'scss/at-function-named-arguments': null, + }, + overrides: [ + { + files: ['core/scss/bootstrap/**/*.scss', 'core/scss/mixins/bootstrap/**/*.scss'], + rules: { 'scss/operator-no-unspaced': null }, + }, + { + files: ['core/scss/tests/**/*.scss'], + rules: { 'declaration-no-important': null, 'color-named': null }, + }, + { + files: ['core/scss/vendor/**/*.scss'], + rules: { + 'declaration-no-important': null, + 'selector-class-pattern': null, + 'selector-max-class': null, + 'selector-max-compound-selectors': null, + 'custom-property-no-missing-var-function': null, + 'scss/selector-no-redundant-nesting-selector': null, + }, + }, + ], +} From 0ce0db400902b466414510685ffd2df265bec28a Mon Sep 17 00:00:00 2001 From: Bartek Date: Wed, 5 Aug 2026 10:37:50 +0200 Subject: [PATCH 7/7] Revert "Remove deprecated Stylelint configuration and update dependencies for improved linting support" This reverts commit 2f34c938b423f6ab00245ec15671dcc0ab3dd4a5. --- .stylelintrc | 8 + core/package.json | 6 +- package.json | 3 - pnpm-lock.yaml | 741 ------------------------------------------- stylelint.config.mjs | 35 -- 5 files changed, 10 insertions(+), 783 deletions(-) create mode 100644 .stylelintrc delete mode 100644 stylelint.config.mjs diff --git a/.stylelintrc b/.stylelintrc new file mode 100644 index 000000000..87eb443df --- /dev/null +++ b/.stylelintrc @@ -0,0 +1,8 @@ +{ + "extends": [ + "stylelint-config-twbs-bootstrap/scss" + ], + "rules": { + "selector-no-qualifying-type": null + } +} \ No newline at end of file diff --git a/core/package.json b/core/package.json index ea0f6a113..5b7cfe286 100644 --- a/core/package.json +++ b/core/package.json @@ -11,9 +11,7 @@ "clean": "shx rm -rf dist demo", "css": "tsx ../.build/build-css.ts scss dist/css --rtl --minify --banner", "css-build": "tsx ../.build/build-css.ts scss dist/css", - "css-lint": "pnpm run lint:scss && pnpm run css-lint-variables", - "lint:scss": "stylelint \"scss/**/*.scss\" --config ../stylelint.config.mjs", - "lint:scss:fix": "pnpm run lint:scss --fix", + "css-lint": "pnpm run css-lint-variables", "css-lint-variables": "find-unused-sass-variables scss/", "js": "pnpm run js-build && pnpm run js-build-min", "js-build": "concurrently \"pnpm run js-build-standalone\" \"pnpm run js-build-theme\"", @@ -286,4 +284,4 @@ "directories": { "doc": "docs" } -} +} \ No newline at end of file diff --git a/package.json b/package.json index 93f527c8a..ef61ccbaa 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,6 @@ "devDependencies": { "@changesets/changelog-github": "^0.7.0", "@changesets/cli": "^2.31.1", - "@stylistic/stylelint-config": "^5.0.0", "adm-zip": "^0.6.0", "autoprefixer": "^10.5.4", "bundlewatch": "^0.4.2", @@ -53,8 +52,6 @@ "rtlcss": "^4.3.0", "sass": "1.102.0", "shelljs": "^0.10.0", - "stylelint": "^17.14.1", - "stylelint-config-twbs-bootstrap": "^16.1.0", "terser": "^5.49.0", "tsx": "^4.23.1", "turbo": "2.10.7", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8949145b1..25836cf8c 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -21,9 +21,6 @@ importers: '@changesets/cli': specifier: ^2.31.1 version: 2.31.1(@types/node@26.1.1) - '@stylistic/stylelint-config': - specifier: ^5.0.0 - version: 5.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) adm-zip: specifier: ^0.6.0 version: 0.6.0 @@ -78,12 +75,6 @@ importers: shelljs: specifier: ^0.10.0 version: 0.10.0 - stylelint: - specifier: ^17.14.1 - version: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - stylelint-config-twbs-bootstrap: - specifier: ^16.1.0 - version: 16.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) terser: specifier: ^5.49.0 version: 5.49.0 @@ -627,12 +618,6 @@ packages: cpu: [x64] os: [win32] - '@cacheable/memory@2.2.0': - resolution: {integrity: sha512-CTLKqLItRCEixEAewD3/j9DB3/o96gpTPD4eJ1v+DGOlxZRZncRQkGYqqnAGCscYd6RNeXfGeiuCphsPtqyIfQ==} - - '@cacheable/utils@2.5.0': - resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==} - '@capsizecss/unpack@4.0.1': resolution: {integrity: sha512-CuNiSqg7+e1cO/GjffyMOm5Tt2jUF9CWHHnvQ/UkqvtkGfHdgwEC0wpmq7fkN3gxwpRnrAN0WzO3vREKmNolMQ==} engines: {node: '>=18'} @@ -706,67 +691,6 @@ packages: resolution: {integrity: sha512-y7/yvZ2TPAnR9+jnc00klvNNLkJiXFFrQA/hlLCcxA9a2A4zQIOimyFQ9XfwYKiGD1fb5GY8vbKIIgO8d5Tb2A==} engines: {node: '>= 20.12.0'} - '@csstools/css-calc@3.3.0': - resolution: {integrity: sha512-c5ihYsPkdG6JCkU2zTMm4+k6r7RXuGxtWYhu5DHMIiF1FHzrfmHL5so11AoFpUv/tu61xfcmT4AmKoFfMPoqdQ==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 - - '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-tokenizer': ^3.0.4 - - '@csstools/css-parser-algorithms@4.0.0': - resolution: {integrity: sha512-+B87qS7fIG3L5h3qwJ/IFbjoVoOe/bpOdh9hAjXbvx0o8ImEmUsGXN0inFOnk2ChCFgqkkGFQ+TpM5rbhkKe4w==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-tokenizer': ^4.0.0 - - '@csstools/css-syntax-patches-for-csstree@1.1.7': - resolution: {integrity: sha512-fQ+05118eQS1cofO3aJpB5efgpBZMvIzwr/sbC8kDLVA5XLG8q1kJV5yzrUAI1f7lvhPnm8fgIjzFB8/O/5Dig==} - peerDependencies: - css-tree: ^3.2.1 - peerDependenciesMeta: - css-tree: - optional: true - - '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} - engines: {node: '>=18'} - - '@csstools/css-tokenizer@4.0.0': - resolution: {integrity: sha512-QxULHAm7cNu72w97JUNCBFODFaXpbDg+dP8b/oWFAZ2MTRppA3U00Y2L1HqaS4J6yBqxwa/Y3nMBaxVKbB/NsA==} - engines: {node: '>=20.19.0'} - - '@csstools/media-query-list-parser@3.0.1': - resolution: {integrity: sha512-HNo8gGD02kHmcbX6PvCoUuOQvn4szyB9ca63vZHKX5A81QytgDG4oxG4IaEfHTlEZSZ6MjPEMWIVU+zF2PZcgw==} - engines: {node: '>=18'} - peerDependencies: - '@csstools/css-parser-algorithms': ^3.0.1 - '@csstools/css-tokenizer': ^3.0.1 - - '@csstools/media-query-list-parser@5.0.0': - resolution: {integrity: sha512-T9lXmZOfnam3eMERPsszjY5NK0jX8RmThmmm99FZ8b7z8yMaFZWKwLWGZuTwdO3ddRY5fy13GmmEYZXB4I98Eg==} - engines: {node: '>=20.19.0'} - peerDependencies: - '@csstools/css-parser-algorithms': ^4.0.0 - '@csstools/css-tokenizer': ^4.0.0 - - '@csstools/selector-resolve-nested@4.0.1': - resolution: {integrity: sha512-j3vdQu0XwLME5qOTWxm8cnmvsf423R2YL6DbKklCHZwkDm7UdKNu6RPlw4REIJhSlKBICY3B70/7QZdicLqZgg==} - engines: {node: '>=20.19.0'} - peerDependencies: - postcss-selector-parser: ^7.1.1 - - '@csstools/selector-specificity@6.0.0': - resolution: {integrity: sha512-4sSgl78OtOXEX/2d++8A83zHNTgwCJMaR24FvsYL7Uf/VS8HZk9PTwR51elTbGqMuwH3szLvvOXEaVnqn0Z3zA==} - engines: {node: '>=20.19.0'} - peerDependencies: - postcss-selector-parser: ^7.1.1 - '@emmetio/abbreviation@2.3.3': resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} @@ -1339,15 +1263,6 @@ packages: '@jridgewell/trace-mapping@0.3.31': resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} - '@keyv/bigmap@1.3.1': - resolution: {integrity: sha512-WbzE9sdmQtKy8vrNPa9BRnwZh5UF4s1KTmSK0KUVLo3eff5BlQNNWDnFOouNpKfPKDnms9xynJjsMYjMaT/aFQ==} - engines: {node: '>= 18'} - peerDependencies: - keyv: ^5.6.0 - - '@keyv/serialize@1.1.1': - resolution: {integrity: sha512-dXn3FZhPv0US+7dtJsIi2R+c7qWYiReoEh5zUntWCf4oSpMNib8FDhSoed6m3QyZdx5hK7iLFkYk3rNxwt8vTA==} - '@manypkg/find-root@1.1.0': resolution: {integrity: sha512-mki5uBvhHzO8kYYix/WRy2WX8S3B5wdVSc9D6KcU5lQNglP2yt58/VfLuAK49glRXChosY8ap2oJ1qgma3GUVA==} @@ -1793,36 +1708,9 @@ packages: '@sinclair/typebox@0.34.52': resolution: {integrity: sha512-XiMQh7qqVlxZzcVD+kkGMNGMzcTrDMLWI7S4x7z1MkCkbDPrekpZXEUK0eZqZFMuHQg2a2DZOcDIh9o5v3Gonw==} - '@sindresorhus/merge-streams@4.0.0': - resolution: {integrity: sha512-tlqY9xq5ukxTUZBmoOp+m61cqwQD5pHJtFY3Mn8CA8ps6yghLH/Hw8UPdqg4OLmFW3IFlcXnQNmo/dh8HzXYIQ==} - engines: {node: '>=18'} - '@standard-schema/spec@1.1.0': resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==} - '@stylistic/stylelint-config@2.0.0': - resolution: {integrity: sha512-8J4YAxggy2Nzkb8KJIOLbtMXTPZ5gpKVmyhiiuKEUgCl9XFND5lM0e/ZZBMGEYZ68h5qcsS/jgg1wh235erRAw==} - engines: {node: ^18.12 || >=20.9} - peerDependencies: - stylelint: ^16.8.0 - - '@stylistic/stylelint-config@5.0.0': - resolution: {integrity: sha512-AW6S27wEm4DzB+uOZMvRkONIu0ba50VRbFte7qYJgGP4dacS8kAuj8HZJ+s+8kE4GK3XXBcSKLb75a+NfJlbiQ==} - engines: {node: '>=20.19.0'} - peerDependencies: - stylelint: ^17.6.0 - - '@stylistic/stylelint-plugin@3.1.3': - resolution: {integrity: sha512-85fsmzgsIVmyG3/GFrjuYj6Cz8rAM7IZiPiXCMiSMfoDOC1lOrzrXPDk24WqviAghnPqGpx8b0caK2PuewWGFg==} - engines: {node: ^18.12 || >=20.9} - peerDependencies: - stylelint: ^16.8.0 - - '@stylistic/stylelint-plugin@5.2.1': - resolution: {integrity: sha512-BMRWJVtO16uADJmKcGi6mreei/QYdOviABXuaCeHEc3T3pxo4wFYYSvnxIoyiPVfDJqX+DxQdnGkuc6KxsRaSw==} - peerDependencies: - stylelint: ^17.6.0 - '@swc/helpers@0.2.14': resolution: {integrity: sha512-wpCQMhf5p5GhNg2MmGKXzUNwxe7zRiCsmqYsamez2beP7mKPCSiu+BjZcdN95yYSzO857kr0VfQewmGpS77nqA==} @@ -2200,10 +2088,6 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} - astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} - astring@1.9.0: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true @@ -2302,17 +2186,10 @@ packages: resolution: {integrity: sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==} engines: {node: '>= 0.8'} - cacheable@2.5.0: - resolution: {integrity: sha512-60cyAOytib/OzBw1JNSoSV/boK1AtHryDIjvVBk7XbN4ugfkM3+Sry7fEjNgPMGgOjuaZPAp8ruZ0Cxafwyq9g==} - call-bind-apply-helpers@1.0.2: resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} engines: {node: '>= 0.4'} - callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} - caniuse-lite@1.0.30001806: resolution: {integrity: sha512-72Cuvd95zbSYPKq6Fhg8eDJRlzgWDf7/mtoZv6Qe/DYNCEBdNxoA3+rZAU2ZhGCpZlns3EssFavaZomckT5Uuw==} @@ -2396,9 +2273,6 @@ packages: color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} - colord@2.9.3: - resolution: {integrity: sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==} - combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} @@ -2464,15 +2338,6 @@ packages: core-js@3.49.0: resolution: {integrity: sha512-es1U2+YTtzpwkxVLwAFdSpaIMyQaq0PBgm3YD1W3Qpsn1NAmO3KSgZfu+oGSWVu6NvLHoHCV/aYcsE5wiB7ALg==} - cosmiconfig@9.0.2: - resolution: {integrity: sha512-gtTZxTDau1wL7Y7zifc2dd8jHSK/k6BTx/2Xp/BpdlAdnlYWFVt7qhJqgwi7637yRwRQ3qL4ZidbB4I8tA5VOg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - countup.js@2.10.1: resolution: {integrity: sha512-UHW/BsPDgVZfN919D4iu2HPv+jJxZUuaR3EhT0ScFZaD446GiQtkMTgOnOyJXdA2AewdlyUk9UvERlTHTbVpcw==} @@ -2492,10 +2357,6 @@ packages: crossws@0.3.5: resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - css-functions-list@3.3.3: - resolution: {integrity: sha512-8HFEBPKhOpJPEPu70wJJetjKta86Gw9+CCyCnB3sui2qQfOvRyqBy4IKLKKAwdMpWb2lHXWk9Wb4Z6AmaUT1Pg==} - engines: {node: '>=12'} - css-select@5.2.2: resolution: {integrity: sha512-TizTzUddG/xYLA3NXodFM0fSbNizXjOKhqiQQwvhlspadZokn1KDy0NZFS0wuEubIYAV5/c1/lAr0TaaFXEXzw==} @@ -2511,11 +2372,6 @@ packages: resolution: {integrity: sha512-u/O3vwbptzhMs3L1fQE82ZSLHQQfto5gyZzwteVIEyeaY5Fc7R4dapF/BvRoSYFeqfBk4m0V1Vafq5Pjv25wvA==} engines: {node: '>= 6'} - cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} - hasBin: true - csso@5.0.5: resolution: {integrity: sha512-0LrrStPOdJj+SPCCrGhzryycLjwcgUSHBtxNA8aIDxf0GLsRh1cKYhB00Gd1lDOS4yGH69+SNn13+TWbVHETFQ==} engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0, npm: '>=7.0.0'} @@ -2632,9 +2488,6 @@ packages: emoji-regex@10.6.0: resolution: {integrity: sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==} - emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} - end-of-stream@1.4.5: resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} @@ -2650,10 +2503,6 @@ packages: resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} engines: {node: '>=0.12'} - env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} - error-ex@1.3.4: resolution: {integrity: sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==} @@ -2764,10 +2613,6 @@ packages: fast-wrap-ansi@0.2.2: resolution: {integrity: sha512-7F2Fl+TjRSenLqlU3UjSH0iyqopqoZIu7eZVpEirP2g1GtWa2G/ecEmBdgz31+Mxr+ELclgg6sokpSFIQiZ02Q==} - fastest-levenshtein@1.0.16: - resolution: {integrity: sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==} - engines: {node: '>= 4.9.1'} - fastq@1.20.1: resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} @@ -2780,9 +2625,6 @@ packages: picomatch: optional: true - file-entry-cache@11.1.5: - resolution: {integrity: sha512-+PFTHITI08JIGhnNpGNI8T8inUpgZfk3GNEqfT9R2zZV2iFXg3CvqzSl/uEhs7TSGujYRELEANyDvS8Fj7+S7Q==} - fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -2796,15 +2638,9 @@ packages: resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} engines: {node: '>=8'} - flat-cache@6.1.23: - resolution: {integrity: sha512-f++BY9pTk+983xK1FLzlLpmM0i0z+jHmx3QESGkURMXujQZz1k5wzwX6hjnQ8goaD0B+sYnDK1yZ6MTyZfUaqA==} - flatpickr@4.6.13: resolution: {integrity: sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw==} - flatted@3.4.4: - resolution: {integrity: sha512-5+ybhBZANEJxaH3X5evAFatUxLfEHSr7n6kYJ+1Qd0mUqr4eu9gIf6GDbWHf8RJijHrjjO8G+la14SlL2SeS1Q==} - flattie@1.1.1: resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} engines: {node: '>=8'} @@ -2922,25 +2758,10 @@ packages: resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me - global-modules@2.0.0: - resolution: {integrity: sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==} - engines: {node: '>=6'} - - global-prefix@3.0.0: - resolution: {integrity: sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==} - engines: {node: '>=6'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} - globby@16.2.2: - resolution: {integrity: sha512-NLvV9ubZ6NDsJaOpKPy3cQeJpKi9DcWiyCiFUpJPA0YihRqiE6RWaLUmgNNPr8MgPpLZjnBjSmou7uZBRJv9wA==} - engines: {node: '>=20'} - - globjoin@0.1.4: - resolution: {integrity: sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==} - good-listener@1.2.2: resolution: {integrity: sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==} @@ -2966,10 +2787,6 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - has-flag@5.0.1: - resolution: {integrity: sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==} - engines: {node: '>=12'} - has-symbols@1.1.0: resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} @@ -2978,10 +2795,6 @@ packages: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} - hashery@1.5.1: - resolution: {integrity: sha512-iZyKG96/JwPz1N55vj2Ie2vXbhu440zfUfJvSwEqEbeLluk7NnapfGqa7LH0mOsnDxTF85Mx8/dyR6HfqcbmbQ==} - engines: {node: '>=20'} - hasown@2.0.4: resolution: {integrity: sha512-T2UbfbBEF32wiepXIsMlTW9+dDYC6wMh/t/vYA4tuOMKqWz/n3vr1NFSxQiyP+zk2mXsoMA/i/7qV6LKut1t1A==} engines: {node: '>= 0.4'} @@ -3022,12 +2835,6 @@ packages: hastscript@9.0.1: resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} - hookified@1.15.1: - resolution: {integrity: sha512-MvG/clsADq1GPM2KGo2nyfaWVyn9naPiXrqIe4jYjXNZQt238kWyOGrsyc/DmRAQ+Re6yeo6yX/yoNCG5KAEVg==} - - hookified@2.2.0: - resolution: {integrity: sha512-p/LgFzRN5FeoD3DLS6bkUapeye6E4SI6yJs6KetENd18S+FBthqYq2amJUWpt5z0EQwwHemidjY5OqJGEKm5uA==} - hosted-git-info@2.8.9: resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} @@ -3037,10 +2844,6 @@ packages: html-escaper@3.0.3: resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - html-tags@5.1.0: - resolution: {integrity: sha512-n6l5uca7/y5joxZ3LUePhzmBFUJ+U2YWzhMa8XUTecSeSlQiZdF5XAd/Q3/WUl0VsXgUwWi8I7CNIwdI5WN1SQ==} - engines: {node: '>=20.10'} - html-void-elements@3.0.0: resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} @@ -3080,13 +2883,6 @@ packages: immutable@5.1.9: resolution: {integrity: sha512-m8nVez3rwrgmWxtLMt1ZYXB2Lv7OKYn/disyxAlSDYAlKSlFoPPfIAmAM/M5xqL4m4C/wAPw7S2/CNaUii1Hxg==} - import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} - - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - inflight@1.0.6: resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. @@ -3140,10 +2936,6 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} - is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -3155,18 +2947,10 @@ packages: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} - is-path-inside@4.0.0: - resolution: {integrity: sha512-lJJV/5dYS+RcL8uQdBDW9c9uWFLLBNRyFhnAKXw5tVqLlKZ4RMGZKv+YQ/IA3OhD+RpbJa1LLFM1FQPGyIXvOA==} - engines: {node: '>=12'} - is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - is-plain-object@5.0.0: - resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} - engines: {node: '>=0.10.0'} - is-stream@1.1.0: resolution: {integrity: sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==} engines: {node: '>=0.10.0'} @@ -3270,20 +3054,10 @@ packages: resolution: {integrity: sha512-Eeo8Ys1doU1z+x8AZsPpQu+p/QcZBI5PeOo7QGQdy2x2m0MU/hYagBbGOmXwr5KVbEfVuWv9LpnQWeehogurjg==} hasBin: true - keyv@5.6.0: - resolution: {integrity: sha512-CYDD3SOtsHtyXeEORYRx2qBtpDJFjRTGXUtmNEMGyzYOKj1TE3tycdlho7kA1Ufx9OYWZzg52QFBGALTirzDSw==} - - kind-of@6.0.3: - resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==} - engines: {node: '>=0.10.0'} - kleur@4.1.5: resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} engines: {node: '>=6'} - known-css-properties@0.37.0: - resolution: {integrity: sha512-JCDrsP4Z1Sb9JwG0aJ8Eo2r7k4Ou5MwmThS/6lcIe1ICyb7UBJKGRIUUdqc2ASdE/42lgz6zFUnzAIhtXnBVrQ==} - lightningcss-android-arm64@1.32.0: resolution: {integrity: sha512-YK7/ClTt4kAK0vo6w3X+Pnm0D2cf2vPHbhOXdoNti1Ga0al1P4TBZhwjATvjNwLEBCnKvjJc2jQgHXH0NEwlAg==} engines: {node: '>= 12.0.0'} @@ -3384,9 +3158,6 @@ packages: lodash.startcase@4.4.0: resolution: {integrity: sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg==} - lodash.truncate@4.4.2: - resolution: {integrity: sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==} - longest-streak@3.1.0: resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} @@ -3437,9 +3208,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - mathml-tag-names@4.0.0: - resolution: {integrity: sha512-aa6AU2Pcx0VP/XWnh8IGL0SYSgQHDT6Ucror2j2mXeFAlN3ahaNs8EZtG1YiticMkSLj3Gt6VPFfZogt7G5iFQ==} - mdast-util-definitions@6.0.0: resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} @@ -3500,10 +3268,6 @@ packages: mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} - meow@14.1.0: - resolution: {integrity: sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==} - engines: {node: '>=20'} - merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} @@ -3823,10 +3587,6 @@ packages: package-manager-detector@1.7.0: resolution: {integrity: sha512-xg1eHpwYL/D/HEdWw2goFZP6vV0FH7W+PZ5rFkGjdIDLtxq7EkzBUeT3m+lndYCt8wKbmofUu1MUdMCXkCk9ZQ==} - parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} - parse-entities@4.0.2: resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} @@ -3913,37 +3673,12 @@ packages: engines: {node: '>=18.12'} hasBin: true - postcss-media-query-parser@0.2.3: - resolution: {integrity: sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==} - - postcss-resolve-nested-selector@0.1.6: - resolution: {integrity: sha512-0sglIs9Wmkzbr8lQwEyIzlDOOC9bGmfVKcJTaxv3vMmd3uo4o4DerC3En0bnmgceeql9BfC8hRkp7cg0fjdVqw==} - - postcss-safe-parser@7.0.1: - resolution: {integrity: sha512-0AioNCJZ2DPYz5ABT6bddIqlhgwhpHZ/l65YAYo0BCIn0xiDpsnTHz0gnoTGk0OXZW0JRs+cDwL8u/teRdz+8A==} - engines: {node: '>=18.0'} - peerDependencies: - postcss: ^8.4.31 - postcss-scss@4.0.9: resolution: {integrity: sha512-AjKOeiwAitL/MXxQW2DliT28EKukvvbEWx3LBmJIRN8KfBGZbRTxNYW0kSqi1COiTZ57nZ9NW06S6ux//N1c9A==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.4.29 - postcss-selector-parser@6.1.4: - resolution: {integrity: sha512-bIoJLOmjCO1S9XdY/DcnR5hJxvrDir1PbGChrzXG3vw0/FOliy/fA3dmdhQ441kah4gKv+TwckGzex6wNS5cnQ==} - engines: {node: '>=4'} - - postcss-selector-parser@7.1.4: - resolution: {integrity: sha512-HeP7D2wyhkR+XaK6v4W8oRF62Dsz4flyuczALJp61GckGm42u1saSSJ/0auvcBqxs3jMRFEcPK34At/0JBKdOg==} - engines: {node: '>=4'} - - postcss-sorting@8.0.2: - resolution: {integrity: sha512-M9dkSrmU00t/jK7rF6BZSZauA5MAaBW4i5EnJXspMwt4iqTh/L9j6fgMnbElEOfyRyfLfVbIHj/R52zHzAPe1Q==} - peerDependencies: - postcss: ^8.4.20 - postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} @@ -4008,10 +3743,6 @@ packages: resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} engines: {node: '>=6'} - qified@0.10.1: - resolution: {integrity: sha512-+Owyggi9IxT1ePKGafcI87ubSmxol6smwJ+RAHDQlx9+9cPwFWDiKFFCPuWhr9ignlGpZ9vDQLw67N4dcTVFEA==} - engines: {node: '>=20'} - quansync@0.2.11: resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} @@ -4128,10 +3859,6 @@ packages: resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} engines: {node: '>=0.10.0'} - resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} - resolve-from@5.0.0: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} @@ -4316,14 +4043,6 @@ packages: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} - slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} - - slice-ansi@4.0.0: - resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==} - engines: {node: '>=10'} - smol-toml@1.6.1: resolution: {integrity: sha512-dWUG8F5sIIARXih1DTaQAX4SsiTXhInKf1buxdY9DIg4ZYPZK5nGM1VRIYmEbDbsHt7USo99xSLFu5Q1IqTmsg==} engines: {node: '>= 18'} @@ -4383,10 +4102,6 @@ packages: string-natural-compare@2.0.3: resolution: {integrity: sha512-4Kcl12rNjc+6EKhY8QyDVuQTAlMWwRiNbsxnVwBUKFr7dYPQuXVrtNU4sEkjF9LHY0AY6uVbB3ktbkIH4LC+BQ==} - string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} - string-width@7.2.0: resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} engines: {node: '>=18'} @@ -4422,9 +4137,6 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - style-search@0.1.0: - resolution: {integrity: sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==} - style-to-js@1.1.21: resolution: {integrity: sha512-RjQetxJrrUJLQPHbLku6U/ocGtzyjbJMP9lCNK7Ag0CNh690nSH8woqWH9u16nMjYBAok+i7JO1NP2pOy8IsPQ==} @@ -4444,65 +4156,6 @@ packages: babel-plugin-macros: optional: true - stylelint-config-recess-order@5.1.1: - resolution: {integrity: sha512-eDAHWVBelzDbMbdMj15pSw0Ycykv5eLeriJdbGCp0zd44yvhgZLI+wyVHegzXp5NrstxTPSxl0fuOVKdMm0XLA==} - peerDependencies: - stylelint: '>=16' - - stylelint-config-recommended-scss@14.1.0: - resolution: {integrity: sha512-bhaMhh1u5dQqSsf6ri2GVWWQW5iUjBYgcHkh7SgDDn92ijoItC/cfO/W+fpXshgTQWhwFkP1rVcewcv4jaftRg==} - engines: {node: '>=18.12.0'} - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.6.1 - peerDependenciesMeta: - postcss: - optional: true - - stylelint-config-recommended@14.0.1: - resolution: {integrity: sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.1.0 - - stylelint-config-standard-scss@14.0.0: - resolution: {integrity: sha512-6Pa26D9mHyi4LauJ83ls3ELqCglU6VfCXchovbEqQUiEkezvKdv6VgsIoMy58i00c854wVmOw0k8W5FTpuaVqg==} - engines: {node: '>=18.12.0'} - peerDependencies: - postcss: ^8.3.3 - stylelint: ^16.11.0 - peerDependenciesMeta: - postcss: - optional: true - - stylelint-config-standard@36.0.1: - resolution: {integrity: sha512-8aX8mTzJ6cuO8mmD5yon61CWuIM4UD8Q5aBcWKGSf6kg+EC3uhB+iOywpTK4ca6ZL7B49en8yanOFtUW0qNzyw==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.1.0 - - stylelint-config-twbs-bootstrap@16.1.0: - resolution: {integrity: sha512-jp+/lHxOo5r21g05+qC/nbFueb7OH5Pub5SdWeBj7T0HVGuHDjB4NoNlWklmz1GsqNhAtFms6ZCnJsAgc8XOmQ==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.11.0 - - stylelint-order@6.0.4: - resolution: {integrity: sha512-0UuKo4+s1hgQ/uAxlYU4h0o0HS4NiQDud0NAUNI0aa8FJdmYHA5ZZTFHiV5FpmE3071e9pZx5j0QpVJW5zOCUA==} - peerDependencies: - stylelint: ^14.0.0 || ^15.0.0 || ^16.0.1 - - stylelint-scss@6.14.0: - resolution: {integrity: sha512-ZKmHMZolxeuYsnB+PCYrTpFce0/QWX9i9gh0hPXzp73WjuIMqUpzdQaBCrKoLWh6XtCFSaNDErkMPqdjy1/8aA==} - engines: {node: '>=18.12.0'} - peerDependencies: - stylelint: ^16.8.2 - - stylelint@17.14.1: - resolution: {integrity: sha512-xVQwyiuxALUBNB2fBe0tmNemg9KqLtdj3T64mioFDar79B2cU8LIyz+3KL6LdiHs9NkeNfwxpKSaIVOY8f112g==} - engines: {node: '>=20.19.0'} - hasBin: true - suf-log@2.5.3: resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} @@ -4518,26 +4171,15 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - supports-hyperlinks@4.5.0: - resolution: {integrity: sha512-ZW2OvfeCXrNTbLakPUzjQG922EeGCOteFSVoek5DKStTh898wf7zgtuFlzQN8HfZCxC3Eh02yJVrRW51hADf+w==} - engines: {node: '>=20'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - svg-tags@1.0.0: - resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==} - svgo@4.0.2: resolution: {integrity: sha512-ekx94z1rRc5LDi6oSUaeRnYhd0UOJxdtQCL2rF8xpWxD3TPAsISWOrxezqGovqS38GRZOdpDfvQe3ts6F7nsng==} engines: {node: '>=16'} hasBin: true - table@6.9.0: - resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} - engines: {node: '>=10.0.0'} - term-size@2.2.1: resolution: {integrity: sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==} engines: {node: '>=8'} @@ -4657,10 +4299,6 @@ packages: undici-types@8.3.0: resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==} - unicorn-magic@0.4.0: - resolution: {integrity: sha512-wH590V9VNgYH9g3lH9wWjTrUoKsjLF6sGLjhR4sH1LWpLmCOH0Zf7PukhDA8BiS7KHe4oPNkcTHqYkj7SOGUOw==} - engines: {node: '>=20'} - unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} @@ -4776,9 +4414,6 @@ packages: url-polyfill@1.1.14: resolution: {integrity: sha512-p4f3TTAG6ADVF3mwbXw7hGw+QJyw5CnNGvYh5fCuQQZIiuKUswqcznyV3pGDP9j0TSmC4UvRKm8kl1QsX1diiQ==} - util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} @@ -5058,10 +4693,6 @@ packages: wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} - write-file-atomic@7.0.1: - resolution: {integrity: sha512-OTIk8iR8/aCRWBqvxrzxR0hgxWpnYBblY1S5hDWBQfk/VFmJwzmJgQFN3WsoUKHISv2eAwe+PpbUzyL1CKTLXg==} - engines: {node: ^20.17.0 || >=22.9.0} - ws@8.21.0: resolution: {integrity: sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==} engines: {node: '>=10.0.0'} @@ -5501,18 +5132,6 @@ snapshots: '@bruits/satteri-win32-x64-msvc@0.9.5': optional: true - '@cacheable/memory@2.2.0': - dependencies: - '@cacheable/utils': 2.5.0 - '@keyv/bigmap': 1.3.1(keyv@5.6.0) - hookified: 1.15.1 - keyv: 5.6.0 - - '@cacheable/utils@2.5.0': - dependencies: - hashery: 1.5.1 - keyv: 5.6.0 - '@capsizecss/unpack@4.0.1': dependencies: fontkitten: 1.0.3 @@ -5687,45 +5306,6 @@ snapshots: fast-wrap-ansi: 0.2.2 sisteransi: 1.0.5 - '@csstools/css-calc@3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': - dependencies: - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - - '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': - dependencies: - '@csstools/css-tokenizer': 3.0.4 - - '@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0)': - dependencies: - '@csstools/css-tokenizer': 4.0.0 - - '@csstools/css-syntax-patches-for-csstree@1.1.7(css-tree@3.2.1)': - optionalDependencies: - css-tree: 3.2.1 - - '@csstools/css-tokenizer@3.0.4': {} - - '@csstools/css-tokenizer@4.0.0': {} - - '@csstools/media-query-list-parser@3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - - '@csstools/media-query-list-parser@5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)': - dependencies: - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - - '@csstools/selector-resolve-nested@4.0.1(postcss-selector-parser@7.1.4)': - dependencies: - postcss-selector-parser: 7.1.4 - - '@csstools/selector-specificity@6.0.0(postcss-selector-parser@7.1.4)': - dependencies: - postcss-selector-parser: 7.1.4 - '@emmetio/abbreviation@2.3.3': dependencies: '@emmetio/scanner': 1.0.4 @@ -6113,14 +5693,6 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 - '@keyv/bigmap@1.3.1(keyv@5.6.0)': - dependencies: - hashery: 1.5.1 - hookified: 1.15.1 - keyv: 5.6.0 - - '@keyv/serialize@1.1.1': {} - '@manypkg/find-root@1.1.0': dependencies: '@babel/runtime': 7.29.7 @@ -6453,43 +6025,8 @@ snapshots: '@sinclair/typebox@0.34.52': {} - '@sindresorhus/merge-streams@4.0.0': {} - '@standard-schema/spec@1.1.0': {} - '@stylistic/stylelint-config@2.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': - dependencies: - '@stylistic/stylelint-plugin': 3.1.3(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - - '@stylistic/stylelint-config@5.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': - dependencies: - '@stylistic/stylelint-plugin': 5.2.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - - '@stylistic/stylelint-plugin@3.1.3(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': - dependencies: - '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) - '@csstools/css-tokenizer': 3.0.4 - '@csstools/media-query-list-parser': 3.0.1(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) - is-plain-object: 5.0.0 - postcss: 8.5.23 - postcss-selector-parser: 6.1.4 - postcss-value-parser: 4.2.0 - style-search: 0.1.0 - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - - '@stylistic/stylelint-plugin@5.2.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2))': - dependencies: - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-tokenizer': 4.0.0 - '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - postcss: 8.5.23 - postcss-selector-parser: 7.1.4 - postcss-value-parser: 4.2.0 - style-search: 0.1.0 - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - '@swc/helpers@0.2.14': {} '@swc/helpers@0.5.15': @@ -6833,8 +6370,6 @@ snapshots: assertion-error@2.0.1: {} - astral-regex@2.0.0: {} - astring@1.9.0: {} astro@7.1.5(@emnapi/core@1.11.1)(@emnapi/runtime@1.11.1)(@types/node@26.1.1)(sass@1.102.0)(terser@5.49.0)(tsx@4.23.1)(yaml@2.9.0): @@ -7100,21 +6635,11 @@ snapshots: bytes@3.1.2: {} - cacheable@2.5.0: - dependencies: - '@cacheable/memory': 2.2.0 - '@cacheable/utils': 2.5.0 - hookified: 1.15.1 - keyv: 5.6.0 - qified: 0.10.1 - call-bind-apply-helpers@1.0.2: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - callsites@3.1.0: {} - caniuse-lite@1.0.30001806: {} ccount@2.0.1: {} @@ -7194,8 +6719,6 @@ snapshots: color-name@1.1.4: {} - colord@2.9.3: {} - combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -7244,15 +6767,6 @@ snapshots: core-js@3.49.0: {} - cosmiconfig@9.0.2(typescript@7.0.2): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.3.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 7.0.2 - countup.js@2.10.1: {} cross-env@10.1.0: @@ -7278,8 +6792,6 @@ snapshots: dependencies: uncrypto: 0.1.3 - css-functions-list@3.3.3: {} - css-select@5.2.2: dependencies: boolbase: 1.0.0 @@ -7300,8 +6812,6 @@ snapshots: css-what@6.2.2: {} - cssesc@3.0.0: {} - csso@5.0.5: dependencies: css-tree: 2.2.1 @@ -7409,8 +6919,6 @@ snapshots: emoji-regex@10.6.0: {} - emoji-regex@8.0.0: {} - end-of-stream@1.4.5: dependencies: once: 1.4.0 @@ -7424,8 +6932,6 @@ snapshots: entities@6.0.1: {} - env-paths@2.2.1: {} - error-ex@1.3.4: dependencies: is-arrayish: 0.2.1 @@ -7583,8 +7089,6 @@ snapshots: dependencies: fast-string-width: 3.0.2 - fastest-levenshtein@1.0.16: {} - fastq@1.20.1: dependencies: reusify: 1.1.0 @@ -7593,10 +7097,6 @@ snapshots: optionalDependencies: picomatch: 4.0.5 - file-entry-cache@11.1.5: - dependencies: - flat-cache: 6.1.23 - fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -7615,16 +7115,8 @@ snapshots: locate-path: 5.0.0 path-exists: 4.0.0 - flat-cache@6.1.23: - dependencies: - cacheable: 2.5.0 - flatted: 3.4.4 - hookified: 1.15.1 - flatpickr@4.6.13: {} - flatted@3.4.4: {} - flattie@1.1.1: {} follow-redirects@1.16.0(debug@4.4.3(supports-color@5.5.0)): @@ -7749,16 +7241,6 @@ snapshots: once: 1.4.0 path-is-absolute: 1.0.1 - global-modules@2.0.0: - dependencies: - global-prefix: 3.0.0 - - global-prefix@3.0.0: - dependencies: - ini: 1.3.8 - kind-of: 6.0.3 - which: 1.3.1 - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -7768,17 +7250,6 @@ snapshots: merge2: 1.4.1 slash: 3.0.0 - globby@16.2.2: - dependencies: - '@sindresorhus/merge-streams': 4.0.0 - fast-glob: 3.3.3 - ignore: 7.0.6 - is-path-inside: 4.0.0 - slash: 5.1.0 - unicorn-magic: 0.4.0 - - globjoin@0.1.4: {} - good-listener@1.2.2: dependencies: delegate: 3.2.0 @@ -7807,18 +7278,12 @@ snapshots: has-flag@4.0.0: {} - has-flag@5.0.1: {} - has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: has-symbols: 1.1.0 - hashery@1.5.1: - dependencies: - hookified: 1.15.1 - hasown@2.0.4: dependencies: function-bind: 1.1.2 @@ -7951,18 +7416,12 @@ snapshots: property-information: 7.2.0 space-separated-tokens: 2.0.2 - hookified@1.15.1: {} - - hookified@2.2.0: {} - hosted-git-info@2.8.9: {} html-escaper@2.0.2: {} html-escaper@3.0.3: {} - html-tags@5.1.0: {} - html-void-elements@3.0.0: {} http-cache-semantics@4.2.0: {} @@ -7989,13 +7448,6 @@ snapshots: immutable@5.1.9: {} - import-fresh@3.3.1: - dependencies: - parent-module: 1.0.1 - resolve-from: 4.0.0 - - import-meta-resolve@4.2.0: {} - inflight@1.0.6: dependencies: once: 1.4.0 @@ -8036,8 +7488,6 @@ snapshots: is-extglob@2.1.1: {} - is-fullwidth-code-point@3.0.0: {} - is-glob@4.0.3: dependencies: is-extglob: 2.1.1 @@ -8046,12 +7496,8 @@ snapshots: is-number@7.0.0: {} - is-path-inside@4.0.0: {} - is-plain-obj@4.1.0: {} - is-plain-object@5.0.0: {} - is-stream@1.1.0: {} is-stream@2.0.1: {} @@ -8143,16 +7589,8 @@ snapshots: dependencies: commander: 8.3.0 - keyv@5.6.0: - dependencies: - '@keyv/serialize': 1.1.1 - - kind-of@6.0.3: {} - kleur@4.1.5: {} - known-css-properties@0.37.0: {} - lightningcss-android-arm64@1.32.0: optional: true @@ -8224,8 +7662,6 @@ snapshots: lodash.startcase@4.4.0: {} - lodash.truncate@4.4.2: {} - longest-streak@3.1.0: {} lru-cache@11.5.1: {} @@ -8300,8 +7736,6 @@ snapshots: math-intrinsics@1.1.0: {} - mathml-tag-names@4.0.0: {} - mdast-util-definitions@6.0.0: dependencies: '@types/mdast': 4.0.4 @@ -8477,8 +7911,6 @@ snapshots: mdurl@2.0.0: {} - meow@14.1.0: {} - merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -8951,10 +8383,6 @@ snapshots: package-manager-detector@1.7.0: {} - parent-module@1.0.1: - dependencies: - callsites: 3.1.0 - parse-entities@4.0.2: dependencies: '@types/unist': 2.0.11 @@ -9036,32 +8464,10 @@ snapshots: pnpm@10.34.4: {} - postcss-media-query-parser@0.2.3: {} - - postcss-resolve-nested-selector@0.1.6: {} - - postcss-safe-parser@7.0.1(postcss@8.5.23): - dependencies: - postcss: 8.5.23 - postcss-scss@4.0.9(postcss@8.5.23): dependencies: postcss: 8.5.23 - postcss-selector-parser@6.1.4: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-selector-parser@7.1.4: - dependencies: - cssesc: 3.0.0 - util-deprecate: 1.0.2 - - postcss-sorting@8.0.2(postcss@8.5.23): - dependencies: - postcss: 8.5.23 - postcss-value-parser@4.2.0: {} postcss@8.4.31: @@ -9116,10 +8522,6 @@ snapshots: punycode.js@2.3.1: {} - qified@0.10.1: - dependencies: - hookified: 2.2.0 - quansync@0.2.11: {} queue-microtask@1.2.3: {} @@ -9284,8 +8686,6 @@ snapshots: require-from-string@2.0.2: {} - resolve-from@4.0.0: {} - resolve-from@5.0.0: {} resolve-pkg-maps@1.0.0: {} @@ -9572,14 +8972,6 @@ snapshots: slash@3.0.0: {} - slash@5.1.0: {} - - slice-ansi@4.0.0: - dependencies: - ansi-styles: 4.3.0 - astral-regex: 2.0.0 - is-fullwidth-code-point: 3.0.0 - smol-toml@1.6.1: {} smol-toml@1.7.1: {} @@ -9630,12 +9022,6 @@ snapshots: string-natural-compare@2.0.3: {} - string-width@4.2.3: - dependencies: - emoji-regex: 8.0.0 - is-fullwidth-code-point: 3.0.0 - strip-ansi: 6.0.1 - string-width@7.2.0: dependencies: emoji-regex: 10.6.0 @@ -9668,8 +9054,6 @@ snapshots: strip-json-comments@3.1.1: {} - style-search@0.1.0: {} - style-to-js@1.1.21: dependencies: style-to-object: 1.0.14 @@ -9685,108 +9069,6 @@ snapshots: optionalDependencies: '@babel/core': 7.29.7(supports-color@10.2.2) - stylelint-config-recess-order@5.1.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - stylelint-order: 6.0.4(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - - stylelint-config-recommended-scss@14.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - postcss-scss: 4.0.9(postcss@8.5.23) - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - stylelint-config-recommended: 14.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint-scss: 6.14.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - optionalDependencies: - postcss: 8.5.23 - - stylelint-config-recommended@14.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - - stylelint-config-standard-scss@14.0.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - stylelint-config-recommended-scss: 14.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint-config-standard: 36.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - optionalDependencies: - postcss: 8.5.23 - - stylelint-config-standard@36.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - stylelint-config-recommended: 14.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - - stylelint-config-twbs-bootstrap@16.1.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - '@stylistic/stylelint-config': 2.0.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - '@stylistic/stylelint-plugin': 3.1.3(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - stylelint-config-recess-order: 5.1.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint-config-standard: 36.0.1(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint-config-standard-scss: 14.0.0(postcss@8.5.23)(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - stylelint-scss: 6.14.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)) - transitivePeerDependencies: - - postcss - - stylelint-order@6.0.4(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - postcss: 8.5.23 - postcss-sorting: 8.0.2(postcss@8.5.23) - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - - stylelint-scss@6.14.0(stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2)): - dependencies: - css-tree: 3.2.1 - is-plain-object: 5.0.0 - known-css-properties: 0.37.0 - mdn-data: 2.27.1 - postcss-media-query-parser: 0.2.3 - postcss-resolve-nested-selector: 0.1.6 - postcss-selector-parser: 7.1.4 - postcss-value-parser: 4.2.0 - stylelint: 17.14.1(supports-color@5.5.0)(typescript@7.0.2) - - stylelint@17.14.1(supports-color@5.5.0)(typescript@7.0.2): - dependencies: - '@csstools/css-calc': 3.3.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0) - '@csstools/css-syntax-patches-for-csstree': 1.1.7(css-tree@3.2.1) - '@csstools/css-tokenizer': 4.0.0 - '@csstools/media-query-list-parser': 5.0.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0) - '@csstools/selector-resolve-nested': 4.0.1(postcss-selector-parser@7.1.4) - '@csstools/selector-specificity': 6.0.0(postcss-selector-parser@7.1.4) - colord: 2.9.3 - cosmiconfig: 9.0.2(typescript@7.0.2) - css-functions-list: 3.3.3 - css-tree: 3.2.1 - debug: 4.4.3(supports-color@5.5.0) - fast-glob: 3.3.3 - fastest-levenshtein: 1.0.16 - file-entry-cache: 11.1.5 - global-modules: 2.0.0 - globby: 16.2.2 - globjoin: 0.1.4 - html-tags: 5.1.0 - ignore: 7.0.6 - import-meta-resolve: 4.2.0 - mathml-tag-names: 4.0.0 - meow: 14.1.0 - micromatch: 4.0.8 - normalize-path: 3.0.0 - picocolors: 1.1.1 - postcss: 8.5.23 - postcss-safe-parser: 7.0.1(postcss@8.5.23) - postcss-selector-parser: 7.1.4 - postcss-value-parser: 4.2.0 - string-width: 8.2.1 - supports-hyperlinks: 4.5.0 - svg-tags: 1.0.0 - table: 6.9.0 - write-file-atomic: 7.0.1 - transitivePeerDependencies: - - supports-color - - typescript - suf-log@2.5.3: dependencies: s.color: 0.0.15 @@ -9801,15 +9083,8 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@4.5.0: - dependencies: - has-flag: 5.0.1 - supports-color: 10.2.2 - supports-preserve-symlinks-flag@1.0.0: {} - svg-tags@1.0.0: {} - svgo@4.0.2: dependencies: commander: 11.1.0 @@ -9820,14 +9095,6 @@ snapshots: picocolors: 1.1.1 sax: 1.6.0 - table@6.9.0: - dependencies: - ajv: 8.20.0 - lodash.truncate: 4.4.2 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - term-size@2.2.1: {} terser@5.49.0: @@ -9941,8 +9208,6 @@ snapshots: undici-types@8.3.0: {} - unicorn-magic@0.4.0: {} - unified@11.0.5: dependencies: '@types/unist': 3.0.3 @@ -10028,8 +9293,6 @@ snapshots: url-polyfill@1.1.14: {} - util-deprecate@1.0.2: {} - validate-npm-package-license@3.0.4: dependencies: spdx-correct: 3.2.0 @@ -10251,10 +9514,6 @@ snapshots: wrappy@1.0.2: {} - write-file-atomic@7.0.1: - dependencies: - signal-exit: 4.1.0 - ws@8.21.0: {} xxhash-wasm@1.1.0: {} diff --git a/stylelint.config.mjs b/stylelint.config.mjs deleted file mode 100644 index 2bd035d8d..000000000 --- a/stylelint.config.mjs +++ /dev/null @@ -1,35 +0,0 @@ -import stylistic from '@stylistic/stylelint-config' - -const prettierOwned = Object.fromEntries(Object.keys(stylistic.rules).map((rule) => [rule, null])) - -export default { - extends: ['stylelint-config-twbs-bootstrap'], - ignoreFiles: ['**/node_modules/**', '**/dist/**'], - rules: { - ...prettierOwned, - 'scss/dollar-variable-colon-space-after': null, - 'selector-no-qualifying-type': null, - 'scss/at-function-named-arguments': null, - }, - overrides: [ - { - files: ['core/scss/bootstrap/**/*.scss', 'core/scss/mixins/bootstrap/**/*.scss'], - rules: { 'scss/operator-no-unspaced': null }, - }, - { - files: ['core/scss/tests/**/*.scss'], - rules: { 'declaration-no-important': null, 'color-named': null }, - }, - { - files: ['core/scss/vendor/**/*.scss'], - rules: { - 'declaration-no-important': null, - 'selector-class-pattern': null, - 'selector-max-class': null, - 'selector-max-compound-selectors': null, - 'custom-property-no-missing-var-function': null, - 'scss/selector-no-redundant-nesting-selector': null, - }, - }, - ], -}