picata 0.0.6__py3-none-any.whl → 0.0.8__py3-none-any.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (817) hide show
  1. node_modules/@ampproject/remapping/README.md +218 -0
  2. node_modules/@babel/code-frame/README.md +19 -0
  3. node_modules/@babel/compat-data/README.md +19 -0
  4. node_modules/@babel/core/README.md +19 -0
  5. node_modules/@babel/generator/README.md +19 -0
  6. node_modules/@babel/helper-annotate-as-pure/README.md +19 -0
  7. node_modules/@babel/helper-compilation-targets/README.md +19 -0
  8. node_modules/@babel/helper-create-class-features-plugin/README.md +19 -0
  9. node_modules/@babel/helper-create-regexp-features-plugin/README.md +19 -0
  10. node_modules/@babel/helper-define-polyfill-provider/README.md +15 -0
  11. node_modules/@babel/helper-member-expression-to-functions/README.md +19 -0
  12. node_modules/@babel/helper-module-imports/README.md +19 -0
  13. node_modules/@babel/helper-module-transforms/README.md +19 -0
  14. node_modules/@babel/helper-optimise-call-expression/README.md +19 -0
  15. node_modules/@babel/helper-plugin-utils/README.md +19 -0
  16. node_modules/@babel/helper-remap-async-to-generator/README.md +19 -0
  17. node_modules/@babel/helper-replace-supers/README.md +19 -0
  18. node_modules/@babel/helper-skip-transparent-expression-wrappers/README.md +19 -0
  19. node_modules/@babel/helper-string-parser/README.md +19 -0
  20. node_modules/@babel/helper-validator-identifier/README.md +19 -0
  21. node_modules/@babel/helper-validator-option/README.md +19 -0
  22. node_modules/@babel/helper-wrap-function/README.md +19 -0
  23. node_modules/@babel/helpers/README.md +19 -0
  24. node_modules/@babel/parser/README.md +19 -0
  25. node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key/README.md +19 -0
  26. node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope/README.md +19 -0
  27. node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/README.md +19 -0
  28. node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/README.md +19 -0
  29. node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/README.md +19 -0
  30. node_modules/@babel/plugin-proposal-private-property-in-object/README.md +23 -0
  31. node_modules/@babel/plugin-syntax-import-assertions/README.md +19 -0
  32. node_modules/@babel/plugin-syntax-import-attributes/README.md +19 -0
  33. node_modules/@babel/plugin-syntax-jsx/README.md +19 -0
  34. node_modules/@babel/plugin-syntax-typescript/README.md +19 -0
  35. node_modules/@babel/plugin-syntax-unicode-sets-regex/README.md +19 -0
  36. node_modules/@babel/plugin-transform-arrow-functions/README.md +19 -0
  37. node_modules/@babel/plugin-transform-async-generator-functions/README.md +19 -0
  38. node_modules/@babel/plugin-transform-async-to-generator/README.md +19 -0
  39. node_modules/@babel/plugin-transform-block-scoped-functions/README.md +19 -0
  40. node_modules/@babel/plugin-transform-block-scoping/README.md +19 -0
  41. node_modules/@babel/plugin-transform-class-properties/README.md +19 -0
  42. node_modules/@babel/plugin-transform-class-static-block/README.md +19 -0
  43. node_modules/@babel/plugin-transform-classes/README.md +19 -0
  44. node_modules/@babel/plugin-transform-computed-properties/README.md +19 -0
  45. node_modules/@babel/plugin-transform-destructuring/README.md +19 -0
  46. node_modules/@babel/plugin-transform-dotall-regex/README.md +19 -0
  47. node_modules/@babel/plugin-transform-duplicate-keys/README.md +19 -0
  48. node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex/README.md +19 -0
  49. node_modules/@babel/plugin-transform-dynamic-import/README.md +19 -0
  50. node_modules/@babel/plugin-transform-exponentiation-operator/README.md +19 -0
  51. node_modules/@babel/plugin-transform-export-namespace-from/README.md +19 -0
  52. node_modules/@babel/plugin-transform-for-of/README.md +19 -0
  53. node_modules/@babel/plugin-transform-function-name/README.md +19 -0
  54. node_modules/@babel/plugin-transform-json-strings/README.md +19 -0
  55. node_modules/@babel/plugin-transform-literals/README.md +19 -0
  56. node_modules/@babel/plugin-transform-logical-assignment-operators/README.md +19 -0
  57. node_modules/@babel/plugin-transform-member-expression-literals/README.md +19 -0
  58. node_modules/@babel/plugin-transform-modules-amd/README.md +19 -0
  59. node_modules/@babel/plugin-transform-modules-commonjs/README.md +19 -0
  60. node_modules/@babel/plugin-transform-modules-systemjs/README.md +19 -0
  61. node_modules/@babel/plugin-transform-modules-umd/README.md +19 -0
  62. node_modules/@babel/plugin-transform-named-capturing-groups-regex/README.md +19 -0
  63. node_modules/@babel/plugin-transform-new-target/README.md +19 -0
  64. node_modules/@babel/plugin-transform-nullish-coalescing-operator/README.md +19 -0
  65. node_modules/@babel/plugin-transform-numeric-separator/README.md +19 -0
  66. node_modules/@babel/plugin-transform-object-rest-spread/README.md +19 -0
  67. node_modules/@babel/plugin-transform-object-super/README.md +19 -0
  68. node_modules/@babel/plugin-transform-optional-catch-binding/README.md +19 -0
  69. node_modules/@babel/plugin-transform-optional-chaining/README.md +19 -0
  70. node_modules/@babel/plugin-transform-parameters/README.md +19 -0
  71. node_modules/@babel/plugin-transform-private-methods/README.md +19 -0
  72. node_modules/@babel/plugin-transform-private-property-in-object/README.md +19 -0
  73. node_modules/@babel/plugin-transform-property-literals/README.md +19 -0
  74. node_modules/@babel/plugin-transform-react-display-name/README.md +19 -0
  75. node_modules/@babel/plugin-transform-react-jsx/README.md +19 -0
  76. node_modules/@babel/plugin-transform-react-jsx-development/README.md +19 -0
  77. node_modules/@babel/plugin-transform-react-pure-annotations/README.md +19 -0
  78. node_modules/@babel/plugin-transform-regenerator/README.md +19 -0
  79. node_modules/@babel/plugin-transform-regexp-modifiers/README.md +19 -0
  80. node_modules/@babel/plugin-transform-reserved-words/README.md +19 -0
  81. node_modules/@babel/plugin-transform-shorthand-properties/README.md +19 -0
  82. node_modules/@babel/plugin-transform-spread/README.md +19 -0
  83. node_modules/@babel/plugin-transform-sticky-regex/README.md +19 -0
  84. node_modules/@babel/plugin-transform-template-literals/README.md +19 -0
  85. node_modules/@babel/plugin-transform-typeof-symbol/README.md +19 -0
  86. node_modules/@babel/plugin-transform-typescript/README.md +19 -0
  87. node_modules/@babel/plugin-transform-unicode-escapes/README.md +19 -0
  88. node_modules/@babel/plugin-transform-unicode-property-regex/README.md +19 -0
  89. node_modules/@babel/plugin-transform-unicode-regex/README.md +19 -0
  90. node_modules/@babel/plugin-transform-unicode-sets-regex/README.md +19 -0
  91. node_modules/@babel/preset-env/README.md +19 -0
  92. node_modules/@babel/preset-modules/README.md +171 -0
  93. node_modules/@babel/preset-react/README.md +19 -0
  94. node_modules/@babel/preset-typescript/README.md +19 -0
  95. node_modules/@babel/runtime/README.md +19 -0
  96. node_modules/@babel/template/README.md +19 -0
  97. node_modules/@babel/traverse/README.md +19 -0
  98. node_modules/@babel/types/README.md +19 -0
  99. node_modules/@csstools/cascade-layer-name-parser/LICENSE.md +20 -0
  100. node_modules/@csstools/cascade-layer-name-parser/README.md +32 -0
  101. node_modules/@csstools/color-helpers/LICENSE.md +18 -0
  102. node_modules/@csstools/color-helpers/README.md +32 -0
  103. node_modules/@csstools/css-calc/LICENSE.md +20 -0
  104. node_modules/@csstools/css-calc/README.md +132 -0
  105. node_modules/@csstools/css-color-parser/LICENSE.md +20 -0
  106. node_modules/@csstools/css-color-parser/README.md +37 -0
  107. node_modules/@csstools/css-parser-algorithms/LICENSE.md +20 -0
  108. node_modules/@csstools/css-parser-algorithms/README.md +119 -0
  109. node_modules/@csstools/css-tokenizer/LICENSE.md +20 -0
  110. node_modules/@csstools/css-tokenizer/README.md +111 -0
  111. node_modules/@csstools/media-query-list-parser/LICENSE.md +20 -0
  112. node_modules/@csstools/media-query-list-parser/README.md +61 -0
  113. node_modules/@csstools/postcss-cascade-layers/LICENSE.md +18 -0
  114. node_modules/@csstools/postcss-cascade-layers/README.md +194 -0
  115. node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
  116. node_modules/@csstools/postcss-cascade-layers/node_modules/@csstools/selector-specificity/README.md +57 -0
  117. node_modules/@csstools/postcss-cascade-layers/node_modules/postcss-selector-parser/README.md +49 -0
  118. node_modules/@csstools/postcss-color-function/LICENSE.md +18 -0
  119. node_modules/@csstools/postcss-color-function/README.md +151 -0
  120. node_modules/@csstools/postcss-color-mix-function/LICENSE.md +18 -0
  121. node_modules/@csstools/postcss-color-mix-function/README.md +74 -0
  122. node_modules/@csstools/postcss-content-alt-text/LICENSE.md +18 -0
  123. node_modules/@csstools/postcss-content-alt-text/README.md +122 -0
  124. node_modules/@csstools/postcss-exponential-functions/LICENSE.md +18 -0
  125. node_modules/@csstools/postcss-exponential-functions/README.md +91 -0
  126. node_modules/@csstools/postcss-font-format-keywords/LICENSE.md +18 -0
  127. node_modules/@csstools/postcss-font-format-keywords/README.md +88 -0
  128. node_modules/@csstools/postcss-gamut-mapping/LICENSE.md +18 -0
  129. node_modules/@csstools/postcss-gamut-mapping/README.md +71 -0
  130. node_modules/@csstools/postcss-gradients-interpolation-method/LICENSE.md +18 -0
  131. node_modules/@csstools/postcss-gradients-interpolation-method/README.md +160 -0
  132. node_modules/@csstools/postcss-hwb-function/LICENSE.md +18 -0
  133. node_modules/@csstools/postcss-hwb-function/README.md +88 -0
  134. node_modules/@csstools/postcss-ic-unit/LICENSE.md +18 -0
  135. node_modules/@csstools/postcss-ic-unit/README.md +96 -0
  136. node_modules/@csstools/postcss-initial/LICENSE.md +18 -0
  137. node_modules/@csstools/postcss-initial/README.md +74 -0
  138. node_modules/@csstools/postcss-is-pseudo-class/LICENSE.md +18 -0
  139. node_modules/@csstools/postcss-is-pseudo-class/README.md +253 -0
  140. node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
  141. node_modules/@csstools/postcss-is-pseudo-class/node_modules/@csstools/selector-specificity/README.md +57 -0
  142. node_modules/@csstools/postcss-is-pseudo-class/node_modules/postcss-selector-parser/README.md +49 -0
  143. node_modules/@csstools/postcss-light-dark-function/LICENSE.md +18 -0
  144. node_modules/@csstools/postcss-light-dark-function/README.md +174 -0
  145. node_modules/@csstools/postcss-logical-float-and-clear/LICENSE.md +18 -0
  146. node_modules/@csstools/postcss-logical-float-and-clear/README.md +86 -0
  147. node_modules/@csstools/postcss-logical-overflow/LICENSE.md +18 -0
  148. node_modules/@csstools/postcss-logical-overflow/README.md +96 -0
  149. node_modules/@csstools/postcss-logical-overscroll-behavior/LICENSE.md +18 -0
  150. node_modules/@csstools/postcss-logical-overscroll-behavior/README.md +96 -0
  151. node_modules/@csstools/postcss-logical-resize/LICENSE.md +18 -0
  152. node_modules/@csstools/postcss-logical-resize/README.md +99 -0
  153. node_modules/@csstools/postcss-logical-viewport-units/LICENSE.md +18 -0
  154. node_modules/@csstools/postcss-logical-viewport-units/README.md +105 -0
  155. node_modules/@csstools/postcss-media-minmax/LICENSE.md +21 -0
  156. node_modules/@csstools/postcss-media-minmax/README.md +54 -0
  157. node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/LICENSE.md +18 -0
  158. node_modules/@csstools/postcss-media-queries-aspect-ratio-number-values/README.md +62 -0
  159. node_modules/@csstools/postcss-nested-calc/LICENSE.md +18 -0
  160. node_modules/@csstools/postcss-nested-calc/README.md +71 -0
  161. node_modules/@csstools/postcss-normalize-display-values/LICENSE.md +18 -0
  162. node_modules/@csstools/postcss-normalize-display-values/README.md +88 -0
  163. node_modules/@csstools/postcss-oklab-function/LICENSE.md +18 -0
  164. node_modules/@csstools/postcss-oklab-function/README.md +173 -0
  165. node_modules/@csstools/postcss-progressive-custom-properties/LICENSE.md +18 -0
  166. node_modules/@csstools/postcss-progressive-custom-properties/README.md +122 -0
  167. node_modules/@csstools/postcss-random-function/LICENSE.md +18 -0
  168. node_modules/@csstools/postcss-random-function/README.md +121 -0
  169. node_modules/@csstools/postcss-relative-color-syntax/LICENSE.md +18 -0
  170. node_modules/@csstools/postcss-relative-color-syntax/README.md +74 -0
  171. node_modules/@csstools/postcss-scope-pseudo-class/LICENSE.md +18 -0
  172. node_modules/@csstools/postcss-scope-pseudo-class/README.md +73 -0
  173. node_modules/@csstools/postcss-scope-pseudo-class/node_modules/postcss-selector-parser/README.md +49 -0
  174. node_modules/@csstools/postcss-sign-functions/LICENSE.md +18 -0
  175. node_modules/@csstools/postcss-sign-functions/README.md +184 -0
  176. node_modules/@csstools/postcss-stepped-value-functions/LICENSE.md +18 -0
  177. node_modules/@csstools/postcss-stepped-value-functions/README.md +107 -0
  178. node_modules/@csstools/postcss-text-decoration-shorthand/LICENSE.md +18 -0
  179. node_modules/@csstools/postcss-text-decoration-shorthand/README.md +75 -0
  180. node_modules/@csstools/postcss-trigonometric-functions/LICENSE.md +18 -0
  181. node_modules/@csstools/postcss-trigonometric-functions/README.md +149 -0
  182. node_modules/@csstools/postcss-unset-value/LICENSE.md +18 -0
  183. node_modules/@csstools/postcss-unset-value/README.md +120 -0
  184. node_modules/@csstools/utilities/LICENSE.md +18 -0
  185. node_modules/@csstools/utilities/README.md +25 -0
  186. node_modules/@discoveryjs/json-ext/README.md +256 -0
  187. node_modules/@eslint/config-array/README.md +358 -0
  188. node_modules/@eslint/core/README.md +29 -0
  189. node_modules/@eslint/eslintrc/README.md +126 -0
  190. node_modules/@eslint/js/README.md +60 -0
  191. node_modules/@eslint/object-schema/README.md +242 -0
  192. node_modules/@eslint/plugin-kit/README.md +273 -0
  193. node_modules/@eslint-community/eslint-utils/README.md +37 -0
  194. node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys/README.md +105 -0
  195. node_modules/@eslint-community/regexpp/README.md +177 -0
  196. node_modules/@humanfs/core/README.md +140 -0
  197. node_modules/@humanfs/node/README.md +141 -0
  198. node_modules/@humanfs/node/node_modules/@humanwhocodes/retry/README.md +138 -0
  199. node_modules/@humanwhocodes/module-importer/README.md +80 -0
  200. node_modules/@humanwhocodes/retry/README.md +177 -0
  201. node_modules/@isaacs/cliui/README.md +143 -0
  202. node_modules/@jest/schemas/README.md +3 -0
  203. node_modules/@jest/types/README.md +30 -0
  204. node_modules/@jridgewell/gen-mapping/README.md +227 -0
  205. node_modules/@jridgewell/resolve-uri/README.md +40 -0
  206. node_modules/@jridgewell/set-array/README.md +37 -0
  207. node_modules/@jridgewell/source-map/README.md +184 -0
  208. node_modules/@jridgewell/sourcemap-codec/README.md +264 -0
  209. node_modules/@jridgewell/trace-mapping/README.md +257 -0
  210. node_modules/@nodelib/fs.scandir/README.md +171 -0
  211. node_modules/@nodelib/fs.stat/README.md +126 -0
  212. node_modules/@nodelib/fs.walk/README.md +215 -0
  213. node_modules/@parcel/watcher/README.md +135 -0
  214. node_modules/@parcel/watcher-linux-x64-glibc/README.md +1 -0
  215. node_modules/@pkgjs/parseargs/README.md +413 -0
  216. node_modules/@tailwindcss/typography/README.md +398 -0
  217. node_modules/@trysound/sax/README.md +202 -0
  218. node_modules/@types/eslint/README.md +15 -0
  219. node_modules/@types/eslint-scope/README.md +90 -0
  220. node_modules/@types/estree/README.md +15 -0
  221. node_modules/@types/istanbul-lib-coverage/README.md +15 -0
  222. node_modules/@types/istanbul-lib-report/README.md +15 -0
  223. node_modules/@types/istanbul-reports/README.md +86 -0
  224. node_modules/@types/json-schema/README.md +15 -0
  225. node_modules/@types/node/README.md +15 -0
  226. node_modules/@types/react/README.md +15 -0
  227. node_modules/@types/react-dom/README.md +16 -0
  228. node_modules/@types/yargs/README.md +15 -0
  229. node_modules/@types/yargs-parser/README.md +15 -0
  230. node_modules/@typescript-eslint/eslint-plugin/README.md +12 -0
  231. node_modules/@typescript-eslint/eslint-plugin/docs/rules/README.md +57 -0
  232. node_modules/@typescript-eslint/parser/README.md +12 -0
  233. node_modules/@typescript-eslint/scope-manager/README.md +10 -0
  234. node_modules/@typescript-eslint/type-utils/README.md +12 -0
  235. node_modules/@typescript-eslint/types/README.md +12 -0
  236. node_modules/@typescript-eslint/typescript-estree/README.md +14 -0
  237. node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion/README.md +135 -0
  238. node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch/README.md +454 -0
  239. node_modules/@typescript-eslint/typescript-estree/node_modules/semver/README.md +654 -0
  240. node_modules/@typescript-eslint/utils/README.md +12 -0
  241. node_modules/@typescript-eslint/visitor-keys/README.md +10 -0
  242. node_modules/@webassemblyjs/ast/README.md +167 -0
  243. node_modules/@webassemblyjs/floating-point-hex-parser/README.md +34 -0
  244. node_modules/@webassemblyjs/wasm-edit/README.md +86 -0
  245. node_modules/@webassemblyjs/wasm-parser/README.md +28 -0
  246. node_modules/@webassemblyjs/wast-printer/README.md +17 -0
  247. node_modules/@webpack-cli/configtest/README.md +31 -0
  248. node_modules/@webpack-cli/info/README.md +54 -0
  249. node_modules/@webpack-cli/serve/README.md +32 -0
  250. node_modules/@xtuc/ieee754/README.md +51 -0
  251. node_modules/@xtuc/long/README.md +257 -0
  252. node_modules/acorn/README.md +282 -0
  253. node_modules/acorn-jsx/README.md +40 -0
  254. node_modules/ajv/README.md +1497 -0
  255. node_modules/ajv/lib/dotjs/README.md +3 -0
  256. node_modules/ajv-formats/README.md +123 -0
  257. node_modules/ajv-formats/node_modules/ajv/README.md +207 -0
  258. node_modules/ajv-formats/node_modules/json-schema-traverse/README.md +95 -0
  259. node_modules/ajv-keywords/README.md +836 -0
  260. node_modules/ajv-keywords/keywords/dotjs/README.md +3 -0
  261. node_modules/any-promise/README.md +161 -0
  262. node_modules/anymatch/README.md +87 -0
  263. node_modules/arg/LICENSE.md +21 -0
  264. node_modules/arg/README.md +317 -0
  265. node_modules/argparse/README.md +84 -0
  266. node_modules/array-buffer-byte-length/README.md +40 -0
  267. node_modules/array-includes/README.md +105 -0
  268. node_modules/array.prototype.findlast/README.md +74 -0
  269. node_modules/array.prototype.flat/README.md +75 -0
  270. node_modules/array.prototype.flatmap/README.md +82 -0
  271. node_modules/array.prototype.tosorted/README.md +71 -0
  272. node_modules/arraybuffer.prototype.slice/README.md +61 -0
  273. node_modules/async-function/README.md +51 -0
  274. node_modules/autoprefixer/README.md +66 -0
  275. node_modules/available-typed-arrays/README.md +55 -0
  276. node_modules/babel-loader/README.md +411 -0
  277. node_modules/babel-plugin-polyfill-corejs2/README.md +28 -0
  278. node_modules/babel-plugin-polyfill-corejs3/README.md +78 -0
  279. node_modules/babel-plugin-polyfill-corejs3/core-js-compat/README.md +4 -0
  280. node_modules/babel-plugin-polyfill-regenerator/README.md +28 -0
  281. node_modules/balanced-match/LICENSE.md +21 -0
  282. node_modules/balanced-match/README.md +97 -0
  283. node_modules/boolbase/README.md +10 -0
  284. node_modules/brace-expansion/README.md +129 -0
  285. node_modules/braces/README.md +586 -0
  286. node_modules/browserslist/README.md +67 -0
  287. node_modules/call-bind/README.md +64 -0
  288. node_modules/call-bind-apply-helpers/README.md +62 -0
  289. node_modules/call-bound/README.md +53 -0
  290. node_modules/camelcase-css/README.md +27 -0
  291. node_modules/caniuse-api/README.md +157 -0
  292. node_modules/caniuse-lite/README.md +6 -0
  293. node_modules/chokidar/README.md +308 -0
  294. node_modules/chokidar-cli/README.md +148 -0
  295. node_modules/chrome-trace-event/README.md +31 -0
  296. node_modules/ci-info/README.md +135 -0
  297. node_modules/cliui/README.md +115 -0
  298. node_modules/cliui/node_modules/color-convert/README.md +68 -0
  299. node_modules/cliui/node_modules/color-name/README.md +11 -0
  300. node_modules/cliui/node_modules/emoji-regex/README.md +73 -0
  301. node_modules/clone-deep/README.md +106 -0
  302. node_modules/color-convert/README.md +68 -0
  303. node_modules/color-name/README.md +11 -0
  304. node_modules/colord/LICENSE.md +21 -0
  305. node_modules/colord/README.md +1053 -0
  306. node_modules/colorette/LICENSE.md +7 -0
  307. node_modules/colorette/README.md +134 -0
  308. node_modules/common-path-prefix/README.md +51 -0
  309. node_modules/concurrently/README.md +229 -0
  310. node_modules/concurrently/docs/README.md +13 -0
  311. node_modules/concurrently/node_modules/cliui/README.md +141 -0
  312. node_modules/concurrently/node_modules/emoji-regex/README.md +73 -0
  313. node_modules/concurrently/node_modules/y18n/README.md +127 -0
  314. node_modules/concurrently/node_modules/yargs/README.md +204 -0
  315. node_modules/concurrently/node_modules/yargs-parser/README.md +518 -0
  316. node_modules/convert-source-map/README.md +206 -0
  317. node_modules/core-js-compat/README.md +135 -0
  318. node_modules/cosmiconfig/README.md +782 -0
  319. node_modules/cross-spawn/README.md +89 -0
  320. node_modules/css-blank-pseudo/LICENSE.md +18 -0
  321. node_modules/css-blank-pseudo/README.md +205 -0
  322. node_modules/css-blank-pseudo/node_modules/postcss-selector-parser/README.md +49 -0
  323. node_modules/css-has-pseudo/LICENSE.md +18 -0
  324. node_modules/css-has-pseudo/README.md +331 -0
  325. node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
  326. node_modules/css-has-pseudo/node_modules/@csstools/selector-specificity/README.md +57 -0
  327. node_modules/css-has-pseudo/node_modules/postcss-selector-parser/README.md +49 -0
  328. node_modules/css-loader/README.md +2334 -0
  329. node_modules/css-loader/node_modules/semver/README.md +654 -0
  330. node_modules/css-minimizer-webpack-plugin/README.md +624 -0
  331. node_modules/css-prefers-color-scheme/LICENSE.md +18 -0
  332. node_modules/css-prefers-color-scheme/README.md +341 -0
  333. node_modules/css-select/README.md +264 -0
  334. node_modules/css-selector-tokenizer/README.md +92 -0
  335. node_modules/css-tree/README.md +193 -0
  336. node_modules/cssdb/LICENSE.md +18 -0
  337. node_modules/cssdb/README.md +35 -0
  338. node_modules/cssesc/README.md +201 -0
  339. node_modules/cssnano/README.md +6 -0
  340. node_modules/cssnano-preset-default/README.md +310 -0
  341. node_modules/cssnano-utils/README.md +15 -0
  342. node_modules/csso/README.md +422 -0
  343. node_modules/csso/node_modules/css-tree/README.md +193 -0
  344. node_modules/csso/node_modules/mdn-data/README.md +56 -0
  345. node_modules/csstype/README.md +277 -0
  346. node_modules/culori/README.md +19 -0
  347. node_modules/daisyui/README.md +65 -0
  348. node_modules/data-view-buffer/README.md +43 -0
  349. node_modules/data-view-byte-length/README.md +43 -0
  350. node_modules/data-view-byte-offset/README.md +43 -0
  351. node_modules/debug/README.md +481 -0
  352. node_modules/define-data-property/README.md +67 -0
  353. node_modules/define-properties/README.md +84 -0
  354. node_modules/detect-libc/README.md +78 -0
  355. node_modules/didyoumean/README.md +134 -0
  356. node_modules/dlv/README.md +76 -0
  357. node_modules/doctrine/README.md +165 -0
  358. node_modules/dom-serializer/README.md +109 -0
  359. node_modules/dunder-proto/README.md +54 -0
  360. node_modules/eastasianwidth/README.md +32 -0
  361. node_modules/electron-to-chromium/README.md +186 -0
  362. node_modules/emoji-regex/README.md +137 -0
  363. node_modules/enhanced-resolve/README.md +183 -0
  364. node_modules/envinfo/README.md +286 -0
  365. node_modules/error-ex/README.md +144 -0
  366. node_modules/es-abstract/README.md +43 -0
  367. node_modules/es-define-property/README.md +49 -0
  368. node_modules/es-errors/README.md +55 -0
  369. node_modules/es-iterator-helpers/README.md +110 -0
  370. node_modules/es-module-lexer/README.md +338 -0
  371. node_modules/es-object-atoms/README.md +63 -0
  372. node_modules/es-set-tostringtag/README.md +53 -0
  373. node_modules/es-shim-unscopables/README.md +57 -0
  374. node_modules/es-to-primitive/README.md +52 -0
  375. node_modules/eslint/README.md +329 -0
  376. node_modules/eslint/node_modules/glob-parent/README.md +134 -0
  377. node_modules/eslint-plugin-prettier/LICENSE.md +24 -0
  378. node_modules/eslint-plugin-prettier/README.md +202 -0
  379. node_modules/eslint-plugin-react/README.md +423 -0
  380. node_modules/eslint-plugin-tailwindcss/README.md +307 -0
  381. node_modules/eslint-scope/README.md +108 -0
  382. node_modules/eslint-visitor-keys/README.md +120 -0
  383. node_modules/espree/README.md +261 -0
  384. node_modules/esquery/README.md +27 -0
  385. node_modules/esrecurse/README.md +171 -0
  386. node_modules/estraverse/README.md +153 -0
  387. node_modules/esutils/README.md +174 -0
  388. node_modules/fast-deep-equal/README.md +96 -0
  389. node_modules/fast-diff/README.md +24 -0
  390. node_modules/fast-glob/README.md +830 -0
  391. node_modules/fast-json-stable-stringify/README.md +131 -0
  392. node_modules/fast-levenshtein/LICENSE.md +25 -0
  393. node_modules/fast-levenshtein/README.md +104 -0
  394. node_modules/fast-uri/README.md +130 -0
  395. node_modules/fastest-levenshtein/LICENSE.md +21 -0
  396. node_modules/fastest-levenshtein/README.md +57 -0
  397. node_modules/fastparse/README.md +118 -0
  398. node_modules/fastq/README.md +306 -0
  399. node_modules/file-entry-cache/README.md +115 -0
  400. node_modules/fill-range/README.md +237 -0
  401. node_modules/flat/README.md +236 -0
  402. node_modules/flat-cache/README.md +77 -0
  403. node_modules/flatted/README.md +115 -0
  404. node_modules/for-each/README.md +39 -0
  405. node_modules/foreground-child/README.md +128 -0
  406. node_modules/fraction.js/README.md +466 -0
  407. node_modules/function-bind/README.md +46 -0
  408. node_modules/function.prototype.name/README.md +55 -0
  409. node_modules/functions-have-names/README.md +40 -0
  410. node_modules/gensync/README.md +196 -0
  411. node_modules/get-caller-file/LICENSE.md +6 -0
  412. node_modules/get-caller-file/README.md +41 -0
  413. node_modules/get-intrinsic/README.md +71 -0
  414. node_modules/get-proto/README.md +50 -0
  415. node_modules/get-symbol-description/README.md +43 -0
  416. node_modules/glob/README.md +1265 -0
  417. node_modules/glob/node_modules/brace-expansion/README.md +135 -0
  418. node_modules/glob/node_modules/minimatch/README.md +454 -0
  419. node_modules/glob-parent/README.md +137 -0
  420. node_modules/glob-to-regexp/README.md +75 -0
  421. node_modules/globalthis/README.md +70 -0
  422. node_modules/gonzales-pe/README.md +808 -0
  423. node_modules/gopd/README.md +40 -0
  424. node_modules/graceful-fs/README.md +143 -0
  425. node_modules/graphemer/README.md +132 -0
  426. node_modules/has-bigints/README.md +39 -0
  427. node_modules/has-property-descriptors/README.md +43 -0
  428. node_modules/has-proto/README.md +57 -0
  429. node_modules/has-symbols/README.md +46 -0
  430. node_modules/has-tostringtag/README.md +46 -0
  431. node_modules/hasown/README.md +40 -0
  432. node_modules/hosted-git-info/README.md +133 -0
  433. node_modules/icss-utils/LICENSE.md +6 -0
  434. node_modules/icss-utils/README.md +94 -0
  435. node_modules/ignore/README.md +412 -0
  436. node_modules/immutable/README.md +761 -0
  437. node_modules/imurmurhash/README.md +122 -0
  438. node_modules/internal-slot/README.md +58 -0
  439. node_modules/interpret/README.md +244 -0
  440. node_modules/is-array-buffer/README.md +56 -0
  441. node_modules/is-arrayish/README.md +16 -0
  442. node_modules/is-async-function/README.md +41 -0
  443. node_modules/is-bigint/README.md +44 -0
  444. node_modules/is-boolean-object/README.md +57 -0
  445. node_modules/is-callable/README.md +83 -0
  446. node_modules/is-core-module/README.md +40 -0
  447. node_modules/is-data-view/README.md +69 -0
  448. node_modules/is-date-object/README.md +52 -0
  449. node_modules/is-extglob/README.md +107 -0
  450. node_modules/is-finalizationregistry/README.md +54 -0
  451. node_modules/is-generator-function/README.md +40 -0
  452. node_modules/is-glob/README.md +206 -0
  453. node_modules/is-map/README.md +52 -0
  454. node_modules/is-number/README.md +187 -0
  455. node_modules/is-number-object/README.md +55 -0
  456. node_modules/is-plain-object/README.md +104 -0
  457. node_modules/is-regex/README.md +52 -0
  458. node_modules/is-set/README.md +50 -0
  459. node_modules/is-shared-array-buffer/README.md +56 -0
  460. node_modules/is-string/README.md +56 -0
  461. node_modules/is-symbol/README.md +45 -0
  462. node_modules/is-typed-array/README.md +70 -0
  463. node_modules/is-weakmap/README.md +50 -0
  464. node_modules/is-weakref/README.md +52 -0
  465. node_modules/is-weakset/README.md +50 -0
  466. node_modules/isarray/README.md +38 -0
  467. node_modules/isexe/README.md +51 -0
  468. node_modules/isobject/README.md +122 -0
  469. node_modules/iterator.prototype/README.md +35 -0
  470. node_modules/jackspeak/LICENSE.md +55 -0
  471. node_modules/jackspeak/README.md +357 -0
  472. node_modules/jest-worker/README.md +272 -0
  473. node_modules/jiti/README.md +164 -0
  474. node_modules/js-tokens/README.md +240 -0
  475. node_modules/js-yaml/README.md +246 -0
  476. node_modules/jsesc/README.md +422 -0
  477. node_modules/json-buffer/README.md +24 -0
  478. node_modules/json-parse-better-errors/LICENSE.md +7 -0
  479. node_modules/json-parse-better-errors/README.md +46 -0
  480. node_modules/json-parse-even-better-errors/LICENSE.md +25 -0
  481. node_modules/json-parse-even-better-errors/README.md +96 -0
  482. node_modules/json-schema-traverse/README.md +83 -0
  483. node_modules/json5/LICENSE.md +23 -0
  484. node_modules/json5/README.md +282 -0
  485. node_modules/jsx-ast-utils/LICENSE.md +8 -0
  486. node_modules/jsx-ast-utils/README.md +298 -0
  487. node_modules/keyv/README.md +429 -0
  488. node_modules/kind-of/README.md +367 -0
  489. node_modules/levn/README.md +196 -0
  490. node_modules/lines-and-columns/README.md +33 -0
  491. node_modules/loader-runner/README.md +53 -0
  492. node_modules/lodash/README.md +39 -0
  493. node_modules/lodash.castarray/README.md +18 -0
  494. node_modules/lodash.debounce/README.md +18 -0
  495. node_modules/lodash.isplainobject/README.md +18 -0
  496. node_modules/lodash.memoize/README.md +18 -0
  497. node_modules/lodash.merge/README.md +18 -0
  498. node_modules/lodash.throttle/README.md +18 -0
  499. node_modules/lodash.uniq/README.md +18 -0
  500. node_modules/loose-envify/README.md +45 -0
  501. node_modules/lru-cache/README.md +166 -0
  502. node_modules/math-intrinsics/README.md +50 -0
  503. node_modules/mdn-data/README.md +62 -0
  504. node_modules/memorystream/README.md +93 -0
  505. node_modules/merge-stream/README.md +78 -0
  506. node_modules/merge2/README.md +144 -0
  507. node_modules/micromatch/README.md +1024 -0
  508. node_modules/mime-db/README.md +100 -0
  509. node_modules/mime-types/README.md +113 -0
  510. node_modules/mini-css-extract-plugin/README.md +1296 -0
  511. node_modules/minimatch/README.md +230 -0
  512. node_modules/minimist/README.md +121 -0
  513. node_modules/minipass/README.md +825 -0
  514. node_modules/mz/README.md +106 -0
  515. node_modules/nanoid/README.md +554 -0
  516. node_modules/natural-compare/README.md +125 -0
  517. node_modules/neo-async/README.md +273 -0
  518. node_modules/nice-try/README.md +32 -0
  519. node_modules/node-addon-api/LICENSE.md +9 -0
  520. node_modules/node-addon-api/README.md +319 -0
  521. node_modules/node-addon-api/tools/README.md +73 -0
  522. node_modules/node-releases/README.md +12 -0
  523. node_modules/normalize-package-data/README.md +106 -0
  524. node_modules/normalize-package-data/node_modules/semver/README.md +412 -0
  525. node_modules/normalize-path/README.md +127 -0
  526. node_modules/npm-run-all/README.md +91 -0
  527. node_modules/npm-run-all/node_modules/color-convert/README.md +68 -0
  528. node_modules/npm-run-all/node_modules/color-name/README.md +11 -0
  529. node_modules/npm-run-all/node_modules/cross-spawn/README.md +94 -0
  530. node_modules/npm-run-all/node_modules/semver/README.md +412 -0
  531. node_modules/npm-run-all/node_modules/which/README.md +51 -0
  532. node_modules/nth-check/README.md +136 -0
  533. node_modules/object-keys/README.md +76 -0
  534. node_modules/object.assign/README.md +136 -0
  535. node_modules/object.entries/README.md +58 -0
  536. node_modules/object.fromentries/README.md +50 -0
  537. node_modules/object.values/README.md +58 -0
  538. node_modules/optionator/README.md +238 -0
  539. node_modules/own-keys/README.md +45 -0
  540. node_modules/package-json-from-dist/LICENSE.md +63 -0
  541. node_modules/package-json-from-dist/README.md +110 -0
  542. node_modules/path-parse/README.md +42 -0
  543. node_modules/path-scurry/LICENSE.md +55 -0
  544. node_modules/path-scurry/README.md +636 -0
  545. node_modules/path-scurry/node_modules/lru-cache/README.md +331 -0
  546. node_modules/picocolors/README.md +21 -0
  547. node_modules/picomatch/README.md +708 -0
  548. node_modules/pirates/README.md +69 -0
  549. node_modules/possible-typed-array-names/README.md +48 -0
  550. node_modules/postcss/README.md +28 -0
  551. node_modules/postcss-attribute-case-insensitive/LICENSE.md +20 -0
  552. node_modules/postcss-attribute-case-insensitive/README.md +73 -0
  553. node_modules/postcss-attribute-case-insensitive/node_modules/postcss-selector-parser/README.md +49 -0
  554. node_modules/postcss-calc/README.md +153 -0
  555. node_modules/postcss-calc/node_modules/postcss-selector-parser/README.md +49 -0
  556. node_modules/postcss-clamp/README.md +118 -0
  557. node_modules/postcss-color-functional-notation/LICENSE.md +18 -0
  558. node_modules/postcss-color-functional-notation/README.md +134 -0
  559. node_modules/postcss-color-hex-alpha/LICENSE.md +21 -0
  560. node_modules/postcss-color-hex-alpha/README.md +72 -0
  561. node_modules/postcss-color-rebeccapurple/LICENSE.md +18 -0
  562. node_modules/postcss-color-rebeccapurple/README.md +76 -0
  563. node_modules/postcss-colormin/README.md +45 -0
  564. node_modules/postcss-convert-values/README.md +98 -0
  565. node_modules/postcss-custom-media/LICENSE.md +21 -0
  566. node_modules/postcss-custom-media/README.md +183 -0
  567. node_modules/postcss-custom-properties/LICENSE.md +21 -0
  568. node_modules/postcss-custom-properties/README.md +173 -0
  569. node_modules/postcss-custom-selectors/LICENSE.md +21 -0
  570. node_modules/postcss-custom-selectors/README.md +107 -0
  571. node_modules/postcss-custom-selectors/node_modules/postcss-selector-parser/README.md +49 -0
  572. node_modules/postcss-dir-pseudo-class/LICENSE.md +18 -0
  573. node_modules/postcss-dir-pseudo-class/README.md +193 -0
  574. node_modules/postcss-dir-pseudo-class/node_modules/postcss-selector-parser/README.md +49 -0
  575. node_modules/postcss-discard-comments/README.md +114 -0
  576. node_modules/postcss-discard-comments/node_modules/postcss-selector-parser/README.md +49 -0
  577. node_modules/postcss-discard-duplicates/README.md +70 -0
  578. node_modules/postcss-discard-empty/README.md +49 -0
  579. node_modules/postcss-discard-overridden/README.md +158 -0
  580. node_modules/postcss-double-position-gradients/LICENSE.md +18 -0
  581. node_modules/postcss-double-position-gradients/README.md +129 -0
  582. node_modules/postcss-focus-visible/LICENSE.md +18 -0
  583. node_modules/postcss-focus-visible/README.md +137 -0
  584. node_modules/postcss-focus-visible/node_modules/postcss-selector-parser/README.md +49 -0
  585. node_modules/postcss-focus-within/LICENSE.md +18 -0
  586. node_modules/postcss-focus-within/README.md +196 -0
  587. node_modules/postcss-focus-within/node_modules/postcss-selector-parser/README.md +49 -0
  588. node_modules/postcss-font-variant/README.md +74 -0
  589. node_modules/postcss-gap-properties/LICENSE.md +18 -0
  590. node_modules/postcss-gap-properties/README.md +102 -0
  591. node_modules/postcss-image-set-function/LICENSE.md +18 -0
  592. node_modules/postcss-image-set-function/README.md +164 -0
  593. node_modules/postcss-import/README.md +244 -0
  594. node_modules/postcss-js/README.md +22 -0
  595. node_modules/postcss-lab-function/LICENSE.md +18 -0
  596. node_modules/postcss-lab-function/README.md +156 -0
  597. node_modules/postcss-load-config/README.md +466 -0
  598. node_modules/postcss-loader/README.md +1175 -0
  599. node_modules/postcss-loader/node_modules/semver/README.md +654 -0
  600. node_modules/postcss-logical/LICENSE.md +18 -0
  601. node_modules/postcss-logical/README.md +117 -0
  602. node_modules/postcss-merge-longhand/README.md +50 -0
  603. node_modules/postcss-merge-rules/README.md +105 -0
  604. node_modules/postcss-merge-rules/node_modules/postcss-selector-parser/README.md +49 -0
  605. node_modules/postcss-minify-font-values/README.md +83 -0
  606. node_modules/postcss-minify-gradients/README.md +53 -0
  607. node_modules/postcss-minify-params/README.md +39 -0
  608. node_modules/postcss-minify-selectors/README.md +42 -0
  609. node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser/README.md +49 -0
  610. node_modules/postcss-modules-extract-imports/README.md +76 -0
  611. node_modules/postcss-modules-local-by-default/README.md +123 -0
  612. node_modules/postcss-modules-local-by-default/node_modules/postcss-selector-parser/README.md +49 -0
  613. node_modules/postcss-modules-scope/README.md +100 -0
  614. node_modules/postcss-modules-scope/node_modules/postcss-selector-parser/README.md +49 -0
  615. node_modules/postcss-modules-values/README.md +80 -0
  616. node_modules/postcss-nested/README.md +85 -0
  617. node_modules/postcss-nested/node_modules/postcss-selector-parser/README.md +49 -0
  618. node_modules/postcss-nesting/LICENSE.md +18 -0
  619. node_modules/postcss-nesting/README.md +255 -0
  620. node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested/LICENSE.md +18 -0
  621. node_modules/postcss-nesting/node_modules/@csstools/selector-resolve-nested/README.md +33 -0
  622. node_modules/postcss-nesting/node_modules/@csstools/selector-specificity/LICENSE.md +18 -0
  623. node_modules/postcss-nesting/node_modules/@csstools/selector-specificity/README.md +57 -0
  624. node_modules/postcss-nesting/node_modules/postcss-selector-parser/README.md +49 -0
  625. node_modules/postcss-normalize-charset/README.md +43 -0
  626. node_modules/postcss-normalize-display-values/README.md +44 -0
  627. node_modules/postcss-normalize-positions/README.md +44 -0
  628. node_modules/postcss-normalize-repeat-style/README.md +44 -0
  629. node_modules/postcss-normalize-string/README.md +59 -0
  630. node_modules/postcss-normalize-timing-functions/README.md +44 -0
  631. node_modules/postcss-normalize-unicode/README.md +46 -0
  632. node_modules/postcss-normalize-url/README.md +48 -0
  633. node_modules/postcss-normalize-whitespace/README.md +44 -0
  634. node_modules/postcss-opacity-percentage/LICENSE.md +9 -0
  635. node_modules/postcss-opacity-percentage/README.md +85 -0
  636. node_modules/postcss-ordered-values/README.md +72 -0
  637. node_modules/postcss-overflow-shorthand/LICENSE.md +18 -0
  638. node_modules/postcss-overflow-shorthand/README.md +74 -0
  639. node_modules/postcss-page-break/README.md +83 -0
  640. node_modules/postcss-place/LICENSE.md +18 -0
  641. node_modules/postcss-place/README.md +81 -0
  642. node_modules/postcss-preset-env/LICENSE.md +18 -0
  643. node_modules/postcss-preset-env/README.md +496 -0
  644. node_modules/postcss-pseudo-class-any-link/LICENSE.md +18 -0
  645. node_modules/postcss-pseudo-class-any-link/README.md +106 -0
  646. node_modules/postcss-pseudo-class-any-link/node_modules/postcss-selector-parser/README.md +49 -0
  647. node_modules/postcss-reduce-initial/README.md +92 -0
  648. node_modules/postcss-reduce-transforms/README.md +47 -0
  649. node_modules/postcss-replace-overflow-wrap/README.md +56 -0
  650. node_modules/postcss-sass/README.md +21 -0
  651. node_modules/postcss-selector-not/LICENSE.md +20 -0
  652. node_modules/postcss-selector-not/README.md +51 -0
  653. node_modules/postcss-selector-not/node_modules/postcss-selector-parser/README.md +49 -0
  654. node_modules/postcss-selector-parser/README.md +49 -0
  655. node_modules/postcss-svgo/README.md +109 -0
  656. node_modules/postcss-unique-selectors/README.md +46 -0
  657. node_modules/postcss-unique-selectors/node_modules/postcss-selector-parser/README.md +49 -0
  658. node_modules/postcss-value-parser/README.md +263 -0
  659. node_modules/prelude-ls/README.md +15 -0
  660. node_modules/prettier/README.md +109 -0
  661. node_modules/prettier-linter-helpers/LICENSE.md +24 -0
  662. node_modules/prettier-linter-helpers/README.md +14 -0
  663. node_modules/prettier-plugin-tailwindcss/README.md +239 -0
  664. node_modules/prettier-plugin-tailwindcss/dist/licenses/@shopify/prettier-plugin-liquid/README.md +158 -0
  665. node_modules/prettier-plugin-tailwindcss/dist/licenses/marko/README.md +161 -0
  666. node_modules/prettier-plugin-tailwindcss/dist/licenses/prettier-plugin-sort-imports/README.md +95 -0
  667. node_modules/prettier-plugin-tailwindcss/dist/licenses/prettier-plugin-style-order/README.md +19 -0
  668. node_modules/prop-types/README.md +302 -0
  669. node_modules/punycode/README.md +148 -0
  670. node_modules/queue-microtask/README.md +90 -0
  671. node_modules/randombytes/README.md +14 -0
  672. node_modules/react/README.md +37 -0
  673. node_modules/react-dom/README.md +60 -0
  674. node_modules/react-is/README.md +104 -0
  675. node_modules/read-cache/README.md +46 -0
  676. node_modules/readdirp/README.md +122 -0
  677. node_modules/rechoir/README.md +73 -0
  678. node_modules/reflect.getprototypeof/README.md +77 -0
  679. node_modules/regenerate/README.md +338 -0
  680. node_modules/regenerate-unicode-properties/README.md +70 -0
  681. node_modules/regenerator-runtime/README.md +31 -0
  682. node_modules/regenerator-transform/README.md +46 -0
  683. node_modules/regexp.prototype.flags/README.md +55 -0
  684. node_modules/regexpu-core/README.md +226 -0
  685. node_modules/regjsgen/README.md +41 -0
  686. node_modules/regjsparser/README.md +47 -0
  687. node_modules/regjsparser/node_modules/jsesc/README.md +422 -0
  688. node_modules/require-main-filename/README.md +26 -0
  689. node_modules/reusify/README.md +145 -0
  690. node_modules/run-parallel/README.md +85 -0
  691. node_modules/rxjs/README.md +107 -0
  692. node_modules/safe-array-concat/README.md +53 -0
  693. node_modules/safe-buffer/README.md +584 -0
  694. node_modules/safe-push-apply/README.md +59 -0
  695. node_modules/safe-regex-test/README.md +46 -0
  696. node_modules/sass/README.md +173 -0
  697. node_modules/sass/node_modules/chokidar/README.md +305 -0
  698. node_modules/sass/node_modules/readdirp/README.md +120 -0
  699. node_modules/sass-loader/README.md +904 -0
  700. node_modules/scheduler/README.md +9 -0
  701. node_modules/schema-utils/README.md +317 -0
  702. node_modules/schema-utils/node_modules/ajv/README.md +207 -0
  703. node_modules/schema-utils/node_modules/ajv-keywords/README.md +745 -0
  704. node_modules/schema-utils/node_modules/json-schema-traverse/README.md +95 -0
  705. node_modules/semver/README.md +443 -0
  706. node_modules/serialize-javascript/README.md +143 -0
  707. node_modules/set-blocking/README.md +31 -0
  708. node_modules/set-function-length/README.md +56 -0
  709. node_modules/set-function-name/README.md +61 -0
  710. node_modules/set-proto/README.md +52 -0
  711. node_modules/shallow-clone/README.md +153 -0
  712. node_modules/shell-quote/README.md +161 -0
  713. node_modules/side-channel/README.md +61 -0
  714. node_modules/side-channel-list/README.md +62 -0
  715. node_modules/side-channel-map/README.md +62 -0
  716. node_modules/side-channel-weakmap/README.md +62 -0
  717. node_modules/signal-exit/README.md +74 -0
  718. node_modules/source-map/README.md +742 -0
  719. node_modules/source-map-js/README.md +765 -0
  720. node_modules/source-map-support/LICENSE.md +21 -0
  721. node_modules/source-map-support/README.md +284 -0
  722. node_modules/spdx-correct/README.md +22 -0
  723. node_modules/spdx-exceptions/README.md +36 -0
  724. node_modules/spdx-expression-parse/README.md +91 -0
  725. node_modules/spdx-license-ids/README.md +51 -0
  726. node_modules/string-width-cjs/node_modules/emoji-regex/README.md +73 -0
  727. node_modules/string.prototype.matchall/README.md +73 -0
  728. node_modules/string.prototype.padend/README.md +46 -0
  729. node_modules/string.prototype.repeat/README.md +43 -0
  730. node_modules/string.prototype.trim/README.md +48 -0
  731. node_modules/string.prototype.trimend/README.md +46 -0
  732. node_modules/string.prototype.trimstart/README.md +46 -0
  733. node_modules/stylehacks/README.md +91 -0
  734. node_modules/stylehacks/node_modules/postcss-selector-parser/README.md +49 -0
  735. node_modules/sucrase/README.md +295 -0
  736. node_modules/supports-preserve-symlinks-flag/README.md +42 -0
  737. node_modules/svgo/README.md +199 -0
  738. node_modules/synckit/README.md +191 -0
  739. node_modules/tailwindcss/README.md +40 -0
  740. node_modules/tailwindcss/lib/postcss-plugins/nesting/README.md +42 -0
  741. node_modules/tailwindcss/lib/value-parser/README.md +3 -0
  742. node_modules/tailwindcss/node_modules/glob-parent/README.md +134 -0
  743. node_modules/tailwindcss/node_modules/postcss-selector-parser/README.md +49 -0
  744. node_modules/tailwindcss/src/postcss-plugins/nesting/README.md +42 -0
  745. node_modules/tailwindcss/src/value-parser/README.md +3 -0
  746. node_modules/tapable/README.md +296 -0
  747. node_modules/terser/README.md +1421 -0
  748. node_modules/terser-webpack-plugin/README.md +934 -0
  749. node_modules/terser-webpack-plugin/node_modules/jest-worker/README.md +247 -0
  750. node_modules/theme-change/README.md +376 -0
  751. node_modules/thenify/README.md +120 -0
  752. node_modules/thenify-all/README.md +66 -0
  753. node_modules/to-regex-range/README.md +305 -0
  754. node_modules/tree-kill/README.md +89 -0
  755. node_modules/ts-api-utils/LICENSE.md +20 -0
  756. node_modules/ts-api-utils/README.md +84 -0
  757. node_modules/ts-interface-checker/README.md +185 -0
  758. node_modules/ts-loader/README.md +773 -0
  759. node_modules/ts-loader/node_modules/semver/README.md +654 -0
  760. node_modules/ts-loader/node_modules/source-map/README.md +822 -0
  761. node_modules/tslib/README.md +164 -0
  762. node_modules/type-check/README.md +210 -0
  763. node_modules/typed-array-buffer/README.md +42 -0
  764. node_modules/typed-array-byte-length/README.md +70 -0
  765. node_modules/typed-array-byte-offset/README.md +70 -0
  766. node_modules/typed-array-length/README.md +64 -0
  767. node_modules/typescript/README.md +50 -0
  768. node_modules/typescript-eslint/README.md +12 -0
  769. node_modules/unbox-primitive/README.md +47 -0
  770. node_modules/undici-types/README.md +6 -0
  771. node_modules/unicode-canonical-property-names-ecmascript/README.md +58 -0
  772. node_modules/unicode-match-property-ecmascript/README.md +69 -0
  773. node_modules/unicode-match-property-value-ecmascript/README.md +72 -0
  774. node_modules/unicode-property-aliases-ecmascript/README.md +60 -0
  775. node_modules/update-browserslist-db/README.md +22 -0
  776. node_modules/uri-js/README.md +203 -0
  777. node_modules/util-deprecate/README.md +53 -0
  778. node_modules/validate-npm-package-license/README.md +113 -0
  779. node_modules/watchpack/README.md +133 -0
  780. node_modules/webpack/README.md +727 -0
  781. node_modules/webpack/node_modules/eslint-scope/README.md +54 -0
  782. node_modules/webpack/node_modules/estraverse/README.md +153 -0
  783. node_modules/webpack/node_modules/schema-utils/README.md +290 -0
  784. node_modules/webpack-cli/README.md +145 -0
  785. node_modules/webpack-merge/README.md +314 -0
  786. node_modules/webpack-sources/README.md +228 -0
  787. node_modules/which/README.md +54 -0
  788. node_modules/which-boxed-primitive/README.md +73 -0
  789. node_modules/which-builtin-type/README.md +67 -0
  790. node_modules/which-collection/README.md +65 -0
  791. node_modules/which-module/README.md +58 -0
  792. node_modules/which-typed-array/README.md +70 -0
  793. node_modules/wildcard/README.md +88 -0
  794. node_modules/word-wrap/README.md +201 -0
  795. node_modules/wrap-ansi-cjs/node_modules/emoji-regex/README.md +73 -0
  796. node_modules/y18n/README.md +109 -0
  797. node_modules/yallist/README.md +204 -0
  798. node_modules/yaml/README.md +188 -0
  799. node_modules/yargs/README.md +122 -0
  800. node_modules/yargs/node_modules/emoji-regex/README.md +73 -0
  801. node_modules/yargs-parser/README.md +396 -0
  802. picata/blocks.py +9 -7
  803. picata/helpers/wagtail.py +1 -1
  804. picata/models.py +2 -2
  805. picata/templatetags/__init__.py +1 -1
  806. picata/templatetags/{kill_orphans.py → filters/kill_orphans.py} +1 -5
  807. picata/templatetags/{stringify.py → filters/stringify.py} +1 -6
  808. picata/templatetags/picata_tags.py +18 -0
  809. picata/templatetags/{absolute_static.py → tags/absolute_static.py} +1 -5
  810. picata/templatetags/{menu_tags.py → tags/menu_tags.py} +1 -1
  811. picata/urls.py +3 -1
  812. picata/views.py +53 -2
  813. {picata-0.0.6.dist-info → picata-0.0.8.dist-info}/METADATA +1 -1
  814. picata-0.0.8.dist-info/RECORD +876 -0
  815. picata-0.0.6.dist-info/RECORD +0 -74
  816. {picata-0.0.6.dist-info → picata-0.0.8.dist-info}/WHEEL +0 -0
  817. {picata-0.0.6.dist-info → picata-0.0.8.dist-info}/licenses/LICENSE.md +0 -0
