summaryrefslogtreecommitdiff
path: root/node_modules/css-declaration-sorter/src
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2023-12-21 22:46:53 +0800
committerlittleblack111 <littleblack11111@gmail.com>2023-12-21 22:46:53 +0800
commitf06956efd2dc4bf77244a9fcce2b883a00b925af (patch)
tree0123cb73ce67f1f4b17e1d6cbabff076ee44e31b /node_modules/css-declaration-sorter/src
parent8d980c13970c15b6d2312b6fc4ac51698dd0d220 (diff)
updated node modules
Diffstat (limited to 'node_modules/css-declaration-sorter/src')
-rw-r--r--node_modules/css-declaration-sorter/src/core/bubble-sort.mjs (renamed from node_modules/css-declaration-sorter/src/bubble-sort.mjs)0
-rw-r--r--node_modules/css-declaration-sorter/src/core/main.d.cts (renamed from node_modules/css-declaration-sorter/src/main.d.ts)0
-rw-r--r--node_modules/css-declaration-sorter/src/core/main.d.mts27
-rw-r--r--node_modules/css-declaration-sorter/src/core/main.mjs (renamed from node_modules/css-declaration-sorter/src/main.mjs)8
-rw-r--r--node_modules/css-declaration-sorter/src/core/main.test.mjs255
-rw-r--r--node_modules/css-declaration-sorter/src/core/shorthand-data.mjs (renamed from node_modules/css-declaration-sorter/src/shorthand-data.mjs)10
-rw-r--r--node_modules/css-declaration-sorter/src/orders/alphabetical.mjs401
-rw-r--r--node_modules/css-declaration-sorter/src/orders/concentric-css.mjs405
-rw-r--r--node_modules/css-declaration-sorter/src/orders/smacss.mjs407
9 files changed, 1512 insertions, 1 deletions
diff --git a/node_modules/css-declaration-sorter/src/bubble-sort.mjs b/node_modules/css-declaration-sorter/src/core/bubble-sort.mjs
index 87803b46..87803b46 100644
--- a/node_modules/css-declaration-sorter/src/bubble-sort.mjs
+++ b/node_modules/css-declaration-sorter/src/core/bubble-sort.mjs
diff --git a/node_modules/css-declaration-sorter/src/main.d.ts b/node_modules/css-declaration-sorter/src/core/main.d.cts
index 257704b6..257704b6 100644
--- a/node_modules/css-declaration-sorter/src/main.d.ts
+++ b/node_modules/css-declaration-sorter/src/core/main.d.cts
diff --git a/node_modules/css-declaration-sorter/src/core/main.d.mts b/node_modules/css-declaration-sorter/src/core/main.d.mts
new file mode 100644
index 00000000..3896195a
--- /dev/null
+++ b/node_modules/css-declaration-sorter/src/core/main.d.mts
@@ -0,0 +1,27 @@
+import type { PluginCreator } from 'postcss';
+
+export const cssDeclarationSorter: PluginCreator<{
+ /**
+ Provide the name of one of the built-in sort orders or a comparison function that is passed to `Array.sort`.
+
+ @default 'alphabetical'
+ */
+ order?: SortOrder | SortFunction | undefined;
+
+ /**
+ To prevent breaking legacy CSS where shorthand declarations override longhand declarations. For example `animation-name: some; animation: greeting;` will be kept in this order.
+
+ @default false
+ */
+ keepOverrides?: boolean;
+}>;
+
+export default cssDeclarationSorter;
+
+type SortOrder = 'alphabetical' | 'concentric-css' | 'smacss';
+
+/**
+ * This function receives two declaration property names and is expected
+ * to return -1, 0 or 1 depending on the wanted order.
+ */
+type SortFunction = (propertyNameA: string, propertyNameB: string) => -1 | 0 | 1;
diff --git a/node_modules/css-declaration-sorter/src/main.mjs b/node_modules/css-declaration-sorter/src/core/main.mjs
index b17cde16..3404c2cc 100644
--- a/node_modules/css-declaration-sorter/src/main.mjs
+++ b/node_modules/css-declaration-sorter/src/core/main.mjs
@@ -129,7 +129,13 @@ function withOverridesComparator (shorthandData) {
function orderComparator (order) {
return function (a, b) {
- return order.indexOf(a) - order.indexOf(b);
+ const bIndex = order.indexOf(b);
+
+ if (bIndex === -1) {
+ return 0;
+ }
+
+ return order.indexOf(a) - bIndex;
};
}
diff --git a/node_modules/css-declaration-sorter/src/core/main.test.mjs b/node_modules/css-declaration-sorter/src/core/main.test.mjs
new file mode 100644
index 00000000..b6f3829a
--- /dev/null
+++ b/node_modules/css-declaration-sorter/src/core/main.test.mjs
@@ -0,0 +1,255 @@
+import { test } from 'uvu';
+import * as assert from 'uvu/assert';
+import postcss from 'postcss';
+import { cssDeclarationSorter as plugin } from './main.mjs';
+
+const testCssFixtures = (testMessage, tests) => {
+ test(testMessage, () => (
+ Promise.all(tests.map(({ message, fixture, expected, options }) => (
+ postcss(plugin(options))
+ .process(fixture, { from: undefined })
+ .then((result) => {
+ assert.is(result.css, expected, message);
+ assert.is(result.warnings().length, 0);
+ })
+ )))
+ ));
+};
+
+const sortOrderTests = [
+ {
+ message: 'Keep same order for identical properties.',
+ fixture: 'a{flex: 0;flex: 2;}',
+ expected: 'a{flex: 0;flex: 2;}',
+ },
+ {
+ message: 'Sort alphabetically with no order defined.',
+ fixture: 'a{flex: 0;border: 0;}',
+ expected: 'a{border: 0;flex: 0;}',
+ },
+ {
+ message: 'Sort alphabetically with a defined order.',
+ fixture: 'a{flex: 0;border: 0;}',
+ expected: 'a{border: 0;flex: 0;}',
+ options: { order: 'alphabetical' },
+ },
+ {
+ message: 'Sort according to custom order, changed.',
+ fixture: 'a{border: 0;z-index: 0;}',
+ expected: 'a{z-index: 0;border: 0;}',
+ options: { order: () => 1 },
+ },
+ {
+ message: 'Sort according to custom order, retained.',
+ fixture: 'a{border: 0;z-index: 0;}',
+ expected: 'a{border: 0;z-index: 0;}',
+ options: { order: () => -1 },
+ },
+ {
+ message: 'Sort according to SMACSS.',
+ fixture: 'a{border: 0;flex: 0;}',
+ expected: 'a{flex: 0;border: 0;}',
+ options: { order: 'smacss' },
+ },
+ {
+ message: 'Sort according to Concentric CSS.',
+ fixture: 'a{border: 0;flex: 0;}',
+ expected: 'a{flex: 0;border: 0;}',
+ options: { order: 'concentric-css' },
+ },
+ {
+ message: 'Keep at-rule at the same position.',
+ fixture: 'a{border: 0;@import sii;flex:0;}',
+ expected: 'a{border: 0;@import sii;flex:0;}',
+ },
+ {
+ message: 'Retain unknown properties, left to right.',
+ fixture: 'a{unknown-a: 0;unknown-b: 0;}',
+ expected: 'a{unknown-a: 0;unknown-b: 0;}',
+ },
+ {
+ message: 'Retain unknown properties, right to left.',
+ fixture: 'a{unknown-b: 0;unknown-a: 0;}',
+ expected: 'a{unknown-b: 0;unknown-a: 0;}',
+ },
+ {
+ message: 'Retain unknown next to known properties, left to right.',
+ fixture: 'a{animation: 0;animation-timeline: none;}',
+ expected: 'a{animation: 0;animation-timeline: none;}',
+ },
+ {
+ message: 'Retain unknown next to known properties, right to left.',
+ fixture: 'a{animation-timeline: none;animation: 0;}',
+ expected: 'a{animation-timeline: none;animation: 0;}',
+ },
+ {
+ message: 'Sort shorthand, resulting in impactful ordering.',
+ fixture: 'a{border-width: 0;border-radius: 0;border-bottom: 1px;}',
+ expected: 'a{border-bottom: 1px;border-radius: 0;border-width: 0;}',
+ },
+];
+
+const commentOrderTests = [
+ {
+ message: 'Keep comment intact.',
+ fixture: 'a{flex: 0;/*flex*/}',
+ expected: 'a{flex: 0;/*flex*/}',
+ },
+ {
+ message: 'Keep root comments intact.',
+ fixture: '/*a*/\na{}\n/*b*/\nb{}',
+ expected: '/*a*/\na{}\n/*b*/\nb{}',
+ },
+ {
+ message: 'Handle declaration with one comment.',
+ fixture: 'a{/*comment*/}',
+ expected: 'a{/*comment*/}',
+ },
+ {
+ message: 'Keep dangling comment intact.',
+ fixture: 'a{flex: 0;\n/*end*/}',
+ expected: 'a{flex: 0;\n/*end*/}',
+ },
+ {
+ message: 'Keep multiple comments intact.',
+ fixture: 'a{flex: 0;\n/*flex*/\n/*flex 2*/}',
+ expected: 'a{flex: 0;\n/*flex*/\n/*flex 2*/}',
+ },
+ {
+ message: 'Keep newline comment above declaration.',
+ fixture: 'a{flex: 0;\n/*border*/\nborder: 0;}',
+ expected: 'a{\n/*border*/\nborder: 0;flex: 0;}',
+ },
+ {
+ message: 'Handle multiple newline comments.',
+ fixture: 'a{flex: 0;\n/*border a*/\n/*border b*/\nborder: 0;}',
+ expected: 'a{\n/*border a*/\n/*border b*/\nborder: 0;flex: 0;}',
+ },
+ {
+ message: 'Keep inline comment beside declaration.',
+ fixture: 'a{flex: 0;\nborder: 0; /*border*/}',
+ expected: 'a{\nborder: 0; /*border*/flex: 0;}',
+ },
+ {
+ message: 'Do not lose reference to paired comment node on one line.',
+ fixture: 'body{/*a*/border:0;/*b*/}',
+ expected: 'body{border:0;/*b*//*a*/}',
+ },
+];
+
+const nestedDeclarationTests = [
+ {
+ message: 'Sort nested declarations.',
+ fixture: 'a{a{flex: 0;border: 0;}}',
+ expected: 'a{a{border: 0;flex: 0;}}',
+ },
+ {
+ message: 'Sort nested at-rule declarations.',
+ fixture: 'a{@media(){flex: 0;border: 0;}}',
+ expected: 'a{@media(){border: 0;flex: 0;}}',
+ },
+ {
+ message: 'Keep nested newline comment above declaration.',
+ fixture: 'a{&:hover{flex: 0;\n/*border*/\nborder: 0;}}',
+ expected: 'a{&:hover{\n/*border*/\nborder: 0;flex: 0;}}',
+ },
+ {
+ message: 'Keep nested inline comment beside declaration.',
+ fixture: 'a{&:hover{flex: 0;\nborder: 0; /*border*/}}',
+ expected: 'a{&:hover{\nborder: 0; /*border*/flex: 0;}}',
+ },
+ {
+ message: 'Put declarations before nested selector.',
+ fixture: 'a{margin: 0;&:hover{color: red;}padding: 0;}',
+ expected: 'a{margin: 0;padding: 0;&:hover{color: red;}}',
+ },
+];
+
+const keepOverridesTests = [
+ {
+ message: 'Keep shorthand overrides in place.',
+ fixture: 'a{animation-name: hi;animation: hey 1s ease;}',
+ expected: 'a{animation-name: hi;animation: hey 1s ease;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep longhand overrides in place.',
+ fixture: 'a{flex: 1;flex-grow: -1;}',
+ expected: 'a{flex: 1;flex-grow: -1;}',
+ options: { keepOverrides: true, order: () => -1 },
+ },
+ {
+ message: 'Sort overrides with other declarations.',
+ fixture: 'a{z-index: 1;animation: hey 1s ease;}',
+ expected: 'a{animation: hey 1s ease;z-index: 1;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep overrides in place mixed with declaration.',
+ fixture: 'a{z-index: 1;animation: hey 1s ease;animation-name: hi;}',
+ expected: 'a{animation: hey 1s ease;animation-name: hi;z-index: 1;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep vendor prefixed declarations in place.',
+ fixture: 'a{animation: a;-moz-animation:b;}',
+ expected: 'a{animation: a;-moz-animation:b;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep border declarations in place.',
+ fixture: 'a{border-top: 1px solid;border-color: purple;}',
+ expected:'a{border-top: 1px solid;border-color: purple;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep padding declarations in place.',
+ fixture: 'a{padding-left: unset;padding-inline-start: 0;}',
+ expected:'a{padding-left: unset;padding-inline-start: 0;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep border block declarations in place.',
+ fixture: 'a{border-block-end: 1px solid purple;border-block: none;}',
+ expected: 'a{border-block-end: 1px solid purple;border-block: none;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep border block style declarations in place.',
+ fixture: 'a{border-style: none;border-block-end: 1px solid purple;}',
+ expected: 'a{border-style: none;border-block-end: 1px solid purple;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep border width logical property declarations in place.',
+ fixture: 'a{background: grey;border-width: 0;border-top-width: 1px;border-inline-start-width: 1px;}',
+ expected: 'a{background: grey;border-width: 0;border-inline-start-width: 1px;border-top-width: 1px;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep longhand border style declaration in place.',
+ fixture: 'a{border-width: 0;border-radius: 0;border-bottom: 1px;}',
+ expected: 'a{border-radius: 0;border-width: 0;border-bottom: 1px;}',
+ options: { keepOverrides: true },
+ },
+ {
+ message: 'Keep longhand border logical declaration in place.',
+ fixture: 'a{border-radius: 5px;border-end-start-radius: 0;border-end-end-radius: 0;}',
+ expected: 'a{border-radius: 5px;border-end-end-radius: 0;border-end-start-radius: 0;}',
+ options: { keepOverrides: true },
+ },
+];
+
+testCssFixtures('Should order declarations.', sortOrderTests);
+
+testCssFixtures('Should retain comments.', commentOrderTests);
+
+testCssFixtures('Should order nested declarations.', nestedDeclarationTests);
+
+testCssFixtures('Should keep shorthand override order.', keepOverridesTests);
+
+test('Should use the PostCSS plugin API.', () => {
+ assert.is(plugin().postcssPlugin, 'css-declaration-sorter', 'Able to access name.');
+});
+
+test.run();
diff --git a/node_modules/css-declaration-sorter/src/shorthand-data.mjs b/node_modules/css-declaration-sorter/src/core/shorthand-data.mjs
index d79b7376..c8b2a705 100644
--- a/node_modules/css-declaration-sorter/src/shorthand-data.mjs
+++ b/node_modules/css-declaration-sorter/src/core/shorthand-data.mjs
@@ -280,6 +280,10 @@ export const shorthandData = {
'border-top-left-radius',
'border-bottom-right-radius',
'border-bottom-left-radius',
+ 'border-end-end-radius',
+ 'border-end-start-radius',
+ 'border-start-end-radius',
+ 'border-start-start-radius',
],
'border-block': [
'border-block-start',
@@ -430,4 +434,10 @@ export const shorthandData = {
'text-emphasis-style',
'text-emphasis-color',
],
+ 'font-synthesis': [
+ 'font-synthesis-weight',
+ 'font-synthesis-style',
+ 'font-synthesis-small-caps',
+ 'font-synthesis-position',
+ ],
};
diff --git a/node_modules/css-declaration-sorter/src/orders/alphabetical.mjs b/node_modules/css-declaration-sorter/src/orders/alphabetical.mjs
new file mode 100644
index 00000000..85556da6
--- /dev/null
+++ b/node_modules/css-declaration-sorter/src/orders/alphabetical.mjs
@@ -0,0 +1,401 @@
+export const properties = [
+ "all",
+ "-webkit-line-clamp",
+ "-webkit-text-fill-color",
+ "-webkit-text-stroke",
+ "-webkit-text-stroke-color",
+ "-webkit-text-stroke-width",
+ "accent-color",
+ "align-content",
+ "align-items",
+ "align-self",
+ "animation",
+ "animation-composition",
+ "animation-delay",
+ "animation-direction",
+ "animation-duration",
+ "animation-fill-mode",
+ "animation-iteration-count",
+ "animation-name",
+ "animation-play-state",
+ "animation-timing-function",
+ "appearance",
+ "ascent-override",
+ "aspect-ratio",
+ "backdrop-filter",
+ "backface-visibility",
+ "background",
+ "background-attachment",
+ "background-blend-mode",
+ "background-clip",
+ "background-color",
+ "background-image",
+ "background-origin",
+ "background-position",
+ "background-position-x",
+ "background-position-y",
+ "background-repeat",
+ "background-size",
+ "baseline-source",
+ "block-size",
+ "border",
+ "border-block",
+ "border-block-color",
+ "border-block-end",
+ "border-block-end-color",
+ "border-block-end-style",
+ "border-block-end-width",
+ "border-block-start",
+ "border-block-start-color",
+ "border-block-start-style",
+ "border-block-start-width",
+ "border-block-style",
+ "border-block-width",
+ "border-bottom",
+ "border-bottom-color",
+ "border-bottom-left-radius",
+ "border-bottom-right-radius",
+ "border-bottom-style",
+ "border-bottom-width",
+ "border-collapse",
+ "border-color",
+ "border-end-end-radius",
+ "border-end-start-radius",
+ "border-image",
+ "border-image-outset",
+ "border-image-repeat",
+ "border-image-slice",
+ "border-image-source",
+ "border-image-width",
+ "border-inline",
+ "border-inline-color",
+ "border-inline-end",
+ "border-inline-end-color",
+ "border-inline-end-style",
+ "border-inline-end-width",
+ "border-inline-start",
+ "border-inline-start-color",
+ "border-inline-start-style",
+ "border-inline-start-width",
+ "border-inline-style",
+ "border-inline-width",
+ "border-left",
+ "border-left-color",
+ "border-left-style",
+ "border-left-width",
+ "border-radius",
+ "border-right",
+ "border-right-color",
+ "border-right-style",
+ "border-right-width",
+ "border-spacing",
+ "border-start-end-radius",
+ "border-start-start-radius",
+ "border-style",
+ "border-top",
+ "border-top-color",
+ "border-top-left-radius",
+ "border-top-right-radius",
+ "border-top-style",
+ "border-top-width",
+ "border-width",
+ "bottom",
+ "box-decoration-break",
+ "box-shadow",
+ "box-sizing",
+ "break-after",
+ "break-before",
+ "break-inside",
+ "caption-side",
+ "caret-color",
+ "clear",
+ "clip-path",
+ "color",
+ "color-scheme",
+ "column-count",
+ "column-fill",
+ "column-gap",
+ "column-rule",
+ "column-rule-color",
+ "column-rule-style",
+ "column-rule-width",
+ "column-span",
+ "column-width",
+ "columns",
+ "contain",
+ "contain-intrinsic-height",
+ "contain-intrinsic-size",
+ "contain-intrinsic-width",
+ "container",
+ "container-name",
+ "container-type",
+ "content",
+ "counter-increment",
+ "counter-reset",
+ "counter-set",
+ "cursor",
+ "descent-override",
+ "direction",
+ "display",
+ "empty-cells",
+ "filter",
+ "flex",
+ "flex-basis",
+ "flex-direction",
+ "flex-flow",
+ "flex-grow",
+ "flex-shrink",
+ "flex-wrap",
+ "float",
+ "font",
+ "font-display",
+ "font-family",
+ "font-feature-settings",
+ "font-kerning",
+ "font-language-override",
+ "font-optical-sizing",
+ "font-palette",
+ "font-size",
+ "font-size-adjust",
+ "font-stretch",
+ "font-style",
+ "font-synthesis",
+ "font-synthesis-position",
+ "font-synthesis-small-caps",
+ "font-synthesis-style",
+ "font-synthesis-weight",
+ "font-variant",
+ "font-variant-alternates",
+ "font-variant-caps",
+ "font-variant-east-asian",
+ "font-variant-emoji",
+ "font-variant-ligatures",
+ "font-variant-numeric",
+ "font-variant-position",
+ "font-variation-settings",
+ "font-weight",
+ "forced-color-adjust",
+ "gap",
+ "grid",
+ "grid-area",
+ "grid-auto-columns",
+ "grid-auto-flow",
+ "grid-auto-rows",
+ "grid-column",
+ "grid-column-end",
+ "grid-column-start",
+ "grid-row",
+ "grid-row-end",
+ "grid-row-start",
+ "grid-template",
+ "grid-template-areas",
+ "grid-template-columns",
+ "grid-template-rows",
+ "hanging-punctuation",
+ "height",
+ "hyphenate-character",
+ "hyphens",
+ "image-orientation",
+ "image-rendering",
+ "inline-size",
+ "inset",
+ "inset-block",
+ "inset-block-end",
+ "inset-block-start",
+ "inset-inline",
+ "inset-inline-end",
+ "inset-inline-start",
+ "isolation",
+ "justify-content",
+ "justify-items",
+ "justify-self",
+ "left",
+ "letter-spacing",
+ "line-break",
+ "line-gap-override",
+ "line-height",
+ "list-style",
+ "list-style-image",
+ "list-style-position",
+ "list-style-type",
+ "margin",
+ "margin-block",
+ "margin-block-end",
+ "margin-block-start",
+ "margin-bottom",
+ "margin-inline",
+ "margin-inline-end",
+ "margin-inline-start",
+ "margin-left",
+ "margin-right",
+ "margin-top",
+ "mask",
+ "mask-border",
+ "mask-border-outset",
+ "mask-border-repeat",
+ "mask-border-slice",
+ "mask-border-source",
+ "mask-border-width",
+ "mask-clip",
+ "mask-composite",
+ "mask-image",
+ "mask-mode",
+ "mask-origin",
+ "mask-position",
+ "mask-repeat",
+ "mask-size",
+ "mask-type",
+ "math-depth",
+ "math-style",
+ "max-block-size",
+ "max-height",
+ "max-inline-size",
+ "max-width",
+ "min-block-size",
+ "min-height",
+ "min-inline-size",
+ "min-width",
+ "mix-blend-mode",
+ "object-fit",
+ "object-position",
+ "offset",
+ "offset-anchor",
+ "offset-distance",
+ "offset-path",
+ "offset-rotate",
+ "opacity",
+ "order",
+ "orphans",
+ "outline",
+ "outline-color",
+ "outline-offset",
+ "outline-style",
+ "outline-width",
+ "overflow",
+ "overflow-anchor",
+ "overflow-block",
+ "overflow-clip-margin",
+ "overflow-inline",
+ "overflow-wrap",
+ "overflow-x",
+ "overflow-y",
+ "overscroll-behavior",
+ "overscroll-behavior-block",
+ "overscroll-behavior-inline",
+ "overscroll-behavior-x",
+ "overscroll-behavior-y",
+ "padding",
+ "padding-block",
+ "padding-block-end",
+ "padding-block-start",
+ "padding-bottom",
+ "padding-inline",
+ "padding-inline-end",
+ "padding-inline-start",
+ "padding-left",
+ "padding-right",
+ "padding-top",
+ "page",
+ "page-break-after",
+ "page-break-before",
+ "page-break-inside",
+ "paint-order",
+ "perspective",
+ "perspective-origin",
+ "place-content",
+ "place-items",
+ "place-self",
+ "pointer-events",
+ "position",
+ "print-color-adjust",
+ "quotes",
+ "resize",
+ "right",
+ "rotate",
+ "row-gap",
+ "ruby-position",
+ "scale",
+ "scroll-behavior",
+ "scroll-margin",
+ "scroll-margin-block",
+ "scroll-margin-block-end",
+ "scroll-margin-block-start",
+ "scroll-margin-bottom",
+ "scroll-margin-inline",
+ "scroll-margin-inline-end",
+ "scroll-margin-inline-start",
+ "scroll-margin-left",
+ "scroll-margin-right",
+ "scroll-margin-top",
+ "scroll-padding",
+ "scroll-padding-block",
+ "scroll-padding-block-end",
+ "scroll-padding-block-start",
+ "scroll-padding-bottom",
+ "scroll-padding-inline",
+ "scroll-padding-inline-end",
+ "scroll-padding-inline-start",
+ "scroll-padding-left",
+ "scroll-padding-right",
+ "scroll-padding-top",
+ "scroll-snap-align",
+ "scroll-snap-stop",
+ "scroll-snap-type",
+ "scrollbar-color",
+ "scrollbar-gutter",
+ "scrollbar-width",
+ "shape-image-threshold",
+ "shape-margin",
+ "shape-outside",
+ "size-adjust",
+ "src",
+ "tab-size",
+ "table-layout",
+ "text-align",
+ "text-align-last",
+ "text-combine-upright",
+ "text-decoration",
+ "text-decoration-color",
+ "text-decoration-line",
+ "text-decoration-skip-ink",
+ "text-decoration-style",
+ "text-decoration-thickness",
+ "text-emphasis",
+ "text-emphasis-color",
+ "text-emphasis-position",
+ "text-emphasis-style",
+ "text-indent",
+ "text-justify",
+ "text-orientation",
+ "text-overflow",
+ "text-rendering",
+ "text-shadow",
+ "text-transform",
+ "text-underline-offset",
+ "text-underline-position",
+ "top",
+ "touch-action",
+ "transform",
+ "transform-box",
+ "transform-origin",
+ "transform-style",
+ "transition",
+ "transition-delay",
+ "transition-duration",
+ "transition-property",
+ "transition-timing-function",
+ "translate",
+ "unicode-bidi",
+ "unicode-range",
+ "user-select",
+ "vertical-align",
+ "visibility",
+ "white-space",
+ "widows",
+ "width",
+ "will-change",
+ "word-break",
+ "word-spacing",
+ "writing-mode",
+ "z-index"
+]
diff --git a/node_modules/css-declaration-sorter/src/orders/concentric-css.mjs b/node_modules/css-declaration-sorter/src/orders/concentric-css.mjs
new file mode 100644
index 00000000..54ef3533
--- /dev/null
+++ b/node_modules/css-declaration-sorter/src/orders/concentric-css.mjs
@@ -0,0 +1,405 @@
+export const properties = [
+ "all",
+ "display",
+ "position",
+ "top",
+ "right",
+ "bottom",
+ "left",
+ "offset",
+ "offset-anchor",
+ "offset-distance",
+ "offset-path",
+ "offset-rotate",
+ "grid",
+ "grid-template-rows",
+ "grid-template-columns",
+ "grid-template-areas",
+ "grid-auto-rows",
+ "grid-auto-columns",
+ "grid-auto-flow",
+ "column-gap",
+ "row-gap",
+ "grid-area",
+ "grid-row",
+ "grid-row-start",
+ "grid-row-end",
+ "grid-column",
+ "grid-column-start",
+ "grid-column-end",
+ "grid-template",
+ "flex",
+ "flex-grow",
+ "flex-shrink",
+ "flex-basis",
+ "flex-direction",
+ "flex-flow",
+ "flex-wrap",
+ "box-decoration-break",
+ "place-content",
+ "align-content",
+ "justify-content",
+ "place-items",
+ "align-items",
+ "justify-items",
+ "place-self",
+ "align-self",
+ "justify-self",
+ "vertical-align",
+ "baseline-source",
+ "order",
+ "float",
+ "clear",
+ "shape-margin",
+ "shape-outside",
+ "shape-image-threshold",
+ "orphans",
+ "gap",
+ "columns",
+ "column-fill",
+ "column-rule",
+ "column-rule-width",
+ "column-rule-style",
+ "column-rule-color",
+ "column-width",
+ "column-span",
+ "column-count",
+ "break-before",
+ "break-after",
+ "break-inside",
+ "page",
+ "page-break-before",
+ "page-break-after",
+ "page-break-inside",
+ "transform",
+ "transform-box",
+ "transform-origin",
+ "transform-style",
+ "translate",
+ "rotate",
+ "scale",
+
+ "perspective",
+ "perspective-origin",
+ "appearance",
+ "visibility",
+ "opacity",
+ "z-index",
+ "paint-order",
+ "mix-blend-mode",
+ "backface-visibility",
+ "backdrop-filter",
+ "clip-path",
+ "mask",
+ "mask-border",
+ "mask-border-outset",
+ "mask-border-repeat",
+ "mask-border-slice",
+ "mask-border-source",
+ "mask-border-width",
+ "mask-image",
+ "mask-mode",
+ "mask-position",
+ "mask-size",
+ "mask-repeat",
+ "mask-origin",
+ "mask-clip",
+ "mask-composite",
+ "mask-type",
+ "filter",
+ "animation",
+ "animation-composition",
+ "animation-duration",
+ "animation-timing-function",
+ "animation-delay",
+ "animation-iteration-count",
+ "animation-direction",
+ "animation-fill-mode",
+ "animation-play-state",
+ "animation-name",
+ "transition",
+ "transition-delay",
+ "transition-duration",
+ "transition-property",
+ "transition-timing-function",
+ "will-change",
+ "counter-increment",
+ "counter-reset",
+ "counter-set",
+ "cursor",
+
+ "box-sizing",
+ "contain",
+ "contain-intrinsic-height",
+ "contain-intrinsic-size",
+ "contain-intrinsic-width",
+ "container",
+ "container-name",
+ "container-type",
+ "margin",
+ "margin-top",
+ "margin-right",
+ "margin-bottom",
+ "margin-left",
+ "margin-inline",
+ "margin-inline-start",
+ "margin-inline-end",
+ "margin-block",
+ "margin-block-start",
+ "margin-block-end",
+ "inset",
+ "inset-block",
+ "inset-block-end",
+ "inset-block-start",
+ "inset-inline",
+ "inset-inline-end",
+ "inset-inline-start",
+ "outline",
+ "outline-color",
+ "outline-style",
+ "outline-width",
+ "outline-offset",
+ "box-shadow",
+ "border",
+ "border-top",
+ "border-right",
+ "border-bottom",
+ "border-left",
+ "border-width",
+ "border-top-width",
+ "border-right-width",
+ "border-bottom-width",
+ "border-left-width",
+ "border-style",
+ "border-top-style",
+ "border-right-style",
+ "border-bottom-style",
+ "border-left-style",
+ "border-color",
+ "border-top-color",
+ "border-right-color",
+ "border-bottom-color",
+ "border-left-color",
+ "border-radius",
+ "border-top-right-radius",
+ "border-top-left-radius",
+ "border-bottom-right-radius",
+ "border-bottom-left-radius",
+ "border-inline",
+ "border-inline-width",
+ "border-inline-style",
+ "border-inline-color",
+ "border-inline-start",
+ "border-inline-start-width",
+ "border-inline-start-style",
+ "border-inline-start-color",
+ "border-inline-end",
+ "border-inline-end-width",
+ "border-inline-end-style",
+ "border-inline-end-color",
+ "border-block",
+ "border-block-width",
+ "border-block-style",
+ "border-block-color",
+ "border-block-start",
+ "border-block-start-width",
+ "border-block-start-style",
+ "border-block-start-color",
+ "border-block-end",
+ "border-block-end-width",
+ "border-block-end-style",
+ "border-block-end-color",
+ "border-image",
+ "border-image-source",
+ "border-image-slice",
+ "border-image-width",
+ "border-image-outset",
+ "border-image-repeat",
+ "border-collapse",
+ "border-spacing",
+ "border-start-start-radius",
+ "border-start-end-radius",
+ "border-end-start-radius",
+ "border-end-end-radius",
+ "background",
+ "background-image",
+ "background-position",
+ "background-size",
+ "background-repeat",
+ "background-origin",
+ "background-clip",
+ "background-attachment",
+ "background-color",
+ "background-blend-mode",
+ "background-position-x",
+ "background-position-y",
+ "isolation",
+ "padding",
+ "padding-top",
+ "padding-right",
+ "padding-bottom",
+ "padding-left",
+ "padding-inline",
+ "padding-inline-start",
+ "padding-inline-end",
+ "padding-block",
+ "padding-block-start",
+ "padding-block-end",
+ "image-orientation",
+ "image-rendering",
+
+ "aspect-ratio",
+ "width",
+ "min-width",
+ "max-width",
+ "height",
+ "min-height",
+ "max-height",
+ "-webkit-line-clamp",
+ "-webkit-text-fill-color",
+ "-webkit-text-stroke",
+ "-webkit-text-stroke-color",
+ "-webkit-text-stroke-width",
+ "inline-size",
+ "min-inline-size",
+ "max-inline-size",
+ "block-size",
+ "min-block-size",
+ "max-block-size",
+ "table-layout",
+ "caption-side",
+ "empty-cells",
+ "overflow",
+ "overflow-anchor",
+ "overflow-block",
+ "overflow-clip-margin",
+ "overflow-inline",
+ "overflow-x",
+ "overflow-y",
+ "overscroll-behavior",
+ "overscroll-behavior-block",
+ "overscroll-behavior-inline",
+ "overscroll-behavior-x",
+ "overscroll-behavior-y",
+ "resize",
+ "object-fit",
+ "object-position",
+ "scroll-behavior",
+ "scroll-margin",
+ "scroll-margin-block",
+ "scroll-margin-block-end",
+ "scroll-margin-block-start",
+ "scroll-margin-bottom",
+ "scroll-margin-inline",
+ "scroll-margin-inline-end",
+ "scroll-margin-inline-start",
+ "scroll-margin-left",
+ "scroll-margin-right",
+ "scroll-margin-top",
+ "scroll-padding",
+ "scroll-padding-block",
+ "scroll-padding-block-end",
+ "scroll-padding-block-start",
+ "scroll-padding-bottom",
+ "scroll-padding-inline",
+ "scroll-padding-inline-end",
+ "scroll-padding-inline-start",
+ "scroll-padding-left",
+ "scroll-padding-right",
+ "scroll-padding-top",
+ "scroll-snap-align",
+ "scroll-snap-stop",
+ "scroll-snap-type",
+ "scrollbar-color",
+ "scrollbar-gutter",
+ "scrollbar-width",
+ "touch-action",
+ "pointer-events",
+
+ "content",
+ "quotes",
+ "hanging-punctuation",
+ "color",
+ "accent-color",
+ "print-color-adjust",
+ "forced-color-adjust",
+ "color-scheme",
+ "caret-color",
+ "font",
+ "font-style",
+ "font-variant",
+ "font-weight",
+ "font-stretch",
+ "font-size",
+ "size-adjust",
+ "line-height",
+ "src",
+ "font-family",
+ "font-display",
+ "font-kerning",
+ "font-language-override",
+ "font-optical-sizing",
+ "font-palette",
+ "font-size-adjust",
+ "font-synthesis",
+ "font-synthesis-weight",
+ "font-synthesis-style",
+ "font-synthesis-small-caps",
+ "font-synthesis-position",
+ "font-variant-alternates",
+ "font-variant-caps",
+ "font-variant-east-asian",
+ "font-variant-emoji",
+ "font-variant-ligatures",
+ "font-variant-numeric",
+ "font-variant-position",
+ "font-variation-settings",
+ "font-feature-settings",
+ "ascent-override",
+ "descent-override",
+ "line-gap-override",
+ "hyphens",
+ "hyphenate-character",
+ "letter-spacing",
+ "line-break",
+ "list-style",
+ "list-style-type",
+ "list-style-image",
+ "list-style-position",
+ "writing-mode",
+ "direction",
+ "unicode-bidi",
+ "unicode-range",
+ "user-select",
+ "ruby-position",
+ "math-depth",
+ "math-style",
+ "text-combine-upright",
+ "text-align",
+ "text-align-last",
+ "text-decoration",
+ "text-decoration-line",
+ "text-decoration-style",
+ "text-decoration-color",
+ "text-decoration-thickness",
+ "text-decoration-skip-ink",
+ "text-emphasis",
+ "text-emphasis-style",
+ "text-emphasis-color",
+ "text-emphasis-position",
+ "text-indent",
+ "text-justify",
+ "text-underline-position",
+ "text-underline-offset",
+ "text-orientation",
+ "text-overflow",
+ "text-rendering",
+ "text-shadow",
+ "text-transform",
+ "white-space",
+ "word-break",
+ "word-spacing",
+ "overflow-wrap",
+ "tab-size",
+ "widows"
+]
diff --git a/node_modules/css-declaration-sorter/src/orders/smacss.mjs b/node_modules/css-declaration-sorter/src/orders/smacss.mjs
new file mode 100644
index 00000000..f6133ffb
--- /dev/null
+++ b/node_modules/css-declaration-sorter/src/orders/smacss.mjs
@@ -0,0 +1,407 @@
+export const properties = [
+ "all",
+ "box-sizing",
+ "contain",
+ "contain-intrinsic-height",
+ "contain-intrinsic-size",
+ "contain-intrinsic-width",
+ "container",
+ "container-name",
+ "container-type",
+ "display",
+ "appearance",
+ "visibility",
+ "z-index",
+ "paint-order",
+ "position",
+ "top",
+ "right",
+ "bottom",
+ "left",
+ "offset",
+ "offset-anchor",
+ "offset-distance",
+ "offset-path",
+ "offset-rotate",
+
+
+ "grid",
+ "grid-template-rows",
+ "grid-template-columns",
+ "grid-template-areas",
+ "grid-auto-rows",
+ "grid-auto-columns",
+ "grid-auto-flow",
+ "column-gap",
+ "row-gap",
+ "grid-area",
+ "grid-row",
+ "grid-row-start",
+ "grid-row-end",
+ "grid-column",
+ "grid-column-start",
+ "grid-column-end",
+ "grid-template",
+ "flex",
+ "flex-grow",
+ "flex-shrink",
+ "flex-basis",
+ "flex-direction",
+ "flex-flow",
+ "flex-wrap",
+ "box-decoration-break",
+ "place-content",
+ "place-items",
+ "place-self",
+ "align-content",
+ "align-items",
+ "align-self",
+ "justify-content",
+ "justify-items",
+ "justify-self",
+ "order",
+ "aspect-ratio",
+ "width",
+ "min-width",
+ "max-width",
+ "height",
+ "min-height",
+ "max-height",
+ "-webkit-line-clamp",
+ "-webkit-text-fill-color",
+ "-webkit-text-stroke",
+ "-webkit-text-stroke-color",
+ "-webkit-text-stroke-width",
+ "inline-size",
+ "min-inline-size",
+ "max-inline-size",
+ "block-size",
+ "min-block-size",
+ "max-block-size",
+ "margin",
+ "margin-top",
+ "margin-right",
+ "margin-bottom",
+ "margin-left",
+ "margin-inline",
+ "margin-inline-start",
+ "margin-inline-end",
+ "margin-block",
+ "margin-block-start",
+ "margin-block-end",
+ "inset",
+ "inset-block",
+ "inset-block-end",
+ "inset-block-start",
+ "inset-inline",
+ "inset-inline-end",
+ "inset-inline-start",
+ "padding",
+ "padding-top",
+ "padding-right",
+ "padding-bottom",
+ "padding-left",
+ "padding-inline",
+ "padding-inline-start",
+ "padding-inline-end",
+ "padding-block",
+ "padding-block-start",
+ "padding-block-end",
+ "float",
+ "clear",
+ "overflow",
+ "overflow-anchor",
+ "overflow-block",
+ "overflow-clip-margin",
+ "overflow-inline",
+ "overflow-x",
+ "overflow-y",
+ "overscroll-behavior",
+ "overscroll-behavior-block",
+ "overscroll-behavior-inline",
+ "overscroll-behavior-x",
+ "overscroll-behavior-y",
+ "orphans",
+ "gap",
+ "columns",
+ "column-fill",
+ "column-rule",
+ "column-rule-color",
+ "column-rule-style",
+ "column-rule-width",
+ "column-span",
+ "column-count",
+ "column-width",
+ "object-fit",
+ "object-position",
+ "transform",
+ "transform-box",
+ "transform-origin",
+ "transform-style",
+ "translate",
+ "rotate",
+ "scale",
+
+ "border",
+ "border-top",
+ "border-right",
+ "border-bottom",
+ "border-left",
+ "border-width",
+ "border-top-width",
+ "border-right-width",
+ "border-bottom-width",
+ "border-left-width",
+ "border-style",
+ "border-top-style",
+ "border-right-style",
+ "border-bottom-style",
+ "border-left-style",
+ "border-radius",
+ "border-top-right-radius",
+ "border-top-left-radius",
+ "border-bottom-right-radius",
+ "border-bottom-left-radius",
+ "border-inline",
+ "border-inline-color",
+ "border-inline-style",
+ "border-inline-width",
+ "border-inline-start",
+ "border-inline-start-color",
+ "border-inline-start-style",
+ "border-inline-start-width",
+ "border-inline-end",
+ "border-inline-end-color",
+ "border-inline-end-style",
+ "border-inline-end-width",
+ "border-block",
+ "border-block-color",
+ "border-block-style",
+ "border-block-width",
+ "border-block-start",
+ "border-block-start-color",
+ "border-block-start-style",
+ "border-block-start-width",
+ "border-block-end",
+ "border-block-end-color",
+ "border-block-end-style",
+ "border-block-end-width",
+ "border-color",
+ "border-image",
+ "border-image-outset",
+ "border-image-repeat",
+ "border-image-slice",
+ "border-image-source",
+ "border-image-width",
+ "border-top-color",
+ "border-right-color",
+ "border-bottom-color",
+ "border-left-color",
+ "border-collapse",
+ "border-spacing",
+ "border-start-start-radius",
+ "border-start-end-radius",
+ "border-end-start-radius",
+ "border-end-end-radius",
+ "outline",
+ "outline-color",
+ "outline-style",
+ "outline-width",
+ "outline-offset",
+
+ "backdrop-filter",
+ "backface-visibility",
+ "background",
+ "background-image",
+ "background-position",
+ "background-size",
+ "background-repeat",
+ "background-origin",
+ "background-clip",
+ "background-attachment",
+ "background-color",
+ "background-blend-mode",
+ "background-position-x",
+ "background-position-y",
+ "box-shadow",
+ "isolation",
+
+ "content",
+ "quotes",
+ "hanging-punctuation",
+ "color",
+ "accent-color",
+ "print-color-adjust",
+ "forced-color-adjust",
+ "color-scheme",
+ "caret-color",
+ "font",
+ "font-style",
+ "font-variant",
+ "font-weight",
+ "src",
+ "font-stretch",
+ "font-size",
+ "size-adjust",
+ "line-height",
+ "font-family",
+ "font-display",
+ "font-kerning",
+ "font-language-override",
+ "font-optical-sizing",
+ "font-palette",
+ "font-size-adjust",
+ "font-synthesis",
+ "font-synthesis-weight",
+ "font-synthesis-style",
+ "font-synthesis-small-caps",
+ "font-synthesis-position",
+ "font-variant-alternates",
+ "font-variant-caps",
+ "font-variant-east-asian",
+ "font-variant-emoji",
+ "font-variant-ligatures",
+ "font-variant-numeric",
+ "font-variant-position",
+ "font-variation-settings",
+ "font-feature-settings",
+ "ascent-override",
+ "descent-override",
+ "line-gap-override",
+ "hyphens",
+ "hyphenate-character",
+ "letter-spacing",
+ "line-break",
+ "list-style",
+ "list-style-image",
+ "list-style-position",
+ "list-style-type",
+ "direction",
+ "text-align",
+ "text-align-last",
+ "text-decoration",
+ "text-decoration-line",
+ "text-decoration-style",
+ "text-decoration-color",
+ "text-decoration-thickness",
+ "text-decoration-skip-ink",
+ "text-emphasis",
+ "text-emphasis-style",
+ "text-emphasis-color",
+ "text-emphasis-position",
+ "text-indent",
+ "text-justify",
+ "text-underline-position",
+ "text-underline-offset",
+ "text-orientation",
+ "text-overflow",
+ "text-rendering",
+ "text-shadow",
+ "text-transform",
+ "vertical-align",
+ "baseline-source",
+ "white-space",
+ "word-break",
+ "word-spacing",
+ "overflow-wrap",
+
+ "animation",
+ "animation-composition",
+ "animation-duration",
+ "animation-timing-function",
+ "animation-delay",
+ "animation-iteration-count",
+ "animation-direction",
+ "animation-fill-mode",
+ "animation-play-state",
+ "animation-name",
+ "mix-blend-mode",
+ "break-before",
+ "break-after",
+ "break-inside",
+ "page",
+ "page-break-before",
+ "page-break-after",
+ "page-break-inside",
+ "caption-side",
+ "clip-path",
+ "counter-increment",
+ "counter-reset",
+ "counter-set",
+ "cursor",
+ "empty-cells",
+ "filter",
+ "image-orientation",
+ "image-rendering",
+ "mask",
+ "mask-border",
+ "mask-border-outset",
+ "mask-border-repeat",
+ "mask-border-slice",
+ "mask-border-source",
+ "mask-border-width",
+ "mask-clip",
+ "mask-composite",
+ "mask-image",
+ "mask-mode",
+ "mask-origin",
+ "mask-position",
+ "mask-repeat",
+ "mask-size",
+ "mask-type",
+ "opacity",
+ "perspective",
+ "perspective-origin",
+ "pointer-events",
+ "resize",
+ "scroll-behavior",
+ "scroll-margin",
+ "scroll-margin-block",
+ "scroll-margin-block-end",
+ "scroll-margin-block-start",
+ "scroll-margin-bottom",
+ "scroll-margin-inline",
+ "scroll-margin-inline-end",
+ "scroll-margin-inline-start",
+ "scroll-margin-left",
+ "scroll-margin-right",
+ "scroll-margin-top",
+ "scroll-padding",
+ "scroll-padding-block",
+ "scroll-padding-block-end",
+ "scroll-padding-block-start",
+ "scroll-padding-bottom",
+ "scroll-padding-inline",
+ "scroll-padding-inline-end",
+ "scroll-padding-inline-start",
+ "scroll-padding-left",
+ "scroll-padding-right",
+ "scroll-padding-top",
+ "scroll-snap-align",
+ "scroll-snap-stop",
+ "scroll-snap-type",
+ "scrollbar-color",
+ "scrollbar-gutter",
+ "scrollbar-width",
+ "shape-image-threshold",
+ "shape-margin",
+ "shape-outside",
+ "tab-size",
+ "table-layout",
+ "ruby-position",
+ "math-depth",
+ "math-style",
+ "text-combine-upright",
+ "touch-action",
+ "transition",
+ "transition-delay",
+ "transition-duration",
+ "transition-property",
+ "transition-timing-function",
+ "will-change",
+ "unicode-bidi",
+ "unicode-range",
+ "user-select",
+ "widows",
+ "writing-mode"
+]