Compare commits

...

84 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
19 changed files with 1180 additions and 1303 deletions

View File

@@ -4,6 +4,48 @@ 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*

View File

@@ -1,10 +1,10 @@
FROM node:24.2-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,4 +1,4 @@
FROM mcr.microsoft.com/playwright:v1.53.1-noble
FROM mcr.microsoft.com/playwright:v1.54.2-noble
ENV NODE_VERSION 22.14
ENV TINI_VERSION v0.19.0

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

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',

2244
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -20,28 +20,28 @@
"test:verbose": "node --run test -- --verbose"
},
"dependencies": {
"@fortawesome/fontawesome-free": "^6.7.2",
"@fortawesome/fontawesome-svg-core": "^6.7.2",
"@fortawesome/free-brands-svg-icons": "^6.7.2",
"@fortawesome/free-regular-svg-icons": "^6.7.2",
"@fortawesome/free-solid-svg-icons": "^6.7.2",
"@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.8.2",
"@shlinkio/data-manipulation": "^1.0.3",
"@shlinkio/shlink-frontend-kit": "^1.0.0",
"@shlinkio/shlink-js-sdk": "^2.1.0",
"@shlinkio/shlink-web-component": "^0.15.0",
"@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": "^19.1.0",
"react-dom": "^19.1.0",
"react": "^19.1.1",
"react-dom": "^19.1.1",
"react-external-link": "^2.5.0",
"react-redux": "^9.2.0",
"react-router": "^7.6.2",
"react-router": "^7.8.0",
"redux-localstorage-simple": "^2.5.1",
"workbox-core": "^7.3.0",
"workbox-expiration": "^7.3.0",
@@ -51,21 +51,21 @@
},
"devDependencies": {
"@shlinkio/eslint-config-js-coding-standard": "~3.5.0",
"@stylistic/eslint-plugin": "^4.4.1",
"@tailwindcss/vite": "^4.1.10",
"@testing-library/jest-dom": "^6.6.3",
"@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": "^19.1.8",
"@types/react-dom": "^19.1.6",
"@vitejs/plugin-react": "^4.5.2",
"@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.3",
"chalk": "^5.4.1",
"eslint": "^9.29.0",
"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.5",
@@ -73,12 +73,12 @@
"eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-simple-import-sort": "^12.1.1",
"history": "^5.3.0",
"playwright": "^1.53.1",
"playwright": "^1.54.2",
"tailwindcss": "^4.1.3",
"typescript": "^5.8.3",
"typescript-eslint": "^8.34.1",
"vite": "^6.3.5",
"vite-plugin-pwa": "^1.0.0",
"typescript-eslint": "^8.39.0",
"vite": "^7.1.1",
"vite-plugin-pwa": "^1.0.2",
"vitest": "^3.0.5"
},
"browserslist": [

View File

@@ -62,35 +62,37 @@ const App: FCWithDeps<AppProps, AppDeps> = (
return (
<div className="h-full">
<MainHeader />
<>
<MainHeader />
<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-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 className="h-(--footer-height) mt-(--footer-margin) md:px-4">
<ShlinkVersionsContainer />
</div>
</div>
</div>
</>
<AppUpdateBanner isOpen={appUpdated} onClose={resetAppUpdate} forceUpdate={forceUpdate} />
</div>

View File

@@ -50,7 +50,7 @@ export const Home = ({ servers }: HomeProps) => {
<p>This application will help you manage your Shlink servers.</p>
<p>
<Button to="/server/create" size="lg" inline>
<FontAwesomeIcon icon={faPlus} /> Add a server
<FontAwesomeIcon icon={faPlus} widthAuto /> Add a server
</Button>
</p>
<p>

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,5 +1,4 @@
import { FetchHttpClient } from '@shlinkio/shlink-js-sdk/fetch';
import { ShlinkWebComponent } from '@shlinkio/shlink-web-component';
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

@@ -51,12 +51,12 @@ const ManageServers: FCWithDeps<ManageServersProps, ManageServersDeps> = ({ serv
<ImportServersBtn className="flex-grow" onError={setErrorImporting}>Import servers</ImportServersBtn>
{filteredServers.length > 0 && (
<Button variant="secondary" className="flex-grow" onClick={async () => serversExporter.exportServers()}>
<FontAwesomeIcon icon={exportIcon} /> Export servers
<FontAwesomeIcon icon={exportIcon} widthAuto /> Export servers
</Button>
)}
</div>
<Button className="md:ml-auto" to="/server/create">
<FontAwesomeIcon icon={plusIcon} /> Add a server
<FontAwesomeIcon icon={plusIcon} widthAuto /> Add a server
</Button>
</div>

View File

@@ -38,17 +38,17 @@ const ManageServersRowDropdown: FCWithDeps<ManageServersRowDropdownConnectProps,
<>
<RowDropdown menuAlignment="right">
<RowDropdown.Item to={serverUrl} className="gap-1.5">
<FontAwesomeIcon icon={connectIcon} fixedWidth /> Connect
<FontAwesomeIcon icon={connectIcon} /> Connect
</RowDropdown.Item>
<RowDropdown.Item to={`${serverUrl}/edit`} className="gap-1.5">
<FontAwesomeIcon icon={editIcon} fixedWidth /> Edit server
<FontAwesomeIcon icon={editIcon} /> Edit server
</RowDropdown.Item>
<RowDropdown.Item onClick={() => setAutoConnect(server, !isAutoConnect)} className="gap-1.5">
<FontAwesomeIcon icon={autoConnectIcon} fixedWidth /> {isAutoConnect ? 'Do not a' : 'A'}uto-connect
<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} fixedWidth /> Remove server
<FontAwesomeIcon icon={deleteIcon} /> Remove server
</RowDropdown.Item>
</RowDropdown>

View File

@@ -15,7 +15,7 @@ export const ServersDropdown = ({ servers, selectedServer }: ServersDropdownProp
return (
<NavBar.Dropdown buttonContent={(
<span className="flex items-center gap-1.5">
<FontAwesomeIcon icon={serverIcon} fixedWidth /> Servers
<FontAwesomeIcon icon={serverIcon} /> Servers
</span>
)}>
{serversList.length === 0 ? (

View File

@@ -84,7 +84,7 @@ const ImportServersBtn: FCWithDeps<ImportServersBtnConnectProps, ImportServersBt
return (
<>
<Button variant="secondary" className={className} onClick={() => fileInputRef.current?.click()} {...anchor}>
<FontAwesomeIcon icon={importIcon} fixedWidth /> {children ?? 'Import from file'}
<FontAwesomeIcon icon={importIcon} widthAuto /> {children ?? 'Import from file'}
</Button>
<Tooltip {...tooltip}>
You can create servers by importing a CSV file with <b>name</b>, <b>apiKey</b> and <b>url</b> columns.

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>

View File

@@ -5,11 +5,16 @@ import type { NonReachableServer, NotFoundServer, SelectedServer } from '../../s
import { checkAccessibility } from '../__helpers__/accessibility';
import { MemoryRouterWithParams } from '../__helpers__/MemoryRouterWithParams';
vi.mock('@shlinkio/shlink-web-component', () => ({
ShlinkSidebarVisibilityProvider: ({ children }: any) => children,
ShlinkSidebarToggleButton: ({ children }: any) => children,
ShlinkWebComponent: () => <>ShlinkWebComponent</>,
}));
describe('<ShlinkWebComponentContainer />', () => {
const ShlinkWebComponentContainer = ShlinkWebComponentContainerFactory(fromPartial({
buildShlinkApiClient: vi.fn().mockReturnValue(fromPartial({})),
TagColorsStorage: fromPartial({}),
ShlinkWebComponent: () => <>ShlinkWebComponent</>,
ServerError: () => <>ServerError</>,
}));
const setUp = (selectedServer: SelectedServer) => render(

View File

@@ -27,13 +27,11 @@ exports[`<ManageServersRow /> > renders auto-connect icon only if server is auto
class="svg-inline--fa fa-check text-lm-brand dark:text-dm-brand"
data-icon="check"
data-prefix="fas"
focusable="false"
role="img"
viewBox="0 0 448 512"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"
d="M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z"
fill="currentColor"
/>
</svg>

View File

@@ -15,16 +15,14 @@ exports[`<ManageServersRowDropdown /> > renders expected size and icon 1`] = `
>
<svg
aria-hidden="true"
class="svg-inline--fa fa-ellipsis-vertical "
class="svg-inline--fa fa-ellipsis-vertical fa-width-auto "
data-icon="ellipsis-vertical"
data-prefix="fas"
focusable="false"
role="img"
viewBox="0 0 128 512"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"
d="M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z"
fill="currentColor"
/>
</svg>
@@ -52,16 +50,14 @@ exports[`<ManageServersRowDropdown /> > renders expected size and icon 2`] = `
>
<svg
aria-hidden="true"
class="svg-inline--fa fa-ellipsis-vertical "
class="svg-inline--fa fa-ellipsis-vertical fa-width-auto "
data-icon="ellipsis-vertical"
data-prefix="fas"
focusable="false"
role="img"
viewBox="0 0 128 512"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z"
d="M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z"
fill="currentColor"
/>
</svg>