@jomae/catalog 0.9.0 → 0.10.0

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.
Files changed (162) hide show
  1. package/dist/baseline.d.ts +41 -2
  2. package/dist/baseline.d.ts.map +1 -1
  3. package/dist/baseline.js +52 -10
  4. package/dist/baseline.js.map +1 -1
  5. package/dist/detect.d.ts +26 -0
  6. package/dist/detect.d.ts.map +1 -1
  7. package/dist/detect.js +27 -1
  8. package/dist/detect.js.map +1 -1
  9. package/dist/generated/baseline-history.d.ts.map +1 -1
  10. package/dist/generated/baseline-history.js +16 -4
  11. package/dist/generated/baseline-history.js.map +1 -1
  12. package/dist/generated/baseline.d.ts.map +1 -1
  13. package/dist/generated/baseline.js +301 -37
  14. package/dist/generated/baseline.js.map +1 -1
  15. package/dist/generated/guides.d.ts.map +1 -1
  16. package/dist/generated/guides.js +22 -3
  17. package/dist/generated/guides.js.map +1 -1
  18. package/dist/generated/sizes.d.ts.map +1 -1
  19. package/dist/generated/sizes.js +284 -29
  20. package/dist/generated/sizes.js.map +1 -1
  21. package/dist/generated/support-claims.d.ts.map +1 -1
  22. package/dist/generated/support-claims.js +28 -3
  23. package/dist/generated/support-claims.js.map +1 -1
  24. package/dist/index.d.ts +3 -2
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +3 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/rules/color-functions.d.ts.map +1 -1
  29. package/dist/rules/color-functions.js +4 -0
  30. package/dist/rules/color-functions.js.map +1 -1
  31. package/dist/rules/container-queries.d.ts.map +1 -1
  32. package/dist/rules/container-queries.js +1 -0
  33. package/dist/rules/container-queries.js.map +1 -1
  34. package/dist/rules/cookie-store.d.ts +3 -0
  35. package/dist/rules/cookie-store.d.ts.map +1 -0
  36. package/dist/rules/cookie-store.js +38 -0
  37. package/dist/rules/cookie-store.js.map +1 -0
  38. package/dist/rules/css-has.d.ts +3 -0
  39. package/dist/rules/css-has.d.ts.map +1 -0
  40. package/dist/rules/css-has.js +35 -0
  41. package/dist/rules/css-has.js.map +1 -0
  42. package/dist/rules/css-nesting.d.ts +3 -0
  43. package/dist/rules/css-nesting.d.ts.map +1 -0
  44. package/dist/rules/css-nesting.js +35 -0
  45. package/dist/rules/css-nesting.js.map +1 -0
  46. package/dist/rules/date-format.d.ts +3 -0
  47. package/dist/rules/date-format.d.ts.map +1 -0
  48. package/dist/rules/date-format.js +33 -0
  49. package/dist/rules/date-format.js.map +1 -0
  50. package/dist/rules/diacritics.d.ts +3 -0
  51. package/dist/rules/diacritics.d.ts.map +1 -0
  52. package/dist/rules/diacritics.js +34 -0
  53. package/dist/rules/diacritics.js.map +1 -0
  54. package/dist/rules/display-names.d.ts.map +1 -1
  55. package/dist/rules/display-names.js +4 -0
  56. package/dist/rules/display-names.js.map +1 -1
  57. package/dist/rules/drag-and-drop.d.ts.map +1 -1
  58. package/dist/rules/drag-and-drop.js +4 -0
  59. package/dist/rules/drag-and-drop.js.map +1 -1
  60. package/dist/rules/fetch.d.ts.map +1 -1
  61. package/dist/rules/fetch.js +4 -0
  62. package/dist/rules/fetch.js.map +1 -1
  63. package/dist/rules/field-sizing.d.ts.map +1 -1
  64. package/dist/rules/field-sizing.js +4 -0
  65. package/dist/rules/field-sizing.js.map +1 -1
  66. package/dist/rules/file-download.d.ts +3 -0
  67. package/dist/rules/file-download.d.ts.map +1 -0
  68. package/dist/rules/file-download.js +40 -0
  69. package/dist/rules/file-download.js.map +1 -0
  70. package/dist/rules/file-drop.d.ts +3 -0
  71. package/dist/rules/file-drop.d.ts.map +1 -0
  72. package/dist/rules/file-drop.js +40 -0
  73. package/dist/rules/file-drop.js.map +1 -0
  74. package/dist/rules/font-loading.d.ts +3 -0
  75. package/dist/rules/font-loading.d.ts.map +1 -0
  76. package/dist/rules/font-loading.js +33 -0
  77. package/dist/rules/font-loading.js.map +1 -0
  78. package/dist/rules/form-validation.d.ts +3 -0
  79. package/dist/rules/form-validation.d.ts.map +1 -0
  80. package/dist/rules/form-validation.js +40 -0
  81. package/dist/rules/form-validation.js.map +1 -0
  82. package/dist/rules/index.d.ts.map +1 -1
  83. package/dist/rules/index.js +34 -0
  84. package/dist/rules/index.js.map +1 -1
  85. package/dist/rules/inert.d.ts.map +1 -1
  86. package/dist/rules/inert.js +2 -0
  87. package/dist/rules/inert.js.map +1 -1
  88. package/dist/rules/jquery.d.ts +3 -0
  89. package/dist/rules/jquery.d.ts.map +1 -0
  90. package/dist/rules/jquery.js +37 -0
  91. package/dist/rules/jquery.js.map +1 -0
  92. package/dist/rules/light-dark.d.ts +3 -0
  93. package/dist/rules/light-dark.d.ts.map +1 -0
  94. package/dist/rules/light-dark.js +37 -0
  95. package/dist/rules/light-dark.js.map +1 -0
  96. package/dist/rules/list-format.d.ts.map +1 -1
  97. package/dist/rules/list-format.js +3 -0
  98. package/dist/rules/list-format.js.map +1 -1
  99. package/dist/rules/match-media.d.ts +3 -0
  100. package/dist/rules/match-media.d.ts.map +1 -0
  101. package/dist/rules/match-media.js +36 -0
  102. package/dist/rules/match-media.js.map +1 -0
  103. package/dist/rules/number-format.d.ts.map +1 -1
  104. package/dist/rules/number-format.js +10 -1
  105. package/dist/rules/number-format.js.map +1 -1
  106. package/dist/rules/passkeys.d.ts +3 -0
  107. package/dist/rules/passkeys.d.ts.map +1 -0
  108. package/dist/rules/passkeys.js +44 -0
  109. package/dist/rules/passkeys.js.map +1 -0
  110. package/dist/rules/plural-rules.d.ts +3 -0
  111. package/dist/rules/plural-rules.d.ts.map +1 -0
  112. package/dist/rules/plural-rules.js +33 -0
  113. package/dist/rules/plural-rules.js.map +1 -0
  114. package/dist/rules/pointer-events.d.ts +3 -0
  115. package/dist/rules/pointer-events.d.ts.map +1 -0
  116. package/dist/rules/pointer-events.js +43 -0
  117. package/dist/rules/pointer-events.js.map +1 -0
  118. package/dist/rules/progress-indicator.d.ts +3 -0
  119. package/dist/rules/progress-indicator.d.ts.map +1 -0
  120. package/dist/rules/progress-indicator.js +39 -0
  121. package/dist/rules/progress-indicator.js.map +1 -0
  122. package/dist/rules/screen-wake-lock.d.ts.map +1 -1
  123. package/dist/rules/screen-wake-lock.js +4 -0
  124. package/dist/rules/screen-wake-lock.js.map +1 -1
  125. package/dist/rules/scroll-into-view.d.ts +3 -0
  126. package/dist/rules/scroll-into-view.d.ts.map +1 -0
  127. package/dist/rules/scroll-into-view.js +38 -0
  128. package/dist/rules/scroll-into-view.js.map +1 -0
  129. package/dist/rules/segmenter.d.ts.map +1 -1
  130. package/dist/rules/segmenter.js +4 -0
  131. package/dist/rules/segmenter.js.map +1 -1
  132. package/dist/rules/select.d.ts.map +1 -1
  133. package/dist/rules/select.js +1 -0
  134. package/dist/rules/select.js.map +1 -1
  135. package/dist/rules/server-sent-events.d.ts.map +1 -1
  136. package/dist/rules/server-sent-events.js +4 -0
  137. package/dist/rules/server-sent-events.js.map +1 -1
  138. package/dist/rules/speculation-rules.d.ts +3 -0
  139. package/dist/rules/speculation-rules.d.ts.map +1 -0
  140. package/dist/rules/speculation-rules.js +35 -0
  141. package/dist/rules/speculation-rules.js.map +1 -0
  142. package/dist/rules/temporal.d.ts +3 -0
  143. package/dist/rules/temporal.d.ts.map +1 -0
  144. package/dist/rules/temporal.js +34 -0
  145. package/dist/rules/temporal.js.map +1 -0
  146. package/dist/rules/url-pattern.d.ts.map +1 -1
  147. package/dist/rules/url-pattern.js +4 -0
  148. package/dist/rules/url-pattern.js.map +1 -1
  149. package/dist/rules/web-animations.d.ts.map +1 -1
  150. package/dist/rules/web-animations.js +4 -0
  151. package/dist/rules/web-animations.js.map +1 -1
  152. package/dist/rules/web-crypto.d.ts.map +1 -1
  153. package/dist/rules/web-crypto.js +4 -0
  154. package/dist/rules/web-crypto.js.map +1 -1
  155. package/dist/rules/web-locks.d.ts.map +1 -1
  156. package/dist/rules/web-locks.js +4 -0
  157. package/dist/rules/web-locks.js.map +1 -1
  158. package/dist/tier-diff.d.ts +55 -0
  159. package/dist/tier-diff.d.ts.map +1 -0
  160. package/dist/tier-diff.js +61 -0
  161. package/dist/tier-diff.js.map +1 -0
  162. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"display-names.js","sourceRoot":"","sources":["../../src/rules/display-names.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,4BAA4B;IACnC,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,oBAAoB,EAAE,cAAc,EAAE,WAAW,CAAC;IAC7D,UAAU,EAAE,CAAC,oBAAoB,CAAC;IAClC,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE;QACL,SAAS,EACP,4cAA4c;QAC9c,OAAO,EAAE;;;;;;;;UAQH;QACN,MAAM,EACJ,oGAAoG;KACvG;IACD,KAAK,EAAE;QACL,IAAI,EAAE,sFAAsF;QAC5F,MAAM,EAAE;YACN,iJAAiJ;YACjJ,kMAAkM;YAClM,0MAA0M;YAC1M,qMAAqM;YACrM,4IAA4I;SAC7I;QACD,OAAO,EAAE,0EAA0E;KACpF;CACF,CAAC"}
