Compare commits

...

480 Commits

Author SHA1 Message Date
Alejandro Celaya
aab26e3736 Merge pull request #1640 from shlinkio/develop
Release 4.5.1
2025-08-13 10:15:59 +02:00
Alejandro Celaya
655ded5d5e Update changelog 2025-08-13 10:14:11 +02:00
Alejandro Celaya
6d3189f587 Merge pull request #1639 from acelaya-forks/feature/sidebar-toggle-fix
Make sure sidebar toggle is rendered only when the sidebar exists
2025-08-13 10:13:39 +02:00
Alejandro Celaya
217d076e12 Merge pull request #1638 from acelaya-forks/feature/pwa-fixes
Use new brand color in PWA
2025-08-13 10:08:07 +02:00
Alejandro Celaya
d762ae1e39 Make sure sidebar toggle is rendered only when the sidebar exists 2025-08-13 10:06:45 +02:00
Alejandro Celaya
df3ee490a9 Update changelog 2025-08-13 09:52:25 +02:00
Alejandro Celaya
bf3caf64bc Match meta theme-color with the header color in every theme 2025-08-13 09:51:02 +02:00
Alejandro Celaya
aa818430b6 Use new brand color in PWA 2025-08-13 09:32:46 +02:00
Alejandro Celaya
4d7ed8ac00 Merge pull request #1633 from shlinkio/dependabot/npm_and_yarn/chalk-5.5.0
Bump chalk from 5.4.1 to 5.5.0
2025-08-10 09:27:06 +02:00
Alejandro Celaya
fb66465b9a Merge pull request #1632 from shlinkio/dependabot/npm_and_yarn/vite-7ea3deb48f
Bump the vite group with 2 updates
2025-08-10 09:26:58 +02:00
dependabot[bot]
14de67dbb0 Bump the vite group with 2 updates
Bumps the vite group with 2 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 4.7.0 to 5.0.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@5.0.0/packages/plugin-react)

Updates `vite` from 7.0.6 to 7.1.1
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.1.1/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 5.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vite
- dependency-name: vite
  dependency-version: 7.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-10 07:09:47 +00:00
dependabot[bot]
510f215d78 Bump chalk from 5.4.1 to 5.5.0
Bumps [chalk](https://github.com/chalk/chalk) from 5.4.1 to 5.5.0.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v5.4.1...v5.5.0)

---
updated-dependencies:
- dependency-name: chalk
  dependency-version: 5.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-10 07:09:38 +00:00
Alejandro Celaya
f64272adf0 Merge pull request #1630 from shlinkio/dependabot/docker/node-24.5-alpine
Bump node from 24.4-alpine to 24.5-alpine
2025-08-10 09:08:54 +02:00
Alejandro Celaya
019835e190 Merge pull request #1631 from shlinkio/dependabot/npm_and_yarn/eslint-d7b79321fd
Bump the eslint group with 3 updates
2025-08-10 09:08:38 +02:00
Alejandro Celaya
307eee32f7 Merge pull request #1634 from shlinkio/dependabot/npm_and_yarn/react-router-7.8.0
Bump react-router from 7.7.1 to 7.8.0
2025-08-10 09:08:28 +02:00
dependabot[bot]
3904be09f4 Bump react-router from 7.7.1 to 7.8.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.7.1 to 7.8.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.8.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.8.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-09 07:30:44 +00:00
dependabot[bot]
ce52db96cb Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 5.2.2 to 5.2.3
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.2.3/packages/eslint-plugin)

Updates `eslint` from 9.32.0 to 9.33.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.32.0...v9.33.0)

Updates `typescript-eslint` from 8.38.0 to 8.39.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.39.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 5.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint
  dependency-version: 9.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.39.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-09 07:29:40 +00:00
dependabot[bot]
1018680572 Bump node from 24.4-alpine to 24.5-alpine
Bumps node from 24.4-alpine to 24.5-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.5-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-09 07:29:14 +00:00
Alejandro Celaya
0dc6d70dd9 Merge pull request #1629 from shlinkio/develop
Release 4.5.0
2025-08-08 09:23:28 +02:00
Alejandro Celaya
fcdb72079d Add v4.5.0 to changelog 2025-08-08 09:21:36 +02:00
Alejandro Celaya
f71b399ab9 Merge pull request #1628 from acelaya-forks/feature/shlink-web-component-0.16.1
Update to shlink-web-component 0.16.1
2025-08-08 09:18:51 +02:00
Alejandro Celaya
2a606c614d Update to shlink-web-component 0.16.1 2025-08-08 09:17:43 +02:00
Alejandro Celaya
c850d2623c Merge pull request #1623 from shlinkio/dependabot/docker/playwright-v1.54.2-noble
Bump playwright from v1.54.1-noble to v1.54.2-noble
2025-08-02 12:52:42 +02:00
Alejandro Celaya
c263d7a74b Merge pull request #1624 from shlinkio/dependabot/npm_and_yarn/shlink-88cbe5ab24
Bump @shlinkio/shlink-js-sdk from 2.2.0 to 2.2.1 in the shlink group
2025-08-02 12:52:33 +02:00
Alejandro Celaya
c4515b8f74 Merge pull request #1625 from shlinkio/dependabot/npm_and_yarn/react-8560841430
Bump the react group with 4 updates
2025-08-02 12:52:22 +02:00
Alejandro Celaya
8cdf1c0f1d Merge pull request #1626 from shlinkio/dependabot/npm_and_yarn/testing-13699b331e
Bump @testing-library/jest-dom from 6.6.3 to 6.6.4 in the testing group
2025-08-02 12:52:02 +02:00
Alejandro Celaya
8b17ffb3db Merge pull request #1627 from shlinkio/dependabot/npm_and_yarn/playwright-1.54.2
Bump playwright from 1.54.1 to 1.54.2
2025-08-02 12:51:53 +02:00
dependabot[bot]
7705b012fe Bump playwright from 1.54.1 to 1.54.2
Bumps [playwright](https://github.com/microsoft/playwright) from 1.54.1 to 1.54.2.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.54.1...v1.54.2)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.54.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 07:44:16 +00:00
dependabot[bot]
c3bffe9993 Bump @testing-library/jest-dom from 6.6.3 to 6.6.4 in the testing group
Bumps the testing group with 1 update: [@testing-library/jest-dom](https://github.com/testing-library/jest-dom).


Updates `@testing-library/jest-dom` from 6.6.3 to 6.6.4
- [Release notes](https://github.com/testing-library/jest-dom/releases)
- [Changelog](https://github.com/testing-library/jest-dom/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/jest-dom/compare/v6.6.3...v6.6.4)

---
updated-dependencies:
- dependency-name: "@testing-library/jest-dom"
  dependency-version: 6.6.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 07:43:50 +00:00
dependabot[bot]
4e3d8bc666 Bump the react group with 4 updates
Bumps the react group with 4 updates: [react](https://github.com/facebook/react/tree/HEAD/packages/react), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `react` from 19.1.0 to 19.1.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react)

Updates `@types/react` from 19.1.8 to 19.1.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 19.1.0 to 19.1.1
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.1/packages/react-dom)

Updates `@types/react-dom` from 19.1.6 to 19.1.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@types/react` from 19.1.8 to 19.1.9
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.1.6 to 19.1.7
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: react-dom
  dependency-version: 19.1.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.1.9
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 07:43:41 +00:00
dependabot[bot]
70f556ab7d Bump @shlinkio/shlink-js-sdk from 2.2.0 to 2.2.1 in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-js-sdk](https://shlink.io).


Updates `@shlinkio/shlink-js-sdk` from 2.2.0 to 2.2.1

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-js-sdk"
  dependency-version: 2.2.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 07:43:17 +00:00
dependabot[bot]
23b0a92539 Bump playwright from v1.54.1-noble to v1.54.2-noble
Bumps playwright from v1.54.1-noble to v1.54.2-noble.

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: v1.54.2-noble
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-02 07:35:38 +00:00
Alejandro Celaya
7d5b5c8ba1 Merge pull request #1622 from acelaya-forks/feature/fa-7
Update to FownAwesome 7
2025-07-28 08:35:44 +02:00
Alejandro Celaya
07b64a4dc0 Update to FownAwesome 7 2025-07-28 08:34:18 +02:00
Alejandro Celaya
29081877fb Merge pull request #1621 from shlinkio/dependabot/npm_and_yarn/react-router-7.7.1
Bump react-router from 7.7.0 to 7.7.1
2025-07-26 18:29:30 +02:00
Alejandro Celaya
b996a2db04 Merge pull request #1619 from shlinkio/dependabot/npm_and_yarn/vite-1a1b7557a5
Bump vite from 7.0.5 to 7.0.6 in the vite group
2025-07-26 18:28:49 +02:00
dependabot[bot]
66ec08d278 Bump vite from 7.0.5 to 7.0.6 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 7.0.5 to 7.0.6
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.0.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.0.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-26 09:42:27 +00:00
Alejandro Celaya
4ba8e42352 Merge pull request #1615 from shlinkio/dependabot/npm_and_yarn/form-data-4.0.4
Bump form-data from 4.0.1 to 4.0.4
2025-07-26 11:42:06 +02:00
Alejandro Celaya
c4f2b6855b Merge pull request #1617 from shlinkio/dependabot/npm_and_yarn/eslint-515d00212f
Bump the eslint group with 3 updates
2025-07-26 11:41:46 +02:00
Alejandro Celaya
a2e29f0379 Merge pull request #1618 from shlinkio/dependabot/npm_and_yarn/shlink-c33ff988a6
Bump @shlinkio/shlink-js-sdk from 2.1.0 to 2.2.0 in the shlink group
2025-07-26 11:41:30 +02:00
Alejandro Celaya
904f529c19 Merge pull request #1620 from shlinkio/dependabot/npm_and_yarn/vite-plugin-pwa-1.0.2
Bump vite-plugin-pwa from 1.0.1 to 1.0.2
2025-07-26 11:41:04 +02:00
dependabot[bot]
8a06f98f45 Bump react-router from 7.7.0 to 7.7.1
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.7.0 to 7.7.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.7.1/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.7.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-26 07:05:19 +00:00
dependabot[bot]
99fcb6db04 Bump vite-plugin-pwa from 1.0.1 to 1.0.2
Bumps [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases)
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-version: 1.0.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-26 07:05:05 +00:00
dependabot[bot]
6928992f8b Bump @shlinkio/shlink-js-sdk from 2.1.0 to 2.2.0 in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-js-sdk](https://shlink.io).


Updates `@shlinkio/shlink-js-sdk` from 2.1.0 to 2.2.0

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-js-sdk"
  dependency-version: 2.2.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-26 07:04:29 +00:00
dependabot[bot]
32ab234adf Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 5.2.0 to 5.2.2
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.2.2/packages/eslint-plugin)

Updates `eslint` from 9.31.0 to 9.32.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.31.0...v9.32.0)

Updates `typescript-eslint` from 8.37.0 to 8.38.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.38.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 5.2.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint
  dependency-version: 9.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.38.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-26 07:04:17 +00:00
dependabot[bot]
9364655114 Bump form-data from 4.0.1 to 4.0.4
---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 4.0.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-22 09:39:22 +00:00
Alejandro Celaya
fb9de5cd64 Merge pull request #1612 from shlinkio/dependabot/npm_and_yarn/eslint-b8665d2163
Bump the eslint group with 2 updates
2025-07-19 11:44:15 +02:00
dependabot[bot]
1fe2e599a5 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 5.1.0 to 5.2.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.2.0/packages/eslint-plugin)

Updates `typescript-eslint` from 8.36.0 to 8.37.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.37.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 5.2.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.37.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-19 09:41:09 +00:00
Alejandro Celaya
024a08ee76 Merge pull request #1613 from shlinkio/dependabot/npm_and_yarn/vite-4c12138422
Bump the vite group with 2 updates
2025-07-19 11:39:55 +02:00
Alejandro Celaya
0eb284ed9c Merge pull request #1614 from shlinkio/dependabot/npm_and_yarn/react-router-7.7.0
Bump react-router from 7.6.3 to 7.7.0
2025-07-19 11:39:45 +02:00
dependabot[bot]
878686f469 Bump react-router from 7.6.3 to 7.7.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.6.3 to 7.7.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.7.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-19 07:19:41 +00:00
dependabot[bot]
db1dd7c07e Bump the vite group with 2 updates
Bumps the vite group with 2 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 4.6.0 to 4.7.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.7.0/packages/plugin-react)

Updates `vite` from 7.0.4 to 7.0.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.0.5/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.7.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
- dependency-name: vite
  dependency-version: 7.0.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-19 07:19:20 +00:00
Alejandro Celaya
8ac5bd97b4 Merge pull request #1609 from shlinkio/dependabot/npm_and_yarn/eslint-11e2cf4d9a
Bump the eslint group with 2 updates
2025-07-12 10:14:09 +02:00
dependabot[bot]
6f5c657264 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.30.1 to 9.31.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.30.1...v9.31.0)

Updates `typescript-eslint` from 8.35.1 to 8.36.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.36.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.36.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-12 08:11:10 +00:00
Alejandro Celaya
91f1df45b0 Merge pull request #1607 from shlinkio/dependabot/docker/playwright-v1.54.1-noble
Bump playwright from v1.53.2-noble to v1.54.1-noble
2025-07-12 10:10:00 +02:00
Alejandro Celaya
3ad884b661 Merge pull request #1608 from shlinkio/dependabot/docker/node-24.4-alpine
Bump node from 24.3-alpine to 24.4-alpine
2025-07-12 10:09:52 +02:00
Alejandro Celaya
7db65635c3 Merge pull request #1610 from shlinkio/dependabot/npm_and_yarn/vite-7be7fd480a
Bump vite from 7.0.2 to 7.0.4 in the vite group
2025-07-12 10:09:39 +02:00
Alejandro Celaya
9e03e8b837 Merge pull request #1611 from shlinkio/dependabot/npm_and_yarn/playwright-1.54.1
Bump playwright from 1.53.2 to 1.54.1
2025-07-12 10:09:31 +02:00
dependabot[bot]
9f8a3edcb3 Bump playwright from 1.53.2 to 1.54.1
Bumps [playwright](https://github.com/microsoft/playwright) from 1.53.2 to 1.54.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.53.2...v1.54.1)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.54.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-12 07:46:54 +00:00
dependabot[bot]
d049da3b20 Bump vite from 7.0.2 to 7.0.4 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 7.0.2 to 7.0.4
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v7.0.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 7.0.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-12 07:46:26 +00:00
dependabot[bot]
694748cda6 Bump node from 24.3-alpine to 24.4-alpine
Bumps node from 24.3-alpine to 24.4-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.4-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-12 07:43:47 +00:00
dependabot[bot]
ef88644e6e Bump playwright from v1.53.2-noble to v1.54.1-noble
Bumps playwright from v1.53.2-noble to v1.54.1-noble.

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: v1.54.1-noble
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-12 07:43:38 +00:00
Alejandro Celaya
98b5640c2c Merge pull request #1600 from shlinkio/dependabot/npm_and_yarn/vite-45536e7fa6
Bump the vite group with 2 updates
2025-07-05 18:30:35 +02:00
dependabot[bot]
e921bf5276 Bump the vite group with 2 updates
Bumps the vite group with 2 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 4.5.2 to 4.6.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.6.0/packages/plugin-react)

Updates `vite` from 6.3.5 to 7.0.0
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@7.0.0/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.6.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
- dependency-name: vite
  dependency-version: 7.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-05 16:27:41 +00:00
Alejandro Celaya
8d1c39255f Merge pull request #1603 from shlinkio/dependabot/docker/playwright-v1.53.2-noble
Bump playwright from v1.53.1-noble to v1.53.2-noble
2025-07-05 18:27:03 +02:00
Alejandro Celaya
9dfbec9b1a Merge pull request #1604 from shlinkio/dependabot/npm_and_yarn/eslint-d82549b67e
Bump the eslint group with 3 updates
2025-07-05 18:26:50 +02:00
Alejandro Celaya
7a0f2f6300 Merge pull request #1605 from shlinkio/dependabot/npm_and_yarn/playwright-1.53.2
Bump playwright from 1.53.1 to 1.53.2
2025-07-05 18:26:42 +02:00
Alejandro Celaya
5d5c9e9c22 Merge pull request #1606 from shlinkio/dependabot/npm_and_yarn/vite-plugin-pwa-1.0.1
Bump vite-plugin-pwa from 1.0.0 to 1.0.1
2025-07-05 18:26:16 +02:00
dependabot[bot]
d9f5663ead Bump vite-plugin-pwa from 1.0.0 to 1.0.1
Bumps [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases)
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-version: 1.0.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-05 07:58:20 +00:00
dependabot[bot]
20c35af7e0 Bump playwright from 1.53.1 to 1.53.2
Bumps [playwright](https://github.com/microsoft/playwright) from 1.53.1 to 1.53.2.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.53.1...v1.53.2)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.53.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-05 07:58:09 +00:00
dependabot[bot]
b879db6447 Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 5.0.0 to 5.1.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.1.0/packages/eslint-plugin)

Updates `eslint` from 9.30.0 to 9.30.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.30.0...v9.30.1)

Updates `typescript-eslint` from 8.35.0 to 8.35.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.35.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 5.1.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint
  dependency-version: 9.30.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.35.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-05 07:57:30 +00:00
dependabot[bot]
153d59bf27 Bump playwright from v1.53.1-noble to v1.53.2-noble
Bumps playwright from v1.53.1-noble to v1.53.2-noble.

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: v1.53.2-noble
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-05 07:27:05 +00:00
Alejandro Celaya
9e889465fb Merge pull request #1601 from shlinkio/dependabot/npm_and_yarn/tailwindcss-a13b31f115
Bump the tailwindcss group with 2 updates
2025-06-28 10:27:17 +02:00
dependabot[bot]
31984791ab Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.10 to 4.1.11
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.11/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.10 to 4.1.11
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.11/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.11
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-28 08:26:15 +00:00
Alejandro Celaya
892a7698eb Merge pull request #1598 from shlinkio/dependabot/npm_and_yarn/eslint-6fb493da14
Bump the eslint group with 3 updates
2025-06-28 10:25:12 +02:00
Alejandro Celaya
7f4ff8adbb Merge pull request #1599 from shlinkio/dependabot/npm_and_yarn/shlink-31980fd76b
Bump @shlinkio/shlink-frontend-kit from 1.0.0 to 1.0.1 in the shlink group
2025-06-28 10:25:03 +02:00
Alejandro Celaya
493d3d5dee Merge pull request #1602 from shlinkio/dependabot/npm_and_yarn/react-router-7.6.3
Bump react-router from 7.6.2 to 7.6.3
2025-06-28 10:24:51 +02:00
dependabot[bot]
febd100f96 Bump react-router from 7.6.2 to 7.6.3
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.6.2 to 7.6.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.6.3/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.6.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-28 07:55:45 +00:00
dependabot[bot]
21a9c39f12 Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 1.0.0 to 1.0.1
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v1.0.0...v1.0.1)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-version: 1.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-28 07:54:39 +00:00
dependabot[bot]
5078129ac1 Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 4.4.1 to 5.0.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.0.0/packages/eslint-plugin)

Updates `eslint` from 9.29.0 to 9.30.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.29.0...v9.30.0)

Updates `typescript-eslint` from 8.34.1 to 8.35.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.35.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 5.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: eslint
- dependency-name: eslint
  dependency-version: 9.30.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.35.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-28 07:54:25 +00:00
Alejandro Celaya
9b6bacc0c2 Merge pull request #1596 from shlinkio/dependabot/docker/node-24.3-alpine
Bump node from 24.2-alpine to 24.3-alpine
2025-06-28 09:42:18 +02:00
Alejandro Celaya
93b22227ef Merge pull request #1597 from shlinkio/dependabot/docker/nginxinc/nginx-unprivileged-1.29-alpine
Bump nginxinc/nginx-unprivileged from 1.27-alpine to 1.29-alpine
2025-06-28 09:42:04 +02:00
dependabot[bot]
402b10ca98 Bump nginxinc/nginx-unprivileged from 1.27-alpine to 1.29-alpine
Bumps nginxinc/nginx-unprivileged from 1.27-alpine to 1.29-alpine.

---
updated-dependencies:
- dependency-name: nginxinc/nginx-unprivileged
  dependency-version: 1.29-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-28 07:28:07 +00:00
dependabot[bot]
23541606ca Bump node from 24.2-alpine to 24.3-alpine
Bumps node from 24.2-alpine to 24.3-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.3-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-28 07:27:56 +00:00
Alejandro Celaya
4eab3b6935 Merge pull request #1594 from shlinkio/develop
Release 4.4.1
2025-06-23 10:10:47 +02:00
Alejandro Celaya
ea420936fa Forward questions to the global discussions repo 2025-06-23 10:08:37 +02:00
Alejandro Celaya
979f002f0c Merge pull request #1592 from acelaya-forks/feature/create-dist-file-improvements
Improve create-dist-file.mjs script
2025-06-22 10:44:37 +02:00
Alejandro Celaya
54fe38a92b Improve create-dist-file.mjs script 2025-06-22 10:34:25 +02:00
Alejandro Celaya
1e2618d3b8 Merge pull request #1588 from shlinkio/dependabot/npm_and_yarn/eslint-036d341c50
Bump eslint-plugin-import from 2.31.0 to 2.32.0 in the eslint group
2025-06-21 10:27:05 +02:00
Alejandro Celaya
6b0fc80f1e Merge pull request #1589 from shlinkio/dependabot/npm_and_yarn/vitest-b489ec2feb
Bump the vitest group with 3 updates
2025-06-21 10:26:51 +02:00
Alejandro Celaya
d6d0539fa7 Merge pull request #1590 from shlinkio/dependabot/npm_and_yarn/playwright-1.53.1
Bump playwright from 1.53.0 to 1.53.1
2025-06-21 10:26:01 +02:00
dependabot[bot]
81742cbbaf Bump playwright from 1.53.0 to 1.53.1
Bumps [playwright](https://github.com/microsoft/playwright) from 1.53.0 to 1.53.1.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.53.0...v1.53.1)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.53.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-21 07:50:52 +00:00
dependabot[bot]
300cd50310 Bump the vitest group with 3 updates
Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser` from 3.2.3 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/browser)

Updates `@vitest/coverage-v8` from 3.2.3 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/coverage-v8)

Updates `vitest` from 3.2.3 to 3.2.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.4/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 3.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.2.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-21 07:50:31 +00:00
dependabot[bot]
d227a5db78 Bump eslint-plugin-import from 2.31.0 to 2.32.0 in the eslint group
Bumps the eslint group with 1 update: [eslint-plugin-import](https://github.com/import-js/eslint-plugin-import).


Updates `eslint-plugin-import` from 2.31.0 to 2.32.0
- [Release notes](https://github.com/import-js/eslint-plugin-import/releases)
- [Changelog](https://github.com/import-js/eslint-plugin-import/blob/main/CHANGELOG.md)
- [Commits](https://github.com/import-js/eslint-plugin-import/compare/v2.31.0...v2.32.0)

---
updated-dependencies:
- dependency-name: eslint-plugin-import
  dependency-version: 2.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-21 07:49:50 +00:00
Alejandro Celaya
4f2dd9d240 Merge pull request #1587 from shlinkio/dependabot/docker/playwright-v1.53.1-noble
Bump playwright from v1.53.0-noble to v1.53.1-noble
2025-06-21 09:29:52 +02:00
dependabot[bot]
9f750f7f6b Bump playwright from v1.53.0-noble to v1.53.1-noble
Bumps playwright from v1.53.0-noble to v1.53.1-noble.

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: v1.53.1-noble
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-21 07:03:04 +00:00
Alejandro Celaya
e5a1563f39 Merge pull request #1585 from shlinkio/dependabot/npm_and_yarn/eslint-6d0511fd8e
Bump typescript-eslint from 8.34.0 to 8.34.1 in the eslint group
2025-06-17 08:27:05 +01:00
Alejandro Celaya
bc3634e181 Merge pull request #1586 from acelaya-forks/feature/new-brand-icons
Update icons and favicons to use the new brand color
2025-06-17 08:15:57 +01:00
Alejandro Celaya
3343fba861 Update icons and favicons to use the new brand color 2025-06-17 09:14:40 +02:00
dependabot[bot]
eff4712f69 Bump typescript-eslint from 8.34.0 to 8.34.1 in the eslint group
Bumps the eslint group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.34.0 to 8.34.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.34.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.34.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-17 07:10:46 +00:00
Alejandro Celaya
2788264265 Merge pull request #1584 from acelaya-forks/feature/remove-bootstrap
Remove bootstrap and replace it with tailwind
2025-06-17 08:09:25 +01:00
Alejandro Celaya
6fe52143a8 No longer silence sass warnings 2025-06-17 09:05:12 +02:00
Alejandro Celaya
058b38528f Add h-full to root element 2025-06-17 09:01:23 +02:00
Alejandro Celaya
d1619b3723 Update changelog 2025-06-17 08:58:42 +02:00
Alejandro Celaya
0bdf5f206e Update to latest shlink-frontend-kit and shlink-web-component 2025-06-17 08:56:21 +02:00
Alejandro Celaya
34aca8ff3f Merge pull request #1583 from acelaya-forks/feature/tailwind-nabvar
Replace reactstrap nav bar with tailwind-based one
2025-06-16 10:20:57 +01:00
Alejandro Celaya
b4db7fdf11 Remove direct dependency in reactstrap 2025-06-16 11:18:53 +02:00
Alejandro Celaya
d10d7fd96d Replace reactstrap nav bar with tailwind-based one 2025-06-16 11:18:03 +02:00
Alejandro Celaya
9c0c2fc3f9 Merge pull request #1576 from shlinkio/dependabot/npm_and_yarn/vite-fb2dbcfb1d
Bump @vitejs/plugin-react from 4.5.1 to 4.5.2 in the vite group
2025-06-14 09:55:28 +01:00
Alejandro Celaya
913b3c5fc1 Merge pull request #1580 from shlinkio/dependabot/npm_and_yarn/sass-1.89.2
Bump sass from 1.89.1 to 1.89.2
2025-06-14 09:55:20 +01:00
dependabot[bot]
6dd3fd275a Bump @vitejs/plugin-react from 4.5.1 to 4.5.2 in the vite group
Bumps the vite group with 1 update: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react).


Updates `@vitejs/plugin-react` from 4.5.1 to 4.5.2
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.5.2/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.5.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 08:49:15 +00:00
dependabot[bot]
2b05016586 Bump sass from 1.89.1 to 1.89.2
Bumps [sass](https://github.com/sass/dart-sass) from 1.89.1 to 1.89.2.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.1...1.89.2)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 08:48:39 +00:00
Alejandro Celaya
52cc943185 Merge pull request #1574 from shlinkio/dependabot/npm_and_yarn/eslint-dc67d0652c
Bump the eslint group with 2 updates
2025-06-14 09:48:19 +01:00
Alejandro Celaya
edd6f7e807 Merge pull request #1575 from shlinkio/dependabot/npm_and_yarn/react-27795ad889
Bump @types/react from 19.1.6 to 19.1.8 in the react group
2025-06-14 09:48:02 +01:00
Alejandro Celaya
d13e6fb0cc Merge pull request #1577 from shlinkio/dependabot/npm_and_yarn/vitest-dfc256a57c
Bump the vitest group with 3 updates
2025-06-14 09:47:52 +01:00
Alejandro Celaya
2208e9b562 Merge pull request #1578 from shlinkio/dependabot/npm_and_yarn/tailwindcss-ffe633306e
Bump the tailwindcss group with 2 updates
2025-06-14 09:47:29 +01:00
Alejandro Celaya
dadcdb22f5 Merge pull request #1579 from shlinkio/dependabot/npm_and_yarn/playwright-1.53.0
Bump playwright from 1.52.0 to 1.53.0
2025-06-14 09:47:20 +01:00
Alejandro Celaya
4246b85b43 Merge pull request #1581 from shlinkio/dependabot/docker/node-24.2-alpine
Bump node from 24.1-alpine to 24.2-alpine
2025-06-14 09:47:05 +01:00
Alejandro Celaya
4d259e50f3 Merge pull request #1582 from shlinkio/dependabot/docker/playwright-v1.53.0-noble
Bump playwright from v1.52.0-noble to v1.53.0-noble
2025-06-14 09:46:56 +01:00
dependabot[bot]
e5fff0bc08 Bump playwright from v1.52.0-noble to v1.53.0-noble
Bumps playwright from v1.52.0-noble to v1.53.0-noble.

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: v1.53.0-noble
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:54:39 +00:00
dependabot[bot]
7a3aab2482 Bump node from 24.1-alpine to 24.2-alpine
Bumps node from 24.1-alpine to 24.2-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.2-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:54:27 +00:00
dependabot[bot]
455ac9a275 Bump playwright from 1.52.0 to 1.53.0
Bumps [playwright](https://github.com/microsoft/playwright) from 1.52.0 to 1.53.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.52.0...v1.53.0)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.53.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:44:57 +00:00
dependabot[bot]
b70cebb3f2 Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.8 to 4.1.10
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.10/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.8 to 4.1.10
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.10/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.10
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:44:41 +00:00
dependabot[bot]
e3b24eea78 Bump the vitest group with 3 updates
Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser` from 3.2.2 to 3.2.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.3/packages/browser)

Updates `@vitest/coverage-v8` from 3.2.2 to 3.2.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.3/packages/coverage-v8)

Updates `vitest` from 3.2.2 to 3.2.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.3/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 3.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.2.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:44:20 +00:00
dependabot[bot]
a96a48ed19 Bump @types/react from 19.1.6 to 19.1.8 in the react group
Bumps the react group with 1 update: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.1.6 to 19.1.8
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:43:39 +00:00
dependabot[bot]
6114763e39 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.28.0 to 9.29.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.28.0...v9.29.0)

Updates `typescript-eslint` from 8.33.1 to 8.34.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.34.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.34.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-14 07:43:20 +00:00
Alejandro Celaya
575f86cc34 Merge pull request #1573 from acelaya-forks/feature/update-frontend-kit
Update shlink frontend dependencies
2025-06-11 08:13:10 +01:00
Alejandro Celaya
93cf8b1258 Update to shlink-web-component 0.14.2 2025-06-11 08:57:32 +02:00
Alejandro Celaya
76b7523d4a Migrate ManageServersRowDropdown to tailwind 2025-06-11 08:41:40 +02:00
Alejandro Celaya
c2c1037c01 Merge pull request #1572 from acelaya-forks/feature/tooltips
Migrate tooltips from reactstrap to shlink-frontend-kit
2025-06-08 11:57:46 +01:00
Alejandro Celaya
d3feee301e Migrate tooltips from reactstrap to shlink-frontend-kit 2025-06-08 12:54:54 +02:00
Alejandro Celaya
531a61a57b Merge pull request #1568 from shlinkio/dependabot/npm_and_yarn/vite-b1a57d325c
Bump @vitejs/plugin-react from 4.5.0 to 4.5.1 in the vite group
2025-06-07 09:57:20 +01:00
dependabot[bot]
af252846f7 Bump @vitejs/plugin-react from 4.5.0 to 4.5.1 in the vite group
Bumps the vite group with 1 update: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react).


Updates `@vitejs/plugin-react` from 4.5.0 to 4.5.1
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.5.1/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.5.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 08:52:57 +00:00
Alejandro Celaya
a94fa74a12 Merge pull request #1565 from shlinkio/dependabot/npm_and_yarn/eslint-45bfa033f9
Bump the eslint group with 2 updates
2025-06-07 09:52:34 +01:00
Alejandro Celaya
3e24c3b61b Merge pull request #1566 from shlinkio/dependabot/npm_and_yarn/shlink-6551b9de76
Bump @shlinkio/shlink-frontend-kit from 0.9.7 to 0.9.8 in the shlink group
2025-06-07 09:52:26 +01:00
Alejandro Celaya
581e809fd2 Merge pull request #1567 from shlinkio/dependabot/npm_and_yarn/react-b81c79116d
Bump @types/react-dom from 19.1.5 to 19.1.6 in the react group
2025-06-07 09:52:13 +01:00
Alejandro Celaya
e2ceb52c75 Merge pull request #1569 from shlinkio/dependabot/npm_and_yarn/vitest-9228f3e206
Bump the vitest group with 3 updates
2025-06-07 09:51:49 +01:00
Alejandro Celaya
f975a71230 Merge pull request #1570 from shlinkio/dependabot/npm_and_yarn/react-router-7.6.2
Bump react-router from 7.6.1 to 7.6.2
2025-06-07 09:51:41 +01:00
dependabot[bot]
03df998b86 Bump react-router from 7.6.1 to 7.6.2
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.6.1 to 7.6.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/7.6.2/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.6.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 07:53:36 +00:00
dependabot[bot]
b758781407 Bump the vitest group with 3 updates
Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser` from 3.1.4 to 3.2.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.2/packages/browser)

Updates `@vitest/coverage-v8` from 3.1.4 to 3.2.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.2/packages/coverage-v8)

Updates `vitest` from 3.1.4 to 3.2.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.2.2/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 3.2.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.2.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.2.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 07:53:12 +00:00
dependabot[bot]
8dec3a5277 Bump @types/react-dom from 19.1.5 to 19.1.6 in the react group
Bumps the react group with 1 update: [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `@types/react-dom` from 19.1.5 to 19.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 07:52:35 +00:00
dependabot[bot]
191d6af4bd Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 0.9.7 to 0.9.8
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.9.7...v0.9.8)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-version: 0.9.8
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 07:52:23 +00:00
dependabot[bot]
543b0a5a80 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 4.4.0 to 4.4.1
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v4.4.1/packages/eslint-plugin)

Updates `typescript-eslint` from 8.33.0 to 8.33.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.33.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 4.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.33.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-07 07:52:07 +00:00
Alejandro Celaya
b86a644dcd Merge pull request #1564 from acelaya-forks/feature/update-web-component
Update to latest shlink-web-component
2025-06-01 10:12:30 +01:00
Alejandro Celaya
e7a3ec3ee2 Update to latest shlink-web-component 2025-06-01 11:11:08 +02:00
Alejandro Celaya
1f23be963a Merge pull request #1557 from shlinkio/dependabot/docker/node-24.1-alpine
Bump node from 24.0-alpine to 24.1-alpine
2025-05-31 10:00:14 +01:00
Alejandro Celaya
726050e777 Merge pull request #1558 from shlinkio/dependabot/npm_and_yarn/eslint-d6f577cde3
Bump the eslint group with 2 updates
2025-05-31 10:00:04 +01:00
Alejandro Celaya
06af621e7c Merge pull request #1559 from shlinkio/dependabot/npm_and_yarn/shlink-0d5b623118
Bump @shlinkio/shlink-frontend-kit from 0.9.3 to 0.9.5 in the shlink group
2025-05-31 09:59:54 +01:00
Alejandro Celaya
30e67151fe Merge pull request #1560 from shlinkio/dependabot/npm_and_yarn/react-af945e238e
Bump @types/react from 19.1.5 to 19.1.6 in the react group
2025-05-31 09:59:45 +01:00
Alejandro Celaya
0ba34cc8eb Merge pull request #1561 from shlinkio/dependabot/npm_and_yarn/tailwindcss-9c78735e91
Bump the tailwindcss group with 2 updates
2025-05-31 09:59:12 +01:00
Alejandro Celaya
7a5ae2f19e Merge pull request #1562 from shlinkio/dependabot/npm_and_yarn/react-router-7.6.1
Bump react-router from 7.6.0 to 7.6.1
2025-05-31 09:59:03 +01:00
Alejandro Celaya
de27e453c3 Merge pull request #1563 from shlinkio/dependabot/npm_and_yarn/sass-1.89.1
Bump sass from 1.89.0 to 1.89.1
2025-05-31 09:58:53 +01:00
dependabot[bot]
b913a14105 Bump sass from 1.89.0 to 1.89.1
Bumps [sass](https://github.com/sass/dart-sass) from 1.89.0 to 1.89.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.89.0...1.89.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:58:50 +00:00
dependabot[bot]
2bf0bc8334 Bump react-router from 7.6.0 to 7.6.1
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.6.0 to 7.6.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.6.1/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.6.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:58:40 +00:00
dependabot[bot]
b5529d3a8c Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.7 to 4.1.8
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.8/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.7 to 4.1.8
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.8/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.8
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:58:23 +00:00
dependabot[bot]
b5a091861d Bump @types/react from 19.1.5 to 19.1.6 in the react group
Bumps the react group with 1 update: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.1.5 to 19.1.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:57:53 +00:00
dependabot[bot]
931f980e16 Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 0.9.3 to 0.9.5
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.9.3...v0.9.5)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-version: 0.9.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:57:40 +00:00
dependabot[bot]
5f091eada1 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.27.0 to 9.28.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.27.0...v9.28.0)

Updates `typescript-eslint` from 8.32.1 to 8.33.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.33.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.28.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.33.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:57:25 +00:00
dependabot[bot]
bd1a16a8f8 Bump node from 24.0-alpine to 24.1-alpine
Bumps node from 24.0-alpine to 24.1-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.1-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-31 07:36:05 +00:00
Alejandro Celaya
6f8669cec7 Merge pull request #1555 from shlinkio/dependabot/npm_and_yarn/vitest-6ef2231f4f
Bump the vitest group with 3 updates
2025-05-24 08:52:37 +01:00
dependabot[bot]
7d52ae3e7d Bump the vitest group with 3 updates
Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.4/packages/browser)

Updates `@vitest/coverage-v8` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.4/packages/coverage-v8)

Updates `vitest` from 3.1.3 to 3.1.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.4/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 3.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-24 07:51:11 +00:00
Alejandro Celaya
3e194246ab Merge pull request #1552 from shlinkio/dependabot/npm_and_yarn/eslint-42c7ae0b2e
Bump @stylistic/eslint-plugin from 4.2.0 to 4.4.0 in the eslint group
2025-05-24 08:50:27 +01:00
Alejandro Celaya
cce28116a8 Merge pull request #1554 from shlinkio/dependabot/npm_and_yarn/vite-7842cbb06b
Bump @vitejs/plugin-react from 4.4.1 to 4.5.0 in the vite group
2025-05-24 08:49:52 +01:00
Alejandro Celaya
90125d51f2 Merge pull request #1553 from shlinkio/dependabot/npm_and_yarn/react-1a76b85e01
Bump @types/react from 19.1.4 to 19.1.5 in the react group
2025-05-24 08:49:44 +01:00
dependabot[bot]
dc670b8693 Bump @vitejs/plugin-react from 4.4.1 to 4.5.0 in the vite group
Bumps the vite group with 1 update: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react).


