tailwindcss.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import type { OxlintConfig } from 'oxlint';
  2. import eslintPluginBetterTailwindcss from 'eslint-plugin-better-tailwindcss';
  3. import { getDefaultSelectors } from 'eslint-plugin-better-tailwindcss/defaults';
  4. import { SelectorKind } from 'eslint-plugin-better-tailwindcss/types';
  5. const selectors = [
  6. ...getDefaultSelectors(),
  7. {
  8. kind: SelectorKind.Attribute,
  9. match: [{ type: 'objectValues' }],
  10. name: '^classNames$',
  11. },
  12. ];
  13. const settings = {
  14. entryPoint: 'packages/@core/base/design/src/css/global.css',
  15. selectors,
  16. };
  17. const tailwindcss: OxlintConfig = {
  18. // Generated shadcn-ui internals are intentionally left unmanaged.
  19. ignorePatterns: ['packages/@core/ui-kit/shadcn-ui/**/*'],
  20. jsPlugins: [
  21. {
  22. name: 'better-tailwindcss',
  23. specifier: 'eslint-plugin-better-tailwindcss',
  24. },
  25. ],
  26. rules: {
  27. ...eslintPluginBetterTailwindcss.configs.recommended.rules,
  28. 'better-tailwindcss/enforce-consistent-class-order': [
  29. 'error',
  30. {
  31. detectComponentClasses: true,
  32. unknownClassOrder: 'asc',
  33. unknownClassPosition: 'start',
  34. },
  35. ],
  36. // Let Prettier own wrapping decisions to avoid ping-pong formatting.
  37. 'better-tailwindcss/enforce-consistent-line-wrapping': 'off',
  38. 'better-tailwindcss/no-unknown-classes': 'off',
  39. },
  40. settings: {
  41. 'better-tailwindcss': settings,
  42. 'eslint-plugin-better-tailwindcss': settings,
  43. },
  44. };
  45. export { tailwindcss };