1
+ {"version":3,"file":"display-names.js","sourceRoot":"","sources":["../../src/rules/display-names.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,EAAE,EAAE,oBAAoB;IACxB,KAAK,EAAE,4BAA4B;IACnC,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,oBAAoB,EAAE,cAAc,EAAE,WAAW,CAAC;IAC7D,UAAU,EAAE,CAAC,oBAAoB,CAAC;IAClC,MAAM,EAAE,mBAAmB;IAC3B,KAAK,EAAE;QACL,SAAS,EACP,4cAA4c;QAC9c,OAAO,EAAE;;;;;;;;UAQH;QACN,MAAM,EACJ,oGAAoG;KACvG;IACD,KAAK,EAAE;QACL,IAAI,EAAE,sFAAsF;QAC5F,MAAM,EAAE;YACN,iJAAiJ;YACjJ,kMAAkM;YAClM,0MAA0M;YAC1M,qMAAqM;YACrM,4IAA4I;SAC7I;QACD,OAAO,EAAE,0EAA0E;QACnF,UAAU,EAAE;YACV,8GAA8G;YAC9G,gEAAgE;SACjE;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"drag-and-drop.d.ts","sourceRoot":"","sources":["../../src/rules/drag-and-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,WAAW,EAAE,IA+CzB,CAAC"}
1
+ {"version":3,"file":"drag-and-drop.d.ts","sourceRoot":"","sources":["../../src/rules/drag-and-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,WAAW,EAAE,IAmDzB,CAAC"}
@@ -42,6 +42,10 @@ el.addEventListener("dragstart", (e) => e.dataTransfer.setData("text/plain", id)
42
42
  // dragover must preventDefault or drop never fires.
43
43
  list.addEventListener("dragover", (e) => e.preventDefault());
44
44
  list.addEventListener("drop", (e) => { e.preventDefault(); /* reorder */ });`,
45
+ handRolled: [
46
+ "mousedown, mousemove and mouseup listeners tracking a pointer offset to move an element, with its original position held in state",
47
+ "an index swapped in an array when the pointer crosses a sibling, to reorder a list while a drag is in progress",
48
+ ],
45
49
  },
46
50
  };
47
51
  //# sourceMappingURL=drag-and-drop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag-and-drop.js","sourceRoot":"","sources":["../../src/rules/drag-and-drop.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC5C,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,MAAM,EAAE,+BAA+B;IACvC,KAAK,EAAE;QACL,SAAS,EACP,6YAA6Y;QAC/Y,OAAO,EAAE;;;;;;;;;;;;;;;;;;;UAmBH;QACN,MAAM,EACJ,yEAAyE;KAC5E;IACD,KAAK,EAAE;QACL,IAAI,EAAE,iEAAiE;QACvE,MAAM,EAAE;YACN,0IAA0I;YAC1I,iMAAiM;YACjM,2KAA2K;YAC3K,2IAA2I;SAC5I;QACD,OAAO,EAAE;;;;6EAIgE;KAC1E;CACF,CAAC"}
1
+ {"version":3,"file":"drag-and-drop.js","sourceRoot":"","sources":["../../src/rules/drag-and-drop.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,+BAA+B;IACtC,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,YAAY,EAAE,kBAAkB,CAAC;IAC5C,UAAU,EAAE,CAAC,aAAa,CAAC;IAC3B,MAAM,EAAE,+BAA+B;IACvC,KAAK,EAAE;QACL,SAAS,EACP,6YAA6Y;QAC/Y,OAAO,EAAE;;;;;;;;;;;;;;;;;;;UAmBH;QACN,MAAM,EACJ,yEAAyE;KAC5E;IACD,KAAK,EAAE;QACL,IAAI,EAAE,iEAAiE;QACvE,MAAM,EAAE;YACN,0IAA0I;YAC1I,iMAAiM;YACjM,2KAA2K;YAC3K,2IAA2I;SAC5I;QACD,OAAO,EAAE;;;;6EAIgE;QACzE,UAAU,EAAE;YACV,mIAAmI;YACnI,gHAAgH;SACjH;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/rules/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,IA6CvB,CAAC"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../src/rules/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,IAiDvB,CAAC"}
@@ -41,6 +41,10 @@ const items = await res.json();`,
41
41
  snippet: `const res = await fetch(url, { signal: AbortSignal.timeout(5000) });
42
42
  if (!res.ok) throw new Error(String(res.status));
43
43
  const data = await res.json();`,
44
+ handRolled: [
45
+ "an XMLHttpRequest with an onreadystatechange handler checking readyState === 4, often wrapped in a hand-made Promise",
46
+ "a request helper that sets Content-Type and stringifies the body on every call, written once per project and imported everywhere",
47
+ ],
44
48
  },
45
49
  };
46
50
  //# sourceMappingURL=fetch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/rules/fetch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE;QACR,OAAO;QACP,YAAY;QACZ,UAAU;QACV,cAAc;QACd,SAAS;QACT,kBAAkB;QAClB,aAAa;KACd;IACD,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE;QACL,SAAS,EACP,yeAAye;QAC3e,OAAO,EAAE;;;;;;;;;;gCAUmB;QAC5B,MAAM,EAAE,+DAA+D;KACxE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gFAAgF;QACtF,MAAM,EAAE;YACN,kLAAkL;YAClL,4LAA4L;YAC5L,wKAAwK;YACxK,mNAAmN;YACnN,0HAA0H;YAC1H,ySAAyS;SAC1S;QACD,OAAO,EAAE;;+BAEkB;KAC5B;CACF,CAAC"}
1
+ {"version":3,"file":"fetch.js","sourceRoot":"","sources":["../../src/rules/fetch.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,eAAe;IACtB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE;QACR,OAAO;QACP,YAAY;QACZ,UAAU;QACV,cAAc;QACd,SAAS;QACT,kBAAkB;QAClB,aAAa;KACd;IACD,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,MAAM,EAAE,SAAS;IACjB,KAAK,EAAE;QACL,SAAS,EACP,yeAAye;QAC3e,OAAO,EAAE;;;;;;;;;;gCAUmB;QAC5B,MAAM,EAAE,+DAA+D;KACxE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gFAAgF;QACtF,MAAM,EAAE;YACN,kLAAkL;YAClL,4LAA4L;YAC5L,wKAAwK;YACxK,mNAAmN;YACnN,0HAA0H;YAC1H,ySAAyS;SAC1S;QACD,OAAO,EAAE;;+BAEkB;QAC3B,UAAU,EAAE;YACV,sHAAsH;YACtH,kIAAkI;SACnI;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"field-sizing.d.ts","sourceRoot":"","sources":["../../src/rules/field-sizing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,WAAW,EAAE,IA6CzB,CAAC"}
1
+ {"version":3,"file":"field-sizing.d.ts","sourceRoot":"","sources":["../../src/rules/field-sizing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,WAAW,EAAE,IAiDzB,CAAC"}
@@ -40,6 +40,10 @@ input[type="text"] {
40
40
  min-height: 3lh;
41
41
  max-height: 12lh;
42
42
  }`,
43
+ handRolled: [
44
+ "an input handler setting style.height to auto and then to scrollHeight in pixels, so the textarea remeasures on every keystroke",
45
+ "a hidden mirror div kept in sync with the textarea's value, measured to decide how tall the real field should be",
46
+ ],
43
47
  },
44
48
  guides: ["form-fields-automatically-fit-contents"],
45
49
  };
@@ -1 +1 @@
1
- {"version":3,"file":"field-sizing.js","sourceRoot":"","sources":["../../src/rules/field-sizing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE;QACR,yBAAyB;QACzB,UAAU;QACV,yBAAyB;QACzB,uBAAuB;QACvB,cAAc;KACf;IACD,UAAU,EAAE,CAAC,cAAc,CAAC;IAC5B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE;QACL,SAAS,EACP,oYAAoY;QACtY,OAAO,EAAE;;;;;;;;;;;;EAYX;QACE,MAAM,EAAE,+DAA+D;KACxE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gEAAgE;QACtE,MAAM,EAAE;YACN,iRAAiR;YACjR,yFAAyF;YACzF,mFAAmF;SACpF;QACD,OAAO,EAAE;;;;EAIX;KACC;IACD,MAAM,EAAE,CAAC,wCAAwC,CAAC;CACnD,CAAC"}
1
+ {"version":3,"file":"field-sizing.js","sourceRoot":"","sources":["../../src/rules/field-sizing.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE;QACR,yBAAyB;QACzB,UAAU;QACV,yBAAyB;QACzB,uBAAuB;QACvB,cAAc;KACf;IACD,UAAU,EAAE,CAAC,cAAc,CAAC;IAC5B,MAAM,EAAE,uBAAuB;IAC/B,KAAK,EAAE;QACL,SAAS,EACP,oYAAoY;QACtY,OAAO,EAAE;;;;;;;;;;;;EAYX;QACE,MAAM,EAAE,+DAA+D;KACxE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gEAAgE;QACtE,MAAM,EAAE;YACN,iRAAiR;YACjR,yFAAyF;YACzF,mFAAmF;SACpF;QACD,OAAO,EAAE;;;;EAIX;QACE,UAAU,EAAE;YACV,iIAAiI;YACjI,kHAAkH;SACnH;KACF;IACD,MAAM,EAAE,CAAC,wCAAwC,CAAC;CACnD,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const fileDownload: Rule;
3
+ //# sourceMappingURL=file-download.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download.d.ts","sourceRoot":"","sources":["../../src/rules/file-download.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,YAAY,EAAE,IAyC1B,CAAC"}
@@ -0,0 +1,40 @@
1
+ export const fileDownload = {
2
+ id: "file-download",
3
+ title: "Saving a generated file",
4
+ category: "async-data",
5
+ replaces: ["file-saver", "downloadjs", "js-file-download"],
6
+ featureIds: ["download", "file"],
7
+ native: "a Blob object URL on a download link",
8
+ human: {
9
+ explainer: "file-saver was written when saving a blob meant branching across engines, including an msSaveBlob path for old IE and Edge. What is left once those are gone is four lines: make a Blob, turn it into an object URL, click a link carrying the download attribute, then revoke the URL. The attribute also supplies the filename, which is the part people usually reach for the library to get.",
10
+ snippet: `function save(blob, filename) {
11
+ const url = URL.createObjectURL(blob);
12
+ const link = document.createElement("a");
13
+ link.href = url;
14
+ link.download = filename;
15
+ link.click();
16
+ // Revoke, or the blob is held in memory until the document goes. Deferred
17
+ // rather than immediate: revoking in the same task cancels the save in
18
+ // some engines, because the fetch behind the download has not started.
19
+ setTimeout(() => URL.revokeObjectURL(url), 0);
20
+ }
21
+
22
+ save(new Blob([csv], { type: "text/csv" }), "report.csv");`,
23
+ mdnUrl: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#download",
24
+ },
25
+ agent: {
26
+ when: "offering a file the page generated for the user to save",
27
+ unless: [
28
+ "The file is larger than memory allows. A Blob is held in memory, so streaming a big export to disk needs the File System Access API, which is not Baseline.",
29
+ "The link points at another origin. The download attribute is ignored cross-origin, so the browser navigates to the file instead of saving it, and object URLs are same-origin so this only applies when the href is a remote one.",
30
+ "You run inside a WebView or an in-app browser that ignores the attribute. Several do, and the library's fallbacks are what papers over that.",
31
+ "You support browsers below Chrome {{chrome:download}}, Firefox {{firefox:download}} or Safari {{safari:download}}. Safari supported the attribute considerably later than the others.",
32
+ ],
33
+ snippet: 'const url = URL.createObjectURL(blob);\nObject.assign(document.createElement("a"), { href: url, download: name }).click();\nsetTimeout(() => URL.revokeObjectURL(url), 0);',
34
+ handRolled: [
35
+ "a data: URI assigned to window.location to trigger a save, which truncates on larger files",
36
+ "a hidden iframe or form submitted to make the browser treat a response as a download",
37
+ ],
38
+ },
39
+ };
40
+ //# sourceMappingURL=file-download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-download.js","sourceRoot":"","sources":["../../src/rules/file-download.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,YAAY,GAAS;IAChC,EAAE,EAAE,eAAe;IACnB,KAAK,EAAE,yBAAyB;IAChC,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,kBAAkB,CAAC;IAC1D,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,sCAAsC;IAC9C,KAAK,EAAE;QACL,SAAS,EACP,kYAAkY;QACpY,OAAO,EAAE;;;;;;;;;;;;2DAY8C;QACvD,MAAM,EACJ,sEAAsE;KACzE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,yDAAyD;QAC/D,MAAM,EAAE;YACN,6JAA6J;YAC7J,mOAAmO;YACnO,8IAA8I;YAC9I,uLAAuL;SACxL;QACD,OAAO,EACL,4KAA4K;QAC9K,UAAU,EAAE;YACV,4FAA4F;YAC5F,sFAAsF;SACvF;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const fileDrop: Rule;
3
+ //# sourceMappingURL=file-drop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-drop.d.ts","sourceRoot":"","sources":["../../src/rules/file-drop.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,QAAQ,EAAE,IAyCtB,CAAC"}
@@ -0,0 +1,40 @@
1
+ export const fileDrop = {
2
+ id: "file-drop",
3
+ title: "File pickers and drop zones",
4
+ category: "forms",
5
+ replaces: ["react-dropzone"],
6
+ featureIds: ["input-file", "input-file-multiple", "draganddrop"],
7
+ native: '<input type="file"> with drop events',
8
+ human: {
9
+ explainer: "A file input already handles choosing files, restricting types through accept, taking several through multiple, and opening the camera on a phone through capture. Adding drag and drop to it is two listeners: preventDefault on dragover so the browser stops treating the drop as navigation, and reading event.dataTransfer.files on drop. What the libraries add on top is previews, validation and upload orchestration.",
10
+ snippet: `<input type="file" id="picker" accept="image/*" multiple>
11
+
12
+ <script>
13
+ const zone = document.getElementById("zone");
14
+
15
+ // Required, or the browser navigates to the dropped file.
16
+ zone.addEventListener("dragover", (event) => event.preventDefault());
17
+
18
+ zone.addEventListener("drop", (event) => {
19
+ event.preventDefault();
20
+ handleFiles(event.dataTransfer.files);
21
+ });
22
+ </script>`,
23
+ mdnUrl: "https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file",
24
+ },
25
+ agent: {
26
+ when: "letting someone pick or drop files",
27
+ unless: [
28
+ "You accept dropped folders and walk their contents. That needs webkitGetAsEntry on the dropped items, which the drop event exposes but does not traverse for you, and the recursion is real work.",
29
+ "You want upload progress, chunking, retries or a queue. dropzone does the transfer as well as the picking, and none of that comes from the input.",
30
+ "You render thumbnails and per-file validation state. Reading the files is the easy half; the preview list and its error handling is most of what these libraries are.",
31
+ "You need the drop target to accept files dragged from another application on some older targets, where dataTransfer.items behaves inconsistently.",
32
+ ],
33
+ snippet: 'zone.addEventListener("dragover", (e) => e.preventDefault());\nzone.addEventListener("drop", (e) => { e.preventDefault(); use(e.dataTransfer.files); });',
34
+ handRolled: [
35
+ "a hidden file input triggered by click() from a styled button, wrapped in a component that forwards the change event",
36
+ "dragenter and dragleave counters kept in state to work out whether the pointer is still over the drop zone",
37
+ ],
38
+ },
39
+ };
40
+ //# sourceMappingURL=file-drop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-drop.js","sourceRoot":"","sources":["../../src/rules/file-drop.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,QAAQ,GAAS;IAC5B,EAAE,EAAE,WAAW;IACf,KAAK,EAAE,6BAA6B;IACpC,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAC5B,UAAU,EAAE,CAAC,YAAY,EAAE,qBAAqB,EAAE,aAAa,CAAC;IAChE,MAAM,EAAE,sCAAsC;IAC9C,KAAK,EAAE;QACL,SAAS,EACP,gaAAga;QACla,OAAO,EAAE;;;;;;;;;;;;UAYH;QACN,MAAM,EACJ,sEAAsE;KACzE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,oCAAoC;QAC1C,MAAM,EAAE;YACN,mMAAmM;YACnM,mJAAmJ;YACnJ,uKAAuK;YACvK,mJAAmJ;SACpJ;QACD,OAAO,EACL,0JAA0J;QAC5J,UAAU,EAAE;YACV,sHAAsH;YACtH,4GAA4G;SAC7G;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const fontLoading: Rule;
3
+ //# sourceMappingURL=font-loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-loading.d.ts","sourceRoot":"","sources":["../../src/rules/font-loading.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,WAAW,EAAE,IAgCzB,CAAC"}
@@ -0,0 +1,33 @@
1
+ export const fontLoading = {
2
+ id: "font-loading",
3
+ title: "Knowing when a webfont has loaded",
4
+ category: "typography",
5
+ replaces: ["fontfaceobserver", "webfontloader"],
6
+ featureIds: ["font-loading", "font-display"],
7
+ native: "document.fonts with font-display",
8
+ human: {
9
+ explainer: "These libraries were written to answer a question CSS could not: has this font arrived yet. document.fonts.ready resolves once loading settles, and document.fonts.load waits for one family, so the class-swapping dance has a direct replacement. Most uses do not need the question at all, because font-display decides what the browser paints while it waits, and swap is the behaviour the class was usually there to produce.",
10
+ snippet: `@font-face {
11
+ font-family: "Inter";
12
+ src: url("/inter.woff2") format("woff2");
13
+ /* Paint the fallback now, swap when the real one lands. */
14
+ font-display: swap;
15
+ }`,
16
+ mdnUrl: "https://developer.mozilla.org/en-US/docs/Web/API/FontFaceSet",
17
+ },
18
+ agent: {
19
+ when: "waiting on a webfont before doing something, or swapping a class once it loads",
20
+ unless: [
21
+ "You correct the layout shift the swap causes by matching the fallback's metrics to the webfont. size-adjust does that and is Baseline. Its companions ascent-override and descent-override have not shipped in Safari at all, so a project tuning all three carefully is not a candidate.",
22
+ "You measure text and need the exact moment the family is usable for that measurement. document.fonts.load resolves for a family and size, and a canvas or a truncation measurement taken a frame early is silently wrong rather than visibly broken.",
23
+ "You load fonts from a provider through webfontloader's module system, such as Typekit or Fonts.com, where the library is fetching the stylesheet as well as watching it.",
24
+ "You depend on the per-stage classes these libraries add to the html element, wf-loading and wf-active among them, which stylesheets across the project may be keyed to.",
25
+ ],
26
+ snippet: "await document.fonts.ready;",
27
+ handRolled: [
28
+ "a canvas or offscreen span whose width is measured repeatedly to work out whether a webfont has replaced the fallback",
29
+ "a setTimeout that adds a fonts-loaded class after a guessed delay, on the assumption the font has arrived by then",
30
+ ],
31
+ },
32
+ };
33
+ //# sourceMappingURL=font-loading.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font-loading.js","sourceRoot":"","sources":["../../src/rules/font-loading.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,WAAW,GAAS;IAC/B,EAAE,EAAE,cAAc;IAClB,KAAK,EAAE,mCAAmC;IAC1C,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,kBAAkB,EAAE,eAAe,CAAC;IAC/C,UAAU,EAAE,CAAC,cAAc,EAAE,cAAc,CAAC;IAC5C,MAAM,EAAE,kCAAkC;IAC1C,KAAK,EAAE;QACL,SAAS,EACP,uaAAua;QACza,OAAO,EAAE;;;;;EAKX;QACE,MAAM,EAAE,8DAA8D;KACvE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,gFAAgF;QACtF,MAAM,EAAE;YACN,2RAA2R;YAC3R,sPAAsP;YACtP,0KAA0K;YAC1K,yKAAyK;SAC1K;QACD,OAAO,EAAE,6BAA6B;QACtC,UAAU,EAAE;YACV,uHAAuH;YACvH,mHAAmH;SACpH;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const formValidation: Rule;
3
+ //# sourceMappingURL=form-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-validation.d.ts","sourceRoot":"","sources":["../../src/rules/form-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,cAAc,EAAE,IAuC5B,CAAC"}
@@ -0,0 +1,40 @@
1
+ export const formValidation = {
2
+ id: "form-validation",
3
+ title: "Form validation",
4
+ category: "forms",
5
+ replaces: ["jquery-validation", "parsleyjs"],
6
+ featureIds: ["constraint-validation", "user-pseudos"],
7
+ native: "constraint validation with :user-invalid",
8
+ human: {
9
+ explainer: "required, type, pattern, min and maxlength already describe what a valid field looks like, and the browser checks them on submit. The reason people reached for a library was the styling: :invalid matches an empty required field before anyone has typed, so a pristine form lights up red. :user-invalid only matches after the field has been interacted with, which is the behaviour those libraries were emulating.",
10
+ snippet: `<input type="email" name="email" required>
11
+
12
+ <style>
13
+ /* Only after the user has typed and left the field. */
14
+ input:user-invalid {
15
+ border-color: crimson;
16
+ }
17
+ input:user-valid {
18
+ border-color: seagreen;
19
+ }
20
+ </style>`,
21
+ mdnUrl: "https://developer.mozilla.org/en-US/docs/Web/CSS/:user-invalid",
22
+ },
23
+ agent: {
24
+ when: "validating form fields and showing which ones are wrong",
25
+ unless: [
26
+ "A field's validity depends on another field, such as confirming a password. That needs setCustomValidity called from your own comparison, which is JavaScript either way.",
27
+ "Validation needs the server, such as checking whether a username is taken. Constraint validation is synchronous and local, so an async check is yours to write and to hold the submit for.",
28
+ "You need error text placed and styled in the page. The browser's own bubble cannot be styled or positioned, so rendering messages means reading validationMessage and turning off novalidate reporting yourself.",
29
+ "You share one validation schema between client and server. These libraries let rules be declared once in JavaScript, and attributes in markup cannot be reused by the server.",
30
+ "Your support target reaches below Chrome {{chrome:user-pseudos}}, Firefox {{firefox:user-pseudos}} or Safari {{safari:user-pseudos}}. Constraint validation itself is much older, so the checking works while the pseudo-class that makes the styling bearable does not.",
31
+ ],
32
+ snippet: "input:user-invalid { border-color: crimson; }",
33
+ handRolled: [
34
+ "a submit handler running a regex against each field's value and collecting error strings into state",
35
+ "a touched or dirty flag tracked per field so an error only appears after the field has been left",
36
+ ],
37
+ },
38
+ guides: ["validate-input-after-interaction", "required-field-feedback"],
39
+ };
40
+ //# sourceMappingURL=form-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-validation.js","sourceRoot":"","sources":["../../src/rules/form-validation.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,cAAc,GAAS;IAClC,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,iBAAiB;IACxB,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,mBAAmB,EAAE,WAAW,CAAC;IAC5C,UAAU,EAAE,CAAC,uBAAuB,EAAE,cAAc,CAAC;IACrD,MAAM,EAAE,0CAA0C;IAClD,KAAK,EAAE;QACL,SAAS,EACP,4ZAA4Z;QAC9Z,OAAO,EAAE;;;;;;;;;;SAUJ;QACL,MAAM,EAAE,gEAAgE;KACzE;IACD,KAAK,EAAE;QACL,IAAI,EAAE,yDAAyD;QAC/D,MAAM,EAAE;YACN,2KAA2K;YAC3K,4LAA4L;YAC5L,kNAAkN;YAClN,+KAA+K;YAC/K,0QAA0Q;SAC3Q;QACD,OAAO,EAAE,+CAA+C;QACxD,UAAU,EAAE;YACV,qGAAqG;YACrG,kGAAkG;SACnG;KACF;IACD,MAAM,EAAE,CAAC,kCAAkC,EAAE,yBAAyB,CAAC;CACxE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA0KzC;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAAqC,CAAC;AAEvE,yBAAyB;AACzB,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAE/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAEpD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AA4MzC;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,SAAS,IAAI,EAAqC,CAAC;AAEvE,yBAAyB;AACzB,eAAO,MAAM,SAAS,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAE/C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAEpD,CAAC"}
@@ -11,8 +11,11 @@ import { colorFunctions } from "./color-functions.js";
11
11
  import { compressionStreams } from "./compression-streams.js";
12
12
  import { containerQueries } from "./container-queries.js";
13
13
  import { contentVisibility } from "./content-visibility.js";
14
+ import { cookieStore } from "./cookie-store.js";
14
15
  import { customHighlight } from "./custom-highlight.js";
16
+ import { dateFormat } from "./date-format.js";
15
17
  import { dateTimeInput } from "./date-time-input.js";
18
+ import { diacritics } from "./diacritics.js";
16
19
  import { dialog } from "./dialog.js";
17
20
  import { discreteTransitions } from "./discrete-transitions.js";
18
21
  import { displayNames } from "./display-names.js";
@@ -21,26 +24,38 @@ import { durationFormat } from "./duration-format.js";
21
24
  import { eventTarget } from "./event-target.js";
22
25
  import { fetchRule } from "./fetch.js";
23
26
  import { fieldSizing } from "./field-sizing.js";
27
+ import { fileDownload } from "./file-download.js";
28
+ import { fileDrop } from "./file-drop.js";
24
29
  import { fluidType } from "./fluid-type.js";
25
30
  import { focusVisible } from "./focus-visible.js";
31
+ import { fontLoading } from "./font-loading.js";
32
+ import { formValidation } from "./form-validation.js";
26
33
  import { fullscreen } from "./fullscreen.js";
27
34
  import { heightAnimation } from "./height-animation.js";
28
35
  import { inert } from "./inert.js";
29
36
  import { intersectionObserver } from "./intersection-observer.js";
37
+ import { jquery } from "./jquery.js";
30
38
  import { lazyLoading } from "./lazy-loading.js";
39
+ import { lightDark } from "./light-dark.js";
31
40
  import { lineClamp } from "./line-clamp.js";
32
41
  import { listFormat } from "./list-format.js";
33
42
  import { masonry } from "./masonry.js";
43
+ import { matchMedia } from "./match-media.js";
34
44
  import { naturalSort } from "./natural-sort.js";
35
45
  import { numberFormat } from "./number-format.js";
36
46
  import { pageVisibility } from "./page-visibility.js";
47
+ import { passkeys } from "./passkeys.js";
48
+ import { pluralRules } from "./plural-rules.js";
49
+ import { pointerEvents } from "./pointer-events.js";
37
50
  import { popover } from "./popover.js";
51
+ import { progressIndicator } from "./progress-indicator.js";
38
52
  import { randomUuid } from "./random-uuid.js";
39
53
  import { relativeTime } from "./relative-time.js";
40
54
  import { resizablePanels } from "./resizable-panels.js";
41
55
  import { resizeObserver } from "./resize-observer.js";
42
56
  import { screenWakeLock } from "./screen-wake-lock.js";
43
57
  import { scrollAnimations } from "./scroll-animations.js";
58
+ import { scrollIntoView } from "./scroll-into-view.js";
44
59
  import { scrollLock } from "./scroll-lock.js";
45
60
  import { scrollbars } from "./scrollbars.js";
46
61
  import { segmenter } from "./segmenter.js";
@@ -48,10 +63,12 @@ import { select } from "./select.js";
48
63
  import { serverSentEvents } from "./server-sent-events.js";
49
64
  import { signalTimeout } from "./signal-timeout.js";
50
65
  import { smoothScroll } from "./smooth-scroll.js";
66
+ import { speculationRules } from "./speculation-rules.js";
51
67
  import { speechRecognition } from "./speech-recognition.js";
52
68
  import { speechSynthesis } from "./speech-synthesis.js";
53
69
  import { sticky } from "./sticky.js";
54
70
  import { structuredCloneRule } from "./structured-clone.js";
71
+ import { temporal } from "./temporal.js";
55
72
  import { textBoxTrim } from "./text-box-trim.js";
56
73
  import { textWrapBalance } from "./text-wrap-balance.js";
57
74
  import { urlPattern } from "./url-pattern.js";
@@ -110,6 +127,7 @@ const rawRules = [
110
127
  containerQueries,
111
128
  contentVisibility,
112
129
  customHighlight,
130
+ dateFormat,
113
131
  dateTimeInput,
114
132
  dialog,
115
133
  discreteTransitions,
@@ -125,6 +143,22 @@ const rawRules = [
125
143
  lineClamp,
126
144
  masonry,
127
145
  numberFormat,
146
+ diacritics,
147
+ pluralRules,
148
+ lightDark,
149
+ fileDownload,
150
+ fileDrop,
151
+ matchMedia,
152
+ scrollIntoView,
153
+ formValidation,
154
+ jquery,
155
+ passkeys,
156
+ progressIndicator,
157
+ fontLoading,
158
+ pointerEvents,
159
+ cookieStore,
160
+ speculationRules,
161
+ temporal,
128
162
  pageVisibility,
129
163
  popover,
130
164
  relativeTime,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,IAAU;IACpC,OAAO;QACL,GAAG,IAAI;QACP,uEAAuE;QACvE,kEAAkE;QAClE,KAAK,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QACvC,MAAM,EAAE,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC;QACzC,KAAK,EAAE;YACL,GAAG,IAAI,CAAC,KAAK;YACb,SAAS,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YACrD,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAClD;QACD,KAAK,EAAE;YACL,GAAG,IAAI,CAAC,KAAK;YACb,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC3C,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACnD,OAAO,EAAE,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;SAClD;QACD,GAAG,CAAC,IAAI,CAAC,cAAc;YACrB,CAAC,CAAC;gBACE,cAAc,EAAE;oBACd,GAAG,IAAI,CAAC,cAAc;oBACtB,IAAI,EAAE,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;iBACrD;aACF;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC;AACJ,CAAC;AAED,qDAAqD;AACrD,MAAM,QAAQ,GAAoB;IAChC,eAAe;IACf,SAAS;IACT,WAAW;IACX,gBAAgB;IAChB,QAAQ;IACR,SAAS;IACT,cAAc;IACd,kBAAkB;IAClB,gBAAgB;IAChB,iBAAiB;IACjB,eAAe;IACf,UAAU;IACV,aAAa;IACb,MAAM;IACN,mBAAmB;IACnB,WAAW;IACX,WAAW;IACX,SAAS;IACT,YAAY;IACZ,UAAU;IACV,eAAe;IACf,KAAK;IACL,oBAAoB;IACpB,WAAW;IACX,SAAS;IACT,OAAO;IACP,YAAY;IACZ,UAAU;IACV,WAAW;IACX,SAAS;IACT,YAAY;IACZ,QAAQ;IACR,UAAU;IACV,cAAc;IACd,cAAc;IACd,MAAM;IACN,QAAQ;IACR,iBAAiB;IACjB,WAAW;IACX,aAAa;IACb,WAAW;IACX,gBAAgB;IAChB,QAAQ;IACR,cAAc;IACd,OAAO;IACP,YAAY;IACZ,eAAe;IACf,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,UAAU;IACV,UAAU;IACV,MAAM;IACN,YAAY;IACZ,iBAAiB;IACjB,eAAe;IACf,MAAM;IACN,mBAAmB;IACnB,WAAW;IACX,eAAe;IACf,eAAe;IACf,YAAY;IACZ,QAAQ;IACR,aAAa;IACb,MAAM;IACN,cAAc;IACd,WAAW;IACX,SAAS;IACT,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,eAAe;IACf,SAAS;IACT,QAAQ;IACR,YAAY;IACZ,UAAU;IACV,aAAa;IACb,SAAS;IACT,UAAU;IACV,aAAa;IACb,aAAa;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAoB,QAAQ,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAEvE,yBAAyB;AACzB,MAAM,CAAC,MAAM,SAAS,GAA8B,IAAI,GAAG,CACzD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CACrC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAA8B,IAAI,GAAG,CAC9D,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAU,CAAC,CAAC,CAC1E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"inert.d.ts","sourceRoot":"","sources":["../../src/rules/inert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,KAAK,EAAE,IAyCnB,CAAC"}
1
+ {"version":3,"file":"inert.d.ts","sourceRoot":"","sources":["../../src/rules/inert.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,KAAK,EAAE,IA2CnB,CAAC"}
@@ -9,6 +9,8 @@ export const inert = {
9
9
  "focus-lock",
10
10
  "vue-focus-lock",
11
11
  "wicg-inert",
12
+ "aria-hidden",
13
+ "@a11y/focus-trap",
12
14
  ],
13
15
  featureIds: ["inert"],
14
16
  native: "the inert attribute",
@@ -1 +1 @@
1
- {"version":3,"file":"inert.js","sourceRoot":"","sources":["../../src/rules/inert.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAS;IACzB,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE;QACR,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,YAAY;QACZ,gBAAgB;QAChB,YAAY;KACb;IACD,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE;QACL,SAAS,EACP,wdAAwd;QAC1d,OAAO,EAAE;;;iCAGoB;QAC7B,MAAM,EACJ,qFAAqF;KACxF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,6DAA6D;QACnE,MAAM,EAAE;YACN,sNAAsN;YACtN,kMAAkM;YAClM,2KAA2K;YAC3K,2KAA2K;YAC3K,6NAA6N;SAC9N;QACD,OAAO,EAAE;mCACsB;QAC/B,UAAU,EAAE;YACV,gGAAgG;YAChG,oGAAoG;SACrG;KACF;IACD,MAAM,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;CAC/C,CAAC"}
1
+ {"version":3,"file":"inert.js","sourceRoot":"","sources":["../../src/rules/inert.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,KAAK,GAAS;IACzB,EAAE,EAAE,OAAO;IACX,KAAK,EAAE,gBAAgB;IACvB,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE;QACR,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,YAAY;QACZ,gBAAgB;QAChB,YAAY;QACZ,aAAa;QACb,kBAAkB;KACnB;IACD,UAAU,EAAE,CAAC,OAAO,CAAC;IACrB,MAAM,EAAE,qBAAqB;IAC7B,KAAK,EAAE;QACL,SAAS,EACP,wdAAwd;QAC1d,OAAO,EAAE;;;iCAGoB;QAC7B,MAAM,EACJ,qFAAqF;KACxF;IACD,KAAK,EAAE;QACL,IAAI,EAAE,6DAA6D;QACnE,MAAM,EAAE;YACN,sNAAsN;YACtN,kMAAkM;YAClM,2KAA2K;YAC3K,2KAA2K;YAC3K,6NAA6N;SAC9N;QACD,OAAO,EAAE;mCACsB;QAC/B,UAAU,EAAE;YACV,gGAAgG;YAChG,oGAAoG;SACrG;KACF;IACD,MAAM,EAAE,CAAC,eAAe,EAAE,mBAAmB,CAAC;CAC/C,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const jquery: Rule;
3
+ //# sourceMappingURL=jquery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jquery.d.ts","sourceRoot":"","sources":["../../src/rules/jquery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,MAAM,EAAE,IAsCpB,CAAC"}
@@ -0,0 +1,37 @@
1
+ export const jquery = {
2
+ id: "jquery",
3
+ title: "jQuery",
4
+ category: "async-data",
5
+ replaces: ["jquery"],
6
+ featureIds: ["dom", "events", "web-animations"],
7
+ native: "querySelectorAll(), classList and addEventListener()",
8
+ human: {
9
+ explainer: "jQuery smoothed over a decade of disagreement between browsers about selectors, events, animation and XMLHttpRequest. Each of those became one standard method that works everywhere: querySelectorAll for finding, classList for classes, closest for walking up, addEventListener for events, animate for motion and fetch for requests. What is left of the library is the chaining syntax and the plugin ecosystem built on top of it.",
10
+ snippet: `// $(".item").addClass("on") becomes:
11
+ for (const el of document.querySelectorAll(".item")) {
12
+ el.classList.add("on");
13
+ }
14
+
15
+ // $(el).closest("form") becomes:
16
+ el.closest("form");
17
+
18
+ // $(el).fadeIn() becomes:
19
+ el.animate({ opacity: [0, 1] }, { duration: 200, fill: "forwards" });`,
20
+ mdnUrl: "https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelectorAll",
21
+ },
22
+ agent: {
23
+ when: "jQuery is used for selectors, class and attribute changes, events or simple animation",
24
+ unless: [
25
+ "Plugins are installed that require the global. Bootstrap 4, Select2, slick and DataTables all expect $ to exist, so the library stays until each of those goes, and that is usually the whole job rather than a step in it.",
26
+ "You depend on $.ajax behaviour with no fetch equivalent, JSONP most of all. fetch cannot do JSONP at all, and upload progress still needs XMLHttpRequest.",
27
+ "Event delegation and namespacing are used heavily. Delegation is a target.closest check inside one listener, which is fine once and tedious across a large codebase, and namespaced off() has no direct counterpart.",
28
+ "jQuery is loaded from a CDN that is already cached, or it arrives through a server-rendered template you do not control. Removing the import does not remove the request in either case.",
29
+ "The codebase leans on jQuery's quirks, such as its own event object, its data() store, or :visible and other selectors that are not valid CSS and that querySelectorAll will reject.",
30
+ ],
31
+ snippet: 'for (const el of document.querySelectorAll(".item")) el.classList.add("on");',
32
+ handRolled: [
33
+ "a $ or qs helper wrapping querySelectorAll to get chaining back after the library was removed",
34
+ ],
35
+ },
36
+ };
37
+ //# sourceMappingURL=jquery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jquery.js","sourceRoot":"","sources":["../../src/rules/jquery.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,MAAM,GAAS;IAC1B,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,QAAQ,CAAC;IACpB,UAAU,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,gBAAgB,CAAC;IAC/C,MAAM,EAAE,sDAAsD;IAC9D,KAAK,EAAE;QACL,SAAS,EACP,4aAA4a;QAC9a,OAAO,EAAE;;;;;;;;;sEASyD;QAClE,MAAM,EACJ,4EAA4E;KAC/E;IACD,KAAK,EAAE;QACL,IAAI,EAAE,uFAAuF;QAC7F,MAAM,EAAE;YACN,6NAA6N;YAC7N,2JAA2J;YAC3J,sNAAsN;YACtN,0LAA0L;YAC1L,sLAAsL;SACvL;QACD,OAAO,EACL,8EAA8E;QAChF,UAAU,EAAE;YACV,+FAA+F;SAChG;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const lightDark: Rule;
3
+ //# sourceMappingURL=light-dark.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light-dark.d.ts","sourceRoot":"","sources":["../../src/rules/light-dark.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,SAAS,EAAE,IAqCvB,CAAC"}
@@ -0,0 +1,37 @@
1
+ export const lightDark = {
2
+ id: "light-dark",
3
+ title: "Light and dark theming",
4
+ category: "typography",
5
+ replaces: ["next-themes", "use-dark-mode", "theme-change"],
6
+ featureIds: ["light-dark", "color-scheme"],
7
+ native: "light-dark() with color-scheme",
8
+ human: {
9
+ explainer: "The usual setup declares every colour twice, once under a .dark class and once outside it, and ships JavaScript to move that class onto the html element before the first paint. light-dark() takes both values in one declaration and picks between them from the element's color-scheme, so a theme is one property rather than a class that has to be applied everywhere. Setting color-scheme on a subtree flips that subtree, which is how a manual toggle works without class plumbing.",
10
+ snippet: `:root {
11
+ /* Which of the two values below applies, and what the browser
12
+ paints for form controls and scrollbars. */
13
+ color-scheme: light dark;
14
+ --bg: light-dark(#ffffff, #111111);
15
+ --fg: light-dark(#111111, #f5f5f5);
16
+ }
17
+
18
+ /* A manual toggle sets color-scheme, and every token follows. */
19
+ [data-theme="dark"] { color-scheme: dark; }`,
20
+ mdnUrl: "https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/light-dark",
21
+ },
22
+ agent: {
23
+ when: "a site offers a light and a dark appearance",
24
+ unless: [
25
+ "You remember the choice across visits and cannot accept a flash of the wrong theme on first paint. Reading storage still needs a blocking inline script before the first paint, which is the part these libraries exist to get right.",
26
+ "You offer more than two themes, or themes that are not light and dark. light-dark() takes exactly two values, so a sepia or high-contrast option needs custom properties swapped per theme instead.",
27
+ "You read the resolved theme in JavaScript, for example to pick a chart palette or swap an image. CSS knows which branch applied and does not expose it, so that still needs matchMedia and your own state.",
28
+ "Your support target reaches below Chrome {{chrome:light-dark}}, Firefox {{firefox:light-dark}} or Safari {{safari:light-dark}}. light-dark() is newer than color-scheme by some years, so the surrounding property being safe is not proof this function is.",
29
+ ],
30
+ snippet: "color-scheme: light dark;\ncolor: light-dark(#111, #eee);",
31
+ handRolled: [
32
+ "every colour token declared twice, once at the root and again under a .dark or [data-theme] selector",
33
+ "a prefers-color-scheme media query listener in JavaScript that toggles a class on documentElement",
34
+ ],
35
+ },
36
+ };
37
+ //# sourceMappingURL=light-dark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"light-dark.js","sourceRoot":"","sources":["../../src/rules/light-dark.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAS;IAC7B,EAAE,EAAE,YAAY;IAChB,KAAK,EAAE,wBAAwB;IAC/B,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,aAAa,EAAE,eAAe,EAAE,cAAc,CAAC;IAC1D,UAAU,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;IAC1C,MAAM,EAAE,gCAAgC;IACxC,KAAK,EAAE;QACL,SAAS,EACP,+dAA+d;QACje,OAAO,EAAE;;;;;;;;;4CAS+B;QACxC,MAAM,EACJ,yEAAyE;KAC5E;IACD,KAAK,EAAE;QACL,IAAI,EAAE,6CAA6C;QACnD,MAAM,EAAE;YACN,uOAAuO;YACvO,qMAAqM;YACrM,4MAA4M;YAC5M,8PAA8P;SAC/P;QACD,OAAO,EAAE,2DAA2D;QACpE,UAAU,EAAE;YACV,sGAAsG;YACtG,mGAAmG;SACpG;KACF;CACF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"list-format.d.ts","sourceRoot":"","sources":["../../src/rules/list-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,IAqCxB,CAAC"}
1
+ {"version":3,"file":"list-format.d.ts","sourceRoot":"","sources":["../../src/rules/list-format.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,IAwCxB,CAAC"}
@@ -32,6 +32,9 @@ new Intl.ListFormat("en", { type: "disjunction" }).format(["red", "blue"]);
32
32
  "pears",
33
33
  "plums",
34
34
  ]);`,
35
+ handRolled: [
36
+ 'slice(0, -1).join(", ") joined to the last item with " and ", plus length checks for the one and two item cases',
37
+ ],
35
38
  },
36
39
  };
37
40
  //# sourceMappingURL=list-format.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-format.js","sourceRoot":"","sources":["../../src/rules/list-format.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,EAAE,EAAE,kBAAkB;IACtB,KAAK,EAAE,gCAAgC;IACvC,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,eAAe,CAAC;IAC3B,UAAU,EAAE,CAAC,kBAAkB,CAAC;IAChC,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE;QACL,SAAS,EACP,gaAAga;QACla,OAAO,EAAE;;;;;;;;iBAQI;QACb,MAAM,EACJ,kGAAkG;KACrG;IACD,KAAK,EAAE;QACL,IAAI,EAAE,2EAA2E;QACjF,MAAM,EAAE;YACN,0LAA0L;YAC1L,sLAAsL;YACtL,mKAAmK;YACnK,uKAAuK;YACvK,8KAA8K;SAC/K;QACD,OAAO,EAAE;;;;IAIT;KACD;CACF,CAAC"}
1
+ {"version":3,"file":"list-format.js","sourceRoot":"","sources":["../../src/rules/list-format.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,UAAU,GAAS;IAC9B,EAAE,EAAE,kBAAkB;IACtB,KAAK,EAAE,gCAAgC;IACvC,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,eAAe,CAAC;IAC3B,UAAU,EAAE,CAAC,kBAAkB,CAAC;IAChC,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE;QACL,SAAS,EACP,gaAAga;QACla,OAAO,EAAE;;;;;;;;iBAQI;QACb,MAAM,EACJ,kGAAkG;KACrG;IACD,KAAK,EAAE;QACL,IAAI,EAAE,2EAA2E;QACjF,MAAM,EAAE;YACN,0LAA0L;YAC1L,sLAAsL;YACtL,mKAAmK;YACnK,uKAAuK;YACvK,8KAA8K;SAC/K;QACD,OAAO,EAAE;;;;IAIT;QACA,UAAU,EAAE;YACV,iHAAiH;SAClH;KACF;CACF,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Rule } from "../schema.ts";
2
+ export declare const matchMedia: Rule;
3
+ //# sourceMappingURL=match-media.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match-media.d.ts","sourceRoot":"","sources":["../../src/rules/match-media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,IAoCxB,CAAC"}