Updates `@vitejs/plugin-react` from 4.4.1 to 4.5.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.5.0/packages/plugin-react)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-24 07:47:13 +00:00
dependabot[bot]
3f8a33e77c Bump @types/react from 19.1.4 to 19.1.5 in the react group
Bumps the react group with 1 update: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.1.4 to 19.1.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-24 07:46:57 +00:00
dependabot[bot]
3763a1541a Bump @stylistic/eslint-plugin from 4.2.0 to 4.4.0 in the eslint group
Bumps the eslint group with 1 update: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin).


Updates `@stylistic/eslint-plugin` from 4.2.0 to 4.4.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v4.4.0/packages/eslint-plugin)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-version: 4.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-24 07:46:38 +00:00
Alejandro Celaya
4bd61d1f80 Merge pull request #1550 from shlinkio/dependabot/npm_and_yarn/sass-1.89.0
Bump sass from 1.87.0 to 1.89.0
2025-05-17 09:30:52 +02:00
Alejandro Celaya
713c6fc7d9 Merge pull request #1547 from shlinkio/dependabot/npm_and_yarn/eslint-3f7a24e910
Bump the eslint group with 2 updates
2025-05-17 09:30:36 +02:00
Alejandro Celaya
b5efcda25e Merge pull request #1548 from shlinkio/dependabot/npm_and_yarn/react-30252354f8
Bump the react group with 2 updates
2025-05-17 09:30:26 +02:00
Alejandro Celaya
12d7e76731 Merge pull request #1549 from shlinkio/dependabot/npm_and_yarn/tailwindcss-0e665b637f
Bump the tailwindcss group with 2 updates
2025-05-17 09:30:11 +02:00
Alejandro Celaya
249c948d11 Merge pull request #1551 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.8.2
Bump @reduxjs/toolkit from 2.8.1 to 2.8.2
2025-05-17 09:30:01 +02:00
dependabot[bot]
b8d0b1bd2a Bump @reduxjs/toolkit from 2.8.1 to 2.8.2
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.8.1 to 2.8.2.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.8.1...v2.8.2)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.8.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 07:25:26 +00:00
dependabot[bot]
77b5c93652 Bump sass from 1.87.0 to 1.89.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.87.0 to 1.89.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.87.0...1.89.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.89.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 07:25:15 +00:00
dependabot[bot]
137be6962c Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.7/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.6 to 4.1.7
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.7/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.7
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 07:25:07 +00:00
dependabot[bot]
357406d2a4 Bump the react group with 2 updates
Bumps the react group with 2 updates: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `@types/react` from 19.1.3 to 19.1.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 19.1.3 to 19.1.5
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 07:24:36 +00:00
dependabot[bot]
4ba98ede77 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.26.0 to 9.27.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.26.0...v9.27.0)

Updates `typescript-eslint` from 8.32.0 to 8.32.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.27.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.32.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-17 07:24:08 +00:00
Alejandro Celaya
89f250bfb7 Merge pull request #1542 from shlinkio/dependabot/npm_and_yarn/vite-44135b917d
Bump vite from 6.3.4 to 6.3.5 in the vite group
2025-05-10 10:05:51 +02:00
dependabot[bot]
425c70bfd8 Bump vite from 6.3.4 to 6.3.5 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.3.4 to 6.3.5
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 08:01:19 +00:00
Alejandro Celaya
74ffd63828 Merge pull request #1546 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.8.1
Bump @reduxjs/toolkit from 2.7.0 to 2.8.1
2025-05-10 10:00:42 +02:00
Alejandro Celaya
f8a2f81ce4 Merge pull request #1545 from shlinkio/dependabot/npm_and_yarn/react-router-7.6.0
Bump react-router from 7.5.3 to 7.6.0
2025-05-10 10:00:25 +02:00
Alejandro Celaya
e8f05783a9 Merge pull request #1544 from shlinkio/dependabot/npm_and_yarn/tailwindcss-704952fff8
Bump the tailwindcss group with 2 updates
2025-05-10 10:00:14 +02:00
Alejandro Celaya
ae0f2282de Merge pull request #1543 from shlinkio/dependabot/npm_and_yarn/vitest-c3e56e44ba
Bump the vitest group with 3 updates
2025-05-10 10:00:05 +02:00
Alejandro Celaya
cc0091f753 Merge pull request #1541 from shlinkio/dependabot/npm_and_yarn/react-f6d7d4600c
Bump @types/react from 19.1.2 to 19.1.3 in the react group
2025-05-10 09:59:49 +02:00
Alejandro Celaya
1e84db4a47 Merge pull request #1540 from shlinkio/dependabot/npm_and_yarn/eslint-8bb418b555
Bump typescript-eslint from 8.31.1 to 8.32.0 in the eslint group
2025-05-10 09:59:34 +02:00
dependabot[bot]
8f59da1ce7 Bump @reduxjs/toolkit from 2.7.0 to 2.8.1
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.7.0 to 2.8.1.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.7.0...v2.8.1)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.8.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:59:19 +00:00
dependabot[bot]
e46751844c Bump react-router from 7.5.3 to 7.6.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.5.3 to 7.6.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.6.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:59:08 +00:00
dependabot[bot]
d131ac5d03 Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.5 to 4.1.6
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.6/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.5 to 4.1.6
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.6/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.6
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:58:49 +00:00
dependabot[bot]
878c82e8f0 Bump the vitest group with 3 updates
Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.3/packages/browser)

Updates `@vitest/coverage-v8` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.3/packages/coverage-v8)

Updates `vitest` from 3.1.2 to 3.1.3
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.3/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 3.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:58:28 +00:00
dependabot[bot]
69fed72a81 Bump @types/react from 19.1.2 to 19.1.3 in the react group
Bumps the react group with 1 update: [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react).


Updates `@types/react` from 19.1.2 to 19.1.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

---
updated-dependencies:
- dependency-name: "@types/react"
  dependency-version: 19.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:57:46 +00:00
dependabot[bot]
bda6388100 Bump typescript-eslint from 8.31.1 to 8.32.0 in the eslint group
Bumps the eslint group with 1 update: [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `typescript-eslint` from 8.31.1 to 8.32.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.32.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: typescript-eslint
  dependency-version: 8.32.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:57:25 +00:00
Alejandro Celaya
1d6a9ec563 Merge pull request #1539 from shlinkio/dependabot/docker/node-24.0-alpine
Bump node from 23.11-alpine to 24.0-alpine
2025-05-10 09:34:46 +02:00
dependabot[bot]
56517b9840 Bump node from 23.11-alpine to 24.0-alpine
Bumps node from 23.11-alpine to 24.0-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 24.0-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-10 07:24:11 +00:00
Alejandro Celaya
03a0945a29 Merge pull request #1538 from acelaya-forks/feature/brand-colors
Add initial support to new light mode brand color
2025-05-09 09:07:31 +02:00
Alejandro Celaya
023a0ca824 Add initial support to new brand color 2025-05-09 09:05:35 +02:00
Alejandro Celaya
f6a0910c40 Define docker compose working dir via working_dir option 2025-05-09 08:22:08 +02:00
Alejandro Celaya
869708469d Merge pull request #1532 from shlinkio/dependabot/npm_and_yarn/vite-6.3.4
Bump vite from 6.3.3 to 6.3.4
2025-05-03 09:56:38 +02:00
dependabot[bot]
f51c8e7643 Bump vite from 6.3.3 to 6.3.4
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.3.3 to 6.3.4.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.4/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.3.4
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-03 07:33:15 +00:00
Alejandro Celaya
256d886930 Merge pull request #1533 from shlinkio/dependabot/npm_and_yarn/eslint-3d8ca34fb1
Bump the eslint group with 2 updates
2025-05-03 09:32:37 +02:00
Alejandro Celaya
e74a4b5320 Merge pull request #1534 from shlinkio/dependabot/npm_and_yarn/shlink-ed0302b97b
Bump @shlinkio/shlink-frontend-kit from 0.8.12 to 0.8.13 in the shlink group
2025-05-03 09:32:16 +02:00
Alejandro Celaya
751ffdab61 Merge pull request #1535 from shlinkio/dependabot/npm_and_yarn/react-1ef9474d5e
Bump @types/react-dom from 19.1.2 to 19.1.3 in the react group
2025-05-03 09:32:08 +02:00
Alejandro Celaya
fec1fc3c76 Merge pull request #1536 from shlinkio/dependabot/npm_and_yarn/tailwindcss-091f9d248b
Bump the tailwindcss group with 2 updates
2025-05-03 09:31:50 +02:00
Alejandro Celaya
35d27ffb04 Merge pull request #1537 from shlinkio/dependabot/npm_and_yarn/react-router-7.5.3
Bump react-router from 7.5.2 to 7.5.3
2025-05-03 09:31:40 +02:00
dependabot[bot]
3ba6b58b9e Bump react-router from 7.5.2 to 7.5.3
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.5.2 to 7.5.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.5.3/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.5.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-03 07:21:41 +00:00
dependabot[bot]
8ce81771b2 Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.4 to 4.1.5
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.5/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.4 to 4.1.5
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.5/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-03 07:21:27 +00:00
dependabot[bot]
17c1ff1c4c Bump @types/react-dom from 19.1.2 to 19.1.3 in the react group
Bumps the react group with 1 update: [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `@types/react-dom` from 19.1.2 to 19.1.3
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-03 07:20:45 +00:00
dependabot[bot]
9a2f83b2b5 Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 0.8.12 to 0.8.13
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.8.12...v0.8.13)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-version: 0.8.13
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-03 07:20:31 +00:00
dependabot[bot]
dfd9a3efb8 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.25.1 to 9.26.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.25.1...v9.26.0)

Updates `typescript-eslint` from 8.31.0 to 8.31.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.26.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.31.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-05-03 07:20:17 +00:00
Alejandro Celaya
5e630368e6 Merge pull request #1529 from shlinkio/dependabot/npm_and_yarn/vite-150fe9828a
Bump the vite group with 2 updates
2025-04-26 09:26:11 +02:00
dependabot[bot]
5327160774 Bump the vite group with 2 updates
Bumps the vite group with 2 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 4.4.0 to 4.4.1
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.4.1/packages/plugin-react)

Updates `vite` from 6.3.2 to 6.3.3
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.3/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
- dependency-name: vite
  dependency-version: 6.3.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 07:23:10 +00:00
Alejandro Celaya
b092c86658 Merge pull request #1531 from shlinkio/dependabot/npm_and_yarn/sass-1.87.0
Bump sass from 1.86.3 to 1.87.0
2025-04-26 09:22:18 +02:00
Alejandro Celaya
2988b24fac Merge pull request #1530 from shlinkio/dependabot/npm_and_yarn/vitest-d99fb36e21
Bump the vitest group with 3 updates
2025-04-26 09:22:11 +02:00
Alejandro Celaya
b49b0ebf16 Merge pull request #1528 from shlinkio/dependabot/npm_and_yarn/react-09a6430e94
Bump the react group with 4 updates
2025-04-26 09:21:58 +02:00
Alejandro Celaya
45f972e351 Merge pull request #1527 from shlinkio/dependabot/npm_and_yarn/eslint-b2f53f3be0
Bump the eslint group with 3 updates
2025-04-26 09:21:50 +02:00
dependabot[bot]
a824349ad2 Bump sass from 1.86.3 to 1.87.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.86.3 to 1.87.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.3...1.87.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.87.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 07:19:42 +00:00
dependabot[bot]
2fd933fc32 Bump the vitest group with 3 updates
Bumps the vitest group with 3 updates: [@vitest/browser](https://github.com/vitest-dev/vitest/tree/HEAD/packages/browser), [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/browser` from 3.1.1 to 3.1.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.2/packages/browser)

Updates `@vitest/coverage-v8` from 3.1.1 to 3.1.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.2/packages/coverage-v8)

Updates `vitest` from 3.1.1 to 3.1.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.2/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/browser"
  dependency-version: 3.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.1.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 07:19:19 +00:00
dependabot[bot]
b48cf19acf Bump the react group with 4 updates
Bumps the react group with 4 updates: [react](https://github.com/facebook/react/tree/HEAD/packages/react), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `react` from 18.3.1 to 19.1.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.0/packages/react)

Updates `@types/react` from 18.3.12 to 19.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 18.3.1 to 19.1.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.1.0/packages/react-dom)