@@ -0,0 +1,2334 @@
1
+ <div align="center">
2
+ <img width="180" height="180" vspace="20"
3
+ src="https://cdn.worldvectorlogo.com/logos/css-3.svg">
4
+ <a href="https://github.com/webpack/webpack">
5
+ <img width="200" height="200"
6
+ src="https://webpack.js.org/assets/icon-square-big.svg">
7
+ </a>
8
+ </div>
9
+
10
+ [![npm][npm]][npm-url]
11
+ [![node][node]][node-url]
12
+ [![tests][tests]][tests-url]
13
+ [![coverage][cover]][cover-url]
14
+ [![discussion][discussion]][discussion-url]
15
+ [![size][size]][size-url]
16
+
17
+ # css-loader
18
+
19
+ The `css-loader` interprets `@import` and `url()` like `import/require()` and will resolve them.
20
+
21
+ ## Getting Started
22
+
23
+ > **Warning**
24
+ >
25
+ > To use the latest version of css-loader, webpack@5 is required
26
+
27
+ To begin, you'll need to install `css-loader`:
28
+
29
+ ```console
30
+ npm install --save-dev css-loader
31
+ ```
32
+
33
+ or
34
+
35
+ ```console
36
+ yarn add -D css-loader
37
+ ```
38
+
39
+ or
40
+
41
+ ```console
42
+ pnpm add -D css-loader
43
+ ```
44
+
45
+ Then add the plugin to your `webpack` config. For example:
46
+
47
+ **file.js**
48
+
49
+ ```js
50
+ import * as css from "file.css";
51
+ ```
52
+
53
+ **webpack.config.js**
54
+
55
+ ```js
56
+ module.exports = {
57
+ module: {
58
+ rules: [
59
+ {
60
+ test: /\.css$/i,
61
+ use: ["style-loader", "css-loader"],
62
+ },
63
+ ],
64
+ },
65
+ };
66
+ ```
67
+
68
+ And run `webpack` via your preferred method.
69
+
70
+ If, for one reason or another, you need to extract CSS as a file (i.e. do not store CSS in a JS module) you might want to check out the [recommend example](https://github.com/webpack-contrib/css-loader#recommend).
71
+
72
+ ## Options
73
+
74
+ - **[`url`](#url)**
75
+ - **[`import`](#import)**
76
+ - **[`modules`](#modules)**
77
+ - **[`sourceMap`](#sourcemap)**
78
+ - **[`importLoaders`](#importloaders)**
79
+ - **[`esModule`](#esmodule)**
80
+ - **[`exportType`](#exporttype)**
81
+
82
+ ### `url`
83
+
84
+ Type:
85
+
86
+ ```ts
87
+ type url =
88
+ | boolean
89
+ | {
90
+ filter: (url: string, resourcePath: string) => boolean;
91
+ };
92
+ ```
93
+
94
+ Default: `true`
95
+
96
+ Allow to enable/disables handling the CSS functions `url` and `image-set`.
97
+ If set to `false`, `css-loader` will not parse any paths specified in `url` or `image-set`.
98
+ A function can also be passed to control this behavior dynamically based on the path to the asset.
99
+ Starting with version [4.0.0](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md#400-2020-07-25), absolute paths are parsed based on the server root.
100
+
101
+ Examples resolutions:
102
+
103
+ ```js
104
+ url(image.png) => require('./image.png')
105
+ url('image.png') => require('./image.png')
106
+ url(./image.png) => require('./image.png')
107
+ url('./image.png') => require('./image.png')
108
+ url('http://dontwritehorriblecode.com/2112.png') => require('http://dontwritehorriblecode.com/2112.png')
109
+ image-set(url('image2x.png') 1x, url('image1x.png') 2x) => require('./image1x.png') and require('./image2x.png')
110
+ ```
111
+
112
+ To import assets from a `node_modules` path (include `resolve.modules`) and for `alias`, prefix it with a `~`:
113
+
114
+ ```js
115
+ url(~module/image.png) => require('module/image.png')
116
+ url('~module/image.png') => require('module/image.png')
117
+ url(~aliasDirectory/image.png) => require('otherDirectory/image.png')
118
+ ```
119
+
120
+ #### `boolean`
121
+
122
+ Enable/disable `url()` resolving.
123
+
124
+ **webpack.config.js**
125
+
126
+ ```js
127
+ module.exports = {
128
+ module: {
129
+ rules: [
130
+ {
131
+ test: /\.css$/i,
132
+ loader: "css-loader",
133
+ options: {
134
+ url: true,
135
+ },
136
+ },
137
+ ],
138
+ },
139
+ };
140
+ ```
141
+
142
+ #### `object`
143
+
144
+ Allow to filter `url()`. All filtered `url()` will not be resolved (left in the code as they were written).
145
+
146
+ **webpack.config.js**
147
+
148
+ ```js
149
+ module.exports = {
150
+ module: {
151
+ rules: [
152
+ {
153
+ test: /\.css$/i,
154
+ loader: "css-loader",
155
+ options: {
156
+ url: {
157
+ filter: (url, resourcePath) => {
158
+ // resourcePath - path to css file
159
+
160
+ // Don't handle `img.png` urls
161
+ if (url.includes("img.png")) {
162
+ return false;
163
+ }
164
+
165
+ // Don't handle images under root-relative /external_images/
166
+ if (/^\/external_images\//.test(path)) {
167
+ return false;
168
+ }
169
+
170
+ return true;
171
+ },
172
+ },
173
+ },
174
+ },
175
+ ],
176
+ },
177
+ };
178
+ ```
179
+
180
+ ### `import`
181
+
182
+ Type:
183
+
184
+ <!-- use other name to prettify since import is reserved keyword -->
185
+
186
+ ```ts
187
+ type importFn =
188
+ | boolean
189
+ | {
190
+ filter: (
191
+ url: string,
192
+ media: string,
193
+ resourcePath: string,
194
+ supports?: string,
195
+ layer?: string,
196
+ ) => boolean;
197
+ };
198
+ ```
199
+
200
+ Default: `true`
201
+
202
+ Allows to enables/disables `@import` at-rules handling.
203
+ Control `@import` resolving. Absolute urls in `@import` will be moved in runtime code.
204
+
205
+ Examples resolutions:
206
+
207
+ ```
208
+ @import 'style.css' => require('./style.css')
209
+ @import url(style.css) => require('./style.css')
210
+ @import url('style.css') => require('./style.css')
211
+ @import './style.css' => require('./style.css')
212
+ @import url(./style.css) => require('./style.css')
213
+ @import url('./style.css') => require('./style.css')
214
+ @import url('http://dontwritehorriblecode.com/style.css') => @import url('http://dontwritehorriblecode.com/style.css') in runtime
215
+ ```
216
+
217
+ To import styles from a `node_modules` path (include `resolve.modules`) and for `alias`, prefix it with a `~`:
218
+
219
+ ```
220
+ @import url(~module/style.css) => require('module/style.css')
221
+ @import url('~module/style.css') => require('module/style.css')
222
+ @import url(~aliasDirectory/style.css) => require('otherDirectory/style.css')
223
+ ```
224
+
225
+ #### `boolean`
226
+
227
+ Enable/disable `@import` resolving.
228
+
229
+ **webpack.config.js**
230
+
231
+ ```js
232
+ module.exports = {
233
+ module: {
234
+ rules: [
235
+ {
236
+ test: /\.css$/i,
237
+ loader: "css-loader",
238
+ options: {
239
+ import: true,
240
+ },
241
+ },
242
+ ],
243
+ },
244
+ };
245
+ ```
246
+
247
+ #### `object`
248
+
249
+ ##### `filter`
250
+
251
+ Type:
252
+
253
+ ```ts
254
+ type filter = (url: string, media: string, resourcePath: string) => boolean;
255
+ ```
256
+
257
+ Default: `undefined`
258
+
259
+ Allow to filter `@import`. All filtered `@import` will not be resolved (left in the code as they were written).
260
+
261
+ **webpack.config.js**
262
+
263
+ ```js
264
+ module.exports = {
265
+ module: {
266
+ rules: [
267
+ {
268
+ test: /\.css$/i,
269
+ loader: "css-loader",
270
+ options: {
271
+ import: {
272
+ filter: (url, media, resourcePath) => {
273
+ // resourcePath - path to css file
274
+
275
+ // Don't handle `style.css` import
276
+ if (url.includes("style.css")) {
277
+ return false;
278
+ }
279
+
280
+ return true;
281
+ },
282
+ },
283
+ },
284
+ },
285
+ ],
286
+ },
287
+ };
288
+ ```
289
+
290
+ ### `modules`
291
+
292
+ Type:
293
+
294
+ ```ts
295
+ type modules =
296
+ | boolean
297
+ | "local"
298
+ | "global"
299
+ | "pure"
300
+ | "icss"
301
+ | {
302
+ auto: boolean | regExp | ((resourcePath: string) => boolean);
303
+ mode:
304
+ | "local"
305
+ | "global"
306
+ | "pure"
307
+ | "icss"
308
+ | ((resourcePath) => "local" | "global" | "pure" | "icss");
309
+ localIdentName: string;
310
+ localIdentContext: string;
311
+ localIdentHashSalt: string;
312
+ localIdentHashFunction: string;
313
+ localIdentHashDigest: string;
314
+ localIdentRegExp: string | regExp;
315
+ getLocalIdent: (
316
+ context: LoaderContext,
317
+ localIdentName: string,
318
+ localName: string,
319
+ ) => string;
320
+ namedExport: boolean;
321
+ exportGlobals: boolean;
322
+ exportLocalsConvention:
323
+ | "as-is"
324
+ | "camel-case"
325
+ | "camel-case-only"
326
+ | "dashes"
327
+ | "dashes-only"
328
+ | ((name: string) => string);
329
+ exportOnlyLocals: boolean;
330
+ getJSON: ({
331
+ resourcePath,
332
+ imports,
333
+ exports,
334
+ replacements,
335
+ }: {
336
+ resourcePath: string;
337
+ imports: object[];
338
+ exports: object[];
339
+ replacements: object[];
340
+ }) => Promise<void> | void;
341
+ };
342
+ ```
343
+
344
+ Default: `undefined`
345
+
346
+ Allows to enable/disable CSS Modules or ICSS and setup configuration:
347
+
348
+ - `undefined` - enable CSS modules for all files matching `/\.module\.\w+$/i.test(filename)` and `/\.icss\.\w+$/i.test(filename)` regexp.
349
+ - `true` - enable CSS modules for all files.
350
+ - `false` - disables CSS Modules for all files.
351
+ - `string` - disables CSS Modules for all files and set the `mode` option, more information you can read [here](https://github.com/webpack-contrib/css-loader#mode)
352
+ - `object` - enable CSS modules for all files, if `modules.auto` option is not specified, otherwise the `modules.auto` option will determine whether if it is CSS modules or not, more information you can read [here](https://github.com/webpack-contrib/css-loader#auto)
353
+
354
+ The `modules` option enables/disables the **[CSS Modules](https://github.com/css-modules/css-modules)** specification and setup basic behaviour.
355
+
356
+ Using `false` value increase performance because we avoid parsing **CSS Modules** features, it will be useful for developers who use vanilla css or use other technologies.
357
+
358
+ **webpack.config.js**
359
+
360
+ ```js
361
+ module.exports = {
362
+ module: {
363
+ rules: [
364
+ {
365
+ test: /\.css$/i,
366
+ loader: "css-loader",
367
+ options: {
368
+ modules: true,
369
+ },
370
+ },
371
+ ],
372
+ },
373
+ };
374
+ ```
375
+
376
+ #### `Features`
377
+
378
+ ##### `Scope`
379
+
380
+ Using `local` value requires you to specify `:global` classes.
381
+ Using `global` value requires you to specify `:local` classes.
382
+ Using `pure` value requires selectors must contain at least one local class or id.
383
+
384
+ You can find more information [here](https://github.com/css-modules/css-modules).
385
+
386
+ Styles can be locally scoped to avoid globally scoping styles.
387
+
388
+ The syntax `:local(.className)` can be used to declare `className` in the local scope. The local identifiers are exported by the module.
389
+
390
+ With `:local` (without brackets) local mode can be switched on for this selector.
391
+ The `:global(.className)` notation can be used to declare an explicit global selector.
392
+ With `:global` (without brackets) global mode can be switched on for this selector.
393
+
394
+ The loader replaces local selectors with unique identifiers. The chosen unique identifiers are exported by the module.
395
+
396
+ ```css
397
+ :local(.className) {
398
+ background: red;
399
+ }
400
+ :local .className {
401
+ color: green;
402
+ }
403
+ :local(.className .subClass) {
404
+ color: green;
405
+ }
406
+ :local .className .subClass :global(.global-class-name) {
407
+ color: blue;
408
+ }
409
+ ```
410
+
411
+ ```css
412
+ ._23_aKvs-b8bW2Vg3fwHozO {
413
+ background: red;
414
+ }
415
+ ._23_aKvs-b8bW2Vg3fwHozO {
416
+ color: green;
417
+ }
418
+ ._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 {
419
+ color: green;
420
+ }
421
+ ._23_aKvs-b8bW2Vg3fwHozO ._13LGdX8RMStbBE9w-t0gZ1 .global-class-name {
422
+ color: blue;
423
+ }
424
+ ```
425
+
426
+ > **Note**
427
+ >
428
+ > Identifiers are exported
429
+
430
+ ```js
431
+ exports.locals = {
432
+ className: "_23_aKvs-b8bW2Vg3fwHozO",
433
+ subClass: "_13LGdX8RMStbBE9w-t0gZ1",
434
+ };
435
+ ```
436
+
437
+ CamelCase is recommended for local selectors. They are easier to use within the imported JS module.
438
+
439
+ You can use `:local(#someId)`, but this is not recommended. Use classes instead of ids.
440
+
441
+ ##### `Composing`
442
+
443
+ When declaring a local classname you can compose a local class from another local classname.
444
+
445
+ ```css
446
+ :local(.className) {
447
+ background: red;
448
+ color: yellow;
449
+ }
450
+
451
+ :local(.subClass) {
452
+ composes: className;
453
+ background: blue;
454
+ }
455
+ ```
456
+
457
+ This doesn't result in any change to the CSS itself but exports multiple classnames.
458
+
459
+ ```js
460
+ exports.locals = {
461
+ className: "_23_aKvs-b8bW2Vg3fwHozO",
462
+ subClass: "_13LGdX8RMStbBE9w-t0gZ1 _23_aKvs-b8bW2Vg3fwHozO",
463
+ };
464
+ ```
465
+
466
+ ```css
467
+ ._23_aKvs-b8bW2Vg3fwHozO {
468
+ background: red;
469
+ color: yellow;
470
+ }
471
+
472
+ ._13LGdX8RMStbBE9w-t0gZ1 {
473
+ background: blue;
474
+ }
475
+ ```
476
+
477
+ ##### `Importing`
478
+
479
+ To import a local classname from another module.
480
+
481
+ > **Note**
482
+ >
483
+ > We strongly recommend that you specify the extension when importing a file, since it is possible to import a file with any extension and it is not known in advance which file to use.
484
+
485
+ ```css
486
+ :local(.continueButton) {
487
+ composes: button from "library/button.css";
488
+ background: red;
489
+ }
490
+ ```
491
+
492
+ ```css
493
+ :local(.nameEdit) {
494
+ composes: edit highlight from "./edit.css";
495
+ background: red;
496
+ }
497
+ ```
498
+
499
+ To import from multiple modules use multiple `composes:` rules.
500
+
501
+ ```css
502
+ :local(.className) {
503
+ composes:
504
+ edit highlight from "./edit.css",
505
+ button from "module/button.css",
506
+ classFromThisModule;
507
+ background: red;
508
+ }
509
+ ```
510
+
511
+ or
512
+
513
+ ```css
514
+ :local(.className) {
515
+ composes: edit highlight from "./edit.css";
516
+ composes: button from "module/button.css";
517
+ composes: classFromThisModule;
518
+ background: red;
519
+ }
520
+ ```
521
+
522
+ ##### `Values`
523
+
524
+ You can use `@value` to specific values to be reused throughout a document.
525
+
526
+ We recommend use prefix `v-` for values, `s-` for selectors and `m-` for media at-rules.
527
+
528
+ ```css
529
+ @value v-primary: #BF4040;
530
+ @value s-black: black-selector;
531
+ @value m-large: (min-width: 960px);
532
+
533
+ .header {
534
+ color: v-primary;
535
+ padding: 0 10px;
536
+ }
537
+
538
+ .s-black {
539
+ color: black;
540
+ }
541
+
542
+ @media m-large {
543
+ .header {
544
+ padding: 0 20px;
545
+ }
546
+ }
547
+ ```
548
+
549
+ #### `boolean`
550
+
551
+ Enable **CSS Modules** features.
552
+
553
+ **webpack.config.js**
554
+
555
+ ```js
556
+ module.exports = {
557
+ module: {
558
+ rules: [
559
+ {
560
+ test: /\.css$/i,
561
+ loader: "css-loader",
562
+ options: {
563
+ modules: true,
564
+ },
565
+ },
566
+ ],
567
+ },
568
+ };
569
+ ```
570
+
571
+ #### `string`
572
+
573
+ Enable **CSS Modules** features and setup `mode`.
574
+
575
+ **webpack.config.js**
576
+
577
+ ```js
578
+ module.exports = {
579
+ module: {
580
+ rules: [
581
+ {
582
+ test: /\.css$/i,
583
+ loader: "css-loader",
584
+ options: {
585
+ // Using `local` value has same effect like using `modules: true`
586
+ modules: "global",
587
+ },
588
+ },
589
+ ],
590
+ },
591
+ };
592
+ ```
593
+
594
+ #### `object`
595
+
596
+ Enable **CSS Modules** features and setup options for them.
597
+
598
+ **webpack.config.js**
599
+
600
+ ```js
601
+ module.exports = {
602
+ module: {
603
+ rules: [
604
+ {
605
+ test: /\.css$/i,
606
+ loader: "css-loader",
607
+ options: {
608
+ modules: {
609
+ mode: "local",
610
+ auto: true,
611
+ exportGlobals: true,
612
+ localIdentName: "[path][name]__[local]--[hash:base64:5]",
613
+ localIdentContext: path.resolve(__dirname, "src"),
614
+ localIdentHashSalt: "my-custom-hash",
615
+ namedExport: true,
616
+ exportLocalsConvention: "as-is",
617
+ exportOnlyLocals: false,
618
+ getJSON: ({ resourcePath, imports, exports, replacements }) => {},
619
+ },
620
+ },
621
+ },
622
+ ],
623
+ },
624
+ };
625
+ ```
626
+
627
+ ##### `auto`
628
+
629
+ Type:
630
+
631
+ ```ts
632
+ type auto =
633
+ | boolean
634
+ | regExp
635
+ | ((
636
+ resourcePath: string,
637
+ resourceQuery: string,
638
+ resourceFragment: string,
639
+ ) => boolean);
640
+ ```
641
+
642
+ Default: `undefined`
643
+
644
+ Allows auto enable CSS modules/ICSS based on the filename, query or fragment when `modules` option is object.
645
+
646
+ Possible values:
647
+
648
+ - `undefined` - enable CSS modules for all files.
649
+ - `true` - enable CSS modules for all files matching `/\.module\.\w+$/i.test(filename)` and `/\.icss\.\w+$/i.test(filename)` regexp.
650
+ - `false` - disables CSS Modules.
651
+ - `RegExp` - enable CSS modules for all files matching `/RegExp/i.test(filename)` regexp.
652
+ - `function` - enable CSS Modules for files based on the filename satisfying your filter function check.
653
+
654
+ ###### `boolean`
655
+
656
+ Possible values:
657
+
658
+ - `true` - enables CSS modules or interoperable CSS format, sets the [`modules.mode`](#mode) option to `local` value for all files which satisfy `/\.module(s)?\.\w+$/i.test(filename)` condition or sets the [`modules.mode`](#mode) option to `icss` value for all files which satisfy `/\.icss\.\w+$/i.test(filename)` condition
659
+ - `false` - disables CSS modules or interoperable CSS format based on filename
660
+
661
+ **webpack.config.js**
662
+
663
+ ```js
664
+ module.exports = {
665
+ module: {
666
+ rules: [
667
+ {
668
+ test: /\.css$/i,
669
+ loader: "css-loader",
670
+ options: {
671
+ modules: {
672
+ auto: true,
673
+ },
674
+ },
675
+ },
676
+ ],
677
+ },
678
+ };
679
+ ```
680
+
681
+ ###### `RegExp`
682
+
683
+ Enable CSS modules for files based on the filename satisfying your regex check.
684
+
685
+ **webpack.config.js**
686
+
687
+ ```js
688
+ module.exports = {
689
+ module: {
690
+ rules: [
691
+ {
692
+ test: /\.css$/i,
693
+ loader: "css-loader",
694
+ options: {
695
+ modules: {
696
+ auto: /\.custom-module\.\w+$/i,
697
+ },
698
+ },
699
+ },
700
+ ],
701
+ },
702
+ };
703
+ ```
704
+
705
+ ###### `function`
706
+
707
+ Enable CSS modules for files based on the filename, query or fragment satisfying your filter function check.
708
+
709
+ **webpack.config.js**
710
+
711
+ ```js
712
+ module.exports = {
713
+ module: {
714
+ rules: [
715
+ {
716
+ test: /\.css$/i,
717
+ loader: "css-loader",
718
+ options: {
719
+ modules: {
720
+ auto: (resourcePath, resourceQuery, resourceFragment) => {
721
+ return resourcePath.endsWith(".custom-module.css");
722
+ },
723
+ },
724
+ },
725
+ },
726
+ ],
727
+ },
728
+ };
729
+ ```
730
+
731
+ ##### `mode`
732
+
733
+ Type:
734
+
735
+ ```ts
736
+ type mode =
737
+ | "local"
738
+ | "global"
739
+ | "pure"
740
+ | "icss"
741
+ | ((
742
+ resourcePath: string,
743
+ resourceQuery: string,
744
+ resourceFragment: string,
745
+ ) => "local" | "global" | "pure" | "icss");
746
+ ```
747
+
748
+ Default: `'local'`
749
+
750
+ Setup `mode` option. You can omit the value when you want `local` mode.
751
+
752
+ Controls the level of compilation applied to the input styles.
753
+
754
+ The `local`, `global`, and `pure` handles `class` and `id` scoping and `@value` values.
755
+ The `icss` will only compile the low level `Interoperable CSS` format for declaring `:import` and `:export` dependencies between CSS and other languages.
756
+
757
+ ICSS underpins CSS Module support, and provides a low level syntax for other tools to implement CSS-module variations of their own.
758
+
759
+ ###### `string`
760
+
761
+ Possible values - `local`, `global`, `pure`, and `icss`.
762
+
763
+ **webpack.config.js**
764
+
765
+ ```js
766
+ module.exports = {
767
+ module: {
768
+ rules: [
769
+ {
770
+ test: /\.css$/i,
771
+ loader: "css-loader",
772
+ options: {
773
+ modules: {
774
+ mode: "global",
775
+ },
776
+ },
777
+ },
778
+ ],
779
+ },
780
+ };
781
+ ```
782
+
783
+ ###### `function`
784
+
785
+ Allows set different values for the `mode` option based on the filename, query or fragment.
786
+
787
+ Possible return values - `local`, `global`, `pure` and `icss`.
788
+
789
+ **webpack.config.js**
790
+
791
+ ```js
792
+ module.exports = {
793
+ module: {
794
+ rules: [
795
+ {
796
+ test: /\.css$/i,
797
+ loader: "css-loader",
798
+ options: {
799
+ modules: {
800
+ // Callback must return "local", "global", or "pure" values
801
+ mode: (resourcePath, resourceQuery, resourceFragment) => {
802
+ if (/pure.css$/i.test(resourcePath)) {
803
+ return "pure";
804
+ }
805
+
806
+ if (/global.css$/i.test(resourcePath)) {
807
+ return "global";
808
+ }
809
+
810
+ return "local";
811
+ },
812
+ },
813
+ },
814
+ },
815
+ ],
816
+ },
817
+ };
818
+ ```
819
+
820
+ ##### `localIdentName`
821
+
822
+ Type:
823
+
824
+ ```ts
825
+ type localIdentName = string;
826
+ ```
827
+
828
+ Default: `'[hash:base64]'`
829
+
830
+ Allows to configure the generated local ident name.
831
+
832
+ For more information on options see:
833
+
834
+ - [webpack template strings](https://webpack.js.org/configuration/output/#template-strings),
835
+ - [output.hashDigest](https://webpack.js.org/configuration/output/#outputhashdigest),
836
+ - [output.hashDigestLength](https://webpack.js.org/configuration/output/#outputhashdigestlength),
837
+ - [output.hashFunction](https://webpack.js.org/configuration/output/#outputhashfunction),
838
+ - [output.hashSalt](https://webpack.js.org/configuration/output/#outputhashsalt).
839
+
840
+ Supported template strings:
841
+
842
+ - `[name]` the basename of the resource
843
+ - `[folder]` the folder the resource relative to the `compiler.context` option or `modules.localIdentContext` option.
844
+ - `[path]` the path of the resource relative to the `compiler.context` option or `modules.localIdentContext` option.
845
+ - `[file]` - filename and path.
846
+ - `[ext]` - extension with leading `.`.
847
+ - `[hash]` - the hash of the string, generated based on `localIdentHashSalt`, `localIdentHashFunction`, `localIdentHashDigest`, `localIdentHashDigestLength`, `localIdentContext`, `resourcePath` and `exportName`
848
+ - `[<hashFunction>:hash:<hashDigest>:<hashDigestLength>]` - hash with hash settings.
849
+ - `[local]` - original class.
850
+
851
+ Recommendations:
852
+
853
+ - use `'[path][name]__[local]'` for development
854
+ - use `'[hash:base64]'` for production
855
+
856
+ The `[local]` placeholder contains original class.
857
+
858
+ **Note:** all reserved (`<>:"/\|?*`) and control filesystem characters (excluding characters in the `[local]` placeholder) will be converted to `-`.
859
+
860
+ **webpack.config.js**
861
+
862
+ ```js
863
+ module.exports = {
864
+ module: {
865
+ rules: [
866
+ {
867
+ test: /\.css$/i,
868
+ loader: "css-loader",
869
+ options: {
870
+ modules: {
871
+ localIdentName: "[path][name]__[local]--[hash:base64:5]",
872
+ },
873
+ },
874
+ },
875
+ ],
876
+ },
877
+ };
878
+ ```
879
+
880
+ ##### `localIdentContext`
881
+
882
+ Type:
883
+
884
+ ```ts
885
+ type localIdentContex = string;
886
+ ```
887
+
888
+ Default: `compiler.context`
889
+
890
+ Allows to redefine basic loader context for local ident name.
891
+
892
+ **webpack.config.js**
893
+
894
+ ```js
895
+ module.exports = {
896
+ module: {
897
+ rules: [
898
+ {
899
+ test: /\.css$/i,
900
+ loader: "css-loader",
901
+ options: {
902
+ modules: {
903
+ localIdentContext: path.resolve(__dirname, "src"),
904
+ },
905
+ },
906
+ },
907
+ ],
908
+ },
909
+ };
910
+ ```
911
+
912
+ ##### `localIdentHashSalt`
913
+
914
+ Type:
915
+
916
+ ```ts
917
+ type localIdentHashSalt = string;
918
+ ```
919
+
920
+ Default: `undefined`
921
+
922
+ Allows to add custom hash to generate more unique classes.
923
+ For more information see [output.hashSalt](https://webpack.js.org/configuration/output/#outputhashsalt).
924
+
925
+ **webpack.config.js**
926
+
927
+ ```js
928
+ module.exports = {
929
+ module: {
930
+ rules: [
931
+ {
932
+ test: /\.css$/i,
933
+ loader: "css-loader",
934
+ options: {
935
+ modules: {
936
+ localIdentHashSalt: "hash",
937
+ },
938
+ },
939
+ },
940
+ ],
941
+ },
942
+ };
943
+ ```
944
+
945
+ ##### `localIdentHashFunction`
946
+
947
+ Type:
948
+
949
+ ```ts
950
+ type localIdentHashFunction = string;
951
+ ```
952
+
953
+ Default: `md4`
954
+
955
+ Allows to specify hash function to generate classes .
956
+ For more information see [output.hashFunction](https://webpack.js.org/configuration/output/#outputhashfunction).
957
+
958
+ **webpack.config.js**
959
+
960
+ ```js
961
+ module.exports = {
962
+ module: {
963
+ rules: [
964
+ {
965
+ test: /\.css$/i,
966
+ loader: "css-loader",
967
+ options: {
968
+ modules: {
969
+ localIdentHashFunction: "md4",
970
+ },
971
+ },
972
+ },
973
+ ],
974
+ },
975
+ };
976
+ ```
977
+
978
+ ##### `localIdentHashDigest`
979
+
980
+ Type:
981
+
982
+ ```ts
983
+ type localIdentHashDigest = string;
984
+ ```
985
+
986
+ Default: `hex`
987
+
988
+ Allows to specify hash digest to generate classes.
989
+ For more information see [output.hashDigest](https://webpack.js.org/configuration/output/#outputhashdigest).
990
+
991
+ **webpack.config.js**
992
+
993
+ ```js
994
+ module.exports = {
995
+ module: {
996
+ rules: [
997
+ {
998
+ test: /\.css$/i,
999
+ loader: "css-loader",
1000
+ options: {
1001
+ modules: {
1002
+ localIdentHashDigest: "base64",
1003
+ },
1004
+ },
1005
+ },
1006
+ ],
1007
+ },
1008
+ };
1009
+ ```
1010
+
1011
+ ##### `localIdentHashDigestLength`
1012
+
1013
+ Type:
1014
+
1015
+ ```ts
1016
+ type localIdentHashDigestLength = number;
1017
+ ```
1018
+
1019
+ Default: `20`
1020
+
1021
+ Allows to specify hash digest length to generate classes.
1022
+ For more information see [output.hashDigestLength](https://webpack.js.org/configuration/output/#outputhashdigestlength).
1023
+
1024
+ **webpack.config.js**
1025
+
1026
+ ```js
1027
+ module.exports = {
1028
+ module: {
1029
+ rules: [
1030
+ {
1031
+ test: /\.css$/i,
1032
+ loader: "css-loader",
1033
+ options: {
1034
+ modules: {
1035
+ localIdentHashDigestLength: 5,
1036
+ },
1037
+ },
1038
+ },
1039
+ ],
1040
+ },
1041
+ };
1042
+ ```
1043
+
1044
+ ##### `hashStrategy`
1045
+
1046
+ Type: `'resource-path-and-local-name' | 'minimal-subset'`
1047
+ Default: `'resource-path-and-local-name'`
1048
+
1049
+ Should local name be used when computing the hash.
1050
+
1051
+ - `'resource-path-and-local-name'` Both resource path and local name are used when hashing. Each identifier in a module gets its own hash digest, always.
1052
+ - `'minimal-subset'` Auto detect if identifier names can be omitted from hashing. Use this value to optimize the output for better GZIP or Brotli compression.
1053
+
1054
+ **webpack.config.js**
1055
+
1056
+ ```js
1057
+ module.exports = {
1058
+ module: {
1059
+ rules: [
1060
+ {
1061
+ test: /\.css$/i,
1062
+ loader: "css-loader",
1063
+ options: {
1064
+ modules: {
1065
+ hashStrategy: "minimal-subset",
1066
+ },
1067
+ },
1068
+ },
1069
+ ],
1070
+ },
1071
+ };
1072
+ ```
1073
+
1074
+ ##### `localIdentRegExp`
1075
+
1076
+ Type:
1077
+
1078
+ ```ts
1079
+ type localIdentRegExp = string | RegExp;
1080
+ ```
1081
+
1082
+ Default: `undefined`
1083
+
1084
+ **webpack.config.js**
1085
+
1086
+ ```js
1087
+ module.exports = {
1088
+ module: {
1089
+ rules: [
1090
+ {
1091
+ test: /\.css$/i,
1092
+ loader: "css-loader",
1093
+ options: {
1094
+ modules: {
1095
+ localIdentRegExp: /page-(.*)\.css/i,
1096
+ },
1097
+ },
1098
+ },
1099
+ ],
1100
+ },
1101
+ };
1102
+ ```
1103
+
1104
+ ##### `getLocalIdent`
1105
+
1106
+ Type:
1107
+
1108
+ ```ts
1109
+ type getLocalIdent = (
1110
+ context: LoaderContext,
1111
+ localIdentName: string,
1112
+ localName: string,
1113
+ ) => string;
1114
+ ```
1115
+
1116
+ Default: `undefined`
1117
+
1118
+ Allows to specify a function to generate the classname.
1119
+ By default we use built-in function to generate a classname.
1120
+ If the custom function returns `null` or `undefined`, we fallback to the
1121
+ built-in function to generate the classname.
1122
+
1123
+ **webpack.config.js**
1124
+
1125
+ ```js
1126
+ module.exports = {
1127
+ module: {
1128
+ rules: [
1129
+ {
1130
+ test: /\.css$/i,
1131
+ loader: "css-loader",
1132
+ options: {
1133
+ modules: {
1134
+ getLocalIdent: (context, localIdentName, localName, options) => {
1135
+ return "whatever_random_class_name";
1136
+ },
1137
+ },
1138
+ },
1139
+ },
1140
+ ],
1141
+ },
1142
+ };
1143
+ ```
1144
+
1145
+ ##### `namedExport`
1146
+
1147
+ Type:
1148
+
1149
+ ```ts
1150
+ type namedExport = boolean;
1151
+ ```
1152
+
1153
+ Default: Depends on the value of the `esModule` option. If the value of the `esModule` options is `true`, this value will also be `true`, otherwise it will be `false`.
1154
+
1155
+ Enables/disables ES modules named export for locals.
1156
+
1157
+ > **Warning**
1158
+ >
1159
+ > Because it is not allowed to use the `default` class in CSS when the `namedExport` is `true` (since ECMA modules have a reserved keyword `default` for default export), it will be automatically renamed to the `_default` class.
1160
+
1161
+ **styles.css**
1162
+
1163
+ ```css
1164
+ .foo-baz {
1165
+ color: red;
1166
+ }
1167
+ .bar {
1168
+ color: blue;
1169
+ }
1170
+ .default {
1171
+ color: green;
1172
+ }
1173
+ ```
1174
+
1175
+ **index.js**
1176
+
1177
+ ```js
1178
+ import * as styles from "./styles.css";
1179
+
1180
+ // If using `exportLocalsConvention: "as-is"` (default value):
1181
+ console.log(styles["foo-baz"], styles.bar);
1182
+
1183
+ // If using `exportLocalsConvention: "camel-case-only"`:
1184
+ console.log(styles.fooBaz, styles.bar);
1185
+
1186
+ // For the `default` classname
1187
+ console.log(styles["_default"]);
1188
+ ```
1189
+
1190
+ You can enable a ES module named export using:
1191
+
1192
+ **webpack.config.js**
1193
+
1194
+ ```js
1195
+ module.exports = {
1196
+ module: {
1197
+ rules: [
1198
+ {
1199
+ test: /\.css$/i,
1200
+ loader: "css-loader",
1201
+ options: {
1202
+ esModule: true,
1203
+ modules: {
1204
+ namedExport: true,
1205
+ },
1206
+ },
1207
+ },
1208
+ ],
1209
+ },
1210
+ };
1211
+ ```
1212
+
1213
+ To set a custom name for namedExport, can use [`exportLocalsConvention`](#exportLocalsConvention) option as a function.
1214
+ Example below in the [`examples`](#examples) section.
1215
+
1216
+ ##### `exportGlobals`
1217
+
1218
+ Type:
1219
+
1220
+ ```ts
1221
+ type exportsGLobals = boolean;
1222
+ ```
1223
+
1224
+ Default: `false`
1225
+
1226
+ Allow `css-loader` to export names from global class or id, so you can use that as local name.
1227
+
1228
+ **webpack.config.js**
1229
+
1230
+ ```js
1231
+ module.exports = {
1232
+ module: {
1233
+ rules: [
1234
+ {
1235
+ test: /\.css$/i,
1236
+ loader: "css-loader",
1237
+ options: {
1238
+ modules: {
1239
+ exportGlobals: true,
1240
+ },
1241
+ },
1242
+ },
1243
+ ],
1244
+ },
1245
+ };
1246
+ ```
1247
+
1248
+ ##### `exportLocalsConvention`
1249
+
1250
+ Type:
1251
+
1252
+ ```ts
1253
+ type exportLocalsConvention =
1254
+ | "as-is"
1255
+ | "camel-case"
1256
+ | "camel-case-only"
1257
+ | "dashes"
1258
+ | "dashes-only"
1259
+ | ((name: string) => string);
1260
+ ```
1261
+
1262
+ Default: Depends on the value of the `modules.namedExport` option, if `true` - `as-is`, otherwise `camel-case-only`.
1263
+
1264
+ > **Warning**
1265
+ >
1266
+ > Names of locals are converted to camelcase when the named export is `false`, i.e. the `exportLocalsConvention` option has
1267
+ > `camelCaseOnly` value by default. You can set this back to any other valid option but selectors
1268
+ > which are not valid JavaScript identifiers may run into problems which do not implement the entire modules specification.
1269
+
1270
+ Style of exported class names.
1271
+
1272
+ ###### `string`
1273
+
1274
+ By default, the exported JSON keys mirror the class names (i.e `as-is` value).
1275
+
1276
+ | Name | Type | Description |
1277
+ | :---------------------: | :------: | :----------------------------------------------------------------------------------------------- |
1278
+ | **`'as-is'`** | `string` | Class names will be exported as is. |
1279
+ | **`'camel-case'`** | `string` | Class names will be camelized, the original class name will not to be removed from the locals |
1280
+ | **`'camel-case-only'`** | `string` | Class names will be camelized, the original class name will be removed from the locals |
1281
+ | **`'dashes'`** | `string` | Only dashes in class names will be camelized |
1282
+ | **`'dashes-only'`** | `string` | Dashes in class names will be camelized, the original class name will be removed from the locals |
1283
+
1284
+ **file.css**
1285
+
1286
+ ```css
1287
+ .class-name {
1288
+ }
1289
+ ```
1290
+
1291
+ **file.js**
1292
+
1293
+ ```js
1294
+ import { className } from "file.css";
1295
+ ```
1296
+
1297
+ **webpack.config.js**
1298
+
1299
+ ```js
1300
+ module.exports = {
1301
+ module: {
1302
+ rules: [
1303
+ {
1304
+ test: /\.css$/i,
1305
+ loader: "css-loader",
1306
+ options: {
1307
+ modules: {
1308
+ exportLocalsConvention: "camel-case-only",
1309
+ },
1310
+ },
1311
+ },
1312
+ ],
1313
+ },
1314
+ };
1315
+ ```
1316
+
1317
+ ###### `function`
1318
+
1319
+ **webpack.config.js**
1320
+
1321
+ ```js
1322
+ module.exports = {
1323
+ module: {
1324
+ rules: [
1325
+ {
1326
+ test: /\.css$/i,
1327
+ loader: "css-loader",
1328
+ options: {
1329
+ modules: {
1330
+ exportLocalsConvention: function (name) {
1331
+ return name.replace(/-/g, "_");
1332
+ },
1333
+ },
1334
+ },
1335
+ },
1336
+ ],
1337
+ },
1338
+ };
1339
+ ```
1340
+
1341
+ **webpack.config.js**
1342
+
1343
+ ```js
1344
+ module.exports = {
1345
+ module: {
1346
+ rules: [
1347
+ {
1348
+ test: /\.css$/i,
1349
+ loader: "css-loader",
1350
+ options: {
1351
+ modules: {
1352
+ exportLocalsConvention: function (name) {
1353
+ return [
1354
+ name.replace(/-/g, "_"),
1355
+ // dashesCamelCase
1356
+ name.replace(/-+(\w)/g, (match, firstLetter) =>
1357
+ firstLetter.toUpperCase(),
1358
+ ),
1359
+ ];
1360
+ },
1361
+ },
1362
+ },
1363
+ },
1364
+ ],
1365
+ },
1366
+ };
1367
+ ```
1368
+
1369
+ ##### `exportOnlyLocals`
1370
+
1371
+ Type:
1372
+
1373
+ ```ts
1374
+ type exportOnlyLocals = boolean;
1375
+ ```
1376
+
1377
+ Default: `false`
1378
+
1379
+ Export only locals.
1380
+
1381
+ **Useful** when you use **css modules** for pre-rendering (for example SSR).
1382
+ For pre-rendering with `mini-css-extract-plugin` you should use this option instead of `style-loader!css-loader` **in the pre-rendering bundle**.
1383
+ It doesn't embed CSS but only exports the identifier mappings.
1384
+
1385
+ **webpack.config.js**
1386
+
1387
+ ```js
1388
+ module.exports = {
1389
+ module: {
1390
+ rules: [
1391
+ {
1392
+ test: /\.css$/i,
1393
+ loader: "css-loader",
1394
+ options: {
1395
+ modules: {
1396
+ exportOnlyLocals: true,
1397
+ },
1398
+ },
1399
+ },
1400
+ ],
1401
+ },
1402
+ };
1403
+ ```
1404
+
1405
+ ##### `getJSON`
1406
+
1407
+ Type:
1408
+
1409
+ ```ts
1410
+ type getJSON = ({
1411
+ resourcePath,
1412
+ imports,
1413
+ exports,
1414
+ replacements,
1415
+ }: {
1416
+ resourcePath: string;
1417
+ imports: object[];
1418
+ exports: object[];
1419
+ replacements: object[];
1420
+ }) => Promise<void> | void;
1421
+ ```
1422
+
1423
+ Default: `undefined`
1424
+
1425
+ Enables a callback to output the CSS modules mapping JSON. The callback is invoked with an object containing the following:
1426
+
1427
+ - `resourcePath`: the absolute path of the original resource, e.g., `/foo/bar/baz.module.css`
1428
+
1429
+ - `imports`: an array of import objects with data about import types and file paths, e.g.,
1430
+
1431
+ ```json
1432
+ [
1433
+ {
1434
+ "type": "icss_import",
1435
+ "importName": "___CSS_LOADER_ICSS_IMPORT_0___",
1436
+ "url": "\"-!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js!../../../../../node_modules/sass-loader/dist/cjs.js!../../../../baz.module.css\"",
1437
+ "icss": true,
1438
+ "index": 0
1439
+ }
1440
+ ]
1441
+ ```
1442
+
1443
+ (Note that this will include all imports, not just those relevant to CSS modules.)
1444
+
1445
+ - `exports`: an array of export objects with exported names and values, e.g.,
1446
+
1447
+ ```json
1448
+ [
1449
+ {
1450
+ "name": "main",
1451
+ "value": "D2Oy"
1452
+ }
1453
+ ]
1454
+ ```
1455
+
1456
+ - `replacements`: an array of import replacement objects used for linking `imports` and `exports`, e.g.,
1457
+
1458
+ ```json
1459
+ {
1460
+ "replacementName": "___CSS_LOADER_ICSS_IMPORT_0_REPLACEMENT_0___",
1461
+ "importName": "___CSS_LOADER_ICSS_IMPORT_0___",
1462
+ "localName": "main"
1463
+ }
1464
+ ```
1465
+
1466
+ Using `getJSON`, it's possible to output a files with all CSS module mappings.
1467
+ In the following example, we use `getJSON` to cache canonical mappings and
1468
+ add stand-ins for any composed values (through `composes`), and we use a custom plugin
1469
+ to consolidate the values and output them to a file:
1470
+
1471
+ **webpack.config.js**
1472
+
1473
+ ```js
1474
+ const path = require("path");
1475
+ const fs = require("fs");
1476
+
1477
+ const CSS_LOADER_REPLACEMENT_REGEX =
1478
+ /(___CSS_LOADER_ICSS_IMPORT_\d+_REPLACEMENT_\d+___)/g;
1479
+ const REPLACEMENT_REGEX = /___REPLACEMENT\[(.*?)]\[(.*?)]___/g;
1480
+ const IDENTIFIER_REGEX = /\[(.*?)]\[(.*?)]/;
1481
+ const replacementsMap = {};
1482
+ const canonicalValuesMap = {};
1483
+ const allExportsJson = {};
1484
+
1485
+ function generateIdentifier(resourcePath, localName) {
1486
+ return `[${resourcePath}][${localName}]`;
1487
+ }
1488
+
1489
+ function addReplacements(resourcePath, imports, exportsJson, replacements) {
1490
+ const importReplacementsMap = {};
1491
+
1492
+ // create a dict to quickly identify imports and get their absolute stand-in strings in the currently loaded file
1493
+ // e.g., { '___CSS_LOADER_ICSS_IMPORT_0_REPLACEMENT_0___': '___REPLACEMENT[/foo/bar/baz.css][main]___' }
1494
+ importReplacementsMap[resourcePath] = replacements.reduce(
1495
+ (acc, { replacementName, importName, localName }) => {
1496
+ const replacementImportUrl = imports.find(
1497
+ (importData) => importData.importName === importName,
1498
+ ).url;
1499
+ const relativePathRe = /.*!(.*)"/;
1500
+ const [, relativePath] = replacementImportUrl.match(relativePathRe);
1501
+ const importPath = path.resolve(path.dirname(resourcePath), relativePath);
1502
+ const identifier = generateIdentifier(importPath, localName);
1503
+ return { ...acc, [replacementName]: `___REPLACEMENT${identifier}___` };
1504
+ },
1505
+ {},
1506
+ );
1507
+
1508
+ // iterate through the raw exports and add stand-in variables
1509
+ // ('___REPLACEMENT[<absolute_path>][<class_name>]___')
1510
+ // to be replaced in the plugin below
1511
+ for (const [localName, classNames] of Object.entries(exportsJson)) {
1512
+ const identifier = generateIdentifier(resourcePath, localName);
1513
+
1514
+ if (CSS_LOADER_REPLACEMENT_REGEX.test(classNames)) {
1515
+ // if there are any replacements needed in the concatenated class names,
1516
+ // add them all to the replacements map to be replaced altogether later
1517
+ replacementsMap[identifier] = classNames.replaceAll(
1518
+ CSS_LOADER_REPLACEMENT_REGEX,
1519
+ (_, replacementName) =>
1520
+ importReplacementsMap[resourcePath][replacementName],
1521
+ );
1522
+ } else {
1523
+ // otherwise, no class names need replacements so we can add them to
1524
+ // canonical values map and all exports JSON verbatim
1525
+ canonicalValuesMap[identifier] = classNames;
1526
+
1527
+ allExportsJson[resourcePath] = allExportsJson[resourcePath] || {};
1528
+ allExportsJson[resourcePath][localName] = classNames;
1529
+ }
1530
+ }
1531
+ }
1532
+
1533
+ function replaceReplacements(classNames) {
1534
+ return classNames.replaceAll(
1535
+ REPLACEMENT_REGEX,
1536
+ (_, resourcePath, localName) => {
1537
+ const identifier = generateIdentifier(resourcePath, localName);
1538
+
1539
+ if (identifier in canonicalValuesMap) {
1540
+ return canonicalValuesMap[identifier];
1541
+ }
1542
+
1543
+ // Recurse through other stand-in that may be imports
1544
+ const canonicalValue = replaceReplacements(replacementsMap[identifier]);
1545
+
1546
+ canonicalValuesMap[identifier] = canonicalValue;
1547
+
1548
+ return canonicalValue;
1549
+ },
1550
+ );
1551
+ }
1552
+
1553
+ function getJSON({ resourcePath, imports, exports, replacements }) {
1554
+ const exportsJson = exports.reduce((acc, { name, value }) => {
1555
+ return { ...acc, [name]: value };
1556
+ }, {});
1557
+
1558
+ if (replacements.length > 0) {
1559
+ // replacements present --> add stand-in values for absolute paths and local names,
1560
+ // which will be resolved to their canonical values in the plugin below
1561
+ addReplacements(resourcePath, imports, exportsJson, replacements);
1562
+ } else {
1563
+ // no replacements present --> add to canonicalValuesMap verbatim
1564
+ // since all values here are canonical/don't need resolution
1565
+ for (const [key, value] of Object.entries(exportsJson)) {
1566
+ const id = `[${resourcePath}][${key}]`;
1567
+
1568
+ canonicalValuesMap[id] = value;
1569
+ }
1570
+
1571
+ allExportsJson[resourcePath] = exportsJson;
1572
+ }
1573
+ }
1574
+
1575
+ class CssModulesJsonPlugin {
1576
+ constructor(options) {
1577
+ this.options = options;
1578
+ }
1579
+
1580
+ // eslint-disable-next-line class-methods-use-this
1581
+ apply(compiler) {
1582
+ compiler.hooks.emit.tap("CssModulesJsonPlugin", () => {
1583
+ for (const [identifier, classNames] of Object.entries(replacementsMap)) {
1584
+ const adjustedClassNames = replaceReplacements(classNames);
1585
+
1586
+ replacementsMap[identifier] = adjustedClassNames;
1587
+
1588
+ const [, resourcePath, localName] = identifier.match(IDENTIFIER_REGEX);
1589
+
1590
+ allExportsJson[resourcePath] = allExportsJson[resourcePath] || {};
1591
+ allExportsJson[resourcePath][localName] = adjustedClassNames;
1592
+ }
1593
+
1594
+ fs.writeFileSync(
1595
+ this.options.filepath,
1596
+ JSON.stringify(
1597
+ // Make path to be relative to `context` (your project root)
1598
+ Object.fromEntries(
1599
+ Object.entries(allExportsJson).map((key) => {
1600
+ key[0] = path
1601
+ .relative(compiler.context, key[0])
1602
+ .replace(/\\/g, "/");
1603
+
1604
+ return key;
1605
+ }),
1606
+ ),
1607
+ null,
1608
+ 2,
1609
+ ),
1610
+ "utf8",
1611
+ );
1612
+ });
1613
+ }
1614
+ }
1615
+
1616
+ module.exports = {
1617
+ module: {
1618
+ rules: [
1619
+ {
1620
+ test: /\.css$/i,
1621
+ loader: "css-loader",
1622
+ options: { modules: { getJSON } },
1623
+ },
1624
+ ],
1625
+ },
1626
+ plugins: [
1627
+ new CssModulesJsonPlugin({
1628
+ filepath: path.resolve(__dirname, "./output.css.json"),
1629
+ }),
1630
+ ],
1631
+ };
1632
+ ```
1633
+
1634
+ In the above, all import aliases are replaced with `___REPLACEMENT[<resourcePath>][<localName>]___` in `getJSON`, and they're resolved in the custom plugin. All CSS mappings are contained in `allExportsJson`:
1635
+
1636
+ ```json
1637
+ {
1638
+ "foo/bar/baz.module.css": {
1639
+ "main": "D2Oy",
1640
+ "header": "thNN"
1641
+ },
1642
+ "foot/bear/bath.module.css": {
1643
+ "logo": "sqiR",
1644
+ "info": "XMyI"
1645
+ }
1646
+ }
1647
+ ```
1648
+
1649
+ This is saved to a local file named `output.css.json`.
1650
+
1651
+ ### `importLoaders`
1652
+
1653
+ Type:
1654
+
1655
+ ```ts
1656
+ type importLoaders = number;
1657
+ ```
1658
+
1659
+ Default: `0`
1660
+
1661
+ Allows to enables/disables or setups number of loaders applied before CSS loader for `@import` at-rules, CSS modules and ICSS imports, i.e. `@import`/`composes`/`@value value from './values.css'`/etc.
1662
+
1663
+ The option `importLoaders` allows you to configure how many loaders before `css-loader` should be applied to `@import`ed resources and CSS modules/ICSS imports.
1664
+
1665
+ **webpack.config.js**
1666
+
1667
+ ```js
1668
+ module.exports = {
1669
+ module: {
1670
+ rules: [
1671
+ {
1672
+ test: /\.css$/i,
1673
+ use: [
1674
+ "style-loader",
1675
+ {
1676
+ loader: "css-loader",
1677
+ options: {
1678
+ importLoaders: 2,
1679
+ // 0 => no loaders (default);
1680
+ // 1 => postcss-loader;
1681
+ // 2 => postcss-loader, sass-loader
1682
+ },
1683
+ },
1684
+ "postcss-loader",
1685
+ "sass-loader",
1686
+ ],
1687
+ },
1688
+ ],
1689
+ },
1690
+ };
1691
+ ```
1692
+
1693
+ This may change in the future when the module system (i. e. webpack) supports loader matching by origin.
1694
+
1695
+ ### `sourceMap`
1696
+
1697
+ Type:
1698
+
1699
+ ```ts
1700
+ type sourceMap = boolean;
1701
+ ```
1702
+
1703
+ Default: depends on the `compiler.devtool` value
1704
+
1705
+ By default generation of source maps depends on the [`devtool`](https://webpack.js.org/configuration/devtool/) option. All values enable source map generation except `eval` and `false` value.
1706
+
1707
+ **webpack.config.js**
1708
+
1709
+ ```js
1710
+ module.exports = {
1711
+ module: {
1712
+ rules: [
1713
+ {
1714
+ test: /\.css$/i,
1715
+ loader: "css-loader",
1716
+ options: {
1717
+ sourceMap: true,
1718
+ },
1719
+ },
1720
+ ],
1721
+ },
1722
+ };
1723
+ ```
1724
+
1725
+ ### `esModule`
1726
+
1727
+ Type:
1728
+
1729
+ ```ts
1730
+ type esModule = boolean;
1731
+ ```
1732
+
1733
+ Default: `true`
1734
+
1735
+ By default, `css-loader` generates JS modules that use the ES modules syntax.
1736
+ There are some cases in which using ES modules is beneficial, like in the case of [module concatenation](https://webpack.js.org/plugins/module-concatenation-plugin/) and [tree shaking](https://webpack.js.org/guides/tree-shaking/).
1737
+
1738
+ You can enable a CommonJS modules syntax using:
1739
+
1740
+ **webpack.config.js**
1741
+
1742
+ ```js
1743
+ module.exports = {
1744
+ module: {
1745
+ rules: [
1746
+ {
1747
+ test: /\.css$/i,
1748
+ loader: "css-loader",
1749
+ options: {
1750
+ esModule: false,
1751
+ },
1752
+ },
1753
+ ],
1754
+ },
1755
+ };
1756
+ ```
1757
+
1758
+ ### `exportType`
1759
+
1760
+ Type:
1761
+
1762
+ ```ts
1763
+ type exportType = "array" | "string" | "css-style-sheet";
1764
+ ```
1765
+
1766
+ Default: `'array'`
1767
+
1768
+ Allows exporting styles as array with modules, string or [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)).
1769
+ Default value is `'array'`, i.e. loader exports array of modules with specific API which is used in `style-loader` or other.
1770
+
1771
+ **webpack.config.js**
1772
+
1773
+ ```js
1774
+ module.exports = {
1775
+ module: {
1776
+ rules: [
1777
+ {
1778
+ assert: { type: "css" },
1779
+ loader: "css-loader",
1780
+ options: {
1781
+ exportType: "css-style-sheet",
1782
+ },
1783
+ },
1784
+ ],
1785
+ },
1786
+ };
1787
+ ```
1788
+
1789
+ **src/index.js**
1790
+
1791
+ ```js
1792
+ import sheet from "./styles.css" assert { type: "css" };
1793
+
1794
+ document.adoptedStyleSheets = [sheet];
1795
+ shadowRoot.adoptedStyleSheets = [sheet];
1796
+ ```
1797
+
1798
+ #### `'array'`
1799
+
1800
+ The default export is array of modules with specific API which is used in `style-loader` or other.
1801
+
1802
+ **webpack.config.js**
1803
+
1804
+ ```js
1805
+ module.exports = {
1806
+ module: {
1807
+ rules: [
1808
+ {
1809
+ test: /\.(sa|sc|c)ss$/i,
1810
+ use: ["style-loader", "css-loader", "postcss-loader", "sass-loader"],
1811
+ },
1812
+ ],
1813
+ },
1814
+ };
1815
+ ```
1816
+
1817
+ **src/index.js**
1818
+
1819
+ ```js
1820
+ // `style-loader` applies styles to DOM
1821
+ import "./styles.css";
1822
+ ```
1823
+
1824
+ #### `'string'`
1825
+
1826
+ > **Warning**
1827
+ >
1828
+ > You should not use [`style-loader`](https://github.com/webpack-contrib/style-loader) or [`mini-css-extract-plugin`](https://github.com/webpack-contrib/mini-css-extract-plugin) with this value.
1829
+
1830
+ > **Warning**
1831
+ >
1832
+ > The `esModule` option should be enabled if you want to use it with [`CSS modules`](https://github.com/webpack-contrib/css-loader#modules), by default for locals will be used [named export](https://github.com/webpack-contrib/css-loader#namedexport).
1833
+
1834
+ The default export is `string`.
1835
+
1836
+ **webpack.config.js**
1837
+
1838
+ ```js
1839
+ module.exports = {
1840
+ module: {
1841
+ rules: [
1842
+ {
1843
+ test: /\.(sa|sc|c)ss$/i,
1844
+ use: ["css-loader", "postcss-loader", "sass-loader"],
1845
+ },
1846
+ ],
1847
+ },
1848
+ };
1849
+ ```
1850
+
1851
+ **src/index.js**
1852
+
1853
+ ```js
1854
+ import sheet from "./styles.css";
1855
+
1856
+ console.log(sheet);
1857
+ ```
1858
+
1859
+ #### `'css-style-sheet'`
1860
+
1861
+ > **Warning**
1862
+ >
1863
+ > `@import` rules not yet allowed, more [information](https://web.dev/css-module-scripts/#@import-rules-not-yet-allowed)
1864
+
1865
+ > **Warning**
1866
+ >
1867
+ > You don't need [`style-loader`](https://github.com/webpack-contrib/style-loader) anymore, please remove it.
1868
+
1869
+ > **Warning**
1870
+ >
1871
+ > The `esModule` option should be enabled if you want to use it with [`CSS modules`](https://github.com/webpack-contrib/css-loader#modules), by default for locals will be used [named export](https://github.com/webpack-contrib/css-loader#namedexport).
1872
+
1873
+ > **Warning**
1874
+ >
1875
+ > Source maps are not currently supported in `Chrome` due [bug](https://bugs.chromium.org/p/chromium/issues/detail?id=1174094&q=CSSStyleSheet%20source%20maps&can=2)
1876
+
1877
+ The default export is a [constructable stylesheet](https://developers.google.com/web/updates/2019/02/constructable-stylesheets) (i.e. [`CSSStyleSheet`](https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleSheet)).
1878
+
1879
+ Useful for [custom elements](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_custom_elements) and shadow DOM.
1880
+
1881
+ More information:
1882
+
1883
+ - [Using CSS Module Scripts to import stylesheets](https://web.dev/css-module-scripts/)
1884
+ - [Constructable Stylesheets: seamless reusable styles](https://developers.google.com/web/updates/2019/02/constructable-stylesheets)
1885
+
1886
+ **webpack.config.js**
1887
+
1888
+ ```js
1889
+ module.exports = {
1890
+ module: {
1891
+ rules: [
1892
+ {
1893
+ assert: { type: "css" },
1894
+ loader: "css-loader",
1895
+ options: {
1896
+ exportType: "css-style-sheet",
1897
+ },
1898
+ },
1899
+
1900
+ // For Sass/SCSS:
1901
+ //
1902
+ // {
1903
+ // assert: { type: "css" },
1904
+ // rules: [
1905
+ // {
1906
+ // loader: "css-loader",
1907
+ // options: {
1908
+ // exportType: "css-style-sheet",
1909
+ // // Other options
1910
+ // },
1911
+ // },
1912
+ // {
1913
+ // loader: "sass-loader",
1914
+ // options: {
1915
+ // // Other options
1916
+ // },
1917
+ // },
1918
+ // ],
1919
+ // },
1920
+ ],
1921
+ },
1922
+ };
1923
+ ```
1924
+
1925
+ **src/index.js**
1926
+
1927
+ ```js
1928
+ // Example for Sass/SCSS:
1929
+ // import sheet from "./styles.scss" assert { type: "css" };
1930
+
1931
+ // Example for CSS modules:
1932
+ // import sheet, { myClass } from "./styles.scss" assert { type: "css" };
1933
+
1934
+ // Example for CSS:
1935
+ import sheet from "./styles.css" assert { type: "css" };
1936
+
1937
+ document.adoptedStyleSheets = [sheet];
1938
+ shadowRoot.adoptedStyleSheets = [sheet];
1939
+ ```
1940
+
1941
+ For migration purposes, you can use the following configuration:
1942
+
1943
+ ```js
1944
+ module.exports = {
1945
+ module: {
1946
+ rules: [
1947
+ {
1948
+ test: /\.css$/i,
1949
+ oneOf: [
1950
+ {
1951
+ assert: { type: "css" },
1952
+ loader: "css-loader",
1953
+ options: {
1954
+ exportType: "css-style-sheet",
1955
+ // Other options
1956
+ },
1957
+ },
1958
+ {
1959
+ use: [
1960
+ "style-loader",
1961
+ {
1962
+ loader: "css-loader",
1963
+ options: {
1964
+ // Other options
1965
+ },
1966
+ },
1967
+ ],
1968
+ },
1969
+ ],
1970
+ },
1971
+ ],
1972
+ },
1973
+ };
1974
+ ```
1975
+
1976
+ ## Examples
1977
+
1978
+ ### Recommend
1979
+
1980
+ For `production` builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on.
1981
+ This can be achieved by using the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin), because it creates separate css files.
1982
+ For `development` mode (including `webpack-dev-server`) you can use [style-loader](https://github.com/webpack-contrib/style-loader), because it injects CSS into the DOM using multiple `<style></style>` and works faster.
1983
+
1984
+ > **Note**
1985
+ >
1986
+ > Do not use `style-loader` and `mini-css-extract-plugin` together.
1987
+
1988
+ **webpack.config.js**
1989
+
1990
+ ```js
1991
+ const MiniCssExtractPlugin = require("mini-css-extract-plugin");
1992
+ const devMode = process.env.NODE_ENV !== "production";
1993
+
1994
+ module.exports = {
1995
+ module: {
1996
+ rules: [
1997
+ {
1998
+ // If you enable `experiments.css` or `experiments.futureDefaults`, please uncomment line below
1999
+ // type: "javascript/auto",
2000
+ test: /\.(sa|sc|c)ss$/i,
2001
+ use: [
2002
+ devMode ? "style-loader" : MiniCssExtractPlugin.loader,
2003
+ "css-loader",
2004
+ "postcss-loader",
2005
+ "sass-loader",
2006
+ ],
2007
+ },
2008
+ ],
2009
+ },
2010
+ plugins: [].concat(devMode ? [] : [new MiniCssExtractPlugin()]),
2011
+ };
2012
+ ```
2013
+
2014
+ ### Disable url resolving using the `/* webpackIgnore: true */` comment
2015
+
2016
+ With the help of the `/* webpackIgnore: true */`comment, it is possible to disable sources handling for rules and for individual declarations.
2017
+
2018
+ ```css
2019
+ /* webpackIgnore: true */
2020
+ @import url(./basic.css);
2021
+ @import /* webpackIgnore: true */ url(./imported.css);
2022
+
2023
+ .class {
2024
+ /* Disabled url handling for the all urls in the 'background' declaration */
2025
+ color: red;
2026
+ /* webpackIgnore: true */
2027
+ background: url("./url/img.png"), url("./url/img.png");
2028
+ }
2029
+
2030
+ .class {
2031
+ /* Disabled url handling for the first url in the 'background' declaration */
2032
+ color: red;
2033
+ background:
2034
+ /* webpackIgnore: true */ url("./url/img.png"), url("./url/img.png");
2035
+ }
2036
+
2037
+ .class {
2038
+ /* Disabled url handling for the second url in the 'background' declaration */
2039
+ color: red;
2040
+ background:
2041
+ url("./url/img.png"),
2042
+ /* webpackIgnore: true */ url("./url/img.png");
2043
+ }
2044
+
2045
+ /* prettier-ignore */
2046
+ .class {
2047
+ /* Disabled url handling for the second url in the 'background' declaration */
2048
+ color: red;
2049
+ background: url("./url/img.png"),
2050
+ /* webpackIgnore: true */
2051
+ url("./url/img.png");
2052
+ }
2053
+
2054
+ /* prettier-ignore */
2055
+ .class {
2056
+ /* Disabled url handling for third and sixth urls in the 'background-image' declaration */
2057
+ background-image: image-set(
2058
+ url(./url/img.png) 2x,
2059
+ url(./url/img.png) 3x,
2060
+ /* webpackIgnore: true */ url(./url/img.png) 4x,
2061
+ url(./url/img.png) 5x,
2062
+ url(./url/img.png) 6x,
2063
+ /* webpackIgnore: true */
2064
+ url(./url/img.png) 7x
2065
+ );
2066
+ }
2067
+ ```
2068
+
2069
+ ### Assets
2070
+
2071
+ The following `webpack.config.js` can load CSS files, embed small PNG/JPG/GIF/SVG images as well as fonts as [Data URLs](https://tools.ietf.org/html/rfc2397) and copy larger files to the output directory.
2072
+
2073
+ **For webpack v5:**
2074
+
2075
+ **webpack.config.js**
2076
+
2077
+ ```js
2078
+ module.exports = {
2079
+ module: {
2080
+ rules: [
2081
+ {
2082
+ test: /\.css$/i,
2083
+ use: ["style-loader", "css-loader"],
2084
+ },
2085
+ {
2086
+ test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i,
2087
+ // More information here https://webpack.js.org/guides/asset-modules/
2088
+ type: "asset",
2089
+ },
2090
+ ],
2091
+ },
2092
+ };
2093
+ ```
2094
+
2095
+ ### Extract
2096
+
2097
+ For production builds it's recommended to extract the CSS from your bundle being able to use parallel loading of CSS/JS resources later on.
2098
+
2099
+ - This can be achieved by using the [mini-css-extract-plugin](https://github.com/webpack-contrib/mini-css-extract-plugin) to extract the CSS when running in production mode.
2100
+
2101
+ - As an alternative, if seeking better development performance and css outputs that mimic production. [extract-css-chunks-webpack-plugin](https://github.com/faceyspacey/extract-css-chunks-webpack-plugin) offers a hot module reload friendly, extended version of mini-css-extract-plugin. HMR real CSS files in dev, works like mini-css in non-dev
2102
+
2103
+ ### Pure CSS, CSS modules and PostCSS
2104
+
2105
+ When you have pure CSS (without CSS modules), CSS modules and PostCSS in your project you can use this setup:
2106
+
2107
+ **webpack.config.js**
2108
+
2109
+ ```js
2110
+ module.exports = {
2111
+ module: {
2112
+ rules: [
2113
+ {
2114
+ // For pure CSS - /\.css$/i,
2115
+ // For Sass/SCSS - /\.((c|sa|sc)ss)$/i,
2116
+ // For Less - /\.((c|le)ss)$/i,
2117
+ test: /\.((c|sa|sc)ss)$/i,
2118
+ use: [
2119
+ "style-loader",
2120
+ {
2121
+ loader: "css-loader",
2122
+ options: {
2123
+ // Run `postcss-loader` on each CSS `@import` and CSS modules/ICSS imports, do not forget that `sass-loader` compile non CSS `@import`'s into a single file
2124
+ // If you need run `sass-loader` and `postcss-loader` on each CSS `@import` please set it to `2`
2125
+ importLoaders: 1,
2126
+ },
2127
+ },
2128
+ {
2129
+ loader: "postcss-loader",
2130
+ options: { plugins: () => [postcssPresetEnv({ stage: 0 })] },
2131
+ },
2132
+ // Can be `less-loader`
2133
+ {
2134
+ loader: "sass-loader",
2135
+ },
2136
+ ],
2137
+ },
2138
+ // For webpack v5
2139
+ {
2140
+ test: /\.(png|jpe?g|gif|svg|eot|ttf|woff|woff2)$/i,
2141
+ // More information here https://webpack.js.org/guides/asset-modules/
2142
+ type: "asset",
2143
+ },
2144
+ ],
2145
+ },
2146
+ };
2147
+ ```
2148
+
2149
+ ### Resolve unresolved URLs using an alias
2150
+
2151
+ **index.css**
2152
+
2153
+ ```css
2154
+ .class {
2155
+ background: url(/assets/unresolved/img.png);
2156
+ }
2157
+ ```
2158
+
2159
+ **webpack.config.js**
2160
+
2161
+ ```js
2162
+ module.exports = {
2163
+ module: {
2164
+ rules: [
2165
+ {
2166
+ test: /\.css$/i,
2167
+ use: ["style-loader", "css-loader"],
2168
+ },
2169
+ ],
2170
+ },
2171
+ resolve: {
2172
+ alias: {
2173
+ "/assets/unresolved/img.png": path.resolve(
2174
+ __dirname,
2175
+ "assets/real-path-to-img/img.png",
2176
+ ),
2177
+ },
2178
+ },
2179
+ };
2180
+ ```
2181
+
2182
+ ### Named export with custom export names
2183
+
2184
+ **webpack.config.js**
2185
+
2186
+ ```js
2187
+ module.exports = {
2188
+ module: {
2189
+ rules: [
2190
+ {
2191
+ test: /\.css$/i,
2192
+ loader: "css-loader",
2193
+ options: {
2194
+ modules: {
2195
+ namedExport: true,
2196
+ exportLocalsConvention: function (name) {
2197
+ return name.replace(/-/g, "_");
2198
+ },
2199
+ },
2200
+ },
2201
+ },
2202
+ ],
2203
+ },
2204
+ };
2205
+ ```
2206
+
2207
+ ### Separating `Interoperable CSS`-only and `CSS Module` features
2208
+
2209
+ The following setup is an example of allowing `Interoperable CSS` features only (such as `:import` and `:export`) without using further `CSS Module` functionality by setting `mode` option for all files that do not match `*.module.scss` naming convention. This is for reference as having `ICSS` features applied to all files was default `css-loader` behavior before v4.
2210
+ Meanwhile all files matching `*.module.scss` are treated as `CSS Modules` in this example.
2211
+
2212
+ An example case is assumed where a project requires canvas drawing variables to be synchronized with CSS - canvas drawing uses the same color (set by color name in JavaScript) as HTML background (set by class name in CSS).
2213
+
2214
+ **webpack.config.js**
2215
+
2216
+ ```js
2217
+ module.exports = {
2218
+ module: {
2219
+ rules: [
2220
+ // ...
2221
+ // --------
2222
+ // SCSS ALL EXCEPT MODULES
2223
+ {
2224
+ test: /\.scss$/i,
2225
+ exclude: /\.module\.scss$/i,
2226
+ use: [
2227
+ {
2228
+ loader: "style-loader",
2229
+ },
2230
+ {
2231
+ loader: "css-loader",
2232
+ options: {
2233
+ importLoaders: 1,
2234
+ modules: {
2235
+ mode: "icss",
2236
+ },
2237
+ },
2238
+ },
2239
+ {
2240
+ loader: "sass-loader",
2241
+ },
2242
+ ],
2243
+ },
2244
+ // --------
2245
+ // SCSS MODULES
2246
+ {
2247
+ test: /\.module\.scss$/i,
2248
+ use: [
2249
+ {
2250
+ loader: "style-loader",
2251
+ },
2252
+ {
2253
+ loader: "css-loader",
2254
+ options: {
2255
+ importLoaders: 1,
2256
+ modules: {
2257
+ mode: "local",
2258
+ },
2259
+ },
2260
+ },
2261
+ {
2262
+ loader: "sass-loader",
2263
+ },
2264
+ ],
2265
+ },
2266
+ // --------
2267
+ // ...
2268
+ ],
2269
+ },
2270
+ };
2271
+ ```
2272
+
2273
+ **variables.scss**
2274
+
2275
+ File treated as `ICSS`-only.
2276
+
2277
+ ```scss
2278
+ $colorBackground: red;
2279
+ :export {
2280
+ colorBackgroundCanvas: $colorBackground;
2281
+ }
2282
+ ```
2283
+
2284
+ **Component.module.scss**
2285
+
2286
+ File treated as `CSS Module`.
2287
+
2288
+ ```scss
2289
+ @import "variables.scss";
2290
+ .componentClass {
2291
+ background-color: $colorBackground;
2292
+ }
2293
+ ```
2294
+
2295
+ **Component.jsx**
2296
+
2297
+ Using both `CSS Module` functionality as well as SCSS variables directly in JavaScript.
2298
+
2299
+ ```jsx
2300
+ import * as svars from "variables.scss";
2301
+ import * as styles from "Component.module.scss";
2302
+
2303
+ // Render DOM with CSS modules class name
2304
+ // <div className={styles.componentClass}>
2305
+ // <canvas ref={mountsCanvas}/>
2306
+ // </div>
2307
+
2308
+ // Somewhere in JavaScript canvas drawing code use the variable directly
2309
+ // const ctx = mountsCanvas.current.getContext('2d',{alpha: false});
2310
+ ctx.fillStyle = `${svars.colorBackgroundCanvas}`;
2311
+ ```
2312
+
2313
+ ## Contributing
2314
+
2315
+ Please take a moment to read our contributing guidelines if you haven't yet done so.
2316
+
2317
+ [CONTRIBUTING](./.github/CONTRIBUTING.md)
2318
+
2319
+ ## License
2320
+
2321
+ [MIT](./LICENSE)
2322
+
2323
+ [npm]: https://img.shields.io/npm/v/css-loader.svg
2324
+ [npm-url]: https://npmjs.com/package/css-loader
2325
+ [node]: https://img.shields.io/node/v/css-loader.svg
2326
+ [node-url]: https://nodejs.org
2327
+ [tests]: https://github.com/webpack-contrib/css-loader/workflows/css-loader/badge.svg
2328
+ [tests-url]: https://github.com/webpack-contrib/css-loader/actions
2329
+ [cover]: https://codecov.io/gh/webpack-contrib/css-loader/branch/master/graph/badge.svg
2330
+ [cover-url]: https://codecov.io/gh/webpack-contrib/css-loader
2331
+ [discussion]: https://img.shields.io/github/discussions/webpack/webpack
2332
+ [discussion-url]: https://github.com/webpack/webpack/discussions
2333
+ [size]: https://packagephobia.now.sh/badge?p=css-loader
2334
+ [size-url]: https://packagephobia.now.sh/result?p=css-loader