@weapp-tailwindcss/postcss 3.3.7 → 3.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -712,7 +712,7 @@ function hasUnsupportedModernColorFunction(value) {
712
712
  return hasUnsupported;
713
713
  }
714
714
  //#endregion
715
- //#region ../../node_modules/.pnpm/@csstools+css-tokenizer@4.0.1/node_modules/@csstools/css-tokenizer/dist/index.mjs
715
+ //#region ../../node_modules/.pnpm/@csstools+css-tokenizer@4.0.2/node_modules/@csstools/css-tokenizer/dist/index.mjs
716
716
  var ParseError$1 = class extends Error {
717
717
  sourceStart;
718
718
  sourceEnd;
@@ -739,9 +739,12 @@ const e$1 = {
739
739
  };
740
740
  "undefined" != typeof globalThis && "structuredClone" in globalThis;
741
741
  function stringify(...e) {
742
- let n = "";
743
- for (let t = 0; t < e.length; t++) n += e[t][1];
744
- return n;
742
+ if (!e || !e.length) return "";
743
+ let n;
744
+ n = Array.isArray(e) && Array.isArray(e[0]) && Array.isArray(e[0][0]) ? e[0] : e;
745
+ let t = "";
746
+ for (let e = 0; e < n.length; e++) t += n[e][1];
747
+ return t;
745
748
  }
746
749
  const t$1 = 13;
747
750
  const o$1 = 45;
@@ -839,45 +842,45 @@ function tokenize(e, n) {
839
842
  for (; !t.endOfFile();) o.push(t.nextToken());
840
843
  return o.push(t.nextToken()), o;
841
844
  }
842
- function tokenizer(n, C) {
843
- const l = n.css.valueOf(), f = n.unicodeRangesAllowed ?? !1;
845
+ function tokenizer(n, l) {
846
+ const C = n.css.valueOf(), f = n.unicodeRangesAllowed ?? !1;
844
847
  let m = 0, h = 0, k = -1, P = !1;
845
- const p = C?.onParseError ?? noop;
848
+ const p = l?.onParseError ?? noop;
846
849
  function consumeIdentSequence() {
847
850
  const e = m;
848
851
  for (;;) {
849
- const e = l.charCodeAt(m);
852
+ const e = C.charCodeAt(m);
850
853
  if (e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === o$1 || 95 === e) {
851
854
  m += 1;
852
855
  continue;
853
856
  }
854
- const n = l.codePointAt(m) ?? -1;
855
- if (0 === n || n >= 55296 && n <= 57343 || n === s$1 && !isNewLine(l.codePointAt(m + 1) ?? -1)) break;
857
+ const n = C.codePointAt(m) ?? -1;
858
+ if (0 === n || n >= 55296 && n <= 57343 || n === s$1 && !isNewLine(C.codePointAt(m + 1) ?? -1)) break;
856
859
  if (!isNonASCII_IdentCodePoint(n)) break;
857
860
  m += +(n > 65535) + 1;
858
861
  }
859
- const n = l.codePointAt(m) ?? -1;
860
- if (0 !== n && !(n >= 55296 && n <= 57343) && (n !== s$1 || isNewLine(l.codePointAt(m + 1) ?? -1))) return P = !0, k = m - 1, l.slice(e, m);
862
+ const n = C.codePointAt(m) ?? -1;
863
+ if (0 !== n && !(n >= 55296 && n <= 57343) && (n !== s$1 || isNewLine(C.codePointAt(m + 1) ?? -1))) return P = !0, k = m - 1, C.slice(e, m);
861
864
  P = !1, m = e, k = -1;
862
865
  let t = "";
863
866
  for (;;) {
864
- const e = l.codePointAt(m) ?? -1;
867
+ const e = C.codePointAt(m) ?? -1;
865
868
  if (0 === e || isSurrogate(e)) t += String.fromCharCode(c$1), m += +(e > 65535) + 1, k = m - 1;
866
869
  else if (e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === o$1 || 95 === e || isNonASCII_IdentCodePoint(e)) t += e > 65535 ? String.fromCodePoint(e) : String.fromCharCode(e), m += +(e > 65535) + 1, k = m - 1;
867
870
  else {
868
- if (l.codePointAt(m) !== s$1 || isNewLine(l.codePointAt(m + 1) ?? -1)) return t;
871
+ if (C.codePointAt(m) !== s$1 || isNewLine(C.codePointAt(m + 1) ?? -1)) return t;
869
872
  m += 1, k = m - 1, t += String.fromCodePoint(consumeEscapedCodePoint());
870
873
  }
871
874
  }
872
875
  }
873
876
  function consumeEscapedCodePoint() {
874
- const n = l.codePointAt(m);
877
+ const n = C.codePointAt(m);
875
878
  if (void 0 === n) return p(new ParseError$1(e$1.UnexpectedEOFInEscapedCodePoint, h, k, ["4.3.7. Consume an escaped code point", "Unexpected EOF"])), c$1;
876
879
  if (m += +(n > 65535) + 1, k = m - 1, isHexDigitCodePoint(n)) {
877
880
  const e = [n];
878
881
  let o;
879
- for (; void 0 !== (o = l.codePointAt(m)) && isHexDigitCodePoint(o) && e.length < 6;) e.push(o), m += 1, k = m - 1;
880
- isWhitespace(l.codePointAt(m) ?? -1) && (l.codePointAt(m) === t$1 && l.codePointAt(m + 1) === r$1 && (m += 1), m += 1, k = m - 1);
882
+ for (; void 0 !== (o = C.codePointAt(m)) && isHexDigitCodePoint(o) && e.length < 6;) e.push(o), m += 1, k = m - 1;
883
+ isWhitespace(C.codePointAt(m) ?? -1) && (C.codePointAt(m) === t$1 && C.codePointAt(m + 1) === r$1 && (m += 1), m += 1, k = m - 1);
881
884
  const i = parseInt(String.fromCodePoint(...e), 16);
882
885
  return 0 === i || isSurrogate(i) || i > 1114111 ? c$1 : i;
883
886
  }
@@ -885,33 +888,33 @@ function tokenizer(n, C) {
885
888
  }
886
889
  function consumeBadURL() {
887
890
  for (;;) {
888
- const e = l.codePointAt(m);
891
+ const e = C.codePointAt(m);
889
892
  if (void 0 === e) return;
890
893
  if (41 === e) return m += 1, void (k = m - 1);
891
- e !== s$1 || isNewLine(l.codePointAt(m + 1) ?? -1) ? (m += 1, k = m - 1) : (m += 1, k = m - 1, consumeEscapedCodePoint());
894
+ e !== s$1 || isNewLine(C.codePointAt(m + 1) ?? -1) ? (m += 1, k = m - 1) : (m += 1, k = m - 1, consumeEscapedCodePoint());
892
895
  }
893
896
  }
894
897
  function consumeComment() {
895
898
  for (m += 2, k = m - 1;;) {
896
- const n = l.codePointAt(m);
899
+ const n = C.codePointAt(m);
897
900
  if (void 0 === n) {
898
901
  const n = [
899
902
  u$1.Comment,
900
- l.slice(h, k + 1),
903
+ C.slice(h, k + 1),
901
904
  h,
902
905
  k,
903
906
  void 0
904
907
  ];
905
908
  return p(new ParseErrorWithToken(e$1.UnexpectedEOFInComment, h, k, ["4.3.2. Consume comments", "Unexpected EOF"], n)), n;
906
909
  }
907
- if (m += 1, k = m - 1, 42 === n && void 0 !== l.codePointAt(m) && 47 === l.codePointAt(m)) {
910
+ if (m += 1, k = m - 1, 42 === n && void 0 !== C.codePointAt(m) && 47 === C.codePointAt(m)) {
908
911
  m += 1, k = m - 1;
909
912
  break;
910
913
  }
911
914
  }
912
915
  return [
913
916
  u$1.Comment,
914
- l.slice(h, k + 1),
917
+ C.slice(h, k + 1),
915
918
  h,
916
919
  k,
917
920
  void 0
@@ -919,13 +922,13 @@ function tokenizer(n, C) {
919
922
  }
920
923
  function consumeStringToken() {
921
924
  let n = "";
922
- const o = l.codePointAt(m);
925
+ const o = C.codePointAt(m);
923
926
  for (m += 1, k = m - 1;;) {
924
- const i = l.charCodeAt(m);
925
- if (m >= l.length) {
927
+ const i = C.charCodeAt(m);
928
+ if (m >= C.length) {
926
929
  const t = [
927
930
  u$1.String,
928
- l.slice(h, k + 1),
931
+ C.slice(h, k + 1),
929
932
  h,
930
933
  k,
931
934
  { value: n }
@@ -936,16 +939,16 @@ function tokenizer(n, C) {
936
939
  m -= 1, k = m - 1;
937
940
  const n = [
938
941
  u$1.BadString,
939
- l.slice(h, k + 1),
942
+ C.slice(h, k + 1),
940
943
  h,
941
944
  k,
942
945
  void 0
943
946
  ];
944
- return p(new ParseErrorWithToken(e$1.UnexpectedNewLineInString, h, l.codePointAt(m) === t$1 && l.codePointAt(m + 1) === r$1 ? k + 2 : k + 1, ["4.3.5. Consume a string token", "Unexpected newline"], n)), n;
947
+ return p(new ParseErrorWithToken(e$1.UnexpectedNewLineInString, h, C.codePointAt(m) === t$1 && C.codePointAt(m + 1) === r$1 ? k + 2 : k + 1, ["4.3.5. Consume a string token", "Unexpected newline"], n)), n;
945
948
  }
946
949
  if (i === o) return [
947
950
  u$1.String,
948
- l.slice(h, k + 1),
951
+ C.slice(h, k + 1),
949
952
  h,
950
953
  k,
951
954
  { value: n }
@@ -953,7 +956,7 @@ function tokenizer(n, C) {
953
956
  if (i !== s$1) if (0 !== i) if (i < 128) n += String.fromCharCode(i);
954
957
  else {
955
958
  if (i >= 55296 && i <= 57343) {
956
- const e = l.codePointAt(m - 1) ?? -1;
959
+ const e = C.codePointAt(m - 1) ?? -1;
957
960
  e >= 65536 ? (n += String.fromCodePoint(e), m += 1, k = m - 1) : n += String.fromCharCode(c$1);
958
961
  continue;
959
962
  }
@@ -961,9 +964,9 @@ function tokenizer(n, C) {
961
964
  }
962
965
  else n += String.fromCharCode(c$1);
963
966
  else {
964
- if (void 0 === l.codePointAt(m)) continue;
965
- if (isNewLine(l.codePointAt(m) ?? -1)) {
966
- l.codePointAt(m) === t$1 && l.codePointAt(m + 1) === r$1 && (m += 1), m += 1, k = m - 1;
967
+ if (void 0 === C.codePointAt(m)) continue;
968
+ if (isNewLine(C.codePointAt(m) ?? -1)) {
969
+ C.codePointAt(m) === t$1 && C.codePointAt(m + 1) === r$1 && (m += 1), m += 1, k = m - 1;
967
970
  continue;
968
971
  }
969
972
  n += String.fromCodePoint(consumeEscapedCodePoint());
@@ -974,14 +977,14 @@ function tokenizer(n, C) {
974
977
  m += 2, k = m - 1;
975
978
  const e = [], n = [];
976
979
  let t;
977
- for (; void 0 !== (t = l.codePointAt(m)) && e.length < 6 && isHexDigitCodePoint(t);) e.push(t), m += 1, k = m - 1;
978
- for (; void 0 !== (t = l.codePointAt(m)) && e.length < 6 && 63 === t;) 0 === n.length && n.push(...e), e.push(48), n.push(70), m += 1, k = m - 1;
979
- if (!n.length && l.codePointAt(m) === o$1 && isHexDigitCodePoint(l.codePointAt(m + 1) ?? -1)) for (m += 1, k = m - 1; void 0 !== (t = l.codePointAt(m)) && n.length < 6 && isHexDigitCodePoint(t);) n.push(t), m += 1, k = m - 1;
980
+ for (; void 0 !== (t = C.codePointAt(m)) && e.length < 6 && isHexDigitCodePoint(t);) e.push(t), m += 1, k = m - 1;
981
+ for (; void 0 !== (t = C.codePointAt(m)) && e.length < 6 && 63 === t;) 0 === n.length && n.push(...e), e.push(48), n.push(70), m += 1, k = m - 1;
982
+ if (!n.length && C.codePointAt(m) === o$1 && isHexDigitCodePoint(C.codePointAt(m + 1) ?? -1)) for (m += 1, k = m - 1; void 0 !== (t = C.codePointAt(m)) && n.length < 6 && isHexDigitCodePoint(t);) n.push(t), m += 1, k = m - 1;
980
983
  if (!n.length) {
981
984
  const n = parseInt(String.fromCodePoint(...e), 16);
982
985
  return [
983
986
  u$1.UnicodeRange,
984
- l.slice(h, k + 1),
987
+ C.slice(h, k + 1),
985
988
  h,
986
989
  k,
987
990
  {
@@ -993,7 +996,7 @@ function tokenizer(n, C) {
993
996
  const r = parseInt(String.fromCodePoint(...e), 16), i = parseInt(String.fromCodePoint(...n), 16);
994
997
  return [
995
998
  u$1.UnicodeRange,
996
- l.slice(h, k + 1),
999
+ C.slice(h, k + 1),
997
1000
  h,
998
1001
  k,
999
1002
  {
@@ -1003,32 +1006,32 @@ function tokenizer(n, C) {
1003
1006
  ];
1004
1007
  }
1005
1008
  function consumeUrlToken() {
1006
- for (; isWhitespace(l.codePointAt(m) ?? -1);) m += 1, k = m - 1;
1009
+ for (; isWhitespace(C.codePointAt(m) ?? -1);) m += 1, k = m - 1;
1007
1010
  let n = "";
1008
1011
  for (;;) {
1009
- if (void 0 === l.codePointAt(m)) {
1012
+ if (void 0 === C.codePointAt(m)) {
1010
1013
  const t = [
1011
1014
  u$1.URL,
1012
- l.slice(h, k + 1),
1015
+ C.slice(h, k + 1),
1013
1016
  h,
1014
1017
  k,
1015
1018
  { value: n }
1016
1019
  ];
1017
1020
  return p(new ParseErrorWithToken(e$1.UnexpectedEOFInURL, h, k, ["4.3.6. Consume a url token", "Unexpected EOF"], t)), t;
1018
1021
  }
1019
- if (41 === l.codePointAt(m)) return m += 1, k = m - 1, [
1022
+ if (41 === C.codePointAt(m)) return m += 1, k = m - 1, [
1020
1023
  u$1.URL,
1021
- l.slice(h, k + 1),
1024
+ C.slice(h, k + 1),
1022
1025
  h,
1023
1026
  k,
1024
1027
  { value: n }
1025
1028
  ];
1026
- if (isWhitespace(l.codePointAt(m) ?? -1)) {
1027
- for (m += 1, k = m - 1; isWhitespace(l.codePointAt(m) ?? -1);) m += 1, k = m - 1;
1028
- if (void 0 === l.codePointAt(m)) {
1029
+ if (isWhitespace(C.codePointAt(m) ?? -1)) {
1030
+ for (m += 1, k = m - 1; isWhitespace(C.codePointAt(m) ?? -1);) m += 1, k = m - 1;
1031
+ if (void 0 === C.codePointAt(m)) {
1029
1032
  const t = [
1030
1033
  u$1.URL,
1031
- l.slice(h, k + 1),
1034
+ C.slice(h, k + 1),
1032
1035
  h,
1033
1036
  k,
1034
1037
  { value: n }
@@ -1039,26 +1042,26 @@ function tokenizer(n, C) {
1039
1042
  "Unexpected EOF"
1040
1043
  ], t)), t;
1041
1044
  }
1042
- return 41 === l.codePointAt(m) ? (m += 1, k = m - 1, [
1045
+ return 41 === C.codePointAt(m) ? (m += 1, k = m - 1, [
1043
1046
  u$1.URL,
1044
- l.slice(h, k + 1),
1047
+ C.slice(h, k + 1),
1045
1048
  h,
1046
1049
  k,
1047
1050
  { value: n }
1048
1051
  ]) : (consumeBadURL(), [
1049
1052
  u$1.BadURL,
1050
- l.slice(h, k + 1),
1053
+ C.slice(h, k + 1),
1051
1054
  h,
1052
1055
  k,
1053
1056
  void 0
1054
1057
  ]);
1055
1058
  }
1056
- const t = l.codePointAt(m);
1059
+ const t = C.codePointAt(m);
1057
1060
  if (34 === t || 39 === t || 40 === t || isNonPrintableCodePoint(t ?? -1)) {
1058
1061
  consumeBadURL();
1059
1062
  const n = [
1060
1063
  u$1.BadURL,
1061
- l.slice(h, k + 1),
1064
+ C.slice(h, k + 1),
1062
1065
  h,
1063
1066
  k,
1064
1067
  void 0
@@ -1066,14 +1069,14 @@ function tokenizer(n, C) {
1066
1069
  return p(new ParseErrorWithToken(e$1.UnexpectedCharacterInURL, h, k, ["4.3.6. Consume a url token", "Unexpected U+0022 QUOTATION MARK (\"), U+0027 APOSTROPHE ('), U+0028 LEFT PARENTHESIS (() or non-printable code point"], n)), n;
1067
1070
  }
1068
1071
  if (t === s$1) {
1069
- if (t === s$1 && !isNewLine(l.codePointAt(m + 1) ?? -1)) {
1072
+ if (t === s$1 && !isNewLine(C.codePointAt(m + 1) ?? -1)) {
1070
1073
  m += 1, k = m - 1, n += String.fromCodePoint(consumeEscapedCodePoint());
1071
1074
  continue;
1072
1075
  }
1073
1076
  consumeBadURL();
1074
1077
  const o = [
1075
1078
  u$1.BadURL,
1076
- l.slice(h, k + 1),
1079
+ C.slice(h, k + 1),
1077
1080
  h,
1078
1081
  k,
1079
1082
  void 0
@@ -1090,28 +1093,28 @@ function tokenizer(n, C) {
1090
1093
  function consumeNumericToken() {
1091
1094
  let e;
1092
1095
  {
1093
- const n = l.charCodeAt(m);
1096
+ const n = C.charCodeAt(m);
1094
1097
  n === o$1 ? e = "-" : n === i$1 && (e = "+");
1095
1098
  }
1096
1099
  let n = a$1.Integer;
1097
- const t = l.charCodeAt(m);
1100
+ const t = C.charCodeAt(m);
1098
1101
  t !== i$1 && t !== o$1 || (m += 1);
1099
- let r = l.charCodeAt(m);
1100
- for (; r >= 48 && r <= 57;) m += 1, r = l.charCodeAt(m);
1101
- if (46 === l.charCodeAt(m) && l.charCodeAt(m + 1) >= 48 && l.charCodeAt(m + 1) <= 57) for (m += 2, n = a$1.Number, r = l.charCodeAt(m); r >= 48 && r <= 57;) m += 1, r = l.charCodeAt(m);
1102
- const c = l.charCodeAt(m);
1102
+ let r = C.charCodeAt(m);
1103
+ for (; r >= 48 && r <= 57;) m += 1, r = C.charCodeAt(m);
1104
+ if (46 === C.charCodeAt(m) && C.charCodeAt(m + 1) >= 48 && C.charCodeAt(m + 1) <= 57) for (m += 2, n = a$1.Number, r = C.charCodeAt(m); r >= 48 && r <= 57;) m += 1, r = C.charCodeAt(m);
1105
+ const c = C.charCodeAt(m);
1103
1106
  if (101 === c || 69 === c) {
1104
- const e = l.charCodeAt(m + 1);
1105
- if (e >= 48 && e <= 57) for (m += 2, n = a$1.Number, r = l.charCodeAt(m); r >= 48 && r <= 57;) m += 1, r = l.charCodeAt(m);
1106
- else if ((e === o$1 || e === i$1) && l.charCodeAt(m + 2) >= 48 && l.charCodeAt(m + 2) <= 57) for (m += 3, n = a$1.Number, r = l.charCodeAt(m); r >= 48 && r <= 57;) m += 1, r = l.charCodeAt(m);
1107
+ const e = C.charCodeAt(m + 1);
1108
+ if (e >= 48 && e <= 57) for (m += 2, n = a$1.Number, r = C.charCodeAt(m); r >= 48 && r <= 57;) m += 1, r = C.charCodeAt(m);
1109
+ else if ((e === o$1 || e === i$1) && C.charCodeAt(m + 2) >= 48 && C.charCodeAt(m + 2) <= 57) for (m += 3, n = a$1.Number, r = C.charCodeAt(m); r >= 48 && r <= 57;) m += 1, r = C.charCodeAt(m);
1107
1110
  }
1108
1111
  k = m - 1;
1109
- const s = parseFloat(l.slice(h, k + 1));
1112
+ const s = parseFloat(C.slice(h, k + 1));
1110
1113
  if (checkIfThreeCodePointsWouldStartAnIdentSequence()) {
1111
1114
  const t = consumeIdentSequence();
1112
1115
  return [
1113
1116
  u$1.Dimension,
1114
- l.slice(h, k + 1),
1117
+ C.slice(h, k + 1),
1115
1118
  h,
1116
1119
  k,
1117
1120
  {
@@ -1122,9 +1125,9 @@ function tokenizer(n, C) {
1122
1125
  }
1123
1126
  ];
1124
1127
  }
1125
- return 37 === l.charCodeAt(m) ? (m += 1, k = m - 1, [
1128
+ return 37 === C.charCodeAt(m) ? (m += 1, k = m - 1, [
1126
1129
  u$1.Percentage,
1127
- l.slice(h, k + 1),
1130
+ C.slice(h, k + 1),
1128
1131
  h,
1129
1132
  k,
1130
1133
  {
@@ -1133,7 +1136,7 @@ function tokenizer(n, C) {
1133
1136
  }
1134
1137
  ]) : [
1135
1138
  u$1.Number,
1136
- l.slice(h, k + 1),
1139
+ C.slice(h, k + 1),
1137
1140
  h,
1138
1141
  k,
1139
1142
  {
@@ -1145,9 +1148,9 @@ function tokenizer(n, C) {
1145
1148
  }
1146
1149
  function consumeIdentLikeToken() {
1147
1150
  const e = consumeIdentSequence();
1148
- if (40 !== l.charCodeAt(m)) return [
1151
+ if (40 !== C.charCodeAt(m)) return [
1149
1152
  u$1.Ident,
1150
- P ? e : l.slice(h, k + 1),
1153
+ P ? e : C.slice(h, k + 1),
1151
1154
  h,
1152
1155
  k,
1153
1156
  { value: e }
@@ -1155,11 +1158,11 @@ function tokenizer(n, C) {
1155
1158
  if (!(3 !== e.length || 117 !== e.charCodeAt(0) && 85 !== e.charCodeAt(0) || 114 !== e.charCodeAt(1) && 82 !== e.charCodeAt(1) || 108 !== e.charCodeAt(2) && 76 !== e.charCodeAt(2))) {
1156
1159
  m += 1, k = m - 1;
1157
1160
  let n = 0;
1158
- for (; isWhitespace(l.charCodeAt(m));) n += 1, m += 1, k = m - 1;
1159
- const t = l.charCodeAt(m);
1161
+ for (; isWhitespace(C.charCodeAt(m));) n += 1, m += 1, k = m - 1;
1162
+ const t = C.charCodeAt(m);
1160
1163
  return 34 === t || 39 === t ? (n > 0 && (m -= n, k = m - 1), [
1161
1164
  u$1.Function,
1162
- l.slice(h, k + 1),
1165
+ C.slice(h, k + 1),
1163
1166
  h,
1164
1167
  k,
1165
1168
  { value: e }
@@ -1167,7 +1170,7 @@ function tokenizer(n, C) {
1167
1170
  }
1168
1171
  return m += 1, k = m - 1, [
1169
1172
  u$1.Function,
1170
- l.slice(h, k + 1),
1173
+ C.slice(h, k + 1),
1171
1174
  h,
1172
1175
  k,
1173
1176
  { value: e }
@@ -1175,14 +1178,14 @@ function tokenizer(n, C) {
1175
1178
  }
1176
1179
  function consumeHashToken() {
1177
1180
  m += 1, k = m - 1;
1178
- const e = l.charCodeAt(m);
1179
- if (e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === o$1 || 95 === e || isNonASCII_IdentCodePoint(e) || e === s$1 && !isNewLine(l.codePointAt(m + 1) ?? -1)) {
1181
+ const e = C.charCodeAt(m);
1182
+ if (e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === o$1 || 95 === e || isNonASCII_IdentCodePoint(e) || e === s$1 && !isNewLine(C.codePointAt(m + 1) ?? -1)) {
1180
1183
  let e = d.Unrestricted;
1181
1184
  checkIfThreeCodePointsWouldStartAnIdentSequence() && (e = d.ID);
1182
1185
  const n = consumeIdentSequence();
1183
1186
  return [
1184
1187
  u$1.Hash,
1185
- l.slice(h, k + 1),
1188
+ C.slice(h, k + 1),
1186
1189
  h,
1187
1190
  k,
1188
1191
  {
@@ -1204,7 +1207,7 @@ function tokenizer(n, C) {
1204
1207
  const e = consumeIdentSequence();
1205
1208
  return [
1206
1209
  u$1.AtKeyword,
1207
- l.slice(h, k + 1),
1210
+ C.slice(h, k + 1),
1208
1211
  h,
1209
1212
  k,
1210
1213
  { value: e }
@@ -1234,24 +1237,24 @@ function tokenizer(n, C) {
1234
1237
  ], n)), n;
1235
1238
  }
1236
1239
  function checkIfThreeCodePointsWouldStartAnIdentSequence(e) {
1237
- const n = void 0 === e ? l.charCodeAt(m) : e;
1238
- return n === o$1 ? l.charCodeAt(m + 1) === o$1 || !!isIdentStartCodePoint(l.charCodeAt(m + 1)) || l.charCodeAt(m + 1) === s$1 && !isNewLine(l.charCodeAt(m + 2)) : !!isIdentStartCodePoint(n) || l.charCodeAt(m) === s$1 && !isNewLine(l.charCodeAt(m + 1));
1240
+ const n = void 0 === e ? C.charCodeAt(m) : e;
1241
+ return n === o$1 ? C.charCodeAt(m + 1) === o$1 || !!isIdentStartCodePoint(C.charCodeAt(m + 1)) || C.charCodeAt(m + 1) === s$1 && !isNewLine(C.charCodeAt(m + 2)) : !!isIdentStartCodePoint(n) || C.charCodeAt(m) === s$1 && !isNewLine(C.charCodeAt(m + 1));
1239
1242
  }
1240
1243
  function checkIfThreeCodePointsWouldStartANumber(e) {
1241
- return e === i$1 || e === o$1 ? l.charCodeAt(m + 1) >= 48 && l.charCodeAt(m + 1) <= 57 || 46 === l.charCodeAt(m + 1) && l.charCodeAt(m + 2) >= 48 && l.charCodeAt(m + 2) <= 57 : 46 === e ? l.charCodeAt(m + 1) >= 48 && l.charCodeAt(m + 1) <= 57 : e >= 48 && e <= 57;
1244
+ return e === i$1 || e === o$1 ? C.charCodeAt(m + 1) >= 48 && C.charCodeAt(m + 1) <= 57 || 46 === C.charCodeAt(m + 1) && C.charCodeAt(m + 2) >= 48 && C.charCodeAt(m + 2) <= 57 : 46 === e ? C.charCodeAt(m + 1) >= 48 && C.charCodeAt(m + 1) <= 57 : e >= 48 && e <= 57;
1242
1245
  }
1243
1246
  return {
1244
1247
  nextToken: function nextToken() {
1245
- if (h = m, k = -1, m >= l.length) return [
1248
+ if (h = m, k = -1, m >= C.length) return [
1246
1249
  u$1.EOF,
1247
1250
  "",
1248
1251
  -1,
1249
1252
  -1,
1250
1253
  void 0
1251
1254
  ];
1252
- const e = l.charCodeAt(m);
1253
- if (47 === e && 42 === l.charCodeAt(m + 1)) return consumeComment();
1254
- if (f && (117 === e || 85 === e) && l.codePointAt(m + 1) === i$1 && (63 === l.codePointAt(m + 2) || isHexDigitCodePoint(l.codePointAt(m + 2) ?? -1))) return consumeUnicodeRangeToken();
1255
+ const e = C.charCodeAt(m);
1256
+ if (47 === e && 42 === C.charCodeAt(m + 1)) return consumeComment();
1257
+ if (f && (117 === e || 85 === e) && C.codePointAt(m + 1) === i$1 && (63 === C.codePointAt(m + 2) || isHexDigitCodePoint(C.codePointAt(m + 2) ?? -1))) return consumeUnicodeRangeToken();
1255
1258
  if (isIdentStartCodePoint(e)) return consumeIdentLikeToken();
1256
1259
  if ((n = e) >= 48 && n <= 57) return consumeNumericToken();
1257
1260
  switch (e) {
@@ -1324,10 +1327,10 @@ function tokenizer(n, C) {
1324
1327
  case i$1:
1325
1328
  case 46: return checkIfThreeCodePointsWouldStartANumber(e) ? consumeNumericToken() : (m += 1, k = m - 1, [
1326
1329
  u$1.Delim,
1327
- l[h],
1330
+ C[h],
1328
1331
  h,
1329
1332
  k,
1330
- { value: l[h] }
1333
+ { value: C[h] }
1331
1334
  ]);
1332
1335
  case r$1:
1333
1336
  case t$1:
@@ -1335,18 +1338,18 @@ function tokenizer(n, C) {
1335
1338
  case 9:
1336
1339
  case 32:
1337
1340
  {
1338
- let e = l.charCodeAt(m);
1339
- for (; 32 === e || e === r$1 || 9 === e || e === t$1 || 12 === e;) m += 1, e = l.charCodeAt(m);
1341
+ let e = C.charCodeAt(m);
1342
+ for (; 32 === e || e === r$1 || 9 === e || e === t$1 || 12 === e;) m += 1, e = C.charCodeAt(m);
1340
1343
  k = m - 1;
1341
1344
  }
1342
1345
  return [
1343
1346
  u$1.Whitespace,
1344
- l.slice(h, k + 1),
1347
+ C.slice(h, k + 1),
1345
1348
  h,
1346
1349
  k,
1347
1350
  void 0
1348
1351
  ];
1349
- case o$1: return checkIfThreeCodePointsWouldStartANumber(e) ? consumeNumericToken() : l.charCodeAt(m + 1) === o$1 && 62 === l.charCodeAt(m + 2) ? (m += 3, k = m - 1, [
1352
+ case o$1: return checkIfThreeCodePointsWouldStartANumber(e) ? consumeNumericToken() : C.charCodeAt(m + 1) === o$1 && 62 === C.charCodeAt(m + 2) ? (m += 3, k = m - 1, [
1350
1353
  u$1.CDC,
1351
1354
  "-->",
1352
1355
  h,
@@ -1359,7 +1362,7 @@ function tokenizer(n, C) {
1359
1362
  k,
1360
1363
  { value: "-" }
1361
1364
  ]);
1362
- case 60: return 33 === l.charCodeAt(m + 1) && l.charCodeAt(m + 2) === o$1 && l.charCodeAt(m + 3) === o$1 ? (m += 4, k = m - 1, [
1365
+ case 60: return 33 === C.charCodeAt(m + 1) && C.charCodeAt(m + 2) === o$1 && C.charCodeAt(m + 3) === o$1 ? (m += 4, k = m - 1, [
1363
1366
  u$1.CDO,
1364
1367
  "<!--",
1365
1368
  h,
@@ -1373,19 +1376,19 @@ function tokenizer(n, C) {
1373
1376
  { value: "<" }
1374
1377
  ]);
1375
1378
  case 64: return consumeAtKeywordToken();
1376
- case s$1: return e !== s$1 || isNewLine(l.charCodeAt(m + 1)) ? consumeInvalidEscapeToken() : consumeIdentLikeToken();
1379
+ case s$1: return e !== s$1 || isNewLine(C.charCodeAt(m + 1)) ? consumeInvalidEscapeToken() : consumeIdentLikeToken();
1377
1380
  default: return m += 1, k = m - 1, [
1378
1381
  u$1.Delim,
1379
- l[h],
1382
+ C[h],
1380
1383
  h,
1381
1384
  k,
1382
- { value: l[h] }
1385
+ { value: C[h] }
1383
1386
  ];
1384
1387
  }
1385
1388
  var n;
1386
1389
  },
1387
1390
  endOfFile: function endOfFile() {
1388
- return m >= l.length;
1391
+ return m >= C.length;
1389
1392
  }
1390
1393
  };
1391
1394
  }
@@ -1425,9 +1428,9 @@ function insertEscapedCodePoint(e, n, t) {
1425
1428
  }(a$1 || (a$1 = {})), function(e) {
1426
1429
  e.Unrestricted = "unrestricted", e.ID = "id";
1427
1430
  }(d || (d = {}));
1428
- const C = Object.values(u$1);
1431
+ const l$1 = Object.values(u$1);
1429
1432
  function isToken(e) {
1430
- return !!Array.isArray(e) && !(e.length < 4) && !!C.includes(e[0]) && "string" == typeof e[1] && "number" == typeof e[2] && "number" == typeof e[3];
1433
+ return !!Array.isArray(e) && !(e.length < 4) && !!l$1.includes(e[0]) && "string" == typeof e[1] && "number" == typeof e[2] && "number" == typeof e[3];
1431
1434
  }
1432
1435
  function isTokenNumeric(e) {
1433
1436
  if (!e) return !1;
@@ -1498,7 +1501,7 @@ function isTokenOpenCurly(e) {
1498
1501
  return !!e && e[0] === u$1.OpenCurly;
1499
1502
  }
1500
1503
  //#endregion
1501
- //#region ../../node_modules/.pnpm/@csstools+color-helpers@6.1.1/node_modules/@csstools/color-helpers/dist/index.mjs
1504
+ //#region ../../node_modules/.pnpm/@csstools+color-helpers@6.1.2/node_modules/@csstools/color-helpers/dist/index.mjs
1502
1505
  function multiplyMatrices(_, t) {
1503
1506
  return [
1504
1507
  _[0] * t[0] + _[1] * t[1] + _[2] * t[2],
@@ -2032,10 +2035,10 @@ const h = [
2032
2035
  lin_ProPhoto_channel(_[2])
2033
2036
  ];
2034
2037
  }
2035
- const f$1 = 16 / 512;
2038
+ const f = 16 / 512;
2036
2039
  function lin_ProPhoto_channel(_) {
2037
2040
  const t = _ < 0 ? -1 : 1, n = Math.abs(_);
2038
- return n <= f$1 ? _ / 16 : t * Math.pow(n, 1.8);
2041
+ return n <= f ? _ / 16 : t * Math.pow(n, 1.8);
2039
2042
  }
2040
2043
  const m = [
2041
2044
  .7977666449006423,
@@ -3166,54 +3169,60 @@ function contrast_ratio_wcag_2_1(_, t) {
3166
3169
  return (Math.max(n, o) + .05) / (Math.min(n, o) + .05);
3167
3170
  }
3168
3171
  //#endregion
3169
- //#region ../../node_modules/.pnpm/@csstools+css-parser-algorithms@4.0.0_@csstools+css-tokenizer@4.0.1/node_modules/@csstools/css-parser-algorithms/dist/index.mjs
3170
- var f;
3172
+ //#region ../../node_modules/.pnpm/@csstools+css-parser-algorithms@4.0.1_@csstools+css-tokenizer@4.0.2/node_modules/@csstools/css-parser-algorithms/dist/index.mjs
3173
+ var k$1;
3171
3174
  function walkerIndexGenerator(e) {
3172
- let n = e.slice();
3173
- return (e, t, o) => {
3174
- let s = -1;
3175
- for (let i = n.indexOf(t); i < n.length && (s = e.indexOf(n[i]), -1 === s || s < o); i++);
3176
- return -1 === s || s === o && t === e[o] && (s++, s >= e.length) ? -1 : (n = e.slice(), s);
3175
+ let n, t = e.slice(), o = -1;
3176
+ return (e, s, i) => {
3177
+ if (e === n && e.length === o && e[i] === s) {
3178
+ o = e.length;
3179
+ const n = i + 1;
3180
+ return n < e.length ? n : -1;
3181
+ }
3182
+ let r = -1;
3183
+ for (let n = t.indexOf(s); n < t.length && (r = e.indexOf(t[n]), -1 === r || r < i); n++);
3184
+ return -1 === r || r === i && s === e[i] && (r++, r >= e.length) ? (n = e, o = e.length, -1) : (t = e.slice(), n = e, o = e.length, r);
3177
3185
  };
3178
3186
  }
3179
- function consumeComponentValue(e, n) {
3180
- const t = n[0];
3181
- if (isTokenOpenParen(t) || isTokenOpenCurly(t) || isTokenOpenSquare(t)) {
3182
- const t = consumeSimpleBlock(e, n);
3187
+ (function(e) {
3188
+ e.Function = "function", e.SimpleBlock = "simple-block", e.Whitespace = "whitespace", e.Comment = "comment", e.Token = "token";
3189
+ })(k$1 || (k$1 = {}));
3190
+ const N = 512;
3191
+ function consumeComponentValue(e, n, t = 0, o = 0) {
3192
+ const s = n[t];
3193
+ if (isTokenOpenParen(s) || isTokenOpenCurly(s) || isTokenOpenSquare(s)) {
3194
+ const s = consumeSimpleBlock(e, n, t, o);
3183
3195
  return {
3184
- advance: t.advance,
3185
- node: t.node
3196
+ advance: s.advance,
3197
+ node: s.node
3186
3198
  };
3187
3199
  }
3188
- if (isTokenFunction(t)) {
3189
- const t = consumeFunction(e, n);
3200
+ if (isTokenFunction(s)) {
3201
+ const s = consumeFunction(e, n, t, o);
3190
3202
  return {
3191
- advance: t.advance,
3192
- node: t.node
3203
+ advance: s.advance,
3204
+ node: s.node
3193
3205
  };
3194
3206
  }
3195
- if (isTokenWhitespace(t)) {
3196
- const t = consumeWhitespace(e, n);
3207
+ if (isTokenWhitespace(s)) {
3208
+ const o = consumeWhitespace(e, n, t);
3197
3209
  return {
3198
- advance: t.advance,
3199
- node: t.node
3210
+ advance: o.advance,
3211
+ node: o.node
3200
3212
  };
3201
3213
  }
3202
- if (isTokenComment(t)) {
3203
- const t = consumeComment(e, n);
3214
+ if (isTokenComment(s)) {
3215
+ const o = consumeComment(e, n, t);
3204
3216
  return {
3205
- advance: t.advance,
3206
- node: t.node
3217
+ advance: o.advance,
3218
+ node: o.node
3207
3219
  };
3208
3220
  }
3209
3221
  return {
3210
3222
  advance: 1,
3211
- node: new TokenNode(t)
3223
+ node: new TokenNode(s)
3212
3224
  };
3213
3225
  }
3214
- (function(e) {
3215
- e.Function = "function", e.SimpleBlock = "simple-block", e.Whitespace = "whitespace", e.Comment = "comment", e.Token = "token";
3216
- })(f || (f = {}));
3217
3226
  var ContainerNodeBaseClass = class {
3218
3227
  value = [];
3219
3228
  indexOf(e) {
@@ -3238,11 +3247,11 @@ var ContainerNodeBaseClass = class {
3238
3247
  }
3239
3248
  }
3240
3249
  walk(e, n) {
3241
- 0 !== this.value.length && this.forEach((n, t) => !1 !== e(n, t) && (!("walk" in n.node) || !this.value.includes(n.node) || !1 !== n.node.walk(e, n.state)) && void 0, n);
3250
+ 0 !== this.value.length && this.forEach((n, t) => !1 !== e(n, t) && (!("walk" in n.node) || !("number" == typeof t && this.value[t] === n.node || this.value.includes(n.node)) || !1 !== n.node.walk(e, n.state)) && void 0, n);
3242
3251
  }
3243
3252
  };
3244
3253
  var FunctionNode = class FunctionNode extends ContainerNodeBaseClass {
3245
- type = f.Function;
3254
+ type = k$1.Function;
3246
3255
  name;
3247
3256
  endToken;
3248
3257
  constructor(e, n, t) {
@@ -3268,8 +3277,8 @@ var FunctionNode = class FunctionNode extends ContainerNodeBaseClass {
3268
3277
  ];
3269
3278
  }
3270
3279
  toString() {
3271
- const e = this.value.map((e) => isToken(e) ? stringify(e) : e.toString()).join("");
3272
- return stringify(this.name) + e + stringify(this.endToken);
3280
+ const n = this.value.map((n) => isToken(n) ? stringify(n) : n.toString()).join("");
3281
+ return stringify(this.name) + n + stringify(this.endToken);
3273
3282
  }
3274
3283
  toJSON() {
3275
3284
  return {
@@ -3283,33 +3292,35 @@ var FunctionNode = class FunctionNode extends ContainerNodeBaseClass {
3283
3292
  return FunctionNode.isFunctionNode(this);
3284
3293
  }
3285
3294
  static isFunctionNode(e) {
3286
- return !!e && e instanceof FunctionNode && e.type === f.Function;
3295
+ return !!e && e instanceof FunctionNode && e.type === k$1.Function;
3287
3296
  }
3288
3297
  };
3289
- function consumeFunction(n, t) {
3290
- const o = [];
3291
- let s = 1;
3298
+ function consumeFunction(e, t, o, s) {
3299
+ if (s >= N) throw new Error("Maximum nesting depth of 512 exceeded, reduce the complexity of your stylesheet.");
3300
+ const i = [];
3301
+ let r = o + 1;
3292
3302
  for (;;) {
3293
- const i = t[s];
3294
- if (!i || isTokenEOF(i)) return n.onParseError(new ParseError$1("Unexpected EOF while consuming a function.", t[0][2], t[t.length - 1][3], ["5.4.9. Consume a function", "Unexpected EOF"])), {
3295
- advance: t.length,
3296
- node: new FunctionNode(t[0], i, o)
3303
+ const a = t[r];
3304
+ if (!a || isTokenEOF(a)) return e.onParseError(new ParseError$1("Unexpected EOF while consuming a function.", t[o][2], t[t.length - 1][3], ["5.4.9. Consume a function", "Unexpected EOF"])), {
3305
+ advance: t.length - o,
3306
+ node: new FunctionNode(t[o], a, i)
3297
3307
  };
3298
- if (isTokenCloseParen(i)) return {
3299
- advance: s + 1,
3300
- node: new FunctionNode(t[0], i, o)
3308
+ if (isTokenCloseParen(a)) return {
3309
+ advance: r - o + 1,
3310
+ node: new FunctionNode(t[o], a, i)
3301
3311
  };
3302
- if (isTokenWhiteSpaceOrComment(i)) {
3303
- const e = consumeAllCommentsAndWhitespace(n, t.slice(s));
3304
- s += e.advance, o.push(...e.nodes);
3312
+ if (isTokenWhiteSpaceOrComment(a)) {
3313
+ const n = consumeAllCommentsAndWhitespace(e, t, r);
3314
+ r += n.advance;
3315
+ for (let e = 0; e < n.nodes.length; e++) i.push(n.nodes[e]);
3305
3316
  continue;
3306
3317
  }
3307
- const r = consumeComponentValue(n, t.slice(s));
3308
- s += r.advance, o.push(r.node);
3318
+ const c = consumeComponentValue(e, t, r, s + 1);
3319
+ r += c.advance, i.push(c.node);
3309
3320
  }
3310
3321
  }
3311
3322
  var SimpleBlockNode = class SimpleBlockNode extends ContainerNodeBaseClass {
3312
- type = f.SimpleBlock;
3323
+ type = k$1.SimpleBlock;
3313
3324
  startToken;
3314
3325
  endToken;
3315
3326
  constructor(e, n, t) {
@@ -3329,8 +3340,8 @@ var SimpleBlockNode = class SimpleBlockNode extends ContainerNodeBaseClass {
3329
3340
  ];
3330
3341
  }
3331
3342
  toString() {
3332
- const e = this.value.map((e) => isToken(e) ? stringify(e) : e.toString()).join("");
3333
- return stringify(this.startToken) + e + stringify(this.endToken);
3343
+ const n = this.value.map((n) => isToken(n) ? stringify(n) : n.toString()).join("");
3344
+ return stringify(this.startToken) + n + stringify(this.endToken);
3334
3345
  }
3335
3346
  toJSON() {
3336
3347
  return {
@@ -3344,35 +3355,37 @@ var SimpleBlockNode = class SimpleBlockNode extends ContainerNodeBaseClass {
3344
3355
  return SimpleBlockNode.isSimpleBlockNode(this);
3345
3356
  }
3346
3357
  static isSimpleBlockNode(e) {
3347
- return !!e && e instanceof SimpleBlockNode && e.type === f.SimpleBlock;
3358
+ return !!e && e instanceof SimpleBlockNode && e.type === k$1.SimpleBlock;
3348
3359
  }
3349
3360
  };
3350
- function consumeSimpleBlock(n, t) {
3351
- const o = mirrorVariantType(t[0][0]);
3352
- if (!o) throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");
3353
- const s = [];
3354
- let i = 1;
3361
+ function consumeSimpleBlock(e, t, o, s) {
3362
+ if (s >= N) throw new Error("Maximum nesting depth of 512 exceeded, reduce the complexity of your stylesheet.");
3363
+ const i = mirrorVariantType(t[o][0]);
3364
+ if (!i) throw new Error("Failed to parse, a mirror variant must exist for all block open tokens.");
3365
+ const r = [];
3366
+ let a = o + 1;
3355
3367
  for (;;) {
3356
- const r = t[i];
3357
- if (!r || isTokenEOF(r)) return n.onParseError(new ParseError$1("Unexpected EOF while consuming a simple block.", t[0][2], t[t.length - 1][3], ["5.4.8. Consume a simple block", "Unexpected EOF"])), {
3358
- advance: t.length,
3359
- node: new SimpleBlockNode(t[0], r, s)
3368
+ const c = t[a];
3369
+ if (!c || isTokenEOF(c)) return e.onParseError(new ParseError$1("Unexpected EOF while consuming a simple block.", t[o][2], t[t.length - 1][3], ["5.4.8. Consume a simple block", "Unexpected EOF"])), {
3370
+ advance: t.length - o,
3371
+ node: new SimpleBlockNode(t[o], c, r)
3360
3372
  };
3361
- if (r[0] === o) return {
3362
- advance: i + 1,
3363
- node: new SimpleBlockNode(t[0], r, s)
3373
+ if (c[0] === i) return {
3374
+ advance: a - o + 1,
3375
+ node: new SimpleBlockNode(t[o], c, r)
3364
3376
  };
3365
- if (isTokenWhiteSpaceOrComment(r)) {
3366
- const e = consumeAllCommentsAndWhitespace(n, t.slice(i));
3367
- i += e.advance, s.push(...e.nodes);
3377
+ if (isTokenWhiteSpaceOrComment(c)) {
3378
+ const n = consumeAllCommentsAndWhitespace(e, t, a);
3379
+ a += n.advance;
3380
+ for (let e = 0; e < n.nodes.length; e++) r.push(n.nodes[e]);
3368
3381
  continue;
3369
3382
  }
3370
- const a = consumeComponentValue(n, t.slice(i));
3371
- i += a.advance, s.push(a.node);
3383
+ const u = consumeComponentValue(e, t, a, s + 1);
3384
+ a += u.advance, r.push(u.node);
3372
3385
  }
3373
3386
  }
3374
3387
  var WhitespaceNode = class WhitespaceNode {
3375
- type = f.Whitespace;
3388
+ type = k$1.Whitespace;
3376
3389
  value;
3377
3390
  constructor(e) {
3378
3391
  this.value = e;
@@ -3381,7 +3394,7 @@ var WhitespaceNode = class WhitespaceNode {
3381
3394
  return this.value;
3382
3395
  }
3383
3396
  toString() {
3384
- return stringify(...this.value);
3397
+ return stringify(this.value);
3385
3398
  }
3386
3399
  toJSON() {
3387
3400
  return {
@@ -3393,22 +3406,22 @@ var WhitespaceNode = class WhitespaceNode {
3393
3406
  return WhitespaceNode.isWhitespaceNode(this);
3394
3407
  }
3395
3408
  static isWhitespaceNode(e) {
3396
- return !!e && e instanceof WhitespaceNode && e.type === f.Whitespace;
3409
+ return !!e && e instanceof WhitespaceNode && e.type === k$1.Whitespace;
3397
3410
  }
3398
3411
  };
3399
- function consumeWhitespace(e, n) {
3400
- let t = 0;
3412
+ function consumeWhitespace(e, n, t) {
3413
+ let o = t;
3401
3414
  for (;;) {
3402
- const e = n[t];
3415
+ const e = n[o];
3403
3416
  if (!isTokenWhitespace(e)) return {
3404
- advance: t,
3405
- node: new WhitespaceNode(n.slice(0, t))
3417
+ advance: o - t,
3418
+ node: new WhitespaceNode(n.slice(t, o))
3406
3419
  };
3407
- t++;
3420
+ o++;
3408
3421
  }
3409
3422
  }
3410
3423
  var CommentNode = class CommentNode {
3411
- type = f.Comment;
3424
+ type = k$1.Comment;
3412
3425
  value;
3413
3426
  constructor(e) {
3414
3427
  this.value = e;
@@ -3429,33 +3442,33 @@ var CommentNode = class CommentNode {
3429
3442
  return CommentNode.isCommentNode(this);
3430
3443
  }
3431
3444
  static isCommentNode(e) {
3432
- return !!e && e instanceof CommentNode && e.type === f.Comment;
3445
+ return !!e && e instanceof CommentNode && e.type === k$1.Comment;
3433
3446
  }
3434
3447
  };
3435
- function consumeComment(e, n) {
3448
+ function consumeComment(e, n, t) {
3436
3449
  return {
3437
3450
  advance: 1,
3438
- node: new CommentNode(n[0])
3451
+ node: new CommentNode(n[t])
3439
3452
  };
3440
3453
  }
3441
- function consumeAllCommentsAndWhitespace(e, n) {
3442
- const t = [];
3443
- let o = 0;
3454
+ function consumeAllCommentsAndWhitespace(e, n, t) {
3455
+ const o = [];
3456
+ let s = t;
3444
3457
  for (;;) {
3445
- if (isTokenWhitespace(n[o])) {
3446
- const e = consumeWhitespace(0, n.slice(o));
3447
- o += e.advance, t.push(e.node);
3458
+ if (isTokenWhitespace(n[s])) {
3459
+ const e = consumeWhitespace(0, n, s);
3460
+ s += e.advance, o.push(e.node);
3448
3461
  continue;
3449
3462
  }
3450
- if (!isTokenComment(n[o])) return {
3451
- advance: o,
3452
- nodes: t
3463
+ if (!isTokenComment(n[s])) return {
3464
+ advance: s - t,
3465
+ nodes: o
3453
3466
  };
3454
- t.push(new CommentNode(n[o])), o++;
3467
+ o.push(new CommentNode(n[s])), s++;
3455
3468
  }
3456
3469
  }
3457
3470
  var TokenNode = class TokenNode {
3458
- type = f.Token;
3471
+ type = k$1.Token;
3459
3472
  value;
3460
3473
  constructor(e) {
3461
3474
  this.value = e;
@@ -3476,11 +3489,12 @@ var TokenNode = class TokenNode {
3476
3489
  return TokenNode.isTokenNode(this);
3477
3490
  }
3478
3491
  static isTokenNode(e) {
3479
- return !!e && e instanceof TokenNode && e.type === f.Token;
3492
+ return !!e && e instanceof TokenNode && e.type === k$1.Token;
3480
3493
  }
3481
3494
  };
3482
- function parseComponentValue(t, o) {
3483
- const s = { onParseError: o?.onParseError ?? (() => {}) }, i = [...t];
3495
+ function parseComponentValue(e, o) {
3496
+ const s = { onParseError: o?.onParseError ?? (() => {}) }, i = [...e];
3497
+ if (0 === i.length) return;
3484
3498
  isTokenEOF(i[i.length - 1]) || i.push([
3485
3499
  u$1.EOF,
3486
3500
  "",
@@ -3490,7 +3504,7 @@ function parseComponentValue(t, o) {
3490
3504
  ]);
3491
3505
  const r = consumeComponentValue(s, i);
3492
3506
  if (isTokenEOF(i[Math.min(r.advance, i.length - 1)])) return r.node;
3493
- s.onParseError(new ParseError$1("Expected EOF after parsing a component value.", t[0][2], t[t.length - 1][3], ["5.3.9. Parse a component value", "Expected EOF"]));
3507
+ s.onParseError(new ParseError$1("Expected EOF after parsing a component value.", e[0][2], e[e.length - 1][3], ["5.3.9. Parse a component value", "Expected EOF"]));
3494
3508
  }
3495
3509
  function forEach(e, n, t) {
3496
3510
  if (0 === e.length) return;
@@ -3508,7 +3522,7 @@ function forEach(e, n, t) {
3508
3522
  }
3509
3523
  }
3510
3524
  function walk(e, n, t) {
3511
- 0 !== e.length && forEach(e, (t, o) => !1 !== n(t, o) && (!("walk" in t.node) || !e.includes(t.node) || !1 !== t.node.walk(n, t.state)) && void 0, t);
3525
+ 0 !== e.length && forEach(e, (t, o) => !1 !== n(t, o) && (!("walk" in t.node) || !("number" == typeof o && e[o] === t.node || e.includes(t.node)) || !1 !== t.node.walk(n, t.state)) && void 0, t);
3512
3526
  }
3513
3527
  function replaceComponentValues$1(e, n) {
3514
3528
  for (let t = 0; t < e.length; t++) walk(e[t], (e, t) => {
@@ -3547,7 +3561,7 @@ function sourceIndices(e) {
3547
3561
  return t && o ? [t[2], o[3]] : [0, 0];
3548
3562
  }
3549
3563
  //#endregion
3550
- //#region ../../node_modules/.pnpm/@csstools+css-calc@3.4.0_@csstools+css-parser-algorithms@4.0.0_@csstools+css-tokenizer@_2890c6a65aa9b6b5d7856150ce77fa7e/node_modules/@csstools/css-calc/dist/index.mjs
3564
+ //#region ../../node_modules/.pnpm/@csstools+css-calc@3.4.1_@csstools+css-parser-algorithms@4.0.1_@csstools+css-tokenizer@_c27b91014f1d16725d86a05c76dde1c4/node_modules/@csstools/css-calc/dist/index.mjs
3551
3565
  var ParseError = class extends Error {
3552
3566
  sourceStart;
3553
3567
  sourceEnd;
@@ -3561,15 +3575,15 @@ var ParseErrorWithComponentValues = class extends ParseError {
3561
3575
  super(n, ...sourceIndices(t)), this.componentValues = t;
3562
3576
  }
3563
3577
  };
3564
- const I = {
3578
+ const S = {
3565
3579
  UnexpectedAdditionOfDimensionOrPercentageWithNumber: "Unexpected addition of a dimension or percentage with a number.",
3566
3580
  UnexpectedSubtractionOfDimensionOrPercentageWithNumber: "Unexpected subtraction of a dimension or percentage with a number."
3567
3581
  };
3568
- const x = /[A-Z]/g;
3582
+ const y = /[A-Z]/g;
3569
3583
  function toLowerCaseAZ$1(e) {
3570
- return e.replace(x, (e) => String.fromCharCode(e.charCodeAt(0) + 32));
3584
+ return e.replace(y, (e) => String.fromCharCode(e.charCodeAt(0) + 32));
3571
3585
  }
3572
- const M = {
3586
+ const I = {
3573
3587
  cm: "px",
3574
3588
  in: "px",
3575
3589
  mm: "px",
@@ -3586,7 +3600,7 @@ const M = {
3586
3600
  hz: "hz",
3587
3601
  khz: "hz"
3588
3602
  };
3589
- const T = /* @__PURE__ */ new Map([
3603
+ const x = /* @__PURE__ */ new Map([
3590
3604
  ["cm", (e) => e],
3591
3605
  ["mm", (e) => 10 * e],
3592
3606
  ["q", (e) => 40 * e],
@@ -3595,20 +3609,20 @@ const T = /* @__PURE__ */ new Map([
3595
3609
  ["pt", (e) => e / 2.54 * 72],
3596
3610
  ["px", (e) => e / 2.54 * 96]
3597
3611
  ]);
3598
- const P = /* @__PURE__ */ new Map([
3612
+ const M = /* @__PURE__ */ new Map([
3599
3613
  ["deg", (e) => e],
3600
3614
  ["grad", (e) => e / .9],
3601
3615
  ["rad", (e) => e / 180 * Math.PI],
3602
3616
  ["turn", (e) => e / 360]
3603
3617
  ]);
3604
- const k = /* @__PURE__ */ new Map([
3618
+ const T = /* @__PURE__ */ new Map([
3605
3619
  ["deg", (e) => .9 * e],
3606
3620
  ["grad", (e) => e],
3607
3621
  ["rad", (e) => .9 * e / 180 * Math.PI],
3608
3622
  ["turn", (e) => .9 * e / 360]
3609
3623
  ]);
3610
- const W = /* @__PURE__ */ new Map([["hz", (e) => e], ["khz", (e) => e / 1e3]]);
3611
- const O = /* @__PURE__ */ new Map([
3624
+ const P = /* @__PURE__ */ new Map([["hz", (e) => e], ["khz", (e) => e / 1e3]]);
3625
+ const k = /* @__PURE__ */ new Map([
3612
3626
  ["cm", (e) => 2.54 * e],
3613
3627
  ["mm", (e) => 25.4 * e],
3614
3628
  ["q", (e) => 25.4 * e * 4],
@@ -3617,8 +3631,8 @@ const O = /* @__PURE__ */ new Map([
3617
3631
  ["pt", (e) => 72 * e],
3618
3632
  ["px", (e) => 96 * e]
3619
3633
  ]);
3620
- const U = /* @__PURE__ */ new Map([["hz", (e) => 1e3 * e], ["khz", (e) => e]]);
3621
- const L = /* @__PURE__ */ new Map([
3634
+ const W = /* @__PURE__ */ new Map([["hz", (e) => 1e3 * e], ["khz", (e) => e]]);
3635
+ const O = /* @__PURE__ */ new Map([
3622
3636
  ["cm", (e) => e / 10],
3623
3637
  ["mm", (e) => e],
3624
3638
  ["q", (e) => 4 * e],
@@ -3627,8 +3641,8 @@ const L = /* @__PURE__ */ new Map([
3627
3641
  ["pt", (e) => e / 25.4 * 72],
3628
3642
  ["px", (e) => e / 25.4 * 96]
3629
3643
  ]);
3630
- const $ = /* @__PURE__ */ new Map([["ms", (e) => e], ["s", (e) => e / 1e3]]);
3631
- const V = /* @__PURE__ */ new Map([
3644
+ const U = /* @__PURE__ */ new Map([["ms", (e) => e], ["s", (e) => e / 1e3]]);
3645
+ const L = /* @__PURE__ */ new Map([
3632
3646
  ["cm", (e) => e / 6 * 2.54],
3633
3647
  ["mm", (e) => e / 6 * 25.4],
3634
3648
  ["q", (e) => e / 6 * 25.4 * 4],
@@ -3637,7 +3651,7 @@ const V = /* @__PURE__ */ new Map([
3637
3651
  ["pt", (e) => e / 6 * 72],
3638
3652
  ["px", (e) => e / 6 * 96]
3639
3653
  ]);
3640
- const Z = /* @__PURE__ */ new Map([
3654
+ const $ = /* @__PURE__ */ new Map([
3641
3655
  ["cm", (e) => e / 72 * 2.54],
3642
3656
  ["mm", (e) => e / 72 * 25.4],
3643
3657
  ["q", (e) => e / 72 * 25.4 * 4],
@@ -3646,7 +3660,7 @@ const Z = /* @__PURE__ */ new Map([
3646
3660
  ["pt", (e) => e],
3647
3661
  ["px", (e) => e / 72 * 96]
3648
3662
  ]);
3649
- const z = /* @__PURE__ */ new Map([
3663
+ const V = /* @__PURE__ */ new Map([
3650
3664
  ["cm", (e) => e / 96 * 2.54],
3651
3665
  ["mm", (e) => e / 96 * 25.4],
3652
3666
  ["q", (e) => e / 96 * 25.4 * 4],
@@ -3655,7 +3669,7 @@ const z = /* @__PURE__ */ new Map([
3655
3669
  ["pt", (e) => e / 96 * 72],
3656
3670
  ["px", (e) => e]
3657
3671
  ]);
3658
- const q = /* @__PURE__ */ new Map([
3672
+ const Z = /* @__PURE__ */ new Map([
3659
3673
  ["cm", (e) => e / 4 / 10],
3660
3674
  ["mm", (e) => e / 4],
3661
3675
  ["q", (e) => e],
@@ -3664,123 +3678,123 @@ const q = /* @__PURE__ */ new Map([
3664
3678
  ["pt", (e) => e / 4 / 25.4 * 72],
3665
3679
  ["px", (e) => e / 4 / 25.4 * 96]
3666
3680
  ]);
3667
- const G = /* @__PURE__ */ new Map([
3681
+ const z = /* @__PURE__ */ new Map([
3668
3682
  ["deg", (e) => 180 * e / Math.PI],
3669
3683
  ["grad", (e) => 180 * e / Math.PI / .9],
3670
3684
  ["rad", (e) => e],
3671
3685
  ["turn", (e) => 180 * e / Math.PI / 360]
3672
3686
  ]);
3673
- const R = /* @__PURE__ */ new Map([["ms", (e) => 1e3 * e], ["s", (e) => e]]);
3674
- const j = /* @__PURE__ */ new Map([
3687
+ const q = /* @__PURE__ */ new Map([["ms", (e) => 1e3 * e], ["s", (e) => e]]);
3688
+ const R = /* @__PURE__ */ new Map([
3675
3689
  ["deg", (e) => 360 * e],
3676
3690
  ["grad", (e) => 360 * e / .9],
3677
3691
  ["rad", (e) => 360 * e / 180 * Math.PI],
3678
3692
  ["turn", (e) => e]
3679
3693
  ]);
3680
- const Y = /* @__PURE__ */ new Map([
3681
- ["cm", T],
3682
- ["mm", L],
3683
- ["q", q],
3684
- ["in", O],
3685
- ["pc", V],
3686
- ["pt", Z],
3687
- ["px", z],
3688
- ["ms", $],
3689
- ["s", R],
3690
- ["deg", P],
3691
- ["grad", k],
3692
- ["rad", G],
3693
- ["turn", j],
3694
- ["hz", W],
3695
- ["khz", U]
3694
+ const G = /* @__PURE__ */ new Map([
3695
+ ["cm", x],
3696
+ ["mm", O],
3697
+ ["q", Z],
3698
+ ["in", k],
3699
+ ["pc", L],
3700
+ ["pt", $],
3701
+ ["px", V],
3702
+ ["ms", U],
3703
+ ["s", q],
3704
+ ["deg", M],
3705
+ ["grad", T],
3706
+ ["rad", z],
3707
+ ["turn", R],
3708
+ ["hz", P],
3709
+ ["khz", W]
3696
3710
  ]);
3697
3711
  function convertUnit(e, n) {
3698
3712
  if (!isTokenDimension(e)) return n;
3699
3713
  if (!isTokenDimension(n)) return n;
3700
3714
  const t = toLowerCaseAZ$1(e[4].unit), r = toLowerCaseAZ$1(n[4].unit);
3701
3715
  if (t === r) return n;
3702
- const a = Y.get(r);
3703
- if (!a) return n;
3704
- const u = a.get(t);
3716
+ const u = G.get(r);
3705
3717
  if (!u) return n;
3706
- const o = u(n[4].value), i = [
3718
+ const a = u.get(t);
3719
+ if (!a) return n;
3720
+ const i = a(n[4].value), o = [
3707
3721
  u$1.Dimension,
3708
3722
  "",
3709
3723
  n[2],
3710
3724
  n[3],
3711
3725
  {
3712
3726
  ...n[4],
3713
- signCharacter: o < 0 ? "-" : void 0,
3714
- type: Number.isInteger(o) ? a$1.Integer : a$1.Number,
3715
- value: o
3727
+ signCharacter: i < 0 ? "-" : void 0,
3728
+ type: Number.isInteger(i) ? a$1.Integer : a$1.Number,
3729
+ value: i
3716
3730
  }
3717
3731
  ];
3718
- return mutateUnit(i, e[4].unit), i;
3732
+ return mutateUnit(o, e[4].unit), o;
3719
3733
  }
3720
3734
  function toCanonicalUnit(e) {
3721
3735
  if (!isTokenDimension(e)) return e;
3722
- const n = toLowerCaseAZ$1(e[4].unit), t = M[n];
3736
+ const n = toLowerCaseAZ$1(e[4].unit), t = I[n];
3723
3737
  if (n === t) return e;
3724
- const r = Y.get(n);
3738
+ const r = G.get(n);
3725
3739
  if (!r) return e;
3726
- const a = r.get(t);
3727
- if (!a) return e;
3728
- const u = a(e[4].value), o = [
3740
+ const u = r.get(t);
3741
+ if (!u) return e;
3742
+ const a = u(e[4].value), i = [
3729
3743
  u$1.Dimension,
3730
3744
  "",
3731
3745
  e[2],
3732
3746
  e[3],
3733
3747
  {
3734
3748
  ...e[4],
3735
- signCharacter: u < 0 ? "-" : void 0,
3736
- type: Number.isInteger(u) ? a$1.Integer : a$1.Number,
3737
- value: u
3749
+ signCharacter: a < 0 ? "-" : void 0,
3750
+ type: Number.isInteger(a) ? a$1.Integer : a$1.Number,
3751
+ value: a
3738
3752
  }
3739
3753
  ];
3740
- return mutateUnit(o, t), o;
3754
+ return mutateUnit(i, t), i;
3741
3755
  }
3742
3756
  function addition(e, t) {
3743
3757
  if (2 !== e.length) return -1;
3744
3758
  const r = e[0].value;
3745
- let a = e[1].value;
3746
- if (isTokenNumber(r) && isTokenNumber(a)) {
3747
- const e = r[4].value + a[4].value;
3759
+ let u = e[1].value;
3760
+ if (isTokenNumber(r) && isTokenNumber(u)) {
3761
+ const e = r[4].value + u[4].value;
3748
3762
  return new TokenNode([
3749
3763
  u$1.Number,
3750
3764
  e.toString(),
3751
3765
  r[2],
3752
- a[3],
3766
+ u[3],
3753
3767
  {
3754
3768
  value: e,
3755
- type: r[4].type === a$1.Integer && a[4].type === a$1.Integer ? a$1.Integer : a$1.Number
3769
+ type: r[4].type === a$1.Integer && u[4].type === a$1.Integer ? a$1.Integer : a$1.Number
3756
3770
  }
3757
3771
  ]);
3758
3772
  }
3759
- if (isTokenPercentage(r) && isTokenPercentage(a)) {
3760
- const e = r[4].value + a[4].value;
3773
+ if (isTokenPercentage(r) && isTokenPercentage(u)) {
3774
+ const e = r[4].value + u[4].value;
3761
3775
  return new TokenNode([
3762
3776
  u$1.Percentage,
3763
3777
  e.toString() + "%",
3764
3778
  r[2],
3765
- a[3],
3779
+ u[3],
3766
3780
  { value: e }
3767
3781
  ]);
3768
3782
  }
3769
- if (isTokenDimension(r) && isTokenDimension(a) && (a = convertUnit(r, a), toLowerCaseAZ$1(r[4].unit) === toLowerCaseAZ$1(a[4].unit))) {
3770
- const e = r[4].value + a[4].value;
3783
+ if (isTokenDimension(r) && isTokenDimension(u) && (u = convertUnit(r, u), toLowerCaseAZ$1(r[4].unit) === toLowerCaseAZ$1(u[4].unit))) {
3784
+ const e = r[4].value + u[4].value;
3771
3785
  return new TokenNode([
3772
3786
  u$1.Dimension,
3773
3787
  e.toString() + r[4].unit,
3774
3788
  r[2],
3775
- a[3],
3789
+ u[3],
3776
3790
  {
3777
3791
  value: e,
3778
- type: r[4].type === a$1.Integer && a[4].type === a$1.Integer ? a$1.Integer : a$1.Number,
3792
+ type: r[4].type === a$1.Integer && u[4].type === a$1.Integer ? a$1.Integer : a$1.Number,
3779
3793
  unit: r[4].unit
3780
3794
  }
3781
3795
  ]);
3782
3796
  }
3783
- return (isTokenNumber(r) && (isTokenDimension(a) || isTokenPercentage(a)) || isTokenNumber(a) && (isTokenDimension(r) || isTokenPercentage(r))) && t.onParseError?.(new ParseErrorWithComponentValues(I.UnexpectedAdditionOfDimensionOrPercentageWithNumber, e)), -1;
3797
+ return (isTokenNumber(r) && (isTokenDimension(u) || isTokenPercentage(u)) || isTokenNumber(u) && (isTokenDimension(r) || isTokenPercentage(r))) && t.onParseError?.(new ParseErrorWithComponentValues(S.UnexpectedAdditionOfDimensionOrPercentageWithNumber, e)), -1;
3784
3798
  }
3785
3799
  function division(e) {
3786
3800
  if (2 !== e.length) return -1;
@@ -3829,18 +3843,36 @@ function isCalculation(e) {
3829
3843
  }
3830
3844
  function solve(e, n) {
3831
3845
  if (-1 === e) return -1;
3832
- const r = [];
3833
- for (let a = 0; a < e.inputs.length; a++) {
3834
- const u = e.inputs[a];
3835
- if (isTokenNode(u)) {
3836
- r.push(u);
3846
+ const r = [{
3847
+ calculation: e,
3848
+ inputs: [],
3849
+ index: 0
3850
+ }];
3851
+ let u = -1;
3852
+ for (; r.length;) {
3853
+ const e = r[r.length - 1];
3854
+ if (e.index < e.calculation.inputs.length) {
3855
+ const n = e.calculation.inputs[e.index];
3856
+ if (e.index++, isTokenNode(n)) {
3857
+ e.inputs.push(n);
3858
+ continue;
3859
+ }
3860
+ r.push({
3861
+ calculation: n,
3862
+ inputs: [],
3863
+ index: 0
3864
+ });
3837
3865
  continue;
3838
3866
  }
3839
- const o = solve(u, n);
3840
- if (-1 === o) return -1;
3841
- r.push(o);
3867
+ const a = e.calculation.operation(e.inputs, n);
3868
+ if (r.pop(), -1 === a) return -1;
3869
+ if (!r.length) {
3870
+ u = a;
3871
+ break;
3872
+ }
3873
+ r[r.length - 1].inputs.push(a);
3842
3874
  }
3843
- return e.operation(r, n);
3875
+ return u;
3844
3876
  }
3845
3877
  function multiplication(e) {
3846
3878
  if (2 !== e.length) return -1;
@@ -3909,19 +3941,19 @@ function multiplication(e) {
3909
3941
  return -1;
3910
3942
  }
3911
3943
  function resolveGlobalsAndConstants(e, r) {
3912
- for (let a = 0; a < e.length; a++) {
3913
- const u = e[a];
3914
- if (!isTokenNode(u)) continue;
3915
- const o = u.value;
3916
- if (!isTokenIdent(o)) continue;
3917
- const i = toLowerCaseAZ$1(o[4].value);
3918
- switch (i) {
3944
+ for (let u = 0; u < e.length; u++) {
3945
+ const a = e[u];
3946
+ if (!isTokenNode(a)) continue;
3947
+ const i = a.value;
3948
+ if (!isTokenIdent(i)) continue;
3949
+ const o = toLowerCaseAZ$1(i[4].value);
3950
+ switch (o) {
3919
3951
  case "e":
3920
- e.splice(a, 1, new TokenNode([
3952
+ e.splice(u, 1, new TokenNode([
3921
3953
  u$1.Number,
3922
3954
  Math.E.toString(),
3923
- o[2],
3924
- o[3],
3955
+ i[2],
3956
+ i[3],
3925
3957
  {
3926
3958
  value: Math.E,
3927
3959
  type: a$1.Number
@@ -3929,11 +3961,11 @@ function resolveGlobalsAndConstants(e, r) {
3929
3961
  ]));
3930
3962
  break;
3931
3963
  case "pi":
3932
- e.splice(a, 1, new TokenNode([
3964
+ e.splice(u, 1, new TokenNode([
3933
3965
  u$1.Number,
3934
3966
  Math.PI.toString(),
3935
- o[2],
3936
- o[3],
3967
+ i[2],
3968
+ i[3],
3937
3969
  {
3938
3970
  value: Math.PI,
3939
3971
  type: a$1.Number
@@ -3941,11 +3973,11 @@ function resolveGlobalsAndConstants(e, r) {
3941
3973
  ]));
3942
3974
  break;
3943
3975
  case "infinity":
3944
- e.splice(a, 1, new TokenNode([
3976
+ e.splice(u, 1, new TokenNode([
3945
3977
  u$1.Number,
3946
3978
  "infinity",
3947
- o[2],
3948
- o[3],
3979
+ i[2],
3980
+ i[3],
3949
3981
  {
3950
3982
  value: 1 / 0,
3951
3983
  type: a$1.Number
@@ -3953,11 +3985,11 @@ function resolveGlobalsAndConstants(e, r) {
3953
3985
  ]));
3954
3986
  break;
3955
3987
  case "-infinity":
3956
- e.splice(a, 1, new TokenNode([
3988
+ e.splice(u, 1, new TokenNode([
3957
3989
  u$1.Number,
3958
3990
  "-infinity",
3959
- o[2],
3960
- o[3],
3991
+ i[2],
3992
+ i[3],
3961
3993
  {
3962
3994
  value: -1 / 0,
3963
3995
  type: a$1.Number
@@ -3965,20 +3997,20 @@ function resolveGlobalsAndConstants(e, r) {
3965
3997
  ]));
3966
3998
  break;
3967
3999
  case "nan":
3968
- e.splice(a, 1, new TokenNode([
4000
+ e.splice(u, 1, new TokenNode([
3969
4001
  u$1.Number,
3970
4002
  "NaN",
3971
- o[2],
3972
- o[3],
4003
+ i[2],
4004
+ i[3],
3973
4005
  {
3974
4006
  value: NaN,
3975
4007
  type: a$1.Number
3976
4008
  }
3977
4009
  ]));
3978
4010
  break;
3979
- default: if (r.has(i)) {
3980
- const t = r.get(i);
3981
- e.splice(a, 1, new TokenNode(t));
4011
+ default: if (r.has(o)) {
4012
+ const t = r.get(o);
4013
+ e.splice(u, 1, new TokenNode(t));
3982
4014
  }
3983
4015
  }
3984
4016
  }
@@ -3993,13 +4025,13 @@ function resultToCalculation(e, n, t) {
3993
4025
  return isTokenDimension(n) ? dimensionToCalculation(e, n[4].unit, t) : isTokenPercentage(n) ? percentageToCalculation(e, t) : isTokenNumber(n) ? numberToCalculation(e, t) : -1;
3994
4026
  }
3995
4027
  function dimensionToCalculation(e, t, r) {
3996
- const a = e.tokens();
4028
+ const u = e.tokens();
3997
4029
  return {
3998
4030
  inputs: [new TokenNode([
3999
4031
  u$1.Dimension,
4000
4032
  r.toString() + t,
4001
- a[0][2],
4002
- a[a.length - 1][3],
4033
+ u[0][2],
4034
+ u[u.length - 1][3],
4003
4035
  {
4004
4036
  value: r,
4005
4037
  type: Number.isInteger(r) ? a$1.Integer : a$1.Number,
@@ -4064,9 +4096,9 @@ function arrayOfSameNumeric(e) {
4064
4096
  if (isTokenDimension(n)) {
4065
4097
  const t = toLowerCaseAZ$1(n[4].unit);
4066
4098
  for (let r = 1; r < e.length; r++) {
4067
- const a = e[r];
4068
- if (n[0] !== a[0]) return !1;
4069
- if (t !== toLowerCaseAZ$1(a[4].unit)) return !1;
4099
+ const u = e[r];
4100
+ if (n[0] !== u[0]) return !1;
4101
+ if (t !== toLowerCaseAZ$1(u[4].unit)) return !1;
4070
4102
  }
4071
4103
  return !0;
4072
4104
  }
@@ -4082,26 +4114,28 @@ function twoOfSameNumeric(e, n) {
4082
4114
  function solveATan2(e, n, t) {
4083
4115
  const r = n.value;
4084
4116
  if (!isDimensionOrNumber(r)) return -1;
4085
- const a = convertUnit(r, t.value);
4086
- if (!twoOfSameNumeric(r, a)) return -1;
4087
- return dimensionToCalculation(e, "rad", Math.atan2(r[4].value, a[4].value));
4117
+ const u = convertUnit(r, t.value);
4118
+ if (!twoOfSameNumeric(r, u)) return -1;
4119
+ return dimensionToCalculation(e, "rad", Math.atan2(r[4].value, u[4].value));
4088
4120
  }
4089
4121
  function solveAbs(e, n, t) {
4090
4122
  const r = n.value;
4091
4123
  if (!isTokenNumeric(r)) return -1;
4124
+ if (Number.isNaN(r[4].value)) return resultToCalculation(e, r, NaN);
4092
4125
  if (!t.rawPercentages && isTokenPercentage(r)) return -1;
4093
4126
  return resultToCalculation(e, r, Math.abs(r[4].value));
4094
4127
  }
4095
- function solveClamp(e, n, r, a, u) {
4096
- if (!isTokenNode(n) || !isTokenNode(r) || !isTokenNode(a)) return -1;
4097
- const o = n.value;
4098
- if (!isTokenNumeric(o)) return -1;
4099
- if (!u.rawPercentages && isTokenPercentage(o)) return -1;
4100
- const i = convertUnit(o, r.value);
4101
- if (!twoOfSameNumeric(o, i)) return -1;
4102
- const l = convertUnit(o, a.value);
4103
- if (!twoOfSameNumeric(o, l)) return -1;
4104
- return resultToCalculation(e, o, Math.max(o[4].value, Math.min(i[4].value, l[4].value)));
4128
+ function solveClamp(e, n, r, u, a) {
4129
+ if (!isTokenNode(n) || !isTokenNode(r) || !isTokenNode(u)) return -1;
4130
+ const i = n.value;
4131
+ if (!isTokenNumeric(i)) return -1;
4132
+ const o = convertUnit(i, r.value);
4133
+ if (!twoOfSameNumeric(i, o)) return -1;
4134
+ const l = convertUnit(i, u.value);
4135
+ if (!twoOfSameNumeric(i, l)) return -1;
4136
+ if (Number.isNaN(i[4].value) || Number.isNaN(o[4].value) || Number.isNaN(l[4].value)) return resultToCalculation(e, i, NaN);
4137
+ if (!a.rawPercentages && isTokenPercentage(i)) return -1;
4138
+ return resultToCalculation(e, i, Math.max(i[4].value, Math.min(o[4].value, l[4].value)));
4105
4139
  }
4106
4140
  function solveCos(e, n) {
4107
4141
  const t = n.value;
@@ -4110,13 +4144,13 @@ function solveCos(e, n) {
4110
4144
  if (isTokenDimension(t)) switch (t[4].unit.toLowerCase()) {
4111
4145
  case "rad": break;
4112
4146
  case "deg":
4113
- r = P.get("rad")(t[4].value);
4147
+ r = M.get("rad")(t[4].value);
4114
4148
  break;
4115
4149
  case "grad":
4116
- r = k.get("rad")(t[4].value);
4150
+ r = T.get("rad")(t[4].value);
4117
4151
  break;
4118
4152
  case "turn":
4119
- r = j.get("rad")(t[4].value);
4153
+ r = R.get("rad")(t[4].value);
4120
4154
  break;
4121
4155
  default: return -1;
4122
4156
  }
@@ -4129,59 +4163,64 @@ function solveExp(e, n) {
4129
4163
  }
4130
4164
  function solveHypot(e, n, r) {
4131
4165
  if (!n.every(isTokenNode)) return -1;
4132
- const a = n[0].value;
4133
- if (!isTokenNumeric(a)) return -1;
4134
- if (!r.rawPercentages && isTokenPercentage(a)) return -1;
4135
- const u = n.map((e) => convertUnit(a, e.value));
4136
- if (!arrayOfSameNumeric(u)) return -1;
4137
- const o = u.map((e) => e[4].value);
4138
- return resultToCalculation(e, a, Math.hypot(...o));
4166
+ const u = n[0].value;
4167
+ if (!isTokenNumeric(u)) return -1;
4168
+ const a = n.map((e) => convertUnit(u, e.value));
4169
+ if (!arrayOfSameNumeric(a)) return -1;
4170
+ if (a.some((e) => Number.isNaN(e[4].value))) return resultToCalculation(e, u, NaN);
4171
+ if (!r.rawPercentages && isTokenPercentage(u)) return -1;
4172
+ const i = a.map((e) => e[4].value);
4173
+ if (i.some(Number.isNaN)) return resultToCalculation(e, u, NaN);
4174
+ return resultToCalculation(e, u, Math.hypot(...i));
4139
4175
  }
4140
4176
  function solveMax(e, n, r) {
4141
4177
  if (!n.every(isTokenNode)) return -1;
4142
- const a = n[0].value;
4143
- if (!isTokenNumeric(a)) return -1;
4144
- if (!r.rawPercentages && isTokenPercentage(a)) return -1;
4145
- const u = n.map((e) => convertUnit(a, e.value));
4146
- if (!arrayOfSameNumeric(u)) return -1;
4147
- const o = u.map((e) => e[4].value);
4148
- return resultToCalculation(e, a, Math.max(...o));
4178
+ const u = n[0].value;
4179
+ if (!isTokenNumeric(u)) return -1;
4180
+ const a = n.map((e) => convertUnit(u, e.value));
4181
+ if (!arrayOfSameNumeric(a)) return -1;
4182
+ if (a.some((e) => Number.isNaN(e[4].value))) return resultToCalculation(e, u, NaN);
4183
+ if (!r.rawPercentages && isTokenPercentage(u)) return -1;
4184
+ const i = a.map((e) => e[4].value);
4185
+ return resultToCalculation(e, u, Math.max(...i));
4149
4186
  }
4150
4187
  function solveMin(e, n, r) {
4151
4188
  if (!n.every(isTokenNode)) return -1;
4152
- const a = n[0].value;
4153
- if (!isTokenNumeric(a)) return -1;
4154
- if (!r.rawPercentages && isTokenPercentage(a)) return -1;
4155
- const u = n.map((e) => convertUnit(a, e.value));
4156
- if (!arrayOfSameNumeric(u)) return -1;
4157
- const o = u.map((e) => e[4].value);
4158
- return resultToCalculation(e, a, Math.min(...o));
4189
+ const u = n[0].value;
4190
+ if (!isTokenNumeric(u)) return -1;
4191
+ const a = n.map((e) => convertUnit(u, e.value));
4192
+ if (!arrayOfSameNumeric(a)) return -1;
4193
+ if (a.some((e) => Number.isNaN(e[4].value))) return resultToCalculation(e, u, NaN);
4194
+ if (!r.rawPercentages && isTokenPercentage(u)) return -1;
4195
+ const i = a.map((e) => e[4].value);
4196
+ return resultToCalculation(e, u, Math.min(...i));
4159
4197
  }
4160
4198
  function solveMod(e, n, t) {
4161
4199
  const r = n.value;
4162
4200
  if (!isTokenNumeric(r)) return -1;
4163
- const a = convertUnit(r, t.value);
4164
- if (!twoOfSameNumeric(r, a)) return -1;
4165
- let u;
4166
- return u = 0 === a[4].value ? NaN : Number.isFinite(r[4].value) && (Number.isFinite(a[4].value) || (a[4].value !== Number.POSITIVE_INFINITY || r[4].value !== Number.NEGATIVE_INFINITY && !Object.is(0 * r[4].value, -0)) && (a[4].value !== Number.NEGATIVE_INFINITY || r[4].value !== Number.POSITIVE_INFINITY && !Object.is(0 * r[4].value, 0))) ? Number.isFinite(a[4].value) ? (r[4].value % a[4].value + a[4].value) % a[4].value : r[4].value : NaN, resultToCalculation(e, r, u);
4201
+ const u = convertUnit(r, t.value);
4202
+ if (!twoOfSameNumeric(r, u)) return -1;
4203
+ let a;
4204
+ return a = Number.isNaN(r[4].value) || Number.isNaN(u[4].value) || 0 === u[4].value ? NaN : Number.isFinite(r[4].value) && (Number.isFinite(u[4].value) || (u[4].value !== Number.POSITIVE_INFINITY || r[4].value !== Number.NEGATIVE_INFINITY && !Object.is(0 * r[4].value, -0)) && (u[4].value !== Number.NEGATIVE_INFINITY || r[4].value !== Number.POSITIVE_INFINITY && !Object.is(0 * r[4].value, 0))) ? Number.isFinite(u[4].value) ? (r[4].value % u[4].value + u[4].value) % u[4].value : r[4].value : NaN, resultToCalculation(e, r, a);
4167
4205
  }
4168
4206
  function solvePow(e, n, t) {
4169
- const r = n.value, a = t.value;
4207
+ const r = n.value, u = t.value;
4170
4208
  if (!isTokenNumber(r)) return -1;
4171
- if (!twoOfSameNumeric(r, a)) return -1;
4172
- return numberToCalculation(e, Math.pow(r[4].value, a[4].value));
4209
+ if (!twoOfSameNumeric(r, u)) return -1;
4210
+ if (Number.isNaN(r[4].value) || Number.isNaN(u[4].value)) return numberToCalculation(e, NaN);
4211
+ return numberToCalculation(e, Math.pow(r[4].value, u[4].value));
4173
4212
  }
4174
4213
  function solveRem(e, n, t) {
4175
4214
  const r = n.value;
4176
4215
  if (!isTokenNumeric(r)) return -1;
4177
- const a = convertUnit(r, t.value);
4178
- if (!twoOfSameNumeric(r, a)) return -1;
4179
- let u;
4180
- return u = 0 === a[4].value ? NaN : Number.isFinite(r[4].value) ? Number.isFinite(a[4].value) ? r[4].value % a[4].value : r[4].value : NaN, resultToCalculation(e, r, u);
4216
+ const u = convertUnit(r, t.value);
4217
+ if (!twoOfSameNumeric(r, u)) return -1;
4218
+ let a;
4219
+ return a = Number.isNaN(r[4].value) || Number.isNaN(u[4].value) || 0 === u[4].value ? NaN : Number.isFinite(r[4].value) ? Number.isFinite(u[4].value) ? r[4].value % u[4].value : r[4].value : NaN, resultToCalculation(e, r, a);
4181
4220
  }
4182
4221
  function snapAsBorderWidth(e, n, t) {
4183
4222
  if (!isTokenDimension(n)) return -1;
4184
- const r = t.devicePixelLength ?? 1, a = [
4223
+ const r = t.devicePixelLength ?? 1, u = [
4185
4224
  u$1.Dimension,
4186
4225
  `${r}px`,
4187
4226
  n[2],
@@ -4191,67 +4230,69 @@ function snapAsBorderWidth(e, n, t) {
4191
4230
  type: a$1.Integer,
4192
4231
  unit: "px"
4193
4232
  }
4194
- ], u = convertUnit(a, n);
4195
- if (!twoOfSameNumeric(u, a)) return -1;
4196
- if (Number.isInteger(u[4].value / r)) return resultToCalculation(e, n, n[4].value);
4197
- if (u[4].value > 0) {
4198
- if (u[4].value < r) return resultToCalculation(e, n, convertUnit(n, a)[4].value);
4199
- const t = Math.floor(u[4].value / a[4].value) * a[4].value;
4200
- return u[4].value = t, resultToCalculation(e, n, convertUnit(n, u)[4].value);
4233
+ ], a = convertUnit(u, n);
4234
+ if (!twoOfSameNumeric(a, u)) return -1;
4235
+ if (Number.isInteger(a[4].value / r)) return resultToCalculation(e, n, n[4].value);
4236
+ if (a[4].value > 0) {
4237
+ if (a[4].value < r) return resultToCalculation(e, n, convertUnit(n, u)[4].value);
4238
+ const t = Math.floor(a[4].value / u[4].value) * u[4].value;
4239
+ return a[4].value = t, resultToCalculation(e, n, convertUnit(n, a)[4].value);
4201
4240
  }
4202
- if (Math.abs(u[4].value) < r) return resultToCalculation(e, n, -1 * convertUnit(n, a)[4].value);
4203
- const o = Math.ceil(u[4].value / a[4].value) * a[4].value;
4204
- return u[4].value = o, resultToCalculation(e, n, convertUnit(n, u)[4].value);
4241
+ if (Math.abs(a[4].value) < r) return resultToCalculation(e, n, -1 * convertUnit(n, u)[4].value);
4242
+ const i = Math.ceil(a[4].value / u[4].value) * u[4].value;
4243
+ return a[4].value = i, resultToCalculation(e, n, convertUnit(n, a)[4].value);
4205
4244
  }
4206
- function solveRound(e, n, t, r, a) {
4207
- const u = t.value;
4208
- if (!isTokenNumeric(u)) return -1;
4209
- if ("line-width" === n && !isTokenDimension(u)) return -1;
4210
- if (!a.rawPercentages && isTokenPercentage(u)) return -1;
4211
- const o = convertUnit(u, r.value);
4212
- if (!twoOfSameNumeric(u, o)) return -1;
4213
- let i;
4214
- if (0 === o[4].value) i = NaN;
4215
- else if (Number.isFinite(u[4].value) || Number.isFinite(o[4].value)) if (!Number.isFinite(u[4].value) && Number.isFinite(o[4].value)) i = u[4].value;
4216
- else if (Number.isFinite(u[4].value) && !Number.isFinite(o[4].value)) switch (n) {
4245
+ function solveRound(e, n, t, r, u) {
4246
+ const a = t.value;
4247
+ if (!isTokenNumeric(a)) return -1;
4248
+ if ("line-width" === n && !isTokenDimension(a)) return -1;
4249
+ const i = convertUnit(a, r.value);
4250
+ if (!twoOfSameNumeric(a, i)) return -1;
4251
+ if (Number.isNaN(a[4].value) || Number.isNaN(i[4].value)) return resultToCalculation(e, a, NaN);
4252
+ if (!u.rawPercentages && isTokenPercentage(a)) return -1;
4253
+ let o;
4254
+ if (0 === i[4].value) o = NaN;
4255
+ else if (Number.isFinite(a[4].value) || Number.isFinite(i[4].value)) if (!Number.isFinite(a[4].value) && Number.isFinite(i[4].value)) o = a[4].value;
4256
+ else if (Number.isFinite(a[4].value) && !Number.isFinite(i[4].value)) switch (n) {
4217
4257
  case "down":
4218
- i = u[4].value < 0 ? -1 / 0 : Object.is(-0, 0 * u[4].value) ? -0 : 0;
4258
+ o = a[4].value < 0 ? -1 / 0 : Object.is(-0, 0 * a[4].value) ? -0 : 0;
4219
4259
  break;
4220
4260
  case "up":
4221
- i = u[4].value > 0 ? 1 / 0 : Object.is(0, 0 * u[4].value) ? 0 : -0;
4261
+ o = a[4].value > 0 ? 1 / 0 : Object.is(0, 0 * a[4].value) ? 0 : -0;
4222
4262
  break;
4223
- default: i = Object.is(0, 0 * u[4].value) ? 0 : -0;
4263
+ default: o = Object.is(0, 0 * a[4].value) ? 0 : -0;
4224
4264
  }
4225
4265
  else switch (n) {
4226
4266
  case "down":
4227
- i = Math.floor(u[4].value / o[4].value) * o[4].value;
4267
+ o = (i[4].value > 0 ? Math.floor : Math.ceil)(a[4].value / i[4].value) * i[4].value;
4228
4268
  break;
4229
4269
  case "up":
4230
- i = Math.ceil(u[4].value / o[4].value) * o[4].value;
4270
+ o = (i[4].value > 0 ? Math.ceil : Math.floor)(a[4].value / i[4].value) * i[4].value;
4231
4271
  break;
4232
4272
  case "to-zero":
4233
- i = Math.trunc(u[4].value / o[4].value) * o[4].value;
4273
+ o = Math.trunc(a[4].value / i[4].value) * i[4].value;
4234
4274
  break;
4235
4275
  default: {
4236
- let t = Math.floor(u[4].value / o[4].value) * o[4].value, r = Math.ceil(u[4].value / o[4].value) * o[4].value;
4276
+ let t = Math.floor(a[4].value / i[4].value) * i[4].value, r = Math.ceil(a[4].value / i[4].value) * i[4].value;
4237
4277
  if (t > r) {
4238
4278
  const e = t;
4239
4279
  t = r, r = e;
4240
4280
  }
4241
- const l = Math.abs(u[4].value - t), c = Math.abs(u[4].value - r);
4242
- if (i = "line-width" === n && u[4].value >= 0 && (0 === r || 0 === t) ? 0 !== r ? r : t : l === c ? r : l < c ? t : r, "line-width" === n) {
4243
- const n = solve(resultToCalculation(e, u, i), a);
4244
- return -1 === n ? -1 : snapAsBorderWidth(e, n.value, a);
4281
+ const l = Math.abs(a[4].value - t), c = Math.abs(a[4].value - r);
4282
+ if (o = "line-width" !== n || 0 !== r && 0 !== t ? l === c ? r : l < c ? t : r : 0 !== r ? r : t, "line-width" === n) {
4283
+ const n = solve(resultToCalculation(e, a, o), u);
4284
+ return -1 === n ? -1 : snapAsBorderWidth(e, n.value, u);
4245
4285
  }
4246
4286
  break;
4247
4287
  }
4248
4288
  }
4249
- else i = NaN;
4250
- return resultToCalculation(e, u, i);
4289
+ else o = NaN;
4290
+ return resultToCalculation(e, a, o);
4251
4291
  }
4252
4292
  function solveSign(e, n, t) {
4253
4293
  const r = n.value;
4254
4294
  if (!isTokenNumeric(r)) return -1;
4295
+ if (Number.isNaN(r[4].value)) return numberToCalculation(e, NaN);
4255
4296
  if (!t.rawPercentages && isTokenPercentage(r)) return -1;
4256
4297
  return numberToCalculation(e, Math.sign(r[4].value));
4257
4298
  }
@@ -4262,13 +4303,13 @@ function solveSin(e, n) {
4262
4303
  if (isTokenDimension(t)) switch (toLowerCaseAZ$1(t[4].unit)) {
4263
4304
  case "rad": break;
4264
4305
  case "deg":
4265
- r = P.get("rad")(t[4].value);
4306
+ r = M.get("rad")(t[4].value);
4266
4307
  break;
4267
4308
  case "grad":
4268
- r = k.get("rad")(t[4].value);
4309
+ r = T.get("rad")(t[4].value);
4269
4310
  break;
4270
4311
  case "turn":
4271
- r = j.get("rad")(t[4].value);
4312
+ r = R.get("rad")(t[4].value);
4272
4313
  break;
4273
4314
  default: return -1;
4274
4315
  }
@@ -4283,154 +4324,165 @@ function solveTan(e, n) {
4283
4324
  const t = n.value;
4284
4325
  if (!isDimensionOrNumber(t)) return -1;
4285
4326
  const r = t[4].value;
4286
- let a = 0, u = t[4].value;
4327
+ let u = 0, a = t[4].value;
4287
4328
  if (isTokenDimension(t)) switch (toLowerCaseAZ$1(t[4].unit)) {
4288
4329
  case "rad":
4289
- a = G.get("deg")(r);
4330
+ u = z.get("deg")(r);
4290
4331
  break;
4291
4332
  case "deg":
4292
- a = r, u = P.get("rad")(r);
4333
+ u = r, a = M.get("rad")(r);
4293
4334
  break;
4294
4335
  case "grad":
4295
- a = k.get("deg")(r), u = k.get("rad")(r);
4336
+ u = T.get("deg")(r), a = T.get("rad")(r);
4296
4337
  break;
4297
4338
  case "turn":
4298
- a = j.get("deg")(r), u = j.get("rad")(r);
4339
+ u = R.get("deg")(r), a = R.get("rad")(r);
4299
4340
  break;
4300
4341
  default: return -1;
4301
4342
  }
4302
- const o = a / 90;
4303
- return u = a % 90 == 0 && o % 2 != 0 ? o > 0 ? 1 / 0 : -1 / 0 : Math.tan(u), numberToCalculation(e, u);
4343
+ const i = u / 90;
4344
+ return a = u % 90 == 0 && i % 2 != 0 ? (i % 4 + 4) % 4 == 1 ? 1 / 0 : -1 / 0 : Math.tan(a), numberToCalculation(e, a);
4304
4345
  }
4305
4346
  function subtraction(e, t) {
4306
4347
  if (2 !== e.length) return -1;
4307
4348
  const r = e[0].value;
4308
- let a = e[1].value;
4309
- if (isTokenNumber(r) && isTokenNumber(a)) {
4310
- const e = r[4].value - a[4].value;
4349
+ let u = e[1].value;
4350
+ if (isTokenNumber(r) && isTokenNumber(u)) {
4351
+ const e = r[4].value - u[4].value;
4311
4352
  return new TokenNode([
4312
4353
  u$1.Number,
4313
4354
  e.toString(),
4314
4355
  r[2],
4315
- a[3],
4356
+ u[3],
4316
4357
  {
4317
4358
  value: e,
4318
- type: r[4].type === a$1.Integer && a[4].type === a$1.Integer ? a$1.Integer : a$1.Number
4359
+ type: r[4].type === a$1.Integer && u[4].type === a$1.Integer ? a$1.Integer : a$1.Number
4319
4360
  }
4320
4361
  ]);
4321
4362
  }
4322
- if (isTokenPercentage(r) && isTokenPercentage(a)) {
4323
- const e = r[4].value - a[4].value;
4363
+ if (isTokenPercentage(r) && isTokenPercentage(u)) {
4364
+ const e = r[4].value - u[4].value;
4324
4365
  return new TokenNode([
4325
4366
  u$1.Percentage,
4326
4367
  e.toString() + "%",
4327
4368
  r[2],
4328
- a[3],
4369
+ u[3],
4329
4370
  { value: e }
4330
4371
  ]);
4331
4372
  }
4332
- if (isTokenDimension(r) && isTokenDimension(a) && (a = convertUnit(r, a), toLowerCaseAZ$1(r[4].unit) === toLowerCaseAZ$1(a[4].unit))) {
4333
- const e = r[4].value - a[4].value;
4373
+ if (isTokenDimension(r) && isTokenDimension(u) && (u = convertUnit(r, u), toLowerCaseAZ$1(r[4].unit) === toLowerCaseAZ$1(u[4].unit))) {
4374
+ const e = r[4].value - u[4].value;
4334
4375
  return new TokenNode([
4335
4376
  u$1.Dimension,
4336
4377
  e.toString() + r[4].unit,
4337
4378
  r[2],
4338
- a[3],
4379
+ u[3],
4339
4380
  {
4340
4381
  value: e,
4341
- type: r[4].type === a$1.Integer && a[4].type === a$1.Integer ? a$1.Integer : a$1.Number,
4382
+ type: r[4].type === a$1.Integer && u[4].type === a$1.Integer ? a$1.Integer : a$1.Number,
4342
4383
  unit: r[4].unit
4343
4384
  }
4344
4385
  ]);
4345
4386
  }
4346
- return (isTokenNumber(r) && (isTokenDimension(a) || isTokenPercentage(a)) || isTokenNumber(a) && (isTokenDimension(r) || isTokenPercentage(r))) && t.onParseError?.(new ParseErrorWithComponentValues(I.UnexpectedSubtractionOfDimensionOrPercentageWithNumber, e)), -1;
4387
+ return (isTokenNumber(r) && (isTokenDimension(u) || isTokenPercentage(u)) || isTokenNumber(u) && (isTokenDimension(r) || isTokenPercentage(r))) && t.onParseError?.(new ParseErrorWithComponentValues(S.UnexpectedSubtractionOfDimensionOrPercentageWithNumber, e)), -1;
4347
4388
  }
4348
4389
  function solveLog(e, n) {
4349
4390
  if (1 === n.length) {
4350
4391
  const r = n[0];
4351
4392
  if (!r || !isTokenNode(r)) return -1;
4352
- const a = r.value;
4353
- if (!isTokenNumber(a)) return -1;
4354
- return numberToCalculation(e, Math.log(a[4].value));
4393
+ const u = r.value;
4394
+ if (!isTokenNumber(u)) return -1;
4395
+ return numberToCalculation(e, Math.log(u[4].value));
4355
4396
  }
4356
4397
  if (2 === n.length) {
4357
4398
  const r = n[0];
4358
4399
  if (!r || !isTokenNode(r)) return -1;
4359
- const a = r.value;
4360
- if (!isTokenNumber(a)) return -1;
4361
- const u = n[1];
4362
- if (!u || !isTokenNode(u)) return -1;
4363
- const o = u.value;
4364
- if (!isTokenNumber(o)) return -1;
4365
- return numberToCalculation(e, Math.log(a[4].value) / Math.log(o[4].value));
4400
+ const u = r.value;
4401
+ if (!isTokenNumber(u)) return -1;
4402
+ const a = n[1];
4403
+ if (!a || !isTokenNode(a)) return -1;
4404
+ const i = a.value;
4405
+ if (!isTokenNumber(i)) return -1;
4406
+ if (Number.isNaN(u[4].value) || Number.isNaN(i[4].value)) return numberToCalculation(e, NaN);
4407
+ if (1 === i[4].value || i[4].value <= 0) return numberToCalculation(e, NaN);
4408
+ if (1 === u[4].value) return numberToCalculation(e, 0);
4409
+ return numberToCalculation(e, Math.log(u[4].value) / Math.log(i[4].value));
4366
4410
  }
4367
4411
  return -1;
4368
4412
  }
4369
- const _ = /^none$/i;
4413
+ const j = /^none$/i;
4370
4414
  function isNone(e) {
4371
4415
  if (Array.isArray(e)) {
4372
- const n = e.filter((e) => !(isWhitespaceNode(e) && isCommentNode(e)));
4416
+ const n = e.filter((e) => !isWhiteSpaceOrCommentNode(e));
4373
4417
  return 1 === n.length && isNone(n[0]);
4374
4418
  }
4375
4419
  if (!isTokenNode(e)) return !1;
4376
4420
  const n = e.value;
4377
- return !!isTokenIdent(n) && _.test(n[4].value);
4378
- }
4379
- const H = String.fromCodePoint(0);
4380
- function solveRandom(e, n, t, r, a, u) {
4381
- if (-1 === n.fixed && !u.randomCaching) return -1;
4382
- u.randomCaching || (u.randomCaching = {
4383
- propertyName: "",
4384
- propertyN: 0,
4385
- elementID: "",
4386
- documentID: ""
4387
- }), u.randomCaching && !u.randomCaching.propertyN && (u.randomCaching.propertyN = 0);
4388
- const o = t.value;
4389
- if (!isTokenNumeric(o)) return -1;
4390
- const i = convertUnit(o, r.value);
4391
- if (!twoOfSameNumeric(o, i)) return -1;
4421
+ return !!isTokenIdent(n) && j.test(n[4].value);
4422
+ }
4423
+ function patchPrecision(e, n = 13) {
4424
+ if (-1 === e) return -1;
4425
+ if (n <= 0) return e;
4426
+ if (isFunctionNode(e)) return e;
4427
+ const t = e.value;
4428
+ if (!isTokenNumeric(t)) return e;
4429
+ if (shouldSkipPrecisionRounding(t[4].value)) return e;
4430
+ const r = roundToPrecision(t[4].value, n).toString();
4431
+ return isTokenNumber(t) ? t[1] = r : isTokenPercentage(t) ? t[1] = r + "%" : isTokenDimension(t) && (t[1] = r + t[4].unit), e;
4432
+ }
4433
+ function shouldSkipPrecisionRounding(e) {
4434
+ if (!Number.isFinite(e) || 0 === e) return !0;
4435
+ if (Number.isInteger(e)) return !0;
4436
+ const n = e.toString();
4437
+ return n.includes("e") || n.includes("E");
4438
+ }
4439
+ function roundToPrecision(e, n = 13) {
4440
+ return shouldSkipPrecisionRounding(e) ? e : Number(e.toFixed(n));
4441
+ }
4442
+ const Y = String.fromCodePoint(0);
4443
+ function solveRandom(e, n, t, r, u, a) {
4444
+ if (-1 === n.fixed && !a.randomCaching) return -1;
4445
+ const i = t.value;
4446
+ if (!isTokenNumeric(i)) return -1;
4447
+ const o = convertUnit(i, r.value);
4448
+ if (!twoOfSameNumeric(i, o)) return -1;
4392
4449
  let l = null;
4393
- if (a && (l = convertUnit(o, a.value), !twoOfSameNumeric(o, l))) return -1;
4394
- if (!Number.isFinite(o[4].value)) return resultToCalculation(e, o, NaN);
4395
- if (!Number.isFinite(i[4].value)) return resultToCalculation(e, o, NaN);
4396
- if (!Number.isFinite(i[4].value - o[4].value)) return resultToCalculation(e, o, NaN);
4397
- if (l && !Number.isFinite(l[4].value)) return resultToCalculation(e, o, o[4].value);
4398
- const c = -1 === n.fixed ? sfc32(crc32([
4450
+ if (u && (l = convertUnit(i, u.value), !twoOfSameNumeric(i, l))) return -1;
4451
+ if (Number.isNaN(i[4].value) || Number.isNaN(o[4].value)) return resultToCalculation(e, i, NaN);
4452
+ if (!Number.isFinite(i[4].value)) return resultToCalculation(e, i, i[4].value);
4453
+ if (!Number.isFinite(o[4].value) || !Number.isFinite(o[4].value - i[4].value)) return resultToCalculation(e, i, NaN);
4454
+ if (l) {
4455
+ if (Number.isNaN(l[4].value)) return resultToCalculation(e, i, NaN);
4456
+ if (!Number.isFinite(l[4].value)) return resultToCalculation(e, i, i[4].value);
4457
+ }
4458
+ const c = -1 !== n.fixed ? () => n.fixed : (a.randomCaching.propertyN || (a.randomCaching.propertyN = 0), sfc32(crc32([
4399
4459
  n.dashedIdent ? n.dashedIdent : "",
4400
- n.elementScoped ? u.randomCaching.elementID : "",
4401
- n.propertyScoped || n.propertyIndexScoped ? u.randomCaching.propertyName : "",
4402
- n.propertyIndexScoped ? u.randomCaching.propertyN : "",
4403
- u.randomCaching.documentID
4404
- ].join(H))) : () => n.fixed;
4405
- let s = o[4].value, v = i[4].value;
4406
- if (s > v && ([s, v] = [v, s]), l && (l[4].value <= 0 || Math.abs(s - v) / l[4].value > 1e10) && (l = null), l) {
4407
- const n = Math.max(l[4].value / 1e3, 1e-9), t = [s];
4408
- let r = 0;
4409
- for (;;) {
4410
- r += l[4].value;
4411
- const e = s + r;
4412
- if (!(e + n < v)) {
4413
- t.push(v);
4414
- break;
4415
- }
4416
- if (t.push(e), e + l[4].value - n > v) break;
4417
- }
4418
- const a = c();
4419
- return resultToCalculation(e, o, Number(t[Math.floor(t.length * a)].toFixed(5)));
4420
- }
4421
- const f = c();
4422
- return resultToCalculation(e, o, Number((f * (v - s) + s).toFixed(5)));
4460
+ n.elementScoped ? a.randomCaching.elementID : "",
4461
+ n.propertyScoped || n.propertyIndexScoped ? a.randomCaching.propertyName : "",
4462
+ n.propertyIndexScoped ? a.randomCaching.propertyN : "",
4463
+ a.randomCaching.documentID
4464
+ ].join(Y)))), s = i[4].value;
4465
+ let v = o[4].value;
4466
+ if (v < s && (v = s), l && (l[4].value <= 0 || Math.abs(s - v) / l[4].value > 1e10) && (l = null), l) {
4467
+ const n = l[4].value, t = Math.max(n / 1e3, 1e-9);
4468
+ let r = Math.floor((v - s) / n);
4469
+ Math.abs(s + r * n - v) >= t && Math.abs(s + (r + 1) * n - v) < t && (r += 1);
4470
+ const u = Math.floor(c() * (r + 1));
4471
+ let a = s + u * n;
4472
+ return u === r && Math.abs(a - v) < t && (a = v), resultToCalculation(e, i, roundToPrecision(a, 5));
4473
+ }
4474
+ return resultToCalculation(e, i, roundToPrecision(c() * (v - s) + s, 5));
4423
4475
  }
4424
4476
  function sfc32(e = .34944106645296036, n = .19228640875738723, t = .8784393832007205, r = .04850964319275053) {
4425
4477
  return () => {
4426
- const a = ((e |= 0) + (n |= 0) | 0) + (r |= 0) | 0;
4427
- return r = r + 1 | 0, e = n ^ n >>> 9, n = (t |= 0) + (t << 3) | 0, t = (t = t << 21 | t >>> 11) + a | 0, (a >>> 0) / 4294967296;
4478
+ const u = ((e |= 0) + (n |= 0) | 0) + (r |= 0) | 0;
4479
+ return r = r + 1 | 0, e = n ^ n >>> 9, n = (t |= 0) + (t << 3) | 0, t = (t = t << 21 | t >>> 11) + u | 0, (u >>> 0) / 4294967296;
4428
4480
  };
4429
4481
  }
4430
4482
  function crc32(e) {
4431
4483
  let n, t, r = 0;
4432
4484
  r ^= -1;
4433
- for (let a = 0, u = e.length; a < u; a++) t = 255 & (r ^ e.charCodeAt(a)), n = Number("0x" + "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D".substring(9 * t, 9 * t + 8)), r = r >>> 8 ^ n;
4485
+ for (let u = 0, a = e.length; u < a; u++) t = 255 & (r ^ e.charCodeAt(u)), n = Number("0x" + "00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D".substring(9 * t, 9 * t + 8)), r = r >>> 8 ^ n;
4434
4486
  return (-1 ^ r) >>> 0;
4435
4487
  }
4436
4488
  function solveCalcMix(e, n) {
@@ -4441,27 +4493,27 @@ function solveCalcMix(e, n) {
4441
4493
  percentage: e.percentage
4442
4494
  }));
4443
4495
  if (!arrayOfSameNumeric(r.map((e) => e.calcSum))) return -1;
4444
- const { items: a } = normalizeMixPercentages$1(r, !1), u = a.map((e) => e.calcSum[4].value * e.percentage / 100);
4445
- let o = 0;
4446
- for (let e = 0; e < u.length; e++) o += u[e];
4447
- return resultToCalculation(e, t, o);
4496
+ const { items: u } = normalizeMixPercentages$1(r, !1), a = u.map((e) => e.calcSum[4].value * e.percentage / 100);
4497
+ let i = 0;
4498
+ for (let e = 0; e < a.length; e++) i += a[e];
4499
+ return resultToCalculation(e, t, i);
4448
4500
  }
4449
4501
  function normalizeMixPercentages$1(e, n = !1) {
4450
4502
  let t = 0, r = 0;
4451
4503
  for (const n of e) n.percentage && (t += n.percentage), !1 === n.percentage && r++;
4452
4504
  t = Math.min(100, t);
4453
4505
  for (const n of e) !1 === n.percentage && (n.percentage = (100 - t) / r);
4454
- const a = e.slice();
4455
- let u = 0;
4456
- for (const e of a) u += e.percentage;
4457
- if (u > 100 || u > 0 && n) for (const e of a) e.percentage = e.percentage * (100 / u);
4458
- let o = 0;
4459
- return u < 100 && (o = 100 - u), {
4460
- items: a,
4461
- leftover: o
4506
+ const u = e.slice();
4507
+ let a = 0;
4508
+ for (const e of u) a += e.percentage;
4509
+ if (a > 100 || a > 0 && n) for (const e of u) e.percentage = e.percentage * (100 / a);
4510
+ let i = 0;
4511
+ return a < 100 && (i = 100 - a), {
4512
+ items: u,
4513
+ leftover: i
4462
4514
  };
4463
4515
  }
4464
- const J = /* @__PURE__ */ new Map([
4516
+ const _ = /* @__PURE__ */ new Map([
4465
4517
  ["abs", function abs(e, n, t) {
4466
4518
  return singleNodeSolver(e, n, t, solveAbs);
4467
4519
  }],
@@ -4483,16 +4535,16 @@ const J = /* @__PURE__ */ new Map([
4483
4535
  if (-1 === r) return -1;
4484
4536
  return solveCalcMix(e, r);
4485
4537
  }],
4486
- ["clamp", function clamp(r, a, o) {
4487
- const i = resolveGlobalsAndConstants([...r.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], a), c = [], s = [], v = [];
4538
+ ["clamp", function clamp(u, a, o) {
4539
+ const l = resolveGlobalsAndConstants([...u.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], a), c = [], s = [], f = [];
4488
4540
  {
4489
4541
  let e = c;
4490
- for (let n = 0; n < i.length; n++) {
4491
- const r = i[n];
4542
+ for (let n = 0; n < l.length; n++) {
4543
+ const r = l[n];
4492
4544
  if (isTokenNode(r) && isTokenComma(r.value)) {
4493
- if (e === v) return -1;
4545
+ if (e === f) return -1;
4494
4546
  if (e === s) {
4495
- e = v;
4547
+ e = f;
4496
4548
  continue;
4497
4549
  }
4498
4550
  if (e === c) {
@@ -4504,45 +4556,45 @@ const J = /* @__PURE__ */ new Map([
4504
4556
  e.push(r);
4505
4557
  }
4506
4558
  }
4507
- const f = isNone(c), m = isNone(v);
4508
- if (f && m) return calc$1(calcWrapper(r, s), a, o);
4509
- const d = solve(calc$1(calcWrapper(r, s), a, o), o);
4559
+ const p = isNone(c), m = isNone(f);
4560
+ if (p && m) return calc$1(calcWrapper(u, s), a, o);
4561
+ const d = solve(calc$1(calcWrapper(u, s), a, o), o);
4510
4562
  if (-1 === d) return -1;
4511
- if (f) {
4512
- const t = solve(calc$1(calcWrapper(r, v), a, o), o);
4513
- return -1 === t ? -1 : solveMin((C = r, g = d, D = t, new FunctionNode([
4563
+ if (p) {
4564
+ const t = solve(calc$1(calcWrapper(u, f), a, o), o);
4565
+ return -1 === t ? -1 : solveMin((N = u, C = d, g = t, new FunctionNode([
4514
4566
  u$1.Function,
4515
4567
  "min(",
4516
- C.name[2],
4517
- C.name[3],
4568
+ N.name[2],
4569
+ N.name[3],
4518
4570
  { value: "min" }
4519
4571
  ], [
4520
4572
  u$1.CloseParen,
4521
4573
  ")",
4522
- C.endToken[2],
4523
- C.endToken[3],
4574
+ N.endToken[2],
4575
+ N.endToken[3],
4524
4576
  void 0
4525
4577
  ], [
4526
- g,
4578
+ C,
4527
4579
  new TokenNode([
4528
4580
  u$1.Comma,
4529
4581
  ",",
4530
- ...sourceIndices(g),
4582
+ ...sourceIndices(C),
4531
4583
  void 0
4532
4584
  ]),
4533
- D
4585
+ g
4534
4586
  ])), [d, t], o);
4535
4587
  }
4536
4588
  if (m) {
4537
- const e = solve(calc$1(calcWrapper(r, c), a, o), o);
4538
- return -1 === e ? -1 : solveMax(maxWrapper(r, e, d), [e, d], o);
4589
+ const e = solve(calc$1(calcWrapper(u, c), a, o), o);
4590
+ return -1 === e ? -1 : solveMax(maxWrapper(u, e, d), [e, d], o);
4539
4591
  }
4540
- var C, g, D;
4541
- const h = solve(calc$1(calcWrapper(r, c), a, o), o);
4592
+ var N, C, g;
4593
+ const h = solve(calc$1(calcWrapper(u, c), a, o), o);
4542
4594
  if (-1 === h) return -1;
4543
- const N = solve(calc$1(calcWrapper(r, v), a, o), o);
4544
- if (-1 === N) return -1;
4545
- return solveClamp(r, h, d, N, o);
4595
+ const b = solve(calc$1(calcWrapper(u, f), a, o), o);
4596
+ if (-1 === b) return -1;
4597
+ return solveClamp(u, h, d, b, o);
4546
4598
  }],
4547
4599
  ["cos", function cos(e, n, t) {
4548
4600
  return singleNodeSolver(e, n, t, solveCos);
@@ -4569,37 +4621,37 @@ const J = /* @__PURE__ */ new Map([
4569
4621
  return twoCommaSeparatedNodesSolver(e, n, t, solvePow);
4570
4622
  }],
4571
4623
  ["random", function random(e, n, t) {
4572
- const r = parseRandomValueSharing(e, e.value.filter((e) => !isWhiteSpaceOrCommentNode(e)), n, t);
4573
- if (-1 === r) return -1;
4574
- const [a, o] = r, i = variadicArguments(e, o, n, t);
4575
- if (-1 === i) return -1;
4576
- const [l, c, s] = i;
4624
+ const u = parseRandomValueSharing(e, e.value.filter((e) => !isWhiteSpaceOrCommentNode(e)), n, t);
4625
+ if (-1 === u) return -1;
4626
+ const [a, i] = u, o = variadicArguments(e, i, n, t);
4627
+ if (-1 === o) return -1;
4628
+ const [l, c, s] = o;
4577
4629
  if (!l || !c) return -1;
4578
4630
  return solveRandom(e, a, l, c, s, t);
4579
4631
  }],
4580
4632
  ["rem", function rem(e, n, t) {
4581
4633
  return twoCommaSeparatedNodesSolver(e, n, t, solveRem);
4582
4634
  }],
4583
- ["round", function round(e, r, a) {
4584
- const o = resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], r);
4585
- let i = "", l = !1;
4586
- const c = [], s = [];
4635
+ ["round", function round(e, u, a) {
4636
+ const i = resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], u);
4637
+ let o = "", l = !1;
4638
+ const c = [], p = [];
4587
4639
  {
4588
4640
  let e = c;
4589
- for (let n = 0; n < o.length; n++) {
4590
- const r = o[n];
4591
- if (!i && 0 === c.length && 0 === s.length && isTokenNode(r) && isTokenIdent(r.value)) {
4641
+ for (let n = 0; n < i.length; n++) {
4642
+ const r = i[n];
4643
+ if (!o && 0 === c.length && 0 === p.length && isTokenNode(r) && isTokenIdent(r.value)) {
4592
4644
  const e = r.value[4].value.toLowerCase();
4593
- if (K.has(e)) {
4594
- i = e;
4645
+ if (J.has(e)) {
4646
+ o = e;
4595
4647
  continue;
4596
4648
  }
4597
4649
  }
4598
4650
  if (isTokenNode(r) && isTokenComma(r.value)) {
4599
- if (e === s) return -1;
4600
- if (e === c && i && 0 === c.length) continue;
4651
+ if (e === p) return -1;
4652
+ if (e === c && o && 0 === c.length) continue;
4601
4653
  if (e === c) {
4602
- l = !0, e = s;
4654
+ l = !0, e = p;
4603
4655
  continue;
4604
4656
  }
4605
4657
  return -1;
@@ -4607,39 +4659,39 @@ const J = /* @__PURE__ */ new Map([
4607
4659
  e.push(r);
4608
4660
  }
4609
4661
  }
4610
- const v = solve(calc$1(calcWrapper(e, c), r, a), a);
4611
- if (-1 === v) return -1;
4612
- if ("line-width" === i) {
4662
+ const m = solve(calc$1(calcWrapper(e, c), u, a), a);
4663
+ if (-1 === m) return -1;
4664
+ if ("line-width" === o) {
4613
4665
  const e = convertUnit([
4614
4666
  u$1.Dimension,
4615
4667
  "1px",
4616
- v.value[2],
4617
- v.value[3],
4668
+ m.value[2],
4669
+ m.value[3],
4618
4670
  {
4619
4671
  value: 1,
4620
4672
  type: a$1.Integer,
4621
4673
  unit: "px"
4622
4674
  }
4623
- ], v.value);
4675
+ ], m.value);
4624
4676
  if (!isTokenDimension(e) || "px" !== e[4].unit) return -1;
4625
4677
  }
4626
- if (!l && 0 === s.length) {
4627
- if ("line-width" === i) return snapAsBorderWidth(e, v.value, a);
4628
- s.push(new TokenNode([
4678
+ if (!l && 0 === p.length) {
4679
+ if ("line-width" === o) return snapAsBorderWidth(e, m.value, a);
4680
+ p.push(new TokenNode([
4629
4681
  u$1.Number,
4630
4682
  "1",
4631
- v.value[2],
4632
- v.value[3],
4683
+ m.value[2],
4684
+ m.value[3],
4633
4685
  {
4634
4686
  value: 1,
4635
4687
  type: a$1.Integer
4636
4688
  }
4637
4689
  ]));
4638
4690
  }
4639
- const d = solve(calc$1(calcWrapper(e, s), r, a), a);
4691
+ const d = solve(calc$1(calcWrapper(e, p), u, a), a);
4640
4692
  if (-1 === d) return -1;
4641
- i || (i = "nearest");
4642
- return solveRound(e, i, v, d, a);
4693
+ o || (o = "nearest");
4694
+ return solveRound(e, o, m, d, a);
4643
4695
  }],
4644
4696
  ["sign", function sign(e, n, t) {
4645
4697
  return singleNodeSolver(e, n, t, solveSign);
@@ -4654,39 +4706,41 @@ const J = /* @__PURE__ */ new Map([
4654
4706
  return singleNodeSolver(e, n, t, solveTan);
4655
4707
  }]
4656
4708
  ]);
4657
- function calc$1(e, n, r) {
4658
- const a = resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], n);
4659
- if (1 === a.length && isTokenNode(a[0])) return {
4660
- inputs: [a[0]],
4709
+ const H = 5e4;
4710
+ function calc$1(e, n, i) {
4711
+ const o = resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], n);
4712
+ if (o.length > H) throw new Error(`Maximum number of nodes in a math function (${H}) exceeded, reduce the complexity of your expression`);
4713
+ if (1 === o.length && isTokenNode(o[0])) return {
4714
+ inputs: [o[0]],
4661
4715
  operation: unary
4662
4716
  };
4663
4717
  let l = 0;
4664
- for (; l < a.length;) {
4665
- const e = a[l];
4718
+ for (; l < o.length;) {
4719
+ const e = o[l];
4666
4720
  if (isSimpleBlockNode(e) && isTokenOpenParen(e.startToken)) {
4667
- const t = calc$1(e, n, r);
4721
+ const t = calc$1(e, n, i);
4668
4722
  if (-1 === t) return -1;
4669
- a.splice(l, 1, t);
4723
+ o.splice(l, 1, t);
4670
4724
  continue;
4671
4725
  }
4672
4726
  if (isFunctionNode(e)) {
4673
- const t = J.get(e.getName().toLowerCase());
4727
+ const t = _.get(e.getName().toLowerCase());
4674
4728
  if (!t) return -1;
4675
- const u = t(e, n, r);
4676
- if (-1 === u) return -1;
4677
- a.splice(l, 1, u);
4729
+ const r = t(e, n, i);
4730
+ if (-1 === r) return -1;
4731
+ o.splice(l, 1, r);
4678
4732
  continue;
4679
4733
  }
4680
4734
  l++;
4681
4735
  }
4682
- if (l = 0, 1 === a.length && isCalculation(a[0])) return a[0];
4683
- for (; l < a.length;) {
4684
- const e = a[l];
4736
+ if (l = 0, 1 === o.length && isCalculation(o[0])) return o[0];
4737
+ for (; l < o.length;) {
4738
+ const e = o[l];
4685
4739
  if (!e || !isTokenNode(e) && !isCalculation(e)) {
4686
4740
  l++;
4687
4741
  continue;
4688
4742
  }
4689
- const n = a[l + 1];
4743
+ const n = o[l + 1];
4690
4744
  if (!n || !isTokenNode(n)) {
4691
4745
  l++;
4692
4746
  continue;
@@ -4696,24 +4750,24 @@ function calc$1(e, n, r) {
4696
4750
  l++;
4697
4751
  continue;
4698
4752
  }
4699
- const u = a[l + 2];
4753
+ const u = o[l + 2];
4700
4754
  if (!u || !isTokenNode(u) && !isCalculation(u)) return -1;
4701
- "*" !== r[4].value ? "/" !== r[4].value ? l++ : a.splice(l, 3, {
4755
+ "*" !== r[4].value ? "/" !== r[4].value ? l++ : o.splice(l, 3, {
4702
4756
  inputs: [e, u],
4703
4757
  operation: division
4704
- }) : a.splice(l, 3, {
4758
+ }) : o.splice(l, 3, {
4705
4759
  inputs: [e, u],
4706
4760
  operation: multiplication
4707
4761
  });
4708
4762
  }
4709
- if (l = 0, 1 === a.length && isCalculation(a[0])) return a[0];
4710
- for (; l < a.length;) {
4711
- const e = a[l];
4763
+ if (l = 0, 1 === o.length && isCalculation(o[0])) return o[0];
4764
+ for (; l < o.length;) {
4765
+ const e = o[l];
4712
4766
  if (!e || !isTokenNode(e) && !isCalculation(e)) {
4713
4767
  l++;
4714
4768
  continue;
4715
4769
  }
4716
- const n = a[l + 1];
4770
+ const n = o[l + 1];
4717
4771
  if (!n || !isTokenNode(n)) {
4718
4772
  l++;
4719
4773
  continue;
@@ -4723,42 +4777,42 @@ function calc$1(e, n, r) {
4723
4777
  l++;
4724
4778
  continue;
4725
4779
  }
4726
- const u = a[l + 2];
4780
+ const u = o[l + 2];
4727
4781
  if (!u || !isTokenNode(u) && !isCalculation(u)) return -1;
4728
- "+" !== r[4].value ? "-" !== r[4].value ? l++ : a.splice(l, 3, {
4782
+ "+" !== r[4].value ? "-" !== r[4].value ? l++ : o.splice(l, 3, {
4729
4783
  inputs: [e, u],
4730
4784
  operation: subtraction
4731
- }) : a.splice(l, 3, {
4785
+ }) : o.splice(l, 3, {
4732
4786
  inputs: [e, u],
4733
4787
  operation: addition
4734
4788
  });
4735
4789
  }
4736
- return 1 === a.length && isCalculation(a[0]) ? a[0] : -1;
4790
+ return 1 === o.length && isCalculation(o[0]) ? o[0] : -1;
4737
4791
  }
4738
4792
  function singleNodeSolver(e, n, t, r) {
4739
- const a = singleArgument(e, n, t);
4740
- return -1 === a ? -1 : r(e, a, t);
4793
+ const u = singleArgument(e, n, t);
4794
+ return -1 === u ? -1 : r(e, u, t);
4741
4795
  }
4742
4796
  function singleArgument(e, n, t) {
4743
4797
  const a = solve(calc$1(calcWrapper(e, resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], n)), n, t), t);
4744
4798
  return -1 === a ? -1 : a;
4745
4799
  }
4746
4800
  function twoCommaSeparatedNodesSolver(e, n, t, r) {
4747
- const a = twoCommaSeparatedArguments(e, n, t);
4748
- if (-1 === a) return -1;
4749
- const [u, o] = a;
4750
- return r(e, u, o, t);
4801
+ const u = twoCommaSeparatedArguments(e, n, t);
4802
+ if (-1 === u) return -1;
4803
+ const [a, i] = u;
4804
+ return r(e, a, i, t);
4751
4805
  }
4752
- function twoCommaSeparatedArguments(e, n, r) {
4753
- const a = resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], n), o = [], i = [];
4806
+ function twoCommaSeparatedArguments(e, n, u) {
4807
+ const a = resolveGlobalsAndConstants([...e.value.filter((e) => !isWhiteSpaceOrCommentNode(e))], n), i = [], o = [];
4754
4808
  {
4755
- let e = o;
4809
+ let e = i;
4756
4810
  for (let n = 0; n < a.length; n++) {
4757
4811
  const r = a[n];
4758
4812
  if (isTokenNode(r) && isTokenComma(r.value)) {
4759
- if (e === i) return -1;
4760
- if (e === o) {
4761
- e = i;
4813
+ if (e === o) return -1;
4814
+ if (e === i) {
4815
+ e = o;
4762
4816
  continue;
4763
4817
  }
4764
4818
  return -1;
@@ -4766,55 +4820,55 @@ function twoCommaSeparatedArguments(e, n, r) {
4766
4820
  e.push(r);
4767
4821
  }
4768
4822
  }
4769
- const l = solve(calc$1(calcWrapper(e, o), n, r), r);
4823
+ const l = solve(calc$1(calcWrapper(e, i), n, u), u);
4770
4824
  if (-1 === l) return -1;
4771
- const c = solve(calc$1(calcWrapper(e, i), n, r), r);
4825
+ const c = solve(calc$1(calcWrapper(e, o), n, u), u);
4772
4826
  return -1 === c ? -1 : [l, c];
4773
4827
  }
4774
4828
  function variadicNodesSolver(e, n, t, r) {
4775
- const a = variadicArguments(e, e.value, n, t);
4776
- return -1 === a ? -1 : r(e, a, t);
4829
+ const u = variadicArguments(e, e.value, n, t);
4830
+ return -1 === u ? -1 : r(e, u, t);
4777
4831
  }
4778
- function variadicArguments(e, n, r, a) {
4779
- const o = resolveGlobalsAndConstants([...n.filter((e) => !isWhiteSpaceOrCommentNode(e))], r), i = [];
4832
+ function variadicArguments(e, n, u, a) {
4833
+ const i = resolveGlobalsAndConstants([...n.filter((e) => !isWhiteSpaceOrCommentNode(e))], u), o = [];
4780
4834
  {
4781
4835
  const n = [];
4782
- let u = [];
4783
- for (let e = 0; e < o.length; e++) {
4784
- const r = o[e];
4785
- isTokenNode(r) && isTokenComma(r.value) ? (n.push(u), u = []) : u.push(r);
4836
+ let r = [];
4837
+ for (let e = 0; e < i.length; e++) {
4838
+ const u = i[e];
4839
+ isTokenNode(u) && isTokenComma(u.value) ? (n.push(r), r = []) : r.push(u);
4786
4840
  }
4787
- n.push(u);
4841
+ n.push(r);
4788
4842
  for (let t = 0; t < n.length; t++) {
4789
4843
  if (0 === n[t].length) return -1;
4790
- const u = solve(calc$1(calcWrapper(e, n[t]), r, a), a);
4791
- if (-1 === u) return -1;
4792
- i.push(u);
4844
+ const r = solve(calc$1(calcWrapper(e, n[t]), u, a), a);
4845
+ if (-1 === r) return -1;
4846
+ o.push(r);
4793
4847
  }
4794
4848
  }
4795
- return i;
4849
+ return o;
4796
4850
  }
4797
- function variadicArgumentsCalcMix(e, n, r, a) {
4798
- const o = resolveGlobalsAndConstants([...n.filter((e) => !isWhiteSpaceOrCommentNode(e))], r), i = [];
4851
+ function variadicArgumentsCalcMix(e, n, u, a) {
4852
+ const i = resolveGlobalsAndConstants([...n.filter((e) => !isWhiteSpaceOrCommentNode(e))], u), o = [];
4799
4853
  {
4800
4854
  const n = [];
4801
4855
  let l = [];
4802
- for (let e = 0; e < o.length; e++) {
4803
- const r = o[e];
4856
+ for (let e = 0; e < i.length; e++) {
4857
+ const r = i[e];
4804
4858
  isTokenNode(r) && isTokenComma(r.value) ? (n.push(l), l = []) : l.push(r);
4805
4859
  }
4806
4860
  n.push(l);
4807
- for (let o = 0; o < n.length; o++) {
4808
- if (0 === n[o].length) return -1;
4861
+ for (let i = 0; i < n.length; i++) {
4862
+ if (0 === n[i].length) return -1;
4809
4863
  let l = -1, c = !1;
4810
- for (let i = n[o].length - 1; i >= 0; i--) {
4811
- if (isWhiteSpaceOrCommentNode(n[o][i])) continue;
4812
- if (l = solve(calc$1(calcWrapper(e, n[o].slice(0, i + 1)), r, a), a), -1 === l) continue;
4813
- const s = n[o].slice(i + 1).filter((e) => !isWhiteSpaceOrCommentNode(e));
4864
+ for (let o = n[i].length - 1; o >= 0; o--) {
4865
+ if (isWhiteSpaceOrCommentNode(n[i][o])) continue;
4866
+ if (l = solve(calc$1(calcWrapper(e, n[i].slice(0, o + 1)), u, a), a), -1 === l) continue;
4867
+ const s = n[i].slice(o + 1).filter((e) => !isWhiteSpaceOrCommentNode(e));
4814
4868
  if (s.length) if (1 === s.length && isTokenNode(s[0]) && isTokenPercentage(s[0].value)) {
4815
4869
  if (c = s[0].value[4].value, c < 0 || c > 100) return -1;
4816
4870
  } else {
4817
- const n = solve(calc$1(calcWrapper(e, s), r, a), a);
4871
+ const n = solve(calc$1(calcWrapper(e, s), u, a), a);
4818
4872
  if (-1 === n) return -1;
4819
4873
  if (!isTokenPercentage(n.value)) return -1;
4820
4874
  c = n.value[4].value, c = Math.min(100, Math.max(0, c));
@@ -4822,70 +4876,70 @@ function variadicArgumentsCalcMix(e, n, r, a) {
4822
4876
  break;
4823
4877
  }
4824
4878
  if (-1 === l) return -1;
4825
- i.push({
4879
+ o.push({
4826
4880
  calcSum: l,
4827
4881
  percentage: c
4828
4882
  });
4829
4883
  }
4830
4884
  }
4831
- return i;
4885
+ return o;
4832
4886
  }
4833
- const K = /* @__PURE__ */ new Set([
4887
+ const J = /* @__PURE__ */ new Set([
4834
4888
  "nearest",
4835
4889
  "line-width",
4836
4890
  "up",
4837
4891
  "down",
4838
4892
  "to-zero"
4839
4893
  ]);
4840
- function parseRandomValueSharing(e, n, r, a) {
4841
- const u = {
4894
+ function parseRandomValueSharing(e, n, r, u) {
4895
+ const a = {
4842
4896
  dashedIdent: "",
4843
4897
  fixed: -1,
4844
4898
  elementScoped: !1,
4845
4899
  propertyScoped: !1,
4846
4900
  propertyIndexScoped: !1
4847
4901
  };
4848
- let o = !1;
4849
- const i = n[0];
4850
- if (!isTokenNode(i) || !isTokenIdent(i.value)) return [u, n];
4851
- for (let i = 0; i < n.length; i++) {
4852
- const l = n[i];
4902
+ let i = !1;
4903
+ const o = n[0];
4904
+ if (!isTokenNode(o) || !isTokenIdent(o.value)) return [a, n];
4905
+ for (let o = 0; o < n.length; o++) {
4906
+ const l = n[o];
4853
4907
  if (!isTokenNode(l)) return -1;
4854
- if (isTokenComma(l.value)) return [u, n.slice(i + 1)];
4908
+ if (isTokenComma(l.value)) return [a, n.slice(o + 1)];
4855
4909
  if (!isTokenIdent(l.value)) return -1;
4856
4910
  const c = l.value[4].value.toLowerCase();
4857
4911
  if ("element-scoped" !== c) if ("property-scoped" !== c) if ("property-index-scoped" !== c) {
4858
4912
  if ("fixed" === c) {
4859
- if (-1 !== u.fixed || o || u.dashedIdent || u.elementScoped || u.propertyScoped || u.propertyIndexScoped) return -1;
4860
- i++;
4861
- const t = n[i];
4913
+ if (-1 !== a.fixed || i || a.dashedIdent || a.elementScoped || a.propertyScoped || a.propertyIndexScoped) return -1;
4914
+ o++;
4915
+ const t = n[o];
4862
4916
  if (!t) return -1;
4863
- const l = solve(calc$1(calcWrapper(e, [t]), r, a), a);
4917
+ const l = solve(calc$1(calcWrapper(e, [t]), r, u), u);
4864
4918
  if (-1 === l) return -1;
4865
4919
  if (!isTokenNumber(l.value)) return -1;
4866
4920
  if (l.value[4].value < 0 || l.value[4].value > 1) return -1;
4867
- u.fixed = Math.max(0, Math.min(l.value[4].value, 1 - 1e-9));
4921
+ a.fixed = Math.max(0, Math.min(l.value[4].value, 1 - Number.EPSILON / 2));
4868
4922
  continue;
4869
4923
  }
4870
4924
  if ("auto" !== c) {
4871
- if (!c.startsWith("--")) return -1;
4872
- if (-1 !== u.fixed || o || u.dashedIdent) return -1;
4873
- u.dashedIdent = c;
4925
+ if (!c.startsWith("--")) return 0 === o ? [a, n] : -1;
4926
+ if (-1 !== a.fixed || i || a.dashedIdent) return -1;
4927
+ a.dashedIdent = c;
4874
4928
  } else {
4875
- if (-1 !== u.fixed || o || u.dashedIdent || u.elementScoped || u.propertyScoped || u.propertyIndexScoped) return -1;
4876
- u.elementScoped = !0, u.propertyIndexScoped = !0, o = !0;
4929
+ if (-1 !== a.fixed || i || a.dashedIdent || a.elementScoped || a.propertyScoped || a.propertyIndexScoped) return -1;
4930
+ a.elementScoped = !0, a.propertyIndexScoped = !0, i = !0;
4877
4931
  }
4878
4932
  } else {
4879
- if (-1 !== u.fixed || o || u.propertyScoped || u.propertyIndexScoped) return -1;
4880
- u.propertyIndexScoped = !0;
4933
+ if (-1 !== a.fixed || i || a.propertyScoped || a.propertyIndexScoped) return -1;
4934
+ a.propertyIndexScoped = !0;
4881
4935
  }
4882
4936
  else {
4883
- if (-1 !== u.fixed || o || u.propertyScoped || u.propertyIndexScoped) return -1;
4884
- u.propertyScoped = !0;
4937
+ if (-1 !== a.fixed || i || a.propertyScoped || a.propertyIndexScoped) return -1;
4938
+ a.propertyScoped = !0;
4885
4939
  }
4886
4940
  else {
4887
- if (-1 !== u.fixed || o || u.elementScoped) return -1;
4888
- u.elementScoped = !0;
4941
+ if (-1 !== a.fixed || i || a.elementScoped) return -1;
4942
+ a.elementScoped = !0;
4889
4943
  }
4890
4944
  }
4891
4945
  return -1;
@@ -4905,7 +4959,7 @@ function calcWrapper(e, n) {
4905
4959
  void 0
4906
4960
  ], n);
4907
4961
  }
4908
- function maxWrapper(t, r, a) {
4962
+ function maxWrapper(t, r, u) {
4909
4963
  return new FunctionNode([
4910
4964
  u$1.Function,
4911
4965
  "max(",
@@ -4926,7 +4980,7 @@ function maxWrapper(t, r, a) {
4926
4980
  ...sourceIndices(r),
4927
4981
  void 0
4928
4982
  ]),
4929
- a
4983
+ u
4930
4984
  ]);
4931
4985
  }
4932
4986
  function patchNaN(e) {
@@ -5186,16 +5240,6 @@ function patchMinusZero(e) {
5186
5240
  const n = e.value;
5187
5241
  return isTokenNumeric(n) && Object.is(-0, n[4].value) ? ("-0" === n[1] || (isTokenPercentage(n) ? n[1] = "-0%" : isTokenDimension(n) ? n[1] = "-0" + n[4].unit : n[1] = "-0"), e) : e;
5188
5242
  }
5189
- function patchPrecision(e, n = 13) {
5190
- if (-1 === e) return -1;
5191
- if (n <= 0) return e;
5192
- if (isFunctionNode(e)) return e;
5193
- const t = e.value;
5194
- if (!isTokenNumeric(t)) return e;
5195
- if (Number.isInteger(t[4].value)) return e;
5196
- const r = Number(t[4].value.toFixed(n)).toString();
5197
- return isTokenNumber(t) ? t[1] = r : isTokenPercentage(t) ? t[1] = r + "%" : isTokenDimension(t) && (t[1] = r + t[4].unit), e;
5198
- }
5199
5243
  function patchCanonicalUnit(e) {
5200
5244
  return -1 === e ? -1 : isFunctionNode(e) ? e : isTokenDimension(e.value) ? (e.value = toCanonicalUnit(e.value), e) : e;
5201
5245
  }
@@ -5208,10 +5252,10 @@ function tokenizeGlobals(e) {
5208
5252
  if (!e) return n;
5209
5253
  for (const [t, r] of e) if (isToken(r)) n.set(t, r);
5210
5254
  else if ("string" == typeof r) {
5211
- const e = tokenizer({ css: r }), a = e.nextToken();
5255
+ const e = tokenizer({ css: r }), u = e.nextToken();
5212
5256
  if (e.nextToken(), !e.endOfFile()) continue;
5213
- if (!isTokenNumeric(a)) continue;
5214
- n.set(t, a);
5257
+ if (!isTokenNumeric(u)) continue;
5258
+ n.set(t, u);
5215
5259
  continue;
5216
5260
  }
5217
5261
  return n;
@@ -5220,40 +5264,40 @@ function calcFromComponentValues(e, n) {
5220
5264
  const t = tokenizeGlobals(n?.globals);
5221
5265
  return replaceComponentValues(e, (e) => {
5222
5266
  if (!isFunctionNode(e)) return;
5223
- const r = J.get(e.getName().toLowerCase());
5267
+ const r = _.get(e.getName().toLowerCase());
5224
5268
  if (!r) return;
5225
5269
  const a = patchCalcResult(solve(r(e, t, n ?? {}), n ?? {}), n);
5226
5270
  return -1 !== a ? n?.calcWrapper ? calcWrapper(e, [a]) : a : void 0;
5227
5271
  });
5228
5272
  }
5229
- function replaceComponentValues(n, r) {
5273
+ function replaceComponentValues(n, u) {
5230
5274
  for (let a = 0; a < n.length; a++) {
5231
- const o = n[a];
5232
- walk(o, (n, a) => {
5275
+ const i = n[a];
5276
+ walk(i, (n, a) => {
5233
5277
  if ("number" != typeof a) return;
5234
- const o = r(n.node);
5235
- if (!o) return;
5236
- const i = [o], l = n.parent.value[a - 1];
5237
- isTokenNode(l) && isTokenDelim(l.value) && ("-" === l.value[4].value || "+" === l.value[4].value) && i.splice(0, 0, new WhitespaceNode([[
5278
+ const i = u(n.node);
5279
+ if (!i) return;
5280
+ const l = [i], c = n.parent.value[a - 1];
5281
+ isTokenNode(c) && isTokenDelim(c.value) && ("-" === c.value[4].value || "+" === c.value[4].value) && l.splice(0, 0, new WhitespaceNode([[
5238
5282
  u$1.Whitespace,
5239
5283
  " ",
5240
5284
  ...sourceIndices(n.node),
5241
5285
  void 0
5242
5286
  ]]));
5243
5287
  const s = n.parent.value[a + 1];
5244
- !s || isWhiteSpaceOrCommentNode(s) || isTokenNode(s) && (isTokenComma(s.value) || isTokenColon(s.value) || isTokenSemicolon(s.value) || isTokenDelim(s.value) && "-" !== s.value[4].value && "+" !== s.value[4].value) || i.push(new WhitespaceNode([[
5288
+ !s || isWhiteSpaceOrCommentNode(s) || isTokenNode(s) && (isTokenComma(s.value) || isTokenColon(s.value) || isTokenSemicolon(s.value) || isTokenDelim(s.value) && "-" !== s.value[4].value && "+" !== s.value[4].value) || l.push(new WhitespaceNode([[
5245
5289
  u$1.Whitespace,
5246
5290
  " ",
5247
5291
  ...sourceIndices(n.node),
5248
5292
  void 0
5249
- ]])), n.parent.value.splice(a, 1, ...i);
5293
+ ]])), n.parent.value.splice(a, 1, ...l);
5250
5294
  });
5251
5295
  }
5252
5296
  return n;
5253
5297
  }
5254
- const Q = new Set(J.keys());
5298
+ const K = new Set(_.keys());
5255
5299
  //#endregion
5256
- //#region ../../node_modules/.pnpm/@csstools+css-color-parser@4.2.3_@csstools+css-parser-algorithms@4.0.0_@csstools+css-to_0211899857d0b31ddb20171e5feaa18a/node_modules/@csstools/css-color-parser/dist/index.mjs
5300
+ //#region ../../node_modules/.pnpm/@csstools+css-color-parser@4.2.4_@csstools+css-parser-algorithms@4.0.1_@csstools+css-to_3cec8fdb911b5b73345a3ccb5bd79466/node_modules/@csstools/css-color-parser/dist/index.mjs
5257
5301
  var xe;
5258
5302
  var De;
5259
5303
  function normalize(e, n, a, o) {
@@ -5844,7 +5888,7 @@ function color$1(e, n) {
5844
5888
  p.syntaxFlags.add(De.HasVariableAlpha), b.push(v);
5845
5889
  continue;
5846
5890
  }
5847
- if (!Q.has(toLowerCaseAZ(v.getName()))) return !1;
5891
+ if (!K.has(toLowerCaseAZ(v.getName()))) return !1;
5848
5892
  const [[e]] = calcFromComponentValues([[v]], {
5849
5893
  censorIntoStandardRepresentableValues: !0,
5850
5894
  globals: h,
@@ -5992,7 +6036,7 @@ function colorMixComponents(e, n) {
5992
6036
  }
5993
6037
  }
5994
6038
  if (!t) {
5995
- if (isFunctionNode(i) && Q.has(toLowerCaseAZ(i.getName()))) {
6039
+ if (isFunctionNode(i) && K.has(toLowerCaseAZ(i.getName()))) {
5996
6040
  if ([[i]] = calcFromComponentValues([[i]], {
5997
6041
  censorIntoStandardRepresentableValues: !0,
5998
6042
  precision: -1,
@@ -6416,7 +6460,7 @@ function threeChannelLegacySyntax(e, n, a, o) {
6416
6460
  h.syntaxFlags.add(De.HasVariableAlpha), N.push(a);
6417
6461
  continue;
6418
6462
  }
6419
- if (!Q.has(a.getName().toLowerCase())) return !1;
6463
+ if (!K.has(a.getName().toLowerCase())) return !1;
6420
6464
  const [[e]] = calcFromComponentValues([[a]], {
6421
6465
  censorIntoStandardRepresentableValues: !0,
6422
6466
  precision: -1,
@@ -6481,7 +6525,7 @@ function threeChannelSpaceSeparated(e, n, o, s, c) {
6481
6525
  v.syntaxFlags.add(De.HasVariableAlpha), f.push(r);
6482
6526
  continue;
6483
6527
  }
6484
- if (!Q.has(r.getName().toLowerCase())) return !1;
6528
+ if (!K.has(r.getName().toLowerCase())) return !1;
6485
6529
  const [[e]] = calcFromComponentValues([[r]], {
6486
6530
  censorIntoStandardRepresentableValues: !0,
6487
6531
  globals: p,
@@ -6950,7 +6994,7 @@ function alpha(e, n) {
6950
6994
  if (isWhitespaceNode(m) || isCommentNode(m)) for (; isWhitespaceNode(e.value[N + 1]) || isCommentNode(e.value[N + 1]);) N++;
6951
6995
  else if (u && !c && !i && isTokenNode(m) && isTokenDelim(m.value) && "/" === m.value[4].value) c = !0;
6952
6996
  else {
6953
- if (isFunctionNode(m) && Q.has(toLowerCaseAZ(m.getName()))) {
6997
+ if (isFunctionNode(m) && K.has(toLowerCaseAZ(m.getName()))) {
6954
6998
  const [[e]] = calcFromComponentValues([[m]], {
6955
6999
  censorIntoStandardRepresentableValues: !0,
6956
7000
  globals: s,
@@ -8601,13 +8645,16 @@ function collectThemeVariableRule(root, options = {}) {
8601
8645
  if (isDisplayP3Declaration(decl)) return;
8602
8646
  if (decl.prop.startsWith("--tw-")) return;
8603
8647
  if (!shouldPreserveContentInit && isEmptyTwContentDeclaration(decl)) return;
8604
- declarations.set(decl.prop, decl.clone());
8648
+ const values = declarations.get(decl.prop) ?? [];
8649
+ const previous = values.at(-1);
8650
+ if (!previous || previous.value !== decl.value || previous.important !== decl.important) values.push(decl.clone());
8651
+ declarations.set(decl.prop, values);
8605
8652
  });
8606
8653
  }
8607
8654
  for (const rule of themeRules) rule.remove();
8608
8655
  if (declarations.size === 0) return;
8609
8656
  const rule = postcss.default.rule({ selector: normalizeMiniProgramThemeScopeSelector(options.cssSelectorReplacement?.root) });
8610
- for (const decl of declarations.values()) rule.append(decl);
8657
+ for (const decl of declarations.values()) rule.append(...decl);
8611
8658
  return rule;
8612
8659
  }
8613
8660
  //#endregion
@@ -9451,6 +9498,12 @@ Object.defineProperty(exports, "MINI_PROGRAM_ELEMENT_SCOPE_SELECTORS", {
9451
9498
  return MINI_PROGRAM_ELEMENT_SCOPE_SELECTORS;
9452
9499
  }
9453
9500
  });
9501
+ Object.defineProperty(exports, "MINI_PROGRAM_THEME_SCOPE_SELECTORS", {
9502
+ enumerable: true,
9503
+ get: function() {
9504
+ return MINI_PROGRAM_THEME_SCOPE_SELECTORS;
9505
+ }
9506
+ });
9454
9507
  Object.defineProperty(exports, "MODERN_CHECK_COLOR_RGB_RE", {
9455
9508
  enumerable: true,
9456
9509
  get: function() {
@@ -9937,6 +9990,12 @@ Object.defineProperty(exports, "testIfRootHostForV4", {
9937
9990
  return testIfRootHostForV4;
9938
9991
  }
9939
9992
  });
9993
+ Object.defineProperty(exports, "tokenize", {
9994
+ enumerable: true,
9995
+ get: function() {
9996
+ return tokenize;
9997
+ }
9998
+ });
9940
9999
  Object.defineProperty(exports, "tokenizer", {
9941
10000
  enumerable: true,
9942
10001
  get: function() {