Updates `@types/react-dom` from 18.3.1 to 19.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@types/react` from 18.3.12 to 19.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 18.3.1 to 19.1.2
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react
  dependency-version: 19.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: react-dom
  dependency-version: 19.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react"
  dependency-version: 19.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-version: 19.1.2
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 07:18:34 +00:00
dependabot[bot]
669a11186b Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [eslint](https://github.com/eslint/eslint), [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/HEAD/compiler/packages/eslint-plugin-react-compiler) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.25.0 to 9.25.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.25.0...v9.25.1)

Updates `eslint-plugin-react-compiler` from 19.0.0-beta-ebf51a3-20250411 to 19.0.0-beta-714736e-20250131
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/compiler/packages/eslint-plugin-react-compiler)

Updates `typescript-eslint` from 8.30.1 to 8.31.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.31.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.25.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint-plugin-react-compiler
  dependency-version: 19.0.0-beta-714736e-20250131
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.31.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-26 07:18:04 +00:00
Alejandro Celaya
355cdd2550 Merge pull request #1526 from shlinkio/dependabot/npm_and_yarn/react-router-7.5.2
Bump react-router from 7.5.1 to 7.5.2
2025-04-26 09:17:39 +02:00
dependabot[bot]
34a08e461f Bump react-router from 7.5.1 to 7.5.2
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.5.1 to 7.5.2.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.5.2/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.5.2
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-25 00:59:02 +00:00
Alejandro Celaya
b747e63d51 Merge pull request #1524 from shlinkio/develop
Release 4.4.0
2025-04-20 17:07:11 +02:00
Alejandro Celaya
557cd4f7e2 Merge pull request #1523 from acelaya-forks/feature/server-credentials
Add advanced options to servers
2025-04-20 17:02:24 +02:00
Alejandro Celaya
b0189c6457 Update changelog 2025-04-20 13:27:57 +02:00
Alejandro Celaya
8da630e149 Support SHLINK_SERVER_FORWARD_CREDENTIALS in docker image 2025-04-20 13:22:35 +02:00
Alejandro Celaya
d65eafd37f Update ServersImporter so that it takes into consideration forwardCredentials 2025-04-20 13:13:42 +02:00
Alejandro Celaya
4895cbb9dc Ensure forwardCredentials is included when exporting servers as CSV 2025-04-20 12:45:33 +02:00
Alejandro Celaya
1467c8e416 Test api client builder when credentials are forwarded 2025-04-20 12:28:51 +02:00
Alejandro Celaya
e12cd68010 Update server-related tests to cover forwardCredentials option 2025-04-20 11:55:34 +02:00
Alejandro Celaya
e997d11c2c Add advanced options to servers 2025-04-20 11:18:18 +02:00
Alejandro Celaya
4947e0490a Merge pull request #1520 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.7.0
Bump @reduxjs/toolkit from 2.6.1 to 2.7.0
2025-04-19 09:37:49 +02:00
Alejandro Celaya
c68a7ee22a Merge pull request #1522 from shlinkio/dependabot/docker/playwright-v1.52.0-noble
Bump playwright from v1.51.1-noble to v1.52.0-noble
2025-04-19 09:37:40 +02:00
dependabot[bot]
c4d99606cb Bump playwright from v1.51.1-noble to v1.52.0-noble
Bumps playwright from v1.51.1-noble to v1.52.0-noble.

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: v1.52.0-noble
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:34:10 +00:00
dependabot[bot]
5e3e70454d Bump @reduxjs/toolkit from 2.6.1 to 2.7.0
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.6.1 to 2.7.0.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.6.1...v2.7.0)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-version: 2.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:32:48 +00:00
Alejandro Celaya
860808a654 Merge pull request #1521 from shlinkio/revert-1483-dependabot/npm_and_yarn/react-549425c6c9
Revert "Bump the react group with 4 updates"
2025-04-19 09:32:08 +02:00
Alejandro Celaya
476c98d4f3 Revert "Bump the react group with 4 updates" 2025-04-19 09:31:47 +02:00
Alejandro Celaya
35a3224f70 Merge pull request #1483 from shlinkio/dependabot/npm_and_yarn/react-549425c6c9
Bump the react group with 4 updates
2025-04-19 09:30:49 +02:00
Alejandro Celaya
0c001a6d81 Merge pull request #1515 from shlinkio/dependabot/npm_and_yarn/eslint-8e6c94e842
Bump the eslint group with 3 updates
2025-04-19 09:30:40 +02:00
dependabot[bot]
7a9ab1c803 Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [eslint](https://github.com/eslint/eslint), [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/HEAD/compiler/packages/eslint-plugin-react-compiler) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.24.0 to 9.25.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.24.0...v9.25.0)

Updates `eslint-plugin-react-compiler` from 19.0.0-beta-e993439-20250405 to 19.0.0-beta-ebf51a3-20250411
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/compiler/packages/eslint-plugin-react-compiler)

Updates `typescript-eslint` from 8.29.1 to 8.30.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.30.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.25.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-react-compiler
  dependency-version: 19.0.0-beta-ebf51a3-20250411
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.30.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:14:34 +00:00
dependabot[bot]
eb6ba5f15d Bump the react group with 4 updates
Bumps the react group with 4 updates: [react](https://github.com/facebook/react/tree/HEAD/packages/react), [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react), [react-dom](https://github.com/facebook/react/tree/HEAD/packages/react-dom) and [@types/react-dom](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom).


Updates `react` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react)

Updates `@types/react` from 18.3.12 to 19.0.12
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `react-dom` from 18.3.1 to 19.0.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/v19.0.0/packages/react-dom)

Updates `@types/react-dom` from 18.3.1 to 19.0.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

Updates `@types/react` from 18.3.12 to 19.0.12
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react)

Updates `@types/react-dom` from 18.3.1 to 19.0.4
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases)
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-dom)

---
updated-dependencies:
- dependency-name: react
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: react-dom
  dependency-type: direct:production
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
- dependency-name: "@types/react-dom"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: react
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:14:20 +00:00
Alejandro Celaya
52cde329d7 Merge pull request #1513 from shlinkio/dependabot/npm_and_yarn/babel/runtime-7.27.0
Bump @babel/runtime from 7.24.7 to 7.27.0
2025-04-19 09:12:01 +02:00
Alejandro Celaya
aae2cd6866 Merge pull request #1516 from shlinkio/dependabot/npm_and_yarn/vite-a24716d957
Bump the vite group with 2 updates
2025-04-19 09:11:46 +02:00
Alejandro Celaya
becdf04acf Merge pull request #1517 from shlinkio/dependabot/npm_and_yarn/tailwindcss-8262cf427e
Bump the tailwindcss group with 2 updates
2025-04-19 09:11:33 +02:00
Alejandro Celaya
e3c853361d Merge pull request #1518 from shlinkio/dependabot/npm_and_yarn/react-router-7.5.1
Bump react-router from 7.5.0 to 7.5.1
2025-04-19 09:11:23 +02:00
Alejandro Celaya
385fc839b5 Merge pull request #1519 from shlinkio/dependabot/npm_and_yarn/playwright-1.52.0
Bump playwright from 1.51.1 to 1.52.0
2025-04-19 09:10:29 +02:00
dependabot[bot]
5d72d36c20 Bump playwright from 1.51.1 to 1.52.0
Bumps [playwright](https://github.com/microsoft/playwright) from 1.51.1 to 1.52.0.
- [Release notes](https://github.com/microsoft/playwright/releases)
- [Commits](https://github.com/microsoft/playwright/compare/v1.51.1...v1.52.0)

---
updated-dependencies:
- dependency-name: playwright
  dependency-version: 1.52.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:03:35 +00:00
dependabot[bot]
1fcd2fffd0 Bump react-router from 7.5.0 to 7.5.1
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.5.0 to 7.5.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.5.1/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.5.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:03:18 +00:00
dependabot[bot]
7cdc84b45d Bump the tailwindcss group with 2 updates
Bumps the tailwindcss group with 2 updates: [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) and [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss).


Updates `@tailwindcss/vite` from 4.1.3 to 4.1.4
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.4/packages/@tailwindcss-vite)

Updates `tailwindcss` from 4.1.3 to 4.1.4
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.4/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
- dependency-name: tailwindcss
  dependency-version: 4.1.4
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: tailwindcss
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:03:05 +00:00
dependabot[bot]
3f317d2559 Bump the vite group with 2 updates
Bumps the vite group with 2 updates: [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/tree/HEAD/packages/plugin-react) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `@vitejs/plugin-react` from 4.3.4 to 4.4.0
- [Release notes](https://github.com/vitejs/vite-plugin-react/releases)
- [Changelog](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite-plugin-react/commits/plugin-react@4.4.0/packages/plugin-react)

Updates `vite` from 6.2.6 to 6.3.2
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.3.2/packages/vite)

---
updated-dependencies:
- dependency-name: "@vitejs/plugin-react"
  dependency-version: 4.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
- dependency-name: vite
  dependency-version: 6.3.2
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-19 07:02:40 +00:00
Alejandro Celaya
788df59ae1 Merge pull request #1514 from acelaya-forks/feature/update-web.component
Update to shlink-web-component 0.13.3
2025-04-18 20:39:08 +02:00
Alejandro Celaya
d57188addf Update to shlink-web-component 0.13.3 2025-04-18 20:36:25 +02:00
Alejandro Celaya
778f7cedbb Merge pull request #1511 from stouset/push-svqnkrnomyxo
Pass HTTP credentials through to the API server
2025-04-17 08:54:58 +02:00
Alejandro Celaya
f71218998f Update to @shlinkio/shlink-js-sdk 2.1.0 2025-04-17 08:52:56 +02:00
Stephen Touset
d1d6a6b373 Pass HTTP credentials through to the API server when appropriate CORS headers are set 2025-04-17 08:50:39 +02:00
dependabot[bot]
41de28c15f Bump @babel/runtime from 7.24.7 to 7.27.0
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime) from 7.24.7 to 7.27.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.27.0/packages/babel-runtime)

---
updated-dependencies:
- dependency-name: "@babel/runtime"
  dependency-version: 7.27.0
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-17 06:49:56 +00:00
Alejandro Celaya
c1bbeeb6ac Merge pull request #1512 from acelaya-forks/feature/dev-improvements
Update shlink-web-client with support for client-side generated QRs
2025-04-17 08:48:48 +02:00
Alejandro Celaya
9f3d7df5cd Update shlink-web-client with support for client-side generated QRs 2025-04-17 08:46:31 +02:00
Alejandro Celaya
a7d6637a81 Merge pull request #1507 from shlinkio/dependabot/npm_and_yarn/shlink-adac1902f5
Bump @shlinkio/shlink-frontend-kit from 0.8.7 to 0.8.10 in the shlink group
2025-04-12 11:02:19 +02:00
Alejandro Celaya
14fa2e32ea Update tests 2025-04-12 10:58:48 +02:00
dependabot[bot]
c08f0dad8b Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 0.8.7 to 0.8.10
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.8.7...v0.8.10)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-version: 0.8.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 08:52:09 +00:00
Alejandro Celaya
43853ef14f Merge pull request #1505 from shlinkio/dependabot/npm_and_yarn/vite-6.2.6
Bump vite from 6.2.5 to 6.2.6
2025-04-12 10:35:40 +02:00
Alejandro Celaya
b831c6c3bd Merge pull request #1508 from shlinkio/dependabot/npm_and_yarn/tailwindcss/vite-4.1.3
Bump @tailwindcss/vite from 4.0.17 to 4.1.3
2025-04-12 10:35:31 +02:00
dependabot[bot]
1f51d60ed2 Bump vite from 6.2.5 to 6.2.6
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.5 to 6.2.6.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.6/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.6
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 08:28:15 +00:00
Alejandro Celaya
600a3e2045 Merge pull request #1506 from shlinkio/dependabot/npm_and_yarn/eslint-8aa5377087
Bump the eslint group with 2 updates
2025-04-12 10:27:00 +02:00
dependabot[bot]
5458657c8b Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/HEAD/compiler/packages/eslint-plugin-react-compiler) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint-plugin-react-compiler` from 19.0.0-beta-e993439-20250328 to 19.0.0-beta-e993439-20250405
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/compiler/packages/eslint-plugin-react-compiler)

Updates `typescript-eslint` from 8.29.0 to 8.29.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.29.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-compiler
  dependency-version: 19.0.0-beta-e993439-20250405
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.29.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 08:26:53 +00:00
dependabot[bot]
603ee9d6bf Bump @tailwindcss/vite from 4.0.17 to 4.1.3
Bumps [@tailwindcss/vite](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/@tailwindcss-vite) from 4.0.17 to 4.1.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.3/packages/@tailwindcss-vite)

---
updated-dependencies:
- dependency-name: "@tailwindcss/vite"
  dependency-version: 4.1.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 08:26:04 +00:00
Alejandro Celaya
3405f524df Update dependabot.yml with tailwind group 2025-04-12 10:25:40 +02:00
Alejandro Celaya
1fbbef41a7 Merge pull request #1509 from shlinkio/dependabot/npm_and_yarn/tailwindcss-4.1.3
Bump tailwindcss from 4.0.17 to 4.1.3
2025-04-12 10:24:09 +02:00
dependabot[bot]
eef04075a5 Bump tailwindcss from 4.0.17 to 4.1.3
Bumps [tailwindcss](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss) from 4.0.17 to 4.1.3.
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/commits/v4.1.3/packages/tailwindcss)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-version: 4.1.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-12 07:24:48 +00:00
Alejandro Celaya
7880bb4abe Merge pull request #1504 from acelaya-forks/feature/browser-tests
Run tests in a headless browser with vitest browser mode and playwright
2025-04-08 17:39:59 +02:00
Alejandro Celaya
ac0c6aa729 Update changelog 2025-04-08 17:37:11 +02:00
Alejandro Celaya
691e6c1afb Run tests in a headless browser with vitest browser mode and playwright 2025-04-08 11:51:07 +02:00
Alejandro Celaya
09559c78af Merge pull request #1503 from acelaya-forks/feature/revealable-api-key
Use RevealablePasswordInput for server API keys
2025-04-05 14:11:23 +02:00
Alejandro Celaya
3d6ea5cf7c Set submit type in submit buttons 2025-04-05 14:09:57 +02:00
Alejandro Celaya
0a7a606541 Use RevealablePasswordInput for server API keys 2025-04-05 14:07:01 +02:00
Alejandro Celaya
61cc6c8d26 Merge pull request #1491 from acelaya-forks/feature/initial-tailwind-components
Initial tailwind components
2025-04-05 13:12:05 +02:00
Alejandro Celaya
5e0db07ef3 Replace all remaining bootstrap utility classes with tailwind classes 2025-04-05 12:15:24 +02:00
Alejandro Celaya
d188d67c5a Replace some bootstrap utility classes with tailwind ones 2025-04-05 11:48:24 +02:00
Alejandro Celaya
bd034c11b6 Fix App test 2025-04-05 11:41:50 +02:00
Alejandro Celaya
0ec867b185 Migrate App stylesheets to tailwind 2025-04-05 11:37:44 +02:00
Alejandro Celaya
c29b077e93 Fix some buttons acting like submits 2025-04-05 11:23:35 +02:00
Alejandro Celaya
d8a42b4c3a Migrate DuplicatedServersModal to tailwind 2025-04-05 11:15:42 +02:00
Alejandro Celaya
7879476739 Migrate DeleteServerModal to tailwind components 2025-04-05 10:39:47 +02:00
Alejandro Celaya
fd40e2b7bc Replace most stylesheets with tailwind styles 2025-04-05 10:39:47 +02:00
Alejandro Celaya
aefe5e0848 Migrate ServersListGroup to tailwind components 2025-04-05 10:39:47 +02:00
Alejandro Celaya
fd7bfd845e Update browsers list 2025-04-05 10:39:47 +02:00
Alejandro Celaya
01ca369388 Migrate DeleteServerModal to tailwind components 2025-04-05 10:39:47 +02:00
Alejandro Celaya
15ef29ecea Migrated NoMenuLayout to tailwind 2025-04-05 10:39:11 +02:00
Alejandro Celaya
b19162ce91 Migrate Home component to tailwind 2025-04-05 10:39:11 +02:00
Alejandro Celaya
7c31b210bd Fix tests after initial tailwind components migration 2025-04-05 10:39:11 +02:00
Alejandro Celaya
a63c214d8d Use tailwind-based components in AppUpdateBanner 2025-04-05 10:39:11 +02:00
Alejandro Celaya
c9ada8f41d Migrate servers table to a tailwind-based Table component 2025-04-05 10:39:11 +02:00
Alejandro Celaya
06fac716d1 Migrate server-related components to tailwind 2025-04-05 10:39:11 +02:00
Alejandro Celaya
c462bc30e1 Migrate ErrorHandler component to tailwind 2025-04-05 10:39:11 +02:00
Alejandro Celaya
ad00e54df8 Migrate NotFound component to tailwind 2025-04-05 10:39:10 +02:00
Alejandro Celaya
ca4543b227 Merge pull request #1501 from shlinkio/dependabot/npm_and_yarn/vite-plugin-pwa-1.0.0
Bump vite-plugin-pwa from 0.21.2 to 1.0.0
2025-04-05 10:21:30 +02:00
dependabot[bot]
ddca307001 Bump vite-plugin-pwa from 0.21.2 to 1.0.0
Bumps [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) from 0.21.2 to 1.0.0.
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases)
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v0.21.2...v1.0.0)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-version: 1.0.0
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 08:13:59 +00:00
Alejandro Celaya
dd651eb324 Merge pull request #1494 from shlinkio/dependabot/npm_and_yarn/eslint-466e2eef68
Bump the eslint group with 4 updates
2025-04-05 10:13:12 +02:00
Alejandro Celaya
6ea7347ae1 Merge pull request #1499 from shlinkio/dependabot/npm_and_yarn/sass-1.86.3
Bump sass from 1.86.0 to 1.86.3
2025-04-05 10:13:04 +02:00
Alejandro Celaya
b4810aa4cd Merge pull request #1502 from shlinkio/dependabot/npm_and_yarn/react-router-7.5.0
Bump react-router from 7.4.1 to 7.5.0
2025-04-05 10:12:50 +02:00
dependabot[bot]
8a99076a21 Bump react-router from 7.4.1 to 7.5.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.4.1 to 7.5.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.5.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-version: 7.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 08:04:36 +00:00
dependabot[bot]
432bbcb4ac Bump the eslint group with 4 updates
Bumps the eslint group with 4 updates: [eslint](https://github.com/eslint/eslint), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react), [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/HEAD/compiler/packages/eslint-plugin-react-compiler) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.23.0 to 9.24.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.23.0...v9.24.0)

Updates `eslint-plugin-react` from 7.37.4 to 7.37.5
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.4...v7.37.5)

Updates `eslint-plugin-react-compiler` from 19.0.0-beta-aeaed83-20250323 to 19.0.0-beta-e993439-20250328
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/compiler/packages/eslint-plugin-react-compiler)

Updates `typescript-eslint` from 8.28.0 to 8.29.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.29.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 9.24.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-react
  dependency-version: 7.37.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: eslint-plugin-react-compiler
  dependency-version: 19.0.0-beta-e993439-20250328
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-version: 8.29.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:58:39 +00:00
dependabot[bot]
0f006a737f Bump sass from 1.86.0 to 1.86.3
Bumps [sass](https://github.com/sass/dart-sass) from 1.86.0 to 1.86.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.86.0...1.86.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-version: 1.86.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:57:20 +00:00
Alejandro Celaya
73d9a535bc Merge pull request #1492 from shlinkio/dependabot/npm_and_yarn/vite-6.2.5
Bump vite from 6.2.3 to 6.2.5
2025-04-05 09:57:06 +02:00
Alejandro Celaya
da5eddaa6a Merge pull request #1493 from shlinkio/dependabot/docker/node-23.11-alpine
Bump node from 23.10-alpine to 23.11-alpine
2025-04-05 09:56:57 +02:00
Alejandro Celaya
d2362d4ddd Merge pull request #1495 from shlinkio/dependabot/npm_and_yarn/shlink-990afa2a50
Bump @shlinkio/shlink-frontend-kit from 0.8.2 to 0.8.5 in the shlink group
2025-04-05 09:56:41 +02:00
dependabot[bot]
18e41b3064 Bump vite from 6.2.3 to 6.2.5
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.2.3 to 6.2.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.5/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 6.2.5
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:56:38 +00:00
Alejandro Celaya
148dff996c Merge pull request #1496 from shlinkio/dependabot/npm_and_yarn/testing-323d949c2e
Bump @testing-library/react from 16.2.0 to 16.3.0 in the testing group
2025-04-05 09:56:14 +02:00
Alejandro Celaya
20d12c4d7c Merge pull request #1497 from shlinkio/dependabot/npm_and_yarn/vitest-45f529ea32
Bump the vitest group with 2 updates
2025-04-05 09:55:53 +02:00
Alejandro Celaya
f25389a638 Merge pull request #1498 from shlinkio/dependabot/npm_and_yarn/react-external-link-2.5.0
Bump react-external-link from 2.4.0 to 2.5.0
2025-04-05 09:55:44 +02:00
Alejandro Celaya
a10e9646e6 Merge pull request #1500 from shlinkio/dependabot/npm_and_yarn/typescript-5.8.3
Bump typescript from 5.8.2 to 5.8.3
2025-04-05 09:55:23 +02:00
dependabot[bot]
8a697bb7d2 Bump typescript from 5.8.2 to 5.8.3
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.8.2 to 5.8.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release-publish.yml)
- [Commits](https://github.com/microsoft/TypeScript/commits)

---
updated-dependencies:
- dependency-name: typescript
  dependency-version: 5.8.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:41:39 +00:00
dependabot[bot]
834eca8461 Bump react-external-link from 2.4.0 to 2.5.0
Bumps [react-external-link](https://github.com/acelaya/react-external-link) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/acelaya/react-external-link/releases)
- [Changelog](https://github.com/acelaya/react-external-link/blob/main/CHANGELOG.md)
- [Commits](https://github.com/acelaya/react-external-link/compare/v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: react-external-link
  dependency-version: 2.5.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:41:22 +00:00
dependabot[bot]
b5347b1801 Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.0.9 to 3.1.1
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.1/packages/coverage-v8)

Updates `vitest` from 3.0.9 to 3.1.1
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.1.1/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-version: 3.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vitest
- dependency-name: vitest
  dependency-version: 3.1.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:41:09 +00:00
dependabot[bot]
939d9d4463 Bump @testing-library/react from 16.2.0 to 16.3.0 in the testing group
Bumps the testing group with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 16.2.0 to 16.3.0
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.2.0...v16.3.0)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-version: 16.3.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:40:39 +00:00
dependabot[bot]
56aee7e96e Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 0.8.2 to 0.8.5
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.8.2...v0.8.5)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-version: 0.8.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:40:28 +00:00
dependabot[bot]
49ab0d425d Bump node from 23.10-alpine to 23.11-alpine
Bumps node from 23.10-alpine to 23.11-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-version: 23.11-alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-05 07:14:53 +00:00
Alejandro Celaya
9227b00d1a Merge pull request #1488 from acelaya-forks/feature/update-coding-standard
Update to latest coding standard
2025-03-29 12:00:20 +01:00
Alejandro Celaya
a736bb3b21 Update to latest coding standard 2025-03-29 11:58:44 +01:00
Alejandro Celaya
ecbc0f64d6 Merge pull request #1485 from shlinkio/dependabot/npm_and_yarn/shlink-9268acf158
Bump the shlink group with 2 updates
2025-03-29 10:34:01 +01:00
Alejandro Celaya
a522a74199 Merge pull request #1486 from shlinkio/dependabot/npm_and_yarn/vite-14f44f5325
Bump vite from 6.2.2 to 6.2.3 in the vite group
2025-03-29 10:32:47 +01:00
Alejandro Celaya
bee4094b84 Merge pull request #1487 from shlinkio/dependabot/npm_and_yarn/react-router-7.4.1
Bump react-router from 7.4.0 to 7.4.1
2025-03-29 10:32:37 +01:00
dependabot[bot]
e3e909a023 Bump react-router from 7.4.0 to 7.4.1
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.4.0 to 7.4.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.4.1/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 08:11:16 +00:00
dependabot[bot]
d91d341bbf Bump vite from 6.2.2 to 6.2.3 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.2 to 6.2.3
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v6.2.3/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 08:10:57 +00:00
dependabot[bot]
a3d85a7454 Bump the shlink group with 2 updates
Bumps the shlink group with 2 updates: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit) and [@shlinkio/shlink-web-component](https://github.com/shlinkio/shlink-web-component).


Updates `@shlinkio/shlink-frontend-kit` from 0.7.3 to 0.8.2
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.7.3...v0.8.2)

Updates `@shlinkio/shlink-web-component` from 0.13.0 to 0.13.1
- [Release notes](https://github.com/shlinkio/shlink-web-component/releases)
- [Changelog](https://github.com/shlinkio/shlink-web-component/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-web-component/compare/v0.13.0...v0.13.1)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: shlink
- dependency-name: "@shlinkio/shlink-web-component"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-29 08:10:40 +00:00
Alejandro Celaya
a5a5b0c3a4 Replace types group with react 2025-03-22 12:56:13 +01:00
Alejandro Celaya
50e7204a4f Merge pull request #1480 from shlinkio/dependabot/npm_and_yarn/vite-plugin-pwa-0.21.2
Bump vite-plugin-pwa from 0.21.1 to 0.21.2
2025-03-22 09:51:56 +01:00
Alejandro Celaya
0c60b8710e Merge pull request #1478 from shlinkio/dependabot/npm_and_yarn/eslint-cbaef95697
Bump the eslint group with 2 updates
2025-03-22 09:51:34 +01:00
Alejandro Celaya
bb92930116 Merge pull request #1479 from shlinkio/dependabot/npm_and_yarn/vitest-cdf93bb811
Bump the vitest group with 2 updates
2025-03-22 09:51:26 +01:00
Alejandro Celaya
c1483d4c99 Merge pull request #1482 from shlinkio/dependabot/npm_and_yarn/sass-1.86.0
Bump sass from 1.85.1 to 1.86.0
2025-03-22 09:50:36 +01:00
Alejandro Celaya
aeedd45bb6 Merge pull request #1481 from shlinkio/dependabot/npm_and_yarn/react-router-7.4.0
Bump react-router from 7.3.0 to 7.4.0
2025-03-22 09:50:23 +01:00
dependabot[bot]
861cb6efc6 Bump sass from 1.85.1 to 1.86.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.85.1 to 1.86.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.85.1...1.86.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 08:14:35 +00:00
dependabot[bot]
a8f4b47803 Bump react-router from 7.3.0 to 7.4.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.3.0 to 7.4.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.4.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 08:14:20 +00:00
dependabot[bot]
437d769527 Bump vite-plugin-pwa from 0.21.1 to 0.21.2
Bumps [vite-plugin-pwa](https://github.com/vite-pwa/vite-plugin-pwa) from 0.21.1 to 0.21.2.
- [Release notes](https://github.com/vite-pwa/vite-plugin-pwa/releases)
- [Commits](https://github.com/vite-pwa/vite-plugin-pwa/compare/v0.21.1...v0.21.2)

---
updated-dependencies:
- dependency-name: vite-plugin-pwa
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 08:14:11 +00:00
dependabot[bot]
8dfed49dcf Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.0.8 to 3.0.9
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.9/packages/coverage-v8)

Updates `vitest` from 3.0.8 to 3.0.9
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.9/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 08:13:58 +00:00
dependabot[bot]
794a0a1b14 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.22.0 to 9.23.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.22.0...v9.23.0)

Updates `typescript-eslint` from 8.26.1 to 8.27.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.27.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-22 08:13:24 +00:00
Alejandro Celaya
86bd650213 Merge pull request #1477 from acelaya-forks/feature/remove-stylelint
Remove stylelint
2025-03-16 09:47:01 +01:00
Alejandro Celaya
c4cb462a5e Remove stylelint 2025-03-16 09:44:12 +01:00
Alejandro Celaya
3aecc4fd5b Merge pull request #1474 from shlinkio/dependabot/npm_and_yarn/eslint-fba15697ea
Bump the eslint group with 2 updates
2025-03-15 10:17:19 +01:00
dependabot[bot]
7c550af923 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint-plugin-react-compiler](https://github.com/facebook/react/tree/HEAD/compiler/packages/eslint-plugin-react-compiler) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint-plugin-react-compiler` from 19.0.0-beta-40c6c23-20250301 to 19.0.0-beta-714736e-20250131
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/compiler/packages/eslint-plugin-react-compiler)

Updates `typescript-eslint` from 8.26.0 to 8.26.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-compiler
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-15 09:15:44 +00:00
Alejandro Celaya
6588a0eede Merge pull request #1475 from shlinkio/dependabot/npm_and_yarn/vite-4427a9e5cd
Bump vite from 6.2.1 to 6.2.2 in the vite group
2025-03-15 10:14:16 +01:00
dependabot[bot]
7b219158e1 Bump vite from 6.2.1 to 6.2.2 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.1 to 6.2.2
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.2.2/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-15 08:59:13 +00:00
Alejandro Celaya
1c7ab0e1ea Merge pull request #1473 from shlinkio/dependabot/docker/node-23.10-alpine
Bump node from 23.9-alpine to 23.10-alpine
2025-03-15 09:31:27 +01:00
dependabot[bot]
148aa30915 Bump node from 23.9-alpine to 23.10-alpine
Bumps node from 23.9-alpine to 23.10-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-15 08:19:43 +00:00
Alejandro Celaya
781d9a0355 Merge pull request #1468 from shlinkio/dependabot/npm_and_yarn/vitest-1c77d7164e
Bump the vitest group with 2 updates
2025-03-08 10:06:38 +01:00
Alejandro Celaya
6a5c6817d0 Merge pull request #1459 from shlinkio/dependabot/npm_and_yarn/typescript-5.8.2
Bump typescript from 5.7.3 to 5.8.2
2025-03-08 10:06:29 +01:00
Alejandro Celaya
3d3a292284 Merge pull request #1466 from shlinkio/dependabot/npm_and_yarn/shlink-0fe11e8291
Bump @shlinkio/shlink-frontend-kit from 0.7.2 to 0.7.3 in the shlink group
2025-03-08 10:06:18 +01:00
Alejandro Celaya
5bf9547e55 Merge pull request #1467 from shlinkio/dependabot/npm_and_yarn/vite-015fd670ef
Bump vite from 6.2.0 to 6.2.1 in the vite group
2025-03-08 10:06:07 +01:00
Alejandro Celaya
45078bb632 Merge pull request #1469 from shlinkio/dependabot/npm_and_yarn/axe-core-4.10.3
Bump axe-core from 4.10.2 to 4.10.3
2025-03-08 10:05:57 +01:00
Alejandro Celaya
87060410b5 Merge pull request #1470 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.6.1
Bump @reduxjs/toolkit from 2.6.0 to 2.6.1
2025-03-08 10:05:47 +01:00
Alejandro Celaya
0bc898c999 Merge pull request #1471 from shlinkio/dependabot/npm_and_yarn/react-router-7.3.0
Bump react-router from 7.2.0 to 7.3.0
2025-03-08 10:05:37 +01:00
dependabot[bot]
94e188c6c0 Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.0.7 to 3.0.8
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.8/packages/coverage-v8)

Updates `vitest` from 3.0.7 to 3.0.8
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.8/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 09:01:55 +00:00
dependabot[bot]
8a74b3d736 Bump axe-core from 4.10.2 to 4.10.3
Bumps [axe-core](https://github.com/dequelabs/axe-core) from 4.10.2 to 4.10.3.
- [Release notes](https://github.com/dequelabs/axe-core/releases)
- [Changelog](https://github.com/dequelabs/axe-core/blob/v4.10.3/CHANGELOG.md)
- [Commits](https://github.com/dequelabs/axe-core/compare/v4.10.2...v4.10.3)

---
updated-dependencies:
- dependency-name: axe-core
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 09:01:51 +00:00
dependabot[bot]
897d93b9ab Bump vite from 6.2.0 to 6.2.1 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.2.0 to 6.2.1
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.2.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 09:01:49 +00:00
dependabot[bot]
f7b0f692d9 Bump typescript from 5.7.3 to 5.8.2
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.3 to 5.8.2.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.3...v5.8.2)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 09:01:44 +00:00
Alejandro Celaya
80c0b84785 Merge pull request #1465 from shlinkio/dependabot/npm_and_yarn/eslint-0d777aa326
Bump the eslint group with 3 updates
2025-03-08 10:00:25 +01:00
dependabot[bot]
dc685084d1 Bump react-router from 7.2.0 to 7.3.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.2.0 to 7.3.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.3.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 08:26:33 +00:00
dependabot[bot]
763c767286 Bump @reduxjs/toolkit from 2.6.0 to 2.6.1
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.6.0 to 2.6.1.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.6.0...v2.6.1)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 08:26:20 +00:00
dependabot[bot]
01302cf25e Bump @shlinkio/shlink-frontend-kit in the shlink group
Bumps the shlink group with 1 update: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit).


Updates `@shlinkio/shlink-frontend-kit` from 0.7.2 to 0.7.3
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.7.2...v0.7.3)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 08:25:11 +00:00
dependabot[bot]
6dee9260c1 Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 4.1.0 to 4.2.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v4.2.0/packages/eslint-plugin)

