diff --git a/.github/workflows/formik-mui.yaml b/.github/workflows/formik-mui.yaml index 16153c90..43d71b05 100644 --- a/.github/workflows/formik-mui.yaml +++ b/.github/workflows/formik-mui.yaml @@ -24,6 +24,8 @@ jobs: - name: build run: | npm ci + ls node_modules + ls ../../node_modules npm run typecheck npm run lint npm run test diff --git a/.storybook/main.js b/.storybook/main.js index 3d370cc3..718b261c 100644 --- a/.storybook/main.js +++ b/.storybook/main.js @@ -1,6 +1,6 @@ /** @type { import('@storybook/react-vite').StorybookConfig } */ const config = { - stories: ["../src/**/*.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"], + stories: ["../src/**/*.stories.@(js|jsx|ts|tsx)"], staticDirs: ["../public"], addons: [ "@storybook/addon-links", diff --git a/package-lock.json b/package-lock.json index 4ee1a6c7..886ee698 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,6 +12,7 @@ "packages/*" ], "dependencies": { + "@rollup/rollup-linux-x64-gnu": "*", "@testing-library/jest-dom": "^6.5.0", "eslint-plugin-react-hooks": "^5.1.0-beta-26f2496093-20240514", "react": "^18.3.1", @@ -51,8 +52,12 @@ "typescript": "^5.5.4", "typescript-eslint": "^8.3.0", "vite": "5.4.1", + "vite-plugin-dts": "^4.0.3", "vitest": "^2.0.5", "yup": "^0.32.9" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "^4.21.1" } }, "node_modules/@adobe/css-tools": { @@ -3410,6 +3415,142 @@ "react": ">=16" } }, + "node_modules/@microsoft/api-extractor": { + "version": "7.47.4", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.47.4.tgz", + "integrity": "sha512-HKm+P4VNzWwvq1Ey+Jfhhj/3MjsD+ka2hbt8L5AcRM95lu1MFOYnz3XlU7Gr79Q/ZhOb7W/imAKeYrOI0bFydg==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor-model": "7.29.4", + "@microsoft/tsdoc": "~0.15.0", + "@microsoft/tsdoc-config": "~0.17.0", + "@rushstack/node-core-library": "5.5.1", + "@rushstack/rig-package": "0.5.3", + "@rushstack/terminal": "0.13.3", + "@rushstack/ts-command-line": "4.22.3", + "lodash": "~4.17.15", + "minimatch": "~3.0.3", + "resolve": "~1.22.1", + "semver": "~7.5.4", + "source-map": "~0.6.1", + "typescript": "5.4.2" + }, + "bin": { + "api-extractor": "bin/api-extractor" + } + }, + "node_modules/@microsoft/api-extractor-model": { + "version": "7.29.4", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.29.4.tgz", + "integrity": "sha512-LHOMxmT8/tU1IiiiHOdHFF83Qsi+V8d0kLfscG4EvQE9cafiR8blOYr8SfkQKWB1wgEilQgXJX3MIA4vetDLZw==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "~0.15.0", + "@microsoft/tsdoc-config": "~0.17.0", + "@rushstack/node-core-library": "5.5.1" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/minimatch": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.8.tgz", + "integrity": "sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/typescript": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.2.tgz", + "integrity": "sha512-+2/g0Fds1ERlP6JsakQQDXjZdZMM+rqpamFZJEKh4kwTIn3iDkgKtby0CeNd5ATNZ4Ry1ax15TMx0W2V+miizQ==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/@microsoft/api-extractor/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@microsoft/tsdoc": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.15.0.tgz", + "integrity": "sha512-HZpPoABogPvjeJOdzCOSJsXeL/SMCBgBZMVC3X3d7YYp2gf31MfxhUoYUNwf1ERPJOnQc0wkFn9trqI6ZEdZuA==", + "dev": true + }, + "node_modules/@microsoft/tsdoc-config": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.17.0.tgz", + "integrity": "sha512-v/EYRXnCAIHxOHW+Plb6OWuUoMotxTN0GLatnpOb1xq0KuTNw/WI3pamJx/UbsoJP5k9MCw1QxvvhPcF9pH3Zg==", + "dev": true, + "dependencies": { + "@microsoft/tsdoc": "0.15.0", + "ajv": "~8.12.0", + "jju": "~1.4.0", + "resolve": "~1.22.2" + } + }, + "node_modules/@microsoft/tsdoc-config/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, "node_modules/@mui/core-downloads-tracker": { "version": "5.16.7", "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.7.tgz", @@ -3863,6 +4004,213 @@ "darwin" ] }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.21.1.tgz", + "integrity": "sha512-kXQVcWqDcDKw0S2E0TmhlTLlUgAmMVqPrJZR+KpH/1ZaZhLSl23GZpQVmawBQGVhyP5WXIsIQ/zqbDBBYmxm5w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rushstack/node-core-library": { + "version": "5.5.1", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.5.1.tgz", + "integrity": "sha512-ZutW56qIzH8xIOlfyaLQJFx+8IBqdbVCZdnj+XT1MorQ1JqqxHse8vbCpEM+2MjsrqcbxcgDIbfggB1ZSQ2A3g==", + "dev": true, + "dependencies": { + "ajv": "~8.13.0", + "ajv-draft-04": "~1.0.0", + "ajv-formats": "~3.0.1", + "fs-extra": "~7.0.1", + "import-lazy": "~4.0.0", + "jju": "~1.4.0", + "resolve": "~1.22.1", + "semver": "~7.5.4" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/ajv-formats": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", + "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", + "dev": true, + "dependencies": { + "ajv": "^8.0.0" + }, + "peerDependencies": { + "ajv": "^8.0.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, + "node_modules/@rushstack/node-core-library/node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/@rushstack/node-core-library/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@rushstack/rig-package": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.5.3.tgz", + "integrity": "sha512-olzSSjYrvCNxUFZowevC3uz8gvKr3WTpHQ7BkpjtRpA3wK+T0ybep/SRUMfr195gBzJm5gaXw0ZMgjIyHqJUow==", + "dev": true, + "dependencies": { + "resolve": "~1.22.1", + "strip-json-comments": "~3.1.1" + } + }, + "node_modules/@rushstack/terminal": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.13.3.tgz", + "integrity": "sha512-fc3zjXOw8E0pXS5t9vTiIPx9gHA0fIdTXsu9mT4WbH+P3mYvnrX0iAQ5a6NvyK1+CqYWBTw/wVNx7SDJkI+WYQ==", + "dev": true, + "dependencies": { + "@rushstack/node-core-library": "5.5.1", + "supports-color": "~8.1.1" + }, + "peerDependencies": { + "@types/node": "*" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@rushstack/terminal/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/@rushstack/terminal/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/@rushstack/ts-command-line": { + "version": "4.22.3", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.22.3.tgz", + "integrity": "sha512-edMpWB3QhFFZ4KtSzS8WNjBgR4PXPPOVrOHMbb7kNpmQ1UFS9HdVtjCXg1H5fG+xYAbeE+TMPcVPUyX2p84STA==", + "dev": true, + "dependencies": { + "@rushstack/terminal": "0.13.3", + "@types/argparse": "1.0.38", + "argparse": "~1.0.9", + "string-argv": "~0.3.1" + } + }, + "node_modules/@rushstack/ts-command-line/node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, "node_modules/@sinclair/typebox": { "version": "0.27.8", "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", @@ -4796,6 +5144,12 @@ "@testing-library/dom": ">=7.21.4" } }, + "node_modules/@types/argparse": { + "version": "1.0.38", + "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.38.tgz", + "integrity": "sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA==", + "dev": true + }, "node_modules/@types/aria-query": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", @@ -5594,6 +5948,119 @@ "node": "^14.15.0 || ^16.10.0 || >=18.0.0" } }, + "node_modules/@volar/language-core": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.0.tgz", + "integrity": "sha512-FTla+khE+sYK0qJP+6hwPAAUwiNHVMph4RUXpxf/FIPKUP61NFrVZorml4mjFShnueR2y9/j8/vnh09YwVdH7A==", + "dev": true, + "dependencies": { + "@volar/source-map": "2.4.0" + } + }, + "node_modules/@volar/source-map": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.0.tgz", + "integrity": "sha512-2ceY8/NEZvN6F44TXw2qRP6AQsvCYhV2bxaBPWxV9HqIfkbRydSksTFObCF1DBDNBfKiZTS8G/4vqV6cvjdOIQ==", + "dev": true + }, + "node_modules/@volar/typescript": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.0.tgz", + "integrity": "sha512-9zx3lQWgHmVd+JRRAHUSRiEhe4TlzL7U7e6ulWXOxHH/WNYxzKwCvZD7WYWEZFdw4dHfTD9vUR0yPQO6GilCaQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "2.4.0", + "path-browserify": "^1.0.1", + "vscode-uri": "^3.0.8" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.38.tgz", + "integrity": "sha512-8IQOTCWnLFqfHzOGm9+P8OPSEDukgg3Huc92qSG49if/xI2SAwLHQO2qaPQbjCWPBcQoO1WYfXfTACUrWV3c5A==", + "dev": true, + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.38", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.38.tgz", + "integrity": "sha512-Osc/c7ABsHXTsETLgykcOwIxFktHfGSUDkb05V61rocEfsFDcjDLH/IHJSNJP+/Sv9KeN2Lx1V6McZzlSb9EhQ==", + "dev": true, + "dependencies": { + "@vue/compiler-core": "3.4.38", + "@vue/shared": "3.4.38" + } + }, + "node_modules/@vue/compiler-vue2": { + "version": "2.7.16", + "resolved": "https://registry.npmjs.org/@vue/compiler-vue2/-/compiler-vue2-2.7.16.tgz", + "integrity": "sha512-qYC3Psj9S/mfu9uVi5WvNZIzq+xnXMhOwbTFKKDD7b1lhpnn71jXSFdTQ+WsIEk0ONCd7VV2IMm7ONl6tbQ86A==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/@vue/language-core": { + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.0.29.tgz", + "integrity": "sha512-o2qz9JPjhdoVj8D2+9bDXbaI4q2uZTHQA/dbyZT4Bj1FR9viZxDJnLcKVHfxdn6wsOzRgpqIzJEEmSSvgMvDTQ==", + "dev": true, + "dependencies": { + "@volar/language-core": "~2.4.0-alpha.18", + "@vue/compiler-dom": "^3.4.0", + "@vue/compiler-vue2": "^2.7.16", + "@vue/shared": "^3.4.0", + "computeds": "^0.0.1", + "minimatch": "^9.0.3", + "muggle-string": "^0.4.1", + "path-browserify": "^1.0.1" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@vue/language-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@vue/language-core/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.38.tgz", + "integrity": "sha512-q0xCiLkuWWQLzVrecPb0RMsNWyxICOjPrcrwxTUEHb1fsnvni4dcuyG7RT/Ie7VPTvnjzIaWzRMUBsrqNj/hhw==", + "dev": true + }, "node_modules/@webassemblyjs/ast": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz", @@ -5880,6 +6347,20 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "dev": true, + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ajv-formats": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", @@ -7138,6 +7619,18 @@ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, + "node_modules/compare-versions": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-6.1.1.tgz", + "integrity": "sha512-4hm4VPpIecmlg59CHXnRDnqGplJFrbLG4aFEl5vl6cK1u76ws3LLvX7ikFnTDl5vo39sjWD6AaDPYodJp/NNHg==", + "dev": true + }, + "node_modules/computeds": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/computeds/-/computeds-0.0.1.tgz", + "integrity": "sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==", + "dev": true + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", @@ -7147,8 +7640,7 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.7.tgz", "integrity": "sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==", - "dev": true, - "peer": true + "dev": true }, "node_modules/consola": { "version": "3.2.3", @@ -7465,6 +7957,12 @@ "url": "https://opencollective.com/date-fns" } }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, "node_modules/debug": { "version": "4.3.6", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz", @@ -9364,6 +9862,15 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, "node_modules/hoist-non-react-statics": { "version": "3.3.2", "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", @@ -9517,6 +10024,15 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/import-local": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz", @@ -12169,6 +12685,12 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/jju": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", + "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", + "dev": true + }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -12422,6 +12944,12 @@ "node": ">=6" } }, + "node_modules/kolorist": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/kolorist/-/kolorist-1.8.0.tgz", + "integrity": "sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==", + "dev": true + }, "node_modules/leven": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", @@ -12460,6 +12988,22 @@ "node": ">=6.11.5" } }, + "node_modules/local-pkg": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/local-pkg/-/local-pkg-0.5.0.tgz", + "integrity": "sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==", + "dev": true, + "dependencies": { + "mlly": "^1.4.2", + "pkg-types": "^1.0.3" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + } + }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", @@ -12854,7 +13398,6 @@ "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.1.tgz", "integrity": "sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==", "dev": true, - "peer": true, "dependencies": { "acorn": "^8.11.3", "pathe": "^1.1.2", @@ -12867,7 +13410,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.1.tgz", "integrity": "sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==", "dev": true, - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -12880,6 +13422,12 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" }, + "node_modules/muggle-string": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.4.1.tgz", + "integrity": "sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==", + "dev": true + }, "node_modules/nanoclone": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/nanoclone/-/nanoclone-0.2.1.tgz", @@ -13474,6 +14022,12 @@ "node": ">= 0.8" } }, + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -13641,7 +14195,6 @@ "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.0.tgz", "integrity": "sha512-+ifYuSSqOQ8CqP4MbZA5hDpb97n3E8SVWdJe+Wms9kj745lmd3b7EZJiqvmLwAlmRfjrI7Hi5z3kdBJ93lFNPA==", "dev": true, - "peer": true, "dependencies": { "confbox": "^0.1.7", "mlly": "^1.7.1", @@ -14820,9 +15373,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true, - "optional": true, - "peer": true + "dev": true }, "node_modules/stack-utils": { "version": "2.0.6", @@ -14995,6 +15546,15 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/string-argv": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz", + "integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==", + "dev": true, + "engines": { + "node": ">=0.6.19" + } + }, "node_modules/string-length": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", @@ -15787,8 +16347,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/ufo/-/ufo-1.5.4.tgz", "integrity": "sha512-UsUk3byDzKd04EyoZ7U4DOlxQaD14JUKQl6/P7wiX4FNvUfm3XL246n9W5AmqwW5RSFJ27NAuM0iLscAOYUiGQ==", - "dev": true, - "peer": true + "dev": true }, "node_modules/unbox-primitive": { "version": "1.0.2", @@ -16166,6 +16725,36 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-plugin-dts": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/vite-plugin-dts/-/vite-plugin-dts-4.0.3.tgz", + "integrity": "sha512-+xnTsaONwU2kV6zhRjtbRJSGN41uFR/whqmcb4k4fftLFDJElxthp0PP5Fq8gMeM9ytWMt1yk5gGgekLREWYQQ==", + "dev": true, + "dependencies": { + "@microsoft/api-extractor": "7.47.4", + "@rollup/pluginutils": "^5.1.0", + "@volar/typescript": "^2.3.4", + "@vue/language-core": "2.0.29", + "compare-versions": "^6.1.1", + "debug": "^4.3.6", + "kolorist": "^1.8.0", + "local-pkg": "^0.5.0", + "magic-string": "^0.30.11", + "vue-tsc": "2.0.29" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "typescript": "*", + "vite": "*" + }, + "peerDependenciesMeta": { + "vite": { + "optional": true + } + } + }, "node_modules/vitest": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.0.5.tgz", @@ -16491,6 +17080,41 @@ "node": ">=14.0.0" } }, + "node_modules/vscode-uri": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.0.8.tgz", + "integrity": "sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==", + "dev": true + }, + "node_modules/vue-tsc": { + "version": "2.0.29", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.0.29.tgz", + "integrity": "sha512-MHhsfyxO3mYShZCGYNziSbc63x7cQ5g9kvijV7dRe1TTXBRLxXyL0FnXWpUF1xII2mJ86mwYpYsUmMwkmerq7Q==", + "dev": true, + "dependencies": { + "@volar/typescript": "~2.4.0-alpha.18", + "@vue/language-core": "2.0.29", + "semver": "^7.5.4" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": ">=5.0.0" + } + }, + "node_modules/vue-tsc/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/w3c-xmlserializer": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", diff --git a/package.json b/package.json index c78179cc..bb2e6885 100644 --- a/package.json +++ b/package.json @@ -47,6 +47,7 @@ "typescript": "^5.5.4", "typescript-eslint": "^8.3.0", "vite": "5.4.1", + "vite-plugin-dts": "^4.0.3", "vitest": "^2.0.5", "yup": "^0.32.9" }, @@ -61,5 +62,8 @@ "eslint-plugin-react-hooks": "^5.1.0-beta-26f2496093-20240514", "react": "^18.3.1", "react-dom": "^18.3.1" + }, + "optionalDependencies": { + "@rollup/rollup-linux-x64-gnu": "^4.21.1" } } diff --git a/packages/formik-mui-x-date-pickers/global-setup.js b/packages/formik-mui-x-date-pickers/global-setup.js deleted file mode 100644 index 369b349a..00000000 --- a/packages/formik-mui-x-date-pickers/global-setup.js +++ /dev/null @@ -1,5 +0,0 @@ -// Note: this does not work on windows :/ -// see https://github.com/nodejs/node/issues/4230 -module.exports = () => { - process.env.TZ = 'UTC'; -}; diff --git a/packages/formik-mui-x-date-pickers/rollup.config.js b/packages/formik-mui-x-date-pickers/rollup.config.js deleted file mode 100644 index b512c877..00000000 --- a/packages/formik-mui-x-date-pickers/rollup.config.js +++ /dev/null @@ -1,45 +0,0 @@ -import typescript from 'rollup-plugin-typescript2'; -import pkg from '../formik-mui-x-date-pickers/package.json'; - -const external = [ - 'react', - 'react-native', - 'formik', - '@mui/x-date-pickers/DatePicker', - '@mui/x-date-pickers/DateTimePicker', - '@mui/x-date-pickers/DesktopDatePicker', - '@mui/x-date-pickers/DesktopDateTimePicker', - '@mui/x-date-pickers/DesktopTimePicker', - '@mui/x-date-pickers/MobileDatePicker', - '@mui/x-date-pickers/MobileDateTimePicker', - '@mui/x-date-pickers/MobileTimePicker', - '@mui/x-date-pickers/StaticDatePicker', - '@mui/x-date-pickers/StaticDateTimePicker', - '@mui/x-date-pickers/StaticTimePicker', - '@mui/x-date-pickers/TimePicker', - '@mui/material/TextField', -]; - -const config = [ - { - input: 'src/main.ts', - plugins: [ - typescript({ - // cacheRoot: `${os.tmpdir}/.rpt2_cache`, - tsconfig: 'tsconfig.package.json', - }), - ], - external: external.concat(Object.keys(pkg.dependencies || [])), - output: [ - { dir: './dist', format: 'cjs', sourcemap: true }, - { - dir: './dist/esm', - format: 'es', - sourcemap: true, - preserveModules: true, - }, - ], - }, -]; - -export default config; diff --git a/packages/formik-mui-x-date-pickers/tsconfig.app.json b/packages/formik-mui-x-date-pickers/tsconfig.app.json new file mode 100644 index 00000000..f0a23505 --- /dev/null +++ b/packages/formik-mui-x-date-pickers/tsconfig.app.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/packages/formik-mui-x-date-pickers/tsconfig.json b/packages/formik-mui-x-date-pickers/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/packages/formik-mui-x-date-pickers/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/formik-mui-x-date-pickers/tsconfig.node.json b/packages/formik-mui-x-date-pickers/tsconfig.node.json new file mode 100644 index 00000000..0d3d7144 --- /dev/null +++ b/packages/formik-mui-x-date-pickers/tsconfig.node.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/formik-mui-x-date-pickers/tsconfig.package.json b/packages/formik-mui-x-date-pickers/tsconfig.package.json deleted file mode 100644 index 2d880a3a..00000000 --- a/packages/formik-mui-x-date-pickers/tsconfig.package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["src", "types"], - "exclude": ["node_modules", "dist", "**/__tests__/**"] -} diff --git a/packages/formik-mui-x-date-pickers/vite.config.ts b/packages/formik-mui-x-date-pickers/vite.config.ts index 76c4fe84..4c68254e 100644 --- a/packages/formik-mui-x-date-pickers/vite.config.ts +++ b/packages/formik-mui-x-date-pickers/vite.config.ts @@ -2,6 +2,7 @@ import { defineConfig } from "vite"; import * as path from "path"; import react from "@vitejs/plugin-react"; +import dts from "vite-plugin-dts"; const external = [ "react", @@ -21,7 +22,7 @@ const external = [ // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [react(), dts()], build: { lib: { entry: path.resolve(__dirname, "src/main.ts"), diff --git a/packages/formik-mui/package.json b/packages/formik-mui/package.json index afa0b404..d31b409e 100644 --- a/packages/formik-mui/package.json +++ b/packages/formik-mui/package.json @@ -1,6 +1,7 @@ { "name": "formik-mui", "type": "module", + "main": "./dist/main.js", "version": "5.0.0-alpha.0", "license": "MIT", "typings": "dist/main.d.ts", @@ -29,8 +30,6 @@ "files": [ "dist" ], - "main": "./dist/main.js", - "module": "./dist/esm/main.js", "scripts": { "typecheck": "tsc", "build": "tsc && vite build", diff --git a/packages/formik-mui/src/__tests__/Checkbox.test.tsx b/packages/formik-mui/src/__tests__/Checkbox.test.tsx index ce843c5b..17d1bd49 100755 --- a/packages/formik-mui/src/__tests__/Checkbox.test.tsx +++ b/packages/formik-mui/src/__tests__/Checkbox.test.tsx @@ -4,7 +4,7 @@ import { test, expect, vi } from 'vitest'; import { Field } from 'formik'; import { render, fireEvent } from './utils'; -import { Checkbox } from '../Checkbox'; +import { Checkbox } from '../Checkbox.mjs'; test('renders', async () => { const onSubmit = vi.fn(); diff --git a/packages/formik-mui/tsconfig.app.json b/packages/formik-mui/tsconfig.app.json new file mode 100644 index 00000000..f0a23505 --- /dev/null +++ b/packages/formik-mui/tsconfig.app.json @@ -0,0 +1,24 @@ +{ + "compilerOptions": { + "target": "ES2020", + "useDefineForClassFields": true, + "lib": ["ES2020", "DOM", "DOM.Iterable"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + "jsx": "react-jsx", + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["src"] +} diff --git a/packages/formik-mui/tsconfig.json b/packages/formik-mui/tsconfig.json new file mode 100644 index 00000000..1ffef600 --- /dev/null +++ b/packages/formik-mui/tsconfig.json @@ -0,0 +1,7 @@ +{ + "files": [], + "references": [ + { "path": "./tsconfig.app.json" }, + { "path": "./tsconfig.node.json" } + ] +} diff --git a/packages/formik-mui/tsconfig.node.json b/packages/formik-mui/tsconfig.node.json new file mode 100644 index 00000000..0d3d7144 --- /dev/null +++ b/packages/formik-mui/tsconfig.node.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "target": "ES2022", + "lib": ["ES2023"], + "module": "ESNext", + "skipLibCheck": true, + + /* Bundler mode */ + "moduleResolution": "bundler", + "allowImportingTsExtensions": true, + "isolatedModules": true, + "moduleDetection": "force", + "noEmit": true, + + /* Linting */ + "strict": true, + "noUnusedLocals": true, + "noUnusedParameters": true, + "noFallthroughCasesInSwitch": true + }, + "include": ["vite.config.ts"] +} diff --git a/packages/formik-mui/tsconfig.package.json b/packages/formik-mui/tsconfig.package.json deleted file mode 100644 index 0f96b289..00000000 --- a/packages/formik-mui/tsconfig.package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "extends": "../../tsconfig.json", - "include": ["src"], - "exclude": ["node_modules", "dist", "**/__tests__/**"] -} diff --git a/packages/formik-mui/vite.config.ts b/packages/formik-mui/vite.config.ts index ffa6b531..db17804d 100644 --- a/packages/formik-mui/vite.config.ts +++ b/packages/formik-mui/vite.config.ts @@ -2,12 +2,13 @@ import { defineConfig } from "vite"; import * as path from "path"; import react from "@vitejs/plugin-react"; +import dts from "vite-plugin-dts"; const external = [ "react", "react/jsx-runtime", "formik", - "@mui/material/Autocomplete", + "@mui/utils", "@mui/material/Checkbox", "@mui/material/RadioGroup", "@mui/material/Select", @@ -18,7 +19,7 @@ const external = [ // https://vitejs.dev/config/ export default defineConfig({ - plugins: [react()], + plugins: [react(), dts()], build: { lib: { entry: path.resolve(__dirname, "src/main.ts"), diff --git a/src/stories/Autocomplete.stories.tsx b/src/stories/Autocomplete.stories.tsx index db19d610..7f929365 100644 --- a/src/stories/Autocomplete.stories.tsx +++ b/src/stories/Autocomplete.stories.tsx @@ -9,7 +9,7 @@ import * as Yup from 'yup'; import { Autocomplete, AutocompleteRenderInputParams, -} from '../../packages/formik-mui/src/main'; +} from '../../packages/formik-mui/src/Autocomplete'; import FormValues from './FormValues'; import Wrapper from './Wrapper'; @@ -151,7 +151,7 @@ const groupedOptions = top100Films } as Meta; const Template: StoryFn = () => ( - + = () => ( {...params} name="multiple" error={touched['multiple'] && !!errors['multiple']} + // @ts-expect-error typing issue helperText={touched['multiple'] && errors['multiple']} label="Multiple" variant="outlined" diff --git a/src/stories/Checkbox.stories.tsx b/src/stories/Checkbox.stories.tsx index 235eb6b8..00f39954 100644 --- a/src/stories/Checkbox.stories.tsx +++ b/src/stories/Checkbox.stories.tsx @@ -22,7 +22,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + ; const Template: StoryFn = () => ( - + initialValues={{ date: new Date(), diff --git a/src/stories/DateTimePicker.stories.tsx b/src/stories/DateTimePicker.stories.tsx index b7813ed4..43cf5534 100644 --- a/src/stories/DateTimePicker.stories.tsx +++ b/src/stories/DateTimePicker.stories.tsx @@ -29,7 +29,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + initialValues={{ date: new Date(), diff --git a/src/stories/InputBase.stories.tsx b/src/stories/InputBase.stories.tsx index 8dc99695..c2e0a10e 100644 --- a/src/stories/InputBase.stories.tsx +++ b/src/stories/InputBase.stories.tsx @@ -24,7 +24,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + initialValues={{ inputBase: 'Naked input', diff --git a/src/stories/KitchenSink.stories.tsx b/src/stories/KitchenSink.stories.tsx deleted file mode 100644 index d1dc1d4f..00000000 --- a/src/stories/KitchenSink.stories.tsx +++ /dev/null @@ -1,160 +0,0 @@ -import React from 'react'; -import { StoryFn, Meta } from '@storybook/react'; -import Button from '@mui/material/Button'; -import { Formik, Form, Field } from 'formik'; -import LinearProgress from '@mui/material/LinearProgress'; -import FormControlLabel from '@mui/material/FormControlLabel'; -import Radio from '@mui/material/Radio'; -import { action } from '@storybook/addon-actions'; -import MenuItem from '@mui/material/MenuItem'; -import { SxProps } from '@mui/system'; - -import Wrapper from './Wrapper'; -import FormValues from './FormValues'; -import { - CheckboxWithLabel, - TextField, - Select, - RadioGroup, -} from '../../packages/formik-mui/src/main'; - -interface Values { - email: string; - password: string; - dateTime: string; - date: string; - rememberMe: boolean; - age: string; -} - -const initialValues: Values = { - email: '', - password: '', - dateTime: '', - date: '', - rememberMe: false, - age: '', -}; - -const sxFormControl: SxProps = { - minWidth: 140, -}; - -export default { - title: "Core/KitchenSink", - parameters: { - layout: "fullscreen", - }, - argTypes: { onSubmit: { action: "submit" } }, -} as Meta; - -const Template: StoryFn = () => ( - - - initialValues={initialValues} - validate={(values) => { - const errors: Partial = {}; - if (!values.email) { - errors.email = 'Required'; - } else if ( - !/^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i.test(values.email) - ) { - errors.email = 'Invalid email address'; - } - return errors; - }} - onSubmit={(values, { setSubmitting }) => { - setTimeout(() => { - setSubmitting(false); - action('submit')(values); - }, 2000); - }} - > - {({ submitForm, isSubmitting, values }) => ( -
- -
- -
- -
- - Ten - Twenty - Thirty - -
- -
- -
- - } - label="Painting" - disabled={isSubmitting} - /> - } - label="Drawing" - disabled={isSubmitting} - /> - -
- {isSubmitting && } -
- -
- - - )} -
-
-); - -export const Default = { - render: Template, -}; \ No newline at end of file diff --git a/src/stories/RadioGroup.stories.tsx b/src/stories/RadioGroup.stories.tsx index 81a160d1..33a6f1e3 100644 --- a/src/stories/RadioGroup.stories.tsx +++ b/src/stories/RadioGroup.stories.tsx @@ -25,7 +25,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + initialValues={{ activity: '', diff --git a/src/stories/Select.stories.tsx b/src/stories/Select.stories.tsx index c55c23df..e521b802 100644 --- a/src/stories/Select.stories.tsx +++ b/src/stories/Select.stories.tsx @@ -4,8 +4,8 @@ import MenuItem from '@mui/material/MenuItem'; import { SxProps } from '@mui/system'; import { action } from '@storybook/addon-actions'; import { Field, Form, Formik } from 'formik'; -import React from 'react'; -import { Select } from '../../packages/formik-mui/src/main'; +import * as React from 'react'; +import { Select } from '../../packages/formik-mui/src/Select'; import FormValues from './FormValues'; import Wrapper from './Wrapper'; @@ -29,7 +29,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + initialValues={{ age: '', pets: [] }} onSubmit={(values, { setSubmitting }) => { diff --git a/src/stories/SimpleFileUpload.stories.tsx b/src/stories/SimpleFileUpload.stories.tsx index c24cd181..e8647b29 100644 --- a/src/stories/SimpleFileUpload.stories.tsx +++ b/src/stories/SimpleFileUpload.stories.tsx @@ -4,7 +4,7 @@ import { action } from '@storybook/addon-actions'; import { Field, Form, Formik } from 'formik'; import React from 'react'; import * as Yup from 'yup'; -import { SimpleFileUpload } from '../../packages/formik-mui/src/main'; +import { SimpleFileUpload } from '../../packages/formik-mui/src/SimpleFileUpload'; import FormValues from './FormValues'; import Wrapper from './Wrapper'; @@ -35,7 +35,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + validationSchema={schema} initialValues={{ file: '' }} diff --git a/src/stories/Switches.stories.tsx b/src/stories/Switches.stories.tsx index 9d4e0bed..a1ae5c1b 100644 --- a/src/stories/Switches.stories.tsx +++ b/src/stories/Switches.stories.tsx @@ -21,7 +21,7 @@ export default { } as Meta; const Template: StoryFn = () => ( - + ; const Template: StoryFn = () => ( - +