diff --git a/.czrc b/.czrc new file mode 100644 index 000000000..d1bcc209c --- /dev/null +++ b/.czrc @@ -0,0 +1,3 @@ +{ + "path": "cz-conventional-changelog" +} diff --git a/.editorconfig b/.editorconfig index 7c1e13a68..3c367b96b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -9,3 +9,6 @@ indent_size = 2 indent_style = space insert_final_newline = true trim_trailing_whitespace = true + +[Makefile] +indent_style = tab diff --git a/.env.example b/.env.example new file mode 100644 index 000000000..5c24bdc47 --- /dev/null +++ b/.env.example @@ -0,0 +1,49 @@ +### Keycloak +KEYCLOAK_ADMIN=keycloak +KEYCLOAK_ADMIN_PASSWORD=keycloak + +# https://www.keycloak.org/server/all-config +# Database +KC_DB=postgres +KC_DB_PASSWORD=keycloak +KC_DB_SCHEMA=public +KC_DB_URL_DATABASE=keycloak +KC_DB_URL_HOST=keycloak-database +KC_DB_URL_PORT=5432 +KC_DB_USERNAME=keycloak + +# Hostname +# KC_HOSTNAME_URL=https://auth.wod.docker +# KC_HOSTNAME_ADMIN_URL=https://auth.wod.docker +KC_HOSTNAME_STRICT=false +KC_INTERNAL_HOSTNAME_URL=http://localhost:8080 + +# HTTP/TLS +KC_HTTP_ENABLED=true +KC_HTTP_PORT=8080 +KC_HTTPS_CERTIFICATE_FILE=/opt/keycloak/conf/cert.pem +KC_HTTPS_CERTIFICATE_KEY_FILE=/opt/keycloak/conf/key.pem +KC_HTTPS_PORT=8443 + +# Health +KC_HEALTH_ENABLED=true + +# Metrics +KC_METRICS_ENABLED=false + +# Proxy +KC_PROXY=passthrough + +# Custom theme for keycloak +KC_THEME_URL=https://github.com/lukin/keywind + +### Initial Keycloak realm settings +OIDC_ADMIN_REALM=operations +OIDC_ADMIN_USER_ID=user +OIDC_ADMIN_APP_SECRET=secret +OIDC_ADMIN_APP_ID=app + +OIDC_CLIENT_REALM=client +OIDC_CLIENT_USER_ID=user +OIDC_CLIENT_APP_ID=app +OIDC_CLIENT_APP_SECRET=secret diff --git a/.github/actions/pnpm-install/action.yml b/.github/actions/pnpm-install/action.yml new file mode 100644 index 000000000..85255e834 --- /dev/null +++ b/.github/actions/pnpm-install/action.yml @@ -0,0 +1,40 @@ +--- +name: ⚙️ Monorepo install (pnpm) +description: 'Run pnpm install' + +runs: + using: 'composite' + + steps: + - name: ⚙️ Install pnpm + uses: pnpm/action-setup@v2 + id: pnpm-install + with: + run_install: false + + - name: 🌎 Expose pnpm config(s) through "$GITHUB_OUTPUT" + id: pnpm-config + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT + + - name: ♻️ Cache rotation keys + id: cache-rotation + shell: bash + run: | + echo "YEAR_WEEK=$(/bin/date -u "+%Y%W")" >> $GITHUB_OUTPUT + + - uses: actions/cache@v4 + name: 🗄️ Setup pnpm cache + id: pnpm-store-cache + with: + path: ${{ steps.pnpm-config.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-cache-${{ steps.cache-rotation.outputs.YEAR_WEEK }}-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store-cache-${{ steps.cache-rotation.outputs.YEAR_WEEK }}- + + - name: 📦 Install dependencies + shell: bash + run: pnpm install --frozen-lockfile --strict-peer-dependencies --prefer-offline + env: + HUSKY: '0' diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 000000000..811eb2675 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,11 @@ +--- +# this file is for the labeler workflow job +# Documentation https://github.com/marketplace/actions/labeler + +'type: documentation': + - assets/**/* + - .github/* + - ./*.md + +'type: maintenance': + - .github/**/* diff --git a/.github/workflows/auto-merge-release.yaml b/.github/workflows/auto-merge-release.yaml new file mode 100644 index 000000000..4f0df1f01 --- /dev/null +++ b/.github/workflows/auto-merge-release.yaml @@ -0,0 +1,24 @@ +--- +# https://github.com/peter-evans/enable-pull-request-automerge + +on: # yamllint disable-line rule:truthy + pull_request: + +permissions: + pull-requests: write + contents: write + +name: 🤞 Auto merge release + +jobs: + auto-merge: + if: github.actor == 'lotyp' && startsWith(github.head_ref, 'release-please--') + runs-on: ubuntu-latest + steps: + - name: 🤞 Auto-merge pull request + uses: peter-evans/enable-pull-request-automerge@v3 + with: + pull-request-number: ${{ github.event.pull_request.number }} + merge-method: merge + # to trigger other workflows, pass PAT token instead of GITHUB_TOKEN + token: ${{ secrets.PERSONAL_GITHUB_TOKEN }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..f3c4ef9b5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,70 @@ +--- +on: # yamllint disable-line rule:truthy + merge_group: + push: + branches: + - master + - develop + # Only consider those paths to trigger the action + paths: + - 'packages/**' + - 'package.json' + - 'pnpm*' + - '.github/**' + - 'tsconfig.json' + - 'tsconfig.node.json' + + pull_request: + types: + - opened + - synchronize + - reopened + # Only consider those paths to trigger the action + paths: + - 'packages/**' + - 'package.json' + - 'pnpm*' + - '.github/**' + - 'tsconfig.json' + - 'tsconfig.node.json' + +name: 🔍 Continuous integration + +jobs: + integration: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: true + matrix: + os: ['ubuntu-22.04'] + node: ['18'] + + steps: + - name: 📦 Check out the codebase + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + with: + fetch-depth: 0 + + - name: ⚙️ Setup node ${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + registry-url: 'https://registry.npmjs.org/' + + - name: 📥 Monorepo install + uses: ./.github/actions/pnpm-install + + - name: ♻️ Restore packages cache + uses: actions/cache@v4 + with: + path: | + ${{ github.workspace }}/.cache + ${{ github.workspace }}/**/tsconfig.tsbuildinfo + key: ${{ runner.os }}-packages-cache-${{ hashFiles('**/pnpm*.yaml') }} + restore-keys: | + ${{ runner.os }}-packages-cache-${{ hashFiles('**/pnpm*.yaml') }} + + # Lint packages that have changed (--include & --since) + - name: 🚨 Linter + run: | + pnpm --filter "...[origin/master]" run lint diff --git a/.github/workflows/codesee-arch-diagram.yml b/.github/workflows/codesee-arch-diagram.yml new file mode 100644 index 000000000..fc7714a84 --- /dev/null +++ b/.github/workflows/codesee-arch-diagram.yml @@ -0,0 +1,28 @@ +--- +# This workflow was added by CodeSee. Learn more at https://codesee.io/ +# This is v2.0 of this workflow file + +on: # yamllint disable-line rule:truthy + push: + branches: + - master + - develop + pull_request_target: + types: + - opened + - synchronize + - reopened + +name: 🤖 CodeSee + +permissions: read-all + +jobs: + codesee: + runs-on: ubuntu-latest + continue-on-error: true + steps: + - name: 💻 Analyze the repo with CodeSee + uses: Codesee-io/codesee-action@v2 + with: + codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} diff --git a/.github/workflows/create-release.yml b/.github/workflows/create-release.yml new file mode 100644 index 000000000..30f6643ea --- /dev/null +++ b/.github/workflows/create-release.yml @@ -0,0 +1,38 @@ +--- +# https://github.com/google-github-actions/release-please-action#release-types-supported + +on: # yamllint disable-line rule:truthy + push: + branches: + - master + +name: 📦 Create release + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: 🎉 Create release + uses: google-github-actions/release-please-action@v4 + id: release + with: + # to trigger other workflows, pass PAT token instead of GITHUB_TOKEN + token: ${{ secrets.PERSONAL_GITHUB_TOKEN }} + release-type: node + package-name: docker-node + default-branch: master + changelog-types: | + [ + { "type": "feat", "section": "Features", "hidden": false }, + { "type": "fix", "section": "Bug Fixes", "hidden": false }, + { "type": "perf", "section": "Performance Improvements", "hidden": false }, + { "type": "docs", "section": "Documentation", "hidden": false }, + { "type": "chore", "section": "Miscellaneous", "hidden": false }, + { "type": "style", "section": "Styles", "hidden": true }, + { "type": "revert", "section": "Reverts", "hidden": true }, + { "type": "deps", "section": "Dependencies", "hidden": true }, + { "type": "refactor", "section": "Code Refactoring", "hidden": true }, + { "type": "test", "section": "Tests", "hidden": true }, + { "type": "build", "section": "Build System", "hidden": true }, + { "type": "ci", "section": "Continuous Integration", "hidden": true } + ] diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml new file mode 100644 index 000000000..4cef6397e --- /dev/null +++ b/.github/workflows/label.yml @@ -0,0 +1,22 @@ +--- +# This workflow will triage pull requests and apply a label based on the +# paths that are modified in the pull request. +# +# To use this workflow, you will need to set up a .github/labeler.yml +# file with configuration. For more information, see: +# https://github.com/actions/labeler/blob/master/README.md + +on: # yamllint disable-line rule:truthy + pull_request: + merge_group: + +name: 🏷️ Add labels + +jobs: + label: + runs-on: ubuntu-latest + steps: + - name: 🏷️ Apply labels + uses: actions/labeler@v5 + with: + repo-token: '${{ secrets.GITHUB_TOKEN }}' diff --git a/.github/workflows/upload-assets.yml b/.github/workflows/upload-assets.yml new file mode 100644 index 000000000..b36ebd30e --- /dev/null +++ b/.github/workflows/upload-assets.yml @@ -0,0 +1,51 @@ +--- +# https://github.com/google-github-actions/release-please-action#release-types-supported + +on: # yamllint disable-line rule:truthy + push: + tags: + - 'v*.*.*' + +name: 📤 Upload artifacts + +jobs: + upload-artifacts: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: true + matrix: + os: ['ubuntu-22.04'] + node: ['18'] + + steps: + - name: 📦 Check out the codebase + uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 + + - name: ⚙️ Setup node ${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + registry-url: 'https://registry.npmjs.org/' + + - name: 📥 Monorepo install + uses: ./.github/actions/pnpm-install + + - name: ♻️ Restore packages cache + uses: actions/cache@v4 + with: + path: | + ${{ github.workspace }}/.cache + ${{ github.workspace }}/**/tsconfig.tsbuildinfo + key: ${{ runner.os }}-packages-cache-${{ hashFiles('**/pnpm*.yaml') }} + restore-keys: | + ${{ runner.os }}-packages-cache-${{ hashFiles('**/pnpm*.yaml') }} + + - name: 🚀 Generate dist files + run: pnpm build:jar + + - name: 📤 Upload release assets + uses: alexellis/upload-assets@0.4.1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + asset_paths: '["./out/keywind.jar"]' diff --git a/.gitignore b/.gitignore index 3a84bfea4..d20f3260b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,51 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# build +out/ + # dependencies -node_modules/ +node_modules +.pnp.* +.pnp +.pnpm-store # misc .DS_Store +*.pem +Thumbs.db + +# debug +logs +pnpm-debug.log* +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.pnpm-debug.log* +**/.debug +logs/ +*.log +.turbo/ +**/.turbo/ + +# local env files +.env +**/.env +.env.local +.env.*.local +*.local + +# cache +.eslintcache +**/.eslintcache +.stylelintcache +.cache/* +**/tsconfig.tsbuildinfo + +# editors +.idea +.vscode/ + +# temp files +tmp/ +*.tmp +.netrc diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 000000000..31354ec13 --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/commit-msg b/.husky/commit-msg new file mode 100755 index 000000000..5b0b35410 --- /dev/null +++ b/.husky/commit-msg @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +npx commitlint --edit "${1}" diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 000000000..499591701 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,4 @@ +#!/usr/bin/env sh +. "$(dirname -- "$0")/_/husky.sh" + +pnpm lint-staged --verbose --concurrent false diff --git a/.ncurc.yml b/.ncurc.yml new file mode 100644 index 000000000..20daf761c --- /dev/null +++ b/.ncurc.yml @@ -0,0 +1,7 @@ +--- +# npm-check-updates configuration used by pnpm deps:check && pnpm deps:update +# convenience scripts. +# @link https://github.com/raineorshine/npm-check-updates + +# Add here exclusions on packages if any +reject: [] diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..aad29c08b --- /dev/null +++ b/.npmrc @@ -0,0 +1,4 @@ +### https://thedaviddias.dev/notes/how-to-fix-post-pre-build-pnpm +enable-pre-post-scripts=true + +store-dir=.pnpm-store/v3 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..9ae489e7b --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +node_modules +.pnpm-store +out +theme/keywind/login/resources/dist + diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 000000000..5ac85e271 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "printWidth": 100, + "singleQuote": true +} diff --git a/.secretlintignore b/.secretlintignore new file mode 100644 index 000000000..d65cc8844 --- /dev/null +++ b/.secretlintignore @@ -0,0 +1 @@ +.pnpm-store diff --git a/.secretlintrc.js b/.secretlintrc.js new file mode 100644 index 000000000..16a985129 --- /dev/null +++ b/.secretlintrc.js @@ -0,0 +1,3 @@ +module.exports = { + ...require('@wayofdev/secretlint-config'), +}; diff --git a/.yamllint b/.yamllint new file mode 100644 index 000000000..fbb61d05f --- /dev/null +++ b/.yamllint @@ -0,0 +1,64 @@ +--- + +extends: "default" + +ignore: | + pnpm-lock.yaml + pnpm-workspace.yaml + node_modules/ + .pnpm-store/ + +# Overwrite above default rules +rules: + braces: + # Defaults + # min-spaces-inside: 0 + # max-spaces-inside: 0 + + # Keep 0 min-spaces to not error on empty {} collection definitions + min-spaces-inside: 0 + + # Allow one space inside braces to improve code readability + max-spaces-inside: 1 + + brackets: + # Defaults + # min-spaces-inside: 0 + # max-spaces-inside: 0 + + # Keep 0 min-spaces to not error on empty [] collection definitions + min-spaces-inside: 0 + + # Allow one space inside braces to improve code readability + max-spaces-inside: 1 + + colons: + # Defaults + # min-spaces-before: 0 + # max-spaces-after: 1 + + # Allow multiple spaces after a colon to allow indentation of YAML + # dictionary values + max-spaces-after: -1 + + commas: + # Defaults + # max-spaces-after: 1 + + # Allow multiple spaces after a comma to allow indentation of YAML + # dictionary values + max-spaces-after: -1 + + comments: + require-starting-space: true + min-spaces-from-content: 1 + + line-length: + max: 180 + level: warning + +yaml-files: + - "*.yaml" + - "*.yml" + +... diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..9466031d1 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,1903 @@ +# Changelog + +## [1.1.269](https://github.com/wayofdev/keywind/compare/v1.1.268...v1.1.269) (2024-04-02) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.8 ([f0e2083](https://github.com/wayofdev/keywind/commit/f0e2083a48de2ef4bb720232c9335a16847a1512)) + +## [1.1.268](https://github.com/wayofdev/keywind/compare/v1.1.267...v1.1.268) (2024-03-08) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.7 ([2c0efbd](https://github.com/wayofdev/keywind/commit/2c0efbd1cdc488834c8f329bcd446814debd558c)) + +## [1.1.267](https://github.com/wayofdev/keywind/compare/v1.1.266...v1.1.267) (2024-03-05) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.6 ([2b9956b](https://github.com/wayofdev/keywind/commit/2b9956b644393b5db86a77bfd7a23e4ab2af4452)) + +## [1.1.266](https://github.com/wayofdev/keywind/compare/v1.1.265...v1.1.266) (2024-01-24) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.5 ([8dc02de](https://github.com/wayofdev/keywind/commit/8dc02de00725ed738bfc3c8bf2e74ac021669310)) + +## [1.1.265](https://github.com/wayofdev/keywind/compare/v1.1.264...v1.1.265) (2024-01-22) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.4 ([53b7aca](https://github.com/wayofdev/keywind/commit/53b7aca60c0e72aaafc8602679c805f6b7b47958)) + +## [1.1.264](https://github.com/wayofdev/keywind/compare/v1.1.263...v1.1.264) (2023-11-29) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.10.1 ([d313159](https://github.com/wayofdev/keywind/commit/d313159ba75c3beb84957094946039b7b9a993b3)) + +## [1.1.263](https://github.com/wayofdev/keywind/compare/v1.1.262...v1.1.263) (2023-11-29) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v8 ([da0023a](https://github.com/wayofdev/keywind/commit/da0023a359d4b319303861d672a60c9521d8b69a)) + +## [1.1.262](https://github.com/wayofdev/keywind/compare/v1.1.261...v1.1.262) (2023-11-29) + + +### Miscellaneous + +* **deps:** update dependency vite to v5.0.4 ([de8cec1](https://github.com/wayofdev/keywind/commit/de8cec11e44a74441c13ea2d53a5d58bee3a9ae2)) + +## [1.1.261](https://github.com/wayofdev/keywind/compare/v1.1.260...v1.1.261) (2023-11-28) + + +### Miscellaneous + +* **deps:** update dependency vite to v5.0.3 ([79d952d](https://github.com/wayofdev/keywind/commit/79d952dc75ec2fbc712291d35cbe56fbe1337ce9)) + +## [1.1.260](https://github.com/wayofdev/keywind/compare/v1.1.259...v1.1.260) (2023-11-27) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.2.0 ([e4d4e10](https://github.com/wayofdev/keywind/commit/e4d4e10398edfc0a5e06c38f236b79210d532c23)) + +## [1.1.259](https://github.com/wayofdev/keywind/compare/v1.1.258...v1.1.259) (2023-11-27) + + +### Miscellaneous + +* **deps:** lock file maintenance ([11aab18](https://github.com/wayofdev/keywind/commit/11aab18a9a20f6cea1c6cea233c45a064fd33065)) + +## [1.1.258](https://github.com/wayofdev/keywind/compare/v1.1.257...v1.1.258) (2023-11-24) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.10.0 ([4db369b](https://github.com/wayofdev/keywind/commit/4db369b4af381c9c2529c0ad04141597656c9f45)) + +## [1.1.257](https://github.com/wayofdev/keywind/compare/v1.1.256...v1.1.257) (2023-11-24) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.9.5 ([a5b196f](https://github.com/wayofdev/keywind/commit/a5b196fcd07dd956d18719762087da38fcd887ea)) + +## [1.1.256](https://github.com/wayofdev/keywind/compare/v1.1.255...v1.1.256) (2023-11-22) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.9.4 ([fa94550](https://github.com/wayofdev/keywind/commit/fa9455004404e114514596acedc048e0eb637ec4)) + +## [1.1.255](https://github.com/wayofdev/keywind/compare/v1.1.254...v1.1.255) (2023-11-21) + + +### Miscellaneous + +* **deps:** update dependency vite to v5.0.2 ([75f1fe6](https://github.com/wayofdev/keywind/commit/75f1fe6a4feb13a9624ddd77d7092d5a40d8c232)) + +## [1.1.254](https://github.com/wayofdev/keywind/compare/v1.1.253...v1.1.254) (2023-11-21) + + +### Miscellaneous + +* **deps:** update dependency vite to v5.0.1 ([65466da](https://github.com/wayofdev/keywind/commit/65466daea074c17316fb986bb95022da358c25db)) + +## [1.1.253](https://github.com/wayofdev/keywind/compare/v1.1.252...v1.1.253) (2023-11-21) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.9.3 ([d662f3e](https://github.com/wayofdev/keywind/commit/d662f3e6d606695a821248660ae6ace3fedfdf07)) + +## [1.1.252](https://github.com/wayofdev/keywind/compare/v1.1.251...v1.1.252) (2023-11-21) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18.4.3 ([a9311b8](https://github.com/wayofdev/keywind/commit/a9311b8362e043b2a1a825ac06fbd2374ad0727a)) + +## [1.1.251](https://github.com/wayofdev/keywind/compare/v1.1.250...v1.1.251) (2023-11-21) + + +### Miscellaneous + +* **deps:** update dependency @types/archiver to v6.0.2 ([1586e3c](https://github.com/wayofdev/keywind/commit/1586e3c8a38a679a5ac5d555b0dc2562d8ab2259)) + +## [1.1.250](https://github.com/wayofdev/keywind/compare/v1.1.249...v1.1.250) (2023-11-20) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.3.2 ([2aa9c7a](https://github.com/wayofdev/keywind/commit/2aa9c7a6d9c5ab52c9a7c1c94c8d3dbc9ed67014)) + +## [1.1.249](https://github.com/wayofdev/keywind/compare/v1.1.248...v1.1.249) (2023-11-20) + + +### Miscellaneous + +* **deps:** lock file maintenance ([3d22143](https://github.com/wayofdev/keywind/commit/3d22143d3f726724b62a1e55c899518e8952aa19)) + +## [1.1.248](https://github.com/wayofdev/keywind/compare/v1.1.247...v1.1.248) (2023-11-19) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.3 ([2ba3406](https://github.com/wayofdev/keywind/commit/2ba340691b494cfc58e795afce5dcb6b4fb084f0)) + +## [1.1.247](https://github.com/wayofdev/keywind/compare/v1.1.246...v1.1.247) (2023-11-18) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.9.2 ([5c715e0](https://github.com/wayofdev/keywind/commit/5c715e04e107ae15bf227fcb6f386b2ea16ad126)) + +## [1.1.246](https://github.com/wayofdev/keywind/compare/v1.1.245...v1.1.246) (2023-11-17) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.9.1 ([a128b21](https://github.com/wayofdev/keywind/commit/a128b21667fb18889c09b0f45249eb8b8bfab063)) + +## [1.1.245](https://github.com/wayofdev/keywind/compare/v1.1.244...v1.1.245) (2023-11-16) + + +### Miscellaneous + +* **deps:** update dependency vite to v5 ([1cc9e18](https://github.com/wayofdev/keywind/commit/1cc9e182a1137fccfb760cb097132cee1ddd9fa3)) + +## [1.1.244](https://github.com/wayofdev/keywind/compare/v1.1.243...v1.1.244) (2023-11-16) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18.4.2 ([8e8cdba](https://github.com/wayofdev/keywind/commit/8e8cdba7c59793914df48a773370c173e1629c06)) + +## [1.1.243](https://github.com/wayofdev/keywind/compare/v1.1.242...v1.1.243) (2023-11-13) + + +### Miscellaneous + +* **deps:** lock file maintenance ([66ae3a7](https://github.com/wayofdev/keywind/commit/66ae3a7fd8519beff9c413a33cb9fb0029dc9139)) + +## [1.1.242](https://github.com/wayofdev/keywind/compare/v1.1.241...v1.1.242) (2023-11-12) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.1.0 ([af92fb5](https://github.com/wayofdev/keywind/commit/af92fb5497cc457e5544ffac64c6f60eb8736264)) + +## [1.1.241](https://github.com/wayofdev/keywind/compare/v1.1.240...v1.1.241) (2023-11-12) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18.4.1 ([3fd4965](https://github.com/wayofdev/keywind/commit/3fd4965eb8769487abcd3111517e10d4902f5833)) + +## [1.1.240](https://github.com/wayofdev/keywind/compare/v1.1.239...v1.1.240) (2023-11-11) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v15.1.0 ([58e5e48](https://github.com/wayofdev/keywind/commit/58e5e48abb70d1fed6515569bee5627064cfdfb4)) + +## [1.1.239](https://github.com/wayofdev/keywind/compare/v1.1.238...v1.1.239) (2023-11-10) + + +### Miscellaneous + +* **deps:** update dependency @tailwindcss/forms to v0.5.7 ([117112d](https://github.com/wayofdev/keywind/commit/117112dd4ad6a761defc200adef657b7ec1d9de2)) + +## [1.1.238](https://github.com/wayofdev/keywind/compare/v1.1.237...v1.1.238) (2023-11-10) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18.4.0 ([167e142](https://github.com/wayofdev/keywind/commit/167e142a6d696337e87d31217e3b049f667e7017)) + +## [1.1.237](https://github.com/wayofdev/keywind/compare/v1.1.236...v1.1.237) (2023-11-07) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.9.0 ([25a4d31](https://github.com/wayofdev/keywind/commit/25a4d31a362b96bb5c07c395ded4344bfcc9145b)) + +## [1.1.236](https://github.com/wayofdev/keywind/compare/v1.1.235...v1.1.236) (2023-11-07) + + +### Miscellaneous + +* **deps:** update dependency @types/archiver to v6.0.1 ([a5551ae](https://github.com/wayofdev/keywind/commit/a5551aedf3f7c793127a6c8cfc5680288e939a87)) + +## [1.1.235](https://github.com/wayofdev/keywind/compare/v1.1.234...v1.1.235) (2023-11-07) + + +### Miscellaneous + +* **deps:** update dependency @types/alpinejs to v3.13.5 ([e0db9ad](https://github.com/wayofdev/keywind/commit/e0db9ad077c718f972dac2758355df5162f256e6)) + +## [1.1.234](https://github.com/wayofdev/keywind/compare/v1.1.233...v1.1.234) (2023-11-06) + + +### Miscellaneous + +* **deps:** update dependency @types/alpinejs to v3.13.4 ([9042a4d](https://github.com/wayofdev/keywind/commit/9042a4dfc1203e3bd0f5288ffaa70ef317b52baa)) + +## [1.1.233](https://github.com/wayofdev/keywind/compare/v1.1.232...v1.1.233) (2023-11-06) + + +### Miscellaneous + +* **deps:** lock file maintenance ([fce6d10](https://github.com/wayofdev/keywind/commit/fce6d105063043829d145091dbf43ded2630a036)) + +## [1.1.232](https://github.com/wayofdev/keywind/compare/v1.1.231...v1.1.232) (2023-10-31) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.8.10 ([f1e9e19](https://github.com/wayofdev/keywind/commit/f1e9e19e7649d1c0cdace43e5353ec9de7fad817)) + +## [1.1.231](https://github.com/wayofdev/keywind/compare/v1.1.230...v1.1.231) (2023-10-31) + + +### Miscellaneous + +* **deps:** update dependency @types/archiver to v6 ([7c9f357](https://github.com/wayofdev/keywind/commit/7c9f35787697e9ed251f56f1ffbe2b020370b0e8)) + +## [1.1.230](https://github.com/wayofdev/keywind/compare/v1.1.229...v1.1.230) (2023-10-30) + + +### Miscellaneous + +* **deps:** lock file maintenance ([331299d](https://github.com/wayofdev/keywind/commit/331299defe751da943c002a6c7e6eab1795e5bda)) + +## [1.1.229](https://github.com/wayofdev/keywind/compare/v1.1.228...v1.1.229) (2023-10-27) + + +### Bug Fixes + +* **deps:** update dependency rfc4648 to v1.5.3 ([e99b994](https://github.com/wayofdev/keywind/commit/e99b9945dd01af1671e6d39494ee33558a2cf334)) + +## [1.1.228](https://github.com/wayofdev/keywind/compare/v1.1.227...v1.1.228) (2023-10-26) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18.2.0 ([d48e1ef](https://github.com/wayofdev/keywind/commit/d48e1ef9454157123f0301aa04fa97501b798256)) + +## [1.1.227](https://github.com/wayofdev/keywind/compare/v1.1.226...v1.1.227) (2023-10-25) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.8.9 ([3f6feca](https://github.com/wayofdev/keywind/commit/3f6fecab90294e8f9603e069b48203b0ee1304de)) + +## [1.1.226](https://github.com/wayofdev/keywind/compare/v1.1.225...v1.1.226) (2023-10-25) + + +### Miscellaneous + +* **deps:** update dependency tailwindcss to v3.3.5 ([bde22be](https://github.com/wayofdev/keywind/commit/bde22bea867d4fa8b67e7dc9c66cdd4116434e49)) + +## [1.1.225](https://github.com/wayofdev/keywind/compare/v1.1.224...v1.1.225) (2023-10-25) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18.1.0 ([e054e82](https://github.com/wayofdev/keywind/commit/e054e829b6d71ddaadc80043d6b53ab981ab8be1)) + +## [1.1.224](https://github.com/wayofdev/keywind/compare/v1.1.223...v1.1.224) (2023-10-24) + + +### Miscellaneous + +* **deps:** update dependency tailwindcss to v3.3.4 ([092b6c1](https://github.com/wayofdev/keywind/commit/092b6c13986d8f66c13858ef225fed3b715b11d0)) + +## [1.1.223](https://github.com/wayofdev/keywind/compare/v1.1.222...v1.1.223) (2023-10-24) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20.8.8 ([16712b8](https://github.com/wayofdev/keywind/commit/16712b8d2266fe2e25dc9ec978277e5ea03d0af5)) + +## [1.1.222](https://github.com/wayofdev/keywind/compare/v1.1.221...v1.1.222) (2023-10-24) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v20 ([8a3a751](https://github.com/wayofdev/keywind/commit/8a3a7510a2561d064d2daad9f90c867af1689c48)) + +## [1.1.221](https://github.com/wayofdev/keywind/compare/v1.1.220...v1.1.221) (2023-10-23) + + +### Miscellaneous + +* **deps:** update actions/setup-node action to v4 ([e96123d](https://github.com/wayofdev/keywind/commit/e96123d4a1747c51199bacdb7344c96c783a0f98)) + +## [1.1.220](https://github.com/wayofdev/keywind/compare/v1.1.219...v1.1.220) (2023-10-23) + + +### Miscellaneous + +* **deps:** lock file maintenance ([65f4cb8](https://github.com/wayofdev/keywind/commit/65f4cb8f1fc89f91dd83fb71b0578401a73fe9a7)) + +## [1.1.219](https://github.com/wayofdev/keywind/compare/v1.1.218...v1.1.219) (2023-10-20) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v18 ([26c3176](https://github.com/wayofdev/keywind/commit/26c31768eeb53af697faa217c5068dbc2bcb7388)) + +## [1.1.218](https://github.com/wayofdev/keywind/compare/v1.1.217...v1.1.218) (2023-10-20) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.8.1 ([0773247](https://github.com/wayofdev/keywind/commit/0773247d637f35e7889b3adbe4bd1cea1f4be9b7)) + +## [1.1.217](https://github.com/wayofdev/keywind/compare/v1.1.216...v1.1.217) (2023-10-19) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v15.0.2 ([a727879](https://github.com/wayofdev/keywind/commit/a727879a6eb1c3ba699f0e5e0c253ef32c347e4a)) + +## [1.1.216](https://github.com/wayofdev/keywind/compare/v1.1.215...v1.1.216) (2023-10-19) + + +### Miscellaneous + +* **deps:** update actions/checkout digest to b4ffde6 ([7d7c21f](https://github.com/wayofdev/keywind/commit/7d7c21f47ab17be9f84b3aca95c49961065463ee)) + +## [1.1.215](https://github.com/wayofdev/keywind/compare/v1.1.214...v1.1.215) (2023-10-18) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.2 ([a50a08b](https://github.com/wayofdev/keywind/commit/a50a08bc1e31093136e55c251f6324c73d2617b8)) + +## [1.1.214](https://github.com/wayofdev/keywind/compare/v1.1.213...v1.1.214) (2023-10-18) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.5.0 ([a106162](https://github.com/wayofdev/keywind/commit/a1061627fb8768e2dc636ea13718ebcde3931907)) + +## [1.1.213](https://github.com/wayofdev/keywind/compare/v1.1.212...v1.1.213) (2023-10-18) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.18.6 ([5b98450](https://github.com/wayofdev/keywind/commit/5b98450a577ae61c5ad5dc55a2f49971cb2bb732)) + +## [1.1.212](https://github.com/wayofdev/keywind/compare/v1.1.211...v1.1.212) (2023-10-18) + + +### Miscellaneous + +* **deps:** update dependency @types/alpinejs to v3.13.3 ([aed3ac2](https://github.com/wayofdev/keywind/commit/aed3ac277ef126eb07c434c5404f421f55991c60)) + +## [1.1.211](https://github.com/wayofdev/keywind/compare/v1.1.210...v1.1.211) (2023-10-18) + + +### Miscellaneous + +* **deps:** update dependency @types/archiver to v5.3.4 ([8990e4b](https://github.com/wayofdev/keywind/commit/8990e4b3cd6989374d90e7d844cce7677c17836f)) + +## [1.1.210](https://github.com/wayofdev/keywind/compare/v1.1.209...v1.1.210) (2023-10-16) + + +### Miscellaneous + +* **deps:** lock file maintenance ([890693c](https://github.com/wayofdev/keywind/commit/890693cff13bd77142fe680e40ddfd8b72ddc87d)) + +## [1.1.209](https://github.com/wayofdev/keywind/compare/v1.1.208...v1.1.209) (2023-10-15) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v15.0.1 ([a67f7cf](https://github.com/wayofdev/keywind/commit/a67f7cf4834bac77c0d6a4710a178846d1a672f4)) + +## [1.1.208](https://github.com/wayofdev/keywind/compare/v1.1.207...v1.1.208) (2023-10-14) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v15 ([ba4ab1f](https://github.com/wayofdev/keywind/commit/ba4ab1f4df18f3c486cac8c25d754dfdb37034c3)) + +## [1.1.207](https://github.com/wayofdev/keywind/compare/v1.1.206...v1.1.207) (2023-10-14) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.8.0 ([d506489](https://github.com/wayofdev/keywind/commit/d506489b488c29765f5052639903c982eae8b5be)) + +## [1.1.206](https://github.com/wayofdev/keywind/compare/v1.1.205...v1.1.206) (2023-10-12) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.18.5 ([f5ab32c](https://github.com/wayofdev/keywind/commit/f5ab32c30d0eb8c7c8763763dc11a324e2bdd939)) + +## [1.1.205](https://github.com/wayofdev/keywind/compare/v1.1.204...v1.1.205) (2023-10-07) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.18.4 ([6c86851](https://github.com/wayofdev/keywind/commit/6c868511890719ce953f8a809058c4bf266b6793)) + +## [1.1.204](https://github.com/wayofdev/keywind/compare/v1.1.203...v1.1.204) (2023-10-05) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.11 ([421de3f](https://github.com/wayofdev/keywind/commit/421de3fb39849c16adaf541c9f05c40fc6037c6b)) + +## [1.1.203](https://github.com/wayofdev/keywind/compare/v1.1.202...v1.1.203) (2023-10-05) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/secretlint-config to v3.0.3 ([0bfda51](https://github.com/wayofdev/keywind/commit/0bfda51f1fa6166a17d4f230522e4d24fb860619)) + +## [1.1.202](https://github.com/wayofdev/keywind/compare/v1.1.201...v1.1.202) (2023-10-05) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/lint-staged-config to v2.1.3 ([16af720](https://github.com/wayofdev/keywind/commit/16af72087419b8c7f95394ce8cc637cabb86c45f)) + +## [1.1.201](https://github.com/wayofdev/keywind/compare/v1.1.200...v1.1.201) (2023-10-05) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/commitlint-config to v3.0.3 ([03a7fef](https://github.com/wayofdev/keywind/commit/03a7fef794efd3dd8ddf428fdc8a0885fa4d9206)) + +## [1.1.200](https://github.com/wayofdev/keywind/compare/v1.1.199...v1.1.200) (2023-10-03) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.10 ([52b3586](https://github.com/wayofdev/keywind/commit/52b35863cf94651f03557500bcef7e8422d0cf53)) + +## [1.1.199](https://github.com/wayofdev/keywind/compare/v1.1.198...v1.1.199) (2023-10-02) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.18.3 ([1e21a02](https://github.com/wayofdev/keywind/commit/1e21a0254ca60b75fc3a4f3e6ed76e40c41462b2)) + +## [1.1.198](https://github.com/wayofdev/keywind/compare/v1.1.197...v1.1.198) (2023-10-02) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.1 ([1655781](https://github.com/wayofdev/keywind/commit/1655781ecc60c6c777525e8049cd5e015ceef8f6)) + +## [1.1.197](https://github.com/wayofdev/keywind/compare/v1.1.196...v1.1.197) (2023-10-02) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.34.7 ([5438e15](https://github.com/wayofdev/keywind/commit/5438e1525650ccc3c2659c5a96908e2fc0ff4a5a)) + +## [1.1.196](https://github.com/wayofdev/keywind/compare/v1.1.195...v1.1.196) (2023-10-02) + + +### Miscellaneous + +* **deps:** update dependency sort-package-json to v2.6.0 ([315a86a](https://github.com/wayofdev/keywind/commit/315a86a6cf7c1b22eb4fbeec6672e7b1abf79d04)) + +## [1.1.195](https://github.com/wayofdev/keywind/compare/v1.1.194...v1.1.195) (2023-10-02) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.18.1 ([8b8c83c](https://github.com/wayofdev/keywind/commit/8b8c83cbe8bfcf42802093b3c54ac28aac15db04)) + +## [1.1.194](https://github.com/wayofdev/keywind/compare/v1.1.193...v1.1.194) (2023-10-02) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.34.6 ([bb6a7e1](https://github.com/wayofdev/keywind/commit/bb6a7e1e6a96db5657e3c88fb297f57c3928c343)) + +## [1.1.193](https://github.com/wayofdev/keywind/compare/v1.1.192...v1.1.193) (2023-10-01) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.31 ([7d8cfe1](https://github.com/wayofdev/keywind/commit/7d8cfe16fea61930965b6fa50a65308d11ba9c7c)) + +## [1.1.192](https://github.com/wayofdev/keywind/compare/v1.1.191...v1.1.192) (2023-10-01) + + +### Miscellaneous + +* **deps:** update dependency autoprefixer to v10.4.16 ([8838f27](https://github.com/wayofdev/keywind/commit/8838f2796b9fe1771e45b31ffac99da90f289026)) + +## [1.1.191](https://github.com/wayofdev/keywind/compare/v1.1.190...v1.1.191) (2023-10-01) + + +### Miscellaneous + +* **deps:** update dependency @types/alpinejs to v3.13.2 ([27ccc18](https://github.com/wayofdev/keywind/commit/27ccc18eee0c134fe71ba438fdabbbc0c7f68b3b)) + +## [1.1.190](https://github.com/wayofdev/keywind/compare/v1.1.189...v1.1.190) (2023-10-01) + + +### Miscellaneous + +* **deps:** update dependency @types/archiver to v5.3.3 ([0beb4d2](https://github.com/wayofdev/keywind/commit/0beb4d2fe609fd19a9e555939a21dbac9d4c0443)) + +## [1.1.189](https://github.com/wayofdev/keywind/compare/v1.1.188...v1.1.189) (2023-10-01) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.7.2 ([67f842d](https://github.com/wayofdev/keywind/commit/67f842d780de7615088b398760800c76fdd7db97)) + +## [1.1.188](https://github.com/wayofdev/keywind/compare/v1.1.187...v1.1.188) (2023-10-01) + + +### Miscellaneous + +* **deps:** update actions/checkout digest to 8ade135 ([056c718](https://github.com/wayofdev/keywind/commit/056c718c9a9b6fae91794a69cea59ff60b464fd3)) + +## [1.1.187](https://github.com/wayofdev/keywind/compare/v1.1.186...v1.1.187) (2023-09-19) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.30 ([677499c](https://github.com/wayofdev/keywind/commit/677499c82a9578d4b23f8b4775816a47ca56b7fb)) + +## [1.1.186](https://github.com/wayofdev/keywind/compare/v1.1.185...v1.1.186) (2023-09-18) + + +### Miscellaneous + +* **deps:** lock file maintenance ([54240d0](https://github.com/wayofdev/keywind/commit/54240d0429032b2b1c31c872a4fec250c782d44c)) + +## [1.1.185](https://github.com/wayofdev/keywind/compare/v1.1.184...v1.1.185) (2023-09-18) + + +### Miscellaneous + +* **deps:** lock file maintenance ([1649f5d](https://github.com/wayofdev/keywind/commit/1649f5d07a5b95f05317b518d703c971bcfa8461)) + +## [1.1.184](https://github.com/wayofdev/keywind/compare/v1.1.183...v1.1.184) (2023-09-16) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.17 ([6c398e1](https://github.com/wayofdev/keywind/commit/6c398e1cfd3d34888bb82a06e323f86ba60191e4)) + +## [1.1.183](https://github.com/wayofdev/keywind/compare/v1.1.182...v1.1.183) (2023-09-15) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.16 ([3cfcdb5](https://github.com/wayofdev/keywind/commit/3cfcdb57e84be28045f28fb5d5fc994c0258e60b)) + +## [1.1.182](https://github.com/wayofdev/keywind/compare/v1.1.181...v1.1.182) (2023-09-14) + + +### Miscellaneous + +* **deps:** update dependency @types/alpinejs to v3.13.0 ([825eae8](https://github.com/wayofdev/keywind/commit/825eae8aff8b65466b5cad17db44cf1500764b3a)) + +## [1.1.181](https://github.com/wayofdev/keywind/compare/v1.1.180...v1.1.181) (2023-09-11) + + +### Miscellaneous + +* **deps:** lock file maintenance ([ec259ea](https://github.com/wayofdev/keywind/commit/ec259eaa00a20db0bdf8167f27be547e4a5230cc)) + +## [1.1.180](https://github.com/wayofdev/keywind/compare/v1.1.179...v1.1.180) (2023-09-09) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.15 ([8490fc5](https://github.com/wayofdev/keywind/commit/8490fc5626a7c2586a2f858d6325506445ac44df)) + +## [1.1.179](https://github.com/wayofdev/keywind/compare/v1.1.178...v1.1.179) (2023-09-08) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.34.4 ([bb56ec4](https://github.com/wayofdev/keywind/commit/bb56ec4606594f808b2102ce88b8f1429a0a53f9)) + +## [1.1.178](https://github.com/wayofdev/keywind/compare/v1.1.177...v1.1.178) (2023-09-04) + + +### Miscellaneous + +* **deps:** update actions/checkout action to v4 ([4ac2bd4](https://github.com/wayofdev/keywind/commit/4ac2bd4d33612d6342894db015d03d1fe027b2dc)) + +## [1.1.177](https://github.com/wayofdev/keywind/compare/v1.1.176...v1.1.177) (2023-09-04) + + +### Miscellaneous + +* **deps:** update dependency archiver to v6.0.1 ([944ad38](https://github.com/wayofdev/keywind/commit/944ad387406a972d37257d6b28ab030d56e097d6)) + +## [1.1.176](https://github.com/wayofdev/keywind/compare/v1.1.175...v1.1.176) (2023-09-04) + + +### Miscellaneous + +* **deps:** lock file maintenance ([d1a1680](https://github.com/wayofdev/keywind/commit/d1a16801ef47aaf48fdc51219226262637b8f2ca)) + +## [1.1.175](https://github.com/wayofdev/keywind/compare/v1.1.174...v1.1.175) (2023-09-02) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.14 ([6890f79](https://github.com/wayofdev/keywind/commit/6890f79b979da32eb30e4f70c380a97c0cd77162)) + +## [1.1.174](https://github.com/wayofdev/keywind/compare/v1.1.173...v1.1.174) (2023-09-01) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.13 ([66dd387](https://github.com/wayofdev/keywind/commit/66dd387860b4f975aab82c5efc1a81a760c92283)) + +## [1.1.173](https://github.com/wayofdev/keywind/compare/v1.1.172...v1.1.173) (2023-08-29) + + +### Miscellaneous + +* **deps:** update dependency @tailwindcss/forms to v0.5.6 ([6638f33](https://github.com/wayofdev/keywind/commit/6638f33f4b56aaf41058aa3977425152e4247a07)) +* **deps:** update dependency postcss to v8.4.29 ([2d091f1](https://github.com/wayofdev/keywind/commit/2d091f19b6aa5679ac501ba76655e12e5cb33702)) + +## [1.1.172](https://github.com/wayofdev/keywind/compare/v1.1.171...v1.1.172) (2023-08-28) + + +### Miscellaneous + +* **deps:** lock file maintenance ([34b808d](https://github.com/wayofdev/keywind/commit/34b808dcb130fa0fcdfd58aafb4ec50c1e8ee117)) + +## [1.1.171](https://github.com/wayofdev/keywind/compare/v1.1.170...v1.1.171) (2023-08-28) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.12 ([d887b3c](https://github.com/wayofdev/keywind/commit/d887b3c5d4a43876cb5ab75c254db86d61034bb4)) + +## [1.1.170](https://github.com/wayofdev/keywind/compare/v1.1.169...v1.1.170) (2023-08-28) + + +### Miscellaneous + +* **deps:** lock file maintenance ([6395621](https://github.com/wayofdev/keywind/commit/639562198d9fdb96d99a63cee30278b3861f1d61)) + +## [1.1.169](https://github.com/wayofdev/keywind/compare/v1.1.168...v1.1.169) (2023-08-25) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.34.3 ([10f50c1](https://github.com/wayofdev/keywind/commit/10f50c1d4753498867bdb70f2b1432924463e50d)) + +## [1.1.168](https://github.com/wayofdev/keywind/compare/v1.1.167...v1.1.168) (2023-08-24) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.11 ([f42a6a7](https://github.com/wayofdev/keywind/commit/f42a6a70d2207a88ebbcb868be771c834c55a419)) + +## [1.1.167](https://github.com/wayofdev/keywind/compare/v1.1.166...v1.1.167) (2023-08-24) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.13.0 ([4c6a3db](https://github.com/wayofdev/keywind/commit/4c6a3db2fc0480a061195e358d85352e27e46fa1)) + +## [1.1.166](https://github.com/wayofdev/keywind/compare/v1.1.165...v1.1.166) (2023-08-24) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.2.2 ([b53f726](https://github.com/wayofdev/keywind/commit/b53f726ba89bae2ee3e06a8bea6730734ced2969)) + +## [1.1.165](https://github.com/wayofdev/keywind/compare/v1.1.164...v1.1.165) (2023-08-23) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.9 ([78c895c](https://github.com/wayofdev/keywind/commit/78c895c7e1f5b7b485ae64470d878e9fee9d5dc4)) + +## [1.1.164](https://github.com/wayofdev/keywind/compare/v1.1.163...v1.1.164) (2023-08-22) + + +### Miscellaneous + +* **deps:** update dependency @tailwindcss/forms to v0.5.5 ([1c7447a](https://github.com/wayofdev/keywind/commit/1c7447a52fe49d20fe7cd402d7af539662638040)) + +## [1.1.163](https://github.com/wayofdev/keywind/compare/v1.1.162...v1.1.163) (2023-08-22) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.8 ([f10fb52](https://github.com/wayofdev/keywind/commit/f10fb528bc08658bc273ffb7317110ef5198cd53)) + +## [1.1.162](https://github.com/wayofdev/keywind/compare/v1.1.161...v1.1.162) (2023-08-22) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.7 ([b596bd8](https://github.com/wayofdev/keywind/commit/b596bd8b7f63e9f0deb3fd17608757d5bd1b1ec8)) + +## [1.1.161](https://github.com/wayofdev/keywind/compare/v1.1.160...v1.1.161) (2023-08-21) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v14.0.1 ([5ec2bae](https://github.com/wayofdev/keywind/commit/5ec2baeb4c4c08719a9e7e4a9d2e31a579e46053)) + +## [1.1.160](https://github.com/wayofdev/keywind/compare/v1.1.159...v1.1.160) (2023-08-21) + + +### Miscellaneous + +* **deps:** lock file maintenance ([28c1786](https://github.com/wayofdev/keywind/commit/28c17869bde0ca5ab65af14ca83f167cf0f066ae)) + +## [1.1.159](https://github.com/wayofdev/keywind/compare/v1.1.158...v1.1.159) (2023-08-18) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.6 ([9151887](https://github.com/wayofdev/keywind/commit/915188766dd93c5ccfae05f15ec3677ccd3655c9)) + +## [1.1.158](https://github.com/wayofdev/keywind/compare/v1.1.157...v1.1.158) (2023-08-18) + + +### Miscellaneous + +* **deps:** update dependency archiver to v6 ([c8ec722](https://github.com/wayofdev/keywind/commit/c8ec722a4a435a224e52d622e7df2a1c318db59a)) + +## [1.1.157](https://github.com/wayofdev/keywind/compare/v1.1.156...v1.1.157) (2023-08-17) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.34.2 ([b9c4909](https://github.com/wayofdev/keywind/commit/b9c4909ffbf5b8bbdaebdb76046fd44a6fd0abd8)) + +## [1.1.156](https://github.com/wayofdev/keywind/compare/v1.1.155...v1.1.156) (2023-08-17) + + +### Miscellaneous + +* **deps:** update dependency archiver to v5.3.2 ([4695f3b](https://github.com/wayofdev/keywind/commit/4695f3b6448ddc0730020c543388087ab0a2e85f)) + +## [1.1.155](https://github.com/wayofdev/keywind/compare/v1.1.154...v1.1.155) (2023-08-15) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.28 ([495e753](https://github.com/wayofdev/keywind/commit/495e7533e048c590ed32a82c0695a29802099164)) + +## [1.1.154](https://github.com/wayofdev/keywind/compare/v1.1.153...v1.1.154) (2023-08-14) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v14 ([fbec475](https://github.com/wayofdev/keywind/commit/fbec47503abc2b19252b4a63c13a7e410cd0cc3f)) + +## [1.1.153](https://github.com/wayofdev/keywind/compare/v1.1.152...v1.1.153) (2023-08-14) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v13.3.0 ([3e48346](https://github.com/wayofdev/keywind/commit/3e48346ebe13f351a36593cc4d0efa9f3529733f)) + +## [1.1.152](https://github.com/wayofdev/keywind/compare/v1.1.151...v1.1.152) (2023-08-14) + + +### Miscellaneous + +* **deps:** update dependency autoprefixer to v10.4.15 ([d6bba62](https://github.com/wayofdev/keywind/commit/d6bba6223a4c3735edb93b19f79d247c4f1ef97c)) + +## [1.1.151](https://github.com/wayofdev/keywind/compare/v1.1.150...v1.1.151) (2023-08-11) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.5 ([f5db66f](https://github.com/wayofdev/keywind/commit/f5db66f58e06e893eab57d84646581879b975e36)) + +## [1.1.150](https://github.com/wayofdev/keywind/compare/v1.1.149...v1.1.150) (2023-08-10) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.7.1 ([361b46c](https://github.com/wayofdev/keywind/commit/361b46c9fe2175a3eaa1419758a2194072acfc56)) + +## [1.1.149](https://github.com/wayofdev/keywind/compare/v1.1.148...v1.1.149) (2023-08-09) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.7.0 ([9b44581](https://github.com/wayofdev/keywind/commit/9b44581bcf54bc3ef8d619b8ea68ac0a96250451)) + +## [1.1.148](https://github.com/wayofdev/keywind/compare/v1.1.147...v1.1.148) (2023-08-08) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.4 ([7237605](https://github.com/wayofdev/keywind/commit/723760532ae5c96005e4eee1b8d92fce68696da1)) + +## [1.1.147](https://github.com/wayofdev/keywind/compare/v1.1.146...v1.1.147) (2023-08-08) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.0.7 ([3c1e546](https://github.com/wayofdev/keywind/commit/3c1e546cde0c4caebe788484545e681c3b1e39c9)) + +## [1.1.146](https://github.com/wayofdev/keywind/compare/v1.1.145...v1.1.146) (2023-08-07) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.9 ([5d61d69](https://github.com/wayofdev/keywind/commit/5d61d6921c2ca045634229344f323956dd1e3704)) + +## [1.1.145](https://github.com/wayofdev/keywind/compare/v1.1.144...v1.1.145) (2023-08-07) + + +### Miscellaneous + +* **deps:** lock file maintenance ([3bf74d6](https://github.com/wayofdev/keywind/commit/3bf74d6155bf910e03b108b0afaa7b0f2c83c952)) + +## [1.1.144](https://github.com/wayofdev/keywind/compare/v1.1.143...v1.1.144) (2023-08-07) + + +### Miscellaneous + +* **deps:** lock file maintenance ([d47eb5a](https://github.com/wayofdev/keywind/commit/d47eb5a858fb5b590e9a8f30b63380610fb53127)) + +## [1.1.143](https://github.com/wayofdev/keywind/compare/v1.1.142...v1.1.143) (2023-08-06) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.0.6 ([383243e](https://github.com/wayofdev/keywind/commit/383243e9ee47e8e7a094b698d84959fea0433837)) + +## [1.1.142](https://github.com/wayofdev/keywind/compare/v1.1.141...v1.1.142) (2023-08-06) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.0.4 ([f3054cb](https://github.com/wayofdev/keywind/commit/f3054cbd31b688e9bf1f73078b4f7c9a50571c20)) + +## [1.1.141](https://github.com/wayofdev/keywind/compare/v1.1.140...v1.1.141) (2023-08-05) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.3 ([57a4e39](https://github.com/wayofdev/keywind/commit/57a4e39b31546191fc0478cef56803eec36c5b67)) + +## [1.1.140](https://github.com/wayofdev/keywind/compare/v1.1.139...v1.1.140) (2023-08-04) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.2 ([45fb651](https://github.com/wayofdev/keywind/commit/45fb651826c3141cb362e6832cbe87b1e713f852)) + +## [1.1.139](https://github.com/wayofdev/keywind/compare/v1.1.138...v1.1.139) (2023-08-01) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.34.1 ([98b9d43](https://github.com/wayofdev/keywind/commit/98b9d43a7374877643153b5604d54bf89c2e4b34)) + +## [1.1.138](https://github.com/wayofdev/keywind/compare/v1.1.137...v1.1.138) (2023-08-01) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.8 ([39abd2e](https://github.com/wayofdev/keywind/commit/39abd2e9c30644eca49e986e9831fb255c6c638c)) + +## [1.1.137](https://github.com/wayofdev/keywind/compare/v1.1.136...v1.1.137) (2023-08-01) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/commitlint-config to v3.0.2 ([5903891](https://github.com/wayofdev/keywind/commit/59038916830e98cddfc11afc9ceabef6053979c9)) + +## [1.1.136](https://github.com/wayofdev/keywind/compare/v1.1.135...v1.1.136) (2023-07-31) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/secretlint-config to v3.0.2 ([ba0f3b4](https://github.com/wayofdev/keywind/commit/ba0f3b4efc027c06101b1142f95a36d639719c6d)) + +## [1.1.135](https://github.com/wayofdev/keywind/compare/v1.1.134...v1.1.135) (2023-07-31) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/lint-staged-config to v2.1.2 ([cca1080](https://github.com/wayofdev/keywind/commit/cca1080ccd75d128fb6c72b4063145916d69f446)) + +## [1.1.134](https://github.com/wayofdev/keywind/compare/v1.1.133...v1.1.134) (2023-07-31) + + +### Miscellaneous + +* **deps:** lock file maintenance ([7dba144](https://github.com/wayofdev/keywind/commit/7dba144c406131267efe3bad3493706ab1b5c8b9)) + +## [1.1.133](https://github.com/wayofdev/keywind/compare/v1.1.132...v1.1.133) (2023-07-25) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.1 ([9372d37](https://github.com/wayofdev/keywind/commit/9372d3756a18878f1c46f4fb2cb68ed458f08def)) + +## [1.1.132](https://github.com/wayofdev/keywind/compare/v1.1.131...v1.1.132) (2023-07-24) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.7 ([25f8cca](https://github.com/wayofdev/keywind/commit/25f8cca1690e30f2556eaf396cfce63fce312aa3)) + +## [1.1.131](https://github.com/wayofdev/keywind/compare/v1.1.130...v1.1.131) (2023-07-24) + + +### Miscellaneous + +* **deps:** lock file maintenance ([c4ed368](https://github.com/wayofdev/keywind/commit/c4ed3688c5d41f023e866b2dc0c582c5eaadb016)) + +## [1.1.130](https://github.com/wayofdev/keywind/compare/v1.1.129...v1.1.130) (2023-07-22) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.17.0 ([81e18a9](https://github.com/wayofdev/keywind/commit/81e18a979e9f74b90824252e32e592452c908a21)) + +## [1.1.129](https://github.com/wayofdev/keywind/compare/v1.1.128...v1.1.129) (2023-07-22) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.20 ([1653298](https://github.com/wayofdev/keywind/commit/1653298c7940807387e8e9e9b178c4e912d58213)) + +## [1.1.128](https://github.com/wayofdev/keywind/compare/v1.1.127...v1.1.128) (2023-07-21) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.27 ([d3ad0a5](https://github.com/wayofdev/keywind/commit/d3ad0a555cab3c84ea2b3a28e5484a9cfd49ffc4)) + +## [1.1.127](https://github.com/wayofdev/keywind/compare/v1.1.126...v1.1.127) (2023-07-21) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.6 ([cc749ea](https://github.com/wayofdev/keywind/commit/cc749ea0d289d3d8a36e149106840896f33786ba)) + +## [1.1.126](https://github.com/wayofdev/keywind/compare/v1.1.125...v1.1.126) (2023-07-20) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.5 ([6096989](https://github.com/wayofdev/keywind/commit/609698985b84ccf77730b4e36f979f6ebad15e96)) + +## [1.1.125](https://github.com/wayofdev/keywind/compare/v1.1.124...v1.1.125) (2023-07-19) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.6.7 ([5f91baa](https://github.com/wayofdev/keywind/commit/5f91baac0eaf36849120f036923c929bce0901a8)) + +## [1.1.124](https://github.com/wayofdev/keywind/compare/v1.1.123...v1.1.124) (2023-07-17) + + +### Miscellaneous + +* **deps:** lock file maintenance ([8dbcbec](https://github.com/wayofdev/keywind/commit/8dbcbece957506931e8a81edd1fb8e5320b08f2e)) + +## [1.1.123](https://github.com/wayofdev/keywind/compare/v1.1.122...v1.1.123) (2023-07-16) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/secretlint-config to v3 ([aa3bc56](https://github.com/wayofdev/keywind/commit/aa3bc56003d677ffc28e294b0e15885e4f1a34fc)) + +## [1.1.122](https://github.com/wayofdev/keywind/compare/v1.1.121...v1.1.122) (2023-07-15) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/commitlint-config to v3 ([3fc4337](https://github.com/wayofdev/keywind/commit/3fc4337eb3c4d81f9e9a816c8ea83761aa53ec31)) + +## [1.1.121](https://github.com/wayofdev/keywind/compare/v1.1.120...v1.1.121) (2023-07-15) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/lint-staged-config to v2.1.1 ([2874946](https://github.com/wayofdev/keywind/commit/2874946f646a4085a0e4d1a36b35f78c26dbbc12)) + +## [1.1.120](https://github.com/wayofdev/keywind/compare/v1.1.119...v1.1.120) (2023-07-14) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.4 ([be52e59](https://github.com/wayofdev/keywind/commit/be52e5949f04732b29f9e23b75cd215e13cdd3e4)) + +## [1.1.119](https://github.com/wayofdev/keywind/compare/v1.1.118...v1.1.119) (2023-07-14) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.26 ([623e77d](https://github.com/wayofdev/keywind/commit/623e77d6c5edd3cfe4ed09c54f698f6387258ea7)) + +## [1.1.118](https://github.com/wayofdev/keywind/compare/v1.1.117...v1.1.118) (2023-07-13) + + +### Miscellaneous + +* **deps:** update dependency tailwindcss to v3.3.3 ([a01621d](https://github.com/wayofdev/keywind/commit/a01621dac483af31b72f1553f91e2268754a4194)) + +## [1.1.117](https://github.com/wayofdev/keywind/compare/v1.1.116...v1.1.117) (2023-07-13) + + +### Miscellaneous + +* **deps:** update dependency @tailwindcss/forms to v0.5.4 ([2ad0b1d](https://github.com/wayofdev/keywind/commit/2ad0b1df33b52616b6bd16f1dad7d949762de48a)) + +## [1.1.116](https://github.com/wayofdev/keywind/compare/v1.1.115...v1.1.116) (2023-07-11) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.3 ([5984b63](https://github.com/wayofdev/keywind/commit/5984b63be3ce6fe1d92b1b5cec9144a2ec7566a0)) + +## [1.1.115](https://github.com/wayofdev/keywind/compare/v1.1.114...v1.1.115) (2023-07-10) + + +### Miscellaneous + +* **deps:** lock file maintenance ([a2643f3](https://github.com/wayofdev/keywind/commit/a2643f313fddca0fff772eb5e3d39fc7e4f6e64f)) + +## [1.1.114](https://github.com/wayofdev/keywind/compare/v1.1.113...v1.1.114) (2023-07-08) + + +### Miscellaneous + +* **deps:** update dependency sort-package-json to v2.5.1 ([3e27b3f](https://github.com/wayofdev/keywind/commit/3e27b3f69ff0f90849be62fb0f9ff71d6dec486f)) + +## [1.1.113](https://github.com/wayofdev/keywind/compare/v1.1.112...v1.1.113) (2023-07-08) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.0.3 ([4aba197](https://github.com/wayofdev/keywind/commit/4aba197c0d85a6531ee8187e63eca462137a57a8)) + +## [1.1.112](https://github.com/wayofdev/keywind/compare/v1.1.111...v1.1.112) (2023-07-07) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.2 ([f41830f](https://github.com/wayofdev/keywind/commit/f41830f21e9f823490b5655e5f5431c8d9be72bb)) + +## [1.1.111](https://github.com/wayofdev/keywind/compare/v1.1.110...v1.1.111) (2023-07-06) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.33.0 ([dbbf45b](https://github.com/wayofdev/keywind/commit/dbbf45bdfeee4620a9178dbb9975a172f43693bf)) + +## [1.1.110](https://github.com/wayofdev/keywind/compare/v1.1.109...v1.1.110) (2023-07-06) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.1 ([23a243c](https://github.com/wayofdev/keywind/commit/23a243c0cb08b4a29c154dd8bf17fb4bc6643021)) + +## [1.1.109](https://github.com/wayofdev/keywind/compare/v1.1.108...v1.1.109) (2023-07-06) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.25 ([57323e8](https://github.com/wayofdev/keywind/commit/57323e8689dd2438160f4a86649b1098af42b2d4)) + +## [1.1.108](https://github.com/wayofdev/keywind/compare/v1.1.107...v1.1.108) (2023-07-06) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.4.0 ([150bf7f](https://github.com/wayofdev/keywind/commit/150bf7f897f26d6ee28ec1adaf9b3daf7271fc62)) + +## [1.1.107](https://github.com/wayofdev/keywind/compare/v1.1.106...v1.1.107) (2023-07-05) + + +### Miscellaneous + +* **deps:** update dependency prettier to v3 ([a3ddf34](https://github.com/wayofdev/keywind/commit/a3ddf3423e18ea9cc24a248d35b90df9eca09fb7)) + +## [1.1.106](https://github.com/wayofdev/keywind/compare/v1.1.105...v1.1.106) (2023-07-03) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.6 ([53f74f1](https://github.com/wayofdev/keywind/commit/53f74f1bd3b6629973967d27281168e90c794bd0)) + +## [1.1.105](https://github.com/wayofdev/keywind/compare/v1.1.104...v1.1.105) (2023-07-03) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.32.4 ([7b6221a](https://github.com/wayofdev/keywind/commit/7b6221a1cc08af753bfb580583499671a072bfde)) + +## [1.1.104](https://github.com/wayofdev/keywind/compare/v1.1.103...v1.1.104) (2023-07-03) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.0.2 ([1bb0c8f](https://github.com/wayofdev/keywind/commit/1bb0c8f74c5b3afa6956b7ac995ed42dac19155d)) + +## [1.1.103](https://github.com/wayofdev/keywind/compare/v1.1.102...v1.1.103) (2023-07-03) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7.0.1 ([33268e4](https://github.com/wayofdev/keywind/commit/33268e47b71f6620668d84cad261cd1d003606c6)) + +## [1.1.102](https://github.com/wayofdev/keywind/compare/v1.1.101...v1.1.102) (2023-07-03) + + +### Miscellaneous + +* **deps:** lock file maintenance ([db0922a](https://github.com/wayofdev/keywind/commit/db0922a3b1edcc23ee8cfa705a9a88bfe52d39b6)) + +## [1.1.101](https://github.com/wayofdev/keywind/compare/v1.1.100...v1.1.101) (2023-07-02) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v7 ([05ccdf1](https://github.com/wayofdev/keywind/commit/05ccdf16d5c446138dda17be2ac06419fdfd9e04)) + +## [1.1.100](https://github.com/wayofdev/keywind/compare/v1.1.99...v1.1.100) (2023-07-02) + + +### Miscellaneous + +* **deps:** update dependency sort-package-json to v2.5.0 ([c337ed6](https://github.com/wayofdev/keywind/commit/c337ed6eb09ae97f2cd4c28204d3a192dfb3b724)) + +## [1.1.99](https://github.com/wayofdev/keywind/compare/v1.1.98...v1.1.99) (2023-07-02) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.12.3 ([ca6bcb0](https://github.com/wayofdev/keywind/commit/ca6bcb04f610514228f2fb0752440034c2d24382)) + +## [1.1.98](https://github.com/wayofdev/keywind/compare/v1.1.97...v1.1.98) (2023-07-01) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.19 ([da80222](https://github.com/wayofdev/keywind/commit/da802220f035d654b36dbeab7f20a4486e285b52)) + +## [1.1.97](https://github.com/wayofdev/keywind/compare/v1.1.96...v1.1.97) (2023-06-30) + + +### Miscellaneous + +* **deps:** update dependency secretlint to v6.2.4 ([b6caec7](https://github.com/wayofdev/keywind/commit/b6caec70a0302e3790d8266bae757bae50391b3a)) + +## [1.1.96](https://github.com/wayofdev/keywind/compare/v1.1.95...v1.1.96) (2023-06-29) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.1.6 ([8f86d6a](https://github.com/wayofdev/keywind/commit/8f86d6a7a94de66bc49bbdca118a276af758adf0)) + +## [1.1.95](https://github.com/wayofdev/keywind/compare/v1.1.94...v1.1.95) (2023-06-28) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v13.2.3 ([60d08b7](https://github.com/wayofdev/keywind/commit/60d08b727b1d8c27eea6740cb738e9e6bbc1cb4b)) + +## [1.1.94](https://github.com/wayofdev/keywind/compare/v1.1.93...v1.1.94) (2023-06-28) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.1.5 ([3aa9631](https://github.com/wayofdev/keywind/commit/3aa96313927514b96e323e37541937e5c9306721)) + +## [1.1.93](https://github.com/wayofdev/keywind/compare/v1.1.92...v1.1.93) (2023-06-26) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.5 ([78eb5f2](https://github.com/wayofdev/keywind/commit/78eb5f213eed9ea0c6691aff5348e2f0fc3c71c5)) + +## [1.1.92](https://github.com/wayofdev/keywind/compare/v1.1.91...v1.1.92) (2023-06-26) + + +### Miscellaneous + +* **deps:** lock file maintenance ([7bd51d4](https://github.com/wayofdev/keywind/commit/7bd51d4b247ec5e85280a4d13d9ffbe023251bec)) + +## [1.1.91](https://github.com/wayofdev/keywind/compare/v1.1.90...v1.1.91) (2023-06-26) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.4 ([429bf72](https://github.com/wayofdev/keywind/commit/429bf7213af4ddec43567f287f71c00df63ce24b)) + +## [1.1.90](https://github.com/wayofdev/keywind/compare/v1.1.89...v1.1.90) (2023-06-24) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.6.6 ([c1cc74c](https://github.com/wayofdev/keywind/commit/c1cc74c8c1f0883cf2ae51b34dfd8d7aa6c82139)) + +## [1.1.89](https://github.com/wayofdev/keywind/compare/v1.1.88...v1.1.89) (2023-06-21) + + +### Miscellaneous + +* **deps:** update dependency @types/alpinejs to v3.7.2 ([2a0cddd](https://github.com/wayofdev/keywind/commit/2a0cddde253e986c8064b5e0966bfd4a9e63ff50)) + +## [1.1.88](https://github.com/wayofdev/keywind/compare/v1.1.87...v1.1.88) (2023-06-19) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.3 ([0b793a5](https://github.com/wayofdev/keywind/commit/0b793a544a7cfe14207f6f689625f47f84247c7e)) + +## [1.1.87](https://github.com/wayofdev/keywind/compare/v1.1.86...v1.1.87) (2023-06-19) + + +### Miscellaneous + +* **deps:** lock file maintenance ([1952988](https://github.com/wayofdev/keywind/commit/19529880521a29ffd2d854a9fcb09451059a6c6d)) + +## [1.1.86](https://github.com/wayofdev/keywind/compare/v1.1.85...v1.1.86) (2023-06-16) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.32.2 ([9d47415](https://github.com/wayofdev/keywind/commit/9d4741556e4dfd72027e5bd73a69611793b87b16)) + +## [1.1.85](https://github.com/wayofdev/keywind/compare/v1.1.84...v1.1.85) (2023-06-16) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.32.1 ([1236832](https://github.com/wayofdev/keywind/commit/12368324e42a121a38fb6e02a04e1765497955d7)) + +## [1.1.84](https://github.com/wayofdev/keywind/compare/v1.1.83...v1.1.84) (2023-06-13) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.18 ([1ab09b6](https://github.com/wayofdev/keywind/commit/1ab09b63df3e0417cfd534c2f03b7486885489e8)) + +## [1.1.83](https://github.com/wayofdev/keywind/compare/v1.1.82...v1.1.83) (2023-06-12) + + +### Miscellaneous + +* **deps:** lock file maintenance ([8cec8b9](https://github.com/wayofdev/keywind/commit/8cec8b9409644cec3979f630b4636dc47ff04178)) + +## [1.1.82](https://github.com/wayofdev/keywind/compare/v1.1.81...v1.1.82) (2023-06-11) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.2 ([37c695c](https://github.com/wayofdev/keywind/commit/37c695c4d43e579fe29f77338948f31360afa9a6)) + +## [1.1.81](https://github.com/wayofdev/keywind/compare/v1.1.80...v1.1.81) (2023-06-10) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.17 ([9be1674](https://github.com/wayofdev/keywind/commit/9be1674315c6d1e3b234c2e0e2755425b942cef0)) + +## [1.1.80](https://github.com/wayofdev/keywind/compare/v1.1.79...v1.1.80) (2023-06-06) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.32.0 ([27563c2](https://github.com/wayofdev/keywind/commit/27563c251394bd98f435f06101e21297b5bae6f0)) + +## [1.1.79](https://github.com/wayofdev/keywind/compare/v1.1.78...v1.1.79) (2023-06-05) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.1 ([784eea1](https://github.com/wayofdev/keywind/commit/784eea107b7bbaf330b6197f67ec68b04fe85c0c)) + +## [1.1.78](https://github.com/wayofdev/keywind/compare/v1.1.77...v1.1.78) (2023-06-05) + + +### Miscellaneous + +* **deps:** lock file maintenance ([8e46fa8](https://github.com/wayofdev/keywind/commit/8e46fa8cd8cd21df58edfa6cd160cb35d11e4321)) + +## [1.1.77](https://github.com/wayofdev/keywind/compare/v1.1.76...v1.1.77) (2023-06-01) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.1.3 ([acd8fd2](https://github.com/wayofdev/keywind/commit/acd8fd2f54e868241e7b17b1d29113255c426097)) + +## [1.1.76](https://github.com/wayofdev/keywind/compare/v1.1.75...v1.1.76) (2023-06-01) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.31.4 ([98bd95c](https://github.com/wayofdev/keywind/commit/98bd95c1e679c858b9e19ed69052dc4d82695f79)) + +## [1.1.75](https://github.com/wayofdev/keywind/compare/v1.1.74...v1.1.75) (2023-05-31) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.12.2 ([b9c1240](https://github.com/wayofdev/keywind/commit/b9c12406ca2998a66ae15f46de235d282cec0610)) + +## [1.1.74](https://github.com/wayofdev/keywind/compare/v1.1.73...v1.1.74) (2023-05-31) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.31.3 ([9fa4f0a](https://github.com/wayofdev/keywind/commit/9fa4f0ae4a824029e88edf7f1213075f849159ba)) + +## [1.1.73](https://github.com/wayofdev/keywind/compare/v1.1.72...v1.1.73) (2023-05-30) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.31.2 ([79311d4](https://github.com/wayofdev/keywind/commit/79311d486cf4ec57bddadc6bd933b9d993fca888)) + +## [1.1.72](https://github.com/wayofdev/keywind/compare/v1.1.71...v1.1.72) (2023-05-30) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.6.5 ([7d13118](https://github.com/wayofdev/keywind/commit/7d13118b9bac6cc28b347ece2b9a8b08041ff7dd)) + +## [1.1.71](https://github.com/wayofdev/keywind/compare/v1.1.70...v1.1.71) (2023-05-29) + + +### Miscellaneous + +* **deps:** lock file maintenance ([e637393](https://github.com/wayofdev/keywind/commit/e637393a66611e91333d79d96bbc1639de31ef8f)) + +## [1.1.70](https://github.com/wayofdev/keywind/compare/v1.1.69...v1.1.70) (2023-05-28) + + +### Miscellaneous + +* **deps:** update pnpm to v8.6.0 ([c3650d0](https://github.com/wayofdev/keywind/commit/c3650d04eb69f0213dfb6436c66c579c96e4ffbd)) + +## [1.1.69](https://github.com/wayofdev/keywind/compare/v1.1.68...v1.1.69) (2023-05-28) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.24 ([5a11f03](https://github.com/wayofdev/keywind/commit/5a11f037f25e2ba5d41ee9cd9fd59c38620b7f5f)) + +## [1.1.68](https://github.com/wayofdev/keywind/compare/v1.1.67...v1.1.68) (2023-05-27) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.16 ([1b84d8f](https://github.com/wayofdev/keywind/commit/1b84d8f2937fb47d02fc25c017bcccb0aa5b073e)) + +## [1.1.67](https://github.com/wayofdev/keywind/compare/v1.1.66...v1.1.67) (2023-05-26) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.9 ([f161a63](https://github.com/wayofdev/keywind/commit/f161a6392d91d9019a6999f94d33b3ec530b8631)) + +## [1.1.66](https://github.com/wayofdev/keywind/compare/v1.1.65...v1.1.66) (2023-05-25) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.15 ([74745ba](https://github.com/wayofdev/keywind/commit/74745ba40ad701fe5f433535fdab4c93d43c5db1)) + +## [1.1.65](https://github.com/wayofdev/keywind/compare/v1.1.64...v1.1.65) (2023-05-22) + + +### Miscellaneous + +* **deps:** lock file maintenance ([8139807](https://github.com/wayofdev/keywind/commit/8139807816392e5c552297c602fae464d8da074d)) + +## [1.1.64](https://github.com/wayofdev/keywind/compare/v1.1.63...v1.1.64) (2023-05-21) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.14 ([598f5a3](https://github.com/wayofdev/keywind/commit/598f5a34e7f8637a91df97561bc5958b9b3df231)) + +## [1.1.63](https://github.com/wayofdev/keywind/compare/v1.1.62...v1.1.63) (2023-05-18) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.13 ([10d2e4a](https://github.com/wayofdev/keywind/commit/10d2e4aefed9f4aa45f5366a70c68f07a09b7b8e)) + +## [1.1.62](https://github.com/wayofdev/keywind/compare/v1.1.61...v1.1.62) (2023-05-18) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.8 ([b3f796b](https://github.com/wayofdev/keywind/commit/b3f796b6042f57057d44bff2c7cd959270c348e6)) + +## [1.1.61](https://github.com/wayofdev/keywind/compare/v1.1.60...v1.1.61) (2023-05-17) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.31.1 ([f1b29bd](https://github.com/wayofdev/keywind/commit/f1b29bd4ea4c5e17c3446b1ad5590f7f5970ae4c)) + +## [1.1.60](https://github.com/wayofdev/keywind/compare/v1.1.59...v1.1.60) (2023-05-16) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.12 ([1e446ad](https://github.com/wayofdev/keywind/commit/1e446ad92b6484a77585f53194d8d5b0cf228190)) + +## [1.1.59](https://github.com/wayofdev/keywind/compare/v1.1.58...v1.1.59) (2023-05-16) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.7 ([7db2dd8](https://github.com/wayofdev/keywind/commit/7db2dd82e3c7ddea5bb72e9de547857d2e1eeefe)) + +## [1.1.58](https://github.com/wayofdev/keywind/compare/v1.1.57...v1.1.58) (2023-05-16) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.10 ([51ad98b](https://github.com/wayofdev/keywind/commit/51ad98b7529db927d6053c7258e48c3bec113a5b)) + +## [1.1.57](https://github.com/wayofdev/keywind/compare/v1.1.56...v1.1.57) (2023-05-15) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.6 ([b0555e6](https://github.com/wayofdev/keywind/commit/b0555e63f8bb0aa47988caff3e61b6fd699e911f)) + +## [1.1.56](https://github.com/wayofdev/keywind/compare/v1.1.55...v1.1.56) (2023-05-15) + + +### Miscellaneous + +* **deps:** lock file maintenance ([929cd82](https://github.com/wayofdev/keywind/commit/929cd82bdfc944e6a3f690e4d5e7252b4b698982)) + +## [1.1.55](https://github.com/wayofdev/keywind/compare/v1.1.54...v1.1.55) (2023-05-15) + + +### Miscellaneous + +* **deps:** update pnpm to v8.5.1 ([5093aa8](https://github.com/wayofdev/keywind/commit/5093aa8b8174eb3324f0cbc963d2a586648b5d81)) + +## [1.1.54](https://github.com/wayofdev/keywind/compare/v1.1.53...v1.1.54) (2023-05-13) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.9 ([e81332f](https://github.com/wayofdev/keywind/commit/e81332f558adcb6b07376db8558b6dc65f5aaaae)) + +## [1.1.53](https://github.com/wayofdev/keywind/compare/v1.1.52...v1.1.53) (2023-05-11) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.8 ([d797baa](https://github.com/wayofdev/keywind/commit/d797baa6cf680122e95502df7b1ba14f066d2e4e)) + +## [1.1.52](https://github.com/wayofdev/keywind/compare/v1.1.51...v1.1.52) (2023-05-11) + + +### Bug Fixes + +* **deps:** update dependency alpinejs to v3.12.1 ([e57e358](https://github.com/wayofdev/keywind/commit/e57e3584db5c3492955084f921be7129140fdb2c)) + +## [1.1.51](https://github.com/wayofdev/keywind/compare/v1.1.50...v1.1.51) (2023-05-10) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.7 ([f9c259a](https://github.com/wayofdev/keywind/commit/f9c259ab37b8e98e4a01d75e9cab9542d69b2908)) + +## [1.1.50](https://github.com/wayofdev/keywind/compare/v1.1.49...v1.1.50) (2023-05-09) + + +### Miscellaneous + +* **deps:** update pnpm to v8.5.0 ([73cd1cd](https://github.com/wayofdev/keywind/commit/73cd1cd8125dc31a3fe9d163230223a7dcf425ad)) + +## [1.1.49](https://github.com/wayofdev/keywind/compare/v1.1.48...v1.1.49) (2023-05-08) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.6 ([060bce5](https://github.com/wayofdev/keywind/commit/060bce5586b7188a7c5002238d625d984f2f1bff)) + +## [1.1.48](https://github.com/wayofdev/keywind/compare/v1.1.47...v1.1.48) (2023-05-08) + + +### Miscellaneous + +* **deps:** lock file maintenance ([3896b28](https://github.com/wayofdev/keywind/commit/3896b287b0e524abc0839bb4fda067fb7004957d)) + +## [1.1.47](https://github.com/wayofdev/keywind/compare/v1.1.46...v1.1.47) (2023-05-06) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.5 ([2b144ac](https://github.com/wayofdev/keywind/commit/2b144aca38a0039ed40046aae64f8e91c6d63c03)) + +## [1.1.46](https://github.com/wayofdev/keywind/compare/v1.1.45...v1.1.46) (2023-05-05) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.5 ([1389324](https://github.com/wayofdev/keywind/commit/1389324332091c87709d1fb8c01c040a61b3ee94)) + +## [1.1.45](https://github.com/wayofdev/keywind/compare/v1.1.44...v1.1.45) (2023-05-05) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.4 ([34fe6f2](https://github.com/wayofdev/keywind/commit/34fe6f2254d66c1bd89011123dd55463d86655af)) + +## [1.1.44](https://github.com/wayofdev/keywind/compare/v1.1.43...v1.1.44) (2023-05-04) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.6.3 ([7e29f0b](https://github.com/wayofdev/keywind/commit/7e29f0bc312d65384aeea53a07973474d9b14e12)) + +## [1.1.43](https://github.com/wayofdev/keywind/compare/v1.1.42...v1.1.43) (2023-05-03) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.31.0 ([1227563](https://github.com/wayofdev/keywind/commit/122756386b15eb30246fe2c703e0446feb00b236)) + +## [1.1.42](https://github.com/wayofdev/keywind/compare/v1.1.41...v1.1.42) (2023-05-02) + + +### Miscellaneous + +* **deps:** update pnpm to v8.4.0 ([e6b64a5](https://github.com/wayofdev/keywind/commit/e6b64a5d720344c43a9d14a6f77b585819b59a56)) + +## [1.1.41](https://github.com/wayofdev/keywind/compare/v1.1.40...v1.1.41) (2023-05-02) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.4 ([edf9266](https://github.com/wayofdev/keywind/commit/edf9266024e3fc10f210d6e2203eaa18ffb8f161)) + +## [1.1.40](https://github.com/wayofdev/keywind/compare/v1.1.39...v1.1.40) (2023-05-01) + + +### Miscellaneous + +* **deps:** lock file maintenance ([0d8d29b](https://github.com/wayofdev/keywind/commit/0d8d29bc2a1797fa2170d5573887180950da354a)) + +## [1.1.39](https://github.com/wayofdev/keywind/compare/v1.1.38...v1.1.39) (2023-04-29) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.3 ([52d3d02](https://github.com/wayofdev/keywind/commit/52d3d02070582da4af01987b3cf87b9ba000c3cc)) + +## [1.1.38](https://github.com/wayofdev/keywind/compare/v1.1.37...v1.1.38) (2023-04-28) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.2 ([aed6997](https://github.com/wayofdev/keywind/commit/aed69979b768962dabf44ed5ae070d3226c69d7b)) + +## [1.1.37](https://github.com/wayofdev/keywind/compare/v1.1.36...v1.1.37) (2023-04-26) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.3 ([14fac2f](https://github.com/wayofdev/keywind/commit/14fac2f9e95fbc95032d263f31fe496132fd17bf)) + +## [1.1.36](https://github.com/wayofdev/keywind/compare/v1.1.35...v1.1.36) (2023-04-26) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v13.2.2 ([8c9dfb0](https://github.com/wayofdev/keywind/commit/8c9dfb0a62d05c8dbc3d3ffa71938e601f29fca3)) + +## [1.1.35](https://github.com/wayofdev/keywind/compare/v1.1.34...v1.1.35) (2023-04-26) + + +### Miscellaneous + +* **deps:** update dependency tailwindcss to v3.3.2 ([9bbf630](https://github.com/wayofdev/keywind/commit/9bbf630ea134cee6a1cc4ea1b9ea5dd7c4b84a4c)) + +## [1.1.34](https://github.com/wayofdev/keywind/compare/v1.1.33...v1.1.34) (2023-04-26) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.1 ([50e59c7](https://github.com/wayofdev/keywind/commit/50e59c723014e8e9cd2f4e44ec813d6608855d5e)) + +## [1.1.33](https://github.com/wayofdev/keywind/compare/v1.1.32...v1.1.33) (2023-04-25) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.2 ([6252414](https://github.com/wayofdev/keywind/commit/6252414ef02f66cb77dfce528d249d19939e657e)) + +## [1.1.32](https://github.com/wayofdev/keywind/compare/v1.1.31...v1.1.32) (2023-04-24) + + +### Miscellaneous + +* **deps:** lock file maintenance ([0e7da5b](https://github.com/wayofdev/keywind/commit/0e7da5beada80129971afde351db24b527794196)) + +## [1.1.31](https://github.com/wayofdev/keywind/compare/v1.1.30...v1.1.31) (2023-04-23) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.16.0 ([04d56f8](https://github.com/wayofdev/keywind/commit/04d56f8145f2f64a10789bd15829ccb1aad2fb8f)) + +## [1.1.30](https://github.com/wayofdev/keywind/compare/v1.1.29...v1.1.30) (2023-04-21) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.15.13 ([0adcfd5](https://github.com/wayofdev/keywind/commit/0adcfd5fbd3224bbf7d96e34cd72cc102a1aff4b)) + +## [1.1.29](https://github.com/wayofdev/keywind/compare/v1.1.28...v1.1.29) (2023-04-20) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.1 ([179e69d](https://github.com/wayofdev/keywind/commit/179e69d89126d0fa95a6ca7a23b229730b53c960)) + +## [1.1.28](https://github.com/wayofdev/keywind/compare/v1.1.27...v1.1.28) (2023-04-20) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.3.0 ([85769c0](https://github.com/wayofdev/keywind/commit/85769c0dcd3db903f6418c1d219aa5534844f2ba)) + +## [1.1.27](https://github.com/wayofdev/keywind/compare/v1.1.26...v1.1.27) (2023-04-20) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.15.12 ([a77052b](https://github.com/wayofdev/keywind/commit/a77052b109fc88d4076af3b070b0313b70cbe2ba)) + +## [1.1.26](https://github.com/wayofdev/keywind/compare/v1.1.25...v1.1.26) (2023-04-19) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.23 ([53509a1](https://github.com/wayofdev/keywind/commit/53509a12788f26d8803a3a5b8766e6f0f98585a4)) + +## [1.1.25](https://github.com/wayofdev/keywind/compare/v1.1.24...v1.1.25) (2023-04-19) + + +### Miscellaneous + +* **deps:** update pnpm to v8.3.1 ([15c9663](https://github.com/wayofdev/keywind/commit/15c96630b6e87a889457f9ca3ca5b906b6920bc0)) + +## [1.1.24](https://github.com/wayofdev/keywind/compare/v1.1.23...v1.1.24) (2023-04-18) + + +### Miscellaneous + +* **deps:** update dependency vite to v4.2.2 ([48885af](https://github.com/wayofdev/keywind/commit/48885afa88f9b46f76536df30ea9773ac71f0567)) +* **deps:** update pnpm to v8.3.0 ([35af18b](https://github.com/wayofdev/keywind/commit/35af18bf00849a73582b11022fd816755b92972e)) + +## [1.1.23](https://github.com/wayofdev/keywind/compare/v1.1.22...v1.1.23) (2023-04-18) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/secretlint-config to v2.0.8 ([10835a3](https://github.com/wayofdev/keywind/commit/10835a3d0e01804322dde4838503eacf3353fd71)) + +## [1.1.22](https://github.com/wayofdev/keywind/compare/v1.1.21...v1.1.22) (2023-04-18) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/commitlint-config to v2.0.7 ([15a959a](https://github.com/wayofdev/keywind/commit/15a959abdc5ceef6a989e6fb49dd2e7387ec63a8)) +* **deps:** update dependency @wayofdev/lint-staged-config to v2.0.7 ([1b3ac5f](https://github.com/wayofdev/keywind/commit/1b3ac5f4c866a7a7a0a155159df562c111302b52)) + +## [1.1.21](https://github.com/wayofdev/keywind/compare/v1.1.20...v1.1.21) (2023-04-17) + + +### Miscellaneous + +* **deps:** lock file maintenance ([cce76d2](https://github.com/wayofdev/keywind/commit/cce76d2bb529e548af8936d3490cd5cc950e3ba7)) + +## [1.1.20](https://github.com/wayofdev/keywind/compare/v1.1.19...v1.1.20) (2023-04-16) + + +### Miscellaneous + +* **deps:** update dependency postcss to v8.4.22 ([301b9e6](https://github.com/wayofdev/keywind/commit/301b9e6e848c6219b20b83e98ef1cd6e5dae647c)) + +## [1.1.19](https://github.com/wayofdev/keywind/compare/v1.1.18...v1.1.19) (2023-04-14) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.6.1 ([4712fea](https://github.com/wayofdev/keywind/commit/4712fea62758ab638d7cec06891fc1a22186a437)) + +## [1.1.18](https://github.com/wayofdev/keywind/compare/v1.1.17...v1.1.18) (2023-04-13) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.6.0 ([9b52a7d](https://github.com/wayofdev/keywind/commit/9b52a7d016db2b0ced3ef847684658cff64d8f02)) + +## [1.1.17](https://github.com/wayofdev/keywind/compare/v1.1.16...v1.1.17) (2023-04-11) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.30.1 ([e68eaee](https://github.com/wayofdev/keywind/commit/e68eaee7bdfe0773b49b1004a9d79e75650efec9)) + +## [1.1.16](https://github.com/wayofdev/keywind/compare/v1.1.15...v1.1.16) (2023-04-10) + + +### Miscellaneous + +* **deps:** lock file maintenance ([0c92f26](https://github.com/wayofdev/keywind/commit/0c92f26f60a5fc118be2d9f19db181fc151af1c9)) + +## [1.1.15](https://github.com/wayofdev/keywind/compare/v1.1.14...v1.1.15) (2023-04-10) + + +### Miscellaneous + +* **deps:** update pnpm to v8.2.0 ([22b02a6](https://github.com/wayofdev/keywind/commit/22b02a63f160dc65d4eb4cfad8b029eebee0755e)) + +## [1.1.14](https://github.com/wayofdev/keywind/compare/v1.1.13...v1.1.14) (2023-04-09) + + +### Miscellaneous + +* **deps:** update quay.io/keycloak/keycloak docker tag to v21.0.2 ([45ffe5e](https://github.com/wayofdev/keywind/commit/45ffe5e8a0fed23481c25c56c91e595c6265c34f)) + +## [1.1.13](https://github.com/wayofdev/keywind/compare/v1.1.12...v1.1.13) (2023-04-09) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.30.0 ([659962a](https://github.com/wayofdev/keywind/commit/659962ad3ed9b11114c15c29459d1f0205eeb5be)) + +## [1.1.12](https://github.com/wayofdev/keywind/compare/v1.1.11...v1.1.12) (2023-04-07) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.0.4 ([9c054a5](https://github.com/wayofdev/keywind/commit/9c054a5ba522b3c156776b8d4a986dad98c6cb42)) + +## [1.1.11](https://github.com/wayofdev/keywind/compare/v1.1.10...v1.1.11) (2023-04-07) + + +### Miscellaneous + +* **deps:** update dependency lint-staged to v13.2.1 ([a5c6351](https://github.com/wayofdev/keywind/commit/a5c6351365e5fd0377a04fb8b30a5197cc2f553c)) + +## [1.1.10](https://github.com/wayofdev/keywind/compare/v1.1.9...v1.1.10) (2023-04-06) + + +### Miscellaneous + +* **deps:** update pnpm to v8 ([32859e5](https://github.com/wayofdev/keywind/commit/32859e595ee2c3386f42b0e661bc71da281b542f)) + +## [1.1.9](https://github.com/wayofdev/keywind/compare/v1.1.8...v1.1.9) (2023-04-05) + + +### Miscellaneous + +* **deps:** update pnpm to v7.31.0 ([5a2210a](https://github.com/wayofdev/keywind/commit/5a2210a43796eb8882fce2aa5cc12da178f4ea96)) + +## [1.1.8](https://github.com/wayofdev/keywind/compare/v1.1.7...v1.1.8) (2023-04-05) + + +### Miscellaneous + +* **deps:** update dependency tailwindcss to v3.3.1 ([b5d7cfa](https://github.com/wayofdev/keywind/commit/b5d7cfa76b3b74b9914320060ebb2cc9ec77dc57)) + +## [1.1.7](https://github.com/wayofdev/keywind/compare/v1.1.6...v1.1.7) (2023-04-05) + + +### Miscellaneous + +* **deps:** update dependency vite-node to v0.29.8 ([cbf0ebc](https://github.com/wayofdev/keywind/commit/cbf0ebc5f1707f46d4a70c2aafefdbf6c36f3d68)) + +## [1.1.6](https://github.com/wayofdev/keywind/compare/v1.1.5...v1.1.6) (2023-04-05) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/secretlint-config to v2.0.7 ([7ca4b7e](https://github.com/wayofdev/keywind/commit/7ca4b7e81614f66c0eb31e90d69826d66cfc21d6)) + +## [1.1.5](https://github.com/wayofdev/keywind/compare/v1.1.4...v1.1.5) (2023-04-05) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/lint-staged-config to v2.0.6 ([0b709ac](https://github.com/wayofdev/keywind/commit/0b709acff340effba606359f3220c7580e59f3fd)) + +## [1.1.4](https://github.com/wayofdev/keywind/compare/v1.1.3...v1.1.4) (2023-04-04) + + +### Miscellaneous + +* **deps:** update dependency @wayofdev/commitlint-config to v2.0.6 ([9d3606a](https://github.com/wayofdev/keywind/commit/9d3606a4b39bd3cd6448f3f35b91467614f68a91)) + +## [1.1.3](https://github.com/wayofdev/keywind/compare/v1.1.2...v1.1.3) (2023-04-04) + + +### Miscellaneous + +* **deps:** update dependency @types/node to v18.15.11 ([d1c0cf2](https://github.com/wayofdev/keywind/commit/d1c0cf210e3e2b064960b3de89434f7a4ed14b3f)) + +## [1.1.2](https://github.com/wayofdev/keywind/compare/v1.1.1...v1.1.2) (2023-04-04) + + +### Miscellaneous + +* **deps:** update dependency typescript to v5.0.3 ([0012688](https://github.com/wayofdev/keywind/commit/001268815a6c9c07fba1a9308f376aab252371ce)) + +## [1.1.1](https://github.com/wayofdev/keywind/compare/v1.1.0...v1.1.1) (2023-03-30) + + +### Miscellaneous + +* **deps:** update dependency @commitlint/cli to v17.5.1 ([49fe614](https://github.com/wayofdev/keywind/commit/49fe6146e9cbb86a463a13d8fb4e11f533ab7718)) + +## [1.1.0](https://github.com/wayofdev/keywind/compare/v1.0.0...v1.1.0) (2023-03-28) + + +### Features + +* enable renovate with auto-merge ([68bc18d](https://github.com/wayofdev/keywind/commit/68bc18d5ffd659b9f2ecf1bab542d44ca00ce0d1)) + +## 1.0.0 (2023-03-28) + + +### Features + +* add slack icon ([2ac06e9](https://github.com/wayofdev/keywind/commit/2ac06e9cba5b08e823601a44f14b866948cb06ec)) +* improving developer experience ([#1](https://github.com/wayofdev/keywind/issues/1)) ([2c411c7](https://github.com/wayofdev/keywind/commit/2c411c7de01dc5a3ece1108b8b62335a0f078b56)) +* slack icon ([3750aeb](https://github.com/wayofdev/keywind/commit/3750aeb4c79f986f5f14491c79861478ddd4840f)) diff --git a/Makefile b/Makefile new file mode 100644 index 000000000..ca90ae3cc --- /dev/null +++ b/Makefile @@ -0,0 +1,245 @@ +-include .env + +# BuildKit enables higher performance docker builds and caching possibility +# to decrease build times and increase productivity for free. +export DOCKER_BUILDKIT ?= 1 +export COMPOSE_DOCKER_CLI_BUILD ?= 1 + +# https://github.com/vercel/turbo/issues/223 +export FORCE_COLOR ?= 1 + +DOCKER ?= docker +DOCKER_COMPOSE ?= docker compose + +# Support image with all needed binaries, like envsubst, mkcert, wait4x +SUPPORT_IMAGE ?= wayofdev/build-deps:alpine-latest + +BUILDER_PARAMS ?= docker run \ + --rm \ + -i \ + -v $(PWD):/app \ + --workdir /app \ + --env-file ./.env + +BUILDER ?= $(BUILDER_PARAMS) $(SUPPORT_IMAGE) + +# Shorthand envsubst command, executed through build-deps +ENVSUBST ?= $(BUILDER) envsubst + +NPM_BIN ?= pnpm +NPM_RUNNER ?= $(NPM_BIN) + + +# Self documenting Makefile code +# ------------------------------------------------------------------------------------ +ifneq ($(TERM),) + BLACK := $(shell tput setaf 0) + RED := $(shell tput setaf 1) + GREEN := $(shell tput setaf 2) + YELLOW := $(shell tput setaf 3) + LIGHTPURPLE := $(shell tput setaf 4) + PURPLE := $(shell tput setaf 5) + BLUE := $(shell tput setaf 6) + WHITE := $(shell tput setaf 7) + RST := $(shell tput sgr0) +else + BLACK := "" + RED := "" + GREEN := "" + YELLOW := "" + LIGHTPURPLE := "" + PURPLE := "" + BLUE := "" + WHITE := "" + RST := "" +endif +MAKE_LOGFILE = /tmp/keywind.log +MAKE_CMD_COLOR := $(BLUE) + +default: all + +help: ## Show this menu + @echo 'Management commands for package:' + @echo 'Usage:' + @echo ' ${MAKE_CMD_COLOR}make${RST} Prepares and spins up project with default settings' + @grep -E '^[a-zA-Z_0-9%-]+:.*?## .*$$' Makefile | awk 'BEGIN {FS = ":.*?## "}; {printf " ${MAKE_CMD_COLOR}make %-21s${RST} %s\n", $$1, $$2}' + @echo + @echo ' 📑 Logs are stored in $(MAKE_LOGFILE)' + @echo + @echo ' 📦 Package keywind (github.com/wayofdev/keywind)' + @echo ' 🤠 Authors Anthony Lukin (github.com/lukin), Andrij Orlenko (github.com/lotyp)' + @echo ' 🏢 ${YELLOW}Org wayofdev (github.com/wayofdev)${RST}' +.PHONY: help + +.EXPORT_ALL_VARIABLES: + + +# Default action +# Defines default command when `make` is executed without additional parameters +# ------------------------------------------------------------------------------------ +all: install hooks +.PHONY: all + + +# System Actions +# ------------------------------------------------------------------------------------ +env: ## Generate .env file from example, use `make env FORCE=true`, to force re-create file +ifeq ($(FORCE),true) + @echo "${YELLOW}Force re-creating .env file from example...${RST}" + $(ENVSUBST) < ./.env.example > ./.env +else ifneq ("$(wildcard ./.env)","") + @echo "" + @echo "${YELLOW}The .env file already exists! Use FORCE=true to re-create.${RST}" +else + @echo "Creating .env file from example" + $(ENVSUBST) < ./.env.example > ./.env +endif +.PHONY: env + +i: ## Install dependencies + $(NPM_RUNNER) i +.PHONY: i + +install: i ## Same as `make i` +.PHONY: install + +update: ## Run pnpm to packages to their latest version based on the specified range + $(NPM_RUNNER) update +.PHONY: update + +purge: down ## Stops container and deletes node modules and temporary files + find . | grep /node_modules$ | grep -v /node_modules/ | xargs rm -fR + find . | grep /.turbo$ | grep -v /.turbo/ | xargs rm -fR + rm -rf .pnpm-store pnpm-lock.yaml +.PHONY: purge + +deps-check: ## Check for outdated dependencies + $(NPM_RUNNER) run deps:check +.PHONY: deps-check + +deps-update: ## Check for outdated dependencies and automatically update them using pnpm + $(NPM_RUNNER) run deps:update +.PHONY: deps-update + +dev: ## Run development server + $(NPM_RUNNER) dev +.PHONY: dev + +commit: ## Commit changes using commitizen + $(NPM_RUNNER) commit +.PHONY: commit + + +# Docker Actions +# ------------------------------------------------------------------------------------ +up: ## Spin up this project using docker + $(DOCKER_COMPOSE) up --remove-orphans -d + make _kc-wait kc-configure kc-update +.PHONY: up + +down: ## Stops and removes all project containers + $(DOCKER_COMPOSE) down --remove-orphans +.PHONY: down + +restart: down up ## Removes containers and stops, then starts new instances +.PHONY: restart + +clean: ## Stops and removes docker containers, specified in docker-compose.yml + $(DOCKER_COMPOSE) rm --force --stop +.PHONY: clean + +ps: ## Show running containers + $(DOCKER_COMPOSE) ps +.PHONY: ps + +logs: ## Show all project docker logs + $(DOCKER_COMPOSE) logs -f +.PHONY: logs + + +# Testing and Code Quality +# ------------------------------------------------------------------------------------ +lint: ## Run lint task to fix issues + $(NPM_RUNNER) lint:fix +.PHONY: lint + +lint-staged: ## Lint staged files + $(NPM_RUNNER) lint:staged +.PHONY: lint-staged + +lint-commits: ## Run commitlint to check commit message + $(NPM_RUNNER) lint:commits +.PHONY: lint-commits + +lint-md: ## Lint markdown files + $(NPM_RUNNER) lint:md +.PHONY: lint-md + +lint-secrets: ## Check if there are any missed secret credentials in code + $(NPM_RUNNER) lint:secrets +.PHONY: lint-secrets + +lint-yaml: ## Lints yaml files inside project + yamllint . +.PHONY: lint-yaml + +lint-actions: ## Lint github actions using actionlint + $(BUILDER) actionlint -color +.PHONY: lint-actions + +sort: ## Sort package.json files across project + $(NPM_RUNNER) lint:package-json +.PHONY: sort + + +# Building components +# ------------------------------------------------------------------------------------ +build: ## Build theme + $(NPM_RUNNER) build +.PHONY: build + +build-jar: ## Build jar theme file + $(NPM_RUNNER) build:jar +.PHONY: build + + +# Keycloak Actions +# ------------------------------------------------------------------------------------ +kc-up: ## Create and start keycloak container + $(DOCKER_COMPOSE) up -d keycloak +.PHONY: kc-up + +kc-recreate: kc-clean kc-up _kc-wait kc-configure kc-update ## Stop, delete container and volume, then create and start new one +.PHONY: kc-recreate + +kc-clean: ## Removes keycloak, keycloak database containers and their volumes + $(DOCKER_COMPOSE) rm -svf keycloak-database keycloak + $(DOCKER) volume rm -f $(COMPOSE_PROJECT_NAME)_keycloak_data +.PHONY: kc-clean + +_kc-wait: + @$(DOCKER) run --rm --net=host --name='wait4x' atkrad/wait4x:latest \ + http $(shell docker inspect --format 'http://127.0.0.1:{{ (index (index .NetworkSettings.Ports "8080/tcp") 0).HostPort }}' keywind_keycloak) \ + -t 1m +.PHONY: _kc-wait + +kc-configure: ## Configure keycloak realms + $(DOCKER_COMPOSE) exec -T keycloak sh /tmp/setup/setup-master-realm.sh + $(DOCKER_COMPOSE) exec -T keycloak sh /tmp/setup/setup-client-realm.sh + $(DOCKER_COMPOSE) exec -T keycloak sh /tmp/setup/setup-admin-realm.sh +.PHONY: kc-configure + +kc-update: ## Update keycloak realms + $(DOCKER_COMPOSE) exec -T keycloak sh /tmp/setup/update-realms.sh +.PHONY: kc-update + +kc-certs: ## Create self-signed certificates for keycloak + mkcert -key-file docker/keycloak/certs/key.pem -cert-file docker/keycloak/certs/cert.pem auth.wod.docker *.wod.docker +.PHONY: mkcert + + +# Git Actions +# ------------------------------------------------------------------------------------ +hooks: ## Install git hooks from husky + $(NPM_RUNNER) run prepare +.PHONY: hooks diff --git a/README.md b/README.md index f5eea8531..547d1ef2c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,49 @@ Keywind is a component-based Keycloak Login Theme built with [Tailwind CSS](https://github.com/tailwindlabs/tailwindcss) and [Alpine.js](https://github.com/alpinejs/alpine). - + + +### Styled Pages + +- Error +- Login +- Login Config TOTP +- Login IDP Link Confirm +- Login OAuth Grant +- Login OTP +- Login Page Expired +- Login Password +- Login Recovery Authn Code Config +- Login Recovery Authn Code Input +- Login Reset Password +- Login Update Password +- Login Update Profile +- Login Username +- Logout Confirm +- Register +- Select Authenticator +- Terms and Conditions +- WebAuthn Authenticate +- WebAuthn Error +- WebAuthn Register + +### Identity Provider Icons + +- Bitbucket +- Discord +- Facebook +- GitHub +- GitLab +- Google +- Instagram +- LinkedIn +- Microsoft +- OpenID +- Red Hat OpenShift +- PayPal +- Slack +- Stack Overflow +- Twitter ## Installation @@ -16,24 +58,17 @@ Keywind has been designed with component-based architecture from the start, and parent=keywind ``` -4. Brand and Customize components with [FreeMaker](https://freemarker.apache.org/docs/dgui_quickstart_template.html) - -## Features - -### Styled Pages +4. Brand and customize components with [FreeMarker](https://freemarker.apache.org/docs/dgui_quickstart_template.html) -* Login -* Password Reset -* Register +## Customization -## Examples +### Theme -### Color Theme +When you do need to customize a palette, you can configure your colors under the `colors` key in the `theme` section of Tailwind config file: -When you do need to customize a palette, you can configure your colors under the `colors` key in the `theme` section of `tailwind.config.js` file: +`tailwind.config.js` ```js -// tailwind.config.js module.exports = { theme: { extend: { @@ -42,32 +77,36 @@ module.exports = { }, }, }, -} +}; ``` Read more about Tailwind CSS configuration in the [documentation](https://tailwindcss.com/docs/configuration). -### Primary Button Size +### Components -You can inherit Keywind components in your own theme. For example, to resize the primary button you should create a styled `theme/mytheme/components/button/primary.ftl` file: +You can update Keywind components in your own child theme. For example, create a copy of the `body` component and change the background: + +`theme/mytheme/login/components/atoms/body.ftl` ``` -<#macro kw component="button" rest...> - <${component} - class="bg-primary-600 flex justify-center px-6 py-3 relative rounded-lg text-md text-white w-full focus:outline-none focus:ring-2 focus:ring-primary-600 focus:ring-offset-2 hover:bg-primary-700" - <#list rest as attrName, attrValue> - ${attrName}="${attrValue}" - #list> - > +<#macro kw> +
<#nested> - ${component}> + #macro> ``` -### Build +## Build When you're ready to deploy your own theme, run the build command to generate a static production build. ```bash -yarn build +pnpm install +pnpm build +``` + +To deploy a theme as an archive, create a JAR archive with the theme resources. + +```bash +pnpm build:jar ``` diff --git a/assets/preview.png b/assets/preview.png new file mode 100644 index 000000000..981558ad7 Binary files /dev/null and b/assets/preview.png differ diff --git a/commitlint.config.js b/commitlint.config.js new file mode 100644 index 000000000..7bffd515b --- /dev/null +++ b/commitlint.config.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['@wayofdev/commitlint-config'], +}; diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 000000000..b8ee0fe0f --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,49 @@ +--- +version: '3.9' + +services: + keycloak-database: + image: postgres:15-alpine + container_name: keywind_keycloak_db + restart: on-failure + volumes: + - keycloak_data:/var/lib/postgresql/data + environment: + POSTGRES_DB: ${KC_DB_URL_DATABASE} + POSTGRES_USER: ${KC_DB_USERNAME} + POSTGRES_PASSWORD: ${KC_DB_PASSWORD} + ports: + - '5432' + + keycloak: + image: quay.io/keycloak/keycloak:21.0.2 + container_name: keywind_keycloak + restart: on-failure + volumes: + - ./out/keywind.jar:/opt/keycloak/providers/keywind.jar + - ./docker/keycloak/certs/cert.pem:/opt/keycloak/conf/cert.pem + - ./docker/keycloak/certs/key.pem:/opt/keycloak/conf/key.pem + - ./docker/keycloak/setup:/tmp/setup:ro + networks: + default: + aliases: + - keycloak.keywind.alias + depends_on: + - keycloak-database + env_file: + - .env + environment: + KC_FEATURES_DISABLED: 'jdbc-h2,jdbc-mariadb,jdbc-mssql,jdbc-mysql,jdbc-oracle' + ports: + - '8777:8080' + links: + - keycloak-database + entrypoint: ['/opt/keycloak/bin/kc.sh', 'start-dev'] + +volumes: + rabbitmq_data: + keycloak_data: + +networks: + default: + name: project.keywind diff --git a/docker/keycloak/certs/.gitignore b/docker/keycloak/certs/.gitignore new file mode 100644 index 000000000..d6b7ef32c --- /dev/null +++ b/docker/keycloak/certs/.gitignore @@ -0,0 +1,2 @@ +* +!.gitignore diff --git a/docker/keycloak/setup/realms/realm-client.json b/docker/keycloak/setup/realms/realm-client.json new file mode 100644 index 000000000..5ca4f0da7 --- /dev/null +++ b/docker/keycloak/setup/realms/realm-client.json @@ -0,0 +1,3 @@ +{ + "sslRequired": "external" +} diff --git a/docker/keycloak/setup/realms/realm-master.json b/docker/keycloak/setup/realms/realm-master.json new file mode 100644 index 000000000..5ca4f0da7 --- /dev/null +++ b/docker/keycloak/setup/realms/realm-master.json @@ -0,0 +1,3 @@ +{ + "sslRequired": "external" +} diff --git a/docker/keycloak/setup/realms/realm-operations.json b/docker/keycloak/setup/realms/realm-operations.json new file mode 100644 index 000000000..5ca4f0da7 --- /dev/null +++ b/docker/keycloak/setup/realms/realm-operations.json @@ -0,0 +1,3 @@ +{ + "sslRequired": "external" +} diff --git a/docker/keycloak/setup/setup-admin-realm.sh b/docker/keycloak/setup/setup-admin-realm.sh new file mode 100644 index 000000000..67b8fa1ed --- /dev/null +++ b/docker/keycloak/setup/setup-admin-realm.sh @@ -0,0 +1,71 @@ +#!/bin/sh + +set -euxv + +KCADM=/opt/keycloak/bin/kcadm.sh + +${KCADM} config credentials --server "$KC_INTERNAL_HOSTNAME_URL" --realm master --user "$KEYCLOAK_ADMIN" --password "$KEYCLOAK_ADMIN_PASSWORD" + +${KCADM} create realms \ + -s "realm=${OIDC_ADMIN_REALM}" \ + -s enabled=true \ + -s 'displayName="Company Employees"' \ + -s accessTokenLifespan=300 \ + -s ssoSessionIdleTimeout=3600 \ + -s ssoSessionMaxLifespan=3600 \ + -s revokeRefreshToken=true \ + -s refreshTokenMaxReuse=0 \ + -s defaultSignatureAlgorithm=RS256 + +${KCADM} create clients -r ${OIDC_ADMIN_REALM} -f - <${downloadFileHeader}
${downloadFileDescription}
${downloadFileDate} ${date}
`; + + const printWindow = window.open(); + + if (printWindow) { + printWindow.document.write(content); + printWindow.print(); + printWindow.close(); + } + }, + }; + }); +}); diff --git a/src/data/webAuthnAuthenticate.ts b/src/data/webAuthnAuthenticate.ts new file mode 100644 index 000000000..8aab5bb94 --- /dev/null +++ b/src/data/webAuthnAuthenticate.ts @@ -0,0 +1,147 @@ +import Alpine from 'alpinejs'; +import { base64url } from 'rfc4648'; + +type DataType = { + $refs: RefsType; + $store: StoreType; +}; + +type RefsType = { + authenticatorDataInput: HTMLInputElement; + authnSelectForm?: HTMLFormElement; + clientDataJSONInput: HTMLInputElement; + credentialIdInput: HTMLInputElement; + errorInput: HTMLInputElement; + signatureInput: HTMLInputElement; + userHandleInput: HTMLInputElement; + webAuthnForm: HTMLFormElement; +}; + +type StoreType = { + webAuthnAuthenticate: { + challenge: string; + createTimeout: string; + isUserIdentified: string; + rpId: string; + unsupportedBrowserText: string; + userVerification: UserVerificationRequirement | 'not specified'; + }; +}; + +document.addEventListener('alpine:init', () => { + Alpine.data('webAuthnAuthenticate', function (this: DataType) { + const { + authenticatorDataInput, + authnSelectForm, + clientDataJSONInput, + credentialIdInput, + errorInput, + signatureInput, + userHandleInput, + webAuthnForm, + } = this.$refs; + const { + challenge, + createTimeout, + isUserIdentified, + rpId, + unsupportedBrowserText, + userVerification, + } = this.$store.webAuthnAuthenticate; + + const doAuthenticate = (allowCredentials: PublicKeyCredentialDescriptor[]) => { + if (!window.PublicKeyCredential) { + errorInput.value = unsupportedBrowserText; + webAuthnForm.submit(); + + return; + } + + const publicKey: PublicKeyCredentialRequestOptions = { + challenge: base64url.parse(challenge, { loose: true }), + rpId: rpId, + }; + + if (allowCredentials.length) { + publicKey.allowCredentials = allowCredentials; + } + + if (parseInt(createTimeout) !== 0) publicKey.timeout = parseInt(createTimeout) * 1000; + + if (userVerification !== 'not specified') publicKey.userVerification = userVerification; + + navigator.credentials + .get({ publicKey }) + .then((result) => { + if ( + result instanceof PublicKeyCredential && + result.response instanceof AuthenticatorAssertionResponse + ) { + window.result = result; + + authenticatorDataInput.value = base64url.stringify( + new Uint8Array(result.response.authenticatorData), + { pad: false } + ); + + clientDataJSONInput.value = base64url.stringify( + new Uint8Array(result.response.clientDataJSON), + { pad: false } + ); + + signatureInput.value = base64url.stringify(new Uint8Array(result.response.signature), { + pad: false, + }); + + credentialIdInput.value = result.id; + + if (result.response.userHandle) { + userHandleInput.value = base64url.stringify( + new Uint8Array(result.response.userHandle), + { pad: false } + ); + } + + webAuthnForm.submit(); + } + }) + .catch((error) => { + errorInput.value = error; + webAuthnForm.submit(); + }); + }; + + const checkAllowCredentials = () => { + const allowCredentials: PublicKeyCredentialDescriptor[] = []; + + if (authnSelectForm) { + const authnSelectFormElements = Array.from(authnSelectForm.elements); + + if (authnSelectFormElements.length) { + authnSelectFormElements.forEach((element) => { + if (element instanceof HTMLInputElement) { + allowCredentials.push({ + id: base64url.parse(element.value, { loose: true }), + type: 'public-key', + }); + } + }); + } + } + + doAuthenticate(allowCredentials); + }; + + return { + webAuthnAuthenticate: () => { + if (!isUserIdentified) { + doAuthenticate([]); + + return; + } + + checkAllowCredentials(); + }, + }; + }); +}); diff --git a/src/data/webAuthnRegister.ts b/src/data/webAuthnRegister.ts new file mode 100644 index 000000000..23744df96 --- /dev/null +++ b/src/data/webAuthnRegister.ts @@ -0,0 +1,225 @@ +import Alpine from 'alpinejs'; +import { base64url } from 'rfc4648'; + +type DataType = { + $refs: RefsType; + $store: StoreType; +}; + +type RefsType = { + attestationObjectInput: HTMLInputElement; + authenticatorLabelInput: HTMLInputElement; + clientDataJSONInput: HTMLInputElement; + errorInput: HTMLInputElement; + publicKeyCredentialIdInput: HTMLInputElement; + registerForm: HTMLFormElement; + transportsInput: HTMLInputElement; +}; + +type StoreType = { + webAuthnRegister: { + attestationConveyancePreference: AttestationConveyancePreference | 'not specified'; + authenticatorAttachment: AuthenticatorAttachment | 'not specified'; + challenge: string; + createTimeout: string; + excludeCredentialIds: string; + requireResidentKey: string; + rpEntityName: string; + rpId: string; + signatureAlgorithms: string; + unsupportedBrowserText: string; + userId: string; + userVerificationRequirement: UserVerificationRequirement | 'not specified'; + username: string; + }; +}; + +document.addEventListener('alpine:init', () => { + Alpine.data('webAuthnRegister', function (this: DataType) { + const { + attestationObjectInput, + authenticatorLabelInput, + clientDataJSONInput, + errorInput, + publicKeyCredentialIdInput, + registerForm, + transportsInput, + } = this.$refs; + const { + attestationConveyancePreference, + authenticatorAttachment, + challenge, + createTimeout, + excludeCredentialIds, + requireResidentKey, + rpEntityName, + rpId, + signatureAlgorithms, + unsupportedBrowserText, + userId, + userVerificationRequirement, + username, + } = this.$store.webAuthnRegister; + + const getPubKeyCredParams = (signatureAlgorithms: string) => { + const pubKeyCredParams: PublicKeyCredentialParameters[] = []; + + if (signatureAlgorithms === '') { + pubKeyCredParams.push({ alg: -7, type: 'public-key' }); + + return pubKeyCredParams; + } + + const signatureAlgorithmsList = signatureAlgorithms.split(','); + + signatureAlgorithmsList.forEach((value) => { + pubKeyCredParams.push({ + alg: parseInt(value), + type: 'public-key', + }); + }); + + return pubKeyCredParams; + }; + + const getExcludeCredentials = (excludeCredentialIds: string) => { + const excludeCredentials: PublicKeyCredentialDescriptor[] = []; + + if (excludeCredentialIds === '') return excludeCredentials; + + const excludeCredentialIdsList = excludeCredentialIds.split(','); + + excludeCredentialIdsList.forEach((value) => { + excludeCredentials.push({ + id: base64url.parse(value, { loose: true }), + type: 'public-key', + }); + }); + + return excludeCredentials; + }; + + const getTransportsAsString = (transportsList: string | string[]) => { + if (transportsList === '' || transportsList.constructor !== Array) return ''; + + let transportsString = ''; + + transportsList.forEach((value) => { + transportsString += value + ','; + }); + + return transportsString.slice(0, -1); + }; + + return { + registerSecurityKey: () => { + if (!window.PublicKeyCredential) { + errorInput.value = unsupportedBrowserText; + registerForm.submit(); + + return; + } + + const publicKey: PublicKeyCredentialCreationOptions = { + challenge: base64url.parse(challenge, { loose: true }), + pubKeyCredParams: getPubKeyCredParams(signatureAlgorithms), + rp: { + id: rpId, + name: rpEntityName, + }, + user: { + displayName: username, + id: base64url.parse(userId, { loose: true }), + name: username, + }, + }; + + if (attestationConveyancePreference !== 'not specified') + publicKey.attestation = attestationConveyancePreference; + + const authenticatorSelection: AuthenticatorSelectionCriteria = {}; + let isAuthenticatorSelectionSpecified = false; + + if (authenticatorAttachment !== 'not specified') { + authenticatorSelection.authenticatorAttachment = authenticatorAttachment; + isAuthenticatorSelectionSpecified = true; + } + + if (requireResidentKey !== 'not specified') { + if (requireResidentKey === 'Yes') authenticatorSelection.requireResidentKey = true; + else authenticatorSelection.requireResidentKey = false; + isAuthenticatorSelectionSpecified = true; + } + + if (userVerificationRequirement !== 'not specified') { + authenticatorSelection.userVerification = userVerificationRequirement; + isAuthenticatorSelectionSpecified = true; + } + + if (isAuthenticatorSelectionSpecified) + publicKey.authenticatorSelection = authenticatorSelection; + + const excludeCredentials = getExcludeCredentials(excludeCredentialIds); + if (excludeCredentials.length > 0) publicKey.excludeCredentials = excludeCredentials; + + if (parseInt(createTimeout) !== 0) publicKey.timeout = parseInt(createTimeout) * 1000; + + navigator.credentials + .create({ publicKey }) + .then((result) => { + if ( + result instanceof PublicKeyCredential && + result.response instanceof AuthenticatorAttestationResponse + ) { + const { getTransports } = result.response; + + window.result = result; + + const publicKeyCredentialId = result.rawId; + + attestationObjectInput.value = base64url.stringify( + new Uint8Array(result.response.attestationObject), + { pad: false } + ); + + clientDataJSONInput.value = base64url.stringify( + new Uint8Array(result.response.clientDataJSON), + { pad: false } + ); + + publicKeyCredentialIdInput.value = base64url.stringify( + new Uint8Array(publicKeyCredentialId), + { pad: false } + ); + + if (typeof getTransports === 'function') { + const transports = getTransports(); + + if (transports) { + transportsInput.value = getTransportsAsString(transports); + } + } else { + console.log( + 'Your browser is not able to recognize supported transport media for the authenticator.' + ); + } + + const initLabel = 'WebAuthn Authenticator (Default Label)'; + let labelResult = window.prompt( + "Please input your registered authenticator's label", + initLabel + ); + if (labelResult === null) labelResult = initLabel; + + authenticatorLabelInput.value = labelResult; + registerForm.submit(); + } + }) + .catch(function (error) { + error.value = error; + registerForm.submit(); + }); + }, + }; + }); +}); diff --git a/src/global.d.ts b/src/global.d.ts new file mode 100644 index 000000000..a858d3edc --- /dev/null +++ b/src/global.d.ts @@ -0,0 +1,8 @@ +import type { Alpine } from 'alpinejs'; + +declare global { + interface Window { + Alpine: Alpine; + result?: PublicKeyCredential; + } +} diff --git a/src/index.css b/src/index.css index 675bc249d..06248629a 100644 --- a/src/index.css +++ b/src/index.css @@ -3,6 +3,13 @@ @tailwind utilities; @layer components { + /* Alpine.js + ======================================================================== */ + + [x-cloak] { + @apply hidden !important; + } + /* Separate ======================================================================== */ @@ -13,7 +20,7 @@ .separate::after, .separate::before { content: ''; - @apply border-b border-gray-300 flex-1; + @apply border-b border-secondary-200 flex-1; } .separate:not(:empty)::after { diff --git a/src/index.js b/src/index.ts similarity index 76% rename from src/index.js rename to src/index.ts index df80acc4e..213348173 100644 --- a/src/index.js +++ b/src/index.ts @@ -1,3 +1,5 @@ +import './index.css'; + import Alpine from 'alpinejs'; window.Alpine = Alpine; diff --git a/tailwind.config.js b/tailwind.config.js index 948b6ede8..2d099f08f 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -1,17 +1,37 @@ const colors = require('tailwindcss/colors'); /** - * @type { import('@types/tailwindcss/tailwind-config').TailwindConfig } + * @type { import('tailwindcss').Config } */ module.exports = { - darkMode: 'class', + content: ['./theme/**/*.ftl'], + experimental: { + optimizeUniversalDefaults: true, + }, plugins: [require('@tailwindcss/forms')], - purge: ['./theme/**/*.ftl'], - mode: 'jit', theme: { extend: { colors: { primary: colors.blue, + secondary: colors.gray, + + provider: { + bitbucket: '#0052CC', + discord: '#5865F2', + facebook: '#1877F2', + github: '#181717', + gitlab: '#FC6D26', + google: '#4285F4', + instagram: '#E4405F', + linkedin: '#0A66C2', + microsoft: '#5E5E5E', + oidc: '#F78C40', + openshift: '#EE0000', + paypal: '#00457C', + slack: '#4A154B', + stackoverflow: '#F58025', + twitter: '#1DA1F2', + }, }, }, }, diff --git a/theme/keywind/login/assets/icons/arrow-top-right-on-square.ftl b/theme/keywind/login/assets/icons/arrow-top-right-on-square.ftl new file mode 100644 index 000000000..81c4bf81d --- /dev/null +++ b/theme/keywind/login/assets/icons/arrow-top-right-on-square.ftl @@ -0,0 +1,7 @@ +<#-- https://github.com/tailwindlabs/heroicons/blob/master/src/20/solid/arrow-top-right-on-square.svg --> +<#macro kw> + +#macro> diff --git a/theme/keywind/login/assets/icons/chevron-down.ftl b/theme/keywind/login/assets/icons/chevron-down.ftl new file mode 100644 index 000000000..673ef1191 --- /dev/null +++ b/theme/keywind/login/assets/icons/chevron-down.ftl @@ -0,0 +1,6 @@ +<#-- https://github.com/tailwindlabs/heroicons/blob/master/src/20/solid/chevron-down.svg --> +<#macro kw> + +#macro> diff --git a/theme/keywind/login/assets/providers/bitbucket.ftl b/theme/keywind/login/assets/providers/bitbucket.ftl new file mode 100644 index 000000000..068bc73d8 --- /dev/null +++ b/theme/keywind/login/assets/providers/bitbucket.ftl @@ -0,0 +1,14 @@ +<#-- https://atlassian.design/resources/logo-library --> +<#macro kw name="Bitbucket"> + +#macro> diff --git a/theme/keywind/login/assets/providers/discord.ftl b/theme/keywind/login/assets/providers/discord.ftl new file mode 100644 index 000000000..8ebecaa48 --- /dev/null +++ b/theme/keywind/login/assets/providers/discord.ftl @@ -0,0 +1,7 @@ +<#-- https://discord.com/branding --> +<#macro kw name="Discord"> + +#macro> diff --git a/theme/keywind/login/assets/providers/facebook.ftl b/theme/keywind/login/assets/providers/facebook.ftl new file mode 100644 index 000000000..bc692e759 --- /dev/null +++ b/theme/keywind/login/assets/providers/facebook.ftl @@ -0,0 +1,8 @@ +<#-- https://www.facebook.com/brand/resources/facebookapp/logo --> +<#macro kw name="Facebook"> + +#macro> diff --git a/theme/keywind/login/assets/providers/github.ftl b/theme/keywind/login/assets/providers/github.ftl new file mode 100644 index 000000000..9523103c4 --- /dev/null +++ b/theme/keywind/login/assets/providers/github.ftl @@ -0,0 +1,7 @@ +<#-- https://github.com/logos --> +<#macro kw name="GitHub"> + +#macro> diff --git a/theme/keywind/login/assets/providers/gitlab.ftl b/theme/keywind/login/assets/providers/gitlab.ftl new file mode 100644 index 000000000..4acfc132d --- /dev/null +++ b/theme/keywind/login/assets/providers/gitlab.ftl @@ -0,0 +1,10 @@ +<#-- https://about.gitlab.com/press/press-kit --> +<#macro kw name="GitLab"> + +#macro> diff --git a/theme/keywind/login/assets/providers/google.ftl b/theme/keywind/login/assets/providers/google.ftl new file mode 100644 index 000000000..b536cdbb8 --- /dev/null +++ b/theme/keywind/login/assets/providers/google.ftl @@ -0,0 +1,10 @@ +<#-- https://developers.google.com/identity/branding-guidelines --> +<#macro kw name="Google"> + +#macro> diff --git a/theme/keywind/login/assets/providers/instagram.ftl b/theme/keywind/login/assets/providers/instagram.ftl new file mode 100644 index 000000000..c4996d880 --- /dev/null +++ b/theme/keywind/login/assets/providers/instagram.ftl @@ -0,0 +1,35 @@ +<#-- https://www.facebook.com/brand/resources/instagram/instagram-brand --> +<#macro kw name="Instagram"> + +#macro> diff --git a/theme/keywind/login/assets/providers/linkedin.ftl b/theme/keywind/login/assets/providers/linkedin.ftl new file mode 100644 index 000000000..944d14335 --- /dev/null +++ b/theme/keywind/login/assets/providers/linkedin.ftl @@ -0,0 +1,7 @@ +<#-- https://brand.linkedin.com/downloads --> +<#macro kw name="LinkedIn"> + +#macro> diff --git a/theme/keywind/login/assets/providers/microsoft.ftl b/theme/keywind/login/assets/providers/microsoft.ftl new file mode 100644 index 000000000..408635b84 --- /dev/null +++ b/theme/keywind/login/assets/providers/microsoft.ftl @@ -0,0 +1,10 @@ +<#-- https://learn.microsoft.com/azure/active-directory/develop/howto-add-branding-in-azure-ad-apps --> +<#macro kw name="Microsoft"> + +#macro> diff --git a/theme/keywind/login/assets/providers/oidc.ftl b/theme/keywind/login/assets/providers/oidc.ftl new file mode 100644 index 000000000..f7954ff5e --- /dev/null +++ b/theme/keywind/login/assets/providers/oidc.ftl @@ -0,0 +1,9 @@ +<#-- https://openid.net/add-openid/logos --> +<#macro kw name="OpenID"> + +#macro> diff --git a/theme/keywind/login/assets/providers/openshift.ftl b/theme/keywind/login/assets/providers/openshift.ftl new file mode 100644 index 000000000..e85ddef7e --- /dev/null +++ b/theme/keywind/login/assets/providers/openshift.ftl @@ -0,0 +1,11 @@ +<#-- https://www.redhat.com/technologies/cloud-computing/openshift --> +<#macro kw name="Red Hat OpenShift"> + +#macro> diff --git a/theme/keywind/login/assets/providers/paypal.ftl b/theme/keywind/login/assets/providers/paypal.ftl new file mode 100644 index 000000000..7946e03cd --- /dev/null +++ b/theme/keywind/login/assets/providers/paypal.ftl @@ -0,0 +1,9 @@ +<#-- https://www.paypal.com --> +<#macro kw name="PayPal"> + +#macro> diff --git a/theme/keywind/login/assets/providers/providers.ftl b/theme/keywind/login/assets/providers/providers.ftl new file mode 100644 index 000000000..b9c55f6c8 --- /dev/null +++ b/theme/keywind/login/assets/providers/providers.ftl @@ -0,0 +1,79 @@ +<#import "./bitbucket.ftl" as bitbucketIcon> +<#import "./discord.ftl" as discordIcon> +<#import "./facebook.ftl" as facebookIcon> +<#import "./github.ftl" as githubIcon> +<#import "./gitlab.ftl" as gitlabIcon> +<#import "./google.ftl" as googleIcon> +<#import "./instagram.ftl" as instagramIcon> +<#import "./linkedin.ftl" as linkedinIcon> +<#import "./microsoft.ftl" as microsoftIcon> +<#import "./oidc.ftl" as oidcIcon> +<#import "./openshift.ftl" as openshiftIcon> +<#import "./paypal.ftl" as paypalIcon> +<#import "./slack.ftl" as slackIcon> +<#import "./stackoverflow.ftl" as stackoverflowIcon> +<#import "./twitter.ftl" as twitterIcon> + +<#macro bitbucket> + <@bitbucketIcon.kw /> +#macro> + +<#macro discord> + <@discordIcon.kw /> +#macro> + +<#macro facebook> + <@facebookIcon.kw /> +#macro> + +<#macro github> + <@githubIcon.kw /> +#macro> + +<#macro gitlab> + <@gitlabIcon.kw /> +#macro> + +<#macro google> + <@googleIcon.kw /> +#macro> + +<#macro instagram> + <@instagramIcon.kw /> +#macro> + +<#macro linkedin> + <@linkedinIcon.kw /> +#macro> + +<#macro microsoft> + <@microsoftIcon.kw /> +#macro> + +<#macro oidc> + <@oidcIcon.kw /> +#macro> + +<#macro "openshift-v3"> + <@openshiftIcon.kw /> +#macro> + +<#macro "openshift-v4"> + <@openshiftIcon.kw /> +#macro> + +<#macro paypal> + <@paypalIcon.kw /> +#macro> + +<#macro slack> + <@slackIcon.kw /> +#macro> + +<#macro stackoverflow> + <@stackoverflowIcon.kw /> +#macro> + +<#macro twitter> + <@twitterIcon.kw /> +#macro> diff --git a/theme/keywind/login/assets/providers/slack.ftl b/theme/keywind/login/assets/providers/slack.ftl new file mode 100644 index 000000000..d4dffe3bb --- /dev/null +++ b/theme/keywind/login/assets/providers/slack.ftl @@ -0,0 +1,14 @@ +<#-- https://slack.com/media-kit --> +<#macro kw name="Slack"> + +#macro> diff --git a/theme/keywind/login/assets/providers/stackoverflow.ftl b/theme/keywind/login/assets/providers/stackoverflow.ftl new file mode 100644 index 000000000..1ffad8d6a --- /dev/null +++ b/theme/keywind/login/assets/providers/stackoverflow.ftl @@ -0,0 +1,8 @@ +<#-- https://stackoverflow.design/brand/logo --> +<#macro kw name="Stack Overflow"> + +#macro> diff --git a/theme/keywind/login/assets/providers/twitter.ftl b/theme/keywind/login/assets/providers/twitter.ftl new file mode 100644 index 000000000..2bc7e7e49 --- /dev/null +++ b/theme/keywind/login/assets/providers/twitter.ftl @@ -0,0 +1,7 @@ +<#-- https://about.twitter.com/en/who-we-are/brand-toolkit --> +<#macro kw name="Twitter"> + +#macro> diff --git a/theme/keywind/login/components/atoms/alert.ftl b/theme/keywind/login/components/atoms/alert.ftl new file mode 100644 index 000000000..58e8309f0 --- /dev/null +++ b/theme/keywind/login/components/atoms/alert.ftl @@ -0,0 +1,22 @@ +<#macro kw color=""> + <#switch color> + <#case "error"> + <#assign colorClass="bg-red-100 text-red-600"> + <#break> + <#case "info"> + <#assign colorClass="bg-blue-100 text-blue-600"> + <#break> + <#case "success"> + <#assign colorClass="bg-green-100 text-green-600"> + <#break> + <#case "warning"> + <#assign colorClass="bg-orange-100 text-orange-600"> + <#break> + <#default> + <#assign colorClass="bg-blue-100 text-blue-600"> + #switch> + +${msg("loginTotpStep1")}
+${msg("loginTotpManualStep2")}
+${totp.totpSecretEncoded}
+${msg("loginTotpManualStep3")}
+${msg("loginTotpStep2")}
++ <#if client.name?has_content> + ${msg("oauthGrantTitle", advancedMsg(client.name))} + <#else> + ${msg("oauthGrantTitle", client.clientId)} + #if> +
+ <#elseif section="form"> +${msg("recovery-code-config-warning-message")}
+${msg("logoutConfirmHeader")}
+ <@form.kw action=url.logoutConfirmAction method="post"> + + <@button.kw color="primary" name="confirmLogout" type="submit" value=msg('doLogout')> + ${msg("doLogout")} + @button.kw> + @form.kw> + <#if !logoutConfirm.skipLink> + <#if (client.baseUrl)?has_content> + <@link.kw color="secondary" href=client.baseUrl size="small"> + ${kcSanitize(msg("backToApplication"))?no_esc} + @link.kw> + #if> + #if> + #if> +@layout.registrationLayout> diff --git a/theme/keywind/login/register.ftl b/theme/keywind/login/register.ftl index 2033d2d54..c1a2f061f 100644 --- a/theme/keywind/login/register.ftl +++ b/theme/keywind/login/register.ftl @@ -1,7 +1,9 @@ <#import "template.ftl" as layout> -<#import "components/button/primary.ftl" as buttonPrimary> -<#import "components/input/primary.ftl" as inputPrimary> -<#import "components/link/secondary.ftl" as linkSecondary> +<#import "components/atoms/button.ftl" as button> +<#import "components/atoms/button-group.ftl" as buttonGroup> +<#import "components/atoms/form.ftl" as form> +<#import "components/atoms/input.ftl" as input> +<#import "components/atoms/link.ftl" as link> <@layout.registrationLayout displayMessage=!messagesPerField.existsError("firstName", "lastName", "email", "username", "password", "password-confirm") @@ -11,91 +13,76 @@ <#if section="header"> ${msg("registerTitle")} <#elseif section="form"> - + @button.kw> + @buttonGroup.kw> + @form.kw> <#elseif section="nav"> - <@linkSecondary.kw href=url.loginUrl> - ${kcSanitize(msg("backToLogin"))?no_esc} - @linkSecondary.kw> + <@link.kw color="secondary" href=url.loginUrl size="small"> + ${kcSanitize(msg("backToLogin"))?no_esc} + @link.kw> #if> @layout.registrationLayout> diff --git a/theme/keywind/login/resources/dist/assets/index-a7b84447.js b/theme/keywind/login/resources/dist/assets/index-a7b84447.js new file mode 100644 index 000000000..c1b2f3c66 --- /dev/null +++ b/theme/keywind/login/resources/dist/assets/index-a7b84447.js @@ -0,0 +1 @@ +var s={};Object.defineProperty(s,"__esModule",{value:!0});function v(e,r,a){var l;if(a===void 0&&(a={}),!r.codes){r.codes={};for(var n=0;n