diff --git a/.github/workflows/pull-request-jobs.yml b/.github/workflows/pull-request-jobs.yml index 893e145..24a4ca4 100644 --- a/.github/workflows/pull-request-jobs.yml +++ b/.github/workflows/pull-request-jobs.yml @@ -5,7 +5,7 @@ name: Node.js CI on: pull_request: - branches: [ master ] + branches: ["master", "tailwind"] jobs: lint-test: diff --git a/.nvmrc b/.nvmrc index 209e3ef..9a2a0e2 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -20 +v20 diff --git a/.stylelintrc b/.stylelintrc index 886159b..118b9aa 100644 --- a/.stylelintrc +++ b/.stylelintrc @@ -15,7 +15,15 @@ "at-rule-no-vendor-prefix": true, "selector-no-vendor-prefix": true, "max-nesting-depth": 3, - "selector-max-compound-selectors": 5 + "selector-max-compound-selectors": 5, + "at-rule-no-unknown": [ + true, + { + "ignoreAtRules": [ + "tailwind" + ] + } + ] }, "plugins": [ "stylelint-order" diff --git a/eslint.config.js b/eslint.config.js index 7f40200..264d899 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -13,11 +13,13 @@ import configReactJSXRuntime from 'eslint-plugin-react/configs/jsx-runtime.js'; import pluginReactHooks from 'eslint-plugin-react-hooks'; import {fixupPluginRules} from '@eslint/compat'; import configPrettierRecommended from 'eslint-plugin-prettier/recommended'; +import tailwindPlugin from 'eslint-plugin-tailwindcss'; export default [ eslint.configs.recommended, ...eslintTS.configs.recommended, ...eslintTS.configs.stylistic, + ...tailwindPlugin.configs['flat/recommended'], configReactRecommended, configReactJSXRuntime, configPrettierRecommended, diff --git a/generate-react-cli.json b/generate-react-cli.json index 6bca345..4b91b66 100644 --- a/generate-react-cli.json +++ b/generate-react-cli.json @@ -16,7 +16,6 @@ "withHookTest": true, "customTemplates": { "component": "templates/Component/TemplateName.tsx", - "style": "templates/Component/TemplateName.module.css", "story": "templates/Component/TemplateName.stories.tsx", "index": "templates/Component/index.ts", "mdx": "templates/Component/TemplateName.mdx", diff --git a/package.json b/package.json index e0cae50..6e541d2 100644 --- a/package.json +++ b/package.json @@ -86,6 +86,7 @@ "eslint-plugin-react-refresh": "0.4.20", "eslint-plugin-ssr-friendly": "1.3.0", "eslint-plugin-storybook": "9.0.18", + "eslint-plugin-tailwindcss": "3.18.2", "generate-react-cli": "8.4.9", "husky": "9.1.7", "identity-obj-proxy": "3.0.0", @@ -105,11 +106,12 @@ "stylelint-config-standard": "38.0.0", "stylelint-order": "7.0.0", "stylelint-prettier": "5.0.3", + "tailwindcss": "3.4.17", "ts-jest": "29.4.0", "ts-node": "10.9.2", "typescript": "5.8.3", "typescript-eslint": "8.38.0", - "vite": "7.0.7", + "vite": "7.1.11", "vite-plugin-dts": "4.5.4" }, "pnpm": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ed1a992..3451453 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,7 +14,7 @@ importers: devDependencies: '@eslint/compat': specifier: 1.3.1 - version: 1.3.1(eslint@9.31.0) + version: 1.3.1(eslint@9.31.0(jiti@1.21.7)) '@eslint/eslintrc': specifier: 3.3.1 version: 3.3.1 @@ -29,10 +29,10 @@ importers: version: 9.0.18(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2)) '@storybook/builder-vite': specifier: 9.0.18 - version: 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)) + version: 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)) '@storybook/react-vite': specifier: 9.0.18 - version: 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.43.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)) + version: 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.43.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)) '@testing-library/jest-dom': specifier: 6.6.3 version: 6.6.3 @@ -53,13 +53,13 @@ importers: version: 19.1.6(@types/react@19.1.8) '@typescript-eslint/eslint-plugin': specifier: 8.38.0 - version: 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0)(typescript@5.8.3) + version: 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) '@typescript-eslint/parser': specifier: 8.38.0 - version: 8.38.0(eslint@9.31.0)(typescript@5.8.3) + version: 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) '@vitejs/plugin-react': specifier: 4.7.0 - version: 4.7.0(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)) + version: 4.7.0(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)) '@yelo/rollup-node-external': specifier: 1.0.1 version: 1.0.1 @@ -68,31 +68,34 @@ importers: version: 0.1.1 eslint: specifier: 9.31.0 - version: 9.31.0 + version: 9.31.0(jiti@1.21.7) eslint-config-prettier: specifier: 10.1.8 - version: 10.1.8(eslint@9.31.0) + version: 10.1.8(eslint@9.31.0(jiti@1.21.7)) eslint-plugin-import: specifier: 2.32.0 - version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0) + version: 2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.31.0(jiti@1.21.7)) eslint-plugin-prettier: specifier: 5.5.3 - version: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0))(eslint@9.31.0)(prettier@3.6.2) + version: 5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@1.21.7)))(eslint@9.31.0(jiti@1.21.7))(prettier@3.6.2) eslint-plugin-react: specifier: 7.37.5 - version: 7.37.5(eslint@9.31.0) + version: 7.37.5(eslint@9.31.0(jiti@1.21.7)) eslint-plugin-react-hooks: specifier: 5.2.0 - version: 5.2.0(eslint@9.31.0) + version: 5.2.0(eslint@9.31.0(jiti@1.21.7)) eslint-plugin-react-refresh: specifier: 0.4.20 - version: 0.4.20(eslint@9.31.0) + version: 0.4.20(eslint@9.31.0(jiti@1.21.7)) eslint-plugin-ssr-friendly: specifier: 1.3.0 - version: 1.3.0(eslint@9.31.0) + version: 1.3.0(eslint@9.31.0(jiti@1.21.7)) eslint-plugin-storybook: specifier: 9.0.18 - version: 9.0.18(eslint@9.31.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) + version: 9.0.18(eslint@9.31.0(jiti@1.21.7))(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) + eslint-plugin-tailwindcss: + specifier: 3.18.2 + version: 3.18.2(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3))) generate-react-cli: specifier: 8.4.9 version: 8.4.9 @@ -150,6 +153,9 @@ importers: stylelint-prettier: specifier: 5.0.3 version: 5.0.3(prettier@3.6.2)(stylelint@16.22.0(typescript@5.8.3)) + tailwindcss: + specifier: 3.4.17 + version: 3.4.17(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)) ts-jest: specifier: 29.4.0 version: 29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.5)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.0.0)(esbuild-register@3.6.0(esbuild@0.25.5))(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)))(typescript@5.8.3) @@ -161,19 +167,23 @@ importers: version: 5.8.3 typescript-eslint: specifier: 8.38.0 - version: 8.38.0(eslint@9.31.0)(typescript@5.8.3) + version: 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) vite: - specifier: 7.0.7 - version: 7.0.7(@types/node@24.0.0)(yaml@2.8.0) + specifier: 7.1.11 + version: 7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0) vite-plugin-dts: specifier: 4.5.4 - version: 4.5.4(@types/node@24.0.0)(rollup@4.43.0)(typescript@5.8.3)(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)) + version: 4.5.4(@types/node@24.0.0)(rollup@4.43.0)(typescript@5.8.3)(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)) packages: '@adobe/css-tools@4.4.3': resolution: {integrity: sha512-VQKMkwriZbaOgVCby1UDY/LDk5fIjhQicCvVPFqfe+69fWaPWydbWJ3wRt59/YzIwda1I81loas3oCoHxnqvdA==} + '@alloc/quick-lru@5.2.0': + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} + '@ampproject/remapping@2.3.0': resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} @@ -1683,6 +1693,9 @@ packages: resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} engines: {node: '>=12'} + any-promise@1.3.0: + resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==} + anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} @@ -1690,6 +1703,9 @@ packages: arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + arg@5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} @@ -1807,6 +1823,10 @@ packages: resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} engines: {node: '>=12.0.0'} + binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} + bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} @@ -1860,6 +1880,10 @@ packages: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} + camelcase-css@2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + camelcase@5.3.1: resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} engines: {node: '>=6'} @@ -1906,6 +1930,10 @@ packages: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} + chokidar@3.6.0: + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} + ci-info@4.2.0: resolution: {integrity: sha512-cYY9mypksY8NRqgDB1XD1RiJL338v/551niynFTGkZOO2LHuB2OmOYxDIe/ttN9AHwrqdum1360G3ald0W9kCg==} engines: {node: '>=8'} @@ -1978,6 +2006,10 @@ packages: resolution: {integrity: sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==} engines: {node: '>=20'} + commander@4.1.1: + resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==} + engines: {node: '>= 6'} + compare-versions@6.1.1: resolution: {integrity: sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==} @@ -2142,6 +2174,9 @@ packages: resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} engines: {node: '>=8'} + didyoumean@1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -2150,6 +2185,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} + dlv@1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} @@ -2356,6 +2394,12 @@ packages: eslint: '>=8' storybook: ^9.0.18 + eslint-plugin-tailwindcss@3.18.2: + resolution: {integrity: sha512-QbkMLDC/OkkjFQ1iz/5jkMdHfiMu/uwujUHLAJK5iwNHD8RTxVTlsUezE0toTZ6VhybNBsk+gYGPDq2agfeRNA==} + engines: {node: '>=18.12.0'} + peerDependencies: + tailwindcss: ^3.4.0 + eslint-scope@8.4.0: resolution: {integrity: sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2457,8 +2501,9 @@ packages: fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - fdir@6.4.6: - resolution: {integrity: sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==} + fdir@6.5.0: + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -2781,6 +2826,10 @@ packages: resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} engines: {node: '>= 0.4'} + is-binary-path@2.1.0: + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} + is-boolean-object@1.2.2: resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} engines: {node: '>= 0.4'} @@ -3096,6 +3145,10 @@ packages: node-notifier: optional: true + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} + hasBin: true + jju@1.4.0: resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==} @@ -3347,6 +3400,9 @@ packages: resolution: {integrity: sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + mz@2.7.0: + resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} + nano-spawn@1.0.2: resolution: {integrity: sha512-21t+ozMQDAL/UGgQVBbZ/xXvNO10++ZPuTmKRO8k9V3AClVRht49ahtDjfY8l1q6nSHOrE5ASfthzH3ol6R/hg==} engines: {node: '>=20.17'} @@ -3398,6 +3454,10 @@ packages: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} engines: {node: '>=0.10.0'} + object-hash@3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + object-inspect@1.13.4: resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} engines: {node: '>= 0.4'} @@ -3556,6 +3616,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + pify@2.3.0: + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} + pirates@4.0.7: resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} engines: {node: '>= 6'} @@ -3663,18 +3727,48 @@ packages: peerDependencies: postcss: ^8.4 + postcss-import@15.1.0: + resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + + postcss-js@4.1.0: + resolution: {integrity: sha512-oIAOTqgIo7q2EOwbhb8UalYePMvYoIeRY2YKntdpFQXNosSu3vLrniGgmH9OKs/qAkfoj5oB3le/7mINW1LCfw==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.4.21 + postcss-lab-function@7.0.10: resolution: {integrity: sha512-tqs6TCEv9tC1Riq6fOzHuHcZyhg4k3gIAMB8GGY/zA1ssGdm6puHMVE7t75aOSoFg7UD2wyrFFhbldiCMyyFTQ==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 + postcss-load-config@4.0.2: + resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==} + engines: {node: '>= 14'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + postcss-logical@8.1.0: resolution: {integrity: sha512-pL1hXFQ2fEXNKiNiAgtfA005T9FBxky5zkX6s4GZM2D8RkVgRqz3f4g1JUoq925zXv495qk8UNldDwh8uGEDoA==} engines: {node: '>=18'} peerDependencies: postcss: ^8.4 + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + postcss-nesting@13.0.2: resolution: {integrity: sha512-1YCI290TX+VP0U/K/aFxzHzQWHWURL+CtHMSbex1lCdpXD1SoR2sYuxDu5aNI9lPoXpKTCggFZiDJbwylU0LEQ==} engines: {node: '>=18'} @@ -3736,6 +3830,10 @@ packages: peerDependencies: postcss: ^8.4 + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + postcss-selector-parser@7.1.0: resolution: {integrity: sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==} engines: {node: '>=4'} @@ -3820,6 +3918,9 @@ packages: resolution: {integrity: sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==} engines: {node: '>=0.10.0'} + read-cache@1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + read-package-json-fast@4.0.0: resolution: {integrity: sha512-qpt8EwugBWDw2cgE2W+/3oxC+KTez2uSVR8JU9Q36TXPAGCaozfQUs59v4j4GFpWTaw0i6hAZSvOmu1J0uOEUg==} engines: {node: ^18.17.0 || >=20.5.0} @@ -3828,6 +3929,10 @@ packages: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} + readdirp@3.6.0: + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} + recast@0.23.11: resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} engines: {node: '>= 4'} @@ -4157,6 +4262,11 @@ packages: engines: {node: '>=18.12.0'} hasBin: true + sucrase@3.35.0: + resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} + engines: {node: '>=16 || 14 >=14.17'} + hasBin: true + supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -4191,15 +4301,27 @@ packages: resolution: {integrity: sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==} engines: {node: '>=10.0.0'} + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} + engines: {node: '>=14.0.0'} + hasBin: true + test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} + thenify-all@1.6.0: + resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==} + engines: {node: '>=0.8'} + + thenify@3.3.1: + resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==} + tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} - tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + tinyglobby@0.2.15: + resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} tinyrainbow@2.0.0: @@ -4246,6 +4368,9 @@ packages: resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} engines: {node: '>=6.10'} + ts-interface-checker@0.1.13: + resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} + ts-jest@29.4.0: resolution: {integrity: sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q==} engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} @@ -4403,8 +4528,8 @@ packages: vite: optional: true - vite@7.0.7: - resolution: {integrity: sha512-hc6LujN/EkJHmxeiDJMs0qBontZ1cdBvvoCbWhVjzUFTU329VRyOC46gHNSA8NcOC5yzCeXpwI40tieI3DEZqg==} + vite@7.1.11: + resolution: {integrity: sha512-uzcxnSDVjAopEUjljkWh8EIrg6tlzrjFUfMcR1EVsRDGwf/ccef0qQPRyOrROwhrTDaApueq+ja+KLPlzR/zdg==} engines: {node: ^20.19.0 || >=22.12.0} hasBin: true peerDependencies: @@ -4608,6 +4733,8 @@ snapshots: '@adobe/css-tools@4.4.3': {} + '@alloc/quick-lru@5.2.0': {} + '@ampproject/remapping@2.3.0': dependencies: '@jridgewell/gen-mapping': 0.3.8 @@ -5209,16 +5336,16 @@ snapshots: '@esbuild/win32-x64@0.25.5': optional: true - '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0)': + '@eslint-community/eslint-utils@4.7.0(eslint@9.31.0(jiti@1.21.7))': dependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.3.1(eslint@9.31.0)': + '@eslint/compat@1.3.1(eslint@9.31.0(jiti@1.21.7))': optionalDependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) '@eslint/config-array@0.21.0': dependencies: @@ -5485,12 +5612,12 @@ snapshots: '@types/yargs': 17.0.33 chalk: 4.1.2 - '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.8.3)(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0))': + '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1(typescript@5.8.3)(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0))': dependencies: glob: 10.4.5 magic-string: 0.30.17 react-docgen-typescript: 2.4.0(typescript@5.8.3) - vite: 7.0.7(@types/node@24.0.0)(yaml@2.8.0) + vite: 7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0) optionalDependencies: typescript: 5.8.3 @@ -5731,12 +5858,12 @@ snapshots: optionalDependencies: react: 19.1.0 - '@storybook/builder-vite@9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0))': + '@storybook/builder-vite@9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0))': dependencies: '@storybook/csf-plugin': 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2)) storybook: 9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2) ts-dedent: 2.2.0 - vite: 7.0.7(@types/node@24.0.0)(yaml@2.8.0) + vite: 7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0) '@storybook/csf-plugin@9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))': dependencies: @@ -5756,11 +5883,11 @@ snapshots: react-dom: 19.1.0(react@19.1.0) storybook: 9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2) - '@storybook/react-vite@9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.43.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0))': + '@storybook/react-vite@9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(rollup@4.43.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3)(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0))': dependencies: - '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.8.3)(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)) + '@joshwooding/vite-plugin-react-docgen-typescript': 0.6.1(typescript@5.8.3)(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)) '@rollup/pluginutils': 5.1.4(rollup@4.43.0) - '@storybook/builder-vite': 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)) + '@storybook/builder-vite': 9.0.18(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)) '@storybook/react': 9.0.18(react-dom@19.1.0(react@19.1.0))(react@19.1.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3) find-up: 7.0.0 magic-string: 0.30.17 @@ -5770,7 +5897,7 @@ snapshots: resolve: 1.22.10 storybook: 9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2) tsconfig-paths: 4.2.0 - vite: 7.0.7(@types/node@24.0.0)(yaml@2.8.0) + vite: 7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0) transitivePeerDependencies: - rollup - supports-color @@ -5924,15 +6051,15 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0)(typescript@5.8.3)': + '@typescript-eslint/eslint-plugin@8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) '@typescript-eslint/scope-manager': 8.38.0 - '@typescript-eslint/type-utils': 8.38.0(eslint@9.31.0)(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0)(typescript@5.8.3) + '@typescript-eslint/type-utils': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.38.0 - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) graphemer: 1.4.0 ignore: 7.0.5 natural-compare: 1.4.0 @@ -5941,14 +6068,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3)': + '@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3)': dependencies: '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) '@typescript-eslint/visitor-keys': 8.38.0 debug: 4.4.1 - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -5971,13 +6098,13 @@ snapshots: dependencies: typescript: 5.8.3 - '@typescript-eslint/type-utils@8.38.0(eslint@9.31.0)(typescript@5.8.3)': + '@typescript-eslint/type-utils@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3)': dependencies: '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0)(typescript@5.8.3) + '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) debug: 4.4.1 - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) ts-api-utils: 2.1.0(typescript@5.8.3) typescript: 5.8.3 transitivePeerDependencies: @@ -6001,13 +6128,13 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.38.0(eslint@9.31.0)(typescript@5.8.3)': + '@typescript-eslint/utils@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@1.21.7)) '@typescript-eslint/scope-manager': 8.38.0 '@typescript-eslint/types': 8.38.0 '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -6072,7 +6199,7 @@ snapshots: '@unrs/resolver-binding-win32-x64-msvc@1.8.1': optional: true - '@vitejs/plugin-react@4.7.0(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0))': + '@vitejs/plugin-react@4.7.0(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0))': dependencies: '@babel/core': 7.28.0 '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.0) @@ -6080,7 +6207,7 @@ snapshots: '@rolldown/pluginutils': 1.0.0-beta.27 '@types/babel__core': 7.20.5 react-refresh: 0.17.0 - vite: 7.0.7(@types/node@24.0.0)(yaml@2.8.0) + vite: 7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0) transitivePeerDependencies: - supports-color @@ -6231,6 +6358,8 @@ snapshots: ansi-styles@6.2.1: {} + any-promise@1.3.0: {} + anymatch@3.1.3: dependencies: normalize-path: 3.0.0 @@ -6238,6 +6367,8 @@ snapshots: arg@4.1.3: {} + arg@5.0.2: {} + argparse@1.0.10: dependencies: sprintf-js: 1.0.3 @@ -6409,6 +6540,8 @@ snapshots: dependencies: open: 8.4.2 + binary-extensions@2.3.0: {} + bl@4.1.0: dependencies: buffer: 5.7.1 @@ -6479,6 +6612,8 @@ snapshots: callsites@3.1.0: {} + camelcase-css@2.0.1: {} + camelcase@5.3.1: {} camelcase@6.3.0: {} @@ -6519,6 +6654,18 @@ snapshots: check-error@2.1.1: {} + chokidar@3.6.0: + dependencies: + anymatch: 3.1.3 + braces: 3.0.3 + glob-parent: 5.1.2 + is-binary-path: 2.1.0 + is-glob: 4.0.3 + normalize-path: 3.0.0 + readdirp: 3.6.0 + optionalDependencies: + fsevents: 2.3.3 + ci-info@4.2.0: {} cjs-module-lexer@2.1.0: {} @@ -6578,6 +6725,8 @@ snapshots: commander@14.0.0: {} + commander@4.1.1: {} + compare-versions@6.1.1: {} concat-map@0.0.1: {} @@ -6710,12 +6859,16 @@ snapshots: detect-newline@3.1.0: {} + didyoumean@1.2.2: {} + diff@4.0.2: {} dir-glob@3.0.1: dependencies: path-type: 4.0.0 + dlv@1.1.3: {} + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -6908,9 +7061,9 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-prettier@10.1.8(eslint@9.31.0): + eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@1.21.7)): dependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) eslint-import-resolver-node@0.3.9: dependencies: @@ -6920,17 +7073,17 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0): + eslint-module-utils@2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@1.21.7)): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0)(typescript@5.8.3) - eslint: 9.31.0 + '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) + eslint: 9.31.0(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.31.0(jiti@1.21.7)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -6939,9 +7092,9 @@ snapshots: array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0) + eslint-module-utils: 2.12.1(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint-import-resolver-node@0.3.9)(eslint@9.31.0(jiti@1.21.7)) hasown: 2.0.2 is-core-module: 2.16.1 is-glob: 4.0.3 @@ -6953,30 +7106,30 @@ snapshots: string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0)(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0))(eslint@9.31.0)(prettier@3.6.2): + eslint-plugin-prettier@5.5.3(eslint-config-prettier@10.1.8(eslint@9.31.0(jiti@1.21.7)))(eslint@9.31.0(jiti@1.21.7))(prettier@3.6.2): dependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) prettier: 3.6.2 prettier-linter-helpers: 1.0.0 synckit: 0.11.8 optionalDependencies: - eslint-config-prettier: 10.1.8(eslint@9.31.0) + eslint-config-prettier: 10.1.8(eslint@9.31.0(jiti@1.21.7)) - eslint-plugin-react-hooks@5.2.0(eslint@9.31.0): + eslint-plugin-react-hooks@5.2.0(eslint@9.31.0(jiti@1.21.7)): dependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) - eslint-plugin-react-refresh@0.4.20(eslint@9.31.0): + eslint-plugin-react-refresh@0.4.20(eslint@9.31.0(jiti@1.21.7)): dependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) - eslint-plugin-react@7.37.5(eslint@9.31.0): + eslint-plugin-react@7.37.5(eslint@9.31.0(jiti@1.21.7)): dependencies: array-includes: 3.1.9 array.prototype.findlast: 1.2.5 @@ -6984,7 +7137,7 @@ snapshots: array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 es-iterator-helpers: 1.2.1 - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) estraverse: 5.3.0 hasown: 2.0.2 jsx-ast-utils: 3.3.5 @@ -6998,20 +7151,26 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-ssr-friendly@1.3.0(eslint@9.31.0): + eslint-plugin-ssr-friendly@1.3.0(eslint@9.31.0(jiti@1.21.7)): dependencies: - eslint: 9.31.0 + eslint: 9.31.0(jiti@1.21.7) globals: 13.24.0 - eslint-plugin-storybook@9.0.18(eslint@9.31.0)(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3): + eslint-plugin-storybook@9.0.18(eslint@9.31.0(jiti@1.21.7))(storybook@9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2))(typescript@5.8.3): dependencies: - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0)(typescript@5.8.3) - eslint: 9.31.0 + '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) + eslint: 9.31.0(jiti@1.21.7) storybook: 9.0.18(@testing-library/dom@10.4.0)(prettier@3.6.2) transitivePeerDependencies: - supports-color - typescript + eslint-plugin-tailwindcss@3.18.2(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3))): + dependencies: + fast-glob: 3.3.3 + postcss: 8.5.6 + tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)) + eslint-scope@8.4.0: dependencies: esrecurse: 4.3.0 @@ -7021,9 +7180,9 @@ snapshots: eslint-visitor-keys@4.2.1: {} - eslint@9.31.0: + eslint@9.31.0(jiti@1.21.7): dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0) + '@eslint-community/eslint-utils': 4.7.0(eslint@9.31.0(jiti@1.21.7)) '@eslint-community/regexpp': 4.12.1 '@eslint/config-array': 0.21.0 '@eslint/config-helpers': 0.3.0 @@ -7058,6 +7217,8 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.4 + optionalDependencies: + jiti: 1.21.7 transitivePeerDependencies: - supports-color @@ -7144,7 +7305,7 @@ snapshots: dependencies: bser: 2.1.1 - fdir@6.4.6(picomatch@4.0.3): + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -7489,6 +7650,10 @@ snapshots: dependencies: has-bigints: 1.1.0 + is-binary-path@2.1.0: + dependencies: + binary-extensions: 2.3.0 + is-boolean-object@1.2.2: dependencies: call-bound: 1.0.4 @@ -7992,6 +8157,8 @@ snapshots: - supports-color - ts-node + jiti@1.21.7: {} + jju@1.4.0: {} js-tokens@4.0.0: {} @@ -8247,6 +8414,12 @@ snapshots: mute-stream@1.0.0: {} + mz@2.7.0: + dependencies: + any-promise: 1.3.0 + object-assign: 4.1.1 + thenify-all: 1.6.0 + nano-spawn@1.0.2: {} nanoid@3.3.11: {} @@ -8284,6 +8457,8 @@ snapshots: object-assign@4.1.1: {} + object-hash@3.0.0: {} + object-inspect@1.13.4: {} object-keys@1.1.1: {} @@ -8447,6 +8622,8 @@ snapshots: pidtree@0.6.0: {} + pify@2.3.0: {} + pirates@4.0.7: {} pkg-dir@4.2.0: @@ -8559,6 +8736,18 @@ snapshots: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-import@15.1.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.10 + + postcss-js@4.1.0(postcss@8.5.6): + dependencies: + camelcase-css: 2.0.1 + postcss: 8.5.6 + postcss-lab-function@7.0.10(postcss@8.5.6): dependencies: '@csstools/css-color-parser': 3.0.10(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) @@ -8568,11 +8757,24 @@ snapshots: '@csstools/utilities': 2.0.0(postcss@8.5.6) postcss: 8.5.6 + postcss-load-config@4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)): + dependencies: + lilconfig: 3.1.3 + yaml: 2.8.0 + optionalDependencies: + postcss: 8.5.6 + ts-node: 10.9.2(@types/node@24.0.0)(typescript@5.8.3) + postcss-logical@8.1.0(postcss@8.5.6): dependencies: postcss: 8.5.6 postcss-value-parser: 4.2.0 + postcss-nested@6.2.0(postcss@8.5.6): + dependencies: + postcss: 8.5.6 + postcss-selector-parser: 6.1.2 + postcss-nesting@13.0.2(postcss@8.5.6): dependencies: '@csstools/selector-resolve-nested': 3.1.0(postcss-selector-parser@7.1.0) @@ -8686,6 +8888,11 @@ snapshots: postcss: 8.5.6 postcss-selector-parser: 7.1.0 + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + postcss-selector-parser@7.1.0: dependencies: cssesc: 3.0.0 @@ -8771,6 +8978,10 @@ snapshots: react@19.1.0: {} + read-cache@1.0.0: + dependencies: + pify: 2.3.0 + read-package-json-fast@4.0.0: dependencies: json-parse-even-better-errors: 4.0.0 @@ -8782,6 +8993,10 @@ snapshots: string_decoder: 1.3.0 util-deprecate: 1.0.2 + readdirp@3.6.0: + dependencies: + picomatch: 2.3.1 + recast@0.23.11: dependencies: ast-types: 0.16.1 @@ -9223,6 +9438,16 @@ snapshots: - supports-color - typescript + sucrase@3.35.0: + dependencies: + '@jridgewell/gen-mapping': 0.3.12 + commander: 4.1.1 + glob: 10.4.5 + lines-and-columns: 1.2.4 + mz: 2.7.0 + pirates: 4.0.7 + ts-interface-checker: 0.1.13 + supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -9258,17 +9483,52 @@ snapshots: string-width: 4.2.3 strip-ansi: 6.0.1 + tailwindcss@3.4.17(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)): + dependencies: + '@alloc/quick-lru': 5.2.0 + arg: 5.0.2 + chokidar: 3.6.0 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.3.3 + glob-parent: 6.0.2 + is-glob: 4.0.3 + jiti: 1.21.7 + lilconfig: 3.1.3 + micromatch: 4.0.8 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.1.1 + postcss: 8.5.6 + postcss-import: 15.1.0(postcss@8.5.6) + postcss-js: 4.1.0(postcss@8.5.6) + postcss-load-config: 4.0.2(postcss@8.5.6)(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)) + postcss-nested: 6.2.0(postcss@8.5.6) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 + sucrase: 3.35.0 + transitivePeerDependencies: + - ts-node + test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 + thenify-all@1.6.0: + dependencies: + thenify: 3.3.1 + + thenify@3.3.1: + dependencies: + any-promise: 1.3.0 + tiny-invariant@1.3.3: {} - tinyglobby@0.2.14: + tinyglobby@0.2.15: dependencies: - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 tinyrainbow@2.0.0: {} @@ -9305,6 +9565,8 @@ snapshots: ts-dedent@2.2.0: {} + ts-interface-checker@0.1.13: {} + ts-jest@29.4.0(@babel/core@7.28.0)(@jest/transform@30.0.5)(@jest/types@30.0.5)(babel-jest@30.0.5(@babel/core@7.28.0))(esbuild@0.25.5)(jest-util@30.0.5)(jest@30.0.5(@types/node@24.0.0)(esbuild-register@3.6.0(esbuild@0.25.5))(ts-node@10.9.2(@types/node@24.0.0)(typescript@5.8.3)))(typescript@5.8.3): dependencies: bs-logger: 0.2.6 @@ -9404,13 +9666,13 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typescript-eslint@8.38.0(eslint@9.31.0)(typescript@5.8.3): + typescript-eslint@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3): dependencies: - '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0)(typescript@5.8.3))(eslint@9.31.0)(typescript@5.8.3) - '@typescript-eslint/parser': 8.38.0(eslint@9.31.0)(typescript@5.8.3) + '@typescript-eslint/eslint-plugin': 8.38.0(@typescript-eslint/parser@8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3))(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) + '@typescript-eslint/parser': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) '@typescript-eslint/typescript-estree': 8.38.0(typescript@5.8.3) - '@typescript-eslint/utils': 8.38.0(eslint@9.31.0)(typescript@5.8.3) - eslint: 9.31.0 + '@typescript-eslint/utils': 8.38.0(eslint@9.31.0(jiti@1.21.7))(typescript@5.8.3) + eslint: 9.31.0(jiti@1.21.7) typescript: 5.8.3 transitivePeerDependencies: - supports-color @@ -9481,7 +9743,7 @@ snapshots: '@types/istanbul-lib-coverage': 2.0.6 convert-source-map: 2.0.0 - vite-plugin-dts@4.5.4(@types/node@24.0.0)(rollup@4.43.0)(typescript@5.8.3)(vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0)): + vite-plugin-dts@4.5.4(@types/node@24.0.0)(rollup@4.43.0)(typescript@5.8.3)(vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0)): dependencies: '@microsoft/api-extractor': 7.52.8(@types/node@24.0.0) '@rollup/pluginutils': 5.1.4(rollup@4.43.0) @@ -9494,23 +9756,24 @@ snapshots: magic-string: 0.30.17 typescript: 5.8.3 optionalDependencies: - vite: 7.0.7(@types/node@24.0.0)(yaml@2.8.0) + vite: 7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0) transitivePeerDependencies: - '@types/node' - rollup - supports-color - vite@7.0.7(@types/node@24.0.0)(yaml@2.8.0): + vite@7.1.11(@types/node@24.0.0)(jiti@1.21.7)(yaml@2.8.0): dependencies: esbuild: 0.25.5 - fdir: 6.4.6(picomatch@4.0.3) + fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 postcss: 8.5.6 rollup: 4.43.0 - tinyglobby: 0.2.14 + tinyglobby: 0.2.15 optionalDependencies: '@types/node': 24.0.0 fsevents: 2.3.3 + jiti: 1.21.7 yaml: 2.8.0 vscode-uri@3.1.0: {} diff --git a/postcss.config.js b/postcss.config.js new file mode 100644 index 0000000..66b3d5d --- /dev/null +++ b/postcss.config.js @@ -0,0 +1,6 @@ +export default { + plugins: { + tailwindcss: {}, + 'postcss-preset-env': {}, + }, +}; diff --git a/src/lib/CounterDemo/Counter.module.css b/src/lib/CounterDemo/Counter.module.css deleted file mode 100644 index 6c807ae..0000000 --- a/src/lib/CounterDemo/Counter.module.css +++ /dev/null @@ -1,33 +0,0 @@ -.counter { - border: 1px solid lightgray; - font-family: sans-serif; - margin: 36px 24px; - padding: 24px; - text-align: center; - width: 240px; -} - -.header { - font-size: 24px; - font-weight: normal; - margin: 0 0 12px; -} - -.button { - background: lightseagreen; - border: none; - border-radius: 5px; - color: white; - cursor: pointer; - display: block; - font-size: 16px; - margin: 0 auto 24px; - padding: 12px 24px; - text-shadow: 1px 1px 1px rgb(0 0 0 / 50%); -} - -.button:active { - left: 1px; - position: relative; - top: 1px; -} diff --git a/src/lib/CounterDemo/Counter.tsx b/src/lib/CounterDemo/Counter.tsx index 807a35f..3eb7775 100644 --- a/src/lib/CounterDemo/Counter.tsx +++ b/src/lib/CounterDemo/Counter.tsx @@ -2,7 +2,6 @@ import type {FC} from 'react'; import {useEffect} from 'react'; import {throttle} from 'lodash'; -import classes from './Counter.module.css'; import useLogic from './useLogic'; export type Props = { @@ -21,9 +20,12 @@ export const Counter: FC = ({initialValue = 0}) => { }, []); return ( -
-

Counter

-
diff --git a/src/lib/CounterDemo/__snapshots__/Counter.spec.tsx.snap b/src/lib/CounterDemo/__snapshots__/Counter.spec.tsx.snap index 20570b5..4fbf01e 100644 --- a/src/lib/CounterDemo/__snapshots__/Counter.spec.tsx.snap +++ b/src/lib/CounterDemo/__snapshots__/Counter.spec.tsx.snap @@ -2,11 +2,16 @@ exports[`lib > Counter renders without crashing 1`] = ` -
-

+
+

Counter

diff --git a/vite.config.ts b/vite.config.ts index 2074562..0509cef 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -5,7 +5,6 @@ import react from '@vitejs/plugin-react'; import {kitchen} from 'alias-kitchen'; import external from '@yelo/rollup-node-external'; import dts from 'vite-plugin-dts'; -import postcssPresetEnv from 'postcss-preset-env'; // https://vitejs.dev/config/ export default defineConfig({ @@ -39,8 +38,5 @@ export default defineConfig({ modules: { localsConvention: 'camelCase', }, - postcss: { - plugins: [postcssPresetEnv({stage: 1})], - }, }, });