Updates `eslint` from 9.21.0 to 9.22.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.21.0...v9.22.0)

Updates `typescript-eslint` from 8.25.0 to 8.26.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.26.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-08 08:24:54 +00:00
Alejandro Celaya
8f1847e38b Merge pull request #1464 from acelaya-forks/feature/react-compiler-eslint
Add eslint-plugin-react-compiler
2025-03-07 09:39:38 +01:00
Alejandro Celaya
176e0b4961 Add eslint-plugin-react-compiler 2025-03-07 09:37:12 +01:00
Alejandro Celaya
de9be5fcf4 Fix typo 2025-03-07 09:34:26 +01:00
Alejandro Celaya
b46db36a1f Merge pull request #1456 from shlinkio/dependabot/npm_and_yarn/eslint-4b4bdc4453
Bump the eslint group with 3 updates
2025-03-01 09:49:18 +01:00
Alejandro Celaya
8dd9287eaf Merge pull request #1463 from shlinkio/dependabot/docker/node-23.9-alpine
Bump node from 23.8-alpine to 23.9-alpine
2025-03-01 09:49:08 +01:00
dependabot[bot]
ab784515c0 Bump node from 23.8-alpine to 23.9-alpine
Bumps node from 23.8-alpine to 23.9-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 08:30:13 +00:00
dependabot[bot]
337c8c1ee2 Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 4.0.1 to 4.1.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v4.1.0/packages/eslint-plugin)

Updates `eslint-plugin-react-hooks` from 5.1.0 to 5.2.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

Updates `typescript-eslint` from 8.24.1 to 8.25.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.25.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-react-hooks
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 08:20:53 +00:00
Alejandro Celaya
b46e637a64 Merge pull request #1457 from shlinkio/dependabot/npm_and_yarn/vite-b440395291
Bump vite from 6.1.1 to 6.2.0 in the vite group
2025-03-01 09:19:37 +01:00
Alejandro Celaya
b2d8cdb43f Merge pull request #1458 from shlinkio/dependabot/npm_and_yarn/vitest-ee01e65f68
Bump the vitest group with 2 updates
2025-03-01 09:19:29 +01:00
Alejandro Celaya
23ae01d34d Merge pull request #1460 from shlinkio/dependabot/npm_and_yarn/sass-1.85.1
Bump sass from 1.85.0 to 1.85.1
2025-03-01 09:19:13 +01:00
Alejandro Celaya
306c496489 Merge pull request #1462 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.6.0
Bump @reduxjs/toolkit from 2.5.1 to 2.6.0
2025-03-01 09:19:03 +01:00
dependabot[bot]
13e57eb2ae Bump @reduxjs/toolkit from 2.5.1 to 2.6.0
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.5.1 to 2.6.0.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.5.1...v2.6.0)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 08:09:39 +00:00
dependabot[bot]
c4ecdc9175 Bump sass from 1.85.0 to 1.85.1
Bumps [sass](https://github.com/sass/dart-sass) from 1.85.0 to 1.85.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.85.0...1.85.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 08:09:19 +00:00
dependabot[bot]
2e99ee43ce Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.0.6 to 3.0.7
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.7/packages/coverage-v8)

Updates `vitest` from 3.0.6 to 3.0.7
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.7/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 08:08:51 +00:00
dependabot[bot]
4c7c457839 Bump vite from 6.1.1 to 6.2.0 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.1.1 to 6.2.0
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.2.0/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-03-01 08:08:37 +00:00
Alejandro Celaya
9b84df6774 Merge pull request #1454 from shlinkio/dependabot/npm_and_yarn/eslint-6f95c012c8
Bump the eslint group across 1 directory with 4 updates
2025-02-22 11:15:16 +01:00
dependabot[bot]
9d010f8996 Bump the eslint group across 1 directory with 4 updates
Bumps the eslint group with 4 updates in the / directory: [@shlinkio/eslint-config-js-coding-standard](https://github.com/shlinkio/js-coding-standard), [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@shlinkio/eslint-config-js-coding-standard` from 3.3.0 to 3.4.0
- [Release notes](https://github.com/shlinkio/js-coding-standard/releases)
- [Changelog](https://github.com/shlinkio/js-coding-standard/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/js-coding-standard/compare/v3.3.0...v3.4.0)

Updates `@stylistic/eslint-plugin` from 3.1.0 to 4.0.1
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v4.0.1/packages/eslint-plugin)

Updates `eslint` from 9.20.1 to 9.21.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.20.1...v9.21.0)

Updates `typescript-eslint` from 8.24.0 to 8.24.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@shlinkio/eslint-config-js-coding-standard"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: eslint
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 10:12:21 +00:00
Alejandro Celaya
21b7ca1a0a Merge pull request #1451 from shlinkio/dependabot/npm_and_yarn/vite-d69725c68b
Bump vite from 6.1.0 to 6.1.1 in the vite group
2025-02-22 11:10:40 +01:00
Alejandro Celaya
26578ed55d Merge pull request #1452 from shlinkio/dependabot/npm_and_yarn/vitest-28acf833c7
Bump the vitest group with 2 updates
2025-02-22 11:10:31 +01:00
Alejandro Celaya
1b6369264b Merge pull request #1453 from shlinkio/dependabot/npm_and_yarn/react-router-7.2.0
Bump react-router from 7.1.5 to 7.2.0
2025-02-22 11:09:31 +01:00
dependabot[bot]
7c0033397b Bump react-router from 7.1.5 to 7.2.0
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.1.5 to 7.2.0.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.2.0/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 08:11:14 +00:00
dependabot[bot]
49a75a08aa Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.0.5 to 3.0.6
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.6/packages/coverage-v8)

Updates `vitest` from 3.0.5 to 3.0.6
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.6/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 08:10:52 +00:00
dependabot[bot]
4dad18e45f Bump vite from 6.1.0 to 6.1.1 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.1.0 to 6.1.1
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.1.1/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-22 08:10:38 +00:00
Alejandro Celaya
0016333972 Merge pull request #1447 from shlinkio/dependabot/docker/node-23.8-alpine
Bump node from 23.7-alpine to 23.8-alpine
2025-02-15 09:39:13 +01:00
Alejandro Celaya
b65291bb01 Merge pull request #1448 from shlinkio/dependabot/npm_and_yarn/eslint-aeeda62d4e
Bump the eslint group with 2 updates
2025-02-15 09:38:42 +01:00
Alejandro Celaya
dac8a08fd2 Merge pull request #1449 from shlinkio/dependabot/npm_and_yarn/sass-1.85.0
Bump sass from 1.84.0 to 1.85.0
2025-02-15 09:38:34 +01:00
dependabot[bot]
c18808503c Bump sass from 1.84.0 to 1.85.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.84.0 to 1.85.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.84.0...1.85.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-15 08:25:41 +00:00
dependabot[bot]
06563feffc Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.20.0 to 9.20.1
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.20.0...v9.20.1)

Updates `typescript-eslint` from 8.23.0 to 8.24.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.24.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-15 08:24:58 +00:00
dependabot[bot]
468a529f94 Bump node from 23.7-alpine to 23.8-alpine
Bumps node from 23.7-alpine to 23.8-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-15 08:12:37 +00:00
Alejandro Celaya
0c568a327f Merge pull request #1446 from acelaya-forks/feature/sass-imports
Replace sass imports with sass use
2025-02-11 09:16:54 +01:00
Alejandro Celaya
2e9db77b00 Replace sass imports with sass use 2025-02-11 09:15:20 +01:00
Alejandro Celaya
c85917e378 Merge pull request #1445 from acelaya-forks/feature/js-sdk-2.0
Update to JS SDK 2.0 and shlink-web-component 0.13
2025-02-11 08:43:16 +01:00
Alejandro Celaya
d2d9810afd Update to JS SDK 2.0 and shlink-web-component 0.13 2025-02-11 08:41:29 +01:00
Alejandro Celaya
db13d43f99 Merge pull request #1442 from shlinkio/dependabot/npm_and_yarn/eslint-0e79b492a9
Bump the eslint group with 3 updates
2025-02-08 10:07:15 +01:00
dependabot[bot]
1acc64c074 Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 3.0.1 to 3.1.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v3.1.0/packages/eslint-plugin)

Updates `eslint` from 9.19.0 to 9.20.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.19.0...v9.20.0)

Updates `typescript-eslint` from 8.22.0 to 8.23.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.23.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-08 09:05:50 +00:00
Alejandro Celaya
32c4cd40d3 Merge pull request #1443 from shlinkio/dependabot/npm_and_yarn/vite-df52692fc7
Bump vite from 6.0.11 to 6.1.0 in the vite group
2025-02-08 10:04:21 +01:00
Alejandro Celaya
abf02ddbac Merge pull request #1444 from shlinkio/dependabot/npm_and_yarn/sass-1.84.0
Bump sass from 1.83.4 to 1.84.0
2025-02-08 10:04:14 +01:00
dependabot[bot]
552cfcf805 Bump sass from 1.83.4 to 1.84.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.83.4 to 1.84.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.83.4...1.84.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-08 09:00:31 +00:00
dependabot[bot]
4198ad73de Bump vite from 6.0.11 to 6.1.0 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.0.11 to 6.1.0
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/create-vite@6.1.0/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-08 09:00:09 +00:00
Alejandro Celaya
b6a49e3b11 Merge pull request #1441 from shlinkio/dependabot/npm_and_yarn/multi-7d4cb18f35
Bump vitest and @vitest/coverage-v8
2025-02-08 09:56:31 +01:00
dependabot[bot]
e716624a3f Bump vitest and @vitest/coverage-v8
Bumps [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest) and [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8). These dependencies needed to be updated together.

Updates `vitest` from 3.0.4 to 3.0.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.5/packages/vitest)

Updates `@vitest/coverage-v8` from 3.0.4 to 3.0.5
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.5/packages/coverage-v8)

