1
0
mirror of https://codeberg.org/crowci/crow.git synced 2025-04-18 04:44:01 +03:00

chore(deps): update dependency tailwindcss to v4 (#60)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [tailwindcss](https://tailwindcss.com) ([source](https://github.com/tailwindlabs/tailwindcss/tree/HEAD/packages/tailwindcss)) | dependencies | major | [`^3.4.17` -> `^4.0.0`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.17/4.0.8) |

---

<details>
<summary>tailwindlabs/tailwindcss (tailwindcss)</summary>

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.7...v4.0.8)

-   Allow `@import` with `theme(…)` options for stylesheets that contain more than just `@theme` rules ([#&#8203;16514](https://github.com/tailwindlabs/tailwindcss/pull/16514))

-   Don't add `!important` to CSS variable declarations when using the important modifier ([#&#8203;16668](https://github.com/tailwindlabs/tailwindcss/pull/16668))
-   Vite: Ignore files and directories specified in your `.gitignore` file when using automatic source detection([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631))
-   Vite: Don't rely on the module graph for detecting candidates to ensure setups with multiple Vite builds work as expected ([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631))
-   Vite: Ensure Astro production builds always contain classes used in client-only components ([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631))
-   Vite: Always scan raw file contents for utility classes before any other transforms have been applied to ensure utility classes are scanned without any additional escaping ([#&#8203;16631](https://github.com/tailwindlabs/tailwindcss/pull/16631))
-   Ensure utilities with more declarations are always sorted before utilities with fewer declarations when utilities only define CSS variables ([#&#8203;16715](https://github.com/tailwindlabs/tailwindcss/pull/16715))
-   Only include `translate-z-px` utilities once in compiled CSS ([#&#8203;16718](https://github.com/tailwindlabs/tailwindcss/pull/16718))

-   Don't include theme variables that aren't used in compiled CSS ([#&#8203;16211](https://github.com/tailwindlabs/tailwindcss/pull/16211), [#&#8203;16676](https://github.com/tailwindlabs/tailwindcss/pull/16676))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.6...v4.0.7)

-   Export `tailwindcss/lib/util/flattenColorPalette.js` for backward compatibility ([#&#8203;16411](https://github.com/tailwindlabs/tailwindcss/pull/16411))
-   Fix sorting of numeric utility suggestions when they have different magnitudes ([#&#8203;16414](https://github.com/tailwindlabs/tailwindcss/pull/16414))
-   Show suggestions for fractions in IntelliSense ([#&#8203;16353](https://github.com/tailwindlabs/tailwindcss/pull/16353))
-   Don’t replace `_` in suggested theme keys ([#&#8203;16433](https://github.com/tailwindlabs/tailwindcss/pull/16433))
-   Ensure `--default-outline-width` can be used to change the `outline-width` value of the `outline` utility ([#&#8203;16469](https://github.com/tailwindlabs/tailwindcss/pull/16469))
-   Ensure drop shadow utilities don't inherit unexpectedly ([#&#8203;16471](https://github.com/tailwindlabs/tailwindcss/pull/16471))
-   Export config and plugin types from `tailwindcss/plugin` for backward compatibility ([#&#8203;16505](https://github.com/tailwindlabs/tailwindcss/pull/16505))
-   Ensure JavaScript plugins that emit nested rules referencing the utility name work as expected ([#&#8203;16539](https://github.com/tailwindlabs/tailwindcss/pull/16539))
-   Statically link Visual Studio redistributables in `@tailwindcss/oxide` Windows builds ([#&#8203;16602](https://github.com/tailwindlabs/tailwindcss/pull/16602))
-   Ensure that Next.js splat routes are scanned for classes ([#&#8203;16457](https://github.com/tailwindlabs/tailwindcss/pull/16457))
-   Pin exact version of `tailwindcss` in `@tailwindcss/*` packages ([#&#8203;16623](https://github.com/tailwindlabs/tailwindcss/pull/16623))
-   Upgrade: Report errors when updating dependencies ([#&#8203;16504](https://github.com/tailwindlabs/tailwindcss/pull/16504))
-   Upgrade: Ensure a `darkMode` JS config setting with block syntax converts to use `@slot` ([#&#8203;16507](https://github.com/tailwindlabs/tailwindcss/pull/16507))
-   Upgrade: Ensure the latest version of `tailwindcss` and `@tailwindcss/postcss` are installed when upgrading ([#&#8203;16620](https://github.com/tailwindlabs/tailwindcss/pull/16620))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.5...v4.0.6)

-   Revert change to no longer include theme variables that aren't used in compiled CSS ([#&#8203;16403](https://github.com/tailwindlabs/tailwindcss/pull/16403))
-   Upgrade: Don't migrate `blur` to `blur-sm` when used with Next.js `<Image placeholder="blur" />` ([#&#8203;16405](https://github.com/tailwindlabs/tailwindcss/pull/16405))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.4...v4.0.5)

-   Add `@theme static` option for always including theme variables in compiled CSS ([#&#8203;16211](https://github.com/tailwindlabs/tailwindcss/pull/16211))

-   Remove rogue `console.log` from `@tailwindcss/vite` ([#&#8203;16307](https://github.com/tailwindlabs/tailwindcss/pull/16307))

-   Don't include theme variables that aren't used in compiled CSS ([#&#8203;16211](https://github.com/tailwindlabs/tailwindcss/pull/16211))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.3...v4.0.4)

-   Fix a crash when setting JS theme values to `null` ([#&#8203;16210](https://github.com/tailwindlabs/tailwindcss/pull/16210))
-   Ensure escaped underscores in CSS variables in arbitrary values are properly unescaped ([#&#8203;16206](https://github.com/tailwindlabs/tailwindcss/pull/16206))
-   Ensure that the `containers` JS theme key is added to the `--container-*` namespace ([#&#8203;16169](https://github.com/tailwindlabs/tailwindcss/pull/16169))
-   Ensure theme `@keyframes` are generated even if an `--animation-*` variable spans multiple lines ([#&#8203;16237](https://github.com/tailwindlabs/tailwindcss/pull/16237))
-   Vite: Skip parsing stylesheets with the `?commonjs-proxy` flag ([#&#8203;16238](https://github.com/tailwindlabs/tailwindcss/pull/16238))
-   Fix `order-first` and `order-last` for Firefox ([#&#8203;16266](https://github.com/tailwindlabs/tailwindcss/pull/16266))
-   Fix support for older instruction sets on Linux x64 builds of the standalone CLI ([#&#8203;16244](https://github.com/tailwindlabs/tailwindcss/pull/16244))
-   Ensure `NODE_PATH` is respected when resolving JavaScript and CSS files ([#&#8203;16274](https://github.com/tailwindlabs/tailwindcss/pull/16274))
-   Ensure Node addons are packaged correctly with FreeBSD builds ([#&#8203;16277](https://github.com/tailwindlabs/tailwindcss/pull/16277))
-   Fix an issue where `@variant` inside a referenced stylesheet could cause a stack overflow ([#&#8203;16300](https://github.com/tailwindlabs/tailwindcss/pull/16300))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.2...v4.0.3)

-   Fix incorrect removal of `@import url();` ([#&#8203;16144](https://github.com/tailwindlabs/tailwindcss/pull/16144))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.1...v4.0.2)

-   Only generate positive `grid-cols-*` and `grid-rows-*` utilities ([#&#8203;16020](https://github.com/tailwindlabs/tailwindcss/pull/16020))
-   Ensure escaped theme variables are handled correctly ([#&#8203;16064](https://github.com/tailwindlabs/tailwindcss/pull/16064))
-   Ensure we process Tailwind CSS features when only using `@reference` or `@variant` ([#&#8203;16057](https://github.com/tailwindlabs/tailwindcss/pull/16057))
-   Refactor gradient implementation to work around [prettier/prettier#17058](https://github.com/prettier/prettier/issues/17058) ([#&#8203;16072](https://github.com/tailwindlabs/tailwindcss/pull/16072))
-   Vite: Ensure hot-reloading works with SolidStart setups ([#&#8203;16052](https://github.com/tailwindlabs/tailwindcss/pull/16052))
-   Vite: Fix a crash when starting the development server in SolidStart setups ([#&#8203;16052](https://github.com/tailwindlabs/tailwindcss/pull/16052))
-   Vite: Don't rebase URLs that appear to be aliases ([#&#8203;16078](https://github.com/tailwindlabs/tailwindcss/pull/16078))
-   Vite: Transform `<style>` blocks in HTML files ([#&#8203;16069](https://github.com/tailwindlabs/tailwindcss/pull/16069))
-   Prevent camel-casing CSS custom properties added by JavaScript plugins ([#&#8203;16103](https://github.com/tailwindlabs/tailwindcss/pull/16103))
-   Do not emit `@keyframes` in `@theme reference` ([#&#8203;16120](https://github.com/tailwindlabs/tailwindcss/pull/16120))
-   Discard invalid declarations when parsing CSS ([#&#8203;16093](https://github.com/tailwindlabs/tailwindcss/pull/16093))
-   Do not emit empty CSS rules and at-rules ([#&#8203;16121](https://github.com/tailwindlabs/tailwindcss/pull/16121))
-   Handle `@variant` when at the top-level of a stylesheet ([#&#8203;16129](https://github.com/tailwindlabs/tailwindcss/pull/16129))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v4.0.0...v4.0.1)

-   Include `:open` pseudo-class in existing `open` variant ([#&#8203;15349](https://github.com/tailwindlabs/tailwindcss/pull/15349))

-   Remove invalid `min-w/h-none` utilities ([#&#8203;15845](https://github.com/tailwindlabs/tailwindcss/pull/15845))
-   Discard CSS variable shorthand utilities that don't use valid CSS variables ([#&#8203;15738](https://github.com/tailwindlabs/tailwindcss/pull/15738))
-   Ensure font-size utilities with `none` modifier have a line-height set e.g. `text-sm/none` ([#&#8203;15921](https://github.com/tailwindlabs/tailwindcss/pull/15921))
-   Ensure font-size utilities with unknown modifier don't generate CSS ([#&#8203;15921](https://github.com/tailwindlabs/tailwindcss/pull/15921))
-   Don’t suggest font weight utilities more than once ([#&#8203;15857](https://github.com/tailwindlabs/tailwindcss/pull/15857))
-   Suggest container query variants ([#&#8203;15857](https://github.com/tailwindlabs/tailwindcss/pull/15857))
-   Disable bare value suggestions when not using the `--spacing` variable ([#&#8203;15857](https://github.com/tailwindlabs/tailwindcss/pull/15857))
-   Ensure suggested classes are properly sorted ([#&#8203;15857](https://github.com/tailwindlabs/tailwindcss/pull/15857))
-   Don’t look at .gitignore files outside initialized repos ([#&#8203;15941](https://github.com/tailwindlabs/tailwindcss/pull/15941))
-   Find utilities when using the Svelte class shorthand syntax across multiple lines ([#&#8203;15974](https://github.com/tailwindlabs/tailwindcss/pull/15974))
-   Find utilities when using the Angular class shorthand syntax ([#&#8203;15974](https://github.com/tailwindlabs/tailwindcss/pull/15974))
-   Find utilities when using functions inside arrays ([#&#8203;15974](https://github.com/tailwindlabs/tailwindcss/pull/15974))
-   Ensure that `@tailwindcss/browser` does not pollute the global namespace ([#&#8203;15978](https://github.com/tailwindlabs/tailwindcss/pull/15978))
-   Ensure that `tailwind-merge` is not scanned when using the Vite plugin ([#&#8203;16005](https://github.com/tailwindlabs/tailwindcss/pull/16005))
-   Ensure CSS theme variables are available within shadow roots ([#&#8203;15975](https://github.com/tailwindlabs/tailwindcss/pull/15975))
-   Fix crash when project lives in the `/` directory ([#&#8203;15988](https://github.com/tailwindlabs/tailwindcss/pull/15988))
-   Ensure custom variants have a non-empty selector list ([#&#8203;16009](https://github.com/tailwindlabs/tailwindcss/pull/16009))
-   *Upgrade*: Ensure JavaScript config files on different drives are correctly migrated ([#&#8203;15927](https://github.com/tailwindlabs/tailwindcss/pull/15927))
-   *Upgrade*: Migrate `leading-[1]` to `leading-none` ([#&#8203;16004](https://github.com/tailwindlabs/tailwindcss/pull/16004))
-   *Upgrade*: Do not migrate arbitrary leading utilities to bare values ([#&#8203;16004](https://github.com/tailwindlabs/tailwindcss/pull/16004))

[Compare Source](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.17...v4.0.0)

-   [New high-performance engine](https://tailwindcss.com/blog/tailwindcss-v4#new-high-performance-engine) — where full builds are up to 5x faster, and incremental builds are over 100x faster — and measured in microseconds.
-   [Designed for the modern web](https://tailwindcss.com/blog/tailwindcss-v4#designed-for-the-modern-web) — built on cutting-edge CSS features like cascade layers, registered custom properties with `@property`, and `color-mix()`.
-   [Simplified installation](https://tailwindcss.com/blog/tailwindcss-v4#simplified-installation) — fewer dependencies, zero configuration, and just a single line of code in your CSS file.
-   [First-party Vite plugin](https://tailwindcss.com/blog/tailwindcss-v4#first-party-vite-plugin) — tight integration for maximum performance and minimum configuration.
-   [Automatic content detection](https://tailwindcss.com/blog/tailwindcss-v4#automatic-content-detection) — all of your template files are discovered automatically, with no configuration required.
-   [Built-in import support](https://tailwindcss.com/blog/tailwindcss-v4#built-in-import-support) — no additional tooling necessary to bundle multiple CSS files.
-   [CSS-first configuration](https://tailwindcss.com/blog/tailwindcss-v4#css-first-configuration) — a reimagined developer experience where you customize and extend the framework directly in CSS instead of a JavaScript configuration file.
-   [CSS theme variables](https://tailwindcss.com/blog/tailwindcss-v4#css-theme-variables) — all of your design tokens exposed as native CSS variables so you can access them anywhere.
-   [Dynamic utility values and variants](https://tailwindcss.com/blog/tailwindcss-v4#dynamic-utility-values-and-variants) — stop guessing what values exist in your spacing scale, or extending your configuration for things like basic data attributes.
-   [Modernized P3 color palette](https://tailwindcss.com/blog/tailwindcss-v4#modernized-p3-color-palette) — a redesigned, more vivid color palette that takes full advantage of modern display technology.
-   [Container queries](https://tailwindcss.com/blog/tailwindcss-v4#container-queries) — first-class APIs for styling elements based on their container size, no plugins required.
-   [New 3D transform utilities](https://tailwindcss.com/blog/tailwindcss-v4#new-3d-transform-utilities) — transform elements in 3D space directly in your HTML.
-   [Expanded gradient APIs](https://tailwindcss.com/blog/tailwindcss-v4#expanded-gradient-apis) — radial and conic gradients, interpolation modes, and more.
-   [@&#8203;starting-style support](https://tailwindcss.com/blog/tailwindcss-v4#starting-style-support) — a new variant you can use to create enter and exit transitions, without the need for JavaScript.
-   [not-\* variant](https://tailwindcss.com/blog/tailwindcss-v4#not-variant) — style an element only when it doesn't match another variant, custom selector, or media or feature query.
-   [Even more new utilities and variants](https://tailwindcss.com/blog/tailwindcss-v4#even-more-new-utilities-and-variants) — including support for `color-scheme`, `field-sizing`, complex shadows, `inert`, and more.

Start using Tailwind CSS v4.0 today by [installing it in a new project](https://tailwindcss.com/docs/installation/), or playing with it directly in the browser on [Tailwind Play](https://play.tailwindcss.com/).

For existing projects, we've published a comprehensive [upgrade guide](https://tailwindcss.com/docs/upgrade-guide) and built an [automated upgrade tool](https://tailwindcss.com/docs/upgrade-guide#using-the-upgrade-tool) to get you on the latest version as quickly and painlessly as possible.

For a deep-dive into everything that's new, [check out the announcement post](https://tailwindcss.com/blog/tailwindcss-v4).

</details>

---

📅 **Schedule**: Branch creation - "* * * * 0,6" (UTC), Automerge - "* 0-3 * * *" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzYuNCIsInVwZGF0ZWRJblZlciI6IjM5LjE3Ni40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmN5IPCfk6bvuI8iLCJ1aSJdfQ==-->

Co-authored-by: pat-s <patrick.schratz@gmail.com>
Reviewed-on: https://codeberg.org/crowci/crow/pulls/60
Co-authored-by: crowci-bot <admin@crowci.dev>
Co-committed-by: crowci-bot <admin@crowci.dev>
This commit is contained in:
crowci-bot 2025-02-21 18:31:10 +00:00 committed by pat-s
parent 918f41ddc0
commit 535a29d8d0
No known key found for this signature in database
GPG Key ID: 3C6318841EF78925
45 changed files with 1456 additions and 750 deletions

View File

@ -9,3 +9,4 @@ venv/
web/pnpm-lock.yaml
web/src/assets/locales/*.json
!web/src/assets/locales/en.json
.pnpm-store/

View File

@ -18,12 +18,11 @@
"dependencies": {
"@kyvg/vue3-notification": "^3.4.1",
"@mdi/js": "^7.4.47",
"@tailwindcss/postcss": "4.0.6",
"@tailwindcss/postcss": "4.0.8",
"@tailwindcss/typography": "^0.5.15",
"@tailwindcss/vite": "4.0.6",
"@vueuse/core": "^12.3.0",
"ansi_up": "^6.0.2",
"autoprefixer": "^10.4.20",
"dompurify": "^3.2.3",
"eslint-config-prettier": "^10.0.1",
"fuse.js": "^7.0.0",
@ -33,11 +32,11 @@
"node-emoji": "^2.2.0",
"pinia": "^3.0.0",
"postcss": "^8.4.49",
"prettier-plugin-tailwindcss": "^0.6.9",
"prettier-plugin-tailwindcss": "^0.6.11",
"prismjs": "^1.29.0",
"semver": "^7.6.3",
"simple-icons": "^14.1.0",
"tailwindcss": "^3.4.17",
"tailwindcss": "^4.0.8",
"vue": "^3.5.13",
"vue-i18n": "^11.0.1",
"vue-router": "^4.5.0"

454
web/pnpm-lock.yaml generated
View File

@ -18,11 +18,11 @@ importers:
specifier: ^7.4.47
version: 7.4.47
'@tailwindcss/postcss':
specifier: 4.0.6
version: 4.0.6
specifier: 4.0.8
version: 4.0.8
'@tailwindcss/typography':
specifier: ^0.5.15
version: 0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3)))
version: 0.5.16(tailwindcss@4.0.8)
'@tailwindcss/vite':
specifier: 4.0.6
version: 4.0.6(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(stylus@0.57.0)(yaml@2.7.0))
@ -32,9 +32,6 @@ importers:
ansi_up:
specifier: ^6.0.2
version: 6.0.2
autoprefixer:
specifier: ^10.4.20
version: 10.4.20(postcss@8.5.2)
dompurify:
specifier: ^3.2.3
version: 3.2.4
@ -63,7 +60,7 @@ importers:
specifier: ^8.4.49
version: 8.5.2
prettier-plugin-tailwindcss:
specifier: ^0.6.9
specifier: ^0.6.11
version: 0.6.11(@ianvs/prettier-plugin-sort-imports@4.4.1(@vue/compiler-sfc@3.5.13)(prettier@3.5.1))(prettier@3.5.1)
prismjs:
specifier: ^1.29.0
@ -75,8 +72,8 @@ importers:
specifier: ^14.1.0
version: 14.7.0
tailwindcss:
specifier: ^3.4.17
version: 3.4.17(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3))
specifier: ^4.0.8
version: 4.0.8
vue:
specifier: ^3.5.13
version: 3.5.13(typescript@5.7.3)
@ -834,78 +831,151 @@ packages:
'@tailwindcss/node@4.0.6':
resolution: {integrity: sha512-jb6E0WeSq7OQbVYcIJ6LxnZTeC4HjMvbzFBMCrQff4R50HBlo/obmYNk6V2GCUXDeqiXtvtrQgcIbT+/boB03Q==}
'@tailwindcss/node@4.0.8':
resolution: {integrity: sha512-FKArQpbrbwv08TNT0k7ejYXpF+R8knZFAatNc0acOxbgeqLzwb86r+P3LGOjIeI3Idqe9CVkZrh4GlsJLJKkkw==}
'@tailwindcss/oxide-android-arm64@4.0.6':
resolution: {integrity: sha512-xDbym6bDPW3D2XqQqX3PjqW3CKGe1KXH7Fdkc60sX5ZLVUbzPkFeunQaoP+BuYlLc2cC1FoClrIRYnRzof9Sow==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
'@tailwindcss/oxide-android-arm64@4.0.8':
resolution: {integrity: sha512-We7K79+Sm4mwJHk26Yzu/GAj7C7myemm7PeXvpgMxyxO70SSFSL3uCcqFbz9JA5M5UPkrl7N9fkBe/Y0iazqpA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [android]
'@tailwindcss/oxide-darwin-arm64@4.0.6':
resolution: {integrity: sha512-1f71/ju/tvyGl5c2bDkchZHy8p8EK/tDHCxlpYJ1hGNvsYihZNurxVpZ0DefpN7cNc9RTT8DjrRoV8xXZKKRjg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@tailwindcss/oxide-darwin-arm64@4.0.8':
resolution: {integrity: sha512-Lv9Isi2EwkCTG1sRHNDi0uRNN1UGFdEThUAGFrydRmQZnraGLMjN8gahzg2FFnOizDl7LB2TykLUuiw833DSNg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.0.6':
resolution: {integrity: sha512-s/hg/ZPgxFIrGMb0kqyeaqZt505P891buUkSezmrDY6lxv2ixIELAlOcUVTkVh245SeaeEiUVUPiUN37cwoL2g==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@tailwindcss/oxide-darwin-x64@4.0.8':
resolution: {integrity: sha512-fWfywfYIlSWtKoqWTjukTHLWV3ARaBRjXCC2Eo0l6KVpaqGY4c2y8snUjp1xpxUtpqwMvCvFWFaleMoz1Vhzlw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [darwin]
'@tailwindcss/oxide-freebsd-x64@4.0.6':
resolution: {integrity: sha512-Z3Wo8FWZnmio8+xlcbb7JUo/hqRMSmhQw8IGIRoRJ7GmLR0C+25Wq+bEX/135xe/yEle2lFkhu9JBHd4wZYiig==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
'@tailwindcss/oxide-freebsd-x64@4.0.8':
resolution: {integrity: sha512-SO+dyvjJV9G94bnmq2288Ke0BIdvrbSbvtPLaQdqjqHR83v5L2fWADyFO+1oecHo9Owsk8MxcXh1agGVPIKIqw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [freebsd]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.6':
resolution: {integrity: sha512-SNSwkkim1myAgmnbHs4EjXsPL7rQbVGtjcok5EaIzkHkCAVK9QBQsWeP2Jm2/JJhq4wdx8tZB9Y7psMzHYWCkA==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8':
resolution: {integrity: sha512-ZSHggWiEblQNV69V0qUK5vuAtHP+I+S2eGrKGJ5lPgwgJeAd6GjLsVBN+Mqn2SPVfYM3BOpS9jX/zVg9RWQVDQ==}
engines: {node: '>= 10'}
cpu: [arm]
os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.0.6':
resolution: {integrity: sha512-tJ+mevtSDMQhKlwCCuhsFEFg058kBiSy4TkoeBG921EfrHKmexOaCyFKYhVXy4JtkaeeOcjJnCLasEeqml4i+Q==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-gnu@4.0.8':
resolution: {integrity: sha512-xWpr6M0OZLDNsr7+bQz+3X7zcnDJZJ1N9gtBWCtfhkEtDjjxYEp+Lr5L5nc/yXlL4MyCHnn0uonGVXy3fhxaVA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.0.6':
resolution: {integrity: sha512-IoArz1vfuTR4rALXMUXI/GWWfx2EaO4gFNtBNkDNOYhlTD4NVEwE45nbBoojYiTulajI4c2XH8UmVEVJTOJKxA==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-arm64-musl@4.0.8':
resolution: {integrity: sha512-5tz2IL7LN58ssGEq7h/staD7pu/izF/KeMWdlJ86WDe2Ah46LF3ET6ZGKTr5eZMrnEA0M9cVFuSPprKRHNgjeg==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.0.6':
resolution: {integrity: sha512-QtsUfLkEAeWAC3Owx9Kg+7JdzE+k9drPhwTAXbXugYB9RZUnEWWx5x3q/au6TvUYcL+n0RBqDEO2gucZRvRFgQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-gnu@4.0.8':
resolution: {integrity: sha512-KSzMkhyrxAQyY2o194NKVKU9j/c+NFSoMvnHWFaNHKi3P1lb+Vq1UC19tLHrmxSkKapcMMu69D7+G1+FVGNDXQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.0.6':
resolution: {integrity: sha512-QthvJqIji2KlGNwLcK/PPYo7w1Wsi/8NK0wAtRGbv4eOPdZHkQ9KUk+oCoP20oPO7i2a6X1aBAFQEL7i08nNMA==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-linux-x64-musl@4.0.8':
resolution: {integrity: sha512-yFYKG5UtHTRimjtqxUWXBgI4Tc6NJe3USjRIVdlTczpLRxq/SFwgzGl5JbatCxgSRDPBFwRrNPxq+ukfQFGdrw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [linux]
'@tailwindcss/oxide-win32-arm64-msvc@4.0.6':
resolution: {integrity: sha512-+oka+dYX8jy9iP00DJ9Y100XsqvbqR5s0yfMZJuPR1H/lDVtDfsZiSix1UFBQ3X1HWxoEEl6iXNJHWd56TocVw==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@tailwindcss/oxide-win32-arm64-msvc@4.0.8':
resolution: {integrity: sha512-tndGujmCSba85cRCnQzXgpA2jx5gXimyspsUYae5jlPyLRG0RjXbDshFKOheVXU4TLflo7FSG8EHCBJ0EHTKdQ==}
engines: {node: '>= 10'}
cpu: [arm64]
os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.0.6':
resolution: {integrity: sha512-+o+juAkik4p8Ue/0LiflQXPmVatl6Av3LEZXpBTfg4qkMIbZdhCGWFzHdt2NjoMiLOJCFDddoV6GYaimvK1Olw==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@tailwindcss/oxide-win32-x64-msvc@4.0.8':
resolution: {integrity: sha512-T77jroAc0p4EHVVgTUiNeFn6Nj3jtD3IeNId2X+0k+N1XxfNipy81BEkYErpKLiOkNhpNFjPee8/ZVas29b2OQ==}
engines: {node: '>= 10'}
cpu: [x64]
os: [win32]
'@tailwindcss/oxide@4.0.6':
resolution: {integrity: sha512-lVyKV2y58UE9CeKVcYykULe9QaE1dtKdxDEdrTPIdbzRgBk6bdxHNAoDqvcqXbIGXubn3VOl1O/CFF77v/EqSA==}
engines: {node: '>= 10'}
'@tailwindcss/postcss@4.0.6':
resolution: {integrity: sha512-noTaGPHjGCXTCc487TWnfAEN0VMjqDAecssWDOsfxV2hFrcZR0AHthX7IdY/0xHTg/EtpmIPdssddlZ5/B7JnQ==}
'@tailwindcss/oxide@4.0.8':
resolution: {integrity: sha512-KfMcuAu/Iw+DcV1e8twrFyr2yN8/ZDC/odIGta4wuuJOGkrkHZbvJvRNIbQNhGh7erZTYV6Ie0IeD6WC9Y8Hcw==}
engines: {node: '>= 10'}
'@tailwindcss/postcss@4.0.8':
resolution: {integrity: sha512-SUwlrXjn1ycmUbA0o0n3Y0LqlXqxN5R8HR+ti+OBbRS79wl2seDmiypEs3xJCuQXe07ol81s1AmRMitBmPveJA==}
'@tailwindcss/typography@0.5.16':
resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==}
@ -1204,13 +1274,6 @@ packages:
resolution: {integrity: sha512-zIcWDJ+Kwqxfdnogx66Gxzr0kVmCcRAdat9nlY2IHsshqTN4fBH6tMeRMPA/2w0rpBayIJvjQAaa2/4RDrNqwg==}
engines: {node: '>=14'}
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
anymatch@3.1.3:
resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
engines: {node: '>= 8'}
are-docs-informative@0.0.2:
resolution: {integrity: sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==}
engines: {node: '>=14'}
@ -1218,9 +1281,6 @@ packages:
arg@4.1.3:
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
arg@5.0.2:
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
argparse@2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
@ -1236,13 +1296,6 @@ packages:
engines: {node: '>= 4.5.0'}
hasBin: true
autoprefixer@10.4.20:
resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==}
engines: {node: ^10 || ^12 || >=14}
hasBin: true
peerDependencies:
postcss: ^8.1.0
babel-plugin-prismjs@2.1.0:
resolution: {integrity: sha512-ehzSKYfeAz4U78zi/sfwsjDPlq0LvDKxNefcZTJ/iKBu+plsHsLqZhUeGf1+82LAcA35UZGbU6ksEx2Utphc/g==}
peerDependencies:
@ -1251,10 +1304,6 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
binary-extensions@2.3.0:
resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==}
engines: {node: '>=8'}
birpc@0.2.19:
resolution: {integrity: sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==}
@ -1292,10 +1341,6 @@ packages:
resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
engines: {node: '>=6'}
camelcase-css@2.0.1:
resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==}
engines: {node: '>= 6'}
caniuse-lite@1.0.30001700:
resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==}
@ -1321,10 +1366,6 @@ packages:
resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==}
engines: {node: '>= 16'}
chokidar@3.6.0:
resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==}
engines: {node: '>= 8.10.0'}
ci-info@4.1.0:
resolution: {integrity: sha512-HutrvTNsF48wnxkzERIXOe5/mlcfFcbfCmwcg6CJnizbSue78AbDt+1cgl26zwn61WFxhcPykPfZrbqjGmBb4A==}
engines: {node: '>=8'}
@ -1352,10 +1393,6 @@ packages:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
commander@4.1.1:
resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
engines: {node: '>= 6'}
commander@7.2.0:
resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
engines: {node: '>= 10'}
@ -1481,16 +1518,10 @@ packages:
devlop@1.1.0:
resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==}
didyoumean@1.2.2:
resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==}
diff@4.0.2:
resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==}
engines: {node: '>=0.3.1'}
dlv@1.1.3:
resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==}
doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
@ -1859,9 +1890,6 @@ packages:
resolution: {integrity: sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==}
engines: {node: '>= 6'}
fraction.js@4.3.7:
resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==}
fs.realpath@1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
@ -2013,10 +2041,6 @@ packages:
is-arrayish@0.2.1:
resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==}
is-binary-path@2.1.0:
resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
engines: {node: '>=8'}
is-builtin-module@3.2.1:
resolution: {integrity: sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==}
engines: {node: '>=6'}
@ -2057,10 +2081,6 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jiti@1.21.7:
resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==}
hasBin: true
jiti@2.4.2:
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
hasBin: true
@ -2198,10 +2218,6 @@ packages:
resolution: {integrity: sha512-FmGoeD4S05ewj+AkhTY+D+myDvXI6eL27FjHIjoyUkO/uw7WZD1fBVs0QxeYWa7E17CUHJaYX/RUGISCtcrG4Q==}
engines: {node: '>= 12.0.0'}
lilconfig@3.1.3:
resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==}
engines: {node: '>=14'}
lines-and-columns@1.2.4:
resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==}
@ -2432,9 +2448,6 @@ packages:
muggle-string@0.4.1:
resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==}
mz@2.7.0:
resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==}
nanoid@3.3.8:
resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
@ -2462,28 +2475,12 @@ packages:
normalize-package-data@2.5.0:
resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==}
normalize-path@3.0.0:
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
engines: {node: '>=0.10.0'}
normalize-range@0.1.2:
resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==}
engines: {node: '>=0.10.0'}
nth-check@2.1.1:
resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
nwsapi@2.2.16:
resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==}
object-assign@4.1.1:
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
engines: {node: '>=0.10.0'}
object-hash@3.0.0:
resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==}
engines: {node: '>= 6'}
once@1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
@ -2582,10 +2579,6 @@ packages:
resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==}
engines: {node: '>=12'}
pify@2.3.0:
resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==}
engines: {node: '>=0.10.0'}
pinia@3.0.1:
resolution: {integrity: sha512-WXglsDzztOTH6IfcJ99ltYZin2mY8XZCXujkYWVIJlBjqsP6ST7zw+Aarh63E1cDVYeyUcPCxPHzJpEOmzB6Wg==}
peerDependencies:
@ -2595,10 +2588,6 @@ packages:
typescript:
optional: true
pirates@4.0.6:
resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==}
engines: {node: '>= 6'}
pkg-types@1.3.1:
resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==}
@ -2606,36 +2595,6 @@ packages:
resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==}
engines: {node: '>=4'}
postcss-import@15.1.0:
resolution: {integrity: sha512-hpr+J05B2FVYUAXHeK1YyI267J/dDDhMU6B6civm8hSY1jYJnBXxzKDKDswzJmtLHryrjhnDjqqp/49t8FALew==}
engines: {node: '>=14.0.0'}
peerDependencies:
postcss: ^8.0.0
postcss-js@4.0.1:
resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==}
engines: {node: ^12 || ^14 || >= 16}
peerDependencies:
postcss: ^8.4.21
postcss-load-config@4.0.2:
resolution: {integrity: sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==}
engines: {node: '>= 14'}
peerDependencies:
postcss: '>=8.0.9'
ts-node: '>=9.0.0'
peerDependenciesMeta:
postcss:
optional: true
ts-node:
optional: true
postcss-nested@6.2.0:
resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==}
engines: {node: '>=12.0'}
peerDependencies:
postcss: ^8.2.14
postcss-safe-parser@6.0.0:
resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==}
engines: {node: '>=12.0'}
@ -2660,9 +2619,6 @@ packages:
resolution: {integrity: sha512-8I7Cd8sxiEITIp32xBK4K/Aj1ukX6vuWnx8oY/oAH35NfQI4OZaY5nd68Yx8HeN5S49uhQ6DL0rNk0ZBu/TaLg==}
engines: {node: ^8.10.0 || ^10.13.0 || ^11.10.1 || >=12.13.0}
postcss-value-parser@4.2.0:
resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==}
postcss@8.5.2:
resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==}
engines: {node: ^10 || ^12 || >=14}
@ -2745,9 +2701,6 @@ packages:
queue-microtask@1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
read-cache@1.0.0:
resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==}
read-pkg-up@7.0.1:
resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==}
engines: {node: '>=8'}
@ -2756,10 +2709,6 @@ packages:
resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==}
engines: {node: '>=8'}
readdirp@3.6.0:
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
engines: {node: '>=8.10.0'}
refa@0.12.1:
resolution: {integrity: sha512-J8rn6v4DBb2nnFqkqwy6/NnTYMcgLA+sLr0iIO41qpv0n+ngb7ksag2tMRl0inb1bbO/esUwzW1vbJi7K0sI0g==}
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
@ -2933,11 +2882,6 @@ packages:
resolution: {integrity: sha512-yOI6G8WYfr0q8v8rRvE91wbxFU+rJPo760Va4MF6K0I6BZjO4r+xSynkvyPBP9tV1CIEUeRsiidjIs2rzb1CnQ==}
hasBin: true
sucrase@3.35.0:
resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==}
engines: {node: '>=16 || 14 >=14.17'}
hasBin: true
superjson@2.2.2:
resolution: {integrity: sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==}
engines: {node: '>=16'}
@ -2966,25 +2910,16 @@ packages:
resolution: {integrity: sha512-vrozgXDQwYO72vHjUb/HnFbQx1exDjoKzqx23aXEg2a9VIg2TSFZ8FmeZpTjUCFMYw7mpX4BE2SFu8wI7asYsw==}
engines: {node: ^14.18.0 || >=16.0.0}
tailwindcss@3.4.17:
resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==}
engines: {node: '>=14.0.0'}
hasBin: true
tailwindcss@4.0.6:
resolution: {integrity: sha512-mysewHYJKaXgNOW6pp5xon/emCsfAMnO8WMaGKZZ35fomnR/T5gYnRg2/yRTTrtXiEl1tiVkeRt0eMO6HxEZqw==}
tailwindcss@4.0.8:
resolution: {integrity: sha512-Me7N5CKR+D2A1xdWA5t5+kjjT7bwnxZOE6/yDI/ixJdJokszsn2n++mdU5yJwrsTpqFX2B9ZNMBJDwcqk9C9lw==}
tapable@2.2.1:
resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==}
engines: {node: '>=6'}
thenify-all@1.6.0:
resolution: {integrity: sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==}
engines: {node: '>=0.8'}
thenify@3.3.1:
resolution: {integrity: sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==}
tinybench@2.9.0:
resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==}
@ -3035,9 +2970,6 @@ packages:
peerDependencies:
typescript: '>=4.8.4'
ts-interface-checker@0.1.13:
resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==}
ts-node@10.9.2:
resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==}
hasBin: true
@ -3979,39 +3911,78 @@ snapshots:
jiti: 2.4.2
tailwindcss: 4.0.6
'@tailwindcss/node@4.0.8':
dependencies:
enhanced-resolve: 5.18.1
jiti: 2.4.2
tailwindcss: 4.0.8
'@tailwindcss/oxide-android-arm64@4.0.6':
optional: true
'@tailwindcss/oxide-android-arm64@4.0.8':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.0.6':
optional: true
'@tailwindcss/oxide-darwin-arm64@4.0.8':
optional: true
'@tailwindcss/oxide-darwin-x64@4.0.6':
optional: true
'@tailwindcss/oxide-darwin-x64@4.0.8':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.0.6':
optional: true
'@tailwindcss/oxide-freebsd-x64@4.0.8':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.6':
optional: true
'@tailwindcss/oxide-linux-arm-gnueabihf@4.0.8':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.0.6':
optional: true
'@tailwindcss/oxide-linux-arm64-gnu@4.0.8':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.0.6':
optional: true
'@tailwindcss/oxide-linux-arm64-musl@4.0.8':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.0.6':
optional: true
'@tailwindcss/oxide-linux-x64-gnu@4.0.8':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.0.6':
optional: true
'@tailwindcss/oxide-linux-x64-musl@4.0.8':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.0.6':
optional: true
'@tailwindcss/oxide-win32-arm64-msvc@4.0.8':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.0.6':
optional: true
'@tailwindcss/oxide-win32-x64-msvc@4.0.8':
optional: true
'@tailwindcss/oxide@4.0.6':
optionalDependencies:
'@tailwindcss/oxide-android-arm64': 4.0.6
@ -4026,22 +3997,36 @@ snapshots:
'@tailwindcss/oxide-win32-arm64-msvc': 4.0.6
'@tailwindcss/oxide-win32-x64-msvc': 4.0.6
'@tailwindcss/postcss@4.0.6':
'@tailwindcss/oxide@4.0.8':
optionalDependencies:
'@tailwindcss/oxide-android-arm64': 4.0.8
'@tailwindcss/oxide-darwin-arm64': 4.0.8
'@tailwindcss/oxide-darwin-x64': 4.0.8
'@tailwindcss/oxide-freebsd-x64': 4.0.8
'@tailwindcss/oxide-linux-arm-gnueabihf': 4.0.8
'@tailwindcss/oxide-linux-arm64-gnu': 4.0.8
'@tailwindcss/oxide-linux-arm64-musl': 4.0.8
'@tailwindcss/oxide-linux-x64-gnu': 4.0.8
'@tailwindcss/oxide-linux-x64-musl': 4.0.8
'@tailwindcss/oxide-win32-arm64-msvc': 4.0.8
'@tailwindcss/oxide-win32-x64-msvc': 4.0.8
'@tailwindcss/postcss@4.0.8':
dependencies:
'@alloc/quick-lru': 5.2.0
'@tailwindcss/node': 4.0.6
'@tailwindcss/oxide': 4.0.6
'@tailwindcss/node': 4.0.8
'@tailwindcss/oxide': 4.0.8
lightningcss: 1.29.1
postcss: 8.5.2
tailwindcss: 4.0.6
tailwindcss: 4.0.8
'@tailwindcss/typography@0.5.16(tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3)))':
'@tailwindcss/typography@0.5.16(tailwindcss@4.0.8)':
dependencies:
lodash.castarray: 4.4.0
lodash.isplainobject: 4.0.6
lodash.merge: 4.6.2
postcss-selector-parser: 6.0.10
tailwindcss: 3.4.17(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3))
tailwindcss: 4.0.8
'@tailwindcss/vite@4.0.6(vite@6.1.0(@types/node@22.13.4)(jiti@2.4.2)(lightningcss@1.29.1)(stylus@0.57.0)(yaml@2.7.0))':
dependencies:
@ -4400,19 +4385,10 @@ snapshots:
ansis@3.15.0: {}
any-promise@1.3.0: {}
anymatch@3.1.3:
dependencies:
normalize-path: 3.0.0
picomatch: 2.3.1
are-docs-informative@0.0.2: {}
arg@4.1.3: {}
arg@5.0.2: {}
argparse@2.0.1: {}
assertion-error@2.0.1: {}
@ -4421,24 +4397,12 @@ snapshots:
atob@2.1.2: {}
autoprefixer@10.4.20(postcss@8.5.2):
dependencies:
browserslist: 4.24.4
caniuse-lite: 1.0.30001700
fraction.js: 4.3.7
normalize-range: 0.1.2
picocolors: 1.1.1
postcss: 8.5.2
postcss-value-parser: 4.2.0
babel-plugin-prismjs@2.1.0(prismjs@1.29.0):
dependencies:
prismjs: 1.29.0
balanced-match@1.0.2: {}
binary-extensions@2.3.0: {}
birpc@0.2.19: {}
boolbase@1.0.0: {}
@ -4474,8 +4438,6 @@ snapshots:
callsites@3.1.0: {}
camelcase-css@2.0.1: {}
caniuse-lite@1.0.30001700: {}
ccount@2.0.1: {}
@ -4499,18 +4461,6 @@ snapshots:
check-error@2.1.1: {}
chokidar@3.6.0:
dependencies:
anymatch: 3.1.3
braces: 3.0.3
glob-parent: 5.1.2
is-binary-path: 2.1.0
is-glob: 4.0.3
normalize-path: 3.0.0
readdirp: 3.6.0
optionalDependencies:
fsevents: 2.3.3
ci-info@4.1.0: {}
clean-regexp@1.0.0:
@ -4535,8 +4485,6 @@ snapshots:
commander@10.0.1: {}
commander@4.1.1: {}
commander@7.2.0: {}
comment-parser@1.4.1: {}
@ -4644,12 +4592,8 @@ snapshots:
dependencies:
dequal: 2.0.3
didyoumean@1.2.2: {}
diff@4.0.2: {}
dlv@1.1.3: {}
doctrine@3.0.0:
dependencies:
esutils: 2.0.3
@ -5146,8 +5090,6 @@ snapshots:
es-set-tostringtag: 2.1.0
mime-types: 2.1.35
fraction.js@4.3.7: {}
fs.realpath@1.0.0: {}
fsevents@2.3.3:
@ -5289,10 +5231,6 @@ snapshots:
is-arrayish@0.2.1: {}
is-binary-path@2.1.0:
dependencies:
binary-extensions: 2.3.0
is-builtin-module@3.2.1:
dependencies:
builtin-modules: 3.3.0
@ -5327,8 +5265,6 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jiti@1.21.7: {}
jiti@2.4.2: {}
js-base64@3.7.7: {}
@ -5454,8 +5390,6 @@ snapshots:
lightningcss-win32-arm64-msvc: 1.29.1
lightningcss-win32-x64-msvc: 1.29.1
lilconfig@3.1.3: {}
lines-and-columns@1.2.4: {}
local-pkg@1.0.0:
@ -5842,12 +5776,6 @@ snapshots:
muggle-string@0.4.1: {}
mz@2.7.0:
dependencies:
any-promise: 1.3.0
object-assign: 4.1.1
thenify-all: 1.6.0
nanoid@3.3.8: {}
natural-compare@1.4.0: {}
@ -5874,20 +5802,12 @@ snapshots:
semver: 7.7.1
validate-npm-package-license: 3.0.4
normalize-path@3.0.0: {}
normalize-range@0.1.2: {}
nth-check@2.1.1:
dependencies:
boolbase: 1.0.0
nwsapi@2.2.16: {}
object-assign@4.1.1: {}
object-hash@3.0.0: {}
once@1.4.0:
dependencies:
wrappy: 1.0.2
@ -5974,8 +5894,6 @@ snapshots:
picomatch@4.0.2: {}
pify@2.3.0: {}
pinia@3.0.1(typescript@5.7.3)(vue@3.5.13(typescript@5.7.3)):
dependencies:
'@vue/devtools-api': 7.7.2
@ -5983,8 +5901,6 @@ snapshots:
optionalDependencies:
typescript: 5.7.3
pirates@4.0.6: {}
pkg-types@1.3.1:
dependencies:
confbox: 0.1.8
@ -5993,31 +5909,6 @@ snapshots:
pluralize@8.0.0: {}
postcss-import@15.1.0(postcss@8.5.2):
dependencies:
postcss: 8.5.2
postcss-value-parser: 4.2.0
read-cache: 1.0.0
resolve: 1.22.10
postcss-js@4.0.1(postcss@8.5.2):
dependencies:
camelcase-css: 2.0.1
postcss: 8.5.2
postcss-load-config@4.0.2(postcss@8.5.2)(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3)):
dependencies:
lilconfig: 3.1.3
yaml: 2.7.0
optionalDependencies:
postcss: 8.5.2
ts-node: 10.9.2(@types/node@22.13.4)(typescript@5.7.3)
postcss-nested@6.2.0(postcss@8.5.2):
dependencies:
postcss: 8.5.2
postcss-selector-parser: 6.1.2
postcss-safe-parser@6.0.0(postcss@8.5.2):
dependencies:
postcss: 8.5.2
@ -6046,8 +5937,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
postcss-value-parser@4.2.0: {}
postcss@8.5.2:
dependencies:
nanoid: 3.3.8
@ -6072,10 +5961,6 @@ snapshots:
queue-microtask@1.2.3: {}
read-cache@1.0.0:
dependencies:
pify: 2.3.0
read-pkg-up@7.0.1:
dependencies:
find-up: 4.1.0
@ -6089,10 +5974,6 @@ snapshots:
parse-json: 5.2.0
type-fest: 0.6.0
readdirp@3.6.0:
dependencies:
picomatch: 2.3.1
refa@0.12.1:
dependencies:
'@eslint-community/regexpp': 4.12.1
@ -6268,16 +6149,6 @@ snapshots:
transitivePeerDependencies:
- supports-color
sucrase@3.35.0:
dependencies:
'@jridgewell/gen-mapping': 0.3.8
commander: 4.1.1
glob: 10.4.5
lines-and-columns: 1.2.4
mz: 2.7.0
pirates: 4.0.6
ts-interface-checker: 0.1.13
superjson@2.2.2:
dependencies:
copy-anything: 3.0.5
@ -6309,45 +6180,12 @@ snapshots:
'@pkgr/core': 0.1.1
tslib: 2.8.1
tailwindcss@3.4.17(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3)):
dependencies:
'@alloc/quick-lru': 5.2.0
arg: 5.0.2
chokidar: 3.6.0
didyoumean: 1.2.2
dlv: 1.1.3
fast-glob: 3.3.3
glob-parent: 6.0.2
is-glob: 4.0.3
jiti: 1.21.7
lilconfig: 3.1.3
micromatch: 4.0.8
normalize-path: 3.0.0
object-hash: 3.0.0
picocolors: 1.1.1
postcss: 8.5.2
postcss-import: 15.1.0(postcss@8.5.2)
postcss-js: 4.0.1(postcss@8.5.2)
postcss-load-config: 4.0.2(postcss@8.5.2)(ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3))
postcss-nested: 6.2.0(postcss@8.5.2)
postcss-selector-parser: 6.1.2
resolve: 1.22.10
sucrase: 3.35.0
transitivePeerDependencies:
- ts-node
tailwindcss@4.0.6: {}
tailwindcss@4.0.8: {}
tapable@2.2.1: {}
thenify-all@1.6.0:
dependencies:
thenify: 3.3.1
thenify@3.3.1:
dependencies:
any-promise: 1.3.0
tinybench@2.9.0: {}
tinycolor2@1.6.0: {}
@ -6386,8 +6224,6 @@ snapshots:
dependencies:
typescript: 5.7.3
ts-interface-checker@0.1.13: {}
ts-node@10.9.2(@types/node@22.13.4)(typescript@5.7.3):
dependencies:
'@cspotcode/source-map-support': 0.8.1

View File

@ -1,7 +1,6 @@
// postcss.config.js
export default {
plugins: {
tailwindcss: {},
autoprefixer: {},
'@tailwindcss/postcss': {},
},
};

View File

@ -4,7 +4,7 @@
<template v-else>
<Navbar />
<main class="relative flex h-full min-h-0">
<div id="scroll-component" class="flex flex-grow flex-col overflow-y-auto"><router-view /></div>
<div id="scroll-component" class="flex grow flex-col overflow-y-auto"><router-view /></div>
<transition name="slide-right">
<PipelineFeedSidebar class="absolute bottom-0 right-0 top-0 w-full max-w-80 border-l shadow-md xl:max-w-96" />
</transition>

View File

@ -3,7 +3,7 @@
<ListItem
v-for="agent in props.agents"
:key="agent.id"
class="items-center !bg-wp-background-200 shadow-md dark:!bg-wp-background-100"
class="items-center bg-wp-background-200! shadow-md dark:bg-wp-background-100!"
>
<span>{{ agent.name || `Agent ${agent.id}` }}</span>
<span class="ml-auto">

View File

@ -4,8 +4,8 @@
class="flex items-center rounded-l-full border border-wp-custom-highlight-100 py-0.5 pl-2 pr-1 text-gray-300 text-wp-text-100"
:class="{
'rounded-r-full pr-2': value === undefined,
'!border-wp-error-100': label === 'global secret',
'!border-wp-hint-warn-200': label === 'organization secret',
'border-wp-error-100!': label === 'global secret',
'border-wp-hint-warn-200!': label === 'organization secret',
}"
>
{{ label }}

View File

@ -2,13 +2,13 @@
<component
:is="to === undefined ? 'button' : httpLink ? 'a' : 'router-link'"
v-bind="btnAttrs"
class="relative flex flex-shrink-0 cursor-pointer items-center overflow-hidden whitespace-nowrap rounded-md border border-wp-custom-highlight-100 px-2 py-1 shadow-sm transition-all duration-150 hover:border-wp-orange-300 hover:bg-wp-orange-300 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:border-orange-600 dark:hover:bg-orange-600"
class="relative flex shrink-0 cursor-pointer items-center overflow-hidden whitespace-nowrap rounded-md border border-wp-custom-highlight-100 px-2 py-1 shadow-xs transition-all duration-150 hover:border-wp-orange-300 hover:bg-wp-orange-300 disabled:cursor-not-allowed disabled:opacity-50 dark:hover:border-wp-custom-hover-100 dark:hover:bg-wp-custom-hover-100"
:class="{
'border-wp-control-neutral-300 bg-wp-control-neutral-100 text-wp-text-100 hover:bg-wp-control-neutral-200':
color === 'gray',
'border-wp-custom-highlight-100 bg-wp-control-neutral-100 text-wp-text-100 hover:border-wp-orange-300 hover:bg-wp-orange-300':
color === 'default',
'border-wp-control-info-100 bg-wp-control-info-100 text-white hover:border-wp-orange-300 hover:bg-wp-orange-300 dark:text-wp-text-200 dark:hover:border-orange-600 dark:hover:bg-orange-600':
'border-wp-control-info-100 bg-wp-control-info-100 text-white hover:border-wp-orange-300 hover:bg-wp-orange-300 dark:text-wp-text-200 dark:hover:border-wp-custom-hover-100 ill-dark:hover:bg-wp-custom-hover-100':
color === 'blue',
'border-wp-error-100 bg-wp-error-100 text-white hover:bg-wp-error-200 dark:text-wp-text-200': color === 'red',
...passedClasses,
@ -20,7 +20,7 @@
<Icon
v-if="startIcon"
:name="startIcon"
class="!h-5 !w-5 dark:text-wp-text-200"
class="h-5! w-5! dark:text-wp-text-200"
:class="{ invisible: isLoading, 'mr-1': text }"
/>
<span :class="{ invisible: isLoading }">{{ text }}</span>

View File

@ -5,7 +5,7 @@
target="_blank"
class="hover:text-wp-link-300 cursor-pointer text-wp-custom-highlight-100"
>
<Icon name="question" class="!h-5 !w-5" />
<Icon name="question" class="h-5! w-5!" />
</a>
</template>

View File

@ -38,6 +38,7 @@ defineProps<{
</script>
<style scoped>
@reference '~/tailwind.css';
.icon-button {
@apply hover-effect relative flex items-center justify-center overflow-hidden rounded-md bg-transparent px-1 py-1 disabled:cursor-not-allowed disabled:opacity-50;
}

View File

@ -2,9 +2,9 @@
<component
:is="to ? 'router-link' : clickable ? 'button' : 'div'"
:to="to"
class="flex w-full overflow-hidden rounded-md border border-wp-background-400 bg-wp-background-100 p-4 shadow-sm dark:bg-wp-background-200"
class="flex w-full overflow-hidden rounded-md border border-wp-background-400 bg-wp-background-100 p-4 shadow-xs dark:bg-wp-background-200"
:class="{
'cursor-pointer hover:bg-wp-background-300 hover:shadow-sm dark:hover:bg-wp-background-300': clickable || to,
'cursor-pointer hover:bg-wp-background-300 hover:shadow-xs dark:hover:bg-wp-background-300': clickable || to,
}"
>
<slot />

View File

@ -2,7 +2,7 @@
<div
class="flex items-center gap-4 rounded-md border border-l-4 border-solid border-wp-hint-warn-200 bg-wp-hint-warn-100 p-4 font-bold text-wp-text-100"
>
<Icon v-if="!textOnly" name="alert" class="flex-shrink-0 text-wp-hint-warn-200" />
<Icon v-if="!textOnly" name="alert" class="shrink-0 text-wp-hint-warn-200" />
<slot>
<span class="whitespace-pre-wrap">{{ text }}</span>
</slot>

View File

@ -3,7 +3,7 @@
<input
:id="`checkbox-${id}`"
type="checkbox"
class="checkbox relative h-5 w-5 flex-shrink-0 cursor-pointer border border-wp-background-400 bg-wp-control-neutral-100 shadow-sm transition-colors duration-150 checked:border-wp-background-secondary-800 checked:bg-wp-background-secondary-800 focus-visible:border-wp-control-neutral-300 checked:focus-visible:border-wp-control-ok-300"
class="checkbox flex relative h-5 w-5 shrink-0 cursor-pointer border border-wp-background-400 bg-wp-control-neutral-100 shadow-xs transition-colors duration-150 checked:border-wp-background-secondary-800 checked:bg-wp-background-secondary-800 focus-visible:border-wp-control-neutral-300 checked:focus-visible:border-wp-control-ok-300"
:checked="innerValue"
@click="innerValue = !innerValue"
/>
@ -39,6 +39,7 @@ const id = (Math.random() + 1).toString(36).substring(7);
</script>
<style scoped>
@reference '~/tailwind.css';
.checkbox {
width: 1.3rem;
height: 1.3rem;
@ -61,7 +62,6 @@ const id = (Math.random() + 1).toString(36).substring(7);
border-width: 0 2px 2px 0;
transform: translate(-50%, -60%) rotate(45deg);
opacity: 0;
@apply dark:border-white;
}
.checkbox:checked::before {

View File

@ -17,7 +17,7 @@
:placeholder="valuePlaceholder"
@update:model-value="updateItem(index, 'value', $event)"
/>
<div class="w-10 flex-shrink-0">
<div class="w-10 shrink-0">
<Button
v-if="index !== displayItems.length - 1"
type="button"

View File

@ -3,7 +3,7 @@
<input
:id="`radio-${id}-${option.value}`"
type="radio"
class="radio relative h-5 w-5 flex-shrink-0 cursor-pointer rounded-full border border-wp-background-400 bg-wp-control-neutral-100 shadow-sm checked:border-wp-background-secondary-800 checked:bg-wp-background-secondary-800 focus-visible:border-wp-control-neutral-300 checked:focus-visible:border-wp-control-ok-300"
class="radio relative h-5 w-5 shrink-0 cursor-pointer rounded-full border border-wp-background-400 bg-wp-control-neutral-100 shadow-xs checked:border-wp-background-secondary-800 checked:bg-wp-background-secondary-800 focus-visible:border-wp-control-neutral-300 checked:focus-visible:border-wp-control-ok-300"
:value="option.value"
:checked="innerValue?.includes(option.value)"
@click="innerValue = option.value"
@ -41,6 +41,8 @@ const id = (Math.random() + 1).toString(36).substring(7);
</script>
<style scoped>
@reference '~/tailwind.css';
.radio {
width: 1.3rem;
height: 1.3rem;
@ -62,7 +64,6 @@ const id = (Math.random() + 1).toString(36).substring(7);
background: white;
transform: translate(-50%, -50%);
opacity: 0;
@apply dark:bg-white;
}
.radio:checked::before {

View File

@ -2,7 +2,7 @@
<input
v-if="lines === 1"
v-model="innerValue"
class="w-full rounded-md border border-wp-background-400 bg-wp-background-100 px-2 py-1 shadow-md focus-visible:border-wp-control-neutral-300 focus-visible:outline-none"
class="w-full rounded-md border border-wp-background-400 bg-wp-background-100 px-2 py-1 shadow-md focus-visible:border-wp-control-neutral-300 focus-visible:outline-hidden"
:class="{ 'opacity-50': disabled }"
:disabled="disabled"
:type="type"
@ -11,7 +11,7 @@
<textarea
v-else
v-model="innerValue"
class="w-full rounded-md border border-wp-background-400 bg-wp-background-100 px-2 py-1 shadow-md focus-visible:border-wp-control-neutral-300 focus-visible:outline-none"
class="w-full rounded-md border border-wp-background-400 bg-wp-background-100 px-2 py-1 shadow-md focus-visible:border-wp-control-neutral-300 focus-visible:outline-hidden"
:class="{ 'opacity-50': disabled }"
:disabled="disabled"
:placeholder="placeholder"

View File

@ -1,6 +1,6 @@
<template>
<div
class="w-full overflow-hidden rounded-md border border-wp-background-400 bg-wp-background-100 shadow-sm dark:bg-wp-background-200"
class="w-full overflow-hidden rounded-md border border-wp-background-400 bg-wp-background-100 shadow-xs dark:bg-wp-background-200"
>
<component
:is="collapsable ? 'button' : 'div'"

View File

@ -1,13 +1,12 @@
<template>
<IconButton
:title="pipelineCount > 0 ? `${$t('pipeline_feed')} (${pipelineCount})` : $t('pipeline_feed')"
class="active-pipelines-toggle relative !p-1.5 text-current"
class="active-pipelines-toggle relative p-1.5! text-current"
@click="toggle"
>
<div v-if="pipelineCount > 0" class="spinner" />
<div
class="z-0 flex h-full w-full items-center justify-center rounded-md border border-wp-custom-highlight-100 bg-white bg-opacity-10 font-bold"
class="z-0 flex h-full w-full items-center justify-center border border-wp-custom-highlight-100 rounded-md bg-white/10 font-bold"
>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
{{ pipelineCount > 9 ? '9+' : pipelineCount }}
@ -32,6 +31,8 @@ onMounted(async () => {
</script>
<style scoped>
@reference '~/tailwind.css';
@keyframes rotate {
100% {
transform: rotate(1turn);
@ -42,7 +43,7 @@ onMounted(async () => {
overflow: hidden;
}
.spinner::before {
@apply absolute bg-wp-custom-highlight-100;
@apply bg-wp-custom-highlight-100 absolute;
content: '';
left: -50%;
top: -50%;
@ -56,7 +57,7 @@ onMounted(async () => {
animation: rotate 1.5s linear infinite;
}
.spinner::after {
@apply absolute inset-0.5 bg-wp-custom-highlight-100;
@apply bg-wp-custom-highlight-100 absolute inset-0.5;
/*
The nested border radius needs to be calculated correctly to look right:
https://www.30secondsofcode.org/css/s/nested-border-radius/

View File

@ -29,8 +29,8 @@
<Icon name="settings" />
<div v-if="version?.needsUpdate" class="absolute right-2 top-2 h-3 w-3 rounded-full bg-wp-error-100" />
</IconButton>
<ActivePipelines v-if="user" class="navbar-icon !p-1.5" />
<IconButton v-if="user" :to="{ name: 'user' }" :title="$t('user.settings.settings')" class="navbar-icon !p-1.5">
<ActivePipelines v-if="user" class="navbar-icon p-1.5!" />
<IconButton v-if="user" :to="{ name: 'user' }" :title="$t('user.settings.settings')" class="navbar-icon p-1.5!">
<img v-if="user && user.avatar_url" class="rounded-md" :src="`${user.avatar_url}`" />
</IconButton>
<Button v-else :text="$t('login')" :to="`/login?url=${route.fullPath}`" />
@ -62,6 +62,8 @@ const { enableSwagger } = config;
</script>
<style scoped>
@reference '~/tailwind.css';
.navbar-icon {
@apply h-11 w-11 rounded-md p-2.5;
}

View File

@ -1,9 +1,9 @@
<template>
<header
class="border-wp-background-400 bg-wp-background-100 text-wp-text-100 shadow-sm dark:border-wp-background-100 dark:bg-wp-background-300"
class="border-wp-background-400 bg-wp-background-100 text-wp-text-100 shadow-xs dark:border-wp-background-100 dark:bg-wp-background-300"
:class="{ 'md:px-4': fullWidth }"
>
<Container :full-width="fullWidth" class="!py-0">
<Container :full-width="fullWidth" class="py-0!">
<div class="flex w-full flex-col gap-2 py-2 md:flex-row md:items-center md:justify-between md:gap-10">
<div
class="flex min-h-10 content-start items-center"
@ -15,14 +15,14 @@
v-if="goBack"
icon="back"
:title="$t('back')"
class="md:display-unset mr-2 hidden h-8 w-8 flex-shrink-0 md:justify-between"
class="md:display-unset mr-2 hidden h-8 w-8 shrink-0 md:justify-between"
@click="goBack"
/>
<h1 class="flex min-w-0 items-center gap-x-2 text-xl italic text-wp-text-100"><slot name="title" /></h1>
</div>
<TextField
v-if="searchBoxPresent"
class="order-3 w-full flex-grow md:order-none md:w-auto"
class="order-3 w-full grow md:order-none md:w-auto"
:aria-label="$t('search')"
:placeholder="$t('search')"
:model-value="search"

View File

@ -6,13 +6,13 @@
:key="tab.title"
:to="tab.to"
class="flex cursor-pointer items-center whitespace-nowrap border-b-2 border-transparent py-1 text-wp-text-100"
:active-class="tab.matchChildren ? '!border-wp-custom-highlight-100' : ''"
:exact-active-class="tab.matchChildren ? '' : '!border-wp-custom-highlight-100'"
:active-class="tab.matchChildren ? 'border-wp-custom-highlight-100!' : ''"
:exact-active-class="tab.matchChildren ? '' : 'border-wp-custom-highlight-100!'"
>
<span
class="flex w-full min-w-20 flex-row items-center justify-center gap-2 rounded-md px-2 py-1 hover:bg-wp-background-200 dark:hover:bg-wp-background-100"
>
<Icon v-if="tab.icon" :name="tab.icon" :class="tab.iconClass" class="flex-shrink-0" />
<Icon v-if="tab.icon" :name="tab.icon" :class="tab.iconClass" class="shrink-0" />
<span>{{ tab.title }}</span> <CountBadge v-if="tab.count" :value="tab.count" />
</span>
</router-link>
@ -34,7 +34,7 @@
<span
class="flex w-full min-w-20 flex-row items-center justify-center gap-2 rounded-md px-2 py-1 hover:bg-wp-background-200 dark:hover:bg-wp-background-100"
>
<Icon v-if="tab.icon" :name="tab.icon" :class="tab.iconClass" class="flex-shrink-0" />
<Icon v-if="tab.icon" :name="tab.icon" :class="tab.iconClass" class="shrink-0" />
<span>{{ tab.title }}</span>
</span>
</router-link>

View File

@ -12,9 +12,7 @@
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
{{ repo?.owner }}<Text>/</Text>{{ repo?.name }}
</router-link>
<span class="overflow-hidden overflow-ellipsis whitespace-nowrap italic" :title="message">{{
shortMessage
}}</span>
<span class="overflow-hidden text-ellipsis whitespace-nowrap italic" :title="message">{{ shortMessage }}</span>
<div class="mt-2 flex flex-col">
<div class="mb-1 flex items-center space-x-2" :title="created">
<Icon name="since" /> <span>{{ since }}</span>

View File

@ -12,7 +12,7 @@
name: 'repo-pipeline',
params: { repoId: pipeline.repo_id, pipelineId: pipeline.number },
}"
class="flex w-full border-b border-wp-background-400 px-2 py-4 hover:bg-wp-background-300 hover:shadow-sm dark:hover:bg-wp-background-400"
class="flex w-full border-b border-wp-background-400 px-2 py-4 hover:bg-wp-background-300 hover:shadow-xs dark:hover:bg-wp-background-400"
>
<PipelineFeedItem :pipeline="pipeline" />
</router-link>

View File

@ -3,7 +3,7 @@
<ListItem
v-for="registry in registries"
:key="registry.id"
class="items-center !bg-wp-background-200 shadow-md dark:!bg-wp-background-100"
class="items-center bg-wp-background-200! shadow-md dark:bg-wp-background-100!"
>
<span>{{ registry.address }}</span>
<IconButton

View File

@ -2,9 +2,9 @@
<router-link
v-if="repo"
:to="{ name: 'repo', params: { repoId: repo.id } }"
class="flex cursor-pointer flex-col overflow-hidden rounded-md border border-wp-background-400 bg-wp-background-100 p-3 shadow-sm hover:bg-wp-background-300 hover:shadow-sm dark:bg-wp-background-200 dark:hover:bg-wp-background-300"
class="flex cursor-pointer flex-col overflow-hidden rounded-md border border-wp-background-400 bg-wp-background-100 p-3 shadow-xs hover:bg-wp-background-300 hover:shadow-xs dark:bg-wp-background-200 dark:hover:bg-wp-background-300"
>
<div class="grid grid-cols-[auto,1fr] items-center gap-y-4">
<div class="grid grid-cols-[auto_1fr] items-center gap-y-4">
<div class="text-lg text-wp-text-100">{{ `${repo.owner} / ${repo.name}` }}</div>
<div class="ml-auto text-wp-text-100">
@ -27,10 +27,10 @@
<template v-if="lastPipeline">
<div class="flex min-w-0 flex-1 items-center gap-x-1">
<PipelineStatusIcon v-if="lastPipeline" :status="lastPipeline.status" />
<span class="overflow-hidden overflow-ellipsis whitespace-nowrap pl-1">{{ shortMessage }}</span>
<span class="overflow-hidden text-ellipsis whitespace-nowrap pl-1">{{ shortMessage }}</span>
</div>
<div class="ml-auto flex flex-shrink-0 items-center gap-x-1">
<div class="ml-auto flex shrink-0 items-center gap-x-1">
<Icon name="since" /> <span>{{ since }}</span>
</div>
</template>

View File

@ -1,13 +1,13 @@
<template>
<ListItem v-if="pipeline" class="w-full !p-0">
<div class="flex w-11 flex-shrink-0 items-center">
<ListItem v-if="pipeline" class="w-full p-0!">
<div class="flex w-11 shrink-0 items-center">
<div class="flex h-full w-6 flex-wrap items-center justify-between">
<PipelineStatusIcon class="mx-2 md:mx-3" :status="pipeline.status" />
</div>
</div>
<div class="flex min-w-0 flex-grow flex-wrap px-4 py-0.5 !pl-0.5 md:flex-nowrap">
<div class="hidden flex-shrink-0 items-center md:flex">
<div class="flex min-w-0 grow flex-wrap px-4 py-0.5 pl-0.5! md:flex-nowrap">
<div class="hidden shrink-0 items-center md:flex">
<Icon v-if="pipeline.event === 'cron'" name="stopwatch" class="text-wp-text-100" />
<img v-else class="w-6 rounded-md" :src="pipeline.author_avatar" />
</div>
@ -18,7 +18,7 @@
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
<span class="md:display-unset mx-2 hidden text-wp-text-alt-100">-</span>
<span
class="overflow-hidden overflow-ellipsis whitespace-nowrap text-wp-text-100 underline md:no-underline"
class="overflow-hidden text-ellipsis whitespace-nowrap text-wp-text-100 underline md:no-underline"
:title="message"
>
{{ shortMessage }}
@ -26,7 +26,7 @@
</div>
<div
class="grid w-full flex-shrink-0 grid-flow-col grid-cols-2 grid-rows-2 gap-x-4 gap-y-2 py-2 text-wp-text-100 md:ml-auto md:w-80"
class="grid w-full shrink-0 grid-flow-col grid-cols-2 grid-rows-2 gap-x-4 gap-y-2 py-2 text-wp-text-100 md:ml-auto md:w-80"
>
<div class="flex min-w-0 items-center space-x-2">
<span :title="pipelineEventTitle">

View File

@ -1,7 +1,7 @@
<template>
<div v-if="pipeline" class="flex flex-col pt-8 md:pt-0">
<div
class="code-box-log flex flex-grow flex-col overflow-hidden !p-0 shadow-md md:mt-0 md:!rounded-lg"
class="code-box-log flex grow flex-col overflow-hidden p-0! shadow-md md:mt-0 md:rounded-lg!"
@mouseover="showActions = true"
@mouseleave="showActions = false"
>
@ -17,14 +17,14 @@
v-if="step?.finished !== undefined && hasLogs"
:is-loading="downloadInProgress"
:title="$t('repo.pipeline.actions.log_download')"
class="text-wp-code-text-alt-100 hover:!bg-white hover:!bg-opacity-10"
class="text-wp-code-text-alt-100 hover:bg-white/10!"
icon="download"
@click="download"
/>
<IconButton
v-if="step?.finished !== undefined && hasLogs && hasPushPermission"
:title="$t('repo.pipeline.actions.log_delete')"
class="text-wp-code-text-alt-100 hover:!bg-white hover:!bg-opacity-10"
class="text-wp-code-text-alt-100 hover:bg-white/10"
icon="trash"
@click="deleteLogs"
/>
@ -33,12 +33,12 @@
:title="
autoScroll ? $t('repo.pipeline.actions.log_auto_scroll_off') : $t('repo.pipeline.actions.log_auto_scroll')
"
class="text-wp-code-text-alt-100 hover:!bg-white hover:!bg-opacity-10"
class="text-wp-code-text-alt-100 hover:bg-white/10!"
:icon="autoScroll ? 'auto-scroll' : 'auto-scroll-off'"
@click="autoScroll = !autoScroll"
/>
<IconButton
class="text-wp-code-text-alt-100 hover:!bg-white hover:!bg-opacity-10 md:!hidden"
class="text-wp-code-text-alt-100 hover:bg-white/10! md:hidden!"
icon="close"
@click="$emit('update:step-id', null)"
/>
@ -48,7 +48,7 @@
<div
v-show="hasLogs && loadedLogs && (log?.length || 0) > 0"
ref="consoleElement"
class="grid w-full max-w-full flex-grow auto-rows-min grid-cols-[min-content,minmax(0,1fr),min-content] overflow-y-auto overflow-x-hidden p-4 text-xs md:text-sm"
class="grid w-full max-w-full grow auto-rows-min grid-cols-[min-content_minmax(0,1fr)_min-content] overflow-y-auto overflow-x-hidden p-4 text-xs md:text-sm"
>
<div v-for="line in log" :key="line.index" class="contents font-mono">
<a
@ -56,9 +56,9 @@
:href="`#L${line.number}`"
class="select-none whitespace-nowrap pl-2 pr-6 text-right text-wp-code-text-line-numbers-100"
:class="{
'bg-red-600 bg-opacity-40 dark:bg-red-800 dark:bg-opacity-50': line.type === 'error',
'bg-yellow-600 bg-opacity-40 dark:bg-yellow-800 dark:bg-opacity-50': line.type === 'warning',
'bg-blue-600 bg-opacity-30': isSelected(line),
'bg-red-600/40 dark:bg-red-800/50': line.type === 'error',
'bg-yellow-600/40 dark:bg-yellow-800/50': line.type === 'warning',
'bg-blue-600/30': isSelected(line),
underline: isSelected(line),
}"
>
@ -68,9 +68,9 @@
<span
class="whitespace-pre-wrap break-words align-top"
:class="{
'bg-10.168.64.121-600 bg-opacity-40 dark:bg-red-800 dark:bg-opacity-50': line.type === 'error',
'bg-yellow-600 bg-opacity-40 dark:bg-yellow-800 dark:bg-opacity-50': line.type === 'warning',
'bg-blue-600 bg-opacity-30': isSelected(line),
'bg-red-600/40 dark:bg-red-800/50': line.type === 'error',
'bg-yellow-600/40 dark:bg-yellow-800/50': line.type === 'warning',
'bg-blue-600/30': isSelected(line),
}"
v-html="line.text"
/>
@ -78,9 +78,9 @@
<span
class="select-none whitespace-nowrap pr-1 text-right text-wp-code-text-line-numbers-100"
:class="{
'bg-red-600 bg-opacity-40 dark:bg-red-800 dark:bg-opacity-50': line.type === 'error',
'bg-yellow-600 bg-opacity-40 dark:bg-yellow-800 dark:bg-opacity-50': line.type === 'warning',
'bg-blue-600 bg-opacity-30': isSelected(line),
'bg-red-600 bg-opacity-40 dark:bg-red-800/50': line.type === 'error',
'bg-yellow-600/40 dark:bg-yellow-800/50': line.type === 'warning',
'bg-blue-600/30': isSelected(line),
}"
>
{{ formatTime(line.time) }}
@ -101,7 +101,7 @@
v-if="step?.finished !== undefined"
class="text-md flex w-full items-center bg-wp-code-100 px-4 py-1 font-bold text-wp-code-text-alt-100 md:min-h-[27px]"
>
<PipelineStatusIcon :status="step.state" class="!h-4 !w-4" />
<PipelineStatusIcon :status="step.state" class="h-4! w-4!" />
<span v-if="step?.error" class="ml-2 border border-wp-error-100 rounded-full px-2">{{ step.error }}</span>
<span v-if="step.exit_code === 1" class="ml-2 border border-wp-error-100 rounded-full px-2">{{
$t('repo.pipeline.exit_code', { exitCode: step.exit_code })

View File

@ -5,6 +5,8 @@ import CrowIcon from '~/assets/crow.svg?component';
</script>
<style scoped>
@reference '~/tailwind.css';
@keyframes peck {
0% {
transform: rotate(5deg) translateX(5%);

View File

@ -1,9 +1,9 @@
<template>
<div class="md:min-w-xs flex w-full flex-col gap-2 pb-2 text-wp-text-100 md:w-3/12 md:max-w-md">
<div
class="flex flex-shrink-0 flex-wrap justify-between gap-1 rounded-md border border-wp-background-400 bg-wp-background-100 p-4 shadow-sm dark:bg-wp-background-200"
class="flex shrink-0 flex-wrap justify-between gap-1 rounded-md border border-wp-background-400 bg-wp-background-100 p-4 shadow-xs dark:bg-wp-background-200"
>
<div class="flex flex-shrink-0 items-center space-x-1">
<div class="flex shrink-0 items-center space-x-1">
<div class="flex items-center">
<Icon v-if="pipeline.event === 'cron'" name="stopwatch" />
<img v-else class="w-6 rounded-md" :src="pipeline.author_avatar" />
@ -32,7 +32,7 @@
<span class="truncate">{{ prettyRef }}</span>
</div>
<div class="flex flex-shrink-0 items-center">
<div class="flex shrink-0 items-center">
<template v-if="pipeline.event === 'pull_request'">
<Icon name="commit" /> <span>{{ pipeline.commit.slice(0, 10) }}</span>
</template>
@ -49,12 +49,12 @@
<Panel v-if="pipeline.workflows === undefined || pipeline.workflows.length === 0">
<span>{{ $t('repo.pipeline.no_pipeline_steps') }}</span>
</Panel>
<div class="relative min-h-0 w-full flex-grow">
<div class="relative min-h-0 w-full grow">
<div class="absolute left-0 right-0 top-0 flex h-full flex-col gap-y-2 md:overflow-y-auto">
<div
v-for="workflow in pipeline.workflows"
:key="workflow.id"
class="rounded-md border border-wp-background-400 bg-wp-background-100 p-2 shadow-sm dark:bg-wp-background-200"
class="rounded-md border border-wp-background-400 bg-wp-background-100 p-2 shadow-xs dark:bg-wp-background-200"
>
<div class="flex flex-col gap-2">
<div v-if="workflow.environ" class="flex flex-wrap justify-end gap-x-1 gap-y-2 pr-1 pt-1 text-xs pb-2">
@ -72,7 +72,7 @@
class="h-6 min-w-6 transition-transform duration-150"
:class="{ 'rotate-90 transform': !workflowsCollapsed[workflow.id] }"
/>
<PipelineStatusIcon :status="workflow.state" class="!h-4 !w-4" />
<PipelineStatusIcon :status="workflow.state" class="h-4! w-4!" />
<span class="truncate">{{ workflow.name }}</span>
<PipelineStepDuration
v-if="workflow.started !== workflow.finished"
@ -98,7 +98,7 @@
}"
@click="$emit('update:selected-step-id', step.pid)"
>
<PipelineStatusIcon :service="step.type === StepType.Service" :status="step.state" class="!h-4 !w-4" />
<PipelineStatusIcon :service="step.type === StepType.Service" :status="step.state" class="h-4! w-4!" />
<span class="truncate">{{ step.name }}</span> <PipelineStepDuration :step="step" />
</button>
</div>

View File

@ -3,7 +3,7 @@
<ListItem
v-for="secret in secrets"
:key="secret.id"
class="items-center !bg-wp-background-200 shadow-md dark:!bg-wp-background-100"
class="items-center bg-wp-background-200! shadow-md dark:bg-wp-background-100!"
>
<span>{{ secret.name }}</span>
<Badge

View File

@ -1,3 +1,5 @@
@reference '~/tailwind.css';
:root,
:root[data-theme='light'] {
--wp-background-100: theme('colors.white');
@ -73,6 +75,7 @@
--wp-link-300: theme('colors.blue.800');
--wp-custom-highlight-100: theme('colors.int-wp-custom-highlight-dark.100');
--wp-custom-hover-100: theme('colors.int-wp-custom-hover.100');
}
:root[data-theme='dark'] {
@ -149,6 +152,7 @@
--wp-link-300: theme('colors.blue.500');
--wp-custom-highlight-100: theme('colors.int-wp-custom-highlight-dark.100');
--wp-custom-hover-100: theme('colors.int-wp-custom-hover.100');
}
html,
@ -170,28 +174,6 @@ body,
@apply border border-l-8 border-wp-control-neutral-200 border-l-int-wp-state-error-100 !bg-white dark:!bg-wp-background-200 text-wp-text-100 shadow-lg dark:border-l-8 dark:border-wp-background-400 dark:border-l-int-wp-state-error-100;
}
*::-webkit-scrollbar {
@apply h-3 w-3 bg-transparent;
}
* {
scrollbar-width: thin;
}
*::-webkit-scrollbar-thumb {
transition: background 0.2s ease-in-out;
border: 3px solid transparent;
@apply rounded-full bg-gray-200 bg-clip-content dark:bg-wp-background-200;
}
*::-webkit-scrollbar-thumb:hover {
@apply bg-gray-300 dark:bg-wp-background-100;
}
*::-webkit-scrollbar-corner {
@apply bg-transparent;
}
.code-box {
@apply break-words rounded-md bg-wp-code-inline-100 p-4 text-sm text-wp-code-inline-text-100;
white-space: pre-wrap;

File diff suppressed because it is too large Load Diff

View File

@ -13,7 +13,7 @@
</a>
</Error>
<div
class="flex min-h-sm w-full flex-col overflow-hidden border border-wp-background-400 bg-wp-background-100 shadow-sm dark:bg-wp-background-200 md:m-8 md:w-3xl md:flex-row md:rounded-md"
class="flex min-h-sm w-full flex-col overflow-hidden border border-wp-background-400 bg-wp-background-100 shadow-xs dark:bg-wp-background-200 md:m-8 md:w-3xl md:flex-row md:rounded-md"
>
<div
class="flex min-h-48 items-center justify-center bg-wp-background-secondary-800 dark:bg-wp-primary-300 md:w-3/5"
@ -29,7 +29,7 @@
v-for="forge in forges"
:key="forge.id"
:start-icon="forge.type === 'addon' ? 'repo' : forge.type"
class="!whitespace-normal"
class="whitespace-normal!"
@click="doLogin(forge.id)"
>
{{ $t('login_with', { forge: getHostFromUrl(forge) }) }}

View File

@ -4,7 +4,7 @@
<ListItem
v-for="org in orgs"
:key="org.id"
class="items-center gap-2 !bg-wp-background-200 dark:!bg-wp-background-100"
class="items-center gap-2 bg-wp-background-200! dark:bg-wp-background-100!"
>
<span>{{ org.name }}</span>
<IconButton

View File

@ -28,7 +28,7 @@
<ListItem
v-for="task in tasks"
:key="task.id"
class="mb-2 items-center !bg-wp-background-200 shadow-md dark:!bg-wp-background-100"
class="mb-2 items-center bg-wp-background-200! shadow-md dark:bg-wp-background-100!"
>
<div
class="flex items-center"

View File

@ -12,7 +12,7 @@
<ListItem
v-for="repo in repos"
:key="repo.id"
class="items-center gap-2 bg-wp-background-200 dark:!bg-wp-background-100"
class="items-center gap-2 bg-wp-background-200 dark:bg-wp-background-100!"
>
<span>{{ repo.full_name }}</span>
<div class="ml-auto flex items-center">

View File

@ -13,7 +13,7 @@
<ListItem
v-for="user in users"
:key="user.id"
class="items-center gap-2 !bg-wp-background-200 dark:!bg-wp-background-100"
class="items-center gap-2 bg-wp-background-200! dark:bg-wp-background-100!"
>
<img v-if="user.avatar_url" class="h-6 rounded-md" :src="user.avatar_url" /> <span>{{ user.login }}</span>
<Badge

View File

@ -11,7 +11,7 @@
<span class="md:display-unset hidden text-wp-text-alt-100"><Text>#</Text>{{ pullRequest.index }}</span>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
<span class="md:display-unset mx-2 hidden text-wp-text-alt-100"><Text>-</Text></span>
<span class="overflow-hidden overflow-ellipsis whitespace-nowrap text-wp-text-100 underline md:no-underline">{{
<span class="overflow-hidden text-ellipsis whitespace-nowrap text-wp-text-100 underline md:no-underline">{{
pullRequest.title
}}</span>
</ListItem>

View File

@ -1,12 +1,12 @@
<template>
<Container full-width class="md:min-h-xs flex flex-grow-0 flex-col md:flex-grow md:px-4">
<div class="flex min-h-0 w-full flex-grow flex-wrap-reverse md:flex-nowrap md:gap-4">
<Container full-width class="md:min-h-xs flex grow-0 flex-col md:grow md:px-4">
<div class="flex min-h-0 w-full grow flex-wrap-reverse md:flex-nowrap md:gap-4">
<PipelineStepList
v-model:selected-step-id="selectedStepId"
:class="{ 'hidden md:flex': pipeline!.status === 'blocked' }"
:pipeline="pipeline!"
/>
<div class="relative flex flex-grow basis-full items-start justify-center md:basis-auto">
<div class="relative flex grow basis-full items-start justify-center md:basis-auto">
<div v-if="pipeline!.errors?.some((e) => !e.is_warning)" class="mb-4 w-full md:mb-auto">
<Panel>
<div class="flex flex-col items-center gap-4 text-center">

View File

@ -3,11 +3,11 @@
<div class="flex flex-col gap-y-4">
<template v-for="(error, _index) in pipeline!.errors" :key="_index">
<div>
<div class="grid grid-cols-[minmax(10rem,auto),3fr]">
<div class="grid grid-cols-[minmax(10rem,auto)_3fr]">
<span class="flex items-center gap-x-2">
<Icon
name="alert"
class="my-1 flex-shrink-0"
class="my-1 shrink-0"
:class="{
'text-wp-state-warn-100': error.is_warning,
'text-wp-error-100': !error.is_warning,
@ -36,7 +36,7 @@
<span v-else />
</div>
<div class="col-start-2 grid grid-cols-[minmax(10rem,auto),4fr]">
<div class="col-start-2 grid grid-cols-[minmax(10rem,auto)_4fr]">
<span /> <span> <RenderMarkdown :content="error.message" /> </span>
</div>
</div>

View File

@ -20,11 +20,11 @@
<template #headerActions>
<div class="flex w-full items-center justify-between gap-2">
<div class="flex min-w-0 content-start gap-2">
<PipelineStatusIcon :status="pipeline.status" class="flex flex-shrink-0" />
<span class="flex-shrink-0 text-center">{{ $t('repo.pipeline.pipeline', { pipelineId }) }}</span>
<PipelineStatusIcon :status="pipeline.status" class="flex shrink-0" />
<span class="shrink-0 text-center">{{ $t('repo.pipeline.pipeline', { pipelineId }) }}</span>
<!-- eslint-disable-next-line @intlify/vue-i18n/no-raw-text -->
<span class="hidden md:inline-block">-</span>
<span class="min-w-0 overflow-hidden overflow-ellipsis whitespace-nowrap" :title="message">{{
<span class="min-w-0 overflow-hidden text-ellipsis whitespace-nowrap" :title="message">{{
shortMessage
}}</span>
</div>
@ -32,20 +32,20 @@
<div class="flex content-start gap-x-2">
<Button
v-if="pipeline.status === 'pending' || pipeline.status === 'running'"
class="flex-shrink-0 !py-0"
class="shrink-0 py-0!"
:text="$t('repo.pipeline.actions.cancel')"
:is-loading="isCancelingPipeline"
@click="cancelPipeline"
/>
<Button
class="flex-shrink-0 !py-0"
class="shrink-0 py-0!"
:text="$t('repo.pipeline.actions.restart')"
:is-loading="isRestartingPipeline"
@click="restartPipeline"
/>
<Button
v-if="pipeline.status === 'success' && repo.allow_deploy"
class="flex-shrink-0 !py-0"
class="shrink-0 py-0!"
:text="$t('repo.pipeline.actions.deploy')"
@click="showDeployPipelinePopup = true"
/>
@ -60,11 +60,11 @@
</template>
<template #tabActions>
<div class="flex flex-wrap gap-4 md:flex-nowrap">
<div class="flex flex-shrink-0 items-center gap-2" :title="$t('repo.pipeline.created', { created })">
<div class="flex shrink-0 items-center gap-2" :title="$t('repo.pipeline.created', { created })">
<Icon name="since" /> <span>{{ since }}</span>
</div>
<div class="flex flex-shrink-0 items-center gap-2" :title="$t('repo.pipeline.duration')">
<div class="flex shrink-0 items-center gap-2" :title="$t('repo.pipeline.duration')">
<Icon name="duration" /> <span>{{ duration }}</span>
</div>
</div>

View File

@ -17,7 +17,7 @@
<ListItem
v-for="cron in crons"
:key="cron.id"
class="items-center !bg-wp-background-200 shadow-md dark:!bg-wp-background-100"
class="items-center bg-wp-background-200! shadow-md dark:bg-wp-background-100!"
>
<span class="grid w-full grid-cols-3">
<span>{{ cron.name }}</span>

View File

@ -1,295 +0,0 @@
// cSpell:ignore Segoe Roboto Neue Noto nocheck
// eslint-disable-next-line ts/ban-ts-comment
// @ts-nocheck
import typography from '@tailwindcss/typography';
import type { Config } from 'tailwindcss';
import colors from 'tailwindcss/colors';
import tinycolor from 'tinycolor2';
const customColors = {
'wp-primary': {
100: '#8AD97F',
200: '#68C464',
300: '#4CAF50',
400: '#369943',
500: '#248438',
600: '#166E30',
},
'wp-secondary': {
200: '#434858',
300: '#383C4A',
400: '#303440',
500: '#2D313D',
600: '#2A2E3A',
700: '#222631',
800: '#1B1F28',
},
'custom-dark': {
100: '#a22323', // red error color
200: '#1b313b', // info bg
300: '#00b8d4', // info border
400: '#f47003', // tab underline
},
'custom-light': {
200: '#e5f8fb', // info bg
300: '#00b8d4', // info border
400: '#FF9B00', // tab underline
},
};
export default {
content: ['./index.html', './src/**/*.{vue,js,ts,jsx,tsx}', './src/**/*.css'],
darkMode: 'class',
theme: {
extend: {
colors: {
// Internals to keep a single source for color definitions
'int-wp-primary': {
100: customColors['wp-primary'][100],
200: customColors['wp-primary'][200],
300: customColors['wp-primary'][300],
400: customColors['wp-primary'][400],
500: customColors['wp-primary'][500],
600: customColors['wp-primary'][600],
},
'int-wp-secondary': {
200: customColors['wp-secondary'][200],
300: customColors['wp-secondary'][300],
400: customColors['wp-secondary'][400],
500: customColors['wp-secondary'][500],
600: customColors['wp-secondary'][600],
700: customColors['wp-secondary'][700],
800: customColors['wp-secondary'][800],
},
'int-wp-control-neutral': {
100: colors.white,
200: colors.gray[300],
300: colors.gray[400],
},
'int-wp-control-info': {
100: colors.cyan[700],
200: colors.cyan[800],
300: colors.cyan[900],
},
'int-wp-control-info-dark': {
100: tinycolor(colors.cyan[700]).desaturate(30).toString(),
200: tinycolor(colors.cyan[800]).desaturate(30).toString(),
300: tinycolor(colors.cyan[900]).desaturate(30).toString(),
},
'int-wp-control-ok': {
100: customColors['wp-primary'][400],
200: customColors['wp-primary'][500],
300: customColors['wp-primary'][600],
},
'int-wp-control-ok-dark': {
100: tinycolor(customColors['wp-primary'][400]).desaturate(10).toString(),
200: tinycolor(customColors['wp-primary'][500]).desaturate(10).toString(),
300: tinycolor(customColors['wp-primary'][600]).desaturate(10).toString(),
},
'int-wp-error': {
100: colors.red[700],
200: colors.red[800],
300: colors.red[900],
},
'int-wp-error-dark': {
100: customColors['custom-dark'][100],
},
'int-wp-state-neutral': {
100: colors.gray[600],
},
'int-wp-state-neutral-dark': {
100: colors.gray[500],
},
'int-wp-state-ok': {
100: colors.green[600],
},
'int-wp-state-ok-dark': {
100: tinycolor(colors.green[600]).desaturate(20).toString(),
},
'int-wp-state-info': {
100: colors.cyan[600],
},
'int-wp-state-info-dark': {
100: tinycolor(colors.cyan[600]).desaturate(20).toString(),
},
'int-wp-state-warn': {
100: colors.yellow[400],
},
'int-wp-state-warn-dark': {
100: tinycolor(colors.yellow[400]).desaturate(20).toString(),
},
'int-wp-state-error': {
100: colors.red[700],
},
'int-wp-hint-warn': {
100: customColors['custom-light'][200],
200: customColors['custom-light'][300],
},
'int-wp-hint-warn-dark': {
100: customColors['custom-dark'][200],
200: customColors['custom-dark'][300],
},
'int-wp-custom-highlight': {
100: customColors['custom-light'][400],
},
'int-wp-custom-highlight-dark': {
100: customColors['custom-dark'][400],
},
// Theme colors
'wp-background': {
50: 'var(--wp-background-50)',
100: 'var(--wp-background-100)',
200: 'var(--wp-background-200)',
300: 'var(--wp-background-300)',
400: 'var(--wp-background-400)',
},
'wp-background-secondary': {
200: 'var(--wp-secondary-200)',
800: 'var(--wp-secondary-800)',
},
'wp-text': {
100: 'var(--wp-text-100)',
200: 'var(--wp-text-200)',
},
'wp-text-alt': {
100: 'var(--wp-text-alt-100)',
},
'wp-primary': {
100: 'var(--wp-primary-100)',
200: 'var(--wp-primary-200)',
300: 'var(--wp-primary-300)',
},
'wp-primary-text': {
100: 'var(--wp-primary-text-100)',
},
'wp-control-neutral': {
100: 'var(--wp-control-neutral-100)',
200: 'var(--wp-control-neutral-200)',
300: 'var(--wp-control-neutral-300)',
},
'wp-control-info': {
100: 'var(--wp-control-info-100)',
200: 'var(--wp-control-info-200)',
300: 'var(--wp-control-info-300)',
},
'wp-control-ok': {
100: 'var(--wp-control-ok-100)',
200: 'var(--wp-control-ok-200)',
300: 'var(--wp-control-ok-300)',
},
'wp-error': {
100: 'var(--wp-error-100)',
200: 'var(--wp-error-200)',
300: 'var(--wp-error-300)',
},
'wp-state-neutral': {
100: 'var(--wp-state-neutral-100)',
},
'wp-state-ok': {
100: 'var(--wp-state-ok-100)',
},
'wp-state-info': {
100: 'var(--wp-state-info-100)',
},
'wp-state-warn': {
100: 'var(--wp-state-warn-100)',
},
'wp-state-pending': {
100: 'var(--wp-state-pending-100)',
},
'wp-hint-warn': {
100: 'var(--wp-hint-warn-100)',
200: 'var(--wp-hint-warn-200)',
},
'wp-code-inline': {
100: 'var(--wp-code-inline-100)',
200: 'var(--wp-code-inline-200)',
},
'wp-code-inline-text': {
100: 'var(--wp-code-inline-text-100)',
},
'wp-code': {
100: 'var(--wp-code-100)',
200: 'var(--wp-code-200)',
300: 'var(--wp-code-300)',
},
'wp-code-text': {
100: 'var(--wp-code-text-100)',
},
'wp-code-text-alt': {
100: 'var(--wp-code-text-alt-100)',
},
'wp-code-text-line-numbers': {
100: 'var(--wp-code-text-line-numbers-100)',
150: 'var(--wp-code-text-line-numbers-150)',
200: 'var(--wp-code-text-line-numbers-200)',
},
'wp-link': {
100: 'var(--wp-link-100)',
200: 'var(--wp-link-200)',
},
'wp-custom-highlight': {
100: 'var(--wp-custom-highlight-100)',
},
'wp-orange': {
100: 'var(--wp-orange-100)',
200: 'var(--wp-orange-200)',
300: 'var(--wp-orange-300)',
400: 'var(--wp-orange-400)',
500: 'var(--wp-orange-500)',
600: 'var(--wp-orange-600)',
700: 'var(--wp-orange-700)',
800: 'var(--wp-orange-800)',
},
},
spacing: {
sm: '24rem',
md: '28rem',
lg: '32rem',
xl: '36rem',
'2xl': '42rem',
'3xl': '48rem',
},
fontFamily: {
sans: [
'system-ui',
'-apple-system',
'Segoe UI',
'Roboto',
'Helvetica Neue',
'Noto Sans',
'Liberation Sans',
'Arial',
'sans-serif',
],
},
transitionProperty: {
height: 'max-height',
},
stroke: (theme: (path: string) => object) => theme('colors'),
fill: (theme: (path: string) => object) => theme('colors'),
},
},
plugins: [typography],
} satisfies Config;

View File

@ -27,14 +27,6 @@
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": [
"src/**/*.ts",
"src/**/*.tsx",
"src/**/*.vue",
"src/**/*.json",
"tailwind.config.ts",
"vite.config.ts",
"postcss.config.js"
],
"include": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue", "src/**/*.json", "tailwind.config.ts", "vite.config.ts"],
"exclude": ["node_modules", "**/__tests__/**/*", "**/dist/**/*"]
}

View File

@ -8,6 +8,7 @@ import prismjs from 'vite-plugin-prismjs';
import svgLoader from 'vite-svg-loader';
import type { ViteUserConfig } from 'vitest/config';
import { defineConfig } from 'vitest/config';
import tailwindcss from '@tailwindcss/vite';
function woodpeckerInfoPlugin(): Plugin {
return {
@ -43,6 +44,7 @@ function externalCSSPlugin(): Plugin {
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
tailwindcss(),
vue(),
VueI18nPlugin({
include: path.resolve(__dirname, 'src/assets/locales/**'),