// For more info, see https://github.com/storybookjs/eslint-plugin-storybook#configuration-flat-config-format import storybook from "eslint-plugin-storybook"; import js from '@eslint/js' import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import tseslint from 'typescript-eslint' import { defineConfig, globalIgnores } from 'eslint/config' import bytelystTrading from './eslint-local/index.js' export default defineConfig([globalIgnores(['dist', '.vite', 'node_modules', 'eslint-local']), { files: ['**/*.{ts,tsx}'], plugins: { 'bytelyst-trading': bytelystTrading, }, extends: [ js.configs.recommended, tseslint.configs.recommended, reactHooks.configs.flat.recommended, reactRefresh.configs.vite, ], languageOptions: { ecmaVersion: 2020, globals: globals.browser, }, rules: { '@typescript-eslint/no-explicit-any': 'off', 'react-hooks/purity': 'off', 'react-hooks/set-state-in-effect': 'off', 'react-hooks/exhaustive-deps': 'off', 'react-refresh/only-export-components': 'off', // UI audit guardrails — see docs/ui/UI_AUDIT.md §5 'bytelyst-trading/truncate-needs-title': 'warn', 'bytelyst-trading/grid-needs-minmax': 'warn', 'bytelyst-trading/no-button-with-stacked-children': 'warn', }, }, ...storybook.configs["flat/recommended"]])