---
updated-dependencies:
- dependency-name: vitest
  dependency-type: direct:development
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-06 08:44:38 +00:00
Alejandro Celaya
6a8825ecb7 Merge pull request #1440 from acelaya-forks/feature/react-router-tests
Work around issue with react-router + vitest in node >22.10
2025-02-06 09:43:17 +01:00
Alejandro Celaya
e171866226 Work around issue with react-router + vitest in node >22.10 2025-02-06 09:41:11 +01:00
Alejandro Celaya
c98616234f Merge pull request #1438 from shlinkio/dependabot/npm_and_yarn/shlink-d5058f2f6d
Bump the shlink group across 1 directory with 3 updates
2025-02-01 10:14:52 +01:00
Alejandro Celaya
4fa9f8967b Silence type error temporarily 2025-02-01 10:13:35 +01:00
dependabot[bot]
5ea42b6c15 Bump the shlink group across 1 directory with 3 updates
Bumps the shlink group with 3 updates in the / directory: [@shlinkio/shlink-frontend-kit](https://github.com/shlinkio/shlink-frontend-kit), [@shlinkio/shlink-js-sdk](https://shlink.io) and [@shlinkio/shlink-web-component](https://github.com/shlinkio/shlink-web-component).


Updates `@shlinkio/shlink-frontend-kit` from 0.7.0 to 0.7.2
- [Release notes](https://github.com/shlinkio/shlink-frontend-kit/releases)
- [Changelog](https://github.com/shlinkio/shlink-frontend-kit/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-frontend-kit/compare/v0.7.0...v0.7.2)

Updates `@shlinkio/shlink-js-sdk` from 1.3.0 to 1.4.0

Updates `@shlinkio/shlink-web-component` from 0.12.0 to 0.12.1
- [Release notes](https://github.com/shlinkio/shlink-web-component/releases)
- [Changelog](https://github.com/shlinkio/shlink-web-component/blob/main/CHANGELOG.md)
- [Commits](https://github.com/shlinkio/shlink-web-component/compare/v0.12.0...v0.12.1)

---
updated-dependencies:
- dependency-name: "@shlinkio/shlink-frontend-kit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
- dependency-name: "@shlinkio/shlink-js-sdk"
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: shlink
- dependency-name: "@shlinkio/shlink-web-component"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: shlink
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 09:06:54 +00:00
Alejandro Celaya
d0bc6610b1 Merge pull request #1433 from shlinkio/dependabot/npm_and_yarn/eslint-e61a3236ab
Bump the eslint group with 2 updates
2025-02-01 10:05:09 +01:00
Alejandro Celaya
995769de27 Update to Shlink coding standard 3.3.0 2025-02-01 10:03:18 +01:00
Alejandro Celaya
aeb4f8ed9a Merge pull request #1439 from shlinkio/dependabot/docker/node-23.7-alpine
Bump node from 23.6-alpine to 23.7-alpine
2025-02-01 09:43:20 +01:00
dependabot[bot]
44e1bef29b Bump node from 23.6-alpine to 23.7-alpine
Bumps node from 23.6-alpine to 23.7-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 08:39:30 +00:00
Alejandro Celaya
b472b44c5b Merge pull request #1435 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.5.1
Bump @reduxjs/toolkit from 2.5.0 to 2.5.1
2025-02-01 09:37:47 +01:00
Alejandro Celaya
227b762740 Merge pull request #1437 from shlinkio/dependabot/npm_and_yarn/react-router-7.1.5
Bump react-router from 7.1.3 to 7.1.5
2025-02-01 09:37:17 +01:00
dependabot[bot]
c0765eeb92 Bump react-router from 7.1.3 to 7.1.5
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.1.3 to 7.1.5.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.1.5/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 08:14:12 +00:00
dependabot[bot]
da1b727788 Bump @reduxjs/toolkit from 2.5.0 to 2.5.1
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.5.0 to 2.5.1.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.5.0...v2.5.1)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 08:13:47 +00:00
dependabot[bot]
2875a857a5 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 2.13.0 to 3.0.1
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v3.0.1/packages/eslint-plugin)

Updates `typescript-eslint` from 8.21.0 to 8.22.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.22.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-02-01 08:13:13 +00:00
Alejandro Celaya
81952acb84 Merge pull request #1427 from shlinkio/dependabot/npm_and_yarn/eslint-f129fbd6a6
Bump the eslint group with 2 updates
2025-01-25 09:57:32 +01:00
Alejandro Celaya
33fd901552 Merge pull request #1428 from shlinkio/dependabot/npm_and_yarn/testing-f3501c7be5
Bump @testing-library/user-event from 14.6.0 to 14.6.1 in the testing group
2025-01-25 09:57:23 +01:00
Alejandro Celaya
394ae44401 Merge pull request #1429 from shlinkio/dependabot/npm_and_yarn/vitest-bce4a882f7
Bump the vitest group with 2 updates
2025-01-25 09:57:11 +01:00
dependabot[bot]
5e3aaca8d8 Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 3.0.2 to 3.0.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.4/packages/coverage-v8)

Updates `vitest` from 3.0.2 to 3.0.4
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.4/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-25 08:42:45 +00:00
dependabot[bot]
1647ee023a Bump @testing-library/user-event in the testing group
Bumps the testing group with 1 update: [@testing-library/user-event](https://github.com/testing-library/user-event).


Updates `@testing-library/user-event` from 14.6.0 to 14.6.1
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v14.6...v14.6.1)

---
updated-dependencies:
- dependency-name: "@testing-library/user-event"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-25 08:42:25 +00:00
dependabot[bot]
a95451d12c Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.18.0 to 9.19.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.18.0...v9.19.0)

Updates `typescript-eslint` from 8.20.0 to 8.21.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.21.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-25 08:42:07 +00:00
Alejandro Celaya
c6c1caa420 Merge pull request #1426 from shlinkio/dependabot/npm_and_yarn/vite-6.0.11
Bump vite from 6.0.7 to 6.0.11
2025-01-22 11:42:49 +01:00
dependabot[bot]
14b2f3a9f6 Bump vite from 6.0.7 to 6.0.11
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 6.0.7 to 6.0.11.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.11/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-21 20:42:59 +00:00
Alejandro Celaya
022fe6af3a Merge pull request #1423 from shlinkio/dependabot/npm_and_yarn/vitest-53642b8677
Bump the vitest group with 2 updates
2025-01-18 10:02:29 +01:00
Alejandro Celaya
ed827c279a Merge pull request #1421 from shlinkio/dependabot/npm_and_yarn/eslint-4009f63520
Bump the eslint group with 3 updates
2025-01-18 09:50:29 +01:00
Alejandro Celaya
aede99b709 Remove no longer needed type error supression from vite config 2025-01-18 09:50:03 +01:00
Alejandro Celaya
281fa9ebdd Merge pull request #1422 from shlinkio/dependabot/npm_and_yarn/testing-76c18a7ea9
Bump the testing group with 2 updates
2025-01-18 09:49:21 +01:00
Alejandro Celaya
b7c2a423c8 Merge pull request #1424 from shlinkio/dependabot/npm_and_yarn/sass-1.83.4
Bump sass from 1.83.1 to 1.83.4
2025-01-18 09:49:04 +01:00
Alejandro Celaya
a39e841af2 Merge pull request #1425 from shlinkio/dependabot/npm_and_yarn/react-router-7.1.3
Bump react-router from 7.1.1 to 7.1.3
2025-01-18 09:48:50 +01:00
dependabot[bot]
00384abe9c Bump react-router from 7.1.1 to 7.1.3
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.1.1 to 7.1.3.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.1.3/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 08:46:23 +00:00
dependabot[bot]
4b1b107f44 Bump sass from 1.83.1 to 1.83.4
Bumps [sass](https://github.com/sass/dart-sass) from 1.83.1 to 1.83.4.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.83.1...1.83.4)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 08:46:05 +00:00
dependabot[bot]
4175bd3a5e Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 2.1.8 to 3.0.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.2/packages/coverage-v8)

Updates `vitest` from 2.1.8 to 3.0.2
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v3.0.2/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-major
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 08:45:47 +00:00
dependabot[bot]
15aeb5c922 Bump the testing group with 2 updates
Bumps the testing group with 2 updates: [@testing-library/react](https://github.com/testing-library/react-testing-library) and [@testing-library/user-event](https://github.com/testing-library/user-event).


Updates `@testing-library/react` from 16.1.0 to 16.2.0
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.1.0...v16.2.0)

Updates `@testing-library/user-event` from 14.5.2 to 14.6.0
- [Release notes](https://github.com/testing-library/user-event/releases)
- [Changelog](https://github.com/testing-library/user-event/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/user-event/compare/v14.5.2...v14.6)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
- dependency-name: "@testing-library/user-event"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 08:45:25 +00:00
dependabot[bot]
168f8d85ce Bump the eslint group with 3 updates
Bumps the eslint group with 3 updates: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 2.12.1 to 2.13.0
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v2.13.0/packages/eslint-plugin)

Updates `eslint-plugin-react` from 7.37.3 to 7.37.4
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.3...v7.37.4)

Updates `typescript-eslint` from 8.19.1 to 8.20.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.20.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-18 08:45:00 +00:00
Alejandro Celaya
5fc42d3850 Merge pull request #1418 from shlinkio/dependabot/npm_and_yarn/eslint-e98c3825a8
Bump the eslint group with 2 updates
2025-01-11 09:43:48 +01:00
dependabot[bot]
64d7d16ea2 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint](https://github.com/eslint/eslint) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint` from 9.17.0 to 9.18.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.17.0...v9.18.0)

Updates `typescript-eslint` from 8.19.0 to 8.19.1
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.1/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-11 08:40:25 +00:00
Alejandro Celaya
fa9de43123 Merge pull request #1417 from shlinkio/dependabot/docker/node-23.6-alpine
Bump node from 23.5-alpine to 23.6-alpine
2025-01-11 09:39:57 +01:00
Alejandro Celaya
87618181ab Merge pull request #1419 from shlinkio/dependabot/npm_and_yarn/typescript-5.7.3
Bump typescript from 5.7.2 to 5.7.3
2025-01-11 09:39:37 +01:00
Alejandro Celaya
03cf9dbe79 Merge pull request #1420 from shlinkio/dependabot/npm_and_yarn/jsdom-26.0.0
Bump jsdom from 25.0.1 to 26.0.0
2025-01-11 09:39:00 +01:00
dependabot[bot]
4afc621d10 Bump jsdom from 25.0.1 to 26.0.0
Bumps [jsdom](https://github.com/jsdom/jsdom) from 25.0.1 to 26.0.0.
- [Release notes](https://github.com/jsdom/jsdom/releases)
- [Changelog](https://github.com/jsdom/jsdom/blob/main/Changelog.md)
- [Commits](https://github.com/jsdom/jsdom/compare/25.0.1...26.0.0)

---
updated-dependencies:
- dependency-name: jsdom
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-11 08:11:12 +00:00
dependabot[bot]
4f1d7fbd5f Bump typescript from 5.7.2 to 5.7.3
Bumps [typescript](https://github.com/microsoft/TypeScript) from 5.7.2 to 5.7.3.
- [Release notes](https://github.com/microsoft/TypeScript/releases)
- [Changelog](https://github.com/microsoft/TypeScript/blob/main/azure-pipelines.release.yml)
- [Commits](https://github.com/microsoft/TypeScript/compare/v5.7.2...v5.7.3)

---
updated-dependencies:
- dependency-name: typescript
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-11 08:11:01 +00:00
dependabot[bot]
c5b7116992 Bump node from 23.5-alpine to 23.6-alpine
Bumps node from 23.5-alpine to 23.6-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-11 08:05:12 +00:00
Alejandro Celaya
b08610196c Merge pull request #1414 from shlinkio/dependabot/npm_and_yarn/vite-64c44d4a77
Bump vite from 6.0.6 to 6.0.7 in the vite group
2025-01-04 09:50:39 +01:00
Alejandro Celaya
3ad070ea18 Merge pull request #1415 from shlinkio/dependabot/npm_and_yarn/sass-1.83.1
Bump sass from 1.83.0 to 1.83.1
2025-01-04 09:50:30 +01:00
dependabot[bot]
94bc49a0b3 Bump sass from 1.83.0 to 1.83.1
Bumps [sass](https://github.com/sass/dart-sass) from 1.83.0 to 1.83.1.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.83.0...1.83.1)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-04 08:32:37 +00:00
dependabot[bot]
9269593c46 Bump vite from 6.0.6 to 6.0.7 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.0.6 to 6.0.7
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.7/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-04 08:32:08 +00:00
Alejandro Celaya
baa19b5c4c Merge pull request #1392 from shlinkio/dependabot/npm_and_yarn/vitest-4ff847a748
Bump the vitest group with 2 updates
2025-01-02 20:01:21 +01:00
Alejandro Celaya
4fc48d3259 Merge pull request #1403 from shlinkio/dependabot/npm_and_yarn/fontawesome-2044f20233
Bump the fontawesome group with 5 updates
2025-01-02 20:00:43 +01:00
Alejandro Celaya
03c0f4649f Silenced type error in vite config 2025-01-02 20:00:09 +01:00
dependabot[bot]
0280fc0f59 Bump the vitest group with 2 updates
Bumps the vitest group with 2 updates: [@vitest/coverage-v8](https://github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-v8) and [vitest](https://github.com/vitest-dev/vitest/tree/HEAD/packages/vitest).


Updates `@vitest/coverage-v8` from 2.1.6 to 2.1.8
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v2.1.8/packages/coverage-v8)

Updates `vitest` from 2.1.6 to 2.1.8
- [Release notes](https://github.com/vitest-dev/vitest/releases)
- [Commits](https://github.com/vitest-dev/vitest/commits/v2.1.8/packages/vitest)

---
updated-dependencies:
- dependency-name: "@vitest/coverage-v8"
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
- dependency-name: vitest
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vitest
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:55:11 +00:00
dependabot[bot]
d0b48c90a6 Bump the fontawesome group with 5 updates
Bumps the fontawesome group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [@fortawesome/fontawesome-free](https://github.com/FortAwesome/Font-Awesome) | `6.7.1` | `6.7.2` |
| [@fortawesome/fontawesome-svg-core](https://github.com/FortAwesome/Font-Awesome) | `6.7.1` | `6.7.2` |
| [@fortawesome/free-brands-svg-icons](https://github.com/FortAwesome/Font-Awesome) | `6.7.1` | `6.7.2` |
| [@fortawesome/free-regular-svg-icons](https://github.com/FortAwesome/Font-Awesome) | `6.7.1` | `6.7.2` |
| [@fortawesome/free-solid-svg-icons](https://github.com/FortAwesome/Font-Awesome) | `6.7.1` | `6.7.2` |


Updates `@fortawesome/fontawesome-free` from 6.7.1 to 6.7.2
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.7.1...6.7.2)

Updates `@fortawesome/fontawesome-svg-core` from 6.7.1 to 6.7.2
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.7.1...6.7.2)

Updates `@fortawesome/free-brands-svg-icons` from 6.7.1 to 6.7.2
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.7.1...6.7.2)

Updates `@fortawesome/free-regular-svg-icons` from 6.7.1 to 6.7.2
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.7.1...6.7.2)

Updates `@fortawesome/free-solid-svg-icons` from 6.7.1 to 6.7.2
- [Release notes](https://github.com/FortAwesome/Font-Awesome/releases)
- [Changelog](https://github.com/FortAwesome/Font-Awesome/blob/6.x/CHANGELOG.md)
- [Commits](https://github.com/FortAwesome/Font-Awesome/compare/6.7.1...6.7.2)

---
updated-dependencies:
- dependency-name: "@fortawesome/fontawesome-free"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fontawesome
- dependency-name: "@fortawesome/fontawesome-svg-core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fontawesome
- dependency-name: "@fortawesome/free-brands-svg-icons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fontawesome
- dependency-name: "@fortawesome/free-regular-svg-icons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fontawesome
- dependency-name: "@fortawesome/free-solid-svg-icons"
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: fontawesome
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:54:44 +00:00
Alejandro Celaya
e90ec0b27c Merge pull request #1412 from shlinkio/dependabot/npm_and_yarn/eslint-c560062209
Bump the eslint group across 1 directory with 4 updates
2025-01-02 19:53:57 +01:00
Alejandro Celaya
fc66171a09 Merge pull request #1399 from shlinkio/dependabot/npm_and_yarn/reduxjs/toolkit-2.5.0
Bump @reduxjs/toolkit from 2.4.0 to 2.5.0
2025-01-02 19:53:08 +01:00
dependabot[bot]
769f7f45ee Bump the eslint group across 1 directory with 4 updates
Bumps the eslint group with 4 updates in the / directory: [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin), [eslint](https://github.com/eslint/eslint), [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `@stylistic/eslint-plugin` from 2.11.0 to 2.12.1
- [Release notes](https://github.com/eslint-stylistic/eslint-stylistic/releases)
- [Changelog](https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint-stylistic/eslint-stylistic/commits/v2.12.1/packages/eslint-plugin)

Updates `eslint` from 9.16.0 to 9.17.0
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v9.16.0...v9.17.0)

Updates `eslint-plugin-react` from 7.37.2 to 7.37.3
- [Release notes](https://github.com/jsx-eslint/eslint-plugin-react/releases)
- [Changelog](https://github.com/jsx-eslint/eslint-plugin-react/blob/master/CHANGELOG.md)
- [Commits](https://github.com/jsx-eslint/eslint-plugin-react/compare/v7.37.2...v7.37.3)

Updates `typescript-eslint` from 8.17.0 to 8.19.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: "@stylistic/eslint-plugin"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: eslint-plugin-react
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:52:55 +00:00
Alejandro Celaya
ca89e8e4f9 Merge pull request #1401 from shlinkio/dependabot/docker/node-23.5-alpine
Bump node from 23.3-alpine to 23.5-alpine
2025-01-02 19:51:08 +01:00
Alejandro Celaya
d7dda228b6 Merge pull request #1398 from shlinkio/dependabot/npm_and_yarn/sass-1.83.0
Bump sass from 1.82.0 to 1.83.0
2025-01-02 19:50:57 +01:00
Alejandro Celaya
28136a656f Merge pull request #1407 from shlinkio/dependabot/npm_and_yarn/vite-8aabc1763d
Bump vite from 6.0.3 to 6.0.6 in the vite group across 1 directory
2025-01-02 19:50:29 +01:00
Alejandro Celaya
4502ca5543 Merge pull request #1409 from shlinkio/dependabot/npm_and_yarn/chalk-5.4.1
Bump chalk from 5.3.0 to 5.4.1
2025-01-02 19:50:18 +01:00
Alejandro Celaya
b4decf9124 Merge pull request #1400 from shlinkio/dependabot/npm_and_yarn/react-redux-9.2.0
Bump react-redux from 9.1.2 to 9.2.0
2025-01-02 19:50:02 +01:00
dependabot[bot]
c5d12a49f4 Bump sass from 1.82.0 to 1.83.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.82.0 to 1.83.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.82.0...1.83.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:48:21 +00:00
dependabot[bot]
dcab31b30c Bump @reduxjs/toolkit from 2.4.0 to 2.5.0
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 2.4.0 to 2.5.0.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v2.4.0...v2.5.0)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:48:17 +00:00
dependabot[bot]
c917d643d2 Bump react-redux from 9.1.2 to 9.2.0
Bumps [react-redux](https://github.com/reduxjs/react-redux) from 9.1.2 to 9.2.0.
- [Release notes](https://github.com/reduxjs/react-redux/releases)
- [Changelog](https://github.com/reduxjs/react-redux/blob/master/CHANGELOG.md)
- [Commits](https://github.com/reduxjs/react-redux/compare/v9.1.2...v9.2.0)

---
updated-dependencies:
- dependency-name: react-redux
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:48:17 +00:00
dependabot[bot]
8c2ca8656b Bump vite from 6.0.3 to 6.0.6 in the vite group across 1 directory
Bumps the vite group with 1 update in the / directory: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.0.3 to 6.0.6
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.6/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:48:10 +00:00
dependabot[bot]
9a22d51996 Bump node from 23.3-alpine to 23.5-alpine
Bumps node from 23.3-alpine to 23.5-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:47:58 +00:00
dependabot[bot]
d95352f467 Bump chalk from 5.3.0 to 5.4.1
Bumps [chalk](https://github.com/chalk/chalk) from 5.3.0 to 5.4.1.
- [Release notes](https://github.com/chalk/chalk/releases)
- [Commits](https://github.com/chalk/chalk/compare/v5.3.0...v5.4.1)

---
updated-dependencies:
- dependency-name: chalk
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:47:50 +00:00
Alejandro Celaya
8dbfffc383 Merge pull request #1410 from shlinkio/dependabot/npm_and_yarn/react-router-7.1.1
Bump react-router from 7.0.2 to 7.1.1
2025-01-02 19:47:42 +01:00
dependabot[bot]
1606ce357e Bump react-router from 7.0.2 to 7.1.1
Bumps [react-router](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router) from 7.0.2 to 7.1.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router@7.1.1/packages/react-router)

---
updated-dependencies:
- dependency-name: react-router
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-02 18:46:28 +00:00
Alejandro Celaya
096d27f107 Merge pull request #1411 from acelaya-forks/feature/node-22-10-ci
Downgrade to node 22.10 in CI to work around a bug in react-router 7
2025-01-02 19:44:23 +01:00
Alejandro Celaya
8cc03a973f Downgrade to node 22.10 in CI to work around a bug in react-router 7 2025-01-02 19:42:49 +01:00
Alejandro Celaya
f4c4f408e2 Merge pull request #1395 from acelaya-forks/feature/react-router-7
Update to react-router 7
2024-12-09 11:55:28 +01:00
Alejandro Celaya
a65c7171c1 Update to react-router 7 2024-12-09 11:52:58 +01:00
Alejandro Celaya
d14c4fa606 Merge pull request #1388 from shlinkio/dependabot/npm_and_yarn/eslint-70533c04c4
Bump the eslint group with 2 updates
2024-12-07 10:36:15 +01:00
Alejandro Celaya
7e4c915b0b Merge pull request #1390 from shlinkio/dependabot/npm_and_yarn/testing-ad7bed71c3
Bump @testing-library/react from 16.0.1 to 16.1.0 in the testing group
2024-12-07 10:34:45 +01:00
dependabot[bot]
a5a15963b8 Bump the eslint group with 2 updates
Bumps the eslint group with 2 updates: [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks) and [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint).


Updates `eslint-plugin-react-hooks` from 5.0.0 to 5.1.0
- [Release notes](https://github.com/facebook/react/releases)
- [Changelog](https://github.com/facebook/react/blob/main/packages/eslint-plugin-react-hooks/CHANGELOG.md)
- [Commits](https://github.com/facebook/react/commits/HEAD/packages/eslint-plugin-react-hooks)

Updates `typescript-eslint` from 8.16.0 to 8.17.0
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases)
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md)
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.17.0/packages/typescript-eslint)

---
updated-dependencies:
- dependency-name: eslint-plugin-react-hooks
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
- dependency-name: typescript-eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: eslint
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-07 09:26:37 +00:00
Alejandro Celaya
88515fc571 Merge pull request #1391 from shlinkio/dependabot/npm_and_yarn/vite-d4fe43cea2
Bump vite from 6.0.1 to 6.0.3 in the vite group
2024-12-07 10:25:52 +01:00
Alejandro Celaya
b20e8ae528 Merge pull request #1393 from shlinkio/dependabot/npm_and_yarn/react-external-link-2.4.0
Bump react-external-link from 2.3.1 to 2.4.0
2024-12-07 10:25:42 +01:00
Alejandro Celaya
dcbbe9a9a6 Merge pull request #1394 from shlinkio/dependabot/npm_and_yarn/sass-1.82.0
Bump sass from 1.81.0 to 1.82.0
2024-12-07 10:25:33 +01:00
dependabot[bot]
61cabaa356 Bump sass from 1.81.0 to 1.82.0
Bumps [sass](https://github.com/sass/dart-sass) from 1.81.0 to 1.82.0.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.81.0...1.82.0)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-07 08:31:11 +00:00
dependabot[bot]
30f0df5a10 Bump react-external-link from 2.3.1 to 2.4.0
Bumps [react-external-link](https://github.com/acelaya/react-external-link) from 2.3.1 to 2.4.0.
- [Release notes](https://github.com/acelaya/react-external-link/releases)
- [Changelog](https://github.com/acelaya/react-external-link/blob/main/CHANGELOG.md)
- [Commits](https://github.com/acelaya/react-external-link/compare/v2.3.1...v2.4.0)

---
updated-dependencies:
- dependency-name: react-external-link
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-07 08:30:59 +00:00
dependabot[bot]
37562c06ec Bump vite from 6.0.1 to 6.0.3 in the vite group
Bumps the vite group with 1 update: [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).


Updates `vite` from 6.0.1 to 6.0.3
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v6.0.3/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: vite
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-07 08:30:05 +00:00
dependabot[bot]
478fc2c274 Bump @testing-library/react from 16.0.1 to 16.1.0 in the testing group
Bumps the testing group with 1 update: [@testing-library/react](https://github.com/testing-library/react-testing-library).


Updates `@testing-library/react` from 16.0.1 to 16.1.0
- [Release notes](https://github.com/testing-library/react-testing-library/releases)
- [Changelog](https://github.com/testing-library/react-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/react-testing-library/compare/v16.0.1...v16.1.0)

---
updated-dependencies:
- dependency-name: "@testing-library/react"
  dependency-type: direct:development
  update-type: version-update:semver-minor
  dependency-group: testing
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-07 08:29:48 +00:00
133 changed files with 7117 additions and 7728 deletions

View File

@@ -1,24 +0,0 @@
title: 'Q&A'
body:
- type: input
validations:
required: true
attributes:
label: shlink-web-client version
placeholder: x.y.z
- type: dropdown
validations:
required: true
attributes:
label: How do you use shlink-web-client
options:
- https://app.shlink.io
- Docker image
- Self-hosted
- Other (explain in summary)
- type: textarea
validations:
required: true
attributes:
label: Summary
value: '<!-- Describe your issue, question or request here. -->'

View File

@@ -1,7 +0,0 @@
<!--
Before opening an issue, just take into account that this is a completely free of charge and open source project.
I'm always happy to help and provide support, but some understanding will be expected.
I do this in my own free time, so expect some delays when implementing new features and fixing bugs, and don't take it personal if an issue gets eventually closed.
You may also be asked to provide tests or ways to reproduce reported bugs.
Try to be polite, and understand it is impossible for an OSS project to cover all use cases.
-->

View File

@@ -2,4 +2,4 @@ blank_issues_enabled: true
contact_links:
- name: Question - Support
about: Do you need help setting up or using shlink-web-client?
url: https://github.com/shlinkio/shlink-web-client/discussions/new?category=q-a
url: https://github.com/orgs/shlinkio/discussions/new?category=help-wanted

View File

@@ -21,9 +21,12 @@ updates:
shlink:
patterns:
- '@shlinkio/*'
types:
react:
patterns:
- '@types/*'
- 'react'
- 'react-dom'
- '@types/react'
- '@types/react-dom'
testing:
patterns:
- '@testing-library/*'
@@ -38,10 +41,10 @@ updates:
workbox:
patterns:
- 'workbox*'
ignore:
# Bootstrap can introduce visual breaking changes on styles
# Ignore it, since the plan is to remove it anyway
- dependency-name: 'bootstrap'
tailwindcss:
patterns:
- 'tailwindcss'
- '@tailwindcss/*'
- package-ecosystem: docker
directory: '/'
schedule:

View File

@@ -13,3 +13,4 @@ jobs:
with:
node-version: 22.x
publish-coverage: true
install-playwright: true

View File

@@ -5,7 +5,7 @@ on:
jobs:
deploy:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
continue-on-error: true
steps:
- name: Checkout code
@@ -16,7 +16,7 @@ jobs:
- name: Use node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
node-version: 22.10
- name: Build
run: |
npm ci && \

View File

@@ -7,14 +7,14 @@ on:
jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Use node.js
uses: actions/setup-node@v4
with:
node-version: 22.x
node-version: 22.10
- name: Generate release assets
run: npm ci && VERSION=${GITHUB_REF#refs/tags/v} npm run build:dist
- name: Publish release with assets

View File

@@ -1,5 +0,0 @@
{
"extends": [
"@shlinkio/stylelint-config-css-coding-standard"
]
}

View File

@@ -4,6 +4,93 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org).
## [4.5.1] - 2025-08-13
### Added
* *Nothing*
### Changed
* *Nothing*
### Deprecated
* *Nothing*
### Removed
* *Nothing*
### Fixed
* [#1637](https://github.com/shlinkio/shlink-web-client/issues/1637) Fix brand color used in PWA
* [#1636](https://github.com/shlinkio/shlink-web-client/issues/1636) Make sure sidebar toggle is rendered only in sections where the sidebar exists.
## [4.5.0] - 2025-08-08
### Added
* [shlink-web-component#755](https://github.com/shlinkio/shlink-web-component/issues/755) Add support for `any-value-query-param` and `valueless-query-param` redirect conditions when using Shlink >=4.5.0.
* [shlink-web-component#756](https://github.com/shlinkio/shlink-web-component/issues/756) Add support for desktop device types on device redirect conditions, when using Shlink >=4.5.0.
* [shlink-web-component#713](https://github.com/shlinkio/shlink-web-component/issues/713) Expose a new `ShlinkSidebarToggleButton` component that can be used to customize the location of the sidebar toggle, rather than making it assume there's a header bar and position it there.
* [shlink-web-component#657](https://github.com/shlinkio/shlink-web-component/issues/657) Allow visits table columns to be customized via settings, and add a new optional "Region" column.
As a side effect, the "Show user agent" toggle has been removed from the list, as this can now be globally configured in the settings.
### Changed
* Update to FontAwesome 7
* Update to Recharts 3
* Update to `@shlinkio/shlink-web-component` 0.16.1
### Deprecated
* *Nothing*
### Removed
* *Nothing*
### Fixed
* [shlink-web-component#698](https://github.com/shlinkio/shlink-web-component/issues/698) Fix line chart selection triggering after clicking a dot in the chart. It now works only when dragging while the mouse is clicked.
## [4.4.1] - 2025-06-23
### Added
* *Nothing*
### Changed
* [shlink-web-component#661](https://github.com/shlinkio/shlink-web-component/issues/661) and [#1571](https://github.com/shlinkio/shlink-web-client/issues/1571) Fully replace bootstrap with tailwind.
* Add the new light theme brand color.
* Update to `@shlinkio/shlink-frontend-kit` 1.0.0 and `@shlinkio/shlink-web-component` 0.15
* Replace reactstrap nav bar with `NavBar` component from `@shlinkio/shlink-frontend-kit`
### Deprecated
* *Nothing*
### Removed
* *Nothing*
### Fixed
* *Nothing*
## [4.4.0] - 2025-04-20
### Added
* [#1510](https://github.com/shlinkio/shlink-web-client/issues/1510) Existing HTTP credentials (cookies, TLS certs, authentication headers) can now be forwarded to the API server if appropriate [CORS headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Headers/Access-Control-Allow-Credentials) are set
* [shlink-web-component#637](https://github.com/shlinkio/shlink-web-component/pull/637) QR codes are now generated client-side, without hitting Shlink.
* [shlink-web-component#641](https://github.com/shlinkio/shlink-web-component/issues/641) It is now possible to provide any logo to be used with QR codes.
* [shlink-web-component#640](https://github.com/shlinkio/shlink-web-component/issues/640) Allow default QR code settings to be handled via app settings.
### Changed
* Update to `react-router` 7.0
* Update to `@shlinkio/shlink-frontend-kit` 0.8.x
* Update to `@shlinkio/shlink-web-component` 0.13.x
* Update to `@shlinkio/shlink-js-sdk` 2.0.0
* Add `eslint-plugin-react-compiler`
* Run unit tests in a headless browser using vitest browser mode and playwright.
### Deprecated
* *Nothing*
### Removed
* *Nothing*
### Fixed
* *Nothing*
## [4.3.0] - 2024-11-30
### Added
* [#1360](https://github.com/shlinkio/shlink-web-client/issues/1360) Added ability for server IDs to be generated based on the server name and URL, instead of generating a random UUID.
@@ -298,7 +385,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
* [#774](https://github.com/shlinkio/shlink-web-client/issues/774) Dropped support for Shlink older than 2.8.0.
### Fixed
* [#715](https://github.com/shlinkio/shlink-web-client/issues/715) Fixed connection still failing on miss-configured servers, after editing their params to set proper values.
* [#715](https://github.com/shlinkio/shlink-web-client/issues/715) Fixed connection still failing on misconfigured servers, after editing their params to set proper values.
## [3.8.2] - 2022-12-17

View File

@@ -45,11 +45,8 @@ shlink-web-client
> Note: The `indocker` shell script is a helper used to run commands inside the docker container.
* `./indocker node --run lint`: Checks coding styles are fulfilled, both in JS/TS files and in stylesheets.
* `./indocker node --run lint:js`: Checks coding styles are fulfilled in JS/TS files.
* `./indocker node --run lint:css`: Checks coding styles are fulfilled in stylesheets.
* `./indocker node --run lint:js:fix`: Fixes coding styles in JS/TS files.
* `./indocker node --run lint:css:fix`: Fixes coding styles in stylesheets.
* `./indocker node --run lint`: Checks coding styles are fulfilled in JS/TS files.
* `./indocker node --run lint:fix`: Fixes coding styles in JS/TS files.
* `./indocker node --run test`: Runs unit tests with Jest.
## Building the project

View File

@@ -1,10 +1,10 @@
FROM node:23.3-alpine AS node
FROM node:24.5-alpine AS node
COPY . /shlink-web-client
ARG VERSION="latest"
ENV VERSION=${VERSION}
RUN cd /shlink-web-client && npm ci && node --run build
FROM nginxinc/nginx-unprivileged:1.27-alpine
FROM nginxinc/nginx-unprivileged:1.29-alpine
ARG UID=101
LABEL maintainer="Alejandro Celaya <alejandro@alejandrocelaya.com>"

View File

@@ -1,24 +1,9 @@
import '@testing-library/jest-dom/vitest';
import { cleanup } from '@testing-library/react';
import axe from 'axe-core';
import { afterEach } from 'vitest';
axe.configure({
checks: [
{
// Disable color contrast checking, as it doesn't work in jsdom
id: 'color-contrast',
enabled: false,
},
],
});
// Clear all mocks and cleanup DOM after every test
afterEach(() => {
vi.clearAllMocks();
cleanup();
});
HTMLCanvasElement.prototype.getContext = (() => {}) as any;
(global as any).scrollTo = () => {};
(global as any).matchMedia = () => ({ matches: false });

15
dev.Dockerfile Normal file
View File

@@ -0,0 +1,15 @@
FROM mcr.microsoft.com/playwright:v1.54.2-noble
ENV NODE_VERSION 22.14
ENV TINI_VERSION v0.19.0
# Install Node.js
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash && \
\. "$HOME/.nvm/nvm.sh" && \
nvm install ${NODE_VERSION}
# Install tini
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /sbin/tini
RUN chmod +x /sbin/tini
# Set tini as the entry point, as node does not properly handle signals
ENTRYPOINT ["/sbin/tini", "--"]

View File

@@ -2,8 +2,11 @@ services:
shlink_web_client_node:
container_name: shlink_web_client_node
user: 1000:1000 # With this, files created via `indocker` script will belong to the host user
image: node:22.10-alpine
command: /bin/sh -c "cd /home/shlink/www && npm install && npm run start"
build:
context: .
dockerfile: ./dev.Dockerfile
working_dir: /home/shlink/www
command: /bin/sh -c "npm install && npm run start"
volumes:
- ./:/home/shlink/www
ports:

View File

@@ -3,7 +3,8 @@
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="theme-color" content="#4696e5">
<meta name="theme-color" content="#2078CF" media="(prefers-color-scheme: light)">
<meta name="theme-color" content="#0B2D4E" media="(prefers-color-scheme: dark)">
<!--
manifest.json provides metadata used when your web app is added to the
@@ -84,7 +85,7 @@
<noscript>
You need to enable JavaScript to run this app.
</noscript>
<div id="root"></div>
<div id="root" class="h-full"></div>
<script type="module" src="/src/index.tsx"></script>
</body>
</html>

View File

@@ -1,12 +1,13 @@
import { BRAND_COLOR_LM } from '@shlinkio/shlink-frontend-kit';
import type { ManifestOptions } from 'vite-plugin-pwa';
export const manifest: Partial<ManifestOptions> = {
short_name: 'Shlink',
name: 'Shlink',
name: 'Shlink Web Client',
start_url: '/',
display: 'standalone',
theme_color: '#4696e5',
background_color: '#4696e5',
theme_color: BRAND_COLOR_LM, // Toolbar color
background_color: BRAND_COLOR_LM, // Splash screen background color
icons: [
{
src: './icons/icon-16x16.png',

12188
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -7,12 +7,8 @@
"license": "MIT",
"type": "module",
"scripts": {
"lint": "node --run lint:css && node --run lint:js",
"lint:css": "stylelint src/*.scss src/**/*.scss",
"lint:js": "eslint src test config/test",
"lint:fix": "node --run lint:css:fix && node --run lint:js:fix",
"lint:css:fix": "node --run lint:css -- --fix",
"lint:js:fix": "node --run lint:js -- --fix",
"lint": "eslint src test config/test",
"lint:fix": "node --run lint -- --fix",
"types": "tsc",
"start": "vite serve --host=0.0.0.0",
"preview": "vite preview --host=0.0.0.0",
@@ -24,30 +20,28 @@
"test:verbose": "node --run test -- --verbose"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^6.7.1",
"@fortawesome/fontawesome-svg-core": "^6.7.1",
"@fortawesome/free-brands-svg-icons": "^6.7.1",
"@fortawesome/free-regular-svg-icons": "^6.7.1",
"@fortawesome/free-solid-svg-icons": "^6.7.1",
"@fortawesome/react-fontawesome": "^0.2.2",
"@fortawesome/fontawesome-free": "^7.0.0",
"@fortawesome/fontawesome-svg-core": "^7.0.0",
"@fortawesome/free-brands-svg-icons": "^7.0.0",
"@fortawesome/free-regular-svg-icons": "^7.0.0",
"@fortawesome/free-solid-svg-icons": "^7.0.0",
"@fortawesome/react-fontawesome": "^0.2.3",
"@json2csv/plainjs": "^7.0.6",
"@reduxjs/toolkit": "^2.4.0",
"@reduxjs/toolkit": "^2.8.2",
"@shlinkio/data-manipulation": "^1.0.3",
"@shlinkio/shlink-frontend-kit": "^0.6.0",
"@shlinkio/shlink-js-sdk": "^1.3.0",
"@shlinkio/shlink-web-component": "^0.11.0",
"bootstrap": "5.2.3",
"@shlinkio/shlink-frontend-kit": "^1.1.0",
"@shlinkio/shlink-js-sdk": "^2.2.1",
"@shlinkio/shlink-web-component": "^0.16.1",
"bottlejs": "^2.0.1",
"clsx": "^2.1.1",
"compare-versions": "^6.1.1",
"csvtojson": "^2.0.10",
"date-fns": "^4.1.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-external-link": "^2.3.1",
"react-redux": "^9.1.2",
"react-router-dom": "^6.28.0",
"reactstrap": "^9.2.3",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react-external-link": "^2.5.0",
"react-redux": "^9.2.0",
"react-router": "^7.8.0",
"redux-localstorage-simple": "^2.5.1",
"workbox-core": "^7.3.0",
"workbox-expiration": "^7.3.0",
@@ -56,35 +50,36 @@
"workbox-strategies": "^7.3.0"
},
"devDependencies": {
"@shlinkio/eslint-config-js-coding-standard": "~3.2.1",
"@shlinkio/stylelint-config-css-coding-standard": "~1.1.1",
"@stylistic/eslint-plugin": "^2.11.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.0.1",
"@testing-library/user-event": "^14.5.2",
"@shlinkio/eslint-config-js-coding-standard": "~3.5.0",
"@stylistic/eslint-plugin": "^5.2.3",
"@tailwindcss/vite": "^4.1.11",
"@testing-library/jest-dom": "^6.6.4",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@total-typescript/shoehorn": "^0.1.2",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@types/uuid": "^10.0.0",
"@vitejs/plugin-react": "^4.3.4",
"@vitest/coverage-v8": "^2.1.6",
"@types/react": "^19.1.9",
"@types/react-dom": "^19.1.7",
"@vitejs/plugin-react": "^5.0.0",
"@vitest/browser": "^3.2.4",
"@vitest/coverage-v8": "^3.2.4",
"adm-zip": "^0.5.16",
"axe-core": "^4.10.2",
"chalk": "^5.3.0",
"eslint": "^9.16.0",
"axe-core": "^4.10.3",
"chalk": "^5.5.0",
"eslint": "^9.33.0",
"eslint-plugin-import": "^2.32.0",
"eslint-plugin-jsx-a11y": "^6.10.2",
"eslint-plugin-react": "^7.37.2",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react": "^7.37.5",
"eslint-plugin-react-compiler": "^19.0.0-beta-714736e-20250131",
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"history": "^5.3.0",
"jsdom": "^25.0.1",
"sass": "^1.81.0",
"stylelint": "^15.11.0",
"typescript": "^5.7.2",
"typescript-eslint": "^8.16.0",
"vite": "^6.0.1",
"vite-plugin-pwa": "^0.21.1",
"vitest": "^2.0.2"
"playwright": "^1.54.2",
"tailwindcss": "^4.1.3",
"typescript": "^5.8.3",
"typescript-eslint": "^8.39.0",
"vite": "^7.1.1",
"vite-plugin-pwa": "^1.0.2",
"vitest": "^3.0.5"
},
"browserslist": [
">0.2%",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 642 B

After

Width:  |  Height:  |  Size: 662 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@@ -1 +1,8 @@
<svg width="512pt" height="512pt" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg"><g fill="#4595e3"><path d=" M 23.71 85.08 C 17.22 49.81 49.44 14.86 85.08 18.12 C 118.83 19.21 145.72 53.33 139.45 86.37 C 155.64 102.30 171.32 118.83 187.87 134.36 C 198.32 111.73 208.84 89.12 219.57 66.62 C 226.05 53.84 243.47 48.74 255.73 56.27 C 263.76 62.10 270.34 69.69 277.25 76.75 C 286.28 86.61 285.72 102.89 276.31 112.31 C 223.38 165.37 170.38 218.37 117.35 271.34 C 107.72 280.99 91.01 281.25 81.11 271.86 C 74.39 264.94 66.82 258.69 61.24 250.77 C 53.72 238.52 58.85 221.07 71.64 214.62 C 94.11 203.87 116.72 193.38 139.33 182.91 C 123.81 166.36 107.30 150.68 91.37 134.49 C 60.20 140.28 27.37 116.78 23.71 85.08 Z" /><path d=" M 205.21 201.23 C 225.32 181.36 260.88 181.11 281.14 200.86 C 299.25 218.75 317.37 236.65 335.10 254.93 C 356.73 278.01 352.01 318.70 326.03 336.56 C 320.07 330.47 313.73 324.65 308.12 318.28 C 323.86 309.39 328.76 286.18 316.63 272.39 C 301.73 256.95 286.30 242.03 271.24 226.75 C 264.49 219.65 256.80 212.00 246.37 211.52 C 224.65 208.64 205.52 233.36 214.49 253.58 C 221.09 266.81 234.22 275.12 243.62 286.24 C 240.43 295.96 238.09 306.13 238.29 316.46 C 225.55 304.29 213.16 291.73 200.89 279.09 C 180.97 257.57 183.10 220.45 205.21 201.23 Z" /><path d=" M 273.90 352.07 C 252.28 328.99 256.98 288.31 282.96 270.46 C 288.93 276.54 295.26 282.36 300.88 288.72 C 285.14 297.62 280.23 320.82 292.38 334.61 C 307.27 350.05 322.70 364.96 337.75 380.25 C 344.51 387.35 352.20 395.00 362.64 395.48 C 384.35 398.37 403.49 373.64 394.51 353.42 C 387.92 340.18 374.78 331.88 365.38 320.76 C 368.56 311.04 370.91 300.86 370.71 290.54 C 383.45 302.70 395.84 315.27 408.11 327.91 C 428.03 349.43 425.90 386.55 403.78 405.77 C 383.68 425.64 348.13 425.89 327.86 406.14 C 309.75 388.25 291.60 370.37 273.90 352.07 Z" /><path d=" M 422.11 403.83 C 431.96 394.07 441.60 384.06 451.66 374.51 C 460.90 383.74 471.89 392.70 474.89 406.11 C 480.16 429.97 484.08 454.13 488.76 478.12 C 490.00 483.41 484.47 488.29 479.35 486.63 C 454.66 481.52 429.55 478.12 405.14 471.84 C 393.17 467.97 385.20 457.75 376.55 449.27 C 386.39 439.49 396.13 429.60 406.06 419.91 C 416.37 433.45 435.74 414.00 422.11 403.83 Z" /></g></svg>
<svg width="512pt" height="512pt" viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg">
<g fill="#2078CF">
<path d=" M 23.71 85.08 C 17.22 49.81 49.44 14.86 85.08 18.12 C 118.83 19.21 145.72 53.33 139.45 86.37 C 155.64 102.30 171.32 118.83 187.87 134.36 C 198.32 111.73 208.84 89.12 219.57 66.62 C 226.05 53.84 243.47 48.74 255.73 56.27 C 263.76 62.10 270.34 69.69 277.25 76.75 C 286.28 86.61 285.72 102.89 276.31 112.31 C 223.38 165.37 170.38 218.37 117.35 271.34 C 107.72 280.99 91.01 281.25 81.11 271.86 C 74.39 264.94 66.82 258.69 61.24 250.77 C 53.72 238.52 58.85 221.07 71.64 214.62 C 94.11 203.87 116.72 193.38 139.33 182.91 C 123.81 166.36 107.30 150.68 91.37 134.49 C 60.20 140.28 27.37 116.78 23.71 85.08 Z"/>
<path d=" M 205.21 201.23 C 225.32 181.36 260.88 181.11 281.14 200.86 C 299.25 218.75 317.37 236.65 335.10 254.93 C 356.73 278.01 352.01 318.70 326.03 336.56 C 320.07 330.47 313.73 324.65 308.12 318.28 C 323.86 309.39 328.76 286.18 316.63 272.39 C 301.73 256.95 286.30 242.03 271.24 226.75 C 264.49 219.65 256.80 212.00 246.37 211.52 C 224.65 208.64 205.52 233.36 214.49 253.58 C 221.09 266.81 234.22 275.12 243.62 286.24 C 240.43 295.96 238.09 306.13 238.29 316.46 C 225.55 304.29 213.16 291.73 200.89 279.09 C 180.97 257.57 183.10 220.45 205.21 201.23 Z"/>
<path d=" M 273.90 352.07 C 252.28 328.99 256.98 288.31 282.96 270.46 C 288.93 276.54 295.26 282.36 300.88 288.72 C 285.14 297.62 280.23 320.82 292.38 334.61 C 307.27 350.05 322.70 364.96 337.75 380.25 C 344.51 387.35 352.20 395.00 362.64 395.48 C 384.35 398.37 403.49 373.64 394.51 353.42 C 387.92 340.18 374.78 331.88 365.38 320.76 C 368.56 311.04 370.91 300.86 370.71 290.54 C 383.45 302.70 395.84 315.27 408.11 327.91 C 428.03 349.43 425.90 386.55 403.78 405.77 C 383.68 425.64 348.13 425.89 327.86 406.14 C 309.75 388.25 291.60 370.37 273.90 352.07 Z"/>
<path d=" M 422.11 403.83 C 431.96 394.07 441.60 384.06 451.66 374.51 C 460.90 383.74 471.89 392.70 474.89 406.11 C 480.16 429.97 484.08 454.13 488.76 478.12 C 490.00 483.41 484.47 488.29 479.35 486.63 C 454.66 481.52 429.55 478.12 405.14 471.84 C 393.17 467.97 385.20 457.75 376.55 449.27 C 386.39 439.49 396.13 429.60 406.06 419.91 C 416.37 433.45 435.74 414.00 422.11 403.83 Z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 287 B

After

Width:  |  Height:  |  Size: 319 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 381 B

After

Width:  |  Height:  |  Size: 420 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 437 B

After

Width:  |  Height:  |  Size: 509 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 466 B

After

Width:  |  Height:  |  Size: 570 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 551 B

After

Width:  |  Height:  |  Size: 642 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 638 B

After

Width:  |  Height:  |  Size: 799 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

After

Width:  |  Height:  |  Size: 834 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 750 B

After

Width:  |  Height:  |  Size: 908 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 783 B

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 984 B

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,23 +1,20 @@
// Do this as the first thing so that any code reading it knows the right env.
process.env.BABEL_ENV = 'production';
process.env.NODE_ENV = 'production';
import chalk from 'chalk';
import AdmZip from 'adm-zip';
import fs from 'fs';
function zipDist(version) {
const versionFileName = `./dist/shlink-web-client_${version}_dist.zip`;
const fileBaseName = `shlink-web-client_${version}_dist`;
const versionFileName = `./dist/${fileBaseName}.zip`;
console.log(chalk.cyan(`Generating dist file for version ${chalk.bold(version)}...`));
const zip = new AdmZip();
try {
if (fs.existsSync(versionFileName)) {
fs.unlink(versionFileName);
fs.unlinkSync(versionFileName);
}
zip.addLocalFolder('./build', `shlink-web-client_${version}_dist`);
zip.addLocalFolder('./build', fileBaseName);
zip.writeZip(versionFileName);
console.log(chalk.green('Dist file properly generated'));
} catch (e) {

View File

@@ -10,7 +10,8 @@ setup_single_shlink_server() {
[ -n "$SHLINK_SERVER_URL" ] || return 0
[ -n "$SHLINK_SERVER_API_KEY" ] || return 0
local name="${SHLINK_SERVER_NAME:-Shlink}"
echo "[{\"name\":\"${name}\",\"url\":\"${SHLINK_SERVER_URL}\",\"apiKey\":\"${SHLINK_SERVER_API_KEY}\"}]" > /usr/share/nginx/html/servers.json
local forwardCredentials="${SHLINK_SERVER_FORWARD_CREDENTIALS:-false}"
echo "[{\"name\":\"${name}\",\"url\":\"${SHLINK_SERVER_URL}\",\"apiKey\":\"${SHLINK_SERVER_API_KEY}\",\"forwardCredentials\":${forwardCredentials}}]" > /usr/share/nginx/html/servers.json
}
setup_single_shlink_server

View File

@@ -4,7 +4,7 @@ import type { GetState } from '../../container/types';
import type { ServerWithId } from '../../servers/data';
import { hasServerData } from '../../servers/data';
const apiClients: Record<string, ShlinkApiClient> = {};
const apiClients: Map<string, ShlinkApiClient> = new Map();
const isGetState = (getStateOrSelectedServer: GetState | ServerWithId): getStateOrSelectedServer is GetState =>
typeof getStateOrSelectedServer === 'function';
@@ -18,14 +18,22 @@ const getSelectedServerFromState = (getState: GetState): ServerWithId => {
};
export const buildShlinkApiClient = (httpClient: HttpClient) => (getStateOrSelectedServer: GetState | ServerWithId) => {
const { url: baseUrl, apiKey } = isGetState(getStateOrSelectedServer)
const { url: baseUrl, apiKey, forwardCredentials } = isGetState(getStateOrSelectedServer)
? getSelectedServerFromState(getStateOrSelectedServer)
: getStateOrSelectedServer;
const serverKey = `${apiKey}_${baseUrl}`;
const serverKey = `${apiKey}_${baseUrl}_${forwardCredentials ? 'forward' : 'no-forward'}`;
const existingApiClient = apiClients.get(serverKey);
const apiClient = apiClients[serverKey] ?? new ShlinkApiClient(httpClient, { apiKey, baseUrl });
apiClients[serverKey] = apiClient;
if (existingApiClient) {
return existingApiClient;
}
const apiClient = new ShlinkApiClient(
httpClient,
{ apiKey, baseUrl },
{ requestCredentials: forwardCredentials ? 'include' : undefined },
);
apiClients.set(serverKey, apiClient);
return apiClient;
};

View File

@@ -1,26 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
.app-container {
height: 100%;
}
.app {
padding-top: $headerHeight;
height: 100%;
}
.shlink-wrapper {
min-height: 100%;
padding-bottom: $footer-height + $footer-margin;
margin-bottom: -($footer-height + $footer-margin);
}
.shlink-footer {
height: $footer-height;
margin-top: $footer-margin;
padding: 0;
@media (min-width: $mdMin) {
padding: 0 15px;
}
}

View File

@@ -3,14 +3,13 @@ import type { Settings } from '@shlinkio/shlink-web-component/settings';
import { clsx } from 'clsx';
import type { FC } from 'react';
import { useEffect, useRef } from 'react';
import { Route, Routes, useLocation } from 'react-router-dom';
import { Route, Routes, useLocation } from 'react-router';
import { AppUpdateBanner } from '../common/AppUpdateBanner';
import { NotFound } from '../common/NotFound';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
import type { ServersMap } from '../servers/data';
import { forceUpdate } from '../utils/helpers/sw';
import './App.scss';
type AppProps = {
fetchServers: () => void;
@@ -62,28 +61,40 @@ const App: FCWithDeps<AppProps, AppDeps> = (
}, [settings.ui?.theme]);
return (
<div className="container-fluid app-container">
<MainHeader />
<div className="h-full">
<>
<MainHeader />
<div className="app">
<div className={clsx('shlink-wrapper', { 'd-flex align-items-center pt-3': isHome })}>
<Routes>
<Route index element={<Home />} />
<Route path="/settings/*" element={<Settings />} />
<Route path="/manage-servers" element={<ManageServers />} />
<Route path="/server/create" element={<CreateServer />} />
<Route path="/server/:serverId/edit" element={<EditServer />} />
<Route path="/server/:serverId/*" element={<ShlinkWebComponentContainer />} />
<Route path="*" element={<NotFound />} />
</Routes>
<div className="h-full pt-(--header-height)">
<div
data-testid="shlink-wrapper"
className={clsx(
'min-h-full pb-[calc(var(--footer-height)+var(--footer-margin))] -mb-[calc(var(--footer-height)+var(--footer-margin))]',
{ 'flex items-center pt-4': isHome },
)}
>
<Routes>
<Route index element={<Home />} />
<Route path="/settings">
{['', '*'].map((path) => <Route key={path} path={path} element={<Settings />} />)}
</Route>
<Route path="/manage-servers" element={<ManageServers />} />
<Route path="/server/create" element={<CreateServer />} />
<Route path="/server/:serverId/edit" element={<EditServer />} />
<Route path="/server/:serverId">
{['', '*'].map((path) => <Route key={path} path={path} element={<ShlinkWebComponentContainer />} />)}
</Route>
<Route path="*" element={<NotFound />} />
</Routes>
</div>
<div className="h-(--footer-height) mt-(--footer-margin) md:px-4">
<ShlinkVersionsContainer />
</div>
</div>
</>
<div className="shlink-footer">
<ShlinkVersionsContainer />
</div>
</div>
<AppUpdateBanner isOpen={appUpdated} toggle={resetAppUpdate} forceUpdate={forceUpdate} />
<AppUpdateBanner isOpen={appUpdated} onClose={resetAppUpdate} forceUpdate={forceUpdate} />
</div>
);
};

View File

@@ -1,17 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
@import '../utils/mixins/horizontal-align';
.app-update-banner.app-update-banner {
@include horizontal-align();
position: fixed;
top: $headerHeight - 25px;
padding: 0 4rem 0 0;
z-index: 1040;
margin: 0;
color: var(--text-color);
text-align: center;
width: 700px;
max-width: calc(100% - 30px);
box-shadow: 0 0 1rem var(--brand-color);
}

View File

@@ -1,34 +1,46 @@
import { faSyncAlt as reloadIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { SimpleCard, useToggle } from '@shlinkio/shlink-frontend-kit';
import type { MouseEventHandler } from 'react';
import { forwardRef, useCallback } from 'react';
import { Alert, Button } from 'reactstrap';
import './AppUpdateBanner.scss';
import { Button, Card, CloseButton,useToggle } from '@shlinkio/shlink-frontend-kit';
import { clsx } from 'clsx';
import type { FC } from 'react';
import { useCallback } from 'react';
interface AppUpdateBannerProps {
isOpen: boolean;
toggle: MouseEventHandler<any>;
onClose: () => void;
forceUpdate: () => void;
}
export const AppUpdateBanner = forwardRef<HTMLElement, AppUpdateBannerProps>(({ isOpen, toggle, forceUpdate }, ref) => {
const [isUpdating,, setUpdating] = useToggle();
export const AppUpdateBanner: FC<AppUpdateBannerProps> = ({ isOpen, onClose, forceUpdate }) => {
const { flag: isUpdating, setToTrue: setUpdating } = useToggle();
const update = useCallback(() => {
setUpdating();
forceUpdate();
}, [forceUpdate, setUpdating]);
if (!isOpen) {
return null;
}
return (
<Alert className="app-update-banner" isOpen={isOpen} toggle={toggle} tag={SimpleCard} color="secondary" innerRef={ref}>
<h4 className="mb-4">This app has just been updated!</h4>
<p className="mb-0">
<Card
role="alert"
className={clsx(
'w-[700px] max-w-[calc(100%-30px)]',
'fixed top-[35px] left-[50%] translate-x-[-50%] z-[1040]',
)}
>
<Card.Header className="flex items-center justify-between">
<h5>This app has just been updated!</h5>
<CloseButton onClick={onClose} />
</Card.Header>
<Card.Body className="flex gap-4 items-center justify-between max-md:flex-col">
Restart it to enjoy the new features.
<Button role="button" disabled={isUpdating} className="ms-2" color="secondary" size="sm" onClick={update}>
{!isUpdating && <>Restart now <FontAwesomeIcon icon={reloadIcon} className="ms-1" /></>}
<Button disabled={isUpdating} variant="secondary" solid onClick={update}>
{!isUpdating && <>Restart now <FontAwesomeIcon icon={reloadIcon} /></>}
{isUpdating && <>Restarting...</>}
</Button>
</p>
</Alert>
</Card.Body>
</Card>
);
});
};

View File

@@ -1,7 +1,7 @@
import { SimpleCard } from '@shlinkio/shlink-frontend-kit';
import { Button } from '@shlinkio/shlink-frontend-kit';
import type { PropsWithChildren, ReactNode } from 'react';
import { Component } from 'react';
import { Button } from 'reactstrap';
import { ErrorLayout } from './ErrorLayout';
type ErrorHandlerProps = PropsWithChildren<{
location?: typeof window.location;
@@ -33,14 +33,11 @@ export class ErrorHandler extends Component<ErrorHandlerProps, ErrorHandlerState
if (hasError) {
return (
<div className="home">
<SimpleCard className="p-4">
<h1>Oops! This is awkward :S</h1>
<p>It seems that something went wrong. Try refreshing the page or just click this button.</p>
<br />
<Button outline color="primary" onClick={() => location.reload()}>Take me back</Button>
</SimpleCard>
</div>
<ErrorLayout title="Oops! This is awkward :S">
<p>It seems that something went wrong. Try refreshing the page or just click this button.</p>
<br />
<Button size="lg" onClick={() => location.reload()}>Take me back</Button>
</ErrorLayout>
);
}

View File

@@ -0,0 +1,15 @@
import { SimpleCard } from '@shlinkio/shlink-frontend-kit';
import type { FC, PropsWithChildren } from 'react';
export type ErrorLayoutProps = PropsWithChildren<{
title: string;
}>;
export const ErrorLayout: FC<ErrorLayoutProps> = ({ children, title }) => (
<div className="pt-4">
<SimpleCard className="p-4 w-full lg:w-[65%] m-auto">
<h2>{title}</h2>
{children}
</SimpleCard>
</div>
);

View File

@@ -1,15 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
.home__title {
font-size: 1.75rem;
@media (min-width: $mdMin) {
font-size: 2.2rem;
}
}
.home__servers-container {
@media (min-width: $mdMin) {
border-left: 1px solid var(--border-color);
}
}

View File

@@ -1,18 +1,17 @@
import { faExternalLinkAlt, faPlus } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Button, Card } from '@shlinkio/shlink-frontend-kit';
import { clsx } from 'clsx';
import { useEffect } from 'react';
import { ExternalLink } from 'react-external-link';
import { Link, useNavigate } from 'react-router-dom';
import { Card } from 'reactstrap';
import { useNavigate } from 'react-router';
import type { ServersMap } from '../servers/data';
import { ServersListGroup } from '../servers/ServersListGroup';
import { ShlinkLogo } from './img/ShlinkLogo';
import './Home.scss';
interface HomeProps {
export type HomeProps = {
servers: ServersMap;
}
};
export const Home = ({ servers }: HomeProps) => {
const navigate = useNavigate();
@@ -28,42 +27,42 @@ export const Home = ({ servers }: HomeProps) => {
}, [serversList, navigate]);
return (
<div className="w-100">
<Card className="mx-auto" style={{ maxWidth: '720px' }}>
<div className="d-flex flex-column flex-md-row">
<div className="p-4 d-none d-md-flex align-items-center" style={{ width: '40%' }}>
<div className="w-100">
<div className="px-3 w-full">
<Card className="mx-auto max-w-[720px] overflow-hidden">
<div className="flex flex-col md:flex-row">
<div className="p-6 hidden md:flex items-center w-[40%]">
<div className="w-full">
<ShlinkLogo />
</div>
</div>
<div className="home__servers-container flex-grow-1">
<div className="md:border-l border-lm-border dark:border-dm-border flex-grow">
<h1
className={clsx('home__title p-4 text-center m-0', { 'border-bottom': !hasServers })}
style={{ borderColor: 'var(--border-color) !important' }}
className={clsx(
'p-4 text-center border-lm-border dark:border-dm-border',
{ 'border-b': !hasServers },
)}
>
Welcome!
</h1>
<ServersListGroup embedded servers={serversList}>
{!hasServers && (
<div className="p-4 text-center d-flex flex-column gap-5">
<p className="mb-0">This application will help you manage your Shlink servers.</p>
<p className="mb-0">
<Link to="/server/create" className="btn btn-outline-primary btn-lg me-2">
<FontAwesomeIcon icon={faPlus}/> <span className="ms-1">Add a server</span>
</Link>
</p>
<p className="mb-0">
<ExternalLink href="https://shlink.io/documentation">
<small>
<span className="me-2">Learn more about Shlink</span>
<FontAwesomeIcon icon={faExternalLinkAlt}/>
</small>
</ExternalLink>
</p>
</div>
)}
</ServersListGroup>
{hasServers ? <ServersListGroup servers={serversList} /> : (
<div className="p-6 text-center flex flex-col gap-12 text-xl">
<p>This application will help you manage your Shlink servers.</p>
<p>
<Button to="/server/create" size="lg" inline>
<FontAwesomeIcon icon={faPlus} widthAuto /> Add a server
</Button>
</p>
<p>
<ExternalLink href="https://shlink.io/documentation">
<small>
<span className="mr-2">Learn more about Shlink</span>
<FontAwesomeIcon icon={faExternalLinkAlt} />
</small>
</ExternalLink>
</p>
</div>
)}
</div>
</div>
</Card>

View File

@@ -1,24 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
.main-header.main-header {
color: white;
background-color: var(--brand-color) !important;
.navbar-brand {
color: inherit !important;
}
}
.main-header__brand-logo {
width: 26px;
margin-right: 5px;
}
.main-header__toggle-icon {
width: 20px;
transition: transform 300ms;
}
.main-header__toggle-icon--opened {
transform: rotate(180deg);
}

View File

@@ -1,15 +1,11 @@
import { faChevronDown as arrowIcon, faCogs as cogsIcon } from '@fortawesome/free-solid-svg-icons';
import { faCogs as cogsIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { useToggle } from '@shlinkio/shlink-frontend-kit';
import { clsx } from 'clsx';
import { NavBar } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { useEffect } from 'react';
import { Link, useLocation } from 'react-router-dom';
import { Collapse, Nav, Navbar, NavbarBrand, NavbarToggler, NavItem, NavLink } from 'reactstrap';
import { Link, useLocation } from 'react-router';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
import { ShlinkLogo } from './img/ShlinkLogo';
import './MainHeader.scss';
type MainHeaderDeps = {
ServersDropdown: FC;
@@ -17,37 +13,28 @@ type MainHeaderDeps = {
const MainHeader: FCWithDeps<unknown, MainHeaderDeps> = () => {
const { ServersDropdown } = useDependencies(MainHeader);
const [isNotCollapsed, toggleCollapse, , collapse] = useToggle();
const location = useLocation();
const { pathname } = location;
// In mobile devices, collapse the navbar when location changes
useEffect(collapse, [location, collapse]);
const { pathname } = useLocation();
const settingsPath = '/settings';
const toggleClass = clsx('main-header__toggle-icon', { 'main-header__toggle-icon--opened': isNotCollapsed });
return (
<Navbar color="primary" dark fixed="top" className="main-header" expand="md">
<NavbarBrand tag={Link} to="/">
<ShlinkLogo className="main-header__brand-logo" color="white" /> Shlink
</NavbarBrand>
<NavbarToggler onClick={toggleCollapse}>
<FontAwesomeIcon icon={arrowIcon} className={toggleClass} />
</NavbarToggler>
<Collapse navbar isOpen={isNotCollapsed}>
<Nav navbar className="ms-auto">
<NavItem>
<NavLink tag={Link} to={settingsPath} active={pathname.startsWith(settingsPath)}>
<FontAwesomeIcon icon={cogsIcon} />&nbsp; Settings
</NavLink>
</NavItem>
<ServersDropdown />
</Nav>
</Collapse>
</Navbar>
<NavBar
className="[&]:fixed top-0 z-900"
brand={(
<Link to="/" className="[&]:text-white no-underline flex items-center gap-2">
<ShlinkLogo className="w-7" color="white" /> <small className="font-normal">Shlink</small>
</Link>
)}
>
<NavBar.MenuItem
to={settingsPath}
active={pathname.startsWith(settingsPath)}
className="flex items-center gap-1.5"
>
<FontAwesomeIcon icon={cogsIcon} /> Settings
</NavBar.MenuItem>
<ServersDropdown />
</NavBar>
);
};

View File

@@ -1,9 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
.no-menu-wrapper {
padding: 15px 0 0;
@media (min-width: $mdMin) {
padding: 30px 20px 20px;
}
}

View File

@@ -1,11 +1,12 @@
import { clsx } from 'clsx';
import type { FC, PropsWithChildren } from 'react';
import './NoMenuLayout.scss';
export type NoMenuLayoutProps = PropsWithChildren & {
className?: string;
};
export const NoMenuLayout: FC<NoMenuLayoutProps> = ({ children, className }) => (
<div className={clsx('no-menu-wrapper container-xl', className)}>{children}</div>
<div className={clsx('container mx-auto p-5 pt-8 max-md:p-3 max-md:py-4', className)}>
{children}
</div>
);

View File

@@ -1,19 +1,16 @@
import { SimpleCard } from '@shlinkio/shlink-frontend-kit';
import { Button } from '@shlinkio/shlink-frontend-kit';
import type { FC, PropsWithChildren } from 'react';
import { Link } from 'react-router-dom';
import { ErrorLayout } from './ErrorLayout';
type NotFoundProps = PropsWithChildren<{ to?: string }>;
export const NotFound: FC<NotFoundProps> = ({ to = '/', children = 'Home' }) => (
<div className="home">
<SimpleCard className="p-4">
<h2>Oops! We could not find requested route.</h2>
<p>
Use your browser&apos;s back button to navigate to the page you have previously come from, or just press this
button.
</p>
<br />
<Link to={to} className="btn btn-outline-primary btn-lg">{children}</Link>
</SimpleCard>
</div>
<ErrorLayout title="Oops! We could not find requested route.">
<p>
Use your browser&apos;s back button to navigate to the page you have previously come from, or just press this
button.
</p>
<br />
<Button inline to={to} size="lg">{children}</Button>
</ErrorLayout>
);

View File

@@ -1,6 +1,6 @@
import type { FC, PropsWithChildren } from 'react';
import { useEffect } from 'react';
import { useLocation } from 'react-router-dom';
import { useLocation } from 'react-router';
export const ScrollToTop: FC<PropsWithChildren> = ({ children }) => {
const location = useLocation();

View File

@@ -12,7 +12,7 @@ export interface ShlinkVersionsProps {
}
const VersionLink = ({ project, version }: { project: 'shlink' | 'shlink-web-client'; version: string }) => (
<ExternalLink href={`https://github.com/shlinkio/${project}/releases/${version}`} className="text-muted">
<ExternalLink href={`https://github.com/shlinkio/${project}/releases/${version}`} className="text-gray-500">
<b>{version}</b>
</ExternalLink>
);
@@ -21,7 +21,7 @@ export const ShlinkVersions = ({ selectedServer, clientVersion = SHLINK_WEB_CLIE
const normalizedClientVersion = normalizeVersion(clientVersion);
return (
<small className="text-muted">
<small className="text-gray-500">
{isReachableServer(selectedServer) && (
<>Server: <VersionLink project="shlink" version={selectedServer.printableVersion} /> - </>
)}

View File

@@ -1,9 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
.shlink-versions-container--with-sidebar {
margin-left: 0;
@media (min-width: $mdMin) {
margin-left: $asideMenuWidth;
}
}

View File

@@ -2,7 +2,6 @@ import { clsx } from 'clsx';
import type { SelectedServer } from '../servers/data';
import { isReachableServer } from '../servers/data';
import { ShlinkVersions } from './ShlinkVersions';
import './ShlinkVersionsContainer.scss';
export type ShlinkVersionsContainerProps = {
selectedServer: SelectedServer;
@@ -10,9 +9,7 @@ export type ShlinkVersionsContainerProps = {
export const ShlinkVersionsContainer = ({ selectedServer }: ShlinkVersionsContainerProps) => (
<div
className={clsx('text-center', {
'shlink-versions-container--with-sidebar': isReachableServer(selectedServer),
})}
className={clsx('text-center', { 'md:ml-(--aside-menu-width)': isReachableServer(selectedServer) })}
>
<ShlinkVersions selectedServer={selectedServer} />
</div>

View File

@@ -1,4 +1,9 @@
import type { ShlinkWebComponentType, TagColorsStorage } from '@shlinkio/shlink-web-component';
import type { TagColorsStorage } from '@shlinkio/shlink-web-component';
import {
ShlinkSidebarToggleButton,
ShlinkSidebarVisibilityProvider,
ShlinkWebComponent,
} from '@shlinkio/shlink-web-component';
import type { Settings } from '@shlinkio/shlink-web-component/settings';
import type { FC } from 'react';
import { memo } from 'react';
@@ -17,7 +22,6 @@ type ShlinkWebComponentContainerProps = WithSelectedServerProps & {
type ShlinkWebComponentContainerDeps = {
buildShlinkApiClient: ShlinkApiClientBuilder,
TagColorsStorage: TagColorsStorage,
ShlinkWebComponent: ShlinkWebComponentType,
ServerError: FC,
};
@@ -32,7 +36,6 @@ const ShlinkWebComponentContainer: FCWithDeps<
const {
buildShlinkApiClient,
TagColorsStorage: tagColorsStorage,
ShlinkWebComponent,
ServerError,
} = useDependencies(ShlinkWebComponentContainer);
@@ -42,22 +45,25 @@ const ShlinkWebComponentContainer: FCWithDeps<
const routesPrefix = `/server/${selectedServer.id}`;
return (
<ShlinkWebComponent
serverVersion={selectedServer.version}
apiClient={buildShlinkApiClient(selectedServer)}
settings={settings}
routesPrefix={routesPrefix}
tagColorsStorage={tagColorsStorage}
createNotFound={(nonPrefixedHomePath) => (
<NotFound to={`${routesPrefix}${nonPrefixedHomePath}`}>List short URLs</NotFound>
)}
/>
<ShlinkSidebarVisibilityProvider>
<ShlinkSidebarToggleButton className="fixed top-3.5 left-3 z-901" />
<ShlinkWebComponent
serverVersion={selectedServer.version}
apiClient={buildShlinkApiClient(selectedServer)}
settings={settings}
routesPrefix={routesPrefix}
tagColorsStorage={tagColorsStorage}
createNotFound={(nonPrefixedHomePath: string) => (
<NotFound to={`${routesPrefix}${nonPrefixedHomePath}`}>List short URLs</NotFound>
)}
autoSidebarToggle={false}
/>
</ShlinkSidebarVisibilityProvider>
);
}));
export const ShlinkWebComponentContainerFactory = componentFactory(ShlinkWebComponentContainer, [
'buildShlinkApiClient',
'TagColorsStorage',
'ShlinkWebComponent',
'ServerError',
]);

View File

@@ -1,11 +1,11 @@
import { MAIN_COLOR } from '@shlinkio/shlink-frontend-kit';
import { brandColor } from '@shlinkio/shlink-frontend-kit';
export interface ShlinkLogoProps {
color?: string;
className?: string;
}
export const ShlinkLogo = ({ color = MAIN_COLOR, className }: ShlinkLogoProps) => (
export const ShlinkLogo = ({ color = brandColor(), className }: ShlinkLogoProps) => (
<svg className={className} viewBox="0 0 512 512" version="1.1" xmlns="http://www.w3.org/2000/svg">
<g fill={color}>
<path

View File

@@ -1,5 +1,4 @@
import { FetchHttpClient } from '@shlinkio/shlink-js-sdk/browser';
import { ShlinkWebComponent } from '@shlinkio/shlink-web-component';
import { FetchHttpClient } from '@shlinkio/shlink-js-sdk/fetch';
import type Bottle from 'bottlejs';
import type { ConnectDecorator } from '../../container/types';
import { withoutSelectedServer } from '../../servers/helpers/withoutSelectedServer';
@@ -26,7 +25,6 @@ export const provideServices = (bottle: Bottle, connect: ConnectDecorator) => {
bottle.decorator('Home', withoutSelectedServer);
bottle.decorator('Home', connect(['servers'], ['resetSelectedServer']));
bottle.serviceFactory('ShlinkWebComponent', () => ShlinkWebComponent);
bottle.factory('ShlinkWebComponentContainer', ShlinkWebComponentContainerFactory);
bottle.decorator('ShlinkWebComponentContainer', connect(['selectedServer', 'settings'], ['selectServer']));

View File

@@ -1,12 +1,11 @@
import type { IContainer } from 'bottlejs';
import type { FC } from 'react';
import { useRef } from 'react';
import { useMemo } from 'react';
export type FCWithDeps<Props, Deps> = FC<Props> & Partial<Deps>;
export function useDependencies<Deps>(obj: Deps): Omit<Required<Deps>, keyof FC> {
const depsRef = useRef(obj as Omit<Required<Deps>, keyof FC>);
return depsRef.current;
return useMemo(() => obj as Omit<Required<Deps>, keyof FC>, [obj]);
}
export function componentFactory<Deps, CompType = Omit<Partial<Deps>, keyof FC>>(

View File

@@ -1,4 +0,0 @@
@import '../node_modules/@shlinkio/shlink-frontend-kit/dist/base'; // Before bootstrap stylesheet. Includes SASS var overrides
@import '../node_modules/bootstrap/scss/bootstrap.scss';
@import '../node_modules/@shlinkio/shlink-frontend-kit/dist/index'; // After bootstrap. Includes CSS overwrites
@import '../node_modules/@shlinkio/shlink-web-component/dist/index';

View File

@@ -1,11 +1,11 @@
import { createRoot } from 'react-dom/client';
import { Provider } from 'react-redux';
import { BrowserRouter } from 'react-router-dom';
import { BrowserRouter } from 'react-router';
import pack from '../package.json';
import { container } from './container';
import { setUpStore } from './container/store';
import { register as registerServiceWorker } from './serviceWorkerRegistration';
import './index.scss';
import './tailwind.css';
const store = setUpStore(container);
const { App, ScrollToTop, ErrorHandler, appUpdateAvailable } = container;

View File

@@ -1,9 +1,8 @@
import type { TimeoutToggle } from '@shlinkio/shlink-frontend-kit';
import { Result, useToggle } from '@shlinkio/shlink-frontend-kit';
import type { ResultProps,TimeoutToggle } from '@shlinkio/shlink-frontend-kit';
import { Button, Result,useToggle } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { useCallback, useState } from 'react';
import { useNavigate } from 'react-router-dom';
import { Button } from 'reactstrap';
import { useNavigate } from 'react-router';
import { NoMenuLayout } from '../common/NoMenuLayout';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
@@ -26,11 +25,11 @@ type CreateServerDeps = {
useTimeoutToggle: TimeoutToggle;
};
const ImportResult = ({ type }: { type: 'error' | 'success' }) => (
<div className="mt-3">
<Result type={type}>
{type === 'success' && 'Servers properly imported. You can now select one from the list :)'}
{type === 'error' && 'The servers could not be imported. Make sure the format is correct.'}
const ImportResult = ({ variant }: Pick<ResultProps, 'variant'>) => (
<div className="mt-4">
<Result variant={variant}>
{variant === 'success' && 'Servers properly imported. You can now select one from the list :)'}
{variant === 'error' && 'The servers could not be imported. Make sure the format is correct.'}
</Result>
</div>
);
@@ -40,9 +39,11 @@ const CreateServer: FCWithDeps<CreateServerProps, CreateServerDeps> = ({ servers
const navigate = useNavigate();
const goBack = useGoBack();
const hasServers = !!Object.keys(servers).length;
const [serversImported, setServersImported] = useTimeoutToggle(false, SHOW_IMPORT_MSG_TIME);
const [errorImporting, setErrorImporting] = useTimeoutToggle(false, SHOW_IMPORT_MSG_TIME);
const [isConfirmModalOpen, toggleConfirmModal] = useToggle();
// eslint-disable-next-line react-compiler/react-compiler
const [serversImported, setServersImported] = useTimeoutToggle({ delay: SHOW_IMPORT_MSG_TIME });
// eslint-disable-next-line react-compiler/react-compiler
const [errorImporting, setErrorImporting] = useTimeoutToggle({ delay: SHOW_IMPORT_MSG_TIME });
const { flag: isConfirmModalOpen, toggle: toggleConfirmModal } = useToggle();
const [serverData, setServerData] = useState<ServerData>();
const saveNewServer = useCallback((newServerData: ServerData) => {
const [newServerWithUniqueId] = ensureUniqueIds(servers, [newServerData]);
@@ -66,22 +67,22 @@ const CreateServer: FCWithDeps<CreateServerProps, CreateServerDeps> = ({ servers
return (
<NoMenuLayout>
<ServerForm title={<h5 className="mb-0">Add new server</h5>} onSubmit={onSubmit}>
<ServerForm title="Add new server" onSubmit={onSubmit}>
{!hasServers && (
<ImportServersBtn tooltipPlacement="top" onImport={setServersImported} onImportError={setErrorImporting} />
<ImportServersBtn tooltipPlacement="top" onImport={setServersImported} onError={setErrorImporting} />
)}
{hasServers && <Button outline onClick={goBack}>Cancel</Button>}
<Button outline color="primary" className="ms-2">Create server</Button>
{hasServers && <Button variant="secondary" onClick={goBack}>Cancel</Button>}
<Button type="submit">Create server</Button>
</ServerForm>
{serversImported && <ImportResult type="success" />}
{errorImporting && <ImportResult type="error" />}
{serversImported && <ImportResult variant="success" />}
{errorImporting && <ImportResult variant="error" />}
<DuplicatedServersModal
isOpen={isConfirmModalOpen}
open={isConfirmModalOpen}
duplicatedServers={serverData ? [serverData] : []}
onDiscard={goBack}
onSave={() => serverData && saveNewServer(serverData)}
onClose={goBack}
onConfirm={() => serverData && saveNewServer(serverData)}
/>
</NoMenuLayout>
);

View File

@@ -1,8 +1,7 @@
import { faMinusCircle as deleteIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { useToggle } from '@shlinkio/shlink-frontend-kit';
import { clsx } from 'clsx';
import type { FC, PropsWithChildren } from 'react';
import { useCallback } from 'react';
import { useNavigate } from 'react-router';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
import type { ServerWithId } from './data';
@@ -10,28 +9,29 @@ import type { DeleteServerModalProps } from './DeleteServerModal';
export type DeleteServerButtonProps = PropsWithChildren<{
server: ServerWithId;
className?: string;
textClassName?: string;
}>;
type DeleteServerButtonDeps = {
DeleteServerModal: FC<DeleteServerModalProps>;
};
const DeleteServerButton: FCWithDeps<DeleteServerButtonProps, DeleteServerButtonDeps> = (
{ server, className, children, textClassName },
) => {
const DeleteServerButton: FCWithDeps<DeleteServerButtonProps, DeleteServerButtonDeps> = ({ server, children }) => {
const { DeleteServerModal } = useDependencies(DeleteServerButton);
const [isModalOpen, , showModal, hideModal] = useToggle();
const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle();
const navigate = useNavigate();
const onClose = useCallback((confirmed: boolean) => {
hideModal();
if (confirmed) {
navigate('/');
}
}, [hideModal, navigate]);
return (
<>
<button type="button" className={clsx(className, 'p-0 bg-transparent border-0')} onClick={showModal}>
{!children && <FontAwesomeIcon fixedWidth icon={deleteIcon} />}
<span className={textClassName}>{children ?? 'Remove this server'}</span>
<button type="button" className="text-danger hover:underline" onClick={showModal}>
{children}
</button>
<DeleteServerModal server={server} isOpen={isModalOpen} toggle={hideModal} />
<DeleteServerModal server={server} open={isModalOpen} onClose={onClose} />
</>
);
};

View File

@@ -1,44 +1,37 @@
import type { ExitAction } from '@shlinkio/shlink-frontend-kit';
import { CardModal } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { useRef } from 'react';
import { useNavigate } from 'react-router-dom';
import { Button, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';
import { useCallback } from 'react';
import type { ServerWithId } from './data';
export interface DeleteServerModalProps {
export type DeleteServerModalProps = {
server: ServerWithId;
toggle: () => void;
isOpen: boolean;
redirectHome?: boolean;
}
onClose: (confirmed: boolean) => void;
open: boolean;
};
interface DeleteServerModalConnectProps extends DeleteServerModalProps {
type DeleteServerModalConnectProps = DeleteServerModalProps & {
deleteServer: (server: ServerWithId) => void;
}
};
export const DeleteServerModal: FC<DeleteServerModalConnectProps> = (
{ server, toggle, isOpen, deleteServer, redirectHome = true },
) => {
const navigate = useNavigate();
const doDelete = useRef<boolean>(false);
const toggleAndDelete = () => {
doDelete.current = true;
toggle();
};
const onClosed = () => {
if (!doDelete.current) {
return;
export const DeleteServerModal: FC<DeleteServerModalConnectProps> = ({ server, onClose, open, deleteServer }) => {
const onClosed = useCallback((exitAction: ExitAction) => {
if (exitAction === 'confirm') {
deleteServer(server);
}
deleteServer(server);
if (redirectHome) {
navigate('/');
}
};
}, [deleteServer, server]);
return (
<Modal isOpen={isOpen} toggle={toggle} centered onClosed={onClosed}>
<ModalHeader toggle={toggle} className="text-danger">Remove server</ModalHeader>
<ModalBody>
<CardModal
open={open}
title="Remove server"
variant="danger"
onClose={() => onClose(false)}
onConfirm={() => onClose(true)}
onClosed={onClosed}
confirmText="Delete"
>
<div className="flex flex-col gap-y-4">
<p>Are you sure you want to remove <b>{server ? server.name : ''}</b>?</p>
<p>
<i>
@@ -46,11 +39,7 @@ export const DeleteServerModal: FC<DeleteServerModalConnectProps> = (
You can create it again at any moment.
</i>
</p>
</ModalBody>
<ModalFooter>
<Button color="link" onClick={toggle}>Cancel</Button>
<Button color="danger" onClick={toggleAndDelete}>Delete</Button>
</ModalFooter>
</Modal>
</div>
</CardModal>
);
};

View File

@@ -1,6 +1,5 @@
import { useParsedQuery } from '@shlinkio/shlink-frontend-kit';
import { Button,useParsedQuery } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { Button } from 'reactstrap';
import { NoMenuLayout } from '../common/NoMenuLayout';
import type { FCWithDeps } from '../container/utils';
import { componentFactory } from '../container/utils';
@@ -40,12 +39,12 @@ const EditServer: FCWithDeps<EditServerProps, EditServerDeps> = withSelectedServ
return (
<NoMenuLayout>
<ServerForm
title={<h5 className="mb-0">Edit &quot;{selectedServer.name}&quot;</h5>}
title={<>Edit &quot;{selectedServer.name}&quot;</>}
initialValues={selectedServer}
onSubmit={handleSubmit}
>
<Button outline className="me-2" onClick={goBack}>Cancel</Button>
<Button outline color="primary">Save</Button>
<Button variant="secondary" onClick={goBack}>Cancel</Button>
<Button type="submit">Save</Button>
</ServerForm>
</NoMenuLayout>
);

View File

@@ -1,11 +1,9 @@
import { faFileDownload as exportIcon, faPlus as plusIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import type { TimeoutToggle } from '@shlinkio/shlink-frontend-kit';
import { Result, SearchField, SimpleCard } from '@shlinkio/shlink-frontend-kit';
import { Button, Result, SearchInput, SimpleCard, Table } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { useMemo, useState } from 'react';
import { Link } from 'react-router-dom';
import { Button } from 'reactstrap';
import { NoMenuLayout } from '../common/NoMenuLayout';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
@@ -41,48 +39,50 @@ const ManageServers: FCWithDeps<ManageServersProps, ManageServersDeps> = ({ serv
[allServers, searchTerm],
);
const hasAutoConnect = allServers.some(({ autoConnect }) => !!autoConnect);
const [errorImporting, setErrorImporting] = useTimeoutToggle(false, SHOW_IMPORT_MSG_TIME);
// eslint-disable-next-line react-compiler/react-compiler
const [errorImporting, setErrorImporting] = useTimeoutToggle({ delay: SHOW_IMPORT_MSG_TIME });
return (
<NoMenuLayout className="d-flex flex-column gap-3">
<SearchField onChange={setSearchTerm} />
<NoMenuLayout className="flex flex-col gap-y-4">
<SearchInput onChange={setSearchTerm} />
<div className="d-flex flex-column flex-md-row gap-2">
<div className="d-flex gap-2">
<ImportServersBtn className="flex-fill" onImportError={setErrorImporting}>Import servers</ImportServersBtn>
<div className="flex flex-col md:flex-row gap-2">
<div className="flex gap-2">
<ImportServersBtn className="flex-grow" onError={setErrorImporting}>Import servers</ImportServersBtn>
{filteredServers.length > 0 && (
<Button outline className="flex-fill" onClick={async () => serversExporter.exportServers()}>
<FontAwesomeIcon icon={exportIcon} fixedWidth /> Export servers
<Button variant="secondary" className="flex-grow" onClick={async () => serversExporter.exportServers()}>
<FontAwesomeIcon icon={exportIcon} widthAuto /> Export servers
</Button>
)}
</div>
<Button outline color="primary" className="ms-md-auto" tag={Link} to="/server/create">
<FontAwesomeIcon icon={plusIcon} fixedWidth /> Add a server
<Button className="md:ml-auto" to="/server/create">
<FontAwesomeIcon icon={plusIcon} widthAuto /> Add a server
</Button>
</div>
<SimpleCard>
<table className="table table-hover responsive-table mb-0">
<thead className="responsive-table__header">
<tr>
{hasAutoConnect && <th style={{ width: '50px' }}><span className="sr-only">Auto-connect</span></th>}
<th>Name</th>
<th>Base URL</th>
<th><span className="sr-only">Options</span></th>
</tr>
</thead>
<tbody>
{!filteredServers.length && <tr className="text-center"><td colSpan={4}>No servers found.</td></tr>}
{filteredServers.map((server) => (
<ManageServersRow key={server.id} server={server} hasAutoConnect={hasAutoConnect} />
))}
</tbody>
</table>
<SimpleCard className="card">
<Table header={(
<Table.Row>
{hasAutoConnect && (
<Table.Cell className="w-[35px]"><span className="sr-only">Auto-connect</span></Table.Cell>
)}
<Table.Cell>Name</Table.Cell>
<Table.Cell>Base URL</Table.Cell>
<Table.Cell><span className="sr-only">Options</span></Table.Cell>
</Table.Row>
)}>
{!filteredServers.length && (
<Table.Row className="text-center"><Table.Cell colSpan={4}>No servers found.</Table.Cell></Table.Row>
)}
{filteredServers.map((server) => (
<ManageServersRow key={server.id} server={server} hasAutoConnect={hasAutoConnect} />
))}
</Table>
</SimpleCard>
{errorImporting && (
<div>
<Result type="error">The servers could not be imported. Make sure the format is correct.</Result>
<Result variant="error">The servers could not be imported. Make sure the format is correct.</Result>
</div>
)}
</NoMenuLayout>

View File

@@ -1,8 +1,8 @@
import { faCheck as checkIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Table, Tooltip, useTooltip } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { Link } from 'react-router-dom';
import { UncontrolledTooltip } from 'reactstrap';
import { Link } from 'react-router';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
import type { ServerWithId } from './data';
@@ -19,29 +19,32 @@ type ManageServersRowDeps = {
const ManageServersRow: FCWithDeps<ManageServersRowProps, ManageServersRowDeps> = ({ server, hasAutoConnect }) => {
const { ManageServersRowDropdown } = useDependencies(ManageServersRow);
const { anchor, tooltip } = useTooltip();
return (
<tr className="responsive-table__row">
<Table.Row className="relative">
{hasAutoConnect && (
<td className="responsive-table__cell" data-th="Auto-connect">
<Table.Cell columnName="Auto-connect">
{server.autoConnect && (
<>
<FontAwesomeIcon icon={checkIcon} className="text-primary" id="autoConnectIcon" />
<UncontrolledTooltip target="autoConnectIcon" placement="right">
Auto-connect to this server
</UncontrolledTooltip>
<FontAwesomeIcon
icon={checkIcon}
className="text-lm-brand dark:text-dm-brand"
{...anchor}
/>
<Tooltip {...tooltip}>Auto-connect to this server</Tooltip>
</>
)}
</td>
</Table.Cell>
)}
<th className="responsive-table__cell" data-th="Name">
<Table.Cell className="font-bold" columnName="Name">
<Link to={`/server/${server.id}`}>{server.name}</Link>
</th>
<td className="responsive-table__cell" data-th="Base URL">{server.url}</td>
<td className="responsive-table__cell text-end">
</Table.Cell>
<Table.Cell columnName="Base URL" className="max-lg:border-b-0">{server.url}</Table.Cell>
<Table.Cell className="text-right max-lg:absolute right-0 -top-1 mx-lg:pt-0">
<ManageServersRowDropdown server={server} />
</td>
</tr>
</Table.Cell>
</Table.Row>
);
};

View File

@@ -6,10 +6,8 @@ import {
faPlug as connectIcon,
} from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { RowDropdownBtn, useToggle } from '@shlinkio/shlink-frontend-kit';
import { RowDropdown,useToggle } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { Link } from 'react-router-dom';
import { DropdownItem } from 'reactstrap';
import type { FCWithDeps } from '../container/utils';
import { componentFactory, useDependencies } from '../container/utils';
import type { ServerWithId } from './data';
@@ -31,29 +29,31 @@ const ManageServersRowDropdown: FCWithDeps<ManageServersRowDropdownConnectProps,
{ server, setAutoConnect },
) => {
const { DeleteServerModal } = useDependencies(ManageServersRowDropdown);
const [isModalOpen,, showModal, hideModal] = useToggle();
const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle();
const serverUrl = `/server/${server.id}`;
const { autoConnect: isAutoConnect } = server;
const autoConnectIcon = isAutoConnect ? toggleOffIcon : toggleOnIcon;
return (
<RowDropdownBtn minWidth={isAutoConnect ? 210 : 170}>
<DropdownItem tag={Link} to={serverUrl}>
<FontAwesomeIcon icon={connectIcon} fixedWidth /> Connect
</DropdownItem>
<DropdownItem tag={Link} to={`${serverUrl}/edit`}>
<FontAwesomeIcon icon={editIcon} fixedWidth /> Edit server
</DropdownItem>
<DropdownItem onClick={() => setAutoConnect(server, !isAutoConnect)}>
<FontAwesomeIcon icon={autoConnectIcon} fixedWidth /> {isAutoConnect ? 'Do not a' : 'A'}uto-connect
</DropdownItem>
<DropdownItem divider tag="hr" />
<DropdownItem className="dropdown-item--danger" onClick={showModal}>
<FontAwesomeIcon icon={deleteIcon} fixedWidth /> Remove server
</DropdownItem>
<>
<RowDropdown menuAlignment="right">
<RowDropdown.Item to={serverUrl} className="gap-1.5">
<FontAwesomeIcon icon={connectIcon} /> Connect
</RowDropdown.Item>
<RowDropdown.Item to={`${serverUrl}/edit`} className="gap-1.5">
<FontAwesomeIcon icon={editIcon} /> Edit server
</RowDropdown.Item>
<RowDropdown.Item onClick={() => setAutoConnect(server, !isAutoConnect)} className="gap-1.5">
<FontAwesomeIcon icon={autoConnectIcon} /> {isAutoConnect ? 'Do not a' : 'A'}uto-connect
</RowDropdown.Item>
<RowDropdown.Separator />
<RowDropdown.Item className="[&]:text-danger gap-1.5" onClick={showModal}>
<FontAwesomeIcon icon={deleteIcon} /> Remove server
</RowDropdown.Item>
</RowDropdown>
<DeleteServerModal redirectHome={false} server={server} isOpen={isModalOpen} toggle={hideModal} />
</RowDropdownBtn>
<DeleteServerModal server={server} open={isModalOpen} onClose={hideModal} />
</>
);
};

View File

@@ -1,7 +1,6 @@
import { faPlus as plusIcon, faServer as serverIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { Link } from 'react-router-dom';
import { DropdownItem, DropdownMenu, DropdownToggle, UncontrolledDropdown } from 'reactstrap';
import { Dropdown, NavBar } from '@shlinkio/shlink-frontend-kit';
import type { SelectedServer, ServersMap } from './data';
import { getServerId } from './data';
@@ -13,36 +12,29 @@ export interface ServersDropdownProps {
export const ServersDropdown = ({ servers, selectedServer }: ServersDropdownProps) => {
const serversList = Object.values(servers);
const renderServers = () => {
if (serversList.length === 0) {
return (
<DropdownItem tag={Link} to="/server/create">
<FontAwesomeIcon icon={plusIcon} /> <span className="ms-1">Add a server</span>
</DropdownItem>
);
}
return (
<>
{serversList.map(({ name, id }) => (
<DropdownItem key={id} tag={Link} to={`/server/${id}`} active={getServerId(selectedServer) === id}>
{name}
</DropdownItem>
))}
<DropdownItem divider tag="hr" />
<DropdownItem tag={Link} to="/manage-servers">
<FontAwesomeIcon icon={serverIcon} /> <span className="ms-1">Manage servers</span>
</DropdownItem>
</>
);
};
return (
<UncontrolledDropdown nav inNavbar>
<DropdownToggle nav caret>
<FontAwesomeIcon icon={serverIcon} /> <span className="ms-1">Servers</span>
</DropdownToggle>
<DropdownMenu end style={{ right: 0 }}>{renderServers()}</DropdownMenu>
</UncontrolledDropdown>
<NavBar.Dropdown buttonContent={(
<span className="flex items-center gap-1.5">
<FontAwesomeIcon icon={serverIcon} /> Servers
</span>
)}>
{serversList.length === 0 ? (
<Dropdown.Item to="/server/create">
<FontAwesomeIcon icon={plusIcon} /> Add a server
</Dropdown.Item>
) : (
<>
{serversList.map(({ name, id }) => (
<Dropdown.Item key={id} to={`/server/${id}`} selected={getServerId(selectedServer) === id}>
{name}
</Dropdown.Item>
))}
<Dropdown.Separator />
<Dropdown.Item to="/manage-servers">
<FontAwesomeIcon icon={serverIcon} /> Manage servers
</Dropdown.Item>
</>
)}
</NavBar.Dropdown>
);
};

View File

@@ -1,49 +0,0 @@
@import '../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
@import '../utils/mixins/vertical-align';
@import '../utils/mixins/thin-scroll';
.servers-list__list-group.servers-list__list-group {
width: 100%;
}
.servers-list__list-group:not(.servers-list__list-group--embedded) {
max-width: 400px;
box-shadow: 0 .125rem .25rem rgb(0 0 0 / .075);
}
.servers-list__server-item.servers-list__server-item {
text-align: left;
position: relative;
padding: .75rem 2.5rem .75rem 1rem;
}
.servers-list__server-item:not(:hover) {
color: $mainColor;
}
.servers-list__server-item:hover {
background-color: var(--secondary-color);
}
.servers-list__server-item-icon {
@include vertical-align();
right: 1rem;
}
.servers-list__list-group--embedded.servers-list__list-group--embedded {
border-radius: 0;
border-top: 1px solid var(--border-color);
@media (min-width: $mdMin) {
max-height: 220px;
overflow-x: auto;
@include thin-scroll();
}
.servers-list__server-item {
border: none;
border-bottom: 1px solid var(--border-color);
}
}

View File

@@ -1,35 +1,43 @@
import { faChevronRight as chevronIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { clsx } from 'clsx';
import type { FC, PropsWithChildren } from 'react';
import { Link } from 'react-router-dom';
import { ListGroup, ListGroupItem } from 'reactstrap';
import type { FC } from 'react';
import { Link } from 'react-router';
import type { ServerWithId } from './data';
import './ServersListGroup.scss';
type ServersListGroupProps = PropsWithChildren<{
type ServersListGroupProps = {
servers: ServerWithId[];
embedded?: boolean;
}>;
borderless?: boolean;
};
const ServerListItem = ({ id, name }: { id: string; name: string }) => (
<ListGroupItem tag={Link} to={`/server/${id}`} className="servers-list__server-item">
{name}
<FontAwesomeIcon icon={chevronIcon} className="servers-list__server-item-icon" />
</ListGroupItem>
<Link
to={`/server/${id}`}
className={clsx(
'servers-list__server-item',
'flex items-center justify-between gap-x-2 px-4 py-3',
'rounded-none hover:bg-lm-secondary hover:dark:bg-dm-secondary',
'border-b last:border-0 border-lm-border dark:border-dm-border',
)}
>
<span className="truncate">{name}</span>
<FontAwesomeIcon icon={chevronIcon} />
</Link>
);
export const ServersListGroup: FC<ServersListGroupProps> = ({ servers, children, embedded = false }) => (
export const ServersListGroup: FC<ServersListGroupProps> = ({ servers, borderless }) => (
<>
{children && <div data-testid="title" className="mb-0 fs-5 fw-normal lh-sm">{children}</div>}
{servers.length > 0 && (
<ListGroup
<div
data-testid="list"
tag="div"
className={clsx('servers-list__list-group', { 'servers-list__list-group--embedded': embedded })}
className={clsx(
'w-full border-lm-border dark:border-dm-border',
'md:max-h-56 md:overflow-y-auto -mb-1 scroll-thin',
{ 'border-y': !borderless },
)}
>
{servers.map(({ id, name }) => <ServerListItem key={id} id={id} name={name} />)}
</ListGroup>
</div>
)}
</>
);

View File

@@ -4,6 +4,7 @@ export interface ServerData {
name: string;
url: string;
apiKey: string;
forwardCredentials?: boolean;
}
export interface ServerWithId extends ServerData {
@@ -44,4 +45,31 @@ export const isNotFoundServer = (server: SelectedServer): server is NotFoundServ
export const getServerId = (server: SelectedServer) => (isServerWithId(server) ? server.id : '');
export const serverWithIdToServerData = ({ name, url, apiKey }: ServerWithId): ServerData => ({ name, url, apiKey });
/**
* Expose values that represent provided server, in a way that can be serialized in JSON or CSV strings.
*/
export const serializeServer = ({ name, url, apiKey, forwardCredentials }: ServerData): Record<string, string> => ({
name,
url,
apiKey,
forwardCredentials: forwardCredentials ? 'true' : 'false',
});
const validateServerData = (server: any): server is ServerData =>
typeof server.url === 'string' && typeof server.apiKey === 'string' && typeof server.name === 'string';
/**
* Provided a record, it picks the right properties to build a ServerData object.
* @throws Error If any of the required ServerData properties is missing.
*/
export const deserializeServer = (potentialServer: Record<string, unknown>): ServerData => {
const { forwardCredentials, ...serverData } = potentialServer;
if (!validateServerData(serverData)) {
throw new Error('Server is missing required "url", "apiKey" and/or "name" properties');
}
return {
...serverData,
forwardCredentials: forwardCredentials === 'true',
};
};

View File

@@ -1,41 +1,42 @@
import { CardModal } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { Fragment } from 'react';
import { Button, Modal, ModalBody, ModalFooter, ModalHeader } from 'reactstrap';
import type { ServerData } from '../data';
interface DuplicatedServersModalProps {
export type DuplicatedServersModalProps = {
duplicatedServers: ServerData[];
isOpen: boolean;
onDiscard: () => void;
onSave: () => void;
}
open: boolean;
onClose: () => void;
onConfirm: () => void;
};
export const DuplicatedServersModal: FC<DuplicatedServersModalProps> = (
{ isOpen, duplicatedServers, onDiscard, onSave },
{ open, duplicatedServers, onClose, onConfirm },
) => {
const hasMultipleServers = duplicatedServers.length > 1;
return (
<Modal centered isOpen={isOpen}>
<ModalHeader>Duplicated server{hasMultipleServers && 's'}</ModalHeader>
<ModalBody>
<p>{hasMultipleServers ? 'The next servers already exist:' : 'There is already a server with:'}</p>
<ul>
{duplicatedServers.map(({ url, apiKey }, index) => (!hasMultipleServers ? (
<Fragment key={index}>
<li>URL: <b>{url}</b></li>
<li>API key: <b>{apiKey}</b></li>
</Fragment>
) : <li key={index}><b>{url}</b> - <b>{apiKey}</b></li>))}
</ul>
<span>
{hasMultipleServers ? 'Do you want to ignore duplicated servers' : 'Do you want to save this server anyway'}?
</span>
</ModalBody>
<ModalFooter>
<Button color="link" onClick={onDiscard}>{hasMultipleServers ? 'Ignore duplicates' : 'Discard'}</Button>
<Button color="primary" onClick={onSave}>Save anyway</Button>
</ModalFooter>
</Modal>
<CardModal
size="lg"
title={`Duplicated server${hasMultipleServers ? 's' : ''}`}
open={open}
onClose={onClose}
onConfirm={onConfirm}
confirmText={`Save duplicate${hasMultipleServers ? 's' : ''}`}
cancelText={hasMultipleServers ? 'Ignore duplicates' : 'Discard'}
>
<p>{hasMultipleServers ? 'The next servers already exist:' : 'There is already a server with:'}</p>
<ul className="list-disc mt-4">
{duplicatedServers.map(({ url, apiKey }, index) => (!hasMultipleServers ? (
<Fragment key={index}>
<li>URL: <b>{url}</b></li>
<li>API key: <b>{apiKey}</b></li>
</Fragment>
) : <li key={index}><b>{url}</b> - <b>{apiKey}</b></li>))}
</ul>
<span>
{hasMultipleServers ? 'Do you want to save duplicated servers' : 'Do you want to save this server'}?
</span>
</CardModal>
);
};

View File

@@ -1,9 +1,8 @@
import { faFileUpload as importIcon } from '@fortawesome/free-solid-svg-icons';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { useElementRef, useToggle } from '@shlinkio/shlink-frontend-kit';
import { Button, Tooltip, useToggle , useTooltip } from '@shlinkio/shlink-frontend-kit';
import type { ChangeEvent, PropsWithChildren } from 'react';
import { useCallback, useRef, useState } from 'react';
import { Button, UncontrolledTooltip } from 'reactstrap';
import type { FCWithDeps } from '../../container/utils';
import { componentFactory, useDependencies } from '../../container/utils';
import type { ServerData, ServersMap, ServerWithId } from '../data';
@@ -13,7 +12,7 @@ import { dedupServers, ensureUniqueIds } from './index';
export type ImportServersBtnProps = PropsWithChildren<{
onImport?: () => void;
onImportError?: (error: Error) => void;
onError?: (error: Error) => void;
tooltipPlacement?: 'top' | 'bottom';
className?: string;
}>;
@@ -31,80 +30,82 @@ const ImportServersBtn: FCWithDeps<ImportServersBtnConnectProps, ImportServersBt
createServers,
servers,
children,
onImport = () => {},
onImportError = () => {},
onImport,
onError = () => {},
tooltipPlacement = 'bottom',
className = '',
}) => {
const { ServersImporter: serversImporter } = useDependencies(ImportServersBtn);
const ref = useElementRef<HTMLInputElement>();
const fileInputRef = useRef<HTMLInputElement>(null);
const { anchor, tooltip } = useTooltip({ placement: tooltipPlacement });
const [duplicatedServers, setDuplicatedServers] = useState<ServerData[]>([]);
const [isModalOpen,, showModal, hideModal] = useToggle();
const { flag: isModalOpen, setToTrue: showModal, setToFalse: hideModal } = useToggle();
const newServersCreatedRef = useRef(false);
const importedServersRef = useRef<ServerWithId[]>([]);
const newServersRef = useRef<ServerWithId[]>([]);
const create = useCallback((serversData: ServerWithId[]) => {
createServers(serversData);
onImport();
}, [createServers, onImport]);
const onFile = useCallback(
async ({ target }: ChangeEvent<HTMLInputElement>) =>
serversImporter.importServersFromFile(target.files?.[0])
.then((importedServers) => {
const { duplicatedServers, newServers } = dedupServers(servers, importedServers);
importedServersRef.current = ensureUniqueIds(servers, importedServers);
newServersRef.current = ensureUniqueIds(servers, newServers);
// Immediately create new servers
newServersCreatedRef.current = newServers.length > 0;
createServers(ensureUniqueIds(servers, newServers));
if (duplicatedServers.length === 0) {
create(importedServersRef.current);
} else {
// For duplicated servers, ask for confirmation
if (duplicatedServers.length > 0) {
setDuplicatedServers(duplicatedServers);
showModal();
} else {
onImport?.();
}
})
.then(() => {
// Reset file input after processing file
(target as { value: string | null }).value = null;
})
.catch(onImportError),
[create, onImportError, servers, serversImporter, showModal],
.catch(onError),
[createServers, onError, onImport, servers, serversImporter, showModal],
);
const createAllServers = useCallback(() => {
create(importedServersRef.current);
const createDuplicatedServers = useCallback(() => {
createServers(ensureUniqueIds(servers, duplicatedServers));
hideModal();
}, [create, hideModal]);
const createNonDuplicatedServers = useCallback(() => {
create(newServersRef.current);
onImport?.();
}, [createServers, duplicatedServers, hideModal, onImport, servers]);
const discardDuplicatedServers = useCallback(() => {
hideModal();
}, [create, hideModal]);
// If duplicated servers were discarded but some non-duplicated servers were created, call onImport
if (newServersCreatedRef.current) {
onImport?.();
}
}, [hideModal, onImport]);
return (
<>
<Button outline id="importBtn" className={className} onClick={() => ref.current?.click()}>
<FontAwesomeIcon icon={importIcon} fixedWidth /> {children ?? 'Import from file'}
<Button variant="secondary" className={className} onClick={() => fileInputRef.current?.click()} {...anchor}>
<FontAwesomeIcon icon={importIcon} widthAuto /> {children ?? 'Import from file'}
</Button>
<UncontrolledTooltip placement={tooltipPlacement} target="importBtn">
<Tooltip {...tooltip}>
You can create servers by importing a CSV file with <b>name</b>, <b>apiKey</b> and <b>url</b> columns.
</UncontrolledTooltip>
</Tooltip>
<input
type="file"
accept=".csv"
className="d-none"
className="hidden"
aria-hidden
ref={ref}
tabIndex={-1}
ref={fileInputRef}
onChange={onFile}
data-testid="csv-file-input"
/>
<DuplicatedServersModal
isOpen={isModalOpen}
open={isModalOpen}
duplicatedServers={duplicatedServers}
onDiscard={createNonDuplicatedServers}
onSave={createAllServers}
onClose={discardDuplicatedServers}
onConfirm={createDuplicatedServers}
/>
</>
);

View File

@@ -1,17 +0,0 @@
@import '../../../node_modules/@shlinkio/shlink-frontend-kit/dist/base';
.server-error__container {
text-align: center;
display: flex;
align-items: center;
justify-content: center;
}
.server-error__delete-btn {
color: $dangerColor;
font-weight: inherit;
}
.server-error__delete-btn:hover {
text-decoration: underline;
}

View File

@@ -1,6 +1,6 @@
import { Message } from '@shlinkio/shlink-frontend-kit';
import { Card, Message } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { Link } from 'react-router-dom';
import { Link } from 'react-router';
import { NoMenuLayout } from '../../common/NoMenuLayout';
import type { FCWithDeps } from '../../container/utils';
import { componentFactory, useDependencies } from '../../container/utils';
@@ -8,7 +8,6 @@ import type { SelectedServer, ServersMap } from '../data';
import { isServerWithId } from '../data';
import type { DeleteServerButtonProps } from '../DeleteServerButton';
import { ServersListGroup } from '../ServersListGroup';
import './ServerError.scss';
type ServerErrorProps = {
servers: ServersMap;
@@ -24,8 +23,8 @@ const ServerError: FCWithDeps<ServerErrorProps, ServerErrorDeps> = ({ servers, s
return (
<NoMenuLayout>
<div className="server-error__container flex-column">
<Message className="w-100 mb-3 mb-md-5" type="error" fullWidth>
<div className="flex flex-col items-center gap-y-4 md:gap-y-8">
<Message className="w-full lg:w-[80%]" variant="error">
{!isServerWithId(selectedServer) && 'Could not find this Shlink server.'}
{isServerWithId(selectedServer) && (
<>
@@ -35,21 +34,21 @@ const ServerError: FCWithDeps<ServerErrorProps, ServerErrorDeps> = ({ servers, s
)}
</Message>
<ServersListGroup servers={Object.values(servers)}>
<p className="mb-md-3">
These are the Shlink servers currently configured. Choose one of
them or <Link to="/server/create">add a new one</Link>.
</p>
</ServersListGroup>
<p className="text-xl">
These are the Shlink servers currently configured. Choose one of
them or <Link to="/server/create">add a new one</Link>.
</p>
<Card className="w-full max-w-100 overflow-hidden">
<ServersListGroup borderless servers={Object.values(servers)} />
</Card>
{isServerWithId(selectedServer) && (
<div className="container mt-3 mt-md-5">
<p className="fs-5 fw-normal lh-sm">
Alternatively, if you think you may have miss-configured this server, you
can <DeleteServerButton server={selectedServer} className="server-error__delete-btn">remove it</DeleteServerButton> or&nbsp;
<Link to={`/server/${selectedServer.id}/edit?reconnect=true`}>edit it</Link>.
</p>
</div>
<p className="text-xl">
Alternatively, if you think you may have misconfigured this server, you
can <DeleteServerButton server={selectedServer}>remove
it</DeleteServerButton> or&nbsp;
<Link to={`/server/${selectedServer.id}/edit?reconnect=true`}>edit it</Link>.
</p>
)}
</div>
</NoMenuLayout>

View File

@@ -1,7 +1,15 @@
import { InputFormGroup, SimpleCard } from '@shlinkio/shlink-frontend-kit';
import {
Checkbox,
Details,
Label,
LabelledInput,
LabelledRevealablePasswordInput,
SimpleCard,
useToggle,
} from '@shlinkio/shlink-frontend-kit';
import type { FC, PropsWithChildren, ReactNode } from 'react';
import { useState } from 'react';
import { handleEventPreventingDefault } from '../../utils/utils';
import { usePreventDefault } from '../../utils/utils';
import type { ServerData } from '../data';
type ServerFormProps = PropsWithChildren<{
@@ -14,17 +22,42 @@ export const ServerForm: FC<ServerFormProps> = ({ onSubmit, initialValues, child
const [name, setName] = useState(initialValues?.name ?? '');
const [url, setUrl] = useState(initialValues?.url ?? '');
const [apiKey, setApiKey] = useState(initialValues?.apiKey ?? '');
const handleSubmit = handleEventPreventingDefault(() => onSubmit({ name, url, apiKey }));
const { flag: forwardCredentials, toggle: toggleForwardCredentials } = useToggle(
initialValues?.forwardCredentials ?? false,
);
const handleSubmit = usePreventDefault(() => onSubmit({ name, url, apiKey, forwardCredentials }));
return (
<form className="server-form" name="serverForm" onSubmit={handleSubmit}>
<SimpleCard className="mb-3" title={title}>
<InputFormGroup value={name} onChange={setName}>Name</InputFormGroup>
<InputFormGroup type="url" value={url} onChange={setUrl}>URL</InputFormGroup>
<InputFormGroup value={apiKey} onChange={setApiKey}>API key</InputFormGroup>
<form name="serverForm" onSubmit={handleSubmit}>
<SimpleCard className="mb-4" bodyClassName="flex flex-col gap-y-3" title={title}>
<LabelledInput label="Name" value={name} onChange={(e) => setName(e.target.value)} required />
<LabelledInput label="URL" type="url" value={url} onChange={(e) => setUrl(e.target.value)} required />
<LabelledRevealablePasswordInput
label="API key"
value={apiKey}
onChange={(e) => setApiKey(e.target.value)}
required
/>
<Details summary="Advanced options">
<div className="flex flex-col gap-0.5">
<Label className="flex items-center gap-x-1.5 cursor-pointer">
<Checkbox onChange={toggleForwardCredentials} checked={forwardCredentials} />
Forward credentials to this server on every request.
</Label>
<small className="pl-5.5 text-gray-600 dark:text-gray-400 mt-0.5">
{'"'}Credentials{'"'} here means cookies, TLS client certificates, or authentication headers containing a username
and password.
</small>
<small className="pl-5.5 text-gray-600 dark:text-gray-400">
<b>Important!</b> If you are not sure what this means, leave it unchecked. Enabling this option will
make all requests fail for Shlink older than v4.5.0, as it requires the server to set a more strict
value for <code className="whitespace-nowrap">Access-Control-Allow-Origin</code> than <code>*</code>.
</small>
</div>
</Details>
</SimpleCard>
<div className="text-end">{children}</div>
<div className="flex items-center justify-end gap-x-2">{children}</div>
</form>
);
};

View File

@@ -1,7 +1,7 @@
import { Message } from '@shlinkio/shlink-frontend-kit';
import type { FC } from 'react';
import { useEffect } from 'react';
import { useParams } from 'react-router-dom';
import { useParams } from 'react-router';
import { NoMenuLayout } from '../../common/NoMenuLayout';
import type { FCWithDeps } from '../../container/utils';
import { useDependencies } from '../../container/utils';

View File

@@ -2,24 +2,27 @@ import type { JsonToCsv } from '../../utils/helpers/csvjson';
import { saveCsv } from '../../utils/helpers/files';
import type { LocalStorage } from '../../utils/services/LocalStorage';
import type { ServersMap } from '../data';
import { serverWithIdToServerData } from '../data';
import { serializeServer } from '../data';
const SERVERS_FILENAME = 'shlink-servers.csv';
export class ServersExporter {
public constructor(
private readonly storage: LocalStorage,
private readonly window: Window,
private readonly jsonToCsv: JsonToCsv,
) {}
readonly #storage: LocalStorage;
readonly #window: Window;
readonly #jsonToCsv: JsonToCsv;
public constructor(storage: LocalStorage, window: Window, jsonToCsv: JsonToCsv) {
this.#storage = storage;
this.#window = window;
this.#jsonToCsv = jsonToCsv;
}
public readonly exportServers = async () => {
const servers = Object.values(this.storage.get<ServersMap>('servers') ?? {}).map(serverWithIdToServerData);
const servers = Object.values(this.#storage.get<ServersMap>('servers') ?? {}).map(serializeServer);
try {
const csv = this.jsonToCsv(servers);
saveCsv(this.window, csv, SERVERS_FILENAME);
const csv = this.#jsonToCsv(servers);
saveCsv(this.#window, csv, SERVERS_FILENAME);
} catch (e) {
// FIXME Handle error
console.error(e);

View File

@@ -1,14 +1,20 @@
import type { CsvToJson } from '../../utils/helpers/csvjson';
import type { ServerData } from '../data';
import { deserializeServer } from '../data';
const validateServer = (server: any): server is ServerData =>
typeof server.url === 'string' && typeof server.apiKey === 'string' && typeof server.name === 'string';
const validateServers = (servers: any): servers is ServerData[] =>
Array.isArray(servers) && servers.every(validateServer);
const validateAndDeserializeServers = (servers: unknown): ServerData[] => {
if (!Array.isArray(servers)) {
throw new Error('Provided file does not have the right format.');
}
return servers.map(deserializeServer);
};
export class ServersImporter {
public constructor(private readonly csvToJson: CsvToJson) {}
readonly #csvToJson: CsvToJson;
public constructor(csvToJson: CsvToJson) {
this.#csvToJson = csvToJson;
}
public async importServersFromFile(file: File | null | undefined): Promise<ServerData[]> {
if (!file) {
@@ -16,12 +22,8 @@ export class ServersImporter {
}
const content = await file.text();
const servers = await this.csvToJson(content);
const servers = await this.#csvToJson(content);
if (!validateServers(servers)) {
throw new Error('Provided file does not have the right format.');
}
return servers;
return validateAndDeserializeServers(servers);
}
}

View File

@@ -13,7 +13,7 @@ export const Settings: FC<SettingsProps> = ({ settings, setSettings }) => (
<NoMenuLayout>
<ShlinkWebSettings
settings={settings}
updateSettings={setSettings}
onUpdateSettings={setSettings}
defaultShortUrlsListOrdering={DEFAULT_SHORT_URLS_ORDERING}
/>
</NoMenuLayout>

14
src/tailwind.css Normal file
View File

@@ -0,0 +1,14 @@
@import 'tailwindcss';
@import '@shlinkio/shlink-frontend-kit/tailwind.preset.css';
@import '@shlinkio/shlink-web-component/tailwind.preset.css';
@source '../node_modules/@shlinkio/shlink-frontend-kit';
@source '../node_modules/@shlinkio/shlink-web-component';
@layer base {
:root {
--footer-height: 2.3rem;
--footer-margin: .8rem;
/* FIXME Remove this once updated to shlink-web-component 0.15.1 */
--header-height: 52px;
}
}

View File

@@ -1,46 +0,0 @@
import { DropdownBtn } from '@shlinkio/shlink-frontend-kit';
import type { VisitsSettings } from '@shlinkio/shlink-web-component/settings';
import type { FC } from 'react';
import { DropdownItem } from 'reactstrap';
export type DateInterval = VisitsSettings['defaultInterval'];
export interface DateIntervalSelectorProps {
active?: DateInterval;
allText: string;
onChange: (interval: DateInterval) => void;
}
export const INTERVAL_TO_STRING_MAP: Record<Exclude<DateInterval, 'all'>, string> = {
today: 'Today',
yesterday: 'Yesterday',
last7Days: 'Last 7 days',
last30Days: 'Last 30 days',
last90Days: 'Last 90 days',
last180Days: 'Last 180 days',
last365Days: 'Last 365 days',
};
const intervalToString = (interval: DateInterval | undefined, fallback: string): string => {
if (!interval || interval === 'all') {
return fallback;
}
return INTERVAL_TO_STRING_MAP[interval];
};
export const DateIntervalSelector: FC<DateIntervalSelectorProps> = ({ onChange, active, allText }) => (
<DropdownBtn text={intervalToString(active, allText)}>
<DropdownItem active={active === 'all'} onClick={() => onChange('all')}>
{allText}
</DropdownItem>
<DropdownItem divider />
{Object.entries(INTERVAL_TO_STRING_MAP).map(
([interval, name]) => (
<DropdownItem key={interval} active={active === interval} onClick={() => onChange(interval as DateInterval)}>
{name}
</DropdownItem>
),
)}
</DropdownBtn>
);

View File

@@ -1,5 +1,5 @@
import { useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import { useNavigate } from 'react-router';
export const useGoBack = () => {
const navigate = useNavigate();

View File

@@ -1,5 +0,0 @@
@mixin horizontal-align {
position: absolute;
left: 50%;
transform: translateX(-50%);
}

View File

@@ -1,16 +0,0 @@
@mixin thin-scroll() {
/* Forefox scrollbar */
scrollbar-color: rgba(0, 0, 0, .2) #f5f5f5;
scrollbar-width: thin;
/* Chrome webkit scrollbar */
&::-webkit-scrollbar {
width: 6px;
background-color: #f5f5f5;
}
&::-webkit-scrollbar-thumb {
background-color: rgba(0, 0, 0, .2);
border-radius: .5rem;
}
}

Some files were not shown because too many files have changed in this diff Show More