diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..db5ddae --- /dev/null +++ b/.eslintignore @@ -0,0 +1,2 @@ +.next +node_modules \ No newline at end of file diff --git a/.github/nodejs.version b/.github/nodejs.version new file mode 100644 index 0000000..5dbac1e --- /dev/null +++ b/.github/nodejs.version @@ -0,0 +1 @@ +v16.13.0 \ No newline at end of file diff --git a/.github/workflows/bundle.yml b/.github/workflows/bundle.yml new file mode 100644 index 0000000..08b7f33 --- /dev/null +++ b/.github/workflows/bundle.yml @@ -0,0 +1,117 @@ +name: "Next.js Bundle Analysis" + +on: + pull_request: + branches: + - main + - staging + workflow_dispatch: + +defaults: + run: + # change this if your nextjs app does not live at the root of the repo + working-directory: ./ + +jobs: + analyze: + runs-on: ubuntu-latest + permissions: + pull-requests: write + contents: read + steps: + - uses: actions/checkout@v3 + - run: echo "node_version=$(cat .github/nodejs.version)" >> $GITHUB_ENV + - name: use node ${{ env.node_version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.node_version }} + + - name: Install dependencies + run: yarn install --frozen-lockfile + + - name: Restore next build + uses: actions/cache@v3 + id: restore-build-cache + env: + cache-name: cache-next-build + with: + path: .next/cache + # change this if you prefer a more strict cache + key: ${{ runner.os }}-build-${{ env.cache-name }} + + - name: Build next.js app + env: + SKIP_BUILD_PRODUCT_REDIRECTS: 1 + # change this if your site requires a custom build command + run: yarn build + + # Here's the first place where next-bundle-analysis' own script is used + # This step pulls the raw bundle stats for the current bundle + - name: Analyze bundle + run: npx -p nextjs-bundle-analysis report + + - name: Upload bundle + uses: actions/upload-artifact@v3 + with: + name: bundle + path: .next/analyze/__bundle_analysis.json + + - name: Download base branch bundle stats + uses: dawidd6/action-download-artifact@v2 + if: success() && github.event.number + with: + workflow: nextjs_bundle_analysis.yml + branch: ${{ github.event.pull_request.base.ref }} + path: .next/analyze/base + + # And here's the second place - this runs after we have both the current and + # base branch bundle stats, and will compare them to determine what changed. + # There are two configurable arguments that come from package.json: + # + # - budget: optional, set a budget (bytes) against which size changes are measured + # it's set to 350kb here by default, as informed by the following piece: + # https://infrequently.org/2021/03/the-performance-inequality-gap/ + # + # - red-status-percentage: sets the percent size increase where you get a red + # status indicator, defaults to 20% + # + # Either of these arguments can be changed or removed by editing the `nextBundleAnalysis` + # entry in your package.json file. + - name: Compare with base branch bundle + if: success() && github.event.number + run: ls -laR .next/analyze/base && npx -p nextjs-bundle-analysis compare + + - name: Get comment body + id: get-comment-body + if: success() && github.event.number + uses: actions/github-script@v6 + with: + result-encoding: string + script: | + const fs = require('fs') + const comment = fs.readFileSync('.next/analyze/__bundle_analysis_comment.txt', 'utf8') + core.setOutput('body', comment) + + - name: Find Comment + uses: peter-evans/find-comment@v2 + if: success() && github.event.number + id: fc + with: + issue-number: ${{ github.event.number }} + body-includes: "" + + - name: Create Comment + uses: peter-evans/create-or-update-comment@v2 + if: success() && github.event.number && steps.fc.outputs.comment-id == 0 + with: + issue-number: ${{ github.event.number }} + body: ${{ steps.get-comment-body.outputs.body }} + + - name: Update Comment + uses: peter-evans/create-or-update-comment@v2 + if: success() && github.event.number && steps.fc.outputs.comment-id != 0 + with: + issue-number: ${{ github.event.number }} + body: ${{ steps.get-comment-body.outputs.body }} + comment-id: ${{ steps.fc.outputs.comment-id }} + edit-mode: replace \ No newline at end of file diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..f30b9fa --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,21 @@ +name: Check + +on: + pull_request: + workflow_dispatch: + +jobs: + check: + name: Check + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - run: echo "node_version=$(cat .github/nodejs.version)" >> $GITHUB_ENV + - name: use node ${{ env.node_version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.node_version }} + - run: yarn install --frozen-lockfile + - run: yarn lint + - run: yarn prettier + - run: yarn test \ No newline at end of file diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 49a6737..1e10599 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -1,20 +1,24 @@ name: Playwright Tests + on: push: branches: [ main, master ] pull_request: - branches: [ main, master ] + workflow_dispatch: + jobs: test: timeout-minutes: 60 runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v3 - with: - node-version: 16 + - uses: actions/checkout@v3 + - run: echo "node_version=$(cat .github/nodejs.version)" >> $GITHUB_ENV + - name: use node ${{ env.node_version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ env.node_version }} - name: Install dependencies - run: yarn + run: yarn install --frozen-lockfile - name: Install Playwright Browsers run: yarn playwright install --with-deps - name: Run Playwright tests diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..db5ddae --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +.next +node_modules \ No newline at end of file diff --git a/package.json b/package.json index c65ecdc..ec3a9cf 100644 --- a/package.json +++ b/package.json @@ -56,8 +56,8 @@ "@testing-library/react": "^14.0.0", "@total-typescript/ts-reset": "^0.4.2", "@types/node": "^17.0.12", - "@types/react": "^18.0.22", - "@types/react-dom": "^18.0.7", + "@types/react": "^18.0.37", + "@types/react-dom": "^18.0.11", "@typescript-eslint/eslint-plugin": "^5.57.1", "@typescript-eslint/parser": "^5.54.1", "autoprefixer": "^10.4.14", diff --git a/pages/index.tsx b/pages/index.tsx index 202de49..d0bbdb6 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,4 +1,5 @@ import Head from "next/head" +import { Button } from "components/Button/Button" export default function Web() { return ( @@ -16,10 +17,7 @@ export default function Web() { From checkout to global sales tax compliance, companies around the world use Flowbite to simplify their payment stack.
- + - - Speak to Sales - + + diff --git a/tailwind.config.js b/tailwind.config.js index c8cde97..7bb282a 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -84,4 +84,7 @@ module.exports = { }, }, plugins: [], + future: { + hoverOnlyWhenSupported: true, + } } diff --git a/yarn.lock b/yarn.lock index f5e7b4f..7efc5e2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3597,14 +3597,14 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== -"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.7": +"@types/react-dom@^18.0.0", "@types/react-dom@^18.0.11": version "18.0.11" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.11.tgz#321351c1459bc9ca3d216aefc8a167beec334e33" integrity sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw== dependencies: "@types/react" "*" -"@types/react@*", "@types/react@^18.0.22": +"@types/react@*": version "18.0.29" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.29.tgz#4cead505172c0020c5b51940199e31fc6ff2f63a" integrity sha512-wXHktgUABxplw1+UnljseDq4+uztQyp2tlWZRIxHlpchsCFqiYkvaDS8JR7eKOQm8wziTH/el5qL7D6gYNkYcw== @@ -3622,6 +3622,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@^18.0.37": + version "18.0.37" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.0.37.tgz#7a784e2a8b8f83abb04dc6b9ed9c9b4c0aee9be7" + integrity sha512-4yaZZtkRN3ZIQD3KSEwkfcik8s0SWV+82dlJot1AbGYHCzJkWP3ENBY6wYeDRmKZ6HkrgoGAmR2HqdwYGp6OEw== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/scheduler@*": version "0.16.3" resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.3.tgz#cef09e3ec9af1d63d2a6cc5b383a737e24e6dcf5"